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
BlockSolverTypeis 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
LinearSolverTypenested insideBlockSolverTypespecifies 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.