机器人运动学基础:空间描述、坐标变换、正运动学与逆运动学
核心原理:从“位置”到“位姿”的数学抽象
机器人运动学研究的核心问题是:关节空间与操作空间之间的映射关系。关节空间由各关节变量(旋转角θ或平移量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
这正是后续正运动学计算的数学基础。
坐标变换的三种基本操作
坐标变换是运动学计算的“算术”。在实际问题中,我们经常需要在不同坐标系之间转换点的描述。设某点 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轴工业机器人为例,其正运动学计算流程如下:
- 建立各连杆坐标系,确定D-H参数表;
- 根据参数表写出每个关节的变换矩阵 Tii-1;
- 依次相乘得到 T60 = T10 · T21 · … · T65;
- 从结果矩阵中提取末端位置矢量与旋转矩阵。
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)为例,其逆运动学求解可分解为两步:
- 位置反解:由腕部中心位置(末端位置减去腕部偏移)求解前三个关节角θ₁, θ₂, θ₃;
- 姿态反解:由旋转矩阵 R60 与已求出的前三个关节角,计算腕部三个关节角θ₄, θ₅, θ₆。
求解过程中常遇到奇异位形,例如当θ₅=0时,关节4和关节6的旋转轴重合,导致无穷多组解。此时需要引入额外的约束条件(如最小关节运动量)来获得唯一解。
案例复盘:六轴机器人运动学求解全流程
假设某六轴关节型机器人,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参数表与正逆运动学函数封装为独立模块,便于后续调试与复用。