旋转矩阵R
首先,只考虑旋转。
假设坐标系1: {X1,Y1,Z1}\{X_1, Y_1, Z_1\}{X1,Y1,Z1} 经过纯旋转之后得到坐标系2: {X2,Y2,Z2}\{X_2, Y_2, Z_2\}{X2,Y2,Z2} (如上图),其中坐标系1对应的单位正交基为 (e1,e2,e3)\left(e_{1}, e_{2}, e_{3}\right)(e1,e2,e3),坐标系2对应的单位正交基为 (e1′,e2′,e3′)\left(e_{1}^{\prime}, e_{2}^{\prime}, e_{3}^{\prime}\right)(e1′,e2′,e3′)。 对于空间中的同一个点 p\boldsymbol{p}p ,假设点 p\boldsymbol{p}p 在坐标系1和坐标系2下的坐标分别为 a1=[a1,a2,a3]T\boldsymbol{a_1} = \left[a_{1}, a_{2}, a_{3}\right]^{T}a1=[a1,a2,a3]T,a2=[a1′,a2′,a3′]T\boldsymbol{a_2} = \left[a_{1}^{\prime}, a_{2}^{\prime}, a_{3}^{\prime}\right]^{T}a2=[a1′,a2′,a3′]T。由于点 p\boldsymbol{p}p 并没有随着坐标系的旋转而发生运动,根据坐标的定义,有:
[e1,e2,e3][a1a2a3]=[e1′,e2′,e3′][a1′a2′a3′](1) \left[\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}\right]\left[\begin{array}{c}a_{1} \\a_{2} \\a_{3}\end{array}\right]=\left[\boldsymbol{e}_{1}^{\prime}, \boldsymbol{e}_{2}^{\prime}, \boldsymbol{e}_{3}^{\prime}\right]\left[\begin{array}{c}a_{1}^{\prime} \\a_{2}^{\prime} \\a_{3}^{\prime}\end{array}\right]\tag{1} [e1,e2,e3]⎣⎡a1a2a3⎦⎤=[e1′,e2′,e3′]⎣⎡a1′a2′a3′⎦⎤(1)
为了描述两个坐标之间的关系,我们对上面等式左右同时左乘 [e1T,e2T,e3T]T\left[\boldsymbol{e}_{1}^{T}, \boldsymbol{e}_{2}^{T}, \boldsymbol{e}_{3}^{T}\right]^{T}[e1T,e2T,e3T]T,那么左边的系数变成了单位矩阵,所以有:
[a1a2a3]=[e1Te1′e1Te2′e1Te3′e2Te1′e2Te2′e2Te3′e3Te1′e3Te2′e3Te3′][a1′a2′a3′](2) \left[\begin{array}{c}a_{1} \\a_{2} \\a_{3}\end{array}\right]=\left[\begin{array}{ccc}\boldsymbol{e}_{1}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{1}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{1}^{T} \boldsymbol{e}_{3}^{\prime} \\\boldsymbol{e}_{2}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{2}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{2}^{T} \boldsymbol{e}_{3}^{\prime} \\\boldsymbol{e}_{3}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{3}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{3}^{T} \boldsymbol{e}_{3}^{\prime}\end{array}\right]\left[\begin{array}{c}a_{1}^{\prime} \\a_{2}^{\prime} \\a_{3}^{\prime}\end{array}\right]\tag{2} ⎣⎡a1a2a3⎦⎤=⎣⎡e1Te1′e2Te1′e3Te1′e1Te2′e2Te2′e3Te2′e1Te3′e2Te3′e3Te3′⎦⎤⎣⎡a1′a2′a3′⎦⎤(2)
将等式右边的矩阵记做 R12\boldsymbol{R}_{12}R12,即有:
a1=R12a2(3) \boldsymbol{a}_1 = \boldsymbol{R}_{12} \boldsymbol{a}_2 \tag{3} a1=R12a2(3)
矩阵 R12\boldsymbol{R}_{12}R12便是旋转矩阵,其描述了坐标系1到坐标系2的旋转。矩阵 R12\boldsymbol{R}_{12}R12 的下标有两个含义:
- 表示坐标系1到坐标系2的旋转
- 表示将坐标系2中点的坐标通过旋转变换,从而得到同一个点在坐标系1中的坐标
平移向量t
然后,只考虑平移。
假设坐标系1: {X1,Y1,Z1}\{X_1, Y_1, Z_1\}{X1,Y1,Z1} 经过纯平移之后得到坐标系2: {X2,Y2,Z2}\{X_2, Y_2, Z_2\}{X2,Y2,Z2} (如上图)。 对于空间中的同一个点 p\boldsymbol{p}p ,假设其在两个坐标系下对应的坐标表示分别为 a1=[a1,a2,a3]T\boldsymbol{a_1} = \left[a_{1}, a_{2}, a_{3}\right]^{T}a1=[a1,a2,a3]T,a2=[a1′,a2′,a3′]T\boldsymbol{a_2} = \left[a_{1}^{\prime}, a_{2}^{\prime}, a_{3}^{\prime}\right]^{T}a2=[a1′,a2′,a3′]T。由几何关系,很显然有:
a1=a2+t12(4) \boldsymbol{a}_1 = \boldsymbol{a}_2 + \boldsymbol{t}_{12}\tag{4} a1=a2+t12(4)
向量 t12\boldsymbol{t}_{12}t12便是平移向量,其描述了坐标系1到坐标系2的平移。其下标同样也有两个含义:
- 表示坐标系1到坐标系2的平移(对应坐标系1的原点指向坐标系2的原点的向量)
- 表示将坐标系2中点的坐标通过平移变换,从而得到同一个点在坐标系1中的坐标
变换矩阵T
最后同时考虑选择和平移,也就是坐标系之间的刚体运动。
假设坐标系1: {X1,Y1,Z1}\{X_1, Y_1, Z_1\}{X1,Y1,Z1} 经过旋转和平移之后得到坐标系2: {X2,Y2,Z2}\{X_2, Y_2, Z_2\}{X2,Y2,Z2} (如上图)。 对于空间中的同一个点 p\boldsymbol{p}p ,假设其在两个坐标系下对应的坐标表示分别为 a1=[a1,a2,a3]T\boldsymbol{a_1} = \left[a_{1}, a_{2}, a_{3}\right]^{T}a1=[a1,a2,a3]T,a2=[a1′,a2′,a3′]T\boldsymbol{a_2} = \left[a_{1}^{\prime}, a_{2}^{\prime}, a_{3}^{\prime}\right]^{T}a2=[a1′,a2′,a3′]T。
通过将上述的旋转和平移合到一起,则有:
a1=R12a2+t12(5) \boldsymbol{a}_1 = \boldsymbol{R}_{12} \boldsymbol{a}_2 + \boldsymbol{t}_{12}\tag{5} a1=R12a2+t12(5)
为了简化形式,引入齐次坐标有:
[a11]=[R12t120T1][a21](6) \left[\begin{array}{l}\boldsymbol{a}_1 \\1\end{array}\right]=\left[\begin{array}{ll}\boldsymbol{R}_{12} & \boldsymbol{t}_{12} \\\mathbf{0}^{T} & 1\end{array}\right]\left[\begin{array}{l}\boldsymbol{a}_2 \\1\end{array}\right]\tag{6} [a11]=[R120Tt121][a21](6)
同样为了保持简洁,我们将 a1\boldsymbol{a}_1a1 和 a2\boldsymbol{a}_2a2 的齐次坐标简写成 a1\boldsymbol{a}_1a1 和 a2\boldsymbol{a}_2a2,并将等式右边的矩阵记做 T12\boldsymbol{T}_{12}T12,则有:
a1=T12a2(7) \boldsymbol{a}_1 = \boldsymbol{T}_{12} \boldsymbol{a}_2\tag{7} a1=T12a2(7)
其中, T12\boldsymbol{T}_{12}T12为坐标系1 转换到坐标系2的变换矩阵,包含了旋转和平移。其下标对应的也有两个含义:
- 表示坐标系1到坐标系2的变换(包含旋转和平移)
- 表示将坐标系2中点的坐标通过旋转和平移变换,从而得到同一个点在坐标系1中的坐标