从四元数到旋转矩阵

旋转矩阵和四元数都是描述三维空间中位姿的方式,此文将讨论如何从四元数计算出旋转。

背景介绍

旋转矩阵和四元数之间的变换需要依据以下公式1
公式0: 绕任意轴n旋转θ的旋转矩阵(右手系中情况)
从四元数到旋转矩阵_第1张图片

本文以下的推导和公式都是在左手坐标系下进行。此处公式0来源于知乎某文章,只是为了贴出来与公式1的对比。之后的计算都是基于公式1进行,也都是在左手坐标系下的公式和计算。(感谢评论中读者的指正,特此说明,以免对大家造成困扰)

公式1: 绕任意轴n旋转θ的旋转矩阵(左手系中情况)
从四元数到旋转矩阵_第2张图片

(https://zhuanlan.zhihu.com/p/56587491)。
注意公式1中的基本条件:①旋转的正方向由左手法则判定 ②任意轴n处于左手坐标系中。

公式2: 绕任意轴n旋转θ的四元数(左手坐标系下)
在这里插入图片描述
要想从四元数求得旋转矩阵,即需要用矩阵中的元素m11、m12等等用四元数的四个值来表示。先把结果摆出来。

公式3: 四元数q(w,x,y,z)对应的旋转矩阵可以表示为如下形式(左手坐标系下):
从四元数到旋转矩阵_第3张图片

具体推导过程

具体的推导过程参考《3D数学基础:图形与游戏开发 清华大学出版社》。
在这里插入图片描述
首先考虑旋转矩阵对角线上的元素m_11、m_22、m_33的计算。
由公式1可知:
从四元数到旋转矩阵_第4张图片
现在要消去cosθ,而是用四元数中的cosθ/2cosθ/2来取而代之。这样的变换主要考虑反向利用二倍角公式,即:
在这里插入图片描述
带入通过一系列的化简即可求的m_11。非对角线上的元素也是同样的求解方法。具体的步骤可以查看我列的参考书。如果是直接使用从四元数到旋转矩阵的公式,则可以不用关注推导过程,直接使用公式3即可。

小结

四元数q(w,x,y,z)对应的旋转矩阵可以表示为如下形式:
从四元数到旋转矩阵_第5张图片

你可能感兴趣的:(3D数学)