ОК
Как рисовать и заполнять карту
Закрыть
Координаты и единицы
Все расстояния — в метрах.
x
растёт вправо,
y
— вверх; начало координат (0, 0) выбираете вы, например угол здания.
Углы — в градусах, против часовой стрелки от +x: 0° = +x (вправо), 90° = +y (вверх), 180° = влево, 270° = вниз.
Линии сетки идут через 1 м. Новые и перемещённые точки притягиваются к шагу 0.5 м; снимите флажок
Привязка к 0.5 м
(или нажмите
G
), чтобы ставить точки свободно. Точные значения всегда можно ввести в правой панели.
Масштаб меняется колесом мыши (относительно указателя). План сдвигается перетаскиванием средней кнопкой мыши или левой кнопкой с нажатой клавишей
Space
.
Рисование путей
Узлы — точки, между которыми ходят люди: концы коридоров, развилки, двери, низ лестницы. Ставьте их инструментом
Узел
(
N
); щелчок по существующему пути вставляет в него узел.
Путь
(
P
): щёлкайте узлы по очереди, чтобы соединить их путями (щелчок по пустому месту создаёт новый узел, щелчок по пути вставляет в него узел);
Esc
завершает цепочку. Рисуйте пути только там, где человек действительно может пройти.
Длина пути определяется его концами. Выберите путь и введите длину: дальний узел (
Куда
) сдвинется вдоль пути так, чтобы длина совпала.
Все этажи вместе должны образовывать один связный граф: из каждого узла должна быть дорога в любой другой по путям и переходам (лестницам и лифтам).
Проверка карты
перечисляет все несвязанные узлы.
Этажи и переходы (лестницы и лифты)
У каждого этажа есть вкладка.
+
добавляет этаж, двойной щелчок по вкладке переименовывает его,
×
на активной вкладке удаляет этаж (только если на нём нет узлов, тегов и стен).
Лестница / лифт
(
L
): щёлкните узел, переключитесь на вкладку другого этажа и щёлкните узел там.
Длина перехода — это стоимость для построения маршрута, а не измеренное расстояние: по умолчанию 12 м на этаж для лестницы и 30 м на этаж для лифта. Выберите переход, чтобы изменить его тип или длину.
Лестничная клетка или шахта лифта находится в одном и том же месте на всех этажах, поэтому задавайте её узлам одинаковые x, y на каждом этаже.
Стены
Стены влияют только на то, как телефон показывает маршрут: части маршрута за стеной приглушаются. На построение маршрута они не влияют.
Стена
(
W
): щёлкайте концы по очереди, чтобы рисовать стены; повторный щелчок по последней точке, правый щелчок или
Esc
завершает цепочку.
Промежуток между стенами — это дверной проём: оставляйте двери открытыми и не рисуйте стены поперёк путей.
Пункты назначения
Пункт назначения
(
D
): щёлкните узел и введите название. Пункт назначения стоит на этом узле, а его название телефон показывает в списке пунктов назначения, поэтому используйте названия, понятные людям («Переговорная Б», «Кухня»).
Теги AprilTag
Телефон определяет своё положение по напечатанным тегам AprilTag семейства
tag36h11
. Изображения берите на
github.com/AprilRobotics/apriltag-imgs
(папка
tag36h11
); число в имени файла — это номер тега (поле
Номер (36h11)
).
Печатайте каждый тег так, чтобы внешняя сторона чёрного квадрата была не меньше 16 см, измерьте напечатанный чёрный квадрат и введите этот размер в метрах в поле
Размер тега (м)
(для всей карты) или
Размер (м)
у тега: для чёрного квадрата 16 см введите 0.16. Белую рамку вокруг квадрата оставьте.
Вешайте теги вертикально, плоско на стену, центром на высоте 1.5–1.7 м от пола, и введите измеренную высоту центра в поле
Высота (м)
.
Ставьте по тегу каждые 10–15 м вдоль путей, а также на каждом повороте и на каждой лестничной площадке.
Направление
— куда смотрит напечатанная сторона тега, то есть перпендикулярно стене, на которой он висит, внутрь помещения. Человек, читающий тег, смотрит в обратную сторону. Пример: у тега на стене, идущей вдоль x, обращённого к +y, направление 90°. Задайте его, потянув кончик стрелки, или введите число.
Лучше выбирать стены в конце коридора: тогда человек идёт к тегу, и камера видит его прямо.
Съёмка этажа
Режим
Съёмка этажа
в приложении на телефоне записывает файл карты одного этажа: увиденные теги AprilTag, отмеченные касанием стены и пройденный трек. Сначала повесьте все теги этажа (см. «Теги AprilTag» выше), затем пройдите этаж, наводя камеру на каждый тег по пути.
Стены: касайтесь по очереди вдоль стены каждого угла там, где стена встречается с полом (на линии пола);
Конец стены
завершает цепочку. Касание уже поставленного угла использует его повторно — так замыкается комната. У дверного проёма завершите цепочку с одной стороны и начните новую с другой.
Проходите ещё раз мимо тегов, у которых в списке
Теги
на телефоне мало наблюдений или большой разброс: каждый проход их уточняет. Если отслеживание потеряно, наведите камеру на уже отсканированный тег.
Трек — серая пунктирная линия: где несли телефон. Это подсказка для рисования путей, в экспорт он не попадает. Снимите флажок
Трек
, чтобы скрыть его; кнопка
Удалить трек
в разделе
Инструменты этажа
удаляет его.
Для первого этажа новой карты откройте файл съёмки кнопкой
Загрузить
. Для каждого следующего этажа используйте
Импорт съёмки…
: этаж из файла добавляется в текущую карту как новый этаж, а номера тегов, которые уже есть на другом этаже, выводятся списком (
Проверка карты
показывает, что они используются больше одного раза, пока вы их не измените).
Инструменты этажа
(правая панель) действуют на текущий этаж: его узлы, теги, стены и трек двигаются вместе, и каждое действие можно отменить.
Выровнять по осям
поворачивает этаж так, чтобы стены шли вдоль x и y, затем выпрямляет стены и направления тегов, отклонённые от прямого угла не больше чем на 15° (диагональные стены остаются диагональными).
Масштаб по измеренному расстоянию
: укажите две точки (теги, концы стен или узлы), измерьте рулеткой настоящее расстояние между ними, введите его и нажмите
Применить
. Высоты и размеры тегов не масштабируются.
Сдвиг
перемещает этаж на dx, dy, а
Поворот
поворачивает его против часовой стрелки вокруг начала координат или указанного центра: так этаж совмещают с нижним, например чтобы лестничные клетки оказались друг над другом.
В свежей съёмке нет путей, поэтому
Проверка карты
показывает
NO_NODES
(нет узлов),
NO_DESTINATIONS
(нет пунктов назначения) и
TAG_FAR
(тег далеко от путей), пока вы не нарисуете пути и пункты назначения, например вдоль трека.
Как перенести файл на телефон
Экспорт
скачивает
{name}.json
; экспорт не выполняется, пока в
Проверке карты
есть ошибки. (
Сохранить
скачивает рабочий файл
{name}.indoormap.json
, который редактор позже может снова открыть кнопкой
Загрузить
.)
Скопируйте экспортированный файл на телефон по USB, по почте или через любой мессенджер.
В приложении нажмите
Загрузить карту из файла…
и выберите файл. Приложение выполнит те же проверки и сообщит, если что-то не так.
Горячие клавиши
V
Выбор / перенос
N
Узел
P
Путь
D
Пункт назначения
T
AprilTag
L
Лестница / лифт
W
Стена
X
Удаление
Esc
Завершить цепочку пути или стены / отменить переход, иначе снять выделение
Delete
/
Backspace
Удалить выбранный объект
Ctrl
+
Z
Отменить
Ctrl
+
Shift
+
Z
/
Ctrl
+
Y
Повторить
G
Привязка к 0.5 м: вкл. / выкл.