EKF与ESKF的对比
“Engineers can solve exact problems using numerical approximations, or they can solve approximate problems exactly" - Fred Daum.
对出现在实际问题中的非线性的运动学(dynamic)模型以及/或 非线性的观测方程进行线性化的操作,然后基于这个线性化的方程计算卡尔曼增益,是EKF的精髓(philosophy)所在。相反,ESKF通过将问题从状态域转换到误差状态域,然后求解这个近似问题的精确解。(总结就是EKF是对一个精确的问题求近似解;而ESKF是对问题进行近似后,求它的精确解)。
EKF和ESKF差异分析
-
ESKF用于只估计状态向量的误差,比如说,估计AHRS问题的欧拉角的误差。为此,ESKF将式22给出的非线性域问题改写成如式18给出的时变线性域误差估计问题。ESKF形式中的系统矩阵F(X)是一个关于实际时变系统状态的(而不是误差状态的)函数,因此可以认为它是时变的,但却是线性的。而EKF形式中的系统矩阵F(X)是关于系统状态的函数,这个系统状态就是EKF里面的状态向量。因此,与ESKF的线性系统矩阵不同,EKF的这个系统矩阵是一个线性化的矩阵。
-
ESKF中状态误差协方差预测遵循式28,可以看到状态转移矩阵是一个线性时变系统矩阵(式18)的离散版本。另一方面,EKF的误差协方差矩阵预测(使用式11的第四个式子),系统矩阵是一个非线性系统关于当前状态轨迹的线性化的版本。因此从最小化根均方误差的角度看,EKF中的状态误差协方差预测是一个次优的,而ESKF中的状态误差协方差预测是最优的。
-
EKF或者ESKF中的状态误差协方差预测作为计算卡尔曼增益矩阵的一个输入(ESKF如式31,EKF如式13)。因此,任何在预测的状态误差协方差中的最优性损失都会导致计算卡尔曼增益矩阵的最优性损失,然后进而导致基于卡尔曼增益的状态估计更新中的最优性损失。