第二章 运动学基础:刚体运动学、坐标变换与齐次矩阵、正逆运动学概念

各位工程师朋友,大家好。我是老张,在运动控制这行摸爬滚打了十几年。今天咱们来聊聊运动学基础——这部分内容,说白了就是机器人的“骨架”和“关节”怎么用数学语言描述。你想想看,要让机器人动起来,总得先知道它每个关节转到什么角度,末端执行器才能到达目标位置吧?这就是运动学要解决的核心问题。

我个人习惯把运动学比作“机器人的几何学”。它不关心力、力矩这些动力学问题,只关心位置、姿态、速度这些几何量。嗯,咱们先从最基础的刚体运动学说起。

2.1 刚体运动学:位置与姿态

什么是刚体?说白了就是一个不会变形的物体。工业机器人的连杆,我们通常就视为刚体。描述一个刚体在空间中的状态,需要两个信息:位置姿态。位置好理解,就是它在哪里;姿态呢,就是它朝哪个方向。

我记得刚入行时,带我的老师傅跟我说:“小张,你记住,机器人的每一个连杆,你都得知道它‘在哪’和‘朝哪’。”这句话我记到现在。

位置描述:通常用一个3×1的位置矢量 p = [x, y, z]^T 来表示。

姿态描述:通常用一个3×3的旋转矩阵 R 来表示。

旋转矩阵的每一列,代表刚体坐标系的一个轴在参考坐标系中的投影。它有几个重要性质:

  • 正交性:R^T R = I
  • 行列式为+1(右手系)
  • 逆矩阵等于转置矩阵:R^{-1} = R^T

这里有个避坑指南:旋转矩阵虽然直观,但用起来有冗余。9个元素只有3个自由度,所以实际工程中常用欧拉角、轴角或四元数来表示姿态。我个人在项目中偏爱四元数,因为它没有万向锁问题,插值也平滑。

2.2 坐标变换与齐次矩阵

搞运动控制,最常干的事就是坐标变换。比如,你知道相机坐标系下工件的坐标,但机器人要抓取它,得知道在机器人基坐标系下的坐标。这就涉及到坐标变换。

坐标变换分为两种:

  1. 平移变换:坐标系原点移动,轴方向不变。
  2. 旋转变换:坐标系原点不变,轴方向改变。

更一般的情况是既有平移又有旋转。这时候,齐次矩阵就派上用场了。

齐次矩阵是一个4×4的矩阵,形式如下:

| R   p |
| 0   1 |

其中,R是3×3旋转矩阵,p是3×1平移矢量。它把旋转和平移统一到一个矩阵里,方便进行连续变换。

为什么叫“齐次”?因为它引入了一个额外的维度(w=1),使得平移变换也能用矩阵乘法表示。你想想看,如果没有齐次坐标,平移就得用加法,旋转用乘法,混在一起多麻烦。齐次矩阵让一切变得统一、简洁。

我曾经在一个焊接机器人项目中,需要将工件坐标系下的焊缝轨迹转换到机器人基坐标系。当时用了5个齐次矩阵连乘,一步到位。如果不用齐次矩阵,代码得写好几页,还容易出错。

2.3 正运动学与逆运动学

这两个概念是机器人学的核心。咱们用一张图来直观理解:

正运动学与逆运动学关系图 关节空间 θ₁, θ₂, θ₃, ..., θₙ (各关节角度/位移) 任务空间 x, y, z, α, β, γ (末端位置与姿态) 正运动学 已知关节角 → 求末端位姿 唯一解,计算简单 逆运动学 已知末端位姿 → 求关节角 多解或无解,计算复杂 正运动学:从关节空间 → 任务空间(唯一映射) 逆运动学:从任务空间 → 关节空间(多解映射)

2.3.1 正运动学

正运动学,就是已知机器人各个关节的角度(或位移),求末端执行器在基坐标系下的位置和姿态。说白了,就是“给定关节,算出手在哪”。

对于串联机器人,正运动学通常用Denavit-Hartenberg(D-H)参数法来建模。每个关节用一个4×4的齐次矩阵表示,然后把这些矩阵连乘起来,就得到末端位姿。

正运动学公式

T_0^n = T_0^1 * T_1^2 * T_2^3 * ... * T_{n-1}^n

其中,T_i^{i+1} 是相邻连杆间的齐次变换矩阵。

正运动学有一个重要特点:解是唯一的。给定一组关节角,末端位姿是确定的。计算也相对简单,就是矩阵乘法。我在调试六轴机器人时,经常先用正运动学验证模型是否正确——给一组关节角,算出手的位置,然后手动转动关节看是否吻合。

2.3.2 逆运动学

逆运动学就反过来了:已知末端执行器要到达的位置和姿态,求各个关节需要转动的角度。这是实际控制中最常用的——你告诉机器人“去那里”,它得自己算出“关节怎么动”。

逆运动学比正运动学复杂得多,主要体现在:

  • 多解性:同一个末端位姿,可能有多种关节配置。比如六轴机器人,通常有8组解。
  • 无解:目标位姿超出机器人的工作空间。
  • 奇异性:在某些位姿下,关节速度会趋于无穷大。

避坑指南:我曾经在一个码垛项目中,逆运动学算出了8组解,但其中6组会导致机器人撞到旁边的设备。所以,逆运动学求解后,一定要做碰撞检测和关节限位检查,选择最优解。

逆运动学的求解方法主要有:

  1. 解析法:通过代数或几何方法直接求解。速度快,但只适用于特定构型的机器人(如满足Pieper准则的机器人)。
  2. 数值法:如牛顿-拉夫森法、雅可比迭代法。通用性强,但计算量大,且需要初值。

我个人在项目中,对于六轴工业机器人,优先用解析法。如果遇到特殊构型,再用数值法。解析法算出来的解是精确的,数值法可能会有累积误差。

2.4 本章小结

好了,咱们把这一章的核心内容捋一捋:

概念 核心要点 我的经验
刚体运动学 位置+姿态,旋转矩阵是关键 四元数比欧拉角更实用
齐次矩阵 4×4矩阵,统一旋转和平移 连乘时注意顺序,左乘右乘别搞混
正运动学 关节→末端,唯一解 用于模型验证和离线编程
逆运动学 末端→关节,多解 选解时优先考虑安全和效率

运动学基础是机器人控制的基石。你想想看,如果连机器人的“骨架”都描述不清楚,后面的轨迹规划、动力学控制就更无从谈起了。嗯,这部分内容虽然偏理论,但一定要吃透。我在实际项目中,80%的调试问题都出在运动学模型上——不是D-H参数搞错了,就是坐标变换顺序弄反了。

各位在学的时候,建议多动手算一算。拿个两连杆机器人,手推正逆运动学公式,再对照仿真结果。这样印象才深刻。

专注资料整理