Class CEllipsoidInverseDepth3D

Inheritance Relationships

Base Types

Class Documentation

class CEllipsoidInverseDepth3D : public mrpt::viz::CGeneralizedEllipsoidTemplate<3>, public virtual mrpt::viz::CVisualObject

An especial “ellipsoid” in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw,pitch) variable. The parameter space of this ellipsoid comprises these variables (in this order):

  • inv_range: The inverse distance from the sensor to the feature.

  • yaw: Angle for the rotation around +Z (“azimuth”).

  • pitch: Angle for the rotation around +Y (“elevation”). Positive means pointing below the XY plane.

This parameterization is based on the paper:

  • Civera, J. and Davison, A.J. and Montiel, J., “Inverse depth

    parametrization for monocular SLAM”, T-RO, 2008.

This class expects you to provide a mean vector of length 3 and a 3x3 covariance matrix, set with setCovMatrixAndMean().

Please read the documentation of CGeneralizedEllipsoidTemplate::setQuantiles() for learning the mathematical details about setting the desired confidence interval.

../../output_staging/generated/doxygen/xml/preview_CEllipsoidInverseDepth3D.png

Public Functions

inline void setUnderflowMaxRange(const float maxRange)

The maximum range to be used as a correction when a point of the ellipsoid falls in the negative ranges (default: 1e6)

inline float getUnderflowMaxRange() const
CEllipsoidInverseDepth3D() = default

Constructor

~CEllipsoidInverseDepth3D() override = default

Private, virtual destructor: only can be deleted from smart pointers

Protected Functions

void transformFromParameterSpace(const std::vector<BASE::array_parameter_t> &in_pts, std::vector<BASE::array_point_t> &out_pts) const override

To be implemented by derived classes: maps, using some arbitrary space transformation, a list of points defining an ellipsoid in parameter space into their corresponding points in 2D/3D space.