浅谈实车开放道路确认测试
——自动驾驶开发之完美收官
一、为什么需要“实车开放道路确认测试”?
我们知道,自动驾驶系统是以场景作为输入,车辆的执行结果作为输出,自动驾驶的能力实现来源于在设计运行区域(ODD)所有用例的正确处理。
由于场景的组成因素较多,包括天气、光照、道路类型、路面条件、自车动态、周边交通参与者或物体等,这些因素进行随机组合会形成无限多种场景。如何确保系统针对无限多个场景都能进行完整的感知、合理的处理、正确的执行?
自动驾驶系统的开发过程就需要经过数以亿计的公里数的测试和验证。
于开发周期和成本的限制,大部分的测试工作都是在仿真环境中进行,因此工程师们创造出一系列的仿真测试方法:模拟在环(SIL)、模型在环(MIL)、硬件在环(HIL)、车辆在环(VIL)等。
仿真测试因为其测试用例获取方便、并行开展效率高等特点,被应有于传感器性能、决策算法等一些列有针对性的测试工作当中,取得了很好的效果。
但人工模拟的场景和真实场景不可避免会有偏差,这些偏差来源于多个方面:
1.虚拟场景是使用仿真软件对场景因素进行人工组合设计而成,场景的真实性有偏差,比如:仿真环境中的其它车辆行为只能根据有限的数学模型运行。(这一点目前通过采集真实场景数据,仿真软件复现的方式,可以改善测试效果)
2.虚拟场景不能包含真实场景中的所有因素,场景完整性有偏差。比如:仿真软件不能模拟路面上的立体图画,如下图;又如,雷达模拟器仿真的目标物信号,排除了真实世界中的干扰因素。
3.仿真系统传感器模拟器、信号传输等设备产生的精度有偏差。比如:摄像头信息和毫米波雷达信息都通过不同模拟器的运行产生,同步效果和真实场景存在偏差。
4.以上3点的组合又会造成系统层面更大的偏差。
所以,自动驾驶系统集成后需要实车在开放道路进行测试。
类似于传统汽车,自动驾驶汽车在完成整车集成之后会开展大量的路试,但路试的主要目的是从开放道路中获取足够的真实场景,来验证和确认系统是否达到预期的安全性,从而确保量产和上市。
在这里补充一点,自动驾驶系统的量产,是基于合理的成本控制实现的,个人认为当前安装足够线数的激光雷达不具备量产的属性,除非激光雷达的价格降到足够低(这点也是激光雷达厂商正在努力的方向,而且很多都在牺牲性能来换取价格)。即便是装备足够线数的激光雷达,上市的自动驾驶量产车也一定是存在“缺陷”的,正如人的水平视角范围只有188°,并不能阻挡人的行走一样。区别在于,所存在的缺陷能否被定义合理并且可接受。
怎样才能被接受,就需要充足的证据来说服别人。
二、如何做好“实车开放道路确认测试”?
为了推动自动驾驶汽车发展,人们通常标榜自动驾驶系统对于公路安全的积极意义。根据德国联邦统计局公布的德国交通事故统计数据,98%以上的交通事故至少部分是由人引起的(Destatis, 2018,p146)。美国国家公路交通安全管理局(NHTSA)报告说,94%美国严重的交通事故是由人为错误造成的(NCSA, 2015,P142)。由此说明自动驾驶在交通安全上存在比人类更大优势的可能。
英特尔联合戴姆勒、宝马、奥迪、大众、FCA、大陆、百度等公司,发布了世界上首个成文的L3/L4级别自动驾驶规范命名“SAFETY FIRST FOR AUTOMATEDDRIVING”(自动驾驶安全第一)。
所以对于自动驾驶系统来说,安全是首要目标。
自动驾驶系统安全,除了和传统汽车一样要考虑可能的系统故障导致不安全事故(这部分风险通过功能安全相关工作来解决)之外,更多的是在考虑面对海量的复杂场景,自动驾驶功能是否考虑充分。为此,行业中专门针对自动驾驶系统,提出了预期功能安全(SOTIF)的概念。
预期功能安全是指不存在因预期功能不足或由于合理预见的人员误操作而造成的风险。预期功能安全从场景的角度来描述自动驾驶系统,把场景分为4类。预期功能安全工作的目标是:尽可能减小区域2和区域3。
注:这个区域模型中,面积大小代表的是占比关系。
在规范预期功能安全的标准ISO/PAS 21448-2019中制定了预期功能安全工作的流程:
为了实现安全目标,前面提到,在整车开发周期中会执行大量的验证测试(包括实验室的仿真测试和实车模拟测试)。这里重点要说的是最后一步:在完成了风险分析,功能完善,软硬件的验证测试之后,如何通过开放道路的确认,证明未知的危险场景概率足够低(见安全区域模型),从而有充足的证据推动车辆实现量产?
以预期功能安全作为方法论,考虑该项工作的目标、策略和执行,工作流程如下:
2.1 确定目标
确认测试的工作目标是对系统和组件(传感器、决策算法和执行器)的功能经过确认,以证明他们不会在真实用例中造成不合理的风险(见安全区域模型中区域3),通常考虑政府和行业的法律法规及确保安全所需的当前功能和性能水平。
确认工作最终能够形成统计上的可信度,即通过大数据分析证明不合理风险发生的概率足够小。
确定目标的依据:
- 功能规范,包括传感器、执行器和算法规范;
- 系统设计规范;
- 整车架构;
- 危害分析和风险评估结果;
- 前期测试结果;
- 以往开发经验。
确定目标的方法:
- 目标市场的现有交通数据(例如:意外统计、交通分析);
- 该领域运行的类似功能中已有的目标。
例如:自动驾驶系统会由于目标物的误报率产生非预期的制动,可能会造成后车追尾的事故。我们制定50万公里的测试目标,确认该系统发生目标物误报后造成后车追尾的可能性足够低(低于国家交通事故统计中追尾事故发生的概率)。
2.2 制定策略
根据目标,定义测试场景并提取场景参数。
通过路径规划,确保测试场景可以充分形成统计上的证据。例如,为了验证TJP功能在Cut-In场景中可能遇到的风险,规划路径使得大量的Cut-In场景发生,最终形成大数据统计,以证明风险发生的概率可接受。路径规划最重要的是规划测试距离,测试距离可根据的目标场景发生概率计算出来。
例如:计算测试距离
- N-乘用车数量
- K-每辆乘用车每年行驶的平均距离
- Av-在规定的行驶速度v范围内,每年发生的追尾事故数
- Ca-保证系数,以避免对目标验证里程距离的低估
通过场景参数的提取,可以使得测试结果以数据的形式体现,例如,发生碰撞的风险可用TTC衡量,通过TTC的分布统计来展示测试结果。
为了实现场景参数的测量,需要使用真值传感器采集数据,例如,使用激光雷达可以让距离参数精度达到2CM。所以,针对参数需求,可配备有针对性的真值传感器。
总体来说,制定策略包括:路径规划,数据采集方案制定。
2.3 执行测试
执行测试是为了完成前面制定的策略,以获取所需的数据统计。执行过程重点是管理工作,包括车队管理、设备管理、数据管理等,一方面保证能够按计划要求完成数据采集;另一方面要确保数据有效性,完全达到规划的目标;同时还要考虑人员、数据、车辆和设备的安全。
2.4 分析数据
采集回来的数据需要经过筛选,场景提取,数据统计等方法进行分析。
由于采集到的数据量一般都比较大,普通计算机处理已经不能满足要求,通常使用分布式计算方法进行处理,如:Spark、Hadoop等。
场景提取需要通过特定的软件功能,自动化提取所需的场景,也可以结合数据采集过程中的人工标记等方式,保证能够快速获取有效信息。
数据统计可采用柱状图、点云、饼状图、箱型图等统计方法,来表达参数之间的2维或3维关系。
2.5 发布结果
通过前面步骤得到的测试结果,和测试目标进行对比,以发布最终结果。
发布结果有三种:“接受”、“有条件接受”、“不接受”,评判依据如下。
接受:满足1、2、3;
有条件接受:满足1、2、4,当风险在规定日期前被证明合理,则条件满足;
不接受:剩余情况。
1.确认策略是否考虑了预期功能范围内的所有指定用例?
a. 测试是否涵盖已确定的触发事件?
例如:窄金属结构使得雷达错误地触发制动
b. 它是否不同于之前的确认工作而单独定制的?
2.预期的功能是否达到了最低的退而求其次的风险条件,必要时,为消费者或其他道路使用者提供了一个较安全的状态?
a. 只使用指定的驾驶员干预
b. 考虑到合理预见的误操作
c. 警告故障车辆的使用者及/或其他道路使用者
3.是否完成了充分的验证和确认并满足了验收标准,以确信风险不是不合理的?
a. 预期功能是否已充分测试,以评估形同虚设的行为和潜在的非预期行为?
b. 是否真的没有观察到可能导致危险事件的非预期行为?
4.在发生可能导致危险事件的非预期行为时,所提供的证据证明不存在不合理的风险?
三、“实车开放道路确认测试”工作的难点
通过上面的描述,实车开放道路确认工作是自动驾驶汽车开发过程中最后一关,也是确保车辆能够量产的必要环节。面对这项复杂工作任务,主要有以下三个难点:
1.对于场景需求的分析,场景参数的提取。通过对功能规范、逻辑算法、风险评估的完整分析,提取测试场景和参数的需求,才能保证后面大量测试工作的有效闭环。需求分析一方面需要关注自动驾驶系统能力和缺陷,另一方面又要清楚现实的场景状况,需要积累场景分析的方法,对场景归类,并能合理参数化;
2.由于所采集的数据包含激光雷达和高清摄像头等传感器的原始数据,每天每辆车采集的数据量在1TB左右,如何能快速从大量数据中提取有效信息,生成针对测试目标的报告,需要开发一套专门的软硬件系统,来做数据处理;
3.开放道路测试的结果要形成充足证据,就需要足够的测试里程,根据2.2策略的规划,通常会有数十或数百万公里。如果项目周期紧,就需要多辆车同时并行测试,多套设备购买成本高、车队管理麻烦也是这项工作的一大难点。
最后回答主题:
L3~L4自动驾驶汽车怎样才能量产上市?
经过充分的实车开放道路确认测试证明不存在不合理风险。