第二章 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 连杆坐标系建立规则:四步法
坐标系怎么建?我总结了一个四步法,照着做基本不会错。
- 找关节轴:画出每个关节的旋转轴或移动轴。用Z轴表示。
- 定原点:相邻两个关节轴的公垂线与当前关节轴的交点,就是原点。
- 定X轴:沿着公垂线方向,从当前关节指向下一个关节。
- 定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参数法的整个流程串起来了。从机器人结构到坐标系建立,再到参数表填写,最后到变换矩阵计算。你照着这个流程走,不会迷路。
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表填对了,后面全是数学推导——而数学,是最不会骗人的东西。