SLAM -- 通过毫米波雷达详解EKF始末(1)

之前写过一些关于KF和EKF的使用文章,主要偏向于应用,而且过于工程化。鉴于不断的理解深入学习,对于这块知识也有了更进一步的理解认识,这里通过实际Radar数据,详细记录下对于EKF的认识。

在介绍EKF之前,先要认识它的爸爸,贝叶斯滤波。

贝叶斯滤波

贝叶斯滤波的基础是马尔科夫性:当一个随机过程在给定现在状态以及所有过去状态的情况下,其未来的状态的条件概率分布仅依赖于当前状态;换句话说,在丁丁现在状态时,未来和过去状态是相互独立的。

贝叶斯滤波就是在马尔可夫性的条件下,仅使用过去和当前测量,构造一个PDF来计算当前的状态。贝叶斯滤波是一种递归优化过程。

公式:

批量化的优化过程我们知道是用所有的数据来更新当前的状态,从公式上看可以分成前向和后向优化:

既然贝叶斯是服从马尔可夫的,那么我们就可以只关注前半部分。即:

通过贝叶斯转换:

公式1

这里用到 贝叶斯公式中融合多种观测:

在很多应用问题中,我们会用多种观测信息对一个状态进行猜测和推理,贝叶斯公式中是如何融合多种观测的呢?

我们简单推导一下: [公式]

所以有: [公式]

将这个公式改变下,引入之前的一个状态:

由于马尔可夫性,可以将积分公式中的两个子项进行优化:

带入公式1,最后得到贝叶斯滤波器:

就是这个公式演变出了EKF,UKF等滤波算法。

从中,我们也可以知道如果使用贝叶斯滤波来估计状态,我们需要一个先验值,然后通过不断的根据运动方程进行预测,在通过测量方程进行更新,最终形成一个迭代的递归状态更新过程。

贝叶斯滤波器是基于线性高斯分布的系统,所有的状态,运动方程都服从线性高斯分布,所以,在使用中会有很大的局限,毕竟这个世界是非线性的。非线性的分布会导致公式中的积分部分计算非常的耗费资源,所以我们在实际使用中,需要对模型进行线性化,这就是EKF。