建立标准DH (Standard DH) 坐标系是机器人建模中最关键、也最容易出错的步骤。如果坐标系建错了,后续算出来的 全都会错,导致正逆运动学完全失效。
标准 DH 的核心逻辑是:坐标系 建立在连杆 的末端(即关节 的轴线上)。
第一阶段:画轴线 (确定 Z 轴)
规则: 轴位于关节 的轴线上。
-
标识关节轴线:
-
画出每一个关节(Joint 1, Joint 2, … Joint n)的运动轴线。
-
如果是旋转关节,轴线就是旋转中心轴。
-
如果是移动关节,轴线就是伸缩移动的方向。
-
-
确定 Z 轴方向:
-
:沿 关节 1 的轴线。
-
:沿 关节 2 的轴线。
-
…
-
:沿 关节 的轴线。
-
…
-
:沿 关节 的轴线。
-
(末端):通常没有关节 了,所以 可以任意定义,但习惯上让它与 平行,或者指向工具的进给方向。
-
第二阶段:找公垂线 (确定原点 和 X 轴)
这是最难的一步。我们需要确定坐标系 的原点 和 轴。
核心原则: 必须同时垂直于 和 (即沿着公垂线方向)。
我们需要处理 和 之间的三种空间关系:
情况 1:两轴异面(既不平行也不相交)
-
找公垂线:在空间中,异面直线之间只有一条最短的公垂线。
-
确定原点 :公垂线与当前轴 的交点,就是坐标系 的原点。
-
确定 轴:沿着公垂线,从 指向 。
情况 2:两轴平行
-
找公垂线:平行线之间有无数条公垂线。
-
确定原点 :
-
通常选择一条公垂线,使得它通过前一个坐标系的原点(这样 ,简化计算)。
-
或者根据机器人的物理对称性选择一个明显的“中心”。
-
-
确定 轴:沿着选定的公垂线,从 指向 。
情况 3:两轴相交
-
确定原点 :两条轴线的交点就是原点。
-
确定 轴:
-
根据叉乘规则:(或者反方向)。
-
也就是垂直于 和 构成的平面。
-
第三阶段:推导参数 (提取 )
现在坐标系画好了,我们只需要“看图说话”,量出相邻两个坐标系 和 之间的 4 个参数。
请记住口诀:“先两轴,后两面”。
1. 连杆长度 (Link Length)
-
定义:沿 轴,从 到 的距离。
-
测量:就是公垂线的长度。
-
正负号:永远非负(因为 就是沿着公垂线定义的)。
2. 连杆扭转角 (Link Twist)
-
定义:绕 轴,从 旋转到 的角度。
-
测量:把 平移过来,看它转多少度能和 重合。
-
正负号:右手定则(大拇指指向 ,四指从 抓向 )。
3. 关节偏置 (Link Offset)
-
定义:沿 轴,从 到 的距离。
-
测量:两个公垂线(轴)在 轴上的截距。
-
注意:如果是移动关节,这个 就是变量 。
4. 关节角 (Joint Angle)
-
定义:绕 轴,从 旋转到 的角度。
-
测量:两个 轴的夹角。
-
注意:如果是转动关节,这个 就是变量 (当机器人处于初始姿态时,算出来的常数部分就是 offset)。
示例:如何处理 Base Frame ?
这也是新手常犯错的地方。标准 DH 规定:
-
沿关节 1 轴线。
-
原点 可以任意选择(通常选在地面或者底座中心)。
-
怎么定?
-
为了简化 的计算,通常让 与 平行(当关节1角度为0时)。
-
这样初始状态下 。
-
总结检查表
| 步骤 | 动作 | 结果 |
|---|---|---|
| 1 | 标出所有关节轴 | 得到 |
| 2 | 找 和 的公垂线 | 得到 的方向 |
| 3 | 找公垂线与 的交点 | 得到原点 |
| 4 | 补全 (右手定则) | 得到完整坐标系 |
| 5 | 量 | 方向上 轴间距 |
| 6 | 量 | 绕 旋转看 夹角 |
| 7 | 量 | 方向上 轴间距 |
| 8 | 量 | 绕 旋转看 夹角 |
建立好坐标系后,将提取出的参数填入 Link([theta, d, a, alpha]) 即可完成建模。