系統環境: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資料夾,在裡面編...