<source : unsplash>

一、簡介

對於ROS有基本概念後,應該更清楚ROS機器人的每個功能實現,主要是靠node與node之間的溝通,而Topic扮演重要角色。

本實作紀錄從rostopic的基本指令出發,更進一步熟悉 Topic、Publisher、Subscriber之間的運作關係。

二、實作紀錄

1.啟動ROS節點管理器 : ROS master

$ roscore   

(如果在rosocore加上"&",可以讓它在背景執行,並繼續使用同一個terminal)


2.查看目前運行的 Topic

$ rostopic list


3.發布指令到 Topic

$ rostopic pub /<topic> <topic type> <data>

範例
$ rostopic pub /hello std_msgs/String “hello robot!"


4.再次查看目前運行的 Topic

rostopic list

因在第3步發布一個名為 "hello" 的topic,因此topic又多了一個 "/hello"。


5.接收 hello topic的資料

$ rostopic echo <topic>

範例
$ rostopic echo /hello


利用 "Ctrl + C" 即可停止接收hello topic的資料

6.查看正在運行的node與資訊

$ rosnode list

如圖,正運行的node為 ros master 和我們創建的 publisher node。

$ rosnode info <node name>

從"Publication"可以看到有發佈的資訊,但從"Subscriptions"來看,目前沒有節點訂閱topic。



7.查看 "hello" Topic的資訊

$ rostopic info <topic>

同第6步,只看到有 Publisher資訊,而無Subscriber的資訊。



---
參考資料 :

0 留言