1、在catkin_ws/src文件夹下面创建一个功能包
catkin_create_pkg learning_topic roscpp rospy std_msgs geometry_msgs
2、在catkin_ws/src/learning_topic文件夹下面建一个msg文件夹,在msg文件夹下面建一个Person.msg,内容如下:
string name
uint age
uint sex
string class
uint8 unkown=0
uint8 male =1
uint8 female=2
3、在package.xml文件夹中添加编译选项:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
如下图所示:
4、在CMakeLists.txt中添加编译选项:message_generation
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
geometry_msgs
message_generation
)
如下图所示:
去掉add_message_files和generate_messages注释,并在add_message_files中添加自定义的消息,如Person.msg,其他自定义消息在Person.msg后面继续写即可
add_message_files(
FILES
Person.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
如下图所示:
在catkin_package下面去掉CATKIN_DEPENDS注释,并在后面添加message_runtime:
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES learning_sun
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs message_runtime
)
如下图所示:
注意:add_message_files和generate_messages需要放到catkin_package前面,才可以编译通过
5、编译
catkin_make
6、查看消息
rosmsg show Person