Найти в Дзене
Stepan.Burmistrov

📨 Топики и сообщения в ROS2: как ноды «болтают» друг с другом

📨 Топики и сообщения в ROS2: как ноды «болтают» друг с другом Мы уже разобрались, что ноды - это отдельные программы, каждая со своей задачей. Теперь самое время понять как они передают друг другу информацию. Знакомьтесь - Топики! 🚀 🧵 Что такое топик? Топик (topic) — это «канал связи», по которому ноды обмениваются данными. ➡️ Подробнее в курсе по ROS2 Можно представить так: нода публикует данные в топик — 📤 отправляет сообщение нода подписывается на топик — 📥 получает сообщения, который приходят в топик И всё это без прямой связи между программами — супер удобно и масштабируемо. 📦 Что такое сообщение? Сообщение (message) — это структура данных, которая летит через топику. У сообщений есть тип (как у переменных в коде): число, строка, координаты и т.д. В ROS2 есть огромная библиотека стандартных сообщений: std_msgs/String — обычная строка sensor_msgs/LaserScan — данные лидара geometry_msgs/Pose — позиция и ориентация Одно из самых популярных сообщений — Twist. 🌀

📨 Топики и сообщения в ROS2: как ноды «болтают» друг с другом

Мы уже разобрались, что ноды - это отдельные программы, каждая со своей задачей.

Теперь самое время понять как они передают друг другу информацию.

Знакомьтесь - Топики! 🚀

🧵 Что такое топик?

Топик (topic) — это «канал связи», по которому ноды обмениваются данными.

➡️ Подробнее в курсе по ROS2

Можно представить так:

нода публикует данные в топик — 📤 отправляет сообщение

нода подписывается на топик — 📥 получает сообщения, который приходят в топик

И всё это без прямой связи между программами — супер удобно и масштабируемо.

📦 Что такое сообщение?

Сообщение (message) — это структура данных, которая летит через топику.

У сообщений есть тип (как у переменных в коде): число, строка, координаты и т.д.

В ROS2 есть огромная библиотека стандартных сообщений:

std_msgs/String — обычная строка

sensor_msgs/LaserScan — данные лидара

geometry_msgs/Pose — позиция и ориентация

Одно из самых популярных сообщений — Twist.

🌀 Сообщение geometry_msgs/Twist

Используется для управления движением роботов.

Содержит две части:

geometry_msgs/Twist:

linear:

x

y

z

angular:

x

y

z

Смысл сообщения простой:

linear.x — Линейная скорость (в м/с). Для простого робота: вперёд/назад

angular.z — Угловая скорость (в радиан/сек)ю Поворот влево/вправо

Этих двух значений хватает для управления колёсными роботами, симуляцией черепашки — чем угодно.

🚗 Топик cmd_vel — один из самых важных в роботах

Практически любой мобильный робот в ROS2 слушает топик:

/cmd_vel

Это стандартный топик для команд скорости:

если опубликовать Twist с положительным linear.x → робот поедет вперёд

если опубликовать angular.z → робот повернёт

cmd_vel — это как «руль и педаль газа» для робота.

Умеешь публиковать Twist в этот топик — ты уже можешь управлять роботом ✨

🐢 Скоро — запускаем черепашку (если вы уже ее запустили, кидайте в комментарии картинки)!