這部分教程通過traci實現行人過街演示程式。假設你已經熟悉了前面的第一部分的例子tutorials/traci4traffic_lights,知道如何建立車輛驅動控制器。
在本部分提到的所有檔案均可以在目錄/docs/tutorial/traci_pedestrian中,或者在新版的目錄:
/tests/complex/tutorial/traci_pedestrian_crossing/.
1、例子描述
這個指令碼包括乙個道路被人行路穿過人行通道通過訊號燈控制通行,通過觸發push-button的行人,改變訊號的轉換。為了模擬按動按扭的操作,假設行人到達時是紅燈的啟用按鈕。為防止車輛交通的不適當干擾,車輛的綠色期最少有15秒的綠燈時間。
為了執行程式,可以通過執行指令碼:
python runner.py1.1**控制邏輯寫在檔案runner.py中。它建立網路(通過betconvert),生成行人路由(通過randomtrips),通過**進行互動。它使用了繫結sumo的traci python apis。關於介面api的更多資訊可以閱讀:traci/inte***cing_traci_from_python。閱讀更多的函式列表,可以閱讀文件:pydoc generated documentation。
1.2交通燈控制
交通燈遵循固定的週期按照如下的定義。如下的**定義**於:pedcrossing.tll.xml
階段0被設定為非常大的值。這是車輛的綠色階段,並應在行人的情況下無限期延長。當在這個階段有行人被偵測到,交通訊號燈將會轉變到下乙個階段,然後自動迴圈。在traci中有關訊號燈的函式有traci.trafficlights.getphase()和traci.trafficlight.setphase()。1.3和traci函式有關的行人(personrelated traci functions)
為了模擬按鈕(行人的觸發),它必須知道是否行人正在等待交叉路口。以下的traci函式被利用的:
traci.edge.getlaststeppersonids():發現在交叉口的行人。
traci.person.getnextedge():去決定行人是否通過交叉口或者正在李凱交叉口;
traci.person.getwaitingtime():確定行人是否已到達十字路口,並被迫等待。
traci.edge.getlaststeppersonids()的輸入和traci.person.getnextedge()的輸出引用了對於**至關重要的網路元素(network elements)。在runner.py指令碼中定義為:
walkingareas = [':c_w0', ':c_w1']
crossings = [':c_c0']對於行人網路元素的描述,可以閱讀更多:simulation/pedestrians。
SUMO文件翻譯索引
sumo文件001 介紹 basic usage sumo文件002 notation sumo文件003 必要的計算機技能 sumo文件004 安裝sumo及簡單操作 sumo文件005 初級教程 上 sumo文件006 初級教程 下 sumo文件 軌跡檔案生成 以ns2為例 sumo文件007 ...
SUMO文件053 車輛進入
simulation vehicleinsertion 1 載入 車輛能夠通過xml檔案輸入或者通過traci在執行時載入。當從xml中載入時,並不是所有的車輛一次性全部載入。車輛是分批次載入的 chunks 批次的大小可以通過命令 route steps來控制。當進行長時間的 執行時,這樣做是為了...
sumo使用問題記錄
ubuntu 16.04,sumo 0.32.0 基本參照和中的過程安裝。不過在第6步的make時提示找不到 libgl so 檔案,通過locat命令可以找到該檔案,不過雙擊提示link broken。最終通過chmod 777取得資料夾許可權,並用另一台電腦上的libgl.so檔案替換掉損壞的檔...