一.新建工作包
$ cd ~/catkin_ws/src
$ catkin_create_pkg learning_communication std_msgs roscpp rospy
编译
$ cd ..
$ catkin_make
二.创建ROS消息与ROS服务
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
取消message_generation,message_runtime的外层注释<!-- -->,如图:
(4)编辑CMakeLists.txt
对find_message()等函数做出如下修改:
(5)编译
$ cd ~/catkin_ws
$ catkin_make
(6)使用 rosmsg
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_package(),同msg;
添加依赖,同msg;
修改add_service_files(),generate_messages();
修改如下:
(5)编译
(6)使用 rossrv
rossrv show learning_communication/AddTwoInts