Go to the documentation of this file.
9 #ifndef CMultiMetricMapPDF_H
10 #define CMultiMetricMapPDF_H
29 namespace slam {
class CMetricMapBuilderRBPF; }
43 mapTillNow( mapsInitializers ),
63 public
mrpt::utils::CSerializable,
202 void getPath(
size_t i, std::deque<math::TPose3D> &out_path)
const;
254 const size_t particleIndexForMap,
void getEstimatedPosePDF(mrpt::poses::CPose3DPDFParticles &out_estimation) const
Returns the current estimate of the robot pose, as a particles PDF.
std::deque< CParticleData > CParticleList
Use this type to refer to the list of particles m_particles.
void clear(const mrpt::poses::CPose3D &initialPose)
Clear all elements of the maps, and restore all paths to a single starting pose.
const mrpt::math::TPose3D * getLastPose(const size_t i) const
Return a pointer to the last robot pose in the i'th particle (or NULL if it's a path and it's empty).
int pfOptimalProposal_mapSelection
[pf optimal proposal only] Only for PF algorithm=2 (Exact "pfOptimalProposal") Select the map on whic...
mrpt::slam::TKLDParams KLD_params
Auxiliary class used in mrpt::maps::CMultiMetricMapPDF.
The ICP algorithm configuration data.
Option set for KLD algorithm.
void clear(const mrpt::poses::CPose2D &initialPose)
Clear all elements of the maps, and restore all paths to a single starting pose.
void getEstimatedPosePDFAtTime(size_t timeStep, mrpt::poses::CPose3DPDFParticles &out_estimation) const
Returns the estimate of the robot pose as a particles PDF for the instant of time "timeStep",...
virtual ~CMultiMetricMapPDF()
Destructor.
float ICPGlobalAlign_MinQuality
[prediction stage][pf optimal proposal only] If useICPGlobalAlign_withGrid=true, this is the minimum ...
This class implements a Rao-Blackwelized Particle Filter (RBPF) approach to map building (SLAM).
mrpt::maps::CMultiMetricMap averageMap
Internal buffer for the averaged map.
Declares a class for storing a collection of robot actions.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE
This method should clearly display all the contents of the structure in textual form,...
double PF_SLAM_computeObservationLikelihoodForParticle(const mrpt::bayes::CParticleFilter::TParticleFilterOptions &PF_options, const size_t particleIndexForMap, const mrpt::obs::CSensoryFrame &observation, const mrpt::poses::CPose3D &x) const
Evaluate the observation likelihood for one particle at a given location.
std::deque< mrpt::math::TPose3D > robotPath
mrpt::maps::CSimpleMap SFs
The SFs and their corresponding pose estimations:
A set of TMetricMapInitializer structures, passed to the constructor CMultiMetricMap::CMultiMetricMap...
CMultiMetricMap * getCurrentMetricMapEstimation()
Returns the weighted averaged map based on the current best estimation.
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
float H(float p)
Entropy aux.
void updateSensoryFrameSequence()
Update the poses estimation of the member "SFs" according to the current path belief.
mrpt::slam::CICP::TConfigParams icp_params
ICP parameters, used only when "PF_algorithm=2" in the particle filter.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
double getCurrentEntropyOfPaths()
Returns the current entropy of paths, computed as the average entropy of poses along the path,...
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...
A class used to store a 2D pose.
CMultiMetricMap * getCurrentMostLikelyMetricMap()
Returns a pointer to the current most likely map (associated to the most likely particle).
This class stores any customizable set of metric maps.
COccupancyGridMap2D::TLikelihoodOptions update_gridMapLikelihoodOptions
[update stage] If the likelihood is computed through the occupancy grid map, then this structure is p...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
size_t size() const
Returns the count of pairs (pose,sensory data)
Declares a class that represents a Rao-Blackwellized set of particles for solving the SLAM problem (T...
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
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...
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
double getCurrentJointEntropy()
Returns the joint entropy estimation over paths and maps, acording to "Information Gain-based Explora...
Declares a class that represents a Probability Density function (PDF) of a 3D pose.
void insertObservation(mrpt::obs::CSensoryFrame &sf)
Insert an observation to the map, at each particle's pose and to each particle's metric map.
The virtual base class which provides a unified interface for all persistent objects in MRPT.
CMultiMetricMap mapTillNow
bool PF_SLAM_implementation_doWeHaveValidObservations(const CParticleList &particles, const mrpt::obs::CSensoryFrame *sf) const
CMultiMetricMapPDF(const bayes::CParticleFilter::TParticleFilterOptions &opts=bayes::CParticleFilter::TParticleFilterOptions(), const mrpt::maps::TSetOfMetricMapInitializers *mapsInitializers=NULL, const TPredictionParams *predictionOptions=NULL)
Constructor.
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
void rebuildAverageMap()
Rebuild the "expected" grid map.
void PF_SLAM_implementation_custom_update_particle_with_new_pose(CParticleDataContent *particleData, const mrpt::math::TPose3D &newPose) const
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion) MRPT_OVERRIDE
This method load the options from a ".ini"-like file or memory-stored string list.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void prediction_and_update_pfStandardProposal(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options)
The PF algorithm implementation.
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be t...
The struct for passing extra simulation parameters to the prediction/update stage when running a part...
TPredictionParams()
Default settings method.
void prediction_and_update_pfOptimalProposal(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options)
The PF algorithm implementation.
With this struct options are provided to the observation likelihood computation process.
bool PF_SLAM_implementation_skipRobotMovement() const
CRBPFParticleData(const TSetOfMetricMapInitializers *mapsInitializers=NULL)
void prediction_and_update_pfAuxiliaryPFOptimal(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options)
The PF algorithm implementation.
The configuration of a particle filter.
CRBPFParticleData CParticleDataContent
This is the type inside the corresponding CParticleData class.
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
size_t getNumberOfObservationsInSimplemap() const
Get the number of CSensoryFrame inserted into the internal member SFs.
float newInfoIndex
An index [0,1] measuring how much information an observation aports to the map (Typ.
void getPath(size_t i, std::deque< math::TPose3D > &out_path) const
Return the path (in absolute coordinate poses) for the i'th particle.
std::vector< uint32_t > SF2robotPath
A mapping between indexes in the SFs to indexes in the robot paths from particles.
Page generated by Doxygen 1.8.20 for MRPT 1.4.0 SVN: at Thu Aug 27 02:40:23 UTC 2020 | | |