4、机械臂结构参数:D-H 参数法(标准与改进),建立连杆坐标系,推导正运动学模型

机械臂的正运动学建模是运动规划与控制的基础,其核心任务是根据各关节角度求解末端执行器在基坐标系中的位姿。在众多建模方法中,Denavit-Hartenberg(D-H)参数法以其系统性和规范性成为工业与学术领域最通用的工具。本章将深入剖析标准D-H法(SDH)与改进D-H法(MDH)的数学本质、坐标系建立规则、参数定义差异,并给出完整的正运动学推导流程。理解这两种方法的区别与适用场景,对于后续的雅可比矩阵计算、奇异性分析以及轨迹规划至关重要。

D-H参数法坐标系建立与正运动学推导链路 标准D-H法 (SDH) 坐标系{i}固连于连杆i远端 • Zi轴沿关节轴i+1方向 • Xi轴沿Zi-1与Zi公垂线 • 原点在公垂线与Zi交点 参数定义(i从1到n) ai: 沿Xi,Zi→Zi+1距离 αi: 绕Xi,Zi→Zi+1转角 di: 沿Zi-1,Xi-1→Xi距离 θi: 绕Zi-1,Xi-1→Xi转角 变换: Ti=RotZ(θi)·TransZ(di)·TransX(ai)·RotX(αi) 对比 改进D-H法 (MDH) 坐标系{i}固连于连杆i近端 • Zi轴沿关节轴i方向 • Xi轴沿Zi与Zi+1公垂线 • 原点在公垂线与Zi交点 参数定义(i从1到n) ai-1: 沿Xi-1,Zi-1→Zi距离 αi-1: 绕Xi-1,Zi-1→Zi转角 di: 沿Zi,Xi-1→Xi距离 θi: 绕Zi,Xi-1→Xi转角 变换: Ti=RotX(αi-1)·TransX(ai-1)·RotZ(θi)·TransZ(di) 正运动学推导流程 ① 确定关节轴与连杆编号 ② 建立各连杆坐标系 ③ 填写D-H参数表 ④ 计算相邻变换矩阵Ti ⑤ 连乘得T0n=T1·T2···Tn ⑥ 提取末端位置与姿态 验证:代入零位角度 检查是否与机械臂初始位姿一致 检查旋转矩阵正交性

上图清晰地展示了标准D-H法与改进D-H法在坐标系附着位置和参数定义上的核心差异。标准D-H法将坐标系{i}固连在连杆的远端(即关节i+1处),而改进D-H法则将坐标系{i}固连在连杆的近端(即关节i处)。这一差异直接导致了两者在变换矩阵乘法顺序上的不同。下面我们将从核心原理、操作流程、案例拆解和常见误区四个维度展开详细论述。

4.1 核心原理:D-H参数法的数学本质与几何意义

D-H参数法的本质是用四个独立参数(a、α、d、θ)来描述相邻两个连杆坐标系之间的空间变换关系。这四个参数分别对应一次沿X轴的平移、一次绕X轴的旋转、一次沿Z轴的平移和一次绕Z轴的旋转。通过这四个参数的组合,可以唯一确定相邻坐标系间的齐次变换矩阵,从而将复杂的空间几何关系转化为代数运算。

在标准D-H法中,变换矩阵的构建顺序为:先绕Zi-1轴旋转θi,再沿Zi-1轴平移di,然后沿Xi轴平移ai,最后绕Xi轴旋转αi。其数学表达式为:

T_i = RotZ(θ_i) · TransZ(d_i) · TransX(a_i) · RotX(α_i)

而改进D-H法则采用不同的顺序:先绕Xi-1轴旋转αi-1,再沿Xi-1轴平移ai-1,然后绕Zi轴旋转θi,最后沿Zi轴平移di。其表达式为:

T_i = RotX(α_{i-1}) · TransX(a_{i-1}) · RotZ(θ_i) · TransZ(d_i)

从几何角度看,标准D-H法的参数ai和αi描述的是连杆i自身的几何属性(长度和扭转角),而di和θi描述的是相邻连杆间的相对位置关系。改进D-H法则将ai-1和αi-1定义为连杆i-1的属性,di和θi描述关节i的运动。这种差异在树形结构或闭链机构中尤为明显,改进D-H法因其坐标系附着在近端,更容易处理分支机构的建模。

知识结构对比表:标准D-H法与改进D-H法

对比维度标准D-H法 (SDH)改进D-H法 (MDH)
坐标系附着位置连杆远端(关节i+1处)连杆近端(关节i处)
Z轴方向沿关节轴i+1沿关节轴i
参数下标ai, αi, di, θiai-1, αi-1, di, θi
变换顺序RotZ→TransZ→TransX→RotXRotX→TransX→RotZ→TransZ
适用场景串联开链机器人(如6轴工业机械臂)树形结构、闭链机构、移动机器人
参数辨识难度相对简单,参数物理意义直观对并联机构更友好,但参数下标易混淆

4.2 判断方法与操作流程:从机械结构到D-H参数表的完整步骤

建立D-H坐标系并推导正运动学模型,需要遵循一套严谨的操作流程。首先,需要根据机械臂的实际结构确定关节轴线和连杆编号。通常,基座为连杆0,末端执行器为连杆n,关节i连接连杆i-1和连杆i。然后,按照以下步骤建立坐标系:

  1. 确定Z轴方向:对于旋转关节,Zi-1轴沿关节轴i的旋转方向(右手定则);对于移动关节,Zi-1轴沿移动方向。
  2. 确定原点位置:对于标准D-H法,原点Oi位于Zi-1轴与Zi轴的公垂线与Zi轴的交点处;若Zi-1与Zi相交,则原点取在交点处。
  3. 确定X轴方向:Xi轴沿Zi-1与Zi的公垂线方向,由关节i指向关节i+1。
  4. 确定Y轴方向:根据右手定则,Yi = Zi × Xi。
  5. 填写参数表:根据坐标系间的几何关系,逐一确定ai、αi、di、θi的值。

在填写参数表时,需要注意几个关键判断点:当两相邻关节轴平行时,公垂线不唯一,此时可任意选择使di为零的位置;当两轴相交时,ai为零;当两轴垂直时,αi为±90°。这些特殊情况在工业机器人中非常常见,例如大多数6轴机器人的关节2和关节3轴线平行,关节4和关节5轴线垂直。

实战经验:在MATLAB中建立D-H参数表时,建议使用结构体数组或表格(table)数据类型,将每个连杆的四个参数作为一行存储。这样便于后续批量计算变换矩阵,也方便参数修改和调试。例如:dh_params = [a1 alpha1 d1 theta1; a2 alpha2 d2 theta2; ...]。

4.3 案例拆解:六自由度关节型机械臂的正运动学建模

以典型的六自由度关节型工业机械臂(如ABB IRB 120或KUKA KR6)为例,其结构特点为:前三个关节决定末端位置,后三个关节决定末端姿态(腕部)。我们采用标准D-H法建立其运动学模型。该机械臂的D-H参数表如下:

连杆iai (mm)αi (°)di (mm)θi (°)
10-90290θ1
227000θ2-90
370-900θ3
4090302θ4
50900θ5
60072θ6

注意,连杆2的θ2参数中包含了-90°的偏置,这是为了确保当机械臂处于零位(所有关节角为0)时,末端执行器指向正上方。在MATLAB中,我们可以编写如下代码计算正运动学:

% 定义D-H参数
a = [0, 270, 70, 0, 0, 0];
alpha = [-pi/2, 0, -pi/2, pi/2, pi/2, 0];
d = [290, 0, 0, 302, 0, 72];
theta = [0, -pi/2, 0, 0, 0, 0]; % 零位角度

% 计算变换矩阵
T = eye(4);
for i = 1:6
    Ti = [cos(theta(i)), -sin(theta(i))*cos(alpha(i)), sin(theta(i))*sin(alpha(i)), a(i)*cos(theta(i));
          sin(theta(i)), cos(theta(i))*cos(alpha(i)), -cos(theta(i))*sin(alpha(i)), a(i)*sin(theta(i));
          0, sin(alpha(i)), cos(alpha(i)), d(i);
          0, 0, 0, 1];
    T = T * Ti;
end
disp('末端位姿矩阵 T_06 =');
disp(T);

运行上述代码后,得到的T矩阵即为末端执行器在基坐标系中的位姿。通过提取T矩阵的前三行前三列得到旋转矩阵R,前三行第四列得到位置向量p。例如,在零位时,末端位置应为[270+70, 0, 290+302+72] = [340, 0, 664](单位mm),旋转矩阵应为单位阵。这个结果可以用于验证建模的正确性。

风险提示:在推导过程中,最常见的错误是混淆标准D-H和改进D-H的参数下标。例如,在改进D-H法中,ai-1和αi-1属于连杆i-1,而θi和di属于关节i。如果混用,会导致变换矩阵完全错误。建议在编写代码时,将参数表与坐标系定义图对照检查。

4.4 常见误区与总结复盘

在D-H参数法的学习与应用中,初学者常陷入以下几个误区:

  • 坐标系方向判断错误:Z轴方向必须严格沿关节轴方向,且旋转正方向遵循右手定则。若Z轴方向取反,会导致θ角符号错误。
  • 公垂线选择不当:当两相邻Z轴平行时,公垂线有无数条,此时应选择使di=0的简化方案,但需注意这会影响后续连杆的坐标系原点位置。
  • 参数单位混淆:a和d的单位是长度(mm或m),α和θ的单位是角度(°或rad)。在MATLAB中,三角函数默认使用弧度,需统一转换。
  • 忽略关节偏置:许多工业机器人在D-H参数表中包含固定的角度偏置(如案例中的θ2-90°),这是为了定义零位姿态。若忽略偏置,正运动学结果将整体旋转。

总结复盘时,建议采用以下验证策略:首先,将全部关节角设为零,检查末端位姿是否与机械臂的实际零位一致;其次,逐一单独转动某个关节,观察末端位置的变化轨迹是否合理(如旋转关节应产生圆弧轨迹);最后,使用MATLAB Robotics Toolbox中的SerialLink对象进行交叉验证,对比手动推导与工具箱计算的结果。

复盘清单:

  • □ 所有Z轴是否沿关节轴方向?
  • □ 所有X轴是否沿公垂线方向?
  • □ 参数表中的a、α、d、θ是否与坐标系图一一对应?
  • □ 变换矩阵的乘法顺序是否正确(SDH: RZ·TZ·TX·RX)?
  • □ 零位验证是否通过?
  • □ 单关节运动验证是否通过?

通过本章的学习,读者应能够独立完成任意串联机械臂的D-H建模与正运动学推导。在下一阶段的课程中,我们将基于此模型进一步讨论逆运动学求解与轨迹规划算法。掌握D-H参数法的精髓,不仅在于记住公式,更在于理解其几何意义和适用边界,这样才能在实际工程中灵活运用,避免因建模错误导致的控制事故。