34 m_fastdraw_gauss_Z3(),
35 m_fastdraw_gauss_Z6(),
36 m_fastdraw_gauss_M_2D(),
37 m_fastdraw_gauss_M_3D()
63 if (
this == &o)
return *
this;
95 if (
this == &o)
return *
this;
153 D = D.array().sqrt().matrix();
198 D = D.array().sqrt().matrix();
241 else THROW_EXCEPTION(
"No associated pdf: setPosePDF must be called first.");
258 p.setFromValues(
q.x(),
q.y(),0,
q.phi(),0,0);
264 else THROW_EXCEPTION(
"No associated pdf: setPosePDF must be called first.");
287 for (
size_t i=0;i<3;i++)
290 for (
size_t d=0;d<3;d++)
338 for (
size_t i=0;i<6;i++)
341 for (
size_t d=0;d<6;d++)
#define IS_CLASS(ptrObj, class_name)
Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is of t...
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle.
const double & phi() const
Get the phi angle of the 2D pose (in radians)
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
double pitch() const
Get the PITCH angle (in radians)
double roll() const
Get the ROLL angle (in radians)
double yaw() const
Get the YAW angle (in radians)
Declares a class that represents a Probability Density function (PDF) of a 3D pose .
CPose3D mean
The mean value.
void copyFrom(const CPose3DPDF &o) MRPT_OVERRIDE
Copy operator, translating if necesary (for example, between particles and gaussian representations)
mrpt::math::CMatrixDouble66 cov
The 6x6 covariance matrix.
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually).
virtual const mrpt::utils::TRuntimeClassId * GetRuntimeClass() const
Returns information about the class of an object in runtime.
Declares a class that represents a Probability Density function (PDF) of a 3D pose.
void drawSingleSample(CPose3D &outPart) const MRPT_OVERRIDE
Draws a single sample from the distribution (WARNING: weights are assumed to be normalized!...
Declares a class that represents a Probability Density function (PDF) of a 3D(6D) pose .
double x() const
Common members of all points & poses classes.
Declares a class that represents a Probability Density function (PDF) of a 2D pose .
CPose2D mean
The mean value.
mrpt::math::CMatrixDouble33 cov
The 3x3 covariance matrix.
void copyFrom(const CPosePDF &o) MRPT_OVERRIDE
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,...
virtual const mrpt::utils::TRuntimeClassId * GetRuntimeClass() const
Returns information about the class of an object in runtime.
Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x,...
void drawSingleSample(CPose2D &outPart) const MRPT_OVERRIDE
Draws a single sample from the distribution (WARNING: weights are assumed to be normalized!...
Declares a class that represents a Probability Density function (PDF) of a 2D pose .
An efficient generator of random samples drawn from a given 2D (CPosePDF) or 3D (CPose3DPDF) pose pro...
CPose3D & getSamplingMean3D(CPose3D &out_mean) const
If the object has been loaded with setPosePDF this method returns the 3D pose mean samples will be dr...
void do_sample_2D(CPose2D &p) const
Used internally: sample from m_pdf2D.
CPosePDF * m_pdf2D
A local copy of the PDF.
CPose2D & getSamplingMean2D(CPose2D &out_mean) const
If the object has been loaded with setPosePDF this method returns the 2D pose mean samples will be dr...
CPose3DPDF * m_pdf3D
A local copy of the PDF.
CPose2D m_fastdraw_gauss_M_2D
void getOriginalPDFCov3D(mrpt::math::CMatrixDouble66 &cov6x6) const
Retrieves the 6x6 covariance of the original PDF in .
mrpt::math::CMatrixDouble33 m_fastdraw_gauss_Z3
~CPoseRandomSampler()
Dtor.
CPose3D m_fastdraw_gauss_M_3D
void getOriginalPDFCov2D(mrpt::math::CMatrixDouble33 &cov3x3) const
Retrieves the 3x3 covariance of the original PDF in .
void do_sample_3D(CPose3D &p) const
Used internally: sample from m_pdf3D.
mrpt::math::CMatrixDouble66 m_fastdraw_gauss_Z6
void clear()
Clear internal pdf.
CPose2D & drawSample(CPose2D &p) const
Generate a new sample from the selected PDF.
void setPosePDF(const CPosePDF *pdf)
This method must be called to select the PDF from which to draw samples.
CPoseRandomSampler()
Ctor.
CPoseRandomSampler & operator=(const CPoseRandomSampler &o)
bool isPrepared() const
Return true if samples can be generated, which only requires a previous call to setPosePDF.
double drawGaussian1D_normalized(double *likelihood=NULL)
Generate a normalized (mean=0, std=1) normally distributed sample.
virtual CObject * duplicate() const =0
Returns a copy of the object, indepently of its class.
void getCovariance(mrpt::math::CMatrixDouble &cov) const
Returns the estimate of the covariance matrix (STATE_LEN x STATE_LEN covariance matrix)
GLdouble GLdouble GLdouble GLdouble q
#define THROW_EXCEPTION(msg)
#define THROW_EXCEPTION_FMT(_FORMAT_STRING,...)
This base provides a set of functions for maths stuff.
Eigen::Matrix< typename MATRIX::Scalar, MATRIX::ColsAtCompileTime, MATRIX::ColsAtCompileTime > cov(const MATRIX &v)
Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample,...
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
A namespace of pseudo-random numbers genrators of diferent distributions.
BASE_IMPEXP CRandomGenerator randomGenerator
A static instance of a CRandomGenerator class, for use in single-thread applications.
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values,...
void delete_safe(T *&ptr)
Calls "delete" to free an object only if the pointer is not NULL, then set the pointer to NULL.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.