rbpf粒子滤波slam matlab程序_2D激光SLAM算法汇总

6841dc4613aa9503d27240ff5bafaf7f.png

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优势更大。

6b4dff38fe93e0bd7000c8c138988e92.png

f3e9f81d1613a2471e5ff7508d702a71.png

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

6. Cartographer

关于它的评价看下面这个回答就够了。

如何看待谷歌在 10 月 6 日开源的 SLAM 算法 cartographer?​www.zhihu.com

参考:

2D激光SLAM算法优劣对比 - 思岚科技官网丨服务机器人自主定位导航方案(激光雷达+SLAM)领导品牌​www.slamtec.com https://home.isr.uc.pt/~davidbsp/publications/SPR_SSRR2013_SLAM.pdf​home.isr.uc.pt https://blog.csdn.net/qq_34675171/article/details/90573253​blog.csdn.net https://blog.csdn.net/liuyanpeng12333/article/details/81946841​blog.csdn.net
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值