RainerKuemmerle/g2o

g2o: A General Framework for Graph Optimization

What it solves

g2o is a C++ framework designed to solve nonlinear least squares problems that can be represented as a graph. It is specifically used to find the optimal configuration of parameters or state variables that best explain a set of measurements affected by Gaussian noise, which is a common challenge in robotics and computer vision.

How it works

The framework optimizes graph-based nonlinear error functions. It is designed to be highly extensible, allowing users to specify new problems in just a few lines of code. The library provides built-in solutions for common robotics problems like Simultaneous Localization and Mapping (SLAM) and Bundle Adjustment (BA).

Who it’s for

It is intended for developers and researchers in robotics and computer vision who need a high-performance framework for graph-based optimization and state estimation.

Highlights

  • Extensible Architecture: New optimization problems can be defined quickly with minimal code.
  • High Performance: Offers performance comparable to state-of-the-art implementations for SLAM and BA.
  • Broad Compatibility: Supports Linux, Mac OS X, Windows, and Android.
  • C++17 Standard: Built using modern C++ standards and integrates with Eigen3.
  • Python Support: Experimental Python wrappers are available via the pymem branch and external bindings.

Related

  • Project
  • Project
  • Project
  • Project
  • Project