シミュレーション装置およびシミュレーションプログラム
【課題】グリッドロックが発生した場合に、妥当なシミュレーション結果を得ること。
【解決手段】シミュレーション装置10は、シミュレーション部14aと、記憶部13と、検出部14bと、選択部14cと、変更部14dとを有する。シミュレーション部14aは、モデル13aに基づいて、複数の車両の挙動を模擬する。記憶部13は、シミュレーション部14aにより模擬された複数の車両の挙動を記憶する。検出部14bは、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対するシミュレーション部14aによる模擬を変更する。
【解決手段】シミュレーション装置10は、シミュレーション部14aと、記憶部13と、検出部14bと、選択部14cと、変更部14dとを有する。シミュレーション部14aは、モデル13aに基づいて、複数の車両の挙動を模擬する。記憶部13は、シミュレーション部14aにより模擬された複数の車両の挙動を記憶する。検出部14bは、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対するシミュレーション部14aによる模擬を変更する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション装置およびシミュレーションプログラムに関する。
【背景技術】
【0002】
複数の車両の各々の挙動のシミュレーションを行うシミュレーション装置が存在する。例えば、運転者の認知、判断、操作、車両の物理挙動を含んだモデルを用いて、車両のシミュレーションを行うシミュレーション装置が存在する。
【0003】
シミュレーション装置によるシミュレーション結果は、道路の改良、信号制御方式の変更、ドライバへの情報提供などを実施した場合の渋滞改善効果、事故削減効果、CO2排出の環境影響などの各種評価に用いられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−93425号公報
【特許文献2】特開2002−259888号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来のシミュレーション装置では、複数台の車両が停止し互いに動くことができなくなる状態、いわゆるグリッドロックが発生した場合に、グリッドロックが解消されないため、妥当なシミュレーション結果を得ることができないという問題がある。妥当なシミュレーション結果を得ることができない理由の一例について説明する。実世界では、グリッドロックが発生しない、あるいは、グリッドロックが発生した場合であっても時間の経過とともにグリッドロックが解消するが、シミュレーションでは、グリッドロックが発生し、発生したグリッドロックが解消されない。そのため、上記の従来のシミュレーション装置では、実世界での車両の挙動と異なる車両の挙動をシミュレーションする。
【0006】
ここで、グリッドロックの具体例を説明する。図8A〜8Dは、グリッドロックの一例を説明するための図である。図8Aの例は、複数台の車両80の各々が、前方の車両が停止あるいは減速したため、衝突を回避するために、停止した場合に発生するグリッドロックの一例を示す。図8Aの例は、4つの交差点81の各々を右折する車両80が交差点81で停止するとともに、道路を直進する車両80が走行中の道路で停止する場合を示す。
【0007】
図8Bの例は、互いに対向車線を走行する先頭車両85が右折する場合に、対向車線に車両86が存在するため、先頭車両85が停止した結果、先頭車両85の後続車両87、86が停止するときに発生するグリッドロックの一例を示す。図8Bの例は、先頭車両85、後続車両86、87が走行中の道路で停止する場合を示す。
【0008】
図8Cの例は、同一方向の2つの車線のそれぞれを走行する2台の先頭車両88のうち、右側の車線を走行する先頭車両88が左折し、左側の車線を走行する先頭車両88が右折する場合に、発生するグリッドロックの一例を示す。すなわち、図8Cの例は、互いの先頭車両88の存在が走行の妨げとなり、先頭車両88が停止した結果、先頭車両88の後続車両89が停止する。
【0009】
図8Dの例は、3台の車両90が、交差点で、互いの車両90の存在が走行の妨げとなり、車両90が停止した結果、車両90の後続車両91が停止する場合に発生するグリッドロックの一例を示す。
【0010】
実世界においても、他の車両の存在が、走行の妨げとなる場合がある。しかしながら、このような場合であっても、車両のドライバは、互いに、他の車両の走行を妨げないような運転をしたり、前方車両との距離が狭くても、車両を進めたりする。また、実世界では、車両のドライバは、他の車両の存在が、走行の妨げとなる場合には、車両が走行する空間経路の変更をしたりする。このようにして、実世界では、車両のドライバは、グリッドロックが発生することを抑制する。したがって、実世界では、グリッドロックが発生しない、あるいは、グリッドロックが発生した場合であっても時間の経過とともにグリッドロックが解消する。
【0011】
そこで、複数の車両の各々の挙動のシミュレーションにおいても、グリッドロックの発生が抑制されるように、実世界でのドライバのグリッドロックの発生を抑制する動作をモデル化したものをドライバモデルとして用いることが考えられる。しかしながら、あらゆる交通状況、道路形状などを考慮して、このようなドライバモデルを構築することは、事実上困難である。
【0012】
開示の技術は、上記に鑑みてなされたものであって、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができるシミュレーション装置およびシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本願の開示するシミュレーション装置は、一つの態様において、シミュレーション部と、記憶部と、検出部と、選択部と、変更部とを有する。シミュレーション部は、モデルに基づいて、複数の車両の挙動を模擬する。記憶部は、シミュレーション部により模擬された複数の車両の挙動を記憶する。検出部は、記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。選択部は、検出部によりグリッドロックの発生が検出された場合には、記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。変更部は、グリッドロックが解消されるように、選択部により選択された要因車両に対するシミュレーション部による模擬を変更する。
【発明の効果】
【0014】
本願の開示するシミュレーション装置の一つの態様によれば、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【図面の簡単な説明】
【0015】
【図1】図1は、実施例1に係るシミュレーション装置の機能構成の一例を示す図である。
【図2】図2は、車両挙動の一例を示す図である。
【図3A】図3Aは、原因車両の特定方法の一例を説明するための図である。
【図3B】図3Bは、原因車両の特定方法の一例を説明するための図である。
【図4】図4は、実施例1に係るシミュレーション処理の手順を示すフローチャートである。
【図5】図5は、実施例2に係るシミュレーション装置の機能構成の一例を示す図である。
【図6】図6は、実施例2に係るシミュレーション処理の手順を示すフローチャートである。
【図7】図7は、シミュレーションプログラムを実行するコンピュータを示す図である。
【図8A】図8Aは、グリッドロックの一例を説明するための図である。
【図8B】図8Bは、グリッドロックの一例を説明するための図である。
【図8C】図8Cは、グリッドロックの一例を説明するための図である。
【図8D】図8Dは、グリッドロックの一例を説明するための図である。
【発明を実施するための形態】
【0016】
以下に、本願の開示するシミュレーション装置の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0017】
[シミュレーション装置の機能構成例]
実施例1に係るシミュレーション装置について説明する。図1は、実施例1に係るシミュレーション装置の機能構成の一例を示す図である。本実施例に係るシミュレーション装置10は、道路モデル、車両モデルおよびドライバモデルに基づいて、車両の挙動を計算することで、車両の挙動のシミュレーションを行う。図1に示すように、シミュレーション装置10は、入力部11と、表示部12と、記憶部13と、制御部14とを有する。
【0018】
入力部11は、ユーザの操作を受け付けて各種情報を制御部14に入力する。例えば、入力部11は、シミュレーション処理を実行する指示を、ユーザから受け付けて、受け付けた指示を制御部14に入力する。入力部11の一例としては、キーボードやマウスなどを含む操作受付デバイスが挙げられる。
【0019】
表示部12は、シミュレーション結果を表示する。例えば、表示部12は、後述のシミュレーション部14aから送信された、複数の車両の交通流などのシミュレーション結果を受信し、受信したシミュレーション結果を表示する。表示部12の一例としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスが挙げられる。
【0020】
記憶部13は、モデル13aおよび車両挙動13bを記憶する。モデル13aについて説明する。モデル13aは、交通シミュレーションにおいて、車両の挙動を計算するために用いられるモデルである。例えば、モデル13aは、道路モデル、車両モデルおよびドライバモデルを含む。道路モデル、車両モデルおよびドライバモデルは、後述のシミュレーション部14aが、車両の挙動を計算する際に用いられる。
【0021】
ここで、道路モデル、車両モデルおよびドライバモデルの一例について説明する。例えば、道路モデルは、各道路のセグメントを一意に識別するためのID(Identification)ごとに、開始位置、道幅、方角、傾斜、路面状態などのデータを有するモデルである。また、車両モデルは、車両の内部状態および外部状態を計算するためのモデルである。内部状態には、エンジン状態、動力伝達系状態、タイヤ状態が含まれる。また、外部状態には、車両の位置、進行方向、速度、車種が含まれる。また、ドライバモデルは、ドライバ状態および運転操作状態を計算するためのモデルである。ドライバ状態には、走行予定経路、認知・判断状態が含まれる。運転操作状態には、ハンドル状態、アクセル状態、ブレーキ状態が含まれる。
【0022】
車両挙動13bには、計算された車両の挙動や、変更された車両の挙動が、車両ごとに登録される。例えば、車両挙動13bには、車両の位置座標、速度、車両が停止している場合に、停止の原因となる他の車両のID、車両が停止している場合に、車両が継続して停止している時間、シミュレーション対象の車両であるか否かを示す情報が登録される。図2は、車両挙動の一例を示す図である。図2の例では、図中手前から奥に向けて、車両ごとに各種情報が登録される場合が示されている。図2の例では、最も手前に各種情報が表示される車両のIDが「1」である場合を想定する。図2の例では、IDが「1」である車両の位置の座標が、(x,y,z)である場合が示されている。また、図2の例では、IDが「1」である車両の速度が、0km/hである場合が示されている。なお、車両の速度が0km/hである場合には、車両は停止している。また、図2の例では、IDが「1」である車両が停止する原因となる他の車両のIDが「2」である場合が示されている。また、図2の例では、IDが「1」である車両が、継続して停止している時間が5秒である場合が示されている。また、図2の例では、シミュレーション対象の車両であることを示す「true」、シミュレーション対象外の車両であることを示す「false」のうち、「true」が、IDが「1」である車両の車両挙動のフラグに登録されている。そのため、図2の例は、IDが「1」である車両が、シミュレーション対象の車両である場合を示す。車両挙動13bには、後述のシミュレーション部14aにより計算された車両の挙動が登録される。また、車両挙動13bには、後述の変更部14dにより変更された車両の挙動が登録される。
【0023】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0024】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部14は、図1に示すように、シミュレーション部14aと、検出部14bと、選択部14cと、変更部14dとを有する。
【0025】
シミュレーション部14aは、モデル13aに基づいて、複数の車両の挙動を所定時間間隔で模擬する。例えば、シミュレーション部14aは、入力部11から、シミュレーション処理を実行する指示が入力された場合に、モデル13aを記憶部13から取得する。そして、シミュレーション部14aは、モデル13aに基づいて、複数の車両の各々の位置を示す座標、速度を計算する。
【0026】
また、シミュレーション部14aは、計算した速度が0km/hである場合、すなわち停止した場合に、各車両の位置に基づいて、停止した車両の前方に存在する他の車両を特定する。そして、シミュレーション部14aは、特定した他の車両を、車両が停止した原因となる原因車両として選択する。図3Aおよび図3Bは、原因車両の特定方法の一例を説明するための図である。図3Aの例では、車両70A〜70Lの各々が停止している場合が示されている。図3Aの例では、車両70Cは、車両70Cの前方に存在する車両70Dと衝突しないように、停止している。このため、図3Aの例では、シミュレーション部14aは、車両70Cの前方に存在する車両70Dを特定し、特定した車両70Dを車両70Cが停止した原因となる原因車両として選択する。一方、図3Aの例では、車列の先頭で、信号待ちのために停止している車両70Fには、前方に車両が存在せず、車両70Fが停止した原因となる原因車両が存在しない。このため、図3Aの例では、シミュレーション部14aは、車両70Fが停止した原因となる原因車両を選択しない。
【0027】
また、図3Bの例では、車両70M〜70Z、70AAの各々が停止している場合が示されている。図3Bの例では、車両70Sは、車両70Sの前方に存在する車両70Tと衝突しないように、停止している。このため、図3Bの例では、シミュレーション部14aは、車両70Sの前方に存在する車両70Tを特定し、特定した車両70Tを車両70Sが停止した原因となる原因車両として選択する。
【0028】
また、シミュレーション部14aは、車両が停止している場合、車両が継続して停止している時間を計算する。そして、シミュレーション部14aは、計算した複数の車両の各々の位置を示す座標、速度などに加え、車両が停止している場合には、原因車両、車両が継続して停止している時間を、車両ごとに、車両挙動13bに登録する。
【0029】
また、シミュレーション部14aは、モデル13aに基づいて、所定時間間隔で計算した複数の車両の各々の挙動を、表示部12に送信する。
【0030】
検出部14bは、記憶部13に記憶された車両挙動13bに基づいて、グリッドロックの発生を検出する。例えば、検出部14bは、記憶部13に記憶された車両挙動13bを取得する。そして、検出部14bは、車両挙動13bから、原因車両を取得する。続いて、検出部14bは、取得した原因車両のそれぞれについて、隣接する原因車両を取得する。その後、検出部14bは、隣接する原因車両が環状に連鎖する場合には、グリッドロックが発生したと考えられるため、グリッドロックの発生を検出する。
【0031】
先の図3Bの例では、車両70M〜70Z、70AAのそれぞれに対して、原因車両70N〜70Y、70AA、70Oのそれぞれが存在する。また、図3Bの例では、原因車両70O〜70Y、70AAが環状に連鎖する。そのため、図3Bの例では、検出部14bは、グリッドロックの発生を検出する。
【0032】
一方、先の図3Aの例では、車両70A〜70E、70G〜70Lのそれぞれに対して、原因車両70B〜70F、70H〜70I、70C、70Kが存在する。また、図3Aの例では、車両70Eの原因車両となる車両70Fに対して、原因車両が存在しない。すなわち、図3Aの例では、原因車両70Fに対する原因車両が存在しないことにより原因車両の連鎖が途切れ、原因車両が環状に連鎖していない。そのため、図3Aの例では、検出部14bは、グリッドロックの発生を検出しない。
【0033】
選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックを解消するための車両を選択する。グリッドロックを解消するための車両の一例としては、車両をシミュレーション対象から外したり、車両の位置を移動させたりして車両の挙動を変更することで、グリッドロックが解消されるような車両が挙げられる。また、挙動を変更する車両の一例としては、グリッドロックの発生の要因となった車両である要因車両などが挙げられる。
【0034】
例えば、選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13から車両挙動13bを取得する。そして、選択部14cは、車両挙動13bに登録された、各車両が継続して停止している時間などに基づいて、環状に連鎖する原因車両のうち、継続して停止している時間が最も長い原因車両を、要因車両として選択する。これは、継続して停止している時間が最も長い原因車両がグリッドロックの発生の起点になっている可能性が、他の原因車両と比較して、高いからである。
【0035】
また、選択部14cは、車両挙動13bに登録された各車両の位置を示す座標や、記憶部13に記憶された交差点などの位置を示す道路情報などに基づいて、環状に連鎖する原因車両のうち、交差点に存在する原因車両を、要因車両として選択することもできる。これは、交差点内で停止している原因車両は、この原因車両の進行方向とは他の進行方向に走行する車両や、自身の後続車両などに対する交通の流れを阻害して、グリッドロックの原因になっている可能性があるからである。
【0036】
ここで、グリッドロックを解消するために挙動を変更する車両を選択するという観点から、選択部14cは、2台の車両が相互に、停止の原因となり、その結果、交通の流れを阻害している場合には、相対的な位置関係、道路の優先度を含む交通ルール、交通マナーなどに基づいて、車両を選択してもよい。例えば、先の図8Cの例では、選択部14cは、同一方向の2つの車線のそれぞれを走行する2台の先頭車両88のうち、前方に位置する左側の車線を走行する先頭車両88を、グリッドロックを解消するための要因車両として選択してもよい。また、選択部14cは、主道路と従道路とが交差する地点でグリッドロックが発生している場合に、従道路側の車両を、グリッドロックを解消するための要因車両として選択してもよい。
【0037】
変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対して、シミュレーション部14aにより模擬された挙動を変更する。例えば、変更部14dは、車両挙動13bが示す、要因車両のシミュレーション対象の車両であるか否かを示すフラグの設定値を「true」から「false」に変更する。これにより、要因車両は、シミュレーション部14aによるシミュレーションの対象外となる。なお、変更部14dは、車両挙動13bが示す複数の車両の車両挙動のうち、要因車両の車両挙動の情報を削除することで、要因車両を、シミュレーション部14aによるシミュレーションの対象外とすることもできる。
【0038】
また、変更部14dは、車両挙動13bが示す要因車両の位置を、グリッドロックが解消されるような、グリッドロックに関わらない位置に変更することで、要因車両に対して、シミュレーション部14aにより模擬された挙動を変更してもよい。
【0039】
そもそも、グリッドロックの要因となる車両の全車両に対する割合は、通常、非常に低い。しかしながら、全車両に対して僅かな割合の車両を要因として発生するグリッドロックは、シミュレーション結果の車両の挙動に大きく影響する。そのため、発生したグリッドロックが解消されない場合などには、妥当なシミュレーション結果が得られないときがある。そこで、変更部14dは、要因車両に対して模擬された挙動を変更することで、妥当なシミュレーション結果を得るために障害となるグリッドロックを解消する。なお、僅かな割合の要因車両をシミュレーションの対象外としても、シミュレーション結果に与える影響は微小である。そのため、変更部14dによって、要因車両をシミュレーションの対象外としても、妥当なシミュレーション結果を得ることができる。
【0040】
制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0041】
[処理の流れ]
次に、本実施例に係るシミュレーション装置10の処理の流れを説明する。図4は、実施例1に係るシミュレーション処理の手順を示すフローチャートである。このシミュレーション処理は、入力部11からシミュレーション処理を実行する指示が入力された場合に実行される。
【0042】
図4に示すように、シミュレーション部14aは、シミュレーションを行う時間であるシミュレーション時間が経過したか否かを判定する(ステップS101)。シミュレーション時間が経過した場合(ステップS101肯定)には、処理を終了する。一方、シミュレーション時間が経過していない場合(ステップS101否定)には、シミュレーション対象の車両のうち、時刻tにおいて、下記のステップS103で未選択の車両があるか否かを判定する(ステップS102)。
【0043】
未選択の車両がある場合(ステップS102肯定)には、シミュレーション部14aは、シミュレーション対象の車両のうち、時刻tにおいて、未選択の車両を1つ選択する(ステップS103)。シミュレーション部14aは、モデル13aを用いて、選択した車両の時刻tにおける挙動を計算する(ステップS104)。シミュレーション部14aは、ステップS104で計算した挙動に含まれる速度が、0km/hである場合には、停止の原因となった原因車両を記録し(ステップS105)、ステップS102に戻る。
【0044】
未選択の車両がない場合(ステップS102否定)には、検出部14bは、記憶部13に記憶された車両挙動13bに基づいて、グリッドロックの発生を検出し、グリッドロックが発生したか否かを判定する(ステップS106)。グリッドロックが発生していない場合(ステップS106否定)には、シミュレーション部14aは、時刻tに所定時間Δtを加えた時刻(t+Δt)を、次のシミュレーションを行う新たな時刻tとし(ステップS109)、ステップS101へ戻る。
【0045】
グリッドロックが発生した場合(ステップS106肯定)には、選択部14cは、記憶部13に記憶された複数の車両の挙動に基づいて、挙動を変更する要因車両を選択する(ステップS107)。変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対して、シミュレーション部14aにより模擬された挙動を変更し(ステップS108)、ステップS109へ進む。
【0046】
[実施例1の効果]
上述してきたように、本実施例に係るシミュレーション装置10は、モデル13aに基づいて、複数の車両の挙動を模擬する。本実施例に係るシミュレーション装置10は、模擬された複数の車両の挙動を記憶する。本実施例に係るシミュレーション装置10は、記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。本実施例に係るシミュレーション装置10は、グリッドロックの発生が検出された場合には、記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。本実施例に係るシミュレーション装置10は、グリッドロックが解消されるように、選択された要因車両に対して、シミュレーション部により模擬された挙動を変更する。したがって、本実施例に係るシミュレーション装置10によれば、発生したグリッドロックが解消されるので、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【0047】
また、本実施例に係るシミュレーション装置10は、車両が停止した原因となる原因車両が環状に連鎖する場合に、グリッドロックの発生を検出する。このように、本実施例に係るシミュレーション装置10によれば、従来困難であったグリッドロックの検出を、車両が停止した原因となる原因車両に基づいて、容易に行うことが可能となる。
【0048】
また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両のうち、停止時間が最も長い車両、交差点内に存在する車両をグリッドロックの発生の要因となる要因車両として選択することができる。
【0049】
また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両であって、同一方向の複数の車線のそれぞれを走行する複数の原因車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択することもできる。また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、環状に連鎖する複数の原因車両のなかから要因車両を選択することもできる。
【実施例2】
【0050】
さて、上記の実施例1では、時刻tにおいてシミュレーション対象の全車両の挙動を計算した後に、時刻tにおける計算結果を用いてグリッドロックの検出を行い、グリッドロックが発生した場合には、要因車両の挙動を変更する場合を例示した。しかしながら、開示の装置はこれに限定されない。そこで、実施例2では、他のタイミングで、要因車両の挙動を変更する場合について説明する。
【0051】
例えば、実施例2では、まず、時刻tにおけるシミュレーション対象の車両として選択された車両の挙動を計算する。そして、実施例2では、時刻(t−Δt)における全車両の挙動の計算結果を用いて、選択された車両がグリッドロックに関連したか否かを判定する。続いて、実施例2では、選択された車両がグリッドロックに関連した場合に、すでに計算された車両の挙動を変更するか否かを判定する。その後、実施例2では、すでに計算された車両の挙動を変更する場合に、選択された車両の挙動を変更する。
【0052】
[シミュレーション装置の機能構成例]
実施例2に係るシミュレーション装置について説明する。図5は、実施例2に係るシミュレーション装置の機能構成の一例を示す図である。図5に示すように、本実施例に係るシミュレーション装置50は、図1に示す実施例1に係る制御部14に代えて、制御部54を有する点が、実施例1と異なる。なお、以下では、上記の実施例1と同様の機能を果たす各部については図1と同様の符号を付し、その説明は省略する。
【0053】
制御部54は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部54は、シミュレーション部54aと、検出部54bと、選択部54cと、変更部54dとを有する。
【0054】
シミュレーション部54aは、実施例1に係るシミュレーション部14aの機能に加え、シミュレーション対象として選択された車両ごとに、後述の変更部54dの変更指示により、すでに計算された挙動を変更すると判定された要因車両の挙動を、次のように再計算する。すなわち、シミュレーション部54aは、すでに計算された挙動を変更すると判定された要因車両については、移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する。すなわち、シミュレーション部54aは、挙動を変更すると判定された要因車両については、通常のシミュレーションでの衝突条件を無視し、停止している要因車両を、停止する所定時間前の進行方向および速度で移動させて、挙動の計算を再び行う。
【0055】
検出部54bは、記憶部13に記憶された時刻(t−Δt)の車両挙動13bに基づいて、時刻(t−Δt)におけるグリッドロックの発生を検出する。なお、グリッドロックの発生の検出方法は、実施例1と同様の方法を用いることができる。
【0056】
選択部54cは、検出部54bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された、時刻(t−Δt)の車両の挙動に基づいて、シミュレーション対象の車両が、グリッドロックに関連したか否かを判定する。ここで、選択部54cは、環状に連鎖した原因車両の中に、シミュレーション対象の車両が含まれている場合には、グリッドロックに関連したと判定する。一方、選択部54cは、環状に連鎖した原因車両の中に、シミュレーション対象の車両が含まれていない場合には、グリッドロックに関連していないと判定する。
【0057】
そして、選択部54cは、グリッドロックに関連したと判定した場合に、シミュレーション対象の車両が、挙動を変更する車両であるか否かを判定する。例えば、選択部54cは、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの停止している時間に基づいて、シミュレーション対象の車両が、環状に連鎖した原因車両の中で、最も長い時間停止しているか否かを判定する。そして、選択部54cは、最も長い時間停止していると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0058】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置や、道路データに基づいて、シミュレーション対象の車両が、交差点内に存在するか否かを判定することもできる。選択部54cは、交差点内に存在すると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0059】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置に基づいて、次のような処理を行うこともできる。すなわち、選択部54cは、シミュレーション対象の車両が、同一方向の複数の車線のそれぞれを走行する複数の原因車両であって環状に連鎖した複数の原因車両のうち、前方に位置する原因車両であるか否かを判定することもできる。選択部54cは、前方に位置する原因車両であると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0060】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置に基づいて、次のような処理を行うこともできる。すなわち、選択部54cは、シミュレーション対象の車両が、主道路および従道路を走行する複数の原因車両であって環状に連鎖した複数の原因車両のうち、主道路側の原因車両であるか否かを判定することもできる。選択部54cは、主道路側の原因車両であると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0061】
変更部54dは、選択部54cで選択された要因車両については、次のような変更指示をシミュレーション部14aに送信する。すなわち、変更部54dは、要因車両が停止する所定時間前の進行方向および速度で要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する変更指示を送信する。要因車両を移動させた場合には、他の車両との衝突により進行が妨げられないように、要因車両については、衝突時の挙動計算を行わないように、変更部54dは、シミュレーション部54aを制御する。
【0062】
このようにして、停止している要因車両が移動することで、グリッドロックが解消された後は、シミュレーション部54aによるシミュレーションが通常のシミュレーションに戻る。そのため、要因車両をシミュレーション対象から外す場合と比較して、実施例2では、要因車両をシミュレーション対象から外さないので、シミュレーション結果に与える影響がより小さくなる。
【0063】
制御部54は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0064】
[処理の流れ]
次に、本実施例に係るシミュレーション装置50の処理の流れを説明する。図6は、実施例2に係るシミュレーション処理の手順を示すフローチャートである。このシミュレーション処理は、入力部11からシミュレーション処理を実行する指示が入力された場合に実行される。なお、図6に示すステップS101〜S105、S109の処理は、実施例1と同様であるので説明を省略する。
【0065】
図6に示すように、ステップS105の次に、検出部54bは、時刻(t−Δt)の車両挙動13bに基づいて、時刻(t−Δt)におけるグリッドロックの発生を検出する。そして、選択部54cは、検出部54bによりグリッドロックの発生が検出された場合には、時刻(t−Δt)の車両の挙動に基づいて、シミュレーション対象の車両が、時刻(t−Δt)におけるグリッドロックに関連したか否かを判定する(ステップS201)。
【0066】
グリッドロックに関連したと判定した場合(ステップS201肯定)には、選択部54cは、シミュレーション対象の車両が、挙動を変更する車両であるか否かを判定する(ステップS202)。なお、挙動を変更する車両であると判定した車両は、選択部54cにより、要因車両として選択される。シミュレーション対象の車両が、挙動を変更する車両である場合(ステップS202肯定)には、変更部54dは、要因車両については、次のような変更指示をシミュレーション部14aに送信する(ステップS203)。すなわち、変更部54dは、要因車両が停止する所定時間前の進行方向および速度で要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する変更指示を送信する。そして、ステップS102へ戻る。
【0067】
また、グリッドロックに関連していないと判定した場合(ステップS201否定)、および、シミュレーション対象の車両が、挙動を変更する車両でない場合(ステップS202否定)には、ステップS102へ戻る。
【0068】
[実施例2の効果]
上述してきたように、本実施例に係るシミュレーション装置50は、モデル13aに基づいて、複数の車両の挙動を模擬する。本実施例に係るシミュレーション装置50は、模擬された複数の車両の挙動を記憶する。本実施例に係るシミュレーション装置50は、記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。本実施例に係るシミュレーション装置50は、グリッドロックの発生が検出された場合には、記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。本実施例に係るシミュレーション装置50は、グリッドロックが解消されるように、選択された要因車両に対して、シミュレーション部により模擬された挙動を変更する。したがって、本実施例に係るシミュレーション装置50によれば、発生したグリッドロックが解消されるので、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【0069】
また、本実施例に係るシミュレーション装置50は、車両が停止した原因となる原因車両が環状に連鎖する場合に、グリッドロックの発生を検出する。このように、本実施例に係るシミュレーション装置50によれば、従来困難であったグリッドロックの検出を、原因車両に基づいて、容易に行うことが可能となる。
【0070】
また、本実施例に係るシミュレーション装置50は、グリッドロックの発生の要因となる要因車両については、次のような処理を行う。すなわち、本実施例に係るシミュレーション装置50は、要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する。このように、本実施例に係るシミュレーション装置50は、要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、衝突しないとみなすことで、要因車両の挙動を変更する。したがって、本実施例に係るシミュレーション装置50によれば、要因車両をシミュレーション対象から外す場合と比較して、要因車両をシミュレーション対象から外さないので、シミュレーション結果に与える影響がより小さくなる。
【0071】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0072】
[シミュレーション]
また、上記の実施例1、2では、車両の交通シミュレーションを行う場合について説明したが、開示の装置はこれに限定されない。例えば、開示の装置は、車両の交通シミュレーションを行うとともに、運転を模擬する運転シミュレーションを行うことができる。
【0073】
[道路モデル]
また、上記の実施例1、2では、道路モデルを、車両が走行する道路を定義した静的なデータとする場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、道路モデルに、信号機の信号状態などのような動的なデータを含めることができる。これにより、開示の装置は、信号状態などの刻々と変化する状況に対応するシミュレーションを行うことが可能となる。
【0074】
また、実施例1、2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図4、図6のステップS101において、それぞれ、シミュレーション処理を続行するか否かを人間が判断して、判断結果を入力部11から入力してもよい。
【0075】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、図4、図6に示すステップS103、104をまとめることもできる。
【0076】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1、図5に示すシミュレーション部と変更部とが統合されてもよい。
【実施例3】
【0077】
[シミュレーションプログラム]
また、上記の実施例で説明したシミュレーション装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図7を用いて、上記の実施例で説明したシミュレーション装置と同様の機能を有するシミュレーションプログラムを実行するコンピュータの一例を説明する。図7は、シミュレーションプログラムを実行するコンピュータを示す図である。
【0078】
図7に示すように、実施例3におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340とを有する。これら300〜340の各部は、バス350を介して接続される。
【0079】
ROM320には、上記の実施例1、2で示すシミュレーション部と、検出部と、選択部と、変更部と同様の機能を発揮するシミュレーションプログラム320aが予め記憶される。なお、シミュレーションプログラム320aについては、適宜分離しても良い。例えば、検出部と、選択部と同様の機能を発揮するプログラムと、シミュレーション部と、変更部と同様の機能を発揮するプログラムとに分離しても良い。
【0080】
そして、CPU310が、シミュレーションプログラム320aをROM320から読み出して実行する。
【0081】
そして、HDD330には、モデル、車両挙動が設けられる。これらモデル、車両挙動のそれぞれは、図1、5に示したモデル13a、車両挙動13bのそれぞれに対応する。
【0082】
そして、CPU310は、モデルと、車両挙動とを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたモデルデータと、車両挙動データとを用いて、シミュレーションプログラムを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0083】
なお、上記したシミュレーションプログラムについては、必ずしも最初からROM320に記憶させておく必要はない。
【0084】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0085】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0086】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【0087】
(付記1)モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部と、
前記シミュレーション部により模擬された複数の車両の挙動を記憶する記憶部と、
前記記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する検出部と、
前記検出部によりグリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択する選択部と、
前記グリッドロックが解消されるように、前記選択部により選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する変更部と
を有することを特徴とするシミュレーション装置。
【0088】
(付記2)前記検出部は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする付記1に記載のシミュレーション装置。
【0089】
(付記3)前記変更部は、前記複数の車両のうち、前記選択部により選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1または2に記載のシミュレーション装置。
【0090】
(付記4)前記変更部は、前記選択部により選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1〜3のいずれか1つに記載のシミュレーション装置。
【0091】
(付記5)前記変更部は、前記選択部により選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを互いに衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1または2に記載のシミュレーション装置。
【0092】
(付記6)前記選択部は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0093】
(付記7)前記選択部は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0094】
(付記8)前記選択部は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0095】
(付記9)前記選択部は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0096】
(付記10)コンピュータに、
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部により模擬された複数の車両の挙動を記憶する記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出し、
グリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択し、
前記グリッドロックが解消されるように、選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する
処理を実行させることを特徴とするシミュレーションプログラム。
【0097】
(付記11)前記グリッドロックの発生を検出する処理は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする付記10に記載のシミュレーションプログラム。
【0098】
(付記12)前記グリッドロックの発生を検出する処理は、前記複数の車両のうち、選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10または11に記載のシミュレーションプログラム。
【0099】
(付記13)前記グリッドロックの発生を検出する処理は、選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10〜12のいずれか1つに記載のシミュレーションプログラム。
【0100】
(付記14)前記グリッドロックの発生を検出する処理は、選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10または11に記載のシミュレーションプログラム。
【0101】
(付記15)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0102】
(付記16)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0103】
(付記17)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0104】
(付記18)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【符号の説明】
【0105】
10 シミュレーション装置
13 記憶部
13a モデル
13b 車両挙動
14 制御部
14a シミュレーション部
14b 選択部
14c 検出部
14d 変更部
【技術分野】
【0001】
本発明は、シミュレーション装置およびシミュレーションプログラムに関する。
【背景技術】
【0002】
複数の車両の各々の挙動のシミュレーションを行うシミュレーション装置が存在する。例えば、運転者の認知、判断、操作、車両の物理挙動を含んだモデルを用いて、車両のシミュレーションを行うシミュレーション装置が存在する。
【0003】
シミュレーション装置によるシミュレーション結果は、道路の改良、信号制御方式の変更、ドライバへの情報提供などを実施した場合の渋滞改善効果、事故削減効果、CO2排出の環境影響などの各種評価に用いられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−93425号公報
【特許文献2】特開2002−259888号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来のシミュレーション装置では、複数台の車両が停止し互いに動くことができなくなる状態、いわゆるグリッドロックが発生した場合に、グリッドロックが解消されないため、妥当なシミュレーション結果を得ることができないという問題がある。妥当なシミュレーション結果を得ることができない理由の一例について説明する。実世界では、グリッドロックが発生しない、あるいは、グリッドロックが発生した場合であっても時間の経過とともにグリッドロックが解消するが、シミュレーションでは、グリッドロックが発生し、発生したグリッドロックが解消されない。そのため、上記の従来のシミュレーション装置では、実世界での車両の挙動と異なる車両の挙動をシミュレーションする。
【0006】
ここで、グリッドロックの具体例を説明する。図8A〜8Dは、グリッドロックの一例を説明するための図である。図8Aの例は、複数台の車両80の各々が、前方の車両が停止あるいは減速したため、衝突を回避するために、停止した場合に発生するグリッドロックの一例を示す。図8Aの例は、4つの交差点81の各々を右折する車両80が交差点81で停止するとともに、道路を直進する車両80が走行中の道路で停止する場合を示す。
【0007】
図8Bの例は、互いに対向車線を走行する先頭車両85が右折する場合に、対向車線に車両86が存在するため、先頭車両85が停止した結果、先頭車両85の後続車両87、86が停止するときに発生するグリッドロックの一例を示す。図8Bの例は、先頭車両85、後続車両86、87が走行中の道路で停止する場合を示す。
【0008】
図8Cの例は、同一方向の2つの車線のそれぞれを走行する2台の先頭車両88のうち、右側の車線を走行する先頭車両88が左折し、左側の車線を走行する先頭車両88が右折する場合に、発生するグリッドロックの一例を示す。すなわち、図8Cの例は、互いの先頭車両88の存在が走行の妨げとなり、先頭車両88が停止した結果、先頭車両88の後続車両89が停止する。
【0009】
図8Dの例は、3台の車両90が、交差点で、互いの車両90の存在が走行の妨げとなり、車両90が停止した結果、車両90の後続車両91が停止する場合に発生するグリッドロックの一例を示す。
【0010】
実世界においても、他の車両の存在が、走行の妨げとなる場合がある。しかしながら、このような場合であっても、車両のドライバは、互いに、他の車両の走行を妨げないような運転をしたり、前方車両との距離が狭くても、車両を進めたりする。また、実世界では、車両のドライバは、他の車両の存在が、走行の妨げとなる場合には、車両が走行する空間経路の変更をしたりする。このようにして、実世界では、車両のドライバは、グリッドロックが発生することを抑制する。したがって、実世界では、グリッドロックが発生しない、あるいは、グリッドロックが発生した場合であっても時間の経過とともにグリッドロックが解消する。
【0011】
そこで、複数の車両の各々の挙動のシミュレーションにおいても、グリッドロックの発生が抑制されるように、実世界でのドライバのグリッドロックの発生を抑制する動作をモデル化したものをドライバモデルとして用いることが考えられる。しかしながら、あらゆる交通状況、道路形状などを考慮して、このようなドライバモデルを構築することは、事実上困難である。
【0012】
開示の技術は、上記に鑑みてなされたものであって、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができるシミュレーション装置およびシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本願の開示するシミュレーション装置は、一つの態様において、シミュレーション部と、記憶部と、検出部と、選択部と、変更部とを有する。シミュレーション部は、モデルに基づいて、複数の車両の挙動を模擬する。記憶部は、シミュレーション部により模擬された複数の車両の挙動を記憶する。検出部は、記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。選択部は、検出部によりグリッドロックの発生が検出された場合には、記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。変更部は、グリッドロックが解消されるように、選択部により選択された要因車両に対するシミュレーション部による模擬を変更する。
【発明の効果】
【0014】
本願の開示するシミュレーション装置の一つの態様によれば、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【図面の簡単な説明】
【0015】
【図1】図1は、実施例1に係るシミュレーション装置の機能構成の一例を示す図である。
【図2】図2は、車両挙動の一例を示す図である。
【図3A】図3Aは、原因車両の特定方法の一例を説明するための図である。
【図3B】図3Bは、原因車両の特定方法の一例を説明するための図である。
【図4】図4は、実施例1に係るシミュレーション処理の手順を示すフローチャートである。
【図5】図5は、実施例2に係るシミュレーション装置の機能構成の一例を示す図である。
【図6】図6は、実施例2に係るシミュレーション処理の手順を示すフローチャートである。
【図7】図7は、シミュレーションプログラムを実行するコンピュータを示す図である。
【図8A】図8Aは、グリッドロックの一例を説明するための図である。
【図8B】図8Bは、グリッドロックの一例を説明するための図である。
【図8C】図8Cは、グリッドロックの一例を説明するための図である。
【図8D】図8Dは、グリッドロックの一例を説明するための図である。
【発明を実施するための形態】
【0016】
以下に、本願の開示するシミュレーション装置の各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0017】
[シミュレーション装置の機能構成例]
実施例1に係るシミュレーション装置について説明する。図1は、実施例1に係るシミュレーション装置の機能構成の一例を示す図である。本実施例に係るシミュレーション装置10は、道路モデル、車両モデルおよびドライバモデルに基づいて、車両の挙動を計算することで、車両の挙動のシミュレーションを行う。図1に示すように、シミュレーション装置10は、入力部11と、表示部12と、記憶部13と、制御部14とを有する。
【0018】
入力部11は、ユーザの操作を受け付けて各種情報を制御部14に入力する。例えば、入力部11は、シミュレーション処理を実行する指示を、ユーザから受け付けて、受け付けた指示を制御部14に入力する。入力部11の一例としては、キーボードやマウスなどを含む操作受付デバイスが挙げられる。
【0019】
表示部12は、シミュレーション結果を表示する。例えば、表示部12は、後述のシミュレーション部14aから送信された、複数の車両の交通流などのシミュレーション結果を受信し、受信したシミュレーション結果を表示する。表示部12の一例としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスが挙げられる。
【0020】
記憶部13は、モデル13aおよび車両挙動13bを記憶する。モデル13aについて説明する。モデル13aは、交通シミュレーションにおいて、車両の挙動を計算するために用いられるモデルである。例えば、モデル13aは、道路モデル、車両モデルおよびドライバモデルを含む。道路モデル、車両モデルおよびドライバモデルは、後述のシミュレーション部14aが、車両の挙動を計算する際に用いられる。
【0021】
ここで、道路モデル、車両モデルおよびドライバモデルの一例について説明する。例えば、道路モデルは、各道路のセグメントを一意に識別するためのID(Identification)ごとに、開始位置、道幅、方角、傾斜、路面状態などのデータを有するモデルである。また、車両モデルは、車両の内部状態および外部状態を計算するためのモデルである。内部状態には、エンジン状態、動力伝達系状態、タイヤ状態が含まれる。また、外部状態には、車両の位置、進行方向、速度、車種が含まれる。また、ドライバモデルは、ドライバ状態および運転操作状態を計算するためのモデルである。ドライバ状態には、走行予定経路、認知・判断状態が含まれる。運転操作状態には、ハンドル状態、アクセル状態、ブレーキ状態が含まれる。
【0022】
車両挙動13bには、計算された車両の挙動や、変更された車両の挙動が、車両ごとに登録される。例えば、車両挙動13bには、車両の位置座標、速度、車両が停止している場合に、停止の原因となる他の車両のID、車両が停止している場合に、車両が継続して停止している時間、シミュレーション対象の車両であるか否かを示す情報が登録される。図2は、車両挙動の一例を示す図である。図2の例では、図中手前から奥に向けて、車両ごとに各種情報が登録される場合が示されている。図2の例では、最も手前に各種情報が表示される車両のIDが「1」である場合を想定する。図2の例では、IDが「1」である車両の位置の座標が、(x,y,z)である場合が示されている。また、図2の例では、IDが「1」である車両の速度が、0km/hである場合が示されている。なお、車両の速度が0km/hである場合には、車両は停止している。また、図2の例では、IDが「1」である車両が停止する原因となる他の車両のIDが「2」である場合が示されている。また、図2の例では、IDが「1」である車両が、継続して停止している時間が5秒である場合が示されている。また、図2の例では、シミュレーション対象の車両であることを示す「true」、シミュレーション対象外の車両であることを示す「false」のうち、「true」が、IDが「1」である車両の車両挙動のフラグに登録されている。そのため、図2の例は、IDが「1」である車両が、シミュレーション対象の車両である場合を示す。車両挙動13bには、後述のシミュレーション部14aにより計算された車両の挙動が登録される。また、車両挙動13bには、後述の変更部14dにより変更された車両の挙動が登録される。
【0023】
記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
【0024】
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部14は、図1に示すように、シミュレーション部14aと、検出部14bと、選択部14cと、変更部14dとを有する。
【0025】
シミュレーション部14aは、モデル13aに基づいて、複数の車両の挙動を所定時間間隔で模擬する。例えば、シミュレーション部14aは、入力部11から、シミュレーション処理を実行する指示が入力された場合に、モデル13aを記憶部13から取得する。そして、シミュレーション部14aは、モデル13aに基づいて、複数の車両の各々の位置を示す座標、速度を計算する。
【0026】
また、シミュレーション部14aは、計算した速度が0km/hである場合、すなわち停止した場合に、各車両の位置に基づいて、停止した車両の前方に存在する他の車両を特定する。そして、シミュレーション部14aは、特定した他の車両を、車両が停止した原因となる原因車両として選択する。図3Aおよび図3Bは、原因車両の特定方法の一例を説明するための図である。図3Aの例では、車両70A〜70Lの各々が停止している場合が示されている。図3Aの例では、車両70Cは、車両70Cの前方に存在する車両70Dと衝突しないように、停止している。このため、図3Aの例では、シミュレーション部14aは、車両70Cの前方に存在する車両70Dを特定し、特定した車両70Dを車両70Cが停止した原因となる原因車両として選択する。一方、図3Aの例では、車列の先頭で、信号待ちのために停止している車両70Fには、前方に車両が存在せず、車両70Fが停止した原因となる原因車両が存在しない。このため、図3Aの例では、シミュレーション部14aは、車両70Fが停止した原因となる原因車両を選択しない。
【0027】
また、図3Bの例では、車両70M〜70Z、70AAの各々が停止している場合が示されている。図3Bの例では、車両70Sは、車両70Sの前方に存在する車両70Tと衝突しないように、停止している。このため、図3Bの例では、シミュレーション部14aは、車両70Sの前方に存在する車両70Tを特定し、特定した車両70Tを車両70Sが停止した原因となる原因車両として選択する。
【0028】
また、シミュレーション部14aは、車両が停止している場合、車両が継続して停止している時間を計算する。そして、シミュレーション部14aは、計算した複数の車両の各々の位置を示す座標、速度などに加え、車両が停止している場合には、原因車両、車両が継続して停止している時間を、車両ごとに、車両挙動13bに登録する。
【0029】
また、シミュレーション部14aは、モデル13aに基づいて、所定時間間隔で計算した複数の車両の各々の挙動を、表示部12に送信する。
【0030】
検出部14bは、記憶部13に記憶された車両挙動13bに基づいて、グリッドロックの発生を検出する。例えば、検出部14bは、記憶部13に記憶された車両挙動13bを取得する。そして、検出部14bは、車両挙動13bから、原因車両を取得する。続いて、検出部14bは、取得した原因車両のそれぞれについて、隣接する原因車両を取得する。その後、検出部14bは、隣接する原因車両が環状に連鎖する場合には、グリッドロックが発生したと考えられるため、グリッドロックの発生を検出する。
【0031】
先の図3Bの例では、車両70M〜70Z、70AAのそれぞれに対して、原因車両70N〜70Y、70AA、70Oのそれぞれが存在する。また、図3Bの例では、原因車両70O〜70Y、70AAが環状に連鎖する。そのため、図3Bの例では、検出部14bは、グリッドロックの発生を検出する。
【0032】
一方、先の図3Aの例では、車両70A〜70E、70G〜70Lのそれぞれに対して、原因車両70B〜70F、70H〜70I、70C、70Kが存在する。また、図3Aの例では、車両70Eの原因車両となる車両70Fに対して、原因車両が存在しない。すなわち、図3Aの例では、原因車両70Fに対する原因車両が存在しないことにより原因車両の連鎖が途切れ、原因車両が環状に連鎖していない。そのため、図3Aの例では、検出部14bは、グリッドロックの発生を検出しない。
【0033】
選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された複数の車両の挙動に基づいて、グリッドロックを解消するための車両を選択する。グリッドロックを解消するための車両の一例としては、車両をシミュレーション対象から外したり、車両の位置を移動させたりして車両の挙動を変更することで、グリッドロックが解消されるような車両が挙げられる。また、挙動を変更する車両の一例としては、グリッドロックの発生の要因となった車両である要因車両などが挙げられる。
【0034】
例えば、選択部14cは、検出部14bによりグリッドロックの発生が検出された場合には、記憶部13から車両挙動13bを取得する。そして、選択部14cは、車両挙動13bに登録された、各車両が継続して停止している時間などに基づいて、環状に連鎖する原因車両のうち、継続して停止している時間が最も長い原因車両を、要因車両として選択する。これは、継続して停止している時間が最も長い原因車両がグリッドロックの発生の起点になっている可能性が、他の原因車両と比較して、高いからである。
【0035】
また、選択部14cは、車両挙動13bに登録された各車両の位置を示す座標や、記憶部13に記憶された交差点などの位置を示す道路情報などに基づいて、環状に連鎖する原因車両のうち、交差点に存在する原因車両を、要因車両として選択することもできる。これは、交差点内で停止している原因車両は、この原因車両の進行方向とは他の進行方向に走行する車両や、自身の後続車両などに対する交通の流れを阻害して、グリッドロックの原因になっている可能性があるからである。
【0036】
ここで、グリッドロックを解消するために挙動を変更する車両を選択するという観点から、選択部14cは、2台の車両が相互に、停止の原因となり、その結果、交通の流れを阻害している場合には、相対的な位置関係、道路の優先度を含む交通ルール、交通マナーなどに基づいて、車両を選択してもよい。例えば、先の図8Cの例では、選択部14cは、同一方向の2つの車線のそれぞれを走行する2台の先頭車両88のうち、前方に位置する左側の車線を走行する先頭車両88を、グリッドロックを解消するための要因車両として選択してもよい。また、選択部14cは、主道路と従道路とが交差する地点でグリッドロックが発生している場合に、従道路側の車両を、グリッドロックを解消するための要因車両として選択してもよい。
【0037】
変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対して、シミュレーション部14aにより模擬された挙動を変更する。例えば、変更部14dは、車両挙動13bが示す、要因車両のシミュレーション対象の車両であるか否かを示すフラグの設定値を「true」から「false」に変更する。これにより、要因車両は、シミュレーション部14aによるシミュレーションの対象外となる。なお、変更部14dは、車両挙動13bが示す複数の車両の車両挙動のうち、要因車両の車両挙動の情報を削除することで、要因車両を、シミュレーション部14aによるシミュレーションの対象外とすることもできる。
【0038】
また、変更部14dは、車両挙動13bが示す要因車両の位置を、グリッドロックが解消されるような、グリッドロックに関わらない位置に変更することで、要因車両に対して、シミュレーション部14aにより模擬された挙動を変更してもよい。
【0039】
そもそも、グリッドロックの要因となる車両の全車両に対する割合は、通常、非常に低い。しかしながら、全車両に対して僅かな割合の車両を要因として発生するグリッドロックは、シミュレーション結果の車両の挙動に大きく影響する。そのため、発生したグリッドロックが解消されない場合などには、妥当なシミュレーション結果が得られないときがある。そこで、変更部14dは、要因車両に対して模擬された挙動を変更することで、妥当なシミュレーション結果を得るために障害となるグリッドロックを解消する。なお、僅かな割合の要因車両をシミュレーションの対象外としても、シミュレーション結果に与える影響は微小である。そのため、変更部14dによって、要因車両をシミュレーションの対象外としても、妥当なシミュレーション結果を得ることができる。
【0040】
制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0041】
[処理の流れ]
次に、本実施例に係るシミュレーション装置10の処理の流れを説明する。図4は、実施例1に係るシミュレーション処理の手順を示すフローチャートである。このシミュレーション処理は、入力部11からシミュレーション処理を実行する指示が入力された場合に実行される。
【0042】
図4に示すように、シミュレーション部14aは、シミュレーションを行う時間であるシミュレーション時間が経過したか否かを判定する(ステップS101)。シミュレーション時間が経過した場合(ステップS101肯定)には、処理を終了する。一方、シミュレーション時間が経過していない場合(ステップS101否定)には、シミュレーション対象の車両のうち、時刻tにおいて、下記のステップS103で未選択の車両があるか否かを判定する(ステップS102)。
【0043】
未選択の車両がある場合(ステップS102肯定)には、シミュレーション部14aは、シミュレーション対象の車両のうち、時刻tにおいて、未選択の車両を1つ選択する(ステップS103)。シミュレーション部14aは、モデル13aを用いて、選択した車両の時刻tにおける挙動を計算する(ステップS104)。シミュレーション部14aは、ステップS104で計算した挙動に含まれる速度が、0km/hである場合には、停止の原因となった原因車両を記録し(ステップS105)、ステップS102に戻る。
【0044】
未選択の車両がない場合(ステップS102否定)には、検出部14bは、記憶部13に記憶された車両挙動13bに基づいて、グリッドロックの発生を検出し、グリッドロックが発生したか否かを判定する(ステップS106)。グリッドロックが発生していない場合(ステップS106否定)には、シミュレーション部14aは、時刻tに所定時間Δtを加えた時刻(t+Δt)を、次のシミュレーションを行う新たな時刻tとし(ステップS109)、ステップS101へ戻る。
【0045】
グリッドロックが発生した場合(ステップS106肯定)には、選択部14cは、記憶部13に記憶された複数の車両の挙動に基づいて、挙動を変更する要因車両を選択する(ステップS107)。変更部14dは、グリッドロックが解消されるように、選択部14cにより選択された要因車両に対して、シミュレーション部14aにより模擬された挙動を変更し(ステップS108)、ステップS109へ進む。
【0046】
[実施例1の効果]
上述してきたように、本実施例に係るシミュレーション装置10は、モデル13aに基づいて、複数の車両の挙動を模擬する。本実施例に係るシミュレーション装置10は、模擬された複数の車両の挙動を記憶する。本実施例に係るシミュレーション装置10は、記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。本実施例に係るシミュレーション装置10は、グリッドロックの発生が検出された場合には、記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。本実施例に係るシミュレーション装置10は、グリッドロックが解消されるように、選択された要因車両に対して、シミュレーション部により模擬された挙動を変更する。したがって、本実施例に係るシミュレーション装置10によれば、発生したグリッドロックが解消されるので、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【0047】
また、本実施例に係るシミュレーション装置10は、車両が停止した原因となる原因車両が環状に連鎖する場合に、グリッドロックの発生を検出する。このように、本実施例に係るシミュレーション装置10によれば、従来困難であったグリッドロックの検出を、車両が停止した原因となる原因車両に基づいて、容易に行うことが可能となる。
【0048】
また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両のうち、停止時間が最も長い車両、交差点内に存在する車両をグリッドロックの発生の要因となる要因車両として選択することができる。
【0049】
また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両であって、同一方向の複数の車線のそれぞれを走行する複数の原因車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択することもできる。また、本実施例に係るシミュレーション装置10は、環状に連鎖する複数の原因車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、環状に連鎖する複数の原因車両のなかから要因車両を選択することもできる。
【実施例2】
【0050】
さて、上記の実施例1では、時刻tにおいてシミュレーション対象の全車両の挙動を計算した後に、時刻tにおける計算結果を用いてグリッドロックの検出を行い、グリッドロックが発生した場合には、要因車両の挙動を変更する場合を例示した。しかしながら、開示の装置はこれに限定されない。そこで、実施例2では、他のタイミングで、要因車両の挙動を変更する場合について説明する。
【0051】
例えば、実施例2では、まず、時刻tにおけるシミュレーション対象の車両として選択された車両の挙動を計算する。そして、実施例2では、時刻(t−Δt)における全車両の挙動の計算結果を用いて、選択された車両がグリッドロックに関連したか否かを判定する。続いて、実施例2では、選択された車両がグリッドロックに関連した場合に、すでに計算された車両の挙動を変更するか否かを判定する。その後、実施例2では、すでに計算された車両の挙動を変更する場合に、選択された車両の挙動を変更する。
【0052】
[シミュレーション装置の機能構成例]
実施例2に係るシミュレーション装置について説明する。図5は、実施例2に係るシミュレーション装置の機能構成の一例を示す図である。図5に示すように、本実施例に係るシミュレーション装置50は、図1に示す実施例1に係る制御部14に代えて、制御部54を有する点が、実施例1と異なる。なお、以下では、上記の実施例1と同様の機能を果たす各部については図1と同様の符号を付し、その説明は省略する。
【0053】
制御部54は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部54は、シミュレーション部54aと、検出部54bと、選択部54cと、変更部54dとを有する。
【0054】
シミュレーション部54aは、実施例1に係るシミュレーション部14aの機能に加え、シミュレーション対象として選択された車両ごとに、後述の変更部54dの変更指示により、すでに計算された挙動を変更すると判定された要因車両の挙動を、次のように再計算する。すなわち、シミュレーション部54aは、すでに計算された挙動を変更すると判定された要因車両については、移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する。すなわち、シミュレーション部54aは、挙動を変更すると判定された要因車両については、通常のシミュレーションでの衝突条件を無視し、停止している要因車両を、停止する所定時間前の進行方向および速度で移動させて、挙動の計算を再び行う。
【0055】
検出部54bは、記憶部13に記憶された時刻(t−Δt)の車両挙動13bに基づいて、時刻(t−Δt)におけるグリッドロックの発生を検出する。なお、グリッドロックの発生の検出方法は、実施例1と同様の方法を用いることができる。
【0056】
選択部54cは、検出部54bによりグリッドロックの発生が検出された場合には、記憶部13に記憶された、時刻(t−Δt)の車両の挙動に基づいて、シミュレーション対象の車両が、グリッドロックに関連したか否かを判定する。ここで、選択部54cは、環状に連鎖した原因車両の中に、シミュレーション対象の車両が含まれている場合には、グリッドロックに関連したと判定する。一方、選択部54cは、環状に連鎖した原因車両の中に、シミュレーション対象の車両が含まれていない場合には、グリッドロックに関連していないと判定する。
【0057】
そして、選択部54cは、グリッドロックに関連したと判定した場合に、シミュレーション対象の車両が、挙動を変更する車両であるか否かを判定する。例えば、選択部54cは、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの停止している時間に基づいて、シミュレーション対象の車両が、環状に連鎖した原因車両の中で、最も長い時間停止しているか否かを判定する。そして、選択部54cは、最も長い時間停止していると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0058】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置や、道路データに基づいて、シミュレーション対象の車両が、交差点内に存在するか否かを判定することもできる。選択部54cは、交差点内に存在すると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0059】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置に基づいて、次のような処理を行うこともできる。すなわち、選択部54cは、シミュレーション対象の車両が、同一方向の複数の車線のそれぞれを走行する複数の原因車両であって環状に連鎖した複数の原因車両のうち、前方に位置する原因車両であるか否かを判定することもできる。選択部54cは、前方に位置する原因車両であると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0060】
また、選択部54cは、グリッドロックに関連したと判定した場合に、時刻(t−Δt)の環状に連鎖した原因車両のそれぞれの位置に基づいて、次のような処理を行うこともできる。すなわち、選択部54cは、シミュレーション対象の車両が、主道路および従道路を走行する複数の原因車両であって環状に連鎖した複数の原因車両のうち、主道路側の原因車両であるか否かを判定することもできる。選択部54cは、主道路側の原因車両であると判定した場合には、シミュレーション対象の車両を、挙動を変更する車両であると判定する。続いて、選択部54cは、挙動を変更する車両であると判定された車両を、要因車両として選択する。
【0061】
変更部54dは、選択部54cで選択された要因車両については、次のような変更指示をシミュレーション部14aに送信する。すなわち、変更部54dは、要因車両が停止する所定時間前の進行方向および速度で要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する変更指示を送信する。要因車両を移動させた場合には、他の車両との衝突により進行が妨げられないように、要因車両については、衝突時の挙動計算を行わないように、変更部54dは、シミュレーション部54aを制御する。
【0062】
このようにして、停止している要因車両が移動することで、グリッドロックが解消された後は、シミュレーション部54aによるシミュレーションが通常のシミュレーションに戻る。そのため、要因車両をシミュレーション対象から外す場合と比較して、実施例2では、要因車両をシミュレーション対象から外さないので、シミュレーション結果に与える影響がより小さくなる。
【0063】
制御部54は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
【0064】
[処理の流れ]
次に、本実施例に係るシミュレーション装置50の処理の流れを説明する。図6は、実施例2に係るシミュレーション処理の手順を示すフローチャートである。このシミュレーション処理は、入力部11からシミュレーション処理を実行する指示が入力された場合に実行される。なお、図6に示すステップS101〜S105、S109の処理は、実施例1と同様であるので説明を省略する。
【0065】
図6に示すように、ステップS105の次に、検出部54bは、時刻(t−Δt)の車両挙動13bに基づいて、時刻(t−Δt)におけるグリッドロックの発生を検出する。そして、選択部54cは、検出部54bによりグリッドロックの発生が検出された場合には、時刻(t−Δt)の車両の挙動に基づいて、シミュレーション対象の車両が、時刻(t−Δt)におけるグリッドロックに関連したか否かを判定する(ステップS201)。
【0066】
グリッドロックに関連したと判定した場合(ステップS201肯定)には、選択部54cは、シミュレーション対象の車両が、挙動を変更する車両であるか否かを判定する(ステップS202)。なお、挙動を変更する車両であると判定した車両は、選択部54cにより、要因車両として選択される。シミュレーション対象の車両が、挙動を変更する車両である場合(ステップS202肯定)には、変更部54dは、要因車両については、次のような変更指示をシミュレーション部14aに送信する(ステップS203)。すなわち、変更部54dは、要因車両が停止する所定時間前の進行方向および速度で要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する変更指示を送信する。そして、ステップS102へ戻る。
【0067】
また、グリッドロックに関連していないと判定した場合(ステップS201否定)、および、シミュレーション対象の車両が、挙動を変更する車両でない場合(ステップS202否定)には、ステップS102へ戻る。
【0068】
[実施例2の効果]
上述してきたように、本実施例に係るシミュレーション装置50は、モデル13aに基づいて、複数の車両の挙動を模擬する。本実施例に係るシミュレーション装置50は、模擬された複数の車両の挙動を記憶する。本実施例に係るシミュレーション装置50は、記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する。本実施例に係るシミュレーション装置50は、グリッドロックの発生が検出された場合には、記憶された複数の車両の挙動に基づいて、グリッドロックの発生の要因となる要因車両を選択する。本実施例に係るシミュレーション装置50は、グリッドロックが解消されるように、選択された要因車両に対して、シミュレーション部により模擬された挙動を変更する。したがって、本実施例に係るシミュレーション装置50によれば、発生したグリッドロックが解消されるので、グリッドロックが発生した場合に、妥当なシミュレーション結果を得ることができる。
【0069】
また、本実施例に係るシミュレーション装置50は、車両が停止した原因となる原因車両が環状に連鎖する場合に、グリッドロックの発生を検出する。このように、本実施例に係るシミュレーション装置50によれば、従来困難であったグリッドロックの検出を、原因車両に基づいて、容易に行うことが可能となる。
【0070】
また、本実施例に係るシミュレーション装置50は、グリッドロックの発生の要因となる要因車両については、次のような処理を行う。すなわち、本実施例に係るシミュレーション装置50は、要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、要因車両と該他の車両とを互いにすり抜けさせるように挙動を再計算する。このように、本実施例に係るシミュレーション装置50は、要因車両を移動させて、移動時に、要因車両と他の車両とが衝突する場合であっても、衝突しないとみなすことで、要因車両の挙動を変更する。したがって、本実施例に係るシミュレーション装置50によれば、要因車両をシミュレーション対象から外す場合と比較して、要因車両をシミュレーション対象から外さないので、シミュレーション結果に与える影響がより小さくなる。
【0071】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0072】
[シミュレーション]
また、上記の実施例1、2では、車両の交通シミュレーションを行う場合について説明したが、開示の装置はこれに限定されない。例えば、開示の装置は、車両の交通シミュレーションを行うとともに、運転を模擬する運転シミュレーションを行うことができる。
【0073】
[道路モデル]
また、上記の実施例1、2では、道路モデルを、車両が走行する道路を定義した静的なデータとする場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、道路モデルに、信号機の信号状態などのような動的なデータを含めることができる。これにより、開示の装置は、信号状態などの刻々と変化する状況に対応するシミュレーションを行うことが可能となる。
【0074】
また、実施例1、2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図4、図6のステップS101において、それぞれ、シミュレーション処理を続行するか否かを人間が判断して、判断結果を入力部11から入力してもよい。
【0075】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、図4、図6に示すステップS103、104をまとめることもできる。
【0076】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1、図5に示すシミュレーション部と変更部とが統合されてもよい。
【実施例3】
【0077】
[シミュレーションプログラム]
また、上記の実施例で説明したシミュレーション装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図7を用いて、上記の実施例で説明したシミュレーション装置と同様の機能を有するシミュレーションプログラムを実行するコンピュータの一例を説明する。図7は、シミュレーションプログラムを実行するコンピュータを示す図である。
【0078】
図7に示すように、実施例3におけるコンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340とを有する。これら300〜340の各部は、バス350を介して接続される。
【0079】
ROM320には、上記の実施例1、2で示すシミュレーション部と、検出部と、選択部と、変更部と同様の機能を発揮するシミュレーションプログラム320aが予め記憶される。なお、シミュレーションプログラム320aについては、適宜分離しても良い。例えば、検出部と、選択部と同様の機能を発揮するプログラムと、シミュレーション部と、変更部と同様の機能を発揮するプログラムとに分離しても良い。
【0080】
そして、CPU310が、シミュレーションプログラム320aをROM320から読み出して実行する。
【0081】
そして、HDD330には、モデル、車両挙動が設けられる。これらモデル、車両挙動のそれぞれは、図1、5に示したモデル13a、車両挙動13bのそれぞれに対応する。
【0082】
そして、CPU310は、モデルと、車両挙動とを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納されたモデルデータと、車両挙動データとを用いて、シミュレーションプログラムを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納される必要はなく、処理に必要なデータのみがRAM340に格納されれば良い。
【0083】
なお、上記したシミュレーションプログラムについては、必ずしも最初からROM320に記憶させておく必要はない。
【0084】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0085】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0086】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【0087】
(付記1)モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部と、
前記シミュレーション部により模擬された複数の車両の挙動を記憶する記憶部と、
前記記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する検出部と、
前記検出部によりグリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択する選択部と、
前記グリッドロックが解消されるように、前記選択部により選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する変更部と
を有することを特徴とするシミュレーション装置。
【0088】
(付記2)前記検出部は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする付記1に記載のシミュレーション装置。
【0089】
(付記3)前記変更部は、前記複数の車両のうち、前記選択部により選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1または2に記載のシミュレーション装置。
【0090】
(付記4)前記変更部は、前記選択部により選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1〜3のいずれか1つに記載のシミュレーション装置。
【0091】
(付記5)前記変更部は、前記選択部により選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを互いに衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記1または2に記載のシミュレーション装置。
【0092】
(付記6)前記選択部は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0093】
(付記7)前記選択部は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0094】
(付記8)前記選択部は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0095】
(付記9)前記選択部は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする付記2に記載のシミュレーション装置。
【0096】
(付記10)コンピュータに、
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部により模擬された複数の車両の挙動を記憶する記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出し、
グリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択し、
前記グリッドロックが解消されるように、選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する
処理を実行させることを特徴とするシミュレーションプログラム。
【0097】
(付記11)前記グリッドロックの発生を検出する処理は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする付記10に記載のシミュレーションプログラム。
【0098】
(付記12)前記グリッドロックの発生を検出する処理は、前記複数の車両のうち、選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10または11に記載のシミュレーションプログラム。
【0099】
(付記13)前記グリッドロックの発生を検出する処理は、選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10〜12のいずれか1つに記載のシミュレーションプログラム。
【0100】
(付記14)前記グリッドロックの発生を検出する処理は、選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする付記10または11に記載のシミュレーションプログラム。
【0101】
(付記15)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0102】
(付記16)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0103】
(付記17)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【0104】
(付記18)前記要因車両を選択する処理は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする付記11に記載のシミュレーションプログラム。
【符号の説明】
【0105】
10 シミュレーション装置
13 記憶部
13a モデル
13b 車両挙動
14 制御部
14a シミュレーション部
14b 選択部
14c 検出部
14d 変更部
【特許請求の範囲】
【請求項1】
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部と、
前記シミュレーション部により模擬された複数の車両の挙動を記憶する記憶部と、
前記記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する検出部と、
前記検出部によりグリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択する選択部と、
前記グリッドロックが解消されるように、前記選択部により選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する変更部と
を有することを特徴とするシミュレーション装置。
【請求項2】
前記検出部は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする請求項1に記載のシミュレーション装置。
【請求項3】
前記変更部は、前記複数の車両のうち、前記選択部により選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1または2に記載のシミュレーション装置。
【請求項4】
前記変更部は、前記選択部により選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1〜3のいずれか1つに記載のシミュレーション装置。
【請求項5】
前記変更部は、前記選択部により選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを互いに衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1または2に記載のシミュレーション装置。
【請求項6】
前記選択部は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項7】
前記選択部は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項8】
前記選択部は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項9】
前記選択部は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項10】
コンピュータに、
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部により模擬された複数の車両の挙動を記憶する記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出し、
グリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択し、
前記グリッドロックが解消されるように、選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する
処理を実行させることを特徴とするシミュレーションプログラム。
【請求項1】
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部と、
前記シミュレーション部により模擬された複数の車両の挙動を記憶する記憶部と、
前記記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出する検出部と、
前記検出部によりグリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択する選択部と、
前記グリッドロックが解消されるように、前記選択部により選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する変更部と
を有することを特徴とするシミュレーション装置。
【請求項2】
前記検出部は、複数の車両のそれぞれについて、停止の原因となる他の車両を特定可能な情報を取得し、取得した車両が環状に連鎖する場合には、グリッドロックの発生を検出する
ことを特徴とする請求項1に記載のシミュレーション装置。
【請求項3】
前記変更部は、前記複数の車両のうち、前記選択部により選択された要因車両がシミュレーション対象の車両とならないように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1または2に記載のシミュレーション装置。
【請求項4】
前記変更部は、前記選択部により選択された要因車両が移動するように、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1〜3のいずれか1つに記載のシミュレーション装置。
【請求項5】
前記変更部は、前記選択部により選択された要因車両の移動時に、該要因車両と他の車両とが衝突する場合であっても、該要因車両と該他の車両とを互いに衝突しないとみなすことで、前記シミュレーション部により模擬された要因車両の挙動を変更する
ことを特徴とする請求項1または2に記載のシミュレーション装置。
【請求項6】
前記選択部は、前記環状に連鎖する複数の車両のうち、停止時間が最も長い車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項7】
前記選択部は、前記環状に連鎖する複数の車両のうち、交差点内に存在する車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項8】
前記選択部は、前記環状に連鎖する複数の車両であって、同一方向の複数の車線のそれぞれを走行する複数の車両の各車線の先頭車両のうち、進行方向に対して最も前方の先頭車両を要因車両として選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項9】
前記選択部は、前記環状に連鎖する複数の車両の相対位置の関係、道路交通ルール、または道路交通マナーに応じて、前記環状に連鎖する位置に存在する複数の車両のなかから要因車両を選択する
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項10】
コンピュータに、
モデルに基づいて、複数の車両の挙動を模擬するシミュレーション部により模擬された複数の車両の挙動を記憶する記憶部に記憶された複数の車両の挙動に基づいて、グリッドロックの発生を検出し、
グリッドロックの発生が検出された場合には、前記記憶部に記憶された複数の車両の挙動に基づいて、該グリッドロックの発生の要因となる要因車両を選択し、
前記グリッドロックが解消されるように、選択された要因車両に対して、前記シミュレーション部により模擬された挙動を変更する
処理を実行させることを特徴とするシミュレーションプログラム。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図8C】
【図8D】
【公開番号】特開2012−247863(P2012−247863A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−117241(P2011−117241)
【出願日】平成23年5月25日(2011.5.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月25日(2011.5.25)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]