ros入门——话题消息的定义与使用

感谢古月up主:https://www.bilibili.com/video/BV1zt411G7Vn?p=12

ros入门——话题消息的定义与使用

1、第一步:新建文件夹msg,在终端新建Person.msg文件

ros入门——话题消息的定义与使用

ros入门——话题消息的定义与使用

 

打开Person.msg文件,输入以下内容并保存:

string name
uint8 sex
uint8 age

uint8 unknown=0
uint8 male = 1
uint8 female = 2
 

2、第二步:在package.xml下添加:

<build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

ros入门——话题消息的定义与使用ros入门——话题消息的定义与使用

 

3、第三步:在CMakeLists.txt下添加 

①message_generation

ros入门——话题消息的定义与使用

ros入门——话题消息的定义与使用

②add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs)

ros入门——话题消息的定义与使用

③去掉注释CATKIN_DEPENDS geometry_msgs roscpp std_msgs turtlesim,后面加上message_runtime

CATKIN_DEPENDS geometry_msgs roscpp std_msgs turtlesim message_runtime

 

ros入门——话题消息的定义与使用

 

4、回到工作空间的根目录下,进行编译:catkin_make

在devel-include-learning——topic下生成c++的头文件:Person.h

ros入门——话题消息的定义与使用

 

5、在cmakelists下添加编译语句:

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_publisher ${PROJECT_NAME}_generate_messages_cpp)

ros入门——话题消息的定义与使用

ros入门——话题消息的定义与使用

 

6、在根目录下编译catkin_make

ros入门——话题消息的定义与使用

7、运行发布者和订阅者

ros入门——话题消息的定义与使用

ros入门——话题消息的定义与使用