在现有的模型中,通常都是Node与Node节点进行数据的传递。ros中包含了一些msg,但是不满足于日常开发使用,于是需要自定义格式来满足需求。废话不多说,过程如下:
自定义msg
1.创建包
catkin_create_pkg 业务名_msgs roscpp cospy rosmsg
2.创建msg目录
3.新建 xxx.msg 文件
eg:string name
int64 age
4.配置package.xml文件
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
5.配置CMakeLists.txt
在find_package添加message_generation
find_package(catkin REQUIRED COMPONENTS
roscpp
rosmsg
rospy
message_generation
)
add_message_file配置
add_message_files(
FILES
Demo.msg
)
generation_msg配置
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package配置
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES demo_msg
CATKIN_DEPENDS roscpp rosmsg rospy message_runtime
# DEPENDS system_lib
)
ok,到这里就搞定了,别忘了右上角重新构建
检验
1.到工作空间编译运行 catkin_make
2.rosmsg show demo_msgs/demo查看消息列表 或者来到devel的include目录下,如果生成了头文件说明,自定义消息创建成功
使用
在自己创建的项目里:
添加package.xml依赖配置 ,里边的内容是自己创建的msg包名的名字
<build_depend>demo_msgs</build_depend>
<build_export_depend>demo_msgs</build_export_depend>
<exec_depend>demo_msgs</exec_depend>
添加CMakeLists.txt依赖配置
find_package(catkin REQUIRED COMPONENTS
roscpp
rosmsg
rospy
demo_msgs
)
代码中导包
#include "demo_msgs/Demo"
搞定!