sumo
一款道路模拟器,可以模拟道路上车辆行驶的过程,以及在红绿灯等情况下等待过程。
优点:
- 开源、便于路网导入
- 易于控制:python接口
- 索引信息便利(任何车辆任何道路)
- 换道参数修改便利(Karuss, IDM, ACC, CACC)
缺点:
- 工程项目展示度低
- 添加一个新的跟驰模型需要一些高级操作
- 换道模型较少,主要换道模型为瞬间换道
过程
转化地图
首先需要下载OSM地图,经处理后再转到xml文件。
netconvert --osm-files map.osm -o map.net.xml
接着需要生成map.net.xml文件,这个就是生成整个地图的xml文件。
生成小车
然后需要在这个地图上,生成小车,一般采用tools/randomTrips.py文件生成小车。
python tools/randomTrips.py -n mycano/hem.net.xml -b 0 -e 50 -p 10 -o mycano/hem.trips.xml
其中,
-b 开始时间
-e 结束时间
生成小车数:(e-b)/p
-p 生成小车的间隔
-o 输出文件名
-n 输入文件名
生成文件的格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated on 2021-07-08 21:08:26.803924 by $Id$
options: -n mycano/hem.net.xml -b 0 -e 50 -p 5 -o mycano/hem.trips.xml
-->
<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">
<trip id="0" depart="0.00" from="472623519" to="-332694978#1"/>
<trip id="1" depart="0.50" from="472629524" to="103914249"/>
<trip id="2" depart="0.10" from="472623519" to="-332694978#1"/>
<trip id="3" depart="0.50" from="472623519" to="-332694978#1"/>
<trip id="4" depart="1.00" from="472623519" to="-332694978#1"/>
<trip id="5" depart="0.50" from="472623519" to="-332694978#1"/>
<trip id="6" depart="1.00" from="472629524" to="103914249"/>
<trip id="7" depart="0.50" from="472629524" to="103914249"/>
<trip id="8" depart="2.00" from="472629524" to="4637524864"/>
<trip id="9" depart="0.50" from="472629524" to="4637524864"/>
<trip id="10" depart="0.50" from="472629524" to="4637524864"/>
<!-- <trip id="9" depart="45.00" from="-247113634#3" to="247113634#1"/> -->
</routes>
其中,id表示小车的编号,depart表示生成的时间,from表示出发地点,to表示终止地点。
生成路径 rou.xml
python tools/randomTrips.py -n mycano/hem.net.xml -b 0 -e 50 -r mycano/hem.rou.xml
编辑sumocfg文件
文件名为 xx.sumocfg
其中<input></input>
内需要填写net文件和rou文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/sumoConfiguration.xsd">
<input>
<net-file value="myroad.net.xml"/>
<route-files value="myroad.rou.xml"/>
</input>
<time>
<begin value="0"/>
<end value="1000"/>
</time>
</configuration>
接着就能运行了。
OSM文件的编辑
OSM 文件的编辑需要软件JOSM,打开命令为:
java -jar josm-tested.jar
需要注意的是,java版本要1.8
sumo文件导入ns3
(27条消息) sumo运动文件导入ns3_h8yung的博客-CSDN博客
参考网址
(27条消息) sumo中随机产生车流_时鲟、时倾的博客-CSDN博客
快速跑一个sumo的交通仿真 - 代码先锋网 (codeleading.com)
SUMO简单运行教程 - 知乎 (zhihu.com) 这个里面包含了流量控制的一些。
SUMO仿真高级进阶系列一:利用OpenStreetMap生成地图 - 灰信网(软件开发博客聚合) (freesion.com) 这里说了如何弄交通信号灯