卡尔曼滤波从入门到放弃

只搬运一些自己感觉看的懂的

卡尔曼滤波其实是叫估计器estimator。估计estimate当前值叫滤波filtering,估计过去叫平滑smoothing,估计未来叫预测prediction。不过为了方便,往往就叫滤波器了。

这是一个迭代的数学过程,它使用一组方程和连续的数据输入来快速估计我们感兴趣的与该物体相关的值。基本上都是快速数学!

  1. 预测
    在预测中,我们只是根据初始值预测称为预测值的新值,然后根据系统中存在的各种过程噪声预测我们预测中的不确定性/误差/方差。
  2. 更新
    在更新中,我们考虑来自设备的实际测量结果,我们称之为测量值。这里我们计算我们的预测值和测量值之间的差异,然后通过计算卡尔曼增益来决定保留哪个值。然后,我们根据Kalman Gain做出的决定计算新值和新的不确定性/误差/方差。这些计算值将最终成为我们的卡尔曼滤波器在迭代1中完成的预测。
    更新步骤的输出再次馈入预测状态,并且循环继续,直到我们的预测值和实际值之间的误差/不确定性倾向于收敛到零。

卡尔曼滤波器算法 :

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
X(k)=A X(k-1)+B U(k)+W(k)
再加上系统的测量值:
Z(k)=H X(k)+V(k)
上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的协方差(covariance)分别是Q,R(这里我们假设他们不随系统状态变化而变化)。