CLoopCloserERD_MR.h
Go to the documentation of this file.
00001 /* +---------------------------------------------------------------------------+
00002    |                     Mobile Robot Programming Toolkit (MRPT)               |
00003    |                          http://www.mrpt.org/                             |
00004    |                                                                           |
00005    | Copyright (c) 2005-2016, Individual contributors, see AUTHORS file        |
00006    | See: http://www.mrpt.org/Authors - All rights reserved.                   |
00007    | Released under BSD License. See details in http://www.mrpt.org/License    |
00008    +---------------------------------------------------------------------------+ */
00009 
00010 #ifndef CLOOPCLOSERERD_MR_H
00011 #define CLOOPCLOSERERD_MR_H
00012 
00013 #include "mrpt_graphslam_2d/interfaces/CEdgeRegistrationDecider_MR.h"
00014 #include <mrpt_bridge/laser_scan.h>
00015 #include <mrpt/graphslam/ERD/CLoopCloserERD.h>
00016 #include <mrpt_msgs/NodeIDWithLaserScan.h>
00017 
00018 namespace mrpt { namespace graphslam { namespace deciders {
00019 
00026 template<class GRAPH_T>
00027 class CLoopCloserERD_MR :
00028         public virtual CLoopCloserERD<GRAPH_T>,
00029         public virtual CEdgeRegistrationDecider_MR<GRAPH_T>
00030 {
00031 public:
00035         typedef CLoopCloserERD<GRAPH_T> lc_parent_t; 
00036         typedef CEdgeRegistrationDecider_MR<GRAPH_T> mr_parent_t; 
00037         typedef CLoopCloserERD_MR<GRAPH_T> decider_t; 
00038         typedef typename lc_parent_t::constraint_t constraint_t;
00039         typedef typename lc_parent_t::pose_t pose_t;
00040         typedef typename lc_parent_t::range_ops_t range_ops_t;
00041         typedef typename lc_parent_t::partitions_t partitions_t;
00042         typedef typename lc_parent_t::nodes_to_scans2D_t nodes_to_scans2D_t;
00043         typedef mrpt::graphslam::CGraphSlamEngine_MR<GRAPH_T> engine_t;
00044         typedef typename GRAPH_T::global_pose_t global_pose_t;
00047         // Ctor, Dtor
00048         CLoopCloserERD_MR();
00049         ~CLoopCloserERD_MR();
00050 
00051         // member implementations
00052         bool updateState(
00053                         mrpt::obs::CActionCollectionPtr action,
00054                         mrpt::obs::CSensoryFramePtr observations,
00055                         mrpt::obs::CObservationPtr observation );
00056         void addBatchOfNodeIDsAndScans(
00057                         const std::map<
00058                                 mrpt::utils::TNodeID,
00059                                 mrpt::obs::CObservation2DRangeScanPtr>& nodeIDs_to_scans2D);
00060         void addScanMatchingEdges(mrpt::utils::TNodeID curr_nodeID);
00061         void fetchNodeIDsForScanMatching(
00062                         const mrpt::utils::TNodeID& curr_nodeID,
00063                         std::set<mrpt::utils::TNodeID>* nodes_set);
00064 
00065 protected:
00066 
00067 };
00068 
00069 } } } // end of namespaces
00070 
00071 #include "CLoopCloserERD_MR_impl.h"
00072 #endif /* end of include guard: CLOOPCLOSERERD_MR_H */


mrpt_graphslam_2d
Author(s): Nikos Koukis
autogenerated on Sun Sep 17 2017 03:02:04