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::maps::CSimpleMap" objects. The methods are thread-safe.
Definition at line 28 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 mrpt::maps::CSimpleMap &initialMap=mrpt::maps::CSimpleMap(), mrpt::poses::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... | |
| mrpt::poses::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 (mrpt::obs::CActionCollection &action, mrpt::obs::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 mrpt::obs::CObservationPtr &obs) |
| The main method of this class: Process one odometry or sensor observation. More... | |
| void | getCurrentlyBuiltMap (mrpt::maps::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... | |
| mrpt::maps::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::maps::CSimpleMap) from a ".simplemap" file. More... | |
| void | saveCurrentMapToFile (const std::string &fileName, bool compressGZ=true) const |
| Save map (mrpt::maps::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 mrpt::poses::CPose2D &new_pose) |
| void | resetRobotDisplacementCounters (const mrpt::poses::CPose2D &new_pose) |
Private Attributes | |
| mrpt::maps::CSimpleMap | SF_Poses_seq |
| The set of observations that leads to current map: More... | |
| mrpt::maps::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 95 of file CMetricMapBuilder.h.
|
inlineprotectedinherited |
Enter critical section for map updating:
Definition at line 44 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 48 of file CMetricMapBuilder.h.
References mrpt::synch::CCriticalSection::leave().
|
inherited |
Load map (mrpt::maps::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 mrpt::obs::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::maps::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 40 of file CMetricMapBuilder.h.
|
private |
Current map file.
Definition at line 133 of file CMetricMapBuilderICP.h.
| TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_options |
Options for the ICP-SLAM application.
Definition at line 65 of file CMetricMapBuilderICP.h.
| CICP::TConfigParams mrpt::slam::CMetricMapBuilderICP::ICP_params |
Options for the ICP algorithm itself.
Definition at line 66 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 142 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 155 of file CMetricMapBuilderICP.h.
|
private |
Indexed by sensor label.
Definition at line 156 of file CMetricMapBuilderICP.h.
|
private |
The estimated robot path:
Definition at line 141 of file CMetricMapBuilderICP.h.
|
private |
The pose estimation by the alignment algorithm (ICP).
Last pose estimation (Mean)
Definition at line 136 of file CMetricMapBuilderICP.h.
|
private |
Last pose estimation (covariance)
Definition at line 137 of file CMetricMapBuilderICP.h.
|
private |
Definition at line 157 of file CMetricMapBuilderICP.h.
|
private |
The metric map representation as a points map:
Definition at line 130 of file CMetricMapBuilderICP.h.
|
inherited |
Definition at line 131 of file CMetricMapBuilder.h.
|
private |
The set of observations that leads to current map:
Definition at line 127 of file CMetricMapBuilderICP.h.
| Page generated by Doxygen 1.9.1 for MRPT 1.4.0 SVN: at Fri Sep 3 01:11:30 UTC 2021 |