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) 这里说了如何弄交通信号灯