非线性优化相关库笔记
文章目录
- G2O
- BlockSolver中的BlockSolverTraits的p,l设置
G2O
BlockSolver中的BlockSolverTraits的p,l设置
P,L代表你定义的边所对应的两个顶点的维度,block里面只包含顶点维度,至于边的维度是隐含在边的定义里面的。
单元边怎么设置呢?
例如:单元边优化位姿,位姿维度为6,这时候边只有一个顶点,怎么设置BlockSolverType呢?
可以设置为:
using BlockSolverType = BlockSolver<BlockSolverTraits<6,3> >;
//这里的6是位姿顶点的自由度,其中的‘3’何来?
//这个‘3’不是误差项的维度,实际上是为地图点顶点准备的,但实际没有地图点顶点,无所谓,那么这个‘3’预留的矩阵空间设置为0即可。
二元边设置?
这个很简单,只需要将对应的顶点维度分别填入即可。
例如:
位姿图优化中(两个顶点都是位姿,所以都是六个维度):using BlockSolverType = BlockSolver<BlockSolverTraits<6,6> >;
BA优化中(需要对位姿(6个维度)和地图点(3个维度)同时进行优化调整):
using BlockSolverType = BlockSolver<BlockSolverTraits<6,3> >;