机器人运动学基础:空间描述、坐标变换、正运动学与逆运动学

核心原理:从“位置”到“位姿”的数学抽象

机器人运动学研究的核心问题是:关节空间与操作空间之间的映射关系。关节空间由各关节变量(旋转角θ或平移量d)构成,而操作空间描述末端执行器在笛卡尔坐标系中的位置与姿态。要建立这种映射,首先需要解决一个基础问题——如何在三维空间中完整描述一个刚体的状态。

一个刚体在空间中的状态包含两部分:位置(3个自由度)与姿态(3个自由度),合称位姿。位置用3×1的位置矢量 p = [x, y, z]T 表示;姿态则用3×3的旋转矩阵 R 描述。旋转矩阵的9个元素并非独立,它满足正交性(RTR = I)和行列式为+1的约束,因此实际只有3个独立参数。将两者组合,得到4×4的齐次变换矩阵:

T = [ R   p ]
    [ 0   1 ]

齐次变换矩阵的妙处在于:它将旋转与平移统一为一次矩阵乘法,使得坐标变换可以连续复合。例如,从基坐标系{0}到末端坐标系{n}的变换可写为:

T_0n = T_01 · T_12 · … · T_(n-1)n

这正是后续正运动学计算的数学基础。

直观理解:旋转矩阵的每一列代表被变换坐标系各轴在参考坐标系中的方向余弦。例如,R的第一列就是局部坐标系的x轴在参考系中的投影。因此,旋转矩阵本质上是“坐标轴的投影表”。
X_B Y_B Z_B 基坐标系 {B} X_E Y_E Z_E 末端坐标系 {E} T_BE = [R_BE | p_BE] 机器人连杆结构 θ₁ θ₂ p_BE = [x, y, z]ᵀ 旋转矩阵 R_BE 描述姿态差异,位置矢量 p_BE 描述原点平移

坐标变换的三种基本操作

坐标变换是运动学计算的“算术”。在实际问题中,我们经常需要在不同坐标系之间转换点的描述。设某点 P 在坐标系{A}中的描述为 AP,在坐标系{B}中的描述为 BP,则变换关系为:

ᵃP = ᴮᴬR · ᴮP + ᴬP_BORG

其中 ᴮᴬR 是{B}相对于{A}的旋转矩阵,ᴬP_BORG 是{B}原点在{A}中的位置。这个公式可分解为三种基本变换的复合:

  • 纯平移变换:两坐标系姿态相同,仅原点有偏移,此时旋转矩阵为单位阵,变换退化为矢量加法。
  • 纯旋转变换:原点重合,仅姿态不同,此时位置矢量为零,变换退化为矩阵乘法。
  • 复合变换:既有平移又有旋转,即一般情况,使用齐次变换矩阵一步完成。

绕固定轴x、y、z旋转的基本旋转矩阵是构造复杂旋转的“积木块”:

R_x(θ) = [1    0     0 ]
         [0  cosθ -sinθ]
         [0  sinθ  cosθ]

R_y(θ) = [cosθ  0  sinθ]
         [0     1    0 ]
         [-sinθ 0  cosθ]

R_z(θ) = [cosθ -sinθ 0]
         [sinθ  cosθ 0]
         [0      0   1]

需要特别注意的是旋转顺序:矩阵乘法不满足交换律,先绕x轴转30°再绕y轴转45°,与先绕y轴转45°再绕x轴转30°的结果完全不同。因此,描述旋转时必须明确是“相对于固定坐标系”还是“相对于当前坐标系”。

正运动学:从关节变量到位姿的映射

正运动学解决“已知各关节角度,求末端位姿”的问题。对于n自由度的串联机器人,其核心方法是Denavit-Hartenberg(D-H)参数法。该方法用4个参数(ai-1, αi-1, di, θi)描述相邻连杆间的位姿关系:

参数含义物理意义
ai-1连杆长度沿Xi-1轴,从Zi-1移动到Zi的距离
αi-1连杆扭转角绕Xi-1轴,从Zi-1旋转到Zi的角度
di连杆偏距沿Zi轴,从Xi-1移动到Xi的距离
θi关节角绕Zi轴,从Xi-1旋转到Xi的角度(旋转关节变量)

相邻坐标系间的齐次变换矩阵为:

T_i(i-1) = R_x(α_{i-1}) · D_x(a_{i-1}) · R_z(θ_i) · D_z(d_i)

将每个关节的变换矩阵依次相乘,即得到末端相对于基座的总变换矩阵。以典型的6轴工业机器人为例,其正运动学计算流程如下:

  1. 建立各连杆坐标系,确定D-H参数表;
  2. 根据参数表写出每个关节的变换矩阵 Tii-1;
  3. 依次相乘得到 T60 = T10 · T21 · … · T65;
  4. 从结果矩阵中提取末端位置矢量与旋转矩阵。
案例:以PUMA 560机器人为例,其D-H参数表中第2、3关节的连杆扭转角α均为-90°,这使得相邻关节轴之间存在正交关系。代入参数后,计算得到的末端变换矩阵中,位置分量为:
p_x = d₆·(c₁c₂₃s₄ + s₁c₄) + a₃·c₁c₂₃ + a₂·c₁c₂
p_y = d₆·(s₁c₂₃s₄ - c₁c₄) + a₃·s₁c₂₃ + a₂·s₁c₂
p_z = d₆·(s₂₃s₄) + a₃·s₂₃ + a₂·s₂ + d₁
其中 c₁=cosθ₁, s₁=sinθ₁, c₂₃=cos(θ₂+θ₃)。可以看到,末端位置是各关节角的非线性函数,这正是逆运动学求解困难的根源。

逆运动学:从期望位姿反解关节变量

逆运动学问题更具挑战性:已知末端期望位姿 Tdesired,求解满足要求的关节变量。与正运动学的唯一解不同,逆运动学可能存在多解、无解或无穷解的情况。求解方法主要分为两类:

  • 解析法(封闭解):通过代数消元或几何分解直接求出关节角表达式。Pieper准则指出:若6自由度机器人满足相邻三关节轴交于一点(球形腕),则存在封闭解。工业机器人大多满足此条件。
  • 数值法(迭代法):如牛顿-拉夫森法、雅可比迭代法,适用于无解析解的机器人构型。通过不断迭代逼近目标位姿,但计算量大且可能陷入局部极值。

以典型的球形腕机器人(如PUMA 560)为例,其逆运动学求解可分解为两步:

  1. 位置反解:由腕部中心位置(末端位置减去腕部偏移)求解前三个关节角θ₁, θ₂, θ₃;
  2. 姿态反解:由旋转矩阵 R60 与已求出的前三个关节角,计算腕部三个关节角θ₄, θ₅, θ₆。

求解过程中常遇到奇异位形,例如当θ₅=0时,关节4和关节6的旋转轴重合,导致无穷多组解。此时需要引入额外的约束条件(如最小关节运动量)来获得唯一解。

常见误区:初学者容易混淆“固定坐标系旋转”与“当前坐标系旋转”。当描述“绕固定轴XYZ依次旋转”时,旋转矩阵按R = R_z · R_y · R_x左乘;而“绕当前坐标系旋转”时,按R = R_x · R_y · R_z右乘。两者结果互为转置关系。在编写运动学程序前,务必先明确旋转约定,否则会导致末端姿态计算错误。

案例复盘:六轴机器人运动学求解全流程

假设某六轴关节型机器人,D-H参数已标定,现要求末端到达位置(0.5, 0.3, 0.8)m,姿态为绕基坐标Z轴旋转45°。求解过程如下:

步骤1:写出期望齐次变换矩阵
T_desired = [cos45° -sin45°  0  0.5]
            [sin45°  cos45°  0  0.3]
            [  0       0      1  0.8]
            [  0       0      0   1 ]

步骤2:检查是否满足Pieper准则(本机器人满足)
步骤3:位置反解
  - 腕部中心 = 末端位置 - R·[0,0,d₆]ᵀ
  - 由腕部中心坐标求θ₁ = atan2(p_y, p_x)
  - 利用余弦定理求θ₃,再求θ₂
步骤4:姿态反解
  - 计算 R_36 = (R_03)ᵀ · R_06
  - 从R_36中提取θ₄, θ₅, θ₆
步骤5:验证——将求得的关节角代入正运动学,检查是否还原期望位姿

实际调试中,若发现多组解,通常选择“最短行程解”——即各关节相对当前角度变化量最小的那组解,以减少运动时间和能量消耗。同时,应避开奇异位形附近的解,避免关节速度突变。

运动学计算是机器人控制的基础模块,无论是轨迹规划、力控制还是视觉伺服,都依赖准确的正逆运动学模型。建议在工程实践中,将D-H参数表与正逆运动学函数封装为独立模块,便于后续调试与复用。