ROS:geometry_msgs中 Point32 , Point ,PointStamped 的定义和转换

ROS:geometry_msgs中Point32, Point, PointStamped 的定义和转换

  • Point32和Point的定义
  • Point32和Point的转换
  • PointStamped 的定义和转换

本文所用ROS为kinetic版本
链接:
官方链接1
官方链接2

Point32和Point的定义

先来看看官方文档中的定义。
ROS:geometry_msgs中 Point32 , Point ,PointStamped 的定义和转换_第1张图片ROS:geometry_msgs中 Point32 , Point ,PointStamped 的定义和转换_第2张图片
官方文档中可以看到,两者唯一的区别就在于定义坐标时所用浮点数的位数不同。在point32 中的注释还说明了,一般情况下推荐使用point类型,也就是64位的定义方式,这样做的好处就是可以促进互操作性(我的理解是,ros中大多数函数的接口是用64位定义的)。但是当需要发布的点的数量较大时可以采用point32的方式定义点,可以减少所需的内存空间,例如发布点云数据的时候。

Point32和Point的转换

两者的转换,在ros库中定义了两者转换的函数。比较简单,就不说了。
ROS:geometry_msgs中 Point32 , Point ,PointStamped 的定义和转换_第3张图片

PointStamped 的定义和转换

当我们使用 geometry_msgs/PointStamped类型定义point时,point的坐标是采用64位来定义的。

ROS:geometry_msgs中 Point32 , Point ,PointStamped 的定义和转换_第4张图片
当需要转换为32位的定义时,要注意传入的参数类型。例如:

geometry_msgs/PointStamped pt;

costmap_2d::toPoint32(pt->point);

你可能感兴趣的:(ROS)