目录
一.消息类型功能包简介
ROS的元功能包common_msgs提供了多种消息类型:
std_msgs——标准数据类型
geometry_msgs——几何学数据类型
sensor_msgs——传感器数据类型
在一些情况下需要针对自己的机器人应用设计特定的消息类型。
二.自定义话题消息
功能包中的msg文件夹中就是自定义的消息类型文件。msg文件夹在功能包根目录下。
创建文件夹msg,创建文件Person.msg:
定义一个描述个人信息的消息类型:
string name
int32 age
float32 height
为了使用这些自定义消息类型,需要编译msg文件。
在package.xml文件中添加功能包依赖:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
在CMakeLists.txt文件。
编译时依赖:加入message_generation
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
运行时依赖:取消注释并加入message_runtime
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES sub_pub
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
# DEPENDS system_lib
)
加入文件:
add_message_files(
FILES
Person.msg
)
自定义消息类型文件的依赖:
generate_messages(
DEPENDENCIES
std_msgs
)
回到工作空间根目录,编译工作空间
catkin_make
编译后的中间文件:可以找到Person.h头文件,和Person.py中的python类。
C++ 需要调用的中间文