旋转矩阵和四元数互转
Eigen::Matrix3d rotationMat;
const Eigen::Quaterniond quat(rotationMat);
Eigen::Matrix3d Matrix_= quat.toRotationMatrix();
矩阵拼接
Eigen::Matrix4d outputMatrix;
Eigen::Matrix4d m4d=Eigen::Matrix4d::Identity();
Eigen::Matrix3d Matrix_= quat.toRotationMatrix();
outputMatrix.topLeftCorner(3, 3) = Matrix_;
outputMatrix.topRightCorner(3, 1) = m4d.topRightCorner(3, 1);
outputMatrix.bottomRightCorner(1, 4) << 0, 0, 0, 1;
Isometry3d类型转换构建
Eigen::Matrix4d CalcoarseMatrix;
Eigen::Isometry3d isometry3dCoarse=Eigen::Isometry3d::Identity();
isometry3dCoarse.rotate(CalcoarseMatrix.block<3,3>(0,0));
isometry3dCoarse.pretranslate(Eigen::Vector3d(CalcoarseMatrix(0,3),CalcoarseMatrix(1,3),CalcoarseMatrix(2,3)));
数据类型强制转换
Eigen::Matrix4f Transformation;
Eigen::Matrix4d Transformationd=Transformation.cast<double>();
|