GTSAM
Bibliothèque d'optimisation par graphes de facteurs au cœur de nombreux backends SLAM modernes
Licence
BSD-2-Clause
Aperçu
Georgia Tech Smoothing and Mapping — bibliothèque C++ avec liaisons Python pour l'estimation d'état et la fusion de capteurs par graphes de facteurs. Elle fournit le lisseur incrémental iSAM2, un riche ensemble de facteurs prêts à l'emploi pour la préintégration IMU, le GPS, la vision et les mesures de distance, ainsi que la machinerie des groupes de Lie sous-jacente. GTSAM est le backend d'optimisation de nombreux systèmes SLAM modernes, dont LIO-SAM, Kimera et GLIM.
GTSAM modélise les problèmes d'estimation comme des graphes de facteurs : des variables (poses, amers, vitesses, biais) reliées par des facteurs codant les mesures. Il embarque des optimiseurs batch (Levenberg-Marquardt, Gauss-Newton, dogleg) et le lisseur incrémental iSAM2, la préintégration IMU selon Forster et al., des facteurs intelligents pour la vision et un support complet des groupes de Lie pour SO(3)/SE(3). Les liaisons Python exposent l'API complète, et une communauté active le maintient sous licence BSD.
Pourquoi c'est important
Les graphes de facteurs sont devenus la langue commune du SLAM et de la fusion multicapteur, et GTSAM est l'implémentation de référence sur laquelle le domaine s'appuie : largement citée et intégrée à plusieurs des systèmes SLAM ouverts les plus utilisés.
Le problème résolu
Fusionner des mesures IMU, lidar, caméra et GPS en une estimation d'état cohérente est un vaste problème d'optimisation creux. GTSAM l'exprime comme un graphe de facteurs et en exploite la parcimonie, iSAM2 mettant à jour la solution de façon incrémentale à l'arrivée de chaque mesure au lieu de tout recalculer.
Points clés
- Les graphes de facteurs transforment la fusion multi-capteurs en un problème d'optimisation creux à structure réutilisable
- iSAM2 offre un lissage incrémental temps réel au lieu de résolutions batch répétées
- Les facteurs IMU, GPS, vision et distance prêts à l'emploi couvrent la plupart des problèmes d'estimation en robotique
- Le backend de prédilection de LIO-SAM, Kimera, GLIM et de nombreux systèmes de recherche
- Les liaisons Python le rendent accessible au-delà des bases de code C++
Pour qui
- Concepteurs de systèmes SLAM cherchant un backend d'optimisation éprouvé
- Chercheurs en estimation d'état prototypant de nouveaux facteurs
- Ingénieurs fusionnant IMU/GPS/vision dans des robots de production
- Étudiants en master/doctorat apprenant la théorie de l'estimation par la pratique
Limites
- Courbe d'apprentissage raide — la modélisation par graphes de facteurs et les groupes de Lie sont des prérequis
- La compilation depuis les sources avec wrappers Python et TBB peut être laborieuse sur certaines plateformes