ROS的消息类型

消息的数据类型

基本消息数据类型

  • std_msgs/Float64MultiArray 注意data后为冒号+空格,接方括号包裹的数据。不使用默认补全后的换行及短横线。
    $ rostopic pub -1 /array_test std_msgs/Float64MultiArray "layout:
      dim:
      - label: ''
        size: 3
        stride: 0
      data_offset: 0
    data: [0.0, 1.0, 2.0]" 
    
  • std_msgs

创建消息的数据类型

基于基础消息类型创建自定义类型

基于复合消息类型创建自定义类型

  • 例如需要在自定义消息中使用geometry_msgs/Pointgeometry_msgs/Quaternion
    1. 应在YourMessage.msg中引用完整的消息类型名
      geometry_msgs/Point position
      geometry_msgs/Quaternion orientation
      string name
      
    2. 配置CMakeLists.txt,修改generate_messages中的内容
      generate_messages(
          DEPENDENCIES
              std_msgs
              geometry_msgs
      )
      

在代码中使用自定义的消息类型

  • 例如创建的ROS包名称为your_package,其中自定义了messageYourMessage.msg
  • 需要在代码开头引用头文件your_package/YourMessage.h(这个头文件会在catkin build后在devel中生成)

查看消息的数据类型

  • 通过rosmsg show配合自动补完(tab)可以找出所有消息(尤其是自定义消息)