2. 运动学基础(上):空间描述与变换、齐次变换矩阵、标准DH参数建模

各位工程师朋友,大家好。欢迎来到《从仿真到实物的机械臂部署全解》的第二讲。

今天我们要啃的这块骨头,是机器人学的基石——运动学基础。说白了,就是回答三个问题:「我的机械臂末端在哪儿?」「它怎么动过去的?」「我怎么描述它每个关节的姿态?」

我个人习惯把这一章叫做「机械臂的坐标系世界观」。你想想看,一个六轴机械臂,六个电机转来转去,你凭什么知道它末端的螺丝刀对准了哪个孔?凭的就是一套严谨的空间描述语言。这套语言,就是今天我们要讲的齐次变换矩阵和DH参数。

核心观点: 机械臂运动学,本质上就是坐标系之间的「串门」游戏。你从基座坐标系出发,经过一个个关节坐标系,最终到达末端执行器。每一步怎么走,都由齐次变换矩阵说了算。

2.1 空间描述:位置与姿态

先聊点基础的。在三维空间里描述一个物体,你需要两样东西:位置和姿态。位置好办,一个3x1的向量就搞定了,比如 [x, y, z]^T。但姿态就有点讲究了。

我记得刚入行那会儿,总以为知道坐标就够了。直到有一次调试一个焊接机器人,明明坐标算对了,焊枪却歪了30度,把工件烧了个洞。嗯,从那以后我再也不敢轻视姿态描述了。

描述姿态,常用的有三种方式:

  • 旋转矩阵:3x3的正交矩阵,直观但参数冗余(9个元素,实际自由度只有3)。
  • 欧拉角:绕固定轴转三次,比如Z-Y-X顺序。简单易懂,但有万向锁问题。
  • 四元数:四个参数,无奇点,插值平滑。做仿真和轨迹规划时我特别喜欢用。

但在我们今天的课程里,我建议大家先死磕旋转矩阵。为什么?因为它是齐次变换矩阵的骨架,也是DH参数法的底层逻辑。

我的小技巧: 如果你刚开始学,别急着背公式。拿一支笔,在桌上摆三个互相垂直的坐标系。用手比划绕X轴转、绕Y轴转、绕Z轴转。转上十遍,旋转矩阵的每个元素对应什么物理意义,你自然就懂了。

2.2 齐次变换矩阵:把旋转和平移打包

有了位置和姿态,我们怎么把它们组合成一个统一的数学工具?答案就是齐次变换矩阵。

它是一个4x4的矩阵,长这样:

| R   P |
| 0   1 |

其中,R是3x3的旋转矩阵,P是3x1的位置向量。最后一行是 [0, 0, 0, 1],这是齐次坐标的固定格式。

你可能会问:「为什么非要多加一行?3x4不行吗?」

其实,加这一行的目的,是为了让连续变换可以用矩阵乘法串联起来。你想想看,从基座到关节1,乘一个矩阵;从关节1到关节2,再乘一个矩阵……最终,末端位姿就是一连串矩阵的乘积。如果没有齐次坐标,这个串联过程会变得非常麻烦。

注意: 矩阵乘法不满足交换律!也就是说,先旋转再平移,和先平移再旋转,结果完全不同。我在项目中见过太多新手搞混这个顺序,导致仿真里看着对,实物一跑就撞机。切记,左乘是相对于固定坐标系,右乘是相对于当前坐标系。

2.3 标准DH参数建模:机械臂的「身份证」

好了,现在我们有工具了。但怎么把一台具体的机械臂,比如你桌上那台六轴协作机器人,抽象成数学模型?这就轮到DH参数法登场了。

DH参数法,说白了就是给每个关节建立坐标系,然后用四个参数来描述相邻坐标系之间的关系。这四个参数是:

参数 符号 物理含义
连杆长度 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的建模步骤,我总结为四步走:

  1. 找关节轴:画出每个关节的旋转轴(Z轴)。
  2. 定坐标系原点:相邻两轴的交点,或者公垂线与轴的交点。
  3. 定X轴方向:沿公垂线,从当前Z轴指向下一个Z轴。
  4. 填参数表:按照上面的表格,把a、α、d、θ填进去。

避坑指南: 我曾经在做一个六轴码垛机器人项目时,因为搞混了「标准DH」和「改进DH」的坐标系定义,导致正运动学算出来的位置差了10厘米。后来花了整整两天才排查出来。所以,建模前一定要确认你用的是哪种DH约定。标准DH的坐标系建在连杆的末端,改进DH建在连杆的起始端。别搞反了!

2.4 知识体系总览

为了让你更直观地理解今天的内容,我画了一张图。它展示了从空间描述到DH建模的完整逻辑链条。

空间描述 位置向量 + 旋转矩阵 齐次变换矩阵 4x4 矩阵,串联变换 DH参数 a, α, d, θ 标准DH建模四步 找轴 → 定原点 → 定X轴 → 填参数表 正运动学:T = T₁ · T₂ · T₃ · ... · Tₙ 从关节空间 → 笛卡尔空间 基础 方法 应用

从这张图你可以看到,整个知识体系是层层递进的。先有空间描述的基础,然后有了齐次变换这个工具,最后用DH参数把工具应用到具体的机械臂上。最终,我们就能算出正运动学——也就是给定关节角度,求末端位姿。

2.5 一个简单的例子

光说不练假把式。我们拿一个两连杆机械臂来试试手。

假设:

  • 连杆1长度 a1 = 1m,关节角 θ1
  • 连杆2长度 a2 = 0.8m,关节角 θ2
  • 所有扭角 α = 0,偏距 d = 0

那么,从基座到连杆1末端的变换矩阵 T1,和从连杆1到连杆2末端的变换矩阵 T2,相乘之后,就能得到末端在基座坐标系下的位置:

x = a₁·cos(θ₁) + a₂·cos(θ₁+θ₂)
y = a₁·sin(θ₁) + a₂·sin(θ₁+θ₂)

你看,是不是很简洁?这就是DH参数法的魅力——它把复杂的空间几何,变成了几个参数的代数运算。

我的建议: 学完这一章,你可以找一台真实的机械臂(哪怕是玩具级别的),用尺子量出它的连杆长度和偏距,然后自己动手建一个DH参数表。再写几行代码,算一算正运动学。当你在屏幕上看到计算出的末端位置和实际机械臂的位姿对上时,那种成就感,嗯,很爽。

好了,今天的内容就到这里。空间描述、齐次变换矩阵、标准DH参数建模,这三板斧是后续所有运动学、动力学、轨迹规划的基础。把它们啃透了,后面的路就好走了。

课后思考: 如果机械臂的关节不是旋转关节,而是平移关节(比如直角坐标机器人),DH参数中的哪个参数会变成变量?想明白这个问题,你对DH参数的理解就更深一层了。

可可精品资料库