多對(duì)多通信
大家再仔細(xì)想下這些可以訂閱的東西,是不是并不是唯一的,我們每個(gè)人可以訂閱很多公眾號(hào)、報(bào)紙、雜志,這些公眾號(hào)、報(bào)紙、雜志也可以被很多人訂閱。沒錯(cuò),ROS里的話題也是一樣,發(fā)布者和訂閱者的數(shù)量并不是唯一的,可以稱之為是多對(duì)多的通信模型。
因?yàn)樵掝}是多對(duì)多的模型,發(fā)布控制指令的搖桿可以有一個(gè),也可以有2個(gè)、3個(gè),訂閱控制指令的機(jī)器人可以有1個(gè),也可以有2個(gè)、3個(gè)。
大家可以想象一下這個(gè)畫面,似乎還是挺魔性的,如果存在多個(gè)發(fā)送指令的節(jié)點(diǎn),建議大家要注意區(qū)分優(yōu)先級(jí),不然機(jī)器人可能不知道該聽誰的了。
異步通信
話題通信還有一個(gè)特性,那就是異步,這個(gè)詞可能有同學(xué)是第一次聽說?所謂異步,只要是指發(fā)布者發(fā)出數(shù)據(jù)后,并不知道訂閱者什么時(shí)候可以收到。
類似古月居公眾號(hào)發(fā)布一篇文章,你什么時(shí)候閱讀的,古月居根本不知道,報(bào)社發(fā)出一份報(bào)紙,你什么時(shí)候收到,報(bào)社也是不知道的。這就叫做異步。
異步的特性也讓話題更適合用于一些周期發(fā)布的數(shù)據(jù),比如傳感器的數(shù)據(jù),運(yùn)動(dòng)控制的指令等等,如果某些邏輯性較強(qiáng)的指令,比如修改某一個(gè)參數(shù),用話題傳輸就不太合適了。
消息接口
最后,既然是數(shù)據(jù)傳輸,發(fā)布者和訂閱者就得統(tǒng)一數(shù)據(jù)的描述格式,不能一個(gè)說英文,一個(gè)理解成了中文。在ROS中,話題通信數(shù)據(jù)的描述格式稱之為消息,對(duì)應(yīng)編程語言中數(shù)據(jù)結(jié)構(gòu)的概念。
比如這里的一個(gè)圖像數(shù)據(jù),就會(huì)包含圖像的長(zhǎng)寬像素值、每個(gè)像素的RGB等等,在ROS中都有標(biāo)準(zhǔn)定義。
消息是ROS中的一種接口定義方式,與編程語言無關(guān),我們也可以通過.msg后綴的文件自行定義,有了這樣的接口,各種節(jié)點(diǎn)就像積木塊一樣,通過各種各樣的接口進(jìn)行拼接,組成復(fù)雜的機(jī)器人系統(tǒng)。
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
29757瀏覽量
213055 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7257瀏覽量
91943 -
異步通信
+關(guān)注
關(guān)注
1文章
58瀏覽量
10352 -
通信模型
+關(guān)注
關(guān)注
0文章
10瀏覽量
7928
發(fā)布評(píng)論請(qǐng)先 登錄
多機(jī)通信串口通信中斷
MQTT的通信模型及消息
基于VxWorks實(shí)時(shí)操作系統(tǒng)的通信模型該怎樣去設(shè)計(jì)?
怎樣通過WebRTC實(shí)現(xiàn)多對(duì)多通信呢
移動(dòng)Agent位置透明通信模型的設(shè)計(jì)
數(shù)據(jù)網(wǎng)格中基于優(yōu)化機(jī)制的通信模型
異步通信,異步通信是什么意思

基于VxWorks的通信模型設(shè)計(jì)

評(píng)論