3、运动学基础:正运动学与逆运动学、DH参数法、雅可比矩阵
各位好,我是老张。今天咱们聊聊运动学基础。说实话,这章内容有点「硬」,但它是后续所有轨迹规划工作的地基。你想想看,如果连机器人末端在哪儿、关节怎么动都算不清楚,那抖动消除、轨迹平滑就全是空中楼阁。
我刚开始做机器人控制那会儿,也踩过不少坑。有一次在产线上调试六轴机器人,正运动学算出来位置总差几毫米,查了两天才发现是DH参数表里一个符号写反了。嗯,从那以后我对运动学就格外较真。
3.1 正运动学:从关节空间到笛卡尔空间
正运动学,说白了就是:已知每个关节的角度(或位移),求末端执行器的位置和姿态。
公式长这样:
T = f(θ₁, θ₂, θ₃, ..., θₙ)
其中 T 是一个 4×4 的齐次变换矩阵,包含了位置和姿态信息。θᵢ 是第 i 个关节的变量。
我个人习惯把正运动学理解成「从里往外推」——从基座开始,一个关节一个关节地乘变换矩阵,最后得到末端在基坐标系下的位姿。
核心要点:正运动学有唯一解。给定一组关节角度,末端位姿是确定的。这是它的「确定性」优势。
3.2 逆运动学:从笛卡尔空间回到关节空间
逆运动学正好反过来:已知末端的目标位姿,求各关节需要转到的角度。
公式:
θ = f⁻¹(T)
这里就有意思了——逆运动学通常有多个解,甚至可能无解。我在项目中遇到过这种情况:想让机器人末端走到某个点,结果逆解算出来关节角度超出了限位,只能重新规划路径。
避坑指南:逆运动学求解时,一定要做「多解筛选」。我曾经因为直接取了第一个解,导致机器人走了一条奇怪的路径,差点撞到工件。后来我养成了习惯:把所有可行解列出来,按「关节位移最小」或「避障优先」的原则选一个。
常见的逆解方法有两种:
- 解析法:速度快,精度高,但只适用于特定构型(如PUMA 560)。
- 数值法:通用性强,但迭代慢,可能不收敛。我一般用牛顿-拉夫森法,配合雅可比矩阵。
3.3 DH参数法:建立运动学模型的「标准语言」
DH参数法(Denavit-Hartenberg)是建立机器人运动学模型的通用方法。它用四个参数来描述相邻两个连杆之间的变换关系:
| 参数 | 符号 | 含义 |
|---|---|---|
| 连杆长度 | aᵢ | 沿 xᵢ 轴,从 zᵢ₋₁ 到 zᵢ 的距离 |
| 连杆扭角 | αᵢ | 绕 xᵢ 轴,从 zᵢ₋₁ 到 zᵢ 的转角 |
| 关节距离 | dᵢ | 沿 zᵢ₋₁ 轴,从 xᵢ₋₁ 到 xᵢ 的距离 |
| 关节转角 | θᵢ | 绕 zᵢ₋₁ 轴,从 xᵢ₋₁ 到 xᵢ 的转角 |
标准DH和修正DH的区别,我简单说一下:
- 标准DH:变换顺序是 Rot(z,θ) → Trans(z,d) → Trans(x,a) → Rot(x,α)。我早期用的都是这个。
- 修正DH:变换顺序是 Rot(x,α) → Trans(x,a) → Rot(z,θ) → Trans(z,d)。更适合树形结构机器人。
我个人建议:选一种就坚持用下去。混用两种DH,很容易搞混坐标系方向。我见过有人在一张图纸上混用,结果调试了三天才发现问题。
小技巧:建立DH参数表时,先把每个关节的坐标系画出来。我习惯用不同颜色标注 x、y、z 轴,这样不容易出错。画完之后再填参数表,效率高很多。
3.4 雅可比矩阵:速度与力的映射
雅可比矩阵 J 是运动学里的「桥梁」。它把关节空间的速度映射到笛卡尔空间的速度:
v = J · θ̇
其中 v 是末端速度(线速度+角速度),θ̇ 是关节速度。
反过来,它也能把笛卡尔空间的力映射到关节力矩:
τ = Jᵀ · F
这个关系在力控制里特别重要。我记得有一次做力控打磨,就是靠雅可比矩阵把末端的接触力映射回各个关节,然后做阻抗控制。
雅可比矩阵的求法有两种:
- 微分法:对正运动学方程求偏导。数学上严谨,但计算量大。
- 矢量法:利用运动学关系直接构造。我更喜欢这个,效率高,适合实时控制。
关键概念:雅可比矩阵的秩决定了机器人的「奇异位形」。当 J 不满秩时,机器人会失去某个方向的运动能力,或者某个关节速度会趋于无穷大。这是轨迹规划时必须避开的「雷区」。
奇异位形怎么判断?看雅可比矩阵的行列式。如果 det(J) = 0,那就是奇异点。我在项目中遇到过:机器人走到某个位置时,突然一个关节转速飙升,差点烧了电机。后来一查,就是进入了奇异位形。
3.5 知识体系总览
下面这张图,是我自己总结的运动学知识框架。你可以把它当作本章的「地图」:
3.6 实战中的几个关键点
讲完理论,我分享几个实战中容易忽略的地方:
- DH参数表的验证:建好模型后,先做正运动学验证。让每个关节单独转动,观察末端轨迹是否合理。我习惯用仿真软件先跑一遍。
- 逆解的多解处理:不要只取第一个解。我一般会算3-5个候选解,然后选一个「关节变化最小」的,这样运动更平滑。
- 雅可比矩阵的实时性:在高速轨迹规划中,雅可比矩阵需要实时更新。我建议用矢量法,计算量小,适合嵌入式环境。
我的习惯:每次调试新机器人,我都会先打印一份DH参数表贴在控制柜上。这样排查问题时,不用每次都翻文档。嗯,这个小习惯帮我省了不少时间。
好了,运动学基础就讲到这里。这些内容虽然基础,但真的很重要。后面的轨迹规划、抖动消除,全都建立在今天讲的知识上。你把这些吃透了,后面会轻松很多。