ROS 服務 訊息傳遞

2021-08-11 04:16:29 字數 1320 閱讀 8268

定義服務的訊息型別與自定義話題的訊息型別類似

1、首先在軟體包目錄下 新建乙個 srv資料夾,並且新建乙個訊息型別檔案

mkdir ~/roswork_space/src/hello_ros/srv

cd ~/roswork_space/src/hello_ros/srv

touch my_srv.srv

或者直接 vim ~/roswork_space/src/hello_ros/srv/my_srv.srv

2、編輯你想要的訊息型別

int32 a

int32 b

int32 c

------

int32 sum

bool success

常見的ros訊息中包含的型別有

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

float32, float64

string

time, duration

other msg files

variable-length array and fixed-length array[c]

header(包含乙個timestamp和座標系資訊)

3、編輯軟體包下的cmakelists.txt檔案

find_package(catkin required components

message_generation roscpp geometry_msgs

add_message_files(files my_srv.srv) //根據自己的訊息寫

generate_messages(dependencies

std_msgs)

catkin_package(

catkin_depends

message_runtime

)4、編輯package.xml檔案

message_generation

message_generation

message_runtime

服務不同於話題,服務是client與server一對一的通訊,而且保證訊息能夠送到(有些類似與tcp)

所以使用服務進行訊息傳遞時,有些問題需要注意一下。

建立ROS訊息和ROS服務

1.1在工作空間下的功能包下新建名為msg的資料夾 新建person.msg檔案 int64 num1.2為確保msg檔案被轉換成python或者其他語言的源 需要修改功能包下package.xml檔案,以新增功能包依賴 message generation build depend message...

ROS 介面(訊息與服務)

ros應用程式通常通過以下兩種型別之一的介面進行通訊 訊息和服務。ros使用簡化的描述語言來描述這些介面。此描述使ros工具可以輕鬆地為多種目標語言中的介面型別自動生成源 在本文件中,我們將介紹支援的型別以及如何建立自己的msg srv檔案。訊息描述在ros包中msg 目錄下.msg字尾的檔案中定義...

ROS入門教程 (建立ROS訊息和ROS服務)

參考中文官網 description 本教程詳細介紹如何建立並編譯ros訊息和服務,以及rosmsg,rossrv和roscp命令列工具的使用。01.訊息 msg 和服務 srv 介紹 msg檔案存放在package的msg目錄下,srv檔案則存放在srv目錄下。msg檔案實際上就是每行宣告乙個資料...