MSCKF
Mourikis 2007 · Paper
One-line summary — The Multi-State Constraint Kalman Filter achieves efficient monocular VIO by keeping a sliding window of camera poses (not landmarks) in the EKF state and projecting feature measurements onto the left null space of the landmark Jacobian, so complexity stays linear in the number of features.
Problem
Classic EKF-SLAM puts every 3D landmark position in the state vector, so covariance updates scale quadratically with map size — prohibitive for vision-aided inertial navigation, where feature extractors routinely track hundreds of points per image. Pairwise alternatives (epipolar constraints, relative-pose measurements between image pairs) discard information and reuse the same pixels in statistically correlated constraints. The question MSCKF answered: can a feature track observed from multiple camera poses constrain the trajectory optimally, without the feature ever becoming a state variable?
Method & architecture
The filter follows a three-step loop (Algorithm 1 of the paper): propagate on every IMU sample, augment on every image, update when feature tracks complete.
- State. The evolving IMU state is with unit quaternion (global-to-IMU rotation), gyro/accel biases modeled as random walks, and velocity/position in the global frame; orientation error uses the minimal 3-DoF of the error quaternion . The full state appends up to past camera poses .
- Propagation. IMU estimates are integrated with 5th-order Runge-Kutta; the covariance follows the Lyapunov equation with numerically integrated state-transition matrix .
- State augmentation. On each new image the camera pose , is appended and the covariance expanded via its Jacobian.
- Structureless measurement model (the core contribution). When a feature tracked over poses is lost, its position is triangulated by Gauss-Newton least squares with inverse-depth parametrization. Stacking the linearized reprojection residuals of all its observations gives Because the triangulation used the state estimate, is correlated with ; projecting onto the left null space of (basis ) removes the feature error exactly: a -dimensional constraint coupling all poses that saw the feature — optimal up to linearization, computed implicitly with Givens rotations in .
- Update. Residuals of all completed features are stacked, and a QR decomposition compresses them to before the standard EKF update with gain . Moving-object outliers are rejected with a Mahalanobis test. When the window is full, evenly spaced poses are pruned (the oldest is kept — longer baselines carry more information).
Total cost: linear in features, at most cubic in the (bounded) number of windowed poses.
Results
Evaluated on a real-world urban drive in Minneapolis: a Pointgrey FireFly camera (640×480 @ 3 Hz) and an ISIS IMU (100 Hz) on a car, 1598 images over about 9 minutes, SIFT features, at most 30 camera poses in the state. Along the 3.2 km trajectory, 142,903 feature tracks were used for EKF updates, processed at 14 Hz on a single core of a 2 GHz Intel T7200 — faster than the 3 Hz sensor rate. The final position error was approximately 10 m, i.e. 0.31% of the traveled distance, with no loop closure and no motion priors; estimated 3σ accuracy was better than 1° in attitude and 0.35 m/s in velocity.
Why it matters for SLAM
MSCKF founded the filter-based branch of VIO and its structureless measurement model became standard well beyond filtering (e.g., smart factors in GTSAM/Kimera). It is the direct ancestor of S-MSCKF (stereo), ROVIO-era EKF designs, and OpenVINS, and the follow-up literature on its linearization behavior produced the observability/consistency analysis (First-Estimate Jacobians) that all modern filter-based VIO relies on. Its efficiency profile is why MSCKF-style estimators are widely associated with deployed AR/VR tracking stacks. When accuracy-per-CPU-cycle matters more than absolute accuracy, MSCKF is still the reference design.
Related
- OpenVINS — the modern open-source MSCKF with FEJ and online calibration.
- StereoMSCKF — the stereo extension (S-MSCKF).
- ROVIO — the other landmark filter-based VIO, using direct photometric updates.
- Filter-based vs Optimization-based — where MSCKF sits in the design space.
- Observability — the analysis tradition MSCKF spawned.
- Deployed VIO — where MSCKF-class efficiency matters most.