class mrpt::slam::CMetricMapBuilder¶
This virtual class is the base for SLAM implementations.
See derived classes for more information.
See also:
CMetricMap
#include <mrpt/slam/CMetricMapBuilder.h> class CMetricMapBuilder: public mrpt::system::COutputLogger { public: // structs struct TOptions; // methods virtual void initialize(const mrpt::maps::CSimpleMap& initialMap = mrpt::maps::CSimpleMap(), const mrpt::poses::CPosePDF* x0 = nullptr) = 0; virtual mrpt::poses::CPose3DPDF::Ptr getCurrentPoseEstimation() const = 0; virtual void processActionObservation(mrpt::obs::CActionCollection& action, mrpt::obs::CSensoryFrame& observations) = 0; virtual void getCurrentlyBuiltMap(mrpt::maps::CSimpleMap& out_map) const = 0; virtual unsigned int getCurrentlyBuiltMapSize() = 0; virtual const mrpt::maps::CMultiMetricMap* getCurrentlyBuiltMetricMap() const = 0; virtual void saveCurrentEstimationToImage(const std::string& file, bool formatEMF_BMP = true) = 0; void clear(); void enableMapUpdating(bool enable); void loadCurrentMapFromFile(const std::string& fileName); void saveCurrentMapToFile(const std::string& fileName, bool compressGZ = true) const; }; // direct descendants class CMetricMapBuilderICP; class CMetricMapBuilderRBPF;
Methods¶
virtual void initialize(const mrpt::maps::CSimpleMap& initialMap = mrpt::maps::CSimpleMap(), const mrpt::poses::CPosePDF* x0 = nullptr) = 0
Initialize the method, starting with a known location PDF “x0”(if supplied, set to nullptr to left unmodified) and a given fixed, past map.
virtual mrpt::poses::CPose3DPDF::Ptr getCurrentPoseEstimation() const = 0
Returns a copy of the current best pose estimation as a pose PDF.
virtual void processActionObservation(mrpt::obs::CActionCollection& action, mrpt::obs::CSensoryFrame& observations) = 0
Process a new action and observations pair to update this map: See the description of the class at the top of this page to see a more complete description.
Parameters:
action |
The estimation of the incremental pose change in the robot pose. |
observations |
The set of observations that robot senses at the new pose. |
virtual void getCurrentlyBuiltMap(mrpt::maps::CSimpleMap& out_map) const = 0
Fills “out_map” with the set of “poses”-“sensory-frames”, thus the so far built map.
virtual unsigned int getCurrentlyBuiltMapSize() = 0
Returns just how many sensory-frames are stored in the currently build map.
virtual const mrpt::maps::CMultiMetricMap* getCurrentlyBuiltMetricMap() const = 0
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 “clone()”.
virtual void saveCurrentEstimationToImage( const std::string& file, bool formatEMF_BMP = true ) = 0
A useful method for debugging: the current map (and/or poses) estimation is dumped to an image file.
Parameters:
file |
The output file name |
formatEMF_BMP |
Output format = true:EMF, false:BMP |
void clear()
Clear all elements of the maps, and reset localization to (0,0,0deg).
void enableMapUpdating(bool enable)
Enables or disables the map updating (default state is enabled)
void loadCurrentMapFromFile(const std::string& fileName)
Load map (mrpt::maps::CSimpleMap) from a “.simplemap” file.
void saveCurrentMapToFile(const std::string& fileName, bool compressGZ = true) const
Save map (mrpt::maps::CSimpleMap) to a “.simplemap” file.