4. QoS, время ROS и запись данных rosbag
Почему сообщения могут не приходить
Для обмена недостаточно совпадения имени топика и типа сообщения. Настройки Quality of Service издателя и подписчика должны быть совместимы. Reliability описывает требования к надёжности доставки, durability — доступность ранее опубликованных данных, history и depth — правила хранения очереди.
Для сенсорных потоков часто важна свежесть измерения, а не повторная доставка каждого старого сообщения. Для редко меняющегося описания системы может быть важна возможность получить последнее значение после подключения подписчика.
Диагностика
В работающей системе изучите:
ros2 topic info /turtle1/pose --verbose
ros2 topic hz /turtle1/pose
Сопоставьте частоту с настройкой издателя. Отсутствие сообщений может быть связано с QoS, окружением, пространством имён или тем, что узел вообще не запущен.
Запись и воспроизведение
При запущенном turtlesim запишите небольшой фрагмент движения:
ros2 bag record -o turtle_record /turtle1/pose /turtle1/cmd_vel
Остановите запись сочетанием Ctrl+C. Затем изучите её:
ros2 bag info turtle_record
ros2 bag play turtle_record
Для наблюдения записанных координат используйте отдельный терминал с ros2 topic echo /turtle1/pose. Остановите исходного издателя, если хотите анализировать только воспроизводимые сообщения.
Время в симуляции
При use_sim_time=true узел использует время из /clock. Если симулятор остановлен или этот топик не публикуется, поведение таймеров может отличаться от ожиданий по настенным часам.
Самостоятельное задание
Сравните живой поток и воспроизведение записи. Зафиксируйте типы сообщений, продолжительность записи и частоту публикации.
Самопроверка
- Чем QoS отличается от типа сообщения?
- Почему два источника одного топика усложняют анализ записи?
- Что происходит со временем ROS при паузе симуляции?
Основа урока: учебное пособие «Операционная система для роботов ROS 2», ИТМО, 2026, печатные страницы 14, 17–18, 34–35. Это учебный конспект с упражнениями; полные примеры и рисунки приведены в пособии.
YouTube канал чтобы посмотреть видео по робототехнике & семинары
Аккаунт в Телеграмм чтобы следить за анонсами мероприятий & Исследованиями