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.
The project includes multiple ROS packages that use the lie_odyssey_cpp library as a core backend for LiDAR–Inertial SLAM and odometry:
lio_ros: A minimalist LiDAR-Inertial Odometry (LIO) implementation for ROS 2gilda_lio: A LiDAR-Inertial Odometry (LIO) system with an Adaptive Gaussian Voxelmap (same idea as Voxelmap++)
IMU 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.
Classical filters like the Extended Kalman Filter (EKF) assume additive updates in Euclidean space:
However, many robotic states (e.g., rotations in SO(3) or poses in SE(3)) lie on Lie groups, which are nonlinear manifolds. In this setting, addition is not globally well-defined.
Instead of additive noise, uncertainty is modeled in the Lie algebra (the tangent space), and mapped to the group via the exponential map:
The state is expressed as a (here right) perturbation around an estimate:
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.