Common statistical structures and algorithms for control systems.
This group mostly contains classes relevant to the probabilistics of mobile robot slam. Include the following at the top of any translation unit that requires the ecl probabilistic tools.
Include the following at the top of any translation unit which requires this library: @code #include <ecl/statistics.hpp> // Statistics Classes using ecl::CovarianceEllipsoid; using ecl::CovarianceEllipsoid2f; // also 2d, 3f, 3d typedef variants @endcode You will also need to link to <i>-lecl_statistics</i>.
mplemented by the template class CovarianceEllipsoid
- this takes two template parameters. The first is the float type used (usually float
/double
) and the second, the dimension of the ellipsoid to be determined.
Specialisations are enabled for 2 and 3 dimensional types only as we haven't had a need to develop a general implementation.
== Typedefs ==
Typedefs exist for the template class in the eigen style:
{{{ #!cplusplus using ecl::CovarianceEllipsoid2f; using ecl::CovarianceEllipsoid2d; using ecl::CovarianceEllipsoid3f; using ecl::CovarianceEllipsoid3d; }}}
== Usage ==
You typically feed the covariance ellipsoid with a positive definite symmetric matrix (eigen matrix). Take care entering the positive definite symmetric matrix - the class does not yet do checking to make sure it is positive definite symmetric.
You can either input the matrix via the constructor - in which case it will automatically calculate the ellipsoid properties, or pass it in later via the compute()
method:
The 3d version is similar, but will only calculate intercepts and axes respectively. Note that the axes are sorted (to ensure a right-handed co-ordinate system) and normalised.
- src/test/covariance_ellipsoids.cpp
- <b>Jan 10</b> : 3d ellipses via the ecl::CovarianceEllipsoid<double,3> solver. - <b>Nov 09</b> : 2d ellipses via the ecl::CovarianceEllipsoid<double,2> solver.