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

ROS-ноды

После запуска ровера автоматически поднимается набор ROS-нод, обеспечивающих управление движением, работу с сенсорами, видеопотоком и взаимодействие с внешними интерфейсами.

Актуальный список запущенных нод можно получить командой:

ros2 node list

Для базовой конфигурации BRover E5 список выглядит следующим образом:

/camera1
/control_move
/cyphal_bridge
/imu
/joy
/odom
/radiolink_control
/rosbridge_server
/web_video_server

Назначение нод

Управление движением

Нода /joy отвечает за получение данных с подключённого джойстика. Она считывает состояние кнопок и осей и публикует их в стандартном формате ROS, который затем используется другими компонентами системы.

Нода /radiolink_control принимает эти данные и преобразует их в команды движения — линейную и угловую скорости ровера. На этом этапе формируется логика управления, удобная для дальнейшей обработки.

Нода /control_move реализует кинематическую модель платформы. Она принимает целевые скорости и рассчитывает индивидуальные команды для каждого из шести двигателей, учитывая особенности шасси.

Сенсоры и состояние робота

Нода /imu работает с инерциальным датчиком. Она получает данные об ускорениях, угловых скоростях и ориентации и публикует их в систему ROS.

Нода /odom отвечает за вычисление положения робота в пространстве. Она объединяет данные с IMU и обратную связь от приводов, формируя одометрию — координаты и ориентацию ровера.

Взаимодействие с аппаратной частью

Нода /cyphal_bridge является ключевым связующим элементом между ROS 2 и низкоуровневой электроникой. Она преобразует сообщения ROS в формат протокола Cyphal и обратно, обеспечивая обмен данными по CAN-шине с драйверами двигателей и другими модулями.

Работа с камерой и видео

Нода /camera1 отвечает за работу с USB-камерой. Она захватывает видеопоток и публикует изображения в ROS-топики.

Нода /web_video_server получает изображения из ROS и делает их доступными по HTTP. Это позволяет просматривать видеопоток через браузер или использовать его во внешних приложениях.

Взаимодействие с веб-интерфейсом

Нода /rosbridge_server предоставляет интерфейс для обмена данными между ROS и внешними клиентами. Она работает через WebSocket и использует JSON-формат сообщений.

Именно через неё веб-интерфейс ровера получает данные и отправляет команды управления.

Получение информации о нодах

Для просмотра подробной информации о конкретной ноде можно использовать команду:

ros2 node info <имя ноды>

Например:

ros2 node info /odom

Это позволяет узнать, какие топики и сервисы использует нода, а также её текущее состояние.