This is a matlab code package for nonlinear least squares optimization, based on the well-known concept--Factor Graph.
Organization
- Data: store the data to be processed
- Factor: the edge and node
- g2o_files: core, provide the main framework of the nonlinear least squares
- Math: provide the mathematical operation like so3_exp,...
- auxilliary: others
- Geometry: some operations on geometry such as triangulation
- Doc: two tutorial notes
Document
- A tutorial for Optimization on Manifold
- A tutorial for Graph Optimization
Customization
This code allows users to define new variable nodes and new factors/edges/cost functions. The framework is reorganized with necessary warnings for the extension of the new node and new edge.
- When the new node is defined, the information needs to be given in the “GetNodeTypeDimension”, “SetNodeDefaultValue” and “update_state”.
- When the new edge is defined, the information needs to be given in “GetFactorX_format” and “GetEdgeTypeDimension”.
Examples for study/use
- When you want to perform the estimation for 2D RGBD case, just run “Example_VictoriaPark.m”.
- When you want to perform the estimation for 3D vision case, just run “Vision_Example_Small.m”.
Updates
- Any variable can be fix in the process of optimization
- Schur decomposition has been added
- Levenberg-Marquart and Powell's Dogleg have been added
- A novel IMU factor for VINS has been added
- Parallax vision factors have been added
- VisionTest fator has been added