1.msg文件创建
#创建msg文件夹
roscd ros_pkg
mkdir msg
cd msg
#创建msg文件
touch a_msg.msg
gedit a_msg.msg
在a_msg.msg文件中写入msg内容,举个栗子
#数据类型 数据名称
int8 A
int8 B
修改package.xml,添加如下内容
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
修改CMakeList.txt,添加如下内容
find_package(catkin REQUIRED COMPONENTS
...
...
std_msgs
message_generation
...
)
catkin_package(
...
CATKIN_DEPENDS message_runtime ...
...)
add_message_files(
FILES
a_msg.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
2.srv文件创建
#创建srv文件夹
cd ros_pkg
mkdir srv
cd srv
#创建srv文件
touch b_srv.srv
gedit b_srv.srv
在b_srv.srv文件中写入srv内容,举个栗子,注意三个减号(---)
int64 A
int64 B
---
int64 Sum
同上,修改package.xml和CMakeList.txt文件,注意Files文件添加行改为如下内容
add_service_files(
FILES
b_srv.srv
)
3.验证是否成功
cd workspace
catkin_make
source devel/setup.bash
rosmsg show ros_pkg/a_msg
rossrv show ros_pkg/b_srv
如果show得到的内容跟a.msg和b.srv中写的内容一致,则编译正确!
4.msg和srv文件的使用,在cpp文件中添加如下头文件
//使用msg文件
#include "ros_pkg/a_msg.h"
//使用srv文件
#include "ros_pkg/b_srv.h"
RealMadrid1920 发布了28 篇原创文章 · 获赞 28 · 访问量 26万+ 私信 关注