SparseOptimizer是最终要维护的东西,优化之前需要指定求解器和迭代算法。求解器Solver包含一个SparseBlockMatrix (用于计算稀疏的雅可比和海塞矩阵)以及一个线性方程求解器BlockSolver<> 可从PCG, CSparse, Choldmod 三者选一。
在g2o中选择优化方法一共需要三个步骤:
- 选择一个线性方程求解器,从 PCG, CSparse, Choldmod中选,实际则来自 g2o/solvers 文件夹中定义的东东。
- 选择一个 BlockSolver 。
- 选择一个迭代策略,从GN, LM, Doglog中选。
typedef g2o::BlockSolver< g2o::BlockSolverTrait