引言
交通信號燈的控制是智能交通系統(tǒng)的核心問題之一鞭呕。本文主要介紹 SUMO 中交通信號燈的設(shè)置方法和各參數(shù)含義逃呼。詳細(xì)說明可以參考官網(wǎng)教程.
基本設(shè)置
traffic light 可以在 netedit 中設(shè)置蹬碧,也可以通過 additional file 的形式加入到仿真中香到。考慮如下的交通路口場景
additional file 中可以包含如下內(nèi)容:
<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>
其中崩掘,
- id 和 type 與 traffic_light 的 node id 和 type 對應(yīng)
- type 分為三種
static: fixed phase durations,
actuated: phase prolongation based on time gaps between vehicles
delay_based: on accumulated time loss of queued vehicles - programID 為該紅綠燈轉(zhuǎn)換機(jī)制的ID,一個 traffic light 可以有多個 program,以最后的 program 為準(zhǔn)戈擒。若要修改某個 net.xml 中的轉(zhuǎn)換機(jī)制,可以通過添加 add.xml 文件的方式用新的 program 覆蓋之前的 program艰毒。
phase 中各條 lane 的 index 是從12 點(diǎn)鐘方向 edge 的右轉(zhuǎn) lane 開始筐高,順時針方向,依次經(jīng)過中間的 lane丑瞧,左轉(zhuǎn) lane柑土,然后到下一個 edge, 依次編號。因此绊汹,圖中場景就對應(yīng)了 state: GrGr.
關(guān)于 顏色字母含義的說明:
r, y, G 這三個符號就對應(yīng)了我們最常用的 紅稽屏、黃、綠信號西乖。對于綠燈時左轉(zhuǎn)禮讓直行的情形狐榔,應(yīng)該將左轉(zhuǎn) lane 設(shè)置為 g坛增,即讓對面直行車輛先通過,再左轉(zhuǎn)薄腻。
actuated traffic light
除了上述固定時間的交通燈控制機(jī)制收捣,SUMO 還提供了更加智能的自適應(yīng)機(jī)制。
actuated traffic light 情況下交通燈可以檢測通過的車流庵楷,如果某條道路有持續(xù)的車流罢艾,則延長相應(yīng)道路上的綠燈時間,否則當(dāng)車輛之間的 time gap 超過一定時間尽纽,則轉(zhuǎn)到下一個 phase咐蚯。這是一種動態(tài)調(diào)整紅綠燈時長的機(jī)制。
為了使用 actuated traffic light蜓斧,可以把 tlLogic 的 type 設(shè)置為 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>
在這種設(shè)置下,還需要設(shè)置更多的參數(shù)挎春,其中
phase tag 要設(shè)置 minDur 和 maxDur看疙。如果只有 duration 或者 minDur==maxDur,則還是固定時長的 phase.
max-gap: 兩車最大時間間隔直奋,單位 s
detector-gap: 從 detector 到 stop line 的時間間隔能庆,以該 lane 的最大速度計算。
delay_based traffic light
除了上述 actuated 調(diào)節(jié)方式脚线,還有 delay_based 方式搁胆,這種機(jī)制是為了均衡各條道路的延遲,基本設(shè)置如下:
<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 設(shè)置為 delay_based邮绿。
detectorRange 為檢測范圍渠旁。如果車輛進(jìn)入該范圍,就計算其時間延遲 1-v/v_max船逮。
minTimeLoss: 如果道路的時間延遲積累超過該數(shù)值顾腊,則增加下次綠燈的時長。