SUMOチュートリアル「SUMOlympics」- ③信号と歩行者の設定
SUMOの複数の交通手段をシミュレーション上で動かすためのチュートリアル"SUMOlympics"のうち,信号と歩行者の設定部分を記録したものです. (SUMOのインストール,パスの設定は完了しているものとします.使用しているSUMOのバージョンは0.32.0です.)
- 各交通手段の専用車線の設定
- 各交通手段の車両や経路の設定
- 信号と歩行者の設定
1でネットワークファイルの作成,2でルートファイルの作成を行いました.今回は信号や歩行者などの追加の設定を行います.
信号の設定
エッジを分割している(エッジ"beg"と"end"の間にある)ノードに信号機を設定します.NETEDITを起動します.Terminalでnetedit ネットファイル名 で指定したネットファイルの編集ができます. " t "を押して信号の編集モードにします.
ノードをクリックし画面左側の編集画面で"Create TLS"で信号機を設置します.(TLS: Traffic Light Signal)Phasesのところで信号の設定を行います."rrrr"が赤信号,"GGGG"が緑信号,"yyyy"が黄信号で,左側の数字が秒数を表しています.今回は赤信号100秒,緑1000秒に設定します.(順番を間違えないように注意してください)
ここで一度シミュレーションを実行して,挙動を確認してみてください.
歩行者の設定
前回ルートファイルでflowを用いて数人の移動をまとめて設定しました.しかし歩行者の場合はflowが使えないので,Pythonで以下のようなコードを書き,一人ずつ設定します.
#ファイル名 makeSumolympicWalkers.py #parameters outfile = "sumolympicWalks.rou.xml" startEdge = "beg" endEdge = "end" departTime = 0. #time of departure departPos = -30. #position of departure arrivalPos = 100. #position of arrival numberTrips = 100 #number of persons walking #generate XML xml_string = "<routes>\n" for i in range(numberTrips): xml_string += ' <person depart="%f" id="p%d" departPos="%f" >\n' % (departTime, i, departPos) xml_string += ' <walk edges="%s %s" arrivalPos="%f"/>\n' % (startEdge, endEdge, arrivalPos) xml_string += ' </person>\n' xml_string += "</routes>\n" with open(outfile, "w") as f: f.write(xml_string)
Terminalで以下のコマンドを打ち,xmlファイルを出力します.
python makeSumolympicWalkers.py
出力した新しいxmlファイルをconfigファイル (sumolympics.sumocfg) に追記します.
... <route-files value="sumolympics.rou.xml,sumolympicWalks.rou.xml[f:id:ryonsd:20190808094838p:plain]"/> ...
ではシミュレーションを実行してみます.
これで歩行者も含め複数の交通手段の移動をシミュレーションできました.