An odyssey through inertial navigation on Lie groups.
LieOdyssey is a lightweight, research-friendly toolkit for IMU preintegration and state estimation in Inertial Navigation Systems (INS), built on the mathematical foundation of Lie Theory.
It provides efficient preintegration routines and filters on the most common Lie Groups, enabling robust navigation and state estimation in robotics, drones and autonomous systems.
- Preintegration on any Group available in Lie++ or ManIf.
- Lie algebra tools — exponential / logarithm maps, Jacobians, Adjoints, etc.
- Ready-to-deploy filters for SLAM/INS estimation.
- Lightweight & modular — easy to plug into factor graphs (e.g., GTSAM, Ceres).
Clone the repo:
git clone https://github.com/fetty31/LieOdysseyBuild LieOdyssey C++ standalone library:
cd LieOdyssey/cpp
mkdir build && cd build
cmake -DENABLE_TEST=ON .. # build test (optional)
make installBy default both Lie++ and Manif will be the retrieved and installed when building LieOdyssey. If you would want to install only one of them, the explicit build flags
-DUSE_{MANIF/LIEPLUSPLUS}=ON/OFFare available.
If you want to use LieOdyssey within ROS, ensure you have cloned the repo inside a ROS workspace and build via default:
colcon build --symlink-installIMU preintegration is a cornerstone of modern inertial navigation systems (INS) and visual/lidar-inertial SLAM pipelines.
Instead of re-integrating raw IMU data between every pair of keyframes during optimization, preintegration accumulates relative motion increments (“deltas”) directly on the appropriate Lie group — such as SO(3), SE₂(3), or SGal(3).
This allows high-rate inertial measurements to be summarized into a compact representation that can be reused efficiently during optimization.
By operating on Lie groups, preintegration respects the non-Euclidean geometry of rotations and poses, avoiding errors caused by naive linear approximations in Euclidean space.
High-rate IMU data are summarized into compact preintegrated measurements, significantly reducing computation and the number of variables optimized.
Covariances and Jacobians are propagated alongside the motion increments ("deltas"), ensuring statistically correct weighting of IMU constraints in the estimation process. ensuring statistically consistent weighting of IMU constraints during estimation.
Classical filters like the EKF assume additive state updates in Euclidean space:
For systems evolving on Lie groups (e.g., rotations, poses), we instead use group operations:
with state perturbations as
This formulation naturally handles nonlinear manifold structure, improving numerical stability and global consistency.
By combining preintegration with Lie-theoretic estimation, we achieve robust, efficient and geometrically consistent state estimation for systems with high-rate inertial sensors.
- ESEKF Filter.
- Invariant Filter.
- Pose-Graph on general manifolds.
- Example demos (VIO, drone INS).
MIT License. See LICENSE for details.
The name LieOdyssey merges the epic Greek journey (Odyssey) with the mathematical elegance of Lie groups, symbolizing the voyage from raw inertial measurements to precise navigation.