IMU

An IMU (Inertial Measurement Unit) measures the platform’s own motion: a 3-axis accelerometer gives linear acceleration (including gravity) and a 3-axis gyroscope gives angular velocity, both at high rate — typically 100–1000 Hz. It is the canonical proprioceptive sensor: it senses the body, not the world.

What the IMU actually measures

The standard measurement models, written in the body frame BB with world frame WW:

ωm=ω+bg+ng,am=RBW(aWgW)+ba+na\boldsymbol{\omega}_m = \boldsymbol{\omega} + \mathbf{b}^g + \mathbf{n}^g, \qquad \mathbf{a}_m = R_{BW}\,(\mathbf{a}_W - \mathbf{g}_W) + \mathbf{b}^a + \mathbf{n}^a

Two things surprise newcomers. First, the accelerometer measures specific force, not acceleration: gravity is always in the measurement, which is why a stationary IMU reads about 9.81m/s29.81\,\text{m/s}^2 upward rather than zero. This is a curse (gravity must be tracked and subtracted before integrating) and a blessing (the gravity direction makes roll and pitch observable). Second, every axis carries a bias — a slowly-varying offset that changes with temperature and time, so a factory calibration is never enough and ba,bg\mathbf{b}^a, \mathbf{b}^g are estimated online as part of the SLAM state.

Three characteristics define how IMUs behave in estimation:

Why dead reckoning diverges

Follow the integration chain and the failure mode becomes concrete. Orientation comes from integrating the gyro; velocity and position come from rotating the measured specific force into the world frame, adding gravity back, and integrating twice:

This is why pure inertial dead-reckoning with a consumer MEMS IMU diverges within seconds, while navigation-grade units (with bias stability orders of magnitude better) can dead-reckon far longer — at orders-of-magnitude higher cost, size, and power.

The camera-IMU marriage

An IMU alone cannot do SLAM, but an IMU paired with a camera is one of the most successful sensor combinations in robotics. The two are perfectly complementary:

CameraIMU
Rate10–60 Hz100–1000 Hz
MeasuresExternal world (drift-correcting)Self-motion (drifting)
Fails whenFast motion, blur, darkness, low textureNever “fails,” but drifts
ScaleUnobservable (monocular)Observable (via accelerometer)

The IMU bridges the gaps between camera frames, predicts motion for feature tracking, makes metric scale and gravity direction observable, and rides through short visual outages; the camera in turn keeps the IMU’s biases estimated and its drift in check.

How IMU data enters the estimator

In the SLAM formulation, IMU measurements enter the motion model: xt+1=f(xt,ut)+wt\mathbf{x}_{t+1} = f(\mathbf{x}_t, \mathbf{u}_t) + \mathbf{w}_t, with the state extended to include velocity and biases. Because hundreds of IMU samples arrive between keyframes, modern systems use preintegration: measurements between two keyframes are accumulated into a single relative-motion constraint, compensating for bias and gravity, so the optimizer touches one factor instead of a thousand raw samples — and the factor can be cheaply corrected when the bias estimate changes, without re-integrating. This topic — along with noise models, kinematics, and observability — is the heart of Level 6 (VIO/VINS).

Practical notes that matter before Level 6: camera-IMU fusion is only as good as the extrinsic calibration (the rigid transform between camera and IMU) and the time synchronization between the two sensor clocks — both are estimated with tools like Kalibr, and both are classic sources of mysterious VIO failures.

Why it matters for SLAM

Virtually every deployed visual tracking system — phone AR, drones, headsets, robot vacuum navigation — is visual-inertial, not vision-only, because the IMU is what makes tracking robust at real-world motion speeds and metric in scale. Understanding what an IMU measures, how its errors behave, and why integration drifts is the prerequisite for everything in the VIO level.