我是靠谱客的博主 忧心白开水,最近开发中收集的这篇文章主要介绍Eigen使用过程中的积累旋转矩阵和四元数互转,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

旋转矩阵和四元数互转

//转四元数
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使用过程中的积累旋转矩阵和四元数互转所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部