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

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

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

評論