4、机械臂运动学基础:D-H参数模型、连杆坐标系建立规则与正运动学推导
机械臂运动学研究的核心问题是:已知各关节角度,求解末端执行器在三维空间中的位姿(位置与姿态),即正运动学问题。解决这一问题的经典工具是Denavit-Hartenberg(D-H)参数模型。D-H模型通过四个参数(连杆长度a、连杆转角α、关节距离d、关节角θ)唯一确定相邻连杆坐标系之间的变换关系,从而将复杂的空间几何问题转化为矩阵连乘问题。本章将系统讲解D-H参数的定义、连杆坐标系的建立规则,并推导六轴机械臂的正运动学方程。
4.1 D-H参数模型的核心原理
D-H参数模型由Jacques Denavit和Richard Hartenberg于1955年提出,其核心思想是在机械臂的每个连杆上固连一个坐标系,通过四个参数描述相邻连杆坐标系之间的相对位姿关系。这四个参数中,a和α描述连杆自身的几何属性,d和θ描述相邻连杆之间的连接关系。对于旋转关节,θ是关节变量;对于移动关节,d是关节变量。
标准D-H模型(Standard D-H)与改进D-H模型(Modified D-H)的主要区别在于坐标系固连的位置不同。标准D-H将坐标系i固连在连杆i的远端(关节i+1处),而改进D-H将坐标系i固连在连杆i的近端(关节i处)。两种模型在建立坐标系时的规则略有差异,但最终推导出的末端位姿结果一致。实际工程中,UR、KUKA等主流机器人厂商多采用改进D-H模型,而许多经典教材(如Craig的《机器人学导论》)采用标准D-H模型。本章以标准D-H模型为例进行推导。
4.2 连杆坐标系建立规则
建立连杆坐标系是应用D-H模型的第一步,也是最容易出错的一步。以下是标准D-H模型的坐标系建立规则:
- 确定关节轴:找出所有关节的旋转轴(或移动方向),用Z轴表示。关节i的轴线为Zi-1轴。
- 确定原点:坐标系{i}的原点位于Zi-1轴与Zi轴的公垂线与Zi轴的交点处。若两轴相交,则原点取在交点处。
- 确定X轴:Xi轴沿Zi-1轴与Zi轴的公垂线方向,由关节i指向关节i+1。若两轴相交,则Xi轴垂直于两轴所在平面。
- 确定Y轴:由右手定则确定,Yi = Zi × Xi。
- 基座坐标系{0}:固定不动,Z0轴沿关节1轴线方向,通常将坐标系{0}与坐标系{1}在初始位形下重合。
- 末端坐标系{n}:通常与最后一个连杆坐标系重合,或根据工具中心点(TCP)进行偏移。
| 步骤 | 操作内容 | 注意事项 |
|---|---|---|
| 1 | 标注所有关节轴线 | 旋转关节取旋转轴,移动关节取移动方向 |
| 2 | 确定各坐标系原点 | 公垂线与Zi轴交点;相交时取交点 |
| 3 | 确定X轴方向 | 沿公垂线方向;相交时垂直平面 |
| 4 | 确定Y轴方向 | 右手定则,Y = Z × X |
| 5 | 设置基座与末端坐标系 | 基座固定,末端对齐TCP |
4.3 正运动学推导流程
正运动学推导的核心是计算相邻坐标系之间的齐次变换矩阵。对于坐标系{i-1}到坐标系{i}的变换,可以分解为四次基本变换:
T_i = Rot(z, θᵢ) · Trans(z, dᵢ) · Trans(x, aᵢ) · Rot(x, αᵢ)
展开后得到标准D-H变换矩阵:
| cosθᵢ -sinθᵢ·cosαᵢ sinθᵢ·sinαᵢ aᵢ·cosθᵢ |
T_i = | sinθᵢ cosθᵢ·cosαᵢ -cosθᵢ·sinαᵢ aᵢ·sinθᵢ |
| 0 sinαᵢ cosαᵢ dᵢ |
| 0 0 0 1 |
六轴机械臂的正运动学方程即为六个变换矩阵的连乘:
T_06 = T_1 · T_2 · T_3 · T_4 · T_5 · T_6
最终得到的T_06矩阵左上角3×3子矩阵表示末端姿态(旋转矩阵R),右上角3×1子矩阵表示末端位置(平移向量P)。
4.4 六轴机械臂D-H参数表构建案例
以典型的六轴串联关节机械臂(类似UR5构型)为例,其D-H参数表如下:
| 关节i | aᵢ (mm) | αᵢ (°) | dᵢ (mm) | θᵢ (°) | 关节范围 (°) |
|---|---|---|---|---|---|
| 1 | 0 | 90 | 162.5 | θ₁ | -360 ~ 360 |
| 2 | -425 | 0 | 0 | θ₂ | -360 ~ 360 |
| 3 | -392 | 0 | 0 | θ₃ | -360 ~ 360 |
| 4 | 0 | 90 | 133.3 | θ₄ | -360 ~ 360 |
| 5 | 0 | -90 | 99.7 | θ₅ | -360 ~ 360 |
| 6 | 0 | 0 | 99.6 | θ₆ | -360 ~ 360 |
在构建参数表时,需要特别注意a₂和a₃为负值的情况。这是因为坐标系{2}的X轴方向与坐标系{1}的X轴方向相反,导致连杆长度出现负值。这是标准D-H模型中的正常现象,但在实际编程计算时需确保符号正确。
4.5 正运动学计算实例
假设机械臂处于零位(所有关节角为0°),代入上述D-H参数表,计算末端位姿。首先计算各关节的变换矩阵:
T_1 = | 1 0 0 0 |
| 0 0 -1 0 |
| 0 1 0 162.5 |
| 0 0 0 1 |
T_2 = | 1 0 0 -425 |
| 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
T_3 = | 1 0 0 -392 |
| 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
T_4 = | 1 0 0 0 |
| 0 0 -1 0 |
| 0 1 0 133.3 |
| 0 0 0 1 |
T_5 = | 1 0 0 0 |
| 0 0 1 0 |
| 0 -1 0 99.7 |
| 0 0 0 1 |
T_6 = | 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 99.6 |
| 0 0 0 1 |
将六个矩阵连乘,得到末端位姿:
T_06 = | 1 0 0 -817 |
| 0 1 0 0 |
| 0 0 1 495.1 |
| 0 0 0 1 |
结果表明,在零位时,末端位置为(-817, 0, 495.1)mm,姿态与基座坐标系一致。这个结果可以通过几何直觉验证:机械臂完全展开时,末端在X轴负方向延伸817mm(425+392),在Z轴方向累积高度为162.5+133.3+99.7+99.6=495.1mm。
4.6 常见误区与复盘
在D-H参数建模和正运动学推导过程中,工程师常犯以下几类错误:
- 坐标系方向混淆:Z轴方向取反会导致α和d的符号错误。建议在建立坐标系时统一规定Z轴方向,并在参数表中标注。
- 公垂线判断错误:当相邻关节轴平行时,公垂线不唯一;当两轴相交时,a=0。需要仔细分析机械臂的几何结构。
- 矩阵乘法顺序错误:齐次变换矩阵的乘法不满足交换律,必须严格按照从基座到末端的顺序连乘。
- 角度单位混淆:三角函数计算时需统一使用弧度制,D-H参数表中的角度值需转换为弧度。
- 忽略关节偏移:实际机械臂的关节零位通常不在理论零位,需要通过标定获取theta_offset。
正运动学是机械臂控制的基础,后续的逆运动学求解、轨迹规划、动力学分析都建立在正运动学方程之上。掌握D-H参数建模和坐标系建立规则,是进行机械臂算法开发的必备技能。建议读者在理解本章内容后,自行选择一个真实机械臂型号,从官方手册中查找D-H参数,独立完成正运动学推导和代码实现,并通过仿真验证结果。