12. Камера, лидар и обработка сенсорных данных

От геометрии датчика к сообщениям

Чтобы датчик работал в симуляции, недостаточно добавить к роботу видимую коробку. Нужны геометрическая привязка, настройка сенсора и передача данных в ROS. Для интерпретации измерений важны система координат, временная метка, частота и параметры самого датчика.

Камера формирует изображения, а лидар — измерения расстояния по направлениям. Изображение и набор дальностей требуют разных способов обработки. Проверяйте фактический тип топика, а не выбирайте обработчик только по его имени.

План эксперимента

  1. Добавьте звено датчика и связь с базой робота.
  2. Настройте сенсор в Gazebo: частоту, поле зрения и другие параметры соответствующего типа.
  3. Настройте передачу измерений в ROS.
  4. Проверьте TF между датчиком и базой.
  5. Отобразите данные в RViz и сравните их с виртуальной сценой.

Для диагностики используйте ros2 topic list -t, ros2 topic info --verbose и ros2 topic hz, подставив свой топик. Если данные есть в симуляторе, но отсутствуют в ROS, отдельно проверьте мост и совместимость QoS.

Самостоятельное задание

Разместите препятствие перед роботом. Для лидара выделите передний сектор и определите минимальную корректную дальность. Не используйте бесконечные или нечисловые значения как обычные измерения; учитывайте допустимый диапазон сенсора.

Для камеры сохраните описание выбранного формата изображения и объясните связь размеров изображения с настройками сенсора. Подвигайте препятствие и сопоставьте изменения изображения и дальностей.

Самопроверка

  • Почему правильный frame_id важен для визуализации?
  • Что отличает частоту работы сенсора от частоты получения сообщений?
  • Как разделить ошибку модели датчика, моста и узла обработки?

Основа урока: учебное пособие «Операционная система для роботов ROS 2», ИТМО, 2026, печатные страницы 24–25, 97–109. Это учебный конспект с упражнениями; полные примеры и рисунки приведены в пособии.