class mrpt::viz::CEllipsoidInverseDepth2D

Overview

An especial “ellipsoid” in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw) 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”).

This parameterization is a 2D version of that presented in 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 4 and a 4x4 covariance matrix, set with setCovMatrixAndMean().

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

mrpt::viz::CEllipsoidInverseDepth2D
#include <mrpt/viz/CEllipsoidInverseDepth2D.h>

class CEllipsoidInverseDepth2D: public mrpt::viz::CGeneralizedEllipsoidTemplate
{
public:
    // typedefs

    typedef std::shared_ptr<mrpt::viz ::CEllipsoidInverseDepth2D> Ptr;
    typedef std::shared_ptr<const mrpt::viz ::CEllipsoidInverseDepth2D> ConstPtr;
    typedef std::unique_ptr<mrpt::viz ::CEllipsoidInverseDepth2D> UniquePtr;
    typedef std::unique_ptr<const mrpt::viz ::CEllipsoidInverseDepth2D> ConstUniquePtr;

    // fields

    static constexpr const char* className = "mrpt::viz" "::" "CEllipsoidInverseDepth2D";

    // construction

    CEllipsoidInverseDepth2D();

    // methods

    static constexpr auto getClassName();
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    static std::shared_ptr<CObject> CreateObject();

    template <typename... Args>
    static Ptr Create(Args&&... args);

    template <typename Alloc, typename... Args>
    static Ptr CreateAlloc(
        const Alloc& alloc,
        Args&&... args
        );

    template <typename... Args>
    static UniquePtr CreateUnique(Args&&... args);

    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    virtual mrpt::rtti::CObject* clone() const;
    void setUnderflowMaxRange(const double maxRange);
    double getUnderflowMaxRange() const;
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<CObject> Ptr;
    typedef std::shared_ptr<const CObject> ConstPtr;
    typedef std::shared_ptr<CSerializable> Ptr;
    typedef std::shared_ptr<const CSerializable> ConstPtr;
    typedef std::shared_ptr<CVisualObject> Ptr;
    typedef std::shared_ptr<const CVisualObject> ConstPtr;
    typedef std::unique_ptr<CObject> UniquePtr;
    typedef std::unique_ptr<const CObject> ConstUniquePtr;

    // structs

    struct PoseAndScale;
    struct State;

    // methods

    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
    const auto& shaderLinesVertexPointBuffer() const;
    const auto& shaderLinesVertexColorBuffer() const;
    auto& shaderLinesBufferMutex() const;
    void setLineWidth(float w);
    float getLineWidth() const;
    void enableAntiAliasing(bool enable = true);
    bool isAntiAliasingEnabled() const;
    const auto& shaderTrianglesBuffer() const;
    auto& shaderTrianglesBufferMutex() const;
    static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
    PoseAndScale getPoseAndScale() const;
    virtual CVisualObject& setColor_u8(const mrpt::img::TColor& c);
    bool isLightEnabled() const;
    void enableLight(bool enable = true);
    TCullFace cullFaces() const;
    void notifyBBoxChange() const;
    auto getBoundingBoxLocalf() const;
    virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;

Typedefs

typedef std::shared_ptr<mrpt::viz ::CEllipsoidInverseDepth2D> Ptr

A type for the associated smart pointer.

Methods

virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const

Returns information about the class of an object in runtime.

virtual mrpt::rtti::CObject* clone() const

Returns a deep copy (clone) of the object, indepently of its class.

void setUnderflowMaxRange(const double maxRange)

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