Filter-based vs Optimization-based

Within tightly-coupled VIO there are two estimation paradigms. Both solve the same probabilistic inference problem; they differ in how often they are willing to re-linearize it.

Filter-based (EKF)

Filter-based methods (MSCKF, ROVIO, OpenVINS) maintain a state vector x\mathbf{x} and covariance P\mathbf{P} updated recursively:

Each measurement is linearized once, at the moment it is processed. That gives constant-time, low-latency updates — but the linearization point is permanent: if the estimate later moves, the already-absorbed information cannot be re-linearized, and accumulated linearization error causes drift and (without care) inconsistency. MSCKF’s insight was to make the EKF window-shaped — keeping a sliding set of past camera poses in the state and applying feature constraints structurelessly — so even “filtering” VIO is secretly windowed.

Optimization-based (sliding-window BA)

Optimization-based methods (OKVIS, VINS-Mono, Basalt, ORB-SLAM3) keep a sliding window of recent keyframe states and minimize a joint nonlinear cost — reprojection residuals, preintegrated IMU residuals, and a marginalization prior — with Gauss-Newton or Levenberg-Marquardt:

minX  rp2+rIMUΣ12+ρ(rreprojR12)\min_{\mathcal{X}} \; \|\mathbf{r}_p\|^2 + \sum \|\mathbf{r}_{\text{IMU}}\|^2_{\Sigma^{-1}} + \sum \rho\left(\|\mathbf{r}_{\text{reproj}}\|^2_{R^{-1}}\right)

Because every solver iteration re-linearizes all residuals in the window at the current estimate, linearization error is much smaller, and accuracy is correspondingly higher — at higher computational cost. Old states are compressed into the prior rp\mathbf{r}_p by Schur-complement marginalization, which is where the paradigms meet (see below).

Comparison

Filter (EKF)Sliding-window optimization
LinearizationOnce per measurementRe-linearized every iteration
CostLow, constant-timeHigher, grows with window size
AccuracyGoodBetter (typically)
LatencyVery low (one update per measurement)Higher (iterative solve per frame)
Consistency toolsFirst-Estimate Jacobians (FEJ), observability constraintsFEJ on the marginalization prior; nonlinear factor recovery (Basalt); delayed marginalization (DM-VIO)
Representative systemsMSCKF, ROVIO, OpenVINSOKVIS, VINS-Mono, Basalt, ORB-SLAM3

The two families are closer than they appear

So the practical difference is not “recursive vs batch” but where each design spends its compute budget: filters spend almost nothing on re-linearization and everything on throughput; optimizers buy accuracy by re-linearizing a small, well-chosen window.

Choosing in practice

Common pitfalls

Why it matters for SLAM

This is the VIO version of the classic “why filter?” question studied for visual SLAM (Strasdat et al.): given a fixed compute budget, re-linearizing a small window of keyframes beats filtering a large state. Knowing the failure mode of each side — filter inconsistency vs optimizer latency — tells you which system to pick for a given platform and which papers (FEJ, nonlinear factor recovery, delayed marginalization) exist to patch those failure modes.