在ROS系統(tǒng)中,無論話題還是服務(wù),或者我們后續(xù)將要學(xué)習(xí)的動作,都會用到一個重要的概念——通信接口。
通信并不是一個人自言自語,而是兩個甚至更多個人,你來我往的交流,交流的內(nèi)容是什么呢?為了讓大家都好理解,我們可以給傳遞的數(shù)據(jù)定義一個標準的結(jié)構(gòu),這就是通信接口。
接口的定義
接口的概念在各個領(lǐng)域隨處可見,無論是硬件結(jié)構(gòu)還是軟件開發(fā),都有廣泛的應(yīng)用。
比如生活中最為常見的插頭和插座,兩者必須匹配才能使用,電腦和手機上的USB接口也是,什么Micro-USB、TypeC等等,都是關(guān)于接口的具體定義。
軟件開發(fā)中,接口的使用就更多了,比如我們在編寫程序時,使用的函數(shù)和函數(shù)的輸入輸出也稱之為接口,每一次調(diào)用函數(shù)的時候,就像是把主程序和調(diào)用函數(shù)通過這個接口連接到一起,系統(tǒng)才能正常工作。
更為形象的是圖形化編程中使用的程序模塊,每一個模塊都有固定的結(jié)構(gòu)和形狀,只有兩個模塊相互匹配,才能在一起工作,這就很好的講代碼形象化了。
所以什么是接口,它是一種相互關(guān)系,只有彼此匹配,才能建立連接。
回到ROS的通信系統(tǒng),它的主要目的就是傳輸數(shù)據(jù),那就得讓大家高效的建立連接,并且準確包裝和解析傳輸?shù)臄?shù)據(jù)內(nèi)容,話題、服務(wù)等機制也就誕生了,他們傳輸?shù)臄?shù)據(jù),都要符合通信接口的標準定義。
比如攝像頭驅(qū)動發(fā)布的圖像話題,由每個像素點的R、G、B三原色值組成,控制機器人運動的速度指令,由線速度和角速度組成,進行機器人配置的服務(wù),有配置的參數(shù)和反饋的結(jié)果組成等等。
類似這些常用的定義,在ROS系統(tǒng)中都有提供,我們也可以自己開發(fā)。
這些接口看上去像是給我們加了一些約束,但卻是ROS系統(tǒng)的精髓所在。
舉個例子,我們使用相機驅(qū)動節(jié)點的時候,完全不用關(guān)注它是如何驅(qū)動相機的,只要一句話運行,我們就可以知道發(fā)布出來的圖像數(shù)據(jù)是什么樣的了,直接開始我們的應(yīng)用開發(fā);
類似的,鍵盤控制我們也可以安裝一個ROS包,如何實現(xiàn)的呢?不用關(guān)心,反正它發(fā)布出來的肯定是線速度和角速度。
-
通信接口
+關(guān)注
關(guān)注
3文章
251瀏覽量
31397 -
ROS
+關(guān)注
關(guān)注
1文章
285瀏覽量
17592 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1029瀏覽量
21732
發(fā)布評論請先 登錄
接口的定義及作用
MIDI接口定義,MIDI接口游戲桿接口引腳功能定義圖

SCART接口功能定義

服務(wù)通信接口的定義與使用

SIM卡座的接口定義

評論