英文版参考链接:Quaternions
DCM Tutorial – An Introduction to Orientation Kinematics – Starlino Electronics
https://ntrs.nasa.gov/api/citations/19770024290/downloads/19770024290.pdf
四元数,它是一种用四个实数表示复数的推广,可以用来高效地表示和计算三维空间中的旋转1。
DCM matrix
DCM matrix是一个用来描述两个坐标系之间的转换的矩阵。如果我们把第一个坐标系记为x,第二个坐标系记为y,那么DCM matrix就是一个3x3的矩阵,它的每一列是y坐标系的一个单位向量在x坐标系下的表示。
or
且
DCM 矩阵(通常也称为旋转矩阵)定义了一个框架相对于另一框架的旋转。如果我们知道任意向量在B框架中的坐标(反之亦然),它也可以用于确定任意向量在全局框架中的坐标。
a vector with body coordinates:
四元数
旋转四元数的性质:
- 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.
将四元数转换为旋转矩阵
将旋转矩阵转换为四元数
将欧拉角转换为四元数
θ (theta) y
φ (phi) x
ψ (psi) z
约定:
- 固有旋转(轴随着每次旋转而移动)
- 主动(也称为 alibi)旋转(旋转的是点,而不是坐标系)
- 具有右手旋转的右手坐标系
ZXY顺序的欧拉角z,x,y对应的四元数q为:
= np.arcsin(2q2*q3 + 2q0*q1)
=np.arctan2(
2q0q2 - 2q1q3
--------------------
1 - 2q1q1 - 2q2q2
)
= np.arctan2(
2*q0*q3 - 2*q1*q2
---------------------------
1 - 2*q1*q1 - 2*q3*q3
)
而ZYX顺序的欧拉角z,y,x对应的四元数q为:
ZYX顺序的欧拉角z,y,x,表示先绕着固定坐标系的z轴旋转z角度,然后绕着旋转后的y轴旋转y角度,最后绕着旋转后的x轴旋转x角度。这里的z,y,x都是相对于固定坐标系的角度,而不是相对于旋转后的坐标系的角度。也就是说,z是初始状态下的偏航角(yaw),y是初始状态下的俯仰角(pitch),x是初始状态下的滚转角(roll)。
将四元数转换为欧拉角