智能交通开发者专栏

SUMO 中的交通信号灯设置

2019-03-04  本文已影响0人  OurNote

引言

交通信号灯的控制是智能交通系统的核心问题之一。本文主要介绍 SUMO 中交通信号灯的设置方法和各参数含义。详细说明可以参考官网教程.

基本设置

traffic light 可以在 netedit 中设置,也可以通过 additional file 的形式加入到仿真中。考虑如下的交通路口场景

SUMO_tl1.png

additional file 中可以包含如下内容:

<additional>
   <tlLogic id="0" type="static" programID="0" offset="0">
   <phase duration="31" state="GrGr"/>
   <phase duration="6" state="yryr"/>
   <phase duration="31" state="rGrG"/>
   <phase duration="6" state="ryry"/>
   </tlLogic>
</additional>

其中,

phase 中各条 lane 的 index 是从12 点钟方向 edge 的右转 lane 开始,顺时针方向,依次经过中间的 lane,左转 lane,然后到下一个 edge, 依次编号。因此,图中场景就对应了 state: GrGr.

关于 颜色字母含义的说明:

SUMO_tl2.png

r, y, G 这三个符号就对应了我们最常用的 红、黄、绿信号。对于绿灯时左转礼让直行的情形,应该将左转 lane 设置为 g,即让对面直行车辆先通过,再左转。

actuated traffic light

除了上述固定时间的交通灯控制机制,SUMO 还提供了更加智能的自适应机制。

actuated traffic light 情况下交通灯可以检测通过的车流,如果某条道路有持续的车流,则延长相应道路上的绿灯时间,否则当车辆之间的 time gap 超过一定时间,则转到下一个 phase。这是一种动态调整红绿灯时长的机制。

为了使用 actuated traffic light,可以把 tlLogic 的 type 设置为 actuated,如下:

<tlLogic id="0" programID="my_program" offset="0" type="actuated">
   <param key="max-gap" value="3.0"/>
   <param key="detector-gap" value="2.0"/>
   <param key="show-detectors" value="false"/>
   <param key="file" value="NULL"/>
   <param key="freq" value="300"/>
​
   <phase duration="31" minDur="5" maxDur="45" state="GGggrrrrGGggrrrr"/>
 ...
</tlLogic>

在这种设置下,还需要设置更多的参数,其中

delay_based traffic light

除了上述 actuated 调节方式,还有 delay_based 方式,这种机制是为了均衡各条道路的延迟,基本设置如下:

<tlLogic id="0" programID="my_program" offset="0" type="delay_based">
   <param key="detectorRange" value="100" />
   <param key="minTimeLoss" value="1" />
   <param key="file" value="NULL"/>
   <param key="freq" value="300"/>
   <param key="show-detectors" value="false"/>
​
   <phase duration="31" minDur="5" maxDur="45" state="GGggrrrrGGggrrrr"/>
 ...
</tlLogic>

其中 type 设置为 delay_based。

上一篇下一篇

猜你喜欢

热点阅读