Eigen使用过程中的积累

这篇博客详细介绍了如何在Eigen库中进行旋转矩阵与四元数之间的转换。首先,通过矩阵创建四元数,然后利用四元数得到旋转矩阵。此外,还展示了如何进行矩阵拼接,构建Isometry3d类型,并进行了数据类型的强制转换。内容涵盖了矩阵运算和三维坐标变换的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

旋转矩阵和四元数互转

//转四元数
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>();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值