class mrpt::poses::CPosePDF
Overview
Declares a class that represents a probability density function (pdf) of a 2D pose (x,y,phi).
This class is just the base class for unifying many different ways this pdf can be implemented.
For convenience, a pose composition is also defined for any pdf derived class, changeCoordinatesReference, in the form of a method rather than an operator.
See also: probabilistic spatial representations
See also:
CPose2D, CPose3DPDF, CPoseRandomSampler
#include <mrpt/poses/CPosePDF.h> class CPosePDF: public mrpt::serialization::CSerializable, public mrpt::math::CProbabilityDensityFunction, public mrpt::Stringifyable { public: // typedefs typedef std::shared_ptr<CPosePDF> Ptr; typedef std::shared_ptr<const CPosePDF> ConstPtr; // methods 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 CPosePDF& o) = 0; virtual void bayesianFusion( const CPosePDF& p1, const CPosePDF& p2, double minMahalanobisDistToDrop = 0 ) = 0; virtual void inverse(CPosePDF& o) const = 0; virtual void changeCoordinatesReference(const CPose3D& newReferenceBase) = 0; }; // direct descendants class CPosePDFGaussian; class CPosePDFGaussianInf; class CPosePDFGrid; class CPosePDFParticles; class CPosePDFSOG;
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; // 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&&);
Methods
virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const
Returns information about the class of an object in runtime.
virtual void printTo(std::ostream& out) const = 0
Write a human-readable description of this PDF to the given stream.
Derived classes must override this method.
virtual void copyFrom(const CPosePDF& o) = 0
Copy operator, translating if necessary (for example, between particles and gaussian representations)
virtual void bayesianFusion( const CPosePDF& p1, const CPosePDF& p2, double minMahalanobisDistToDrop = 0 ) = 0
Bayesian fusion of two pose distributions (product of two distributions->new distribution), then save the result in this object (WARNING: See implementing classes to see classes that can and cannot be mixed!)
Parameters:
p1 |
The first distribution to fuse |
p2 |
The second distribution to fuse |
minMahalanobisDistToDrop |
If set to different of 0, the result of very separate Gaussian modes (that will result in negligible components) in SOGs will be dropped to reduce the number of modes in the output. |
virtual void inverse(CPosePDF& o) const = 0
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.