ROS学习:自定义话题消息

参考:

  • 古月居ROS入门21讲——话题消息的定义与使用:https://www.bilibili.com/video/BV1zt411G7Vn?p=12
  • 【ROS入门-7】ROS自定义消息:https://www.guyuehome.com/34142

01 基础设置

  1. 创建.msg
  2. package.xml
  3. CMakeLists.txt

ROS学习:自定义话题消息_第1张图片

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) .
  • 发布话题
    ROS学习:自定义话题消息_第2张图片
  • 接收话题
    ROS学习:自定义话题消息_第3张图片

03 消息类型

ROS学习:自定义话题消息_第4张图片ROS学习:自定义话题消息_第5张图片

4 实践(Python)

  1. 创建msg文件

    my_yolo功能包的msg文件夹创建.msg文件

    guyue@guyue:~/ur_ws/src/my_yolo/msg$ touch camera_object.msg
    
  2. 在package.xml中添加依赖

    <build_depend>message_generationbuild_depend>
    <exec_depend>message_runtimeexec_depend>
    

    ROS学习:自定义话题消息_第6张图片
    如果是新创建的功能包,可以直接在功能包创建时添加依赖:

    catkin_create_pkg my_package roscpp rospy std_msgs message_generation message_runtime
    
  3. 在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
    )
    

你可能感兴趣的:(ROS机器人操作系统,ros)