6.g2o

作者: 光能蜗牛 | 来源:发表于2022-09-25 13:16 被阅读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问题中,通常一条边会连接多个顶点,这种图叫超图

    相关文章

      网友评论

          本文标题:6.g2o

          本文链接:https://www.haomeiwen.com/subject/eqvinrtx.html