基于本体论的AEB关键场景生成方法研究
2023-03-11杨清蓉孙念怡
杨清蓉,赵 津,孙念怡,刘 畅
(1. 贵州大学机械工程学院,贵州 贵阳 550025;2. 贵州大学现代制造技术教育部重点实验室,贵州 贵阳 550025)
1 引言
根据世界卫生组织[1]的数据,2013年有100多万人死于交通事故。随着人工智能技术的发展,自动驾驶汽车(根据SAE[2]标准,等级3及以上)有望在将来减少这个数字。SAE等级1(驾驶员协助)和等级2(部分自动化)指驾驶员必须一直监控系统,并在发生系统故障时立即进行干预。从等级3(条件自动化)到等级5(全自动化),当责任从驾驶员转移到了车辆上时安全评估变得尤其重要。与传统的汽车系统相比,高级驾驶辅助系统(advanced driver assistance systems,ADAS)的工作状态更加复杂和多样,这使得传统的道路场地测试已经无法满足自动驾驶汽车的测试需求,另一方面,ADAS直接影响驾驶安全,因此在上市之前需要进行充分和全面的测试。在投入大量的时间和资源后,自动驾驶技术快速发展,高级驾驶辅助系统(ADAS)中的自动紧急制动(automated emergency braking,AEB)、前撞警告(Front Collision Warning,(automated emergency braking,AEB)、前撞警告(Front Collision Warning,FCW)和车道偏离警告(Lane Departure Warning,LDW)等已迅速投入市场。
2016年澳大利亚交通协会声明高速公路上每秒钟就有一起碰撞事故,其中大部分的碰撞事故是由于追尾。Euro-NCAP 的研究结果表明,AEB 系统可以避免27% 的交通事故,同时在很大幅度上降低事故人员的受伤害程度。因此,AEB系统受到了各国政府和企业的高度重视,如Euro-NCAP 从2014 年开始把AEB 场地测试结果纳入整车安全性评价体系。
目前,自动驾驶汽车测试方法主要分为两种[3],一种是基于场景的测试方法,另一种是基于里程的测试方法。基于里程的测试方法在经济性和时效性方面存在不可弥补的缺陷,从统计学角度出发,验证自动驾驶汽车比人类驾驶更安全,理论上应至少进行2.4亿km以上的公共测试道路测试,这将是一个无比巨大的工程且受法律法规限制[4]。与之相比,基于场景的测试方法应用更加灵活,测试效率高且有针对性。基于此,针对场景测试的研究越来越受到国家、企业和高校的重视,如德国的PEGASUS项目,美国发起的“自动驾驶汽车可变性能测试”,我国推进北京、上海、天津等城市的智能网联或自动驾驶示范区,2018年4月我国工信部、公安部和交通运输部联合发布了《智能网联汽车道路测试管理规范(试行)》[5]。
随着测试场景复杂程度急剧增加,场景数量也呈几何级数增长。如文献[6]中输入16个影响因素,采用正交实验方法(orthogonal experiment,OE)会导致测试场景数量的“空间灾难”,测试场景数是349920000个;采用“穷尽性测试”(exhaustive testing,ET) 测试场景总数是497664000个,这样的方法是不必要的且低效的。因此,该领域的研究将重点放在通过搜索关键场景来增强ADAS测试。
Bagschik等提出了基于场景生成的本体论方法,该方法设计5层模型描述场景参数[7]。因为本体论拥有有效的参数范围、限制和其它领域知识,所以从本体论生成测试用例是可跟踪的。利用分类图所描述的本体可以更加直接的构造面向组合测试的整个系统。因此,Klück等[8]使用领域本体提供场景的环境模型,保证其生成合理的测试场景。
为了生成更多的关键场景,Zhao等人[9]和Huang等人[10]提出了加速评估方法,该方法采用重要性抽样理论加速评估过程发现关键的场景,但是该方法仅考虑了特定驾驶辅助功能的有限因素,限制了其应用范围。Menzel等[11]讨论了测试自动驾驶车辆关键场景的方法,但未涉及如何自动地获得关键场景。Gao等人提出了基于组合测试的测试场景自动生成策略[6]。Wotawa等人[12]讨论了自动驾驶车辆对组合测试方法的需要。组合测试方法已被广泛应用在计算机软件测试领域[13],基于大多数程序错误是由多个影响因素相互作用造成的这一事实推动组合测试方法的发展。组合测试方法生成的测试场景集可以在场景数量尽可能少的情况保证其所需强度为n的全覆盖。
Sotiropoulos等人[14]表明,3D仿真可以有效地用于寻找移动机器人软件中的导航故障。因此,本文基于以往学者的研究采用本体论方法建立AEB环境模型,使用组合测试方法生成测试用例,最后仿真测试AEB测试场景。
2 AEB的环境本体
2.1 AEB纵向控制功能整体逻辑图
自动紧急制动 (Autonomous Emergency Braking,AEB)是重要的主动安全技术,AEB系统检测到车辆前方可能出现碰撞情况时,系统通过有效的自动制动避免碰撞或者减轻碰撞危害程度。图1是AEB纵向控制功能整体逻辑,上层控制模型为AEB控制模型,其输入量为两车相对距离D和相对速度V,输出为测试车辆加速度a;底层控制模型的输出为节气门开度(Throttle)和制动力(Brake)[15]。
碰撞时间(TTC)作为基于时间的安全度量指标检测追尾事故,可用于评估AEB场景的危急程度[16]。本文研究主要关注三个变量,分别是自车速度、两车相对距离D和自车制动力。碰撞时间TTC的定义
图1 AEB纵向控制功能整体逻辑图
TTC=-D/D′
(1)
式中,TTC为碰撞时间;D为两车相对距离;D′为相对速度。
在仿真测试中设定TTC:TTC (预警危险)=2.6s,TTC(部分制动)=1.6s,TTC(全力制动)=0.6s。对于导致TTC值在0到1秒之间的测试场景(即接近碰撞或碰撞)定义为关键事件中的极端工况。
2.2 AEB环境本体
本体论是共享概念模型的明确的形式化规范说明,其特征是增加的复杂性需要高语义的表达能力,同时它描述了应用程序领域背后的知识。例如,在自动驾驶中,此类本体被用于决策、描述交通情况和导航。在场景测试中,特别是在生成测试用例时,通过本体提供特定实体及其关系的信息来提取测试用例。
概念本身可以描述一个实体,它可以来自现实世界,例如一辆车,也可以来自非物质描述,例如一个句子或一种(物理的)力量。概念是构成本体论的基本构建块。概念也允许有属性。例如,一个人有区别与他人的名字、生日和特殊属性。属性本身具有某种类型,如字符串或日期。因此,为了提供测试用例生成的输入模型,本体论需要列举类型作为基本的类型来指定对应于属性的列举元素。
本文引入了一个简化的本体论定义[17],它基于将关系限制为组合和继承的概念。具有属性和特定类型的概念描述了输入模型的基本实体。图2描述了概念、属性及其关系的图示。概念对应于图的顶点(如C1),关系对应图的边(如带有箭头和文字的线段),并且关系是包含两个概念和一个类型组成的有向边。
本体论已经在自动驾驶开发和测试的多个领域中被很好地建立起来。为了提高自动驾驶车辆功能的可靠性(如传感器故障补偿),研究人员[18]为抽象驾驶环境的表示和推理创造了一个本体模型,该模型能够更好地理解交通状况和传感器限制,并为ADAS提供有效的数据源。Geyer等人[19]定义了常用术语,如自车和场景(动态元素,静态元素和路网),和从自车的角度使用本体描述交通状况。Bagschik等人[7]详细讨论了如何在自动驾驶领域的不同应用中使用本体,同时提出了一个掌握交通基础设施的设计知识和交通参与者行为交互作用的本体。由于底层的转换算法具有较高的计算复杂度必须保持尽可能小的本体,通过提取中国新车评价规程(C-NCAP)的参数取值范围和代表值勾画了一个简化的AEB环境本体,如图3所示。
图2[17] 本体论基本概念、属性及其关系
AEB环境本体描述了用于测试AEB场景的所有实体,它包含4个概念(动态场景、自车、目标车辆和行人)和3个组合关系。其中,目标车辆的数量是1~3,行人数量是0~2(C-NCAP中存在行人数量为0的场景)。在每个概念中定义了动态信息(如速度和方向等)、实体的位置和类型。
图3 基于C-NCAP 的AEB环境本体
3 AEB功能关键场景生成
本节讨论将本体转换为组合测试的输入模型。对于AEB环境本体(图3)有3种组成关系:(动态场景,自车)、(动态场景,目标车辆)、(动态场景,行人),并获得一组用于CT输入模型的变量,即:
变量VCT={自车_速度,自车_方向,自车_车辆类型,自车_侧向偏移量,自车_偏置率,目标车辆数量,目标车辆n_初始速度,目标车辆n_目标速度,目标车辆n_方向,目标车辆n_车辆类型,目标车辆n_侧向偏移量,目标车辆n_偏置率,行人数量,行人s_初始速度,行人s_目标速度,行人s_方向,行人s_行人类型,行人s_侧向偏移量,行人s_偏置率}(其中,n=1,2,3;s=1,2)。
变量域从中国新车评价规程(C-NCAP)的参数取值范围提取。另外,生成测试用例之前需要添加必要的约束,如当车辆数为1时其它两辆车辆的参数应该为空,即其它两辆车不存在。当行人数量为0时行人的所有参数应该为空,即场景无行人。
在Windows 10系统下使用一台Intel Core i9-10850 @ 3.6GHz的台式电脑生成测试用例。输入39个变量和36个约束后,采用ET测试方法场景总数是359538个,假设每个场景的测试时间为10s,则需要总时间0.74年。仅考虑时间的情况已经无法进行全覆盖的遍历式测试,为了解决这个问题,本文引入了组合测试中的成对独立组合测试(Pairwise Independent Combinatorial Testing,PICT)[20]方法,该方法在保证组合覆盖率的同时关注测试集的缩减。使用PICT工具计算强度为2的组合测试组仅2分钟就可以获得82个测试用例。表1展示了部分测试用例。
表1 测试用例部分示例
用饼状图说明测试用例的分布情况(图4和表2),从饼状图可以看出,目标车辆数量为3和行人数量为2的测试用例占比达56.1%。因此,在实体间的多种相互作用下的测试用例具有更高的概率发现关键场景。
图4 测试用例分布情况
表2 测试用例分布情况
4 仿真与验证
4.1 场景建模
本文选用的两个场景。场景1验证所选AEB算法的有效性,再将有效的AEB算法应用于场景2。
场景1选用《智能网联汽车道路测试管理规范(试行)》中的前车静止工况,自车以14m/s(约50km/h)的车速沿车道中间匀速接近前方静止目标车辆,如图5。测试要求:自车应在制动之前发出报警信息且目标车辆未与前车发生碰撞。
场景2选用组合测试方法生成的AEB关键场景,即车辆数量为3和行人数量为2。自车和目标车辆1均以14m/s(约50km/h)的车速沿车道中间匀速,另外目标车辆2和3静止在邻近车道,左侧行人以1.4m/s(约5km/h)的速度从左向右横穿马路,右侧行人以1.4m/s(约5km/h)的速度从右向左横穿马路,如图6。测试要求:自车应在制动之前发出报警信息且自车未与目标车辆或行人发生碰撞。
图5 场景1(目标车静止)
在Windows 10系统下使用一台Intel Core i9 10850 @ 3.6GHz的台式电脑进行虚拟仿真。测试场景由TNO的虚拟仿真软件PreScan为ADAS建模[21]。建立一条长900m的直线道路。传感器使用PreScan自带的独立传感器(technology independent sensor,TIS),TIS1设定频率25Hz,最大探测距离150m,俯仰角和水平角均为9°;TIS2设定频率25Hz,最大探测距离45m,俯仰角80°和水平角9°。
图6 场景2(关键场景)
本文选用PreScan自带的车辆动力学模型,也可以使用CarSim软件建立更加精细的测试车辆动力学模型联合PreScan仿真。
4.2 仿真测试
场景1:测试中自车以恒定速度14m/s(约50km/h)靠近静止的目标车辆。仿真过程输出信息如图7所示。在测试开始时,两车相对距离86m,雷达探测到目标且未处于危险区域,本车未出现制动情况。3.9s时,AEB系统发出提示性警告。4.36s时,进入危险区域,AEB系统发出碰撞警告并开始以40%的制动压力(60MPa)部分制动。5.976s时,系统开始全制动(150MPa)。本车速度在6.76s时降至0,此时相对距离达到最小值1.97m,成功避免碰撞。从场景1仿真结果可以看出(图8),选用的AEB算法是有效的。
图7 场景1仿真过程输出信息
场景2:仿真过程输出信息如图9所示。测试中自车以恒定的速度14m/s和目标车辆(14m/s)稳定行驶4s后,目标车辆1开始减速至6m/s,同时左右两边行人都以1.4m/s (约5km/h)的速度横穿马路。自车探测到目标车辆1减速并做出了相应的制动后,目标车辆1加速离开时,左右侧行人横穿马路接近自车,当自车探测到行人时全力制动(150MPa)但没有成功避免碰撞行人。从仿真结果可以看出(图10),自车碰撞右侧行人,发生碰撞事故。
图8 仿真结果
图9 场景2仿真过程输出信息
图10 仿真结果
5 结论
针对AEB功能基于仿真测试复杂验证需求的问题,本文应用本体论的方法建立环境模型作为组合测试的输入模型,提取组合测试输入模型变量,采用PICT工具自动生成82个测试用例。相比于ET测试方法,该方法更有效且提高了自动驾驶功能仿真测试场景的生成效率。在仿真软件PreScan中运行场景2,自车和行人发生碰撞事故,实现了AEB功能关键场景的仿真测试。
在AEB环境本体模型中根据测试需求人为指定概念信息,未考虑概念信息真实分布特性,后续将基于自然驾驶数据集提取概念信息,提高本体环境模型的真实性和合理性。