What is Error-State Kalman Filter?
Error-State Kalman Filter is an Extended Kalman Filter formulation that propagates a nominal state with the nonlinear model while estimating a locally defined error state and its covariance.
Quick Facts
| Specification | Official Specification |
|---|
How It Works
Propagate the nominal state and local error consistently
The nominal state follows the full nonlinear kinematics, while the error mean and covariance use linearized dynamics such as delta_x_(k+1) = F_k delta_x_k + G_k w_k. Position and velocity errors may be additive, but orientation usually uses a small rotation composed on the left or right. Every Jacobian, noise mapping, and residual must use the same convention.
Solà's ESKF derivation separates true, nominal, and error states and derives IMU propagation for local and global angular errors. The construction keeps perturbations small; it does not make a large initial error locally linear.
Inject the correction, then transform and reset covariance
A measurement update estimates an error delta_x_hat. The implementation composes that correction into the nominal state, resets the stored error mean to zero, and transforms covariance with the reset Jacobian. Simply zeroing the error vector while leaving covariance in the old tangent coordinates creates an inconsistent filter, particularly for finite attitude corrections.
Sign, multiplication order, quaternion layout, frame direction, and angle wrapping are part of the public algorithm contract. A left perturbation and a right perturbation can both be valid, but their Jacobians and injection equations are not interchangeable.
Test observability, discretization, and statistical consistency
Hager and Bryne's global-navigation comparison shows that classical and invariant ESKF variants differ in coordinates, error definitions, and trajectory dependence. An ESKF is therefore not automatically an Invariant EKF, and a Multiplicative EKF is a specialized attitude-error construction rather than a synonym for every error-state filter.
Validate zero-motion, constant-rate, bias, frame-change, delayed-measurement, and large-initial-error cases. Report innovation whiteness, normalized innovation squared, NEES when truth exists, covariance eigenvalues, reset behavior, and sensitivity to the integration step. A low trajectory RMSE with overconfident covariance is still a failed estimator.
Key Characteristics
- Separates a nonlinear nominal trajectory from a locally linear error state
- Keeps orientation perturbations in a minimal tangent-space representation
- Injects estimated errors into the nominal state after measurement updates
- Requires a covariance reset transform after changing tangent coordinates
- Supports high-rate inertial propagation with lower-rate aiding measurements
- Retains EKF sensitivity to linearization, noise, frames, and observability
Common Use Cases
- GNSS and IMU integrated navigation
- Visual-inertial and lidar-inertial odometry
- Robot pose, velocity, and sensor-bias estimation
- Aerial or marine navigation during intermittent absolute fixes
- Embedded state estimation with manifold-valued orientation
Example
Loading code...Frequently Asked Questions
How is an Error-State Kalman Filter different from a standard EKF?
A standard EKF can estimate the full state directly. An ESKF propagates a nonlinear nominal state but places the Gaussian estimate on a local error around it. After correction, it injects that error and resets the local coordinates. Both remain first-order Gaussian approximations.
Why does an ESKF reset its error state?
After the estimated perturbation is composed into the nominal state, keeping the same nonzero error would count the correction again. Resetting re-centers the local coordinates, while the reset Jacobian moves covariance into the new tangent frame.
Is an ESKF always more accurate than an EKF?
No. Small local errors and valid manifold composition can improve linearization and representation, but accuracy still depends on initialization, observability, dynamics, noise, timing, discretization, and Jacobians. Compare implementations under one declared model and test protocol.
Is an Error-State Kalman Filter the same as an Invariant EKF?
No. Both can use local errors, but an Invariant EKF chooses left- or right-invariant group errors and obtains special autonomous or log-linear properties only for compatible group-affine systems. A conventional ESKF can remain trajectory-dependent.
What should be tested in an ESKF implementation?
Test frame and unit conventions, zero and constant motion, bias recovery, finite attitude injection, reset covariance, missing and delayed measurements, large initial error, innovation statistics, NEES, covariance positivity, and sensitivity to the integration interval.