[ROS](05)ROS通信 —— 节点,Nodes Master
??文章只是個人學習過程中學習筆記,主要參考ROS教程1。
目錄
- 1、概念
- 2、Nodes
- 3、Master
- 4、rosnode
- 5、 實例測試
1、概念
節點(Nodes):節點是一個可執行文件,它可以通過ROS來與其他節點進行通信。
節點管理器(Master):ROS的命名服務,例如幫助節點發現彼此。
2、Nodes
? ? 一個節點(Node)實際上只不過是ROS軟件包中的一個可執行文件(C++編譯生成的可執行文件、python腳本),可執行文件在運行之后就成了一個進程(process),這個進程在ROS中就叫做節點。。ROS節點使用ROS客戶端庫與其他節點通信。節點可以發布或訂閱話題,也可以提供或使用服務。一個ROS控制系統包含許多節點,例如無人車,一個節點(Node)控制無人車的車輪電機、一個節點(Node)通過慣導獲取定位信息、一個節點(Node)通過攝像頭獲取圖像信息、一個節點(Node)融合各種信息執行路徑規劃等等。
ROS客戶端庫可以讓用不同語言編寫的節點進行相互通信:
- roscpp = C++客戶端
- rospy = python客戶端
3、Master
? ?機器人是一種組件眾多、功能龐大、高度復雜的系統性實現。在實際的應用中,機器人可能集成激光雷達、慣導、毫米波雷達、攝像頭、GPS等各種傳感器以及運動控制器件,負責感知、控制、決策和計算等功能,每一項功能點都是一個單獨的節點(Nodes)。那么如何去管理、分配、控制這些節點呢?這就用到ROS Master,它為ROS系統中的其余節點提供命名和注冊服務。Master的作用是使各個ROS節點(Nodes)之間能夠相互定位,然后才能進行點對點通信。
? ?
4、rosnode
? ?rosnode是用于顯示有關ROS節點信息的命令行工具。命令有:
| rosnode ping | 測試與節點的連接 |
| rosnode list | 列出活動的節點 |
| rosnode info | 打印關于節點的信息 |
| rosnode machine | 列出指定設備上的節點 |
| rosnode kill | 殺死一個正在運行的節點 |
| rosnode cleanup | 清除不可連接的節點 |
在使用ctrl+C停止節點時,該節點并沒有徹底清除,可以使用rosnode cleanup清除節點。
5、 實例測試
#步驟1:(ROS首要操作)運行roscore命令, 啟動 master, master負責 ros 的節點注冊, 參數服務器, 話題通信管理等等。
#步驟2:運行rosnode 相關命令。
/rosout這個節點,是用于收集和記錄節點的調試輸出,該節點總是運行。
ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5].
http://wiki.ros.org/cn/ROS/Tutorials. ??
總結
以上是生活随笔為你收集整理的[ROS](05)ROS通信 —— 节点,Nodes Master的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]SEO常用工具
- 下一篇: FN-8112MET系列RTL8188单