1. 关节与连杆基础概念:自由度、运动副、连杆坐标系定义
各位同学好,我是老张。今天咱们开始《关节与连杆定义实战技巧》的第一章。
说实话,我见过太多工程师在搭建机器人模型时,卡在最基础的概念上。自由度搞错了,运动副选型不对,坐标系一塌糊涂。结果仿真跑不起来,实物更是一团糟。
所以这一章,咱们把地基打牢。别嫌基础,我当年在第一个项目里就吃过亏——一个六轴机械臂的连杆坐标系定义错了,导致逆解算出来全是错的,整整浪费了两周时间。
1.1 自由度——机器人的“活动能力”
自由度,英文叫 Degree of Freedom,简称 DOF。说白了,就是一个物体能在空间里独立运动的方式有多少种。
你想想看,一个刚体在三维空间里,它能怎么动?
- 沿着 X、Y、Z 三个轴平移
- 绕着 X、Y、Z 三个轴旋转
一共 6 种。所以一个自由漂浮的刚体,有 6 个自由度。
核心公式: 空间刚体自由度 = 6
平面刚体自由度 = 3(2个平移 + 1个旋转)
但在机器人里,每个关节通常只提供 1 个自由度。为什么?因为我们要精确控制。一个关节给多了自由度,控制难度会指数级上升。
我的经验: 选型时,别贪多。我见过有人想用一个关节实现 2 个自由度,结果控制算法写到崩溃。老老实实用两个单自由度关节串联,调试起来轻松得多。
1.2 运动副——关节的本质
运动副,就是两个构件之间的可动连接。关节就是运动副在机器人里的具体实现。
常见的运动副就两种:
| 运动副类型 | 自由度 | 运动方式 | 典型应用 |
|---|---|---|---|
| 转动副(R 副) | 1 | 绕轴旋转 | 机器人肩关节、肘关节 |
| 移动副(P 副) | 1 | 沿直线滑动 | 直角坐标机器人、升降机构 |
当然,还有更复杂的运动副,比如球面副(3 个旋转自由度)、圆柱副(1 个旋转 + 1 个平移)。但工业机器人里,90% 以上都是 R 副和 P 副。
避坑指南: 我曾经在项目里用了一个球面副想省空间,结果发现它虽然能提供 3 个自由度,但每个自由度都耦合在一起,单独控制一个方向非常困难。后来还是换成了三个 R 副串联。记住:解耦比紧凑更重要。
1.3 连杆坐标系定义——DH 参数法的核心
好了,现在到了最关键的环节。连杆坐标系怎么定?
业内标准方法是 Denavit-Hartenberg 参数法,简称 DH 法。我习惯用改进 DH 法(Modified DH),因为它更符合直觉。
定义连杆坐标系,有 4 个参数:
| 参数 | 符号 | 含义 | 我的记忆口诀 |
|---|---|---|---|
| 连杆长度 | ai-1 | 沿 Xi-1 轴,从 Zi-1 到 Zi 的距离 | “沿着 X 走,看 Z 跳了多远” |
| 连杆扭角 | αi-1 | 绕 Xi-1 轴,从 Zi-1 到 Zi 的角度 | “绕着 X 转,看 Z 歪了多少” |
| 关节距离 | di | 沿 Zi 轴,从 Xi-1 到 Xi 的距离 | “沿着 Z 走,看 X 跳了多远” |
| 关节角度 | θi | 绕 Zi 轴,从 Xi-1 到 Xi 的角度 | “绕着 Z 转,看 X 歪了多少” |
这 4 个参数,就能唯一确定相邻两个连杆之间的变换关系。
变换矩阵(改进 DH):
T = Rotx(αi-1) · Transx(ai-1) · Rotz(θi) · Transz(di)
顺序是:先绕 X 转 α,再沿 X 移 a,然后绕 Z 转 θ,最后沿 Z 移 d。
我刚开始学的时候,总是搞混顺序。后来我给自己编了个口诀:“先 X 后 Z,先转后移”。每次写代码前默念一遍,再也没错过。
1.4 知识结构总览
下面这张图,把这一章的核心逻辑串起来了。你一看就明白:
1.5 实战中的坐标系定义步骤
光说不练假把式。我分享一下我在项目里实际定义连杆坐标系的步骤:
- 确定基座坐标系——通常把 Z0 轴指向关节 1 的旋转轴方向,X0 轴指向机器人正前方
- 从基座开始,逐个关节定义——每个关节的 Zi 轴沿着关节的旋转轴或移动轴方向
- 确定 Xi 轴——如果 Zi-1 和 Zi 不平行也不相交,Xi 沿它们的公垂线方向
- 确定 Yi 轴——右手定则,Yi = Zi × Xi
- 填写 DH 参数表——把 a、α、d、θ 填进去
我的习惯: 每次定义完坐标系,我都会在 CAD 软件里画出来,然后手动验证一下。随便选一个关节角度,用手算一遍变换矩阵,看末端位置对不对。这一步虽然慢,但能省掉后面调试时的大把时间。
1.6 常见错误与避坑
这些年我带过不少新人,发现大家在定义连杆坐标系时,最容易犯这几个错:
- Z 轴方向搞反——关节正转和反转的方向搞混了,导致运动学正解算出来末端往反方向跑
- X 轴方向选错——公垂线方向有两条,选反了会导致扭角 α 的符号出错
- DH 参数顺序记混——标准 DH 和改进 DH 的变换顺序不一样,混用的话矩阵全错
- 忽略关节限位——定义坐标系时没考虑关节的实际物理限位,仿真里能转的角度,实物根本到不了
我曾经踩过的坑: 在一个协作机器人项目里,我用了标准 DH 法,但同事用的是改进 DH 法。两个模型对不上,调试了三天才发现是 DH 约定不一致。从那以后,我要求团队统一使用改进 DH 法,并且在代码注释里写明用的是哪个版本。
好了,这一章的内容就到这里。自由度、运动副、连杆坐标系,这三个概念是机器人运动学的基石。别觉得简单,我敢说,能把这三个概念讲清楚、用明白的工程师,至少能少走一半弯路。