g2o
Using the Python bindings, because I can’t be bothered to build the C++ library.
Resources
Writing some notes as I learn g2o:
- The
BlockSolverType
is a template parameter that determines how the blocks (sub-matrices) of the Jacobian matrix are handled. These blocks correspond to the variables being optimized. - The
LinearSolverType
nested insideBlockSolverType
specifies the method for solving the linearized system within each iteration of the Gauss-Newton algorithm. This could be a direct solver (like Cholesky decomposition) or an iterative solver (like conjugate gradients).
Example with the python bindings:
There’s bundle adjustment, and also sparse bundle adjustment. Which one should I use?
Okay, so this is actually pretty straightforward to do. You simply need to set up your vertices and edges.