为什么要用贝叶斯滤波:
机器人有状态x和测量z两个量,比如机器人在x=0,我让他向正方向走10,他就应该在x=10的位置,此时状态为x=10,测量z也应该为10,但由于__本书在第二章2.3 机器人与环境的交互__中所讲的,环境中,机器人运动过程中存在噪音,或者传感器数据没有更新,所以z=10是一个不准确的状态,可能此时z=10.1或者9.9。那么此时状态和测量不一样,我怎么能确定机器人到底在哪?我无法确定机器人在哪,因为总有噪音,除非我拿把尺子去量,但是去量最后小数点后面几位我也要估,也会有误差。所以我们只能计算机器人此时在此地的概率。关于这点这篇文章讲的好:贝叶斯公式和机器人的恩怨情仇_wushuai123_的博客-CSDN博客
bel置信度,指事件A发生概率B的可信程度。刚好可以描述我们机器人A在此刻在地点B这个概率的可信程度。是可信程度的平均,我们称他为预测。
我们已经得到了状态和测量,这是已发生的,根据马尔科夫假设,机器人当前状态和未来过去独立,故如果我们知道了机器人上一刻的测量和我们对他的控制,那我们就能的到机器人此刻的位置。由于机器人的位置是由上一个时刻的状态和测量引起的,是已经发生的事,所以此时在测量z下状态为x称为后验概率。而上一刻的位置和控制为先验概率。根据贝叶斯准则。如果我们得到上一刻的位置和控制,就能通过贝叶斯准则得到现在在测量z下状态为x的概率的可信程度,进而进行定位。那么我们如何得到上一刻的可信程度呢?用上上一刻,以此类推。所以贝叶斯滤波是一种递归的算法。
在公式第3.行,我们通过上一刻的测量和状态求出上一刻机器人A在位置B的可信程度的平均值,即上一刻位置的推测,带入第4行求出机器人A在此时在地点B的概率的可信程度,即机器人的位置。
贝叶斯滤波与卡尔曼滤波:
这篇讲的好:
卡尔曼滤波(KF)与扩展卡尔曼滤波(EKF)的一种理解思路及相应推导(1)_在路上@Amos-CSDN博客_ekf卡尔曼滤波卡尔曼滤波本质上是参数化的贝叶斯滤波,只是把P(xt|xt-1)和 P(zt|xt) 的概率模型使用高斯分布来表示。
卡尔曼滤波中对运动进行了线性观测,拓展卡尔曼滤波只是把非线性的转变换成线性观测。它把非线性的高次数项进行泰勒展开,去掉一阶之后的高阶项。也就是用导数去切均值。
无迹卡尔曼只采用有限点,减少了计算量。