第二章 DH参数法建模:标准DH与改进DH的区别、连杆坐标系建立规则、DH参数表填写

各位同学,欢迎来到第二章。上一章我们聊了机器人运动学的基本概念,这一章咱们要动真格的了——DH参数法。

说实话,我刚入行那会儿,看到DH参数表也是一头雾水。四个参数,四个希腊字母,怎么就能描述一个六轴机器人的全部运动?后来做项目做多了才明白,这玩意儿就是机器人的“身份证”。你给它填对了,运动学正解、逆解全都能算;填错了,那机器人跑起来就跟喝醉了似的。

这一章,我会把标准DH和改进DH的区别、坐标系怎么建、参数表怎么填,掰开了揉碎了讲清楚。嗯,咱们开始吧。

2.1 标准DH vs 改进DH:到底差在哪?

先回答一个最基础的问题:为什么会有两种DH?

说白了,就是坐标系挂在哪儿的问题。

  • 标准DH(Classic DH):坐标系挂在连杆的末端(输出端)。
  • 改进DH(Modified DH):坐标系挂在连杆的起始端(输入端)。

你想想看,一个连杆有两个关节——前一个关节和后一个关节。标准DH把坐标系放在后一个关节上,改进DH放在前一个关节上。就这么点区别,但带来的变换顺序完全不同。

核心差异速记:

  • 标准DH:先绕X轴旋转,再沿X轴平移 → 再绕Z轴旋转,再沿Z轴平移。
  • 改进DH:先绕Z轴旋转,再沿Z轴平移 → 再绕X轴旋转,再沿X轴平移。

我在项目中遇到过最坑的一次,就是团队里有人用了标准DH建树形机器人,结果算出来的末端位姿怎么都对不上。折腾了两天,最后发现是DH类型选错了——树形结构必须用改进DH,标准DH只适合串联链。

对比项 标准DH (Classic) 改进DH (Modified)
坐标系位置 连杆末端(后一个关节) 连杆起始端(前一个关节)
变换顺序 RotX → TransX → RotZ → TransZ RotZ → TransZ → RotX → TransX
适用结构 串联链式机器人 串联、树形、闭链均可
参数定义 α、a、θ、d α、a、θ、d(含义相同,顺序不同)

我的建议:如果你刚开始学,或者做的是常规六轴工业机器人,直接用标准DH。教材多、资料全、好调试。但如果你做的是协作机器人、双机械臂或者移动操作臂,改进DH会更灵活。

2.2 连杆坐标系建立规则:四步法

坐标系怎么建?我总结了一个四步法,照着做基本不会错。

  1. 找关节轴:画出每个关节的旋转轴或移动轴。用Z轴表示。
  2. 定原点:相邻两个关节轴的公垂线与当前关节轴的交点,就是原点。
  3. 定X轴:沿着公垂线方向,从当前关节指向下一个关节。
  4. 定Y轴:右手定则,Z轴叉乘X轴得到Y轴。

听起来简单吧?但实际做起来,有几个坑我得提醒你。

我曾经踩过的坑:

  • 两个关节轴平行时,公垂线不唯一。这时候我习惯取前一个关节的原点做垂线。
  • 两个关节轴相交时,公垂线长度为0。X轴方向取两个轴叉乘的方向。
  • 基座坐标系(第0系)可以任意放,但通常和第一个关节的坐标系对齐,方便计算。

来,咱们看个具体的例子。这是一个两连杆平面机械臂,关节都是旋转关节。

// 两连杆机械臂坐标系建立步骤
// 连杆1:关节1 → 关节2
// 连杆2:关节2 → 末端

// 第0系(基座):Z0向上,X0指向关节1方向
// 第1系(连杆1末端):Z1沿关节2轴,X1沿连杆1方向
// 第2系(连杆2末端):Z2沿末端轴,X2沿连杆2方向

2.3 DH参数表填写:四个参数的含义

坐标系建好了,接下来就是填表。DH参数表就四列:α、a、θ、d。

我刚开始学的时候,总是记混。后来我给自己编了个口诀:“先扭再长,后转再滑”。

  • α(扭角):绕X轴,从Zi-1扭到Zi的角度。
  • a(杆长):沿X轴,从Zi-1移到Zi的距离。
  • θ(关节角):绕Z轴,从Xi-1转到Xi的角度。
  • d(偏距):沿Z轴,从Xi-1移到Xi的距离。

注意,对于标准DH,这四个参数的变换顺序是:α → a → θ → d。对于改进DH,顺序是:θ → d → α → a。

参数 符号 物理含义 单位
扭角 α 相邻两关节轴之间的夹角 rad 或 °
杆长 a 相邻两关节轴之间的公垂线长度 mm 或 m
关节角 θ 绕关节轴的旋转角度 rad 或 °
偏距 d 沿关节轴的偏移距离 mm 或 m

填表小技巧:

  • 旋转关节:θ是变量,α、a、d是常量。
  • 移动关节:d是变量,α、a、θ是常量。
  • 如果两个关节轴平行,α = 0。
  • 如果两个关节轴垂直,α = ±90°。

2.4 知识结构图:DH参数法全流程

下面这张图,把DH参数法的整个流程串起来了。从机器人结构到坐标系建立,再到参数表填写,最后到变换矩阵计算。你照着这个流程走,不会迷路。

DH参数法建模全流程 DH参数法建模全流程 机器人结构分析 选择DH类型 标准DH 改进DH 建立连杆坐标系 填写DH参数表 计算变换矩阵 标准DH:T = RotX·TransX·RotZ·TransZ 改进DH:T = RotZ·TransZ·RotX·TransX 最终得到末端位姿 T = T1·T2·...·Tn

2.5 实战案例:六轴工业机器人DH参数表

光说不练假把式。咱们拿一个典型的六轴工业机器人来填表。假设所有关节都是旋转关节,连杆长度和偏距已知。

// 六轴机器人DH参数表(标准DH)
// 单位:长度 mm,角度 °

连杆 i | α(i-1) | a(i-1) | θ(i)   | d(i)
-------|--------|--------|--------|-------
1      | 0      | 0      | θ1     | d1
2      | -90    | a1     | θ2     | 0
3      | 0      | a2     | θ3     | 0
4      | -90    | a3     | θ4     | d4
5      | 90     | 0      | θ5     | 0
6      | -90    | 0      | θ6     | d6

注意:这个表里,θ1到θ6是变量,其他都是常量。实际项目中,这些常量值要从机器人的CAD模型或者厂家手册里查。我见过有人直接拿尺子量,结果误差大到机器人撞了工件——千万别这么干。

填完表之后,下一步就是代入变换矩阵公式,算出每个连杆的变换矩阵,然后连乘得到末端位姿。这部分咱们下一章会详细讲。

课后练习:找一个你熟悉的机器人(比如桌面型SCARA或者六轴臂),画出它的连杆坐标系,然后填一张DH参数表。不用算矩阵,先把表填对。填完之后,用仿真软件验证一下——如果末端位置对不上,99%是坐标系建错了。

好了,这一章就到这儿。DH参数法看着繁琐,但只要你多练几次,形成肌肉记忆,后面做运动学控制就会顺手很多。记住:坐标系建对了,DH表填对了,后面全是数学推导——而数学,是最不会骗人的东西。