ORB-SLAM3 块求解器 图优化中,变量通常分为多种类型(位姿、路标),每个类型维度不同。块求解器(BlockSolver)利用这种结构,将海森矩阵视为分块矩阵,便于利用稀疏模式高效求解。对于 SLAM,常用的块尺寸是 6(位姿)和 3(路标点),因此 g2o 有BlockSolver_6_3。在仅优化位姿时,整个海森矩阵就是 6x6,也就是 PoseMatrixType。但仍然可以用块求解器的容器,只是路标块不出现。块求解器内部包含一个线性求解器(如 LinearSolverDense),用来求解最终的线性方程组:H*dx=-b。还可以解释块求解器如何做 Schur 消元:将路标点边缘化,得到只含位姿的约化相机系统(维度与位姿个数有关(6N*6N),但当只有一个位姿时就是 6x6)。在这个优化中只有一个位姿,所以直接就是 6x6。“块求解器”(BlockSolver)是 g2o 中专门针对SLAM 问题变量结构设计的一种求解策略。要理解它,需要从图优化中海森矩阵的形状说起。