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

ROS與STM32通信

深度解析開(kāi)源無(wú)人機(jī)ROS開(kāi)發(fā)方案
ROS是如何實(shí)現(xiàn)XMLRPC的
Unity與ROS鏈接介紹

評(píng)論