Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

IMU Preintegration

  • Also called: preintegrated IMU factor, on-manifold preintegration
  • Category: State estimation & navigation › Localisation
  • Tags: imu, state-estimation, factor-graphs, sensor-fusion, slam

Combining the many IMU samples between two keyframes into one relative-motion measurement that does not depend on their absolute states, so an optimizer need not re-integrate when estimates change.

Definition

An IMU produces accelerometer and gyroscope samples far more often than a camera or lidar produces frames. In an optimization-based estimator, adding one state per IMU sample would make the problem far too large, but simply integrating the samples into a pose has a different problem: the result depends on the starting orientation, velocity and biases, which are themselves being estimated. Each time the optimizer changed those, the whole stretch of IMU data would have to be integrated again. IMU preintegration avoids this by integrating the measurements between two states in the body frame of the first state, producing relative changes in rotation, velocity and position that do not depend on the starting pose and velocity.

Lupton and Sukkarieh introduced preintegration for visual-inertial navigation (2012), and Forster, Carlone, Dellaert and Scaramuzza reformulated it on the rotation manifold (2015, extended in 2017); that formulation is the one most factor-graph systems use today. Gravity is handled separately, by adding it back when the preintegrated terms are compared with the two states. Bias dependence is handled with a first-order correction: during integration, the method also accumulates Jacobians of the preintegrated quantities with respect to the gyroscope and accelerometer biases, so a small change in the bias estimate updates the measurement cheaply. The covariance of the combined measurement is propagated alongside it, which gives the factor its weight. If the bias estimate moves far from the value used during integration, the integration is redone.

The result is a single IMU factor between consecutive keyframes in a factor graph, connecting their poses, velocities and biases, usually together with a factor that models slow bias random walk. This is what makes it practical to keep IMU data inside sliding-window and full smoothing estimators such as VINS-Mono, the inertial mode of ORB-SLAM3, LIO-SAM and LVI-SAM. Accuracy still depends on the IMU noise and bias parameters given to the factor, on time synchronization with other sensors, and on the discrete integration scheme, which assumes the measurements stay constant or vary simply between samples.

Why it matters

Without preintegration, tightly coupled visual-inertial and lidar-inertial optimization would be too slow to run on board a robot. It is the reason IMU data can sit next to camera, lidar and other measurements in a single factor graph.

Key applications

  • Visual-inertial odometry and SLAM back ends
  • Lidar-inertial odometry and mapping
  • Factor-graph fusion of IMU data with GPS, radar or wheel odometry
  • Online estimation of accelerometer and gyroscope biases
  • Camera-IMU and lidar-IMU calibration

In practice

Using GTSAM, a developer creates a preintegration object with the IMU's noise densities and bias random walk values, taken from the datasheet or from an Allan variance analysis of logged data. Every IMU sample between two keyframes is fed into it, and when the next keyframe arrives the accumulated result becomes an IMU factor linking the two keyframes' pose, velocity and bias variables. When the optimizer later updates the biases, the factor uses its stored Jacobians rather than reprocessing the samples. Systems that localize with other sensors, such as ground-penetrating radar, use the same factor to connect poses between the less frequent radar measurements.

Common misconceptions

  • Preintegration removes IMU drift — it only reorganizes the integration; noise and bias errors are still there and must be constrained by other sensors
  • The preintegrated measurement is fixed once computed — it depends on the bias estimate, which is corrected to first order and needs re-integration if the bias changes substantially
  • Preintegration is only a speed trick — it also provides a properly propagated covariance, which is what lets the optimizer weigh IMU data against other sensors

Who should know this

  • SLAM and visual-inertial odometry developers
  • State estimation engineers
  • Drone and legged robot navigation engineers
  • Researchers building estimators with factor graph libraries

Related technologies

  • GTSAM
  • Allan Variance
  • Lie Groups
  • VINS-Mono
  • LIO-SAM
  • Inertial Navigation Systems

Related terms

  • IMU
  • Factor Graph
  • Visual-Inertial Odometry
  • Tightly Coupled Sensor Fusion
  • Keyframe
  • LiDAR Odometry

Related projects

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.