共计 1371 个字符,预计需要花费 4 分钟才能阅读完成。
1. 停止墙技术背景
停止墙(Stop Wall)是自动驾驶系统中的关键安全冗余机制,主要解决传感器漏检或突发障碍物导致的碰撞风险。与乘用车的 AEB(自动紧急制动)不同,Apollo 的停止墙具有三个显著特点:

- 预判性制动 :基于高精地图和实时感知数据,在障碍物出现前 50-100 米就开始规划减速曲线
- 多模态触发 :支持激光雷达点云、视觉识别、V2X 信号等多种触发条件
- 可配置策略 :可根据路段限速、车辆载重等参数动态调整制动距离
2. 实现架构解析
2.1 感知层实现
Apollo 采用多传感器融合方案检测停止墙,核心处理流程:
- 点云预处理:通过体素网格滤波(voxel grid filter)降采样,典型参数 0.1m×0.1m×0.1m
- 地面分割:使用 RANSAC 算法拟合地面平面,移除地平面点云
- 障碍聚类:基于欧式距离聚类(DBSCAN 变种),关键参数 eps=0.3m,min_samples=5
# 点云聚类示例代码(Python)from sklearn.cluster import DBSCAN
def cluster_obstacles(points):
clustering = DBSCAN(eps=0.3, min_samples=5).fit(points)
labels = clustering.labels_
return [points[labels == i] for i in np.unique(labels) if i != -1]
2.2 决策层逻辑
当检测到停止墙时,决策模块会在 Frenet 坐标系下进行路径重规划:
- 将障碍物投影到 SL 坐标系(s 为纵向距离,l 为横向偏移)
- 计算五次多项式轨迹:
s(t) = a0 + a1*t + a2*t² + a3*t³ + a4*t⁴ + a5*t⁵ - 通过 QP(二次规划)优化得到平滑的避障轨迹
2.3 控制层实现
制动曲线生成采用三阶段模型:
- 舒适减速阶段:-1.5m/s²加速度
- 紧急制动阶段:-3.0m/s²加速度
- 完全停止阶段:保持 0.5m 安全距离
3. 典型问题解决方案
3.1 点云稀疏场景
在高速公路等场景下,建议:
- 增加时间维度累积:使用卡尔曼滤波跟踪历史检测结果
- 启用辅助视觉检测:结合 YOLOv3 的障碍物识别结果
3.2 与交通灯协同
通过优先级仲裁机制解决冲突:
- 红灯状态:停止墙触发距离延长 20%
- 绿灯状态:仅对动态障碍物启用停止墙
- 黄灯状态:根据剩余时间动态调整制动曲线
3.3 天气适应性
不同天气条件下的参数调整建议:
| 天气条件 | 点云降采样率 | 视觉权重 | 制动距离系数 |
|---|---|---|---|
| 晴天 | 0.1 | 0.3 | 1.0 |
| 雨天 | 0.05 | 0.5 | 1.2 |
| 雾天 | 0.02 | 0.8 | 1.5 |
4. 性能对比测试
在 Apollo 7.0 平台上实测数据:
| 指标 | 传统 AEB | Apollo 停止墙 |
|---|---|---|
| 响应延迟 (ms) | 120 | 80 |
| 制动距离 (m) | 3.2 | 2.5 |
| 误触发率 (%) | 0.8 | 0.3 |
5. 实践建议
对于新手开发者,推荐按以下步骤调试停止墙模块:
- 先在仿真环境测试不同障碍物形状(锥桶、车辆、行人)
- 使用 Apollo Dreamview 的调试工具可视化 SL 坐标系路径
- 逐步放开控制参数的限制范围
思考题
在实际部署中,可以通过以下方式平衡灵敏度和误报率:
- 设置多级置信度阈值(如 70% 触发预警,90% 触发制动)
- 结合高精地图信息排除固定误报源(如桥梁、广告牌)
- 建立驾驶员接管率统计模型动态调整参数
停止墙的调优需要持续的路测数据积累,建议建立自动化回归测试框架,每次代码变更后跑完 300+ 个典型场景测试用例再部署。
正文完
