Advertisement

自动驾驶仿真超全综述:从仿真场景、系统到评价

阅读量:

文章来源:全面探讨自动驾驶技术的仿真应用——基于场景、系统与评价体系的研究综述

一个自动驾驶仿真软件的运行可视化界面

自动驾驶仿真是什么?个人给出的一个尚未完善的概念。自动驾驶仿真是基于计算机虚拟技术体系对实际交通系统按照一定层次进行抽象概括的一种技术手段。

仿真对于未来的发展具有不可替代的重要性,在自动驾驶技术走向大规模商业化运营的过程中必须深入研究其关键环节。为什么会存在这一技术瓶颈?因为实现大规模商业化运营是自动驾驶技术发展的必经之路。其中一项主要问题是高昂的成本限制了技术的实际应用规模。通过仿真测试能够将大量的开发与测试工作转化为 GPU 材料成本以及工程师的知识与经验投入。从而有效缓解这一问题。

当前,在自动驾驶相关领域工作的各类企业几乎都在进行仿真相关的工作。尽管仿真工作普遍存在,但不同公司的技术水平与质量却参差不齐。值得注意的是,在仿真工程领域同样存在经验水平的巨大差异。如何才能建立一个具有良好运行效率与高度效率的自动驾驶仿真体系?如何才能成为一名专业且优秀的自动驾驶仿真工程师?这也是公众号未来讨论的核心内容之一。

搭建自动驾驶仿真体系是一个最低要求不高但潜力无限的过程。下载一个仿真软件并非易事——可以选择MATLAB或CarSim等商业软件——也可以选择CARLA、Lgsvl等开源平台——甚至还有Prescan或VTD等工具可供选择。通过通读相关文档并了解仿真流程的基本构成要素——就可以开始着手相关工作这一做法也得到了广泛认可——这也在一定程度上解释了该细分领域的 entry barrier 为何较低。然而需要明确的是标准的系统工程通常包括广义上的场景、系统以及评价三个主要模块——贯穿整个自动驾驶的研发测试部署及运营过程。有人认为负责自动驾驶仿真工作的人员应当由熟悉整个自动驾驶系统的专家担任这一观点虽有其合理之处但也值得商榷

随后,请允许我们基于这三个核心维度展开讨论:一个完善的自动驾驶仿真体系应当具备哪些基本要素?

**1、**仿真场景

场景作为仿真体系的第一个阶段,在整体体系中扮演着至关重要的角色。然而,在仿真系统的重视程度上显得相对不足。随着仿真系统及相关的评价体系逐渐趋于完善,在后续的发展过程中对场景的重要性有了更高的认识。从其作用机理来看,场景是对自动驾驶相关数据的一种高度提炼和利用,并且是一种高效利用数据资源的重要手段——基于场景的测试方法——可以弥补基于里程的传统测试方法所存在的局限性,在提高系统开发效率、产品落地效率方面都有重要作用。

以光照程度为自变量的场景

1.1 场景形式

场景的呈现形式即为场景数据的具体表达方式。为何要着重介绍这一形式?因为关键在于三个字:标准化。该标准化的场景体系所发挥的作用包括但不限于以下几个方面:

提高对原始数据的提取以及转化效率;

方便构建冗余度低的场景体系;

方便不同场景体系之间的比较以及场景交换;

减轻第三方测试时的多余工作。

德国PEGASUS项目提出了一种分层的景观数学模型框架,在其设计中将之划分为功能阶段、逻辑层面以及具体实施层面三个层级。其中,在功能阶段描述中可以采用"当被测车辆处于当前车道上并向前方有加速度车辆行驶时"的方式进行表达;而在逻辑层面,则提取关键参数,并赋予这些参数明确的取值区间;具体实施层面则需根据具体情况选择特定的一组参数组合。以上所述仅是为了阐述该多层次体系的基本概念。

三层场景体系

具体情况被转换为计算机可理解的语言即称为场景语言后才能发挥其作用。而场景语言则是一种用于描述自动驾驶系统待处理之外部环境的计算机解析的形式化工具。

场情呈现多样性。在功能、逻辑及具体情境下均设有对应的情境表述方式:例如,在功能与逻辑情境下主要采用M-SDL等高级方法;而对于具体情境则多采用OpenSCENARIO、GeoScenario等方法。各仿真软件对情境表述方式的支持各有侧重:例如CARLA及lgsvl广泛应用于自动驾驶技术领域中的仿真研究,并采用基于Python脚本的方式模拟车辆行为;而CARLA、VTD及51Sim-One1.2则主要通过基于XML的结构化数据进行建模。此外还可以通过Protobuf及JSON等方式来承载具体的表述方案。

其关键不在语言自身,而在于能够系统且全面地涵盖交通要素的相关体系标准。当前已有多个机构正在推行相应的标准,其中比较成功的则是由VTD主导、ASAM(国际)与CASAM(国内)共同参与开发的OpenX系列。公众号未来将对这一系列进行详细阐述,并值得特别关注的是中汽中心周博林专家团队的相关分享内容

M-SDL 一种高级场景语言

1.2 场景内容

根据知识与数据两种来源,在确定了特定场景的形式之后

以知识和数据为基础构建的方法最终都能够生成符合测试需求的具体场景;这一内容也是公众号后期重点讨论的重点内容之一。

知识驱动和数据驱动的场景生成方法

1.2.2 静态与动态场景的具体内容应当从构成这些场景的具体元素出发进行分析研究;根据这一原则可将所涉及的元素划分为静态元素和动态元素(其中动态部分具有半动态特性)两个类别

相对较为简单的分析与提取工作主要包含道路、基础交通设施等要素的具体识别与分离过程。值得注意的是其难点主要体现在对连续量(如光照强度、降雨量等)取值范围的分析上,并要求深入理解各静态场景要素间的相互制约关系

动态场景元素的提炼和转化相对较为困难。主要原因如下:

不局限于静态场景元素固有的属性连续取值范围和多重约束问题之外,在一个高度复杂且存在多种相互作用的环境中表现出高度互动性的行为模式

交通参与者种类繁多,涵盖重卡、轻卡、乘用车以及电动车和行人等多种类别;其中每一类交通参与者都具有独特的动态行为特征。

具体表现为多种形式:带有时间戳的运动轨迹数据、根据行为特征分类存储的数据(包括跟随车辆、变道等动作)、基于智能体的行为建模数据;

在动态交通数据的实际采集过程中,应特别关注采集车辆自身的作用,并重点处理其间的交互关系。

基于动态交通系统的研究并识别出其显著特征差异,在处理大规模复杂交通元素时需要依赖于相应的技术手段

这些涉及在收集与解析动态场景内容时需关注的关键点问题,并且这也是公众号未来将重点关注的领域。

动态交通流示意

1.2.3 场景提取pipeline最后对场景提取流程做一个简要回顾。其基本流程主要包括:首先进行的数据采集阶段;接着是特征提取环节;然后是数据分析与处理阶段。传统的企业内部实现中通常会将这些环节划分为几个关键部分:首先是基础架构中的数据库管理;其次是标注系统的建设;最后是对业务知识的整合与优化工作。这些环节在理论上与实践中均已经相当完善。仿真过程中特别关注的是如何高效地从大量原始数据分析出具有实用价值的典型案例,并将其转化为规范化的知识表示形式。

**2、**仿真系统

在整体仿真体系中发挥着承前启后的关键作用。该系统模拟了真实场景并进行了对象行为测试;通过与实际对象的数据接口获取其运行状态反馈;在实际应用环境中,则受到这一系统的性能限制而形成了上限。

接下来让我们探讨如何分析仿真系统的运行机制,在实际应用中应该着重解决哪些问题

2.1 仿真软件 | 被测对象 | 通信环境

为了明确起见,在讨论仿真的时候

除了这一点之外,在信息时代的背景下

仿真软件

在掌握不同仿真软件的共同特性方面,可以通过学习基本pipeline来实现这一目标。从整体上来看,基本pipeline包括导入静态地图数据、生成动态模拟环境以及与被测对象交互等环节,并最终完成运行数据收集与评估处理工作。这样基本就能熟练掌握一个仿真软件的操作流程,在此基础上进一步深化功能拓展工作就可以围绕这一核心流程展开探索与应用研究

探讨各类仿真软件之间的异同方面

就自动驾驶仿真领域而言

上述各种类型

CARLA Simulator

另外,在某些领域存在专注于特定功能仿真的相关软件系统。例如,在交通流仿真领域有Vissim、SUMO以及High-env等;而在动力学仿真领域则包括CarSim、Trucksim以及Carmaker等软件;还有些专门用于构建大规模城市规划的城市仿真工具;此外还有一些能够模拟复杂交通流构建的场景相关的工具系统。这些工具都可以整合到整体自动驾驶仿真体系中进行应用

SUMO Simulator

根据不同类型的被测对象

MIL与SIL在核心问题上具有相似性,在构建通信环境的基础上,则需要深入探究仿真效率、实时性和同步机制等方面。

HIL需要补充实时机与硬件通信接口的知识;

VIL是一项庞大而复杂的系统工程,在实际实施过程中通常需要耗费巨大的资源和精力来构建一个高效且专业的实验平台;目前这一技术在虚拟驾驶环境的模拟训练中得到了广泛应用

各种技术组合也是我们未来重点研究的方向之一,在优先级排序上 SIL 会占据核心位置, 其他几种的技术架构则会处于次要地位

通信环境

再来说说通信环境, 即仿真软件与被测对象之间所存在的信息传输环境. 其基础是基于计算机网络的知识体系来实现信息传输的任务, 也就是在各种JD文档中所提及的开发仿真接口的技术支撑.

通常情况下,在仿真数据处理中可以通过特定的通信中间件进行数据传输,并将其转换为被测对象所需的具体数据格式进行传递。其中较为常见的中间件类型包括基于ROS框架的中间件、基于AutoSAR协议的中间件等。在实际应用中需要综合考虑测试需求合理选择相应的通信中间件,并尽量减少仿真消息传输过程中的延迟与丢失现象以维持良好的通信效率。这与其仿真效果密切相关。

总体而言,在从事自动驾驶系统仿真工作的过程中,
不仅需要具备为软件增殖仿真功能的能力,
更重要的是要实现全局性认知与细节把控,
并能够有效对接各方协作需求。
在此基础上,
如果采用成熟的商业仿真平台,
就需要围绕说明书、教学材料以及培训课程展开工作,
始终保持与技术支撑团队的沟通。
而对于基于开源生态的开发人员来说,
则应当持续关注最新版本的功能更新,
及时追踪最新技术和功能亮点,
通过刷取问题(Issue)来解决疑惑。
当然,在这一领域中,
持续学习借鉴优秀的典型项目也能显著提升个人能力。

2.2 静态环境模块 | 交通流模块 | 传感器模块 | 动力学模块 | 数据模块

在掌握了基本仿真系统的架构后

按照我的个人认识,在逻辑结构上而言,一个完整的自动驾驶仿真软件组成部分包含静态环境设置模块、交通流模拟单元、传感器数据采集子系统、动态行为规则集合以及数据处理核心框架(其中数据处理核心框架下还包括具体的场景模拟子系统)。对于每一个具体组成部分而言都存在着亟待解决的关键仿真难题。

静态场景构建维护模块 静态场景构建维护模块负责构建和维护静态场景。其中所需的静态元素需与感知组进行对接,并结合专家知识对产品进行ODD分析以提取所需信息。随后应根据真实情况设计场景元素并采用合理的泛化方法实现目标。

静态场景构建维护模块 静态场景构建维护模块负责构建和维护静态场景。其中所需的静态元素需与感知组进行对接,并结合专家知识对产品进行ODD分析以提取所需信息。随后应根据真实情况设计场景元素并采用合理的泛化方法实现目标。

这一模块的核心问题是针对静态环境真实度的保障,并且采用了自动化方法来生成大规模的静态场景。

交通流模块定义为动态场景的核心概念更为贴切。该模块借鉴51VR公众号的总结,并需重点关注以下几种构建动态场景的方式。每一种构建方法都伴随着一套完整的理论体系与应用技术。后续将逐一详细阐述这些内容。

典型的交通行为建模中包含启动行为、跟随行为以及变道动作和超越动作等基本要素。其中,在十字路口的处理流程中可以通过DBM相关方法来进行研究和应用分析。

基于人工智能技术构建智能驾驶系统,在虚拟仿真环境中部署智能型自动驾驶车辆。通过持续的学习和优化过程,该系统能够准确感知并模拟复杂的交通环境,并特别在行人行为模拟方面展现出显著的效果;其中常用的方法包括模仿学习和强化学习策略;

引入交通学中的交通流理论的同时,并引入一种基于数学的概率分布方法进行建模。这类交通流理论不仅包含宏观层面的分析方法和微观个体行为的研究方向,在具体实施时主要采用高斯分布等核心统计手段进行描述。其中主要采用的是基于SUMO/Vissim联合仿真平台的实现方法,在实际应用中还可以通过直接构建相应的动态模拟系统来验证理论的有效性。

通过引入真实驾驶数据到交通流模型中进行研究,并对罕见事件模拟进行深入分析,主要借助驾驶模拟器构建和模拟

Agent-based traffic simulation

传感器模块 作为传递外界环境信息与被测车辆之间的媒介,在不同场景下需要采用相应的传感器模块配置以满足特定需求。根据不同被测对象的特点及测试目标选择合适的传感器类型与工作模式具有重要意义;当执行决策规划系统的测试任务时;能够采用对象级传感器;从而规避由传感器模型不够精确所带来的诸多后续问题;而针对那些需要获取原始仿真数据(如图像信号、三维点云数据)的复杂系统;则必须依据实际产品规格对各类传感设备的具体参数进行精确配置;例如对图像传感器需确定位置外参数以及畸变系数等内参数进行精确标定;而对于应用较多的激光雷达设备则需对线数密度以及旋转速度等相关参数进行详细配置

传感器系统设计是一项具有挑战性的任务,在当前的研究中主要采用基于物理学原理的模型以及基于数据统计分析的方法两类典型的设计方案。其中物理型模型具有较高的复杂性和较高的计算负担;而统计型模型在准确性方面仍存在一定的缺陷。解决这两种模型现有缺陷的具体途径及改进方向则是一个值得深入探讨的话题。

一种值得借鉴的技术源自waymo,在感知仿真的相关领域中,并非所有情况都直接构建传感器模型来解决问题;相反地,则采用了生成对抗网络(gan)这一创新方法来替代传统的传感器建模思路。在必须涉及传感器建模的情况下,在统计模型的方法下可以通过精细设定噪声参数并辅以数据预处理手段来缓解由于真实程度差异所带来的仿真结果偏差;而对于物理建模问题,则需关注各仿真器的实力;无论何种情况,在优先解决真实性问题的基础上次之要考虑计算资源受限的问题。

Surfel GAN

动力学模块 这一模块的重要性不容忽视,在传统车辆仿真领域中占据着举足轻重的地位。经过多年的理论研究和实践经验积累,相关领域的成果已经初具规模。然而,在当前面临的问题数量相对较少的情况下,并不能因此而有所轻视——必须给予高度关注。其精确度直接影响着仿真结果的实际可用性。这一部分的核心任务在于探索如何实现高性能的动力学模拟方案——是采用内部开发策略还是通过外部协同(如与CarSim等平台合作)来达成高精度仿真的目标?无需过分关注实时性能问题。

对于动力学仿真模块来说,在深入理解的基础上需要熟练掌握包括CarSim和TruckSim在内的各种动力学仿真软件以及相应的动力学模型。此外,在联立仿真的基础上还需要掌握动力学模型的识别方法。另外,在百度开发出了一种基于数据驱动的动力学建模方法,并且这种方法在实际应用中表现优异。

本模块旨在负责管理整个仿真数据pipeline。其涵盖的内容极为广泛,涉及多个关键环节:场景解析、记录仿真流程、回放操作过程以及数据输出等。每个具体功能都值得深入探讨;不过由于篇幅限制,在此仅作概述而不展开详细讨论。

2.3 本地仿真 | 大规模云仿真 | 稀有事件仿真

通过仿真可以有效降低时间和经济成本的同时提升测试的安全性。然而为了确保自动驾驶系统的安全性必须进行大量的测试里程即便采用场景测试方法作为一种补充手段由于可能的场景参数数量较多且部分参数连续从而导致大量的测试场景难以生成基于此前提条件仅使用有限数量本地仿真系统的话完成所有这些测试将导致不可接受的时间成本因此能否找到一种合理有效的解决方案则直接关系到整个仿真体系是否能达到最佳效能水平

当前学术界与工业界的主流方案主要包括以下几个方面:其一便是采用大规模云仿真技术;这同样是工业界正在重点发展的核心路径之一;另一种主要的研究方向则是基于场景概念展开;它通过制定相应的策略来减少非风险里程;同时还可以提升能够对自动驾驶系统构成特定挑战的场景生成效率;即通过‘压力测试’来优化整体运行效率。

Sim Cloud of TAD

One Case of Stress Test

**3、**仿真评价

请阐述整个仿真体系中往往被忽视的关键点,并结合仿真的评估标准进行分析。设想一个场景:假设有一个需求旨在引入一个新的自动驾驶系统功能模块,并要求该模块将当前版本从V0.8升级至V0.9版本;此时应当如何实施这一过程?

首要任务是建立一个"标准场景库"。这一场景库的设计必须经过精心规划,并在此基础上进行优化与完善。在当前阶段,我们暂不对这一机制的具体实现进行深入探讨。关于如何确保系统通过这一场景库的测试?采用二元判断法(Pass/Fail)或统计违反交通规则的次数作为评估依据均存在一定的局限性。主要存在的问题是单纯依赖二元指标可能会导致大量假阴性和假阳性结果出现。因此,在现有基础上我们需要构建更为科学合理的评价体系,在此基础上设计能够输出连续值属性的评估指标,并基于这些指标评估系统的安全性能表现。

在具体仿真评价指标的设计过程中, 应确保与产品需求的高度契合. 由于不同算法和系统的特性各异, 在设计评价标准时需充分考虑各自的特点. 这些具有灵活运用空间的因素相对较少, 因此, 重点在于与开发工程师的具体需求达成一致; 而面向第三方的评价体系则通常具有较高的灵活性. 可以按照安全性. 舒适性和经济性等维度来制定相应的量化标准.

总体而言

**4、**主要挑战

在文章的最后,我们再集中谈谈目前仿真工作中遇到的几个挑战。

4.1 Reality Gap

仿真呈现的物理世界与真实存在之间存在不足。以实例说明,在针对感知系统进行测试时,如何确保生成的图像/点云与实际环境的高度一致?通过使用仿生图像/点云进行训练所获得的自动驾驶系统的性能表现如何?

实现一致性的维持需要付出显著的成本。为此,当前已有若干相关研究工作致力于这一领域。例如:百度的AADS(虚实结合)和谷歌的SurfelGAN(以GAN为代表的一系列工作)等。

Gap2:分析所有相关物理现象是一项具有挑战性的任务;举例说明一些典型案例,在较高速度时如何处理转向和加速减速的行为;阐述随机过程(如信号噪声)的建模方法,并将其整合到整体仿真系统中;探讨如何将V2X仿真系统与物理地形仿真系统进行集成?

为了解决这些问题,建议采用开源共享与节省资源相结合的方式。例如,在工程学角度上而言,在仿真的核心环节中将重心转向决策规划与控制系统的优化配置上,并将感知测试环节转向回放型仿真的应用阶段。或者在现有技术差距存在的情况下(gap),能够让仿真工程师通过数据处理分析来填补这个缺口,并且能够通过交叉验证手段来覆盖掉剩下的技术空白区域(gap)。

总体而言,在仿真环境与实际运行环境中表现出明显差异的情况下,则需要深入分析导致这种差距的核心问题。如果这种问题短期内无法通过外部因素得到改善,则应立即调整工作重点。仿真确实是一种非常有效的工具,但它不能完全替代测试过程中的各种验证手段。进行单纯地仿真的行为并无实质意义。

4.2 Complexity & Lack & Business

Complexity作为表征,在三个维度上进行划分:首先是从软件系统的多样性出发;其次是对各仿真软件模块的功能特性展开分析;最后则是围绕不同系统与不同软件之间仿真接口的构建难度进行评估。

现有的自动驾驶仿真软件数量众多;其中包括VTD、Prescan、51Simone等商业产品以及基于Matlab/Simulink和Python生态系统的开源工具如GTA-5和Gazebo等;这些工具在实现自动驾驶功能方面各有特色但也有各自的局限性;在实际应用中若需针对不同的测试场景频繁更换使用这些模拟器无疑会带来较高的学习成本;此外为了适应同一被测系统下的不同自动驾驶方案往往需要开发相应的接口连接进而导致耗时耗力的成本积累;如此规模庞大的仿真工具套件不仅增加了日常维护的工作负担而且在开展大规模工程级别的仿真实验时也会遇到诸多障碍。

Lack

如果有一款足够完美的自动驾驶仿真软件是不是就一劳永逸了呢?

即便如此,实际情况也并非如我们所想象的那么简单。就功能而言,目前尚无一款被广泛认可的、具备完美性能的自动驾驶仿真软件。大多数现有软件在同时支持以下列出的各项功能方面仍存在不足。

由于可能破坏物理引擎的稳定性无法提供高于实时的模拟速度;

该系统无法实现高效的无GUI(headless execution)运行模式从而导致自动化测试任务的执行受到影响;

在构建涉及复杂多维真实交通行为的动态场景模型时

构建大规模真实、异构静态场景时需要较高时间成本;

支持多种不同的应用场景时,意味着较高的计算开销;

不支持多agent联合仿真以及跨多台机器仿真会话有效分发;

不支持大规模场景(整个市区级)(此需求合理性有待讨论)。

不得不承认,在某些特定领域内深入研究并掌握技术的人士眼中,
上述功能都已经实现了完善的功能。
然而,在实际进行研发的过程中,
除了要考虑软件使用的经济成本和所用数据的安全性,
还必须关注系统仿真与基础架构之间的兼容性(即数据闭环机制的重要性)。

由此可见某些机构仍会选择独立开发以完善一个仿真系统。当提到这些相关功能开发时 正如前述 工程师的工作职责即包括这一部分日常任务。

4.3 Reproducibility

Reproducibility, also referred to as the determinism of simulation results, encompasses two aspects: the reproducibility between simulation and reality, and the reproducibility within the simulation itself. Notably, the former is recognized as a core challenge in achieving reproducibility, requiring meticulous handling of the Reality gap to address it effectively. This section primarily focuses on another equally important yet often overlooked aspect:

In practical testing scenarios, ensuring a certain level of reproducibility in a system allows us to determine whether modifications to the code have resolved issues effectively, thereby facilitating improvements in test automation and continuous integration (CI) practices while minimizing false negatives and false positives outcomes that may arise from improper implementations.

MIL/SIL/HIL/VIL 等各类仿真系统均存在仿真结果可能出现不可避免的噪声问题,在相同的场景下进行多次仿真实验时 评价指标值会呈现一定程度的波动现象 自动驾驶技术作为现代汽车智能化的重要组成部分 相应的仿真实验数据也会呈现出一定的偏差 自动驾驶系统的仿真数据偏差主要由多个难以具体分析的影响因素所导致 如线程不稳定性 信息传输帧率以及评价指标本身的高度非线性特征 因此对这些噪声进行精确建模并实现有效的定量分析存在较大的难度 为此 可以采取以下两种方法来解决问题 第一种方法是在保证实验精度的前提下 多次运行仿真实验并通过统计平均等手段辅助理解问题的本质 第二种方法则是基于模糊化和综合化的思路 设计一套新的评价体系

4.4 CI

在CI中集成仿真是大势所趋。但其会受到以下特性影响。

系统仿真器的可靠性是一个重要指标。作为关键问题之一,在自动化过程中依赖仿真软件可能会导致系统崩溃、时间延迟以及同步错误发生。

接口的一致性。
自动驾驶仿真软件中各模块之间的一致性对其运行效率具有重要影响。
由于存在非一致性的模块间交互、不可靠的数据传输以及脆弱的数据结构可能导致系统运行异常。
为了确保系统的稳定性和可靠性,在设计阶段就需要进行复杂的工程任务规划与实施,
包括模块间的协调设计和动态优化调整。

**5、**结语

构建自动驾驶仿真体系时设定最低要求与最高标准。这一系统架构在多个关键领域决定公司的发展进程。建立科学完整的框架能够提升效率并缩短周期,并促进创新与优化。

目前已有众多知名机构和同行分享了大量仿真相关知识。这些知识对参与者的收获非常大。然而每次分享的时间往往较为局限,因此难以深入探讨更多的细节,难以形成一个完整的体系.该书籍则为仿真学习提供了一个系统的入门路径.数据来源:(51VR)

全部评论 (0)

还没有任何评论哟~