Class CPose3DQuatPDFGaussianInf
Defined in File CPose3DQuatPDFGaussianInf.h
Inheritance Relationships
Base Type
public mrpt::poses::CPose3DQuatPDF(Class CPose3DQuatPDF)
Class Documentation
-
class CPose3DQuatPDFGaussianInf : public mrpt::poses::CPose3DQuatPDF
Declares a class that represents a Probability Density function (PDF) of a 3D pose using a quaternion \( p(\mathbf{x}) = [x ~ y ~ z ~ qr ~ qx ~ qy ~ qz]^\top \).
This class implements that PDF using a mono-modal Gaussian distribution storing the information matrix instead of its inverse, the covariance matrix. See mrpt::poses::CPose3DQuatPDF for more details, or mrpt::poses::CPose3DPDF for classes based on Euler angles instead.
Uncertainty of pose composition operations ( \( y = x \oplus u \)) is implemented in the methods “CPose3DQuatPDFGaussianInf::operator+=” and “CPose3DQuatPDF::jacobiansPoseComposition”.
See also
CPose3DQuat, CPose3DQuatPDF, CPose3DPDF, CPose3DQuatPDFGaussian
Note
Read also: “A tutorial on SE(3) transformation parameterizations and
on-manifold optimization”, in blanco_se3_tutorial
Public Functions
-
CPose3DQuatPDFGaussianInf()
Default constructor - set all values to zero.
-
CPose3DQuatPDFGaussianInf(mrpt::math::TConstructorFlags_Quaternions constructor_dummy_param)
Constructor which left all the member uninitialized, for using when speed is critical - as argument, use UNINITIALIZED_QUATERNION.
-
explicit CPose3DQuatPDFGaussianInf(const CPose3DQuat &init_Mean)
Constructor from a default mean value, information matrix equals to zero.
-
CPose3DQuatPDFGaussianInf(const CPose3DQuat &init_Mean, const mrpt::math::CMatrixDouble77 &init_CovInv)
Constructor with mean and inverse covariance (information matrix).
-
inline const CPose3DQuat &getPoseMean() const
-
inline CPose3DQuat &getPoseMean()
-
inline void getMean(CPose3DQuat &mean_pose) const override
-
inline bool isInfType() const override
-
inline std::tuple<cov_mat_t, type_value> getCovarianceAndMean() const override
-
inline void getInformationMatrix(mrpt::math::CMatrixDouble77 &inf) const override
Returns the information (inverse covariance) matrix (a STATE_LEN x STATE_LEN matrix)
See also
getMean, getCovarianceAndMean
-
virtual void copyFrom(const CPose3DQuatPDF &o) override
Copy operator, translating if necessary (for example, between particles and gaussian representations)
-
bool saveToTextFile(const std::string &file) const override
Save the PDF to a text file, containing the 3D pose in the first line (x y z qr qx qy qz), then the information matrix in the next 7 lines.
-
void changeCoordinatesReference(const CPose3DQuat &newReferenceBase)
this = p (+) this. This can be used to convert a PDF from local coordinates to global, providing the point (newReferenceBase) from which “to project” the current pdf. Result PDF substituted the currently stored one in the object.
-
virtual void changeCoordinatesReference(const CPose3D &newReferenceBase) override
this = p (+) this. This can be used to convert a PDF from local coordinates to global, providing the point (newReferenceBase) from which “to project” the current pdf. Result PDF substituted the currently stored one in the object.
-
void drawSingleSample(CPose3DQuat &outPart) const override
Draws a single sample from the distribution
-
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 1x7 vectors, where each row contains a (x,y,z,qr,qx,qy,qz) datum
-
virtual void inverse(CPose3DQuatPDF &o) const override
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF
-
inline CPose3DQuatPDFGaussianInf operator-() const
Unary - operator, returns the PDF of the inverse pose.
-
void operator+=(const CPose3DQuat &Ap)
Makes: thisPDF = thisPDF + Ap, where “+” is pose composition (both the mean, and the covariance matrix are updated).
-
void operator+=(const CPose3DQuatPDFGaussianInf &Ap)
Makes: thisPDF = thisPDF + Ap, where “+” is pose composition (both the mean, and the covariance matrix are updated) (see formulas in jacobiansPoseComposition ).
-
void operator-=(const CPose3DQuatPDFGaussianInf &Ap)
Makes: thisPDF = thisPDF - Ap, where “-” is pose inverse composition (both the mean, and the covariance matrix are updated).
-
double evaluatePDF(const CPose3DQuat &x) const
Evaluates the PDF at a given point
-
double evaluateNormalizedPDF(const CPose3DQuat &x) const
Evaluates the ratio PDF(x) / PDF(MEAN), that is, the normalized PDF in the range [0,1]
Public Members
-
CPose3DQuat mean
The mean value
-
mrpt::math::CMatrixDouble77 cov_inv
The 7x7 information matrix (the inverse of the covariance)
-
CPose3DQuatPDFGaussianInf()