数学基础回顾:向量、矩阵、叉积、点积、坐标变换、旋转矩阵、齐次变换矩阵及其在机器人运动学中的应用

机器人动力学与建模仿真的核心,是描述刚体在三维空间中的位置、姿态以及它们随时间的变化规律。无论是六轴工业机械臂的轨迹规划,还是移动机器人的里程计解算,其底层数学工具都高度统一:向量与矩阵用于表达物理量,点积与叉积用于计算投影和力矩,旋转矩阵与齐次变换矩阵则用于描述坐标系之间的映射关系。本章将系统梳理这些数学工具,并重点阐明它们在机器人运动学(正解、逆解、速度雅可比)中的具体落点,为后续的动力学建模(拉格朗日方程、牛顿-欧拉递推)奠定坚实的符号与逻辑基础。

机器人运动学数学工具关系图 刚体位姿描述 位置向量 + 姿态旋转矩阵 向量运算基础 • 点积:投影、功、能量 • 叉积:力矩、角速度、法向量 • 模长与单位化 • 向量微积分 坐标变换工具 • 旋转矩阵 R (SO(3)) • 齐次变换矩阵 T (SE(3)) • 欧拉角 / 四元数 • 平移 + 旋转复合 提供位置/方向物理量 提供坐标系映射 机器人运动学核心应用 正运动学 T = T₁·T₂·T₃… 关节角 → 末端位姿 逆运动学 解析法 / 数值法 末端位姿 → 关节角 速度雅可比 J(q) 矩阵 关节速度 → 末端速度 位姿描述是运动学求解的基础 图:机器人运动学数学工具关系图 — 向量/矩阵提供物理量,旋转/齐次矩阵提供坐标映射,共同支撑运动学三大核心问题

3.1 向量与矩阵:机器人建模的“语言”

3.1.1 核心原理:从标量到多维空间

在机器人学中,单一标量无法描述三维空间中的位置、速度或力。向量(Vector)是既有大小又有方向的量,通常用列矩阵表示,例如位置向量 p = [x, y, z]T。矩阵(Matrix)则是线性变换的紧凑表示,用于描述旋转、缩放、投影等操作。在机器人运动学中,矩阵的乘法天然对应坐标变换的复合,这是齐次变换矩阵能够串联多个关节的基础。

3.1.2 点积与叉积:物理意义的几何解释

点积(内积)定义为 a·b = |a||b|cosθ,其结果是一个标量。在机器人学中,点积用于计算力在位移方向上的做功(W = F·d),以及判断两个向量是否正交(点积为零)。叉积(外积)定义为 a×b = |a||b|sinθ·n,其结果是一个垂直于原两向量所在平面的新向量。叉积在机器人学中至关重要:力矩 τ = r×F,角速度与线速度的关系 v = ω×r,以及雅可比矩阵中旋转分量的构造都依赖叉积。

运算类型 数学定义 几何意义 机器人学典型应用
点积 a·b = axbx + ayby + azbz 投影长度 × 模长 功的计算、正交性判断、余弦相似度
叉积 a×b = (aybz-azby, azbx-axbz, axby-aybx) 面积向量,方向遵循右手定则 力矩、角速度、法向量、雅可比旋转块
矩阵乘法 C = A·B,cij = Σaikbkj 线性变换的复合 旋转矩阵串联、齐次变换复合
经验提示:在编程实现时,叉积常通过反对称矩阵(Skew-symmetric Matrix)表示,即 a×b = [a]×·b,其中 [a]× 是一个 3×3 矩阵。这种表示在推导速度雅可比和动力学方程时非常简洁,建议读者熟练掌握。

3.2 旋转矩阵与坐标变换

3.2.1 核心原理:SO(3) 群与正交约束

旋转矩阵 R ∈ SO(3) 描述了两个坐标系之间的姿态关系,满足正交性 RTR = I 和行列式 det(R) = +1。旋转矩阵的每一列表示被旋转坐标系各轴在原坐标系中的方向余弦。例如,绕 Z 轴旋转 θ 角的旋转矩阵为:

Rz(θ) = [cosθ  -sinθ  0;
          sinθ   cosθ  0;
          0      0     1]

旋转矩阵的逆等于其转置(R-1 = RT),这一性质使得坐标反变换变得极为简单。

3.2.2 操作流程:坐标变换的标准步骤

  1. 确定参考坐标系:明确是固定坐标系(世界系)还是运动坐标系(工具系)。
  2. 选择旋转顺序:固定角(Fixed Angles)与欧拉角(Euler Angles)的旋转顺序不同,结果也不同。例如 ZYX 欧拉角与 XYZ 固定角互为转置关系。
  3. 构造旋转矩阵:根据旋转轴和角度,使用基本旋转矩阵 Rx、Ry、Rz 的乘积。
  4. 应用变换:对于点 p 在新坐标系中的坐标 p',有 p' = R·p(主动旋转)或 p' = RT·p(被动旋转),需注意约定。

3.2.3 案例拆解:六轴机械臂腕部姿态描述

考虑一个六轴关节臂的腕部,其姿态由最后三个关节决定。假设末端工具坐标系 {T} 相对于腕部坐标系 {W} 的姿态为:先绕 ZW 旋转 30°,再绕新的 Y 轴旋转 45°,最后绕新的 X 轴旋转 60°(ZYX 欧拉角)。则旋转矩阵为:

R = Rz(30°) · Ry(45°) · Rx(60°)

计算得到的具体数值矩阵即为工具坐标系在腕部坐标系中的姿态描述。若已知腕部在世界系中的姿态 RW,则工具在世界系中的姿态为 RT = RW · R。这种复合规则是正运动学的基础。

常见误区:旋转矩阵的乘法不满足交换律!R1·R2 ≠ R2·R1。在实际编程中,务必确认旋转顺序是“相对固定坐标系”还是“相对当前坐标系”,否则会导致姿态错误。建议在代码注释中明确写出旋转顺序和参考系。

3.3 齐次变换矩阵:统一位置与姿态

3.3.1 核心原理:SE(3) 与 4×4 矩阵

齐次变换矩阵 T ∈ SE(3) 将旋转和平移统一在一个 4×4 矩阵中:

T = [ R   p ;
      0   1 ]

其中 R 是 3×3 旋转矩阵,p 是 3×1 平移向量。齐次变换矩阵的逆为:

T⁻¹ = [ Rᵀ  -Rᵀ·p ;
         0    1    ]

这一形式使得坐标变换的复合(T13 = T12·T23)和求逆运算变得非常高效,是机器人运动学正解的标准工具。

3.3.2 操作流程:建立 DH 参数表与正运动学

Denavit-Hartenberg(DH)参数法是最常用的运动学建模方法。其流程为:

  1. 为每个关节建立坐标系(Z 轴沿关节轴方向)。
  2. 确定四个 DH 参数:ai-1(连杆长度)、αi-1(连杆扭转角)、di(关节偏距)、θi(关节角)。
  3. 构造相邻坐标系的齐次变换矩阵 Tii-1 = Rx(αi-1)·Dx(ai-1)·Rz(θi)·Dz(di)。
  4. 正运动学:Tn0 = T10·T21·…·Tnn-1。

3.3.3 实战场景:平面两连杆机械臂的正解

考虑一个平面两连杆机械臂,连杆长度分别为 L1 = 1.0m,L2 = 0.8m,关节角 θ1 = 30°,θ2 = 45°。使用 DH 参数法,各关节的齐次变换矩阵为:

T₁⁰ = [cos30  -sin30  0  L₁cos30;
        sin30   cos30  0  L₁sin30;
        0       0      1  0;
        0       0      0  1]

T₂¹ = [cos45  -sin45  0  L₂cos45;
        sin45   cos45  0  L₂sin45;
        0       0      1  0;
        0       0      0  1]

末端位置为 T₂⁰ = T₁⁰·T₂¹ 的平移部分,计算得:

x = L₁cosθ₁ + L₂cos(θ₁+θ₂) = 1.0×0.866 + 0.8×cos75° ≈ 1.073m
y = L₁sinθ₁ + L₂sin(θ₁+θ₂) = 1.0×0.5 + 0.8×sin75° ≈ 1.273m

该结果与几何法完全一致,验证了齐次变换矩阵的正确性。

复盘要点:齐次变换矩阵的核心优势在于“链式法则”——多个关节的变换只需连续矩阵乘法即可得到末端位姿。在仿真中,建议使用矩阵库(如 Eigen、NumPy)直接计算,避免手写三角函数展开,以减少数值误差。

3.4 常见误区与总结复盘

误区类型 错误描述 正确做法
旋转顺序 混淆固定角与欧拉角的旋转顺序 明确标注“绕固定轴”或“绕当前轴”,使用 ZYX 等标准约定
矩阵乘法方向 将 T12·T23 写成 T23·T12 牢记“从右到左”的变换顺序,先应用右侧矩阵
叉积方向 使用左手定则判断叉积方向 统一使用右手定则,注意坐标系是右手系
齐次矩阵求逆 直接对 4×4 矩阵求逆 利用分块性质:RT 和 -RTp,避免数值不稳定