0%

04 - 旋转变换

1. 方位和角位移

我们知道不能用绝对坐标来描述物体的 位置 ,要描述物体的 位置 ,必须把物体放置于特定的参考系中。

描述 位置 实际上就是描述相对于给定参考点(通常是坐标系的原点)的 位移

同样,描述物体 方位 时,也不能使用绝对量。
与位置只是相对已知点的位移一样,方位是通过于相对已知方位(通常称为“单位”方位或“源”方位)的旋转来描述的。

  • 旋转的量称作角位移
  • 换句话说,在数学上描述 方位 就等价与描述 角位移

整理如下:

  • 方位

    • 表示的是一种静态的状态;
    • 当用矩阵表示方位时,此时矩阵表示的是一个“点”,而该点的坐标就是原点进行矩阵表示的旋转之后所在的地方。即描述 方位 实际上就是描述相对于给定参考点(通常是坐标系的原点)的 角位移
  • 角位移

    • 表示的是一种动态的过程;
    • 当用矩阵表示角位移时,旋转变换的量即是角位移。

具体来说,我们用矩阵和四元数来表示“角位移”,用欧拉角来表示“方位”。

2. 矩阵形式 —— 用矩阵描述旋转变换

3D 中,描述坐标系中 方位 的一种方法就是列出这个坐标系的 基向量 ,而这些基向量是相对于其他坐标系进行描述的。
这些基向量构成一个 3×33 \times 3 矩阵,然后就能用矩阵形式来描述 方位

换言之,能用一个 旋转矩阵 来描述这两个坐标系之间的相对方位,这个旋转矩阵用于把一个坐标系中的向量转换到另一个坐标系中。

3. 基本旋转矩阵

3.1 绕 < 3 - 轴 > 旋转

screenShot.png

先将 F1\underrightarrow{F_1} 看做基向量空间 II ,可推出:

{21T=[cosθ3sinθ30]22T=[sinθ3cosθ30]23T=[001]\begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} \cos{\theta_3} & \sin{\theta_3} & 0 \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} -\sin{\theta_3} & \cos{\theta_3} & 0 \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix} \end{cases}

可得绕 < 3 - 轴 > 旋转的 旋转矩阵 C3\bold{C_{3}} 为:

C3=C21=[212223]=[cosθ3sinθ30sinθ3cosθ30001]\bold{C_{3}} = \bold{C_{21}} = \begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix} = \begin{bmatrix} \begin{array}{c:c:c} \cos{\theta_3} & -\sin{\theta_3} & 0 \\[2ex] \sin{\theta_3} & \cos{\theta_3} & 0 \\[2ex] 0 & 0 & 1 \end{array} \end{bmatrix}

C21F1=F2\bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} 可得:

F1C21F2\bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2}

即:

C21[111213]=[212223]\bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix}

3.2 绕 < 2 - 轴 > 旋转

screenShot.png

先将 F1\underrightarrow{F_1} 看做基向量空间 II ,可推出:

{21T=[cosθ20sinθ2]22T=[010]23T=[sinθ20cosθ2]\begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} \cos{\theta_2} & 0 & -\sin{\theta_2} \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} 0 & 1 & 0 \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} \sin{\theta_2} & 0 & \cos{\theta_2} \end{bmatrix} \end{cases}

可得绕 < 2 - 轴 > 旋转的 旋转矩阵 C2\bold{C_{2}} 为:

C2=C21=[cosθ20sinθ2010sinθ20cosθ2]\bold{C_{2}} = \bold{C_{21}} = \begin{bmatrix} \begin{array}{c:c:c} \cos{\theta_2} & 0 & \sin{\theta_2} \\[2ex] 0 & 1 & 0 \\[2ex] -\sin{\theta_2} & 0 & \cos{\theta_2} \end{array} \end{bmatrix}

C21F1=F2\bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} 可得:

F1C21F2\bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2}

即:

C21[111213]=[212223]\bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix}

3.3 绕 < 1 - 轴 > 旋转

screenShot.png

先将 F1\underrightarrow{F_1} 看做基向量空间 II ,可推出:

{21T=[100]22T=[0cosθ1sinθ1]23T=[0sinθ1cosθ1]\begin{cases} &\vec{2_1}^{T} = \begin{bmatrix} 1 & 0 & 0 \end{bmatrix} \\[2ex] &\vec{2_2}^{T} = \begin{bmatrix} 0 & \cos{\theta_1} & \sin{\theta_1} \end{bmatrix} \\[2ex] &\vec{2_3}^{T} = \begin{bmatrix} 0 & -\sin{\theta_1} & \cos{\theta_1} \end{bmatrix} \end{cases}

可得绕 < 1 - 轴 > 旋转的 旋转矩阵 C1\bold{C_{1}} 为:

C1=C12=[1000cosθ1sinθ10sinθ1cosθ1]\bold{C_{1}} = \bold{C_{12}} = \begin{bmatrix} \begin{array}{c:c:c} 1 & 0 & 0 \\[2ex] 0 & \cos{\theta_1} & -\sin{\theta_1} \\[2ex] 0 & \sin{\theta_1} & \cos{\theta_1} \end{array} \end{bmatrix}

C21F1=F2\bold{C_{21}} \cdot \bold{F_1} = \bold{F_2} 可得:

F1C21F2\bold{F_1} \xmapsto{\bold{C_{21}}} \bold{F_2}

即:

C21[111213]=[212223]\bold{C_{21}} \cdot \begin{bmatrix} \vec{1_1} & \vec{1_2} & \vec{1_3} \end{bmatrix} =\begin{bmatrix} \vec{2_1} & \vec{2_2} & \vec{2_3} \end{bmatrix}