SLAM十四讲 第八讲在运行直接法实践中出现
no matching function for call to ‘g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(DirectBlock*&)’
解决方案:
还是g2o更新的问题。
打开http://www.cnblogs.com/cc111/p/9466463.html
参照里面的代码改写即可。
需要改写十四讲里下载的第八讲包里的这两个cpp。分别叫 direct_semidense.cpp 和 direct_sparse.cpp
改写位置大约在这个位置,贴出来上面链接博主的正确代码中的一个,另外一个你自己在里面找吧
// 初始化g2o
308 typedef g2o::BlockSolver<g2o::BlockSolverTraits<6,1>> DirectBlock; // 求解的向量是6*1的
309 DirectBlock::LinearSolverType* linearSolver = new g2o::LinearSolverDense< DirectBlock::PoseMatrixType > ();
310 DirectBlock* solver_ptr = new DirectBlock ( unique_ptr<DirectBlock::LinearSolverType>(linearSolver) );
311 // g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewt