00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CMetricMapsAlignmentAlgorithm_H
00029 #define CMetricMapsAlignmentAlgorithm_H
00030
00031 #include <mrpt/slam/CPointsMap.h>
00032 #include <mrpt/poses/CPose2D.h>
00033 #include <mrpt/poses/CPosePDF.h>
00034 #include <mrpt/poses/CPose3DPDF.h>
00035 #include <mrpt/poses/CPosePDFGaussian.h>
00036 #include <mrpt/poses/CPose3DPDFGaussian.h>
00037
00038 #include <mrpt/utils/CDebugOutputCapable.h>
00039
00040 namespace mrpt
00041 {
00042 namespace slam
00043 {
00049 class MRPTDLLIMPEXP CMetricMapsAlignmentAlgorithm : public mrpt::utils::CDebugOutputCapable
00050 {
00051 public:
00054 virtual ~CMetricMapsAlignmentAlgorithm()
00055 {
00056 }
00057
00074 CPosePDFPtr Align(
00075 const CMetricMap *m1,
00076 const CMetricMap *m2,
00077 const CPose2D &grossEst,
00078 float *runningTime = NULL,
00079 void *info = NULL );
00080
00099 virtual CPosePDFPtr AlignPDF(
00100 const CMetricMap *m1,
00101 const CMetricMap *m2,
00102 const CPosePDFGaussian &initialEstimationPDF,
00103 float *runningTime = NULL,
00104 void *info = NULL ) = 0;
00105
00106
00123 CPose3DPDFPtr Align3D(
00124 const CMetricMap *m1,
00125 const CMetricMap *m2,
00126 const CPose3D &grossEst,
00127 float *runningTime = NULL,
00128 void *info = NULL );
00129
00148 virtual CPose3DPDFPtr Align3DPDF(
00149 const CMetricMap *m1,
00150 const CMetricMap *m2,
00151 const CPose3DPDFGaussian &initialEstimationPDF,
00152 float *runningTime = NULL,
00153 void *info = NULL ) = 0;
00154
00155
00156 };
00157
00158 }
00159 }
00160
00161 #endif