Go to the documentation of this file.
38 :
mean(init_Mean),
cov(init_Cov)
72 if (
this == &o)
return;
102 const CPose3D& newReferenceBase)
112 cov = M *
cov * M.transpose();
134 const Eigen::Vector2d x1{p1.
mean.
x(), p1.
mean.
y()};
135 const Eigen::Vector2d x2{p2.
mean.
x(), p2.
mean.
y()};
138 mean.
x(
x.get_unsafe(0, 0));
139 mean.
y(
x.get_unsafe(1, 0));
163 MU.get_unsafe(0, 0) =
mean.
x() -
p.mean.x();
164 MU.get_unsafe(1, 0) =
mean.
y() -
p.mean.y();
167 exp(-0.5 * MU.multiply_HtCH_scalar(C_inv));
194 outSample.
x(
mean.
x() + vec[0]);
195 outSample.
y(
mean.
y() + vec[1]);
205 const double minMahalanobisDistToDrop)
226 Eigen::Matrix<double, 2, 1> deltaX;
232 deltaX.multiply_HtCH_scalar((other.
cov + this->cov).inverse()));
237 const double x,
const double y)
const
240 Eigen::Matrix<double, 2, 1> deltaX;
245 return std::sqrt(deltaX.multiply_HtCH_scalar(this->cov.inverse()));
virtual void getCovarianceAndMean(mrpt::math::CMatrixFixedNumeric< double, STATE_LEN, STATE_LEN > &cov, TDATA &mean_point) const =0
Returns an estimate of the pose covariance matrix (STATE_LENxSTATE_LEN cov matrix) and the mean,...
int void fclose(FILE *f)
An OS-independent version of fclose.
double productIntegralNormalizedWith(const CPoint2DPDFGaussian &p) const
Computes the "correspondence likelihood" of this PDF with another one: This is implemented as the int...
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
#define MRPT_UNUSED_PARAM(a)
Determines whether this is an X86 or AMD64 platform.
void drawSingleSample(CPoint2D &outSample) const override
Draw a sample from the pdf.
void getRotationMatrix(mrpt::math::CMatrixDouble33 &ROT) const
Get the 3x3 rotation matrix.
#define THROW_EXCEPTION(msg)
#define ASSERT_(f)
Defines an assertion mechanism.
T square(const T x)
Inline function for the square of a number.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
virtual const mrpt::rtti::TRuntimeClassId * GetRuntimeClass() const override
Returns information about the class of an object in runtime.
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,...
Virtual base class for "archives": classes abstracting I/O streams.
void copyFrom(const CPoint2DPDF &o) override
Copy operator, translating if necesary (for example, between particles and gaussian representations)
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive.
CPoint2DPDFGaussian()
Default constructor.
double mahalanobisDistanceTo(const CPoint2DPDFGaussian &other) const
Returns the Mahalanobis distance from this PDF to another PDF, that is, it's evaluation at (0,...
double x() const
Common members of all points & poses classes.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
mrpt::math::CMatrixDouble22 cov
The 2x2 covariance matrix.
static const size_t state_length
The length of the variable, for example, 3 for a 3D point, 6 for a 3D pose (x y z yaw pitch roll).
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object.
CPoint2D mean
The mean value.
A gaussian distribution for 2D points.
void changeCoordinatesReference(const CPose3D &newReferenceBase) override
this = p (+) this.
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files.
void drawGaussianMultivariate(std::vector< T > &out_result, const MATRIX &cov, const std::vector< T > *mean=nullptr)
Generate multidimensional random samples according to a given covariance matrix.
A numeric matrix of compile-time fixed size.
void bayesianFusion(const CPoint2DPDFGaussian &p1, const CPoint2DPDFGaussian &p2)
Bayesian fusion of two points gauss.
int fprintf(FILE *fil, const char *format,...) noexcept MRPT_printf_format_check(2
An OS-independent version of fprintf.
#define CLASS_ID(T)
Access to runtime class ID for a defined class name.
CRandomGenerator & getRandomGenerator()
A static instance of a CRandomGenerator class, for use in single-thread applications.
EIGEN_STRONG_INLINE double mean() const
Computes the mean of the entire matrix.
double mahalanobisDistanceToPoint(const double x, const double y) const
Returns the Mahalanobis distance from this PDF to some point.
This base provides a set of functions for maths stuff.
FILE * fopen(const char *fileName, const char *mode) noexcept
An OS-independent version of fopen.
GLsizei const GLchar ** string
A namespace of pseudo-random numbers generators of diferent distributions.
Declares a class that represents a Probability Distribution function (PDF) of a 2D point (x,...
A class used to store a 2D point.
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
double productIntegralWith(const CPoint2DPDFGaussian &p) const
Computes the "correspondence likelihood" of this PDF with another one: This is implemented as the int...
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive.
This namespace provides a OS-independent interface to many useful functions: filenames manipulation,...
bool saveToTextFile(const std::string &file) const override
Save PDF's particles to a text file, containing the 2D pose in the first line, then the covariance ma...
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |