GTSAM
Factor-graph optimization library powering many modern SLAM backends
License
BSD-2-Clause
Overview
Georgia Tech Smoothing and Mapping — a C++ library with Python bindings for factor-graph based state estimation and sensor fusion. It provides the iSAM2 incremental smoother, a rich set of ready-made factors for IMU preintegration, GPS, vision and range measurements, and the Lie-group machinery underneath. GTSAM is the optimization backend inside many modern SLAM systems, including LIO-SAM, Kimera and GLIM.
GTSAM models estimation problems as factor graphs: variables (poses, landmarks, velocities, biases) connected by factors encoding measurements. It ships batch optimizers (Levenberg-Marquardt, Gauss-Newton, dogleg) and the iSAM2 incremental smoother, IMU preintegration following Forster et al., smart factors for vision, and full Lie-group support for SO(3)/SE(3). Python bindings expose the complete API, and an active BSD-licensed community maintains it.
Why it matters
Factor graphs became the lingua franca of SLAM and multi-sensor fusion, and GTSAM is the reference implementation the field builds on — widely cited and embedded in several of the most-used open SLAM systems.
Problem it solves
Fusing IMU, lidar, camera and GPS measurements into a consistent state estimate is a large sparse optimization problem. GTSAM expresses it as a factor graph and exploits its sparsity, with iSAM2 updating the solution incrementally as new measurements arrive instead of re-solving from scratch.
Key takeaways
- Factor graphs turn multi-sensor fusion into a sparse optimization problem with reusable structure
- iSAM2 gives incremental, real-time smoothing instead of repeated batch solves
- Ready-made IMU, GPS, vision and range factors cover most robotics estimation problems
- The backend of choice for LIO-SAM, Kimera, GLIM and many research systems
- Python bindings make it accessible beyond C++ codebases
Who it is for
- SLAM system builders needing a proven optimization backend
- State-estimation researchers prototyping new factors
- Engineers fusing IMU/GPS/vision in production robots
- Graduate students learning estimation theory hands-on
Limitations
- Steep learning curve — factor-graph modeling and Lie-group concepts are prerequisites for productive use
- Building from source with Python wrappers and TBB can be involved on some platforms