【问题标题】:Difference Between Combining Quaternion Rotations and Rotation Matrices组合四元数旋转和旋转矩阵之间的区别
【发布时间】:2015-05-12 16:34:31
【问题描述】:

将两个四元数旋转组合的结果是否与两个矩阵的旋转结果相同,然后将其转换为四元数?

我有一个四元数 (q1) 和旋转矩阵 (m2) 作为函数的输入(不幸的是,这是不可协商的),并希望通过矩阵旋转初始四元数,从而产生一个新的四元数。我已经尝试了几种方法,但结果有点奇怪。

如果我将 q1 转换为矩阵 (m1),计算 m2.m1 并将结果转换为四元数,我得到可能的四元数结果。但是,如果我使用完全相同的函数将 m2 转换为四元数并将它们相乘(在两个顺序中,我知道它是不可交换的),我会得到完全不同的东西。我想实现四元数组合,以便我最终可以从当前四元数到结果的SLERP。

所有函数都来自这里:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm,并且正在用 c++ 和 mathematica 实现以进行测试

【问题讨论】:

    标签: matrix rotation quaternions


    【解决方案1】:

    3x3 旋转矩阵和单位四分位数之间存在精确对应关系,直至四分位数的符号发生变化(在对 3D 向量执行旋转时,该符号无关紧要)。

    这意味着给定两个四元数,q1q2,以及它们对应的矩阵,m1m2,四元数对向量 v 的作用与v上的矩阵:

    q2*(q1*v*(q1^-1))*(q2^-1) = m2*m1*v
    

    如果您的程序无法使用任意向量v 实现此结果,则您的公式中的某处可能存在错误。

    【讨论】:

    • 非常感谢克里斯。该方程实际上对测试我的功能非常有帮助。我认为我的问题稍微更根本(取决于我的矩阵的手性),但这非常有助于我发现这一点。再次感谢。
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2019-02-10
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2012-08-16
    • 2016-07-18
    相关资源
    最近更新 更多