SUMO 概览

关于#

"Simulation of Urban MObility"(城市交通模拟),简称 "SUMO",是一个开源的、微观的、多模式交通模拟器。它允许模拟由单车组成的给定交通需求如何在给定的道路网络中移动。该模拟器可用于解决大量交通管理主题。它是纯粹微观的:每辆车都被显式建模,拥有自己的路线,并在网络中独立移动。默认情况下,模拟是确定性的,但有多种选项可以引入随机性

如果您下载 SUMO 软件包,您会注意到它除了 SUMO 之外还包含更多应用程序。这些应用程序用于导入/准备道路网络和需求数据以供 SUMO 使用,有关更详细的列表,请参见包含的应用程序

功能特性#

  • 包含准备和执行交通模拟所需的所有应用程序(网络和路线导入、DUA、模拟)
  • 模拟
    • 空间连续和时间离散的车辆移动
    • 不同的车辆类型
    • 具有换道功能的多车道街道
    • 不同的通行权规则,交通信号灯
    • 快速的 openGL 图形用户界面
    • 管理包含数万个边(街道)的网络
    • 快速的执行速度(在 1GHz 机器上高达 100,000 车辆更新/秒)
    • 在运行时与其他应用程序的互操作性
    • 网络范围、基于边、基于车辆和基于检测器的输出
    • 支持基于人的跨模式出行
  • 网络导入
    • 导入 VISUM、Vissim、Shapefiles、OSM、RoboCup、MATsim、OpenDRIVE 和 XML 描述
    • 缺失值通过启发式方法确定
  • 路由
    • 微观路线 - 每辆车都有自己的路线
    • 不同的动态用户分配算法
  • 高可移植性
    • 仅使用标准 C++ 和可移植库
    • 提供适用于 Windows 和主要 Linux 发行版的软件包
  • 通过仅使用 XML 数据实现高互操作性
  • 开源 (EPL 2.0)

使用示例#

自 2001 年以来,SUMO 软件包已在多个国家和国际研究项目中使用。包含的应用包括:

  • 交通信号灯评估
  • 路径选择和重新路径规划
  • 交通监控方法评估
  • 车辆通信模拟
  • 交通预测

包含的应用程序#

该软件包包含:

应用程序名称 简短描述
sumo 无可视化的微观模拟;命令行应用程序
sumo-gui 带有图形用户界面的微观模拟
netconvert 网络导入器和生成器;从不同格式读取道路网络并将其转换为 SUMO 格式
netedit 图形化网络编辑器。
netgenerate 为 SUMO 模拟生成抽象网络
duarouter 计算通过网络的最快路线,导入不同类型的需求描述。执行 DUA
jtrrouter 使用交叉口转向百分比计算路线
dfrouter 根据感应线圈测量数据计算路线
marouter 执行宏观分配
od2trips 将 O/D 矩阵分解为单车行程
polyconvert 从不同格式导入兴趣点和多边形,并将其转换为可由 sumo-gui 可视化的描述
activitygen 基于模拟人群的出行意愿生成需求
emissionsMap 生成排放地图
emissionsDrivingCycle 基于给定的行驶循环计算排放值
附加工具 有些任务不需要编写大型应用程序。这些工具涵盖了针对不同问题的多种解决方案。

多个参与方在他们的工作中扩展了 SUMO 软件包并提交了他们的代码。这些贡献通常未经测试且可能已过时。所有贡献的列表请见此处

历史#

SUMO 的开发始于 2000 年。开发开源微观道路交通模拟器的主要原因是为交通研究界提供一个能够实现和评估自身算法的工具。该工具无需考虑实现完整交通模拟所需的所有内容,例如实现和/或设置处理道路网络、需求和交通控制的方法。通过提供这样的工具,DLR 希望 i) 通过使用通用的架构和模型库使实现的算法更具可比性,以及 ii) 从其他贡献者那里获得额外的帮助。

软件设计标准#

软件追求两个主要设计目标:速度快和可移植性强。因此,最初的版本仅从命令行运行 - 最初没有提供图形界面,所有参数都必须手动输入。这可以通过省去缓慢的可视化来提高执行速度。此外,由于这些目标,软件被分成几个部分。每个部分都有特定的用途,必须单独运行。这使得 SUMO 与其他模拟软件包不同,例如,动态用户分配是在模拟本身内部完成的,而不是像这里通过外部应用程序完成的。这种拆分允许更容易地扩展软件包中的每个应用程序,因为每个应用程序都比一个做所有事情的单体式应用程序要小。此外,它允许使用更快的数据结构,每个都针对当前目的进行了调整,而不是使用复杂且负载沉重的数据结构。尽管如此,这使得 SUMO 的使用比其他模拟软件包稍微不便一些。由于还有其他事情要做,我们现在不考虑重新设计为集成方法。

贡献者和参与者#

组织

姓名

主题 / 贡献

Zaik_small.gif

Christian Rössel

初始微观模拟核心;初始检测器实现

Peter Wagner

模型,组织,精神领袖

Daniel Krajzewicz

所有方面

Julia Ringel

交通信号灯 & WAUT 算法

Eric Nicolay

所有方面

Michael Behrisch

所有方面

Yun-Pang Wang

用户分配

Danilot Teta Boyom

车辆通信模型(已从源代码中移除)

Sascha Krieg

Lena Kalleske

Laura Bieker

测试,Python 脚本

Jakob Erdmann

网络导入,netedit

Andreas Gaubatz

Maik Drozdzynski

Uni Lübeck

Axel Wegener

TraCI 发起人

Thimor Bohn

TraCI

Friedemann Wesner

TraCI

Felix Brack

Tino Morenz

uni_erlangen.png

uibk-small.png

logo_cmu.png

logo_ucla.png

Christoph Sommer

TraCI 与 Veins 合并,订阅接口,其他

David Eckhoff

TraCI,确定性模拟行为

Falko Dressler

TraCI

Tobias Mayer

交通模型抽象,IDM 模型移植

HU Berlin

Matthias Heppner

单元测试

Piotr Woznica

activitygen

Walter Bamberger

开发 activitygen 作为评估 VANET 中信任场景的基础。这项工作是项目 Fidens: Cooperative Systems Trust 的一部分,该项目涉及车辆网络中的可信概率知识处理。

Matthew Fullerton

IIT Bombay, India

Ashutosh Bajpai

randomDepart.py,一个通过指数分布生成真实交通模式的 Python 脚本。

Enrico Gueli

TraCI4J

Leontios Papaleontiou

Contributed/SUMO Traffic Modeler

Karol Stosiek

文档,网络构建

以及许多其他贡献者