Kalman 滤波在运动跟踪中的应用
状态方程:个离散控制过程的系统,
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(这里我们假设他们不随系统状态变化而变化)。
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡
尔 曼 滤 波 器 是 最 优 的 信 息 处 理 器 。 下 面 我 们 来 用 他 们 结 合 他 们 的
covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统
状态是 k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
X(k|k-1)=A X(k-1|k-1)+B U(k) ……… (1)
式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最
优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为 0。
到现在为止,我们的系统结果已经更新了,可是,对应于 X(k|k-1)的
covariance 还没更新。我们用 P 表示 covariance:
P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)
式(2)中,P(k|k-1)是 X(k|k-1)对应的 covariance,P(k-1|k-1)是 X(k-1|k-1)
对应的 covariance,A’表示 A 的转置矩阵,Q 是系统过程的 covariance。式
子 1,2 就是卡尔曼滤波器 5 个公式当中的前两个,也就是对系统的预测。
现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结
合预测值和测量值,我们可以得到现在状态(k)的最优化估算值 X(k|k):
X(k|k)= X(k|k-1)+Kg(k)(Z(k)-H X(k|k-1)) ……… (3)
其中 Kg 为卡尔曼增益(Kalman Gain):
Kg(k)= P(k|k-1) H’/(H P(k|k-1) H’ + R) ……… (4)
到现在为止,我们已经得到了 k 状态下最优的估算值 X(k|k)。但是为了要
使卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新 k 状态下
X(k|k)的 covariance:
P(k|k)=(I-Kg(k)H)P(k|k-1) ……… (5)
其中 I 为 1 的矩阵,对于单模型单测量,I=1。当系统进入 k+1 状态时,P(k|k)
就是式子(2)的 P(k-1|k-1)。这样,算法就可以自回归的运算下去。
总结以上内容克制,Kalman 滤波器实现的主要五个方程为:
2
评论0
最新资源