GTSAM
多くの現代 SLAM バックエンドを支えるファクターグラフ最適化ライブラリ
ライセンス
BSD-2-Clause
概要
Georgia Tech Smoothing and Mapping——ファクターグラフに基づく状態推定とセンサフュージョンのための、Python バインディング付き C++ ライブラリ。増分スムーザー iSAM2、IMU 事前積分・GPS・ビジョン・距離計測向けの豊富な既製ファクター、そして基盤となるリー群演算を提供します。GTSAM は LIO-SAM、Kimera、GLIM をはじめ多くの現代 SLAM システムの最適化バックエンドです。
GTSAM は推定問題をファクターグラフとしてモデル化します。変数(姿勢、ランドマーク、速度、バイアス)を、計測を符号化するファクターで結びます。バッチ最適化器(Levenberg-Marquardt、ガウス・ニュートン、dogleg)と増分スムーザー iSAM2、Forster らに準拠した IMU 事前積分、ビジョン向けスマートファクター、SO(3)/SE(3) の完全なリー群サポートを備えます。Python バインディングが全 API を公開し、活発なコミュニティが BSD ライセンスで維持しています。
重要な理由
ファクターグラフは SLAM とマルチセンサーフュージョンの共通言語となり、GTSAM はこの分野が土台とするリファレンス実装です。広く引用され、最もよく使われているオープンな SLAM システムのいくつかに組み込まれています。
解決する課題
IMU、LiDAR、カメラ、GPS の計測を一貫した状態推定へ融合するのは大規模な疎最適化問題です。GTSAM はこれをファクターグラフとして表現してその疎性を活用し、iSAM2 が新しい計測の到着ごとに解を増分更新するため、一から解き直す必要がありません。
主なポイント
- ファクターグラフはマルチセンサフュージョンを再利用可能な構造を持つ疎な最適化問題に変える
- iSAM2 は繰り返しのバッチ解法に代わる増分リアルタイムスムージングを提供
- IMU・GPS・ビジョン・距離の既製ファクターがロボティクスの推定問題の大半をカバー
- LIO-SAM、Kimera、GLIM ほか多数の研究システムが選ぶバックエンド
- Python バインディングが C++ コードベースの外へも門戸を開く
対象
- 実績ある最適化バックエンドを求める SLAM システム開発者
- 新しいファクターを試作する状態推定研究者
- 実運用ロボットで IMU/GPS/ビジョンを融合するエンジニア
- 推定理論を実践で学ぶ大学院生
制限事項
- 学習曲線が急——ファクターグラフのモデリングとリー群の概念が実用の前提
- Python ラッパーと TBB を伴うソースからのビルドは一部プラットフォームで手間がかかる