Class CMonteCarloLocalization3D
Defined in File CMonteCarloLocalization3D.h
Inheritance Relationships
Base Types
public mrpt::poses::CPose3DPDFParticlespublic mrpt::slam::PF_implementation< mrpt::math::TPose3D, CMonteCarloLocalization3D, mrpt::bayes::particle_storage_mode::VALUE >(Template Class PF_implementation)
Class Documentation
-
class CMonteCarloLocalization3D : public mrpt::poses::CPose3DPDFParticles, public mrpt::slam::PF_implementation<mrpt::math::TPose3D, CMonteCarloLocalization3D, mrpt::bayes::particle_storage_mode::VALUE>
Declares a class that represents a Probability Density Function (PDF) over a 3D pose (x,y,phi,yaw,pitch,roll), using a set of weighted samples.
This class also implements particle filtering for robot localization. See the MRPT application “app/pf-localization” for an example of usage.
See also
CMonteCarloLocalization2D, CPose2D, CPosePDF, CPoseGaussianPDF, CParticleFilterCapable
Virtual methods that the PF_implementations assume exist.
-
virtual mrpt::math::TPose3D getLastPose(size_t i, bool &is_valid_pose) const override
Return the robot pose for the i’th particle. is_valid is always true in this class.
-
void PF_SLAM_implementation_custom_update_particle_with_new_pose(CParticleDataContent *particleData, const mrpt::math::TPose3D &newPose) const override
-
void PF_SLAM_implementation_replaceByNewParticleSet(CParticleList &old_particles, const std::vector<mrpt::math::TPose3D> &newParticles, const std::vector<double> &newParticlesWeight, const std::vector<size_t> &newParticlesDerivedFromIdx) const override
-
virtual double PF_SLAM_computeObservationLikelihoodForParticle(const mrpt::bayes::CParticleFilter::TParticleFilterOptions &PF_options, size_t particleIndexForMap, const mrpt::obs::CSensoryFrame &observation, const mrpt::poses::CPose3D &x) const override
Evaluate the observation likelihood for one particle at a given location
Public Functions
-
CMonteCarloLocalization3D(size_t M = 1)
Constructor
- Parameters:
M – The number of m_particles.
-
void prediction_and_update_pfStandardProposal(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options) override
Update the m_particles, predicting the posterior of robot pose and map after a movement command. This method has additional configuration parameters in “options”. Performs the update stage of the RBPF, using the sensed CSensoryFrame:
See also
- Parameters:
action – This is a pointer to CActionCollection, containing the pose change the robot has been commanded.
observation – This must be a pointer to a CSensoryFrame object, with robot sensed observations.
-
void prediction_and_update_pfAuxiliaryPFStandard(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options) override
Update the m_particles, predicting the posterior of robot pose and map after a movement command. This method has additional configuration parameters in “options”. Performs the update stage of the RBPF, using the sensed CSensoryFrame:
See also
- Parameters:
Action – This is a pointer to CActionCollection, containing the pose change the robot has been commanded.
observation – This must be a pointer to a CSensoryFrame object, with robot sensed observations.
-
void prediction_and_update_pfAuxiliaryPFOptimal(const mrpt::obs::CActionCollection *action, const mrpt::obs::CSensoryFrame *observation, const bayes::CParticleFilter::TParticleFilterOptions &PF_options) override
Update the m_particles, predicting the posterior of robot pose and map after a movement command. This method has additional configuration parameters in “options”. Performs the update stage of the RBPF, using the sensed CSensoryFrame:
See also
- Parameters:
Action – This is a pointer to CActionCollection, containing the pose change the robot has been commanded.
observation – This must be a pointer to a CSensoryFrame object, with robot sensed observations.
-
inline mrpt::viz::CSetOfObjects::Ptr getVisualization() const
Returns a 3D representation of this PDF.
Note
Needs the mrpt-opengl library, and using mrpt::viz::CSetOfObjects::Ptr as template argument.
Public Members
-
TMonteCarloLocalizationParams options
MCL parameters
-
virtual mrpt::math::TPose3D getLastPose(size_t i, bool &is_valid_pose) const override