實(shí)現(xiàn)通信的代碼在ros_comm包中,如下。
其中clients文件夾一共有127個文件,看來是最大的包了。
現(xiàn)在我們來到了ROS最核心的地帶。


客戶端這個名詞出現(xiàn)的有些突然,一個機(jī)器人操作系統(tǒng)里為什么需要客戶端。
原因是,節(jié)點(diǎn)與主節(jié)點(diǎn)master之間的關(guān)系是client/server,這時每個節(jié)點(diǎn)都是一個客戶端(client),而master自然就是服務(wù)器端(server)。
那客戶端庫(client libraries)是干什么的?就是為實(shí)現(xiàn)節(jié)點(diǎn)之間通信的。
雖然整個文件夾中包含的文件眾多,但是我們?nèi)绻凑找欢ǖ拿}絡(luò)來分析就不會眼花繚亂。
節(jié)點(diǎn)之間最主要的通信方式就是基于消息的。為了實(shí)現(xiàn)這個目的,需要三個步驟,如下。
弄明白這三個步驟就明白ROS的工作方式了。這三個步驟看起來是比較合乎邏輯的,并不奇怪。
消息的發(fā)布者和訂閱者(即消息的接收方)建立連接;
發(fā)布者向話題發(fā)布消息,訂閱者在話題上接收消息,將消息保存在回調(diào)函數(shù)隊(duì)列中;
調(diào)用回調(diào)函數(shù)隊(duì)列中的回調(diào)函數(shù)處理消息。
-
通信
+關(guān)注
關(guān)注
18文章
6267瀏覽量
139264 -
客戶端
+關(guān)注
關(guān)注
1文章
304瀏覽量
17353 -
ROS
+關(guān)注
關(guān)注
1文章
290瀏覽量
18334
發(fā)布評論請先 登錄
在Android中使用ROS
ROS與STM32是如何進(jìn)行通信的
做ROS與樹莓派進(jìn)行通信
ROS簡介
什么是ROS?ROS產(chǎn)生、發(fā)展和壯大的原因和意義
怎樣通過ROS Arduino程序去點(diǎn)亮LED燈呢
基于FreeRTOS的micro(微型)ROS
ROS與STM32通信
深度解析開源無人機(jī)ROS開發(fā)方案
Unity與ROS鏈接介紹

ROS是如何設(shè)計的 ROS客戶端庫
評論