Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
MergeMapsStrategy.hpp
00001 /* $Id$ */
00002 
00003 #ifndef _MERGE_MAP_STRATEGY_HPP_
00004 #define _MERGE_MAP_STRATEGY_HPP_
00005 
00006 #include <kernel/dataLog.hpp>
00007 #include <geom/t3dEuler.hpp>
00008 #include <slam/slamEkf.hpp>
00009 #include <slam/robot.hpp>
00010 #include <slam/baseSlam.hpp>
00011 #include <slam/MapManagerFactory.hpp>
00012 
00013 #include "slammm/StartNewMapStrategy.hpp"
00014 
00015 namespace jafar {
00016   namespace slammm {
00017     class StartNewMapStrategy;
00018     class MultiMapsSlam;
00019     class MapsPoseManager;
00020     
00025     class MergeMapsStrategy {
00026       public:
00027         MergeMapsStrategy();
00028         virtual ~MergeMapsStrategy();
00033         void setMultiMapsSlam( MultiMapsSlam* );
00037         MultiMapsSlam* multiMapsSlam();
00042         virtual void decideMergeMap( unsigned int currentMapId, slam::SlamEkf* currentMap ) = 0;
00043       private:
00044         MultiMapsSlam* m_multiMapsSlam;
00045     };
00046     
00052     class AlwaysMergeMapsStrategy : public MergeMapsStrategy{
00053       public:
00058         AlwaysMergeMapsStrategy( int minimalOverlapingFeaturesNumber );
00059         virtual void decideMergeMap( unsigned int currentMapId, slam::SlamEkf* currentMap );
00060       private:
00061         void getFeatureCov( slam::BaseFeature& baseFeature, jblas::vec& point, jblas::sym_mat& cov );
00062         void getFeatureSegCov( slam::BaseFeature& baseFeature, jblas::vec& line, jblas::sym_mat& cov );
00063       private:
00064         unsigned int m_minimalOverlapingFeaturesNumber;
00065         struct DMMInfoPoint;
00066         struct DMMInfoSegment;
00067     };
00068   }
00069 }
00070 
00071 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:28 for Jafar by doxygen 1.7.6.1
LAAS-CNRS