ROS中gmapping的原理(读后理解)

11 篇文章 1 订阅
8 篇文章 6 订阅

感谢博主,原创:https://blog.csdn.net/liuyanpeng12333/article/details/81946841
这是我读完这篇博文的理解。

首先明确三个概念:

  1、Gmapping是基于滤波SLAM框架的常用开源SLAM算法。
  
  2、Gmapping基于RBpf粒子滤波算法,即将定位和建图过程分离,先进行定位再进行建图。

  3、Gmapping在RBpf算法上做了两个主要的改进:改进提议分布和选择性重采样

首先它是基于RBpf粒子滤波算法的。
gmapping的运行步骤一般为:采样-计算权重-重采样-地图估计。
RBpf是一种有效解决同时定位和建图的算法,它将定位和建图分离,每一个粒子都携带一幅地图。

RBpf建图是根据激光雷达的数据进行第一帧粒子散步建图的。
随后gmapping在运行中Rbpf需要不断地进行粒子迭代和重采样(频繁的重采样)(缺点1),
在粒子迭代的过程中(频繁采样的过程中)会出现粒子退化的问题1.正确的粒子被丢弃2.粒子的多样性减少(近亲)
因为重采样之前会计算每个粒子的权重来进行粒子的过滤,
但是由于环境相似度高或噪声原因,粒子的权重可能被颠覆,导致权重高的粒子被删除,
然后把剩下未删除的粒子进行复制(导致粒子多样性的减少)。

而且地图不能构建较大的,否则所需粒子数量会急剧增大(缺点2),
导致内存和计算量都很大,在进行回环闭合的时候就会发生错位(打滑)(缺点二导致的后果)。

因这两个缺点所以在进行地图估计的时候就会出现各种错误,例如打滑等情况。
所以解决缺点一,gmapping提出了选择性重采样:
也就是减少重采样的次数,设定阈值,当粒子权重大于设定阈值才执行重采样,这样就减少了采样的次数,也就减缓了粒子退化。

为了解决缺点二,gmapping提出了改进提议分布:
首先分别一下什么是提议分布和目标分布
目标分布就是我根据机器人携带的所有传感器的数据能确定机器人状态置信度的最大极限。
而且目标分布只需要一个粒子就可以进行位姿估计了。
那为什么要用提议分布呢?是因为没有办法直接对目标分布建模进行采样!
同时因为粒子要覆盖里程计状态的全部空间,而这其中只有一小部分粒子是正真符合目标分布的,
因此在计算权重时粒子的权重变化就会很大。但我们只有有限的粒子来模拟状态分布,
因此我们需要把权重小的粒子丢弃,让权重大的粒子复制以达到使粒子收敛到真实状态附近。
但这就造成需要频繁重采样,也就造成了RBpf的另一个弊端即:发生粒子退化。
这里就解释了RBpf需要大量粒子并执行频繁重采样。

我们知道激光的分布相比里程计分布更接近真正的目标分布,
因此如果可以把激光的信息融入到提议分布中的话那样提议分布就会更接近目标分布。
也就是他不单单考虑里程计信息,还会考虑最近一次的激光数据,这样就更加精确的得到了下一时刻机器人的位姿信息。

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值