数学基础:线性代数与向量运算
数学基础:线性代数与向量运算
1.1 引言:线性代数与机器人学的联系
线性代数作为现代数学的基石之一,在机器人学的各个领域发挥着不可替代的作用。从机器人末端执行器的位置描述到姿态控制,从运动学方程的建立到动力学模型的求解,线性代数的概念与方法贯穿于自主机器人研究的所有层面。理解线性代数不仅是掌握机器人学理论的前提,更是进行实际工程实现的必要准备。
在机器人学的语境下,我们经常需要处理大量的多维数据。机器人末端执行器的空间位置由三维坐标描述,关节角度可能涉及六自由度或更多维度的参数配置,传感器采集的环境信息更是包含成百上千个数据点。线性代数提供了一套统一而高效的数学工具,使我们能够以简洁优雅的方式表达和处理这些复杂的多维关系。具体而言,向量为描述机器人的状态和观测提供了基本的数据结构,矩阵则成为表达线性变换、系统方程和坐标转换的标准语言。
本章将系统梳理机器人学所需的线性代数核心知识。我们从向量与矩阵的基本定义出发,逐步深入到行列式、逆矩阵、线性空间、秩以及特征值等核心概念。每一部分都将结合机器人学中的具体应用场景进行阐述,使抽象的数学概念与实际的工程问题形成有机联系。通过本章的学习,读者将建立起扎实的线性代数基础,为后续章节中机器人运动学、动力学和控制理论的深入学习奠定坚实的数学根基。
1.2 向量的定义与基本运算
1.2.1 向量的数学定义
向量是线性代数中最基本的研究对象,它表示既有大小又有方向的量。在数学上,一个$n$维向量可以看作$n$个有序实数的有序组,记作:
$$\mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}$$
其中$v_i$称为向量的第$i$个分量。这种竖排的表示方法称为列向量,是机器人学中最常用的向量形式。相应地,横排的形式称为行向量:$\mathbf{v}^T = [v_1, v_2, \ldots, v_n]$,上标$T$表示转置运算,我们将在后续章节详细介绍转置的概念。
向量$\mathbf{v}$的大小(长度)称为向量的模或范数,定义为:
$$\|\mathbf{v}\| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}$$
当向量的模等于1时,该向量称为单位向量。单位向量在描述方向时特别有用,因为任意非零向量都可以表示为其模与一个单位向量的乘积:$\mathbf{v} = \|\mathbf{v}\| \cdot \hat{\mathbf{v}}$,其中$\hat{\mathbf{v}} = \mathbf{v} / \|\mathbf{v}\|$是与$\mathbf{v}$同方向的单位向量。
1.2.2 向量的加减法与数乘运算
向量的加法和减法定义为对应分量分别相加减。设有两个$n$维向量$\mathbf{a}$和$\mathbf{b}$,则:
$$\mathbf{a} + \mathbf{b} = \begin{bmatrix} a_1 + b_1 \\ a_2 + b_2 \\ \vdots \\ a_n + b_n \end{bmatrix}, \quad \mathbf{a} - \mathbf{b} = \begin{bmatrix} a_1 - b_1 \\ a_2 - b_2 \\ \vdots \\ a_n - b_n \end{bmatrix}$$
向量加法满足交换律和结合律:$\mathbf{a} + \mathbf{b} = \mathbf{b} + \mathbf{a}$,$(\mathbf{a} + \mathbf{b}) + \mathbf{c} = \mathbf{a} + (\mathbf{b} + \mathbf{c})$。这些代数性质在实际计算中非常有用,可以帮助我们简化运算过程。
标量与向量的数乘运算定义为标量与每个分量相乘:
$$k\mathbf{a} = \begin{bmatrix} ka_1 \\ ka_2 \\ \vdots \\ ka_n \end{bmatrix}$$
数乘运算满足分配律:$k(\mathbf{a} + \mathbf{b}) = k\mathbf{a} + k\mathbf{b}$,$(k + l)\mathbf{a} = k\mathbf{a} + l\mathbf{a}$。当标量$k$为负数时,数乘运算会使向量反向。
在机器人学中,向量的加减法有广泛的应用。例如,在描述机械臂末端执行器的位置时,如果已知基坐标系到肩关节的向量$\mathbf{p}_{base}^{shoulder}$和肩关节到肘关节的向量$\mathbf{p}_{shoulder}^{elbow}$,那么从基坐标系原点到肘关节的向量可以通过向量加法得到:$\mathbf{p}_{base}^{elbow} = \mathbf{p}_{base}^{shoulder} + \mathbf{p}_{shoulder}^{elbow}$。这种链式坐标表达的思路贯穿于整个机器人运动学。
1.2.3 向量的点积与叉积
向量的点积(也称为内积、数量积)是两个向量相乘的一种重要形式。设$\mathbf{a}$和$\mathbf{b}$为两个$n$维向量,它们的点积定义为:
$$\mathbf{a} \cdot \mathbf{b} = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n = \sum_{i=1}^{n} a_i b_i$$
点积的结果是一个标量。点积与向量的模和夹角之间存在如下重要关系:
$$\mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos\theta$$
其中$\theta$是向量$\mathbf{a}$和$\mathbf{b}$之间的夹角。这一几何意义使得点积成为判断向量方向关系的有力工具。当$\mathbf{a} \cdot \mathbf{b} = 0$时,两向量相互垂直;当$\mathbf{a} \cdot \mathbf{b} > 0$时,两向量夹角小于90°;当$\mathbf{a} \cdot \mathbf{b} < 0$时,两向量夹角大于90°。
点积在机器人学中有多项重要应用。在力控制中,机器人末端执行器受到的力$\mathbf{F}$在沿某一方向$\mathbf{d}$做功的计算就涉及点积:$W = \mathbf{F} \cdot \mathbf{d} = \|\mathbf{F}\| \|\mathbf{d}\| \cos\theta$。在碰撞检测中,判断两个物体的法向量是否指向相近的方向也依赖点积运算。此外,点积还是计算向量投影的标准方法:向量$\mathbf{a}$在单位向量$\hat{\mathbf{b}}$方向上的投影长度为$\mathbf{a} \cdot \hat{\mathbf{b}}$。
向量的叉积(也称为外积、向量积)是另一种向量乘法形式,但与点积不同,叉积仅在三维空间中有定义。设$\mathbf{a}$和$\mathbf{b}$为两个三维向量,它们的叉积$\mathbf{a} \times \mathbf{b}$仍是一个三维向量,定义为:
$$\mathbf{a} \times \mathbf{b} = \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}$$
叉积的结果向量具有如下几何意义:其方向同时垂直于$\mathbf{a}$和$\mathbf{b}$,且遵循右手定则;其大小为:
$$\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\| \|\mathbf{b}\| \sin\theta$$
其中$\theta$是两向量的夹角。这意味着叉积的大小等于以$\mathbf{a}$和$\mathbf{b}$为邻边的平行四边形的面积。
叉积在机器人学中同样不可或缺。在描述坐标系时,我们通常使用右手坐标系,三个坐标轴的单位向量$\hat{\mathbf{i}}$、$\hat{\mathbf{j}}$、$\hat{\mathbf{k}}$满足:$\hat{\mathbf{i}} \times \hat{\mathbf{j}} = \hat{\mathbf{k}}$,$\hat{\mathbf{j}} \times \hat{\mathbf{k}} = \hat{\mathbf{i}}$,$\hat{\mathbf{k}} \times \hat{\mathbf{i}} = \hat{\mathbf{j}}$。在计算关节力矩时,力与力臂的叉积给出关于该关节的力矩向量。此外,机械臂的速度运动学中,角速度与位置向量的叉积描述了旋转运动的线速度。
1.3 矩阵的定义与基本运算
1.3.1 矩阵的数学定义
矩阵是一个按照矩形阵列排列的数表,是线性代数中最重要的研究对象之一。设有一个$m$行$n$列的矩阵$A$,记作:
$$A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}$$
矩阵$A$可以简洁地表示为$A \in \mathbb{R}^{m \times n}$,表示$A$是实数域上$m \times n$的矩阵。矩阵中第$i$行第$j$列的元素记作$a_{ij}$。当$m = n$时,矩阵称为方阵。一个$n \times n$的方阵称为$n$阶方阵。
在机器人学中,矩阵有广泛的应用。关节角度的雅可比矩阵描述了关节空间速度与操作空间速度之间的线性映射关系;齐次变换矩阵同时表达旋转和平移,用于描述不同坐标系之间的相对位姿;系统的状态空间模型也以矩阵形式给出。这些应用将在后续章节中详细展开。
1.3.2 矩阵的加法与数乘
矩阵的加法要求两个矩阵具有相同的维度。设$A, B \in \mathbb{R}^{m \times n}$,则它们的和$C = A + B$定义为:
$$c_{ij} = a_{ij} + b_{ij}, \quad \forall i = 1, \ldots, m; \quad j = 1, \ldots, n$$
矩阵加法满足交换律和结合律:$A + B = B + A$,$(A + B) + C = A + (B + C)$。此外,矩阵加法还有恒等元素——零矩阵$0 \in \mathbb{R}^{m \times n}$,满足$A + 0 = A$。每个矩阵$A$都有唯一的负矩阵$-A$,使得$A + (-A) = 0$。
矩阵的数乘运算定义为标量与矩阵中每个元素相乘。设$k$为标量,$A \in \mathbb{R}^{m \times n}$,则:
$$kA = \begin{bmatrix} ka_{11} & ka_{12} & \cdots & ka_{1n} \\ ka_{21} & ka_{22} & \cdots & ka_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ ka_{m1} & ka_{m2} & \cdots & ka_{mn} \end{bmatrix}$$
数乘运算满足分配律:$(k + l)A = kA + lA$,$k(A + B) = kA + kB$,以及结合律:$(kl)A = k(lA)$。
1.3.3 矩阵的乘法
矩阵乘法是矩阵运算中最重要也最复杂的运算。两个矩阵$A \in \mathbb{R}^{m \times n}$和$B \in \mathbb{R}^{n \times p}$的乘积$C = AB$是一个$m \times p$的矩阵,其元素定义为:
$$c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}, \quad i = 1, \ldots, m; \quad j = 1, \ldots, p$$
注意,矩阵乘法要求左矩阵的列数等于右矩阵的行数,这一条件称为维度相容性。不满足此条件的两个矩阵不能相乘。
矩阵乘法可以通过向量点积的角度理解:乘积矩阵的第$i$行第$j$列元素等于左矩阵第$i$行与右矩阵第$j$列的点积。这种理解对于手工计算和理解矩阵乘法的本质都很有帮助。
矩阵乘法具有以下重要性质(假设运算维度相容):
- 结合律:$(AB)C = A(BC)$
- 左分配律:$A(B + C) = AB + AC$
- 右分配律:$(A + B)C = AC + BC$
- 标量乘法:$(kA)B = A(kB) = k(AB)$
然而,矩阵乘法不满足交换律,即一般情况下$AB \neq BA$。这一事实在机器人学中非常重要,因为坐标变换的顺序直接影响最终结果。先绕$x$轴旋转再绕$y$轴旋转的结果通常不等于先绕$y$轴旋转再绕$x$轴旋转。
当两个方阵$A$和$B$满足$AB = BA$时,我们称$A$和$B$是可交换的。对角矩阵(主对角线以外的元素皆为0的方阵)具有特殊的性质:它们与任何同阶方阵都可交换。此外,单位矩阵$I_n$与任何$n$阶方阵都可交换:$AI_n = I_nA = A$。
矩阵乘法在机器人学中的应用极为广泛。多个齐次变换矩阵的乘积用于描述复合坐标变换;雅可比矩阵与关节速度向量的乘积给出末端执行器的空间速度;系统的状态转移矩阵与状态向量的乘积描述系统在离散时间步的演化。这些应用充分体现了矩阵乘法作为线性代数核心运算的重要地位。
1.3.4 矩阵的转置
矩阵的转置是将矩阵的行和列互换的运算。设$A \in \mathbb{R}^{m \times n}$,其转置记作$A^T \in \mathbb{R}^{n \times m}$,定义为:
$$(A^T)_{ij} = a_{ji}, \quad \forall i = 1, \ldots, n; \quad j = 1, \ldots, m$$
也就是说,转置后原来第$i$行第$j$列的元素变成了第$j$行第$ i$列的元素。
转置运算具有以下性质:
- $(A^T)^T = A$
- $(A + B)^T = A^T + B^T$
- $(kA)^T = kA^T$
- $(AB)^T = B^T A^T$
- $(A^T)^{-1} = (A^{-1})^T$,当$A$可逆时
当矩阵满足$A^T = A$时,称$A$为对称矩阵。对称矩阵在机器人动力学中具有重要意义,系统惯性矩阵就是一个对称矩阵。当矩阵满足$A^T = -A$时,称$A$为反对称矩阵。反对称矩阵的一个重要性质是其对角线元素全为零。在三维空间中,向量与反对称矩阵存在一一对应关系:给定三维向量$\mathbf{v} = [v_x, v_y, v_z]^T$,其对应的反对称矩阵为:
$$[\mathbf{v}]_\times = \begin{bmatrix} 0 & -v_z & v_y \\ v_z & 0 & -v_x \\ -v_y & v_x & 0 \end{bmatrix}$$
这种对应关系使得叉积运算可以表示为矩阵乘法:$\mathbf{a} \times \mathbf{b} = [\mathbf{a}]_\times \mathbf{b}$,这在机器人学的角速度描述中非常有用。
1.4 行列式的几何意义与计算
1.4.1 行列式的定义
行列式是方阵的一个重要标量函数,它将一个方阵映射到一个实数。对于$n$阶方阵$A$,其行列式记作$\det(A)$或$|A|$。行列式的基础定义涉及逆序数的概念较为抽象,我们先从二阶和三阶行列式的显式公式入手,建立直观理解。
二阶行列式的定义为:
$$\det\begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc$$
三阶行列式可以借助对角线法则计算:
$$\det\begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} = a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{13}a_{22}a_{31} - a_{12}a_{21}a_{33} - a_{11}a_{23}a_{32}$$
对于更高阶的行列式,我们通常采用按行或按列展开的递归方法计算。根据拉普拉斯展开定理,行列式可以按任意一行或一列展开:
$$\det(A) = \sum_{j=1}^{n} (-1)^{i+j} a_{ij} \det(M_{ij})$$
其中$M_{ij}$是删除第$i$行第$j$列后得到的$(n-1) \times (n-1)$子矩阵,称为余子矩阵;$C_{ij} = (-1)^{i+j} \det(M_{ij})$称为代数余子式。
1.4.2 行列式的几何意义
行列式的几何意义是理解其本质的关键。对于二阶矩阵,行列式的绝对值等于由其两个行(列)向量张成的平行四边形的面积。对于三阶矩阵,行列式的绝对值等于由其三个行(列)向量张成的平行六面体的体积。
这一几何意义可以通过向量运算证明。设二维情形下,两个向量$\mathbf{a} = [a_1, a_2]^T$和$\mathbf{b} = [b_1, b_2]^T$构成的平行四边形面积为$S = \|\mathbf{a}\| \|\mathbf{b}\| \sin\theta$。根据叉积的几何意义,在二维中我们考虑向量在三维空间的对应形式,则$S = |a_1 b_2 - a_2 b_1| = |\det[\mathbf{a}, \mathbf{b}]|$。类似地,三维情形下的体积与三阶行列式的关系也可通过混合积推导得出。
行列式的符号同样具有几何意义。当三个向量($\mathbb{R}^3$中)按右手定则排列时,行列式为正;当按左手定则排列时,行列式为负。这一性质在判断坐标系手性、描述刚体旋转方向时非常重要。
1.4.3 行列式的代数性质
行列式具有一系列重要的代数性质,这些性质不仅有助于理论分析,也能大大简化实际计算:
1. 转置不变性:$\det(A^T) = \det(A)$。这一性质意味着行列式关于行和列的性质是对称的。
2. **行(列)线性