概述
1.什么是sumo
sumo是一种开源,微观,多模态的交通模拟仿真软件,它允许模拟由单个车辆组成的给定交通需求如何在给定的道路网络中移动。它纯粹是微观的:每辆车都是明确建模的,有自己的路线,并在网络独立移动。 默认情况下,模拟是确定性的,但有多种方式。目前sumo以及一些扩展程序比较丰富,具体的可以参考论文:SUMO – Simulation of Urban MObility: An Overview,里面详细介绍了sumo以及一些扩展。
2.下载并安装sumo
前往sumo官网下载,进去以后点sumo-win64-1.11.0.zip即可下载,下载的版本时1.11.0,(不要下载太旧的版本,因为太旧的版本基于python2编写,本人已踩坑)如下图所示:
下载以后,直接将其解压至指定的文件夹即可,sumo不需要安装。我解压的路径是D:/sumo.(路径会经常使用,建议不要含有中文)解压后的文件如下所示:
(project文件夹是新建立的,为了运行实例的需要)
在下载完sumo后,可以将其路径添加到环境变量中。在系统变量中添加SUMO_HOME变量,值为sumo的安装路径,即D:/sumo.
然后在Path中加入sumo的bin路径,即加入:
%SUMO_HOME%bin
在完成环境变量添加以后,可以在cmd中查看sumo的安装版本。打开cmd,输入sumo可得到以下内容:
至此,sumo的安装基本结束
3.sumo实例
在准备运行实例之前,先在sumo的安装目录下新建一个文件夹project。
在实现sumo交通模拟之前,需要配置好web和python环境。本人使用的web环境是sublime_text3,python环境是anaconda。在配置完python环境一定要将python路径添加到环境变量中,添加方法跟前面添加sumo路径一样。
为了运行sumo实例,必须要有三个文件:道路文件(路网文件).net.xml;车流文件:.rou.xml;编辑配置文件.sumocfg
3.1加载道路文件.net.xml
在sumo中,获取道路文件一共有三种方式:1.从OpenStreetMap中下载;2.在netedit中绘制(sumo的bin目录下自带,在后面的文章中将介绍);3.通过编码实现。在本次实例中使用OpenStreetMap加载。
首先进入OpenStreetMap官网,在左上角可以搜索需要选择的区域。在选定以后点击导出->手动选择不同的区域->导出。就可以将选中的区域下载,下载后的文件为.osm,下载后将其放入project文件夹中。(我下载的文件将其命名为csu.osm)
在得到csu.osm后需要将其转化为.net.xml文件(即道路文件)。转化方法如下:
1.打开cmd,并将其目录切换到project下,键入命令为:
cd /d D:/sumo/project
(如果没有将sumo下载到C盘,切换目录时需要加入/d)
2.键入命令:
D:sumobinnetconvert --osm-files csu.osm -o csu.net.xml
就可生成csu.net.xml文件。如下图所示:
若运行sumo/bin目录下的sumo-gui.exe,点击File->Open Network->选中生成的csu.net.xml就可看到路网,如下图所示:
3.2加载车流文件.rou.xml
在这一步中将会使用到python,配置好的python环境一定要添加到Path变量中。将使用到sumo/tools目录下的randomTrips.py 随机生成车辆的相关信息。
1.接着在cmd中输入命令:
Python D:/sumo/tools/randomTrips.py -n csu.net.xml -l -e 600 -o csu.trips.xml
根据路网文件csu.net.xml生成文件csu.trips.xml,用于随机生成车辆及轨迹。
2.接着继续在cmd中输入命令:
D:/sumo/bin/duarouter -n csu.net.xml -t csu.trips.xml -o csu.rou.xml --ignore-errors
生成车流文件csu.rou.xml
3.3编写.sumocfg文件
在project目录下新建一个文本文件,然后使用sublime_text3打开,(其它的web环境也可以),在其中编入如下代码:
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/sumoConfiguration.xsd"> <input> <net-file value="csu.net.xml"/> <route-files value="csu.rou.xml"/> </input> <time> <begin value="0"/> <end value="54900"/> </time> <processing> <time-to-teleport value="-1"/> </processing> </configuration>
(注意代码中的csu.net.xml和csu.rou.xml,不同的命名需要修改这部分代码)
另存为csu.sumocfg文件,一定要放在project文件夹中。
至此,全部的准备工作完成。
3.4 运行实例
1.打开sumo/bin目录下的sumo-gui.exe,点击File->Open Simulation->选中csu.sumocfg,可以看到跟刚才一样的路网图。
在菜单栏中找到delay(s),将其设置为1000,即1s,然后点击绿色的运行按钮,如下图:
然后在edit中可以更改车辆的设置,方法如下:
edit->edit Visualisation->Vehicles->Show As->选择"Simple shapes"就能看见车辆的形状。为了更加明显,在color中可以选择红色。 同时选中Draw with constant size when zoomed out 和 Show route index,选中红色,可以让车辆看得更加明显。效果图如下所示:
点击红色的暂停按钮,可以停止车辆的运动。
将在下一篇文章中介绍如何使用sumo建立路网并实现交通模拟:交通模拟
最后
以上就是清爽鱼为你收集整理的sumo安装(版本1.11.0)和实例(Windows)的全部内容,希望文章能够帮你解决sumo安装(版本1.11.0)和实例(Windows)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复