一、路径规划与轨迹规划:到底差在哪?
说实话,我刚入行那会儿,也搞混过这两个概念。那时候带我的老工程师问我:「你做的到底是路径规划还是轨迹规划?」我愣了半天,答不上来。
后来踩过坑才明白——路径规划只管「怎么走」,轨迹规划管的是「什么时候走到哪」。一个是几何问题,一个是时间问题。
1.1 路径 vs 轨迹:一张图说清楚
我习惯这么理解:
- 路径(Path):就是一系列空间点的集合。比如从A点到B点,中间经过哪些位置。它只关心「空间形状」,不关心速度。
- 轨迹(Trajectory):路径 + 时间信息。每个点都带上了时间戳,或者速度、加速度信息。
举个例子:
你让机器人从桌子左边移动到右边。路径规划告诉你:「先往前10cm,再右转20cm,再往前5cm」。轨迹规划告诉你:「前2秒加速到0.5m/s,中间3秒匀速,最后1秒减速停下」。
核心区别就一句话:路径是几何的,轨迹是时间的。
1.2 几何路径 vs 时间律
这里我要展开说说。路径规划的输出,本质上是一个几何曲线。它可以是直线、圆弧、B样条曲线,甚至是一堆离散点。
但轨迹规划不一样。它要在路径的基础上,加上时间律——也就是运动规律。
我做过一个项目,机械臂抓取零件。路径规划算出来一条很漂亮的曲线,结果一跑起来,末端抖动得厉害。为什么?因为轨迹规划没做好,加速度突变太大。
常见的几种时间律:
| 类型 | 特点 | 适用场景 |
|---|---|---|
| 梯形速度 | 加速-匀速-减速 | 简单运动,对冲击不敏感 |
| S形速度 | 加加速度连续 | 高精度、低冲击要求 |
| 多项式插值 | 位置/速度/加速度连续 | 复杂轨迹,多约束场景 |
我的经验:能选S形速度就别选梯形。虽然计算量大一点,但电机寿命长很多。我曾经为了省计算资源用梯形,结果半年换了三次减速器……
1.3 约束条件分类:别让机器人「撞墙」
做轨迹规划,最头疼的就是约束条件。我把它分成三大类:
1.3.1 运动学约束
说白了就是机器人「能不能做到」。比如:
- 关节角度限制(别让手臂拧成麻花)
- 速度上限(电机转不了那么快)
- 加速度上限(急停会抖)
1.3.2 动力学约束
这个更狠,涉及力和力矩。比如:
- 关节力矩上限(别把电机烧了)
- 末端负载能力(拿不动就别硬拿)
- 惯性力影响(高速运动时特别明显)
1.3.3 环境约束
这个我踩过坑。有一次做AGV导航,路径规划明明避开了所有障碍物,结果一跑起来,车尾扫到了货架。为什么?因为只考虑了车体中心点,没考虑外形尺寸。
- 障碍物避碰(包括自身碰撞)
- 工作空间边界(别跑出范围)
- 奇异点规避(关节卡死的位置)
避坑指南:我曾经在一个项目中,只加了运动学约束,没加动力学约束。结果轨迹看起来完美,实际跑起来电机过载报警。从那以后,我每个项目都至少检查三遍约束条件列表。
1.4 一张图看懂本章知识体系
下面这张图,是我自己总结的路径规划与轨迹规划的关系。你看完应该能记住80%。
1.5 实际项目中的选择策略
你可能会问:「那我到底该用路径规划还是轨迹规划?」
我的建议是:
- 如果只是简单移动(比如AGV从A到B,中间没障碍),直接做轨迹规划就够了。路径就是一条直线。
- 如果有复杂障碍(比如机械臂在狭小空间作业),先做路径规划,再做轨迹规划。两步走,稳。
- 如果对时间有严格要求(比如流水线节拍控制),轨迹规划必须精细到毫秒级。
记住:路径规划是轨迹规划的前提,轨迹规划是路径规划的落地。两者缺一不可。
好了,这一章就到这里。下一章我们聊聊具体的路径规划算法——A*和RRT,我会把我在项目中调参的血泪史都抖出来。
公众号:蓝海资料掘金营,微信deep3321