- 自定义话题消息
- 在learning_topic中创建msg文件夹,存放消息的相关定义
- 进入msg,右键,打开终端
touch Person.msg
即可创建Person.msg文件
ros根据定义把它变成不同的C++和Python文件
-
这里的package.xml和CMakeLists.txt在learning_topic功能包下
-
编译选项解读:
图片中带省略号的那部分,意思是在函数括号最后面加上省略号后的部分 -
编译依赖:依赖动态产生message的一个功能包
运行依赖:依赖动态message_runtime运行时的一个依赖
-
将Person.msg为定义的消息接口,,针对这个文件来做编译
第二句意思为编译Person.msg需要ROS已有的包std_msgs(String,uint8都是在里面定义的,文件里有注释说明) -
catkin_package(…… message_runtime)
在CA–这行,取消注释,往该行最后添加
catkin_make
编译后,可在devel/include/learning_topic中看到Person.h(可作为头文件调用)。
-
把person_publisher.cpp和person_subscriber.cpp放进learning_topic的src中
-
将以下代码加入到learning_topic下的CMakeLists文件下
最后一句使与头文件Person.h产生连接
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
source devel/setup.bash
roscore
rosrun learning_topic person_subscriber
rosrun learning_topic person_publisher
把master关闭后,不影响通信,已连接,关系已创建