马小陆,王 磊,李 军
1.安徽工业大学电气与信息工程学院,安徽马鞍山,243002;
2.安徽达尔智能控制系统股份有限公司,安徽芜湖,241002
随着城市化进程逐渐深化,交通拥堵和交通事故的频发极大影响了城市整体运行效率,大力发展公共交通出行是缓解城市道路拥堵的重要方法[1]。公交优先通行策略能够大大提高公共出行的效率[2]。同时V2X技术快速发展,我国高度重视与车联网相关的技术及产业发展,目前在关键技术、产业与政策等方面处于高速推进阶段。2020年中华人民共和国国家发展和改革委员会等11个部委联合发布了《智能汽车创新发展战略》[3-4],提出到2025年,与智能交通系统和智慧城市相关的设施建设将取得积极进展,车用无线通信网络实现区域覆盖。可见基于V2X技术的公交优先通行策略,对于智慧城市的发展至关重要[5]。
基于V2X技术的公交优先通行策略大多是利用仿真系统进行程序验证[6-8],缺乏一个完整的测试架构,无法保证程序的实际运行效果;同时由于公交优先系统场景测试的复杂性[9],现场测试的干扰太大,测试效率极低,并且交通环境的复杂性,也带来了一定的危险性。
本文设计了一种基于SUMO(Simulation of Urban Mobility)的硬件在环仿真系统。该系统基于真实的地图数据,并且能够进行实时的数据交互,将程序的执行结果反馈到仿真平台,保证程序的实际执行效果,同时避免了道路测试的弊端,大大提高了程序开发的效率。
基于SUMO的硬件在环仿真平台的作用是为了进行公交优先模块的程序测试,降低公交优先程序测试的复杂性,提高程序开发的效率,并且避免了道路测试可能带来的安全问题。该平台基于真实城市道路地图数据,为公交优先场景的测试提供实时在线的数据集(实时的车辆信息以及检测器信息),并且能够实时在线的修改交叉口信号配时方案以及车辆速度。该系统框图如图1所示。
图1 基于SUMO的硬件在环仿真系统框图
在图1中,基于SUMO的硬件在环仿真平台系统框图主要分为三个部分,即公交车车载平台、车联网信号机平台以及基于SUMO软件的仿真平台。三个部分的主要作用分别如下:
(1)基于SUMO软件的仿真平台,包括了SUMO交通仿真软件、PyCharm集成开发环境以及交换机设备。其中SUMO是免费、开源、多模态的交通系统仿真工具,可以实现交通流的微观控制;SUMO支持多种路网导入功能,包括了OpenStreetMap、VISUM以及XML-Descriptions等;SUMO中的TraCI模块(Traffic Control Interface)允许使用Python与SUMO进行实时数据交互,通过TraCI模块可以实时获取车辆信息、道路信息、排队长度、交叉口信号灯信息等,同时能够在线修改SUMO仿真环境中车辆的信息、交叉口信号配时方案等。PyCharm软件是Python语言的开发集成环境,在PyCharm中搭建了基于SUMO软件的服务器平台。最后基于网络交换机,实现了公交车辆、信号机和SUMO仿真平台的硬件在环仿真平台的TCP/IP实时通信。
(2)公交车车载平台包括了公交车车载设备OBU(On Board Unit)和车载显示屏,OBU运行着公交优先算法,接收从SUMO仿真平台下发的公交车信息(速度、位置、转向角),模拟公交车在实际道路行驶所产生的数据,测试公交优先模块的稳定性和可行性;将公交车的位置、速度以及行驶方向在车载显示屏的地图中进行实时显示;并且实时地将公交车的车辆信息通过DSRC模块发送给车联网信号机;公交车车载设备通过DSRC模块获取车联网信号机广播的路口信号配时方案,进行车速引导,并将车速引导信息发送到仿真平台,保证仿真平台中的公交车车速和实际引导车速的同步;将红绿灯的灯色和倒计时在车载显示屏上进行显示。
(3)车联网信号机控制路口的交通信号灯,同时拥有V2X通信能力。在系统运行过程中,车联网信号机通过TCP/IP上传信号配时方案,控制SUMO软件中某个交通路口车辆的放行;通过DSRC模块获取公交车发送的公交优先请求,结合控制策略对信号灯的执行进行干预;同时将信号配时信息发送到仿真平台,修改仿真平台中对应路口的信号灯的配时方案,保证仿真平台和实际车联网信号机的信号控制的同步。
SUMO仿真平台为公交优先控制提供模拟的测试环境以及动态的测试数据,同时保证和其他平台之间实时的数据交互。该平台包括了SUMO软件和PyCharm服务器模块。SUMO仿真平台的架构如图2所示。
图2 SUMO仿真平台架构图
SUMO软件是在环仿真系统中极其重要的一部分,为仿真系统提供了模拟测试环境及测试的动态数据。包括道路网络的创建、交通需求的配置、交通管理以及TraCI在线交互等基本功能。PyCharm服务器平台通过TraCI模块实现了和SUMO软件实时的数据交互,获取SUMO交通模拟环境中的数据,并能够实时修改和控制SUMO中的交通参数,同时和车载设备以及车联网信号机实现数据共享。
SUMO交通路网模型的建立,通过软件提供的osmWebWizard.py脚本工具可以快速建立真实的交通路网模型,能够提供真实地理位置信息,包括对于交通环境参数的设置(车流量、行人、公共交通等)。操作界面如图3所示。
图3 交通路网操作界面
交通需求模块,是在生成道路网络之后,完成对路网中车辆的描述。该模块规定了车辆的物理特性、速度以及行驶路径等,同时提供了公共交通工具的建模,道路行人的模拟等功能。通过XML语言定义需要操作的车辆的编号、类型、颜色、最大车速,以及车辆的行驶路径等参数。交通管理模块,定义了交通信号灯的相关属性,包括了信号灯的相位、绿灯时长设置,同样采用XML语言进行设计。
交通数据输出模块,支持多种类型的数据输出,包括车辆的速度、行程信息、排放量以及轨迹。TraCI交互模块允许访问正在运行的道路交通模拟,它允许检索模拟对象的值并“在线”操纵其行为。为了保证TraCI模块的实时交互功能,SUMO提供了多个API接口函数。常用的API函数如表1所示。
表1 常用的API函数
同时为了和SUMO软件进行实时的数据交互,实时获取和修改SUMO仿真软件中的交通参数,以及建立和车载设备OBU、车联网信号的实时数据交互。基于SUMO的TraCI模块的特点以及网络通信的实时性,在PyCharm软件中搭建了用于和SUMO软件、车联网信号机以及OBU进行实时交互的服务器平台,包括多客户端连接模块、SUMO仿真控制模块、OBU数据处理模块以及信号机数据处理模块。
PyCharm软件建立的多客户端连接的模块保证了多个信号机平台和车载设备平台的接入;SUMO仿真控制模块构建了PyCharm软件和SUMO之间的通信桥梁,该模块通过TraCI提供的API和SUMO仿真软件进行实时交互,获取公交车辆的多种信息,同时能够实时地修改SUMO软件中车辆状态以及交通信号配时方案。信号机数据处理模块通过TCP/IP从信号机获取信号配时方案,根据信号机id的不同,对SUMO软件中不同路口的信号机进行不同的配置。OBU数据处理模块处理从SUMO软件获取车辆信息,根据车辆id,将不同的车辆数据发送给不同的车载设备。
服务器程序流程如图4所示。首先程序启动,进行相应的初始化操作,并且通过一小段的引导代码建立PyCharm平台和SUMO仿真环境的连接,然后进行多客户端服务器的建立,等待信号机客户端和车载设备客户端的连接请求,一旦建立连接之后,客户端会发送相应的类型识别码,多客户端服务器模块会判断客户端的类型,根据不同类型创建不同的子进程。
图4 SUMO仿真平台流程图
车载设备子线程的主要作用就是获取SUMO软件中对应公交车的车辆信息,包括车辆的经纬度、速度、转向角,并且将这些信息按照一定的格式进行封装,最后通过TCP/IP发送给对应的车载设备,同时线程中对公交车的停靠时间以及延误时间进行统计,进行结果的输出。信号机子线程的作用就是从车联网信号机实时获取信号机的配时方案信息,对SUMO中对应路口的信号灯配时信息进行修改,保证信号机平台的相位执行和SUMO仿真平台的相位执行的同步。
信号机是交通信号控制、交通信息采集与处理的中心。基于V2X技术的车联网信号机硬件系统,将V2X技术和交通信号控制系统进行融合,赋能了传统交通信号控制机V2X通信的能力。因此该硬件系统的组成包括:V2X核心控制模块、主控模块、驱动模块、黄闪模块、车检通讯模块、控制面板模块以及DSRC通信模组。系统硬件整体如图5所示。
图5 车联网信号机硬件平台原理框图
V2X核心控制模块是控制系统的核心,采用了高性能的I.MX6Q的四核处理器,最高频率可达1 GHz,满足了交通信号控制以及V2X通信的需求;V2X通信模块采用基于DSRC技术的通信模组,通过USB和CPU进行数据交互;主控模块作为系统的信息转发枢纽,用于和各个模块进行数据通信;驱动模块用驱动信号灯的工作,设计了信号驱动电路、电压检测电路以及电流检测电路;黄闪模块作为系统安全的冗余设计,当驱动模块发生故障时,能够控制路口黄灯,进行预警提示,设计了和驱动板相同的驱动电路;车检通讯模块是各类传感器的采集模块,设计各种不同的通信接口:CAN总线接口、485总线接口、IO接口以及UART接口。
公交车车载设备,是公交车数据处理和公交优先请求处理的中心。公交车车载设备硬件系统,需要能够满足车联网应用的需求,能够进行V2X通信,采集公交车的车辆信息,所以采用JS-2018-V车载设备。JS-2018-V硬件原理如图6所示。
图6 公交车车载设备硬件平台原理框图
JS-2018-V车载设备是一款工作在5 850~5 925 MHz频段的专用短程通信(DSRC)设备,置于公交车内部,支持IEEE 802.11p、IEEE 1609x及SAE-J2735等标准协议栈,对外提供USB、串口、网口、CAN等功能接口,支持GPS、WiFi/BT、4G等通用功能。系统硬件实物如图7所示。
图7 公交车车载设备硬件平台实物图
车载显示屏是车辆上完成人机对话和系统信息显示的重要设备。在公交优先系统中是不可缺少的一部分,需要完成公交车位置、速度、以及预警信息的显示等。车载显示屏基于Android操作系统,运行着车联网应用程序。车联网应用程序的框架如图8所示。车载显示屏通过WiFi和公交车车载设备进行交互,扮演着服务器的角色。
图8 车联网应用程序框架
OBU将车辆信息(经纬度信息、车速的速度信息、转向角、红绿灯信息以及预警信息)编码成JSON(JavaScript Object Notation)格式,发送到车载显示屏;车载显示屏数据处理模块,进行JSON数据的解析得到不同的数据,将解析得到的预警数据发送到预警信息显示模块,同时将车辆的位置、速度等信息发送到地图显示模块;预警信息显示模块,根据消息类型的不同,创建不同的预警界面,显示相应的预警信息,提示公交车驾驶员;地图显示模块,根据车辆的id和位置,在地图上进行本车位置、行驶方向、以及速度的显示,同时在屏幕上显示它车的相关信息。
为了验证该硬件在环仿真平台的可行性,搭建了基于SUMO仿真软件、单个车联网信号机、单个公交车车载设备、PyCharm软件以及车载显示屏的硬件在环仿真系统,仿真系统拓扑图如图9所示。
图9 公交优先在环仿真系统
SUMO仿真环境运行在PC中,包括了SUMO交通仿真软件以及PyCharm仿真软件。在SUMO交通仿真软件中,基于SUMO软件的osmWebWizard.py脚本工具的地图导入功能,选取芜湖10路公交车的线路作为背景地图,同时选取赭山西路与九华中路的交叉口作为场景测试的路口。
在PyCharm软件中搭建了和SUMO实时交互的服务器平台,实时获取车辆的位置、速度、转向等信息,并能够实时在线修改信号灯的相位以及车辆速度。通过交换机,构建了基于车联网信号控制机、车载设备OBU以及PyCharm软件平台的局域网。PyCharm软件平台在该系统中扮演着服务器的角色,车联网信号控制机、OBU作为系统客户端,通过网络通信实时进行数据交互。系统仿真步骤如下:
Step1:PyCharm服务器和SUMO仿真平台运行;
Step2:车载设备与车联网信号机客户端连接PyCharm服务器,PyCharm服务器将SUMO仿真环境中一辆公交车的实时位置、速度、方向角等信息通过TCP/IP发送给OBU中,模拟公交车的实际运行,同时从车联网信号机中获取信号配时信息,控制赭山西路与九华中路的交叉口的信号灯相位的执行;
Step3:车联网信号机通过DSRC模块广播信号配时信息以及信号机位置信息,以及接收OBU发送的公交车请求信息;
Step4:OBU通过DSRC模块获取车联网信号机广播的配时信息和位置信息,计算前方路口的红绿灯灯色以及倒计时信息,通过WiFi将配时信息发送到车载显示屏进行显示,并在第一次接收到该信息时,进行语音播报;同时OBU计算与交叉口的距离,由于无法进行远距离的模拟,所以OBU判断与交叉口的距离为300 m以内,才发送公交车的优先请求信息,包括了优先相位、速度、位置等信息;
Step5:当车联网信号机,接收到公交车发送的优先请求,则进入公交优先控制模式。
通过搭建的硬件在环仿真平台,进行了多次实验。PyCharm软件通过TraCI接口获取该公交车的是实时经纬度信息、速度信息以及转向角信息,通过TCP/IP发送给OBU,模拟公交车的实际运行。同时车联网信号机运行实际的路口相位方案,通过TCP/IP发送到PyCharm中,控制SUMO中的一个实际路口的红绿灯的执行。
当公交车行驶到该路口时,此时公交车会接收到车联网信号机发送的相位信息,OBU判断该路口是否为前方即将到达的路口,然后解析车联网信号发送来的数据信息,并通过WiFi将路口的距离、红绿灯的灯色、倒计时发送到车载显示屏中进行显示。实验结果验证了基于V2X技术的硬件在环仿真平台的可行性和实用性。
本文设计了一种在V2X环境下,通过SUMO仿真软件,搭建了车载设备和车联网信号机的硬件在线闭环仿真实验,SUMO为公交优先通行系统的测试提供了丰富的数据集,并且能够在线修改SUMO仿真平台中车辆信息以及路口信号灯的配时方案。仿真平台能够有效验证公交优先控制系统的控制效果,提高程序开发的效率,避免了现场测试的危险性,同时为今后的进一步发展奠定了良好的基础。