1. 轨迹规划基础:从路径到轨迹的数学建模
大家好,欢迎来到这门实战课的第一章。
做机器人运动控制这些年,我见过太多人一上来就调PID、整参数,结果机器人要么抖得像筛子,要么撞得叮当响。为什么?说白了,他们跳过了最基础的一步——轨迹规划。
今天我们就来聊聊:路径和轨迹到底有什么区别?位置、速度、加速度之间藏着哪些约束?
1.1 路径 vs 轨迹:一字之差,天壤之别
先问个问题:你让机器人从A点走到B点,中间画一条线——这是路径还是轨迹?
答案是:路径。
路径只关心空间几何,不关心时间。而轨迹,是路径加上时间信息。换句话说,轨迹告诉机器人:什么时候到达哪个位置,以及速度和加速度是多少。
核心公式:
轨迹 = 路径 + 时间律
用数学语言表达:
q(t) = [x(t), y(t), z(t), θ(t), ...]
其中 t 是时间,q(t) 是每个关节或末端的位置向量。
我个人习惯把路径比作地图上的路线,轨迹则是开车时的油门、刹车和方向盘操作。你想想看,光有路线没有速度控制,车要么停着不动,要么冲下悬崖——这就是轨迹规划要解决的问题。
1.2 位置、速度、加速度的数学关系
搞清楚了轨迹的定义,接下来就是三个核心物理量:位置、速度、加速度。它们之间是微积分关系,但别怕,我们一步步来。
| 物理量 | 符号 | 定义 | 单位 |
|---|---|---|---|
| 位置 | q(t) | 随时间变化的坐标 | m 或 rad |
| 速度 | v(t) = dq/dt | 位置对时间的一阶导数 | m/s 或 rad/s |
| 加速度 | a(t) = dv/dt = d²q/dt² | 速度对时间的一阶导数 | m/s² 或 rad/s² |
反过来,从加速度积分得到速度,再积分得到位置:
v(t) = v₀ + ∫ a(t) dt
q(t) = q₀ + ∫ v(t) dt
嗯,这里要注意:实际工程中,加速度往往是受限的。电机有最大扭矩,关节有最大力矩,这些都直接限制了加速度的上限。
我的经验: 在项目中,我习惯先确定加速度约束,再反推速度和位置曲线。因为加速度决定了机器人会不会「急刹车」或「猛起步」,直接影响机械寿命和安全性。
1.3 约束关系:为什么不能随便规划?
你可能会想:我直接让机器人以最大速度跑过去不就行了?
不行。原因有三:
- 电机力矩有限:加速度太大,电机可能过载或烧毁。
- 机械结构有极限:关节有最大转速,超过会损坏减速器。
- 运动平滑性:速度突变会产生冲击,导致振动或精度下降。
所以,轨迹规划本质上是一个带约束的优化问题。我们需要在满足所有约束的前提下,找到一条平滑、高效、安全的轨迹。
避坑指南: 我曾经在一个六轴机器人项目里,直接用了梯形速度曲线,结果末端执行器在拐角处剧烈抖动。后来才发现,加速度突变导致关节力矩跳变,引发了共振。从那以后,我再也不敢忽略加速度的连续性了。
1.4 知识体系总览
为了让你对本章内容有个整体印象,我画了一张图:
1.5 一个简单的例子:点到点轨迹
假设机器人末端要从位置 q₀ = 0 运动到 q₁ = 10,总时间 T = 2 秒,初末速度都为 0。
最简单的方案是三次多项式轨迹:
q(t) = a₀ + a₁·t + a₂·t² + a₃·t³
边界条件:
q(0) = 0, q(T) = 10
v(0) = 0, v(T) = 0
求解系数:
a₀ = 0
a₁ = 0
a₂ = 3·(q₁ - q₀)/T² = 3·10/4 = 7.5
a₃ = -2·(q₁ - q₀)/T³ = -2·10/8 = -2.5
最终轨迹:
q(t) = 7.5·t² - 2.5·t³
v(t) = 15·t - 7.5·t²
a(t) = 15 - 15·t
你看,位置、速度、加速度都是连续的,没有突变。这就是平滑轨迹的基本要求。
小技巧: 在实际代码中,我习惯把轨迹系数提前算好存成数组,运行时直接查表插值,比实时计算快得多。尤其是嵌入式系统,能省不少CPU周期。
1.6 本章小结
今天我们做了三件事:
- 理清了路径和轨迹的区别——路径是几何,轨迹是几何+时间。
- 掌握了位置、速度、加速度的微积分关系,以及它们在实际工程中的约束意义。
- 通过一个三次多项式的例子,看到了平滑轨迹的数学本质。
记住一句话:轨迹规划不是画线,而是设计运动过程。约束条件决定了机器人能不能动,平滑性决定了它动得好不好。