第1章:路径规划与轨迹规划的区别

各位工程师朋友,今天我们来聊聊一个基础但特别容易混淆的问题——路径规划和轨迹规划到底差在哪?

我刚开始做机器人项目那会儿,也傻傻分不清。有一次给AGV小车做导航,我吭哧吭哧规划出一条漂亮的路径,结果小车一跑起来就抖得像帕金森。后来才明白,我做的只是路径规划,根本没考虑速度和加速度。嗯,这里面的坑,我今天一次性给你讲透。

1.1 核心区别:几何 vs 时间

说白了,区别就一句话:

  • 路径规划:只关心「走哪条路」——几何上的点序列
  • 轨迹规划:关心「什么时间走到哪」——路径 + 时间信息

你想想看,路径规划的输出是一串坐标点:(x1,y1) → (x2,y2) → ... → (xn,yn)。但轨迹规划的输出是:在t1时刻到达(x1,y1),速度v1,加速度a1。这完全是两个层次的问题。

我的经验之谈:路径规划是「空间问题」,轨迹规划是「时空问题」。做项目时,我习惯先把路径规划搞定,再往上加时间维度。千万别一上来就搞轨迹规划,容易把自己绕晕。

1.2 时间参数化:给路径加上「心跳」

路径规划完了,怎么变成轨迹?答案就是——时间参数化。

假设我们有一条路径,用参数s表示(s从0到1):

路径:p(s) = (x(s), y(s)),  s ∈ [0, 1]

现在我们要给s加上时间t的关系:

轨迹:p(t) = (x(s(t)), y(s(t)))

这个s(t)就是时间参数化函数。它决定了机器人沿着路径走的时候,什么时候加速、什么时候减速、什么时候匀速。

我记得有个项目,客户要求机器人必须在10秒内走完一段路径。我直接做了个线性时间参数化s(t) = t/10,结果机器人启动和停止时冲击特别大。后来改成S形曲线,才把问题解决。

小技巧:常用的时间参数化方法有梯形速度曲线和S形速度曲线。梯形简单但加速度有突变,S形平滑但计算量大。根据实际需求选,别盲目追求复杂。

1.3 速度/加速度约束:别让机器人「飞」起来

路径规划不考虑动力学约束,但轨迹规划必须考虑。为什么?

你想想看,如果路径上有个急转弯,但速度没降下来,机器人直接甩出去了。或者加速度太大,电机过载烧了。这些都是真实发生过的事故。

常见的约束包括:

  • 速度约束|v| ≤ v_max(每个轴或合速度)
  • 加速度约束|a| ≤ a_max(保证不抖动)
  • 加加速度约束|j| ≤ j_max(保证舒适度,人机协作场景特别重要)

我曾经做过一个码垛机器人项目,一开始只约束了速度和加速度。结果运行一段时间后,减速器齿轮磨损特别快。后来加上加加速度约束,寿命直接翻了一倍。嗯,有些坑只有踩过才知道。

1.4 知识体系总览

下面这张图是我自己总结的,帮你理清路径规划和轨迹规划的关系:

路径规划 输入:地图、起点、终点 输出:几何路径点序列 约束:障碍物、几何边界 轨迹规划 输入:路径 + 时间参数 输出:时间-位置-速度-加速度 约束:速度、加速度、加加速度 时间参数化 轨迹规划的核心约束 • 速度约束:|v| ≤ v_max • 加速度约束:|a| ≤ a_max • 加加速度约束:|j| ≤ j_max 保证不超速 保证不抖动 保证舒适/寿命

1.5 一个简单的对比表格

对比项 路径规划 轨迹规划
核心问题 怎么走不撞墙? 怎么走才平稳?
输出内容 几何点序列 (x,y,z) 时间序列 (t,x,y,z,v,a)
考虑约束 障碍物、运动学 动力学、执行器限制
典型算法 A*、RRT、Dijkstra 梯形速度、S形曲线、多项式
应用场景 导航、避障 机械臂、数控机床

避坑指南:我曾经犯过一个低级错误——用路径规划的结果直接控制机器人运动。结果在拐角处速度没降下来,机器人直接撞上了工件。后来我养成了习惯:路径规划做完后,必须做轨迹规划,加上速度/加速度约束,再下发执行。这个流程,一步都不能省。

1.6 实际项目中的选择策略

那么问题来了:什么时候只需要路径规划?什么时候必须做轨迹规划?

我的判断标准很简单:

  • 低速场景(如AGV在仓库里慢悠悠走):路径规划就够了,速度慢到可以忽略动力学
  • 高速场景(如机械臂高速抓取):必须做轨迹规划,否则机器人会「飞」
  • 人机协作场景(如机器人旁边有人):轨迹规划 + 加加速度约束,保证安全舒适

嗯,说白了就是看你的机器人跑多快。跑得慢,路径规划够用;跑得快,轨迹规划必须上。这个道理,我是在摔过几次跟头后才真正理解的。

好了,这一章的内容就到这里。记住一句话:路径规划告诉你「去哪」,轨迹规划告诉你「怎么去」。两者缺一不可,但千万别搞混了。


专注资料整理