ROS(6)訊息和服務具體實現

2021-07-26 12:28:12 字數 1424 閱讀 1981

ros(6)訊息和服務具體實現

訊息(msg): msg檔案就是乙個描述ros中所使用訊息型別的簡單文字。它們會被用來生成不同語言的源**。

服務(srv): 乙個srv檔案描述一項服務。它包含兩個部分:請求和響應。

msg檔案存放在package的msg目錄下,srv檔案則存放在srv目錄下。

msg檔案實際上就是每行宣告乙個資料型別和變數名。可以使用的資料型別如下:

int8,int16, int32, int64 (plus uint*)

float32,float64

string

time,duration

othermsg files

variable-lengtharray and fixed-length array[c]

srv檔案分為請求和響應兩部分,由'---'分隔。

a.msg檔案建立與使用

1.編輯.msg字尾

2.package.xml檔案中需包含兩句

message_generation

message_runtime

3.cmakelists中find_package增加對message_generation&&message_runtime

的依賴4.cmakelists中add_message_files(

files

***.msg )

手動新增.msg檔案後, 確保新增了如下**:generate_messages();

5.msg檔案的使用

下面通過rosmsg show命令,檢查ros是否能夠識訊息。

使用方法:

$rosmsg show [message type]

messagetype 包括:pkg名/msg名

b.srv檔案建立與使用

編輯.srv檔案

2.3步同上

4.用你自己的srv檔名替換掉那些service*.srv檔案:

add_service_files(

files

***.srv )

使用 rossrv

以上就是建立乙個服務所需的所有步驟。下面通過rosmsg show命令,檢查ros是否能夠識該服務。

使用方法:

$rossrv show

***msg和srv都需要的步驟

接下來,在cmakelists.txt中找到如下部分:

#generate_messages(

#   dependencies

##  std_msgs  # or other packages containing msgs #)

去掉注釋並附加上所有你訊息檔案所依賴的那些含有.msg檔案的package,

如generate_messages(

dependencies

std_msgs )

建立ROS訊息和服務

1.建立乙個msg 在package msg下面 新增自定義的訊息檔案 msg。在ros中有乙個特殊的資料型別 header,它含有時間戳和座標系資訊。在msg檔案的第一行經常可以看到header header的宣告.header header string child frame id geome...

建立ROS自定義訊息和服務型別

首先切換到功能包底下 cd catkin ws src scan mkdir msg在msg資料夾下建立 乙個名為laserscan.msg的檔案,輸入如下內容 header header float32 angle min start angle of the scan rad float32 a...

ROS學習筆記5 建立訊息msg和服務srv

1.1 建立訊息msg 先在節點beginner tutorials目錄下建立msg資料夾,用於存放msg 1.2 在 package.xml檔案中增加依賴關係 在教程中 說是要加這2句,可實際情況,有這兩句編譯出錯。message generation message runtime 錯誤如下 最...