Eigne Matrix Class Library
Dependents: Eigen_test Odometry_test AttitudeEstimation_usingTicker MPU9250_Quaternion_Binary_Serial ... more
Geometry module
This module provides support for:
- fixed-size homogeneous transformations
- translation, scaling, 2D and 3D rotations
- quaternions
- cross product
- orthognal vector generation
- some linear components: parametrized-lines and hyperplanes.
Data Structures | |
class | Map< const Quaternion< _Scalar >, _Options > |
Quaternion expression mapping a constant memory buffer. More... | |
class | Map< Quaternion< _Scalar >, _Options > |
Expression of a quaternion from a memory buffer. More... | |
class | AlignedBox< _Scalar, _AmbientDim > |
More... | |
class | AngleAxis< _Scalar > |
More... | |
class | Homogeneous< MatrixType, _Direction > |
More... | |
class | Hyperplane< _Scalar, _AmbientDim, _Options > |
More... | |
class | ParametrizedLine< _Scalar, _AmbientDim, _Options > |
More... | |
class | QuaternionBase< Derived > |
More... | |
class | Quaternion< _Scalar, _Options > |
More... | |
class | Rotation2D< _Scalar > |
More... | |
class | Scaling |
More... | |
class | Transform< _Scalar, _Dim, _Mode, _Options > |
More... | |
class | Translation< _Scalar, _Dim > |
More... | |
Modules | |
Global aligned box typedefs | |
Eigen defines several typedef shortcuts for most common aligned box types. | |
Typedefs | |
typedef AngleAxis< float > | AngleAxisf |
single precision angle-axis type | |
typedef AngleAxis< double > | AngleAxisd |
double precision angle-axis type | |
typedef Quaternion< float > | Quaternionf |
single precision quaternion type | |
typedef Quaternion< double > | Quaterniond |
double precision quaternion type | |
typedef Map< Quaternion< float >, 0 > | QuaternionMapf |
Map an unaligned array of single precision scalars as a quaternion. | |
typedef Map< Quaternion < double >, 0 > | QuaternionMapd |
Map an unaligned array of double precision scalars as a quaternion. | |
typedef Map< Quaternion< float > , Aligned > | QuaternionMapAlignedf |
Map a 16-byte aligned array of single precision scalars as a quaternion. | |
typedef Map< Quaternion < double >, Aligned > | QuaternionMapAlignedd |
Map a 16-byte aligned array of double precision scalars as a quaternion. | |
typedef Rotation2D< float > | Rotation2Df |
single precision 2D rotation type | |
typedef Rotation2D< double > | Rotation2Dd |
double precision 2D rotation type | |
typedef DiagonalMatrix< float, 2 > | AlignedScaling2f |
typedef DiagonalMatrix< double, 2 > | AlignedScaling2d |
typedef DiagonalMatrix< float, 3 > | AlignedScaling3f |
typedef DiagonalMatrix< double, 3 > | AlignedScaling3d |
Functions | |
template<typename Derived , typename OtherDerived > | |
internal::umeyama_transform_matrix_type < Derived, OtherDerived > ::type | umeyama (const MatrixBase< Derived > &src, const MatrixBase< OtherDerived > &dst, bool with_scaling=true) |
| |
Matrix< Scalar, 3, 1 > | eulerAngles (Index a0, Index a1, Index a2) const |
|
Detailed Description
This module provides support for:
- fixed-size homogeneous transformations
- translation, scaling, 2D and 3D rotations
- quaternions
- cross product
- orthognal vector generation
- some linear components: parametrized-lines and hyperplanes.
#include <Eigen/Geometry>
Typedef Documentation
typedef AngleAxis<double> AngleAxisd |
double precision angle-axis type
Definition at line 156 of file AngleAxis.h.
typedef AngleAxis<float> AngleAxisf |
single precision angle-axis type
Definition at line 153 of file AngleAxis.h.
typedef Quaternion<double> Quaterniond |
double precision quaternion type
Definition at line 298 of file Quaternion.h.
typedef Quaternion<float> Quaternionf |
single precision quaternion type
Definition at line 295 of file Quaternion.h.
typedef Map<Quaternion<double>, Aligned> QuaternionMapAlignedd |
Map a 16-byte aligned array of double precision scalars as a quaternion.
Definition at line 410 of file Quaternion.h.
typedef Map<Quaternion<float>, Aligned> QuaternionMapAlignedf |
Map a 16-byte aligned array of single precision scalars as a quaternion.
Definition at line 407 of file Quaternion.h.
typedef Map<Quaternion<double>, 0> QuaternionMapd |
Map an unaligned array of double precision scalars as a quaternion.
Definition at line 404 of file Quaternion.h.
typedef Map<Quaternion<float>, 0> QuaternionMapf |
Map an unaligned array of single precision scalars as a quaternion.
Definition at line 401 of file Quaternion.h.
typedef Rotation2D<double> Rotation2Dd |
double precision 2D rotation type
Definition at line 129 of file Rotation2D.h.
typedef Rotation2D<float> Rotation2Df |
single precision 2D rotation type
Definition at line 126 of file Rotation2D.h.
Function Documentation
Matrix< typename MatrixBase< Derived >::Scalar, 3, 1 > eulerAngles | ( | Index | a0, |
Index | a1, | ||
Index | a2 | ||
) | const [inherited] |
- Returns:
- the Euler-angles of the rotation matrix
*this
using the convention defined by the triplet (a0,a1,a2)
Each of the three parameters a0,a1,a2 represents the respective rotation axis as an integer in {0,1,2}. For instance, in:
Vector3f ea = mat.eulerAngles(2, 0, 2);
"2" represents the z axis and "0" the x axis, etc. The returned angles are such that we have the following equality:
mat == AngleAxisf(ea[0], Vector3f::UnitZ()) * AngleAxisf(ea[1], Vector3f::UnitX()) * AngleAxisf(ea[2], Vector3f::UnitZ());
This corresponds to the right-multiply conventions (with right hand side frames).
The returned angles are in the ranges [0:pi]x[-pi:pi]x[-pi:pi].
- See also:
- class AngleAxis
Definition at line 37 of file EulerAngles.h.
internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type Eigen::umeyama | ( | const MatrixBase< Derived > & | src, |
const MatrixBase< OtherDerived > & | dst, | ||
bool | with_scaling = true |
||
) |
Returns the transformation between two point sets.
The algorithm is based on: "Least-squares estimation of transformation parameters between two point patterns", Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
It estimates parameters and such that
is minimized.
The algorithm is based on the analysis of the covariance matrix of the input point sets and where is corresponding to the dimension (which is typically small). The analysis is involving the SVD having a complexity of though the actual computational effort lies in the covariance matrix computation which has an asymptotic lower bound of when the input point sets have dimension .
Currently the method is working only for floating point matrices.
- Parameters:
-
src Source points . dst Destination points . with_scaling Sets when false
is passed.
- Returns:
- The homogeneous transformation
Generated on Tue Jul 12 2022 17:47:02 by 1.7.2