第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 轨迹规划:给路径加上时间维度

轨迹规划在路径的基础上,给每个点分配了时间信息。它要回答三个问题:

  1. 什么时候到?——时间戳
  2. 速度怎么变?——速度曲线
  3. 加速度怎么变?——加速度/加加速度曲线

还是北京到上海的例子。轨迹规划会告诉你:早上8点出发,前半小时在市区开60km/h,上高速后加速到120km/h,中午在济南服务区停20分钟,下午5点前到上海。你看,时间、速度、加速度全有了。

对比维度 路径规划 轨迹规划
数学本质 几何曲线 时间参数化曲线
输入 起点、终点、障碍物 路径 + 运动约束
输出 路径点序列 位置-速度-加速度随时间的变化
约束类型 空间避障、可达性 速度限、加速度限、力矩限、时间最优
典型算法 A*, RRT, PRM S形曲线、梯形曲线、多项式插值、样条
工程意义 能不能走通 能不能走好、走稳、走快

我的经验:路径规划是「有没有」的问题,轨迹规划是「好不好」的问题。很多项目出问题,不是路径没规划出来,而是轨迹没规划好。尤其是高速运动场景,轨迹规划比路径规划重要得多。

3.3 轨迹插补:为什么不能只靠路径点?

你可能会问:既然路径规划已经给出了一系列点,让机器人直接走过去不就行了?

嗯,这里要注意。路径规划给出的点通常是稀疏的——比如每10cm一个点,或者每个关节角度变化5°一个点。如果让机器人直接在这些点之间跳转,会出现两个严重问题:

  1. 运动不连续:相邻路径点之间速度突变,产生冲击和振动
  2. 精度不够:稀疏点无法描述复杂曲线,比如圆弧、样条

轨迹插补就是在路径点之间,按照一定的数学规则,生成密集的中间点。这些中间点的时间间隔通常是毫秒级的(比如1ms或4ms),保证运动控制卡在每个控制周期都有目标位置可以执行。

轨迹插补的本质:在路径点之间,用数学函数拟合出一条连续、平滑、满足运动学约束的曲线,然后以固定时间间隔采样,生成控制指令。

常见的插补方式包括:

  • 直线插补:两点之间走直线,速度按梯形或S形曲线变化
  • 圆弧插补:三点确定一个圆弧,沿圆弧运动
  • 样条插补:通过多个点拟合B样条或NURBS曲线,适合复杂曲面加工
  • 关节空间插补:在关节角度空间做线性或多项式插值

我曾经调试一个五轴激光切割项目,路径规划给了200多个点,直接跑起来机器抖得像筛子。后来加了样条插补,把200个点拟合成一条连续曲线,再以1ms间隔采样,机器跑得又稳又快。这就是插补的价值。

3.4 路径→轨迹→插补:完整链路

把三者的关系串起来,就是机器人运动规划的完整流程:

  1. 路径规划:在障碍物环境中找出一条无碰撞的几何路径,输出稀疏路径点
  2. 轨迹规划:给路径点加上时间信息,生成速度、加速度曲线,确保运动平滑
  3. 轨迹插补:在轨迹规划的基础上,以固定控制周期生成密集的位置指令

下面这张图展示了三者的层级关系:

运动规划完整链路:路径 → 轨迹 → 插补 路径规划 几何路径点序列 A* / RRT / PRM 加时间 轨迹规划 速度/加速度曲线 S形 / 梯形 / 多项式 密集采样 轨迹插补 1ms密集指令 直线/圆弧/样条 核心逻辑 路径规划解决「能不能到」→ 轨迹规划解决「能不能稳」→ 轨迹插补解决「能不能控」 三者在实际项目中的分工 路径规划 轨迹规划 轨迹插补 避障搜索 速度规划 实时生成指令 离线/在线均可 考虑动力学约束 控制周期级执行 输出稀疏点 输出时间-位置函数 输出离散位置

3.5 避坑指南:我踩过的三个坑

坑一:路径规划点太密,轨迹规划反而更差

我曾经以为路径点越多越好,结果给轨迹规划塞了上万个点。轨迹规划为了拟合这些点,生成了剧烈波动的速度曲线,机器反而抖得更厉害。后来我学会了:路径规划只给关键点,平滑工作交给轨迹规划。

坑二:忽略加加速度(Jerk)约束

只限制速度和加速度,不限制加加速度,机器在高速换向时会产生冲击。我调试一个码垛机器人时,加速度明明在范围内,机器却总是过载报警。后来发现是加加速度太大,电机力矩瞬间饱和。加上Jerk约束后,问题解决了。

坑三:插补周期和伺服周期不匹配

轨迹插补的周期(比如4ms)和伺服驱动的控制周期(比如1ms)如果不匹配,会导致指令滞后。我建议:插补周期最好是伺服周期的整数倍,并且插补输出要带时间戳,方便伺服做前馈补偿。

3.6 小结:记住三句话

这一章的内容,你只需要记住三句话:

  • 路径是几何的——只关心空间位置,不关心时间
  • 轨迹是带时间的——给路径加上速度、加速度、时间信息
  • 插补是必须的——没有插补,控制周期就没有指令可执行

这三句话看起来简单,但我在实际项目中见过太多人栽在概念混淆上。下次你听到有人说「路径规划做好了」,你可以追问一句:「轨迹规划做了吗?插补方式选了吗?」——这一问,就能看出对方是真懂还是假懂。