首页 > 汽车技术 > 正文

SUMO:一个开源的交通流仿真平台

2021-02-02 21:26:10·  来源:自动驾驶仿真  作者:Daniel Krajzewic  
 
SUMO (Simulation of Urban MObility)是一个知名的交通流仿真平台。本文由SUMO开发者(Daniel Krajzewicz, Georg Hertkorn and Peter Wagner, German Aerospace
SUMO (Simulation of Urban MObility)是一个知名的交通流仿真平台。本文由SUMO开发者(Daniel Krajzewicz, Georg Hertkorn and Peter Wagner, German Aerospace Centre, Institute for Transportation Research )撰写,对SUMO做了详细介绍

摘要

由于交通流的高度复杂性和混沌性,目前还没有精确的交通流模型,因此研究者主要通过仿真模拟来预测交通流。在这一领域中,已有许多仿真模拟软件包,并且在其软件体系结构以及描述流量本身的模型上存在差异。我们将介绍另一个系统,与大多数其他仿真软件包相比,它是作为一个开源程序提供的,因此可以进行扩展,以满足研究人员自己的需要,也可以作为新交通模型的参考试验台。

简介

当试图改善交通时,需要一个有效的模型来处理。尽管有些人可能认为交通可以用出发时间和具有一定持续时间的路线来描述,但交通状况受到个人对流动性的个人愿望的高度制约。因此,既没有出发时间,也没有固定的和早期已知的路线。这对于交通模型本身来说是一个很大的问题。特别是私人交通,使得用数学公式描述交通是不可能的。一方面,现代人希望在特定的时间和地点离开和到达,另一方面,车辆在街道上的移动,都会影响交通和彼此。路网的工作负荷取决于驾驶员的离开时间,并决定了移动的速度。反之亦然,由于驾驶员希望快速行驶并在某个时间到达,因此负荷会影响他们的发车时间。除此之外,交通还受天气、区域内基础设施或其他影响系统的事件等因素的影响。

由于没有有效的数学模型考虑到所有这些影响,仿真模拟是显示路网的weak points或预测交通的唯一途径。因此,许多仿真软件包已经被开发出来了。其中一些已经在SMARTEST项目(SMARTEST 1999)中进行了测试。

这种交通仿真软件包在建模构件的组成以及使用模式上各不相同:有些软件包被设定为使用窗口的应用程序,而另一些则是交通研究人员的工具,是简单的命令行工具或程序。SMARTEST还提供了此类软件包所具有的功能列表。

SMARTEST主要是解决微观模拟问题。这种类型的模拟将单个车辆视为原子部分,而不是整个交通流本身(宏观)或车辆或驾驶员的单个部分(亚微观)。这种车辆模型可以使用元胞自动机在时间和空间上离散,或者只在时间上离散,或者甚至可以是完全连续的模型。图1显示了空间离散模拟和空间连续模拟之间的区别。

SUMO:一个开源的交通流仿真平台
图1 空间离散模拟和空间连续模拟之间的区别

从研究者的角度来看,当使用一些现成的仿真软件包时,由于软件包是黑盒的状态,可能会出现一些问题。首先,人们无法查看到底层模型。此外,由于软件架构不同,不同模型的特性(如仿真速度、描述现实的能力等)的比较,虽然不是不可能但也很困难。此外,此类模拟工具不能通过引入自己的想法(如新型传感器、测量或模型)而自发地扩展。

为了引入一种工具来完成这些尚未得到支持的任务,我们的研究所与应用信息学中心(德国科隆)正在开发一种称为SUMO的交通模拟软件(“Simulation of Urban MObility”)。事实上,该软件是一个连续的、微观的和多模式的交通模拟,并且也能够模拟比单个城市更大的网络(如公路网)的交通。

仿真模拟

基本范式
SUMO被构想用于模拟城市的道路交通。由于模拟是多模式的,这意味着不仅要对城市内的汽车运动进行建模,而且还要对街道网络上的公共交通系统(包括备选列车网络)进行模拟,因此模拟的原子部分是单个人。这个人用出发时间和他/她所走的路线来描述,而他/她所走的路线又是由描述单一交通方式的子路径组成的。

SUMO:一个开源的交通流仿真平台2
图2 复合路径

因此,模拟人可以将自己的车开到最近的公共交通系统站,并通过其他交通工具继续他的旅行。除了使用机动车辆的活动,一个人也可以步行。步行不是完全模拟的,而是模拟人到达目的地所需的时间。图2显示了这样一个复合路径。

SUMO:一个开源的交通流仿真平台3
图3 不同级别的模拟(从左到右:宏观、微观、亚微观)

对交通流进行了微观模拟。这意味着,在模拟网络中行驶的每辆车都是单独建模的,并且具有一定的位置和速度。在持续时间为1s的每个时间步长中,这些值会根据前方车辆和车辆行驶的街道网络进行更新。车辆的仿真是时间离散和空间连续的,驾驶员模型采用的连续模型。

在模拟交通流时,考虑了街道属性,如最大速度和路权规则。

特性
在当前版本0.7中,SUMO包含以下功能:
-无碰撞车辆运动
-不同车型
-有变道的多车道街道
-基于交叉口的通行权规则(具有相同/不同优先权的街道交叉口,例如,先右后左)
-车道间连接
-包含每个时间步的网络状态信息的XML原始输出
--XML文件的输入,这些文件可能分散在多个文件中,以便更好地处理

驾驶员模型
SUMO目前使用的模型是Gippsmodelextension。在每个时间步中,车辆的速度都会与领先车辆的速度相适应,从而在接下来的模拟步骤中产生无碰撞系统行为。这种速度称为安全速度vsafe,使用以下公式计算:

为了将加速度与车辆的物理能力相结合,计算得出的 “期望”速度为车辆极限速度、车辆速度加上最大加速度、安全速度三者之中的最小值。因此,车辆的速度不会超过其可能的速度。

此外,通过假设驾驶员犯了错误而无法完全适应期望的速度来模拟驾驶员行为。这是通过从期望速度中减去一个随机的“人为错误”来完成的。

由于车辆不得向后行驶,在前面的计算之后,必须再次取计算速度和0之中的最大值,并将其作为当前时间步长的车辆最终速度。

交通灯
交通灯在交通管理中起着重要的作用,它改善了交通流。除了简单的路权规则外,每个模拟交叉口也可能是带有红绿灯的交叉口。由于德国的一些交叉路口允许在右转时忽略红灯,因此有关这方面的通行权规则的扩展正在实现中。

仿真输出
现在有两种不同的输出。第一种是所谓的“原始”输出,包含所有边缘(街道)和所有车道,以及每个时间步上行驶的车辆,其中车辆由其名称、位置和速度描述。这个输出是完整的,可以作为后处理工具的输入进行评估。然而,大型模拟产生的数据量几乎无法管理,因此其他输出也被发明出来。

比如仿真中有检测器可以输出流量、车道上的平均速度和其他值。这些结果将使用CSV或GnuPlot格式写入到一个文件中。每个检测器都有自己的文件。

软件开发
作为交通研究人员的研究工具,SUMO被设计得快速和准确,而不是试图成为一个赏心悦目的软件。因此,尽管GUI的实现将是我们下一步的任务之一,但现在而言,主程序是从命令行启动,同时产生的输出必须经过后处理(如果我们想让结果可视化)。这可以防止因为GUI产生数据导致降低系统速度,为仿真模拟本身提供更多内存和系统时间。

SUMO是用C++实现的。在开发过程中,我们尽量只使用这种语言的标准化部分。我们的软件可以使用大多数平台进行编译,我们在以下环境中对此进行了验证:
-使用MSVC的Windows
-使用Sun-C++编译器和STL-Port的Solaris
-使用gcc的Linux

Simulation Benchmarks
这种模拟可以在普通台式电脑上模拟大型城市,比如柏林、慕尼黑或科隆等。我们的大部分测试都是在英特尔个人电脑上进行的,它的运行频率为933MHz,内存为256MB。在这种情况下,SUMO大概能够模拟每秒大约100万辆汽车的移动。

正在进行的项目
在我们的研究所,一些项目使用SUMO来验证他们对新技术的假设。以下项目已经开始使用SUMO,或将在未来几个月内使用它:
-加州的一个项目,调查分布在高速公路车道上的探测器是否可以用来预测交通堵塞。
-基于从柏林,维也纳和维尔茨堡的出租车得到的移动车辆数据,我们试图验证交通流预测方法
-一个内部项目,试图预测新传感器技术的优势
-美国的一个项目,试图改善高速公路出口匝道区域的交通状况

其他工具
SUMO由不止一个应用程序组成。其他一些模块允许建立仿真和研究所需的指定数据。目前正在开发以下模块:

SUMO-NETCONVERT
由于高度的复杂性,SUMO的网络描述并由人类用户生成。相反,我们使用此工具将公共数据(如边界和节点列表)转换为一个完整的SUMO网络。在此过程中,SUMO-NETCONVERT读取可用数据,计算SUMO所需的输入,并将结果写入XML文件。到目前为止,四种不同的输入格式可以转换成SUMO网络:
- simple XML-data containing edge types,nodes and edges
- CSV-data containing edge types, nodes andedges
- Cell-input files (Cell is aqueue-simulation developed by the ZAIK)
- VISUM-networks

由于SUMO在INVENT项目中使用,一些进一步的导入功能将在今年内实现:ArcView、VISSIM和GDF。其中GDF的间接导入已经可以通过使用脚本将其转换为XML,然后使用生成的XML描述作为sumonecontvert的输入。

下图显示了哪些数据可以从边界和节点列表中计算出来。第一步是确定交叉口的优先级,第二步是计算可能到达的车道和边缘之间的关系,在第三步中,目的地边界在进入的车道之间被分割。计算是灵活的,取决于输入和输出边界的数量、大小以及它们在网络中的优先级以及由此产生的连接类型。

SUMO:一个开源的交通流仿真平台4
图4:将简单的网络数据转换为完整的描述

下一幅图显示了当希望对整个城市进行建模时,需要这样一个网络构建工具。无论是街道的数量还是它们之间关系的复杂性都不允许人类用户处理网络描述。

SUMO:一个开源的交通流仿真平台5
图5:柏林市地图

SUMO-NETCONVERT还负责红绿灯相位的建立。在现实世界中(至少在德国),每个交叉口的交通相位都是单独调整的,并且某些相位数据可能不适用于所有交叉口,因此我们使用启发式方法来生成实际的输出。

SUMO-ROUTER
除了静态部分——网络——之外,模拟还包括移动的车辆。随着模拟质量的提高,对人口流动性建模的需求也随之增加。在这种情况下,车辆不在网络上进行统计分布,而是使用由具有特定发车时间的路线组成的单人每日计划。虽然给出了描述出发时间和路线起点和终点所需的数据,但必须计算路线本身。为了避免在模拟过程中对这些数据进行在线计算,该计算使用一个单独的模块SUMO-ROUTER来完成。该模块读取一组虚拟人的出发时间、出发地和目的地,然后使用著名的Dijkstra routing algorithm计算通过网络的路线。

SUMO:一个开源的交通流仿真平台6
图6:小型网络中的路线

由于街道上的速度随着交通量的变化而变化,因此使用交通量未知的网络计算路线时不考虑实际情况,路线将采用Christian Gawron开发的动态用户平衡方法来完成。在该方法中,路线和模拟将重复多次,以趋近于驾驶员的真实行为。

小结

我们试图建立一个通用的交通研究平台,为非编程用户提供一个简单的模拟工具,支持他们进行交通模拟。由于其高度可移植性,该工具可用于不同的操作系统。除此之外,该平台还可由其他人扩展,以便他们改进软件并加入我们没有考虑到的想法。此外,最初实现的模型可以用自己的方法来代替,以便在仿真质量和速度方面与现有模型进行比较。

未来工作

我们的研究所将把SUMO用于不同的目的,因此我们将做进一步的工作。这些工作有关移动车辆数据验证、交通预测改进和交通灯优化的项目。同时为了跟踪和验证模拟,将实现一个图形用户界面,其中将显示加载的地图,以及车辆移动和一般信息。为了保持可移植性,GUI将使用Qt-windowing library来实现,该库是免费使用的,可用于大多数系统,包括Windows、UNIX/Linux和Macintosh。

一些正在运行的项目表明需要将软件集成到其他软件包中,或者在软件和其他编程语言之间建立接口。对此,也将进行相关工作。

此外,由于要模拟的交通量不断增加,并且一些研究实验需要多次模拟来计算单个值,系统将被扩展以允许使用计算机集群。 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25