REF:基于激光雷达的同时定位与地图构建方法综述
1. 激光SLAM原理
激光 SLAM 有激光雷达( LiDAR) 、惯性测量单元( IMU) 、里程计( odometry) 组成,通常室内采用二维激光雷达,室外采用三维激光雷达,里程计采用轮式里程计,计算位置信息,IMU 计算角度信息,一般分为前端扫描匹配、后端优化、闭环检测、地图构建四个关键步骤:
- 前端扫描匹配: 主流的扫描匹配算法包括迭代最临近点及变种、相关性扫描匹配、基于优化方法、正态分布变换、基于特征的匹配以及其他匹配算法
- 迭代最临近点(ICP) 及变种:利用待匹配的两帧点云欧氏距离最小化,恢复相对位姿变换信息,分为已知对应点的求解和未知对应点的求解两种,其中已知对应点的情况能够直接计算出 R 和 T 的闭式解,而未知对应点的求解需要进行迭代计算
ec15a8566cdc646a983a5c3e006a50b5.png
- 相关性扫描匹配:CSM 算法匹配的似然场模型高度非凸,存在很多局部极值。
b6ffad04534a7b93115ed79de4041421.png
- 基于优化方法:给定一个目标函数,把激光数据扫描匹配问题建模成非线性最小二乘优化问题,该方法帮助限制误差的累积。典型代表是Hector SLAM的匹配方法
- 正态分布变换:通过匹配从激光扫描提取的特征点来改善计算成本,在扫描中专注于边和平面特征并将它们保存在地图中以便进行边线和平面与平面的匹配,适用于3D 激光 SLAM
- 其他匹配方法:基于投影直方图和熵序列进行迭代扫描匹配、基于遗传算法的扫描匹配、抗离群点的分段遗传扫描匹配
- 后端优化: 解决遗留的局部误差累积的两种普遍做法,基于滤波器的后端和基于图优化的后端
- 基于滤波器:贝叶斯估计的过程,包括里程计预测、测量预测、进行测量、数据关联、状态更新以及地图更新
130e0d84345a0a3cc5d6fce17259533c.png
- 基于图优化:利用图论的方式,将机器人的位姿用节点表示,将节点之间的空间约束关系用边表示,机器人在建图的过程中的积累误差,通过非线性最小二乘方法来优化,即优化方式为同时考虑所有帧间约束,并迭代线性化求解。
- 闭环检测: 闭环检测问题是激光数据扫描匹配结果相似性的问题
- 帧与帧闭环检测(scan-to-scan):通过旋转和平移判断两帧激光数据的相似性,达到闭环检测的效果
- 帧与子图闭环检测(scan-to-map):谷歌的 Cartographer通过帧与子图对比闭环检测
- 子图与子图闭环检测( map-to-map):将当前的 N 帧激光数据整合成局部子图,与之前的子图进行匹配
- 其他闭环检测方法:像素精确扫描匹配方法、基于直方图的匹配、深度学习数据中的特征点进行匹配
- 闭环检测的加速策略: 分支定界( branch and bound) 算法是常用的树型搜索剪枝算法,这是一个对闭环检测加速的策略。把最优求解问题转换为树型搜索问题,对于搜索树中的每一个节点,确定以该节点为根节点的子树的上界进行搜索来达到减枝加速的目的
- 闭环验证:基于投影直方图和熵序列之间的最大相关性之和估计闭环检测的正确性、
- 地图构建:
为强调基于激光 SLAM 系统中建图的实时性,地图构建模块通常采用计算量较少的占据栅格建图算法,是基于贝叶斯估
计的方式。目前,无论是 2D 激光 SLAM 还是 3D 激光 SLAM,应用最广泛的地图种类是占据栅格地图。
2. 基于滤波器的激光 SLAM 方案
使用最大似然算法进行数据关联,该方案的缺点是计算量复杂,鲁棒性较差
ccd8b12a574b8ad1f59a2fc6f52cb5a0.png
3. 基于图优化的激光 SLAM 方案
通过非线性最小二乘方法来优化建图过程中累积的误差,存在的问题在于没有认识到系统的稀疏性,离线处理 SLAM 问题
ac1f4dd29ca2ef3da08e6d4a097a7d40.png
4. 典型SLAM算法框架
1394e799b74ef212bee80ff019697877.png
c64cb3bc350a1cb1ede9e22544836c1a.png
8ad7b07c91ea6a445062587628245b8b.png
408e02d21ee91e697f4255181efea327.png
cf20c1e6465c9add1b6bf0eb15526e73.png