【CV】三维空间的旋转问题(Rotation in 3D space)

Yaw, Pitch, Roll 角

【CV】三维空间的旋转问题(Rotation in 3D space)

以飞机的动作为例,

  • 左右摆动是 Yaw 角 – 偏航角
  • 上下摆动是 Pitch 角 – 俯仰角
  • 绕轴摆动是 Roll 角 – 翻滚角

旋转矩阵

[xyz1]=R[xyz1]

绕x,y,或z轴旋转θ的矩阵为:

Rx(θ)=[1000cosθsinθ0sinθcosθ]

Ry(θ)=[cosθ0sinθ010sinθ0cosθ]

Rz(θ)=[cosθsinθ0sinθcosθ0001]

而对于绕任意轴旋转,则需要先把这个轴旋转至与一条坐标轴重合,再绕坐标轴旋转,最后再把轴按原路旋转回去,即

Rx(p)Ry(q)Rz(θ)Ry(q)Rx(p)
,其中

  1. 绕x轴旋转角度p使指定的旋转轴在xz平面上
  2. 绕y轴旋转角度q使指定的旋转轴与z轴重合
  3. 绕z轴旋转角度θ
  4. 绕y轴旋转角度-q
  5. 绕x轴旋转角度-p

其中,p和q的值需要用i,j,k计算出来。
注意,右边的旋转先与齐次坐标运算。

欧拉角(Euler angles)

旋转矩阵乘以点P的齐次坐标,得到旋转后的点P’:
【CV】三维空间的旋转问题(Rotation in 3D space)

上图中

  • xyz 坐标系是固定的参考坐标系,图中蓝线
  • XYZ 坐标系是依附在刚体上的运动坐标系。图中红线
  • xy 平面与 XY 平面的交线,叫做交轨线,记作 N,这条线穿过两个坐标系的原点并且垂直于 zZ 平面。图中绿线

欧拉角由以上元素给出

  • α(orφ) x 轴与 N 轴的角度,代表绕z 轴旋转
  • β(orθ) z 轴与 Z 轴的角度,代表绕 x 轴旋转
  • γ(orψ) N轴与X轴的角度,代表绕 Z 轴的旋转

如果β是0, 就没有绕N轴的旋转. 因此Z轴与z轴重合, αγ 代表绕同一个轴(z)的旋转, 最终的方向可以通过一个单一的绕z轴的旋转获得,这个旋转角度等于 α+γ.

三个欧拉角的定义是明确的固定的,但是顺序却是依个人喜好定的。
若按照上面的 zxZ 的顺序,

  1. 绕z轴旋转α,使x轴与N轴重合,N轴是旋转前后两个坐标系x-y平面的交线
  2. 绕x轴(也就是N轴)旋转β,使z轴与旋转后的z轴重合
  3. 绕z轴旋转γ,使坐标系与旋转后的完全重合

Rz(α)Rx(β)Rz(γ)

注意与旋转矩阵不同,在欧拉角中最先进行的旋转在最左边。因为旋转矩阵我们始终基于绝对参考系,而对于欧拉角,我们每一次旋转都是基于刚体坐标系。

Ref