Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

GTSAM

驱动众多现代 SLAM 后端的因子图优化库

许可证

BSD-2-Clause

概述

Georgia Tech Smoothing and Mapping——一个带 Python 绑定的 C++ 库,用于基于因子图的状态估计与传感器融合。它提供增量平滑器 iSAM2、丰富的现成因子(IMU 预积分、GPS、视觉与距离测量),以及底层的李群运算机制。GTSAM 是许多现代 SLAM 系统的优化后端,包括 LIO-SAM、Kimera 和 GLIM。

GTSAM 将估计问题建模为因子图:变量(位姿、路标、速度、偏置)由编码测量的因子相连。它提供批量优化器(Levenberg-Marquardt、高斯-牛顿、dogleg)和增量平滑器 iSAM2、遵循 Forster 等人方法的 IMU 预积分、面向视觉的智能因子,以及对 SO(3)/SE(3) 的完整李群支持。Python 绑定暴露完整 API,由活跃社区以 BSD 许可维护。

为何重要

因子图已成为 SLAM 和多传感器融合的通用语言,而 GTSAM 正是该领域赖以构建的参考实现——它被广泛引用,并内置于多个最常用的开源 SLAM 系统中。

解决的问题

将 IMU、激光雷达、相机与 GPS 测量融合为一致的状态估计是一个庞大的稀疏优化问题。GTSAM 将其表达为因子图并利用其稀疏性,iSAM2 随新测量到来增量更新解,而无需从头重新求解。

要点

  • 因子图将多传感器融合转化为具有可复用结构的稀疏优化问题
  • iSAM2 提供增量式实时平滑,取代反复的批量求解
  • 现成的 IMU、GPS、视觉与距离因子覆盖了机器人领域绝大多数估计问题
  • LIO-SAM、Kimera、GLIM 及众多研究系统的首选后端
  • Python 绑定让它超越 C++ 代码库触达更广的用户

适用人群

  • 需要成熟优化后端的 SLAM 系统开发者
  • 原型化新因子的状态估计研究者
  • 在生产机器人中融合 IMU/GPS/视觉的工程师
  • 通过实践学习估计理论的研究生

局限

  • 学习曲线陡峭——因子图建模与李群概念是高效使用的前提
  • 在某些平台上带 Python 封装和 TBB 的源码编译可能比较繁琐

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。