9 #ifndef CMetricMapBuilderRBPF_H
10 #define CMetricMapBuilderRBPF_H
92 std::ostream& out)
const override;
140 std::deque<mrpt::math::TPose3D>& outPath)
const;
177 const std::string& file,
bool formatEMF_BMP =
true);
This class allows loading and storing values and vectors of different types from a configuration text...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
This virtual class defines the interface of any object accepting drawing primitives on it.
This class stores any customizable set of metric maps.
Declares a class that represents a Rao-Blackwellized set of particles for solving the SLAM problem (T...
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be t...
A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap...
Declares a class for storing a collection of robot actions.
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Declares a class that represents a Probability Density function (PDF) of a 3D pose .
std::shared_ptr< CPose3DPDF > Ptr
Declares a class that represents a probability density function (pdf) of a 2D pose (x,...
This virtual class is the base for SLAM implementations.
This class implements a Rao-Blackwelized Particle Filter (RBPF) approach to map building (SLAM).
CMetricMapBuilderRBPF & operator=(const CMetricMapBuilderRBPF &src)
Copy Operator.
mrpt::maps::CMultiMetricMapPDF mapPDF
The map PDF: It includes a path and associated map for each particle.
void processActionObservation(mrpt::obs::CActionCollection &action, mrpt::obs::CSensoryFrame &observations)
Appends a new action and observations to update this map: See the description of the class at the top...
float localizeAngDistance
mrpt::poses::CPose3DPDF::Ptr getCurrentPoseEstimation() const
Returns a copy of the current best pose estimation as a pose PDF.
float insertionAngDistance
TStats m_statsLastIteration
This structure will hold stats after each execution of processActionObservation.
void initialize(const mrpt::maps::CSimpleMap &initialMap=mrpt::maps::CSimpleMap(), const mrpt::poses::CPosePDF *x0=nullptr)
Initialize the method, starting with a known location PDF "x0"(if supplied, set to nullptr to left un...
void saveCurrentPathEstimationToTextFile(const std::string &fil)
A logging utility: saves the current path estimation for each particle in a text file (a row per part...
const mrpt::maps::CMultiMetricMap * getCurrentlyBuiltMetricMap() const
Returns the map built so far.
void drawCurrentEstimationToImage(mrpt::img::CCanvas *img)
A useful method for debugging: draws the current map and path hypotheses to a CCanvas
bayes::CParticleFilter::TParticleFilterOptions m_PF_options
The configuration of the particle filter.
double getCurrentJointEntropy()
virtual ~CMetricMapBuilderRBPF()
Destructor.
void getCurrentMostLikelyPath(std::deque< mrpt::math::TPose3D > &outPath) const
Returns the current most-likely path estimation (the path associated to the most likely particle).
mrpt::poses::CPose3D odoIncrementSinceLastMapUpdate
Traveled distance since last map update.
unsigned int getCurrentlyBuiltMapSize()
Returns just how many sensory-frames are stored in the currently build map.
mrpt::poses::CPose3DPDFGaussian odoIncrementSinceLastLocalization
Traveled distance since last localization update.
float localizeLinDistance
Distances (linear and angular) for updating the robot pose estimate (and particles weighs,...
void clear()
Clear all elements of the maps.
float insertionLinDistance
Distances (linear and angular) for inserting a new observation into the map.
CMetricMapBuilderRBPF()
This second constructor is created for the situation where a class member needs to be of type CMetric...
void getCurrentlyBuiltMap(mrpt::maps::CSimpleMap &out_map) const
Fills "out_map" with the set of "poses"-"sensory-frames", thus the so far built map.
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.
GLsizei const GLchar ** string
GLsizei GLsizei GLchar * source
VerbosityLevel
Enumeration of available verbosity levels.
The configuration of a particle filter.
The struct for passing extra simulation parameters to the prediction/update stage when running a part...
Options for building a CMetricMapBuilderRBPF object, passed to the constructor.
bayes::CParticleFilter::TParticleFilterOptions PF_options
float insertionLinDistance
TConstructionOptions()
Constructor.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
mrpt::maps::CMultiMetricMapPDF::TPredictionParams predictionOptions
mrpt::maps::TSetOfMetricMapInitializers mapsInitializers
mrpt::system::VerbosityLevel verbosity_level
float localizeAngDistance
float insertionAngDistance
float localizeLinDistance
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form,...
This structure will hold stats after each execution of processActionObservation.
bool observationsInserted
Whether the SF has been inserted in the metric maps.