1. 建立一個自定義消息 msg
(1)在 catkin_ws/src/learning_communication 檔案中,建立一個檔案夾,命名為 msg,在這個msg檔案夾裡面,建立一個 .msg 檔案,命名為msg.msg
(2)打開msg.msg,複制如下内容,當然,你可以仿造上面的形式多增加幾行以得到更為複雜的消息
int64 num
string first_name
string last_name
uint8 age
uint32 score
(3)編輯 package.xml
目的是確定msg檔案被轉換成為C++,Python和其他語言的源代碼:
打開 catkin_ws/src/learning_communication 下的 package.xml
删除:
<!-- <build_depend>message_generation</build_depend> -->
<!-- <exec_depend>message_runtime</exec_depend> -->
這兩行的 <!-- 、--> ,如下圖所示:

(4)編輯CMakeLists.txt
設定find_packag函數:
增加對 message_generation 的依賴,這樣就可以生成消息了
打開 catkin_ws/src/learning_communication 下的CMakeLists.txt
在find_package()函數中加入 message_generation
如下圖:
設定運作依賴:
找到如下行,并加入 message_runtime ,如下圖:
加入新消息名稱:
(5)編譯
cd ~/catkin_ws/
catkin_make
(6)使用 rosmsg
rosmsg show msg
顯示如下:
消息類型包含兩部分:
- learning_communication/msg-- 消息所在的位置
-
int64 num
string first_name
string last_name
uint8 age
uint32 score -- 消息名.
ROS學習--第4篇:ROS基礎---建立ROS消息和ROS服務1. 建立一個自定義消息 msg2. 建立一個服務 srv
2. 建立一個服務 srv
(1)在 catkin_ws/src/learning_communication 檔案中,建立一個檔案夾,命名為 srv,在這個srv檔案夾裡面,建立一個 .srv 檔案,命名為 AddTwoInts.srv
(2)打開 AddTwoInts.srv,複制如下内容
srv檔案分為請求和響應兩部分,由'---'分隔,其中 a 和 b 是請求, 而sum 是響應。
int64 a
int64 b
---
int64 sum
(3)編輯 package.xml
同建立msg
(4)編輯CMakeLists.txt
設定find_packag函數: 同建立msg
設定運作依賴:同建立msg
加入新消息名稱:
msg和srv都需要的步驟
去掉注釋并附加上所有你消息檔案所依賴的那些含有.msg檔案的package
(這個例子是依賴std_msgs,不要添加roscpp,rospy),結果如下:
(5)編譯
cd ~/catkin_ws/
catkin_make
(6)使用 rossrv
rossrv show learning_communication/AddTwoInts