1、科技前沿Frontier近年来,智能网联汽车发展迅速,确保其安全性的一种方法是进行足够的里程数测试。据美国兰德公司研究,一套自动驾驶系统必须拥有超过 110 亿英里的驾驶数据。假设 100 辆自动驾驶汽车每天 24 小时、每年 365 天不停行驶,平均时速 25 英里,达到足够的测试里程数将需要 518 年,显然不切实际。因此,将实际路测与虚拟仿真相结合尤为重要。基于场景的智能网联汽车仿真系统是利用计算机技术生成各种典型的道路场景,并用其来测试各种自动驾驶算法,增强算法的鲁棒性。一、场景概念(一)场景定义交通领域的场景(scenario)是连续 scenes 的短暂发展,其一个重要特性是持续时
2、间。scene 是周围环境的快照,包括场景静态元素、动态元素、场景参与者和观察者的自我状态表示以及所有元素之间的关系。每一个 scenario 都由一个初始的 scene 开始。(二)场景分类一是按照抽象的程度分类。scenarios可分为功能场景(Functional scenarios)、逻辑场景(Logical scenarios)、空间场景(Concrete scenarios)三个不同的抽象级别。其中,功能场景指语义级别的描述;逻辑场景指通过在状态空间级别使用参数范围来进行逻辑方案描述;空间场景指通过在状态空间级别使用参数值来进行具体方案描述。二是按照场景的内容分类。2021 年 9
3、 月发布的中国智能网联汽车基础数据服务平台,基于内容将场景分为基于真实采集数据生成的自然驾驶场景库、标准法规场景库、交通事故场景库和驾驶员行为数据库等。三是按照信息分类。根据将不同信息归类到不同层面来描述,scenarios 可以划分为六层模型,分别为 L1-L6。其中,L1 为道路层【关键词】智能网联汽车;场景描述语言;仿真测试【基金项目】本课题得到河南省重大科技专项(No.221100240100)、上 海 市扬帆计划(No.20YF1413700,21YF1413800)资助面向智能网联汽车的场景描述语言综述文图马启皓 姜超 李玉峰【导读】以模拟仿真、实车路试、功能安全相结合的方式完成智
4、能网联汽车的试验、评价和认证是技术发展的必然趋势。使用场景描述语言能够仿真渲染出具有高价值的自动驾驶系统测试集,支持自动驾驶汽车整个开发过程的测试和场景的定义,以及高度还原现实世界的复杂交通状况。本文介绍了在交通领域中场景的定义、分类、主要的场景描述语言以及基于场景描述语言的自动驾驶仿真测试系统,并对场景描述语言存在的问题和展望做了总结分析。36|道路交通管理 2023/02面信息,如表层街道边界;L2 为交通基础设施,如交通标志;L3 为 L1/L2 的临时操作,如各种突发事件;L4 为对象,如静态、动态的行人;L5 为环境,如天气、照明和其他周围条件;L6 为数字信息,如数字地图等。二、场
5、景描述语言目前,场景描述语言可以影响到智能网联汽车仿真的多个阶段,主要包括:提升场景文本描述的质量和节约数据采集成本;提升场景仿真案例的描述质量,批量生成特定的测试场景;提升对车辆的行为控制的精度等。(一)基于 XML 的场景描述语言XML 是一种可扩展标记语言,可以用来标记数据、定义数据类型,是一种准许使用者对自己的标记语言进行定义的源语言。XML 最突出的功能是表现信息结构的能力,即文档各个部分之间的关系及它们如何组织成为一个具有确定意义的整体。ASAM(Association for Standardization of Automation and Measuring Systems)
6、提出了一套完整的仿真测试场景描述方案 OpenX,并制定了一系列标准,包括 OpenDRIVE、Open Curved Regular Grid(简称 OpenCRG)、OpenSCENARIO。OpenDRIVE 使用 XML 语法描述自动驾驶仿真应用所需的静态道路交通网络,可以适配多种模拟器。该标准的主要任务是对道路及道路上的静态物体进行描述,如道路、车道、交叉路口等内容。OpenCRG 主要关注道路表面的相关物理信息描述,允许在仿真软件中对道路路面的真实 3D 渲染。OpenSCENARIO 用于描述驾驶和交通模拟器中的动态内容。其主要用例是描述涉及多个实体(如车辆、行人和其他交通参与者
7、)的复杂的同步操作。具体标准与标准之间的关系如图 1 所示。OpenSCENARIO 数据模型由统一建模语言(UML)定义。UML 通过图形化数据模型图提高了可读性,在OpenSCENARIO 中,类图被用于数据建模,XML 方案可以从这些数据模型中派生出来。SceML 是一种基于图形的场景建模语言,为方便专业人员进行场景图形结构的数据结构转换而开发。它遵循 UML 类图的规则,允许对场景描述的多个抽象层级分别建模,主要特性是基于图的结构提供了模块化和可重用的子场景。SceML 中的每一个场景都有一个行为树,使用了顺序执行策略和并行执行策略。图 2 说明了在车辆向左进行变道的动作描述,每个场景
8、都有一个根节点,其中包含场景中所有参与者的列表,从初始状态开始,遇到动作节点则进行条件判断,往后通过条件同步节点,最终所有的机动路径都收敛到终端节点。SceML 可以用来设计具体的场景,然后进行验证。其图1 OpenX标准之间的关系图2 向左变道行为树示例2023/02 道路交通管理|37科技前沿Frontier不同于其他描述语言系统的一个特点是,在执行之前不需要定义场景结果,能够以机器学习算法或由专家创建的方式,从数据集中生成和提取场景。GeoScenario 的开发是为了描述可能影响交通的所有相关细节,但是没有为车辆定义动作的细节,仅指定了初始条件和目标。采用的数据格式基于XML,并且将由
9、 Open Street Map(OSM)标准确定的组件,包括自我起始位置和目标、道路网络、代理(车辆和行人)、路径以及触发器和动作记录其中。GeoScenario 的语言具有系统独立性,它支持由不同自动驾驶系统设计的测试用例,可以在不同自动化级别上运行。场景支持手动设计,从真实的交通数据中提取,或从驾驶数据库中导入。场景中包含静态对象和动态元素,可以添加触发器节点来激活动态元素上的不同操作。CommonRoad 是一种独立于平台的格式,用于道路运动规划的特定道路交通场景。开发团队提出了 CommonRoadXML 格式,它仅包含一小部分OSM 属性,但提供了指定交通场景所需的所有元素。Com
10、monRoadXML 文件由 XML 头(XML 版本和编码类型)和普通根元素组成,包括位置、场景标记、车道、交通标志、红绿灯、十字路口元素、静态和动态障碍以及规划问题。CommonRoad 使用 Lanelets 来描述道路。Lanelets 是 OSM 格式的开放扩展,专门用于支持自动驾驶车辆的道路网络表示,能够以任意精度逼近任意车道形状。它可携带额外的数据来描述静态环境。因此,这些边界由一系列形成多段线的 OSM节点数组进行编码,一起组成了 Lanelets 的地图。(二)基于 python 的场景描述语言M-SDL 是一种开放的、人类可读的高级场景描述语言,允许简化场景的捕获、重用和共
11、享,并轻松指定任何场景和操作条件的组合,同时允许监控和测量自动功能的覆盖范围,有助于实现“可测量的安全”生态系统。SDL 的构建块是语句、结构、参与者、场景成员、场景调用和表达式。由于 M-SDL 具有类似Python 的语法和词法约定,因此可以轻松定义通用抽象场景。Scenic 是一种新的概率编程语言,用于感知系统的设计和分析,特别适用于基于机器学习方法的无人驾驶系统,从环境中收集数据,并对系统进行重新设计,直至其性能令人满意为止。该语言能够生成开发者自己想要的一些数据,或者现实世界难以采集到的数据(如交通事故数据),并利用这些数据对无人系统进行训练和测试,从而提高无人驾驶系统的性能。三、基
12、于场景描述语言的仿真平台汽车驾驶仿真测试是以数学建模的方式将自动驾驶的应用场景进行数字化,尽可能还原成接近真实世界的系统模型,通过软件进行测试便可达到对自动驾驶系统及算法的测试验证目的,包括场景库、仿真平台两个部分。其中,场景库是指由自动驾驶测试场景构成的数据库。通过场景描述语言可以快速构建复杂的场景,支撑完成从场景库到场景测试引擎的桥接,实现从场景的自动产生、管理、存储、检索、匹配,到最后注入测试工具。基于场景描述语言的仿真平台SUMO、CARLA、腾讯 TAD Sim 介绍如下。(一)SUMOSUMO(Simulation of Urban Mobility)是 一个开源且高度便携的,适用
13、微观模拟和连续行为的仿真平台,可用于处理大型的路网交通模拟仿真。它附带了一个交通仿真路网编辑器,可以通过交互式编辑的方式添加道路、编辑车道、处理信号灯时序等,也可以通过一个单独的转化程序转换来自 Vissim、OpenStreetMap、OpenDrive 的路网,流程如图 338|道路交通管理 2023/02所示。可以通过编辑路由文件的方式指定每辆车辆的路由,或者使用参数随机生成。(二)CARLACARLA 是一个开源且具有开放生态的自动驾驶仿真平台,旨在支持自动驾驶系统的开发、培训和验证,具有与 SUMO 的协同仿真功能。CARLA 可以与 Scenic 结合使用,通过单个场景定义生成多个
14、不同的场景。CARLA 支持用户按照 OPENDRIVE 标准创建集中的地图,允许用户进行交通场景模拟。另外,CARLA 还支持 CarSIM、PTV Vissim、Chrono 等各种软件的接口。(三)腾讯 TAD Sim腾讯自动驾驶数字孪生仿真测试平台 TAD Sim 2.0 集成了工业级的车辆动力学模型、专业的游戏引擎、三维重建技术和虚实一体的交通流技术,可以完成感知、决策、控制算法等实车上全部模块的自动驾驶仿真测试。TAD Sim 通过使用真实数据不断训练模型来进行模型迭代,提供智能分析、仿真测试等应用服务,构建自动驾驶快速研发、验证和升级闭环。TAD Sim提供全栈式工具链,具备“数
15、据采集、场景建模、场景自动生成、模型在环、软件在环、云加速测评、硬件在环、车辆在环”完整测试验证流程的自动驾驶仿真系统。该平台自研了包括车辆动力学、传感器、交通流、地图和场景编辑等全套模型,并支持 OpenX系列和 OSI 国际仿真标准,解决传统仿真软件部分核心模型过于依赖第三方的问题。四、结语近年来智能网联汽车测试正由路测转变为虚拟仿真,各种场景描述语言及仿真平台的开发使得网联汽车工程师拥有了便捷的工具,从而实现更加贴近现实的场景模拟。对比部分场景描述语言,虽然应用目标各不相同,但 XML 作为一种泛用性较广的数据结构,被大多数场景描述语言平台所接受,也有利用 python这种编程语言格式使
16、得场景描述更为简便。当前可用于场景描述语言的平台在国内外得到快速发展,但存在的问题是场景库标准不统一,影响了测试仿真效果。笔者提出以下建议:一是场景描述语言与图像建模应充分结合。文本描述场景拥有空间小、支撑简单、含义明确、便于优化的特点。但对于较为复杂的模型,无论是开发人员还是其他阅读者,图像模型可以从视觉上更加直观立体地反映出较为抽象的特点。因此,出于对文本模型和图像模型二者优势结合的考虑,有仿真平台在研究文本与图像的交互式建模。二是软件的开源与格式应保持相对兼容。开源的软件可以更加广泛地被应用于工业界和学术界,在多种使用条件下,其核心的稳定性更容易得到验证与保障。开源的软件更加有可能被大型企业作为行业规范,从而用其资源来支持该开源社区。例如 CARLA 作为一个开源的仿真软件,能为大多数场景描述语言所用,有很多企业的项目和拓展研究也以它作为平台。因此,从趋势来看,越来越多的厂商开始支持 OpenX。当不同厂商采用统一场景描述语言,共建基础场景库,就可形成通用的、可移植的场景库,提升场景库的覆盖率,促进汽车自动驾驶仿真测试的可行度。(作者单位:上海大学)图3 将Vissim网络导入S