6.g2o

2022-09-25  本文已影响0人  光能蜗牛

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问题中,通常一条边会连接多个顶点,这种图叫超图

上一篇下一篇

猜你喜欢

热点阅读