A class for very simple 2D SLAM based on ICP.
This is a non-probabilistic pose tracking algorithm. Map are stored as in files as binary dumps of "mrpt::slam::CSimpleMap" objects. The methods are thread-safe.
Definition at line 54 of file CMetricMapBuilderICP.h.
#include <mrpt/slam/CMetricMapBuilderICP.h>
Classes | |
struct | TConfigParams |
Algorithm configuration params. More... | |
struct | TDist |
Traveled distances from last map update / ICP-based localization. More... | |
Public Member Functions | |
CMetricMapBuilderICP () | |
Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize". More... | |
virtual | ~CMetricMapBuilderICP () |
Destructor: More... | |
void | initialize (const CSimpleMap &initialMap=CSimpleMap(), CPosePDF *x0=NULL) |
Initialize the method, starting with a known location PDF "x0"(if supplied, set to NULL to left unmodified) and a given fixed, past map. More... | |
CPose3DPDFPtr | getCurrentPoseEstimation () const |
Returns a copy of the current best pose estimation as a pose PDF. More... | |
void | setCurrentMapFile (const char *mapFile) |
Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object. More... | |
void | processActionObservation (CActionCollection &action, CSensoryFrame &in_SF) |
Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description. More... | |
void | processObservation (const CObservationPtr &obs) |
The main method of this class: Process one odometry or sensor observation. More... | |
void | getCurrentlyBuiltMap (CSimpleMap &out_map) const |
Fills "out_map" with the set of "poses"-"sensory-frames", thus the so far built map. More... | |
void | getCurrentMapPoints (std::vector< float > &x, std::vector< float > &y) |
Returns the 2D points of current local map. More... | |
CMultiMetricMap * | getCurrentlyBuiltMetricMap () |
Returns the map built so far. More... | |
unsigned int | getCurrentlyBuiltMapSize () |
Returns just how many sensory-frames are stored in the currently build map. More... | |
void | saveCurrentEstimationToImage (const std::string &file, bool formatEMF_BMP=true) |
A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file. More... | |
void | clear () |
Clear all elements of the maps, and reset localization to (0,0,0deg). More... | |
void | enableMapUpdating (bool enable) |
Enables or disables the map updating (default state is enabled) More... | |
void | loadCurrentMapFromFile (const std::string &fileName) |
Load map (mrpt::slam::CSimpleMap) from a ".simplemap" file. More... | |
void | saveCurrentMapToFile (const std::string &fileName, bool compressGZ=true) const |
Save map (mrpt::slam::CSimpleMap) to a ".simplemap" file. More... | |
Static Public Member Functions | |
static void | printf_debug (const char *frmt,...) |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise. More... | |
Public Attributes | |
TConfigParams | ICP_options |
Options for the ICP-SLAM application. More... | |
CICP::TConfigParams | ICP_params |
Options for the ICP algorithm itself. More... | |
TOptions | options |
Protected Member Functions | |
void | enterCriticalSection () |
Enter critical section for map updating: More... | |
void | leaveCriticalSection () |
Leave critical section for map updating: More... | |
Protected Attributes | |
synch::CCriticalSection | critZoneChangingMap |
Critical zones. More... | |
Private Member Functions | |
void | accumulateRobotDisplacementCounters (const CPose2D &new_pose) |
void | resetRobotDisplacementCounters (const CPose2D &new_pose) |
Private Attributes | |
CSimpleMap | SF_Poses_seq |
The set of observations that leads to current map: More... | |
CMultiMetricMap | metricMap |
The metric map representation as a points map: More... | |
std::string | currentMapFile |
Current map file. More... | |
mrpt::poses::CRobot2DPoseEstimator | m_lastPoseEst |
The pose estimation by the alignment algorithm (ICP). More... | |
mrpt::math::CMatrixDouble33 | m_lastPoseEst_cov |
Last pose estimation (covariance) More... | |
std::deque< mrpt::math::TPose2D > | m_estRobotPath |
The estimated robot path: More... | |
mrpt::poses::CPose2D | m_auxAccumOdometry |
TDist | m_distSinceLastICP |
mrpt::aligned_containers< std::string, TDist >::map_t | m_distSinceLastInsertion |
Indexed by sensor label. More... | |
bool | m_there_has_been_an_odometry |
mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP | ( | ) |
Default constructor - Upon construction, you can set the parameters in ICP_options, then call "initialize".
|
virtual |
Destructor:
|
private |
|
inherited |
Clear all elements of the maps, and reset localization to (0,0,0deg).
|
inlineinherited |
Enables or disables the map updating (default state is enabled)
Definition at line 121 of file CMetricMapBuilder.h.
|
inlineprotectedinherited |
Enter critical section for map updating:
Definition at line 70 of file CMetricMapBuilder.h.
References mrpt::synch::CCriticalSection::enter().
|
virtual |
Fills "out_map" with the set of "poses"-"sensory-frames", thus the so far built map.
Implements mrpt::slam::CMetricMapBuilder.
|
virtual |
Returns just how many sensory-frames are stored in the currently build map.
Implements mrpt::slam::CMetricMapBuilder.
|
virtual |
Returns the map built so far.
NOTE that for efficiency a pointer to the internal object is passed, DO NOT delete nor modify the object in any way, if desired, make a copy of ir with "duplicate()".
Implements mrpt::slam::CMetricMapBuilder.
void mrpt::slam::CMetricMapBuilderICP::getCurrentMapPoints | ( | std::vector< float > & | x, |
std::vector< float > & | y | ||
) |
Returns the 2D points of current local map.
|
virtual |
Returns a copy of the current best pose estimation as a pose PDF.
Implements mrpt::slam::CMetricMapBuilder.
|
virtual |
Initialize the method, starting with a known location PDF "x0"(if supplied, set to NULL to left unmodified) and a given fixed, past map.
This method MUST be called if using the default constructor, after loading the configuration into ICP_options. In particular, TConfigParams::mapInitializers
Implements mrpt::slam::CMetricMapBuilder.
|
inlineprotectedinherited |
Leave critical section for map updating:
Definition at line 74 of file CMetricMapBuilder.h.
References mrpt::synch::CCriticalSection::leave().
|
inherited |
Load map (mrpt::slam::CSimpleMap) from a ".simplemap" file.
|
staticinherited |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise.
Referenced by mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute().
|
virtual |
Appends a new action and observations to update this map: See the description of the class at the top of this page to see a more complete description.
action | The estimation of the incremental pose change in the robot pose. |
in_SF | The set of observations that robot senses at the new pose. See params in CMetricMapBuilder::options and CMetricMapBuilderICP::ICP_options |
Implements mrpt::slam::CMetricMapBuilder.
void mrpt::slam::CMetricMapBuilderICP::processObservation | ( | const CObservationPtr & | obs | ) |
The main method of this class: Process one odometry or sensor observation.
The new entry point of the algorithm (the old one was processActionObservation, which now is a wrapper to this method). See params in CMetricMapBuilder::options and CMetricMapBuilderICP::ICP_options
|
private |
|
virtual |
A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file.
file | The output file name |
formatEMF_BMP | Output format = true:EMF, false:BMP |
Implements mrpt::slam::CMetricMapBuilder.
|
inherited |
Save map (mrpt::slam::CSimpleMap) to a ".simplemap" file.
void mrpt::slam::CMetricMapBuilderICP::setCurrentMapFile | ( | const char * | mapFile | ) |
Sets the "current map file", thus that map will be loaded if it exists or a new one will be created if it does not, and the updated map will be save to that file when destroying the object.
|
protectedinherited |
Critical zones.
Definition at line 66 of file CMetricMapBuilder.h.
|
private |
Current map file.
Definition at line 164 of file CMetricMapBuilderICP.h.
TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_options |
Options for the ICP-SLAM application.
Definition at line 93 of file CMetricMapBuilderICP.h.
CICP::TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_params |
Options for the ICP algorithm itself.
Definition at line 94 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 173 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 186 of file CMetricMapBuilderICP.h.
|
private |
Indexed by sensor label.
Definition at line 187 of file CMetricMapBuilderICP.h.
|
private |
The estimated robot path:
Definition at line 172 of file CMetricMapBuilderICP.h.
|
private |
The pose estimation by the alignment algorithm (ICP).
Last pose estimation (Mean)
Definition at line 167 of file CMetricMapBuilderICP.h.
|
private |
Last pose estimation (covariance)
Definition at line 168 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 188 of file CMetricMapBuilderICP.h.
|
private |
The metric map representation as a points map:
Definition at line 160 of file CMetricMapBuilderICP.h.
|
inherited |
Definition at line 157 of file CMetricMapBuilder.h.
|
private |
The set of observations that leads to current map:
Definition at line 156 of file CMetricMapBuilderICP.h.
Page generated by Doxygen 1.8.14 for MRPT 1.0.2 SVN: at lun oct 28 00:52:41 CET 2019 | Hosted on: |