【跟我一起读《视觉惯性SLAM理论与源码解析》】第五章&第六章 对极几何&图优化库的使用

  1. 极平面,极点,极线的概念
  2. 对极几何,对极约束的概念,通过叉积以及点积的性质推导单应矩阵以及基础矩阵
  3. 光束平差法BA是LSAM中常用的非线性优化方法
  4. 一个图由若干个顶点以及这些顶点连接的边构成,顶点通常是待优化的变量例如位姿,空间中的地图点(路标点),边一般是顶点之间约束产生的误差比如说重投影误差,实现图优化的目的就是通过调整顶点来使得边总体误差最小,这个时候我们认为顶点是最准确的
  5. 在SLAM领域中常用的图优化库有两个一个是g2o一个是ceres.
  6. g2o线性求解曲线参数的具体步骤:第一步,创建一个线性求解器,使用不同的线性求解法例如cholesky,scparse,pcg,dense cholesky,eigen;第二步创建块求解器,分为固定变量的求解器以及可变尺寸的求解器,并用上面的线性求解器初始化;第三步,创建总求解器,从GN,LM,Dogleg中选择一个再用块求解器初始化;这几个算法继承同一个类OptimizationWithHessian,OptimizationWithHessian又继承于OptimizaitonAlgorithm;第四步,创建稀疏优化器,并用自己定义的求解器作为求解方法;第五步,定义图的顶点和边,并添加到优化其中,这部分比较复杂;第六步,设置优化参数,开始执行优化。
  7. 自定义Vertex顶点的构建,首先设定被优化顶点的初始值为0,其次更新顶点函数(加法,乘法等等),最后存盘和读盘留空。如何构建以位姿作为顶点或者以3D点作为顶点?什么时候更新函数用加法,什么时候用乘法?
  8. 如何向图中增加顶点,首先新建顶点,设定估计值,设置顶点编号ID,设定是否需要边缘化,将顶点添加到优化器中
  9. 自定义边的构建:首先读写函数,其次写误差函数=测量值-估计值,最后计算增量函数:误差对于优化变量的偏导数。
  10. p73 勘误,这里应该是上述矩阵和函数EdgeProjectXYZ2UV::linearizeOplus()函数实现一致
  11. 如何向图中增加边:一元边实例中首先设置边ID,其次设置连接的顶点,设置观测的数值,设置信息矩阵,将边添加到优化器。
  12. p74 勘误,展示了PnP投影的添加二元边的例子,其中顶部代码信息矩阵没有表达出来
  13. 位姿以及三维点的ID信息不能互换。

总的来说这一部分补充了十四讲里面对于图优化的阐述,是比较不错的学习资料

猜你喜欢

转载自blog.csdn.net/zhangyuanbonj/article/details/129171470