JP2008203913A - 交通流シミュレーション装置 - Google Patents
交通流シミュレーション装置 Download PDFInfo
- Publication number
- JP2008203913A JP2008203913A JP2007035811A JP2007035811A JP2008203913A JP 2008203913 A JP2008203913 A JP 2008203913A JP 2007035811 A JP2007035811 A JP 2007035811A JP 2007035811 A JP2007035811 A JP 2007035811A JP 2008203913 A JP2008203913 A JP 2008203913A
- Authority
- JP
- Japan
- Prior art keywords
- information
- section
- simulation
- agent
- extracted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】仮想ドライバの知覚ミス、認識ミス、判断ミスによって交通事故が発生するような交通流シミュレーション装置であって、演算すべき車両台数が増加しても、ハードウエアに対する負荷の増加が少ないシミュレーション装置を提供する。
【解決手段】演算が必要な移動体を絞り込むために、視野内に含まれるセクションを抽出し、抽出されたセクション内に存在する移動体を、存在情報マトリクスを用いて抽出する。3次元空間に存在する抽出された移動体に対して、仮想ドライバであるエージェントの仮想スクリーン上での2次元平面情報と奥行き配置情報を算出することで可視判定を行い、死角となる位置関係にある移動体を除外する。そして、除外されずに残った物体を基準に移動体を移動させ、交通事故が発生するか否かをシミュレーションする。
【選択図】図7
【解決手段】演算が必要な移動体を絞り込むために、視野内に含まれるセクションを抽出し、抽出されたセクション内に存在する移動体を、存在情報マトリクスを用いて抽出する。3次元空間に存在する抽出された移動体に対して、仮想ドライバであるエージェントの仮想スクリーン上での2次元平面情報と奥行き配置情報を算出することで可視判定を行い、死角となる位置関係にある移動体を除外する。そして、除外されずに残った物体を基準に移動体を移動させ、交通事故が発生するか否かをシミュレーションする。
【選択図】図7
Description
本発明は交通網を移動する移動体の動きを模擬する交通流シミュレーション装置に関し、特に、車両や二輪車、船舶、歩行者等の移動体の操作者の知覚特性を考慮した交通流シミュレーション装置に関する。
都市計画等で新たに道路を設計する場合や、交通量の増加に伴って既存の道路の改善、拡張等を行う場合には、シミュレーションを行って交通量や渋滞の発生等を予測し、車線や交差点の配置、幅員等の設計が行われる。そのための交通流シミュレーションシステムとして、交通状況に影響を与える変動要因である、曜日、時刻、天候、イベントの有無、長期休暇中であるか、という変量を考慮してより個々のケースに対応した交通量を予測するシミュレーション技術が知られている(特許文献1)。
また、通行できない度合いを数値化した通行困難度分布に基づいて移動体の進行方向や速度を決定するシミュレーション技術も知られている(特許文献2)。これは、通行困難領域や他の移動体の通行困難度を移動体からの視界に変換した見かけの通行困難度分布を生成し、これに基づいて車両を操作するシミュレーション装置である。
さらに、解析対象となる領域を分割した複数のセルをセルラオートマトンによりモデル化し、各セルにカテゴリ等の所定の状態量を定義しておき、車両として定義したセルの位置からは見ることができないセルを除外し、車両が駐車スペースを選択する指標となる魅力値を参照して、車両が移動すべきセルを決定する交通流シミュレータも知られている(特許文献3)。
一方、交通事故の低減を目的として既存の道路の改善等の施策を立案する場合には、交通安全施策の事故削減に対する効果を交通流シミュレーションによって事前に予測することはこれまでほとんど行われていない。交通安全施策の事故削減に対する効果を直接的に評価するものではないが、既存若しくは設計段階の交差点や道路において、自動車モデル定義情報と状況情報に基づき自動車モデル群を古典力学に従って運動させ、ドライバモデル定義情報とシミュレーション実施条件情報とシミュレーション過程の状況情報に基づきドライバモデル群に運転行動をさせ、交差点や道路の幾何学的、物理的特徴に基づいてドライバモデル群から危険度情報を取得する危険度評価装置が知られている程度である(特許文献4)。
交通安全施策の事故削減に対する効果を、交通流シミュレーション装置によって事前に評価するためには、実交通での複雑な相互作用によって作り出される事故発生プロセスを忠実に模擬することによって交通事故が発生するような交通流シミュレーション装置が必要となる。すなわち、実交通における交通事故の主要因は、ドライバの知覚、認識、判断ミスにあると言われており、理想的な交通流シミュレーションは、仮想ドライバの「知覚」、「認識」、「判断」、「操作」という一連の認知的行為によって交通流シミュレーション内の仮想車両一台一台が移動することで複雑な交通流を出現させるインタラクティブな仕組みを具えたものであり、さらには「知覚」、「認識」、「判断」におけるドライバのミスを模擬し、それによって交通事故が発生するようにプログラムされていなければならない。
ここで、交通流シミュレーションプログラムにおいて仮想ドライバが「知覚」するとは、交通流シミュレーション装置内のシミュレーション対象地区の領域(例えば交差点や単路等からなる道路)に広範囲にわたって存在している複数の仮想車両並びに信号機及び建物等の静止物体の中から、当該仮想ドライバが搭乗している仮想車両の近くに位置する仮想車両及び/又は静止物体であって、遮蔽物によって遮蔽されていない可視な仮想車両及び/又は静止物体を検索することを意味する。また、仮想ドライバが「認識」するとは、仮想ドライバの知覚によって検索された仮想車両が先行車であるのか、対向車であるのか、信号機は赤なのか青なのかといったラベル付けを行うことを意味する。そして、仮想ドライバが「判断」するとは、認識された自車両の周りの仮想車両及び/又は静止物体の配置状況から、当該仮想ドライバに与えられた運転目的地へ到達するために必要な運転行動を決定することを意味する。さらに「操作」するとは、仮想車両を意図したように移動させるための仮想車両への入力を決定することを表す。
このような仮想ドライバの「知覚」、「認識」、「判断」、「操作」という模擬を行い、仮想ドライバ自らが判断して実際のドライバと同じように行動するシミュレーション装置は、従来は存在しなかった。
特許文献1や特許文献4では、上記のような仮想ドライバの模擬は行われておらず、実際のドライバと同じように行動するシミュレーションは行えなかった。
また、特許文献2では、仮想ドライバの「知覚」、「認識」という模擬を、移動体からの視界に変換した見かけの通行困難度分布に一元的に置き換えてしまっているため、仮想ドライバ自体の知覚ミス、具体的には前方不注意等が原因の事故等までシミュレーションすることができなかった。また、仮想ドライバの死角も考慮されていないため、実際の状況に即したシミュレーションも行えなかった。
さらに、特許文献3では、大きさの等しい1つのセルに1つのカテゴリしか指定できないものであり、セル内の車両の位置という概念は存在しないため、厳密なシミュレーションを行う場合にはセルを細かくしていく必要があった。しかしながら、セルを細かくしていった場合、車両の大きさを考慮すると1つのセルの大きさには車両が収まらないことが起こり得る。したがってセルを細かくするのにも限界があった。また、仮に複数のセルで1つの車両を表現しようとしてもそのための何らかの仕組みが必要となるが、特許文献3にはその記載はない。さらに、セル毎に状態量を変化させなければならないため、セルを細かくしていった場合にはセル数が増大するため計算時間が爆発的に増大してしまう恐れもあった。このように、特許文献3では、処理の複雑度や計算負荷の観点から、厳密なシミュレーションを行うのには適していなかった。
さらに、特許文献3における、車両として定義したセルの位置からは見ることができないセルを除外する概念は、単に仮想ドライバの視野方向の障害物から後側にあるセルをすべて取り除いているに過ぎない。駐車場における駐車スペースを探すという目的の単純なシミュレーションであればこれでも構わないが、実際の状況に即した交通流のシミュレーションを行おうとした場合、仮想ドライバの視野方向の障害物から後側にある移動体や静止物体が可視可能か否かが重要になってくる。特許文献3の技術ではこの後側の物体の可視判定が行えないため、例えば後側の大型車の可視判定や信号機の知覚・認識も行うことができないので、実際の状況に即したシミュレーションは不可能であった。また、障害物の後側にあるセルをすべて取り除く処理についても、セルを細かくしていった場合にはセル数が増大するため、大量のセルの中から後側の影になるセルを抽出するのには処理時間がかなり多く必要となってしまうことも容易に想像できる。
したがって、高速な処理が可能であり、且つ実際の状況に即した交通流のシミュレーションが行えるシミュレーション装置の開発が望まれていた。
本願発明は、上記の課題に鑑み発明されたものであって、仮想ドライバの知覚ミス、認識ミス、判断ミスによって交通事故が発生するような交通流シミュレーション装置であって、演算すべき移動体や静止物体の数が増加しても、ハードウエアに対する負荷の増加が少ないシミュレーション装置を提供することを課題とする。
上述した本発明の目的を達成するために、本発明による交通流シミュレーション装置は、情報を記憶する記憶手段であって、移動体の3次元位置と姿勢角と寸法とに関する移動体情報と、仮想ドライバ又は仮想歩行者であるエージェントの視点の3次元位置と視野とに関するエージェント情報と、シミュレーション対象地区を、複数の移動体が存在し得る程度の範囲を有する区画に分割して作成する複数のセクションの位置に関するセクション座標情報と、各セクション内に存在する移動体の数と識別番号とに関する存在情報マトリクス情報と、複数のセクション同士が交通網として連続して遷移可能であるか否かに関する遷移可能セクションマトリクス情報と、を記憶する記憶手段を有する。また、交通流シミュレーション装置は、エージェント情報とセクション座標情報とを用いて、指定されたエージェントの視野内に含まれるセクションを抽出するセクション抽出手段と、存在情報マトリクス情報を用いてセクション抽出手段により抽出されたセクションに存在する移動体を抽出し、抽出された各移動体に対する移動体情報と指定されたエージェントのエージェント情報とを用いて、3次元空間に存在する抽出された各移動体に対する、指定されたエージェントの仮想スクリーン上での2次元平面情報と抽出された各移動体の奥行き配置情報とを算出し、2次元平面情報と奥行き配置情報とを用いて、指定されたエージェントからの抽出された各移動体の可視判定を行うことで死角となる位置関係にある移動体を除外する、エージェントの知覚を模擬する知覚模擬手段と、知覚模擬手段に基づき指定されたエージェントが移動体を操作する移動体運動模擬手段と、移動体運動模擬手段による操作後の移動体の移動体情報とセクション座標情報とを用いて移動体のセクション間の遷移を検出し、遷移があれば遷移可能セクションマトリクス情報を用いて遷移した移動体が存在するセクションを特定し、遷移した移動体について存在情報マトリクス情報を更新する、移動体存在情報管理手段と、を具備するものである。
ここで、記憶手段は、さらに、静止物体の3次元位置と寸法とに関する静止物体情報を記憶し、存在情報マトリクス情報は、さらに、各セクション内に存在する静止物体の数と識別番号とに関する情報を含み、知覚模擬手段は、さらに、存在情報マトリクス情報を用いてセクション抽出手段により抽出されたセクションに存在する静止物体も抽出し、抽出された各静止物体に対する静止物体情報も用いて、3次元空間に存在する抽出された各移動体及び各静止物体に対する、指定されたエージェントの仮想スクリーン上での2次元平面情報と抽出された各移動体及び各静止物体の奥行き配置情報とを算出し、2次元平面情報と奥行き配置情報とを用いて、指定されたエージェントからの抽出された各移動体及び各静止物体の可視判定を行うことで死角となる位置関係にある移動体及び静止物体を除外しても良い。
さらに、知覚模擬手段により除外されず残った移動体又は静止物体に対して、所定の確率で移動体又は静止物体をさらに除外する見落とし処理を行っても良い。
またさらに、交通流シミュレーション装置を複数用い、各装置には、そのシミュレーション対象地区として少なくとも1つのセクションがそれぞれ割り振られており、各装置の記憶手段は、各装置に割り振られたセクションに関するセクション割り振り情報を記憶し、各装置の知覚模擬手段は、セクション割り振り情報を参照し、抽出されたセクションが他の装置に割り振られたセクションの場合には、そのセクションに割り振られた他の装置の存在情報マトリクス情報を参照して抽出されたセクションに存在する移動体に対する移動体情報を受信し、各装置の移動体存在情報管理手段は、セクション割り振り情報を参照し、遷移した移動体が存在する特定されたセクションが他の装置に割り振られたセクションの場合には、そのセクションに割り振られた他の装置に移動体情報を送信し、他の装置は、受信した移動体情報について存在情報マトリクス情報を更新するようにしても良い。
さらに、知覚模擬手段により知覚された移動体に対して認識模擬を行う認識模擬手段を有し、該認識模擬手段は、指定されたエージェントから見た各移動体に対する意味付けを行うようにしても良い。
また、このような交通流シミュレーション装置をコンピュータで実現するための本発明の交通流シミュレーションプログラムは、コンピュータを上記各手段として機能させるためのプログラムである。
本発明の交通流シミュレーション装置には、仮想ドライバであるエージェントが実際のドライバの知覚を模擬しているため、より現実の状況に近い交通流のシミュレーションが可能であるという利点がある。また、シミュレーション範囲内において移動体や静止物体の数が増加しても、存在情報マトリクス情報を用いて多数の移動体や静止物体の中から演算すべき移動体や静止物体を瞬時に抽出可能となるため、処理速度の向上及び、単位時間あたりの処理数の向上、システムに対する負荷を低減させる等の利点も有する。さらに、仮想ドライバの知覚ミス等も再現可能であるため、より正確に実際の状況に即した交通流のシミュレーションが可能であるという利点もある。
以下、本発明を実施するための最良の形態を図示例と共に説明する。なお、以下、本明細書中では、「移動体」とは、自動車等の車両を対象に説明するが、本発明はこれに限定されず、船舶や航空機等、ドライバの操作によって移動するものであれば種々の物体が含まれても良い。また、本発明による仮想ドライバや仮想歩行者等、人間を模擬したものを、エージェントと呼ぶこととする。さらに、移動体は歩行者等も含む概念であっても良く、この場合には移動体とエージェントを同一視することが可能となる。
図1は、本発明の交通流シミュレーション装置の概略模式図である。交通流シミュレーション装置1は、パーソナルコンピュータ等の電子計算機であり、CPU等の演算手段2、当該演算手段2によって処理されるデータ若しくは処理後のデータを記憶するハードディスク、RAM、ROM等の記憶手段3、入出力手段4等を備える。
記憶手段3には、本願発明におけるエージェントに関する情報やそれに応じて動作をシミュレーションするプログラム等が記憶されている。また、記憶手段3には、交通網の情報、具体的には道路に関するデータが記憶されており、さらに、この道路上で移動する移動体に関する情報、例えば車両の位置の情報やその大きさ、移動方向、移動速度等のデータも記憶されている。
なお、交通流シミュレーション装置1は、勿論1台でも構わないが、複数のコンピュータにより分散処理することも可能である。この場合、後述の存在情報マトリクスを用いることで、コンピュータ間の通信すべき必要最小限の情報を特定することが可能となり、コンピュータ間のトラフィックを軽減し処理速度を向上することも可能となる。
以下、エージェントについて説明する。図2は、本発明におけるエージェントを説明するためのブロック図である。図示の通り、エージェント20は、知覚部201と認識部202と判断部203と操作部204とから主になるものである。このエージェント20により移動体が操作される。シミュレーションを行うときに、指定されたエージェントにより操作されて移動させられる移動体を中心に説明すると、知覚部201は、記憶手段3に記憶されたエージェントに関する情報、具体的にはエージェントの視点の3次元位置と視野に関する情報を基に、指定されたエージェントから見て死角となる位置関係にある物体を、演算手段2により演算して検知し、知覚対象から死角となる物体を除外する。なお、死角となる位置関係にある物体には、歩行者や他の移動体は勿論のこと、信号機や街路樹、建物等の静止物体等、種々のオブジェクトが含まれる。死角は、他の移動体の影の位置や曲がった道路の先、建物の影等、様々な要因で生ずる。このようにして知覚部201でエージェントの知覚模擬を行う。
そして、この知覚部201の知覚結果に基づき、知覚された他の移動体の存在や位置、移動方向等を認識部202で識別し、それらと衝突を避けるために、このまま進むべきか止まるべきか、曲がるべきか等の判断を判断部203で行った上で、移動体を操作部204により操作する。これにより、実際のドライバが死角にいた歩行者を轢いてしまう等のシミュレーションを、実際に近い形で行うことが可能となる。
また、より現実に近いシミュレーションが可能となるように、知覚部201により除外されずに残った物体に対して、所定の確率で物体をさらに除外する見落とし処理を行うようにしても良い。これは、死角にならずに本来は見えているにも関わらず、脇見運転を行った場合のように見落とすことを模擬するために行う。これにより、さらに実際に近い形でシミュレーションを行うことが可能となる。なお、他のパラメータ、例えばドライバの年齢や運転嗜好、運転経験、生理的・精神的状態、安全態度等の個性を考慮したパラメータを追加しても良い。
なお、交通流シミュレーションを行うすべての移動体に対して死角になっているか否かを判断するのは処理時間の観点から無駄が多い。すなわち、交通流シミュレーション装置の実現、すなわちエージェントの認知的行為のプログラム化にあたって、演算処理量の最も多くなるのは「知覚」のための近接可視な仮想車両の検索処理である。最もシンプルなプログラム化の方法は、総当りによって仮想車両間の距離と可視性を調べることである。しかし、この方法によって多数存在している各車両それぞれについて位置関係等を演算により取得するには、領域内に存在する車両台数をNとすると、1台の車両につき、N−1回の演算が必要であるから、N(N−1)回の演算が必要になり、Nが大きくなると計算量が膨大となってしまう。また、各車両は交通流として、次々と領域上を刻々と遷移していくものであり、時間の経過に合わせて、前述した車両間の相対的位置関係に基づいた検索処理を繰り返す必要がある。このように、総当りによる検索方法では演算処理量の増加に伴って使用するハードウエアに対する負担が多くなり、シミュレーション結果を算出する時間が長くなってしまう。交通事故は滅多に発生しない稀なイベントであり、交通安全施策の事故削減に対する効果を評価するためにはシミュレーション内の時間で少なくとも2〜3ヶ月分は計算を行う必要があり、シミュレーションの実行速度が遅いと実用に供しない。
したがって、本発明の交通流シミュレーションにおいては、セクション座標情報と存在情報マトリクス情報とを用いて演算すべき移動体や静止物体を抽出して絞り込む処理を行うことで、シミュレーションの高速化を図っている。ここで、セクション座標情報とは、シミュレーション対象区画を、複数の移動体が存在し得る程度の範囲を有する区画に分割して作成した複数のセクションの位置に関する情報である。また、存在情報マトリクス情報とは、各セクション内に存在する移動体の数と識別番号とに関する情報である。これにより、まず指定されたエージェントの視野内に含まれるセクションを抽出し、抽出されたセクションに存在する移動体を存在情報マトリクス情報により高速に抽出することが可能となる。このため、エージェントの視野内に存在する移動体を抽出することが可能となり、高速に視野外の移動体を除外することが可能となる。
以下、上述の交通流シミュレーション装置を実現するための、より具体的な例を説明する。図1の記憶手段3には、シミュレーション設定データとして道路に関するデータが記憶されており、本実施例においては、一例として東京都中央区の「三原橋交差点」を中心とした領域についての道路に関するデータが記憶されている。当該道路に関するデータとしては、セクション座標データ、存在情報マトリクスデータ、及び遷移可能セクションマトリクスデータがある。
まず、セクション座標データについて説明する。図3(a)は、シミュレーション対象地区として「三原橋交差点」を中心とした半径約100mmの地域を表した地図である。同地図に記載した2点鎖線による複数の円は、交差点の中央を中心として半径約20m毎に描いた線である。本実施例では、当該「三原橋交差点」付近の地図(主として車道)を演算処理可能なデータとするために、シミュレーション対象地区を所定の区画に分割したセクションに関する座標データを作成する。なお、当該座標データは、北緯・東経によって表される絶対座標の他、代替的にXY座標(道路座標と呼ぶ)を用いてモデル化した座標データであっても良い。本実施例においては、後者のXY座標を用いてモデル化した座標データを作成し、以後の演算に使用する。図3(b)は、図3(a)に記載した地図の中心部を交差する2本の幹線道路をモデル化するために、交差点の中央から約20m単位で車線を区切り、当該区切られた領域を1つのセクションとしてそれぞれ符号(S1〜S28)を付したものである。なお、図示例では車道についてのみセクションを作成したが、必要により車道以外の街路樹や建物が存在し得る領域にもセクションを作成しても良い。また、図3(b)では、交差点の中央からの等間隔にセクションを定義しているが、必ずしも等間隔にセクションを作成しなければいけないというわけではない。セクションの大きさは、当該道路の交通量に応じて、例えば交通量が多い箇所は密に、交通量が少ない箇所は大きく、というように、任意に設定が可能である。但し、上述のような視野内のセクションを抽出することにより移動体を抽出する高速化の手法を有効ならしめるためには、セクションは複数の移動体、すなわち少なくとも2つ以上の移動体が存在し得る程度の範囲を有するように区画分割されて作成される必要がある。このように、セクションの大きさは、小さすぎると視野内のセクションの抽出に時間がかかる一方、大きすぎると抽出したセクション内に存在する物体の視野内判定に時間がかかるものであるため、交通量や物体の存在数に応じて、適宜決定される。
図4は、図3(b)に示した各セクションS1〜S28で示した領域を、交差点の中央の座標を(X,Y)=(0,0)としたXY座標によってモデル化したものである。本実施例においては同図に表したようにセクション座標(道路座標)によって各セクションを定義する。例えば、図3(b)に示した交差点内を4分割した各セクションS1、S2、S3、S4で示された領域は、モデル化した図4記載の道路座標では次の(X,Y)座標で表される。すなわち、セクションS1とは(X0,Y0)と(X1,Y1)で定義される領域、セクションS2とは(X−1,Y0)と(X0,Y1)で定義される領域、セクションS3とは(X−1,Y−1)と(X0,Y0)で定義される領域、セクションS4とは(X0,Y−1)と(X1,Y0)で定義される領域として代替的に表される。なお、図4では説明の便宜上、座標値を0、1、2のような整数値としたが、実際の道路座標系の座標値としては、実際の寸法値に近似した実数値が入力されるようになっていても良い。また、実際の道路は起伏があったり高架道路があったりするため、XYZ座標により3次元でモデル化しても良い。
以上説明したように、セクション座標データとは、シミュレーション対象地区を所定の大きさの区画に分割してモデル化した際のセクションの位置を定義するための座標系を表す道路データである。
次に、存在情報マトリクスデータについて説明する。図5は、セクション内における移動体の存在情報を示す表である。同表は、道路上の各セクション内に存在する車両の数と識別番号を、逐次時間の経過とともに表すための表である。当該表として表されるデータは、セクション番号を指定すれば、そこに存在する車両の台数及び識別番号を取り出すことができるデータ群である。
なお、図示例では存在情報マトリクスデータとしては車両についてのみの情報を示しているが、本発明はこれに限定されず、歩行者等を含めた移動体の存在情報が含まれていても良い。すなわち、車両の識別番号と台数の代わりに、エージェントの識別番号と人数を取り出すことができるデータ郡としても良い。さらに、存在情報マトリクスデータは、各セクション内に存在する信号機や街路樹等の静止物体の数と識別番号も有するようにしても良い。また、移動体の存在を示すための存在情報マトリクスデータとは別に、静止物体のみの存在を示す静止物体存在情報マトリクスデータを別途設け、セクション内に存在する物体を特定するときには移動体存在情報マトリクスデータと静止物体存在情報マトリクスデータの2つを用いて、移動体と静止物体を抽出するようにしても良い。さらに、存在情報マトリクスデータは、説明上、車両の識別番号と台数を示す情報としたが、記憶される情報が識別番号のみであっても、識別番号の数をカウントすることで容易に台数は把握できるものである。
次に、遷移可能セクションマトリクスデータを、図6を用いて説明する。図6は、遷移マトリクスを示す表である。遷移マトリクスとは、道路座標上の任意のセクションが他のどのセクションと連続しているのかを配列した隣接領域データである。なお、後ほど説明するように、車両(車両モデル)は2次元平面上を運動学に従って連続的に移動するものであり、あるセクションから別のセクションへと離散化された空間を瞬間的に移動するわけではないので、あくまで当該遷移マトリクスとは、セクション内に存在する車両の直近の移動可能範囲を表したものである。
さらに、記憶手段3には、シミュレーション設定データとして、車両に関する移動体データやエージェントに関するエージェントデータが記憶されている。また、その他の物体として、例えば信号機に関するデータや歩行者に関するデータも記憶されていても良い。
移動体データとは、道路上を移動する例えば車両をモデル化した車両データであり、車両の寸法や3次元位置に関する情報を保持し、時間と共に運動学に従って位置、姿勢角が変更されるものである。各車両は、車両毎に異なる識別番号(本実施例においては、自然数)が付されており、3次元位置(Xv,Yv,Zv)で表される浮動小数点型の変数による3次元位置情報と、角度Фvで表される車両の姿勢角と、車両の幅、高さ、奥行き等を意味する寸法の情報を有している。なお、寸法は簡略的にモデル化したものでも良いし実際の車両をベースに詳細にモデル化したものであっても良い。
また、エージェントデータとは、仮想ドライバや仮想歩行者の視点の3次元位置、視野方向と視野角(θv,αv)等の視野情報、知覚された他の物体のデータ格納用変数、車両操縦コマンド等、各種情報を有するデータである。なお、エージェントの視点については、直接的に3次元位置を与えても良いし、エージェントの身長(座高)等の情報と車両の座席の高さ等の情報を用いて3次元位置を与えても良い。また、視野方向については、絶対座標を基準に視野角を与えても良いし、車両の姿勢角の中心線を基準に車両に対する相対角として視野角を与えても良い。
さて、これらの各データを用いた交通流のシミュレーションの処理工程を、図7を用いて説明する。図7は、本発明の交通流シミュレーション装置の処理工程を説明するためのフローチャートである。シミュレーションが開始されると、記憶手段3に記憶された道路座標(図4参照)、存在情報マトリクス(図5参照)、遷移可能セクションマトリクス(図6参照)、車両等の移動体データ、エージェントデータ、信号機等の静止物体データ、歩行者データ等の各種データが読み込まれると共に、各データが保有する変数等の初期化が行われる(ステップS1)。なお、静止物体データは車両データと区別なく扱い、単に時間的変化がない移動体データとして静止物体を扱うようにしても良い。また、歩行者データについても、エージェントデータ自体を歩行者データや運転手データを含むものとして扱うようにしても良い。
次いで、交通流シミュレーションが作り出す仮想世界の中における時間であって、その時間で何時間分(あるいは何日分、何ヶ月分)のシミュレーションを行うのかという実行時間と、交通流シミュレーションが作り出す仮想世界の中における時間を何秒単位で進めるのかというシミュレーション時間間隔(あるいはサンプリング時間と呼ぶ)等を入出力手段4等を用いて設定する(ステップS2)。本実施例における交通流シミュレーションでは、仮想世界の中における時間で1時間分のシミュレーションを行うとすると、実際に計算に掛かる実時間は数分であっても、交通流シミュレーションの中の時間では1時間経過したことになる。また、サンプリング時間は、交通流シミュレーションが作り出す仮想世界の中における時間を進める単位であり、例えば、0.1秒毎に仮想世界の中における時間を進める。したがって、0.1秒単位で実行時間1時間分の計算を行うとすると、60分×60秒×10回=36000回の繰り返し計算が行われることになる。
続くステップを説明すると、シミュレーション対象地区座標上に存在するエージェントすべてについて、エージェント毎に、知覚の模擬シミュレーション(ステップS3〜S7)を行った後、当該知覚の模擬に基づいて移動体である車両を判断・操作(ステップS8)する。すなわち、エージェントの知覚の模擬に基づいて必要な運転操作を判断し、移動体の操作を実行する。そして、この判断・操作に基づいて、実際に各移動体を移動させる模擬(ステップS10)を行い、各移動体の移動に伴うセクション間の遷移があった場合の処理(ステップS11〜S13)を行い、一回のサンプリング時間分時間を進める(ステップS14)というものである。以降、指定された実行時間に至るまで、上記の処理がサンプリング時間毎に繰り返される。以下、これらのステップをより詳細に説明する。
エージェントの知覚の模擬に関するシミュレーションでは、まず視野内のセクションの特定が行われる(ステップS4)。この処理は、指定されたエージェントの視点の3次元位置を基準として、エージェントの視野情報を用いて視野に含まれるセクションを特定するものである。視野情報には、視野角が含まれるが、視野角とは、視線・目線の方向である視野方向を中心とした、視覚で認識として可能な角度であって、本実施例においては例えば一般的に言われている±60度ほどの範囲に設定される。視野外とは当該視野角の範囲外をいうものである。人間は、自分の周囲360度すべての方向を同時に見る事はできず、ある一瞬に良く見る事の出来る範囲(視野)は、顔が前を向いている方向(正確には視線・目線の方向)を中心として、±60度ほどの範囲であると言われている。したがって、例えば、前を向いて車を運転しているとき、自分の後ろにいる車は(ルームミラーなしでは)見る事ができない。また、自分が後ろを向いていれば、後ろの車は知覚対象となり、反対に自車の前方にいる車が視野外となる。したがって、エージェントの視点の3次元位置と視野方向と視野角が含まれる視野情報とを用いて、エージェントの視野内のセクションの抽出が行われる。ここで、ルームミラー等による視野の拡大についても考慮しても勿論良い。
なお、計算効率等を考慮しなければ、指定されたエージェント以外のすべての移動体や静止物体に対して知覚の模擬を行っても良いが、シミュレーションの高速化のためには計算時間を減らす必要がある。そこで、本発明では、まず視野内のセクションの抽出を行い、抽出されたセクション内に存在する移動体や静止物体を存在情報マトリクスデータを用いて抽出することを行っている。これによりすべての移動体や静止物体に対して視野内に存在するか否かの判断を行う必要がないので、シミュレーションの高速化が図れる。このように、本発明のシミュレーション装置では、物体位置は物体が独自に持っており、セクションにはそこに存在する物体の識別番号のみが記憶されているので、物体の位置情報と物体の存在情報の独立化を行っている。これにより計算の効率化が図れる。
次に、抽出されたセクション内に存在する物体に対して、エージェントの視野外の物体の除外が行われる(ステップS5)。この処理は、ステップS4で特定された視野内のセクションに存在する物体の中から、指定されたエージェントから見た視野角の中に含まれる他の車両や歩行者等の移動体や、信号機や建物等の静止物体を得るために、視野外の移動体や静止物体を除外する処理である。すなわち、まずセクション単位で大まかに物体を抽出し、その抽出された物体の中から視野外の物体を除外して、最終的に可視判定を行うべき物体を特定している。具体的には、指定されたエージェントの視野に関する視野情報を用いて、抽出された各移動体や各静止物体が視野に含まれるか否かを判定する。
図8は、自車(指定されたエージェントが搭乗する車両)と他の車両等の物体との位置関係をXY座標を用いて表した図である。なお、視野に関しては2次元平面で説明するが、3次元空間において視野に含まれるか否かを判定する必要がある場合には3次元空間に拡張すれば良い。まず、自車の位置を(XV、YV)とし、他の物体の位置を(Xp、Yp)とする。また、自車の姿勢角をФV、エージェントの視野方向と視野角を(θV,αV)とする。
以下に、自車に搭乗しているエージェントから視認可能な前方角度(視野角)の範囲内に他の物体が存在しているか否かを判定するための演算内容を説明する。自車両位置(XV、YV)に対する他の物体の相対位置r(rrelX,rrelY)は、次式で表せる。
また、左右の視野の限界を与えるベクトルs1、s2は、それぞれ数2、数3で表せる。
上記数2、数3を用いてrを表すと、次式になる。
線形代数学によれば、a>0かつb>0であれば、rはs1とs2に挟まれる領域に存在することになるから、a,bを求めれば、他の物体がエージェントの視野内にいるか視野外にいるかを判別することができる。
ここで、a,bは次式で表せる。
ここで、sinα>0であることから、a,bはそれぞれ数6、数7で求められる。
この演算の結果、a,bが共に0よりも大きい場合(a>0,b>0)には他の物体の相対位置rは視野内であり、a又はbの何れかが0以下であるならば他の物体の相対位置rは視野外であると判定する。
なお、以上の数1から数7の処理は、エージェントの視野内のセクションに存在している他の物体すべてについて行うものであり、視野内にある移動体や静止物体の識別番号を保存するとともに、物体の総数をカウントする。
このようにして視野外の物体を除外した後、隠れ物体の除外処理を行う(ステップS6)。この処理は、ステップS5にて除外されて残った視野内に存在する物体に対して、指定されたエージェントから見て死角となる位置関係にある物体、すなわち、他の車両や建物等の障害物によって遮蔽されたために知覚することが出来ない隠れ物体を除外する処理である。
実際のドライバは、死角になって隠れて見えないものを見ることができないので、本発明の交通流シミュレーションでも同様の模擬を行う。実際に事故が起きる原因として、何かの陰に隠れていて見えなかったものが急に出てきて衝突したというようなことがあるので、そのような状況を模擬するために、隠れて見えないものの情報をエージェントに伝えないために当該処理をするものである。本実施例における交通流シミュレーション装置では、このような知覚・認識・判断のミスによって事故の発生をシミュレーションするものであり、いつ事故が発生するかは、実際の交通流における事故の発生と同様に、まったく確率的になっている。
このような死角となる物体の除外処理は、図9に示すように、抽出された視野内の物体の位置と姿勢角(XO,YO,ZO,ΦO)、物体の寸法である長さ、幅、高さ(l,w,h)、エージェントの視野方向と視点の座標(θV,XE,YE,ZE)、指定されたエージェントが搭乗する移動体の位置と姿勢角(XV,YV,ФV)に基づいて行われるものである。なお、抽出された視野内の物体が静止物体の場合には、静止物体の存在位置が明らかであるため、姿勢角は用いなくても良い。また、エージェント自体、すなわち歩行者としたエージェントをシミュレーションしたい場合等には、指定されたエージェント自体の位置に基づき除外処理を行えば良い。
この死角となる物体の除外処理は、指定されたエージェント前方の仮想スクリーン上における3次元空間に存在する抽出された各物体の見え方、すなわち仮想スクリーン上での2次元平面情報と、エージェントから各物体までの距離に関する各物体の奥行き配置情報とを算出し、各物体のエージェントからの可視判定を行うものである。具体的には、図9に示すように、視野外の物体の除外によって抽出された複数の視野内の物体(入力されたオブジェクト)について、エージェント前方の仮想スクリーンへの透視変換を施し、仮想スクリーン上での2次元平面情報を得ると共に、エージェントからの距離を算出する処理を行う(Step1)。そして、奥行き配置情報を得るために、抽出された物体を、自車(エージェント)からの距離によってソートする処理を行い(Step2)、奥から手前に向かって可視判定を行い、可視物体を決定する処理を行うこと(Step3)。これにより視野内の可視物体の総数と識別番号を得るものである。なお、ソート処理にはクイックソートのアルゴリズムを用いるのが好ましい。また、仮想スクリーンとは、処理の便宜上導入したものであり、人間の網膜に相当するものである。例えば、同じ大きさの物体でも、それが自分から遠くに置かれていれば小さく見え、近くなら大きく見える。このように、物体がどのように見えるかは、物体の大きさそのもののほかに、どの位置にあるか、どの方向を向いているかが重要となる。物体の大きさと置かれている距離、姿勢角を同時に考慮して、エージェントからどのように見えるかを知るには、透視変換(遠近法)と呼ばれる方法で、3次元空間を2次元平面へ移せば良く、その2次元平面のことをここでは仮想スクリーンと呼んでいる。なお、「仮想」とあるのは、実際のドライバはこのようなことをしておらず、便宜上導入しただけなので仮想としている。
図10は、前記Step1の具体的な処理の内容を説明するための説明図である。車両に搭乗するエージェントの視点の道路座標系における座標(Xe,Ye,Ze)は、次式で表される。
また、他の車両を略長方形状の物体と仮定すると、道路座標系における当該他の車両の四隅の座標(X1,Y1,±Z1)、(X2,Y2,±Z2)、(X3,Y3,±Z3)、(X4,Y4,±Z4)は、それぞれ数9、数10、数11、数12で表される。
これら物体を仮想スクリーン上に投影するための前処理として、これら物体の4隅の(X,Y)座標系での値を、エージェントの視線の方向をx軸、仮想スクリーンの横方向をy軸とする(x,y)座標系での値に座標変換して表すと、次式のように表すことができる。
なお、図10中、dは、エージェントから仮想スクリーンまでの距離を表している。この距離によって、投影された図の縮尺が変わる。但し、投影される物体同士の相対的な大小関係が変わるわけではないので、隠れ物体を除外するというためには、この値をいくつに設定するかということはあまり重要ではない。本実施例では、dをエージェントからフロントガラスまでの距離程度として、1.0mと設定している。
上記のようにして得た物体の4隅の座標を透視変換すると、仮想スクリーン上に透視される物体の座標は次式で表せる。
そして、仮想スクリーン上に透視された物体の輪郭を与える座標は次式のように決定される。
また、エージェントからの距離は次式によって算出することができる(Step2)。
これによって、仮想スクリーン上での形状(2次元平面情報)と、エージェントから各物体までの距離が分かるので、エージェントから遠い物体から順番にソートして物体の奥行き配置情報を得て、後述の可視判定を行うことができる状態となる。なお、ソートにはクイックソートのアルゴリズム、具体的にはZソート法のアルゴリズムを用いれば良い。
次に可視判定(Step3)について説明する。可視判定は、上記数16によって算出された自車と他の車両及び他の物体との距離の遠近によって、近い(最前面)側から遠い(最奥面)側に向かって物体を並び変えて物体の奥行き配置情報を得た後に、これらの物体が可視可能であるか否かを判定する処理である。図11は、可視判定ベクトルを表している。可視判定ベクトルとは物体の奥行き情報と可視不可視を判定できる配列であり、最前面側に位置する物体から最奥面に位置する物体のそれぞれについて、エージェント(自車)から見えるか否かを「1」「0」で表した要素である。可視判定の具体的な手順を以下に説明するが、ベクトルの要素とは、例えば、a=[0 1]というベクトルがあったときに、0や1等、ベクトルを構成する数値のことを「要素」といい、可視判定ベクトルの最後の要素というと、可視判定ベクトルを構成する数値の並びの中で、一番最後の数値のことを意味する。本実施例の場合、可視判定ベクトルを構成する数値とエージェントが知覚可能な物体とは一対一に対応しているので、要素=物体と考えることができる。したがって、可視判定ベクトルの最後の要素を1にするということは、一番遠くにある物体は可視であるとすることを意味する。可視判定は、具体的には以下の手順で行われる。
(1)可視判定ベクトルの最後の要素の値を1にする
(2)I=1〜N−1について、以下の(3)、(4)を繰り返す
(3)可視判定ベクトルのN−I番目の要素の値を1にする。すなわち、N−I番目の物体とエージェントの間に物体が無いと仮定する。
(4)N−I番目の物体と、可視判定ベクトルの要素の値が1であるN−I番目以降の物体との遮蔽判定を行う。すなわち、N−I番目の物体よりも奥にある可視可能物体とを比較して可視判定を行う。可視の場合は、可視判定ベクトルの値はそのまま、また必要があれば可視領域の修正を行い、不可視の場合は、可視判定ベクトルの値を0に変更する
(1)可視判定ベクトルの最後の要素の値を1にする
(2)I=1〜N−1について、以下の(3)、(4)を繰り返す
(3)可視判定ベクトルのN−I番目の要素の値を1にする。すなわち、N−I番目の物体とエージェントの間に物体が無いと仮定する。
(4)N−I番目の物体と、可視判定ベクトルの要素の値が1であるN−I番目以降の物体との遮蔽判定を行う。すなわち、N−I番目の物体よりも奥にある可視可能物体とを比較して可視判定を行う。可視の場合は、可視判定ベクトルの値はそのまま、また必要があれば可視領域の修正を行い、不可視の場合は、可視判定ベクトルの値を0に変更する
ここで、上記の遮蔽判定についてより具体的に説明する。図12は、遮蔽判定を説明するための図であり、I=2番目の物体がI=1番目の物体によって遮蔽されているのか否かを判定する場合を表したものである。仮想スクリーン上におけるI=1番目の物体(オブジェクト1)の外形の座標は、(ymax1,zmax1),(ymin1,zmin1)によって表される。また、仮想スクリーン上におけるI=2番目の物体(オブジェクト2)の外形の座標は、(ymax2,zmax2),(ymin2,zmin2)によって表される。そして、オブジェクト2がオブジェクト1によって遮蔽されているか否かは、以下のように判定する。
ymax1>ymax2、ymin1<ymin2、zmax1>zmax2、zmin1<zmin2
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に完全に遮蔽されているので不可視と判断する。
ymax1>ymax2、ymin1>ymin2、ymax2>ymin1
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に部分的に遮蔽されているので可視と判断すると共に、ymax2=ymin1に変更する。
ymax1<ymax2、ymin1<ymin2、ymax1>ymin2
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に部分的に遮蔽されているので可視と判断すると共に、ymin2=ymax1に変更する。
ymin1>ymax2、ymin2>ymax1、zmin1>zmax2、zmin2>zmax1
この条件の何れかを満たす場合には、オブジェクト2はオブジェクト1を遮蔽していないので可視と判断する。
ymax1>ymax2、ymin1<ymin2、zmax1>zmax2、zmin1<zmin2
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に完全に遮蔽されているので不可視と判断する。
ymax1>ymax2、ymin1>ymin2、ymax2>ymin1
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に部分的に遮蔽されているので可視と判断すると共に、ymax2=ymin1に変更する。
ymax1<ymax2、ymin1<ymin2、ymax1>ymin2
この条件をすべて満たす場合には、オブジェクト2はオブジェクト1に部分的に遮蔽されているので可視と判断すると共に、ymin2=ymax1に変更する。
ymin1>ymax2、ymin2>ymax1、zmin1>zmax2、zmin2>zmax1
この条件の何れかを満たす場合には、オブジェクト2はオブジェクト1を遮蔽していないので可視と判断する。
図13は、隠れ物体の除外についての具体例を表したものであり、図13(a)は一例としての自車と他の物体の上から見た配置を表しており、図13(b)は、自車に搭乗するエージェントから見た仮想スクリーン上に表される他の各物体の輪郭(2次元平面情報)を表したものである。図13(a)の場合、エージェントから見て一番手前側から「大型車」(I=1)、「乗用車」(I=2)、「乗用車」(I=3)、「信号機」(I=4)の順で各物体が並んでいる。当該各物体の並び順は、数16に示した式に基づいて算出される。図13(a)に示した各物体の配置を、エージェントの仮想スクリーン上での2次元平面情報として表すと図13(b)のようになる。すなわち、一番手前側に「大型車」(I=1)が見え、当該「大型車」によって「乗用車」(I=3)及び「信号機」(I=4)が隠され、「乗用車」(I=2)の一部が「大型車」によって隠された状態になっている。この場合の、「乗用車」(I=3)及び「信号機」(I=4)が「隠れ物体」となる。
各物体が「隠れ物体」であるか否かの判定は、図11、図12を用いて説明した可視判定ベクトルによって行われる。具体的には、図14に示すように、はじめに一番遠い「信号機」(I=4)の可視判定ベクトルのI=4の要素の値を「1」とする。次に、「信号機」(I=4)が「乗用車」(I=3)によって遮蔽されているか否かを判断する。この例では遮蔽されていないので、可視判定ベクトルのI=4の要素の値には「1」を記録し、「乗用車」(I=3)の要素の値にも「1」を記録する。次いで、「乗用車」(I=3)が「乗用車」(I=2)によって遮蔽されているか否か、及び「信号機」(I=4)が「乗用車」(I=2)によって遮蔽されているか否かを判断する。この例では、「信号機」(I=4)及び「乗用車」(I=3)は「乗用車」(I=2)によって遮蔽されていないので、可視判定ベクトルのI=2、I=3、I=4の要素の値にはそれぞれ「1」が記録される。なお、「乗用車」(I=3)は、「乗用車」(I=2)と一部重なる部分があるので、「乗用車」(I=3)の可視領域を修正する。次いで、「乗用車」(I=2)が「大型車」(I=1)によって遮蔽されているか否か、「乗用車」(I=3)が「大型車」(I=1)によって遮蔽されているか否か、及び「信号機」(I=4)が「大型車」(I=1)によって遮蔽されているか否かを判断する。図示した例では、「乗用車」(I=2)は「大型車」(I=1)に遮蔽されておらず、前記可視領域が修正された「乗用車」(I=3)及び「信号機」(I=4)が「大型車」(I=1)に遮蔽されていると判断されるので、可視判定ベクトルのI=1、I=2の要素の値には「1」が記録され、I=3、I=4の要素の値には「0」が記録される。
以上の処理により、この状態における可視判定ベクトルは「1100」となり、可視判定ベクトルが「0」である「乗用車」(I=3)及び「信号機」(I=4)は、死角となる位置関係にあるということで除外される。
このように、本発明では、物体の2次元平面情報と奥行き配置情報を用いることで、装置(エージェント)に物体の可視判定が行えるようにしている点に特徴がある。単に表示画面にCGを映し出すための従来のCG技術の場合には、画面を実際に見る人間が物体の可視判定を行うに過ぎないが、本発明ではコンピュータ上等で実現されるエージェントが物体の可視判定を行わなければいけないため、上述のような可視判定ベクトルによる物体の可視判定の概念が重要となる。
そして、この死角となる位置関係にある物体の除外後、視野内の可視物体を見落とすというヒューマン・エラーを模擬する処理を行う(図7のステップS7)。この処理は、図15に示すように、その前までの処理によって除外されず残った視野内の可視物体の総数と識別番号及び見落としが発生する確率に基づき行われるものである。図15に示すように、まず一様分布に従う0から1までの間の実数値をランダムに発生させる。次に、当該ランダムに発生させた数値が、上記「見落としが発生する確率」よりも小さい(yes)か否(no)かを判定する。上記ランダムに発生させた数値が「見落としが発生する確率」よりも小さい(yes)場合には、見落としによって知覚されない物体として除外する処理を行う。また、ランダムに発生させた数値が「見落としが発生する確率」よりも大きい(no)場合には、知覚された物体として、総数と識別番号を記憶用変数に記憶する処理を行う。
以上のように、図7に示した知覚の模擬(ステップS4〜ステップS7)を行った後に、知覚の模擬による情報に基づいて、エージェントに対して判断及び車両の操作を行わせる(ステップS8)。なお、エージェントが車両に搭乗していれば車両の操作を行わせるが、エージェントが歩行者である場合には自らの歩行動作を行わせることになる。次いで、シミュレーション領域内に存在するすべてのエージェントについて、同様に知覚の模擬及び当該知覚の模擬による情報に基づくエージェントの判断及び車両の操作を行わせる処理を行わせる。
これらの処理の後、指定されたエージェントが搭乗する自車についてエージェントによる車両の操作に基づき車両の運動模擬、移動を行わせる処理を行い(ステップS10)、自車の移動に基づいて次に説明するセクション間遷移の検出(ステップS11)、セクション間の遷移の判定(ステップS12)、存在情報マトリクスの更新(ステップS13)等の処理を行う。
ステップS10に示す車両の運動模擬及び移動処理を行った後、車両が別のセクションへと移動した場合には、存在情報マトリクスの内容を書き換える必要があるので、以下に示す処理内容によって存在情報マトリクスの更新を行う。
以下、図16等を用いて、ステップS11のセクション間遷移の検出からステップS13の存在情報マトリクスの更新までの処理について説明する。車両の位置、これまでにいたセクション番号、各セクションの2隅の座標が、それぞれ(XV,YV)、Si、(XSmax,YSmax)(XSmin,YSmin)で与えられる。また、前述した図6に示す遷移可能セクションマトリクスに示した情報が与えられる。各セクションの2隅の座標及び遷移可能セクションについては、シミュレーション実行前に予め設定されている。これらの情報に基づき、各車両についてセクション間の遷移(移動)を検出し(ステップS11)、遷移があった場合(ステップS12)に、存在情報マトリクスの更新(ステップS13)が行われる。
図17は、セクション間の遷移検出についての説明図である。まず、(XV,YV)、Si、(XSmax,YSmax)(XSmin,YSmin)を基に、これまでのセクションに物体が存在しているか否かの確認(存在確認)を行う。存在確認は、図18を用いて以下に説明する方法で行われる。同図において、車両の位置は(XV1,YV1)、(XV2,YV2)で表される。このとき、セクションの左下、右上の頂点から車両までの位置ベクトルは、次式で与えられる。
これらの位置ベクトルの要素を用いて、次式に示すPXとPYを算出する。
このPXとPYを用いて、PX≦0及びPY≦0の場合には車両はセクション内に存在すると判断され、PX>0又はPY>0の場合には車両はセクション内に存在しないと判断される。
このような判断によって、これまでのセクション内にまだ存在していると判断された場合には、決定されたセクション番号Sjを入力されたセクション番号Siとする。一方、これまでのセクション内に存在していないと判断された場合には、図6に示す遷移可能セクションで指定されるセクションについて存在確認を行い、車両が存在しているセクションを探し出し、その番号を決定されたセクション番号Sjとする。
セクション間の遷移の判定(ステップS12)では、決定されたセクション番号Sjと入力されたセクション番号Siとを比較し、それらが異なる場合には、セクション間の遷移が起ったか否かを示す変数Flag_Transを1とし、同じ場合には0とする。以上の処理により、車両が存在しているセクションと変数Flag_Transの値(0又は1)が得られる。
次に、図19、図20を用いて存在情報マトリクスの更新について具体的に説明する。図19(a)は、修正前の存在情報マトリクスを表しており、セクションSi内に存在する車両台数は4台であり、セクション内に存在する車両の識別番号は、「7」「W」「9」「10」でありそれぞれ当該順序で並んでいる状態を表している。また、当該セクションSiに隣接するセクションSj内に存在する車両台数は3台であり、セクション内に存在する車両の識別番号は、「2」「4」「13」であり、それぞれ当該順序で並んでいる状態を表している。
図19(a)に示した状態から、車両「W」がセクションSiからセクションSjに遷移した場合の存在情報マトリクスの修正について説明する。存在情報マトリクスの修正を行う場合には、「遷移前のセクション番号」、「遷移後のセクション番号」、「車両の識別番号」に基づいて次の処理が行われる(図18参照)。存在情報マトリクスのi行目(セクションSi)から、値がWの列を探す。そして、Wがあった部位に0を代入するとともに、0を代入した部位の右側列に他の車両(他の識別番号)がある場合には左に詰め、車両総数を1減らす処理を行う。当該処理によって、図19(a)に示した存在情報マトリクスが、図19(b)のセクションSiの行に示すように修正される。
次に、存在情報マトリクスのj行目から、値が0になる初めの列の要素にWを代入し、車両総数に1を足す。以上の処理により、車両(一例として識別番号=Wの車両)がセクション間を遷移した場合の存在情報マトリクスの更新が行われる。
なお、静止物体については、静止しているので遷移はないため、セクション間の遷移の検出は行う必要はないが、静止物体の情報を、時間的移動がないというだけで移動体と区別無く扱っている場合には、上記と同様の手法で処理を実行すれば良い。また、存在情報マトリクスとは分けて静止物体存在情報マトリクスを用いる場合には、修正後の存在情報マトリクスと静止物体存在情報マトリクスの2つを用いて以降の処理を行うようにしても良い。
上述のように、セクション間の遷移を検出し遷移があった場合には存在情報マトリクスの更新処理をシミュレーション領域内に存在するすべての車両(エージェント)に対して行った後、シミュレーション内の時間をサンプリング時間分だけ進める処理を行い(ステップS14)、一つの処理サイクルを終了し、以降最初に設定された実行時間まで同様の処理を繰り返するようになっている。
上記に述べたような本発明の交通流シミュレーションにより、エージェントの知覚・認識・判断・操作という一連の認知的行為によって仮想車両一台一台が移動し、さらにはエージェントが知覚ミス・認識ミス・判断ミスによって交通事故が発生するような交通流シミュレーションを、高速に実行することができるようになる。このような交通流シミュレーションでは、例えば、車線変更をしようとしたときに、ちょうど自車のエージェントから死角になっている領域に車両が隠れてしまっていたため、その存在に気付かずに車線変更を実行して衝突してしまう状況や、脇見をしていたために先行車が減速したことに気付かず、気付いてブレーキをかけたときにはもう間に合わずに追突してしまう状況等、現実に起る多くの事故を模擬できることになる。
さらに、交通安全施策の導入前と導入後について、当該交通流シミュレーションをそれぞれ実施し、その結果得られる事故率などを比較すれば、事故削減に対する効果を直接的に評価することが可能となる。既に述べたように、交通事故は極めて稀なイベントであり、交通流シミュレーションにおいても、シミュレーション内の時間で最低でも2〜3か月分の計算を行う必要があるので、本願発明による高速化の価値はきわめて高い。
なお、事故発生の判定は、一つの処理サイクルの終了後、次の処理サイクルが始まる前に行う。事故発生の判定は、最も接近している車両を探索し、その距離が車両の大きさより小さくなったか否かで行えば良い。これをシミュレーション領域中に存在しているすべての車両について行う。事故発生の判定を行うにあたっても、総当たりによる演算を行うとすると、総数N台の車両が存在するとすれば、合計でN(N−1)/2回の衝突判定のための演算が必要となる。明らかに、車両同士の距離が離れすぎていて接触を起こす可能性の全くない組み合わせについても事故判定をする総当たり的な演算は無駄であり、シミュレーション時間の遅延、ハードウエアに対する負荷の増大といった問題を招く。しかしながら、本願発明に係るシミュレーション装置は、道路に関する情報として道路領域を細分化した存在情報マトリクスを設けることにより細分化した各領域に存在している車両や静止物体の存在情報を持たせている。さらに、前記細分化した領域が隣接しているか否かを判別できる遷移可能セクションマトリクスを有しており、存在情報マトリクスと遷移可能セクションマトリクスとを組み合わせることによって、演算が必要な車両、静止物体の組み合わせを特定することができる。このため、ドライバの知覚の模擬のための近接車両の探索のためだけではなく、事故発生の判定を行うにあたっても全く事故の発生する可能性の無い車両の組み合わせを排除し、計算量の低減を図ることができるという特徴を有している。
また、複数台のコンピュータを並列的に動作させて交通流シミュレーションを行う場合、グリッドコンピューティングのように分散処理を行うのではなく、分割されたセクションをグループ分けして、各グループ内のシミュレーションをそれぞれのコンピュータが行うようにすることが好ましい。本発明の交通流シミュレーション装置においては、存在情報マトリクスを利用してセクション内にいる車両や静止物体、エージェントの識別番号を管理している。したがって、隣接するセクションを担当するコンピュータにそのセクション内の車両等の位置情報の提供を要求すると、要求を受信したコンピュータでは、そのコンピュータが管理している車両等のすべての位置情報を送信する必要はなく、要求に応じたセクション内の車両等の位置情報のみを送信するだけで済む。
より具体的には、各コンピュータには、そのシミュレーション対象地区として少なくとも1つのセクションがそれぞれ割り振られている。なお、割り当てられるセクションは1つでも複数でも構わない。そして、各コンピュータに割り振られたセクションの情報、すなわち、どのセクションをどのコンピュータが担当しているかという情報は、セクション割り振り情報として各コンピュータに記憶されている。そして、ドライバの知覚の模擬を行うときに、視野内に含まれるセクションとして抽出されたセクションが他のコンピュータに割り振られたセクションであるか否かをセクション割り振り情報を参照して判断する。この結果、抽出されたセクションが他のコンピュータに割り振られたセクションの場合には、そのセクションに割り振られた他の装置の存在情報マトリクス情報を参照して抽出されたセクションに存在する移動体に対する移動体情報を得る。すなわち、そのセクションに割り振られた他のコンピュータへ移動体情報を要求することで、他のコンピュータに割り振られたセクションに存在する移動体に対する移動体情報を得ることが可能となる。したがって、要求を受けた他のコンピュータは存在情報マトリクス情報によりセクションに存在する移動体の位置情報のみを送信するだけで良い。さらに、移動体を操作した後には、遷移可能セクションマトリクスを用いて、遷移したセクションが他のコンピュータに割り振られたセクションであるか否かをセクション割り振り情報を参照して判断する。他のコンピュータに割り振られたセクションに遷移した場合には、そのセクションに割り振られたコンピュータに移動体情報を送信することで、遷移先の他のコンピュータの存在情報マトリクスが更新される。このように、各コンピュータ間では、要求に応じたセクション内の車両等の位置情報のみを送受信するだけで良いので、送受信データ量の低減、シミュレーションの実行速度の高速化が図れるという特徴を有する。
次に、交通流シミュレーションにおける仮想ドライバの「知覚」、「認識」、「判断」、「操作」という模擬の内の「認識」処理について説明する。図2を再度参照すると、本発明のエージェント20は、知覚部201と認識部202と判断部203と操作部204とから主になるものである。これまで説明してきたように、本発明では、知覚部201で他の物体の可視判定を行い、他の移動体の知覚模擬を行う。そして、知覚部201による知覚模擬の結果、知覚された他の移動体や静止物体の存在やその位置、移動方向等を認識部202で認識する。以下、認識模擬についてより詳細に説明する。
認識部202は、知覚部201により知覚された移動体や静止物体に対して認識模擬を行うものである。認識部202では、知覚された各移動体に対して、エージェントから見た意味付けを行う。ここで、意味付けとは、指定されたエージェントによって知覚された移動体が、エージェントから見てどういう状態にある移動体なのかを認識させることを言う。すなわち、認識部202は、エージェントから見て他の移動体が先行車両なのか、側方車両なのか、対向車両なのか、交差車両なのか等を、知覚された他の移動体の存在位置や移動方向といった情報に基づいて判断するものである。移動体以外にも静止物体、例えば信号機の場合には、信号機が何色なのかといった現示情報を取得しても良い。これにより、続く判断部203で、認識された移動体と衝突を避けるためにこのまま進むべきか止まるべきか、曲がるべきか等の判断を行うことが可能となる。
さて、認識部202における意味付けの方法の一例としては、知覚した移動体の速度ベクトルを用いる方法が挙げられる。自車の速度ベクトルと知覚された移動体の速度ベクトルとのなす角度を参照することにより、エージェントは移動体が対向車両なのか否かといった判断が行えるようになる。但し、静止している移動体、例えば右折待ちをしている移動体に対しては移動していないので速度ベクトルはゼロとなってしまうため、速度ベクトルだけでは指定されたエージェントから見て「右折待ちをしている」という意味付けを行うことはできない。そこで、以下のような意味付けをさらに行っても良い。例えば、道路網に複数のウェイポイント(トラックポイント)が与えられ、これを用いて車両の走行ルートが与えられるようにする。各エージェントは複数のウェイポイントの位置を示すウェイポイントマップを有している。また、各車両は、自車の進むべきルートが予めウェイポイントを用いて決められており、現在走行中の位置がどのウェイポイントの間にいるかという情報を持っている。そして、指定されたエージェントから知覚された移動体に意味付けを行うときには、知覚された移動体が、現在の位置及びこれから向かうべきウェイポイントに関する情報を指定されたエージェントに与えるようにする。現在の位置及びこれから向かうべきウェイポイントを与えることで、次に進むべき方向をエージェントから認識できるようになるため、ウェイポイントマップにより、移動体が先行車両なのか対向車両なのか等を認識できるようになる。また、現在の位置及び次に進むべきウェイポイントの位置が与えられれば、上述の「右折待ちをしている」というような意味付けも容易に行うことが可能となる。また、エージェント側から見ると、他の車両の今後進むべきルートすべてを認識できるようにしているわけではないため、次に進むウェイポイントのみから今後の車両の動きを予測することになる。したがって、現実の世界における認識動作により近い模擬を行うことが可能となる。さらに、移動体の速度ベクトルもエージェントに与えれば、後何秒後に衝突するか等の認識も行うことが可能となる。またさらに、移動体のウィンカに関する情報もエージェントに与えることで、移動体が次に曲がりたいということをエージェントに認識させることも可能である。逆に、移動体がウィンカを出さずに右折してきた場合等の処理については、エージェントからは移動体は直進すると認識されていたのに突然右折してきたという認識ができるようになるため、より現実に近いシミュレーションを行うことが可能となる。
このように、知覚された各移動体に対してそれぞれ意味付けを行うことにより、エージェントから見て他の移動体が先行車両なのか、側方車両なのか、対向車両なのか、交差車両なのか、さらには赤信号なのか青信号なのか等を判断できる状態となる。本発明の交通流シミュレーション装置は、上述のような意味付けを行うことで認識処理が行われた後に、例えばそれらと衝突を避けるために、このまま進むべきか止まるべきか、曲がるべきか等の判断を判断部203で行った上で、移動体を操作部204により操作するものである。これら一連の操作により、仮想ドライバの「知覚」、「認識」、「判断」、「操作」という模擬をより現実の世界に近い形で実現できるようになった。
なお、本発明の交通流シミュレーション装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
1 交通シミュレーション装置
2 演算手段
3 記憶手段
4 入出力手段
20 エージェント
201 知覚部
202 認識部
203 判断部
204 操作部
2 演算手段
3 記憶手段
4 入出力手段
20 エージェント
201 知覚部
202 認識部
203 判断部
204 操作部
Claims (6)
- シミュレーション対象地区の交通流をシミュレーションする装置であって、該装置は、
情報を記憶する記憶手段であって、
移動体の3次元位置と姿勢角と寸法とに関する移動体情報と、
仮想ドライバ又は仮想歩行者であるエージェントの視点の3次元位置と視野とに関するエージェント情報と、
シミュレーション対象地区を、複数の移動体が存在し得る程度の範囲を有する区画に分割して作成する複数のセクションの位置に関するセクション座標情報と、
前記各セクション内に存在する移動体の数と識別番号とに関する存在情報マトリクス情報と、
前記複数のセクション同士が交通網として連続して遷移可能であるか否かに関する遷移可能セクションマトリクス情報と、
を記憶する記憶手段と、
前記エージェント情報とセクション座標情報とを用いて、指定されたエージェントの視野内に含まれるセクションを抽出するセクション抽出手段と、
前記存在情報マトリクス情報を用いて前記セクション抽出手段により抽出されたセクションに存在する移動体を抽出し、抽出された各移動体に対する移動体情報と前記指定されたエージェントのエージェント情報とを用いて、3次元空間に存在する前記抽出された各移動体に対する、前記指定されたエージェントの仮想スクリーン上での2次元平面情報と前記抽出された各移動体の奥行き配置情報とを算出し、前記2次元平面情報と奥行き配置情報とを用いて、前記指定されたエージェントからの前記抽出された各移動体の可視判定を行うことで死角となる位置関係にある移動体を除外する、エージェントの知覚を模擬する知覚模擬手段と、
前記知覚模擬手段に基づき前記指定されたエージェントが移動体を操作する移動体運動模擬手段と、
前記移動体運動模擬手段による操作後の移動体の移動体情報とセクション座標情報とを用いて移動体のセクション間の遷移を検出し、遷移があれば前記遷移可能セクションマトリクス情報を用いて遷移した移動体が存在するセクションを特定し、遷移した移動体について前記存在情報マトリクス情報を更新する、移動体存在情報管理手段と、
を具備することを特徴とする交通流シミュレーション装置。 - 請求項1に記載の交通流シミュレーション装置において、
前記記憶手段は、さらに、静止物体の3次元位置と寸法とに関する静止物体情報を記憶し、
前記存在情報マトリクス情報は、さらに、前記各セクション内に存在する静止物体の数と識別番号とに関する情報を含み、
前記知覚模擬手段は、さらに、前記存在情報マトリクス情報を用いて前記セクション抽出手段により抽出されたセクションに存在する静止物体も抽出し、抽出された各静止物体に対する静止物体情報も用いて、3次元空間に存在する前記抽出された各移動体及び各静止物体に対する、前記指定されたエージェントの仮想スクリーン上での2次元平面情報と前記抽出された各移動体及び各静止物体の奥行き配置情報とを算出し、前記2次元平面情報と奥行き配置情報とを用いて、前記指定されたエージェントからの前記抽出された各移動体及び各静止物体の可視判定を行うことで死角となる位置関係にある移動体及び静止物体を除外する、
ことを特徴とする交通流シミュレーション装置。 - 請求項1又は請求項2に記載の交通流シミュレーション装置であって、さらに、前記知覚模擬手段により除外されず残った移動体に対して、所定の確率で移動体をさらに除外する見落とし処理手段を具備することを特徴とする交通流シミュレーション装置。
- 請求項1乃至請求項3の何れかに記載の交通流シミュレーション装置であって、さらに、該装置を複数用い、
各装置には、そのシミュレーション対象地区として少なくとも1つのセクションがそれぞれ割り振られており、
各装置の前記記憶手段は、各装置に割り振られたセクションに関するセクション割り振り情報を記憶し、
各装置の前記知覚模擬手段は、前記セクション割り振り情報を参照し、抽出されたセクションが他の装置に割り振られたセクションの場合には、そのセクションに割り振られた他の装置の存在情報マトリクス情報を参照して抽出されたセクションに存在する移動体に対する移動体情報を受信し、
各装置の前記移動体存在情報管理手段は、前記セクション割り振り情報を参照し、遷移した移動体が存在する特定されたセクションが他の装置に割り振られたセクションの場合には、そのセクションに割り振られた他の装置に移動体情報を送信し、他の装置は、受信した移動体情報について前記存在情報マトリクス情報を更新する、
ことを特徴とする交通流シミュレーション装置。 - 請求項1乃至請求項4の何れかに記載の交通流シミュレーション装置であって、さらに、前記知覚模擬手段により知覚された移動体に対して認識模擬を行う認識模擬手段を有し、該認識模擬手段は、前記指定されたエージェントから見た各移動体に対する意味付けを行うことを特徴とする交通流シミュレーション装置。
- 請求項1乃至請求項5の何れかに記載の交通流シミュレーション装置をコンピュータで実現するための交通流シミュレーションプログラムであって、コンピュータを上記各手段として機能させるための交通流シミュレーションプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007035811A JP2008203913A (ja) | 2007-02-16 | 2007-02-16 | 交通流シミュレーション装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007035811A JP2008203913A (ja) | 2007-02-16 | 2007-02-16 | 交通流シミュレーション装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008203913A true JP2008203913A (ja) | 2008-09-04 |
Family
ID=39781399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007035811A Pending JP2008203913A (ja) | 2007-02-16 | 2007-02-16 | 交通流シミュレーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008203913A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010256786A (ja) * | 2009-04-28 | 2010-11-11 | Japan Radio Co Ltd | ドライビングシミュレータ |
JP2012504827A (ja) * | 2008-10-03 | 2012-02-23 | スリーエム イノベイティブ プロパティズ カンパニー | 堅牢性を評価するシステム及び方法 |
CN106056905A (zh) * | 2016-06-24 | 2016-10-26 | 北京工业大学 | 基于多传感器的交通控制策略硬件在环仿真系统及方法 |
WO2021010055A1 (ja) * | 2019-07-12 | 2021-01-21 | 株式会社日立製作所 | 映像生成装置 |
WO2021054267A1 (ja) * | 2019-09-19 | 2021-03-25 | 株式会社グローバルセキュリティー | シミュレーションシステム、シミュレーションプログラム及びシミュレーション方法 |
CN113077620A (zh) * | 2020-01-06 | 2021-07-06 | 丰田自动车株式会社 | 移动体识别系统、移动体识别方法及程序 |
JPWO2021199329A1 (ja) * | 2020-03-31 | 2021-10-07 | ||
DE102022110210A1 (de) | 2021-06-08 | 2022-12-08 | Toyota Jidosha Kabushiki Kaisha | Mehr-Agenten-Simulationssystem und Verfahren |
-
2007
- 2007-02-16 JP JP2007035811A patent/JP2008203913A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012504827A (ja) * | 2008-10-03 | 2012-02-23 | スリーエム イノベイティブ プロパティズ カンパニー | 堅牢性を評価するシステム及び方法 |
US8811753B2 (en) | 2008-10-03 | 2014-08-19 | 3M Innovative Properties Company | Systems and methods for evaluating robustness of saliency predictions of regions in a scene |
JP2010256786A (ja) * | 2009-04-28 | 2010-11-11 | Japan Radio Co Ltd | ドライビングシミュレータ |
CN106056905A (zh) * | 2016-06-24 | 2016-10-26 | 北京工业大学 | 基于多传感器的交通控制策略硬件在环仿真系统及方法 |
WO2021010055A1 (ja) * | 2019-07-12 | 2021-01-21 | 株式会社日立製作所 | 映像生成装置 |
JP2021015457A (ja) * | 2019-07-12 | 2021-02-12 | 株式会社日立製作所 | 映像生成装置 |
JP7316128B2 (ja) | 2019-07-12 | 2023-07-27 | 株式会社日立製作所 | 映像生成装置 |
JP7242098B2 (ja) | 2019-09-19 | 2023-03-20 | 株式会社Gsec | シミュレーションシステム、シミュレーションプログラム及びコンピュータによるシミュレーション方法 |
JPWO2021054267A1 (ja) * | 2019-09-19 | 2021-03-25 | ||
WO2021054267A1 (ja) * | 2019-09-19 | 2021-03-25 | 株式会社グローバルセキュリティー | シミュレーションシステム、シミュレーションプログラム及びシミュレーション方法 |
CN113077620A (zh) * | 2020-01-06 | 2021-07-06 | 丰田自动车株式会社 | 移动体识别系统、移动体识别方法及程序 |
JPWO2021199329A1 (ja) * | 2020-03-31 | 2021-10-07 | ||
WO2021199329A1 (ja) * | 2020-03-31 | 2021-10-07 | 日本電気株式会社 | 信号情報提供装置、信号情報提供方法及びプログラムが記録された記録媒体 |
JP7311037B2 (ja) | 2020-03-31 | 2023-07-19 | 日本電気株式会社 | 信号情報提供装置、信号情報提供方法及びプログラム |
DE102022110210A1 (de) | 2021-06-08 | 2022-12-08 | Toyota Jidosha Kabushiki Kaisha | Mehr-Agenten-Simulationssystem und Verfahren |
US11736571B2 (en) | 2021-06-08 | 2023-08-22 | Toyota Jidosha Kabushiki Kaisha | Multi-agent simulation system and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11521009B2 (en) | Automatically generating training data for a lidar using simulated vehicles in virtual space | |
US11861790B2 (en) | Procedural world generation using tertiary data | |
CN111133485B (zh) | 自主交通工具的对象预测优先级排序系统和方法 | |
Essa et al. | Simulated traffic conflicts: do they accurately represent field-measured conflicts? | |
CN113366486B (zh) | 使用区域外上下文的对象分类 | |
JP2008203913A (ja) | 交通流シミュレーション装置 | |
Liu et al. | Vision-cloud data fusion for ADAS: A lane change prediction case study | |
GB2544634A (en) | Testbed for lane boundary detection in virtual driving environment | |
JP2005242688A (ja) | 自由軌道交通シミュレータ | |
Niranjan et al. | Deep learning based object detection model for autonomous driving research using carla simulator | |
JP2007047972A (ja) | 交通流シミュレーション装置 | |
JP4841903B2 (ja) | ドライビングシミュレータ | |
KR102565573B1 (ko) | 서브시스템 성능 평가를 위한 메트릭 역전파 | |
Ridel et al. | Understanding pedestrian-vehicle interactions with vehicle mounted vision: An LSTM model and empirical analysis | |
US11604908B2 (en) | Hardware in loop testing and generation of latency profiles for use in simulation | |
US20230150549A1 (en) | Hybrid log simulated driving | |
CN116529784A (zh) | 用于增加激光雷达数据的方法和系统 | |
JP2022129175A (ja) | 車両評価方法及び車両評価装置 | |
CN115916615A (zh) | 对周围因素的行为预测 | |
CN115158309A (zh) | 使用上下文敏感融合的因素轨迹预测 | |
US11808582B1 (en) | System processing scenario objects during simulation | |
Sural et al. | CoSim: A Co-Simulation Framework for Testing Autonomous Vehicles in Adverse Operating Conditions | |
US20230082365A1 (en) | Generating simulated agent trajectories using parallel beam search | |
Lelowicz et al. | Generic Sensor Model Usecase Exemplified by Pedestrian Crossing | |
Li | Safe training of traffic assistants for detection of dangerous accidents |