2、基础概念:全局路径与局部路径的区别、局部路径规划的输入输出、常见坐标系与车辆运动学模型简介
在无人车路径规划体系中,路径规划被划分为两个层次:全局路径规划(Global Path Planning)与局部路径规划(Local Path Planning)。两者并非相互替代,而是形成“宏观决策—微观执行”的递进关系。全局路径规划负责在已知或部分已知的静态地图中,从起点到终点搜索一条可行路径,通常以道路级或车道级的几何序列表示;而局部路径规划则是在车辆实际行驶过程中,基于当前传感器感知到的动态环境信息,在全局路径的引导下,实时生成一段短距离、可执行、安全且平滑的行驶轨迹。本章将围绕两者的本质区别、局部路径规划的输入输出接口、常用坐标系定义以及车辆运动学模型展开,为后续章节的算法推导与工程实现奠定基础。
上图展示了全局路径规划与局部路径规划在系统层级中的关系。全局规划层输出的是“参考路径”,它不包含时间信息,也不考虑动态障碍物;局部规划层则接收参考路径、感知信息与车辆状态,输出带有时间戳的“轨迹”(Trajectory),直接供控制层执行。需要特别强调的是,局部路径规划并非独立于全局路径的“重新寻路”,而是在全局路径的“管道”内进行精细化的避障与平滑处理。如果局部规划完全脱离全局参考,车辆可能在复杂场景中“迷路”,例如在环岛或多层立交中失去拓扑约束。
2.1 全局路径与局部路径的本质区别
核心原理
全局路径规划解决的是“走哪条路”的问题,其输入是静态地图、起点与终点,输出是一条从起点到终点的几何路径。它通常不考虑车辆动力学约束,也不关心障碍物是否在移动。例如,在高速公路场景中,全局路径可能是一条沿车道中心线的折线或曲线序列,每隔0.5米或1米一个路点。而局部路径规划解决的是“接下来怎么走”的问题,它必须在几十毫秒到几百毫秒内完成计算,输出一段未来1~3秒内车辆需要跟踪的轨迹,包含位置、航向、曲率以及速度信息。
| 对比维度 | 全局路径规划 | 局部路径规划 |
|---|---|---|
| 规划范围 | 起点到终点(公里级) | 当前点到前方50~200米(米级) |
| 地图输入 | 静态高精地图/栅格地图 | 局部感知栅格/障碍物列表/车道线 |
| 障碍物处理 | 仅考虑静态障碍物 | 动态障碍物+静态障碍物 |
| 时间维度 | 无时间信息 | 带时间戳的速度曲线 |
| 更新频率 | 低频(0.1~1 Hz) | 高频(10~50 Hz) |
| 输出形式 | 路点序列 (x, y, θ) | 轨迹点序列 (x, y, θ, v, a, κ, t) |
| 约束条件 | 道路拓扑、交通规则 | 车辆运动学、动力学、安全边界 |
判断方法与操作流程
在实际工程中,判断一个规划模块属于全局还是局部,可以从三个维度快速区分:更新频率(全局低频、局部高频)、输入数据时效性(全局使用离线地图、局部使用实时感知)、输出是否包含速度(全局路径不含速度,局部轨迹必须含速度)。在系统架构设计时,通常采用“全局规划—局部规划—运动控制”的三级流水线。全局规划器在车辆启动时或路线变更时运行一次,将参考路径发布到ROS Topic或类似的消息总线;局部规划器订阅该路径,并结合感知模块发布的障碍物信息,以固定频率(如20 Hz)进行滚动优化。
Path消息发布,局部轨迹以Trajectory消息发布。调试时,可以通过可视化工具分别显示两条曲线,若局部轨迹频繁偏离全局参考,应优先检查感知障碍物是否误报,或局部规划器的代价函数权重是否失衡。
2.2 局部路径规划的输入与输出
输入接口详解
局部路径规划的输入可以归纳为四类:参考路径、感知信息、车辆状态和任务约束。参考路径来自全局规划器,通常以离散路点数组表示,每个路点包含坐标和航向角。感知信息包括障碍物列表(位置、速度、形状、类型)、车道线拟合曲线、交通信号灯状态等。车辆状态由定位模块和IMU提供,包括当前位姿(x, y, θ)、纵向速度、横向速度、横摆角速度、加速度以及方向盘转角。任务约束则包括车辆物理极限(最大转向角、最大加速度)、舒适性指标(最大 jerk)以及安全距离参数。
// 局部路径规划输入数据示例(伪代码)
struct LocalPlannerInput {
vector<PathPoint> reference_path; // 全局参考路径
vector<Obstacle> obstacles; // 动态/静态障碍物
VehicleState current_state; // 当前车辆状态
double max_speed; // 速度上限
double max_accel; // 加速度上限
double safety_margin; // 安全边界距离
};
输出接口定义
局部路径规划的输出是一条局部轨迹,它比全局路径多出速度、加速度和时间信息。每个轨迹点通常包含:横向位置x、纵向位置y、航向角θ、曲率κ、速度v、加速度a、时间戳t。控制模块将跟踪这条轨迹,通过前馈+反馈的方式计算方向盘转角与油门/刹车指令。输出轨迹的长度通常覆盖未来1~3秒的行驶距离,在高速场景下可能达到100米以上,在低速泊车场景下可能只有5~10米。
2.3 常见坐标系定义与转换
核心原理
无人车系统中存在多个坐标系,理解它们之间的转换关系是局部路径规划的基础。常用的坐标系包括:全局坐标系(Global Frame)、车辆坐标系(Vehicle Frame)、传感器坐标系(Sensor Frame)以及Frenet坐标系。全局坐标系通常采用UTM(通用横墨卡托)或高斯-克吕格投影坐标,以米为单位,X轴指向东,Y轴指向北。车辆坐标系以车辆后轴中心为原点,X轴指向车辆前进方向,Y轴指向车辆左侧,Z轴垂直向上。传感器坐标系则根据激光雷达、摄像头等安装位置定义。
在局部路径规划中,Frenet坐标系具有特殊价值。它以全局参考路径为基准,用纵向距离s(沿路径的弧长)和横向距离d(偏离路径的侧向距离)来描述车辆位置。这种表示方式将“沿路行驶”和“偏离道路”两个维度解耦,使得路径规划问题可以分解为纵向规划(速度控制)和横向规划(避障变道)两个子问题,极大简化了算法设计。
| 坐标系 | 原点 | X轴方向 | Y轴方向 | 主要用途 |
|---|---|---|---|---|
| 全局坐标系 | 地图原点 | 东向 | 北向 | 全局路径、定位 |
| 车辆坐标系 | 后轴中心 | 前进方向 | 左侧 | 控制、运动学建模 |
| 传感器坐标系 | 传感器安装位置 | 传感器朝向 | 左侧 | 感知数据预处理 |
| Frenet坐标系 | 参考路径起点 | 路径切线方向(s) | 路径法线方向(d) | 局部路径规划 |
坐标转换流程
在工程实现中,坐标转换通常遵循固定流程:首先将传感器坐标系下的障碍物点云通过外参矩阵转换到车辆坐标系;然后结合车辆当前位姿,将车辆坐标系下的障碍物转换到全局坐标系;最后,将全局坐标系下的障碍物投影到Frenet坐标系,得到(s, d)坐标。这一转换链路的精度直接影响规划效果。例如,若外参标定误差达到5厘米,在高速行驶时可能导致避障距离不足。
2.4 车辆运动学模型简介
核心原理
车辆运动学模型描述了车辆在低速或中等速度下,不考虑轮胎侧偏等动力学效应时的几何运动关系。最常用的是自行车模型(Bicycle Model),它将车辆的前后轮分别合并为一个虚拟车轮,假设车辆为刚体,且只有前轮可以转向。该模型的状态量通常为车辆后轴中心位置(x, y)、航向角θ和前轮转角δ,控制量为前轮转角δ和纵向速度v。
// 自行车模型运动学方程(低速场景)
dx/dt = v * cos(θ)
dy/dt = v * sin(θ)
dθ/dt = v * tan(δ) / L
其中 L 为轴距(前后轴距离)
从上述方程可以看出,车辆的转弯半径R = L / tan(δ)。当δ=0时,车辆直线行驶;当δ达到最大值δ_max时,转弯半径最小。这一模型在局部路径规划中用于两个关键场景:一是轨迹生成时,确保生成的轨迹满足曲率约束;二是轨迹跟踪时,预测车辆在未来一段时间内的状态。
模型选择与适用场景
在实际工程中,需要根据车速和场景选择合适的模型。当车速低于10 km/h(如泊车场景)时,自行车运动学模型精度足够;当车速高于36 km/h时,轮胎侧偏角不可忽略,需要引入动力学模型,考虑轮胎侧偏刚度、质心侧偏角等参数。对于局部路径规划而言,运动学模型通常用于生成候选轨迹,而动力学模型用于安全校验或高速场景下的轨迹优化。
常见误区与总结复盘
- 误区一:将全局路径直接作为控制指令发送。全局路径不含速度信息,且未考虑动态障碍物,直接执行会导致车辆无法应对突发情况。
- 误区二:忽略坐标系转换中的时间同步。传感器数据、定位数据和控制指令必须使用相同的时间戳,否则在车辆高速行驶时,几十毫秒的时间偏差就会导致数十厘米的位置误差。
- 误区三:在所有车速下都使用运动学模型。当车速超过一定阈值(通常为15~20 m/s)时,运动学模型的假设不再成立,必须引入动力学约束。
- 误区四:Frenet坐标系中s方向处理不当。在倒车或复杂路况下,s可能不再单调递增,需要特殊处理或切换到笛卡尔坐标系。