先附上ros 教程链接:http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv
先讲一下msg文件和srv文件的作用,
msg文件: 用于表述ros 中msg的类型(field),并将其生成源文件
srv文件:用来描述一个服务,指定其输入和输出的参数类型
msg部分:
roscd beginner_tutorials
mkdir msg
echo "int64 num" > msg/Num.msg
修改pckage.xml,添加依赖:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
这是因为在编译过程中需要这两项依赖来将message文件编译为源码。
同时修改 CMakeLists.txt:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
add_message_files(
FILES
Num.msg
)
这里有个小伏笔,等后面遇到会再讲。
srv部分:
在package下新建一个文件夹srv:
mkdir srv
从ros官方提供的教程库中复制:
roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
我们可以打开看一下这个文夹
int64 a
int64 b
---
int64 sum
这个srv描述的是一个加法的服务,前面两行表示输入参数的类型,后面一行表示输出。
同上面修改package.xml 和 修改CMakeList.txt
add_service_files(
FILES
AddTwoInts.srv
)