IMU noise model
Raw IMU measurements are corrupted in a structured way. The full error model (following Woodman’s primer) includes bias, scale-factor error, cross-axis misalignment, and white noise per sensor:
where is (diagonal) scale-factor error and is cross-axis sensitivity. VIO estimators assume and are handled by factory or offline calibration and keep only the two online terms — additive white noise and a slowly-varying bias:
with zero-mean white Gaussian noise and each bias modeled as a random walk: with its own white driving noise.
Why these two terms matter so much
- White noise integrates into random-walk drift. Integrating white gyroscope noise gives an orientation error that grows like (angle random walk); double-integrating accelerometer noise gives position error growing like . This is why pure inertial dead-reckoning with a MEMS IMU diverges within seconds — and why the camera is needed.
- Bias is not constant. Turn-on bias differs every power cycle, and in-run bias wanders slowly with time and temperature. VIO estimators therefore keep in the state vector and estimate them continuously; the random-walk model tells the estimator how fast to let them move.
The four parameters and their units
A VIO configuration needs four numbers (often per-axis, usually shared):
| Parameter | Symbol | Typical continuous-time unit |
|---|---|---|
| Gyro noise density (angle random walk) | ||
| Accel noise density (velocity random walk) | ||
| Gyro bias random walk | ||
| Accel bias random walk |
These are continuous-time densities. To use them at a discrete sampling interval , the standard conversions are for the measurement noise and for the bias increment — a chronic source of implementation bugs (see pitfalls). These four numbers feed directly into the covariance propagation of an EKF or the covariance of a preintegrated IMU factor, i.e., they set how much the estimator trusts the IMU relative to the camera.
Allan variance: identifying the parameters
Allan variance is the standard tool for identifying these noise parameters from a long stationary log (hours, temperature-stable). Plotting the Allan deviation against averaging time on a log-log scale separates the noise sources by slope:
| Slope | Noise source | Parameter |
|---|---|---|
| White noise (angle/velocity random walk) | (noise density, read at ) | |
| (flat minimum) | Bias instability | — |
| Bias random walk | (random-walk density) |
The four numbers read off this plot are exactly the parameters demanded by the configuration files of VINS-Mono, OpenVINS, Kimera-VIO, and every other VIO system, e.g. in a Kalibr-style imu.yaml:
# continuous-time noise densities (example structure — measure your own values)
gyroscope_noise_density: ... # [rad/s/sqrt(Hz)]
gyroscope_random_walk: ... # [rad/s^2/sqrt(Hz)]
accelerometer_noise_density: ... # [m/s^2/sqrt(Hz)]
accelerometer_random_walk: ... # [m/s^3/sqrt(Hz)]
update_rate: 200.0 # [Hz]
Tools such as kalibr_allan and allan_variance_ros automate the log-and-fit procedure. In practice, values are often inflated somewhat above the Allan-derived ones (commonly several-fold) to absorb unmodeled effects: vibration, temperature ramps, scale-factor residuals.
Common pitfalls
- Unit confusion. Mixing continuous-time densities with discrete-time standard deviations (or datasheet units like for gyros) silently mis-weights the IMU by orders of magnitude. Always check which convention your estimator expects.
- Datasheet optimism. Manufacturer numbers are measured on a vibration-isolated bench; a quadrotor’s IMU sees motor vibration that behaves like extra noise. Log on the actual platform if possible.
- Overconfident parameters make the filter trust the IMU too much — divergence under vibration or fast motion. Overly pessimistic parameters throw away the IMU’s motion information, hurting robustness during visual dropouts. Both failure modes are common; tune deliberately.
- Too-short Allan logs. The bias-random-walk region only appears at large ; a 10-minute log cannot identify it. Multi-hour stationary recordings are the norm.
Why it matters for SLAM
The noise model is the contract between your hardware and your estimator: it sets the weight of IMU factors relative to visual factors. Parameters that are too optimistic make the filter overconfident in the IMU (divergence under vibration); too pessimistic and you throw away the IMU’s motion information. Being able to run and read an Allan variance plot is a basic practical skill for anyone deploying VIO on real hardware.
Related
- Introduction to Inertial Navigation — Woodman’s primer covering error sources in depth.
- IMU — the sensor itself.
- IMU preintegration — where these noise terms propagate into factor covariances.
- OpenVINS — a system whose documentation makes the noise-parameter workflow explicit.
- Multi-sensor calibration — the offline calibration that removes scale/misalignment terms.