1. 运动学基础:坐标系与变换矩阵、正运动学与逆运动学、DH参数建模方法
各位同学,欢迎来到运动学基础这一章。说实话,运动学是整个机器人控制的基石。你想想看,如果连机器人末端在哪儿、关节怎么转都不知道,那后面的力控、轨迹规划根本无从谈起。我当年刚入行时,就吃过这个亏——直接上手调PID,结果机器人撞了夹具,嗯,从那以后我再也不敢跳过运动学。
1.1 坐标系与变换矩阵
先聊坐标系。机器人世界里,每个关节、每个传感器都有自己的坐标系。说白了,就是给每个部件一个“身份证”,告诉系统它在哪里、朝向哪边。
我个人习惯把坐标系分成三类:
- 世界坐标系:固定在机器人底座或工作空间,是全局参考。
- 关节坐标系:每个关节的局部坐标系,随关节转动。
- 工具坐标系:固定在末端执行器上,比如焊枪尖、夹爪中心。
变换矩阵是连接这些坐标系的数学工具。一个4×4的齐次变换矩阵长这样:
| R(3×3) t(3×1) |
| 0 0 0 1 |
其中R是旋转矩阵,t是平移向量。我在项目中遇到过一个问题:有人直接用3×3旋转矩阵做连续变换,结果累积误差越来越大。后来改用齐次矩阵,一次搞定旋转和平移,代码也干净很多。
1.2 正运动学与逆运动学
正运动学很简单:给定关节角度,求末端位姿。逆运动学反过来:给定末端位姿,求关节角度。
你想想看,正运动学是唯一的——一组关节角度只对应一个末端位姿。但逆运动学就麻烦了,可能有多个解,甚至无解。我做过一个六轴焊接机器人项目,逆解算出来8组解,得根据避障、关节限位、运动时间筛选最优解。
正运动学的计算流程:
- 从基座开始,依次建立关节坐标系
- 计算相邻坐标系的变换矩阵
- 连乘所有变换矩阵,得到末端位姿
逆运动学常用方法:
- 解析法:针对特定构型推导闭式解,速度快,适合实时控制
- 数值法:迭代求解,通用性强,但计算量大
1.3 DH参数建模方法
DH参数是Denavit和Hartenberg两位大佬提出的,用来标准化描述相邻关节的变换关系。说白了,就是用四个参数搞定两个坐标系之间的变换。
四个DH参数:
| 参数 | 符号 | 含义 | 常见取值 |
|---|---|---|---|
| 连杆长度 | a | 沿x轴从zi-1到zi的距离 | 正数或零 |
| 连杆扭角 | α | 绕x轴从zi-1到zi的转角 | ±90°常见 |
| 关节距离 | d | 沿zi-1从xi-1到xi的距离 | 可正可负 |
| 关节转角 | θ | 绕zi-1从xi-1到xi的转角 | 变量(旋转关节) |
建立DH模型的步骤:
- 标出所有关节轴,画出z轴(沿关节旋转或移动方向)
- 确定x轴:沿相邻z轴的公垂线方向
- 确定y轴:右手定则补齐
- 填写DH参数表
- 写出每个关节的变换矩阵
我记得有一次帮客户调试SCARA机器人,他们的DH参数表里a和d搞反了,导致正运动学算出来的末端位置差了10厘米。排查了一整天,最后发现是参数定义没对齐。所以,建立DH模型时一定要统一标准,我建议用Craig版(修正DH),因为它的坐标系定义更直观。
1.4 知识体系总览
下面这张图把本章的核心逻辑串起来了。你可以看到,坐标系是起点,DH参数是桥梁,正逆运动学是应用。三者环环相扣。