Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

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

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.