购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 基于场景的仿真应用

3.2.1 自动驾驶系统的DevOps周期

在汽车的整个开发周期中,仿真已经不仅仅是一个在复杂的技术组件或者系统的开发阶段应用的工具了。如今,仿真与所有开发阶段都高度相关,从确定初步想法、提出基本需求到最终的测试评估都离不开仿真的应用。对于自动驾驶汽车来说,场景仿真的应用就更加至关重要了,它贯穿于感知、规划、执行模块的需求设计、开发、测试与验证的各个阶段。

DevOps(Development and Operations)描述了从系统开发领域至系统运行领域的活动集成。通常,集成的目的是缩短系统开发生命周期,确保优质系统的连续交付。DevOps起源于IT系统和软件开发领域,现今其他领域也涉及DevOps,例如汽车行业。

当前,关于自动驾驶系统的DevOps周期的讨论涵盖整个自动驾驶汽车产品的生命周期,引出了基于仿真的新应用领域,以及它们与创新的工程和开发方法之间的联系。这些方法在未来将很大程度上依赖于运营数据闭环,例如,用于监控运行中的自动驾驶汽车产品或对其进行优化和改进。

本节将以自动车道保持系统(ALKS)作为样例,进一步对自动驾驶系统DevOps周期进行说明。ALKS系统是3级自动驾驶(有条件自动化),可以实现纵向和横向运动的控制,最大速度为60km/h,为驾驶员提供动态驾驶任务的支持。运行设计范围(ODD)仅限于弱势交通参与者禁止通行的道路,以及车道设置有物理隔离设施的道路。图3-4展示了ALKS系统DevOps周期的各个阶段,提供了仿真应用以及ALKS功能示例,以解释其相互依赖性。

图3-4 DevOps周期环

DevOps周期环的主要阶段如下:

1)计划:确定应用需求,并规划系统和产品发布。确定和选择相关运行场景,并根据专业知识和经验细化需求,这是开发流程初期的关键任务。关于ALKS应用,可以根据预期设计运行范围和系统规范系统性地推导出场景。

2)构建:构建并实现系统,包括设计和发布方法。快速原型设计能够让我们尽早洞悉系统开发状态,并发现实现缺陷。在早期开发阶段,测试实现的ALKS功能,以便确定设计和实现问题。在此情况下,使用仿真技术便有一个主要优势——可以执行快速原型设计,而不必在此阶段构建实际的ALKS系统。

3)创建:创建和编译已实现的系统。在构建并编译ALKS代码后,可以利用仿真方法进一步增强早期开发阶段的系统测试。在此阶段,可以验证之前确定的需求,同时继续进行代码开发。

4)测试:连续测试已编译的系统。在此阶段,可以利用进一步增强的仿真环境完成系统测试,进一步完善ALKS功能需求和ODD描述,直到成熟度达到可接受水平。此阶段的自动化测试需求越来越重要,需要实现测试自动化,以确保效率,同时应对不断增加的复杂性。

5)发布:系统已获批发布,ALKS功能符合KPI要求。在此阶段,应保障系统的安全性,需求得到满足,并且上一阶段的系统测试确保了当前实现的一定稳健性。

6)部署:部署系统供客户使用。在系统环境或其运行环境中,完成已发布系统的完整性测试。

7)运营:在客户使用时,观察已发布的系统。在现场,可以进一步检查KPI实现情况,例如网联自动驾驶车辆对交通质量的影响;可以利用ALKS功能运行时记录的数据改进仿真模型,找出设计缺陷,并收集更多有关系统的意见。

8)监控:在运行期间可以监控系统的长期性能。在此阶段,可以确定长期运行期间其他未知的相关场景。由于这些场景发生的概率很低,所以确定这些场景的难度较高。尽管如此,对于更新当前ALKS功能和开发下一代驾驶功能应用而言,这一阶段非常重要。

3.2.2 场景仿真环境的抽象架构

自动驾驶系统的DevOps周期中的各个阶段及其在一个连续周期中的集成对场景仿真架构提出了新的要求,主要包括基于场景仿真的工具、这些工具的组件和接口,以及相关标准。对于标准层面,包括了标准化场景描述、场景与仿真工具间的接口规范、数据描述、为保证可追溯性而定义的流程/方法环境以及工具配置或执行仿真运行的结构化文档等。

图3-5描述了仿真环境的必要组成部分,涵盖DevOps周期中不同活动任务的主要需求。

针对仿真的不同任务,配置管理(Configuration Management)用于管理仿真测试整体工具链的配置,例如指定、存储和调用这些不同的配置。配置一直存储在一个数据库(Repository)中,该数据库也用于存储其他类型的配置、数据和模块等,并采用能够处理复杂查询的存储(Store)和检索(Retrieve)模块来封装数据库的访问信息。此外,由测试说明(Specify)模块管理的仿真运行序列配置存储在此数据库中。

仿真配置(Simulation Configuration)/模型集成(Model Integration)模块用于处理仿真核心配置,包括耦合模型描述等。运行(Run)模块用于控制仿真运行的执行,并向评价/评估(Evaluate)模块提供记录数据以及所有相关的配置数据,例如在验证与确认(Verificationand Validation)背景下,数据的使用目的可以是多种多样的。在测试运行(Run)模块中,利用仿真(Simulation)、在环测试(XIL)、场地测试(Proving Ground)和开发道路测试(Public Roads)等模块接口,可以将场景仿真环境关联到其他工具和工具链中。在很多情况下,仿真测试运行后需要使用专门的后处理(Postprocess)技术来对仿真测试的结果数据进行处理。此外,日志处理(Log Processing)模块用于管理全部数据记录,并关联了仿真环境的所有其他模块。

图3-5 场景仿真环境的抽象架构

在上文描述的场景仿真环境抽象架构中,所有模块间采用的是通过抽象总线系统传递的单一接口。该总线能够处理各类相关数据,其相关标准也是场景仿真环境的支柱。

此外,图3-5还提及了与上述组成部分及其任务相关的部分行业通用标准,以及各部分如何与标准结合应用。例如,ASAM OpenODD、ASAM OpenDRIVE和ASAM OpenSCENARIO等是专门用来将ASAM标准和其他标准化机构提出的标准与抽象仿真环境的不同模块关联起来的标准模块,将在下一节详细介绍。 ZEo4nOinSmPewP9APbYhL8BziZWqwaF3Z7vm34f/a3XdbrCj3pETW0MSt2SjYoqg

点击中间区域
呼出菜单
上一章
目录
下一章
×