GTSAM
Biblioteca de otimização de grafos de fatores por trás de muitos backends SLAM modernos
Licença
BSD-2-Clause
Visão geral
Georgia Tech Smoothing and Mapping — uma biblioteca C++ com bindings Python para estimativa de estado e fusão sensorial baseadas em grafos de fatores. Oferece o suavizador incremental iSAM2, um rico conjunto de fatores prontos para pré-integração de IMU, GPS, visão e medidas de alcance, além da maquinaria de grupos de Lie subjacente. O GTSAM é o backend de otimização de muitos sistemas SLAM modernos, incluindo LIO-SAM, Kimera e GLIM.
O GTSAM modela problemas de estimativa como grafos de fatores: variáveis (poses, marcos, velocidades, vieses) conectadas por fatores que codificam medições. Traz otimizadores em lote (Levenberg-Marquardt, Gauss-Newton, dogleg) e o suavizador incremental iSAM2, pré-integração de IMU segundo Forster et al., fatores inteligentes para visão e suporte completo a grupos de Lie para SO(3)/SE(3). Os bindings Python expõem toda a API, mantida por uma comunidade ativa sob licença BSD.
Por que importa
Os grafos de fatores se tornaram a língua franca do SLAM e da fusão de múltiplos sensores, e o GTSAM é a implementação de referência sobre a qual a área se apoia: amplamente citado e embutido em vários dos sistemas SLAM abertos mais usados.
Problema que resolve
Fundir medições de IMU, lidar, câmera e GPS em uma estimativa de estado consistente é um grande problema de otimização esparso. O GTSAM o expressa como grafo de fatores e explora sua esparsidade, com o iSAM2 atualizando a solução incrementalmente conforme novas medições chegam, em vez de resolver do zero.
Pontos principais
- Grafos de fatores transformam a fusão multissensor em um problema de otimização esparso com estrutura reutilizável
- O iSAM2 entrega suavização incremental em tempo real em vez de repetidas resoluções em lote
- Fatores prontos de IMU, GPS, visão e alcance cobrem a maioria dos problemas de estimativa em robótica
- O backend preferido de LIO-SAM, Kimera, GLIM e muitos sistemas de pesquisa
- Os bindings Python o tornam acessível além de bases de código C++
Para quem é
- Construtores de sistemas SLAM que precisam de um backend de otimização comprovado
- Pesquisadores de estimativa de estado prototipando novos fatores
- Engenheiros fundindo IMU/GPS/visão em robôs de produção
- Pós-graduandos aprendendo teoria de estimativa na prática
Limitações
- Curva de aprendizado íngreme — modelagem com grafos de fatores e conceitos de grupos de Lie são pré-requisitos para uso produtivo
- Compilar do código-fonte com wrappers Python e TBB pode ser trabalhoso em algumas plataformas