class mrpt::opengl::CEllipsoidInverseDepth3D

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.

#include <mrpt/opengl/CEllipsoidInverseDepth3D.h>

class CEllipsoidInverseDepth3D:
    public mrpt::opengl::CGeneralizedEllipsoidTemplate,
    public mrpt::opengl::CRenderizable
{
public:
    //
methods

    void setUnderflowMaxRange(const float maxRange);
    float getUnderflowMaxRange() const;
};

Inherited Members

public:
    // structs

    struct RenderContext;

    //
methods

    virtual void render(const RenderContext& rc) const = 0;
    virtual void renderUpdateBuffers() const = 0;
    virtual shader_list_t requiredShaders() const;
    virtual void getBoundingBox(mrpt::math::TPoint3D& bb_min, mrpt::math::TPoint3D& bb_max) const = 0;
    virtual void freeOpenGLResources() = 0;
    virtual void onUpdateBuffers_Triangles() = 0;
    virtual void onUpdateBuffers_Wireframe() = 0;

Methods

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)