ROS通訊程式設計 話題程式設計 自定義話題訊息

2021-09-02 19:45:58 字數 1064 閱讀 4566

系統環境:ubuntu16.04

定義msg檔案:

在功能包目錄下新建msg資料夾。

在msg資料夾下新建person.msg檔案。

在檔案person.msg中輸入以下內容並儲存。

string name

uint8 ***

uint8 age

uint8 unknown = 0

uint8 male = 1

uint8 female = 2

新增功能包依賴,開啟功能包目錄下的package.xml,新增以下內容並儲存。

#確保msg/msg檔案被轉換為其他語言的源**(如c++)。

#在構建時需要「message_generation」,執行時需要「message_runtime」

message_generation

message_runtime

新增編譯選項,開啟功能包目錄下的cmakelists.txt,新增以下內容並儲存。

#新增對message_generation的依賴

find_package( … message_generation)

#設定執行依賴

catkin_package(catkin_depends roscpp

rospy std_msgs message_runtime)

#新增msg檔案

add_message_files(files person.msg)

#所依賴的含有.msg檔案的package(一定要在catkin_package()之前)

generate_messages(dependencies std_msgs)

回到工作空間目錄下 $catkin_make

完成測試:

開啟乙個新的終端 $rosmsg show person

顯示[功能包/person]:

uint8 unknown=0

uint8 male=1

uint8 female=2

string name

uint8 ***

uint8 age

可以看到輸入的內容。

ROS通訊程式設計 話題程式設計

話題程式設計的流程如下 以乙個發布者talker.cpp的原始碼舉例 該例程將發布chatter話題,訊息型別string include include ros ros.h include std msgs string.h intmain int argc,char ar return0 新增編...

ROS通訊機制(二) 話題通訊自定義msg

在 ros 通訊協議中,資料載體是乙個較為重要組成部分,ros 中通過 std msgs 封裝了一些原生的資料型別,但這些資料一般只包含乙個 data 字段,當傳輸一些複雜的資料,可以使用自定義的訊息型別 建立自定義msg 功能包下新建msg目錄,新增person.msg string name i...

ROS自定義話題(發布與接收)

1.建立乙個自己的工作空間 catkin ws 2.在工作空間內建立乙個src資料夾 3.運用指令catkin create pkg 包名 依賴關係roscpp rospy std msgs 4.在建立的功能包裡面的src檔案中編寫自己的檔案 若自定義訊息,則在功能包內新建乙個msg資料夾,在裡面編...