1. 无人驾驶局部路径规划的核心挑战
在典型城市道路环境中,无人驾驶车辆需要实时处理三类关键场景:静态障碍物规避(如施工路锥、违停车辆)、动态障碍物交互(如变道车辆、横穿行人)以及复杂拓扑结构(如多岔路口、不规则环岛)。传统全局规划算法难以应对这种高动态性,而局部路径规划正是解决这一痛点的关键技术。
RRT(快速扩展随机树)算法之所以成为主流解决方案,源于其独特的优势:在16维以上的高维构型空间中仍能保持较高搜索效率(相比A*算法提升3-5个数量级),且不依赖完整环境先验信息。我们团队在实车测试中发现,基础RRT算法在以下场景存在明显缺陷:
- 急弯路段产生锯齿状路径,导致方向盘高频抖动(实测转向角波动达±15°)
- 狭窄通道通过率不足60%(与人类驾驶员95%通过率相比)
- 动态障碍物重规划延迟超过300ms
2. RRT算法的工程化改进方案
2.1 基于概率密度函数的采样优化
传统均匀采样会导致70%以上的计算资源浪费在无效区域。我们采用混合采样策略:
def biased_sampling(goal, obstacles): if np.random.rand() < 0.3: # 目标导向采样 return goal + np.random.normal(scale=0.5, size=2) else: # 障碍物边缘采样 obs = random.choice(obstacles) return obs.surface_point() + np.random.normal(scale=0.2, size=2)实测表明该策略将有效节点生成率从28%提升至63%,同时配合KD-Tree加速最近邻搜索,使50m范围内的节点查询时间从15ms降至3ms。
2.2 动态步长调节机制
固定步长会导致狭窄区域通过困难。我们建立步长与局部特征的关系模型:
步长 = 基础步长 × (1 - 障碍物密度)^2 × 曲率平滑因子其中障碍物密度通过LiDAR点云在2m半径内的覆盖率计算,曲率平滑因子取自历史路径的二阶导数。在3.5m宽巷道中,该策略使规划成功率从58%提升至89%。
3. B样条轨迹优化的关键技术
3.1 控制点初始化策略
直接将RRT路径顶点作为控制点会产生加速度突变。我们采用分段初始化方法:
- 对原始路径进行Douglas-Peucker简化(ε=0.2m)
- 每3个简化点生成一个B样条控制点
- 端点处添加虚拟控制点保证C2连续性
实测显示该方法使初始轨迹的最大向心加速度从2.8m/s²降至1.5m/s²。
3.2 基于QP的实时优化
构建包含五项代价的优化目标:
min Σ(曲率² + 曲率变化率² + 障碍物距离⁻¹ + 参考线偏移² + 终点误差²)使用OSQP求解器可在10ms内完成50控制点的优化。某次实测数据对比:
| 指标 | 优化前 | 优化后 |
|---|---|---|
| 最大曲率 | 0.28m⁻¹ | 0.15m⁻¹ |
| 横向加速度 | 2.1m/s² | 1.2m/s² |
| 距障碍物最近 | 0.6m | 1.2m |
4. 典型场景下的参数调优经验
4.1 十字路口场景
- RRT扩展步长建议1.5-2m
- B样条阶数选择4阶(兼顾平滑性与实时性)
- 优化权重分配:曲率项0.6,安全项0.3
4.2 拥堵跟车场景
- 采样偏置提高到0.4(增强目标导向性)
- 引入速度障碍物VO约束
- 控制点间距缩小至1.2m
5. 实车部署中的常见问题
5.1 规划延迟波动
现象:正常工况下规划耗时50ms,但偶发峰值超过200ms 根因分析:KD-Tree在节点数>500时平衡性下降 解决方案:每100次迭代强制重建树结构
5.2 轨迹抖动
现象:低速时出现高频小幅摆动 调试记录:
- 降低曲率变化率权重会加重抖动
- 最终发现是控制点间距不均匀导致 修正方案:在优化约束中添加控制点间距不等式
某次夜间测试数据表明,经过上述优化后,横向位置误差从±0.25m降至±0.12m,方向盘转角波动减少40%。