以前对于这个算法只会调用,并没有深入的理解。现在碰到一个项目,没办法只能硬着头皮去理解了。网上看了很多资料,感觉写的也一般般,现在我讲自己的理解。
卡尔曼滤波算法的核心是动态调整权值。用过互补滤波的应该知道它的权值是静态的,而卡尔曼是动态的。刚刚接触卡尔曼也不要紧张,我来一步步剖析这个东西。
以上五条公式是卡尔曼的核心。它的本质就是通过预测结合测量来估计当前系统的状态。举个例子,假如我们要估计一架飞行器的姿态,可以通过IMU来实时测量,但是测量值有一定的风险是不准确的,所以并不能完全依赖传感器。任何一个满足物理规律的系统应当是连续的,所以我们还可以通过上一状态来预测当前状态。Kalman Filter正是结合这两条进行状态估计,到底是相信哪一个多一点,还要根据Kt来决定,我们定义Kt为卡尔曼增益,它是根据 测量和预测的协方差来计算的。
先解释下每个公式所要表达的含义以及变量的含义:
line 2: 首先通过上一状态最优值和将要施加的控制量来预测当前状态,由假设一可以得到:
因为我们只是求均值,而高斯噪声均值为0,所以可省去最后一项。
At指当前时刻的状态转移矩阵(就是指从上一状态转变为下一状态的关系矩阵);