【激光SLAM】不同2D激光SLAM方案对比


1. Gmapping

Gmapping是应用最为广泛的2D slam方法,基于RBPF粒子滤波算法,先定位再进行建图。

Gmapping在RBPF算法上做了两个主要的改进:改进提议分布选择性重采样。 改进的提议分布不但考虑里程计的信息还考虑最近一次的观察(激光)信息可以使提议分布更加接近目标分布。选择性重采样通过设定阈值,只有在粒子权重发生变化超过阈值时才执行重采样从而大大减少了重采样的次数。

Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。相比Hector SLAM对激光雷达频率要求低、鲁棒性高(Hector 在机器人快速转向时很容易发生错误匹配,建出的地图发生错位,原因主要是优化算法容易陷入局部最小值);而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测因此计算量小于Cartographer而精度并没有差太多。 随着场景增大所需的粒子增加,因为每个粒子都携带一幅地图,因此在构建大地图时所需内存和计算量都会增加。因此不适合构建大场景地图。并且没有回环检测,因此在回环闭合时可能会造成地图错位,虽然增加粒子数目可以使地图闭合但是以增加计算量和内存为代价。 所以Gmapping不能像cartographer那样构建大的地图,虽然论文生成几万平米的地图,但实际我们使用中建的地图没有上万平米时就会发生错误。

优点:在长廊及低特征场景中建图效果好;
缺点:严重依赖里程计(odometry),无法适用无人机及地面小车不平坦区域;无回环。

补充:

粒子退化
粒子退化主要指正确的粒子被丢弃和粒子多样性减小。

原因:

  1. 执行重采样之前都会计算每个粒子的权重,有时因为环境相似度高或测量噪声的影响使接近正确状态的粒子数权重较小而错误状态的粒子的权重反而较大;
  2. 频繁重采样会导致粒子多样性减小的速度加大。

2. Hector slam

hector_slam通过最小二乘法匹配扫描点,且依赖高精度的激光雷达数据,因此扫描角很小且噪声较大的Kinect是不行的,匹配时会陷入局部点,地图比较混乱。

优点:无需依赖里程计,可以适应空中或者地面不平坦的情况。
缺点:对传感器要求比较高,需要更新频率较高,测量噪声小的传感器;建图过程需要缓慢移动效果才比较理想;无回环。


3. KartoSLAM

KartoSLAM是基于图优化的方法,用高度优化和非迭代 cholesky矩阵进行稀疏系统解耦作为解,图优化方法利用图的均值表示地图,每个节点表示机器人轨迹的一个位置点和传感器测量数据集,箭头的指向的连接表示连续机器人位置点的运动,每个新节点加入,地图就会依据空间中的节点箭头的约束进行计算更新. KartoSLAM的ROS版本,其中采用的稀疏点调整(the Spare Pose Adjustment(SPA))与扫描匹配和闭环检测相关。

优点:图优化方式相比其他方法在大环境下制图优势更大,在某些情况下KartoSLAM更有效,因为他仅包含点的图(robot pose),求得位置后再求map。
缺点:landmark越多,内存需求越大。


4. Cartographer

cartographer是通过闭环检测来消除构图中产生的累计误差。用于闭环检测的基本单元是submap,一个submap由一定数量的laser scan组成,将一个laser scan插入到其对应的submap时,会基于submap已有的laser scan及其传感器数据估计其在该submap中的最佳位置。然而随着时间推移,越来越多的submap被创建后,submap的累计误差会越来越大,因此需要通过闭环检测适当的优化这些submap的位姿进而消除这些累计误差,这就将问题转化为一个位姿优化问题。

当一个submap的构建完成时,也就不会有新的laser scan插入到submap中,该submap就会加入到闭环检测中,闭环检测会考虑所有的已完成创建的submap,当一个新的submap加入到地图中时,如果该laser scan的估计位姿与地图中某个submap中的某个laser scan的位姿比较接近的话,那么通过某种scan match策略就可以找到该闭环。cartographer中的scan match策略通过在新加入地图中的laser scan的估计位姿附近取一个窗口,进而在该窗口内寻找该laser scan的一个可能匹配,如果找到哟个足够好的匹配,则将该匹配的闭环约束加入到位姿优化的问题中。

优点:累计误差较低,能天然的输出协方差矩阵,后端优化的输入项。成本较低的雷达也能跑出不错的效果。
缺点:CPU性能要求教高。


参考

2D激光SLAM算法优劣对比https://www.slamtec.com/cn/News/Detail/72

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Travis.X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值