r_nsdのブログ

r_nsdのブログ

勉強したこと・調べたこと・思ったことを残しておくためのブログ

MENU

SUMOチュートリアル「SUMOlympics」- ②各交通手段の車両や経路の設定&シミュレーション実行

SUMOの複数の交通手段をシミュレーション上で動かすためのチュートリアル"SUMOlympics"のうち,各交通手段の車両や経路の設定部分を記録したものです. (SUMOのインストール,パスの設定は完了しているものとします.使用しているSUMOのバージョンは0.32.0です.)

  1. 各交通手段の専用車線の設定
  2. 各交通手段の車両や経路の設定
  3. 信号と歩行者の設定

前回,ネットワーク("~.net.xml")を構築しました.今回は各交通手段の車両や経路を設定したルートファイル"~.rou.xml"を作り,シミュレーションを実行してみます.

車両の設定

rou.xmlファイルでは,以下のように車両タイプ "vType" を設定します.

<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="rail" 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"/>
</routes>

ここでは以下を設定しています.

  • id:車両タイプの名前
  • length:車両長 [m]
  • width:車両幅 [m]
  • maxSpeed:最大速度 [m/s]
  • accel:加速度 [m/s2]
  • decel:減速度 [m/s2]
  • sigma:ドライバーの非習熟度 (0~1.0に近づくほど習熟度が高い)
  • speedDev:車両ごとの速度の違い
  • vClass:車両の種類(ここでは車,バス,電車,自転車)

設定しない場合はデフォルトの値になります.デフォルトの値や車両タイプについてはこちらを参照してください.その他のパラメータについてはこちらを参照してください.

各車両の経路の設定

次に,先程設定した各交通手段に対して経路や乗車人数などを設定していきます. 今回は計100人を各交通手段に割り当てます. 上記のxmlファイルの...の間に以下を追記します.

...
<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="rail" type="rail" 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"/>
...

flow で複数人の移動をまとめて設定します.
ここでは以下を設定しています.

  • id:flowの名前
  • type:車両タイプ(設定したもの)
  • from:出発するエッジ
  • to:到着するエッジ
  • begin:出発時刻のインターバルの始め
  • end:出発時刻のインターバルの終わり(車両はbegin~endの間に出発する)
  • number:乗車人数
  • departPos:車両が出現する場所("last"はエッジの最終端を示す)

詳しくはこちらを参照してください.

シミュレーションの実行

これでシミュレーションに必要なnet.xmlとrou.xmlができたので,実際にシミュレーションを実行してみます. configファイル (sumolympics.sumocfg) を以下のように作成します.
inputとして作成したnet.xmlとrou.xmlを設定します.processing のlateral-resolution valueでは車線を何メートル間隔で区切るかを設定できます.ここでは1mで区切っています.こうすることで自転車の並列走行や追い越しなどがシミュレーションできます.

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

作成できたらTerminalで以下のコマンドを打ちシミュレーションを起動します.(sumo-guiではなくsumoを使うとGUIなしでシミュレーションします)

sumo-gui -c sumolympics.sumocfg

メニューバーのDelayを100に,カラーマップの横のstandardをreal worldにします.(SUMOはできるだけ速くシミュレーションを実行するのでDealyが0のままだとほぼ何も見えません.)そして実行ボタン(緑の三角)をクリックし,シミュレーションを実行します.

f:id:ryonsd:20190808085013p:plain これで複数交通手段のシミュレーションが実行できました.車線の上から電車,車,歩行者,自転車,バスです.

今回は歩行者を設定していないので,次回は歩行者の設定を行います.また信号機の設定も行います.