- ROS機(jī)器人項(xiàng)目開(kāi)發(fā)11例(原書(shū)第2版)
- (印)拉姆庫(kù)瑪·甘地那坦 郎坦·約瑟夫
- 752字
- 2021-01-26 17:17:36
2.9 ROS-1和ROS-2的通信
如我們所知,ROS-2仍處于開(kāi)發(fā)之中,目前尚沒(méi)有一個(gè)穩(wěn)定的長(zhǎng)期支持的發(fā)行版。因此,直接在ROS-2中編寫(xiě)節(jié)點(diǎn)程序或?qū)OS-1下已有的節(jié)點(diǎn)程序移植到ROS-2下將是一項(xiàng)艱巨的任務(wù)。為了使得用戶能夠使用ROS-1和ROS-2的功能包進(jìn)行項(xiàng)目開(kāi)發(fā),可以通過(guò)一個(gè)名為ros1_bridge的功能包實(shí)現(xiàn)ROS-1和ROS-2的通信,從而實(shí)現(xiàn)兩個(gè)版本的連接與共用。
ros1_bridge實(shí)際上是一個(gè)ROS-2功能包,用于自動(dòng)或手動(dòng)建立消息、話題和服務(wù)的映射,并在ROS-1和ROS-2節(jié)點(diǎn)之間進(jìn)行通信。ros1_bridge可以在某個(gè)ROS版本中訂閱消息,然后在其他ROS版本中發(fā)布它們。當(dāng)讀者想使用一個(gè)模擬器(比如帶有ROS-2的Gazebo)來(lái)測(cè)試自己的項(xiàng)目時(shí),這個(gè)軟件包就派上了用場(chǎng)。在撰寫(xiě)本書(shū)時(shí),ros1_bridge功能包僅支持一定數(shù)量的消息。我們期待其他功能包能很快移植到ROS-2中,或者其消息能夠得到ros1_bridge功能包的支持,這樣我們就可以在ROS-1和ROS-2中并行運(yùn)行它們。
測(cè)試ros1_bridge功能包
ros1_bridge功能包默認(rèn)安裝在我們使用的發(fā)行版crystal中。下面讓我們?cè)赗OS-1中運(yùn)行一個(gè)節(jié)點(diǎn),然后打開(kāi)ros1_bridge,測(cè)試ROS-2中發(fā)布的話題。此試驗(yàn)需要打開(kāi)四個(gè)獨(dú)立的終端,具體如下:
1)在第一個(gè)終端窗口中,同時(shí)初始化ROS-1和ROS-2的工作空間,然后啟動(dòng)ros1_bridge功能包:
讀者將會(huì)看到Trying to connect to the ROS master的錯(cuò)誤提示。
2)在第二個(gè)終端窗口中,初始化ROS-1工作空間,并運(yùn)行roscore命令:
讀者將會(huì)看到連接到ROS master的信息。
3)在第三個(gè)終端窗口中,啟動(dòng)ROS-1的發(fā)布者節(jié)點(diǎn):
讀者將會(huì)在終端1和3中看到發(fā)布的信息。
4)在第四個(gè)終端窗口中,初始化ROS-2的工作空間,并啟動(dòng)訂閱者節(jié)點(diǎn):
讀者將會(huì)在終端1、3、4中看到發(fā)布的信息。
四個(gè)終端窗口的輸出信息應(yīng)如圖2.16所示。
圖2.16 ROS-1與ROS-2的通信示意圖,從左到右、從上到下分別為終端1~4
基于上述操作,讀者將方便地建立起ROS-1與ROS-2之間的連接,實(shí)現(xiàn)兩個(gè)版本ROS功能包的通信。此外,還可以采用同樣的方法,通過(guò)使用simple_bridge_2_to_1節(jié)點(diǎn)實(shí)現(xiàn)ROS-1與ROS-2的通信。
建議讀者嘗試dynamic_bridge節(jié)點(diǎn),該節(jié)點(diǎn)能夠自動(dòng)建立ROS-1和/或ROS-2節(jié)點(diǎn)間的通信連接。
- DeepSeek實(shí)操指南:引爆AI時(shí)代個(gè)人效率核聚變
- AI芯片:科技探索與AGI愿景
- AI辦公高手速成:工具與提效技巧大全
- AI落地:讓人工智能為你所用
- 工業(yè)人工智能
- 2019年華北五省(市、自治區(qū))大學(xué)生機(jī)器人大賽:人工智能與機(jī)器人創(chuàng)意設(shè)計(jì)賽論文集
- 人工智能安全
- 不會(huì)被機(jī)器替代的人:智能時(shí)代的生存策略
- COMSOL Multiphysics工程實(shí)踐與理論仿真
- 智能移動(dòng)機(jī)器人:技術(shù)與應(yīng)用(人工智能技術(shù)叢書(shū))
- 移動(dòng)機(jī)器人技術(shù)及其應(yīng)用
- 塊數(shù)據(jù)4.0:人工智能時(shí)代的激活數(shù)據(jù)學(xué)
- 人人都能懂的人工智能
- 物聯(lián)網(wǎng)技術(shù)應(yīng)用:智能家居(第2版)
- 人工智能注意力機(jī)制:體系、模型與算法剖析