Class CMonteCarloLocalization3D

Inheritance Relationships

Base Types

  • public mrpt::poses::CPose3DPDFParticles

  • public 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

options

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

options

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

options

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