- ROS機器人項目開發11例(原書第2版)
- (印)拉姆庫瑪·甘地那坦 郎坦·約瑟夫
- 313字
- 2021-01-26 17:17:30
2.3 ROS-2基礎
在ROS-1中,用戶代碼將連接到ROS客戶端庫(例如rospy或roscpp),它們將直接與網絡中的其他節點通信;而在ROS-2中,ROS客戶端庫就像一個抽象層,使用其他節點通過DDS實現連接到網絡中進行通信的另一層。ROS-1與ROS-2的簡單對比如圖2.2所示。
圖2.2 ROS-1與ROS-2的簡單對比
如圖2.2所示,在ROS-2中,操作系統層與底層硬件層的通信是通過DDS實現完成的。圖中的DDS組件由相應供應商實現,供應商不同則具體實現不同。
抽象DDS層組件與ROS-2客戶端庫連接,并通過DDS實現幫助用戶連接代碼。通過這樣的分層抽象,用戶無須感知DDS API的存在就可以與操作系統連接。此外,ROS-1和ROS-2的區別還在于ROS-1使用了自定義傳輸協議以及自定義中心發現機制,因此需要使用master,而ROS-2則具有抽象的DDS層,通過該層可以實現序列化、傳輸和發現等功能。