9 #ifndef CMultiMetricMapPDF_H
10 #define CMultiMetricMapPDF_H
29 namespace slam {
class CMetricMapBuilderRBPF; }
43 mapTillNow( mapsInitializers ),
63 public
mrpt::utils::CSerializable,
75 void prediction_and_update_pfStandardProposal(
79 void prediction_and_update_pfOptimalProposal(
83 void prediction_and_update_pfAuxiliaryPFOptimal(
87 void prediction_and_update_pfAuxiliaryPFStandard(
146 const TPredictionParams *predictionOptions = NULL );
158 void getEstimatedPosePDFAtTime(
187 void getPath(
size_t i, std::deque<math::TPose3D> &out_path)
const;
191 double getCurrentEntropyOfPaths();
195 double getCurrentJointEntropy();
199 void updateSensoryFrameSequence();
203 void saveCurrentPathEstimationToTextFile(
const std::string &fil );
207 void rebuildAverageMap();
217 void PF_SLAM_implementation_custom_update_particle_with_new_pose(
218 CParticleDataContent *particleData,
224 bool PF_SLAM_implementation_doWeHaveValidObservations(
225 const CParticleList &particles,
228 bool PF_SLAM_implementation_skipRobotMovement() const
MRPT_OVERRIDE;
231 double PF_SLAM_computeObservationLikelihoodForParticle(
232 const
mrpt::bayes::CParticleFilter::TParticleFilterOptions &PF_options,
233 const
size_t particleIndexForMap,
234 const
mrpt::obs::CSensoryFrame &observation,
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
#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...
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...
mrpt::maps::CSimpleMap SFs
The SFs and their corresponding pose estimations.
mrpt::maps::CMultiMetricMap averageMap
Internal buffer for the averaged map.
float newInfoIndex
An index [0,1] measuring how much information an observation aports to the map (Typ....
std::vector< uint32_t > SF2robotPath
A mapping between indexes in the SFs to indexes in the robot paths from particles.
size_t getNumberOfObservationsInSimplemap() const
Get the number of CSensoryFrame inserted into the internal member SFs.
With this struct options are provided to the observation likelihood computation process.
Auxiliary class used in mrpt::maps::CMultiMetricMapPDF.
CMultiMetricMap mapTillNow
CRBPFParticleData(const TSetOfMetricMapInitializers *mapsInitializers=NULL)
std::deque< mrpt::math::TPose3D > robotPath
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be t...
size_t size() const
Returns the count of pairs (pose,sensory data)
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 2D pose, including the 2D coordinate point and a heading (phi) angle.
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.
The ICP algorithm configuration data.
This class implements a Rao-Blackwelized Particle Filter (RBPF) approach to map building (SLAM).
Option set for KLD algorithm.
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...
The virtual base class which provides a unified interface for all persistent objects in MRPT.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
GLsizei const GLchar ** string
GLsizei GLsizei GLchar * source
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
mrpt::maps::CMultiMetricMapPDF CMultiMetricMapPDF
Backward compatible typedef.
void clear()
Clear the contents of this container.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
The configuration of a particle filter.
The struct for passing extra simulation parameters to the prediction/update stage when running a part...
float ICPGlobalAlign_MinQuality
[prediction stage][pf optimal proposal only] If useICPGlobalAlign_withGrid=true, this is the minimum ...
COccupancyGridMap2D::TLikelihoodOptions update_gridMapLikelihoodOptions
[update stage] If the likelihood is computed through the occupancy grid map, then this structure is p...
int pfOptimalProposal_mapSelection
[pf optimal proposal only] Only for PF algorithm=2 (Exact "pfOptimalProposal") Select the map on whic...
mrpt::slam::CICP::TConfigParams icp_params
ICP parameters, used only when "PF_algorithm=2" in the particle filter.
mrpt::slam::TKLDParams KLD_params
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).