ros:消息类型总结

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 路径
 

你可能感兴趣的:(ROS)