Go to the documentation of this file.
57 o <<
"Mean: " << mode.
mean << std::endl
58 <<
"Covariance: " << std::endl
59 << mode.
cov << std::endl
60 <<
"Log-weight: " << mode.
log_w << std::endl;
125 void resize(
const size_t N);
186 std::vector<mrpt::math::CVectorDouble>& outSamples)
const override;
205 double x_min,
double x_max,
double y_min,
double y_max,
207 bool sumOverAllPhis =
false);
214 const double minMahalanobisDistToDrop = 0)
override;
void drawManySamples(size_t N, std::vector< mrpt::math::CVectorDouble > &outSamples) const override
Draws a number of samples from the distribution, and saves as a list of 1x3 vectors,...
CMatrixDouble cov(const MATRIX &v)
Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample,...
void clear()
Clear the list of modes.
friend std::ostream & operator<<(std::ostream &o, const TGaussianMode &mode)
CPosePDFSOG(size_t nModes=1)
Default constructor.
void getMostLikelyCovarianceAndMean(mrpt::math::CMatrixDouble33 &cov, CPose2D &mean_point) const
For the most likely Gaussian mode in the SOG, returns the pose covariance matrix (3x3 cov matrix) and...
void inverse(CPosePDF &o) const override
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.
const_iterator end() const
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
const TGaussianMode & get(size_t i) const
Access to individual beacons.
TGaussianMode & get(size_t i)
Access to individual beacons.
void operator+=(const mrpt::poses::CPose2D &Ap)
Makes: thisPDF = thisPDF + Ap, where "+" is pose composition (both the mean, and the covariance matri...
TGaussianMode & operator[](size_t i)
Access to individual beacons.
void push_back(const TGaussianMode &m)
Inserts a copy of the given mode into the SOG.
void bayesianFusion(const CPosePDF &p1, const CPosePDF &p2, const double minMahalanobisDistToDrop=0) override
Bayesian fusion of two pose distributions, then save the result in this object (WARNING: Currently p1...
void drawSingleSample(CPose2D &outPart) const override
Draws a single sample from the distribution.
iterator erase(iterator i)
#define ASSERT_(f)
Defines an assertion mechanism.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
The struct for each mode:
void evaluatePDFInArea(double x_min, double x_max, double y_min, double y_max, double resolutionXY, double phi, mrpt::math::CMatrixDouble &outMatrix, bool sumOverAllPhis=false)
Evaluates the PDF within a rectangular grid (and a fixed orientation) and saves the result in a matri...
const TGaussianMode & operator[](size_t i) const
Access to individual beacons.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle.
bool saveToTextFile(const std::string &file) const override
Save the density to a text file, with the following format: There is one row per Gaussian "mode",...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
CListGaussianModes m_modes
The list of SOG modes.
std::tuple< cov_mat_t, type_value > getCovarianceAndMean() const override
const CListGaussianModes & getSOGModes() const
void changeCoordinatesReference(const CPose3D &newReferenceBase) override
this = p (+) this.
const_iterator begin() const
double evaluateNormalizedPDF(const mrpt::poses::CPose2D &x) const
Evaluates the ratio PDF(x) / max_PDF(x*), that is, the normalized PDF in the range [0,...
CListGaussianModes::iterator iterator
std::vector< TGaussianMode > CListGaussianModes
void rotateAllCovariances(double ang)
Rotate all the covariance matrixes by replacing them by , where .
mrpt::math::CMatrixDouble33 cov
Declares a class that represents a probability density function (pdf) of a 2D pose (x,...
void resize(const size_t N)
Resize the number of SOG modes.
size_t size() const
Return the number of Gaussian modes.
void mergeModes(double max_KLd=0.5, bool verbose=false)
Merge very close modes so the overall number of modes is reduced while preserving the total distribut...
void enforceCovSymmetry()
Ensures the symmetry of the covariance matrix (eventually certain operations in the math-coprocessor ...
double evaluatePDF(const mrpt::poses::CPose2D &x, bool sumOverAllPhis=false) const
Evaluates the PDF at a given point.
void copyFrom(const CPosePDF &o) override
Copy operator, translating if necesary (for example, between particles and gaussian representations)
bool empty() const
Return whether there is any Gaussian mode.
void normalizeWeights()
Normalize the weights in m_modes such as the maximum log-weight is 0.
void getMean(CPose2D &mean_pose) const override
Declares a class that represents a Probability Density function (PDF) of a 2D pose .
CListGaussianModes::const_iterator const_iterator
double log_w
The log-weight.
Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Sun Jul 19 17:54:30 UTC 2020 | |