Main MRPT website
>
C++ reference
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
mrpt
hmtslam
CTopLCDetector_FabMap.h
Go to the documentation of this file.
1
/* +---------------------------------------------------------------------------+
2
| The Mobile Robot Programming Toolkit (MRPT) C++ library |
3
| |
4
| http://www.mrpt.org/ |
5
| |
6
| Copyright (C) 2005-2012 University of Malaga |
7
| |
8
| This software was written by the Machine Perception and Intelligent |
9
| Robotics Lab, University of Malaga (Spain). |
10
| Contact: Jose-Luis Blanco <jlblanco@ctima.uma.es> |
11
| |
12
| This file is part of the MRPT project. |
13
| |
14
| MRPT is free software: you can redistribute it and/or modify |
15
| it under the terms of the GNU General Public License as published by |
16
| the Free Software Foundation, either version 3 of the License, or |
17
| (at your option) any later version. |
18
| |
19
| MRPT is distributed in the hope that it will be useful, |
20
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
21
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22
| GNU General Public License for more details. |
23
| |
24
| You should have received a copy of the GNU General Public License |
25
| along with MRPT. If not, see <http://www.gnu.org/licenses/>. |
26
| |
27
+---------------------------------------------------------------------------+ */
28
#ifndef _CTopLCDetector_FabMap_H
29
#define _CTopLCDetector_FabMap_H
30
31
#include <
mrpt/hmtslam/CTopLCDetectorBase.h
>
32
33
namespace
mrpt
34
{
35
namespace
hmtslam
36
{
37
/** \ingroup mrpt_hmtslam_grp */
38
class
CTopLCDetector_FabMap
:
public
CTopLCDetectorBase
39
{
40
protected
:
41
CTopLCDetector_FabMap
(
CHMTSLAM
*hmtslam );
42
43
void
*
m_fabmap
;
// FabMapInstance*
44
45
public
:
46
/** A class factory, to be implemented in derived classes.
47
*/
48
static
CTopLCDetectorBase
*
createNewInstance
(
CHMTSLAM
*hmtslam )
49
{
50
return
static_cast<
CTopLCDetectorBase
*
>
(
new
CTopLCDetector_FabMap
(hmtslam));
51
}
52
53
/** Destructor */
54
virtual
~CTopLCDetector_FabMap
();
55
56
/** This method must compute the topological observation model.
57
* \param out_log_lik The output, a log-likelihood.
58
* \return NULL (empty smart pointer), or a PDF of the estimated translation between the two areas (can be a multi-modal PDF).
59
*/
60
CPose3DPDFPtr
computeTopologicalObservationModel
(
61
const
THypothesisID
&hypID,
62
const
CHMHMapNodePtr
¤tArea,
63
const
CHMHMapNodePtr
&refArea,
64
double
&out_log_lik
65
);
66
67
/** Hook method for being warned about the insertion of a new poses into the maps.
68
* This should be independent of hypothesis IDs.
69
*/
70
void
OnNewPose
(
71
const
TPoseID
&poseID,
72
const
CSensoryFrame
*SF );
73
74
75
/** Options for a TLC-detector of type FabMap, used from CHMTSLAM
76
*/
77
struct
TOptions
:
public
utils::CLoadableOptions
78
{
79
/** Initialization of default params
80
*/
81
TOptions
();
82
83
/** Load parameters from configuration source
84
*/
85
void
loadFromConfigFile
(
86
const
mrpt::utils::CConfigFileBase
&source,
87
const
std::string §ion);
88
89
/** This method must display clearly all the contents of the structure in textual form, sending it to a CStream.
90
*/
91
void
dumpToTextStream
(
CStream
&out)
const
;
92
93
std::string
vocab_path
,
vocabName
;
94
double
p_obs_given_exists
,
p_at_new_place
,
df_lik_smooth
;
95
};
96
97
98
};
// end class
99
}
// end namespace
100
}
// end namespace
101
102
103
#endif
Page generated by
Doxygen 1.8.3
for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013