sumo是一种开源,微观,多模态的交通模拟仿真软件,博主也是一个初学者,在搭建sumo仿真实例时遇到了很多坑,因此想把怎样搭建一个sumo仿真实例的过程以及其中需要注意的地方,详细记录下来,希望能帮到大家,开始正题:
一、前期准备
(1)下载sumo软件
下载地址 https://sourceforge.net/projects/sumo/files/sumo/version%200.19.0/sumo-winbin-0.19.0.zip/download
下载完成后解压,即可使用,我把解压后的安装包放到了C盘根目录下
(2)下载好notepad++
用于查看和编辑xml文件(用其他编辑器代替也可以)
(3)安装好python
sumo中很多脚本都是用python写的,因此需要安装好python,才能运行这些脚本。
python下载地址:
注意:需要将python安装路径加入到环境变量中,操作步骤:
右键点击此电脑->选择属性->高级系统设置->环境变量
在系统变量中找到Path,点击编辑,将python的安装路径加入,我的安装路径是 C:\Python27
二、搭建简单仿真
(1)新建文件夹,存放仿真文件
在sumo安装目录下,新建一个project目录,存放仿真项目,这次我要搭建武汉光谷的道路仿真,因此在project目录下新建wuhan文件夹,用于存放相关文件。
(2)在OpenStreetMap上导出想要仿真的地图
访问网址:https://www.openstreetmap.org/ ,
搜索城市(如武汉),点击导出按钮,然后点击“手动选择不同的区域”,可在地图上截取需要的区域,
最后,点击蓝色的导出按键,即可得到map.osm文件(存放位置为wuhan文件夹)
(3)进入windows的cmd模型,然后进入到wuhan文件夹
输入命令:cd c:\sumo\project\wuhan
(4)将osm地图转换为.net.xml道路文件
输入命令:
C:\sumo\bin\netconvert --osm-files map.osm -o map.net.xml
(5)生成.trip文件
输入命令:
python C:\sumo\tools\trip\randomTrips.py -n map.net.xml -l -e 600 -o map.trips.xml
(6)生成.roul文件
输入命令:
C:\sumo\bin\duarouter -n map.net.xml -t map.trips.xml -o map.rou.xml --ignore-errors
(7)生成.sumocfg文件
操作步骤:新建一个文本文件,然后用notepad++打开,复制一下代码到该文本文件中,然后另存为 map.sumocfg
<?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="map.net.xml"/>
<route-files value="map.rou.xml"/>
</input>
<time>
<begin value="0"/>
<end value="54900"/>
</time>
<processing>
<time-to-teleport value="-1"/>
</processing>
</configuration>
(8) 运行仿真文件
在sumo的安装路径下找到bin文件夹,然后找到 sumo-gui.exe,打开该软件,出现交通仿真图像界面
然后点击 file->open Simulation->选择生成的map.sumocfg文件->运行,仿真的结果如下:
注意:可能生成的地图比较大,按住ctrl,同时滚动鼠标,可以放大地图
为了,便于观察,可以设置delay为40s