以下、本発明をその実施の形態を示す図面に基づいて説明する。図1は本発明に係る交通信号制御機100を備えた路車協調システムの構成の一例を示す模式図である。図1に示すように、交通信号制御機100は、交差点に設置された信号灯器200の灯色を制御する。この場合、交通信号制御機100は、交差点の上流側に設置された感知器(不図示)等で感知した車両の交通量などの交通状況に応じて、信号灯器200の灯色の切替タイミングを調整する。そして、交通信号制御機100は、信号灯器200の灯色の切替タイミング情報(信号情報)を、例えば、毎秒、あるいは数秒経過の都度、情報中継判定装置400を介して情報提供装置300へ出力(送信)する。情報提供装置300は、交通信号制御機100から出力された切替タイミング情報(信号情報)を、所定時間の経過の都度(例えば、100m秒など)車両500へ送信する。これにより、車両500は、取得した信号情報に基づいて自動走行制御を行うことができ、あるいは取得した信号情報を表示して運転者に提供することができる。
図2は本発明に係る交通信号制御機100の構成の一例を示すブロック図である。図2に示すように、交通信号制御機100は、信号情報の出力部としてのCPU10、灯色制御部としての灯色制御回路20、信号情報を送信する情報送信部30、現示データメモリ40、信号灯器200の灯色を手動操作により制御するための操作部としての操作パネル51、文字又は音声等により保守員や警察官などの手動操作を行うオペレータに対する情報を通知する通知部としての表示パネル52などを備えている。なお、操作パネル51には、例えば、手動ボタン、あるいは、手動操作開始スイッチなどを備えている。操作パネル51で操作を受け付けるとは、例えば、手動ボタンで操作を受け付ける場合、あるいは、手動ボタンを有効にするための手動操作開始スイッチで手動操作をオンに設定する場合などがある。
CPU10は、交通信号制御機100全体の制御を行うものであり、プログラムコードにより動作を決定するように構成してある。すなわち、CPU10は、CPU10で実行されるプログラムコードを備え、プログラムコードの各コマンド(命令)をCPU10で順次解釈し実行することにより、プログラムコードで定められた処理手順に従った演算処理を行う。また、CPU10には、オペレーティングシステムを搭載してあってもよく、この場合には、CPU10での演算処理は、基本プログラムであるオペレーティングシステム(OS)とアプリケーションプログラムとから構成されるソフトウエアによる処理で実現される。
CPU10は、歩進指令を灯色制御回路20へ出力する。歩進指令は、信号灯色の表示ステップを次のステップに進めるための指令である。また、CPU10は、歩進予定情報(信号灯色の表示時間情報)を繰返し(例えば、毎秒、数秒経過の都度など)生成して灯色制御回路20へ出力する。歩進予定情報は、例えば、信号灯器200の現在ステップにおける残り表示時間及び将来ステップにおける表示時間である。表示時間は、下限時間と上限時間の2つの時間からなる範囲で表現される。
灯色制御回路20は、ハードウエア回路自体の構成により動作を決定するように構成してある。すなわち、灯色制御回路20は、例えば、ゲートアレイやLUTで構成されるFPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)、あるいはASIC(Application Specific Integrated Circuit)などを備え、コマンドを順次解釈して実行するものではなく、予め定められた論理回路構成により所定の演算処理を行う。
灯色制御回路20は、最短時間監視タイマ21、最長時間監視タイマ22、第2判定部としての歩進受付回路23、下限監視タイマ24、上限監視タイマ25、第1判定部、更新部、無効部としての予定情報判定回路26、予定情報記憶部27、ステップカウンタ28、灯色出力選択回路29、手動操作判定回路50などを備えている。
歩進受付回路23は、後述する予定情報判定回路26での判定結果により下限監視タイマ24及び上限監視タイマ25にセットされた下限時間及び上限時間を用いて、CPU10からの歩進指令の正誤を判定する。すなわち、歩進受付回路23は、CPU10からの歩進指令を受け付けて、ステップカウンタ28へカウントアップ指令を出力する。ただし、歩進受付回路23は、最短時間監視タイマ21からの最短時間監視中信号、あるいは下限監視タイマ24からの下限監視中信号が入力されている場合には、CPU10からの歩進指令は無視する。
また、歩進受付回路23は、最長時間監視タイマ22からのタイムアウト信号、あるいは上限監視タイマ25からの上限タイムアウト信号を受け取った場合、CPU10からの歩進指令がない場合でも、ステップカウンタ28へカウントアップ指令を送信する。
ステップカウンタ28は、動作ステップを計数(カウント)する。歩進受付回路23からのカウントアップ指令により、カウントを進める。信号灯色のステップの最終ステップでカウントアップ指令を受付けた場合、ステップカウンタ28は、ステップを最初のステップ1に戻す。また、ステップカウンタ28は、カウントを変更した場合、タイマの初期化(再計時)指令を最長時間監視タイマ22及び最短時間監視タイマ21へ出力する。
最短時間監視タイマ21は、ステップカウンタ28が変化してからの時間を計時する。最短時間監視タイマ21は、計時時間が最短監視時間内である場合、最短時間監視中信号を歩進受付回路23へ出力する。また、最短時間監視タイマ21は、計時時間が最短監視時間を過ぎた場合、最短時間監視中信号の出力を停止する。
最長時間監視タイマ22は、ステップカウンタ28が変化してからの時間を計時する。最長時間監視タイマ22は、計時時間が最長監視時間を過ぎた場合、タイムアウト信号を歩進受付回路23へ出力する。
現示データメモリ40は、ステップ毎の灯色点灯情報と監視時間情報(例えば、最短監視時間、最長監視時間など)を記憶している。ステップカウンタ28から入力されるステップ情報に基づいて、対応する灯色点灯情報が灯色出力選択回路29へ出力され、また、最短監視時間が最短時間監視タイマ21へ出力され、最長監視時間が最長時間監視タイマ22へ出力される。
灯色出力選択回路29は、灯色点灯情報に基づいて点灯指令又は滅灯指令を信号灯器200へ出力する。
予定情報判定回路26は、CPU10から歩進予定情報(表示時間情報)を受け取る。歩進予定情報は、例えば、信号灯器200の現在ステップにおける残り表示時間及び将来ステップにおける表示時間であり、表示時間は、下限時間と上限時間の2つの時間からなる時間範囲で表現することができる。
予定情報判定回路26は、CPU10が生成した先後の表示時間情報(すなわち、歩進予定情報)同士の正誤を判定する。ここで、先後は過去と現在である。例えば、予定情報判定回路26は、先に(以前に)取得した歩進予定情報と後(今回)取得した歩進予定情報との間で矛盾がないかどうか(例えば、後に取得した歩進予定情報の表示時間の時間範囲が、先に取得した歩進予定情報の表示時間の時間範囲よりも広がっていないかどうか)を判定する。
予定情報判定回路26は、両者に矛盾がない場合(すなわち、後の歩進予定情報が正しい場合)には、歩進予定情報を予定情報記憶部27に記憶するととともに、現在ステップ残り時間の下限時間を下限監視タイマ24にセットし、現在ステップ残り時間の上限時間を上限監視タイマ25にセットする。
両方の歩進予定情報に矛盾がある場合(すなわち、後の歩進予定情報が誤っている場合)には、CPU10に何らかの異常が発生したことを検知することができる。予定情報判定回路26は、判定結果(すなわち、矛盾の有無)をCPU10へ出力する。
予定情報判定回路26は、判定結果(すなわち、矛盾の有無)に基づいて、送信許可信号を情報送信部30へ出力する。すなわち、予定情報判定回路26は、先後の歩進予定情報に矛盾がない(正しい)場合のみ、情報送信部30が信号情報を情報提供装置へ送信することを許可する送信許可を出力する。
予定情報判定回路26は、手動操作判定回路50からの手動操作要求を取得した場合、CPU10へ手動操作要求信号を出力する。また、予定情報判定回路26は、CPU10からの手動操作許可指令又は手動操作禁止指令を取得し、手動操作判定回路26へ許可信号又は禁止信号を出力する。
予定情報記憶部27は、CPU10から取得した歩進予定情報を記憶している。
下限監視タイマ24は、タイマに下限時間がセットされた場合、セットされた時間からカウントダウン計時する。計時時間がゼロより大きい場合は、下限監視中信号を歩進受付回路23へ出力する。
上限監視タイマ25は、タイマに上限時間がセットされた場合、セットされた時間からカウントダウン計時する。計時時間がゼロになった場合、上限タイムアウト信号を歩進受付回路23へ出力する。
手動操作判定回路50は、操作パネル51を介して警察官や保守員により手動操作が実施された場合、手動操作要求信号を予定情報判定回路26へ出力する。
手動操作判定回路50は、予定情報判定回路26から手動操作に対する許可信号を取得した場合、CPU10からの歩進指令を禁止するとともに、最短時間監視タイマ21及び最長時間監視タイマ22をクリアする。これにより、常に手動操作判定回路50からの歩進指令が歩進受付回路23で受付けられる。また、手動操作判定回路50は、手動操作による灯色制御が可能になった旨の情報を表示パネル52へ出力する。また、手動操作判定回路50は、操作パネル51での手動操作に応じた手動信号を歩進受付回路23へ出力する。これにより、操作パネル51での手動操作に応じて信号灯器200の灯色を制御することができる。例えば、手動ボタンを1回押す毎に歩進指令を歩進受付回路23へ指令することにより、ステップカウンタ28を1つ進めることができる。
手動操作判定回路50は、予定情報判定回路26から手動操作に対する禁止信号を取得した場合、手動操作を行うことを待つ旨の情報を表示パネル52へ出力する。
情報送信部30は、歩進受付回路23、予定情報判定回路26からの送信許可が入力されている場合に、CPU10からの信号情報(例えば、信号灯器200の灯色の切替タイミング情報)を情報提供装置へ送信する。
次に、本発明に係る交通信号制御機100の動作について説明する。図3は信号灯器200が設置された交差点の模式図であり、図4は現示データメモリ40の内容の一例を示す説明図である。図4に示すように、現示データメモリ40には、車両用信号灯1V(例えば、主方向)及び車両用信号灯2V(例えば、交差方向)における灯色点灯情報、監視時間(最短監視時間、最長監視時間)などがステップ毎に記憶されている。なお、歩行者用信号灯の灯色点灯情報を含めることもできる。
ステップカウンタ28は、動作ステップをカウントしており、動作ステップが1の場合は、現示データメモリのステップ1の灯色点灯情報(図4の例では、信号灯1Vを青点灯、信号灯2Vを赤点灯)が灯色出力選択回路29へ出力され、灯色出力選択回路29からの指令により対応する信号灯1Vは青点灯、信号灯2Vは赤点灯を行う。
ステップカウンタ28は、CPU10からの歩進指令が歩進受付回路23に入力され、歩進受付回路23からステップカウンタ28へカウントアップ指令が出力されることにより、カウントアップされる。動作ステップが1の場合は、ステップ1が始まってから最短監視時間(図4の例では6秒)〜最長監視時間(図4の例では110秒)の時間範囲内に、CPU10からの歩進指令を歩進受付回路23が取得すると、ステップカウンタ28は、ステップ2にカウントアップされる。
ステップ2になった場合、現示データメモリ40はステップ2の灯色点灯情報(図4の例では、信号灯1Vを黄点灯、信号灯2Vを赤点灯) が灯色出力選択回路29へ出力され、灯色出力選択回路29からの指令により対応する信号灯1Vは黄点灯、信号灯2Vは赤点灯となる。
なお、歩進受付回路23は、最短監視時間以内に入力された歩進指令を無視する。また、歩進受付回路23は、最長監視時間になってもCPU10から歩進指令が入力されない場合は、歩進受付回路23が自らカウントアップ指令をステップカウンタ28へ出力する。
次に、歩進予定情報の更新動作について説明する。CPU10は、感知器(不図示)等から得られる交通状況をもとに、歩進予定情報を繰返し生成し、生成した歩進予定情報を予定情報判定回路26へ出力する。
図5は歩進予定情報の一例を示す説明図である。図5に示すように、歩進予定情報(信号灯色の表示時間情報)は、現在ステップの残表示時間の下限値及び上限値、次ステップの表示時間の下限値及び上限値、次々ステップの表示時間の下限値及び上限値などの情報を含んでいる。なお、図5の例では、次々ステップまでの表示時間情報しか例示していないが、次々ステップよりも後のステップを含めることもできる。
図5の例は、現在表示中のステップから次のステップへと歩進するタイミングが10.0秒〜25.0秒の範囲であることを示している。さらに、次ステップの表示時間が3.0秒〜5.0秒の範囲であること、次々ステップの表示時間が4.0秒〜4.0秒の範囲(すなわち、4.0秒)であることを示している。なお、下限値と上限値が一致している場合は、歩進タイミングが確定していることを示す。
また、予定情報判定回路26は、先の歩進予定情報を、現時点から遡って5秒前に取得し、内部情報を更新していたとする。図6は先の(5秒前)の歩進予定情報を示す説明図である。5秒前の内部情報の更新の際に、予定情報判定回路26は、下限監視タイマ24に現在ステップ残表示時間の下限値である13.0秒をセットし、上限監視タイマ25に現在ステップ残表示時間の上限値である25.0秒をセットしている。
図7は現時点の内部情報を示す説明図である。内部情報が5秒前に更新され、その時点から現時点まで5秒経過しているので、下限監視タイマ24のタイマ値は、5秒前にセットされた13.0秒から経過時間である5秒を減算した8.0秒になっている。また、上限監視タイマ25のタイマ値は、5秒前にセットされた25.0秒から経過時間である5秒を減算した20.0秒になっている。
予定情報判定回路26は、現時点(後)で取得した歩進予定情報(図5の例)と、前回(先に)取得して先後の時間差(例えば、5秒)に応じて更新された歩進予定情報(図7の例)との間に矛盾がないかを判定する。現在ステップの残表示時間が矛盾しない(正しい)ための判定条件は、現在ステップ残表示時間の範囲が、前回取得した歩進予定情報の現在ステップ残表示時間の下限値及び上限値から経過秒数を減算した値、つまり、現在内部情報の下限監視タイマ値〜上限監視タイマ値の範囲内であることである。
すなわち、現在ステップ残表示時間が正しい(矛盾しない)と判定することができるためには、以下の判定式を満足する必要がある。
下限監視タイマ値≦取得した現在ステップ残表示時間下限値≦取得した現在ステップ残表示上限値≦上限監視タイマ値…(式1)
図5、図7の例を式(1)に当てはめると、下限監視タイマ値が8.0秒、取得した現在ステップ残表示時間下限値が10.0秒、取得した現在ステップ残表示上限値が25.0秒、上限監視タイマ値が20.0秒となり、現在ステップ残表示時間の上限値が上限監視タイマ値以下という関係を満たさないため、今回取得した歩進予定情報は、前回取得した歩進予定情報と矛盾があることになる。
この場合、予定情報判定回路26は、CPU10に異常が発生したと判定し、CPU10に対して、歩進予定情報を受け付けることができないことを示す「受付不可」(判定結果)出力するとともに、現在ステップ残表示時間の上限値が異常であること(判定結果)を出力する。また、予定情報判定回路26は、今回取得した歩進予定情報を破棄して採用しないようにする。
CPU10は、「受付不可」であることを予定情報判定回路26から取得した場合、生成した歩進予定情報を破棄し、今回生成した歩進予定情報は使用せずに前回生成した歩進予定情報に基づいて、信号情報を生成し、生成した信号情報を情報送信部30へ出力する。また、CPU10は、「受付不可」であった理由(上述の例では、現在ステップ残表示時間の上限値が異常)を解消すべく、再度、歩進予定情報を生成して予定情報判定回路26へ出力する。なお、異常時の再度の歩進予定情報の生成は、正常時の歩進予定情報の生成タイミング(例えば、毎秒、数秒)に比べて短い時間(例えば、数十m秒など)の間に行われる。
図8は再度生成された歩進予定情報を示す説明図である。CPU10は、今回生成した歩進予定情報が受付不可であった場合、再度、図8に示す歩進予定情報を生成して予定情報判定回路26へ出力する。
予定情報判定回路26は、図7、図8の例を式(1)に当てはめて、再度生成された歩進予定情報に矛盾がないか判定する。図7、図8の例を式(1)に当てはめると、下限監視タイマ値が8.0秒、取得した現在ステップ残表示時間下限値が10.0秒、取得した現在ステップ残表示上限値が18.0秒、上限監視タイマ値が20.0秒となり、式(1)を満たすことがわかる。
続いて、予定情報判定回路26は、次ステップ表示時間と次々ステップ表示時間の判定を順に行う。これらの表示時間については、前回取得した歩進予定情報に矛盾しないためには、以下の判定条件としての式(2)を満足する必要がある。
予定情報記憶部27の下限値≦取得した表示時間の下限値≦取得した表示時間の上限値≦予定情報記憶部27の上限値…(2)
図7及び図8の例を式(2)に当てはめると、次ステップ表示時間については、予定情報記憶部27の下限値が3.0秒、取得した次ステップ表示時間の下限値が3.0秒、取得した次ステップ表示時間の上限値が5.0秒、予定情報記憶部27の上限値が5.0秒となり、式(2)を満たすことがわかる。
また、次々ステップ表示時間については、予定情報記憶部27の下限値が3.0秒、取得した次ステップ表示時間の下限値が4.0秒、取得した次ステップ表示時間の上限値が4.0秒、予定情報記憶部27の上限値が5.0秒となり、式(2)を満たすことがわかる。
以上の判定結果により、今回取得した歩進予定情報は前回取得した歩進予定情報に矛盾しないものであると判定することができ、CPU10が異常状態から正常状態に復帰したことを検知できたので、予定情報判定回路26は、CPU10に対して、「受付完了」を送信するとともに、前回(先)に取得していた歩進予定情報を今回(後に)取得した歩進予定情報に更新することにより内部情報の更新を行う。
内部情報の更新としては、下限監視タイマ24の値を現在ステップ残表示時間の下限値(図8の例では、10.0)に更新し、上限監視タイマ25の値を現在ステップ残表示時間の上限値(図8の例では、18.0秒)に更新し、予定情報記憶部27の次ステップ表示時間及び次々ステップ表示時間の下限値及び上限値を、今回取得した歩進予定情報の次ステップ表示時間及び次々ステップ表示時間の下限値及び上限値に更新する。
図9は更新後の内部情報を示す説明図である。更新後の内部情報は、予定情報記憶部27に記憶される。図9に示すように、内部情報は、今回取得した歩進予定情報(図8)の内容で更新されている。
次に、歩進動作について説明する。下限監視タイマ24と上限監視タイマ25は、歩進予定情報取得時に現在ステップ残表示時間の下限時間及び上限時間がセットされた後、時間経過とともにカウントダウンされる。
図10はタイマ値と歩進指令の状態を示す説明図である。図10の例では、下限監視タイマ24にタイマ値として5.0秒がセットされ、上限監視タイマ25にタイマ値として10.0秒がセットされた場合を示す。なお、セットされるタイマ値は一例であって、これに限定されるものではない。そして、図10に示すように、時間経過(図10の例では0.1秒経過の都度の状況を例示している)に応じて、タイマ値が変化する。
下限監視タイマ24は、タイマ値が0.0秒より大きい場合に、下限監視中信号をオンとし、タイマ値が0.0秒になると下限監視中信号をオフとする。
また、上限監視タイマ25は、タイマ値が0.0秒より大きい場合に、上限タイムアウト信号をオフとし、タイマ値が0.0秒になると上限タイムアウト信号をオンとする。
下限監視中信号と上限タイムアウト信号は、歩進受付回路23へ出力されている。歩進受付回路23は、下限監視中信号、上限タイムアウト信号、最短時間監視タイマ21から入力される最短時間監視中信号、及び最長時間監視タイマ22から入力されるタイムアウト信号を用いて、CPU10からの歩進指令の正誤を判定して受付処理を行う。
歩進受付回路23は、CPU10からの歩進指令を取得した場合に、最短時間監視中信号がオフであり、かつ下限監視中信号がオフ(下限監視タイマ値=0)のときには、歩進指令を受け付ける。この時、歩進受付回路23は、ステップカウンタ28を一つ進めるとともに、内部情報を更新する。
この場合、内部情報の更新は、以下の通り行う。なお、以下の説明では、予定情報記憶部27に次々ステップ表示時間まで記憶しているとするが、これに限定されるものではない。すなわち、歩進予定情報の次ステップ表示時間下限値を下限監視タイマ値とし、歩進予定情報の次ステップ表示時間上限値を上限監視タイマ値とする。また、次々ステップ表示時間下限値を次ステップ表示時間下限値とし、次々ステップ表示時間上限値を次ステップ表示時間上限値とする。また、次々の次のステップの表示時間下限値を次々ステップ表示時間下限値とし、次々の次のステップの表示時間上限値を次々ステップ表示時間上限値とする。
歩進受付回路23は、CPU10からの歩進指令を取得した場合に、最短時間監視中信号がオン、または下限監視中信号がオン(下限監視タイマ値>0)であるときには、情報提供装置へ提供した歩進予定情報の残表示時間の範囲外のタイミングで歩進指令が入力されたということで、歩進指令を無視し(採用しない)、歩進不可信号をCPU10及び情報送信部30へ出力する。
情報送信部30は、歩進不可信号を取得した場合、CPU10が誤ったタイミングで歩進指令を出力したことから、提供する信号情報に含まれる信号灯色の切替タイミングと実際に灯色制御される切替タイミングとが矛盾することがないように、信号情報の送信を停止する。なお、信号情報の出力の停止には、例えば、信号情報自身の出力を停止する場合、あるいは、信号情報は出力するものの、予定秒数等の信号情報の内容を不明や不定として出力する場合などがある。また、情報送信部30の信号情報の送信停止は、歩進受付回路23が、CPU10から正しい歩進指令が出力された時点で解除され、信号情報の送信が再開される。
また、歩進受付回路23は、CPU10からの歩進指令が入力されないまま最長時間監視タイムアウト信号がオンになった場合、あるいは、上限タイムアウト信号がオン(上限監視タイマ値=0)となった場合には、提供した歩進予定情報の上限値に達したので、強制的に歩進処理を行う。歩進受付回路23は、この場合、ステップカウンタ28を一つ進めて内部情報の更新を行う。
以上の仕組みにより、歩進予定情報の現在ステップ残表示時間の下限値から上限値の範囲内で歩進させることを保証することができる。
また、CPU10が異常であると判定した場合に、CPU10で生成した歩進予定情報や歩進指令を採用しないようにし、CPU10が正常であるときの歩進予定情報や歩進指令を採用すれば、CPU10による誤った動作を防止することができ、異常時においても動作を保証することができ、信号灯器の実際の表示とは変化タイミングが異なる信号情報が提供されることを防止することができる。また、CPU10の異常をハードウエア回路で構成された灯色制御回路20で判定する構成としているので、CPU10の正常、異常を正確に検知することができ、装置の動作保証を確実にして信頼性を高めることができる。
また、CPU10にオペレーティングシステムを搭載している場合には、複雑で高度なアプリケーションをマルチタスク環境で容易に構築可能であり、地点感応制御や需要予測制御など制御方式を高度化したソフトウエアに柔軟に対応することができる。例えば、OSを搭載したマルチタスク環境のアプリケーションソフトウエアの場合には、処理の順番や処理時間に揺らぎやバラツキが発生するケースがあり、本来処理されるべき時間内に処理が間に合わない、あるいは通常よりも早く処理が終了するといったケースや、想定されている順番とは異なる順番で処理が行われることで通常とは少し異なる処理結果となるケースがあり得る。また、ソフトウエアの場合には、装置の設置後に、ソフトウエアの機能追加や変更を行った上で、当該修正ソフトウエアを装置に再インストールするというケースも多く、容易に更新を行うことができる反面、追加・変更等した機能によって、設置した当初に期待された動作とは異なる動作となってしまうこともあり得る。したがって、信号情報のように装置外部に正しい情報を正しいタイミングで出力することについての必要性が高い情報については、その内容の正確性を担保するための仕組みをハードウエア(灯色制御部)に持たせることが好ましい。なお、このような仕組みをソフトウエアで実現することも可能であり、その場合には、情報内容のチェックを、通常の処理を行うタスクよりも優先順位の高いタスクで行ったり、割り込み処理などで行ったりすることが好ましい。また、ソフトウエアとハードウエアの双方でダブルチェックする仕組みを採用してもよい。
また、信号灯色の切り替わりタイミングが交通状況等により変更になる場合でも、先の決定された歩進予定情報の時間範囲を越えないように後の歩進予定情報を決定することができるので、一旦決定された表示時間範囲外で信号灯色が切り替わるという事態を防ぎ、運転者や車両に不測の事態を発生させることも防止することができる。また、一旦決定された表示時間範囲内であれば限度時間が変化しても不測の事態を発生させることもない。
図11はCPU10の処理手順の一例を示すフローチャートである。CPU10は、歩進予定情報を生成し(S101)、生成した歩進予定情報を灯色制御回路20へ出力する(S102)。CPU10は、灯色制御回路20から歩進予定情報の判定結果を取得したか否かを判定し(S103)、取得していない場合(S103でNO)、ステップS103の処理を続ける。
灯色制御回路20から歩進予定情報の判定結果を取得した場合(S103でYES)、CPU10は、受付可であるか否かを判定し(S104)、受付可の場合(S104でYES)、生成した歩進予定情報を確定する(S105)。受付不可の場合(S104でNO)、CPU10は、生成した歩進予定情報を破棄し生成前(前回)の歩進予定情報を確定する(S106)。歩進予定情報を確定することにより、CPU10が正常なときに生成した歩進予定情報を採用することができる。
CPU10は、確定した歩進予定情報に基づいて信号情報を生成し(S107)、生成した信号情報を情報提供装置へ送信し(S108)、処理を終了する。なお、上述の処理は、繰返し行うことができる。
図12はCPU10の処理手順の他の例を示すフローチャートである。図11の処理との違いは、生成した歩進予定情報が誤っていた場合に、信号情報の送信を中止して再度歩進予定情報を生成する点である。
CPU10は、歩進予定情報を生成し(S121)、生成した歩進予定情報を灯色制御回路20へ出力する(S122)。CPU10は、灯色制御回路20から歩進予定情報の判定結果を取得したか否かを判定し(S123)、取得していない場合(S123でNO)、ステップS123の処理を続ける。
灯色制御回路20から歩進予定情報の判定結果を取得した場合(S123でYES)、CPU10は、受付可であるか否かを判定し(S124)、受付可の場合(S124でYES)、生成した歩進予定情報を確定する(S125)。受付不可の場合(S124でNO)、CPU10は、信号情報の送信を中止し(S126)、ステップS121以降の処理を続ける。
CPU10は、確定した歩進予定情報に基づいて信号情報を生成し(S127)、生成した信号情報を情報提供装置へ送信し(S128)、処理を終了する。なお、上述の処理は、繰返し行うことができる。
図13は灯色制御回路20の歩進予定情報の判定処理手順の一例を示すフローチャートである。灯色制御回路20は、CPU10から歩進予定情報を取得したか否かを判定し(S201)、取得していない場合(S201でNO)、ステップS201の処理を続ける。CPU10から歩進予定情報を取得した場合(S201でYES)、灯色制御回路20は、手動操作要求があるか否かを判定する(S202)。
手動操作要求がない場合(S202でNO)、灯色制御回路20は、現在ステップの残表示時間が正しいか否かを判定する(S203)。
現在ステップの残表示時間が正しい場合(S203でYES)、灯色制御回路20は、次ステップの表示時間が正しいか否かを判定し(S204)、次ステップの表示時間が正しい場合(S204でYES)、次々ステップの表示時間が正しいか否かを判定する(S205)。
次々ステップの表示時間が正しい場合(S205でYES)、灯色制御回路20は、歩進予定情報に矛盾がなく、受付可と判定し(S206)、受付可であることをCPU10へ出力する(S207)。灯色制御回路20は、内部情報を更新し(S208)、処理を終了する。
現在ステップの残表示時間が正しくない場合(S203でNO)、次ステップの表示時間が正しくない場合(S204でNO)、あるいは次々ステップの表示時間が正しくない場合(S205でNO)、灯色制御回路20は、歩進予定情報に矛盾があると判定して、受付不可と判定する(S209)。灯色制御回路20は、受付不可であることをCPU10へ出力し(S210)、処理を終了する。
手動操作要求があった場合(S202でYES)、灯色制御回路20は、手動操作に従って歩進処理を行い(S211)、処理を終了する。
図14は歩進予定情報を用いた場合における灯色制御回路20の歩進処理手順の一例を示すフローチャートである。灯色制御回路20は、手動操作要求があるか否かを判定し(S220)、手動操作要求がない場合(S220でNO)、CPU10からの歩進指令の有無を判定し(S221)、歩進指令があった場合(S221でYES)、最短時間監視中信号がオンであるか否かを判定する(S222)。最短時間監視中信号がオフである場合(S222でNO)、灯色制御回路20は、最短時間監視タイマ21による監視時間は終了(歩進指令は一応有効)したとして、下限監視タイマ24の下限値が0より大きいか否かを判定する(S223)。
下限監視タイマ24のタイマ値が0より大きくない場合(S223でNO)、灯色制御回路20は、下限監視タイマ24による監視時間は終了(歩進指令は有効)したとして、ステップカウンタ28をカウントアップして歩進を実施する(S224)。
灯色制御回路20は、上限監視タイマ25のタイマ値を次ステップ上限時間で、下限監視タイマ24のタイマ値を次ステップ下限時間で更新し(S225)、予定情報記憶部27の次ステップ表示時間を次々ステップ表示時間で、次々ステップ表示時間を次々々ステップ表示時間で更新する(S226)。
最短時間監視中信号がオンである場合(S222でYES)、あるいは、下限監視タイマ24のタイマ値が0より大きい場合(S223でYES)、灯色制御回路20は、歩進不可信号をCPU10へ出力する(S227)。
CPU10から歩進指令がない場合(S221でNO)、灯色制御回路20は、最長時間監視タイムアウト信号がオンであるか否かを判定し(S228)、最長時間監視タイムアウト信号がオンである場合(S228でYES)、タイムアウト異常信号を出力し(S229)、ステップS224以降の処理を行う。
最長時間監視タイムアウト信号がオフである場合(S228でNO)、灯色制御回路20は、上限監視タイマ25のタイマ値が0であるか否かを判定し(S230)、タイマ値が0である場合(S230でYES)、ステップS229以降の処理を続け、タイマ値が0でない場合(S230でNO)、後述のステップS231の処理を行う。
灯色制御回路20は、処理を終了させるか否かを判定し(S231)、処理を終了させない場合(S231でNO)、ステップS220以降の処理を続け、処理を終了させる場合(S231でYES)、処理を終了する。手動操作要求があった場合(S220でYES)、灯色制御回路20は、歩進予定情報による歩進処理を行わずに終了する。
なお、上述の処理においては、次々ステップの表示時間の下限値及び上限値の初期値が、該当ステップの最短監視時間及び最長監視時間になるので、最短時間監視中信号による判定処理と最長時間監視タイムアウト信号による判定処理は省略してもよい。
図15は手動操作時における灯色制御回路20の歩進処理手順の一例を示すフローチャートである。灯色制御回路20は、手動操作要求があるか否かを判定し(S241)、手動操作要求があった場合(S241でYES)、手動操作要求をCPU10へ出力する(S242)。
灯色制御回路20は、CPU10から手動操作許可指令を取得したか否かを判定し(S243)、手動操作許可指令を取得した場合(S243でYES)、表示パネル52を通じて手動操作可能の旨をオペレータに通知する(S244)。手動操作可能の旨の通知は、文字、音声、許可表示モニタなどの表示で行うことができ、例えば、「手動操作が可能です。」、「手動操作が可能となりました。」などの文字表示や音声案内を用いることができる。
灯色制御回路20は、手動操作に従って歩進処理を行い(S245)、処理を終了する。なお、手動操作が続く限り、歩進処理を続けることができる。
手動操作許可指令を取得していない場合(S243でNO)、灯色制御回路20は、CPU10から手動操作禁止指令を取得したか否かを判定し(S246)、手動操作禁止指令を取得した場合(S246でYES)、表示パネル52を通じて信号情報を提供中である旨をオペレータに通知し(S247)、ステップS243以降の処理を続ける。信号情報を提供中である旨の通知は、文字、音声、許可表示モニタなどの表示で行うことができ、例えば、「車両に信号情報を提供中です。そのまま、しばらくお待ちください。」、「あとxx秒で手動操作が可能となります。しばらくお待ちください。」などの文字表示や音声案内を用いることができる。
手動操作禁止指令を取得していない場合(S246でNO)、灯色制御回路20は、ステップS242以降の処理を続ける。手動操作要求がない場合(S241でNO)、灯色制御回路20は、手動操作による歩進処理を行わずに終了する。
図16は手動操作時におけるCPU10の処理手順の一例を示すフローチャートである。CPU10は、灯色制御回路20から手動操作要求を取得したか否かを判定し(S141)、手動操作要求を取得していない場合(S141でNO)、ステップS141の処理を続ける。
手動操作要求を取得した場合(S141でYES)、CPU10は、信号情報の提供中であるか否かを判定する(S142)。信号情報の提供中である場合(S142でYES)、CPU10は、手動操作禁止指令を灯色制御回路20へ出力し(S143)、信号情報の提供処理を中止する(S144)。
灯色を制御するための手動操作を受け付けた場合、灯色の表示時間を含む信号情報を外部(例えば、車両)へ提供(出力)することを中止するので、仮に操作パネル51で灯色の手動操作を受け付けて灯色の切替タイミングが変更された場合でも、信号灯器200の灯色の実際の切替タイミングと車両等へ提供した信号情報とが不一致になることを防止することができ、正しい信号情報の提供を保証することができる。
なお、ステップS144の処理において、車両等に対して、信号灯器200の灯色制御が手動操作で行われている旨の情報を提供することもできる。これにより、信号情報を取得可能な車両の運転者に対しては、信号灯器200の灯色の制御が手動操作で行われていることを知らせることができ、手動操作による灯色の切替タイミングが通常の切替タイミングと異なるような場合でも信号機の異常ではないことを周知することができる。
CPU10は、所定時間が経過したか否か判定し(S145)、所定時間が経過していない場合(S145でNO)、ステップS144の処理を続け、所定時間が経過した場合(S145でYES)、手動操作許可指令を灯色制御回路20へ出力し(S146)、処理を終了する。また、信号情報の提供中でない場合(S142でNO)、CPU10は、ステップS146の処理を行う。
信号情報の提供(出力)を中止(停止)した時点から所定時間経過した場合に、手動操作許可指令を出力して手動操作を可能にすることにより、手動操作により灯色の切替タイミングが変更された場合に、手動操作が行われる前にすでに提供された信号情報に基づいて走行している車両が安全に交差点を通過するまでは、手動操作による灯色制御を行うことができないので、信号灯器の灯色の実際の切替タイミングと車両等へ提供した信号情報とが不一致になることを防止することができ、正しい信号情報の提供を保証することができる。
また、信号情報の提供を中止した時点から所定時間経過後に灯色の制御を手動操作可能となる旨を通知するので、警察官や保守員は、所定時間経過後に手動操作を行うことができることを認識することができ、あるいは、所定時間が経過する前は手動操作が受け付けられないことを認識することができ、動作不良などの誤解をすることなく利便性が向上する。
上述の所定時間は、例えば、所定時間は、所定速度の車両が前記信号情報を取得可能な所定位置から信号灯器が設置された交差点の停止線に到達するまでの所要時間以上である。所定速度は、道路の交通状況に応じて定めることができ、複数の車両の速度の統計値(例えば、平均値など)を用いて予め決定することができる。また、所定位置は、信号情報を提供するための装置から車両が信号情報を取得できる位置として予め定めておくことができる。これにより、信号情報の提供を受けた車両が、その信号情報に基づいて走行する場合に、安全に交差点の停止線に到達するまでは、その信号情報が正しいことを保証することができる。
また、所定時間は、灯色の残表示時間の下限値以上とすることもできる。これにより、信号情報の提供を受けた車両が、その信号情報に基づいて走行する場合に、現在の灯色が切り替わるまでの間は、その信号情報が正しいことを保証することができる。
また、所定時間は、所定速度の車両が前記信号情報を取得可能な所定位置から信号灯器が設置された交差点の停止線に到達するまでの所要時間と、灯色の残表示時間の下限値とのいずれか小さい方である。所定速度は、道路の交通状況に応じて定めることができ、複数の車両の速度の統計値(例えば、平均値など)を用いて予め決定することができる。また、所定位置は、信号情報を提供するための装置から車両が信号情報を取得できる位置として予め定めておくことができる。例えば、車両が交差点に到達するまでの所要時間が20秒であるとし、現在の灯色の残表示時間の下限値が10秒であるとすると、手動操作が可能となるまでの時間を10秒にする。これにより、提供済みの信号情報が正しいことを保証しつつ手動操作の開始を早くすることができる。
以上説明したように、本発明によれば、信号情報を提供中に手動操作で信号灯器の灯色を制御する場合には、信号情報の提供を中止して手動操作に従った歩進指令を行うので、信号灯器の灯色の実際の切替タイミングと車両等へ提供する信号情報とが不一致になることを防止することができ、正しい信号情報を提供することができる。
また、手動操作を可能にする時点を所定時間だけ遅らせることにより、信号情報の提供を受けている車両に対しては、該車両が一旦取得した信号情報に基づいた信号機の動作を保証することができる。
上述の実施の形態では、手動操作判定回路50は、灯色制御回路20内にある構成であったが、これに限定されるものではなく、灯色制御回路20の外に設ける構成でもよい。また、所定時間が経過したか否かの判定をCPU10に代えて灯色制御回路20で行ってもよい。
上述の実施の形態において、灯色制御回路20がCPU10の異常を検知した場合、情報送信部30からの信号情報の送信をリレー等のハードウエアで遮断することもできる。
上述の実施の形態において、CPU10が歩進タイミング確定の時点で必ず上限値と下限値とが等しい歩進予定情報を出力する場合には、歩進指令は必ずしも必要ではなく、CPU10からの歩進指令の出力を省略した構成とすることができる。また、表示時間の残時間が0となった時点での歩進予定信号を歩進指令としてもよい。
また、歩進予定情報がCPU10から出力されていない場合には、現示データの監視時間で判定処理を行ってもよい。また、歩進処理にてタイムアウトが発生した場合、あるいは、歩進予定情報の判定で誤りがあると判定された場合に、情報送信部30への送信許可をオフにする構成とするとともに、歩進予定情報が正しいと判定された場合に送信許可をオンにする構成とすることができる。
上述の実施の形態においては、灯器制御回路20で情報を提供するか否かの判定処理を行う構成であったが、情報提供装置で行ってもよい。
上述の実施の形態において、手動操作が開始された場合に、交通信号制御機100は、手動動作開始の旨を情報中継判定装置400へ出力するが、この場合に、情報中継判定装置400が情報提供装置300への信号情報の送信を止めるようにすることもできる。
以上に開示された実施の形態及び実施例は、全ての点で例示であって制限的なものではないと考慮されるべきである。本発明の範囲は、以上の実施の形態及び実施例ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての修正や変形を含むものと意図される。