Go to the documentation of this file.
3 #include <SimoxUtility/math/pose/pose.h>
4 #include <SimoxUtility/math/pose/invert.h>
13 const float minSize = 0.005;
17 const Eigen::EigenSolver<Eigen::Matrix3f> eigen(covarianceTranslation);
18 const Eigen::Vector3f eval = eigen.eigenvalues().real();
22 result.
center = simox::math::position(this->
mean);
34 result.
orientation = evec.determinant() > 0 ? evec : - evec;
39 result.
size = result.
size.cwiseMax(Eigen::Vector3f::Constant(minSize));
49 const float angle = axis.norm();
53 axis = simox::math::orientation(
mean) * axis;
63 covRotation.block<3, 3>(0, 0) = covRotation.block<3, 3>(3, 3) = simox::math::orientation(
transform);
Eigen::Matrix3f orientation
Eigen::Matrix4f mean
The mean (i.e. a pose).
A "gaussian" distribution in pose space (i.e.
Eigen::Matrix< float, 6, 6 > covariance
The covariance matrix.
Eigen::AngleAxisf getScaledRotationAxis(int index, bool global=false) const
Get a column of the pure orientational covariance matrix as axis-angle rotation.
PoseManifoldGaussian getTransformed(const Eigen::Matrix4f &transform) const
Transform this gaussian by the given transform (e.g.
Ellipsoid getPositionEllipsoid() const
Get the parameters of a 3D ellipsoid illustrating this gaussian.
This file is part of ArmarX.
MatrixXX< 3, 3, float > Matrix3f
MatrixXX< 4, 4, float > Matrix4f
auto transform(const Container< InputT, Alloc > &in, OutputT(*func)(InputT const &)) -> Container< OutputT, typename std::allocator_traits< Alloc >::template rebind_alloc< OutputT > >
Convenience function (with less typing) to transform a container of type InputT into the same contain...
double angle(const Point &a, const Point &b, const Point &c)