DYNA4集成SUMO在CANoe中实现V2X三维场景

描述

DYNA4为车辆闭环系统测试提供功能丰富、可扩展的开发环境。通过集成交通流仿真软件SUMO,DYNA4不仅能模拟车辆确定的驾驶状态,也可以模拟随机交通流。DYNA4还能为CANoe.Car2x提供数据接口用于填充V2X报文,通过驱动V2X通信网络模拟器即能搭建起V2X的仿真环境,实现更接近真实交通环境的三维场景。

V2X是智能网联汽车中的重要技术

V2X车路协同技术提高交通安全与效率

V2X(Vehicle-to-Everything)是指车辆与所有周围的或交互的道路使用者和基础设施的通信以及交换信息。通过V2X车联网构建的交通系统,不仅能够提高行驶效率、能源利用效率、驾驶安全与舒适性,也能给当前由雷达、激光雷达和摄像头构成的自动驾驶感知系统提供额外的交通数据,以帮助解决在高速、交通复杂的自动驾驶路况中遇到的挑战。依据不同的通信对象,V2X可以分为如下的几种应用类型:

V2V:Vehicle-to-Vehicle

V2I:Vehicle-to-Infrastructure

V2N:Vehicle-to-Network

V2P:Vehicle-to-Pedestrian

V2H:Vehicle-to-Home

最初的V2X使用IEEE 802.11p无线传输技术,近期出现的C-V2X(Cellular V2X)基于LTE/4G或5G移动通信(PC5 Link),在V2N的情景中车辆通过LTE/4G或5G移动通信与后端/云端通信。不同的国家或地区可能使用不同的通信技术,即从物理层、数据链路层,到传输层、网络层,再到应用层都应用或制定不同的通信规范。目前国内无线通信使用3GPP C-V2X PC5技术,网络传输基于DSMP和GB/T 31024.3规范,具体的应用场景由CSAE 53和CSAE 157规范说明。

CANoe.Car2x支持基于V2X的通信应用的仿真、开发和测试

CANoe.Car2x支持无线标准WLAN IEEE 802.11p和3GPP C-V2X PC5,支持中国和欧美地区的协议和应用消息,还支持所有地区(中国、欧盟和美国)的安全机制,包括创建、导入和管理PKI及其证书和私钥。

CANoe.Car2x提供数据库工具来管理基于ASN.1的应用消息,用户也可以在此基础上补充其他的应用消息。Map Window和Protocol Analyzer窗口能够高效分析通信报文内容。使用相关的CAPL函数能对所有数据元素单独配置,保证了仿真工程的灵活性。使用Scenario Editor可以简单高效地编辑基于虚拟道路的测试环境。通过DYNA4可以拓展测试环境,使仿真场景更接近真实环境,并实现闭环运行。

V2X

图1:CANoe.Car2x提供的分析工具

SUMO是开源的交通系统仿真软件

SUMO实现微观和连续的交通流模拟

SUMO(Simulation of Urban Mobility)是一个开源的、可移植的用于模拟交通流的软件包。SUMO模拟的微观交通流在时间上是离散的,在空间上是连续的,并且能够处理大型的交通网络和不同的交通对象。SUMO主要由德国航空航天中心运输系统研究所的员工开发。

在SUMO中可以使用XML文件描述交通网络或车辆运动,也可以通过GUI软件编辑,即netedit.exe和sumo-gui.exe。在SUMO里可以描述每一个车辆移动的起始位置和结束位置,通过SUMO内部的Car-Following Models和Lane-Changing Model来计算车辆在道路网络中的车速。SUMO中还可以直接描述一个交通群体的运动,交通群体支持以不同的方式定义,通过内部的路由算法计算每个车辆在交通网络中的路线。通过Traffic Control Interface(TraCl)允许访问正在运行的道路交通仿真数据,也可“在线”修改某个交通对象的行为,通过TraCI接口也可以实现联合仿真。SUMO提供丰富的工具,如导入不同类型的地图文件,大大提高了开发效率和适用性。

SUMO可为V2X提供交通流模拟

SUMO提供了V2X仿真测试所需要的地图功能和交通行为模拟功能,如果能与通信网络模拟器结合,就能构建一个V2X仿真环境。

V2X

图2:SUMO GUI交通流模拟工程示例

DYNA4集成SUMO实现V2X场景仿真

DYNA4支持车辆闭环系统测试中的功能开发

DYNA4为汽车虚拟驾驶测试提供一个开放的仿真环境。DYNA4中的虚拟车辆具有高保真的车辆动力学模型、动力总成模型、内燃机模型和电动机模型,可以实现车辆控制功能与策略的无缝集成。DYNA4内的驾驶场景仿真是3D可视化的,并提供摄像头、激光雷达、雷达或超声波传感器的感知级别的传感器信号模型,支持OpenDRIVE道路网络和OpenSCENARIO场景描述,提供可扩展的交通对象库,包括标志、车辆、骑自行车的人、行人、动物等,支持交通流仿真。

DYNA4具有高包容性的外部接口,除了与Simulink模型、C代码和CANoe的无缝集成外,还支持FMU和ROS等标准接口,并且可以将导出的DYNA4 Run仿真包集成到其他工具环境(Windows或Linux)中,使其无需MATLAB/Simulink即可执行。DYNA4支持参数可变的自动化测试,支持从MIL、SIL到HIL的开发测试流程,并能够实现大规模仿真的CI/CT持续集成测试。

DYNA4支持V2X场景编辑

在DYNA4中可以定义比CANoe的Scenario Editor更加真实的3D场景仿真。DYNA4中的交通道路有清晰的车道线划分,模拟车辆有更真实的加速、减速、变道等驾驶行为,这对交通环境描述较为复杂的第二阶段的CSAE157规范中的场景更有意义,如动态车道管理(DLM)和协作式车辆编队管理(CPM)。DYNA4中支持编辑或导入OpenDRIVE地图文件,并能设置场景里的交通信号灯状态。场景中的HV(Host Vehicle)即是DYNA4中的VuT(Vehicle und Test),可以在Vehicle Control模型中编辑;而其他不同的交通参与者可以在Traffic Objects模块中编辑,如紧急制动预警(EBW)场景中的RV(Remote Vehicle),弱势交通参与者碰撞预警(VRUCW)中的行人,车内标牌(IVS)场景中的交通标牌。

DYNA4集成SUMO交通流仿真

在安装DYNA4时,选中“Experimental features”下的“SUMO support”选项,即可自动安装SUMO软件包、Sumo Connect模块和相关Demo工程。Sumo Connect模块负责将DYNA4与SUMO集成,并可配置是否通过SUMO GUI运行仿真。集成的SUMO功能可用于为DYNA4创建复杂的交通场景,特别是在创建交通密集型场景时,如果不需要对交通对象进行精确的行为描述,建议使用SUMO进行仿真,而明确描述交通对象的行为则应使用DYNA4。在V2X应用中,SUMO可用于生成真实或专门设计的道路文件,并将道路上的交通组定义为背景车辆,从而生成更接近真实环境的V2X仿真场景。

DYNA4导出到CANoe中集成V2X通信网络模拟器

DYNA4里的工程可以导出对应的CANoe工程,DYNA4工程可以作为不依赖于开发环境的、独立的代码包嵌入CANoe中运行,此外也可使用DYNA4与CANoe联合调试运行模式。仿真工程中的交通对象的状态可以方便地导入CANoe当中,如位置、速度、加速度等数据,使用CANoe.Car2x搭建的通信网络仿真工程可以通过系统变量方便地使用这些数据,结合V2X通信网络模拟器即可搭建出整个V2X HIL仿真环境。

V2X

图3:基于DYNA4、SUMO和CANoe的V2X仿真工程环境

使用DYNA4、SUMO和CANoe搭建V2X仿真工程的方法

1.配置SUMO的环境变量

在安装DYNA4时,选中相应选项即可自动安装SUMO,但需要注意安装路径中不能有空格。此外,用户还需要在操作系统中添加与SUMO相关的环境变量,即把SUMO_HOME设置为DYNA4安装目录下的.3rdPartySUMOsumo_bin路径,将SUMO_BIN_DIR设置为DYNA4安装目录下的.3rdPartySUMOsumo_binin路径。

2.在SUMO里绘制地图

在SUMO里手动绘制地图文件有两种方式,一种是直接编写地图的XML脚本文件,另一种是通过GUI界面绘图编辑。直接创建地图文件需要先依次编写node file、edge file、edge type file,再通过在命令行环境里调用netconvert工具生成network file。

V2X

V2X

图4:SUMO里的.net.xml地图文件和GUI编辑界面

SUMO也支持多种地图文件格式转换,如可以导入OpenStreetMap格式的地图文件。通过运行SUMO软件包里tools目录下的Python脚本osmWebWizard.py可以打开网络浏览器,然后在网页地图上选择一个地理区域,再配置好交通需求后,点击“Generate”按钮即可根据所选区域对应的OSM数据生成地图网络、随机需求和配置文件,并启动sumo-gui。自动生成的地图文件所包含的交通环境信息往往多于模拟所需的信息,因此可以通过图形用户界面或直接编辑XML文件对其进行修改。

V2X

V2X

图5:在netedit和sumo-gui窗口显示osmWebWizard生成的SUMO文件

3.将地图导出为OpenDRIVE格式

前面提到的netconvert工具也可用于转换不同的地图文件格式,方法是通过命令行调用该工具,将SUMO网络.net.xml文件作为输入,将OpenDRIVE格式.xodr文件作为输出。

V2X

图6:导出OpenDRIVE格式地图文件的命令

4.编写route file和sumo configuration file

由于SUMO主要用于描述背景车辆的交通行为,因此可以描述一段路径上的整体车辆运动情况,可以使用flow来描述该段路径上的重复车辆运动情况,而不是单独描述每辆车的运动情况。DYNA4中的Demo工程里提供一个.rou.xml文件,描述DYNA4 数据库中所有的Traffic Objects,并将其归类为几种不同的type distributions,因此可以将目标路段上的flow设置为这些type distributions中的一种。

V2X

图7:route_file.route.xml文件

再将准备好的network file和route file添加到sumo configuration file里,并加入与仿真控制相关的参数设置。

V2X

图8:sumo_configuration_file.sumocfg文件

在sumo-gui中运行该.sumocfg文件,可以看到随机生成的车流在道路上行驶。

V2X

图9:sumo-gui运行工程结果

5.在DYNA4中导入OpenDRIVE地图文件

在DYNA4的环境模型里设置“Road type”为“OpenDRIVE road”,在“OpenDRIVE”模块里导入.xodr格式的地图文件,并设置好“Route waypoints”作为VuT和Traffic Objects运行的路线。

V2X

图10:DYNA4中查看和编辑OpenDRIVE格式地图

6.在DYNA4中配置Sumo Traffic和VuT

根据V2X场景中对HV的描述,在DYNA4中的车辆控制模型里设置VuT的运动情况。在DYNA4中配置Sumo Traffic模型类似其他常规Traffic组件,一方面是在“Traffic Objects”模块里设置V2X场景中的RV、行人或交通标志等。

V2X

图11:“Traffic Objects”模块设置

另一方面,在“SUMO Connect”模块中设置SUMO连接方式,并导入SUMO配置文件。DYNA4最多支持40个Traffic Objects,包括前面介绍的在“Traffic Objects”模块中设置的对象以及“SUMO Connect”模块中设置的受SUMO控制的交通对象,后者即是V2X场景中的模拟背景车辆。

V2X

图12:“Sumo Connect”模块设置

7.将DYNA4导出为CANoe工程

对于需要在CANoe中使用的信号,可以在Simulink模型中添加“System Variable Output”模块,如将VuT和Traffic Objects的位置、速度等信息输出到CANoe中的系统变量。通过相关设置,DYNA4工程能够自动导出为对应的CANoe工程,就可以使用CANoe.Car2x Option来实现V2X通信。

V2X

图13:在Simulink中将运动状态数据导出为系统变量

8.在CANoe里配置V2X工程

最后,在CANoe工程里添加Car2x网络,导入并编辑Car2x数据库,将从DYNA4中导出的系统变量赋值给Car2x报文里对应的Token,也可以在CANoe的“Map Window”窗口中实时显示车辆位置。结合V2X通信网络模拟器,V2X仿真环境就搭建完成。

V2X

图14:在CANoe中运行仿真

综上,DYNA4通过集成SUMO与CANoe.Car2x,能够实现更接近真实的V2X场景仿真环境。点击阅读原文了解更多DYNA4可实现的其他应用以及DYNA4 R8的新特性。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分