第3章 路径规划与轨迹规划的区别:路径是几何的,轨迹是带时间的;轨迹插补的必要性
很多刚入行的工程师,甚至一些做了两三年的同行,经常把「路径规划」和「轨迹规划」混为一谈。我刚开始带项目的时候也犯过这个错——那时候给一个六轴机器人做焊接任务,路径明明走对了,焊出来的焊缝却一塌糊涂。后来才明白,路径对了不代表轨迹对了。
说白了,路径只告诉你「往哪走」,轨迹才告诉你「怎么走、走多快、什么时候到」。今天我们就把这个核心概念彻底掰开揉碎。
3.1 路径规划:纯几何问题
路径规划解决的是空间中的几何连接问题。它只关心:从A点到B点,中间经过哪些点,能不能避开障碍物。
举个例子,你从北京到上海,路径规划就是告诉你:走京沪高速,经过天津、济南、徐州、南京,最后到上海。它不关心你开多快,也不关心你几点出发。
路径规划的核心输出:一系列空间位姿点(位置+姿态)的集合,通常表示为 P = {p₀, p₁, p₂, ..., pₙ},其中每个 pᵢ 是笛卡尔空间中的 (x, y, z, rx, ry, rz) 或关节空间中的 (θ₁, θ₂, ..., θₙ)。
常见的路径规划算法包括:
- Dijkstra / A*:栅格地图上的最短路径搜索
- RRT / RRT*:高维空间中的快速随机搜索树
- PRM:概率路线图,适合静态环境
- 人工势场法:虚拟力引导,容易陷入局部极小
我在项目中遇到过最典型的场景:用A*给AGV小车规划路径,地图上明明有路,小车走到一半却卡住了。查了半天,发现路径规划只给了几何点,没考虑小车的转弯半径和加速度限制。这就是路径规划的天花板——它不懂物理。
3.2 轨迹规划:给路径加上时间维度
轨迹规划在路径的基础上,给每个点分配了时间信息。它要回答三个问题:
- 什么时候到?——时间戳
- 速度怎么变?——速度曲线
- 加速度怎么变?——加速度/加加速度曲线
还是北京到上海的例子。轨迹规划会告诉你:早上8点出发,前半小时在市区开60km/h,上高速后加速到120km/h,中午在济南服务区停20分钟,下午5点前到上海。你看,时间、速度、加速度全有了。
| 对比维度 | 路径规划 | 轨迹规划 |
|---|---|---|
| 数学本质 | 几何曲线 | 时间参数化曲线 |
| 输入 | 起点、终点、障碍物 | 路径 + 运动约束 |
| 输出 | 路径点序列 | 位置-速度-加速度随时间的变化 |
| 约束类型 | 空间避障、可达性 | 速度限、加速度限、力矩限、时间最优 |
| 典型算法 | A*, RRT, PRM | S形曲线、梯形曲线、多项式插值、样条 |
| 工程意义 | 能不能走通 | 能不能走好、走稳、走快 |
我的经验:路径规划是「有没有」的问题,轨迹规划是「好不好」的问题。很多项目出问题,不是路径没规划出来,而是轨迹没规划好。尤其是高速运动场景,轨迹规划比路径规划重要得多。
3.3 轨迹插补:为什么不能只靠路径点?
你可能会问:既然路径规划已经给出了一系列点,让机器人直接走过去不就行了?
嗯,这里要注意。路径规划给出的点通常是稀疏的——比如每10cm一个点,或者每个关节角度变化5°一个点。如果让机器人直接在这些点之间跳转,会出现两个严重问题:
- 运动不连续:相邻路径点之间速度突变,产生冲击和振动
- 精度不够:稀疏点无法描述复杂曲线,比如圆弧、样条
轨迹插补就是在路径点之间,按照一定的数学规则,生成密集的中间点。这些中间点的时间间隔通常是毫秒级的(比如1ms或4ms),保证运动控制卡在每个控制周期都有目标位置可以执行。
轨迹插补的本质:在路径点之间,用数学函数拟合出一条连续、平滑、满足运动学约束的曲线,然后以固定时间间隔采样,生成控制指令。
常见的插补方式包括:
- 直线插补:两点之间走直线,速度按梯形或S形曲线变化
- 圆弧插补:三点确定一个圆弧,沿圆弧运动
- 样条插补:通过多个点拟合B样条或NURBS曲线,适合复杂曲面加工
- 关节空间插补:在关节角度空间做线性或多项式插值
我曾经调试一个五轴激光切割项目,路径规划给了200多个点,直接跑起来机器抖得像筛子。后来加了样条插补,把200个点拟合成一条连续曲线,再以1ms间隔采样,机器跑得又稳又快。这就是插补的价值。
3.4 路径→轨迹→插补:完整链路
把三者的关系串起来,就是机器人运动规划的完整流程:
- 路径规划:在障碍物环境中找出一条无碰撞的几何路径,输出稀疏路径点
- 轨迹规划:给路径点加上时间信息,生成速度、加速度曲线,确保运动平滑
- 轨迹插补:在轨迹规划的基础上,以固定控制周期生成密集的位置指令
下面这张图展示了三者的层级关系:
3.5 避坑指南:我踩过的三个坑
坑一:路径规划点太密,轨迹规划反而更差
我曾经以为路径点越多越好,结果给轨迹规划塞了上万个点。轨迹规划为了拟合这些点,生成了剧烈波动的速度曲线,机器反而抖得更厉害。后来我学会了:路径规划只给关键点,平滑工作交给轨迹规划。
坑二:忽略加加速度(Jerk)约束
只限制速度和加速度,不限制加加速度,机器在高速换向时会产生冲击。我调试一个码垛机器人时,加速度明明在范围内,机器却总是过载报警。后来发现是加加速度太大,电机力矩瞬间饱和。加上Jerk约束后,问题解决了。
坑三:插补周期和伺服周期不匹配
轨迹插补的周期(比如4ms)和伺服驱动的控制周期(比如1ms)如果不匹配,会导致指令滞后。我建议:插补周期最好是伺服周期的整数倍,并且插补输出要带时间戳,方便伺服做前馈补偿。
3.6 小结:记住三句话
这一章的内容,你只需要记住三句话:
- 路径是几何的——只关心空间位置,不关心时间
- 轨迹是带时间的——给路径加上速度、加速度、时间信息
- 插补是必须的——没有插补,控制周期就没有指令可执行
这三句话看起来简单,但我在实际项目中见过太多人栽在概念混淆上。下次你听到有人说「路径规划做好了」,你可以追问一句:「轨迹规划做了吗?插补方式选了吗?」——这一问,就能看出对方是真懂还是假懂。