3. 路径与轨迹的区别:从几何到时间的跨越

很多刚入行的同学会把「路径」和「轨迹」混着用。说实话,我当年也犯过这个错。直到有一次在产线上调试AGV,明明路径规划得好好的,车跑起来却一顿一顿的,电机还过热报警。后来才意识到——我给的只是路径,不是轨迹。

这两者的区别,说白了就是:路径只管「走哪条路」,轨迹还要管「怎么走」。一个只关心空间几何,另一个把时间拉了进来。

一句话总结:路径 = 空间上的点集;轨迹 = 路径 + 时间信息 + 运动约束。

3.1 路径定义:纯几何的骨架

路径(Path)是一系列连续的空间位姿点。它只描述机器人从起点到终点要经过哪些位置,不包含任何时间信息。

举个例子,一个二维平面上的路径可以表示为:

// 路径:一系列空间点
Path = {P₀, P₁, P₂, ..., Pₙ}
其中 Pᵢ = (xᵢ, yᵢ, θᵢ)  // 位置 + 朝向

路径有几个关键特性:

  • 几何性:只关心形状,不关心速度
  • 顺序性:点之间有先后顺序,但没时间刻度
  • 可逆性:理论上可以反向走,路径本身不变

我在做机械臂喷涂项目时,路径规划器给了一堆点。看着挺漂亮,但一跑起来就露馅了——转角处机器人急停急启,漆面厚度不均匀。嗯,这就是典型的「有路径没轨迹」的问题。

3.2 轨迹定义:给路径装上时钟

轨迹(Trajectory)是在路径的基础上,给每个点分配了时间戳。它告诉机器人:什么时间,应该到达哪个位置,速度是多少。

// 轨迹:路径 + 时间
Trajectory = {(P₀, t₀, v₀), (P₁, t₁, v₁), ..., (Pₙ, tₙ, vₙ)}
其中 tᵢ 是时间,vᵢ 是速度

轨迹的核心要素有三个:

要素 含义 工程意义
空间位置 机器人末端或车体的位姿 决定能不能到达目标点
时间戳 每个位置对应的时刻 决定运动节奏和同步性
运动状态 速度、加速度、加加速度 决定运动是否平滑、是否冲击

我的经验:在调试协作机器人时,我习惯先看轨迹的时间戳分布。如果相邻点的时间差忽大忽小,那运动一定不平滑。先调时间参数,再调路径形状,这个顺序别搞反了。

3.3 时间参数化:把路径变成轨迹的桥梁

时间参数化(Time Parameterization)是连接路径和轨迹的关键步骤。它把路径上的几何参数 s(比如弧长)映射到时间 t 上。

你想想看,路径上的点只有位置信息,没有「什么时候到」的概念。时间参数化就是给路径加上一个时间轴:

// 路径参数化
s ∈ [0, S]  // s 是路径长度参数
P(s) = (x(s), y(s), θ(s))  // 路径的几何表示

// 时间参数化
t ∈ [0, T]  // t 是时间
s = s(t)    // 路径长度随时间变化
P(t) = P(s(t))  // 轨迹:随时间变化的位置

这里有个关键点:s(t) 的导数就是速度。ds/dt 越大,说明在路径上移动得越快。

常见的参数化方式有:

  • 匀速参数化:s(t) = v·t,最简单但加速度不连续
  • 梯形速度参数化:加速-匀速-减速三段,工业上最常用
  • S形参数化:加加速度连续,适合高精度场景

我曾经踩过的坑:在AGV项目中,我直接用匀速参数化把路径转成轨迹。结果车在转弯时因为向心力突变,货物直接侧翻了。后来改成梯形速度参数化,转弯前提前减速,问题才解决。记住:路径的几何曲率越大,时间参数化时越要降速。

3.4 速度/加速度轮廓:运动的「心电图」

速度轮廓和加速度轮廓,是轨迹规划的输出结果,也是评价轨迹质量的核心指标。

我习惯把速度轮廓看作运动的「心电图」——好的轮廓应该平滑、连续、没有毛刺。加速度轮廓则更敏感,它直接反映了机器人受到的惯性力。

3.4.1 速度轮廓的类型

类型 形状 特点 适用场景
矩形轮廓 瞬间加速到最大速度 加速度无穷大,冲击大 理论分析,实际不用
梯形轮廓 加速-匀速-减速 加速度分段常数,有冲击 工业搬运、码垛
S形轮廓 加加速-匀加速-减加速-匀速-... 加速度连续,加加速度有限 精密装配、医疗机器人

3.4.2 加速度轮廓的约束

实际工程中,加速度不是你想设多少就设多少。主要受限于:

  • 电机力矩:加速度太大,电机过载
  • 结构刚度:加速度产生惯性力,可能导致振动
  • 工艺要求:比如喷涂、焊接,加速度过大会影响质量

我做过一个激光切割项目,加速度限制设得太松,结果切割头在拐角处抖动,切出来的工件边缘全是毛刺。后来把加速度上限砍掉一半,加加速度也做了限制,效果立竿见影。

工程口诀:速度看效率,加速度看平稳,加加速度看寿命。三个指标要平衡,别只盯着一个优化。

3.5 路径与轨迹的对比总结

为了让你看得更清楚,我把核心区别整理成一张表:

维度 路径 轨迹
维度 空间 (x, y, z, θ) 空间 + 时间 (x, y, z, θ, t)
变量 路径参数 s 时间 t
导数 无 速度、加速度、加加速度
约束 几何约束(避障、可达性) 运动学约束(速度限、加速度限)
输出 点序列 时间-位置-速度表
评价指标 路径长度、平滑度 运动时间、冲击度、能耗

3.6 知识体系框架图

下面这张图展示了路径与轨迹的完整关系,以及时间参数化在其中的位置:

路径与轨迹知识体系框架 路径与轨迹知识体系 路径 (Path) 纯几何描述 P(s) = (x(s), y(s), θ(s)) 只关心「走哪条路」 轨迹 (Trajectory) 空间 + 时间描述 P(t) = P(s(t)) 关心「什么时间到、多快」 时间参数化(桥梁) s = s(t) → 把路径参数映射到时间轴 ds/dt = 速度,d²s/dt² = 加速度 速度轮廓 梯形 / S形 / 矩形 决定运动效率 加速度轮廓 连续 / 分段常数 决定运动平稳性 工程约束 电机力矩 / 结构刚度 工艺要求 / 安全规范 核心逻辑:路径 → 时间参数化 → 轨迹 → 速度/加速度轮廓 → 工程约束

从这张图可以看得很清楚:路径是基础,时间参数化是转换器,轨迹是最终产物。而速度轮廓和加速度轮廓,则是评价轨迹质量的两个核心维度。

我的建议:在实际项目中,别急着调路径形状。先把时间参数化做好,把速度轮廓和加速度轮廓调平滑了,再回头优化路径。这个顺序能帮你省掉大量调试时间。