00001 #ifndef KARTO_G2OSOLVER_H 00002 #define KARTO_G2OSOLVER_H 00003 00004 #include "OpenKarto/OpenMapper.h" 00005 00006 #include "g2o/core/sparse_optimizer.h" 00007 00008 class G2oSolver : public karto::ScanSolver 00009 { 00010 public: 00011 G2oSolver(); 00012 virtual ~G2oSolver(); 00013 00014 public: 00015 virtual void Clear(); 00016 virtual void Compute(); 00017 virtual const karto::ScanSolver::IdPoseVector& GetCorrections() const; 00018 00019 virtual void AddNode(karto::Vertex<karto::LocalizedObjectPtr>* pVertex); 00020 virtual void AddConstraint(karto::Edge<karto::LocalizedObjectPtr>* pEdge); 00021 00022 00023 private: 00024 karto::ScanSolver::IdPoseVector mCorrections; 00025 g2o::SparseOptimizer mOptimizer; 00026 }; 00027 00028 #endif 00029