ESKF(Error-State Kalman Filter, ESKF)误差状态卡尔曼滤波,本质上仍是卡尔曼滤波,但核心思想与传统卡尔曼滤波有所不同。
ESKF的核心思想是将状态分解为两个部分:
这种误差状态的建模方式带来了几个关键优势:
ESKF的运行过程也遵循卡尔曼滤波的“预测-更新”循环,但步骤上更为精细,以一个融合IMU和GPS的系统为例。
状态定义:

步骤一:预测 - 由IMU的高频数据驱动

这里 R(q)是从四元数到旋转矩阵的转换,g是重力向量,这个过程是确定性的(忽略了噪声),会产生漂移。

其中 Φk≈exp(FΔt) 是离散时间的状态转移矩阵,Qd是离散化的过程噪声协方差矩阵。
在预测步骤中,只更新了误差状态的协方差 P,而误差状态 δx 的均值(估计值)被重置为零,因为还没有进行观测更新,所以最佳误差估计就是零。
步骤二:更新 - 由GPS、视觉里程计等低频绝对观测数据驱动。

H是观测矩阵,将误差状态 δx映射到观测空间,需要通过求导得到:观测值对误差状态的雅可比矩阵。 R是观测噪声协方差矩阵。

z 是实际的传感器观测值(如GPS给出的位置) h(x)是观测模型,使用当前的名义状态 x来预测观测值。 这个残差本质上就是观测到的“误差”,正是需要用误差状态来解释的量。

现在,得到了误差状态的最佳估计 δx。
步骤三:注入和重置 :ESKF独有的步骤
之后,循环继续,用新的名义状态和重置后的误差状态进行下一轮的预测。

特性 | 扩展卡尔曼滤波 (EKF) | 无迹卡尔曼滤波 (UKF) | 误差状态卡尔曼滤波 (ESKF) |
|---|---|---|---|
原理 | 直接线性化。在当前状态估计点对非线性模型进行一阶泰勒展开,然后用线性KF公式。 | 概率分布近似。选取一组Sigma点,通过非线性模型直接传播,用传播后的点来近似后验分布的均值和协方差。 | 状态分解。将状态分为名义状态(非线性积分)和误差状态(线性KF估计误差)。 |
处理非线性方式 | 解析求导(雅可比矩阵)。需要推导并计算系统模型和观测模型的雅可比矩阵。 | 统计采样(无迹变换)。不需要求导,通过非线性函数传播Sigma点。 | 误差线性化。在误差状态零点附近对误差动力学进行线性化,线性化精度高。 |
估计对象 | 完整的系统状态 x{x}x | 完整的系统状态 x{x}x | 误差状态 δx\delta{x}δx |
稳定性 | 低。雅可比矩阵计算错误或线性化误差过大会导致发散。 | 中。比EKF更稳定,但Sigma点参数设置不当或维数过高也会出问题。 | 高。误差动力学更平滑、更线性,数值稳定性好。 |
计算效率 | 中到高。取决于雅可比矩阵的计算复杂度,但通常比UKF快。 | 低。需要传播 2n+1 个Sigma点(n为状态维数),维数灾难。 | 高。误差状态维数可能更低(如姿态误差为3维而非4维),且动力学常为稀疏矩阵,计算高效。 |
实现难度 | 中。需要手动推导和编码雅可比矩阵,容易出错。 | 低。算法流程固定,无需求导,易于实现。但需要选择Sigma点参数。 | 高。需要推导误差状态方程,实现注入和重置逻辑,概念最复杂。 |
适用系统 | 中等非线性程度、状态维数不高的系统。 | 强非线性系统,且状态维数较低(通常n<10)的系统。 | 含有IMU等积分型传感器的系统,尤其是需要融合高频IMU和低频绝对观测的系统。 |
EKF:是基准方法,思想直接,在非线性程度不高、模型简单的情况下是一个快速有效的选择,但当系统非线性强时,其精度和稳定性问题突出。
UKF:是EKF的一个强大替代品,当面对一个强非线性系统,且状态维数较低,同时又不想或难以计算复杂的雅可比矩阵时,UKF是首选。
ESKF:专用于导航、机器人、自动驾驶领域,是为IMU(惯性测量单元) 量身定做的,如果系统核心是高频的IMU(提供预测),并辅以低频的绝对观测(如GPS、相机、激光雷达提供更新),那么ESKF几乎是不二之选。