18 class CPosePDFGaussian;
61 const double minMahalanobisDistToDrop = 0) = 0;
68 const CPose3D& newReferenceBase) = 0;
87 const bool compute_df_du =
true);
112 template <
class OPENGL_SETOFOBJECTSPTR>
115 using SETOFOBJECTS =
typename OPENGL_SETOFOBJECTSPTR::element_type;
123 template <
class OPENGL_SETOFOBJECTSPTR>
126 using SETOFOBJECTS =
typename OPENGL_SETOFOBJECTSPTR::element_type;
static constexpr bool is_3D()
OPENGL_SETOFOBJECTSPTR getAs3DObject() const
Returns a 3D representation of this PDF.
static constexpr bool is_PDF()
virtual void changeCoordinatesReference(const CPose3D &newReferenceBase)=0
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
virtual void copyFrom(const CPosePDF &o)=0
Copy operator, translating if necesary (for example, between particles and gaussian representations) ...
Declares a class that represents a probability density function (pdf) of a 2D pose (x...
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
CSetOfObjects::Ptr posePDF2opengl(const POSE_PDF &o)
Returns a representation of a the PDF - this is just an auxiliary function, it's more natural to call...
virtual void inverse(CPosePDF &o) const =0
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
static void jacobiansPoseComposition(const CPose2D &x, const CPose2D &u, mrpt::math::CMatrixDouble33 &df_dx, mrpt::math::CMatrixDouble33 &df_du, const bool compute_df_dx=true, const bool compute_df_du=true)
This static method computes the pose composition Jacobians, with these formulas:
The virtual base class which provides a unified interface for all persistent objects in MRPT...
void getAs3DObject(OPENGL_SETOFOBJECTSPTR &out_obj) const
Returns a 3D representation of this PDF (it doesn't clear the current contents of out_obj...
virtual void bayesianFusion(const CPosePDF &p1, const CPosePDF &p2, const 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 mixtured!)
A generic template for probability density distributions (PDFs).