ROS中的坐标变换及修复分析

ROS中的坐标变换及修复分析

四个坐标系分别是什么?

  • map 坐标系为理想状态下的世界坐标系,是固定不变的。此系下车模的各种运动为最接近实际情况的运动。

  • odom 坐标系被称作 “虚假的坐标系”,该系下各种运动信息通常是由imu、里程计等传感器推导得出,存在陀螺仪温漂、编码器打滑等误差会导致其与真实世界发生偏离。该系是可以变化的,且变化通常发生在各种误差信息被修正的过程中。

  • base_link 坐标系是以小车底盘为坐标原点的坐标系,该系与小车中心重合,会随着小车运动而运动。

  • base_laser 坐标系是以激光雷达为坐标原点,该系与激光雷达的中心重合,会随雷达运动而运动。base_link 系通常用于结合其他变换获取小车在各系中的位置信息,

  • base_footprint 坐标系的原点是base_link坐标系原点在地面上的投影,同样随小车运动而运动。base_footprint 系用于各种数据融合与处理,在路径规划、避障等方面有重要作用。

几个坐标系有什么关系?

显而易见,上述三个带有’base’的坐标系 base_link、base_laser、base_footprint 均随小车运动而运动,它们之间的变换为固定的变换。

  • 其中 base_link->base_laser 的变换与雷达在小车上的安装位置有关。
  • base_link->base_footprint 的变换仅在z轴方向上求小车中心对地面的投影。

与此相反,map、odom、base_link之间的变换为动态的,随小车的运动、传感器数据的变换而变换。

  • odom->base_link 的变换较为容易理解,随着小车运动,根据里程计、imu等传感器可以反向求出从odom坐标系到base_link坐标系的变换关系,即一个含偏差的路径地图与小车在地图中的位置。
  • map->odom 的变换则较为复杂,实际上我们无法直接求得真实地图与含偏差的地图之间的变换,而是视雷达获取的定位信息为的精准信息,获得 map->base_link 的变换,再由这一变换反向减去 odom->base_link 的变换,以间接求得 map->odom_link的变换。

这里笔者提出疑问,如果由雷达数据获取的定位信息获得 map->laser_link 的变换,再减去已知的 base_link->laser_link 以及 odom->base_link,这样获得的 map->odom_link是否会更加准确?

变换由什么方法获取?

这里我们重点研究 odom->base_link 和 map->odom的变换。

  • 其中 map->odom 的变换由雷达采用Navigation导航包中自带的自适应蒙特卡洛定位算(amcl)进行估计。在初学阶段,并没有太多优化空间,只能通过调整算法参数使得定位算法处于较优的状态。
  • 而 odom->base_link 的变换由里程计积分后根据小车模型计算获得,这里可以参考智能车传统组的算法和经验进行改进,如通过优化里程计模型或引入imu、gps、摄像头等传感器进行融合滤波。

偏差出现的原因及修复分析

偏差通常是来自于传感器精度误差。

  • 雷达误差: 当周围环境特征不明显时,如超长直道或空旷地段,雷达定位可能较为迟缓,影响 map->odom的变换关系(实质上为 map->base_link的变换关系)。
  • 里程计误差:当发生打滑或地面凸凹不平时,里程计信息偏差较大,影响 odom->base_link 的变换关系。
  • IMU误差: 当定位持续时间较长时,imu持续积累的温飘会导致航向角信息不准。

关于偏差的修复,其理解的困难点在于雷达误差(map->odom)的修复,即为何通过优化里程计(​odom->base_link)的变换可以修复雷达​(map->odom)。
首先是对里程计的优化问题,由于imu在短期内有效,不受轮胎打滑等因素的影响,可用于在一定程度上修正里程计打滑导致的base_link->odom变换的偏差。通常的做法是在原有坐标变换的基础上插入 odom->odom_combined 的变换。并发布 ​ odom->base_link 以替换偏差较高的 ​odom->base_link。

然后便是关键的map->odom部分的修复,读到此处可能一部分同学已经理解,为什么在上述引入 odom->odom_combianed 的同时,map->odom 也会得到修正,明明二者甚至没有一丝重合之处才对呀?问题就出现在map->odom的获得方式上,它并非是直接获得,而是通过map->base_link 减去 odom->base_link间接获得,所以当odom->base_link被修复后,map->odom 也会间接被修复。

参考文献:

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值