【SUMO利用ガイド18】信号機の設定編

1. 用語の基礎

  • TLS(Traffic Light System / Controller)
    信号機を動かすコントローラ本体。1つのTLSが1つ以上の交差点を同時に制御できます。
    InspectでJunctionを選ぶと出てくる tl(ID) がそのコントローラ名。
  • Phase(フェーズ/相)
    「信号表示のパターン」をまとめたひと区切り
    例:相1=南北直進G・東西rを31秒、相2=南北yを3秒…のように並べます。
      交通工学では青、黄、赤の3フェーズの1セットを1現示と呼ぶ。
  • State(状態文字列)
    フェーズごとに、各リンク(進行方向)へ与える信号色を文字で並べたもの。
    よく使うのはこの4つ:
    • G … 青(優先。止まらず進める)
    • g … 青(譲り青。対向優先など、注意して進む)
    • y … 黄
    • r … 赤
  • Link / Link Index(リンク/番号)
    交差点のレーン間接続1本が1リンク。各リンクには番号がふられており、stateはその順に並べます。
    表示:GUI右上の⚙アイコン → Junction表示 → show link tls index をオン。

2. かんたん操作

A. 交差点を「信号付き」にする

  1. Edit Traffic Lightモードに切り替える(ショートカットキー「T」)
  2. 信号を設置したい交差点をクリック
  3. Createボタン → その交差点に信号が設定されます。

B. フェーズを作る・時間と色を入れる

1.まずExpandをクリックして右に表示を広げます。

2.一番左がフェーズの番号です。画面では0フェーズから3フェーズまであります。

(※デフォルトでは全赤時間が入っていないので、追加が必要です。。)

3.その右が「dur」つまりDuration、そのフェーズの秒数を表します。

4.その右がstate(状態文字列)です。「GGGggrrrrgGGgrrrr」というのが信号の色の表示内容です。

 G … 青(優先。止まらず進める)
 g… 青(譲り青。対向優先など、注意して進む)
 y… 黄
 r… 赤
変更する際はマップ上で進行方向の線(リンク)を右クリックして色を変えます。

5.フェーズを追加する場合は緑の+ボタン、フェーズを削除する場合は✕ボタン、順序を入れ替える場合は↑↓をクリックして順番を入れ替えます。

6.リンクをまとめてスッキリ(グループ化)

      • Traffic LightsモードのGroup Signalsで、常に同じ表示にしたい複数リンクを束ねる。
        →Stateの欄を見ると、同じ動きをするリンクが束ねられて、表示が短くなっています。
        →Stateの一番下、Σ(シグマ)の行を見ると、Linksが13個あったのが、7個にまとめられて減っています。
      • 解除は隣のUngroup Sig.をクリック。

      3.【上級者編】センサー連動型(感応式)について

      NetEditだけでは「固定サイクル」の信号しか編集できません。
      しかし、SUMOのチュートリアルには 感応式(センサー連動型)信号 の方法が紹介されています。

      設定ファイル(.add.xml)
      テキストファイルに <tlLogic type="actuated"> を書いて保存し、SUMO実行時に追加ファイルとして読み込むと、検知器付きの感応式信号になります。
      → 車が続くと青を延長、途切れると切り替え、といった動きが再現できます。

      (参考)設定ファイルは、メモ帳を使い、以下のコードをactuated.add.xmlなどのファイル名で保存します。

      <additional>
        <tlLogic id="TLS1" type="actuated" programID="P1" offset="0">
          <param key="max-gap" value="3.0"/>
          <param key="jam-threshold" value="30"/>
          <phase duration="31" minDur="5" maxDur="45" state="GGggrrrrGGggrrrr"/>
          <phase duration="3" state="yyggrrrryyggrrrr"/>
        </tlLogic>
      </additional>

      TraCIによる制御
      PythonなどからAPIを使い、シミュレーション中に直接フェーズを切り替えることも可能です。
      → 押しボタン式横断歩道や、夜間は点滅・昼間は通常動作、といった特殊な信号制御も表現できます。


      など、まだ私は試したことが無いので、ニーズがあれば試してみてまたご紹介します。


      以上、信号機の設定でした。

      この設定の秒数ですが、皆さんどうしてますか?私は現地でストップウォッチで計ったりしました。ただし、時間帯によって秒数を変えているところが結構あるんですよね。コメントいただければ嬉しいです。


      次回予告

      いよいよ NetEdit 解説シリーズの最終回です。
      テーマは 「横断歩道と交差点形状の変更」

      • 歩行者横断歩道の追加・削除・位置調整
      • 交差点の角の丸み(radius)の変更
      • ノード形状の調整で交差点を見やすく・リアルにする
      • 実務でも重要な「歩行者動線」と「車の動線」の両立

      今回までで学んだ「エッジ・レーン・信号」に加えて、
      最後は 「人が渡る空間」と「交差点デザイン」 を整える操作を扱います。

      NetEditの基本操作をひと通りマスターできる締めくくりになるはずです。

      次回もお楽しみに!

      道路ラボをフォローすることで
      新しい記事が公開されたときに、メールでお知らせします。

      是非フォローしてください。

      お預かりしたメールアドレスに対して、無断で広告メールをお送りすることは一切ございません。
      個人情報の取扱いについては、[プライバシーポリシー]をご参照ください。

      コメントする

      メールアドレスが公開されることはありません。 が付いている欄は必須項目です

      上部へスクロール