Topic

Модель работы в режиме Topic подразумевает использование одного типа сообщения для Издателя (Publisher) и Подписчика (Subscriber).

Модель Topic являются однонаправленной и подразумевает непрерывную отправку или получение сообщений. Такой способ коммуникации подходит для датчиков, которым требуются периодическая передача данных. Несколько подписчиков могут получать сообщения от одного издателя и наоборот (возможна работа несколько издателей).

На изображении ниже показана модель работы датчика температуры, когда его данные получают различные ноды.

Консольная утилита rostopic

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

Список основных используемых команд:

rostopic bw     Показать занимаемый сетевой канал
rostopic echo   Вывести сообщения на экран
rostopic find   Поиск топика по типу
rostopic hz     Показать частоту обновления топика
rostopic info   Показать информацию о топике
rostopic list   Показать список существующий топиков
rostopic pub    Опубликовать данные в топик
rostopic type   Показать тип сообщения для топика

Примеры использования

Вывести список существующих топиков:

rostopic list

Вывести сообщения из топика topic_name:

rostopic echo /topic_name

rostopic pub

Отправить текстовое сообщение в топик:

rostopic pub my_topic std_msgs/String "hello there"

Отправить сообщение типа geometry_msgs/Twistв топик /cmd_vel с частотой 10hz:

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist  '{linear:  {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

Удобно при вызове функций использовать Tab для поиска и подстановки необходимых данных в командную строку.

Например

rostopic pub /c+Tab -> rostopic pub /cmd_vel (подставится адрес существующего топика)
rostopic pub /cmd_vel +Tab -> rostopic pub /cmd_vel geometry_msgs/Twist (подставится тип сообщения выбранного топика)

Более подробная информация доступна на Wiki странице http://wiki.ros.org/rostopic

results matching ""

    No results matching ""