其他分享
首页 > 其他分享> > OpenCDA学习

OpenCDA学习

作者:互联网

开发目的

现有的仿真环境能够实现场景渲染与交通管理,主要关注单车智能。对于自动车辆合作驾驶(CDA)的仿真比较难实现。现有的以全栈自动驾驶软件开发为特征的仿真平台对CDA能力的支持有限。

OpenCDA概述

OpenCDA由三个主要组件组成:(1)仿真工具;(2)基于Python构建的协同自动驾驶系统和(3)场景管理器。

仿真工具

  1. CALA被选为OpenCDA中的自动驾驶仿真工具之一
    Carla利用UE4引擎生成高质量的场景渲染、逼真的物理效果和基本的传感器建模。CALA的特点:

但是carla缺乏对大量交通流量的管理性,不能代表真实的交通流量行为,因此引入SUMO。

  1. SUMO 交通仿真器
    SUMO可以使用不同的被广泛接受的驾驶员模型(例如,智能驾驶员模型Intelligent Driver Model)来生成交通流。并且,使用SUMO来获取自然轨迹数据(例如,NGSIM[27]),可以方便的将其作为CDA测试的周围环境。

协同驾驶系统

OpenCDA通过简单的API封装了CALA和SUMO的协同驾驶系统,操作协同驾驶任务。安装在CALA的CAV上的传感器将从模拟环境中收集原始传感信息,并进入系统的感知层。然后,感知模块对接收到的信息进行处理,以感知操作环境,利用规划层传递一系列动作,最后通过执行层产生控制命令。控制指令将被发送回Carla agent,以在每个模拟时间步长执行运动。

注意:这种架构也适用于不需要合作的单车智能开发。这意味着OpenCDA可以模拟由human-driven,connectivity以及automation组成的混合交通流。

自动化车辆之间的协作在应用层被激活。在这一层中,每个CAV将通过V2X堆栈交换状态信息(例如,车辆位置、信号相位和定时)、意图信息(例如,感知到的上下文信息、规划好的车辆轨迹),并寻求就计划达成一致(例如,形成一个platoon)。根据不同的agreements,将会有相应的协议,这些协议可能会修改各层的默认设置。例如,当协作感知应用程序启动时,每个CAV不仅利用自己的原始感知信息来定位动态对象,而且还检索和融合他人的感知信息,以实现多模态、协作的目标检测。

OpenCDA框架的一个关键特性是模块化。

场景管理器

OpenCDA中的场景管理器包含四个部分:场景配置文件、场景初始化器、特殊事件触发器和评估函数。
场景是对世界环境如何随时间变化的描述。在协同驾驶的背景下,它包含世界的静态元素信息(例如,道路拓扑、周围建筑物、路面上的静态对象),以及诸如交通流量、交通信号状态和天气的动态元素的信息。在OpenCDA中,

OpenCDA框架附带了一个现有的场景数据库,该数据库存储了预定义的场景测试,但欢迎用户将他们的自定义测试贡献到该数据库中。

软件类设计和逻辑流程

OpenCDA三个主要组件之间交互的演示:使用**示例应用程序-车辆队列化控制-**来描述主要的软件类组件以及这些组件之间的仿真信息传输过程。
platooning的简化类图
如上图所示,最基础的类是VehicleManager,它包含适用于单个CAV的全栈CDA和自动驾驶系统(ADS)benchmark软件。类成员PerceptionManager和LocalizationManager负责感知周围环境并定位自车。BehaviorAgent为单个CAV规划驾驶行为(例如,跟车,超车,变道等)。BehaviorAgent中的属性LocalPlanner将使用三次样条线插值和基本车辆运动学生成轨迹:
在这里插入图片描述
规划好的轨迹传递给ControlManager以生成油门开度、刹车和转向控制命令。V2X管理器将上述组件生成的数据包(当前被视为无损传输)发送和接收到其他CAV,以用于协作驾驶应用。

上图显示了运行时模拟的逻辑流程。为了运行场景测试,用户需要基于OpenCDA提供的模板来创建YAML文件,以配置CALA服务器的设置(例如,同步模式与异步模式)、交通流的规格(例如,人类驾驶车辆的数量、生成位置)以及每个连接的自动车辆的参数(例如,传感器参数、检测模型选择、目标速度)。然后,场景管理器将加载配置文件,检索必要的参数,并将它们传送到CALA服务器,以确定模拟环境,生成交通流,并为每个CAV创建VehicleManager。
在这里插入图片描述

标签:仿真,场景,OpenCDA,CAV,驾驶,学习,感知
来源: https://blog.csdn.net/hyy656/article/details/120693619