GTSAM
Libreria di ottimizzazione su factor graph alla base di molti backend SLAM moderni
Licenza
BSD-2-Clause
Panoramica
Georgia Tech Smoothing and Mapping: una libreria C++ con binding Python per la stima dello stato e la fusione dei sensori basate su factor graph. Fornisce lo smoother incrementale iSAM2, un ricco insieme di fattori già pronti per la preintegrazione dell'unità di misura inerziale (IMU), GPS, visione e misure di distanza, e i meccanismi dei gruppi di Lie sottostanti. GTSAM è il backend di ottimizzazione all'interno di molti sistemi SLAM moderni, tra cui LIO-SAM, Kimera e GLIM.
GTSAM modella i problemi di stima come factor graph: variabili (pose, landmark, velocità, bias) collegate da fattori che codificano le misure. Include ottimizzatori batch (Levenberg-Marquardt, Gauss-Newton, dogleg) e lo smoother incrementale iSAM2, la preintegrazione dell'unità di misura inerziale (IMU) secondo Forster et al., smart factor per la visione e il pieno supporto ai gruppi di Lie per SO(3)/SE(3). I binding Python espongono l'intera API; la libreria ha licenza BSD ed è mantenuta da una comunità attiva.
Perché è importante
I factor graph sono diventati la lingua franca dello SLAM e della fusione multisensore, e GTSAM è l'implementazione di riferimento su cui il settore costruisce: ampiamente citata e integrata in diversi dei sistemi SLAM aperti più usati.
Il problema che risolve
Fondere misure di unità di misura inerziale (IMU), LiDAR, telecamera e GPS in una stima dello stato coerente è un grande problema di ottimizzazione sparso. GTSAM lo esprime come factor graph e ne sfrutta la sparsità, con iSAM2 che aggiorna la soluzione in modo incrementale all'arrivo di nuove misure invece di risolverlo da zero.
Punti chiave
- I factor graph trasformano la fusione multisensore in un problema di ottimizzazione sparso con una struttura riutilizzabile
- iSAM2 offre uno smoothing incrementale in tempo reale invece di risoluzioni batch ripetute
- Fattori già pronti per unità di misura inerziale (IMU), GPS, visione e distanza coprono la maggior parte dei problemi di stima in robotica
- Il backend preferito di LIO-SAM, Kimera, GLIM e di molti sistemi di ricerca
- I binding Python la rendono accessibile oltre le codebase C++
A chi si rivolge
- Costruttori di sistemi SLAM che hanno bisogno di un backend di ottimizzazione collaudato
- Ricercatori di stima dello stato che prototipano nuovi fattori
- Ingegneri che fondono IMU/GPS/visione in robot di produzione
- Studenti post-laurea che imparano sul campo la teoria della stima
Limiti
- Curva di apprendimento ripida: la modellazione con factor graph e i concetti dei gruppi di Lie sono prerequisiti per un uso produttivo
- La compilazione dai sorgenti con i wrapper Python e TBB può essere laboriosa su alcune piattaforme