首先在工作目录中创建自己的包
cd slam_ws/src
catkin_create_pkg slam roscpp rospy
新建mag文件夹存放 .msg文件
mkdir msg
cd msg
touch slam.msg
vim slam.msg
编辑msg文件的格式
std_msgs Header header
float32 temperature
int32 humidity
修改package.xml
添加两行代码
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
修改CMakeLists.txt
find_package中添加构建msg需要寻找的依赖包
find_package(catkin REQUIRED COMPONENTS
roscpp
message_generation
std_msgs
)
add_message_files添加自己的msg文件
add_message_files(
FILES
slam.msg
)
generate_message 添加创建msg文件的依赖包
添加自己的msg文件中使用到的系统中的msg
generate_message(
DEPENDENCIES
std_msgs
)
catkin_package中添加catkin中用到的依赖包
catkin_package(
CATKIN_DEPENDS message_runtime roscpp
)
编译之后,就能使用这个包。
查看是否编译成功
rosmsg package <projectname>/<msgname>.msg
调用
在cpp文件中调用,生成的msg会变在devel中变成.h文件
#include <projectname/slam.h>
...
// 创建发布对象
ros::Publisher pub = nh.advertise<projectname::slam>("pet",100);