class mrpt::poses::CPoint2DPDF

Declares a class that represents a Probability Distribution function (PDF) of a 2D point (x,y).

This class is just the base class for unifying many diferent 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 6D poses (a 3D point with attitude), see CPose3DPDF

See also the tutorial on probabilistic spatial representations in the MRPT.

See also:

CPoint2D, CPointPDF

#include <mrpt/poses/CPoint2DPDF.h>

class CPoint2DPDF:
    public mrpt::serialization::CSerializable,
    public mrpt::math::CProbabilityDensityFunction
{
public:
    //
methods

    virtual void copyFrom(const CPoint2DPDF& o) = 0;
    virtual void changeCoordinatesReference(const CPose3D& newReferenceBase) = 0;

    virtual void bayesianFusion(
        const CPoint2DPDF& p1,
        const CPoint2DPDF& p2,
        const double minMahalanobisDistToDrop = 0
        ) = 0;

    virtual std::tuple<cov_mat_t, type_value> getCovarianceAndMean() const = 0;
    virtual bool saveToTextFile(const std::string& file) const = 0;
};

// direct descendants

class CPoint2DPDFGaussian;

Inherited Members

public:
    // typedefs

    typedef CProbabilityDensityFunction<TDATA, STATE_LEN> self_t;

Methods

virtual void copyFrom(const CPoint2DPDF& o) = 0

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

virtual void bayesianFusion(
    const CPoint2DPDF& p1,
    const CPoint2DPDF& p2,
    const double minMahalanobisDistToDrop = 0
    ) = 0

Bayesian fusion of two point 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 mixtured!)

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 std::tuple<cov_mat_t, type_value> getCovarianceAndMean() const = 0

Returns an estimate of the pose covariance matrix (STATE_LENxSTATE_LEN cov matrix) and the mean, both at once.

See also:

getMean, getInformationMatrix

virtual bool saveToTextFile(const std::string& file) const = 0

Save PDF’s particles to a text file.

See derived classes for more information about the format of generated files.

Returns:

false on error