3. 运动学基础:正运动学与逆运动学概念、DH参数法简介、雅可比矩阵的物理意义

各位同学,今天我们来聊聊运动学。说实话,这是机器人轨迹规划里最绕不开的一块硬骨头。我当年刚入行时,觉得这东西就是一堆矩阵乘法,背下来就行。结果第一次调机械臂,关节角度算出来,末端死活对不上目标点……嗯,从那以后我再也不敢小看运动学了。

运动学说白了,就是研究机器人“动起来”的数学关系。你给关节角度,它告诉你末端在哪儿——这叫正运动学。反过来,你告诉它末端要去哪儿,它反算出关节该转多少——这叫逆运动学。这两个概念,是后续所有轨迹规划的基础。

核心一句话:正运动学是“因→果”,逆运动学是“果→因”。搞反了,机器人就乱动。

3.1 正运动学:从关节空间到工作空间

正运动学,我个人习惯叫它“正向推导”。你给出一组关节角度(比如六轴机器人的θ₁到θ₆),通过一系列坐标变换,算出末端执行器在笛卡尔空间里的位置和姿态。

为什么需要这个?举个例子。你在示教器上手动转动每个关节,机器人末端到底在哪儿?你肉眼看不准。正运动学就是帮你精确算出来的。我在项目里调试视觉抓取时,经常先用正运动学验证一下模型对不对——如果算出来的末端位置和实际差太多,那肯定是DH参数表填错了。

正运动学的数学本质,就是矩阵连乘。每个关节对应一个齐次变换矩阵,把它们乘起来,就得到末端位姿:

T_0_n = T_0_1 * T_1_2 * ... * T_{n-1}_n

其中T_0_n就是末端相对于基座的变换矩阵。这个矩阵里,左上角3×3是姿态(旋转矩阵),右上角3×1是位置(平移向量)。

小技巧:我建议初学者先用手算一个2自由度平面臂的正运动学。纸上推一遍,比看十遍书都管用。你想想看,连乘的顺序一旦搞错,末端位置就飞到天边去了。

3.2 逆运动学:从工作空间回到关节空间

逆运动学就麻烦多了。你告诉机器人:“末端给我到(0.5, 0.3, 0.2)这个点,姿态要这样这样。”机器人得自己算出每个关节该转多少度。

为什么说它麻烦?因为逆运动学通常没有唯一解。同一个末端位姿,可能对应好几组关节角度。比如一个六轴机器人,肘部可以朝上也可以朝下,这就是两种构型。我在现场调试时,最怕遇到的就是逆解跳变——上一帧还是肘部朝上,下一帧突然跳到肘部朝下,机器人“嗖”一下甩过去,差点撞到人。

逆运动学的求解方法,大致分两类:

  • 解析法:通过几何关系或代数推导,直接写出关节角度的表达式。速度快,但只适用于特定构型(比如后三个关节轴线交于一点的6轴机器人)。
  • 数值法:用迭代逼近的方式求解,比如牛顿-拉夫森法。通用性强,但计算慢,而且可能不收敛。

注意:数值法求解逆运动学时,初始值选不好,很容易掉进局部最优。我曾经在项目里遇到过,明明末端就在眼前,逆解却算出一个离谱的关节角度,机器人直接往反方向转。后来我加了多组初始值并行求解,才稳定下来。

3.3 DH参数法:给机器人建立“身份证”

DH参数法,全称Denavit-Hartenberg参数法。说白了,就是给机器人的每个连杆和关节建立一套标准化的坐标系,然后用四个参数来描述它们之间的相对关系。

这四个参数分别是:

参数 符号 物理含义
连杆长度 a 相邻两关节轴线之间的公垂线长度
连杆扭角 α 相邻两关节轴线之间的夹角
关节距离 d 沿关节轴线方向,相邻两连杆之间的偏移
关节角度 θ 绕关节轴线旋转的角度(对于旋转关节,这是变量)

你想想看,有了这四个参数,任何串联机器人——不管它是六轴、七轴还是SCARA——都可以用统一的方法建模。我个人习惯用改进型DH参数(也叫Craig版),因为它在处理树形结构时更直观。

下面是一个标准DH参数表的示例(以常见的六轴工业机器人为例):

关节  |  a (mm)  |  α (°)  |  d (mm)  |  θ (°)
------|----------|---------|----------|--------
1     |  150     |  -90    |  400     |  θ1
2     |  600     |   0     |  0       |  θ2
3     |  120     |  -90    |  0       |  θ3
4     |  0       |   90    |  600     |  θ4
5     |  0       |  -90    |  0       |  θ5
6     |  0       |   0     |  100     |  θ6

避坑指南:我曾经因为DH参数表里一个α的正负号搞反了,整整排查了两天。后来我养成了一个习惯——建完模型后,先让机器人动一个关节,看看末端运动方向对不对。如果关节1转动时末端应该画圆弧,结果它直线跑,那肯定是参数错了。

3.4 雅可比矩阵:速度与力的“翻译官”

雅可比矩阵,英文叫Jacobian。很多初学者一看到矩阵就头大,其实它的物理意义非常直观。

雅可比矩阵描述的是:关节空间的速度(每个关节的角速度)与工作空间的速度(末端的线速度和角速度)之间的线性映射关系。

数学上写成:

ẋ = J(q) · q̇

其中ẋ是末端的6维速度向量(3个线速度+3个角速度),q̇是关节速度向量,J(q)就是雅可比矩阵。

为什么说它重要?因为轨迹规划里,你不仅要规划位置,还要规划速度。比如你要让末端沿着一条直线匀速运动,那每个关节的速度该怎么分配?这时候就得靠雅可比矩阵来算。

另外,雅可比矩阵还有一个更厉害的应用——力控制。根据虚功原理,关节力矩τ和末端力F之间的关系是:

τ = J(q)ᵀ · F

也就是说,你想让末端产生多大的力,可以通过雅可比矩阵的转置,反算出每个关节该输出多大的力矩。我在做力控打磨项目时,就是靠这个公式来调节关节力矩的。

关键点:雅可比矩阵是构型相关的。机器人姿势不同,雅可比矩阵就不同。当机器人接近奇异位形时,雅可比矩阵会变得病态,某些方向上的速度会变得极大——这就是所谓的“奇异点”。

3.5 本章知识体系总览

下面我用一张SVG图,把本章的核心逻辑串起来。你看完这张图,应该能对运动学基础有一个全局的认识。

运动学基础:知识体系总览 正运动学 关节角度 → 末端位姿 矩阵连乘 T = T1·T2·...·Tn 唯一解,直接计算 逆运动学 末端位姿 → 关节角度 解析法 / 数值法 多解、奇异、跳变 雅可比矩阵 关节速度 ↔ 末端速度 ẋ = J(q)·q̇ 力映射:τ = Jᵀ·F 基础工具:DH参数法 用四个参数(a, α, d, θ)标准化描述机器人连杆与关节 应用场景 轨迹规划 · 速度规划 · 力控制 · 奇异点分析 · 避障

这张图里,正运动学、逆运动学、雅可比矩阵是三个核心模块,DH参数法是它们共同的建模工具。最下面是应用层——你学完这些,才能去做轨迹规划、速度规划、力控制这些更高级的事情。

我的建议:初学者不要急着啃逆运动学的解析推导。先把手上的机器人DH参数搞清楚,正运动学能算对,再去看逆解。雅可比矩阵可以先理解它的物理意义,具体怎么求,后面用到时再查公式也不迟。

好了,运动学基础就讲到这里。记住,正运动学是地基,逆运动学是桥梁,雅可比矩阵是工具。这三样东西搞明白了,后面的轨迹规划你学起来会轻松很多。

可可精品资料库