8 #ifndef __SOT_MATRIX_GEOMETRY_H__ 9 #define __SOT_MATRIX_GEOMETRY_H__ 16 #include <Eigen/Geometry> 19 #define MRAWDATA(x) x.data() 28 #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \ 30 typedef Eigen::Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix; \ 32 typedef Eigen::Matrix<Type, Size, 1> Vector##SizeSuffix##TypeSuffix; \ 34 typedef Eigen::Matrix<Type, 1, Size> RowVector##SizeSuffix##TypeSuffix; 36 #define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \ 38 typedef Eigen::Matrix<Type, Size, Eigen::Dynamic> \ 39 Matrix##Size##X##TypeSuffix; \ 41 typedef Eigen::Matrix<Type, Eigen::Dynamic, Size> Matrix##X##Size##TypeSuffix; 43 #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \ 44 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \ 45 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 5, 5) \ 46 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 6, 6) \ 47 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 7, 7) \ 48 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 1) \ 49 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 5) \ 50 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 6) \ 51 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 7) 59 #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES 60 #undef EIGEN_MAKE_TYPEDEFS 62 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
89 Eigen::Vector3d _t = MH.translation();
90 MatrixRotation
R(MH.linear());
92 Tx << 0, -_t(2), _t(1), _t(2), 0, -_t(0), -_t(1), _t(0), 0;
96 MT.block<3, 3>(0, 0) = R;
97 MT.block<3, 3>(0, 3) = sk;
99 MT.block<3, 3>(3, 3) = R;
Eigen::Transform< double, 3, Eigen::Affine > SOT_CORE_EXPORT MatrixHomogeneous
const Eigen::Ref< const Eigen::VectorXd > & ConstRefVector
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixRXd
Eigen::Quaternion< double > SOT_CORE_EXPORT VectorQuaternion
const Eigen::Map< const Eigen::VectorXd > const_SigVectorXd
Eigen::Map< Eigen::VectorXd > SigVectorXd
void buildFrom(const MatrixHomogeneous &MH, MatrixTwist &MT)
const Eigen::Ref< const Eigen::MatrixXd > ConstRefMatrix
Eigen::Vector3d SOT_CORE_EXPORT VectorRollPitchYaw
Eigen::Map< MatrixRXd > SigMatrixXd
Eigen::AngleAxis< double > SOT_CORE_EXPORT VectorUTheta
Eigen::Matrix< double, 6, 6 > SOT_CORE_EXPORT MatrixTwist
Eigen::Vector3d SOT_CORE_EXPORT VectorRotation
Eigen::Ref< Eigen::MatrixXd > RefMatrix
Eigen::Quaternion< double > SOT_CORE_EXPORT Quaternion
Eigen::Matrix< double, 3, 3 > SOT_CORE_EXPORT MatrixRotation
Eigen::Matrix< double, 7, 1 > SOT_CORE_EXPORT Vector7
void setZero(std::vector< MatType, Eigen::aligned_allocator< MatType > > &Ms)
Eigen::Ref< Eigen::VectorXd > RefVector
const Eigen::Map< const MatrixRXd > const_SigMatrixXd
Eigen::Map< Quaternion > SOT_CORE_EXPORT QuaternionMap
Eigen::Matrix< double, 6, 6 > SOT_CORE_EXPORT MatrixForce
#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix)