SUMO仿真(⼆)--sumo⼯程例⼦
1.sumo的⼯程结构
sumo解压之后可以得到四个⽂件夹(bin、data、docs和tools),bin⽂件夹下⼤部分为可执⾏⽂件,不同之处在于部分可执⾏⽂件并未封装,因此需要⽤命令⾏打开;docs⽂件夹主要包含examples和java、python等的帮助⽂档;tools中的⼯具多是⽤python编写。
通过浏览examples中的例⼦发现,sumo的仿真⾄少需要三个⽂件:
(1)道路⽂件,也称路⽹⽂件(.xml),该⽂件主要是对⾏车道路的描述⽂件;道路⽂件的形成有很多⽅法,在"SUMO仿真(⼀)"中详细介绍了如何从openstreetmap中导出.osm⽂件,利⽤sumo/bin中的netconvert⼯具可以将.osm地图转化为.xml⽂件;还有⼀种⽅法就是⾃⼰编写.xml⽂件,现在我也不会,所以不做介绍;
(2)车流⽂件,也称车量⾏驶⽂件(.l),该⽂件主要对车辆数量,车辆⾏驶规则等的描述⽂件;⾼级仿真中还会加⼊其他⽂件,例如:车辆描述⽂件、地形描述⽂件等;车流⽂件的形成有很多⽅法,这⾥使⽤的是sumo⾃带的⼀个radomTrips.py,它是⼀个⼯具,通过调⽤这个⼯具可以在已有的l上产⽣车辆⾏驶规则,利⽤它和上⾯的net,xml就可以产⽣l⽂件;
(3)编辑配置⽂件(.sumo.cfg或.sumocfg),该⽂件主要对仿真过程配置的描述⽂件。python处理xml文件
(4)附加⽂件(additonal file),⼯程中⼀个或者多个additional⽂件主要⽤于加载其他实体,也可以没有。
基础设施相关的东西:交通灯程序、感应回路和公共汽车站;
附加可视化:POIs和polygons,(例如房屋或者河流);
动态模拟控制结构:变速标志和reroutes;
相关实体需求:车辆类型和路线;
2.⼯程例⼦
(1)软件需求
windows系统(sumo在linux下运⾏效果
xp,7,8,10都可以
更好)
sumo版本0.30及以上最好
Notepad++(为了查看和编辑xml⽂件)可替换,只要能查看编辑xml即可
python环境 2.7及以上都可以
(2)处理导出的.osm地图
地图的保存:最好将地图保存在和sumo同⼀层次的⽂件夹中,例如我在F盘下解压了sumo,在同⼀个⽬录下新建了map⽂件夹,来保存地图⽂件及随后产⽣的各个xml等⽂件,⽅便查看和管理。
地图的处理:下载的osm除了路⽹信息还包含别的东西,需要做简单处理;导出的osm地图不仅包含路⽹信息也包含⼤量的别的模块例如建筑和河流,这些模块可以⽤polyconvert⼯具添加到sumo-gui配置⽂件中。
我们⼿动打开sumo-1.0.1\doc\userdoc\Networks\Import\OpenStreetMap.html⽂件,然后在打开的⽹页中间部分 Importing additional Polygons (Buildings, Water, etc.)的下⾯有⼀⼤段xml的代码,复制这些代码,然后在notepad++中级新建⽂件并把复制的代码粘贴到⾥⾯,在本实验中因为不需要,所以删除了下⾯的id=“power”的那⼀⾏代码,然后保存为l,把这个⽂件保存到上⼀步骤建的map⽂件中去,和osm地图⽂件放⼀起。
(3)创建.xml⽂件、.l⽂件和.l⽂件
打开sumo-1.0.1/bin/start-command-line.bat批处理,然后就可以⽤命令⾏模式对osm⽂件做处理,⾸先cd到map⽂件夹下进⾏操作。
代码:cd /d F:\software\sumo-win64-1.0.1\map
然后利⽤bin中的netconvert可执⾏⽂件将.osm⽂件转化为.xml⽂件
代码:netconvert --osm-files interpreter.osm -l
再然后利⽤bin中的polyconvert可执⾏⽂件将.osm⽂件转化为.l⽂件
代码:polyconvert --l --osm-files interpreter.osm --l -o l
最后利⽤tools中的randomTrips.py产⽣l⽂件
代码:python F:\software\sumo-win64-1.0.1\sumo-1.0.1\tools\randomTrips.py -l -e 100 -l
-l表⽰输⼊,-n表述输⼊的类型是net类型,其实-n等价于--net,-n是⼀种简写的⽅式。后⾯的-l -e 100是随机⼯具的配置(100表⽰100辆车),就像随机数⽣成函数需要⼀个种⼦⼀样,这样的⼀个过程⽣成的是⼀个旅程随机过程⽂件.l,我们还需要把随机的旅程和道路信息结合起来就获得了车流⽂件(l)了。我们要⽤到的⼯具是bin⽂件夹下的。
代码:python F:\software\sumo-win64-1.0.1\sumo-1.0.1\tools\randomTrips.py -l -u.xml -e 100 -l
执⾏成功后可以在map⽂件夹下查看到l
(4)编辑.sumo.cfg配置⽂件
编辑配置⽂件如下图,主要是更改input⽂件,可以在sumo-1.0.1⽂件夹的examples⽂件夹中复制⼀个.sumo.cfg配置⽂件,然后更改input⽂件的value,便可以得到如下图所⽰⽂件,然后把⽂件命名为map.sumo.cfg并保存到map⽂件夹中,到这⼀步,所有运⾏需要的
⽂件就够了
(5)运⾏sumo仿真
打开sumo-gui,选择map⽂件夹中的map.sumo.cfg⽂件,下载的地图将⾃动加载到主视图窗⼝中,增加延时⽅便观察车辆的运动
(建议100~200ms),运⾏仿真即可。第⼀次运⾏,建议不要下载特别⼤的地图,不⽅便观测车流信息。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论