gpt4 book ai didi

matrix - Eigen :矩阵到四元数和后面有不同的结果

转载 作者:行者123 更新时间:2023-12-05 04:10:49 26 4
gpt4 key购买 nike

我使用 Eigen 库将矩阵转换为四元数,但是当我将其中一个矩阵转换为四元数并将其烧回时,它变成了另一个矩阵,即单位矩阵。我使用的旋转矩阵是从变换矩阵分解而来的。

    Eigen::Matrix3f R3d = R.topLeftCorner<3,3>();
*Rquat = R3d;

R3d = (*Rquat).normalized().toRotationMatrix();

什么可能导致这个问题? This is the matrix before change to quaternion

This is the matrix when I turn it back form the quaternion

最佳答案

刚刚检查了 Eigen's matrix to quaternion conversion 的实现.它基于 Ken Shoemake 的“四元数微积分和快速动画”。

正如人们在分析源代码时所看到的那样,这假设矩阵确实是一个旋转矩阵(或接近一个)。事实上,所有具有 M.trace()>0 的对称矩阵都会产生(缩放的)恒等四元数。如果您对无效旋转矩阵有任何其他期望,则需要实现您自己的转换方法。

关于matrix - Eigen :矩阵到四元数和后面有不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43896041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com