2D激光SLAM算法汇总

小白学视觉

共 4454字,需浏览 9分钟

 ·

2023-09-06 23:04

点击上方小白学视觉”,选择加"星标"或“置顶

     
     
        
        
重磅干货,第一时间送达 
作者:小小酥 | 来源:知乎
https://zhuanlan.zhihu.com/p/78334136
本文仅做学术分享,如有侵权,请联系删除。
2D激光SLAM发展历史:
Filter-based
EKF-SLAM----90年代
Globally Consistent Range Scan For Environment Mapping----97
Incremental Mapping of Large Cyclic Environments----99
FastSLAM----02~03
Gmapping----07
Optimal RBPF----10
Graph-based
Karto SLAM----10
Cartographer----16

1. Gmapping

Gmapping是应用最为广泛的2D slam方法,主要是利用RBPF(Rao-Blackwellized Particle Filters)方法,所以需要了解粒子滤波的方法(利用统计特性描述物理表达式下的结果)。Gmapping在RBPF算法上做了两个主要的改进:改进提议分布选择性重采样
Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。相比Hector SLAM对激光雷达频率要求低、鲁棒性高(Hector 在机器人快速转向时很容易发生错误匹配,建出的地图发生错位,原因主要是优化算法容易陷入局部最小值);而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测因此计算量小于Cartographer而精度并没有差太多。
随着场景增大所需的粒子增加,因为每个粒子都携带一幅地图,因此在构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图。并且没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价。
所以Gmapping不能像cartographer那样构建大的地图,虽然论文生成几万平米的地图,但实际我们使用中建的地图没有上万平米时就会发生错误。
优点:在长廊及低特征场景中建图效果好;
缺点:依赖里程计(odometry),无法适用无人机及地面小车不平坦区域;无回环;

2. Hector slam

Hector slam对传感器的要求比较高,它主要是利用高斯牛顿方法来解决scan-matching的问题。
Hector slam无需使用里程计,所以在不平坦区域实现建图的空中无人机及地面小车具有运用的可行性,利用已经获得的地图对激光束点阵进行优化,估计激光点在地图的表示,和占据网络的概率。获得激光点集映射到已有地图的刚体变换,为避免局部最小而非全局最优出现,地图使用多分辨率。
需具备高更新频率且测量噪音小的激光扫描仪,所以,在制图过程中,robot的速度要控制在较低的情况下才会有比较理想的建图效果,这也是它没有回环的一个后遗症。另外在里程计数据比较精确的情况下无法有效利用里程计信息。
优点:不需要使用里程计,所以使得空中无人机及地面小车在不平坦区域建图存在运用的可行性;利用已经获得的地图对激光束点阵进行优化, 估计激光点在地图的表示,和占据网格的概率;利用高斯牛顿方法解决scan-matching 问题,获得激光点集映射到已有地图的刚体变换;为避免局部最小而非全局最优,使用多分辨率地图;导航中的状态估计加入惯性测量系统(IMU),利用EKF滤波;
缺点:需要雷达(LRS)的更新频率较高,测量噪声小。所以在制图过程中,需要robot速度控制在比较低的情况下,建图效果才会比较理想,这也是它没有回环(loop close)的一个后遗症;且在里程计数据比较精确的时候,无法有效利用里程计信息。
实验表明:在大地图,低特征(distinctive landmarks)场景中,hector的建图误差高于gmapping。这是由于hector过分依赖scan-match。特别是在长廊问题中,误差更加明显。
补充:hector_slam通过最小二乘法匹配扫描点,且依赖高精度的激光雷达数据,因此扫描角很小且噪声较大的Kinect是不行的,匹配时会陷入局部点,地图比较混乱。

3. KartoSLAM

KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解,图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进行计算更新.
KartoSLAM的ROS版本,其中采用的稀疏点调整(the Spare Pose Adjustment(SPA))与扫描匹配和闭环检测相关。landmark越多,内存需求越大,然而图优化方式相比其他方法在大环境下制图优势更大,在某些情况下KartoSLAM更有效,因为他仅包含点的图(robot pose),求得位置后再求map。

4. LagoSLAM

LagoSLAM是线性近似图优化,不需要初始假设,优化器的方法可以有三种选择 Tree-based netORK Optimizer(TORO), g2o,LAGO。
基本的图优化slam的方法就是利用最小化非线性非凸代价函数,每次迭代,解决局部凸近似的初始问题来更新图配置,过程迭代一定次数直到局部最小代价函数达到, (假设起始点经过多次迭代使得局部代价函数最小)。

5. CoreSLAM

为了简单和容易理解最小化性能损失的一种slam算法,将算法简化为距离计算与地图更新的两个过程,第一步,每次扫描输入,基于简单的粒子滤波算法计算距离,粒子滤波的匹配器用于激光与地图的匹配,每个滤波器粒子代表机器人可能的位置和相应的概率权重,这些都依赖于之前的迭代计算. 选择好最好的假设分布,即低权重粒子消失,新粒子生成,在更新步骤,扫描得到的线加入地图中,当障碍出现时,围绕障碍点绘制调整点集,而非仅一个孤立点。
通过在大小仿真环境、实际环境以及CPU消耗的情况下进行算法比较,发现KartoSLAM 与gmapping优势更大。
https://home.isr.uc.pt/~davidbsp/publications/SPR_SSRR2013_SLAM.pdf

6. Cartographer

关于它的评价看下面这个回答就够了。
https://www.zhihu.com/question/51348391

参考:

http://www.slamtec.com/cn/news/detail/72

https://home.isr.uc.pt/~davidbsp/publications/SPR_SSRR2013_SLAM.pdf

https://blog.csdn.net/qq_34675171/article/details/90573253

https://blog.csdn.net/liuyanpeng12333/article/details/81946841

    
    
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~





浏览 199
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报