1. 课程导入

在自动驾驶、移动机器人、无人机集群与智能仓储等系统中,轨迹规划从来不是“一次算完就结束”的问题。真实世界充满动态障碍、临时管制、通信延迟、执行误差与任务变更,任何一条在静态地图上看似完美的轨迹,都可能在几秒后失效。因此,动态场景轨迹重规划与优化关注的是:当环境、任务或系统状态发生变化时,如何快速、安全、平滑地生成新的可行轨迹,并使其在动力学约束、实时性约束与舒适性约束下尽可能最优。

一句话定义:动态场景轨迹重规划与优化,是在线感知—预测—决策—规划—控制闭环中,面向时变环境与不确定扰动,对已有轨迹进行快速修正、局部重构或全局再优化的工程方法体系。

1.1 为什么需要“重规划”而不是“重新规划”

很多初学者会把重规划理解为“每次变化都从头算一条新轨迹”。这在工程上往往不可行:全局规划器计算量大、耗时长,且频繁切换轨迹会导致控制抖动、乘坐不适甚至执行机构磨损。重规划的核心思想是增量式修正:保留原轨迹中仍然有效的部分,只对受影响的时间窗口或空间区域进行局部调整;当局部调整无法满足安全或可行性时,再触发更大范围的重构。

与之配套的“优化”则解决另一个问题:新轨迹不仅要可行,还要在多个目标之间取得平衡,例如安全性、通行效率、平滑性、能耗与乘坐舒适性。常见做法是把轨迹表示为多项式、样条或离散路点序列,构造带约束的优化问题,并用二次规划、非线性优化或采样优化求解。

1.2 整体知识框架:从感知到执行的五层结构

本课程的知识框架可以概括为“五层一闭环”。下图展示了动态场景下轨迹重规划与优化的整体数据流与模块关系:感知层提供动态障碍与地图更新,预测层输出未来轨迹分布,决策层判断是否需要重规划以及重规划范围,规划优化层生成候选轨迹并求解,控制层跟踪执行,同时执行偏差与新的感知结果反馈回重规划触发模块。

动态场景轨迹重规划与优化 · 五层闭环 感知层 动态障碍 / 地图更新 定位 / 状态估计 预测层 障碍轨迹预测 不确定性建模 决策层 重规划触发判断 局部 / 全局范围选择 规划与优化层 候选轨迹生成 · 约束构造 · 目标函数 QP / NLP / 采样优化求解 控制与执行层 轨迹跟踪 · 前馈+反馈 执行偏差监测 重规划触发与评估 安全距离不足 · 预测轨迹冲突 · 任务变更 跟踪误差超限 · 时间窗口耗尽 评价与复盘 安全性 / 平滑性 / 实时性 失败案例回放 执行偏差与感知更新反馈 → 触发下一轮重规划 工程约束主线 动力学约束:速度、加速度、曲率、转向角限制 实时性约束:规划周期 10–100 ms,求解时间预算 安全约束:碰撞距离、不确定性膨胀、紧急制动可行域 舒适性约束:加加速度 jerk、横向加速度 一致性约束:新旧轨迹平滑衔接 任务约束:目标点、时间窗、优先级

1.3 方法流程:一次重规划的典型生命周期

下面给出一个可落地的重规划流程,适用于大多数移动机器人与自动驾驶场景:

  1. 状态输入:读取当前位姿、速度、加速度,以及最新感知到的动态障碍列表与预测轨迹。
  2. 触发判断:计算原轨迹与预测障碍的最小安全距离、跟踪误差、剩余时间预算,判断是否需要重规划。
  3. 范围选择:若冲突发生在未来 2 秒内且局部可绕行,则选择局部重规划窗口;否则扩大至全局或分段重构。
  4. 轨迹表示:选择多项式、B 样条、离散路点或时空图表示,确定优化变量维度。
  5. 约束构造:将碰撞 avoidance、动力学限制、边界条件写成等式或不等式约束。
  6. 目标函数:加权组合平滑性、偏离原轨迹程度、通行时间、能耗等项。
  7. 求解与校验:调用 QP/NLP 求解器,检查可行性、安全性与实时性;失败则降级到保守策略。
  8. 输出与跟踪:将新轨迹送入控制器,并记录本次重规划的触发原因与求解耗时。
# 重规划触发判断伪代码
def need_replan(current_state, old_traj, obstacles, dt):
    min_dist = compute_min_distance(old_traj, obstacles)
    tracking_err = norm(current_state.pose - old_traj.pose_at(0))
    time_left = old_traj.duration - current_state.t
    if min_dist < SAFE_MARGIN:
        return True, "collision_risk"
    if tracking_err > ERR_THRESHOLD:
        return True, "tracking_error"
    if time_left < MIN_HORIZON:
        return True, "horizon_short"
    return False, "none"

1.4 工程应用全景与典型场景

动态场景轨迹重规划与优化并非单一算法,而是一套面向工程落地的系统能力。下表列出典型应用场景、核心挑战与常用方法,帮助建立“场景—问题—方法”的对应关系。

应用场景 动态性来源 核心挑战 常用方法
城市自动驾驶 行人、车辆、施工区 交互博弈、安全距离、实时性 时空走廊、QP、MPC、采样优化
仓储 AGV 其他 AGV、临时货架 多机冲突、死锁、窄通道 优先级规划、时间窗搜索、局部重规划
无人机集群 气流、禁飞区、同伴 三维避障、通信延迟、编队保持 分布式优化、势场+重规划、B 样条
服务机器人 行人、宠物、移动家具 人机共融、舒适性、社会规范 社会力模型、轨迹预测、局部优化
高速巡航 前车变速、匝道汇入 高速稳定性、纵向舒适性 纵向 MPC、换道决策、多项式轨迹

1.5 常见误区与复盘要点

误区一:重规划频率越高越安全。频繁重规划会导致轨迹抖动、控制饱和,反而降低稳定性。应设置合理的触发阈值与最小重规划间隔。

误区二:只关注几何避障,忽略动力学可行性。一条几何上无碰撞的轨迹,可能因曲率或加速度超限而无法跟踪。

误区三:优化目标权重拍脑袋。权重直接决定行为风格,应通过场景测试与数据标定,而不是一次调参后长期不变。

复盘建议:每次重规划失败或触发紧急接管后,记录触发原因、求解耗时、约束冲突项与最终执行结果。长期积累可形成“场景—失败模式—参数调整”的知识库,这是工程能力提升的关键。

1.6 学习目标

  • 理解动态场景轨迹重规划与优化的定义、边界与工程价值。
  • 掌握“感知—预测—决策—规划—控制”闭环中重规划所处的位置与数据流。
  • 能够根据场景选择局部重规划、全局重构或分段优化策略。
  • 掌握轨迹表示、约束构造、目标函数设计与求解器选型的基本方法。
  • 具备分析重规划失败原因、设计降级策略与评价指标的能力。