class mrpt::poses::CPose3DPDFParticles
Overview
Declares a class that represents a Probability Density function (PDF) of a 3D pose.
This class is also the base for the implementation of Monte-Carlo Localization (MCL), in mrpt::slam::CMonteCarloLocalization2D.
See the application “app/pf-localization” for an example of usage.
See also:
CPose3D, CPose3DPDF, CPoseGaussianPDF
#include <mrpt/poses/CPose3DPDFParticles.h> class CPose3DPDFParticles: public mrpt::poses::CPose3DPDF, public mrpt::bayes::CParticleFilterData, public mrpt::bayes::CParticleFilterDataImpl { public: // typedefs typedef std::shared_ptr<const mrpt::poses ::CPose3DPDFParticles> ConstPtr; typedef std::unique_ptr<mrpt::poses ::CPose3DPDFParticles> UniquePtr; typedef std::unique_ptr<const mrpt::poses ::CPose3DPDFParticles> ConstUniquePtr; // fields static constexpr const char* className = "mrpt::poses" "::" "CPose3DPDFParticles"; // construction CPose3DPDFParticles(size_t M = 1); // methods static constexpr auto getClassName(); static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); static std::shared_ptr<CObject> CreateObject(); template <typename... Args> static Ptr Create(Args&&... args); template <typename Alloc, typename... Args> static Ptr CreateAlloc( const Alloc& alloc, Args&&... args ); template <typename... Args> static UniquePtr CreateUnique(Args&&... args); }; // direct descendants class CMonteCarloLocalization3D;
Inherited Members
public: // typedefs typedef std::shared_ptr<CObject> Ptr; typedef std::shared_ptr<const CObject> ConstPtr; typedef std::shared_ptr<CSerializable> Ptr; typedef std::shared_ptr<const CSerializable> ConstPtr; typedef CProbabilityDensityFunction<TDATA, STATE_LEN> self_t; typedef std::shared_ptr<CPose3DPDF> Ptr; typedef std::shared_ptr<const CPose3DPDF> ConstPtr; // structs struct TFastDrawAuxVars; // methods static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); CProbabilityDensityFunction& operator = (const CProbabilityDensityFunction&); CProbabilityDensityFunction& operator = (CProbabilityDensityFunction&&); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual void printTo(std::ostream& out) const = 0; virtual void copyFrom(const CPose3DPDF& o) = 0; virtual void changeCoordinatesReference(const CPose3D& newReferenceBase) = 0; virtual void bayesianFusion(const CPose3DPDF& p1, const CPose3DPDF& p2) = 0; virtual void inverse(CPose3DPDF& o) const = 0; virtual double getW(size_t i) const = 0; virtual void setW(size_t i, double w) = 0; virtual size_t particlesCount() const = 0; virtual void performSubstitution(const std::vector<size_t>& indx) = 0; virtual double normalizeWeights(double* out_max_log_w = nullptr) = 0; virtual double ESS() const = 0;
Construction
CPose3DPDFParticles(size_t M = 1)
Constructor.
Parameters:
M |
The number of m_particles. |