引言
据美国兰德公司研究:从统计学角度出发,自动驾驶汽车需要在真实或者虚拟环境中至少进行110亿英里的里程测试,才能证明自动驾驶系统比人类驾驶员更可靠;然而,基于里程的测试方法具有测试周期长、效率低、成本高等弊端,自动驾驶汽车要商业化落地,单纯依靠基于里程的测试方法显然是不够的,基于场景的仿真测试方法不可或缺。
现实世界中的场景具有无限丰富、极其复杂、不可预测等特点,在虚拟环境中要完全复现这些场景却又十分的困难;如何利用有限的测试场景去映射出无限丰富的世界是实现自动驾驶测试验证的关键。基于场景库的仿真测试是目前解决自动驾驶路测数据匮乏的重要路线。场景库中的测试场景对现实世界的覆盖率越高,仿真测试结果的准确性就越高。
接下来笔者把最近一段时间关于测试场景和场景库相关的学习体悟整理出来与大家分享,如有表达不准确或者错误的地方,欢迎各大佬批评指正。
第一部分:测试场景
1.1 测试场景定义及作用
自动驾驶测试场景:是指在一定的时间和空间范围内,自动驾驶汽车与行驶环境中的其它车辆、道路、交通设施、气象条件等元素综合交互过程的一种总体动态描述。它是自动驾驶汽车的驾驶情景与行驶环境的有机组合,既包括各类实体元素,也涵盖了实体执行的动作及实体之间的连接关系。
测试场景的作用:在自动驾驶汽车设计、研发、测试和评价中扮演重要角色
开展自动驾驶汽车测试评价的重要前提;
基于场景的自动驾驶汽车测试方法是实现加速测试、加速评价的有效途径;
测试、验证、评价自动驾驶功能与性能的关键,贯穿自动驾驶车辆研发测试全生命周期。
1.2 测试场景要素
测试场景要素:主要分为测试车辆自身要素和外部交通环境要素两大部分;外部交通环境要素又涵盖:静态环境要素、动态环境要素、交通参与者要素、气象要素等。
1)测试车辆自身要素:指测试车辆自身的基础属性、位置信息、运动状态信息及驾驶任务信息。
2)静态环境要素:指交通环境中静止状态的物体。
包括:道路、交通设施、周围景观以及障碍物等。
3)动态环境要素:指交通环境中处于动态变化的要素。
包括:动态指示设施 和 通信环境信息。
4)交通参与者要素:在自动驾驶测试场景中对本车决策规划造成影响的对象信息。
包括:车辆、行人和动物。
5)气象要素:包括驾驶场景中的环境温度、光照条件以及天气情况等信息。
1.3 测试场景的常见分类
不同类型场景的抽象等级和场景数量关系
自动驾驶系统开发需经历的三个阶段:概念阶段、系统开发阶段、测试阶段;随着系统开发过程的逐渐深入,测试场景的抽象程度需求不断降低,但测试场景的数量需求却不断在增加。通过将结构化的功能场景与参数范围相结合能够转换生成逻辑场景,参数范围可以通过数据驱动方法来定义。每个逻辑场景都可以通过从参数范围中选择具体值来转换为具体场景。
a.功能场景
通过语义描述的最抽象级别的操作场景, 即通过语言场景符号来描述场景区域内的实体以及实体间的关系;
功能场景用于概念阶段的项目定义、危险分析和风险评估;在测试过程中,往往需要将功能场景转换为逻辑场景,并转换为可用于相应仿真环境的数据格式。
b.逻辑场景
通过定义状态空间内变量的参数范围来表达实体特征和实体间的关系;
逻辑场景是基于状态空间变量对功能场景的进一步详细描述,用于项目开发阶段生成需求;对于每一个具有连续取值范围的逻辑场景, 都可以派生出任意数量的具体场景。
c.具体场景
通过确定状态空间中每个参数的具体值来明确描述实体和实体间的关系,以状态空间详细描述了测试场景;
具体场景可以直接转化为测试用例;要将具体场景转换成测试用例, 需要增加被测对象的预期行为表现以及对相关测试设施的需求。
2) 按照测试场景数据来源分类:自然驾驶场景、危险工况场景、标准法规场景、参数重组场景
a. 自然驾驶场景
数据源自汽车真实的自然驾驶状态场景下,是最基础的数据来源;包含自动驾驶汽车所处的人-车-环境-任务等全方位信息;
自然驾驶场景能够提供车辆数据、驾驶人行为、道路环境等多维度信息,是证明自动驾驶有效性的一种充分测试场景。
b. 危险工况场景
数据主要来源于交通事故数据库,是自动驾驶控制策略安全性和可靠性验证的关键;
危险工况场景主要涵盖恶劣天气环境、复杂道路交通以典型交通事故三大类场景,是证明自动驾驶有效性的一种必要测试场景。
c. 标准法规场景
数据主要来源于现有的标准、评价规程等,如ISO、NHTSA、E-NCAP、C-NCAP等多项标准、评价规程对现有自动驾驶功能进行了测试规定;
标准法规测试场景是自动驾驶功能在研发和认证阶段必须要满足的基础测试场景。
d. 参数重组场景
数据来源于现有场景数据库资源,通过对已有的仿真场景进行参数化设置,随机生成或自动重组相应类型的场景;
参数重组场景通过对静态要素、动态要素以及驾驶人行为要素等进行不同排列组合及遍历取值,扩展参数重组场景边界;有效覆盖自动驾驶功能测试盲区,是对未知工况的有效补充测试场景。
1.4 测试场景的格式标准
1) 静态场景格式标准:OpenDRIVE、OpenCRG、RoadXML和OSM
OpenDRIVE(OpenX标准系列):包含道路路网上的所有静态对象,主要描述道路拓扑结构、车道线和道路周边的其它静态元素。OpenDRIVE将道路分为三个部分:道路参考线(reference line)、车道(lanes)和特征元素(features)。
OpenCRG(OpenX标准系列):主要用于描述道路的表面属性,如道路的施工材料、摩擦系数等。
RoadXML:将交通环境划分为四个层次;1)拓扑层 - 描述元素在路网中的位置和连接关系;2)逻辑层-描述元素在道路环境中的意义;3)物理层-描述元素的属性(路面或障碍物);4)可视化层:描述元素的几何形状和三维特征。
OSM:即OpenStreetMap-开放式街道地图数据格式;其数据基元主要包括三种-点(Nodes)、路(Ways)、关系(Relations)。
2)动态场景格式标准:OpenSCENARIO
OpenSCENARIO(OpenX标准系列):主要用于描述涉及多个交通参与者(如车辆、行人和其他交通参与者)的复杂的、同步的操作;OpenSCENARIO文件结构可分为三个部分:道路拓扑、实体以及事件板。
3) 气象场景格式标准:数据格式较为复杂,目前行业内尚无通用的格式标准
1.4 测试场景的数据来源
主要包括三大部分:真实数据、模拟数据以及专家经验
1)真实数据:即现实世界真实发生的,经过传感器采集到或以其它形式已经被记录保存下来的真实场景数据,包括自然驾驶数据、交通事故数据、路侧单元监控数据、封闭场地测试数据以及开发道路测试数据等。
参考:测试场景数据来源参考《自动驾驶系统功能测试第7部分:仿真测试(征求意见稿)》
第二部分:测试场景的构建
2.1 测试场景构建流程
构建流程:场景数据采集 → 分析挖掘 → 测试验证
1)场景数据采集
步骤:采集需求定义 → 采集方案制定与执行 → 数据预处理 → 数据传输与存储
数据传输与存储:为了保证有足够的车载存储空间使得采集工作能够持续进行,在数据预处理之后,需要及时将数据从车载存储器传输至数据库中。数据传输方式包括在线传输和离线传输两种;数据存储方案包括本地存储和云端存储两种。
2)场景分析挖掘
步骤:场景理解 → 特征提取 → 场景聚类 → 场景生成
场景生成:场景复现和场景重构
—— 场景复现:基于实车采集和路测设备采集的真实数据,还原真实交通中的自然驾驶场景和危险工况场景等;在可行的前提下,尽可能高效、准确地反映出潜在风险对自动驾驶汽车的影响。
—— 场景重构:基于元素的关联关系或者人工经验等对场景元素进行重新组合或推演归纳处理,从而生成更多合理的新场景。
3)场景测试验证
步骤:场景验证试验 → 场景验证评审
经过上一步的场景分析挖掘后,将生成新的测试场景,但是测试场景是否满足要求仍未可知,需要在实车上进行验证试验或者在仿真软件平台上进行虚拟验证。
待场景验证试验完成后,由专家依据相关验证试验数据从场景的相关性、真实性和有效性三个方面展开评估。
2.2 动态和静态场景构建
1)基于采集的实际道路环境信息和已有的高精地图构建。
通过自动化工具链能够对高精地图构建出来的环境模型实现厘米级道路还原;
对于采集的真实道路场景数据,通过静态场景编辑和自动生成技术可完成真实道路自动化还原。
2)基于三维建模软件人为创建基础设施与周边环境的可视化数字模型。
例如通过软件构建道路(中心线、车道线等)、道路周边元素(垃圾箱、建筑物、绿化地等)以及交通元素(交通灯与交通标志牌)等静态场景元素。
3)基于微观交通仿真系统构建:基于真实数据或虚拟仿真数据,利用微观交通仿真系统生成车辆、 行人、 交通管控等动态元素。
第三部分:场景库
3.1 场景库的定义及特点
场景库的定义
基于真实数据、虚拟数据以及专家经验数据等不同的数据源,通过场景挖掘、场景分类、场景演绎等方式有层级、有规划地构建成的一个完整的场景体系;能够完成从场景数据的管理和场景测试引擎之间的桥接,实现场景的自动产生、管理、存储、检索、匹配,最后自动生成场景并注入给测试工具。
场景库是不同场景的数据集合,以数据库的形式表现出来,便于对测试场景进行统一的、有效的组织、管理和应用。
场景库的特点
特点:真实性、交互性、扩展性、无限性、批量化、自动化六大特性
1)真实性: 测试场景必须是现实世界中真实存在的,且高度还原现实情况;根据测试需求,测试场景能在统计学上覆盖现实交通环境中的典型工况,从而保证在仿真平台上进行虚拟测试能够一定程度上代替封闭场地测试和开放道路测试。
2)交互性:测试场景中人-车-环境-任务各要素之间存在较强的耦合关系,一旦场景中有一个要素发生变化,极有可能引起连锁反应,直接对其它要素产生相应的关联影响。
3)扩展性:测试场景中的各要素具有不同的类型和属性,并且各要素之间具有特定的关系。通过改变某一要素的属性或者对各要素进行重新排列组合,便可直接重构出更多的其它测试场景。
4)无限性:场景库主要由测试用例经虚拟仿真建模得到;由于场景参数分布的连续性以及场景元素排列组合的多样性,测试用例是无限的, 因此场景库中的测试场景也是无限的。
5)批量化:标准化的驾驶场景数据接口,实现测试用例的批量化导入及建模,以及高性能仿真服务器的批量化仿真测试。
6)自动化:当仿真测试结束后,依据被测车辆的表现,场景库自动化给出评价结果和指标。
3.2 场景库的搭建流程
搭建流程:
确定单个虚拟场景的数据存储方式与标准;
构建单个自动驾驶虚拟测试场景;
自动驾驶测试场景构建流程
自动驾驶研发测试与场景库的搭建形成闭环:测试场景库的搭建,能有效驱动自动驾驶的研发测试工作,自动驾驶的研发测试反过来也能够场景库提供反馈意见,丰富场景库。
3.3 国内典型场景库
第四部分:测试场景与场景库相关标准体系
4.1 德国 - PEGASUS项目
起止时间:2016~2019年5月,历时42个月
发起部门:德国联邦经济事务和能源部
成员:德国本土汽车主机厂17家左右
构成:场景分析和评价标准研究、应用过程分析、测试以及可扩展性分析四部分。
内容:聚焦于高速公路场景的研究和分析,基于事故以及自然驾驶数据建立场景数据库,以场景数据库为基础对系统进行验证。
第一阶段:场景分析&质量评估
定义一种系统的场景生成方法以及场景文件的的语法结构;
计算场景的KPI;
定义一套基于专家经验的场景困难(危险)程度评价方法。
第二阶段:实施流程
基于现有汽车设计流程,以安全为基础,设计一套足够灵活的、鲁棒性强的适用于自动驾驶功能的设计实施流程;且该流程能够吸收实践过程中的不足反复迭代优化。
第三阶段:测试
此项目的输出为一套用于实验室(仿真软件,台架等)以及真实交通场景的方法和工具链;总体目标就是在参数空间中找出碰撞敏感度高的参数。
第四阶段:结果验证&集成
对前三个子项目阶段的结果进行分析。
重要研究成果:
注:该三项标准已于2018年正式从戴姆勒和VIRES转交ASAM进行下一步标准维护与开发。
PEGASUS测试场景六层模型
4.2 ASAM - 德国自动化及测量系统标准协会
成立时间:1998年
性质:非政府的汽车领域标准化制定机构
标准内容:涉及多个汽车标准领域,包括仿真测试、车联网、测量与校准、诊断、自动化测试、软件开发、ECU 网络和数据管理与分析等。
会员:全球范围内约300家左右的整车厂、供应商及科研机构加入。
OpenDRIVE :用于道路拓扑的描述,对应静态地图场景信息,包括高精地图信息
OpenSCENARIO:主要用于描述动态行为场景
OpenCRG:用于描述道路表面属性,其数据主要用于轮胎、震动及驾驶仿真方面的研究
OSI(Open Simulation Interface):仿真接口,连接了自动驾驶功能与仿真工具
OpenLABEL:将对原始数据和场景给出统一的标定方法
OpenODD:处于概念项目阶段,定义设计运行域(ODDs)的标准化格式;
OpenOntology :制定中的新标准,一个由本体论表示的且能够将OpenX标准串联起来的公共域模型
OpenDRIVE标准:
1)应用对象:静态场景的描述
2)语法:XML格式
3)内容:对地图、道路、以及建筑物的内容节点进行了定义
4)客户:奥迪、博世、四维图新、百度等厂商
5)作用:
用来描述复杂路网的逻辑关系和宏观特性,用于仿真的高精地图级的道路模型标准
使静态场景数据中的内容条目与格式实现了统一,利于不同仿真软件实现对同一场景文件的兼容
OpenSCENARIO标准:
1)应用对象:动态态场景的描述
2)语法:XML格式
3)内容:主车的位置与速度等信息,及其他交通参与者的信息
4)作用:
用于在驾驶场景,地图,工具以及测试功能间建立标准,实现智能驾驶动态场景的标准化描述
采集的原始数据转换成标准化、有逻辑、易归纳的动态场景文件,有利于海量数据的标准化处理
OpenCRG标准:
1)应用对象:描述道路路面微观特性和不平度的开源数据格式
2)作用:通过弯曲的网格状分割,实现对道路的高精度描述,并降低内存占有率和计算时间
3)兼容性:支持与OpenDRIVE格式静态场景和OSI中动力学模型的交互,并与MATLAB等软件相兼容。
OSI标准:
1)应用对象:各种仿真工具和传感器模型
2)作用:定义一个通用的接口,用来连接自动驾驶功能的开发和各种驾驶模拟框架
OpenLABEL标准:
1)应用对象:数据标注
如何将相应的数据标签分配给已采集的原始数据
如何为带有目标物标签的场景文件标注标签
如何为逻辑场景标注标签等
注:此项目2019年底启动,目前尚处于起步阶段
4.3 C-ASAM - 中汽数据与德国ASAM联合成立
成立时间:2019年9月
组建者:中汽数据与ASAM共同组建
C-ASAM工作组成员(图片来源:C-ASAM官网)
职责:
1)全权负责统筹管理中国区ASAM会员、举办C-ASAM相关会议和培训
2)定期向成员更新ASAM标准研究进展
3)促进成员参与国际标准制定以及国际合作等相关事务
开展的研究和开发工作:
ASAM OpenX模拟仿真测试场景标准
XIL在环测试标准
ODS数据管理工具
4.4 ISO相关仿真测试标准
工作组:国际标准化组织道路车辆委员会自动驾驶测试场景工作组(ISO/TC22/SC33/WG9)
成立时间:2018年4月
1)ISO 34501 - 自动驾驶测试场景术语和定义
标准制定负责人:中国专家孙航
面向自动驾驶测试场景的实际应用需求,充分考虑目前国际范围内已有研究内容和成果,制定自动驾驶测试场景的“字典”以统一相关术语和定义的使用;
在标准内容上通过同义词、注释和用例等形式进一步深入阐述各相关术语之间的关系,指导自动驾驶测试场景标准、相关法规及工程应用中的概念统一。
2)ISO 34502 - 基于场景的安全评估的工程框架与过程
标准制定负责人:日本专家Jacobo Antona
内容:包括面向安全评估的场景生成流程、场景框架结构、数据库存储与接口架构、逻辑场景参数及道路交通参数选取等内容。
3)ISO 34503 - 自动驾驶系统操作设计运行范围的分类
标准制定负责人:英国专家Siddartha Khastgir
用于规范自动驾驶汽车设计运行范围的表述形式、适用层级和具体内容;
其目标是使具备各类自动驾驶功能的车辆能够根据该标准对其设计运行范围作出规范性的描述;
实现车辆设计者、生产者、使用者和管理者对于其运行能力范围的统一理解和认识。
参考资料: