第三讲:路径与轨迹——别把地图当导航

各位同学好,我是老张。今天咱们聊一个看似简单、实则坑很多的话题——路径和轨迹到底有什么区别?

说实话,我见过不少刚入行的工程师,张口闭口「路径规划」,结果写出来的代码根本跑不动。为什么?因为他把路径当成了轨迹,忽略了运动学约束。嗯,这就像你拿着地图说「我能到北京」,但没考虑车能不能跑那么快。

一、路径(Path)是什么?

路径,说白了就是空间中的一条几何曲线。它只关心「从哪到哪」,不关心「怎么走」。

举个例子:

  • 从点A(0,0)到点B(10,10)画一条直线,这就是路径
  • 或者画一条圆弧、一条B样条曲线,也都是路径

路径的数学表达很简单:

路径 = {P(s) | s ∈ [0, 1]}

其中s是路径参数,P(s)是空间位置。注意,这里没有时间的概念。

核心要点:路径只描述「空间几何」,不包含「时间信息」。

我在项目中遇到过一位同事,他做焊接机器人编程,直接给机器人一条路径就让它跑。结果呢?机器人走到拐角处剧烈抖动,焊点全歪了。原因很简单——路径没问题,但速度没控制好。

二、轨迹(Trajectory)是什么?

轨迹 = 路径 + 时间 + 运动学约束。

你想想看,光知道去哪不行,还得知道什么时候到、中间怎么加速、拐弯时减不减速。轨迹就是把这些信息全部打包在一起。

轨迹的数学表达:

轨迹 = {P(t), V(t), A(t), J(t) | t ∈ [0, T]}

其中:

  • P(t) — 位置随时间变化
  • V(t) — 速度随时间变化
  • A(t) — 加速度随时间变化
  • J(t) — 加加速度随时间变化

我的习惯:做轨迹规划时,我一般先画路径,再往路径上「贴」时间标签。就像先画好赛道,再决定每个弯道怎么踩油门。

三、路径 vs 轨迹:一张表说清楚

对比项 路径(Path) 轨迹(Trajectory)
包含信息 空间几何 空间+时间+运动学
参数 路径参数 s 时间 t
是否考虑速度
是否考虑加速度
典型应用 几何建模、碰撞检测 运动控制、伺服驱动

为什么会这样?因为路径是「静态的」,轨迹是「动态的」。你给机器人一条路径,它不知道该怎么走;你给它一条轨迹,它就知道什么时候加速、什么时候减速、什么时候停下来。

四、运动学约束:别让机器人「闪了腰」

好,现在我们知道轨迹比路径多了时间信息。但光有时间还不够,还得考虑机器人的「身体极限」。

运动学约束主要有三个:

1. 速度约束

每个关节都有最大转速,末端也有最大线速度。超过这个值,轻则报警,重则损坏电机。

|V(t)| ≤ V_max

2. 加速度约束

加速度决定了机器人启动和停止的「冲击感」。加速度太大,机器人会剧烈抖动,工件可能被甩飞。

|A(t)| ≤ A_max

3. 加加速度约束

加加速度(Jerk)是加速度的变化率。这个参数很多人忽略,但它直接影响轨迹的平滑度。

|J(t)| ≤ J_max

避坑指南:我曾经做过一个码垛项目,只限制了速度和加速度,没管加加速度。结果机器人运行到轨迹拐点处,加速度突变,整个机械臂剧烈震荡,把码好的箱子全震倒了。从那以后,我每次做轨迹规划都会加上加加速度约束。

五、知识体系结构图

下面我用一张SVG图把本章的核心逻辑串起来,方便你理解:

运动规划基础概念体系 路径(Path) 空间几何曲线 参数:s ∈ [0, 1] 不包含时间信息 应用:几何建模、碰撞检测 轨迹(Trajectory) 路径 + 时间 + 约束 参数:t ∈ [0, T] 包含速度/加速度/加加速度 应用:运动控制、伺服驱动 +时间+约束 运动学约束 速度约束 |V| ≤ V_max 加速度约束 |A| ≤ A_max 加加速度约束 |J| ≤ J_max 核心:路径是几何,轨迹是运动,约束是边界

六、实际项目中的经验

讲个真实案例吧。去年我做了一个六轴机器人打磨项目,客户要求表面粗糙度Ra0.8以内。

一开始我按常规做法,只规划了路径和速度。结果打磨出来的工件表面有一道道「波纹」,根本不合格。

排查了很久才发现问题——加速度变化太剧烈,导致机器人末端在打磨时产生微小振动。后来我加上加加速度约束,把Jerk限制在500 mm/s³以内,波纹立刻消失了。

我的建议:做轨迹规划时,先把路径画好,然后按这个顺序加约束:速度 → 加速度 → 加加速度。别跳步,跳步容易出问题。

七、总结

好了,今天的内容就这些。记住三句话:

  • 路径是地图,轨迹是导航
  • 轨迹 = 路径 + 时间 + 运动学约束
  • 速度、加速度、加加速度,一个都不能少

嗯,下次你写运动控制代码时,先问问自己:我是在做路径规划,还是在做轨迹规划?想清楚这个,能省不少调试时间。


专注资料整理