SLAM中使用贝叶斯滤波的原因

目前激光SLAM主要分为:基于滤波和基于图优化这两种。基于滤波的方法中主要使用的是基于贝叶斯滤波的框架。

什么是滤波:

    滤波,即滤除噪声。我们知道在估计状态的过程中,控制引入运动噪声和观测引入传感器测量噪声。而滤波的实现是通过控制和观测获得的对同一状态不同的冗余信息(控制的预测信息和观测的测量信息)来减小位姿状态的不确定度,从而滤除控制和观测过程中的噪声。例如:若控制和观测的噪声都服从高斯分别,那么控制和观测得到的对状态估计也都是服从高斯分布。将两个高斯估计相乘得到后验分别的不确定度就会下降,从而达到滤波的效果。

为什么用贝叶斯做滤波:

   首先,从逻辑上讲,机器人SLAM的过程是:先控制机器人到达一个位姿,然后再进行观测(即:{\color{Red} x\rightarrow z})。但是问题出现在了我们是由控制数据和观测数据来求机器人位姿(即:{\color{Red} u,z\rightarrow x})。这就出现了一个逆向的过程即:我们是先有位姿再得到观测数据,却变成了先得到观测数据再来求位姿的过程。通俗来讲就是我们需要由结果(观测数据)来反推原因(位姿);因此这里就引入了贝叶斯公式,贝叶斯公式的存在就是为了求解这种由结果反推原因的问题。

       再者,从实际问题入手。举例:机器人运动一个位置看到一个门,正向的概率求解过程是这样的P(z|x),这里z表示观测,x表示位姿。但在SLAM问题中我们是先有观测数据反求位姿,这是一个逆向的过程P(x|z)。所以在SLAM中使用贝叶斯公式是由于逆向过程很难求解,好比机器人看到了一个门,问:在哪里看到了门?我们很难回答在哪里看到了门。但正向问题就不一样了:机器人有了位姿就可以有观测数据计算在这个位置看到门的概率。因此就要用贝叶斯公式将逆向的过程转换成正向的过程:

                                             {\color{Red} p(x|z)=\frac{p(z|x)p(x)}{p(z)}}

因此SLAM中的定位问题就变成了下面的公式:

                                            

总结:
       这里只是讲了为什么要用贝叶斯来做滤波,究其根本就是我们无法直接由观测数据和控制数据来直接求解位姿。因此我们需要用贝叶斯公式将逆向的过程转化成正向的过程,也就得到了SLAM问题中的定位公式。


参考资料:

[1]  激光SLAM之一:为什么要用贝叶斯来做滤波

[2]  激光SLAM之二:贝叶斯滤波

猜你喜欢

转载自blog.csdn.net/Jeffxu_lib/article/details/88845236
今日推荐