第一步定义msg文件
在src下面的功能包里新建msg文件夹
然后新建如下代码并保存为 Person.msg
string name
uint8 sex
uint8 age
uint8 unknown = 0
uint8 male = 1
uint8 female = 2
上面这端段代码写在Person.msg里面
第二步 在package.xml里面添加功能包依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
第三步 修改CMakeLists.txt
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
roscpp
rospy
std_msgs
message_generation
)
add_message_files(
FILES
Person.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
......
CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs message_runtime
......
)
第四步 在src文件夹中的CMakeLists.txt中添加几行代码如下:
add_executable(person_publisher src/person_publisher.cpp)
target_link_libraries(person_publisher ${catkin_LIBRARIES})
add_dependencies(person_publisher ${PROJECT_NAME}_generate_messages_cpp)
add_executable(person_subscriber src/person_subscriber.cpp)
target_link_libraries(person_subscriber ${catkin_LIBRARIES})
add_dependencies(person_subscriber ${PROJECT_NAME}_generate_messages_cpp)
第五步 编译
catkin_make
roscore
rosrun learning_topic person_publisher
rosrun learning_topic person_subscriber
完成