参考:
- 古月居ROS入门21讲——话题消息的定义与使用:https://www.bilibili.com/video/BV1zt411G7Vn?p=12
- 【ROS入门-7】ROS自定义消息:https://www.guyuehome.com/34142
01 基础设置
- 创建
.msg
package.xml
CMakeLists.txt
02 发布/接收话题(Python)
from 功能包名称.msg import 自定义msg文件名称
如:from learning_topic.msg import Person
#创建一个Publisher,发布名为/person_ info的topic,消息类型为learning_topic::Person,队列长度10
person_info_pub = rospy.Publisher('/person_info', Person, queue_size=10) .
- 发布话题
- 接收话题
03 消息类型
4 实践(Python)
-
创建msg文件
在
my_yolo
功能包的msg
文件夹创建.msg
文件guyue@guyue:~/ur_ws/src/my_yolo/msg$ touch camera_object.msg
-
在package.xml中添加依赖
<build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>
如果是新创建的功能包,可以直接在功能包创建时添加依赖:catkin_create_pkg my_package roscpp rospy std_msgs message_generation message_runtime
-
在CMakeLists.txt中添加编译选项
这个是在功能包的
CMakeLists.txt
中修改需要注意的是:
和古月居PPT不一样的是message_runtime
应当加在find_package(catkin REQUIRED COMPONENTS)
中,而不是catkin_package()
中find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs # 添加下两行 message_generation message_runtime ) add_message_files( FILES camera_object.msg ) generate_messages( DEPENDENCIES std_msgs ) catkin_package( # INCLUDE_DIRS include # LIBRARIES my_yolo # CATKIN_DEPENDS roscpp rospy std_msgs # DEPENDS system_lib )