ROS-топики

Контроллер управления роботом, являясь ROS-системой, активно использует топики для обмена сообщениями между своими модулями. Рассмотрим базовые команды для получения информации о топиках.

Для вывода списка всех топиков, работающих в системе робота, в командной строке введите:

rostopic list

Чтобы посмотреть, как ноды взаимодействуют между собой, используйте команду:

rqt_graph

Чтобы увидеть тип сообщения, паблишера и подписчика определенного топика, введите команду:

rostopic info /topic_name

Чтобы вывести только тип сообщения, введите:

rostopic type /topic_name

Если вам нужно посмотреть поля какого определенного сообщения, введите:

rosmsg show msg_name

Для мониторинга передаваемых данных в топике введите:

rostopic echo /topic_name

Для отправки данных в определенный топик, сипользуйте следующий шаблон:

rostopic pub /topic_name topic_type "data"

Например, чтобы отправить что-то в топик cmd_vel, введите:

rostopic pub /joy_converter/cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

Список всех топиков

Ниже перечислим все топики, работающие по умолчанию при старте файла bringup.launch (по умолчанию запущен на бортовом компьютере робота):

/bat (sensor_msgs/BatteryState) - состояние питания робота

/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота

/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота

/cur_device (std_msgs/UInt8) - текущее подключенное устройство. 1 - голова, 2 - Radiolink T8S, 3 - модуль навигации, 4 - Robogui, 0 - ни одного устройства.

/diagnostics (diagnostics_msgs/DiagnosticArray) - часть модуля joy, не используется в контроллере робота

/disable (std_msgs/Bool) - если True, то блокирует всех, кто на него подписан. В данном случае блокируются ноды locomotion_controller и radiolink_teleop

/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота

/ef_position/states (geometry_msgs/PoseArray) - текущее положение стоп робота

/foot_contacts (champ_msgs/ContactStamped) - показывает, когда нога находится в фазе опоры

/gui/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота

/gui/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота

/gui/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота

/gui/joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота

/gui/status (std_msgs/Bool) - статус готовности программы к работе

/hmi/beeper (power_bridge/HMIBeeper) - управляет пищалкой в роботе

/hmi/led (/power_bridge/HMILed) - управляет светодиодом на кнопке питания

/imu/data (sensor_msgs/Imu) - выдает отфильтрованные данные об ориентации, угловой скорости и линейном ускорении корпуса робота

/imu/mag (sensor_msgs/MagneticField) - вектор магнитного поля

/imu/raw (sensor_msgs/Imu) - сырые необработанные данные с IMU

/imu/temp (sensor_msgs/Temperature) - температура микросхемы IMU

/joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота

/joint_states (sensor_msgs/JointState) - состояние всех электроприводов робота (угол, скорость момент)

/joy (/sensor_msgs/Joy) - выдает состояние джойстика

/joy/set_feedback (unknown_type) - отправляет команды на джойстик. Часть модуля joy, не используется в контроллере робота.

/head/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота

/head/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота

/head/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота

/head/joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота

/head/status (std_msgs/Bool) - статус готовности программы к работе

/nav/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота

/nav/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота

/nav/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота

/nav/joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота

/nav/status (std_msgs/Bool) - статус готовности программы к работе

/power/buttons (power_bridge/PowerButtons) - получает информацию о нажатых пользовательской кнопки и кнопки экстренного прекращения работы

/radiolink/cmd_pose (geometry_msgs/Twist) - желаемые положения и ориентация корпуса робота

/radiolink/cmd_vel (geometry_msgs/Twist) - желаемая скорость перемещения робота

/radiolink/ef_position/command (geometry_msgs/PoseArray) - желаемые положения ступней ног робота

/radiolink/joint_group_position_controller/command (trajectory_msgs/JointTrajectoryPoint) - желаемое угловое положение сочленений робота

/radiolink/status (std_msgs/Bool) - статус наличия соединения с геймпадом. True - если соединение установлено, False - если соединение отсутствует.

/rosout - системный топик для публикации логово

/rosout_agg - системный топик для публикации логово

/tf - топик для отслеживания положения и ориентации систем координат робота

/tf_static - топик для отслеживания положения и ориентации систем координат робота

Last updated