msg消息及自定义msg消息

msg消息及自定义msg消息msg 消息及自定义 msg 消息 1 1 基本概念 msg 消息 是 ROS topic 通讯节点间传递的内容 msg 消息描述的是业务间传递数据 也可以理解为业务间数据的抽象化 1 2 常见 Msg 消息 1 2 1 std 消息 std 消息属于基本数据类型消息 和 python 类似 描述的是数字 字符串

大家好,我是讯享网,很高兴认识大家。

msg消息及自定义msg消息

1.1 基本概念
  • msg消息 是ROS topic通讯节点间传递的内容。
  • msg消息描述的是业务间传递数据,也可以理解为业务间数据的抽象化。
1.2 常见Msg消息
1.2.1 std消息
  • std消息属于基本数据类型消息,和python类似,描述的是数字,字符串,布尔类型等
std_msgs/Bool std_msgs/Byte std_msgs/ByteMultiArray
std_msgs/Char std_msgs/ColorRGBA std_msgs/Duration
std_msgs/Empty std_msgs/Float32 std_msgs/Float32MultiArray
std_msgs/Float64 std_msgs/Float64MultiArray std_msgs/Header
std_msgs/Int16 std_msgs/Int16MultiArray std_msgs/Int32
std_msgs/Int32MultiArray std_msgs/Int64 std_msgs/Int64MultiArray
std_msgs/Int8 std_msgs/Int8MultiArray std_msgs/MultiArrayDimension
std_msgs/MultiArrayLayout std_msgs/String std_msgs/Time
std_msgs/UInt16 std_msgs/UInt16MultiArray std_msgs/UInt32
std_msgs/UInt32MultiArray std_msgs/UInt64 std_msgs/UInt64MultiArray
std_msgs/UInt8 std_msgs/UInt8MultiArray
1.2.2 geometry消息
  • 空间数据描述
geometry_msgs/Accel geometry_msgs/AccelStamped
geometry_msgs/AccelWithCovariance geometry_msgs/AccelWithCovarianceStamped
geometry_msgs/Inertia geometry_msgs/InertiaStamped
geometry_msgs/Point geometry_msgs/Point32
geometry_msgs/PointStamped geometry_msgs/Polygon
geometry_msgs/PolygonStamped geometry_msgs/Pose
geometry_msgs/Pose2D geometry_msgs/PoseArray
geometry_msgs/PoseStamped geometry_msgs/PoseWithCovariance
geometry_msgs/PoseWithCovarianceStamped geometry_msgs/Quaternion
geometry_msgs/QuaternionStamped geometry_msgs/Transform
geometry_msgs/TransformStamped geometry_msgs/Twist
geometry_msgs/TwistStamped geometry_msgs/TwistWithCovariance
geometry_msgs/TwistWithCovarianceStamped geometry_msgs/Vector3
geometry_msgs/Vector3Stamped geometry_msgs/Wrench
geometry_msgs/WrenchStamped
1.2.3 sensor消息
  • 传感器消息
sensor_msgs/BatteryState sensor_msgs/CameraInfo sensor_msgs/ChannelFloat32
sensor_msgs/CompressedImage sensor_msgs/FluidPressure sensor_msgs/Illuminance
sensor_msgs/Image sensor_msgs/Imu sensor_msgs/JointState
sensor_msgs/Joy sensor_msgs/JoyFeedback sensor_msgs/JoyFeedbackArray
sensor_msgs/LaserEcho sensor_msgs/LaserScan sensor_msgs/MagneticField
sensor_msgs/MultiDOFJointState sensor_msgs/MultiEchoLaserScan sensor_msgs/NavSatFix
sensor_msgs/NavSatStatus sensor_msgs/PointCloud sensor_msgs/PointCloud2
sensor_msgs/PointField sensor_msgs/Range sensor_msgs/RegionOfInterest
sensor_msgs/RelativeHumidity sensor_msgs/Temperature sensor_msgs/TimeReference
1.3 自定义消息
1.3.1 创建package
  • 这里注意自定义的消息其实和我们创建package包是一样的,同样是使用catkin_create_pkg进行创建

catkin_create_pkg xxx_msgs

  • 并在package包下新建msg文件夹
1.3.2 创建.msg文件
  • 在msg文件夹下创建.msg文件,.msg文件就是自定义的消息文件,用来描述消息格式
  • 新建 hello2.msg,内容如下:

string name3
hello1 name4
std_msgs/String name5
hello1[] name4

  • 其中 hello1.msg 和 hello2.msg 在同一个包下,可以直接 hello1 name4 ;
  • 而引用标准库,格式如下 包/类型 名 如 std_msgs/String name5 ;
    加中括号 [] 表示数组,含有多个数据;
1.3.3 配置package.xml(对应上面CMakeLists.txt文件中的内容)
  • 在package.xml种添加如下配置:
1.3.4 配置CMakeLists.txt
find_package配置
  • 在find_package添加message_generation,结果如下:

find_package(catkin REQUIRED COMPONENTS
roscpp
rosmsg
rospy
message_generation
)


讯享网

add_message_file配置
  • 添加add_message_file,结果如下:

add_message_files(
FILES
hello1.msg
hello2.msg
)
这里的 hello.msg 要和你创建的msg文件名称一致,且必须时在msg目录下,否则编译会出现问题

generation_msg配置
  • 添加generation_msg,结果如下:

generate_messages(
DEPENDENCIES
std_msgs
)
这个配置的作用是添加生成消息的依赖,默认的时候要添加 std_msgs,根据需求添加 geometry_msgs 等其他包

catkin_package配置
  • 修改catkin_package,结果如下:

catkin_package(
# INCLUDE_DIRS include
# LIBRARIES demo_msg
CATKIN_DEPENDS roscpp rosmsg rospy message_runtime
# DEPENDS system_lib
)
为catkin编译提供了依赖message_runtime

1.3.5 编译项目
1.3.6 校验
小讯
上一篇 2025-04-07 20:09
下一篇 2025-02-08 16:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60284.html