一、SUMO 路网生成方式
1、外部导入
可以从开源地图集 openstreetmap 中下载地图生成 *.osm 文件,然后通过 sumo 自带的 netconvert 程序将其转换为路网文件 (*net.xml)
2、netedit编辑
在可视化界面中编辑车道、路口、红绿灯等关键信息
3、人工定义
定义边、节点、连接、信号、配时等
二、外部导入路网仿真实例
打开 openstreetmap 官网,搜索地名,手动框选需要导出道路区域并导出,将生成的 *.osm 文件保存到 sumo 安装目录下新建的 map 文件夹中
导出的 .osm 文件中除了路网信息,还包含建筑、河流等信息,需要用 polyconvert 工具进行处理,方法如下:
打开下图所示的文件
复制文件中 Importing additional Polygons (Buildings, Water, etc.) 部分代码到Notepad++ ,另存为 typemap.xml ,保存到 .osm 文件相同路径。
打开…/bin/start-command-line.bat ,使用命令进入 *.osm 文件的文件夹
输入指令: netconvert --osm-files map.osm -o map.net.xml
转换成功会提示 Success
继续输入:polyconvert --net-file map.net.xml --osm-files map.osm --type-file typemap.xml -o map.poly.xml
此时 map 文件夹中已生成路网文件和地形文件
输入命令:python ...\sumo-0.30.0\tools\randomTrips.py -n map.net.xml -e 100 -l
生成随机行驶的车辆,-e 100 -l 为随机工具的配置,100为车辆数,可按实际情况设置
最后,使用 bin 文件夹下的 duarouter.exe 把随机的旅程和道路信息结合起来获得了车流文件(rou.xml)
输入命令:python ...\sumo-0.30.0\tools\randomTrips.py -n map.net.xml -r map.rou.xml -e 100 -l
在文件夹中可以看到车流文件 map.rou.xml
最后编写配置文件 (*.sumo.cfg)
在 Notepad++ 中输入下面的代码,保存为 map.sumo.cfg 文件
<?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"/>
<additional-files value="map.poly.xml"/>
</input>
<time>
<begin value='0'/>
<end value='5000'/>
</time>
</configuration>
打开 sumo-gui.exe ,点击 File->Open Simulation Configuration ,找到配置文件,点击 “OK”
设置时延,点击运行,放大地图,即可观察到车辆运行效果