下面是看论文的一些心得
论文原文地址risetti07tro
<http://www2.informatik.uni-freiburg.de/~stachnis/pdf/grisetti07tro.pdf>

Section One
首先指出了Rao-Blackwellized particle filters存在的问题
1. 大量的粒子滤波会使得计算过程相当复杂,主要挑战在减少粒子数量
2. 重采样的步骤可能会消灭正确的粒子(This effect is also known as the particle
depletion problem or as particle impoverishment)
注:This particle depletion problem is mainly due to the resampling process
which tends to eliminate particles with low weights
提出了两个解决办法:
1、 proposal distribution

A proposal distribution that considers the accuracy of the
robot’s sensors and allows us to draw particles in a highly
accurate manner

就是根据传感器的数据更准确的产生下一代粒子(不仅仅考虑odometry information)

2、 adaptive resampling technique.

An adaptive resampling technique which maintains a
reasonable variety of particles and in this way enables
the algorithm to learn an accurate map while reducing
the risk of particle depletion

上面是介绍,下面是解释,只在必要的时候进行重采样这样可以保持好一个合理的粒子密度
the adaptive resampling strategy, allows us to perform a resampling step only
when needed and in this
way keeping a reasonable particle diversity

Section Two
Rao-Blackwellized particle是怎么去解决SLAM问题的

PS:SLAM问题有一个小小的分类,也就是分为在线SLAM问题,也就是根据过去时间的控制u和观测z得出地图和当前位置 p(Xt,m|Z1:t,U1:t)
还有一种是全SLAM问题,根据过去时间的控制u和观测z得出地图和过去时间的所有位置 p(X1:t,m|Z1:t,U1:t)

下面原文中那个因式分解很重要

经过因式分解之后的式子可以得出slam的解法,也就是从观测Z和控制U得出位置X,再由位置X和观测Z得出地图M
z,u -> x
x,z-> m
对SLAM是一个鸡生蛋蛋生鸡的问题提出了一个解

下面直接看原文会清晰很多,PS:在很多地方都是用Z表示测量measurement,x表示机器人位置trajectory,u表示控制,也就是odometry
model。m表示地图



根据这个方法,我们首先估计出机器人的位置,然后根据位置计算出地图。如果地图是非常依赖机器人的位姿的话,这个办法确实很有效。

在这个方法里,每个粒子都维护着自己一个单独的地图
The maps are built from the observations and the trajectory represented by
the corresponding particle

介绍了常见的粒子滤波算法
One of the most common particle filtering algorithms is the sampling
importance resampling (SIR) filter

1) Sampling
2) Importance Weighting


这个步骤特别要提到的一点是权重到底是怎么来的,下面这句话

The weights account for the fact that the proposal distribution π is in
general not equal to the target distribution of successor states

3) Resampling
4) Map Estimation
这里也值得注意的是地图预估是怎么来的
For each particle, the corresponding map estimate p(m(i) | x( 1: i)t, z1:t)
is computed based on
the trajectory x( 1: i)t of that sample and the history of
observations z1:t.
(观测值observation来源于传感器)
而A RaoBlackwellized SIR filte 用这个过程对传感器的观测值和里程计的读数进行处理
A RaoBlackwellized SIR filter for mapping incrementally processes the sensor
observations and the odometry readings as they are available

Section Three
第三节就用上了第一节提出的两个办法来优化Rao-Blackwellized particle filter(RBPF)

1、 On the Improved Proposal Distribution

Proposal Distribution就是预估下一代粒子的位姿,Proposal distribution越接近target distribution
则该滤波的性能就越好
下面这句是它存在的意义
For instance, if we were able to directly draw samples from the target
distribution, the
importance weights would become equal for all particles and the resampling
step would no longer be needed

列举现状,平时我们常见的滤波应用就是直接用odometry motion model(里程计运动模型,具体是什么百度有)来做proposal
distribution,这个方法的优点就是对于大多数机器人来说特别容易计算


然而遇到的问题就像这张图里面描述的那样,一种常见的解决办法如下


然而这个解决办法也存在问题,为了克服这个问题



这一节一个最重要的思想就是,不单纯的用里程计运动来做先验(proposal distribution),要加上观测值Z

2、Adapter Resampling

首先指出了重采样过程存在的问题
During


PS:关于particles impoverishment的定义

Particularly, PF approaches show degraded performance for problems where the
state noise is very small or zero. This is because particles become identical
within a few iterations, which is so called particle impoverishment

所以提出选取重采样的时机很重要


用变量Neff来判断是否需要进行重采样,w(i) refers to the normailized weight of particle i
Neff是粒子权重分布的一种测量,可以判断粒子集是否接近于目标值

得出的结论就是,当Neff低于N/2的时候进行重采样效果好,N为粒子数量

重采样方法就是对每个粒子i 按照其权值生成Ni个副样本

接下来介绍一下scan matcher这个过程
a scan matcher algorithm is executed based on the map m starting from the
initial guess x.the search performed by the scan-matcher is bounded to a
limited region around x.if the scan-matching report a failure , the pose and
the weights are computed according to the motion model
下面这一段是关于整个算法的描述,直接看原文清晰一点




Section 4 IMPLEMENTATION ISSUES

本节是实现细节,就不直接贴上来了,原文有