第三章 典型功能场景设计:FCW、AEB与ACC

好,咱们直接进入正题。前向碰撞预警(FCW)、自动紧急制动(AEB)和自适应巡航(ACC),这三个功能是自动驾驶里最基础、也是最容易出事故的「三兄弟」。我这些年踩过的坑,有一半都跟它们有关。今天咱们就一个一个拆开来讲。

3.1 前向碰撞预警(FCW)场景设计

FCW说白了就是「眼睛盯着前面,嘴巴喊你刹车」。它不替你踩刹车,只负责报警。但你别小看这个报警,时机早了叫「误报」,晚了叫「漏报」,用户都会骂娘。

3.1.1 核心触发逻辑

FCW的触发条件其实就三个参数:自车速度、目标车速度、相对距离。我习惯用一个简化公式来判断:

TTC = 相对距离 / (自车速度 - 目标车速度)
if TTC < 阈值:
    触发FCW报警

这里的TTC(Time to Collision)是关键。阈值设多少?我见过有人设2.7秒,有人设3.0秒。我个人习惯设2.5秒——太早了用户觉得烦,太晚了来不及反应。

重要参数表(我常用的标定值)

场景类型 自车速度 目标车速度 TTC阈值
前车静止 60 km/h 0 km/h 2.5 s
前车减速 80 km/h 40 km/h 2.8 s
前车切入 100 km/h 60 km/h 3.0 s

3.1.2 典型测试场景

我建议你至少覆盖以下5种场景:

  1. 前车静止场景:自车匀速接近静止车辆。这是最基础的,但也是最容易出问题的。我曾经遇到过雷达把路边的金属广告牌识别成静止车辆,结果一路狂报警。
  2. 前车匀速减速场景:前车以-3 m/s²减速,自车保持速度。这里要注意,减速幅度太小FCW不该触发,太大就必须触发。
  3. 前车急刹场景:前车以-6 m/s²以上减速。这种场景下TTC会急剧缩短,报警必须果断。
  4. 目标车切入场景:相邻车道车辆突然切入本车道。嗯,这里要注意切入角度和速度,我见过有些算法对斜切入的车辆反应迟钝。
  5. 弯道场景:自车在弯道中,前方有静止车辆。雷达在弯道里容易丢失目标,这是个老大难问题。

我的小技巧:测试FCW时,别忘了把雨雾天气加进去。雷达在雨雾中衰减严重,我曾经有一次在雨天测试,FCW的探测距离直接缩水了40%。

3.2 自动紧急制动(AEB)场景设计

AEB是FCW的「升级版」——FCW只喊你刹车,AEB直接替你踩。但这里有个矛盾:踩早了用户觉得你「神经质」,踩晚了就撞上了。说白了,AEB就是在「误触发」和「漏触发」之间走钢丝。

3.2.1 触发逻辑与分级

我习惯把AEB分成两级:

  • 一级AEB(部分制动):TTC在1.5~2.0秒时触发,制动减速度约-3 m/s²。目的是减速,不是刹停。
  • 二级AEB(全力制动):TTC小于1.0秒时触发,制动减速度可达-8 m/s²以上。目的是避免碰撞。

你想想看,如果直接上全力制动,后面跟车的司机肯定追尾。所以分级是必须的。

3.2.2 典型测试场景

AEB的测试场景比FCW更「狠」,因为涉及实际制动。我建议重点覆盖:

  1. CCRS(Car-to-Car Rear Stationary):自车接近静止目标车。这是Euro NCAP的必测项目,速度从20 km/h到80 km/h都要测。
  2. CCRM(Car-to-Car Rear Moving):自车接近匀速运动的前车。前车速度通常取20 km/h,自车速度从30 km/h到80 km/h。
  3. CCRB(Car-to-Car Rear Braking):前车突然制动。前车制动减速度通常取-2 m/s²到-6 m/s²。
  4. VRU场景(弱势道路使用者):行人横穿、自行车突然窜出。这类场景对感知要求极高,我遇到过行人被误识别成电线杆的情况。

避坑指南:我曾经在测试CCRS时,发现AEB在50 km/h以上就失效了。查了半天,原来是雷达的纵向探测距离只有40米,50 km/h时TTC根本不够。所以,一定要确认传感器的物理极限

3.2.3 测试通过标准

场景 自车速度 目标速度 通过标准
CCRS 40 km/h 0 km/h 避免碰撞
CCRS 60 km/h 0 km/h 速度降低≥30 km/h
CCRM 80 km/h 20 km/h 避免碰撞
CCRB 50 km/h 50 km/h(-4 m/s²) 避免碰撞

3.3 自适应巡航(ACC)场景设计

ACC跟FCW、AEB不一样,它不是为了「救命」,而是为了「省力」。但省力不代表可以放松——ACC的平顺性和安全性同样重要。

3.3.1 核心控制逻辑

ACC的控制逻辑说白了就是「跟车」和「定速」两种模式的切换。我习惯用PID控制,但参数调起来很头疼:

# 简化的ACC控制逻辑
if 前方有目标车:
    目标速度 = min(设定速度, 前车速度)
    目标距离 = 时距 * 自车速度 + 静止距离
    加速度 = PID(实际距离 - 目标距离)
else:
    加速度 = PID(设定速度 - 自车速度)

这里的「时距」很关键。我一般设1.5秒到2.0秒,太短了不安全,太长了容易被加塞。

3.3.2 典型测试场景

ACC的测试场景比FCW和AEB更「细腻」,因为涉及纵向控制的平顺性:

  1. 定速巡航场景:前方无车,自车保持设定速度。这里要测试上坡、下坡时的速度波动,我见过有些车在上坡时速度掉5 km/h才补油。
  2. 跟车场景:前方有车,自车跟随。要测试前车匀速、加速、减速、停车四种情况。
  3. 目标车切入/切出场景:相邻车道车辆切入,或者前车切出。这是ACC最考验「智商」的地方——切入时刹车太猛会吓到用户,切出时加速太猛也会吓到用户。
  4. 弯道跟车场景:弯道中前车减速,自车需要同步减速。雷达在弯道里容易丢失目标,这时候要靠「预测」——说白了就是猜前车还在不在。
  5. Stop & Go场景:前车停车再起步。ACC需要能自动跟停,然后在前车起步后自动跟走。我遇到过跟停后等红灯,前车走了ACC还傻站着的情况。

我的经验:测试ACC时,别忘了测「加塞场景」。有些车对加塞车辆的识别太慢,等人家都进来一半了才开始刹车,那体验就很糟糕了。

3.3.3 平顺性评价指标

ACC不光要「安全」,还要「舒服」。我常用的评价指标有:

  • 加速度变化率(Jerk):建议控制在±2 m/s³以内,超过这个值用户会觉得「被踹了一脚」。
  • 稳态跟车距离误差:建议控制在±10%以内。
  • 响应延迟:从前车减速到自车开始减速,延迟建议小于0.3秒。

嗯,这里要注意,Jerk这个指标很多团队会忽略。但说实话,用户投诉「ACC太冲」的案例,十有八九都是Jerk超标。

3.4 三个功能的联合测试

最后说一句,FCW、AEB和ACC不是孤立的。实际开车时,它们会同时工作。比如ACC跟车时前车急刹,ACC先减速,如果减不够,FCW报警,再不够,AEB介入。这三个功能的优先级和切换逻辑,才是真正的难点。

我建议你设计一个「联合测试场景」:自车以80 km/h ACC跟车,前车突然以-6 m/s²急刹。这时候ACC应该先响应,如果TTC降到1.5秒以下,FCW报警,再降到1.0秒以下,AEB全力制动。这三个功能的衔接要平滑,不能出现「ACC还在减速,AEB突然抢方向盘」的情况。

好了,这一章的内容就到这里。下一章咱们聊聊「感知失效场景」——说白了就是传感器坏了怎么办。那才是真正考验系统安全性的地方。