第3讲:三维空间刚体运动
三维空间中刚体运动的描述方式:旋转矩阵、变换矩阵、四元数和欧拉角
3.1 旋转矩阵
3.1.1 点和向量,坐标系
三维空间中,给定线性空间基 ( e 1 , e 2 , e 3 ) (\mathbf{e}_{1}, \mathbf{e}_{2}, \mathbf{e}_{3}) (e1,e2,e3),则向量 a , b ∈ R 3 \mathbf{a}, \mathbf{b} \in \R^{3} a,b∈R3,
a = [ e 1 e 2 e 3 ] [ a 1 a 2 a 3 ] = a 1 e 1 + a 2 e 2 + a 3 e 3 (3-1) \mathbf{a} = \begin{bmatrix} \mathbf{e}_{1} & \mathbf{e}_{2} & \mathbf{e}_{3} \end{bmatrix} \begin{bmatrix} a_{1} \\ a_{2} \\ a_{3} \end{bmatrix} = a_{1}\mathbf{e}_{1} + a_{2}\mathbf{e}_{2} + a_{3}\mathbf{e}_{3} \tag {3-1} a=[e1e2e3]⎣⎡a1a2a3⎦⎤=a1e1+a2e2+a3e3(3-1)
内积:
a ⋅ b = a T b = ∑ i = 1 3 a i b i = ∣ a ∣ ∣ b ∣ cos ⟨ a , b ⟩ (3-2) \mathbf{a} \cdot \mathbf{b} = \mathbf{a}^{\text{T}} \mathbf{b} = \sum_{i = 1}^{3} a_{i} b_{i} = |\mathbf{a}| |\mathbf{b}| \cos \langle \mathbf{a}, \mathbf{b} \rangle \tag {3-2} a⋅b=aTb=i=1∑3aibi=∣a∣∣b∣cos⟨a,b⟩(3-2)
内积描述向量间的投影关系。外积为:
a × b = [ i j k a 1 a 2 a 3 b 1 b 2 b 3 ] = [ a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ] = [ 0 − a 3 a 2 a 3 0 − a 1 − a 2 a 1 0 ] b ≜ a ∧ b (3-3) \mathbf{a} \times \mathbf{b} = \begin{bmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_{1} & a_{2} & a_{3} \\ b_{1} & b_{2} & b_{3} \\ \end{bmatrix} = \begin{bmatrix} a_{2} b_{3} - a_{3} b_{2} \\ a_{3} b_{1} - a_{1} b_{3} \\ a_{1} b_{2} - a_{2} b_{1} \\ \end{bmatrix} = \begin{bmatrix} 0 & - a_{3} & a_{2} \\ a_{3} & 0 & - a_{1} \\ - a_{2} & a_{1} & 0 \\ \end{bmatrix} \mathbf{b} \triangleq \mathbf{a}^{\land} \mathbf{b} \tag {3-3} a×b=⎣⎡ia1b1ja2b2ka3b3⎦⎤=⎣⎡a2b3−a3b2a3b1−a1b3a1b2−a2b1⎦⎤=⎣⎡0a3−a2−a30a1a2−a10⎦⎤b≜a∧b(3-3)
外积的方向垂直于这两个向量,大小为 ∣ a ∣ ∣ b ∣ ⟨ a , b ⟩ |\mathbf{a}| |\mathbf{b}|\langle \mathbf{a}, \mathbf{b} \rangle ∣a∣∣b∣⟨a,b⟩,表示两个向量张成的四边形的有向面积。符号 ∧ \land ∧表示反对称符号,将 a \mathbf{a} a改写成反对称矩阵(skew-symmetric)形式,其作用为将外积 a × b \mathbf{a} \times \mathbf{b} a×b写成矩阵与向量的乘积 a ∧ b \mathbf{a}^{\land} \mathbf{b} a∧b,从而将外积变成线性运算。外积只对三维向量存在定义,外积可以表示向量的旋转。
在右手法则下,用右手的四指从 a \mathbf{a} a转向 b \mathbf{b} b,其拇指方向就是旋转向量的方向,即 a × b \mathbf{a} \times \mathbf{b} a×b的方向,其大小由 a \mathbf{a} a和 b \mathbf{b} b的夹角决定。该方式构造了从 a \mathbf{a} a到 b \mathbf{b} b的旋转向量,该向量同样位于三维空间中,在此坐标系下,可以用三个实数描述。
3.1.2 坐标系间的欧氏变换
两个坐标系间的变换关系:旋转、平移。机器人在运动过程中,通常设定一个惯性坐标系(世界坐标系),认为其固定不动,如图中 x W , y W , z W x_{W}, y_{W}, z_{W} xW,yW,zW;相机或机器人则是一个移动坐标系,如 x C , y C , z C x_{C}, y_{C}, z_{C} xC,yC,zC。相机视野中某个向量 p \mathbf{p} p,其坐标为 p c \mathbf{p}_{c} pc,在世界坐标系中,其坐标为 p w \mathbf{p}_{w} pw。
刚体运动:同一个向量在各个坐标系下的长度和夹角不会改变,这种变换称为欧氏变换。
旋转:假设一组单位正交基 ( e 1 , e 2 , e 3 ) (\mathbf{e}_{1}, \mathbf{e}_{2}, \mathbf{e}_{3}) (e1,e2,e3)经一次旋转,变成 ( e 1 ′ , e 2 ′ , e 3 ′ ) (\mathbf{e}_{1}^{\prime}, \mathbf{e}_{2}^{\prime}, \mathbf{e}_{3}^{\prime}) (e1′,e2′,e3′),对于同一个向量 a \mathbf{a} a(该向量并没有随坐标系旋转而运动),其在两个坐标系下的坐标分别为 [ a 1 , a 2 , a 3 ] T [ a_{1}, a_{2}, a_{3} ]^{\text{T}} [a1,a2,a3]T和 [ a 1 ′ , a 2 ′ , a 3 ′ ] T [ a_{1}^{\prime}, a_{2}^{\prime}, a_{3}^{\prime} ]^{\text{T}} [a1′,a2′,a3′]T,则:
[ e 1 e 2 e 3 ] [ a 1 a 2 a 3 ] = [ e 1 ′ e 2 ′ e 3 ′ ] [ a 1 ′ a 2 ′ a 3 ′ ] (3-4) \begin{bmatrix} \mathbf{e}_{1} & \mathbf{e}_{2} & \mathbf{e}_{3} \end{bmatrix} \begin{bmatrix} a_{1} \\ a_{2} \\ a_{3} \end{bmatrix} = \begin{bmatrix} \mathbf{e}_{1}^{\prime} & \mathbf{e}_{2}^{\prime} & \mathbf{e}_{3}^{\prime} \end{bmatrix} \begin{bmatrix} a_{1}^{\prime} \\ a_{2}^{\prime} \\ a_{3}^{\prime} \end{bmatrix} \tag {3-4} [e1e2e3]⎣⎡a1a2a3⎦⎤=[e1′e2′e3′]⎣⎡a1′a2′a3′</