G2O使用要点总结

  1. 顶点的定义:
    1. 继承BaseVertex<定点byte数,顶点结构体>类
    2. 实现setToRiginImpl()函数,里面给_estimate成员函数赋初值
    3. _estimate的类型就是模板里指定的顶点结构体
    4. 实现:oplusImpl(const double * update_)。update_是指向跟新值得指针,使用前需要转换成真实的结构类型。不一定是顶点类型。比如update_可以是李代数,但顶点类型是李群。
    5. 可以使用esitimate()函数得到顶点的值,类型同上面的顶点结构体。
  2. 边的定义:
    1. 继承BaseBinaryEdge<观察值byte数,观察值结构体,第一个顶点的类型,第二个顶点的类型>(两个顶点的边)
    2. 或继承BaseUnaryEdge<观察值byte数,观察值结构体,顶点的类型>(一个顶点的边)
    3. 实现函数computeError(),函数里面需要计算_error的值,其他顶点和测量值的成员变量参考其他例子。
    4. 实现linearizeOplus(),单顶点的计算_jacobianOplusXi矩阵,双顶点的还要计算_jacobianOplusXj矩阵
  3. SE3Quat
    1. 使用map函数来变换一个3d点
  4. SparseOptimizer
    1. 这个应该是总的流程和数据管理器
    2. setAlgorithm设置具体计算更新值得算法
    3. addVertex加入顶点
    4. addEdge()
    5. addParameter()可以传入一些超参
    6. initializeOptimization()给顶点填入初始值
    7. optimize()启动优化流程
      1. 调用所
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值