ごく単純な交通信号機制御シミュレーターの設計
- 作成日 :
- 更新日 :
Vosegus Labs
交通信号機制御シミュレーターとは
交通量に応じて、信号の変わるタイミングを制御することで、交通渋滞を軽減することを目的としたシミュレーター。
評価
評価は、基準となる車がX地点からX地点に戻るまでにかかる時間で行う。
このページの上部へ
オブジェクトタイプ
信号機
- 車の移動を制限するオブジェクト
- 赤、黄色、青の三色
- 各色の点灯時間は各信号機毎にセット可能
- 場所はデフォルトでセットされており、後から追加は不可能
道路
- 車が走る範囲を制限するオブジェクト
- 最大2車線
- 左側通行
- 交差点では右左折フラグを持っており、そのフラグがランダムでセットされている
- 右左折フラグが1の時
- 斜線をまたがずに曲がる
- 右左折フラグが2の時
- 斜線をまたいで曲がる
- 右左折フラグが3の時
- 進行方向によって斜線をまたがずに曲がるか斜線をまたいで曲がる
- それ以外の時
- 直進
道路バリエーション([]はインスタンス生成時の引数とオブジェクトタイプの識別子)

車
- 道路上を移動するオブジェクト
- 信号機のある地点では、その色によって進行・停止する
- 信号機が青であればそのまま進む
- 黄色の場合はランダムで進行・停止する
- 赤色の場合は止まる
- 信号機の色の影響範囲は常に一定
- 信号機の前には停止地点がある
- 前方に車が無く、信号機が赤の場合は、停止地点で停止
- 信号機のフラグを受け取って進行方向によって、停止、進行続行を決定。
- 信号機が赤
- y[x]+ = 停止
- y[x]- = 進行
- 信号機が黄色
- y[x]+ = 進行 or 停止(ランダム)
- y[x]- = 進行 or 停止(ランダム)
- 信号機が青
- y[x]+ = 進行
- y[x]- = 停止
- 前方の車が停止している際は、前方の車と一定の距離を保って停止
- 右折、左折する際は減速(右折、左折する時間は右左折毎に一定)
- 交差点では道路の右左折フラグを感知し、その値に応じて曲がる
- 前方に車がある場合は、前方の車と一定の距離を保った速度で移動
- 前方に対向車があった際の右左折は、対向車の右左折到達地点までの時間が、右左折にかかる時間よりも大きい場合にのみ開始
- 右左折にかかる時間よりも小さい場合は一時停止
このページの上部へ
クラスの設計
信号機クラス
プロパティ
| setTimer[0]:Number |
赤信号の時間を設定 |
| setTimer[1]:Number |
黄色信号の時間を設定 |
| setTimer[2]:Number |
青信号の時間を設定 |
道路クラス
プロパティ
| breaksFlg:String |
[1 = 斜線をまたがずに曲がる] [2 = 斜線をまたいで曲がる] [3 = 進行方向によって斜線をまたがずに曲がるか斜線をまたいで曲がる] [それ以外の時 = 直進] |
車クラス
プロパティ
| currenttLine:Boolean |
現在の車線位置 [0 = 左車線] [1 = 右車線] |
| dire:Number |
進行方向を設定 [0 = 上] [1 = 右] [2 = 下] [3 = 左] |
| defaultLine:Boolean |
車線位置のデフォルト位置 [0 = 左車線] [1 = 右車線] |
| breaks:Boolean |
右左折を設定 |
| movement:Boolean |
進行・停止を設定 |
| hitCar:Boolean |
前方の車を検出 |
このページの上部へ