第二章 机械臂运动学基础:空间描述与变换、DH参数建模、正运动学求解、逆运动学求解
各位工程师朋友,大家好。我是老张,在半导体设备这行摸爬滚打了十几年。今天咱们聊聊机械臂运动学——说白了,就是让机械臂知道自己“在哪儿”、“要去哪儿”、“怎么去”。
你想想看,晶圆传输机械臂在真空腔体里来回穿梭,要是位置算错一毫米,晶圆就可能碎掉。我当年刚入行时,就亲眼见过一次因为运动学参数没标定好,机械臂直接把晶圆怼到腔壁上……那声音,至今难忘。
2.1 空间描述与变换:给机械臂一个“坐标系”
机械臂要动,首先得有个参考系。就像你问路,得先说“以哪里为起点”。
在机器人学里,我们通常用齐次变换矩阵来描述两个坐标系之间的关系。一个4×4的矩阵,包含了旋转和位移信息:
| R(3×3) P(3×1) |
| 0 0 0 1 |
其中R是旋转矩阵,P是平移向量。我个人习惯把变换矩阵想象成“坐标转换器”——把A坐标系下的点,换算到B坐标系下。
核心概念:
- 位置描述:用3×1向量表示空间中的点
- 姿态描述:用3×3旋转矩阵表示方向
- 位姿描述:位置+姿态,用4×4齐次矩阵
我在项目中遇到过一个问题:两个工程师用了不同的坐标系定义,结果机械臂走出来的轨迹完全不对。后来我们统一规定:所有坐标系都遵循右手定则,Z轴向上。嗯,这种基础约定,越早统一越好。
2.2 DH参数建模:机械臂的“身份证”
DH参数法,是Denavit和Hartenberg两位老前辈提出的。它用四个参数来描述相邻两个关节之间的关系:
| 参数 | 符号 | 含义 |
|---|---|---|
| 连杆长度 | ai-1 | 沿Xi-1轴,从Zi-1到Zi的距离 |
| 连杆扭转角 | αi-1 | 绕Xi-1轴,从Zi-1到Zi的角度 |
| 关节距离 | di | 沿Zi轴,从Xi-1到Xi的距离 |
| 关节角度 | θi | 绕Zi轴,从Xi-1到Xi的角度 |
为什么是这四个参数?你想想看,两个连杆在空间中的相对位置,其实只需要一个旋转和一个平移就能描述。但为了唯一确定,我们拆成了两个旋转和两个平移——这就是DH参数的巧妙之处。
我的经验:建立DH参数表时,一定要画清楚坐标系图。我见过太多人直接套公式,结果符号搞反了。画图花10分钟,能省你后面调试的半天时间。
以SCARA型晶圆传输机械臂为例,它的DH参数表大概是这样的:
关节 | a(i-1) | α(i-1) | d(i) | θ(i)
1 | L1 | 0 | d1 | θ1
2 | L2 | 0 | 0 | θ2
3 | 0 | 0 | d3 | 0
4 | 0 | 180° | 0 | θ4
2.3 正运动学求解:已知关节角,求末端位姿
正运动学,说白了就是“已知各个关节的角度,求机械臂末端在哪儿”。
求解过程很简单:把每个关节的变换矩阵连乘起来。
T_0_n = T_0_1 × T_1_2 × ... × T_(n-1)_n
其中T_(i-1)_i是根据DH参数构建的齐次变换矩阵:
T_(i-1)_i = Rot(X, α(i-1)) × Trans(X, a(i-1)) × Rot(Z, θ(i)) × Trans(Z, d(i))
展开后就是:
| cosθ -sinθ 0 a |
| sinθcosα cosθcosα -sinα -d·sinα |
| sinθsinα cosθsinα cosα d·cosα |
| 0 0 0 1 |
我记得有一次调试,正运动学算出来的位置和实际差了2mm。查了半天,发现是DH参数里一个角度符号写反了。所以啊,算完之后一定要做验证——让机械臂动到一个已知位置,对比计算结果。
避坑指南:我曾经因为忽略了关节限位,正运动学算出来一个理论上正确但实际上机械臂根本到不了的位置。后来我养成了习惯:算完正解后,先检查每个关节角度是否在物理限位内。
2.4 逆运动学求解:已知末端位姿,求关节角
逆运动学比正运动学难得多。正解是唯一的,逆解可能有多个解,也可能无解。
常用的求解方法有两种:
- 解析法:通过代数或几何方法直接求解。速度快,适合特定构型。
- 数值法:迭代逼近,通用性强,但计算量大。
对于晶圆传输机械臂,我强烈建议用解析法。为什么?因为实时性要求高——机械臂在高速运动时,你每毫秒都要算一次逆解,数值法可能来不及。
以6轴关节臂为例,逆解的一般步骤是:
- 根据末端位姿,反推腕部中心点位置
- 求解前三个关节角(决定位置)
- 求解后三个关节角(决定姿态)
- 从多组解中选最优解(通常选关节变化最小的)
选解原则:
- 优先选靠近关节中位的解
- 避免关节限位
- 避免奇异位形
- 考虑避障需求
你可能会问:多组解怎么选?我一般用“加权最小关节变化”原则——给每个关节一个权重,大关节权重小(因为运动惯量大),小关节权重大。这样选出来的解,机械臂运动最平滑。
2.5 本章知识体系
下面这张图,是我自己总结的运动学知识框架,希望能帮你理清思路:
这张图把运动学的核心脉络串起来了。从空间描述出发,建立DH模型,然后分正解和逆解两条路,最终都服务于轨迹规划。你把这个框架记在脑子里,后面学轨迹规划时会轻松很多。
实用建议:刚开始学的时候,别急着写代码。先拿纸笔手动算一个2关节机械臂的正逆解。算通了,再上代码。我当年就是这么过来的,基础打得牢,后面遇到复杂构型也不慌。
好了,运动学基础就聊到这儿。记住:正解是“因→果”,逆解是“果→因”。搞清楚了这两个方向,机械臂的“大脑”就算装上了。
公众号:蓝海资料掘金营,微信deep3321