接口可以讓程序之間的依賴降低,便于我們使用別人的代碼,也方便別人使用我們的代碼,這就是ROS的核心目標,減少重復造輪子。

ROS有三種常用的通信機制,分別是話題、服務、動作,通過每一種通信種定義的接口,各種節(jié)點才能有機的聯(lián)系到一起。
語言無關
為了保證每一個節(jié)點可以使用不同語言編程,ROS將這些接口的設計做成了和語言無關的。
比如這里看到的int32表示32位的整型數(shù),int64表示64位的整型數(shù),bool表示布爾值,還可以定義數(shù)組、結(jié)構(gòu)體,這些定義在編譯過程中,會自動生成對應到C++、Python等語言里的數(shù)據(jù)結(jié)構(gòu)。

話題通信接口的定義使用的是.msg文件,由于是單向傳輸,只需要描述傳輸?shù)拿恳粠瑪?shù)據(jù)是什么就行,比如在這個定義里,會傳輸兩個32位的整型數(shù),x、y,我們可以用來傳輸二維坐標的數(shù)值。
服務通信接口的定義使用的是.srv文件,包含請求和應答兩部分定義,通過中間的“---”區(qū)分,比如之前我們學習的加法求和功能,請求數(shù)據(jù)是兩個64位整型數(shù)a和b,應答是求和的結(jié)果sum。
動作是另外一種通信機制,用來描述機器人的一個運動過程,使用.action文件定義。
比如我們讓小海龜轉(zhuǎn)90度,一邊轉(zhuǎn)一邊周期反饋當前的狀態(tài),此時接口的定義分成了三個部分,分別是動作的目標;
比如是開始運動,運動的結(jié)果,最終旋轉(zhuǎn)的90度是否完成,還有一個周期反饋;
比如每隔1s反饋一下當前轉(zhuǎn)到第10度、20度還是30度了,讓我們知道運動的進度。
-
機器人
+關注
關注
213文章
31092瀏覽量
222347 -
服務器
+關注
關注
14文章
10256瀏覽量
91521 -
通信接口
+關注
關注
3文章
264瀏覽量
31917 -
ROS
+關注
關注
1文章
293瀏覽量
18748
發(fā)布評論請先 登錄
基于串口的STM32通過rosserial和ROS系統(tǒng)通信的代碼
ROS與STM32是如何進行通信的
什么是ROS?ROS產(chǎn)生、發(fā)展和壯大的原因和意義
如何在ROS上使用serial包進行串口通信
RT-Thread實時操作系統(tǒng)與ROS2是怎樣進行通信的
ROS是什么?機器人操作系統(tǒng)ROS的介紹
ROS與STM32通信
ROS基本介紹
Unity與ROS鏈接介紹
ROS核心框架介紹
ROS通信接口機制介紹
評論