4. 路径规划基础概念

无人矿卡的路径规划不是“画一条从A到B的线”这么简单。它要在露天矿的装载点、卸载点、破碎站、排土场、加油点之间,为每一辆车生成可执行、可跟踪、可调度、可避障的行驶轨迹。理解全局与局部、静态与动态、可行性与最优性、约束条件分类这四个基础概念,是后续学习A*、Hybrid A*、Lattice Planner、MPC以及多车调度算法的前提。

一、全局路径与局部路径:分层规划的基本结构

工程上通常采用“全局—局部”两层甚至三层规划架构。全局路径负责回答“从起点到终点大致走哪条路”,局部路径负责回答“未来几秒到几十秒内具体怎么走”。

  • 全局路径规划:基于矿区高精地图、路网拓扑、装载点/卸载点位置,生成从起点到目标点的路网级路径。输出通常是车道序列、路口转向序列、路径长度、预计通行时间。它关注的是“路线选择”,不关注具体横向偏移和实时避障。
  • 局部路径规划:在全局路径引导下,结合实时感知到的障碍物、其他矿卡、路面沉陷、扬尘遮挡等,生成满足车辆运动学约束的平滑轨迹。输出通常是未来3~10秒的轨迹点序列(x, y, θ, v, t)。
  • 行为层:介于两者之间,负责车道保持、跟车、换道、路口让行、装载点排队等驾驶行为的决策。
在无人矿卡中,全局路径通常由调度系统下发,局部路径由车端规划模块实时计算。调度系统关注“哪辆车走哪条路”,车端关注“这条路怎么安全地走完”。

二、静态与动态规划:环境是否随时间变化

静态规划假设环境在规划周期内不变,动态规划则显式考虑其他车辆、行人、临时障碍物的运动。矿区场景中,静态规划用于生成路网级参考路径,动态规划用于实时避障和跟车。

对比维度 静态规划 动态规划
环境假设 障碍物位置固定 障碍物位置/速度随时间变化
典型算法 Dijkstra、A*、RRT D* Lite、MPC、速度障碍法
规划周期 分钟级或事件触发 100ms~500ms
输出 路网路径、车道序列 带时间戳的轨迹
矿区应用 装载点到卸载点路线 跟车、避障、路口通行

三、可行性与最优性:先能走,再走好

路径规划的第一目标是可行性,第二目标才是最优性。可行性指路径满足车辆运动学、动力学、安全距离、道路边界等硬约束;最优性指在可行路径中寻找代价最小的那条。

  • 可行性约束:最小转弯半径、最大坡度、最大侧倾角、离障碍物安全距离、道路宽度、装载点停车位姿。
  • 最优性指标:路径长度最短、行驶时间最少、能耗最低、轮胎磨损最小、对调度计划扰动最小。
  • 工程取舍:矿区更看重“稳定可执行”而非“理论最短”。一条短但需要频繁急转弯的路径,可能比一条稍长但平顺的路径更差。
常见误区:只优化路径长度,忽略车辆运动学约束,导致规划出的路径无法跟踪,或跟踪时频繁停车、打死方向,反而降低运输效率。

四、约束条件分类:硬约束、软约束与动态约束

约束条件决定了规划问题的边界。矿区路径规划的约束可分为三类:

  1. 硬约束(必须满足):车辆最小转弯半径、道路边界、坡度限制、安全距离、装载点/卸载点停车精度。违反硬约束的路径直接判定为不可行。
  2. 软约束(尽量满足):乘坐舒适性、能耗、轮胎磨损、与调度计划的偏差。软约束通过代价函数加权,允许在必要时妥协。
  3. 动态约束(随时间变化):其他矿卡的运动、临时交通管制、装卸设备位置变化、天气导致的能见度下降。动态约束要求规划器滚动更新。
# 矿区路径规划约束配置示例(YAML)
vehicle:
  min_turning_radius: 12.0   # m,硬约束
  max_slope: 0.12            # 12%,硬约束
  max_speed: 8.0             # m/s,硬约束
  safety_margin: 3.0         # m,硬约束

cost_weights:
  path_length: 1.0           # 软约束
  energy: 0.3                # 软约束
  comfort: 0.2               # 软约束
  schedule_deviation: 0.5    # 软约束

dynamic:
  replan_period: 0.2         # s,动态约束
  obstacle_horizon: 30.0     # m,动态约束

五、矿区场景案例:装载点到卸载点的完整规划链

假设一辆无人矿卡在装载点完成装载,需要前往破碎站卸载。规划链如下:

  1. 调度系统根据路网拓扑,计算全局路径:装载点→主运输道路→路口A→破碎站入口。
  2. 车端接收全局路径,结合当前位姿生成参考线。
  3. 局部规划器以200ms周期运行,检测前方其他矿卡、落石、扬尘区域。
  4. 若前方有慢车,局部规划器生成跟车轨迹;若前方障碍物静止,生成换道或绕行轨迹。
  5. 若所有局部轨迹都不可行,触发停车请求,并上报调度系统重新分配路径。
全局路径决定“走哪条路”,局部路径决定“怎么走”;静态规划提供参考,动态规划保证安全;可行性是底线,最优性是目标;硬约束不可违反,软约束可以权衡,动态约束必须滚动处理。

六、常见误区与复盘

  • 误区一:把全局路径直接当轨迹用。全局路径只有路网级精度,缺少横向偏移和曲率信息,直接跟踪会导致车辆压线或冲出道路。
  • 误区二:动态规划周期过长。矿区车速虽低,但装载点附近人车混行,200ms以上的规划周期可能来不及响应突然出现的障碍物。
  • 误区三:软约束权重设置不合理。若能耗权重过高,车辆可能选择绕远但省电的路径,导致调度计划延误。
  • 误区四:忽略可行性检查。规划器输出路径后,必须经过运动学可行性校验,否则跟踪控制器会报错或车辆急停。

复盘时建议记录每次规划失败的约束类型:是硬约束冲突、软约束代价过高,还是动态障碍物导致无解。这些数据是后续调参和算法迭代的重要依据。

无人矿卡路径规划分层架构与约束关系 调度层(全局路径规划 · 静态) 路网拓扑 · 装载点/卸载点 · 多车分配 · Dijkstra / A* · 分钟级更新 下发全局路径 行为层(驾驶决策) 车道保持 · 跟车 · 换道 · 路口让行 · 装载点排队 · 状态机 行为指令 局部规划层(动态轨迹生成) MPC · Lattice Planner · 速度障碍法 · 200ms周期 · 带时间戳轨迹 轨迹点序列 控制层(轨迹跟踪) Pure Pursuit · Stanley · MPC跟踪 · 转向/驱动/制动执行 硬约束 转弯半径 · 坡度 · 安全距离 软约束 能耗 · 舒适性 · 轮胎磨损 动态约束 他车运动 · 临时管制 · 天气 可行性优先 最优性目标

掌握这四个基础概念后,后续学习具体算法时就能明确:A*解决的是静态全局路径问题,MPC解决的是动态局部轨迹问题,约束分类决定了代价函数和可行性检查的设计方式。在矿区实际工程中,建议先保证可行性,再逐步优化最优性,并通过日志记录约束冲突类型,持续迭代规划参数。