概述
旋转矩阵和四元数互转
//转四元数
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>();
最后
以上就是忧心白开水为你收集整理的Eigen使用过程中的积累旋转矩阵和四元数互转的全部内容,希望文章能够帮你解决Eigen使用过程中的积累旋转矩阵和四元数互转所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复