ros:消息类型总结

本文详细介绍了如何使用rostopic和rosmsg命令获取ROS中主题的类型和消息结构,包括nav_msgs/Odometry的详细字段解释,以及如何通过nav_msgs和geometry_msgs了解不同消息类型的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, rostopic info [消息名字]; 可以得到Type:信息.

$ rostopic info /odom
Type: nav_msgs/Odometry
Publishers: 
 * /mobile_base_nodelet_manager (http://192.168.137.5:59351/)
Subscribers: None
2, 根据上述操作得到 topic 消息类型为nav_msgs/Odometry;
使用工具 $rosmsg show nav_msgs/Odometry  后可以得到如下结果
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
string child_frame_id
geometry_msgs/PoseWithCovariance pose
  geometry_msgs/Pose pose
    geometry_msgs/Point position
      float64 x
      float64 y
      float64 z
    geometry_msgs/Quaternion orientation
      float64 x
      float64 y
      float64 z
      float64 w
  float64[36] covariance
geometry_msgs/TwistWithCovariance twist
  geometry_msgs/Twist twist
    geometry_msgs/Vector3 linear
      float64 x
      float64 y
      float64 z
    geometry_msgs/Vector3 angular
      float64 x
      float64 y
      float64 z
  float64[36] covariance

根据得到的数据结构就可以仿造消息了. 不同的缩进代表的是级别, 有些类似于目录级别的感觉, 可以找到msg文件进行对比加深理解.
3, 如果想要查看上述msg的说明文件可以使用
$roscd nav_msgs
进入目录下的msg文件夹查看, 该msg文件夹下有很多*.msg文件. 用于描述不同的msg的说明. 不过在文件中经常会用到其他包中使用到的消息类型, 即存在类型嵌套,不是很直观.

一、geometry_msgs消息类型

Point   点

float64 x  ,float64 y,float64 z

Point32 float32 x,float32 y,float32 z  一般使用Point,大规模点云使用Point32

PointStamped :(1)std_msgs/Header header 包含坐标系和时间戳信息  

                           (2)geometry_msgs/Point point 点

 

Polygon 多边形  geometry_msgs/Point32[] points

PolygonStamped (1)std_msgs/Header header   

                                (2)geometry_msgs/Polygon polygon

Pose  位姿(1)geometry_msgs/Point position 位置 

                    (2)geometry_msgs/Quaternion orientation 姿态,即方向

 

Pose2D  2d平面的位姿float64 x,float64 y,float64 theta

PoseArray  位姿序列:(1)std_msgs/Header header

                                   (2)geometry_msgs/Pose[] poses

PoseStamped 位姿:(1)std_msgs/Header header  

                                 (2)geometry_msgs/Pose pose

PoseWithCovariance:(1)geometry_msgs/Pose pose   即(x, y, z,  X 旋转, Y旋转,  Z旋转)

                                     (2)float64[36] covariance协方差

PoseWithCovarianceStamped(1)std_msgs/Header header     

                                                   (2)geometry_msgs/PoseWithCovariance pose

Quaternion 四元数旋转float64 x,float64 y,float64 z,float64 w

QuaternionStamped

Transform  坐标系之间的变换:(1)geometry_msgs/Vector3 translation 平移向量                             (2)geometry_msgs/Quaternionrotation 旋转向量

TransformStamped

Twist 速度(1)geometry_msgs/Vector3 linear 线速度

                (2)geometry_msgs/Vector3 angular角速度

TwistStamped

TwistWithCovariance

TwistWithCovarianceStamped

Vector3  向量float64 x,float64 y,float64 z

Vector3Stamped

Wrench  力(1)geometry_msgs/Vector3 force 力

                  (2)geometry_msgs/Vector3 torque 扭矩  没用过,不太懂这个

WrenchStamped

二、nav_msgs消息类型

一、消息类型

1 GridCells 栅格单元 (1)std_msgs/Header header头,时间戳与坐标系 (2)float32 cell_width,float32 cell_height宽度与高度 (3)geometry_msgs/Point[] cells数组

2MapMetaData 占有率栅格地图数据 (1)time map_load_time 地图被加载的时间 (2)float32 resolution 分辨率(m/cell)(3)uint32 width,uint32 height  (4)geometry_msgs/Pose origin 真实世界中的原点 (m,m,rad) 图像中的(0,0)点
3 OccupancyGrid 2d栅格地图 (1)Header header (2)nav_msgs/MapMetaData info 地图信息 (3)int8[] data 占有率地图数据序列,概率为【0-100】,未知为-1
4 Odometry 估计的位姿与速度(1)std_msgs/Header header 位姿所在坐标系(2)string child_frame_id 速度所在坐标系 (3)geometry_msgs/PoseWithCovariance pose 位姿 (4)geometry_msgs/TwistWithCovariance twist 速度

5 Path 路径 (1)Header header  (2)geometry_msgs/PoseStamped[] poses 代表路径的三维点坐标数组

二、服务
1 GetMap.srv 接收地图
不发送数据
接受:nav_msgs/OccupancyGrid map
2 GetPlan.srv 规划当前位置到目标位置的路径
发送(1)geometry_msgs/PoseStamped start 起始点 (2)
geometry_msgs/PoseStamped goal 目标点 (3) float32 tolerance 如果不能到达目标,最近可到的约束
-接受
nav_msgs/Path plan 路径
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通哈膨胀哈哈哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值