3、机械臂的DH参数法:标准DH与改进DH的区别、DH参数定义、连杆坐标系建立规则
聊到机械臂运动学,DH参数法是个绕不开的话题。我刚开始接触机器人学时,看着那一堆α、a、d、θ,说实话有点懵。后来在项目里亲手搭了几次模型,才慢慢摸到门道。今天咱们就把这个DH参数法彻底掰扯清楚。
3.1 什么是DH参数法?
DH参数法,说白了就是用四个参数来描述相邻两个连杆之间的相对位置和姿态。你想想看,一个机械臂有那么多关节和连杆,怎么才能用数学语言精确描述它们之间的关系?DH参数法就是干这个的。
我个人习惯把DH参数法理解成一种「约定」。它规定了我们怎么在每一个连杆上建立坐标系,然后通过四个参数把这个坐标系相对于上一个坐标系的位置和姿态表达出来。这样一来,从基座到末端执行器,整个运动链就能串起来了。
核心思想:用最少的参数(4个)完整描述相邻连杆的位姿关系,避免冗余信息。
3.2 标准DH vs 改进DH
这里有个坑,很多初学者都会踩——标准DH和改进DH到底啥区别?我在项目中就吃过这个亏,一开始用的标准DH建的模型,后来换了个库发现人家用的是改进DH,结果对不上,排查了半天。
其实区别就两点:
- 坐标系附着位置不同:标准DH把坐标系{i}附着在连杆i的末端(即关节i+1处);改进DH把坐标系{i}附着在连杆i的起始端(即关节i处)。
- 变换顺序不同:标准DH的变换顺序是「绕x轴旋转→沿x轴平移→绕z轴旋转→沿z轴平移」;改进DH是「绕z轴旋转→沿z轴平移→绕x轴旋转→沿x轴平移」。
嗯,这里要注意,两种方法最终都能得到正确结果,但中间的计算过程不一样。我个人建议初学者先掌握标准DH,因为它的物理意义更直观一些。不过如果你用的是ROS或者一些现代机器人库,它们更倾向于改进DH。
| 对比项 | 标准DH | 改进DH |
|---|---|---|
| 坐标系附着位置 | 连杆末端(关节i+1处) | 连杆起始端(关节i处) |
| 变换顺序 | Rot(x,α)→Trans(x,a)→Rot(z,θ)→Trans(z,d) | Rot(z,θ)→Trans(z,d)→Rot(x,α)→Trans(x,a) |
| 适用场景 | 传统教材、早期机器人 | ROS、现代机器人库 |
3.3 DH参数的四个定义
不管标准DH还是改进DH,四个参数的含义是一样的:
- αi-1(连杆扭转角):从zi-1轴绕xi-1轴旋转到zi轴的角度。说白了就是两个关节轴之间的扭角。
- ai-1(连杆长度):沿xi-1轴方向,从zi-1轴到zi轴的距离。注意,这是公垂线的长度。
- di(连杆偏距):沿zi轴方向,从xi-1轴到xi轴的距离。对于移动关节,这个参数是变量。
- θi(关节角):从xi-1轴绕zi轴旋转到xi轴的角度。对于旋转关节,这个参数是变量。
我的小技巧:记这四个参数时,可以按「角度-长度-长度-角度」来记。α和θ是角度,a和d是长度。α和a描述的是连杆本身的几何特性,d和θ描述的是关节的运动特性。
3.4 连杆坐标系的建立规则
建立坐标系是DH参数法里最容易出错的一步。我曾经带过一个实习生,他建的坐标系乱七八糟,四个参数怎么都对不上。后来我教他按下面这个步骤来,就再也没出过问题:
- 找轴线:先画出所有关节的旋转轴(或移动方向),标为z0, z1, ..., zn-1。
- 定原点:对于每个连杆i,找到zi-1和zi的公垂线(或交点),原点放在公垂线与zi的交点处。
- 定x轴:xi轴沿公垂线方向,从zi-1指向zi。如果zi-1和zi相交,xi垂直于两者所在平面。
- 定y轴:用右手定则,yi = zi × xi。
- 基坐标系:z0沿关节1的轴线方向,x0可以任意选择,只要方便就行。
- 末端坐标系:最后一个坐标系{n}通常与末端执行器固连,zn方向任意,但一般取与zn-1同向。
避坑指南:我曾经在建立坐标系时忽略了「公垂线」这个概念,直接把x轴随便一画,结果后面算出来的变换矩阵全是错的。记住,x轴的方向必须沿着从zi-1到zi的公垂线方向,这是DH参数法的核心约定。
3.5 知识体系结构图
下面这张图是我自己整理的DH参数法知识体系,帮你把整个逻辑串起来:
3.6 一个简单的例子
光说不练假把式。咱们拿一个两连杆机械臂来走一遍流程。假设两个关节都是旋转关节,连杆长度分别为a0和a1。
第一步:建立坐标系
- 基坐标系{0}:z0沿关节1轴线向上,x0水平向右。
- 坐标系{1}:z1沿关节2轴线(与z0平行),x1沿连杆1方向从关节1指向关节2。
- 坐标系{2}:末端坐标系,z2与z1同向,x2沿连杆2方向。
第二步:填写DH参数表
| 连杆i | αi-1 | ai-1 | di | θi |
|---|---|---|---|---|
| 1 | 0° | 0 | 0 | θ1 |
| 2 | 0° | a0 | 0 | θ2 |
你看,这个表填起来其实挺机械的。α和a描述的是连杆本身的几何,d和θ描述的是关节的运动。对于旋转关节,θ是变量;对于移动关节,d是变量。
我的经验:刚开始练习时,建议拿一个真实的机械臂(或者3D模型)来对照着建坐标系。纸上谈兵容易出错,动手做一遍就全明白了。我曾经用乐高搭了一个简易机械臂,然后一步步标坐标系、填参数,效果非常好。
好了,DH参数法的核心内容就这些。记住,标准DH和改进DH的区别在于坐标系附着位置和变换顺序,但四个参数的含义是一样的。建立坐标系时,按「找轴线→定原点→定x轴→定y轴」的步骤来,基本不会出错。
可可精品资料库