ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCDA学习

2021-10-10 23:00:25  阅读:277  来源: 互联网

标签:仿真 场景 OpenCDA CAV 驾驶 学习 感知


开发目的

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

OpenCDA概述

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

仿真工具

  1. CALA被选为OpenCDA中的自动驾驶仿真工具之一
    Carla利用UE4引擎生成高质量的场景渲染、逼真的物理效果和基本的传感器建模。CALA的特点:
  • 定义了一个通用的仿真API,开发人员可以控制仿真的所有元素,从传感器放置到原型制作,以及测试感知、规划和控制算法;
  • 可伸缩的体系结构,遵循服务器-多客户端方法。服务器端不断更新环境的物理信息,客户端将由用户通过Carla API进行控制。

但是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中,

  • 场景的静态元素由Carla地图库中的默认地图或由xdor]和fbx文件构建的自定义地图定义。
  • 动态元素由YAML文件控制。在YAML文件中,用户可以定义SUMO产生的每个车道的交通流量,包括交通量和期望速度。如果还引入了Carla产生的后台交通,则还需要记录这些车辆的数量和派生位置以及Carla交通管理员的设置。

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有