昨天通过一个demo给大家简单介绍了一下Plexe-Sumo,但Sumo自身的底层逻辑仍然是入门者亟需补充的知识!
因此,今天从导入实景地图出发,给大家普及一下Sumo的底层逻辑!
Ps1:以前一直以为Sumo很简单,交通人均会,这段时间才知道Sumo还是略微有点门槛的(主要是很麻烦!
Ps2:本来是想画个思维导图的!但是到了这个点又想偷懒了!还是下次吧
根据 OSM Web Wizard for Sumo 获取指定位置osm文件
-
运行’M:\Exe\Sumo\tools\osmWebWizard.py’后,打开网页(使用期间,请勿关闭!具体文件路径根据安装目录自行修改)

-
定位想要的详细位置。
-
确认相关设置:
Part 1

- Select Area:选择指定矩形区域;
- Duration:持续时间(s);
- Add Polygon:保留地图上的所有信息(比如我们只做道路交通研究,但是它会保留铁路等信息);
- left-hand Traffic:遵从左侧行驶规则;
- Car-only Network:只显示轿车相关的地图信息;
- Import Public Transport:导入公共交通信息;
Part 2——各类交通工具

-
‘through traffic factor’ 表示路线穿越所选区域的车辆数与路线在所选区域内车辆数的对比。生成的车辆会随机在我们划定的区域中选择行驶的起点和终点(起点与终点均在区域边界上),需要注意的是如果起点和终点在区域内,那么就是非’through traffic’。该参数即为两者的车辆数之比。
-
‘count’ 表示与车道数和道路长度有关的每小时生成车辆数。当该值为90时,此时地图中有一条5km长度的道路,该道路是2车道的,那么每小时会生成9025=900辆车。这样计算的话相当于每4秒生成一辆车(900/60/60=0.25车/s 4s*0.25车/s=1车)。
-
本文仅考虑Cars和Trucks在仅考虑汽车和货车的情况下,参数分别被设置为[(5,12),(5,8)]。
Part 3——其它交通路线

- 本文仅考虑Highway。
- Generate Scenario 生成场景’M:\Exe\Sumo\tools’下,所处文件夹以当前时间命名。
根据生成的osm文件重新定义仿真
cfg文件
.sumocfg 仿真主文件
仿真运行的逻辑模块
包括input, time, processing, routing, report, gui_only等部分,路径可以在调整后自己进行更改。
<input>
<net-file value="osm.net.xml"/> <!--路网文件-->
<route-files value="osm.passenger.trips.xml,osm.truck.trips.xml"/> <!--行程文件,包括乘客和货车两部分-->
</input>
<time>
<begin value="0"/>
<end value="81600"/>
<step-length value="0.01"/>
</time>
<processing>
<ignore-route-errors value="true"/> <!--定义路线错误的处理方式,如果车辆无法按照指定路线行驶,将不会导致仿真中止。-->
<collision.action value="remove"/> <!--定义碰撞后的处理方式,移除碰撞车辆-->
<collision.stoptime value="10"/> <!--定义碰撞后的处理方式-->
</processing>
<routing>
<device.rerouting.adaptation-steps value="18"

本文介绍了如何通过OSMWebWizard导入实景地图到Sumo中,讲解了底层逻辑,涉及区域选择、交通参数设定、osm文件转换、仿真配置和车辆生成等内容,旨在帮助读者掌握Sumo的高级用法。
最低0.47元/天 解锁文章
1400

被折叠的 条评论
为什么被折叠?



