GPS从入门到放弃(二十五) — 卡尔曼滤波
概述
单点定位的结果因为是单独一个点一个点进行的,所以连续起来看数据可能出现上串下跳的情况,事实上并不符合实际情况。为了解决这个问题,考虑到物体运动的连续性和运动变化的缓慢性,可以通过滤波器来平滑位置轨迹。
滤波器的设计需要对物体的运动做一些理性的、常规的假设,比如要符合牛顿运动定律等。这里最常用的滤波器就是卡尔曼滤波器。
卡尔曼滤波器用来解决用线性微分方程描述的离散时间控制过程中的状态估计问题。其目标是使系统状态的估计值有最小均方误差。卡尔曼滤波器来源于匈牙利数学家卡尔曼的博士论文,推导过程这里就不多赘述了,在诸多文献中都有讲解,我们直接讲怎么用。
对于一个线性离散系统,设其系统方程为:
x k = A x k − 1 + B u k − 1 + w k − 1 \boldsymbol{x}_k = \boldsymbol{A}\boldsymbol{x}_{k-1}+\boldsymbol{B}\boldsymbol{u}_{k-1}+\boldsymbol{w}_{k-1} xk=Axk−1+Buk−1+wk−1
测量方程式为:
y k = H x k + v k \boldsymbol{y}_k = \boldsymbol{H}\boldsymbol{x}_{k}+\boldsymbol{v}_{k} yk=Hxk+vk
其中随机变量 w k \boldsymbol{w}_k wk 和 v k \boldsymbol{v}_k vk 分别表示过程噪声与测量噪声。假设它们是相互独立的正态分布的白噪声,且其协方差阵分别为 Q \boldsymbol{Q} Q 和 R \boldsymbol{R} R。(要注意的是,实际应用中, A \boldsymbol{A} A, B \boldsymbol{B} B, H \boldsymbol{H} H,