OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation

论文分析——个人解读

论文题目为“OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation”。这篇论文主要介绍了一个名为OpenCDA的开放式协同驾驶自动化框架,该框架与协同仿真相结合。以下是论文的主要工作和创新点的概述,以及如何复现这些工作:

主要工作:

  1. 提出了OpenCDA框架:该框架是一个开放式协同驾驶自动化平台,用于实现车辆之间的协同和自动驾驶功能。
  2. 整合了协同仿真:OpenCDA框架与协同仿真工具相结合,可以模拟车辆之间的协同行为和交通场景,用于评估和验证协同驾驶算法和系统。
  3. 提供了开放式接口:OpenCDA框架提供了开放式的API和接口,以便研究人员和开发者可以轻松地扩展和集成新的协同驾驶算法和系统。

创新点:

  1. 开放式框架:OpenCDA框架采用了开放式设计,可以促进研究和开发人员之间的合作,加快协同驾驶技术的发展。
  2. 协同仿真整合:通过与协同仿真工具的整合,OpenCDA框架可以在虚拟环境中模拟复杂的交通场景,评估协同驾驶系统的性能和安全性。
  3. 开放式接口:OpenCDA提供了开放式的API和接口,使得其他研究人员和开发者能够轻松地扩展框架,实现新的协同驾驶算法和系统。

复现方法:

要复现论文中提出的OpenCDA框架,可以按照以下步骤进行:

  1. 获取论文中提到的OpenCDA框架的代码和相关文档。这些资源可能会在论文的附录、作者的网站或相关的代码存储库中提供。
  2. 阅读和理解代码和文档。了解OpenCDA框架的架构、功能和使用方法。
  3. 准备所需的环境和依赖项。根据文档中的指导,设置和配置OpenCDA所需的软件环境和依赖项,例如Python版本、仿真工具等。
  4. 执行示例代码或自己的实验。根据文档中提供的示例代码或指导,运行OpenCDA框架,并进行相关的实验和评估。
  5. 分析结果

————————————————————————————————————————————————
论文链接为:https://arxiv.org/pdf/2107.06260.pdf

项目链接为:https://github.com/ucla-mobility/OpenCDA

文档链接为:https://opencda-documentation.readthedocs.io/en/latest/
————————————————————————————————————————————————

全文翻译

摘要

虽然合作驾驶自动化(CDA)近年来引起了广泛的关注,但在这一领域仍存在许多开放的挑战。现有的主要集中于单车智能的仿真平台与CDA开发之间的差距是一个关键的障碍之一,因为它阻碍了研究人员方便地验证和比较不同的CDA算法。为此,我们提出了OpenCDA,一个用于开发和测试CDA系统的通用框架和工具。具体来说,OpenCDA由三个主要组件组成:一个具有不同目的和分辨率的模拟器的协同仿真平台,一个全堆栈原型协同驱动系统,和一个场景管理器。通过这三个组件的交互,我们的框架为研究人员提供了一种直接的方法来在流量和个人自主水平上测试不同的CDA算法。更重要的是,OpenCDA是高度模块化的,并安装了基准测试算法和测试用例。用户可以方便地使用自定义算法替换任何默认模块,并使用CDA平台的其他默认模块来评估新功能的有效性,以提高整体CDA性能。用一个平台实现的例子来说明该框架对CDA研究的能力。OpenCDA的代码可以在加州大学洛杉矶分校移动实验室GitHub页面上找到

1 介绍

通过利用尖端技术来规避传统的基础设施增强限制,智能交通系统(ITS)正在重塑交通运输,并在提高交通运输系统的管理、运营、安全和效率方面显示出了巨大的潜力。它的一个重要子领域是合作驾驶自动化(CDA),它在SAE J3216 [1]中定义,指的是车辆高速公路自动化,使用机器对机器通信,使两个或多个实体(如车辆、行人、基础设施组件)与有能力的通信技术之间的合作。通过实现实体之间的状态共享、意图共享和机动协作,可以显著提高交通效率、能耗和驾驶安全性的[2]。由联邦公路管理局(FHWA)开发的CARMA项目[3]是CDA的领先研究项目,利用自动化和合作方面的新兴能力来推进交通系统管理和运营(TSMO)战略。

虽然CDA近年来一直是一个活跃的领域,但它仍处于起步阶段CDA开发的主要障碍之一是进行现场实验的高成本和潜在的安全问题,因为它们通常需要多个昂贵的连接自动化车辆(CAVs)和超大规模的测试空间[4]。以最小的成本促进实验研究的一种方法是在模拟环境中对CDA算法进行原型和验证。然而,现有的全自动驾驶软件开发的仿真平台对CDA功能的支持有限。据我们所知,**目前还没有一个开源(或商业)工具专门为CDA,通过提供交通和车辆与完整的CDA车辆软件管道。**因此,为研究者找到一种简单、灵活的方法来部署、验证和比较不同CDA算法对仿真中cav动态驱动任务的影响变得非常具有挑战性。大多数研究使用不同质量的特别模拟能力,使得算法和功能性能之间不具有可比性。

为了克服这些挑战,我们引入了OpenCDA,这是一个集成了CDA研究的通用开源框架。OpenCDA提供了一个全堆栈的CDA仿真软件,其中包含了通用的自动驾驶模块,包括感知、计算和驱动能力,以及SAE J3216中定义的协作特性(例如,车辆通信、信息共享、协议寻求)。OpenCDA纯粹是用Python [5]开发的,用于快速原型化。在这些基本模块的基础上,OpenCDA支持一系列常见的协同驱动应用,如平台化、合作感知、合作合并和速度协调。更重要的是,OpenCDA提供了一个场景数据库,其中包括用于测试不同协作驱动应用程序作为基准。用户可以轻松地用他们的设计替换OpenCDA中的任何默认模块,并在提供的场景中测试它们。如果用户希望生成他们的场景,我们的框架还提供了简单的api来支持这种定制。我们选择CARLA [6]和SUMO [7]来渲染环境,模拟车辆的动态,并生成交通流。由于我们的框架设计具有高灵活性,它还可以扩展到集成额外的模拟器,如通信模拟器(ns-3 [8])和车辆动力学模拟器(例如,CARSim [9])。

OpenCDA的主要特性可以概括为IFMBC:

  • 集成: OpenCDA集成了CARLA和SUMO——一起为真实的场景渲染,车辆建模和交通仿真。
  • 全栈原型CDA平台: OpenCDA提供了一个简单的原型自动驾驶和合作驾驶平台,都使用Python,包含感知、定位、规划、控制和V2X通信模块
  • 模块化: OpenCDA是高度模块化的,使用户可以方便地用他们自己的定制设计替换任何默认的算法或协议
  • 基准测试: OpenCDA为所有模块提供基准测试测试场景、最先进的基准测试算法、基准测试测试路线图和基准测试评估指标。
  • 连接与合作: OpenCDA在模拟中支持cav之间不同层次和类别的合作。这使得OpenCDA区别于其他单车仿真工具。

本文的组织结构如下。第二节将回顾现有的旨在支持合作驾驶自动化和不同的合作驾驶应用的框架。在第三节中,我们将描述OpenCDA的总体体系结构,并揭示每个主要组件的细节。在第四节中,我们将展示一个具体的例子,说明在我们的框架下是如何在我们的框架下实现的。之后,将介绍一个平台化场景测试的案例研究。第五节将展示使用我们的默认引导算法的实验结果,并将其与定制算法进行比较,以证明我们的框架的有效性

2 相关工作

在过去的几十年里,出现了各种CDA的应用,并对ITS产生了重大影响。其中一个具有代表性的应用是合作自适应巡航控制(CACC),它已被广泛研究,如[10],[11]。cav可以通过利用CACC形成具有短跟随间隙的稳定字符串,提高了在吞吐量和延迟[12]方面的稳定性、安全性、舒适性和交通性能。对于高速公路交通,合作合并一直是一个热门话题,因为它允许干线车辆和合并车辆之间的速度协调,为安全合并[13]创造合格的差距。速度协调能够在严重拥堵的地区逐渐降低上游交通速度,从而减少走走停停的交通,防止拥堵的形成,[14],[15],[16],[17]。此外,还有一些CDA应用,包括车辆轨迹控制[18]、交通信号控制[19]、交通信号和车辆轨迹[20]的联合控制。

虽然在这一领域已经进行了广泛的研究,但针对CDA的开源仿真平台却很少。Segata等人[21]提出扩展Veins [22],以提供基本的平台化能力。最近,SUMO [7]为基本的排编队集成了Simpla包。Wu等人,[23]也提出了一个平台集成了交通仿真和强化学习控制器。然而,这些平台只停留在流量分析的水平上,并且不能支持CDA的全堆栈软件开发和测试,包括感知、规划、决策、控制和通信。

FHWA CARMA项目[3]已经开发了用于车辆和基础设施的软件平台,以及用于全面车辆软件模拟和测试的工具。在与CARMA项目的合作中,OpenCDA作为一个开源项目,从早期开发和仿真测试的角度做出了独特的贡献,使用户能够方便地对其定制的算法进行特定任务的评估(如目标检测精度)和管道级评估(如交通安全)

3 OpenCDA综述

OpenCDA是一个集成了协同仿真的智能和动态协同驱动的广义框架。它支持自动化车辆之间的各种合作,并提供基准测试场景数据库和CDA算法。如图1所示,OpenCDA由三个主要组件组成——仿真工具、用Python构建的协同驱动自动化系统和场景管理器。

A. 模拟工具

CARLA [6]被选为OpenCDA中的自动驾驶仿真的仿真工具之一。卡拉是一个免费的、开源的自动驾驶模拟器,旨在加速新的自动驾驶技术的发展。它利用虚幻引擎[24]来产生高质量的场景渲染,真实的物理,和基本的传感器建模。CARLA平台定义了一个通用的模拟API,用户和开发人员可以控制模拟的所有元素,从传感器放置到原型化和测试感知、规划和控制算法。卡拉的一个关键特性是它的可伸缩架构,遵循服务器-多客户端方法,允许将计算分布到多个节点中。服务器将不断更新环境的物理特性,而客户端将由用户通过CARLA API进行控制。我们的协同驾驶系统嵌入了CARLA API,以执行协同动态驾驶任务,并评估个人自主水平下的车辆性能。

然而,卡拉缺乏大量交通的可管理性,也不能代表真实的交通行为,因此不适合为CDA测试[25]创建一个复杂的交通环境。此外,CDA在改善整体交通系统性能方面的潜力也值得关注。因此,SUMO [7],一个开源的交通/驾驶员行为模拟器,由于其处理大规模和现实的交通流的能力。SUMO为每辆车都有动态建模,并允许用户通过TraCI(交通控制接口)API快速构建定制的交通场景。

既然尽管卡拉提供了一个流量管理器模块来生成后台流量,但它们是基于简单的行为规则,这不能代表真实的驾驶员行为。

此外,SUMO可以使用不同的被广泛接受的驾驶员模型(如智能驾驶员模型[26])来生成流量,并且使用SUMO获取自然轨迹数据(如NGSIM [27]),并将其直接作为CDA测试的周围环境更加方便。由于CARLA开发了与SUMO的共同模拟特性,我们为研究人员提供了仅使用CARLA、SUMO或一起使用它们的算法和协议的选项。当协同模拟被激活时,SUMO将控制交通,并将背景人驱动车辆转换为卡拉服务器,卡拉控制的cav将与交通做出反应,完成驾驶任务。通过将任务分配给CARLA和SUMO,对所设计的算法或协议的评估可以在个人级别和流量级别上进行处理。

请注意,我们不建议在所有测试任务中使用OpenCDA中的完整协同模拟。用户需要了解评估需求(如车辆或交通行为),然后选择相应的工具。例如,如果只了解交通性能,就没有必要进行全自动驾驶模拟,并调查详细水平的问题,如传感器输出和融合如何影响交通性能,因为它们不在相同的分析水平。交通表现主要直接来自于司机/车辆的行为(作为内部机制或算法的结果)。为此,在OpenCDA中,我们的基准算法,在下一节中讨论,实现在SUMO和卡拉(以一致的方式,但有一些差异由于两个模拟器之间的根本差异控制车辆),所以在任何级别的分析是可能的和一致的。

OpenCDA框架还可以通过其他工具灵活地增强,如ns-3或其他用于无线通信的定制模型。然而,我们并不认为不同工具的集成是非常复杂的,原因很简单,没有模型可以完全复制真实世界,模型应该只为了满足特定目的的测试需求。例如,当评估某一级别的通信包是否会影响流量稳定性时,在模拟循环中使用完整的ns-3工具不仅会显著降低模拟速度,而且与只使用简单的蒙特卡罗模拟[28]相比,没有很多好处。

B 合作驾驶系统

OpenCDA通过简单的API将协同驾驶系统与CARLA和SUMO封装起来,以操作协同驾驶任务。安装在卡拉的cav上的传感器将从模拟环境中收集原始的传感信息,并进入系统的传感层。然后由感知模块对接收到的信息进行处理,以感知操作环境,利用计划层传递一系列动作,最后生成通过执行层执行控制命令。驱动将被发送回卡拉演员,以在每个模拟时间步长执行运动。值得注意的是,当不需要合作时,这种架构也适用于单车智能开发。这意味着OpenCDA工具可以模拟人工驱动、连通性和自动化的混合流量。

自动车辆之间的合作在应用层被激活。在这一层中,每个CAV将通过V2X堆栈交换状态信息(如车辆位置、信号相位和定时)、意图信息(如感知感知环境、计划车辆轨迹),并寻求计划协议(如组成一个排)。基于不同的协议,将会有相应的协议,它们可能会修改图层的默认设置。例如,当协同感知应用启动时,每个CAV不仅利用自己的原始感知信息来定位动态目标,还检索和融合他人的感知信息,以实现多模态的协同目标检测。

OpenCDA框架的一个关键特性是模块化。上面提到的所有层都带有默认的算法或协议,用户可以通过定制来替换默认的层,而不需要通过应用一行代码来影响其他部分。我们认为这是一个理想的特性,因为研究人员可以利用默认的模块和算法来评估整个CDA系统的最终性能,而且不同的另一组的研究人员也可以在同一框架下比较算法。此外,OpenCDA应用程序中的默认算法,如协作平台化和合并,也是最先进的算法,可以作为基准算法。研究人员可以将他们的算法与OpenCDA基准测试进行比较,以证明新算法的能力和增强能力。

C. 场景管理器

OpenCDA中的场景管理器包含四个部分:场景配置文件、场景初始化器、特殊事件触发器和评估函数。

场景是描述世界的观点如何随时间变化。在合作驾驶的背景下,它包含了世界上的静态元素(例如,道路拓扑结构、周围的建筑物、路面上的静态对象)和动态元素的信息,如交通流、交通信号状态和天气的信息。在OpenCDA中,场景的静态元素由卡拉映射库中的默认映射或由xdor [29]和fbx [30]文件构建的自定义映射来定义。动态元素由一个yaml [31]文件控制。在yaml文件中,用户可以定义由SUMO生成的每个车道的交通流量,包括交通量和欲望速度。如果也引入了卡拉产生的背景交通,那么还需要记录这些车辆的数量和生成位置以及卡拉交通经理的设置。如前所述,我们的框架附带了一个现有的场景数据库存储预定义的场景测试,但欢迎用户将他们的定制测试贡献给数据库。

创建yaml文件后,配置加载器将把该文件加载到Python字典中。该字典将指导仿真环境的构建,并确定目标cav的主要驾驶任务。由cav的起始位置和目的地以及要到达的中间位置组成的驾驶任务。

当cav在执行驱动任务时,可能会触发特殊事件。这类事件的一个很好的例子是,人类驾驶的车辆在一个排的前面突然减速或停车。这些特殊事件通常由特定的时间步长或cav的位置触发,以测试合作驾驶系统在角落情况下的性能。

当CAV到达目的地时,一个驾驶任务已完成。然后用卡拉和交通水平在个人水平上评估整个驾驶周期的表现。

D. 软件类设计与逻辑流程

为了更好地演示OpenCDA的三个主要组件的交互是如何实现的,在本节中,我们将使用一个CDA应用程序——车辆平台来描述主要软件类组件以及这些组件之间模拟信息传输的过程。

如图2所示,我们应用分层地类管理来巧妙地控制仿真。最基本的类被称为车辆管理器,它包含了针对单个CAV的全堆栈CDA和自动驾驶系统(ADS)基准测试软件。类成员PerceptionManager和LocalizationManager负责感知周围的环境和定位 ego vehicle。BehaviorAgent(行为代理)计划单个CAV的驾驶行为(如汽车跟踪、超车、变道行为),行为代理中的局部规划器属性将使用三次样条插值和基本车辆运动学生成轨迹
在这里插入图片描述
其中xt、yt是车辆在时间步t、α0、α1、α2的计划x和y坐标是三次多项式的系数,是时间步t的期望加速度,a1、a2是与舒适相关的加速和减速,∆t是时间分辨率,即模拟步骤、v目标、vt是时间步t的最终目标速度和期望速度。这个产生的轨迹将被交付给**ControlManager(控制管理器)**生成油门、制动器和转向控制命令。V2XManager将发送和接收由上述组件生成的数据包(目前被视为无损传输)发送给其他协同驱动应用程序。

图3显示了运行时仿真的逻辑流程。要运行场景测试,用户需要根据OpenCDA提供的模板创建一个yaml文件,以配置卡拉服务器的设置(例如,同步模式与异步模式)、交通流的规范(例如,人类驾驶车辆的数量、生成位置),以及每个连接的自动车辆的参数(例如,传感器参数、检测模型选择、目标速度)。随后,ScenarionManager场景管理器将加载配置文件,检索必要的参数,并将它们传递到卡拉服务器,以解决模拟环境,生成交通流量,并为每个CAV创建车辆管理器。

在服务器更新场景管理器提供的信息后,安装在每个CAV上的传感器将收集周围的环境以及自我的车辆信息(例如,3D激光雷达点,GNSS数据),并通过V2X管理器(V2XManager)共享这些信息。如果上游合作应用程序被激活,合作感知管理器(CoopPerceptionManager)和合作定位管理器(CoopLocalizationManager)将被用来融合从其他cav获得的所有上下文,用于目标检测和定位。否则,车辆将切换到默认的感知管理器和本地化管理器,它们不使用共享的数据。处理后的感知信息(即物体三维姿态、自我位置)被传递到下游模块进行规划。同样,如果相应的应用程序被激活,CAV将选择合作策略来做出决定;否则,原始行为代理( BehaviorAgent)和轨迹规划器(TrajecotryPlanner)将计划行为并生成一个平滑的轨迹,并将其传递给控制管理器ControlManager以输出最终的控制命令。卡拉服务器将在相应的车辆上应用这些命令,执行单个模拟步骤,并将更新后的信息返回给车辆管理器VehicleManager为下一轮的模拟。

很明显,逻辑流的设计提高了OpenCDA的灵活性和模块化,因为用户可以仅仅通过修改激活指标来选择协作级别**。当仿真结束时,嵌入式评估工具箱将评估驾驶性能**。我们为各种模块提供默认的性能测量,包括感知(例如,3D边界盒检测的平均平均精度)、定位(例如,估计的和真实的自我位置之间的误差)、规划(例如,计划轨迹的平滑度)、控制(例如,跟踪误差)和安全性(例如,危险频率)。如果用户要求任何超出默认范围的评估度量,他们可以按照预定义的模板构建自定义度量,这是OpenCDA的另一个关键优势。

4 实验设置和评价测量

为了证明OpenCDA的有效性,在本节中,我们将继续使用一个车辆平台布局的例子。我们的平台基准包括四个部分——基于规则的平台协议和算法一个定制的地图,其中有一个长长的高速公路基本段和合并段,如图5所示,几个设计的测试场景和评估指标。请注意,我们使用这种定制的地图,因为它留出足够的距离,使车辆达到高目标速度,并执行各种合作机动。对于所有的实验,我们将模拟时间步长设置为0.05秒,这意味着CARLA服务器和SUMO的更新频率为20Hz。

A. 平台协议设计

如图2所示,在平台化应用程序中,同一排中的所有cav都将由平台管理器通过一个预定义的协议进行管理。图4显示了OpenCDA中的默认平台化协议。总的来说,一个排的驾驶任务可以分为不同的类型子任务和排成员根据当前的排排化状态有不同的驾驶模式。

当平台化应用程序被激活时,现有排的主要车辆将通过V2XManger继续监听来自cav的加入请求。如果没有收到这样的请求,整个排将保持稳步前进,而领先车辆将保持领先驾驶模式,在此模式下,车辆与排外的cav有相似的行为模式,但禁止超车。同时,如果协同感知应用也被激活,每个排成员还将共享从感知管理器检索到的原始感知信息(例如,相机RGB图像、三维激光雷达点)和处理后的感知信息(例如,检测到的物体、校准的车辆位置),以获得更好的感知。

当没有加入请求时,排中的以下车辆将进入维护模式,在该模式中,驾驶任务被定义为平稳地调整速度,以保持一个恒定的车间时间间隔。为了完成这些任务,成员需要从V2XManger那里接收一些前面车辆的轨迹(例如,领导者,直接的前身),以协助局部规划器创建轨迹,如下所示。
在这里插入图片描述
其中posj、posj−1是车辆j及其前进车辆j−1的位置,Lj−1是车辆j−1的长度,∆t是时间分辨率,即模拟步骤,间隙是期望的车间时间间隔,vj t是车辆在时间步骤t的期望速度。在本例中,平台化算法只考虑了直接的前一辆车的计划轨迹。

如果排收到一个加入请求,主要车辆将与请求的CAV交换目的地、当前位置和计划的路线,以决定是否可以操作一个可行的加入。如果请求被拒绝,单个CAV将继续搜索并保持在单车驾驶员模式。否则,平台经理将根据内部和周围的信息选择合并车辆加入的最佳会议位置,如果需要,某些排成员将调整他们的速度,以打开加入的缺口。然后合并车辆可以移动到交汇点,完成连接动作。

B 平台化场景测试设计

图5显示了使用OpenCDA中包含的基本高速公路合并段的定制基准地图进行的平台协同仿真测试的一个片段。这张地图是由一个2800米的双车道高速公路的主流交通和一个单车道入口匝道,允许合并的车辆进入高速公路。在本节中,我们将在这个基准测试图中展示来自我们的数据库的两种不同的平台化测试场景。请注意,所有的测试都是在感知和定位算法中操作的。我们应用yolov5 [32]进行目标检测,并利用类似于[33],[34]的GNSS/IMU融合算法进行定位。

1)单车道布局:如图6(a)所示,在这种情况下,有一个五辆车的排继续在同一车道上行驶。目的是测试排的稳定性,这是由放大振荡的程度,当急剧变化时,领先车辆的速度。为了达到这样的目的,排长将跟随一个给定速度剖面,以经常加速和减速,以确定以下成员是否能够保持所需的车间时间间隔和抑制速度振荡。OpenCDA提供了前部车辆轨迹的基准测试场景,例如,两种具有不同速度轮廓的测试周期。用户还可以通过使用示例格式,将他们自己的场景用于特定的目的。

  • 在第一个周期中,排长将遵循一个合成的速度轨迹。它以25 m/s驱动20秒,然后加速,直到达到30 m/s的目标速度。排长将保持这个速度20秒,然后减速至初始速度25 m/s,并保持这个速度20秒。由于我们的目标是严格评估平台化协议,因此没有产生任何交通流量。此外,加速或减速的侵略性和速度保持持续时间可以很容易地修改到不同的级别,这里我们只展示一个实例。
  • 在第二个周期中,我们在排的前面放置了一辆人驾驶的车辆。该人类驾驶的车辆将遵循从NGSIM数据中提取的代表性速度轮廓,该数据从真实世界的实验中收集到,如图7所示。领队要求有一辆像样的车的跟随行为,而排需要保持稳定,而人类驾驶的车辆从根本上调整速度。这样,汽车跟踪排长和排长跟随者的行为都将被验证。

2)合作排从其他车道加入:如图6(b)所示,干线有高速交通流,由SUMO管理的载人车辆和卡拉控制的汽车混合。当单个CAV靠近合并区时,它将与主线排通信,并提出加入请求。一旦他们达成协议,单一的CAV必须完成合并,并在加速车道结束之前同时加入该排。领导将决定最佳的合并位置,并指挥某些排的成员,为新成员创造一个缺口。

为了证明OpenCDA的高模块化和可扩展性,我们进一步比较了两种不同的最佳合并位置的选择算法第一种方法是基于启发学的。单个CAV将选择排中欧氏距离最短的车辆作为合并的正面车辆。第二种方法是遗传模糊系统[35],它利用模糊逻辑来确定最佳合并位置。与基于启发式的方法不同,它还考虑了排成员的速度和周围的人驾驶车辆的信息。

C. 评估测量

由于适当的性能度量在测试中至关重要,因此我们还在场景基准测试中提供了默认的评估度量。对于平台化应用,我们从安全性、稳定性和效率来评估性能。

1)安全:安全始终是任何自动驾驶系统中最关键的因素。在布局中,不仅主要车辆需要避免与周围人为车辆碰撞,还需要以下成员之间保持安全距离。安全要素可以从两个角度进行测量:

  • 碰撞时间:碰撞时间(TTC)是指两辆车在当前速度下、在同一路径上继续行驶时相撞所需的时间。在这里,我们可以提取出在整个模拟过程中每个车辆的TTC性能系列。也可以通过所有模拟时间步长中估计每个排成员的平均T T C,以通过以下公式来表示总体安全性:
    在这里插入图片描述
    xt我是车辆的位置在时间步t,x t−1是前面的位置我在时间步t,l是车辆的长度,vi t,vi t−1是车辆的速度i和−1时间步t和N是模拟时间步满足条件vi t < vi t−1。
  • 危险频率:TTC<TTCt的事件数,其中T T Ct是时间碰撞的区分安全和不安全事件的警告阈值。在这个实验中,我们设置为2.5秒,这是[36]建议的。

2)稳定性:一个排的稳定性表明振荡是否从下游到上游的车辆[37]被放大。由于它与安全和能源消耗直接相关,提出相应的适当的评价措施至关重要。在OpenCDA中,使用了以下三个度量,用户可以使用OpenCDA提供的数据轻松地定义高级度量。

  • 车辆间时间间隔:排成员与其行驶车辆之间的时间间隔。收集并绘制每个模拟步骤的时间间隔,并计算其在整个事件中的平均值和标准差。
  • 加速度:计算加速度的时间序列数据和数据的统计量(如平均值、标准差),以反映排成员的驾驶平滑度。

3)效率:效率是指排加入所需的时间和加入过程的顺利性。可评估如下:

  • 完成机动的时间:从批准的加入请求开始到加入结束的时间。
  • 加速度:连接过程中加速度的标准偏差。
  • 流量延迟和吞吐量如果使用SUMO和关注流量性能,则在指定的仿真期间计算总体延迟和整个流量。

5 结果分析

在本节中,我们将给出并讨论我们的基准平台化算法的结果。
A.单车道平台
表一(a)显示了周期1中平台化的平均性能。正如我们所看到的,尽管有剧烈的速度波动,排成员仍然可以保持所需的0.6秒时间间隔与微小的偏差。同样,如表一(b)所示,领先的车辆能够安全、平稳地跟踪人类驾驶的车辆。而整个排都可以实现良好的安全和稳定。

图8进一步描述了在每个仿真时间步长下的驾驶性能。对于第一个周期,如图8(a)所示,排追随者在整个过程中能够保持设计的时间间隔0.6s,即使领先的车辆显著提高减速。当排长突然开始加速时,排的成员能够紧紧地跟随它,而没有任何超速射击。当排长快速踩刹车时,跟随者可以以舒适的速度平稳减速,并保持不变的时间间隔,这表明了滑行的稳定性。在真实轨迹测试中,如图4(b)所示,尽管人驾驶车辆的速度频繁变化,但排长能够安全跟踪,它们之间的时间间隔约为1.5s。同时,即使前人车辆快速加速或减速,排成员仍能保持0.6s的恒定时间间隔。

这些基准算法的结果表明,该框架中协同驱动系统的整个模块管道是完整的,可以在仿真环境下的协同驱动任务

B.合作合并和加入排

图8 ©和8 (d)显示了在使用两种不同的合并位置决策算法进行场景测试时,每个排成员的速度、加速度、车间时间间隔和距离间隔的轮廓。首先,这两种算法的结果是明显的。基于启发式的方法选择第三排成员作为加入的直接前进的车辆,而GFS选择领先的车辆。其次,当合并CAV使用基于启发式的方法操作插入连接时,它与后构件之间的时间间隔下降到0.2秒以下,这是潜在的危险。相比之下,GFS允许合并车辆在整个连接过程中将时间间隔保持在0.6秒以上,这使得合并过程更加安全。最后,正如TableI (e)所描述的那样,GFS的效率更高,结束连接操作需要9.9秒,而基于启发式的方法需要13.1秒。

综上所述,GFS方法优于基于启发式的方法。更重要的是,我们的框架允许在一行代码中进行高效和直接的方法替换,同时维护系统的功能和其他现有模块的准确性。这个例子完美地证明了OpenCDA在验证任何自定义CDA算法方面的有效性

6 结论

在本文中,我们介绍了OpenCDA,一个用于研究和开发合作驾驶自动化(CDA)的通用框架和工具。OpenCDA解决了社区中的差距,也是它的第一个——一个易于使用的快速原型工具,有一个完整的CDA软件平台,包括感知、通信、计划和控制,使研究人员能够评估和比较新的CDA算法和功能与基准。通过介绍OpenCDA架构、仿真流程、测试场景和流程以及软件设计,我们详细讨论了OpenCDA的六个关键特性——连接性、集成、全堆栈系统、模块化和基准测试。通过利用平台化应用程序的一个实际示例,我们证明了OpenCDA中的模块化管道可以正常地用于CDA应用程序,并且整个框架对于任何定制都足够灵活。最后,但并非最不重要的是,OpenCDA是一个不断发展的项目,我们希望我们在加州大学洛杉矶分校移动实验室的团队和社区的感兴趣人员可以不断为项目提供额外的CDA应用程序,测试场,对现有CDA平台的增强,并与其他工具集成到必要的测试目的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星辰和大海都需要门票

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值