Перейти к содержимому

Формат карт занятости ROS

Карта занятости ROS — пара файлов, как правило map.pgm и map.yaml, описывающая двумерный вид окружения робота сверху. Это канонический формат карт, потребляемый навигационными стеками ROS (nav1 map_server, nav2 map_server) и создаваемый пакетами SLAM: gmapping, Cartographer и slam_toolbox.

Файл .pgm — это полутоновое изображение в формате Portable Gray Map. Значения пикселей кодируют занятость:

  • Тёмные пиксели — занято (препятствия, стены).
  • Светлые пиксели — свободное пространство.
  • Определённый серый (часто 205) — неизвестно.

Файл .yaml описывает, как интерпретировать изображение в метрических координатах:

image: map.pgm
resolution: 0.05 # метров на пиксель
origin: [-12.2, -28.5, 0.0] # левый нижний угол в (x, y, yaw)
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196

Поля resolution и origin вместе позволяют любому инструменту преобразовывать пиксельные координаты в мировые и обратно.

Наиболее распространённые конвейеры:

  1. Ручное управление роботом с подачей одометрии и 2D-лидара в gmapping или slam_toolbox; сохранение результирующей карты.
  2. Запуск Cartographer в офлайн-режиме на файле bag и экспорт карты занятости.
  3. Конвертация из другого формата.bt, проекция OctoMap или пользовательский формат.

Результат затем загружается map_server для локализации (AMCL) и планирования (nav2).

drawtonomy импортирует пары .pgm + .yaml и позволяет аннотировать карту занятости в браузере:

  • Карта отображается в масштабе на холсте с использованием метаданных resolution и origin.
  • Вы можете рисовать полосы, перекрёстки, транспортные средства, пешеходов и дорожные знаки поверх карты.
  • Аннотации хранятся отдельно как фигуры drawtonomy — исходный .pgm не изменяется.
  • Полезен для фигур в статьях (карта SLAM с нарисованными маршрутами), обучения (аннотирование того, что видит планировщик) и быстрой разметки ground truth.

Это намеренно однонаправленный импорт: drawtonomy не является заменой инструментам редактирования карт nav2. Это удобный вариант, когда нужна визуально чистая, публикуемая аннотация карты SLAM.