共计 1604 个字符,预计需要花费 5 分钟才能阅读完成。
大赛背景与技术挑战
百度 Apollo 自动驾驶大赛作为国内顶尖的自动驾驶技术竞技平台,始终聚焦三大核心挑战:厘米级高精度定位(尤其在 GNSS 拒止环境)、多传感器实时融合(时间同步误差需控制在 50ms 内)、复杂场景下的决策规划(如无保护左转场景的通过率需达到 95% 以上)。2023 年赛事数据显示,85% 的参赛车队在初赛阶段因传感器标定误差导致感知失效,凸显全栈技术整合的重要性。

核心技术模块实现
1. 多传感器时空对齐
激光雷达与相机融合采用 Apollo 特有的外参标定工具(apollo/modules/calibration),关键步骤包括:
- 棋盘格靶标采集:需保证 LiDAR 点云中能清晰识别角点(建议使用 40cm×40cm 棋盘)
- 时间同步补偿:通过硬件触发信号对齐,代码示例:
// modules/drivers/velodyne/velodyne_driver/src/driver.cc void VelodyneDriver::poll() {while (ros::ok()) {if (trigger_mode_) {hardware_trigger_wait(); // 等待相机触发脉冲 } // 数据采集逻辑 } } - 标定验证指标:重投影误差需 <1.5 像素(1280×720 分辨率下)
2. 决策规划架构
Apollo 采用分层状态机设计,其决策逻辑通过 FSM 实现场景切换:
# modules/planning/conf/scenario_config.pb.txt
scenario_type: STOP_SIGN_UNPROTECTED {
stage_type: STOP_SIGN_UNPROTECTED_PRE_STOP
stage_type: STOP_SIGN_UNPROTECTED_CREEP
stage_type: STOP_SIGN_UNPROTECTED_INTERSECTION_CRUISE
}
路径优化使用 QP 算法,其目标函数包含三项成本:
$$
\min\sum_{k=1}^N (w_{lat}\cdot d_k^2 + w_{ref}\cdot (s_k-s_{ref})^2 + w_{obs}\cdot \frac{1}{dist_{obs}^2})
$$
其中权重参数建议初始值:$w_{lat}=1.0$, $w_{ref}=0.3$, $w_{obs}=5.0$
性能优化实践
计算资源分配
通过 Apollo 的 Cyber RT 框架实现 CPU 核绑定,典型配置:
- 感知模块:独占 2 个物理核(如核 0 -1)
- 规划控制:共享 4 个 HT 核(核 2 -5)
- 通信延迟实测:
| 模块 | 单帧处理时延(ms) |
|—————|——————|
| 目标检测 | 35±2 |
| 轨迹规划 | 22±1 |
| 控制输出 | 8±0.5 |
典型问题排查
传感器标定异常
- 现象:相机与 LiDAR 检测框偏移
- 诊断流程:
- 检查标定板点云密度(应 >50 点 /cm²)
- 验证时间戳对齐误差(需 <1ms)
- 重跑标定工具并保存
calibration_result.yaml
决策边缘场景
针对突然出现的施工锥桶,需在 modules/planning/conf/planning_config.pb.txt 中调整:
planner_public_road_config {
max_stop_distance: 3.0 // 原值 5.0
enable_reverse_decision: false
}
实践建议
- 仿真测试流程:
- 优先使用 Apollo Studio 的 Sunnyvale Loop 场景
- 逐步增加行人密度(建议从 5 人 / 场景开始)
- 参数调优 Checklist:
- √ 感知模块:目标检测置信度阈值≥0.7
- √ 规划模块:QP 优化迭代次数≥50 次
- √ 控制模块:LQR 预览距离 8 -12 米
通过系统化的模块调试与性能分析,参赛车队可显著提升在复杂场景下的通过率。2023 年冠军队伍的技术报告显示,经过上述优化后其无保护左转场景决策成功率从 82% 提升至 97%。
正文完
