交通系统仿真软件 —— SUMO

答案 (本文内容总结自 SUMO 官网 和 Youtube 视频教程 published by Rodrigue Tchamna.) SUMO ( Simulation of Urban Mobility) 是免费、开源的交通系统仿真软件,可以实现交通流的微观控制,即具体到道路上每一辆车的运行路线都可以单独规划。 SUMO 最早发布于 2001年,主要

交通系统仿真软件 —— SUMO

(本文内容总结自 SUMO 官网 和 Youtube 视频教程 published by Rodrigue Tchamna.)

SUMO ( Simulation of Urban Mobility) 是免费、开源的交通系统仿真软件,可以实现交通流的微观控制,即具体到道路上每一辆车的运行路线都可以单独规划。

SUMO 最早发布于 2001年,主要由 German Aerospace Center 下属的 Institute of Transportation Systems 的研究人员开发。

如果使用 SUMO 仿真,官方希望引用的参考文献为:

SUMO 已经在 Ubuntu 的官方 repo 中了,可以用如下命令直接安装:

如果要安装最新版本,也可以手动添加 SUMO 的 repo 再安装

SUMO 并不是单个程序,而是包含了多个 package/ application,提供了丰富的交通系统建模仿真的功能。主要包括如下应用程序:

对于小型网络,或者一些需要特别构造的道路网络,可以采用手动方式创建,主要包含 5 个文件:

上述文件本质上都是 xml 文件,不过为了方便区分其作用,额外增加了一个后缀名。

假设我们要创建如下图所示的小型道路网络

图中黑色节点对应交通路口,连边对应道路。每个路口所在位置坐标已给出。

创建如下 node file,名为 my_nod.nod.xml:

创建对应上述路网的 edge file,名为 my_edge.edg.xml,内容如下:

其中 id 和 type 可以随便命名,这里为了方便记忆,用 3L45,表示有 3 条 lane,速度上限是 45 m/s,随后会在 type file 中对相应的 type 进行定义。

对前述 edge 文件中的 type 进行定义,文件名为 my_type.type.xml:

基于以上三个文件,可以通过命令 netconvert 创建 net 文件,命令如下:

命令中各个参数的含义非常直观。

上述命令生成 my_net.xml 文件。以后如果改动了 node, edge, type files,都要重新生成一次 net file.

定义 route file,名为 my_route.rou.xml:

关于 Vehicle 和 route 的详细介绍,可以 参考官网 。

运行程序时需要送入一些参数,可以通过命令行形式送入,如果参数太多、太长,为了方便起见,可以将参数统一放到 xml config 文件中,在运行时,可以调用这个 config 文件。

定义 my_config_file.sumocfg:

如果一个参数既出现在了 config 文件中,又在 command line 中,则采用 command line 的设置。

一切准备就绪,下边运行程序

出现如下界面:

可以检查一下生成的路网是否与期望的相同,以及每条路上的 lane 数目。

然后将工具栏中的 Delay 设置为 100 ms,否则仿真开始之后瞬间结束。

点击绿色三角符号,运行仿真。在时间走到 10 时,bus 和 car 出现在相应的到路上。时间到达 1999 时仿真结束。

在工具栏中还可以设置 standard, fast standard, real world。可以切换一下,看看显示效果。

至此,一个简单的 SUMO 仿真 demo 就完成了。

在手动构造路网 net.xml 文件时,我们也可以用 SUMO 自带的 NETEDIT 程序,通过 NETEDIT GUI 编辑路网,可能效率更高一些。感兴趣的读者可以参考 SUMO 官网的教程 。

上述手动设置路网的方式只适用于比较简单的情况,如果要构造与现实世界比较接近的大型路网,我们可以用下边的从外部导入 OSM 路网的方法。

进入 openstreetmap.org , 通过搜索城市、街道找到目标道路网,然后 export 即可。

这里我选用了上海市东川路附近的路网,如下图

以上就得到了 .xml 文件,这里不是通过基于 node, edge, type 文件的整合,而是直接从 osm 地图转化过来。下边就是如何得到 route 文件。

对于这种大型的路网,手动创建 route 文件也很麻烦,这里我们用 SUMO 自带的 randomTrips.py 程序创建随机的 route 文件

其中 randomTrips.py 文件放在了 SUMO_HOME 目录下,即 /usr/share/sumo 目录下。

config 文件名为 sjtu.sumocfg,内容如下:

到目前为止,已经设置好了所有必须的文件,可以通过以下命令启动仿真:

启动仿真,截图如下:

局部放大:

上边导入 osm 地图的方法还是比较麻烦,它主要包括 4 步:

实际上,SUMO 自带了一个 osmWebWizard.py 程序,整合了上述较为独立的步骤,在同一个操作界面,“一站式” 完成上述步骤。

用 osmWebWizard.py 运行仿真也是 SUMO tutorial 中的第一个项目。

注意:必须以 python 2 运行,python 3 会在 generate scenario 的时候报错。

如果提示找不到该文件,就直接去 SUMO_HOME 的目录下面 /usr/share/sumo/tools 运行该文件。

没有问题的话,应该会在浏览器中打开如下页面。这里初始地图位置是 Berlin。

右侧有四个 tab,由上到下以此为:

首先是选定要仿真的地图环境。可以缩放、移动视图,通过右侧的 Select Area 可以选定一个区域。最好不要选择太大范围,否则仿真很占资源,甚至导致死机。

然后选择交通流中的车辆类型和密集程度,through traffic factor 对应了车辆穿过率,count 的单位是 per hour-lane-kilometer。基于这里的参数设置,randomTrip 程序会产生相应的 random route。

以上就设定好了地图和 route,点击右上方的 Generate Scenario, 就可以进入仿真界面了。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

图片声明:本站部分配图来自人工智能系统AI生成,国外stocksnap摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国外贸事业出一份力,发布内容不收取任何费用也不接任何广告!
 

  • 热门焦点
  • 四川省眉山市仁寿县彰加镇梧桐街邮编是多少

    邮编查询为您提供四川省眉山市仁寿县彰加镇梧桐街邮编,四川省眉山市仁寿县彰加镇梧桐街的邮编,四川省眉山市仁寿县彰加镇梧桐街的邮政编码,四川省眉山市仁寿县彰加镇梧桐街的邮政编码是多少,四川省眉山市仁寿县彰加镇梧桐街的邮政编码查询,四川省眉山市仁寿县彰加镇梧桐街的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县里仁乡万春村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县里仁乡万春村邮编,四川省眉山市仁寿县里仁乡万春村的邮编,四川省眉山市仁寿县里仁乡万春村的邮政编码,四川省眉山市仁寿县里仁乡万春村的邮政编码是多少,四川省眉山市仁寿县里仁乡万春村的邮政编码查询,四川省眉山市仁寿县里仁乡万春村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县付加镇青洋村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县付加镇青洋村邮编,四川省眉山市仁寿县付加镇青洋村的邮编,四川省眉山市仁寿县付加镇青洋村的邮政编码,四川省眉山市仁寿县付加镇青洋村的邮政编码是多少,四川省眉山市仁寿县付加镇青洋村的邮政编码查询,四川省眉山市仁寿县付加镇青洋村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县禄加镇六皇村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县禄加镇六皇村邮编,四川省眉山市仁寿县禄加镇六皇村的邮编,四川省眉山市仁寿县禄加镇六皇村的邮政编码,四川省眉山市仁寿县禄加镇六皇村的邮政编码是多少,四川省眉山市仁寿县禄加镇六皇村的邮政编码查询,四川省眉山市仁寿县禄加镇六皇村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县黑龙滩镇开元村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县黑龙滩镇开元村邮编,四川省眉山市仁寿县黑龙滩镇开元村的邮编,四川省眉山市仁寿县黑龙滩镇开元村的邮政编码,四川省眉山市仁寿县黑龙滩镇开元村的邮政编码是多少,四川省眉山市仁寿县黑龙滩镇开元村的邮政编码查询,四川省眉山市仁寿县黑龙滩镇开元村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县洪峰乡金鸡村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县洪峰乡金鸡村邮编,四川省眉山市仁寿县洪峰乡金鸡村的邮编,四川省眉山市仁寿县洪峰乡金鸡村的邮政编码,四川省眉山市仁寿县洪峰乡金鸡村的邮政编码是多少,四川省眉山市仁寿县洪峰乡金鸡村的邮政编码查询,四川省眉山市仁寿县洪峰乡金鸡村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县文宫镇文高路邮编是多少

    邮编查询为您提供四川省眉山市仁寿县文宫镇文高路邮编,四川省眉山市仁寿县文宫镇文高路的邮编,四川省眉山市仁寿县文宫镇文高路的邮政编码,四川省眉山市仁寿县文宫镇文高路的邮政编码是多少,四川省眉山市仁寿县文宫镇文高路的邮政编码查询,四川省眉山市仁寿县文宫镇文高路的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县彰加镇禹王村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县彰加镇禹王村邮编,四川省眉山市仁寿县彰加镇禹王村的邮编,四川省眉山市仁寿县彰加镇禹王村的邮政编码,四川省眉山市仁寿县彰加镇禹王村的邮政编码是多少,四川省眉山市仁寿县彰加镇禹王村的邮政编码查询,四川省眉山市仁寿县彰加镇禹王村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县钟祥镇红旗路邮编是多少

    邮编查询为您提供四川省眉山市仁寿县钟祥镇红旗路邮编,四川省眉山市仁寿县钟祥镇红旗路的邮编,四川省眉山市仁寿县钟祥镇红旗路的邮政编码,四川省眉山市仁寿县钟祥镇红旗路的邮政编码是多少,四川省眉山市仁寿县钟祥镇红旗路的邮政编码查询,四川省眉山市仁寿县钟祥镇红旗路的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县江心街邮编是多少

    邮编查询为您提供四川省眉山市仁寿县江心街邮编,四川省眉山市仁寿县江心街的邮编,四川省眉山市仁寿县江心街的邮政编码,四川省眉山市仁寿县江心街的邮政编码是多少,四川省眉山市仁寿县江心街的邮政编码查询,四川省眉山市仁寿县江心街的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县视高镇油顶村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县视高镇油顶村邮编,四川省眉山市仁寿县视高镇油顶村的邮编,四川省眉山市仁寿县视高镇油顶村的邮政编码,四川省眉山市仁寿县视高镇油顶村的邮政编码是多少,四川省眉山市仁寿县视高镇油顶村的邮政编码查询,四川省眉山市仁寿县视高镇油顶村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县先锋街邮编是多少

    邮编查询为您提供四川省眉山市仁寿县先锋街邮编,四川省眉山市仁寿县先锋街的邮编,四川省眉山市仁寿县先锋街的邮政编码,四川省眉山市仁寿县先锋街的邮政编码是多少,四川省眉山市仁寿县先锋街的邮政编码查询,四川省眉山市仁寿县先锋街的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县钟祥镇青山村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县钟祥镇青山村邮编,四川省眉山市仁寿县钟祥镇青山村的邮编,四川省眉山市仁寿县钟祥镇青山村的邮政编码,四川省眉山市仁寿县钟祥镇青山村的邮政编码是多少,四川省眉山市仁寿县钟祥镇青山村的邮政编码查询,四川省眉山市仁寿县钟祥镇青山村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县禾加镇干井村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县禾加镇干井村邮编,四川省眉山市仁寿县禾加镇干井村的邮编,四川省眉山市仁寿县禾加镇干井村的邮政编码,四川省眉山市仁寿县禾加镇干井村的邮政编码是多少,四川省眉山市仁寿县禾加镇干井村的邮政编码查询,四川省眉山市仁寿县禾加镇干井村的邮政编码快速查询。
    08-09
  • 四川省眉山市仁寿县大化镇红塔村邮编是多少

    邮编查询为您提供四川省眉山市仁寿县大化镇红塔村邮编,四川省眉山市仁寿县大化镇红塔村的邮编,四川省眉山市仁寿县大化镇红塔村的邮政编码,四川省眉山市仁寿县大化镇红塔村的邮政编码是多少,四川省眉山市仁寿县大化镇红塔村的邮政编码查询,四川省眉山市仁寿县大化镇红塔村的邮政编码快速查询。
    08-09