旋转四元数以及如何使用它们
英文版参考链接:Quaternions
四元数,它是一种用四个实数表示复数的推广,可以用来高效地表示和计算三维空间中的旋转1。
旋转四元数的性质:
- All rotation quaternions must be unit quaternions.|q| = 1
- For rotation quaternions, the inverse equals the conjugate. So for rotation quaternions, q−1 = q* = ( q0, −q1, −q2, −q3 ).
- 如果一个点p用q旋转后变成了p’,那么再用q−1或者q*旋转p’,就会变回p。这是因为两次旋转相互抵消了
- A rotation of qa followed by a rotation of qb can be combined into the single rotation qc = qbqa.
将四元数转换为旋转矩阵
将旋转矩阵转换为四元数
将欧拉角转换为四元数
约定:
- Yaw-pitch-roll旋转顺序,分别绕z、y、x轴旋转
- 固有旋转(轴随着每次旋转而移动)
- 主动(也称为 alibi)旋转(旋转的是点,而不是坐标系)
- 具有右手旋转的右手坐标系
将欧拉角a1,a2,a3和b1,b2,b3分别转换为四元数。这里以ZYX顺序的欧拉角为例,转换公式为:
将四元数转换为欧拉角