> For the complete documentation index, see [llms.txt](https://voltbro.gitbook.io/robot-sobaka-mors/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://voltbro.gitbook.io/robot-sobaka-mors/ustroistvo-robota/ros-topiki.md).

# 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](https://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/BatteryState.html)) - состояние питания робота

**/cmd\_pose** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемые положения и ориентация корпуса робота

**/cmd\_vel** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемая скорость перемещения робота

**/cur\_device** ([std\_msgs/UInt8](https://docs.ros.org/en/melodic/api/std_msgs/html/msg/UInt8.html)) - текущее подключенное устройство. 1 - голова, 2 - Radiolink T8S, 3 - модуль навигации, 4 - Robogui, 0 - ни одного устройства.&#x20;

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

**/disable** (std\_msgs/Bool) - если True, то блокирует всех, кто на него подписан. В данном случае блокируются ноды locomotion\_controller и radiolink\_teleop

**/ef\_position/command** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - желаемые положения ступней ног робота

**/ef\_position/states** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - текущее положение стоп робота

**/foot\_contacts** ([champ\_msgs/ContactStamped](https://github.com/voltdog/mors_base/blob/main/champ_msgs/msg/ContactsStamped.msg)) - показывает, когда нога находится в фазе опоры

**/gui/cmd\_pose** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемые положения и ориентация корпуса робота

**/gui/cmd\_vel** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемая скорость перемещения робота

**/gui/ef\_position/command** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - желаемые положения ступней ног робота

**/gui/joint\_group\_position\_controller/command** ([trajectory\_msgs/JointTrajectoryPoint](https://docs.ros.org/en/noetic/api/trajectory_msgs/html/msg/JointTrajectoryPoint.html)) - желаемое угловое положение сочленений робота

**/gui/status** ([std\_msgs/Bool](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Bool.html)) - статус готовности программы к работе

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

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

**/imu/data** [(sensor\_msgs/Imu)](http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html) - выдает отфильтрованные данные об ориентации, угловой скорости и линейном ускорении корпуса робота

**/imu/mag** [(sensor\_msgs/MagneticField)](http://docs.ros.org/api/sensor_msgs/html/msg/MagneticField.html) - вектор магнитного поля

**/imu/raw** [(sensor\_msgs/Imu)](http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html) - сырые необработанные данные с IMU

**/imu/temp** [(sensor\_msgs/Temperature)](http://docs.ros.org/api/sensor_msgs/html/msg/Temperature.html) - температура микросхемы IMU

**/joint\_group\_position\_controller/command** ([trajectory\_msgs/JointTrajectoryPoint](https://docs.ros.org/en/noetic/api/trajectory_msgs/html/msg/JointTrajectoryPoint.html)) - желаемое угловое положение сочленений робота

**/joint\_states** ([sensor\_msgs/JointState](https://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/JointState.html)) - состояние всех электроприводов робота (угол, скорость момент)

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

**/joy/set\_feedback** (unknown\_type) - отправляет команды на джойстик. Часть модуля joy, не используется в контроллере робота.

**/head/cmd\_pose** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемые положения и ориентация корпуса робота

**/head/cmd\_vel** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемая скорость перемещения робота

**/head/ef\_position/command** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - желаемые положения ступней ног робота

**/head/joint\_group\_position\_controller/command** ([trajectory\_msgs/JointTrajectoryPoint](https://docs.ros.org/en/noetic/api/trajectory_msgs/html/msg/JointTrajectoryPoint.html)) - желаемое угловое положение сочленений робота

**/head/status** ([std\_msgs/Bool](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Bool.html)) - статус готовности программы к работе

**/lcm/servo\_cmd** ([trajectory\_msgs/JointTrajectoryPoint](https://voltbro.gitbook.io/upravlenie-elektrodvigatelem))  - показывает, какие команды были отправлены на сервоприводы

**/nav/cmd\_pose** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемые положения и ориентация корпуса робота

**/nav/cmd\_vel** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемая скорость перемещения робота

**/nav/ef\_position/command** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - желаемые положения ступней ног робота

**/nav/joint\_group\_position\_controller/command** ([trajectory\_msgs/JointTrajectoryPoint](https://docs.ros.org/en/noetic/api/trajectory_msgs/html/msg/JointTrajectoryPoint.html)) - желаемое угловое положение сочленений робота

**/nav/status** ([std\_msgs/Bool](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Bool.html)) - статус готовности программы к работе

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

**/radiolink/cmd\_pose** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемые положения и ориентация корпуса робота

**/radiolink/cmd\_vel** ([geometry\_msgs/Twist](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/Twist.html)) - желаемая скорость перемещения робота

**/radiolink/ef\_position/command** ([geometry\_msgs/PoseArray](https://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseArray.html)) - желаемые положения ступней ног робота

**/radiolink/joint\_group\_position\_controller/command** ([trajectory\_msgs/JointTrajectoryPoint](https://docs.ros.org/en/noetic/api/trajectory_msgs/html/msg/JointTrajectoryPoint.html)) - желаемое угловое положение сочленений робота

**/radiolink/status** ([std\_msgs/Bool](https://docs.ros.org/en/noetic/api/std_msgs/html/msg/Bool.html)) - статус наличия соединения с геймпадом. True - если соединение установлено, False - если соединение отсутствует.

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

**/rosout\_agg** - системный топик для публикации логово&#x20;

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

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