码迷,mamicode.com
首页 > 其他好文 > 详细

g2o初始化一些

时间:2017-11-10 18:46:33      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:traits   parse   pop   变化   its   class   构造参数   今天   optimizer   

今天看了一下智能指针的东西,发现更简单的思路:
就是Block和solver构造时,需要传递unique_ptr,那我们将普通指针转换成unique_ptr不就可以了么:

// 初始化g2o
    //第一步:
    typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block;  // pose 维度为 6, landmark 维度为 3

    //第二步:
    Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMatrixType>(); // 线性方程求解器
    //std::unique_ptr<Block::LinearSolverType> linearSolver ( new g2o::LinearSolverCSparse<Block::PoseMatrixType>());

    //第三步
    Block* solver_ptr = new Block ( std::unique_ptr<Block::LinearSolverType>(linearSolver) );
    //std::unique_ptr<Block> solver_ptr ( new Block ( linearSolver));
    //std::unique_ptr<Block> solver_ptr ( new Block ( std::move(linearSolver)));     // 矩阵块求解器

    //第四步:
    g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( std::unique_ptr<Block>(solver_ptr));
    //g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( std::move(solver_ptr));

    //第五步:
    g2o::SparseOptimizer optimizer;

    //第六步:
    optimizer.setAlgorithm ( solver );

变化在第三步和第四步的new构造参数里,运行没毛病。

 

g2o初始化一些

标签:traits   parse   pop   变化   its   class   构造参数   今天   optimizer   

原文地址:http://www.cnblogs.com/serser/p/7815588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!