Public Member Functions | Private Attributes | List of all members
ecl::CovarianceEllipsoid< float, 3 > Class Reference

Specialisation of covariance ellipsoids in three dimensions. More...

#include <covariance_ellipsoid.hpp>

Public Member Functions

const ecl::linear_algebra::Matrix3faxes ()
 Returns the ellipse axes/covariance eigen vectors. More...
 
void compute (const ecl::linear_algebra::Matrix3f &M, const bool sort=true)
 Computes the covariance ellipsoid for the specified matrix. More...
 
 CovarianceEllipsoid ()
 Default constructor, use with compute(). More...
 
 CovarianceEllipsoid (const ecl::linear_algebra::Matrix3f &M, const bool sort=true)
 Automatically generates ellipsoid information at construction. More...
 
const ecl::linear_algebra::Vector3flengths ()
 Returns the precomputed ellipsoid minor/major axis lengths. More...
 
virtual ~CovarianceEllipsoid ()
 

Private Attributes

ecl::linear_algebra::Matrix3f ellipse_axes
 
ecl::linear_algebra::Vector3f ellipse_lengths
 

Detailed Description

Specialisation of covariance ellipsoids in three dimensions.

This creates ellipsoids for 3x3 covariance matrices, i.e. the usual sort for mobile robot navigation. It uses one of the eigen solvers. Currently it seems (we have not checked it thorougly yet) to correlate the order of eigenvalue-eigenvector pairs with the index of the matrix, which is good!

Usage:

This class is also more conveniently typedef'd as CovarianceEllipsoid3f.

You can either instantiate directly through the constructor or by hand via the compute() method. Recomputing is also possible without having to construct an entirely new instance.

CovarianceEllipsoid3f ellipsoid(M); // OR
CovarianceEllipsoid3f ellipsoid_hand;
ellipsoid_hand.compute(M);

Once generated, the ellipse properties can easily be extracted.

Vector3f lengths = ellipsoid.lengths(); // axis lengths.
See also
CovarianceEllipsoid.

Definition at line 223 of file covariance_ellipsoid.hpp.

Constructor & Destructor Documentation

◆ CovarianceEllipsoid() [1/2]

Default constructor, use with compute().

This constructor does not do anything - you must use it together with the compute() function. Sometimes useful when using this class with containers.

Definition at line 236 of file covariance_ellipsoid.cpp.

◆ CovarianceEllipsoid() [2/2]

ecl::CovarianceEllipsoid< float, 3 >::CovarianceEllipsoid ( const ecl::linear_algebra::Matrix3f M,
const bool  sort = true 
)

Automatically generates ellipsoid information at construction.

Using the specified input covariance matrix, this constructor automatically generates (indirectly calls compute()) the full ellipse information, making it instantly ready for use.

Parameters
M: the input covariance matrix (must be symmetric positive definite).
sort: if true, ensure the resulting set is a right-hand configuration.

Definition at line 241 of file covariance_ellipsoid.cpp.

◆ ~CovarianceEllipsoid()

virtual ecl::CovarianceEllipsoid< float, 3 >::~CovarianceEllipsoid ( )
inlinevirtual

Definition at line 245 of file covariance_ellipsoid.hpp.

Member Function Documentation

◆ axes()

const ecl::linear_algebra::Matrix3f& ecl::CovarianceEllipsoid< float, 3 >::axes ( )
inline

Returns the ellipse axes/covariance eigen vectors.

This returns the ellipse axes (aka covariance eigen vectors) as columns of a matrix.

Returns
Matrix2d : the set of eigenvectors as column vectors in a matrix.

Definition at line 278 of file covariance_ellipsoid.hpp.

◆ compute()

void ecl::CovarianceEllipsoid< float, 3 >::compute ( const ecl::linear_algebra::Matrix3f M,
const bool  sort = true 
)

Computes the covariance ellipsoid for the specified matrix.

This can either be called indirectly via the constructor or directly via this function. In either case, it resets the object and generates/computes the resulting ellipse from the specified input covariance matrix. By default it will sort and normalise the resulting eigenvectors so that they form a right handed system. You can turn this off by setting the sort argument to false.

Parameters
M: the input covariance matrix (must be symmetric positive definite).
sort: if true, ensure the resulting set is a right-hand configuration.

Definition at line 244 of file covariance_ellipsoid.cpp.

◆ lengths()

const ecl::linear_algebra::Vector3f& ecl::CovarianceEllipsoid< float, 3 >::lengths ( )
inline

Returns the precomputed ellipsoid minor/major axis lengths.

Returns the precomputed ellipsoid minor/major axis lengths.

Returns
Vector2d : the minor/major axis lengths.

Definition at line 269 of file covariance_ellipsoid.hpp.

Member Data Documentation

◆ ellipse_axes

ecl::linear_algebra::Matrix3f ecl::CovarianceEllipsoid< float, 3 >::ellipse_axes
private

Definition at line 284 of file covariance_ellipsoid.hpp.

◆ ellipse_lengths

ecl::linear_algebra::Vector3f ecl::CovarianceEllipsoid< float, 3 >::ellipse_lengths
private

Definition at line 283 of file covariance_ellipsoid.hpp.


The documentation for this class was generated from the following files:
ecl::CovarianceEllipsoid3f
CovarianceEllipsoid< float, 3 > CovarianceEllipsoid3f
Convenience typedef for 3f covariance ellipsoids.
Definition: covariance_ellipsoid.hpp:534
ecl::CovarianceEllipsoid< float, 3 >::compute
void compute(const ecl::linear_algebra::Matrix3f &M, const bool sort=true)
Computes the covariance ellipsoid for the specified matrix.
Definition: covariance_ellipsoid.cpp:244
ecl::CovarianceEllipsoid< float, 3 >::lengths
const ecl::linear_algebra::Vector3f & lengths()
Returns the precomputed ellipsoid minor/major axis lengths.
Definition: covariance_ellipsoid.hpp:269
Vector3f
Vector3< float > Vector3f


ecl_statistics
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:31