四元素
联合欧拉角查看
四元素
用一个实数合三个复数表示刚体的旋转运动。
四元数一般表示为:
其中 v=(x,y,z)是虚部,w是实部。
单位四元数 q=(w,v)=(w,x,y,z)。
特点:
紧凑(4个参数),无奇点,适合插值(球面线性插值Slerp)。
计算效率高(比矩阵乘法快)。
缺点
不直观,需归一化。
四元素的归一化
为什么必须归一化?
(1) 旋转的数学性质
旋转操作在数学上属于单位四元数(Unit Quaternion)的范畴。
只有模长为1的四元数才能保证:
旋转矩阵的正交性:旋转矩阵 R 满足
=I。
旋转角度的正确性:非归一化四元数会导致缩放效应。
(2) 物理意义
四元数的模长影响旋转的幅度:
模长=1:纯旋转(无缩放)。
模长≠1:旋转+缩放(不符合刚体变换需求)。
-- 正交无缩放旋转。
四元素的大小
[-1,1]
欧拉角转四元素
同一姿态的数据唯一性
1. 欧拉角
通常指按某种顺序(如 ZYX, XYZ 等)绕坐标轴的 3 次旋转。
对于同一个姿态,欧拉角通常不唯一,主要原因:
万向锁(奇异性):在中间旋转 ±90° 时,内外轴对齐,导致无穷多组欧拉角表示同一姿态(一个自由度丢失)。
角度周期性:比如绕某个轴转 360° 的整数倍不影响姿态,可加减 360°。
不同的欧拉角顺序可以定义不同参数系统,但这里比较同一顺序时,某些情况还是多解(例如 ZYZ 欧拉角有双覆盖)。
结论:同一姿态对应多组数据(非唯一)。
2. 四元数(的二重覆盖)
单位四元数 q=(w,x,y,z)表示三维旋转。
对于同一旋转,q和 −q代表相同的旋转(因为四元数旋转公式 qvq−1 对 q 和 −q相同)。
因此每个旋转对应两个单位四元数(相差负号)。
通常我们通过限制 w≥0(或类似约束)来强制唯一性,但如果不加约束,非唯一。
结论:不加约束时,有两组数据(互为相反数)。
四元数1 = [w=0.0080947, x=0.70995, y=0.70319, z=-0.03767] 四元数2 = [w=-0.008095, x=-0.70995, y=-0.70319, z=0.03767]
上面的两个四元素表示同一个姿态吗?
是同一个姿态,出来符号相反,数据都相同。
使用四元素[w=0.0080947, x=0.70995, y=0.70319, z=-0.03767]转欧拉角和旋转矩阵:
使用结果的欧拉角转为四元素和欧拉角:
可见,四元素符号相反,绝对值相同。
但是同一个姿态的旋转矩阵,数据唯一。
3. 旋转矩阵
3×3 正交矩阵,行列式为 +1。
对于给定旋转,只有唯一一个旋转矩阵。
因为旋转矩阵是旋转算子在标准正交基下的矩阵表示,映射唯一(数学上 SO(3) 的矩阵表示是单值的)。
结论:唯一一组数据。
4. 轴角
用旋转轴单位向量 uu 和旋转角 θθ 表示,通常 u∈R3,∥u∥=1,θ∈[0,π]u∈R3,∥u∥=1,θ∈[0,π]。
对于同一个旋转:
如果限制θ∈[0,π]θ∈[0,π],则当 θ=0θ=0 时,轴任意(不唯一);当 θ∈(0,π)θ∈(0,π) 时,表示唯一(因为 uu 和 θθ 确定,且 uu 与 −u−u 配上 2π−θ2π−θ 不在 [0,π][0,π] 内)。
如果不限制θθ 的范围,则可用 (−u,−θ)(−u,−θ) 或 (u,θ+2kπ)(u,θ+2kπ) 表示相同旋转。
常用约定:θ∈[0,π]θ∈[0,π],uu 为单位向量;此时除了 θ=0θ=0(零旋转)时不唯一,其它旋转唯一。
但若严格来说,零旋转这种退化情况会破坏“每个姿态都对应唯一数据”的条件。
结论:在常规约定(θ∈[0,π])下,除了零旋转外唯一;否则多组数据。