機器人是一個復(fù)雜的智能系統(tǒng),并不僅僅是鍵盤遙控運動、識別某個目標(biāo)這么簡單,我們需要實現(xiàn)的是送餐、送貨、分揀等滿足具體場景需求的機器人。
在這些應(yīng)用功能的實現(xiàn)中,另外一種ROS通信機制也會被常常用到——那就是動作。從這個名字上就可以很好理解這個概念的含義,這種通信機制的目的就是便于對機器人某一完整行為的流程進(jìn)行管理。
通信模型
舉個例子,比如我們想讓機器人轉(zhuǎn)個圈,這肯定不是一下就可以完成的,機器人得一點一點旋轉(zhuǎn),直到360度才能結(jié)束,假設(shè)機器人并不在我們眼前,發(fā)出指令后,我們根本不知道機器人到底有沒有開始轉(zhuǎn)圈,轉(zhuǎn)到哪里了?
OK,現(xiàn)在我們需要的是一個反饋,比如每隔1s,告訴我們當(dāng)前轉(zhuǎn)到多少度了,10度、20度、30度,一段時間之后,到了360度,再發(fā)送一個信息,表示動作執(zhí)行完成。
這樣一個需要執(zhí)行一段時間的行為,使用動作的通信機制就更為合適,就像裝了一個進(jìn)度條,我們可以隨時把控進(jìn)度,如果運動過程當(dāng)中,我們還可以隨時發(fā)送一個取消運動的命令。
客戶端/服務(wù)器模型
動作和服務(wù)類似,使用的也是客戶端和服務(wù)器模型,客戶端發(fā)送動作的目標(biāo),想讓機器人干什么,服務(wù)器端執(zhí)行動作過程,控制機器人達(dá)到運動的目標(biāo),同時周期反饋動作執(zhí)行過程中的狀態(tài)。
客戶端發(fā)送一個運動的目標(biāo),想讓機器人動起來,服務(wù)器端收到之后,就開始控制機器人運動,一邊運動,一邊反饋當(dāng)前的狀態(tài)。
如果是一個導(dǎo)航動作,這個反饋可能是當(dāng)前所處的坐標(biāo),如果是機械臂抓取,這個反饋可能又是機械臂的實時姿態(tài)。當(dāng)運動執(zhí)行結(jié)束后,服務(wù)器再反饋一個動作結(jié)束的信息。整個通信過程就此結(jié)束。
一對多通信
和服務(wù)一樣,動作通信中的客戶端可以有多個,大家都可以發(fā)送運動命令,但是服務(wù)器端只能有一個,畢竟只有一個機器人,先執(zhí)行完成一個動作,才能執(zhí)行下一個動作。
同步通信
既然有反饋,那動作也是一種同步通信機制,之前我們也介紹過,動作過程中的數(shù)據(jù)通信接口,使用.action文件進(jìn)行定義。
由服務(wù)和話題合成
大家再仔細(xì)看下上邊的動圖,是不是還會發(fā)現(xiàn)一個隱藏的秘密。
動作的三個通信模塊,竟然有兩個是服務(wù),一個是話題,當(dāng)客戶端發(fā)送運動目標(biāo)時,使用的是服務(wù)的請求調(diào)用,服務(wù)器端也會反饋一個應(yīng)帶,表示收到命令。
動作的反饋過程,其實就是一個話題的周期發(fā)布,服務(wù)器端是發(fā)布者,客戶端是訂閱者。
沒錯,動作是一種應(yīng)用層的通信機制,其底層就是基于話題和服務(wù)來實現(xiàn)的。
-
機器人
+關(guān)注
關(guān)注
213文章
29731瀏覽量
212843 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9793瀏覽量
87957 -
通信模型
+關(guān)注
關(guān)注
0文章
10瀏覽量
7927 -
ROS
+關(guān)注
關(guān)注
1文章
288瀏覽量
17741
發(fā)布評論請先 登錄
Al大模型機器人
【「具身智能機器人系統(tǒng)」閱讀體驗】2.具身智能機器人大模型
機器人姿態(tài)監(jiān)控
基于VxWorks實時操作系統(tǒng)的通信模型該怎樣去設(shè)計?
機器人的定義是什么?工業(yè)機器人的應(yīng)用有哪些?
最實用的STM32和ROS機器人的串口通信方案
全向輪機器人有哪些特性?
將Simulink模型與Lego機器人結(jié)合使用
移動Agent位置透明通信模型的設(shè)計
基于VxWorks的通信模型設(shè)計

什么是通信模型DDS
機器人多節(jié)點話題通信模型介紹

通信模型的多對多通信、異步通信和消息接口是什么

評論