class mrpt::poses::CPose3DPDF

Overview

A Probability Density Function (PDF) of a SE(3) pose.

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.

For a similar class for 3D points (without attitude), see CPointPDF

See also: probabilistic spatial representations

See also:

CPose3D, CPosePDF, CPointPDF

#include <mrpt/poses/CPose3DPDF.h>

class CPose3DPDF:
    public mrpt::serialization::CSerializable,
    public mrpt::math::CProbabilityDensityFunction,
    public mrpt::Stringifyable
{
public:
    // typedefs

    typedef std::shared_ptr<CPose3DPDF> Ptr;
    typedef std::shared_ptr<const CPose3DPDF> 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 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;
};

// direct descendants

class CPose3DPDFGaussian;
class CPose3DPDFGaussianInf;
class CPose3DPDFGrid;
class CPose3DPDFParticles;
class CPose3DPDFSOG;

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 CPose3DPDF& o) = 0

Copy operator, translating if necessary (for example, between particles and gaussian representations)

See also:

createFrom2D

virtual void bayesianFusion(const CPose3DPDF& p1, const CPose3DPDF& p2) = 0

Bayesian fusion of two pose distributions, then save the result in this object (WARNING: Currently only distributions of the same class can be fused! eg, gaussian with gaussian,etc)

virtual void inverse(CPose3DPDF& o) const = 0

Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.