6.g2o

g2o全称 General Graphic Optimization 通用图优化的缩写

第五节讲了手撕高斯牛顿方程的写法
这一讲是表示如何用g2o的方式来重新表示
一言以蔽之,g2o方法相当于是把优化问题用图结构的方式表达出来,好处是不用编写一些重复的代码,其次是结构清晰,当然执行速度上会比自己写稍慢些,这是可以理解的,通用,意味着普通,但和代码编写效率做比较,这点速度的牺牲不值一提

我们来看看图优化是怎么做的
首先图优化,就是把问题变成图的一种方式


image.png

如图所示,对于假设曲线方程
y=exp(ax^2+bx+c)

其中,待优化变量是为(a,b,c),这个图优化理论中用点来指代,在g2o中叫BaseVertex,点包含了初始化以及根据梯度更新数值
方法名分别叫setToOriginImpl()oplusImpl()

然后是每一个观测数据x_i,y_i代表了一条边,这个在g2o里面用BaseUnaryEdge来表示,或者叫一元边,这是因为本例题比较简单,只涉及一个顶点,然后这里的每一条边只连接了一个顶点,所以也叫一元图,画更好看点可能下面比较符合,
注意,每条边会有自己的函数实现关于误差计算,以及雅可比梯度计算
方法名分别叫computeError()linearizeOplus()

image.png

在实际的slam问题中,通常一条边会连接多个顶点,这种图叫超图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 研究SLAM的同学应该对g2o并不陌生。用了一段时间之后,一直对其内部实现方式不太清楚,今天打算仔细研究一下。 首...
    金戈大王阅读 4,822评论 1 4
  • by jie 2018.7 一. g2o的整体结构 说到整体的结构,不得不用一张比较概括的图来说明: 这张图最好跟...
    远行_2a22阅读 11,322评论 1 8
  • 为了充分利用面试题的学习价值,建议大家先自行解答一遍,再对照参考答案! 温馨提示:文章过长,且题库仅放送了一部分,...
    书哲_深蓝学院阅读 1,315评论 3 3
  • 先声明,用g2o来做曲线拟合,有点大材小用。g2o本身是一个通用图优化框架,可以解决本质上为非线性优化的图优化问题...
    金戈大王阅读 4,557评论 3 1
  • 参考资料: [1] 深入理解图优化与g2o:g2o篇[2]SLAM14讲 6.4 曲线拟合程序[3]SLAM14讲...
    Optimization阅读 1,733评论 0 0