(57)【特許請求の範囲】
【請求項１】
仮想交通環境内で操作者の運転の模擬を行うドライビングシミュレータであって、該シミュレータは、
操作者による物理的な操作に対応して仮想交通環境内を移動する仮想自車両と、
仮想的な運転者であるエージェントの操作により仮想交通環境内を移動する仮想他車両と、
前記仮想他車両の動きを模擬する交通流シミュレーション装置と、
を具備し、
前記交通流シミュレーション装置は、
仮想他車両の少なくとも位置に関する位置情報を記憶する移動体情報記憶手段と、
前記位置情報を基にターゲットとなる仮想他車両から見て死角となる位置関係にある物体をエージェントの知覚対象から除去する、仮想他車両上のエージェントの知覚を模擬する知覚模擬手段と、
前記知覚模擬手段による情報に基づきターゲットとなる仮想他車両を操作する移動体運動模擬手段と、
前記知覚模擬手段により除去されず残った物体に対して、所定の確率で物体をさらにエージェントの知覚対象から除去する見落とし処理手段と、
を具備することを特徴とするドライビングシミュレータ。
【請求項２】
請求項１に記載のドライビングシミュレータにおいて、前記交通流シミュレーション装置は、さらに、
仮想他車両上のエージェントの少なくとも視野に関する視野情報を記憶するエージェント情報記憶手段を具備し、
前記知覚模擬手段は、前記位置情報と視野情報を用いて視野内に存在する物体を特定し、特定された各物体に対してターゲットとなる他車両から見て死角となる位置関係にある物体をエージェントの知覚対象から除去することを特徴とするドライビングシミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子計算機上等の仮想交通環境内で操作者の運転の模擬を行うドライビングシミュレータに関し、特に、ドライバの知覚特性を考慮して自律的に移動する他の仮想車両が存在している仮想交通環境内で、操作者の運転の模擬を行うドライビングシミュレータに関する。
【背景技術】
【０００２】
都市計画等で新たに道路を設計する場合や、交通量の増加に伴って既存の道路の改善、拡張等を行う場合には、シミュレーションを行って交通量や渋滞の発生等を予測し、車線や交差点の配置、幅員等の設計が行われる。そのための交通流シミュレーションシステムとして、交通状況に影響を与える変動要因である、曜日，時刻，天候，イベントの有無，長期休暇中であるか、という変量を考慮してより個々のケースに対応した交通量を予測するシミュレーション技術が一般的に知られている。
【０００３】
一方、交通事故の低減を目的として既存の道路の改善等の施策を立案する場合には、交通安全施策の事故削減に対する効果を交通流シミュレーションによって事前に予測することはこれまでほとんど行われていない。交通安全施策の事故削減に対する効果を直接的に評価するものではないが、既存若しくは設計段階の交差点や道路において、自動車モデル定義情報と状況情報に基づき自動車モデル群を古典力学に従って運動させ、ドライバモデル定義情報とシミュレーション実施条件情報とシミュレーション過程の状況情報に基づきドライバモデル群に運転行動をさせ、交差点や道路の幾何学的、物理的特徴に基づいてドライバモデル群から危険度情報を取得する特許文献１の危険度評価装置が知られている程度である。
【０００４】
そして、自動車の運転をシミュレーションするものとしては、自動車設計用のためのものや運転免許教習用のドライビングシミュレータ、遊戯用のレースゲーム等、多くのものが開発されている。例えば、様々な道路・交通環境の下における道路、人、車の相互関係をリアルタイムにシミュレーションするシミュレーション装置としては、特許文献２が挙げられる。
【０００５】
また、交通流シミュレーション装置とドライビングシミュレータを組み合わせたものとしては、非特許文献１に挙げたものがある。
【０００６】
【特許文献１】特開２００２−１４０７８６号公報
【特許文献２】特開平１１−２７２１５８号公報
【非特許文献１】須田義大、高橋良至、大貫正明著、「研究用ユニバーサル・ドライビングシミュレータ」、自動車技術、２００５年、第５９巻第７号、ｐｐ．８３−８８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
交通安全施策の事故削減に対する効果を、交通流シミュレーション装置によって事前に評価するためには、実交通での複雑な相互作用によって作り出される事故発生プロセスを忠実に模擬することによって交通事故が発生するような交通流シミュレーション装置が必要となる。すなわち、実交通における交通事故の主要因は、ドライバの知覚、認識、判断ミスにあると言われており、理想的な交通流シミュレーションは、仮想ドライバの「知覚」、「認識」、「判断」、「操作」という一連の認知的行為によって交通流シミュレーション内の仮想車両一台一台が移動することで複雑な交通流を出現させるインタラクティブな仕組みを具えたものであり、さらには「知覚」、「認識」、「判断」におけるドライバのミスを模擬し、それによって交通事故が発生するようにプログラムされていなければならない。
【０００８】
ここで、交通流シミュレーションプログラムにおいて仮想ドライバが「知覚」するとは、交通流シミュレーション装置内の領域（交差点や単路等からなる道路）に広範囲にわたって存在している複数の仮想車両の中から、当該仮想ドライバが搭乗している仮想車両の近くに位置する仮想車両であって、遮蔽物によって遮蔽されていない可視な仮想車両を検索することを意味する。また、仮想ドライバが「認識」するとは、仮想ドライバの知覚によって検索された仮想車両が先行車であるのか、対向車であるのかといったラベル付けを行うことを意味する。そして、仮想ドライバが「判断」するとは、認識された自車両の周りの仮想車両の配置状況から、当該仮想ドライバに与えられた運転目的地へ到達するために必要な運転行動を決定することを意味する。さらに「操作」するとは、仮想車両を意図したように移動させるための仮想車両への入力を決定することを表す。
【０００９】
このような仮想ドライバの「知覚」、「認識」、「判断」、「操作」という模擬を行い、仮想ドライバ自らが判断して実際のドライバと同じように行動する交通流シミュレーション装置は、従来は存在しなかった。
【００１０】
そして、このような交通流シミュレーション装置を組み合わせたドライビングシミュレータも、従来存在しなかった。特許文献２のシミュレーション装置においては、仮想ドライバの「知覚」、「認識」、「判断」、「操作」の模擬を用いていないため、実際の交通環境とは異なっていた。また、非特許文献１においても、「知覚」、「認識」、「判断」、「操作」という模擬を行い、自らが判断して移動するようなものではなく、また、ドライビングシミュレータと組み合わせるに際しては、シミュレーション装置の仕様の差を吸収するためのインタフェースが必要なものであった。
【００１１】
本願発明は、上記の課題に鑑み発明されたものであって、エージェントにより自律的に移動する他車両が存在する仮想交通環境内で、操作者が操作する自車両がインタラクティブにこれらに関係しながら、リアルタイムにシミュレーション可能なドライビングシミュレータを提供することを課題とする。
【課題を解決するための手段】
【００１２】
上述した本発明の目的を達成するために、本発明による仮想交通環境内で操作者の運転の模擬を行うドライビングシミュレータは、操作者による物理的な操作に対応して仮想交通環境内を移動する仮想自車両と、仮想的な運転者であるエージェントの操作により仮想交通環境内を移動する仮想他車両と、仮想他車両の動きを模擬する交通流シミュレーション装置とを具備する。そして、交通流シミュレーション装置は、仮想他車両の少なくとも位置に関する位置情報を記憶する移動体情報記憶手段と、位置情報を基にターゲットとなる他車両から見て死角となる位置関係にある物体を除去する、他車両上のエージェントの知覚を模擬する知覚模擬手段と、知覚模擬手段による情報に基づきターゲットとなる他車両を操作する移動体運動模擬手段とを具備するものである。
【００１３】
ここで、交通流シミュレーション装置は、さらに、知覚模擬手段により除去されず残った物体に対して、所定の確率で物体をさらに除去する見落とし処理手段を具備するものである。
【００１４】
また、交通流シミュレーション装置は、さらに、他車両上のエージェントの少なくとも視野に関する視野情報を記憶するエージェント情報記憶手段を具備し、知覚模擬手段は、位置情報と視野情報を用いて視野内に存在する物体を特定し、特定された各物体に対してターゲットとなる他車両から見て死角となる位置関係にある物体を除去するものであっても良い。
【発明の効果】
【００１５】
本発明のドライビングシミュレータには、仮想他車両のエージェントが実際のドライバの知覚を模擬しているため、より現実に近い仮想交通環境を実現可能であり、その環境内で仮想自車両を物理的に操作できるので、現実に近いドライビングのシミュレーションが可能という利点がある。また、現実に近いシミュレーションが可能なため、ドライバの運転特性、エージェントに含まれる確率変数の適正値の測定や、許容リスクレベル、運転支援システムの事故低減効果等の実験的決定も可能となる等の効果も有する。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態を図示例と共に説明する。なお、以下、本明細書中では、自動車等の車両を対象に説明するが、本発明はこれに限定されず、船舶や歩行者等、ドライバや人自身が自らの判断で移動するものであればすべて適用可能なものである。また、本発明による仮想ドライバや仮想歩行者を、エージェントと呼ぶこととする。
【００１７】
図１は、本発明のドライビングシミュレータの全体的な概要を説明するための概略ブロック図である。本発明のドライビングシミュレータは、主に操作者が搭乗しシミュレーションのための運転を行い仮想交通環境内で自車両を操作するためのコックピット１１と、仮想交通環境を構築し他車両を自律的に移動させるための交通流シミュレーション装置１２とからなる。なお、本明細書中で「自車両」とは、操作者による物理的な操作に対応して仮想交通環境内で移動する車両をいい、「他車両」とは仮想交通環境内に存在する自車両以外の他の車両をいい、これは交通流シミュレーション装置１２により自律的に移動するものである。
【００１８】
コックピット１１には、ハンドルやブレーキ、アクセル等の車両を操作するための装置が備わっており、通常の自動車の運転席等と同様の環境が再現されている。そして、ハンドル等の操作をシミュレーション側に伝えるために、各種センサが取り付けられている。なお、加速Ｇや横Ｇ、振動等をリアルに再現できるように、既知の運動装置等をコックピット１１に設けることが好ましい。また、交通流シミュレーション装置１２は、後に詳細に説明するが、パーソナルコンピュータ等の電子計算機からなるものである。
【００１９】
また、コックピット１１と交通流シミュレーション装置１２とは、車両ダイナミクス計算機１３を介して接続されている。車両ダイナミクス計算機１３は、パーソナルコンピュータ等の電子計算機からなるものであり、これは操作者の物理的な操作によりコックピット１１のセンサから送信されたデータに基づき、仮想交通環境内で移動する仮想的な自車両の運動、例えば自車両の加速度、ヨーレイト等を計算するためのものである。
【００２０】
そして、交通流シミュレーション装置１２によるシミュレーション結果は、リアルタイムに画像生成装置１４に送られ、プロジェクタ１５で再生されてコックピット１１の操作者に提供される。画像生成装置１４もパーソナルコンピュータ等の電子計算機で実現可能である。また、これはコックピット１１のフロントウインドウやサイドウインドウ、リアウインドウの景色を生成し、それに対応する位置に設けられたプロジェクタ１５で再生するものである。なお、ルームミラー等の表示も必要により加えることが可能である。
【００２１】
これらの交通流シミュレーション装置１２や車両ダイナミクス計算機１３、画像生成装置１４を実現する電子計算機は、それぞれを別の電子計算機で構築しても良いし、すべて同じ電子計算機上で構築しても構わない。また、複数台の電子計算機を用いる場合には、各電子計算機間はＬＡＮで接続され、例えばＴＣＰ／ＩＰやＵＤＰプロトコルにより情報の送受信を行えば良い。
【００２２】
次に、交通流シミュレーション装置１２の詳細を以下に説明する。図２は、本発明のドライビングシミュレータに用いられる交通流シミュレーション装置の概略模式図である。なお、当該交通流シミュレーション装置は、基本的には本願出願人による特願２００５−２３０６６４に記載のものと同様のものである。交通流シミュレーション装置１２は、パーソナルコンピュータ等の電子計算機であり、ＣＰＵ等の演算手段２、当該演算手段２によって処理されるデータ若しくは処理後のデータを記憶するハードディスク、ＲＡＭ、ＲＯＭ等の記憶手段３、入出力手段４等を備える。
【００２３】
記憶手段３には、本願発明におけるエージェントに関する情報やそれに応じて動作をシミュレーションするプログラム等が記憶されている。また、記憶手段３には、交通網の情報、具体的には道路に関するデータが記憶されており、さらに、この道路上で移動する移動体に関する情報、例えば車両の位置の情報やその大きさ、移動方向、移動速度等のデータも記憶されている。
【００２４】
なお、交通流シミュレーション装置１２は、勿論１台でも構わないが、複数のコンピュータにより分散処理することも可能である。この場合、後述の車両存在情報マトリクスを用いることで、コンピュータ間の通信すべき必要最小限の情報を特定することが可能となり、コンピュータ間のトラフィックを軽減し処理速度を向上することが可能となる。
【００２５】
以下、本発明のドライビングシミュレータの仮想交通環境内の他車両を運転する仮想的な運転者であるエージェントについて説明する。図３は、本発明のドライビングシミュレータに用いられる交通流シミュレーション装置１２のエージェントを説明するためのブロック図である。図示の通り、エージェント２０は、知覚部２０１と認識部２０２と判断部２０３と操作部２０４とから主になるものである。このエージェント２０により他車両が操作される。そして、仮想交通環境内には、このようなエージェント２０が複数おり、エージェント２０により運転される他車両も複数いることになる。また、車両を運転するエージェント以外に、エージェントが通行人となって仮想交通環境内に存在していても良い。
【００２６】
シミュレーションを行うときに、複数の他車両のうち、移動させる操作の対象であるターゲットとなる他車両を中心に説明すると、知覚部２０１は、記憶手段３に記憶された移動体に関する情報のうち、ターゲットとなる他車両の位置に関する情報を基に、ターゲットとなる他車両から見て死角となる位置関係にある物体を、演算手段２により演算して検知し、知覚対象から死角となる物体を除去する。なお、死角となる位置関係にある物体には、他の車両は勿論のこと、信号機や街路樹、歩行者等、種々のオブジェクト、さらには操作者により操作される自車両が含まれる。死角は、他の車両の影の位置や曲がった道路の先等、様々な要因で生ずる。このようにして知覚部２０１でエージェントの知覚模擬を行う。
【００２７】
そして、この知覚部２０１の知覚結果に基づき、知覚された他の車両の存在や位置、移動方向等を認識部２０２で識別し、それらと衝突をさけるために、このまま進むべきか止まるべきか、曲がるべきか等の判断を判断部２０３で行った上で、ターゲットとなる他車両を操作部２０４により操作する。これにより、仮想交通環境内では、実際のドライバが死角にいた歩行者を轢いてしまう等のシミュレーションを、実際に近い形で行うことが可能となる。
【００２８】
また、より現実に近い交通環境を仮想的に実現するために、知覚部２０１により除去されずに残った物体に対して、所定の確率で物体をさらに除去する見落とし処理を行うようにしても良い。これは、死角にならずに本来は見えているにも関わらず、脇見運転を行った場合のように見落とすことを模擬するために行う。これにより、さらに実際に近い形で仮想交通環境を構築することが可能となる。なお、他のパラメータ、例えばドライバの年齢や運転嗜好、運転経験、生理的・精神的状態、安全態度等の個性を考慮したパラメータを追加して、個々の他車両がそれぞれ個性を持って移動するようにすることが好ましい。
【００２９】
なお、交通流シミュレーションを行うすべての他車両に対して死角になっているか否かを判断するのは処理時間の観点から無駄が多いため、エージェントの視野に関する情報も記憶手段３に記憶しておき、知覚部２０１では、これを用いて視野内に存在する物体を特定し、特定された各物体に対してターゲットとなる移動体から見て死角となる位置関係にある物体を除去するようにすることが好ましい。
【００３０】
交通流シミュレーション装置の実現、すなわちエージェントの認知的行為のプログラム化にあたって、演算処理量の最も多くなるのは「知覚」のための近接可視な仮想車両の検索処理である。最もシンプルなプログラム化の方法は、総当りによって仮想車両間の距離と可視性を調べることである。しかし、この方法によって多数存在している各車両それぞれについて位置関係等を演算により取得するには、領域内に存在する車両台数をＮとすると、１台の車両につき、Ｎ−１回の演算が必要であるから、Ｎ（Ｎ−１）回の演算が必要になり、Ｎが大きくなると計算量が膨大となってしまう。また、各車両は交通流として、次々と領域上を刻々と遷移していくものであり、時間の経過に合わせて、前述した車両間の相対的位置関係に基づいた検索処理を繰り返す必要がある。このように、総当りによる検索方法では演算処理量の増加に伴って使用するハードウエアに対する負担が多くなるので、これを避けるために、本発明に用いられる交通流シミュレーション装置においては、以下に説明するような種々の手法で計算量を減らすことが可能である。
【００３１】
以下、上述の交通流シミュレーション装置を実現するための、より具体的な例を説明する。図２の記憶手段３には、シミュレーション設定データとして道路に関するデータが記憶されており、本実施例においては、一例として東京都中央区の「三原橋交差点」を中心とした領域についての道路に関するデータが記憶されている。当該道路に関するデータとしては、道路セクション座標データ、車両存在情報マトリクスデータ、及び遷移可能セクションマトリクスデータがある。
【００３２】
まず、道路セクション座標データについて説明する。図４（ａ）は、「三原橋交差点」を中心とした半径約１００ｍｍの地域を表した地図である。同地図に記載した２点鎖線による複数の円は、交差点の中央を中心として半径約２０ｍ毎に描いた線である。本実施例では、当該「三原橋交差点」付近の地図（主として車道）を演算処理可能なデータとするために、車道を連続する矩形状の領域に区切った座標データを作成する。なお、当該座標データは、北緯・東経によって表される絶対座標の他、代替的にＸ−Ｙ座標（道路座標と呼ぶ）を用いてモデル化した座標データであっても良い。本実施例においては、後者のＸ−Ｙ座標を用いてモデル化した座標データを作成し、以後の演算に使用する。図４（ｂ）は、図４（ａ）に記載した地図の中心部を交差する２本の幹線道路をモデル化するために、交差点の中央から約２０ｍ単位で車線を区切り、当該区切られた領域を１つのセクションとしてそれぞれ符号（Ｓ１〜Ｓ２８）を付したものである。なお、図４（ｂ）では、交差点の中央からの等間隔にセクションを定義しているが、必ずしも等間隔にセクションを作成しなければいけないというわけではない。セクションの大きさは、当該道路の交通量に応じて、例えば交通量が多い箇所は密に、交通量が少ない箇所は大きく、というように任意に設定が可能である。
【００３３】
図５は、図４（ｂ）に示した各セクションＳ１〜Ｓ２８で示した領域を、交差点の中央の座標を（Ｘ，Ｙ）＝（０，０）としたＸ−Ｙ座標によってモデル化したものである。本実施例においては同図に表したように道路セクション座標（道路座標）によって各セクションを定義する。例えば、図４（ｂ）に示した交差点内を４分割した各セクションＳ１、Ｓ２、Ｓ３、Ｓ４で示された領域は、モデル化した図５記載の道路座標では次の（Ｘ，Ｙ）座標で表される。すなわち、セクションＳ１とは（Ｘ０，Ｙ０）と（Ｘ１，Ｙ１）で定義される領域、セクションＳ２とは（Ｘ−１，Ｙ０）と（Ｘ０，Ｙ１）で定義される領域、セクションＳ３とは（Ｘ−１，Ｙ−１）と（Ｘ０，Ｙ０）で定義される領域、セクションＳ４とは（Ｘ０，Ｙ−１）と（Ｘ１，Ｙ０）で定義される領域として代替的に表される。なお、図５では説明の便宜上、座標値を０、１、２のような整数値としたが、実際の道路座標系の座標値としては、実際の寸法値に近似した実数値が入力されるようになっていても良い。
【００３４】
以上説明したように、道路セクション座標データとは、道路を複数のブロックに区切ってモデル化した際のセクションの位置を定義するための座標系を表す道路データである。
【００３５】
次に、車両存在情報マトリクスデータについて説明する。図６は、車両存在情報を示す表である。同表は、道路上のセクションに存在する車両のＩＤ番号を、逐次時間の経過とともに表すための表である。当該表として表されるデータは、セクション番号を指定すれば、そこに存在する車両の台数及びＩＤ番号を取り出すことができるデータ群である。
【００３６】
また、遷移可能セクションマトリクスデータを、図７を用いて説明する。図７は、遷移マトリクスを示す表である。遷移マトリクスとは、道路座標上の任意のセクションが他のどのセクションと道路として連続しているのかを配列した隣接領域データである。なお、後ほど説明するように、車両（車両モデル）は２次元平面上を運動学に従って連続的に移動するものであり、あるセクションから別のセクションへと離散化された空間を瞬間的に移動するわけではない。あくまで当該遷移マトリクスとは、セクション内に存在する車両の直近の移動可能範囲を表したものである。
【００３７】
さらに、記憶手段３には、シミュレーション設定データとして、車両やエージェントに関する車両データが記憶されている。また、その他のオブジェクトとして、例えば信号機に関するオブジェクトと歩行者に関するオブジェクトも記憶されている。
【００３８】
車両データとは、道路上を移動する車両をモデル化した車両データであり、車両の位置情報を保持し、運動学に従って位置、姿勢角が変更されるものである。各車両は、車両毎に異なるＩＤ番号（本実施例においては、自然数）が付されており、例えば前記道路座標（Ｘ−Ｙ座標）上の位置（Ｘｖ、Ｙｖ）で表される浮動小数点型の変数による位置情報と、当該Ｘ−Ｙ座標上における角度Фｖで表される姿勢角の情報を有している。
【００３９】
また、エージェントに関するデータとは、知覚された他のオブジェクトのデータ格納用変数、車両操縦コマンド、ドライバの視野方向と視野角（θｖ，αｖ）等の視野情報等、各種情報を有するデータである。
【００４０】
さて、これらの各データを用いた交通流のシミュレーションの処理工程を、図８を用いて説明する。図８は、本発明のドライビングシミュレータに用いられる交通流シミュレーション装置の処理工程を説明するためのフローチャートである。シミュレーションが開始されると、記憶手段３に記憶された道路座標（図５参照）、車両存在情報マトリクス（図６参照）、遷移可能セクションマトリクス（図７参照）、車両データ、エージェントデータ、信号機オブジェクト、歩行者オブジェクト等の各種データが読み込まれると共に、各データが保有する変数等の初期化が行われる（ステップＳ１）。
【００４１】
次いで、交通流シミュレーションが作り出す仮想世界の中における時間であって、その時間で何時間分（あるいは何日分、何ヶ月分）のシミュレーションを行うのかという実行時間と、交通流シミュレーションが作り出す仮想世界の中における時間を何秒単位で進めるのかというシミュレーション時間間隔（あるいはサンプリング時間と呼ぶ）等を入出力手段４等を用いて設定することも可能である（ステップＳ２）。但し、ドライビングシミュレータの場合には、リアルタイムな時間軸での処理になるため、ここでは実時間を設定することになる。
【００４２】
続くステップを説明すると、道路座標上に存在する車両オブジェクト（エージェント）すべてについて、車両オブジェクト毎に、知覚の模擬シミュレーション（ステップＳ３〜Ｓ７）を行った後、当該知覚の模擬に基づいて車両を判断・操作（ステップＳ８）する。すなわち、当該知覚の模擬に基づいて必要な運転操作を判断し、操作を実行する。次に、操作者の物理的な操作によって変化する自車両の位置、姿勢角、速度等の情報を、車両ダイナミクス計算機１３との通信により取得する（ステップＳ９）。そして、エージェントに自車両を加えた回数だけ（ステップＳ１０）、各車両オブジェクトを移動させる模擬（ステップＳ１１）を行い、各車両オブジェクトの移動に伴うセクション間の遷移があった場合の処理（ステップＳ１２〜Ｓ１４）を行う。その結果として得られる各車両オブジェクトの位置、姿勢角等の情報を、画像生成機１４に送信する（ステップＳ１５）。ステップＳ３からステップＳ１５までの処理が完了すると、実際の時間（実時間）が予め設定されているサンプリング時間分だけ経過するまで待機し（これには例えばコンピュータに付属のタイマを用いる）、サンプリング時間分の時間が経過したら、シミュレーション内の時間をサンプリング時間分だけ進める（ステップＳ１６）。これによって、リアルタイムな時間軸での処理が実現される。そしてステップＳ２に戻り、以降、指定された実行時間に至るまで、上記の処理がサンプリング時間毎に繰り返される。以下、これらのステップを詳細に説明する。
【００４３】
エージェントの知覚の模擬に関するシミュレーションでは、まず視野内のセクションの特定が行われる（ステップＳ４）。この処理は、一の車両（以下「ターゲットとなる車両」等という）が存在するセクションを基準として、エージェントの視野情報を用いて視野に含まれるセクションを特定するものである。なお、計算効率等を考慮しなければ、ターゲットとなる車両以外のすべての車両に対して知覚の模擬を行っても良いが、計算機の負荷を減らすためには、視野内のセクションを特定してそのセクションに対して知覚の模擬を行えば良い。また、現実の交通流でも、ドライバの視野以外の車両に関しては考慮する必要がないため現実に即しているといえる。
【００４４】
次に、死角となる位置関係にある物体を除去するために、視野外オブジェクトの除去が行われる（ステップＳ５）。この処理は、ステップＳ４で特定された視野内のセクションに存在するオブジェクトの中から、ターゲットとなる車両から見た視野角の中に含まれる他の車両等を得るために、視野外のオブジェクト（車両、歩行者、二輪車、信号機等）を除去する処理である。具体的には、車両を操作するエージェントの視野に関する視野情報を用いる。視野情報には、視野角が含まれるが、視野角とは、視線・目線の方向である視野方向を中心とした、視覚で認識として可能な角度であって、本実施例においては例えば一般的に言われている±６０度ほどの範囲に設定される。視野外とは当該視野角の範囲外をいうものである。人間は、自分の周囲３６０度すべての方向を同時に見る事はできず、ある一瞬に良く見る事の出来る範囲（視野）は、顔が前を向いている方向（正確には視線・目線の方向）を中心として、±６０度ほどの範囲であると言われている。したがって、例えば、前を向いて車を運転しているとき、自分の後ろにいる車は（ルームミラーなしでは）見る事ができないので、知覚対象とはならないオブジェクトを除去する処理を行う。また、自分が後ろを向いていれば、後ろの車は知覚対象となり、反対に車両の前方にいる車が視野外のオブジェクトとして除去されることになる。
【００４５】
図９は、他車両（ターゲットとなる車両）とそれ以外の他の車両等のオブジェクトとの位置関係をＸ−Ｙ座標を用いて表した図である。まず、ターゲットとなる車両の位置を（ＸＶ、ＹＶ）とし、他の車両等の位置を（Ｘｐ、Ｙｐ）とする。また、車両の姿勢角をФＶ、エージェントの視野方向と視野角を（θＶ，αＶ）とする。
【００４６】
以下に、ターゲットとなる車両に搭乗しているエージェントから視認可能な前方角度（視野角）の範囲内に他のオブジェクトが存在しているか否かを判定するための演算内容を説明する。車両位置（ＸＶ、ＹＶ）に対する他のオブジェクトの相対位置ｒ（ｒｒｅｌＸ，ｒｒｅｌＹ）は、次式で表せる。
【数１】
0004841903.tif 000002
また、左右の視野の限界を与えるベクトルｓ１、ｓ２は、それぞれ数２、数３で表せる。
【数２】
0004841903.tif 000003
【数３】
0004841903.tif 000004
上記数２、数３を用いてｒを表すと、次式になる。
【数４】
0004841903.tif 000005
線形代数学によれば、ａ＞０かつｂ＞０であれば、ｒはｓ１とｓ２に挟まれる領域に存在することになるから、ａ，ｂを求めれば、他のオブジェクトがエージェントの視野内にいるか視野外にいるかを判別することができる。
【００４７】
ここで、ａ，ｂは次式で表せる。
【数５】
0004841903.tif 000006
ここで、ｓｉｎα＞０であることから、ａ，ｂはそれぞれ数６、数７で求められる。
【数６】
0004841903.tif 000007
【数７】
0004841903.tif 000008
この演算の結果、ａ，ｂが共に０よりも大きい場合（ａ＞０，ｂ＞０）には他のオブジェクトの相対位置ｒは視野内であり、ａ又はｂの何れかが０以下であるならばオブジェクトの相対位置ｒは視野外であると判定する。
【００４８】
なお、以上の数１から数７の処理は、視野内のセクションに存在している他のオブジェクトすべてについて行うものであり、視野内にある車両の車両ＩＤを保存するとともに、車両の総数をカウントする。
【００４９】
このようにして視野外のオブジェクトを除去した後、隠れオブジェクトの除外処理を行う（ステップＳ６）。この処理は、ステップＳ５にて除去されて残った視野内に存在するオブジェクトに対して、ターゲットとなる車両から見て死角となる位置関係にある物体、すなわち、他のオブジェクトによって遮蔽されたために知覚することが出来ない隠れオブジェクトを除外する処理である。
【００５０】
実際のドライバは、死角になって隠れて見えないものを見ることができないので、本発明のドライビングシミュレータに用いられる交通流シミュレーションでも同様の模擬を行う。実際に事故が起きる原因として、何かの陰に隠れていて見えなかったものが急に出てきて衝突したというようなことがあるので、そのような状況を模擬するために、隠れて見えないものの情報をエージェントに伝えないために当該処理をするものである。本実施例における交通流シミュレーション装置では、このような知覚・認識・判断のミスによって事故の発生をシミュレーションするものであり、いつ事故が発生するかは、実際の交通流における事故の発生と同様に、まったく確率的になっている。
【００５１】
このような死角となる物体の除去処理は、図１０に示すように、視野内のオブジェクトの位置と姿勢角(ＸＯ，ＹＯ，ＺＯ，ΦＯ)、オブジェクトの長さ、幅、高さ(ｌ，ｗ，ｈ)、エージェントの視野方向と視点の座標(θＶ，ＸＥ，ＹＥ，ＺＥ)、ターゲットとなる車両の位置と姿勢角（ＸＶ，ＹＶ，ФＶ）に基づいて行われるものである。当該処理は、視野外オブジェクトの除去によって得られた複数の視野内のオブジェクト（入力されたオブジェクト）について、ドライバ前方の仮想スクリーンへの透視変換を施し、ターゲットとなる車両からの距離を算出する処理を行い（Step１）、視野外オブジェクトの除去によって得られた複数の視野内のオブジェクトを、ターゲットとなる車両からの距離によってソートする処理を行い（Step２）、奥から手前に向かって可視判定を行い、可視オブジェクトを決定する処理を行うことで（Step３）、視野内の可視オブジェクトの総数とＩＤ番号を得るものである。なお、ソート処理にはクイックソートのアルゴリズムを用いるのが好ましい。また、仮想スクリーンとは、処理の便宜上導入したものである。例えば、同じ大きさの物体でも、それが自分から遠くに置かれていれば小さく見え、近くなら大きく見える。このように、物体がどのように見えるかは、物体の大きさそのもののほかに、どの位置にあるかが重要となる。物体の大きさと置かれている距離を同時に考慮して、どのように見えるかを知るには、透視変換（遠近法）と呼ばれる方法で、３次元空間を２次元平面へ移せば良く、その２次元平面のことをここでは仮想スクリーンと呼んでいる。なお、「仮想」とあるのは、実際のドライバはこのようなことをしておらず、便宜上導入しただけなので仮想としている。
【００５２】
図１１は、前記Step１の具体的な処理の内容を説明するための説明図である。車両に搭乗するエージェントの視点の道路座標系における座標（Ｘｅ，Ｙｅ，Ｚｅ）は、次式で表される。
【数８】
0004841903.tif 000009
【００５３】
また、他の車両を略長方形状の物体と仮定すると、道路座標系における当該他の車両の四隅の座標（Ｘ１，Ｙ１，±Ｚ１）、（Ｘ２，Ｙ２，±Ｚ２）、（Ｘ３，Ｙ３，±Ｚ３）、（Ｘ４，Ｙ４，±Ｚ４）は、それぞれ数９、数１０、数１１、数１２で表される。
【数９】
0004841903.tif 000010
【数１０】
0004841903.tif 000011
【数１１】
0004841903.tif 000012
【数１２】
0004841903.tif 000013
【００５４】
これらオブジェクトを仮想スクリーン上に投影するための前処理として、これらオブジェクトの４隅の（Ｘ，Ｙ）座標系での値を、エージェントの視線の方向をｘ軸、仮想スクリーンの横方向をｙ軸とする（ｘ，ｙ）座標系での値に座標変換して表すと、次式のように表すことができる。
【数１３】
0004841903.tif 000014
【００５５】
なお、図１１中、ｄは、ドライバから仮想スクリーンまでの距離を表している。この距離によって、投影された図の縮尺が変わる。ただし、オブジェクト同士の大小関係が変わるわけではないので、隠れオブジェクトを除去するというためには、この値をいくつに設定するかということはあまり重要ではない。本実施例では、ｄをエージェントからフロントガラスまでの距離程度として、１．０ｍと設定している。
【００５６】
上記のようにして得たオブジェクトの４隅の座標を透視変換すると、仮想スクリーン上における他オブジェクトの座標は次式で表せる。
【数１４】
0004841903.tif 000015
そして、仮想スクリーン上に透視されたオブジェクトの輪郭を与える座標は次式のように決定される。
【数１５】
0004841903.tif 000016
【００５７】
また、ターゲットとなる車両からの距離は次式によって算出することができる（Step２）。
【数１６】
0004841903.tif 000017
これによって、スクリーン上での大きさと、車両からの距離が分かるので、Ｚソート法を用いて可視判定を行うことができる状態となる。なお、Ｚソート法は、視点から遠いものから順番に描画することで、後ろのものを手前の物体で上書きしていく手法である。
【００５８】
次に可視判定（Step３）について説明する。可視判定は、上記数１６によって算出されたターゲットとなる車両と他の車両及び他オブジェクトとの距離の遠近によって、近い（最前面）側から遠い（最奥面）側に向かってオブジェクトを並び変えた後に、これらのオブジェクトが可視可能であるか否かを判定する処理である。図１２は、可視判定ベクトルを表している。可視判定ベクトルは、最前面側に位置するオブジェクトから最奥面に位置するオブジェクトのそれぞれについて、ターゲットとなる車両から見えるか否かを「１」「０」で表したものである。可視判定の具体的な手順を以下に説明するが、ベクトルの要素とは、例えば、ａ＝［１  ２］というベクトルがあったときに、１や２等、ベクトルを構成する数値のことを「要素」といい、可視判定ベクトルの最後の要素というと、可視判定ベクトルを構成する数値の並びの中で、一番最後の数値のことを意味する。本実施例の場合、可視判定ベクトルを構成する数値とエージェントが知覚可能なオブジェクトとは一対一に対応しているので、要素＝オブジェクトと考えることができる。したがって、可視判定ベクトルの最後の要素を１にするということは、一番遠くにあるオブジェクトは可視であるとすることを意味する。可視判定は、具体的には以下の手順で行われる。
（１）可視判定ベクトルの最後の要素の値を１にする
（２）Ｉ＝１〜Ｎ−１について、以下の（３）、（４）を繰り返す
（３）可視判定ベクトルのＮ−Ｉ番目の要素の値を１にする
（４）Ｎ−Ｉ番目のオブジェクトと、可視判定ベクトルの要素の値が１であるＮ−Ｉ番目以降のオブジェクトとの遮蔽判定を行う。可視の場合は、可視判定ベクトルの値はそのまま、また必要があれば可視領域の修正を行い、不可視の場合は、可視判定ベクトルの値を０に変更する
【００５９】
ここで、上記の遮蔽判定について具体的に説明する。図１３は、遮蔽判定を説明するための図であり、Ｉ＝２番目のオブジェクトがＩ＝１番目のオブジェクトによって遮蔽されているのか否かを判定する場合を表したものである。仮想スクリーン上におけるＩ＝１番目のオブジェクト（オブジェクト１）の外形の座標は、（ｙｍａｘ１，ｚｍａｘ１），（ｙｍｉｎ１，ｚｍｉｎ１）によって表される。また、仮想スクリーン上におけるＩ＝２番目のオブジェクト（オブジェクト２）の外形の座標は、（ｙｍａｘ２，ｚｍａｘ２），（ｙｍｉｎ２，ｚｍｉｎ２）によって表される。そして、オブジェクト２がオブジェクト１によって遮蔽されているか否かは、以下のように判定する。
ｙｍａｘ１＞ｙｍａｘ２、ｙｍｉｎ１＜ｙｍｉｎ２、ｚｍａｘ１＞ｚｍａｘ２、ｚｍｉｎ１＜ｚｍｉｎ２
この条件をすべて満たす場合には、オブジェクト２はオブジェクト１に完全に遮蔽されているので不可視と判断する。
ｙｍａｘ１＞ｙｍａｘ２、ｙｍｉｎ１＞ｙｍｉｎ２、ｙｍａｘ２＞ｙｍｉｎ１
この条件をすべて満たす場合には、オブジェクト２はオブジェクト１に部分的に遮蔽されているので可視と判断すると共に、ｙｍａｘ２＝ｙｍｉｎ１に変更する。
ｙｍａｘ１＜ｙｍａｘ２、ｙｍｉｎ１＜ｙｍｉｎ２、ｙｍａｘ１＞ｙｍｉｎ２
この条件をすべて満たす場合には、オブジェクト２はオブジェクト１に部分的に遮蔽されているので可視と判断すると共に、ｙｍｉｎ２＝ｙｍａｘ１に変更する。
ｙｍｉｎ１＞ｙｍａｘ２、ｙｍｉｎ２＞ｙｍａｘ１、ｚｍｉｎ１＞ｚｍａｘ２、ｚｍｉｎ２＞ｚｍａｘ１
この条件の何れかを満たす場合には、オブジェクト２はオブジェクト１を遮蔽していないので可視と判断する。
【００６０】
図１４は、隠れオブジェクトの除去についての具体例を表したものであり、図１４（ａ）は一例としてのターゲットとなる車両と他のオブジェクトの上から見た配置を表しており、図１４（ｂ）は、車両から見た仮想スクリーン上に表される他の各オブジェクトの輪郭を表したものである。図１４（ａ）の場合、車両から見て一番手前側から「大型車」（Ｉ＝１）、「乗用車」（Ｉ＝２）、「乗用車」（Ｉ＝３）、「信号機」（Ｉ＝４）の順で各オブジェクトが並んでいる。当該各オブジェクトの並びは、数１６に示した式に基づいて決定される。図１４（ａ）に示した各オブジェクトの配置を、車両から見た仮想スクリーン上に表すと図１４（ｂ）のようになる。すなわち、一番手前側に「大型車」（Ｉ＝１）が見え、当該「大型車」によって「乗用車」（Ｉ＝３）及び「信号機」（Ｉ＝４）が隠され、「乗用車」（Ｉ＝２）の一部が「大型車」によって隠された状態になっている。この場合の、「乗用車」（Ｉ＝３）及び「信号機」（Ｉ＝４）が「隠れオブジェクト」となる。
【００６１】
各オブジェクトが「隠れオブジェクト」であるか否かの判定は、図１２、図１３を用いて説明した可視判定ベクトルによって行われる。具体的には、図１５に示すように、はじめに一番遠い「信号機」（Ｉ＝４）の可視判定ベクトルのＩ＝４の要素の値を「１」とする。次に、「信号機」（Ｉ＝４）が「乗用車」（Ｉ＝３）によって遮蔽されているか否かを判断する。この例では遮蔽されていないので、可視判定ベクトルのＩ＝４の要素の値には「１」を記録し、「乗用車」（Ｉ＝３）の要素の値にも「１」を記録する。次いで、「乗用車」（Ｉ＝３）が「乗用車」（Ｉ＝２）によって遮蔽されているか否か、及び「信号機」（Ｉ＝４）が「乗用車」（Ｉ＝２）によって遮蔽されているか否かを判断する。この例では、「信号機」（Ｉ＝４）及び「乗用車」（Ｉ＝３）は「乗用車」（Ｉ＝２）によって遮蔽されていないので、可視判定ベクトルのＩ＝２、Ｉ＝３、Ｉ＝４の要素の値にはそれぞれ「１」が記録される。なお、「乗用車」（Ｉ＝３）は、「乗用車」（Ｉ＝２）と一部重なる部分があるので、「乗用車」（Ｉ＝３）の可視領域を修正する。次いで、「乗用車」（Ｉ＝２）が「大型車」（Ｉ＝１）によって遮蔽されているか否か、「乗用車」（Ｉ＝３）が「大型車」（Ｉ＝１）によって遮蔽されているか否か、及び「信号機」（Ｉ＝４）が「大型車」（Ｉ＝１）によって遮蔽されているか否かを判断する。図示した例では、「乗用車」（Ｉ＝２）は「大型車」（Ｉ＝１）に遮蔽されておらず、前記可視領域が修正された「乗用車」（Ｉ＝３）及び「信号機」（Ｉ＝４）が「大型車」（Ｉ＝１）に遮蔽されていると判断されるので、可視判定ベクトルのＩ＝１、Ｉ＝２の要素の値には「１」が記録さ、Ｉ＝３、Ｉ＝４の要素の値には「０」が記録される。
【００６２】
以上の処理により、可視判定ベクトルが「０」である「乗用車」（Ｉ＝３）及び「信号機」（Ｉ＝４）は、視覚となる位置関係にあるということで除去される。
【００６３】
そして、この死角となる位置関係にある物体の除去後、視野内の可視オブジェクトを見落とすというヒューマン・エラーを模擬する処理を行う（図８のステップＳ７）。この処理は、図１６に示すように、その前までの処理によって除去されず残った視野内の可視オブジェクトの総数とＩＤ番号及び見落としが発生する確率に基づき行われるものである。図１６に示すように、まず一様分布に従う０から１までの間の実数値をランダムに発生させる。次に、当該ランダムに発生させた数値が、上記「見落としが発生する確率」よりも小さい（ｙｅｓ）か否（ｎｏ）かを判定する。上記ランダムに発生させた数値が「見落としが発生する確率」よりも小さい（ｙｅｓ）場合には、見落としによって知覚されないオブジェクトとして除外する処理を行う。また、ランダムに発生させた数値が「見落としが発生する確率」よりも大きい（ｎｏ）場合には、知覚されたオブジェクトとして、総数とＩＤ番号を記憶用変数に記憶する処理を行う。
【００６４】
以上のように、図８に示した知覚の模擬（ステップＳ４〜ステップＳ７）を行った後に、知覚の模擬による情報に基づいて、エージェントに対して判断及び車両の操作を行わせる（ステップＳ８）。次いで、シミュレーション領域内に存在するすべての車両について、同様に知覚の模擬及び当該知覚の模擬による情報に基づくエージェントの判断及び車両の操作を行わせる処理を行わせる。
【００６５】
これらの処理の後、車両ダイナミクス計算機との通信を行い（ステップＳ９）、自車両を仮想環境内に参加させた上で、ターゲットとなる車両について車両の運動模擬、移動を行わせる処理を行い（ステップＳ１１）、車両の移動に基づいて次に説明するセクション間遷移の検出（ステップＳ１２）、セクション間の遷移の判定（ステップＳ１３）、車両存在情報マトリクスの更新（ステップＳ１４）等の処理を行う。なお、ステップＳ１１の車両の運動模擬、移動処理について、他車両については通常の処理を行い、自車両についてはドライバによる実操作に基づく車両の位置、速度等の変化を車両オブジェクトに代入する処理を行う。
【００６６】
ステップＳ１１に示す車両の運動模擬及び移動処理を行った後、車両が別のセクションへと移動した場合には、車両存在情報マトリクスの内容を書き換える必要があるので、以下に示す処理内容によって車両存在情報マトリクスの更新を行う。
【００６７】
以下、図１７等を用いて、ステップＳ１２のセクション間遷移の検出からステップＳ１４の車両存在情報マトリクスの更新までの処理について説明する。車両の位置、これまでにいたセクション番号、各セクションの２隅の座標が、それぞれ（ＸＶ，ＹＶ）、Ｓｉ、（ＸＳｍａｘ，ＹＳｍａｘ）（ＸＳｍｉｎ，ＹＳｍｉｎ）で与えられる。また、前述した図７に示す遷移可能セクションマトリクスに示した情報が与えられる。各セクションの２隅の座標及び遷移可能セクションについては、シミュレーション実行前に予め設定されている。これらの情報に基づき、各車両についてセクション間の遷移（移動）を検出し（ステップＳ１２）、遷移があった場合（ステップＳ１３）に、車両存在情報マトリクスの更新（ステップＳ１４）が行われる。
【００６８】
図１８は、セクション間の遷移検出についての説明図である。まず、（ＸＶ，ＹＶ）、Ｓｉ、（ＸＳｍａｘ，ＹＳｍａｘ）（ＸＳｍｉｎ，ＹＳｍｉｎ）を基に、これまでのセクションに存在しているか否かの確認（存在確認）を行う。存在確認は、図１９を用いて以下に説明する方法で行われる。同図において、車両の位置は（ＸＶ１，ＹＶ１）、（ＸＶ２，ＹＶ２）で表される。このとき、セクションの左下、右上の頂点から車両までの位置ベクトルは、次式で与えられる。
【数１７】
0004841903.tif 000018
これらの位置ベクトルの要素を用いて、次式に示すＰＸとＰＹを算出する。
【数１８】
0004841903.tif 000019
このＰＸとＰＹを用いて、ＰＸ≦０及びＰＹ≦０の場合には車両はセクション内に存在すると判断され、ＰＸ＞０又はＰＹ＞０の場合には車両はセクション内に存在しないと判断される。
【００６９】
このような判断によって、これまでのセクション内にまだ存在していると判断された場合には、決定されたセクション番号Ｓｊを入力されたセクション番号Ｓｉとする。一方、これまでのセクション内に存在していないと判断された場合には、図７に示す遷移可能セクションで指定されるセクションについて存在確認を行い、車両が存在しているセクションを探し出し、その番号を決定されたセクション番号Ｓｊとする。
【００７０】
セクション間の遷移の判定（ステップＳ１３）では、決定されたセクション番号Ｓｊと入力されたセクション番号Ｓｉとを比較し、それらが異なる場合には、セクション間の遷移が起ったか否かを示す変数Ｆｌａｇ＿Ｔｒａｎｓを１とし、同じ場合には０とする。以上の処理により、車両が存在しているセクションと変数Ｆｌａｇ＿Ｔｒａｎｓの値（０又は１）が得られる。
【００７１】
次に、図２０、図２１を用いて車両存在情報マトリクスの更新について具体的に説明する。図２０（ａ）は、修正前の車両存在情報マトリクスを表しており、セクションＳｉ内に存在する車両台数は４台であり、セクション内に存在する車両のＩＤ番号は、「７」「Ｗ」「９」「１０」でありそれぞれ当該順序で並んでいる状態を表している。また、当該セクションＳｉに隣接するセクションＳｊ内に存在する車両台数は３台であり、セクション内に存在する車両のＩＤ番号は、「２」「４」「１３」であり、それぞれ当該順序で並んでいる状態を表している。
【００７２】
図２０（ａ）に示した状態から、車両「Ｗ」がセクションＳｉからセクションＳｊに遷移した場合の車両存在情報マトリクスの修正について説明する。車両存在情報マトリクスの修正を行う場合には、「遷移前のセクション番号」、「遷移後のセクション番号」、「車両のＩＤ番号」に基づいて次の処理が行われる（図１９参照）。車両存在情報マトリクスのｉ行目（セクションＳｉ）から、値がＷの列を探す。そして、Ｗがあった部位に０を代入するとともに、０を代入した部位の右側列に他の車両（他のＩＤ）がある場合には左に詰め、車両総数を１減らす処理を行う。当該処理によって、図２０（ａ）に示した車両存在情報マトリクスが、図２０（ｂ）のセクションＳｉの行に示すように修正される。
【００７３】
次に、車両存在情報マトリクスのｊ行目から、値が０になる初めの列の要素にＷを代入し、車両総数に１を足す。以上の処理により、車両（一例としてＩＤ＝Ｗの車両）がセクション間を遷移した場合の車両存在情報マトリクスの更新が行われる。
【００７４】
上述のように、セクション間の遷移を検出し遷移があった場合には車両存在情報マトリクスの更新処理をシミュレーション領域内に存在するすべての車両に対して行った後、その結果を画像生成機に送信し（ステップＳ１５）、シミュレーション内の時間をサンプリング時間分だけ進める処理を行い（ステップＳ１６）、一つの処理サイクルを終了し、以降最初に設定された実行時間まで同様の処理を繰り返するようになっている。
【００７５】
上記に述べたような本発明のドライビングシミュレータに用いられるの交通流シミュレーション装置により、エージェントの知覚・認識・判断・操作という一連の認知的行為によって仮想車両一台一台が自律的に移動し、さらにはエージェントが知覚ミス・認識ミス・判断ミスによっては交通事故が発生し得るような仮想交通環境を実現可能となる。このような仮想交通環境において、例えば、車線変更をしようとしたときに、ちょうど車両から死角になっている領域に車両が隠れてしまっていたため、その存在に気付かずに車線変更を実行して衝突してしまう状況や、脇見をしていたために先行車が減速したことに気付かず、気付いてブレーキをかけたときにはもう間に合わずに追突してしまう状況等、現実に起る多くの事故を模擬できることになる。
【００７６】
なお、事故発生の判定は、一つの処理サイクルの終了後、次の処理サイクルが始まる前に行う。事故発生の判定は、最も接近している車両を探索し、その距離が車両の大きさより小さくなったか否かで行えば良い。これをシミュレーション領域中に存在しているすべての車両について行う。事故発生の判定を行うにあたっても、総当たりによる演算を行うとすると、総数Ｎ台の車両が存在するとすれば、合計でＮ（Ｎ−１）／２回の衝突判定のための演算が必要となる。明らかに、車両同士の距離が離れすぎていて接触を起こす可能性の全くない組み合わせについても事故判定をする総当たり的な演算は無駄であり、シミュレーション時間の遅延、ハードウエアに対する負荷の増大といった問題を招く。しかしながら、本願発明のドライビングシミュレータに用いられるシミュレーション装置は、道路に関する情報として道路領域を細分化した車両存在情報マトリクスを設けることにより細分化した各領域に存在している車両の情報を持たせている。さらに、前記細分化した領域が隣接しているか否かを判別できる遷移可能セクションマトリクスを有しており、車両存在情報マトリクスと遷移可能セクションマトリクスとを組み合わせることによって、演算が必要な車両の組み合わせを特定することができ、ドライバの知覚の模擬のための近接車両の探索のためだけではなく、事故発生の判定を行うにあたっても全く事故の発生する可能性の無い車両の組み合わせを排除し、計算量の低減を図ることができるという特徴を有しているものである。
【００７７】
また、複数台のコンピュータを並列的に動作させて交通流シミュレーションを行う場合、グリッドコンピューティングのように分散処理を行うのではなく、分割されたセクションをグループ分けして、各グループ内のシミュレーションをそれぞれのコンピュータが行うようにすることが好ましい。本発明のドライビングシミュレータに用いられる交通流シミュレーション装置においては、車両存在情報マトリクスを利用してセクション内にいる車両のＩＤ番号を管理している。したがって、隣接するセクションを担当するコンピュータにそのセクション内の車両の位置情報の提供を要求すると、要求を受信したコンピュータでは、そのコンピュータが管理している車両すべての位置情報を送信する必要はなく、要求に応じたセクション内の車両の位置情報のみを送信するだけで済むので、送信データ量の低減、計算機による計算量の低減が図れるという特徴も有する。
【００７８】
さて、上述に詳細に説明したこのような交通流シミュレーション装置１２を用いたドライビングシミュレータの動作について以下に説明する。交通流シミュレーション装置１２により構築した仮想交通環境内に、操作者による物理的な操作により移動する仮想自車両を走らせる。具体的には、操作者（被験者等）は、プロジェクタ１５により表示された交通環境を知覚し、コックピット１１に備えられたハンドルやアクセル、ブレーキにより運転操作を行う。これらハンドル等に備えられたセンサにより検知された操作量が、車両ダイナミクス計算機１３に送られる。そして自車両の加速度やヨーレイトが計算され、その結果が交通流シミュレーション装置１２に渡される。交通流シミュレーション装置１２では、与えられたデータをエージェントの情報の代わりに用いて、自車両を操作者による物理的な操作に応じて仮想交通環境内で移動させるようにする。
【００７９】
このように、知覚、認識、判断、操作といったことを自律的に行うエージェントによる仮想的な他車両が存在する仮想交通環境内において、実際のドライバによる仮想自車両の操作により実時間でインタラクションを受けるシステムが実現可能となる。各エージェントは、自車両の動作によって影響を受けるため、操作者は現実に近い交通環境でのドライビングシミュレーションが可能となる。
【００８０】
本発明のドライビングシミュレータは、より現実に近い形でのシミュレーションが可能なため、実際の走行環境と同等の条件で操作者に関するデータの取得も可能となる。すなわち、例えば運転支援システムの導入がドライバの運転行動に及ぼす影響を調査するため等に、運転支援システムの有無による実際のドライバの挙動等に関するデータを取得することが可能となる。さらに、このようにして取得されたデータを元に、エージェントのパラメータを再調整し、さらに現実に近い仮想交通環境を構築することも可能となる。
【００８１】
なお、本発明のドライビングシミュレータは、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００８２】
【図１】図１は、本発明のドライビングシミュレータの全体的な概要を説明するための概略ブロック図である。
【図２】図２は、本発明のドライビングシミュレータに用いられる交通流シミュレーション装置のブロック図である。
【図３】図３は、本発明におけるエージェントを説明するためのブロック図である。
【図４】図４は、シミュレーション領域の一例を示す地図および分割した小領域の図である。
【図５】図５は、シミュレーション領域である道路をモデル化した図である。
【図６】図６は、車両存在情報マトリクスの一例を表す表である。
【図７】図７は、遷移可能セクションマトリクスの一例を表す表である。
【図８】図８は、本発明のドライビングシミュレータに用いられる交通流シミュレーション装置のシミュレーション処理のフローチャートである。
【図９】図９は、一の車両に対して視野外となるオブジェクトを除外する算出処理を説明するために用いる図である。
【図１０】図１０は、一の車両から見て死角となる位置に存在するオブジェクトを除外する算出処理を説明するためのフローチャートである。
【図１１】図１１は、図１０のフローチャートで行われる演算処理を説明するために用いる図である。
【図１２】図１２は、図１０のフローチャートで行われる可視判定を説明するために用いる図である。
【図１３】図１３は、図１２の可視判定で行われる遮蔽判定を説明するために用いる図である。
【図１４】図１４は、隠れオブジェクトの除去の具体例を説明するための図である。
【図１５】図１５は、図１４の隠れオブジェクトの除去において行われる可視判定を説明するために用いる図である。
【図１６】図１６は、見落としの処理を説明するためのフローチャートである。
【図１７】図１７は、車両の移動から車両存在情報マトリクスの更新までの処理内容を説明するためのフローチャートである。
【図１８】図１８は、図１７に示した処理中の、車両のセクション間の遷移の有無を検出する処理を説明するための図である。
【図１９】図１９は、図１８に示した処理における演算処理を説明するために用いる図である。
【図２０】図２０は、図１７に示した処理中の、車両存在情報マトリクスの更新処理の内容を説明するための図である。
【図２１】図２１は、図２０に示した処理を説明するためのフローチャートである。
【符号の説明】
【００８３】
２    演算手段
３    記憶手段
４    入出力手段
１１    コックピット
１２    交通シミュレーション装置
１３    車両ダイナミクス計算機
１４    画像生成機
１５    プロジェクタ
２０    エージェント
２０１    知覚部
２０２    認識部
２０３    判断部
２０４    操作部
【図１】
0004841903.tif 000020
【図２】
0004841903.tif 000021
【図３】
0004841903.tif 000022
【図４】
0004841903.tif 000023
【図５】
0004841903.tif 000024
【図６】
0004841903.tif 000025
【図７】
0004841903.tif 000026
【図８】
0004841903.tif 000027
【図９】
0004841903.tif 000028
【図１０】
0004841903.tif 000029
【図１１】
0004841903.tif 000030
【図１２】
0004841903.tif 000031
【図１３】
0004841903.tif 000032
【図１４】
0004841903.tif 000033
【図１５】
0004841903.tif 000034
【図１６】
0004841903.tif 000035
【図１７】
0004841903.tif 000036
【図１８】
0004841903.tif 000037
【図１９】
0004841903.tif 000038
【図２０】
0004841903.tif 000039
【図２１】
0004841903.tif 000040