刚体运动与齐次变换
刚体是空间中一组特殊的质点,这些质点之间的距离保持不变。因此,我们只需要确定刚体中任意一点\(A\)的位置以及各点相对于 该点的方向就可以完全描述刚体中各点在空间中的位置。点\(A\)被称为基点,在直角坐标系中需要三个坐标\(\left(x_A, y_A, z_A\right)\)来确定位置。 刚体其余各点相对于基点的方向称之为刚体的姿态,可以归结为一个通过基点的直线(即转轴)的方向和刚体绕直线转动的角度。 转轴的方向一般通过与三个坐标轴之间夹角的方向余弦描述,由于几何关系这三个方向余弦的平方和为1,也就是说只有两个变量是独立的。 所以,空间中的一个刚体有6个自由度,有三个位置自由度和三个姿态自由度。
在研究刚体运动时,我们通常会建立两个坐标系:一个参考坐标系,一个跟随刚体一起运动的坐标系,称为随体坐标系。 参考坐标系的选取与实际研究对象有关,可以是没有加速度的惯性坐标系,在一些资料里称之为世界坐标系,描述的是刚体在空间中的绝对位置和姿态; 也可以是其它刚体的随体坐标系,该参考系则描述了刚体之间的相对关系。
刚体的位置和姿态可以通过随体坐标系相对于参考坐标系的旋转和平移两种相对独立的变换得到。 对于旋转变换,通过与一个旋转矩阵相乘,我们就可以得到随体坐标系中各点相对于参考坐标系的坐标。 对于平移变换,只需要将空间中各点坐标加上一个平移向量就可以了。 更进一步的,齐次坐标和齐次坐标变换的引入,使得我们只用一个矩阵就可以同时表达旋转和平移两种变换。
本文结构安排如下:在第1节中我们介绍点在空间中的位置以及相对关系的描述方式, 在第2节中介绍二维平面和三维空间中的旋转矩阵,在第3节中讨论不同坐标系下的坐标变换关系, 然后在第4章中引入齐次坐标,最后做出总结。
1. 位置描述
我们知道刚体可以看做是空间中一组质点的集合。有时为了分析方便,我们还会把一个刚体看做是一个质点,由其质心来代表。 把这些点以及它们的相对关系抽象为数学概念就是,点在空间中的几何关系。对这种几何关系的表述主要有两种方法,一种是分析方法(synthetic approach), 另一种是解析方法(analytic approach)。
分析方法是一种纯粹使用几何关系进行表述和推演的方法。比如说,我们知道三角形的内角和是180度,两个三角形的三边相等就是全等三角形,等等。 解析方法则是用一种代数的方法来研究几何问题的。它为讨论的对象建立了各种各样的坐标系,把点和几何关系用向量和矩阵的形式抽象出来,使用线性代数进行推演。 我们在分析刚体的位置关系时,通常使用的是解析的方法,因为我们可以很方便的使用计算机来描述向量和矩阵。
图1 点在多个坐标系下的描述 |
如图1所示,对于空间中的一点,我们通常会建立一个坐标系,在这个坐标系下用一个向量来表示。坐标系的建立方式不是唯一的, 通常为了计算方便我们会根据需要选择合适的坐标系。在图1中,我们建立了两个坐标系\(O_0\)和\(O_1\), 空间中点\(p\)在两个坐标系中的位置分别用坐标\(\boldsymbol{p^0} = [x_0, y_0]^T,\boldsymbol{p^1} = [x_1,y_1]^T\)来描述。为了表述方便,以后我们使用右上标来表示坐标系, 这里\(x_0, y_0\)分别为点\(p\)在坐标系\(O_0\)两个坐标轴上的投影,\(x_1, y_1\)则分别是为\(O_1\)系下两个坐标轴上的投影。
坐标系的原点在空间中也就是一个点而已,只是在自己的坐标空间下值为\([0,0]^T\),但是它在其它坐标系中的坐标值未必为0,这点可以从图1中看到。 在图1中还画了两个向量\(\boldsymbol{v_0},\boldsymbol{v_1}\),对于一个向量我们通常只关心两个要素:方向和长度,这样的向量通常被称为自由向量。 自由向量不约束向量在空间中的位置,它描述的是一种相对关系,只要两个向量的方向和长度一致那么这两个向量就是相等的。 在物理世界中,我们还会遇到一种固定的向量,这种向量约束其在空间中的位置,比如说力,它不仅涉及到大小和方向,有时我们还会讨论作用点。
在本文的后续内容中,将讨论不同的坐标系之间的关系,同一个点或者向量在不同坐标系下的表述形式,以及在不同坐标系之间的变换关系。
2. 旋转矩阵
所谓的旋转矩阵实际上是两个相差一定角度的坐标系之间各点的一一映射关系。 对于刚体上的某一个质点,我们可以很容易得到它在随体坐标系下的坐标, 通过与一个旋转矩阵相乘就可以得到其在参考坐标系下的坐标。它是我们研究刚体运动乃至机器人运动学的一个重要工具。 旋转矩阵是一种特殊的正交矩阵。它具有如下的一些性质, 关于这些性质的证明超出了本文讨论的范围,目前暂不讨论,以后可能会专门写篇文章。
- \(R \in SO(n)\);(\(SO(n)\)表示\(n\)维特殊的正交群,我们可以看做是一个矩阵的集合)
- \(R^{-1} \in SO(n)\);
- \(R^{-1} = R^T\);
- \(R\)的各列(行)之间是相互正交的;
- \(R\)的每一列(行)都是一个单位向量;
- \(\begin{vmatrix}R\end{vmatrix} = 1\)。
在本小节中,我们将介绍旋转矩阵的推导过程及其几何意义。由于在二维平面里可以方便的作图,所以我们先从简单的二维平面开始, 对坐标旋转有一个形象的认识。为了能够将二维平面中得到的结论扩展到更高维空间中,我们尽量使用一般化的线性代数语言进行描述。 然后介绍刚体在三维空间中的旋转矩阵。
2.1 二维平面中的旋转矩阵
图2 二维平面中的两个相对转动的坐标系 |
图2中显示了两个坐标系,其中\(Ox_1y_1\)系相对于\(Ox_0y_0\)系转动了\(\theta\)角度。 定义向量\(\boldsymbol{i_0},\boldsymbol{j_0}\)和向量\(\boldsymbol{i_1},\boldsymbol{j_1}\)分别为\(Ox_0y_0\)系和\(Ox_1y_1\)系的两组基, 那么平面中的每一点都可以用这两组基的线性组合来表示: $$ p = x_0\boldsymbol{i_0} + y_0\boldsymbol{j_0} $$ $$ p = x_1\boldsymbol{i_1} + y_0\boldsymbol{j_1} $$ 上式也可以写成矩阵的形式: $$ \begin{equation}\label{f1} p = \begin{bmatrix}\boldsymbol{i_0} & \boldsymbol{j_0}\end{bmatrix} \begin{bmatrix} x_0 \\ y_0 \end{bmatrix} \end{equation} $$ $$ \begin{equation}\label{f2} p = \begin{bmatrix}\boldsymbol{i_1} & \boldsymbol{j_1}\end{bmatrix} \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} \end{equation} $$ 约定点和向量的右上标表示参考坐标系,那么点\(p\)相对于\(Ox_0y_0\)系和\(Ox_1y_1\)系的坐标分别为 \(\boldsymbol{p^0} = [x_0, y_0]^T\)和\(\boldsymbol{p^1} = [x_1, y_1]^T\)。 而坐标系\(Ox_1y_1\)的基向量\(\boldsymbol{i_1},\boldsymbol{j_1}\)也可以由坐标系\(Ox_0y_0\)的基向量 \(\boldsymbol{i_0},\boldsymbol{j_0}\)来表示: $$ \boldsymbol{i_1} = \cos{\theta}\boldsymbol{i_0} + \sin{\theta}\boldsymbol{j_0} $$ $$ \boldsymbol{j_1} = -\sin{\theta}\boldsymbol{i_1} + \cos{\theta}\boldsymbol{j_1} $$ 写成矩阵的形式如下: $$ \begin{equation}\label{f3} \begin{bmatrix}\boldsymbol{i_1} & \boldsymbol{j_1}\end{bmatrix} = \begin{bmatrix}\boldsymbol{i_0} & \boldsymbol{j_0}\end{bmatrix} \begin{bmatrix}\cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \end{equation} $$ 将公式(\(\ref{f3}\))代入公式(\(\ref{f1}\))(\(\ref{f2}\))得到: $$ \begin{equation}\label{f4} \begin{bmatrix}\boldsymbol{i_1} & \boldsymbol{j_1}\end{bmatrix} \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} = \begin{bmatrix}\boldsymbol{i_0} & \boldsymbol{j_0}\end{bmatrix} \begin{bmatrix}\cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} \end{equation} $$ $$ \begin{equation}\label{f5} \begin{bmatrix}\boldsymbol{i_0} & \boldsymbol{j_0}\end{bmatrix} \begin{bmatrix} x_0 \\ y_0 \end{bmatrix} = \begin{bmatrix}\boldsymbol{i_0} & \boldsymbol{j_0}\end{bmatrix} \begin{bmatrix}\cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \begin{bmatrix} x_1 \\ y_1 \end{bmatrix} \end{equation} $$ 因此我们可以得到\(\boldsymbol{p^0}\)与\(\boldsymbol{p^1}\)之间存在坐标变换关系: $$ \begin{equation}\label{f6} \boldsymbol{p^0} = R_1^0 \boldsymbol{p^1} \end{equation} $$ 其中\(R_1^0\)为\(Ox_1y_1\)系到\(Ox_0y_0\)系的坐标转移矩阵: $$ \begin{equation}\label{f7} R_1^0 = \begin{bmatrix}\cos{\theta} & -\sin{\theta} \\ \sin{\theta} & \cos{\theta} \end{bmatrix} \end{equation} $$ 观察式(\(\ref{f7}\))我们可以发现旋转矩阵实际上是基向量\(\boldsymbol{i_1},\boldsymbol{j_1}\)在坐标系\(Ox_0y_0\)中的坐标表示: $$ \boldsymbol{i_1^0} = \begin{bmatrix}\cos{\theta} \\ \sin{\theta} \end{bmatrix} $$ $$ \boldsymbol{j_1^0} = \begin{bmatrix}-\sin{\theta} \\ \cos{\theta} \end{bmatrix} $$ $$ R_1^0 = \begin{bmatrix} \boldsymbol{i_1^0} & \boldsymbol{j_1^0} \end{bmatrix} $$ 实际上是基向量\(\boldsymbol{i_1},\boldsymbol{j_1}\)在\(x_0\)和\(y_0\)轴上的投影。 根据向量点乘的几何意义,可以把式(\(\ref{f7}\))改写为: $$ \begin{equation}\label{f8} R_1^0 = \begin{bmatrix} \boldsymbol{i_1}\cdot\boldsymbol{i_0} & \boldsymbol{j_1}\cdot\boldsymbol{i_0} \\ \boldsymbol{i_1}\cdot\boldsymbol{j_0} & \boldsymbol{j_1}\cdot\boldsymbol{j_0} \end{bmatrix} \end{equation} $$
至此,根据线性代数中坐标变换我们得到了二维平面中的旋转矩阵。它是一组基向量在另一组基向量所确定的坐标系下的投影。
2.2 三维空间中的旋转矩阵
设向量\(\boldsymbol{i_0},\boldsymbol{j_0},\boldsymbol{k_0}\)和向量\(\boldsymbol{i_1},\boldsymbol{j_1},\boldsymbol{k_1}\) 分别为直角坐标系\(o_0x_0y_0z_0\)和\(o_1x_1y_1z_1\)的两组基。对二维平面中旋转矩阵(式(\(\ref{f8}\)))做出推广, 可以写出\(o_1\)系到\(o_0\)系的旋转矩阵如下: $$ \begin{equation}\label{f9} R_1^0 = \begin{bmatrix} \boldsymbol{i_1}\cdot\boldsymbol{i_0} & \boldsymbol{j_1}\cdot\boldsymbol{i_0} & \boldsymbol{k_1}\cdot\boldsymbol{i_0} \\ \boldsymbol{i_1}\cdot\boldsymbol{j_0} & \boldsymbol{j_1}\cdot\boldsymbol{j_0} & \boldsymbol{k_1}\cdot\boldsymbol{j_0} \\ \boldsymbol{i_1}\cdot\boldsymbol{k_0} & \boldsymbol{j_1}\cdot\boldsymbol{k_0} & \boldsymbol{k_1}\cdot\boldsymbol{k_0} \end{bmatrix} \end{equation} $$ 特别的,我们可以得到三个基本旋转矩阵: $$ \begin{equation}\label{f10} R_{x,\theta} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos{\theta} & -\sin{\theta} \\ 0 & \sin{\theta} & \cos{\theta} \end{bmatrix} \end{equation} $$ $$ \begin{equation}\label{f11} R_{y,\theta} = \begin{bmatrix} \cos{\theta} & 0 & \sin{\theta} \\ 0 & 1 & 0 \\ -\sin{\theta} & 0 & \cos{\theta} \end{bmatrix} \end{equation} $$ $$ \begin{equation}\label{f12} R_{z,\theta} = \begin{bmatrix} \cos{\theta} & -\sin{\theta} & 0 \\ \sin{\theta} & \cos{\theta} & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \end{equation} $$ 它们分别表示绕x,y,z轴逆时针转动了\(\theta\)角。这些基本旋转矩阵具有如下的性质: $$ \begin{equation}\label{f13} R_{\bullet,0} = I \end{equation} $$ $$ \begin{equation}\label{f14} R_{\bullet,\theta}R_{\bullet,\phi} = R_{\bullet, \theta+\phi} \end{equation} $$ $$ \begin{equation}\label{f15} R_{\bullet,\theta}^{-1} = R_{\bullet, -\theta} \end{equation} $$ 其中\(\bullet\)可以为x,y,z。
3. 旋转坐标变换
在三维空间中刚体的姿态可以用三个欧拉角来描述,即刚体先后绕不同轴的三次转角,它相当于做了三次旋转变换。 此外,对于机器人这样复杂的对象,通常会抽象为多个刚体,通过不同刚体之间的相对姿态可以完整的描述机器人的姿态。 这些都涉及到了旋转变换的组合。 在本小节中我们讨论旋转坐标的组合。
公式(\(\ref{f9}\))给出了\(O_0\)系到\(O_1\)系的旋转矩阵,现在我们考虑坐标系\(O_2\)到\(O_0\)系和\(O_1\)系的转动关系。 根据公式(\(\ref{f6}\))容易写出空间内一点\(p\)在三个坐标系下的关系: $$ p^0 = R_1^0p^1 $$ $$ p^1 = R_2^1p^2 $$ $$ p^0 = R_2^0p^2 $$ 根据上式,有矩阵关系: $$ \begin{equation}\label{f16} R_2^0 = R_1^0R_2^1 \end{equation} $$ 这里我们称\(O_0\)为相对静止的全局坐标系,\(O_1\)为相对于\(O_0\)系发生转动的局部坐标系。 由公式(\(\ref{f16}\))推广,对于n个局部坐标系\(O_i, i = 1,...,n\)和全局坐标系\(O_0\)有递推公式: $$ \begin{equation}\label{f17} R_{n+1}^0 = R_n^0R_{n+1}^n \end{equation} $$ 式(\(\ref{f17}\))的物理意义在于刚体的随体坐标系从\(O_0\)系转动到\(O_{n+1}\)系相当于做了\(n+1\)次相对于局部坐标系的旋转变换。
如果第\(n+1\)次是相对于坐标系\(O_i, i=0,1,...,n\)的变换, 那么我们可以通过相似变换(关于相似变换会在以后专门介绍)得到等效的相对于\(O_n\)系的变换: $$ \begin{equation}\label{f18} R_{n+1}^n = {R_n^i}^{-1}RR_n^i \end{equation} $$ 将公式(\(\ref{f18}\))代入式(\(\ref{f17}\)): $$ \begin{align} \label{f19} R_{n+1}^0 & = R_n^0R_{n+1}^n \\ & = R_i^0R_n^i\left({R_n^i}^{-1}RR_n^i\right) \\ & = R_i^0RR_n^i \\ \end{align} $$ 特殊的,当\(i=n\)时就得到了式(\(\ref{f17}\)),当\(i=0\)时有: $$ \begin{equation}\label{f22} R_{n+1}^0 = RR_n^0 \end{equation} $$ 公式(\(\ref{f17}\))和公式(\(\ref{f22}\))就是一些资料中提到的 “当变换是相对于局部坐标系时右乘旋转矩阵,当变换是相对于固定坐标系时左乘旋转矩阵”。 假若一个刚体在自身的局部坐标系中,先绕\(z\)轴转动了\(Y\)度,在绕\(y\)轴转动了\(P\)度, 最后绕\(x\)轴转动了\(R\)度,那么根据公式(\(\ref{f10},\ref{f11},\ref{f12},\ref{f17}\)),有 $$ \begin{equation} R_{z, Y}R_{y, P}R_{x, R} = \begin{bmatrix} C_Y & -S_Y & 0 \\ S_Y & C_Y & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} C_P & 0 & S_P \\ 0 & 1 & 0 \\ -S_P & 0 & C_P \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & C_R & -S_R \\ 0 & S_R & C_R \end{bmatrix} = \begin{bmatrix} C_YC_P & -S_YC_R + C_YS_PS_R & S_YS_R + C_YS_PC_R \\ C_PS_Y & C_YC_R + S_YS_PS_R & -C_YS_R + S_YS_PC_R \\ -S_P & C_PS_R & C_PC_R \end{bmatrix} \end{equation} $$ 假若一个刚体在固定坐标系中,先绕\(z\)轴转动了\(Y\)度,在绕\(y\)轴转动了\(P\)度, 最后绕\(x\)轴转动了\(R\)度,那么根据公式(\(\ref{f10},\ref{f11},\ref{f12},\ref{f22}\)),有 $$ \begin{equation} R_{x, R}R_{y, P}R_{z, Y} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & C_R & -S_R \\ 0 & S_R & C_R \end{bmatrix} \begin{bmatrix} C_P & 0 & S_P \\ 0 & 1 & 0 \\ -S_P & 0 & C_P \end{bmatrix} \begin{bmatrix} C_Y & -S_Y & 0 \\ S_Y & C_Y & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} C_P C_Y & -C_P S_Y & S_P \\ S_RS_PS_Y + C_RS_Y & -S_RS_PS_Y + C_RC_Y & -S_RC_P \\ -C_RS_PC_Y + S_RS_Y & C_RS_PS_Y + C_YS_R & C_RC_P \end{bmatrix} \end{equation} $$
4. 齐次坐标变换
对于刚体的运动可以分为平移运动和旋转运动,如图3所示,空间中一刚体先相对于参考坐标系\(O_0\)旋转了\(R_1^0\), 然后平移了\(\boldsymbol{d_1^0}\)。那么刚体上一点\(p\)在两个坐标系中的坐标关系为: $$ \begin{equation}\label{func1} \boldsymbol{p^0}=R_1^0\boldsymbol{p^1}+\boldsymbol{d_1^0} \end{equation} $$ 综合两种运动形式,定义1给出刚体运动的形式化描述。
图3 刚体运动 |
定义1: 所谓的刚体运动(rigid motion)是指一个有序对\(\left(d, R\right)\),其中\(d \in \mathbb{R}^3, R \in SO(3)\)。 所有的刚体运动构成了Special Eclidean Group,记为\(SE(3)\)。显然,\(SE(3) = \mathbb{R}^3 \times SO(3) \)。
虽然看起来吓唬人,然并卵
现在我们考虑两个刚体的相对运动, 假设刚体\(S1\)及与其固连的坐标系\(O_1\)相对于一个固定坐标系\(O_0\)的运动为\(\left(\boldsymbol{d_1^0}, R_1^0\right)\), 另有一刚体\(S2\)及与其固连的坐标系\(O_2\)相对于\(O_1\)系运动为\(\left(\boldsymbol{d_2^1}, R_2^1\right)\) 空间中一点\(p\)在\(O_2\)系中的坐标为\(\boldsymbol{p^2}\), 那么点\(p\)在\(O_1\)系和\(O_0\)系中的坐标\(\boldsymbol{p^1}\)、\(\boldsymbol{p^0}\)为: $$ \begin{equation}\label{f23} \boldsymbol{p^1}=R_2^1\boldsymbol{p^2}+\boldsymbol{d_2^1} \end{equation} $$ $$ \begin{equation}\label{f24} \boldsymbol{p^0}=R_1^0\boldsymbol{p^1}+\boldsymbol{d_1^0} \end{equation} $$ 将式(\(\ref{f23}\))代入式(\(\ref{f24}\))得到: $$ \begin{equation}\label{f25} \boldsymbol{p^0}=R_1^0R_2^1\boldsymbol{p^2} + \left(R_1\boldsymbol{d_2^1} + \boldsymbol{d_1^0}\right) \end{equation} $$ 因此刚体\(S2\)及与其固连的坐标系\(O_2\)相对于固定坐标系\(O_0\)的运动\(\left(\boldsymbol{d_2^0}, R_2^0\right)\)表示如下: $$ \begin{align}\label{f26} \boldsymbol{p^0} & =R_2^0\boldsymbol{p^2}+\boldsymbol{d_2^0} \\ \boldsymbol{d_2^0} & = R_1\boldsymbol{d_2^1} + \boldsymbol{d_1^0} \\ R_2^0 & = R_1^0R_2^1 \\ \end{align} $$ 如果涉及到多个刚体之间的相互运动式(\(\ref{f25}\))将会变得很长,现在我们引入齐次坐标变换简化这一问题。 考察式(\(\ref{f26}\)),不难得到如下的矩阵相乘关系: $$ \begin{equation}\label{f29} \begin{bmatrix} R_1^0 & \boldsymbol{d_1^0} \\ \boldsymbol{0} & 1 \end{bmatrix} \begin{bmatrix} R_2^1 & \boldsymbol{d_2^1} \\ \boldsymbol{0} & 1 \end{bmatrix} = \begin{bmatrix} R_1^0R_2^1 & R_1\boldsymbol{d_2^1} + \boldsymbol{d_1^0} \\ \boldsymbol{0} & 1 \end{bmatrix} \end{equation} $$ 式(\(\ref{f29}\))右边的矩阵块\(R_1^0R_2^1\)和\(R_1\boldsymbol{d_2^1} + \boldsymbol{d_1^0}\)正是式(\(\ref{f26}\)) 中的\(R_2^0\)和\(\boldsymbol{d_2^0}\)。因此刚体运动\(\left(\boldsymbol{d}, R\right)\)还可以写成矩阵的形式: $$ \begin{equation}\label{f30} H = \begin{bmatrix} R & \boldsymbol{d} \\ \boldsymbol{0} & 1 \end{bmatrix} ; R \in SO(3), \boldsymbol{d} \in \mathbb{R}^3 \end{equation} $$ 人们把形如式(\(\ref{f30}\))所描述的变换称为齐次变换(homogeneous transformation)。 \(H\)是一个\(4\times4\)的矩阵,它与一个\(SE(3)\)所描述的变换并没有什么区别,在不产生歧义的情况下两者可以互换。 由于旋转矩阵\(R\)是一个行列式为1的正交矩阵,所以矩阵\(H\)的逆为: $$ \begin{equation}\label{f31} H^{-1} = \begin{bmatrix} R^T & -R^T\boldsymbol{d} \\ \boldsymbol{0} & 1 \end{bmatrix} \end{equation} $$ 相应地,我们对空间中点的坐标做如下扩展: $$ \begin{equation}\label{f32} \boldsymbol{P^i} = \begin{bmatrix} \boldsymbol{p^i} \\ 1 \end{bmatrix} \end{equation} $$ 其中,\(\boldsymbol{P^i}\)称为点\(p\)在\(O_i\)系下坐标\(\boldsymbol{p^i}\)的齐次表示。 我们可以容易地根据式(\(\ref{func1}\))得到刚体的齐次坐标变换形式下的运动描述: $$ \begin{equation}\label{f33} \boldsymbol{P^0} = H_1^0\boldsymbol{P^1} \end{equation} $$ 关于齐次坐标变换的链乘规则与我们在第三节中类似,其推导过程是一样的。 若第n+1次变化\(H\)是相对于坐标系\(O_i, i=0,1,...,n\)的变换,那么有变换关系: $$ \begin{equation}\label{f34} H_{n+1}^0 = H_i^0HH_n^i \end{equation} $$ 特别的,当\(i=n\)时有: $$ \begin{equation}\label{f35} H_{n+1}^0 = H_n^0H \end{equation} $$ 当\(i=0\)时有: $$ \begin{equation}\label{f36} H_{n+1}^0 = HH_n^0 \end{equation} $$
5. 总结
通过以上的分析,我们知道刚体具有6个自由度,其运动可以归结为一个平移运动和一个旋转运动。 旋转变换矩阵描述了空间中同一点在两个坐标系下的映射关系,可以用来描述刚体的旋转运动。 最后,综合刚体的平移运动和旋转运动,我们得到了齐次坐标变换。该变换具有和旋转变换类似的性质, 使得我们在研究刚体运动时,可以通过研究刚体相对于各个参考坐标系下的运动间接地得到其在世界坐标系下的运动。