g2o
g2o 將 SLAM 與 BA 等可用圖表示的非線性誤差函數,統一寫成以資訊矩陣加權的最小平方問題:節點是待估參數區塊,邊是量測約束。框架以 Gauss-Newton 或 Levenberg-Marquardt 迭代,並以 ⊞ 運算在流形上用最小參數化增量更新旋轉,避開過參數化與奇異性。效率來自利用圖的稀疏結構、Schur 補與可替換的線性求解器(稀疏 Cholesky 或 PCG);作者在多個 2D/3D 位姿圖與 BA 資料集上報告其效能與特定問題的專用實作相當。
本頁內容
g2o casts graph-structured SLAM and BA problems as sparse nonlinear least squares with manifold-aware increments and pluggable sparse linear solvers, providing a general open-source back-end.
技術屬性
欄位內容為文獻擷取紀錄的原文用語(英文),以原文為據;「未查證」表示本研究尚未讀到該資訊,不代表該方法不具備此能力。
| 感測輸入 | 未記錄 |
|---|---|
| 原文測試平台 | simulation、not described in the paper (real datasets named only: Intel Research Lab, MIT Killian Court, Victoria Park, multi-level parking garage, Venice, New College, Keble college) |
| 狀態估計 | batch nonlinear least squares on a graph (Gauss-Newton or Levenberg-Marquardt) with manifold increments through a box-plus operator; linear solvers: sparse Cholesky via CHOLMOD or CSparse (symbolic decomposition reused across iterations) or block-Jacobi preconditioned conjugate gradient; Schur complement for BA and landmark SLAM; Jacobians numeric or user-supplied analytic |
| 資料關聯 | 不適用 (sensor-agnostic back-end; constraints and data association are supplied by a front-end) |
| 時間表示 | discrete poses |
| 去畸變 | 不適用 |
| 迴圈閉合 | 不適用 (optimizes loop-closure edges if the front-end provides them) |
| 全域最佳化 | batch optimization of the whole graph; supports SE(3) pose graphs, landmark SLAM, BA and 7-DoF similarity constraints for scale drift |
| 地圖表示 | pose graph and optional landmarks (no dense map) |
| 先驗資訊 | none required |
| 可輸出幾何 | optimized poses and landmark or 3D point positions; dense point clouds must be re-projected by the user |
| 計算需求 | offline batch in experiments; single core of Intel Core i7-930 2.8 GHz (Sec. V) |
使用設備
原文使用的感測器、運算硬體與載具(equipment)。型號保留原文寫法,連結到設備頁中同一型號的歸併名稱;角色依原文用途分為方法輸入、資料集感測器、執行運算平台、參考或真值量測(reference or ground truth)與比較對象設備。
| 類別 | 型號(原文寫法) | 角色 | 資料集 | 原文規格 | 出處 |
|---|---|---|---|---|---|
| 運算硬體 | Intel Core i7-930 | 執行運算平台 | 未標示 | one core at 2.8 GHz | (Kümmerle et al., 2011, Sec. V) |
作者報告的優勢與限制
優勢
- Generality: a new problem needs only an error function and an increment operator; 2D SLAM in under 30 lines of C++ (Sec. I; Sec. IV)
- Faster than the sqrt-SAM implementation on all tested 2D and 3D datasets, comparable to SPA on 2D pose graphs, similar to sSBA on BA and on average two times faster than RobotVision (Sec. V-A, Fig. 7)
- PCG is about 7 times faster than CHOLMOD on the New College and Venice BA datasets (Sec. V-C, Table II)
- Schur decomposition gives a large speed-up when landmarks outnumber poses, e.g. Venice 13.03 s vs 33.87 s per iteration (Sec. V-D, Table III)
- Supports over-parameterized states with minimal increments via the box-plus operator (Sec. III-B)
限制
- Assumes a good initial guess for Gauss-Newton or LM (Sec. III-A)
- sSBA is slightly faster than g2o on the BA datasets (Sec. V-A)
- PCG convergence depends on the initial guess and is slow on MIT and Victoria (Sec. V-C, Table II)
- Schur decomposition is slower when poses dominate, e.g. Victoria 0.150 s vs 0.026 s per iteration for the direct solution (Sec. V-D, Table III)
- Numeric Jacobians double the iteration time on Garage (80 ms vs 40 ms), although no accuracy loss was observed (Sec. V-A)
- (inference) Paper evaluates batch optimization per iteration; robustness to wrong loop closures is not evaluated
營建工程相關證據
未在營建場域驗證。實驗資料含一個多層停車場的真實 3D 位姿圖,但評估對象是最佳化耗時與收斂,而非建物幾何或點雲精度[Sec. V, Fig. 4]。
原文驗證環境:模擬、公開基準、已完工建築
報告的性能數據
以下是原文作者報告的性能數值(author-reported results),不是本研究重新量測的結果。每張圖只並列同一個比較組(comparison group,同一張表、同一組實驗設定)內的方法;不同比較組之間的數值不可直接比較,也不構成排名。
本方法共出現在 3 個比較組,合計 48 筆紀錄。
Kümmerle et al., 2011 · Table II 本方法 30 筆
表格設定(擷取紀錄原文):Time to solve the linear system within g2o with different linear solvers (CHOLMOD and CSparse sparse Cholesky; PCG with block-Jacobi preconditioner, terminated at relative residual 1e-8); PCG cells are printed as value ± spread without stating what the spread is (Kümmerle et al., 2011, Table II)
time to solve the linear system,Intel · full problem
只並列這張表在相同設定下報告的方法;以「本方法:」開頭者為本頁方法。失敗、未執行與未報告以標記呈現,不是 0。
按 Tab 進入圖表後,用上下方向鍵逐一瀏覽各類別,Esc 關閉提示框;也可開啟表格檢視閱讀全部數值。
這些是 Kümmerle et al., 2011 在此表設定下報告的數值(author-reported results),只能在同一個比較組內對照,不代表方法在其他資料或設定下的表現。
資料來源作者報告值(Kümmerle et al., 2011, Table II)
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| g2o with CHOLMOD本方法原文提出硬體:one core of an Intel Core i7-930 at 2.8 GHz | 0.0028 s | (Kümmerle et al., 2011, Table II) |
| g2o with CSparse本方法原文提出硬體:one core of an Intel Core i7-930 at 2.8 GHz | 0.0025 s | (Kümmerle et al., 2011, Table II) |
Kümmerle et al., 2011 · Table III 本方法 16 筆
表格設定(擷取紀錄原文):Average time per iteration of g2o with the direct solution versus the Schur-complement decomposition (build, solve and total) for landmark SLAM and bundle adjustment (Kümmerle et al., 2011, Table III)
average time per iteration, direct solution (solve),Victoria · full problem
這張表在此指標與資料序列只列出本方法一筆,沒有可並列的其他方法,因此不畫圖,數值與出處見下表。這是 Kümmerle et al., 2011 在此表設定下報告的數值(author-reported results),不代表方法在其他資料或設定下的表現。
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| g2o direct solution本方法原文提出硬體:one core of an Intel Core i7-930 at 2.8 GHz | 0.026 s | (Kümmerle et al., 2011, Table III) |
Kümmerle et al., 2011 · Text Sec.V-A 本方法 2 筆
指標time per iteration
資料集與序列Garage · full problem
表格設定(擷取紀錄原文):Time for one iteration on the Garage 3D pose graph; the authors report no accuracy loss with numeric Jacobians (Kümmerle et al., 2011, Text Sec.V-A)
time per iteration,Garage · full problem
只並列這張表在相同設定下報告的方法;以「本方法:」開頭者為本頁方法。失敗、未執行與未報告以標記呈現,不是 0。
按 Tab 進入圖表後,用上下方向鍵逐一瀏覽各類別,Esc 關閉提示框;也可開啟表格檢視閱讀全部數值。
這些是 Kümmerle et al., 2011 在此表設定下報告的數值(author-reported results),只能在同一個比較組內對照,不代表方法在其他資料或設定下的表現。
資料來源作者報告值(Kümmerle et al., 2011, Text Sec.V-A)
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| g2o with numerically evaluated Jacobians本方法原文提出硬體:one core of an Intel Core i7-930 at 2.8 GHz | 80 ms | (Kümmerle et al., 2011, Sec. V-A) |
| g2o with analytic Jacobians本方法原文提出硬體:one core of an Intel Core i7-930 at 2.8 GHz | 40 ms | (Kümmerle et al., 2011, Sec. V-A) |
來源
Kümmerle et al., 2011
(2011)g2o: A general framework for graph optimization2011 IEEE International Conference on Robotics and Automation (ICRA), pp. 3607-3613
DOI 10.1109/icra.2011.5979949程式碼
同儕審查已出版已讀全文經典查證後修正
程式碼:https://github.com/RainerKuemmerle/g2o(授權:BSD for core; some parts LGPL v2.1+ or GPL3+ (per repository README); optional CHOLMOD features may be GPL)。有公開程式碼不等於已被重現,也不代表目前版本與論文版本相同。