Sumo车辆流仿真软件环境搭配

1 软件安装

1.1 软件说明

SUMO(Simulation of Urban Mobility)‌:这是一个开源的、微观的、多模式的交通模拟软件,用于模拟城市交通流动情况。SUMO可以在‌Windows、‌Linux和‌Mac OS等多个操作系统上运行,提供了丰富的API和插件,可以轻松地扩展其功能和定制性。

1.2 软件下载

直接官网下载就好 下载链接
在这里插入图片描述
建议下载msi文件,换个路径一键安装就好

1.3 环境变量

(假如不需要在命令行中使用sumo,这一步可以跳过)

  1. 打开环境变量设置
    在这里插入图片描述
  2. 设置变量名
    在系统变量名中新建变量,如图所示
    在这里插入图片描述
  3. 添加path路径
    在系统变量Path中新建路径,如图所示
    在这里插入图片描述
  4. 验证
    win + r 之后输入cmd打开系统命令行,输入sumo进行验证,成功会弹出下图
    在这里插入图片描述

2 运行配置

2.1 地图下载

打开openstreetmap官网,openstreetmap
在这里插入图片描述

选好指定的地方,点击右上角导出osm文件
在这里插入图片描述

2.2 对导出的地图进行处理

我们获得了osm文件,但是要解释 OSM 数据,需要一个额外的 typemap 文件,代码需要到官网上面下载(链接) 这边直接给出代码:

<polygonTypes>
  <polygonType id="waterway"                name="water"       color=".71,.82,.82" layer="-4"/>
  <polygonType id="natural"                 name="natural"     color=".55,.77,.42" layer="-4"/>
  <polygonType id="natural.water"           name="water"       color=".71,.82,.82" layer="-4"/>
  <polygonType id="natural.wetland"         name="water"       color=".71,.82,.82" layer="-4"/>
  <polygonType id="natural.wood"            name="forest"      color=".55,.77,.42" layer="-4"/>
  <polygonType id="natural.land"            name="land"        color=".98,.87,.46" layer="-4"/>

  <polygonType id="landuse"                 name="landuse"     color=".76,.76,.51" layer="-3"/>
  <polygonType id="landuse.forest"          name="forest"      color=".55,.77,.42" layer="-3"/>
  <polygonType id="landuse.park"            name="park"        color=".81,.96,.79" layer="-3"/>
  <polygonType id="landuse.residential"     name="residential" color=".92,.92,.89" layer="-3"/>
  <polygonType id="landuse.commercial"      name="commercial"  color=".82,.82,.80" layer="-3"/>
  <polygonType id="landuse.industrial"      name="industrial"  color=".82,.82,.80" layer="-3"/>
  <polygonType id="landuse.military"        name="military"    color=".60,.60,.36" layer="-3"/>
  <polygonType id="landuse.farm"            name="farm"        color=".95,.95,.80" layer="-3"/>
  <polygonType id="landuse.greenfield"      name="farm"        color=".95,.95,.80" layer="-3"/>
  <polygonType id="landuse.village_green"   name="farm"        color=".95,.95,.80" layer="-3"/>

  <polygonType id="tourism"                 name="tourism"     color=".81,.96,.79" layer="-2"/>
  <polygonType id="military"                name="military"    color=".60,.60,.36" layer="-2"/>
  <polygonType id="sport"                   name="sport"       color=".31,.90,.49" layer="-2"/>
  <polygonType id="leisure"                 name="leisure"     color=".81,.96,.79" layer="-2"/>
  <polygonType id="leisure.park"            name="tourism"     color=".81,.96,.79" layer="-2"/>
  <polygonType id="aeroway"                 name="aeroway"     color=".50,.50,.50" layer="-2"/>
  <polygonType id="aerialway"               name="aerialway"   color=".20,.20,.20" layer="-2"/>

  <polygonType id="shop"                    name="shop"        color=".93,.78,1.0" layer="-1"/>
  <polygonType id="historic"                name="historic"    color=".50,1.0,.50" layer="-1"/>
  <polygonType id="man_made"                name="building"    color="1.0,.90,.90" layer="-1"/>
  <polygonType id="building"                name="building"    color="1.0,.90,.90" layer="-1"/>
  <polygonType id="amenity"                 name="amenity"     color=".93,.78,.78" layer="-1"/>
  <polygonType id="amenity.parking"         name="parking"     color=".72,.72,.70" layer="-1"/>
  <polygonType id="power"                   name="power"       color=".10,.10,.30" layer="-1" discard="true"/>
  <polygonType id="highway"                 name="highway"     color=".10,.10,.10" layer="-1" discard="true"/>
  <polygonType id="railway"                 name="railway"     color=".10,.10,.10" layer="-1" discard="true"/>

  <polygonType id="boundary" name="boundary"    color="1.0,.33,.33" layer="0" fill="false" discard="true"/>
  <polygonType id="admin_level" name="admin_level"    color="1.0,.33,.33" layer="0" fill="false" discard="true"/>
</polygonTypes>

①: 创建一个 名字为typemap.xml的文件,把上面代码复制进去。
②: 创建一个文件夹project,把typemap.xml文件和osm文件放到同一个文件夹
在这里插入图片描述
③: 打开创建的文件夹project,直接在上面cmd进入命令行
在这里插入图片描述
④ :生成map.net.xml路网文件
在命令行中输入:netconvert --osm-files map.osm -o map.net.xml
在这里插入图片描述
⑤:生成map.poly.xml地形文件
输入: polyconvert --net-file map.net.xml --osm-files map.osm --type-file typemap.xml -o map.poly.xml
在这里插入图片描述
⑥:生成map.rou.xml 车流文件
输入:Python D:\CodeTool\sumo/tools/randomTrips.py -n map.net.xml -e 100 -l
(注意安装路径不同,大家自行修改一下)
-n map.net.xml表示输入,-n表述输入的类型是net类型,其实-n等价于–net,-n是一种简写的方式。后面的-l -e 100是随机工具的配置,就像随机数生成函数需要一个种子一样。但是,这样的一个过程生成的是一个旅程随机过程文件,而我们需要的是一个rou.xml文件。所以,最后,我们把随机的旅程和道路信息结合起来就获得了车流文件(rou.xml)了。
输入:Python D:\CodeTool\sumo/tools/randomTrips.py -n map.net.xml -r map.rou.xml -e 100 -l
在这里插入图片描述
⑦: 编写map.sumo.cfg 配置文件
创建一个txt文本,把代码复制一下,再把文件名改为map.sumo.cfg
代码如下:

<?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>

3 开始仿真

  1. 打开sumo-gui.exe进入ui界面
  2. 点击open simulation
    在这里插入图片描述
    3.选择map.sumo.cfg文件,打开后设置延时,点击运行,结果如下:
    在这里插入图片描述
    在这里插入图片描述

参考:https://blog.csdn.net/JWsunshine/article/details/122022013#:~:text=%E9%80%9A%E8%BF%87SUMO%E7%9A%84%E4%BA%A4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值