3. 局部规划核心概念
局部规划位于全局规划与底层控制之间,是移动机器人、自动驾驶与无人机在复杂场景中真正“落地”的关键环节。全局规划给出从起点到终点的粗略路线,而局部规划需要在每个控制周期内,结合实时感知、机器人当前状态与运动能力,生成一条可执行、无碰撞、满足约束的短时运动指令。理解局部规划,必须抓住六个核心概念:路径、轨迹、运动学约束、动力学约束、避障与实时性,以及把它们统一起来的滚动时域规划思想。
一、路径与轨迹:从几何到时间
路径(Path)是空间中的几何曲线,只描述“经过哪些位置”,不关心何时到达。例如一条从 A 到 B 的多段折线、样条曲线或栅格序列,都是路径。轨迹(Trajectory)则在路径基础上加入了时间维度,通常表示为 q(t),即每个时刻的位置、速度甚至加速度。路径回答“走哪里”,轨迹回答“什么时候在哪里、以什么速度运动”。
这一区别直接决定了输出接口:纯路径跟踪控制器只需要几何信息,而模型预测控制、速度规划器需要完整轨迹。局部规划器通常先搜索或采样得到路径,再沿路径做时间参数化,生成满足速度、加速度限制的轨迹。
二、运动学与动力学约束:机器人不是质点
运动学约束描述机器人位形与速度之间的几何关系,不考虑力和质量。典型例子是差速轮式机器人的非完整约束:机器人不能横向平移,瞬时速度必须沿车体朝向。其运动学模型可写为:
x_dot = v * cos(theta)
y_dot = v * sin(theta)
theta_dot = omega
其中 v 为线速度,omega 为角速度。阿克曼车辆还受最小转弯半径限制,无人机则受姿态角与推力方向耦合约束。动力学约束进一步引入质量、惯量、轮胎力、电机力矩与执行器延迟,例如最大加速度、最大角加速度、侧向加速度上限等。忽略动力学约束,规划出的轨迹可能“几何上可行、物理上不可跟踪”。
三、避障与实时性:局部规划的双重压力
避障要求规划结果与障碍物保持安全距离,并考虑机器人外形与膨胀半径。局部规划面对的障碍物往往动态出现,因此避障不是一次性几何检查,而是持续滚动进行的约束满足过程。实时性则要求规划器在固定控制周期内完成计算,例如 10 Hz、20 Hz 甚至 50 Hz。若单次规划耗时超过周期,轨迹就会过期,控制指令滞后,安全性和平顺性都会恶化。
实时性压力带来典型工程取舍:搜索空间离散化粒度、采样数量、优化迭代次数、碰撞检测精度,都需要在“质量”与“时限”之间平衡。常见做法包括热启动、增量式规划、候选轨迹缓存与 anytime 算法。
四、滚动时域规划:边走边算的闭环机制
滚动时域规划(Receding Horizon Planning)是局部规划的核心范式。它不追求一次性算出全程最优轨迹,而是在每个控制周期:以当前状态为起点,在有限预测时域内求解一个局部最优问题,只执行轨迹的前一小段,然后根据新观测重新规划。这一“规划—执行—再规划”的闭环,使系统能够应对动态障碍、模型误差与突发扰动。
五、核心概念对照清单
| 概念 | 关注对象 | 典型表达 | 工程影响 |
|---|---|---|---|
| 路径 | 几何位置序列 | 折线、样条、栅格路径 | 决定走哪里,不保证可跟踪 |
| 轨迹 | 位置 + 时间/速度 | q(t)、v(t)、a(t) | 可直接送控制器执行 |
| 运动学约束 | 位形与速度关系 | 非完整约束、最小转弯半径 | 限制可行运动方向 |
| 动力学约束 | 力、质量、惯量 | 加速度上限、力矩上限 | 决定轨迹是否物理可跟踪 |
| 避障 | 障碍物与安全距离 | 膨胀半径、碰撞检测 | 保证安全,影响可行空间 |
| 实时性 | 计算时间预算 | 控制周期、规划耗时 | 决定算法复杂度与降级策略 |
| 滚动时域 | 有限预测 + 反复重规划 | 预测时域、执行时域 | 应对动态环境与模型误差 |
六、案例与场景:窄通道会车
假设一台差速机器人在窄通道中遇到对向来车。全局路径是一条穿过通道中心线的折线。局部规划器首先根据当前位姿与障碍物位置,在通道内采样或优化出一条绕行路径;随后沿路径做时间参数化,生成满足最大线速度、最大角速度与最大加速度的轨迹;控制器只执行未来 0.5 秒的轨迹段。下一周期,对向车位置更新,规划器以新状态为起点重新求解。若计算超时,则退化为“减速 + 沿当前轨迹继续”的安全策略。这一过程完整体现了路径、轨迹、约束、避障、实时性与滚动时域的协同。
七、常见误区与复盘
- 把路径当轨迹输出:控制器收到纯几何路径后自行插值,容易产生速度突变与跟踪误差。
- 只考虑运动学、忽略动力学:仿真中轨迹平滑,实车上出现打滑、超调或电机饱和。
- 避障只做静态检查:动态障碍进入预测时域后才发现冲突,导致急刹或碰撞。
- 实时性预算不清:规划耗时波动大,控制周期抖动,轨迹执行不连续。
- 滚动时域只规划不闭环:执行段过长,环境变化后无法及时修正。
复盘时应重点检查三件事:输出到底是路径还是轨迹;约束是否同时覆盖运动学与动力学;单次规划耗时是否稳定落在控制周期内。只有这三者同时成立,局部规划才具备在复杂场景中稳定运行的基础。