g2o图优化学习(一)

g2o安装很简单,参考GitHub上官网

安装地址: https://github.com/RainerKuemmerle/g2o

g2o图优化学习(一)

g2o图优化学习(一)

g2o的基本框架结构:

g2o图优化学习(一)

一、图的核心

看图的时候要注意箭头类型,其中最左侧的SparseOptimizer最重要

SparseOptimizer是整个图的核心,我们注意右上角的 is-a 实心箭头,这个SparseOptimizer它是一个Optimizable Graph,从而也是一个超图(HyperGraph

二、顶点和边

注意看 has-many 箭头,这个超图包含了许多顶点HyperGraph::Vertex)和HyperGraph::Edge)。而这些顶点继承自 Base Vertex,也就是OptimizableGraph::Vertex,而边可以继承自 BaseUnaryEdge(单边), BaseBinaryEdge(双边)或BaseMultiEdge(多边),它们都叫做OptimizableGraph::Edge

三、配置SparseOptimizer的优化算法和求解器

整个图的核心SparseOptimizer 包含一个优化算法OptimizationAlgorithm)的对象。OptimizationAlgorithm是通过OptimizationWithHessian 来实现的。其中迭代策略可以从Gauss-Newton(高斯牛顿法,简称GN), Levernberg-Marquardt(简称LM法), Powell's dogleg 三者中间选择一个(我们常用的是GN和LM)

四、求解

OptimizationWithHessian 内部包含一个求解器(Solver),这个Solver实际是由一个BlockSolver组成的。这个BlockSolver有两个部分,一个是SparseBlockMatrix ,用于计算稀疏的雅可比和Hessian矩阵;一个是线性方程的求解器LinearSolver),它用于计算迭代过程中最关键的一步HΔx=−b,LinearSolver有几种方法可以选择:PCG, CSparse, Choldmod

----------------------------------------------------------------

 

 

欢迎大家转载我的文章。

转载请注明:转自 抚琴弹出情调零  vx:qiang250571870