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. 从基座开始,依次建立关节坐标系
  2. 计算相邻坐标系的变换矩阵
  3. 连乘所有变换矩阵,得到末端位姿

逆运动学常用方法:

  • 解析法:针对特定构型推导闭式解,速度快,适合实时控制
  • 数值法:迭代求解,通用性强,但计算量大
避坑指南: 我曾经在逆解时直接用数值法,结果迭代不收敛,机器人乱动。后来发现是初始值离真实解太远。建议先用解析法求一个近似解,再用数值法精调。

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模型的步骤:

  1. 标出所有关节轴,画出z轴(沿关节旋转或移动方向)
  2. 确定x轴:沿相邻z轴的公垂线方向
  3. 确定y轴:右手定则补齐
  4. 填写DH参数表
  5. 写出每个关节的变换矩阵

我记得有一次帮客户调试SCARA机器人,他们的DH参数表里a和d搞反了,导致正运动学算出来的末端位置差了10厘米。排查了一整天,最后发现是参数定义没对齐。所以,建立DH模型时一定要统一标准,我建议用Craig版(修正DH),因为它的坐标系定义更直观。

核心要点: DH参数建模是正运动学的基础。只要参数表写对了,变换矩阵就能自动生成,后续的逆解、轨迹规划都能基于这个模型展开。

1.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你可以看到,坐标系是起点,DH参数是桥梁,正逆运动学是应用。三者环环相扣。

运动学基础知识体系 运动学基础:知识体系 坐标系定义 变换矩阵 齐次坐标 DH参数建模(a, α, d, θ) 正运动学:关节角 → 末端位姿 逆运动学:末端位姿 → 关节角 应用:轨迹规划 · 力控制 · 视觉伺服 · 仿真 提示:DH参数是连接坐标系与运动学的桥梁,务必熟练掌握