在与sumo解压包同级目录下新建文件夹map

sumo 简单仿真 使用记录 教程(1)

  1. https://www.openstreetmap.org 导出想要的地图

最好将地图保存在和sumo同一层次的文件夹中,例如我在C盘下新建了mytest文件夹,把sumo解压到mytest文件夹下,并且在mytest下新建了map文件,来保存地图文件及随后产生的各个xml等文件,方便查看和管理,推荐这样做!

 

2、对导出的地图做处理。

手动打开sumo\doc\userdoc\Networks\Import\OpenStreetMap.html文件(官方教程),然后在打开的网页中间部分 Importing additional Polygons (Buildings, Water, etc.)的下面有一大段xml的代码,复制这些代码,然后在notepad++中级新建文件并把复制的代码粘贴到里面,然后保存为typemap.xml,把这个文件保存到上一步骤建的map文件中去,和osm地图文件放一起。

 

3、打开sumo/bin/start-command-line.bat,然后就可以用命令行模式对osm文件做处理 cdmap文件夹下进行操作,如果在别的路径下可能会出错

use the 'cd /d' command to change directoryexample usage:

cd /d c:\foo\bar

cmd窗口提示使用这种方式转换路径

 

cd /d g:\WorkDev

dir  查看目录

cd sumo-win64-0.30.0

dir查看目录

cd map

dir 查看目录(可以看到刚刚的两个文件map.osmtypemap.xml

sumo 简单仿真 使用记录 教程(1)

 

4、生成map.net.xml路网文件

输入:

netconvert --osm-files map.osm -o map.net.xml

提示一串warning,最后success

sumo 简单仿真 使用记录 教程(1)

 

5生成map.poly.xml地形文件

输入:

polyconvert --net-file map.net.xml --osm-files map.osm --type-file typemap.xml -o map.poly.xml

sumo 简单仿真 使用记录 教程(1)

 

6、接下来生成map.rou.xml 车流文件

输入:

Python G:/WorkDev/sumo-win64-0.30.0/sumo-0.30.0/tools/randomTrips.py -n map.net.xml -e 100 -l(这里是l,英文字母l不是1)

-n map.net.xml表示输入,-n表述输入的类型是net类型,其实-n等价于--net,-n是一种简写的方式。后面的-l -e 600是随机工具的配置,就像随机数生成函数需要一个种子一样。

 

但是,这样的一个过程生成的是一个旅程随机过程文件,而我们需要的是一个rou.xml文件。

所以,最后,我们把随机的旅程和道路信息结合起来就获得了车流文件(rou.xml)了。我们要用到的工具是bin文件夹下的duarouter.exe。

输入:

Python G:/WorkDev/sumo-win64-0.30.0/sumo-0.30.0/tools/randomTrips.py -n map.net.xml -r map.rou.xml -e 100 -l  (它调用了duarouter

sumo 简单仿真 使用记录 教程(1)

可以看到map文件夹已经生成map.rou.xml

sumo 简单仿真 使用记录 教程(1)

 

7、编写map.sumo.cfg 配置文件

模仿其他文件的配置文件,写一个

注意修改里面的参数

sumo 简单仿真 使用记录 教程(1)

代码如下:

<?xml version="1.0" encoding="iso-8859-1"?>

 

<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='1000'/>

    </time>

<!--

    <report>

        <no-duration-log value="true"/>

        <no-step-log value="true"/>

    </report>

-->

</configuration>

 

8、运行map仿真

输入 sumo-gui map.sumo.cfg

sumo 简单仿真 使用记录 教程(1)

弹出弹窗 可以设置延时delay200

启动,可放大缩小观看道路上的车辆(黄色三角形)

sumo 简单仿真 使用记录 教程(1)

 

 

参考:

https://www.cnblogs.com/lovehuohuo/p/8849085.html

https://www.openstreetmap.org

sumo\doc\userdoc\Networks\Import\OpenStreetMap.html文件

 

注意:

想研究veins omnet 与sumo的关系,具体怎么导入进去?(已解决,py命令)

 

我把G:\WorkDev\sumo-win64-0.30.0\sumo-0.30.0\bin

添加在了环境变量path(我的电脑)

 

*:在veins工程直接命令行(wins7可以按住shift直接进去cmd,省去cd步骤)

此时可以直接运行veins下的erlangen.sumo.cfg

 

输入sumo-gui erlange.sumo.cfg

sumo 简单仿真 使用记录 教程(1)

弹出sumo窗口开始仿真了

 

在上一篇步骤4,5中,个人理解  步骤4 是启动sumo.exe 并没有图形化界面

 

解决问题* 直接打开文件夹map的报错

输入sumo-gui map.sumo.cfg会提示

sumo 简单仿真 使用记录 教程(1)

弹出的sumo窗口也会提示错误加载ploy.xml出错

方法如下:

先配置临时变量环境 (说他是临时,因为你换一个文件夹还是报错 O(∩_∩)O哈哈~)

用set查看所有,用set SUMO_HOME查看该变量,不是用export,这是linux

set SUMO_HOME=G:\WorkDev\sumo-win64-0.30.0\sumo-0.30.0

(注意这里是windows下,但是这里要用\而不是/,不要问我为什么知道的。。。。可能在mingw窗口是要用/)

然后输入:

sumo-gui map.sumo.cfg

所以,可以在电脑配置永久环境变量,避免每次打开cfg文件都要去配置

sumo 简单仿真 使用记录 教程(1)

还在path中添加了:

G:\WorkDev\sumo-win64-0.30.0\sumo-0.30.0;G:\WorkDev\sumo-win64-0.30.0\sumo-0.30.0\bin

 

 

参考From https://www.cnblogs.com/lovehuohuo/p/8849085.html

相关文章: