g2o (General Graph Optimization)
g2o 图优化库g2oAdvancedA C++ library for solving graph-structured optimization problems like SLAM pose graphs and bundle adjustment.
g2o is an open-source C++ framework presented at ICRA 2011 by Rainer Kümmerle, Giorgio Grisetti, Kurt Konolige, Wolfram Burgard, and others, built specifically to solve nonlinear least-squares problems that can be drawn as a graph: nodes are the quantities being estimated (such as camera poses or map points), and edges are the observation constraints between them. SLAM's (simultaneous localization and mapping) back-end optimization and bundle adjustment both fall into this category; g2o exploits the sparse structure of these problems to solve them efficiently and lets users define custom node and edge types. The ORB-SLAM series uses g2o for its back end. GTSAM and Ceres Solver are tools in the same category.
ExampleAfter ORB-SLAM3 detects a loop closure, it uses g2o to optimize the whole pose graph, spreading the accumulated drift back out across the entire trajectory.
- Related
- Factor Graph Optimization · Bundle Adjustment · Simultaneous Localization and Mapping (SLAM) · GTSAM (Georgia Tech Smoothing and Mapping) · Ceres Solver · ORB-SLAM3
- Sources
- RainerKuemmerle/g2o (GitHub)