蒋拯民 党少博 李慧云,3 潘毅,4
(1.中国科学院深圳先进技术研究院,深圳 518055;2.中国科学院大学,北京 100049;3.中国科学院人机智能协同系统重点实验室,深圳 518055;4.中国科学院深圳理工大学(筹),深圳 518055)
主题词:自动驾驶汽车 测试场景 测试内容 测试方法
自动驾驶汽车能够通过环境感知、决策规划及运动控制等功能替代人类完成驾驶任务,理论上可以极大地提高道路交通效率和安全水平,提供广泛的通行便利,并能减少温室气体排放。近年来,自动驾驶技术已经获得了飞跃发展,被业界视为未来汽车科技的战略制高点。
科学完善的测试是进一步推动自动驾驶汽车从实验室走向大规模商业应用的关键支撑。当前,自动驾驶汽车测试以基于里程的开放道路测试为主。该方法不预设测试目标和任务,要求汽车在开放道路上连续运行,具有测试周期长、“无风险”里程占比高、成本高昂等弊端。与此同时,优步(Uber)、特斯拉(Tesla)等科技公司的自动驾驶汽车已经发生多起交通事故。因此,单纯累积道路测试里程并不能有效测试自动驾驶汽车的安全性,作为改进,目前的研究趋势已经转变为以基于场景的仿真测试为主、开放道路测试为辅的方式。因此,测试场景的定义、筛选及构建等课题的研究越来越得到学术界的重视。
然而,自动驾驶汽车测试是复杂的综合过程,除需对场景挖掘与生成理论加以研究外,还需要合理组织测试内容,根据测试开展的途径选择相应测试方法。已有综述大多只回顾了自动驾驶汽车测试的某个局部领域,未能从宏观视角出发,系统梳理当前自动驾驶汽车测试涉及的整体逻辑和理论方法。因此,本文针对当前自动驾驶汽车测试技术缺乏全面、系统总结的现状,围绕测试内容、测试场景、测试方法等主题展开论述,重点关注典型和边缘场景的加速生成、测试方法的分类和组成等方面,同时探讨测试技术的发展方向。
自动驾驶汽车是以硬件为基础、软件为核心、数据为驱动的复杂系统。特别是软件架构区别于传统汽车电子架构,软件测试常用的分支测试方法等不能直接用于程序分析。因此,自动驾驶汽车的测试除对各软、硬组件独立测试外,还需将系统视为软硬件高度耦合的被测实体,分阶段、有序地逐步对其进行“单元-系统-整车”集成测试,从而全面测试自动驾驶汽车的安全性、智能性、舒适性和可靠性等。
如图1所示,借鉴道路车辆功能安全国际标准(ISO 26262)推荐的汽车电子软件“V”型开发流程,本文将自动驾驶汽车的测试内容划分为单元测试、集成测试、系统测试与验收测试。其中,单元测试一般围绕自动驾驶汽车的某项功能展开,例如面向环境感知、决策规划及控制等功能的考察;集成测试分为软件集成和系统集成两部分,主要用于测试软、硬件接口设计是否合理;系统测试用于发掘软件和硬件集成缺陷;验收测试则重点关注自动驾驶汽车能否完成限定条件下的自主驾驶任务。该划分方式既考察了单一功能满足设计需求的能力,分析了软、硬件的集成缺陷,又测试了自动驾驶汽车软硬件耦合的任务完成质量。
图1 基于“V”型流程的自动驾驶汽车测试内容划分
场景是自动驾驶汽车测试技术的基础。为了充分暴露自动驾驶汽车的设计缺陷,需要以场景为基础,构建起包括仿真测试、封闭场地测试及开放道路测试等在内的工作流,解决场景定义、分类、数据挖掘分析、场景生成等多个方面的技术难题。随着汽车自动化水平的不断提高,其面对的工况复杂度也呈几何级数增加,传统的高级驾驶辅助系统(Advanced Driving Assistance System,ADAS)功能定义与测试标准已经远远不能满足需求。目前亟须形成面向高等级自动驾驶汽车的测试场景定义规范,以及系统的场景生成理论和方法。
场景为测试方法提供具体测试用例,其形式化描述是自动驾驶汽车开展测试的前提。Ulbrich 等认为场景描述了自动驾驶汽车与其行驶环境的时间发展变化,并通过动作和事件以及目标和值等来表征场景中的时间发展;类似地,Elrofai 等认为场景是一段连续时间内各要素的动态交互,并将场景分为三类主要要素,即被测车辆、被动环境(如道路拓扑、交通标志等)和主动环境(如交通灯、天气等);De Gelder 等进一步将场景定义为一段时间内动、静态环境以及环境与自动驾驶汽车相关动作的集合。
可以看出,以上文献都强调了测试场景是时变的,并且囊括了驾驶任务、动态环境等要素。在此基础上,本文将测试场景定义为在一定时、空域内自动驾驶汽车行为与运行环境的动态描述和抽象,具有不可穷尽、极其复杂、无限丰富、难以预测等特点。时、空域的尺度大小需要根据具体测试需求制定,例如,换道场景的时间域一般持续数十秒至数分钟;跟驰场景的空间域是包含数条道路组成的路网。进一步从要素上分解,场景一般包括道路、气象、交通规则、交通流行为等由环境输入到自动驾驶汽车的输入流,以及驾驶任务、决策执行等由自动驾驶汽车输出到环境中的输出流。
一般而言,自动驾驶汽车的测试场景可以分为典型场景和边缘场景两大类。前者用于常规功能测试,但是包含大量的冗余低风险用例,测试成本较高;后者则是以扩大高风险场景比例为目的,实现对典型场景的补充,可以有效提高测试覆盖率,一般用于自动驾驶汽车功能边界的测试。典型场景和边缘场景的特点对比如表1所示。
表1 典型场景和边缘场景对比
从来源看,场景数据可以分为模拟数据、标准法规与真实交通数据三类。其中,模拟数据包括驾驶模拟器数据和仿真数据,标准法规目前主要指ADAS功能定义。然而,随着自动驾驶汽车运行设计域(Operational Design Domain,ODD)的逐步扩展,如从结构化的高速公路向开放的城郊迁移,场景复杂度也呈几何级数增加,标准法规的制定愈发困难。因而,针对高等级自动驾驶汽车,业界大多通过筛选和分析真实交通数据来泛化测试场景。
真实交通数据是指现实世界发生的,经由传感器采集或其他形式记录下来的数据,主要包括自然驾驶数据和交通事故数据。自然驾驶数据可以通过场景重构的方式映射到测试场景中;交通事故数据通过数据挖掘等手段,可以还原事故过程从而得到测试场景,一般作为自然驾驶数据的有益补充。目前学术界已经有多个自然驾驶数据集开源项目,如表2所示。
表2 自然驾驶数据采集方法及特点对比
典型场景是从标准法规、真实交通数据中甄别出的具有代表性的测试用例。例如,从自然驾驶数据中分离出跟驰、换道等工况的统计参数分布,进一步利用随机采样生成具体场景,或者从交通事故数据中剥离次要信息,聚类得到测试用例。
3.2.1 基于组合测试的典型场景生成
组合测试(Combinatorial Test,CT)是软件工程领域中常用的测试方法,它将被测系统的输入变量进行组合,以生成一组测试用例。统计表明,大多数软件缺陷是由单因子或者双因子相互作用产生的,因而在实际应用中,组合测试多采用配对测试法(Pairwise Testing),以暴露双因子共同作用下的软件缺陷。例如,舒红等基于微软的配对组合测试工具(Pairwise Independent Combinatorial Testing,PICT)对主车及周围交通车的相对位置和运动方向进行组合,通过人工筛选剔除不合理场景,成功获得了高等级自动驾驶汽车的基础测试场景群;Gao等提出了改进的组合测试算法,在兼顾测试效率的同时,增加了生成场景的复杂度。
然而,基于专家知识来描述组合测试的场景元素缺乏普适性。为此,有学者提出以本体论作为组合测试输入的描述方法。该方法充分利用了本体论在场景概念建模、冲突检查和完整性校验方面的能力,同时发挥了组合测试易生成测试用例、能较好地平衡成本和效率的优势。具体而言,是将本体论用于生成典型场景的结构化特征术语集,并将概念映射到计算空间。例如,Armand 等将场景中的移动实体、静态实体、时空关系的描述量以及实体之间的属性描述作为本体的术语框,传感器数据作为本体的断言框,对场景进行推断理解。
本体论建模的语义库已经包含了较完备的场景约束和参数范围,因此与组合测试结合可以有效提升场景参数的覆盖度,但是该方法也存在生成场景同质化、组合不合理等缺点,在实际应用中往往需要人工进一步筛选有效测试用例。
3.2.2 基于聚类的典型场景生成
场景数据往往包含了大量相关特征信息,其中某些场景非常相似,而有些场景的差别很大。最直观的处理方式是依靠经验,人为定义场景的提取规则。例如ASSESS、AsPeCSS等项目人为归纳了针对各类交通对象的自动紧急制动系统的测试场景。然而,人为定义规则提取测试场景的方式主观局限性过大,另一类方式是依据数据内部特征,采用聚类算法自动生成典型场景。
聚类是一种利用特征区分不同场景,并从中挖掘出典型场景的有效方式。它在场景理解、要素特征提取与降维的基础上,将原始数据集划分为若干类测试场景。例如:刘颖等基于照明、车辆运动方向、视野遮挡及行人运动方向等特征,从人-车冲突数据集中聚类出了5类面向行人的自动紧急制动测试场景;胡林等对采集的实际交通事故数据进行筛选,并利用层次聚类算法获得汽车与两轮车碰撞的11个典型事故场景。
现实环境中的各种噪声都有可能映射在交通数据集中,从而对聚类结果产生干扰,因此需要效果良好、鲁棒性强的聚类算法进行分析。根据算法类型,可以将常用的聚类算法划分为基于分区的算法、基于分层的算法、基于密度的算法、基于模型的算法以及基于网格的算法等。此外,还有学者根据数据集特性进一步优化聚类算法。例如:S.Li等结合自编码器和K-Means开发了一种无监督聚类方法,成功从大规模自然驾驶数据中提取了车车交互的典型测试场景;Langner 等结合自编码器、卷积神经网络(Convolution Neural Network,CNN)和长短期记忆(Long Short Term Memory,LSTM)网络等特征提取网络,从大量的自然驾驶数据集中对典型场景进行自动聚类和异常检测。
聚类算法具备从高维真实交通数据中提取典型场景的能力,可以依据数据集内在特征实现典型场景的自动快速生成,已经在大规模的交通事故数据分析中得到了一定应用。然而,通过聚类得到的测试场景对数据集的采样精度、样本完整性等提出了较高要求,而且现有文献大多使用K-Means等结构化聚类算法,忽略了交通数据的时序关系。
3.2.3 基于随机采样的典型场景生成
随机采样方法主要包括蒙特卡罗方法(Monte-Carlo Method)和快速遍历随机树(Rapidly-exploring Random Tree,RRT)等算法,依据场景参数的概率分布生成具体用例。其中蒙特卡罗方法又称为统计模拟方法,是以概率统计理论为指导的数值计算方法。快速遍历随机树是一种树形数据存储结构算法,可以有效搜索非凸高维空间。
以蒙特卡罗随机抽样为例,可以将随机采样生成的场景用例构建过程归纳为如图2所示的4个步骤,即原始数据清洗、场景特征提取、描述场景参数概率过程、从已知概率分布中抽样。
图2 蒙特卡罗抽样典型场景构建过程
目前,国内外学者基于随机采样生成方法,已经获得了典型场景生成的一系列研究成果。例如:Yang等和Lee等提取道路碰撞预警和自适应巡航实车测试中的数据片段,通过蒙特卡罗模拟生成了自动紧急制动系统的测试场景;Fellner 等应用RRT 算法,通过寻找模型的变异值确定场景参数,可以在考虑2 300多种场景要素的情况下生成测试用例。
基于随机采样的场景生成方法通过对场景参数概率分布的非均匀采样,能够生成符合真实交通数据统计特征的典型场景用例,但是不可避免地也会得到大量不合理的场景组合。此外,场景特征多为基于专家经验人为提取,可能遗漏某些重要特征。
典型场景一般用于自动驾驶汽车的常规功能测试,并不能覆盖现实世界中的所有工况。为了尽可能提高场景覆盖率,需要在典型场景的基础上,演绎归纳出更多的衍生场景,即边缘场景。它一般是典型场景生成方法中不易处理的小概率事件场景,或者是从真实交通数据中演化的衍生场景。
构造边缘场景的根本目的在于提高测试覆盖度、探索自动驾驶汽车的功能边界。一般而言,代表性的边缘场景生成方法可以划分为理论搜索和数据驱动两类。前者使用自定义度量标准,以发掘与现有场景相异的新颖场景为目标。例如,基于优化搜索、强化学习等理论生成边缘场景。此类方法在对场景系统内部演化规律理解的基础上,利用数学模型刻画其生成规律,从而衍生出新的测试场景。后者依据场景的可能危害后果(如碰撞)等,使生成的测试用例尽可能地提高极端事件的暴露率。
3.3.1 基于优化搜索的边缘场景生成
基于优化搜索的场景生成方法是寻找边缘测试场景的一类重要方法,它将主车与环境的交互视为优化求解问题。例如,在车辆跟驰行驶下,设计追尾碰撞风险的目标函数,通过迭代优化寻找使得碰撞风险目标函数最大化的边缘测试场景参数(如前车制动减速度、减速时间等),并与理想跟车模型对比,寻找自动驾驶汽车的跟车安全性能边界。基本流程示意如图3所示。
图3 基于优化搜索的边缘场景生成
该方法的研究重点集中在如何定义目标函数以及如何设计高效求解算法两方面。现阶段,目标函数的设计大多基于替代指标,如碰撞时间(Time To Collision,TTC)、车头时距(Time HeadWay,THW),或先导度量(如碰撞)定义。例如,Tuncali等使用TTC与车辆相对速度之和定义了一个目标函数,其值越小,则自动驾驶汽车在该场景下发生碰撞的可能性越大;Donzé等将车辆几乎不接触且相对速度为零的碰撞设定为边界条件,构建了基于碰撞速度和TTC的目标函数;Althoff、Klischat等根据主车可行驶域临界度指标来定义目标函数。
在求解算法的设计方面,常用智能优化算法寻找目标函数的全局最优解。例如,粒子群算法、网格搜索、遗传算法与模拟退火算法等。
基于优化搜索的场景生成方法将边缘场景的设计建模转化为优化问题,可以有效增加目标函数所度量的边缘场景用例数量。但是此类研究目前多集中在碰撞场景的研究上,忽略了对于“接近碰撞”等次级危险场景的研究。此外,优化搜索建模在一定程度上人为降低了场景维度,例如采用了TTC、THW等低维替代指标的度量方式,不能完全反映真实场景的高维动态和复杂特性。
3.3.2 基于强化学习的边缘场景生成
强化学习通过自动驾驶汽车与环境的博弈在线生成场景。例如,它将场景生成模型视为智能体,根据生成模型与具有自主驾驶能力的交通车的交互,搜索新的容易发生碰撞的边缘场景参数,已经成为解决高维动态边缘场景参数建模问题的一种可行方案。
Lee首次提出了自适应压力测试(Adaptive Stress Testing,AST)场景生成方法,使用抽样和正向模拟建立搜索树,将被测对象建模为强化学习的智能体,通过智能体与环境的实时交互产生有可能导致交通事故的轨迹。受此启发,Koren提出将复杂交互场景建模为马尔可夫决策过程(Markov Decision Process,MDP),简化测试过程中前、后时间序列的相互依赖,并将随机性因素引入仿真,成功应用深度强化学习方法建立了边缘场景生成的统一框架,基本模型结构如图4所示。
图4 强化学习边缘场景生成
基于强化学习的边缘场景生成方法能够生成一些新颖的测试用例,有助于提高场景库的覆盖度,其关键在于设计合理的奖励函数,否则极易生成大量同质场景。为此,Karunakaran和Corso等提出将责任敏感(Responsibility Sensitive Safety,RSS)模型作为安全性度量指标引入奖励函数的设计,并优化了行驶轨迹相异度量计算方法,鼓励智能体探索新的行驶轨迹,从而发现从未探索过的测试场景。
3.3.3 基于重要性采样的边缘场景生成
重要性采样(Importance Sampling,IS)方法是一种基于大偏差概率理论的小概率事件模拟方法,主要是基于方差缩小概念,在保证分布无偏性的同时,通过增加原始分布的方差提高小概率边界事件的发生概率。例如,在事故易发的自然驾驶数据分布范围附近采用建议概率密度函数()替代原始概率密度函数(),进行随机非均匀采样以实现场景参数概率分布的扭曲,从而提高危险事件的发生概率。
Zhao 等在对自然驾驶场景参数概率分布研究的基础上,利用IS 方法实现了关键边缘场景测试的数千倍加速;Xu 等提出了一种基于改进重要性采样技术的自动驾驶汽车超车场景生成方法,基于上海自然驾驶数据的仿真结果表明,测试效率提高了35%,结果准确性提高了25%。
重要性采样方法可以依据自定义的场景类型(如接近碰撞),有选择地放大真实交通数据感兴趣区域的场景生成概率,提高测试效率。然而,如何选取合适的建议概率密度函数,对平衡蒙特卡罗方法的准确性和计算效率非常重要。为此,S.Feng等将场景参数分为关键参数和非关键参数,针对关键参数采用重要性采样,针对非关键参数采用蒙特卡罗直接采样,从而兼顾采样效率和估计准确性。
3.3.4 基于深度学习的边缘场景生成
重要性采样技术只能提高感兴趣场景的暴露率,在一定程度上解决危险场景在真实交通数据中过于稀疏的问题,但是并不能创造新的测试场景。随着以深度神经网络为代表的新一代人工智能技术的发展,越来越多的学者开始探索利用深度学习方法衍生场景,该方法已经成为理论搜索方法之外的一类有前景的边缘场景衍生范式。常用的深度学习模型包括循环神经网络(Recurrent Neural Network,RNN)、变分自动编码(Variational Auto-Encoders,VAE)器以及生成对抗网络(Generative Adversarial Network,GAN)等。例如:Jenkins 等基于模拟车载和V2X 时间序列数据,利用RNN 自动生成了新的事故场景,结果表明,衍生的低速和高速事故场景均与真实数据集相似;Krajewski等分别基于GAN和VAE 设计了车辆轨迹生成模型,无须标记数据即可生成新的换道轨迹;Demetriou等提出了一个由真实驾驶数据驱动来生成不同长度行驶轨迹的深度学习框架,采用递归条件生成对抗网络(Recurrent Conditional-Generative Adversarial Networks,RC-GAN)的方法可以灵活地生成可变长度的行驶轨迹。
时序建模或深度生成模型等深度学习方法,能从已有时序交通轨迹数据中演化推断生成未覆盖的新颖场景,极大地丰富了测试场景库样本的多样性,提高了测试覆盖度。然而,衍生场景的特性是否与真实交通数据一致尚不可知,有可能生成现实世界中并不存在的场景,因此衍生场景需验证真实性后才能使用。
测试方法是自动驾驶汽车测试技术的核心,用以合理组织自动驾驶汽车测试过程。目前,自动驾驶汽车的测试工作大约90%通过仿真完成,9%在封闭场地完成,1%通过开放道路测试完成。其中,仿真测试是加速智能网联技术迭代的核心环节,主要在研发初期进行,封闭场地测试是自动驾驶汽车测试的有效手段,开放道路测试是检测自动驾驶汽车整车性能的必要环节,也是其商业化的前置条件。仿真测试、封闭场地测试与开放道路测试三者之间互为补充,形成测试闭环。具体而言,仿真可以提高测试速度,其结果通过封闭场地和开放道路验证,封闭场地和开放道路测试发现的新场景又可以反馈补充到仿真测试场景库中。各类测试方法对比如表3所示。
表3 主要测试方法对比
仿真是由场景、车辆动力学模型、传感器模型、算法等组成的数字化虚拟测试方法,可以对自动驾驶汽车的系统和整车进行计算机数值模拟。它利用数字化建模方式,对真实物理世界进行部分或全部的数学建模,无须实车测试便可以对算法策略进行验证,具有效率高、成本低、自由度高等优点。
根据测试对象受控程度不同,仿真可以细分为模型在环(Model-In-the-Loop,MIL)、软件在环(Software-Inthe-Loop,SIL)、硬件在环(Hardware-In-the-Loop,HIL)以及在HIL基础上进一步集成的整车在环(Vehicle-Inthe-Loop,VIL)等。其中,MIL/SIL一般在软件详细设计和单元测试阶段使用,以测试自动驾驶汽车的单一功能;随后利用HIL测试完成子系统(包括硬件、底层和应用层软件)的集成测试,并模拟部分电气特性;最后通过VIL 仿真在试验室条件下模拟道路、交通环境等,以完成软件验收,并进行整车相关的电控系统匹配。MIL/SIL/HIL/VIL 随着测试对象集成程度的不断加深,测试结果的置信度逐步提高,但成本也相应增加,上述几种不同的仿真方法特点对比如表4所示。
表4 仿真测试方法对比
仿真测试虽然具有易实现、易部署等特点,但是其测试结果的可靠性高度依赖于仿真软件对真实物理环境的模拟,特别是传感器的物理建模精度、车辆动力学模型的准确度、三维动态虚拟图像渲染的正确性以及交通行为建模的逼真度。然而,目前的仿真测试对交通行为的建模在精度和真实性上均十分欠缺,例如,仿真时往往对交通参与者采用预定义轨迹,只能单向测试自动驾驶汽车在外界激励下的行为,无法复现真实的动态随机交通环境。
4.1.1 模型在环仿真
模型在环仿真是将算法模型与被控对象模型连接起来的闭环纯数值仿真测试方法。MIL 仿真中的汽车软件常以Simulink 模型等原型形式出现。MIL 不涉及任何物理硬件,主要是在软件开发初期及单元测试阶段对算法的功能需求进行概念验证。例如,孙剑等搭建了自动驾驶汽车模型在环仿真测试平台,其中虚拟场景由PreScan 提供,借助MATLAB/Simulink 实现了原型算法,该平台可以通过VISSIM 快速生成交通车流;冀杰等利用CarSim/Simulink 模型在环框架测试了自动驾驶汽车的行为决策算法。归纳模型在环仿真平台框架及共性组件如图5所示。
图5 模型在环仿真框架
4.1.2 软件在环仿真
软件在环仿真是在设计主机上编译生成自动驾驶汽车软件源代码,并将其作为单独的进程执行,与虚拟环境交互的计算机数值模拟方法。SIL仿真可以将软件部署到设计主机端进行仿真,借助主机的高算力完成大规模的虚拟测试。例如:Ahamed等设计了一个可自由构建车辆模型的框架,在Gazebo中使用机器人操作系统开发了SIL 仿真平台;Bachuwar 等提出了一种基于开源自动驾驶软件Autoware的软件在环仿真框架,该框架利用Simulink 与机器人操作系统(Robot Operating System,ROS)建立通信。SIL仿真框架实例如图6所示。
图6 软件在环仿真框架
SIL测试可在物理样机出现之前帮助设计者提前发现系统缺陷和故障,收集代码覆盖率和执行时间指标,但是无法测试系统在物理环境干扰、通信和作动器延迟等工况下的表现。软件在环测试虽然不考虑目标硬件,但其优势在于可以在服务器或云端大规模部署和并行测试,同时比MIL 测试的集成度更高。相较于HIL 及VIL 测试,SIL 测试可以更低的成本发现自动驾驶汽车的功能问题,特别是可以方便地进行“测试驱动开发”,即测试结果参与算法的迭代训练,已成为最有潜力的仿真测试方法之一。
4.1.3 硬件在环仿真
硬件在环仿真是一种自动驾驶汽车的部分组件或系统采用真实物理设备,而场景、被控对象等为数字模型的半实物测试方法。硬件在环仿真结合数学模型和物理硬件设备,在模拟测试场景的同时引入了时滞、饱和、摩擦等非线性物理特性,显著提高了测试结果的置信度,在一定程度上克服了MIL/SIL 测试中模型和数据过于理想化的缺点。
按照真实物理设备的类型,可以将HIL测试方案大致分为3种:第1种是针对算法软件的快速原型测试,即将算法快速部署到真实控制器上,将控制器与工控机相连接,工控机上运行被控对象的模型以模拟电气特性,该方案用于评价软件在真实控制器上的表现是否满足设计需求;第2种是传感器的硬件在环,如Hager等提出了包括雷达、摄像头、V2X等在内的传感器信息融合测试台架,可以实现传感器数据流的实时修改;第3种是针对执行器的硬件在环,如建立包括转向系统、制动系统等在内的硬件在环台架,重点关注算法处理真实物理系统的时滞、非线性的能力,或者进一步标定算法参数。
以摄像头硬件在环仿真为例,仿真框架如图7 所示。虚拟场景通过仿真软件模拟或者视频注入,在暗箱内生成光学图像数据,摄像头实时采集暗箱内图像,并传输出至控制器内的算法处理单元,最后通过ControlBase控制器内的决策规划及控制软件处理,输出控制请求至Xpack4实时系统中的虚拟被控对象,完成闭环仿真。
图7 摄像头硬件在环测试平台
4.1.4 整车在环仿真
整车在环仿真是将自动驾驶汽车整体作为实物,接入到虚拟场景中的一类特殊的硬件在环仿真测试方法。相较于HIL 测试,VIL 测试能够在整车水平上形成闭环迭代的高效测试框架,有效弥补了硬件在环测试与实车测试之间的鸿沟。以中国科学院深圳先进技术研究院搭建的整车在环仿真平台为例,整体组成结构如图8所示。
图8 整车在环仿真平台
该平台包括轴耦合测试台架、虚拟场景子系统、自动驾驶汽车、高精度车辆动力学模型以及各类传感器等,支持高精度地图生成、定位、目标识别、V2X 协同感知、车辆路径规划与控制等功能测试,此外,还支持新能源车辆整车能量流测试与标定等。
封闭场地测试是将自动驾驶汽车置于专用的受控区域,并柔性化构造典型交通场景的测试方法。封闭场地测试注重真实交通环境的模拟还原,该方法能够真实、快速有效地评价自动驾驶汽车整车性能以及人机交互相关性能。
目前,国内已建成自动驾驶汽车封闭测试场地约30个,基本涵盖乡村、城市道路等典型交通环境。其中部分封闭场地还建立了车联网异构网络。然而,现有封闭场地服务水平不一致、运营成本高、测试结果无法互认等问题十分突出,背后的主要原因是标准规范缺失,具体表现在两个方面:首先是场地建设缺乏规范,建设水平参差不齐,如部分场地场景单一,无法支持车联网测试,已经落后于自动驾驶汽车的技术发展水平;其次是测试通过标准不统一,例如测试准备、车辆技术状态、场景设置、车端和路侧端数据采集与处理方式等不一致,直接导致各封闭场地的评价结果存在差异,制约了测试互认工作的开展。
考虑到实际工况的复杂性,仿真和封闭场地的评价结果可能与真实情况存在偏差。因此,自动驾驶汽车在量产前必须在开放道路上进行连续测试,它是自动驾驶汽车积累测试数据、提升技术水平,并最终商业化的必经环节。
目前,欧美、日韩等发达国家已经允许自动驾驶汽车在特定道路上进行测试,国内各省市也相继出台了开放道路测试规范,发放测试牌照并允许自动驾驶汽车在部分指定道路上行驶。截止2021年8月,全国共有近30个省市区颁布了道路测试细则,已建成16个智能网联汽车测试示范区,指定开放路段超过3 500 km,并累计发放700余张道路测试牌照。然而,目前在绝大部分开放道路,特别是高速公路上测试自动驾驶汽车仍然缺乏相应规范。
测试技术是自动驾驶汽车研发的基础技术,也是保障其安全性与可靠性的“生命线”。然而,作为典型的智能系统,自动驾驶汽车的测试与传统汽车的机械性测试本质不同,其具有高复杂度、高维度、高不确定性与小概率风险事件的稀疏激励,是汽车行业和人工智能领域共同面临的重大挑战。总体而言,基于场景的测试理论及方法已经成为应对该挑战的主流技术路线,但是该领域的研究处于起步阶段,尚未得到学术界的足够重视,仍有待进一步研究和探索。
5.1.1 提高测试场景覆盖度
自动驾驶汽车的运行环境具有极度复杂、不可预测、难以穷尽等特征,导致传统的基于标准法规和事故聚类算法等简单抽象类的场景生成方法难以生成高覆盖度测试用例。此外,测试场景的数据来源中往往包含大量冗余相关特征,使得简单的直接采样方法易生成大量同质场景。为了进一步提升自动驾驶汽车典型场景的测试覆盖度,需要建立面向不同复杂度和数据来源的预处理、挖掘、分析和场景提取的技术体系。
5.1.2 研究边缘场景的表征机理
受真实物理世界的高维度及小概率风险事件的稀疏激励性等约束,自动驾驶汽车测试时往往需要海量的采样才能得到一个边缘场景。目前,国内外对边缘场景的表征机理和方法研究不足,缺乏相应的系统化边缘场景生成理论。未来,业界需要综合利用数学、物理和统计学习等工具,从理论搜索和数据驱动两个角度深入研究边缘场景的生成方法。值得注意的是,衍生的边缘场景必须考虑泛化的方向性和真实性问题,即泛化场景是否符合真实交通的统计规律,以及虚拟场景与真实场景的匹配度是否在可接受的范围内。
5.1.3 探索加速测试理论和方法
遍历海量测试场景需要强大的计算资源、耗费大量测试时间。为了进一步提高测试效率,业界迫切需要建立高精度无偏加速测试方法,在保证测试结果统计意义的基础上,以较小的算力成本实现全面加速测试,平衡测试成本和效率。
5.1.4 提升数据搜集和应用能力
目前绝大多数研究机构在测试自动驾驶汽车时,仍然依赖人工记录算法失效的场景,这种方式显然不能作为未来高等级自动驾驶汽车大规模测试的数据来源。为此,有必要建立车辆数据采集系统,并自动化记录和分析实车在真实环境下的表现。一方面,例如影子模式等可以持续挖掘失效场景,并实现技术迭代;另一方面,自动驾驶汽车也存在无法避免的事故,基于实时车辆数据采集的事后监控可以明确责任。可以想见,数据搜集和应用能力将成为自动驾驶开发者的核心竞争力之一。
5.2.1 提高仿真结果置信度
综合利用多种仿真方式测试自动驾驶汽车的各项功能已经成为业内共识。然而,鉴于汽车本身是典型的非线性系统,并受制于现实微观交通环境的随机、非线性和不确定性,目前较难在仿真环境下刻画交通参与者行为,无法反映自动驾驶汽车与各类交通参与者的动态交互博弈,各类仿真软件本身的建模精度也存在较大差异。上述局限直接导致场景仿真的置信度不足,已成为仿真测试领域的痛点问题。为此,未来需要进一步突破复杂交通的随机、非线性、多约束和高精度建模技术,力求在仿真环境中构建逼真的测试环境,进一步实现自动驾驶汽车的鲁棒测试。
5.2.2 建立分层测试体系
合理的分层测试体系需要综合成本和测试覆盖度,近似达到实车测试的效果。例如,模块逻辑测试规避大部分规范和设计错误,仿真测试发现大部分潜在功能问题,而留给实车测试的任务量极大减少。然而,目前业内对于仿真、封闭场地和开放道路测试等方法的各自适用范围尚未清晰界定,在实际操作中,各机构一般根据开发经验自行决定某项功能的测试方法,未能差异化应用测试方法,限制了分层测试体系的互补优势发挥。与此同时,部分测试用例被不合理地反复使用,客观上降低了测试效率。因此,如何协调各类测试方法,建立高效统一的“仿真-封闭场地-开放道路”分层测试体系仍需要进一步探索。
5.2.3 加快标准制定,建设评价体系
目前,高等级自动驾驶汽车测试的评价指标、评价模型与评价体系等课题的研究尚处于萌芽阶段,未来,需要在测试场景分类、测试任务分级的基础上,完善测试体系、加快制定统一的测评标准规范,进一步加强主客观相融合的综合评价体系研究。
本文在广泛调研自动驾驶汽车测试领域相关研究文献的基础上,从测试内容、测试场景、测试方法等维度展开了有关理论、方法以及工具的系统梳理和归纳总结,并指出了现有不足和未来发展方向。
理论上,自动驾驶汽车的开发应当以无边界限制的场景为测试假设。然而,受成本和开发效率的制约,事实上,如何尽可能地搜集复杂、陌生和突发的小概率边缘场景已经成为自动驾驶汽车测试的核心问题,场景的丰富度也将在一定程度上决定自动驾驶技术的水平高低。总体来说,目前业内在场景生成理论、测试方法及工具等方面取得了一定的研究成果,但是尚处于初期阶段。未来仍要重点关注高覆盖度场景设计理论、边缘场景生成方法以及高精度无偏加速测试算法的研究,并在此基础上进一步实现高保真交通行为建模和高置信度仿真软件设计、建立测试方法的协调应用框架、强化评价体系的理论和方法研究。
此外,未来自动驾驶汽车测试还可能面临一些新的挑战。例如,自动驾驶汽车作为人类生活的载体,其人因交互水平也将成为评价其综合性能的重要方面,甚至影响人类对自动驾驶技术的接受度。另外,如何将人工智能模型的验证纳入现有测试体系,用以提高自动驾驶汽车人工智能算法的鲁棒性和安全性,已成为迫切的现实问题。进一步,随着汽车智能化和网联化的深度融合,自动驾驶汽车的网联功能测试、面向车联网的信息安全测试,以及智能化与网联化的耦合性能测试等关键问题也将成为新的研究热点。