🐈

SUMO 初心者向けチュートリアル(5)

2023/01/23に公開

SUMOlympics

https://sumo.dlr.de/docs/Tutorials/SUMOlympics.html
ここでは信号機を作成したり、様々な車両クラスを使用して車両タイプを定義する方法を扱う。

ここでは、以下の順序で作成していく。

  1. 2点のエッジによるネットワークの作成
  2. 歩道、自転車道、バス道、線路の追加
  3. .rou.xmlと.sumocfgの作成&コピペ
  4. 1.で作成したネットワークの2つのエッジの間にエッジを作成
  5. 信号機の追加

1. 2点のエッジによるネットワークの作成

では早速ネットワークを作成しよう。

id pos
beg 0, 0
end 1000, 0

最初に作成したレーンのidをbegと設定しよう。

2. 歩道、自転車道、バス道、線路の追加

ネットワークを作成できたら、歩道を追加しよう。

その要領で自転車道とバス道も追加しよう。

次にレールを敷きたいので、メニューバーの右上の方にあるclicks target lanesを選択し、ネットワークの一番上の黒色の道路をクリックすると、一つの車線を選択できる。

そこで、Duplicate laneを選択すると、1本道路が追加されただろう。

インスペクターモード(Modes>Inspector)で左下にHierarchyがあるだろう。
先ほど複製した道路を右クリックしてInspectをクリックしよう。

その次に、左側にいろいろなパラメータがあるがallowを選択しよう。
すると、下の画像のような画面が出るから、rail_urbanにだけチェックをつけてacceptを選択してOK!

次に1本ずつに対してwidthdefaultに設定すれば次の画像のようになるはず。

これをsumolympics.net.xmlと保存しよう。

3. .rou.xmlと.sumocfgの作成&コピペ

次に、先ほど保存したファイルと同じディレクトリ内にsumolympics.rou.xmlを作成しよう。
sumolympics.rou.xmlに次のプログラムをコピペしよう。

<routes>
    <vType id="pkw" length="5" maxSpeed="50" accel="2.6" decel="4.5" sigma="0.2" speedDev="0.2" vClass="passenger"/>
    <vType id="bus" length="15" maxSpeed="30" accel="1.2" decel="2.5" sigma="0.1" speedDev="0.1" vClass="bus"/>
    <vType id="tram" length="40" maxSpeed="13" accel="0.8" decel="0.5" sigma="0.1" speedDev="0.1" vClass="rail_urban"/>
    <vType id="bike" length="1.8" width="0.8" maxSpeed="7.5" accel="0.8" decel="1.5" sigma="0.5" speedDev="0.5" vClass="bicycle"/>
    <vType id="pedestrian" length="0.3" width="0.5" maxSpeed="2.0" accel="0.2" decel="1.5" sigma="0.2" speedDev="0.2" vClass="pedestrian"/>
    
    <flow id="pkw" type="pkw" from="beg" to="end" begin="0" end="0" number="66" departPos="last"/>
    <flow id="bus" type="bus" from="beg" to="end" begin="0" end="0" number="5" departPos="last"/>
    <flow id="tram" type="tram" from="beg" to="end" begin="0" end="0" number="2" departPos="last"/>
    <flow id="bike" type="bike" from="beg" to="end" begin="0" end="0" number="100" departPos="last"/>

    <personFlow id="pedestrian" type="pedestrian" begin="0" end="0" number="100" departPos="-30">
       <walk from="beg" to="end" arrivalPos="-0.1"/>
    </personFlow>
</routes>

最後にsumolympics.sumocfgを作成し、次のプログラムをコピペしよう。

<configuration>
   <input>
       <net-file value="sumolympics.net.xml"/>
       <route-files value="sumolympics.rou.xml"/>
   </input>
   <processing>
    <lateral-resolution value="1." />
   </processing>
</configuration>

4. 1.で作成したネットワークの2つのエッジの間にエッジを作成

任意の場所のレーンを右クリックして、Split edge hereを選択するとエッジが追加されただろう。

追加したエッジのidは変更しなくてよいが、左側のレーンのidをbeg、右側をendとしよう。

5. 信号機の追加

ここまでくれば簡単で、メニューバーにあるSet traffic light modeを選択し、先ほど追加したエッジをクリックして、左メニューにあるCreateを押せばOK!

お疲れさま。
最初のレーンを作れさえすれば簡単だと思う(めちゃくちゃ詰まった)。

Discussion