Cartographer
Cartographer代码结构
- cartographer:负责处理来自雷达、IMU和里程计的数据并基于这些数据进行地图的构建,是cartographer理论的底层实现
- cartographer_ros:基于ros的通信机制获取传感器的数据并将它们转换成cartographer中定义的格式传递给cartographer处理,与此同时也将cartographer的处理结果发布用于显示或保存,是基于cartographer的上层应用
算法原理
主题逻辑
-通过闭环检测来消除构图过程中产生的累积误差
-
闭环检测的基本单元是submap
-
一个submap是由一定数量的laser scan构成。将一个laser scan插入其对应的submap时,会基于submap已有的laser scan及其它传感器数据估计其在该submap中的最佳位置。
-
假设:submap的创建在短时间内的误差累积被认为是足够小的。然而随着时间推移,越来越多的submap被创建后,submap间的误差累积则会越来越大。因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累积误差,这就将问题转化成一个位姿优化问题。
-
? submap如何分割,根据时间?
-
当一个submap的构建完成时,该submap就会加入到闭环检测中
-
闭环检测会考虑所有的已完成创建的submap。当一个新的laser scan加入到地图中时,在新加入地图
的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能的匹配,如果找到了一个足够好的匹配,则会将该匹配的闭环约束加入到位姿优化问题中
细节
- 自适应体素滤波
- 根据点云密度使用不同大小的尺寸,在在减少数据量的同时,保持对细节的较好保留
- 点云匹配
- 使用Ceres
数据采集器件
- 激光雷达:
- 里程计:般是指根据移动机器人纶组上的编码器估计的机器人位姿,它是一种积分性质的位姿估计,如果机器人在运动过程中出现了打滑、碰撞等无法或者很难建模的情况时,会出现很大的误差, 而且随着时间的流逝不断累积
-位姿:IMU的测量数据主要是指加表和陀螺测量的线加速度和角速度。根据惯导的理论知识,我们知道IMU是可以比较准确的估计出机器人位姿的。 但是同样会存在累积误差,系统长时间运行时如果不能及时修正就会爆炸 - 全局定位坐标,精度差,如gps
参考:https://blog.csdn.net/HERO_CJN/article/details/81068311
重点参考:https://gaoyichao.com/Xiaotu/