(57)【特許請求の範囲】
【請求項１】
シミュレーション対象の複数の車両のうち、少なくとも１台の第１の車両を選択する第１の選択部と、
車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる複数の計算モデルの中から、前記第１の選択部により選択された第１の車両の進行方向に所定距離離れた位置を基準とした位置関係に基づいて、前記第１の車両以外の複数の第２の車両に適用する計算モデルを選択する第２の選択部と、
前記第２の選択部により選択された、前記複数の第２の車両の各々の計算モデルを用いて、前記複数の第２の車両の各々の挙動を計算するとともに、前記第１の車両に対応する計算モデルを用いて、前記第１の車両の挙動を計算する計算部と
を有することを特徴とするシミュレーション装置。 
【請求項２】
前記第２の選択部は、前記第１の車両から、前記第１の車両の進行方向に所定距離離れた位置を中心とする所定半径の円の領域内に存在する前記第２の車両に対しては、所定値より高い計算詳細度の計算モデルを選択し、該領域内に存在しない前記第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択する
ことを特徴とする請求項１に記載のシミュレーション装置。 
【請求項３】
前記第２の選択部は、前記領域内に存在する前記第２の車両であっても、当該第２の車両の進行方向および速度から、所定時間後に前記領域内に存在しないことを予測した場合には、該第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択するとともに、前記領域内に存在しない前記第２の車両であっても、当該第２の車両の進行方向および速度から、前記所定時間後に前記領域内に存在することを予測した場合には、該第２の車両に対しては、前記所定値より高い計算詳細度の計算モデルを選択する
ことを特徴とする請求項２に記載のシミュレーション装置。 
【請求項４】
前記第２の選択部は、前記複数の車両を複数の種類に分ける種別ごとに異なる基準を用いて前記計算モデルを選択することを特徴とする請求項１に記載のシミュレーション装置。 
【請求項５】
前記第１の選択部により選択された第１の車両のドライバの視界を疑似的に示した映像であって、運転シミュレーション用の映像を生成する生成部
をさらに有することを特徴とする請求項１〜４の何れか一つに記載のシミュレーション装置。 
【請求項６】
コンピュータに、
シミュレーション対象の複数の車両のうち、少なくとも１台の第１の車両を選択し、
車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる複数の計算モデルの中から、選択された第１の車両の進行方向に所定距離離れた位置を基準とした位置関係に基づいて、前記第１の車両以外の複数の第２の車両に適用する計算モデルを選択し、
選択された、前記複数の第２の車両の各々の計算モデルを用いて、前記複数の第２の車両の各々の挙動を計算するとともに、前記第１の車両に対応する計算モデルを用いて、前記第１の車両の挙動を計算する
処理を実行させることを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
従来、交通流のシミュレーションを行うシミュレーション装置が存在する。広域の交通流のシミュレーションを行う場合の計算量増大を避けつつ、部分的に詳細なシミュレーションを行うために、例えば、このようなシミュレーション装置では、シミュレーション対象の領域が複数の領域に予め分割されている。より詳細には、シミュレーション装置では、シミュレーション対象の領域が詳細なシミュレーションを行う領域と、簡易なシミュレーションを行う領域とに分割されている。そして、シミュレーション装置は、詳細なシミュレーションを行う領域において、簡易なシミュレーションを行う領域よりも、短い実行間隔でシミュレーションを行う。
【０００３】
また、他のシミュレーション装置は、高い精度が要求される領域内の車両の挙動のシミュレーションを、高精度のシミュレーションモデルを用いて行う。また、このシミュレーション装置は、領域外の車両の挙動のシミュレーションを、低い精度のシミュレーションモデル、例えば流体モデルを用いてシミュレーションを行う。
【０００４】
また、交通流のシミュレーションを行うとともに、その交通流に交じって走行する特定の車両の運転シミュレーション、すなわち、車両の運転環境を模擬するシミュレーション装置が存在する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９３４２５号公報
【特許文献２】特開２００２−２５９８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来の技術では、任意に選択した車両およびその周辺車両について、それぞれに必要な詳細度でシミュレーションを行うことができない。そのため、任意に選択した車両の運転環境を正しく模擬することができないという問題がある。
【０００７】
具体例を挙げて説明すると、上記の従来の技術では、予め決められた領域ごとにシミュレーションの精細度を指定できるのみであり、任意の車両を選択し、その車両およびその周辺車両について、それぞれに必要な詳細度でシミュレーションを行うことができない。
【０００８】
また、上記の従来の技術では、ある領域内の車両に対しては、高精度のシミュレーションモデルを用いてシミュレーションを行う。また、上記の従来の技術では、その領域外の車両に対しては、流体モデルなどにより各車両を区別せずにシミュレーションを行う。このように、上記の従来の技術では、領域の範囲外に存在する車両については、各車両を区別せずにシミュレーションを行うため、注目車両を任意に選択することができない。
【０００９】
よって、上記の技術では、広域の交通流のシミュレーションを行いつつ、全体の計算量増大を避ける必要がある場合に、任意に車両を選択し、その車両およびその周辺車両について、それぞれに必要な詳細度でシミュレーションを行うことができない。そのため、任意に選択した車両の運転環境を正しく模擬することができない。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、任意に選択した車両およびその周辺車両について、それぞれに必要な詳細度でシミュレーションを行い、それにより、任意に選択した車両の運転環境を正しく模擬することができるシミュレーション装置およびシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示するシミュレーション装置は、一つの態様において、第１の選択部と、個々の車両について定義された第２の選択部と、計算部とを有する。第１の選択部は、シミュレーション対象の複数の車両のうち、少なくとも１台の第１の車両を選択する。第２の選択部は、個々の車両ごとに定義され、前記第１の選択部により選択された第１の車両と、前記第１の車両以外の個々の第２の車両との位置関係に基づいて、次のような処理を行う。すなわち、各車両に対応付けられた第２の選択部は、対応する車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる複数の計算モデルの中から、対応する車両に適用する計算モデルを選択する。計算部は、前記第２の選択部により選択された、前記第２の車両の各々の計算モデルを用いて、前記第２の車両の各々の挙動を計算するとともに、前記第１の車両の挙動を計算する。
【発明の効果】
【００１２】
本願の開示するシミュレーション装置の一つの態様によれば、任意に選択した車両のシミュレーションを行うことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るシミュレーション装置の機能構成を示す図である。
【図２】図２は、第１の表示部により表示されるシミュレーション結果の一例を示す図である。
【図３】図３は、実施例１に係る計算用モデル、内部変数、参照用データおよび注目車両情報の関係の一例を模式的に示した図である。
【図４】図４は、実施例１に係る計算用モデル、内部変数、参照用データおよび注目車両情報の関係の一例を模式的に示した図である。
【図５】図５は、第２の選択部による計算モデルの選択例を示す図である。
【図６Ａ】図６Ａは、詳細モデルを用いた計算部による車両の挙動計算の一例を示す図である。
【図６Ｂ】図６Ｂは、簡略モデルを用いた計算部による車両の挙動計算の一例を示す図である。
【図７Ａ】図７Ａは、実施例１に係る第１の選択処理の手順を示すフローチャートである。
【図７Ｂ】図７Ｂは、実施例１に係る固定計算処理の手順を示すフローチャートである。
【図７Ｃ】図７Ｃは、実施例１に係る可変計算処理の手順を示すフローチャートである。
【図８】図８は、シミュレーションプログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示するシミュレーション装置およびシミュレーションプログラムの各実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１５】
［シミュレーション装置の構成］
実施例１に係るシミュレーション装置について説明する。図１は、実施例１に係るシミュレーション装置の機能構成を示す図である。本実施例に係るシミュレーション装置１０は、シミュレーション対象の複数の車両の中から注目車両が選択されると、注目車両に近い車両に詳細モデル、注目車両から離れた車両に簡易モデルを適用して挙動を計算する。図１に示すように、シミュレーション装置１０は、第１の入力部１１と、第２の入力部１２と、第１の表示部１３と、第１の記憶部１４と、第２の記憶部１５と、制御部１６とを有する。
【００１６】
また、シミュレーション装置１０には、ドライバ９０が運転シミュレーションを行うための運転シミュレーション部２０が有する第３の入力部２１および第２の表示部２２が接続されている。なお、運転シミュレーションは、模擬運転とも称される。
【００１７】
これらのうち、まず、第１の表示部１３について説明する。第１の表示部１３は、シミュレーション結果を表示する。例えば、第１の表示部１３は、後述の計算部１６ｃによって計算されたシミュレーション対象の複数の車両の交通流を表示する。第１の表示部１３の一例としては、ＬＣＤ（Liquid  Crystal  Display）やプロジェクタなどの表示デバイスが挙げられる。
【００１８】
図２は、第１の表示部により表示されるシミュレーション結果の一例を示す図である。図２の例では、道路５５上の複数の車両５６の交通流が表示されている。
【００１９】
第１の入力部１１は、ユーザの操作を受け付けて各種情報を制御部１６に入力する。第１の入力部１１の一例としては、キーボードやマウスなどを含む操作受付デバイスが挙げられる。
【００２０】
例えば、第１の入力部１１は、第１の表示部１３に表示されたシミュレーション対象の複数の車両の中から、ユーザに指定された注目車両のＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）を制御部１６に入力する。ここで、注目車両とは、運転シミュレーション部２０によりドライバ９０が運転シミュレーションを行う車両である。図２の例では、第１の入力部１１は、第１の表示部１３に表示されたシミュレーション対象の複数の車両５６の中から、ユーザに指定された注目車両５６ａのＩＤを制御部１６に入力する。なお、車両のＩＤの一例としては、各車両ごとに付された番号が挙げられる。
【００２１】
第２の入力部１２は、受け付けた情報を制御部１６に入力する入出力インターフェースである。例えば、第２の入力部１１は、後述の第３の入力部２１から運転操作状態を受け付けて、受け付けた運転操作状態を制御部１６に入力する。ここで、運転操作状態に含まれる各種状態の一例として、ハンドル状態、アクセル状態、ブレーキ状態が挙げられる。ハンドル状態の一例としては、ハンドルの操作量を示す値が挙げられる。また、アクセル状態の一例としては、アクセルペダルの操作量を示す値が挙げられる。また、ブレーキ状態の一例としては、ブレーキペダルの操作量を示す値が挙げられる。
【００２２】
第１の記憶部１４は、制御部１６で実行される各種プログラムを記憶する。また、第１の記憶部１４は、計算用モデル１４ａ、映像生成用モデル１４ｂを記憶する。
【００２３】
計算用モデル１４ａについて説明する。計算用モデル１４ａは、交通シミュレーションを計算するためのモデルである。例えば、計算用モデル１４ａは、道路モデル２４ａと、可変モデル２４ｂと、固定モデル２４ｃとを有する。計算用モデル１４ａは、シミュレーション対象の各車両ごとに定義されていることが望ましく、この点については図３を用いて後述する。
【００２４】
道路モデル２４ａは、シミュレーションに用いられる道路モデルである。例えば、道路モデル２４ａは、各道路のセグメントを一意に識別するためのＩＤごとに、開始位置、道幅、方角、傾斜、路面状態などを有するデータである。
【００２５】
可変モデル２４ｂおよび固定モデル２４ｃは、シミュレーション対象の複数の車両ごとに定義されたモデルである。このうち、可変モデル２４ｂは、簡略モデル２５ａと、詳細モデル２５ｂとを有する。簡略モデル２５ａおよび詳細モデル２５ｂは、車両の内部状態および外部状態を計算するためのモデルである。内部状態には、エンジン状態、動力伝達系状態、タイヤ状態が含まれる。また、外部状態には、車両の位置、進行方向、速度、車種が含まれる。
【００２６】
ここで、簡略モデル２５ａおよび詳細モデル２５ｂの両モデルの異なる点について説明する。この両モデルでは、計算詳細度が異なる。また、両モデルでは、計算を実行する実行間隔が異なる。
【００２７】
図３や図４に示すように、簡略モデル２５ａは、簡易プログラム２６ａおよび周期ΔＴｖｓを有する。簡略モデル２５ａを適用して計算部１６ｃが車両の内部状態および外部状態を計算する場合には、簡易プログラム２６ａが、計算部１６ｃにより周期ΔＴｖｓで実行される。周期ΔＴｖｓの一例としては、１００ｍｓｅｃが挙げられるが、周期ΔＴｖｓはこの値に限られない。
【００２８】
図３や図４に示すように、詳細モデル２５ｂは、詳細プログラム２６ｂおよび周期ΔＴｖｐを有する。詳細モデル２５ｂを適用して計算部１６ｃが車両の内部状態および外部状態を計算する場合には、詳細プログラム２６ｂが、計算部１６ｃにより周期ΔＴｖｐで実行される。周期ΔＴｖｐの一例としては、２ｍｓｅｃが挙げられるが、周期ΔＴｖｐはこの値に限られない。
【００２９】
簡略モデル２５ａは、簡易に車両の内部状態および外部状態を計算するためのモデルである。一方、詳細モデル２５ｂは、詳細に車両の内部状態および外部状態を計算するためのモデルである。そのため、詳細モデル２５ｂを適用して、計算部１６ｃにより車両の内部状態および外部状態を計算した場合の計算結果の精度は、簡略モデル２５ａを適用して、計算部１６ｃにより車両の内部状態および外部状態を計算した場合の計算結果の精度よりも高くなる。
【００３０】
一方で、詳細モデル２５ｂを適用した場合の単位時間あたりの計算量は、簡略モデル２５ａを適用した場合の単位時間あたりの計算量よりも多くなる。そのため、シミュレーション対象の全ての車両に詳細モデル２５ｂを適用することは、実用性の観点から現実的ではない。詳細な計算が必要な車両に対しては、詳細モデル２５ｂを適用し、そうでない車両に対しては、簡略モデル２５ａを適用することが考えられる。そこで、詳細モデル２５ｂは、後述の第２の選択部１６ｂにより、注目車両５６ａの近傍の車両５６に適用する計算モデルとして選択される。また、簡略モデル２５ａは、第２の選択部１６ｂにより、注目車両５６ａの近傍に位置しない車両５６に適用する計算モデルとして選択される。
【００３１】
図４に示すように、固定モデル２４ｃは、ドライバ状態および運転操作状態を計算するためのドライバ行動計算モデル２５ｃを含む。ドライバ状態には、走行予定経路、認知・判断状態が含まれる。運転操作状態には、ハンドル状態、アクセル状態、ブレーキ状態が含まれる。
【００３２】
図３に示すように、ドライバ行動計算モデル２５ｃは、固定プログラム２６ｃおよび周期ΔＴｆを有する。固定モデル２４ｃを適用して計算部１６ｃがドライバ状態および運転操作状態を計算する場合には、固定プログラム２６ｃが、計算部１６ｃにより周期ΔＴｆで実行される。また、周期ΔＴｆの一例としては、１５００ｍｓｅｃが挙げられるが、周期ΔＴｆの値はこれに限られない。
【００３３】
映像生成用モデル１４ｂは、注目車両に応じた映像を生成するためのモデルである。例えば、映像生成用モデル１４ｂは、後述の生成部１６ｄにより用いられて、注目車両を運転するドライバの模擬視界映像が生成される。なお、ドライバは、運転手とも称される。
【００３４】
第１の記憶部１４は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、第１の記憶部１４は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００３５】
図１の説明に戻り、第２の記憶部１５は、内部変数１５ａ、参照用データ１５ｂ、注目車両情報１５ｃを記憶する。
【００３６】
内部変数１５ａには、自車両の周辺状態、ドライバ状態、運転操作状態、内部状態、外部状態が含まれる。自車両の周辺状態は、後述の計算部１６ｃにより、参照用データ１５ｂから取得された自車両の周辺の車両の状態である。自車両の周辺の車両の状態の一例としては、各車両ＩＤおよび各時刻ごとの周辺車両の位置、速度、進行方向、角速度、車種などが挙げられる。また、内部変数１５ａに含まれるドライバ状態、運転操作状態、内部状態、外部状態は、後述の計算部１６ｃにより計算される状態である。
【００３７】
参照用データ１５ｂは、各車両についてドライバ状態および運転状態を計算する際に計算部１６ｃが参照する各車両の周辺状態を含む。例えば、参照用データ１５ｂには、計算部１６ｃが計算した各車両の外部状態が登録される。一例としては、参照用データ１５ｂには、各車両ＩＤおよび各時刻ごとの車両の位置、速度、進行方向、角速度、車種などが含まれる。
【００３８】
注目車両情報１５ｃは、選択された注目車両を識別するための情報である。例えば、注目車両情報１５ｃは、後述の第１の選択部１６ａにより選択された注目車両のＩＤである。
【００３９】
第２の記憶部１５は、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)などである。
【００４０】
上述した計算用モデル１４ａ、内部変数１５ａ、参照用データ１５ｂおよび注目車両情報１５ｃの関係の一例を説明する。図３および図４は、実施例１に係る計算用モデル、内部変数、参照用データおよび注目車両情報の関係の一例を模式的に示した図である。
【００４１】
図３においては、計算用モデル１４ａが１４ａ１、１４ａ２・・・というように複数存在する状態が模式的に表現されている。これは、シミュレーション対象の車両ごとに計算用モデル１４ａを設けることができることを意味している。例えば、車両ＩＤ＝ｎの車両に対して計算用モデル１４ａｎが設けられる。具体例を挙げて説明すると、車両ＩＤ＝１の車両に対して計算用モデル１４ａ１が、車両ＩＤ＝２の車両に対して計算用モデル１４ａ２が設けられる。シミュレーション対象の車両ごとに設けた計算用モデル１４ａには、図示していないが、各計算用モデル１４ａと対応付けられた車両のＩＤに関する情報を記憶しているものとする。
【００４２】
図３および図４の例は、固定モデル２４ｃは、ドライバ行動計算モデル２５ｃを含むことを示す。また、図３および図４の例は、ドライバ行動計算モデル２５ｃの固定プログラム２６ｃが周期ΔＴｆで実行されて、内部変数１５ａの自車両の周辺状態、および道路モデル２４ａに基づいて、ドライバ状態および運転操作状態が計算されることを示す。また、図３および図４の例は、計算されたドライバ状態および運転操作状態が内部変数１５ａに登録され、内部変数１５ａが更新されることを示す。
【００４３】
また、図３および図４の例は、可変モデル２４ｂは、簡略モデル２５ａおよび詳細モデル２５ｂを含むことを示す。
【００４４】
また、図３および図４の例は、簡略モデル２５ａの簡易プログラム２６ａが周期ΔＴｖｓで実行されて、道路モデル２４ａ、直前の運転操作状態、車両の内部状態および外部状態に基づいて、車両の内部状態および外部状態が計算されることを示す。
【００４５】
また、図３および図４の例は、詳細モデル２５ｂの詳細プログラム２６ｂが周期ΔＴｖｐで実行されて、道路モデル２４ａ、直前の運転操作状態、車両の内部状態および外部状態に基づいて、車両の内部状態および外部状態が計算されることを示す。
【００４６】
また、図３および図４の例は、計算された車両の内部状態および外部状態が内部変数１５ａに登録されることを示す。また、図３および図４の例は、内部変数１５ａに登録された外部状態が参照用データ１５ｂに登録されて、参照用データ１５ｂの登録内容が更新されることを示す。また、図３および図４の例は、参照用データ１５ｂの登録内容が内部変数１５ａに登録されることを示す。
【００４７】
また、図３の例は、第３の入力部２１からの運転操作状態が内部変数１５ａに登録されることを示す。また、図３の例は、注目車両情報１５ｃに含まれる注目車両ＩＤが示す車両「ＣＡＲ３」を運転するドライバ９０の模擬視界映像が生成部１６ｄで生成されることを示す。
【００４８】
また、図３の道路モデル２４ａの例では、ＩＤが「ＳＥＧ１」である道路のセグメントは、その開始位置が「Ｒ１」で、道幅が「Ｗ１」で、方角が「Ｄ１」で、傾斜が「Ｇ１」で、路面状態が「Ｓ１」であることを示す。また、図３の道路モデル２４ａの例では、ＩＤが「ＳＥＧ２」である道路のセグメントは、その開始位置が「Ｒ２」で、道幅が「Ｗ２」で、方角が「Ｄ２」で、傾斜が「Ｇ２」で、路面状態が「Ｓ２」であることを示す。また、図３の道路モデル２４ａの例では、ＩＤが「ＳＥＧ３」である道路のセグメントは、その開始位置が「Ｒ３」で、道幅が「Ｗ３」で、方角が「Ｄ３」で、傾斜が「Ｇ３」で、路面状態が「Ｓ３」であることを示す。また、図３の道路モデル２４ａの例では、ＩＤが「ＳＥＧ４」である道路のセグメントは、その開始位置が「Ｒ４」で、道幅が「Ｗ４」で、方角が「Ｄ４」で、傾斜が「Ｇ４」で、路面状態が「Ｓ４」であることを示す。
【００４９】
また、図３の参照用データ１５ｂの例では、ＩＤが「ＣＡＲ１」の車両は、時刻「Ｔ１」のときに、位置が「Ｐ１」で、速度が「Ｖ１」で、進行方向が「Ｈ１」で、角速度が「Ａ１」となる状態であり、車種が「Ｃ１」であることを示す。また、図３の参照用データ１５ｂの例では、ＩＤが「ＣＡＲ２」の車両は、時刻「Ｔ２」のときに、位置が「Ｐ２」で、速度が「Ｖ２」で、進行方向が「Ｈ２」で、角速度が「Ａ２」となる状態であり、車種が「Ｃ２」であることを示す。また、図３の参照用データ１５ｂの例では、ＩＤが「ＣＡＲ３」の車両は、時刻「Ｔ３」のときに、位置が「Ｐ３」で、速度が「Ｖ３」で、進行方向が「Ｈ３」で、角速度が「Ａ３」となる状態であり、車種が「Ｃ３」であることを示す。また、図３の参照用データ１５ｂの例では、ＩＤが「ＣＡＲ４」の車両は、時刻「Ｔ４」のときに、位置が「Ｐ４」で、速度が「Ｖ４」で、進行方向が「Ｈ４」で、角速度が「Ａ４」となる状態であり、車種が「Ｃ４」であることを示す。
【００５０】
図１の説明に戻り、第３の入力部２１は、ドライバの運転の操作状態を検出し、検出した操作状態をシミュレーション装置１０に入力するデバイスである。例えば、第３の入力部２１は、ハンドル、アクセルペダル、ブレーキペダルを有し、ドライバ９０によるハンドルの操作量、アクセルペダルの操作量、ブレーキペダルの操作量を検出し、検出した操作量をシミュレーション装置１０に入力する。
【００５１】
第２の表示部２２は、ドライバの運転シミュレーションのための画像を表示する。例えば、第２の表示部２２は、後述の生成部１６ｄにより生成された、注目車両を運転するドライバの模擬視界映像を表示する。第２の表示部２２の一例としては、ＬＣＤ（Liquid  Crystal  Display）やプロジェクタなどの表示デバイスが挙げられる。
【００５２】
これら第３の入力部２１および第２の表示部２２により、ドライバ９０は、運転シミュレーションを行うことが可能となる。また、運転シミュレーション部２０では、映像のみならず、より現実に近い模擬運転環境を実現するため、音、振動、加速度などを発生する手段を追加することができる。
【００５３】
制御部１６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１６は、図１に示すように、第１の選択部１６ａと、第２の選択部１６ｂと、計算部１６ｃと、生成部１６ｄとを有する。
【００５４】
第１の選択部１６ａは、注目車両を選択する。例えば、第１の選択部１６ａは、第１の入力部１１から入力されたＩＤを取得する。第１の選択部１６ａは、計算用モデル１４ａに含まれるシミュレーション対象の複数の車両のＩＤを取得する。第１の選択部１６ａは、入力部１１から入力されたＩＤと一致するシミュレーション対象の車両を注目車両として選択する。
【００５５】
先の図２の例では、第１の選択部１６ａは、シミュレーション対象の複数の車両５６の中から、ユーザに指定された注目車両５６ａを選択する。
【００５６】
第２の選択部１６ｂは、注目車両以外のシミュレーション対象の車両の各々について、注目車両との位置関係に基づいて、計算詳細度が異なる複数の計算モデルの中から、その車両に適用する計算モデルを選択する。第２の選択部１６ｂは、シミュレーション対象の各車両ごとに設けられた計算用モデル１４ａごとに、各計算用モデル１４ａが対象とする車両の挙動を、簡略モデル２５ａと詳細モデル２５ｂとの何れを用いて計算すべきかを決定する。その意味では、第２の選択部１６ｂは、計算用モデル１４ａの中に仮想的に含まれると表現できる。そのため、図３および図４では、第２の選択部１６ｂを点線で表現している。
【００５７】
例えば、車両ＩＤ＝１である車両に対応付けられた計算用モデル１４ａ１の第２の選択部１６ｂは、注目車両（車両ＩＤ≠１であるとする）の進行方向を参照用データ１５ｂから取得する。この第２の選択部１６ｂは、注目車両の現在位置から進行方向に第１の所定距離、例えば、５０ｍ離れた位置を特定する。この第２の選択部１６ｂは、計算用モデル１４ａ１に対応づいている車両ＩＤ＝１である車両が、前記で特定した位置から第２の所定距離内、すなわち、特定した位置を中心とする半径が所定距離の円の領域内に存在するか否か、すなわち、注目車両の近傍に存在するか否かを判定する。そして、計算用モデル１４ａ１の第２の選択部１６ｂは、車両ＩＤ＝１の車両が注目車両の近傍に存在すると判定された場合に、適用する計算モデルとして、上記の簡略モデル２５ａおよび詳細モデル２５ｂのうち、詳細モデル２５ｂを選択する。また、計算用モデル１４ａ１の第２の選択部１６ｂは、車両ＩＤ＝１の車両が、注目車両の近傍に存在すると判定されなかった場合に、適用する計算モデルとして簡略モデル２５ａを選択する。別の言い方をすれば、第２の選択部１６ｂは、注目車両との距離が所定以内か否かという基準に基づいて計算モデルを選択する。
【００５８】
図５は、ある車両について定義された第２の選択部による計算モデルの選択例を示す図である。例えば、車両ＩＤ＝１である車両であれば、計算用モデル１４ａ１の第２の選択部１６ｂによる選択例ということになる。図５の例では、計算用モデル１４ａ１の第２の選択部１６ｂは、注目車両５１の進行方向Ｘを参照用データ１５ｂから取得する。計算用モデル１４ａ１の第２の選択部１６ｂは、注目車両５１の現在位置Ｐから進行方向に第１の所定距離、例えば、５０ｍ離れた位置Ｑを特定する。計算用モデル１４ａ１の第２の選択部１６ｂは、位置Ｑから第２の所定距離内に存在する車両５２を注目車両５１の近傍の車両として決定する。すなわち、計算用モデル１４ａ１の第２の選択部１６ｂは、位置Ｑを中心とする半径が第２の所定距離、例えば１００ｍの円の領域７０内に存在する車両５２を注目車両５１の近傍の車両として決定する。そして、計算用モデル１４ａ１の第２の選択部１６ｂは、上記の簡略モデル２５ａおよび詳細モデル２５ｂのうち、詳細モデル２５ｂを近傍の車両に適用する計算モデルとして選択する。また、計算用モデル１４ａ１の第２の選択部１６ｂは、簡略モデル２５ａを近傍の車両以外のシミュレーション対象の車両５３に適用する計算モデルとして選択する。
【００５９】
このように、注目車両の近傍の車両に適用する計算モデルとして、詳細モデル２５ｂを適用する理由は、模擬視界映像に含まれ、その挙動がはっきりとドライバ９０により確認できる範囲であるため、詳細な挙動が計算される必要があるからである。また、注目車両以外の車両に適用する計算モデルとして、簡略モデル２５ａを適用するのは、次のような理由による。すなわち、近傍の車両以外の車両が模擬視界映像に含まれても、ドライバ９０は、その挙動を確認し難いため、挙動を詳細に計算する必要がなく、単位時間あたりの計算量が、より少ない計算モデルを適用したほうが処理時間が少なくてすむからである。
【００６０】
なお、個々の車両について定義された第２の選択部１６ｂは、領域７０内に存在する車両５２であっても、車両５２の進行方向および速度から、所定時間後に領域７０内に存在しないことを予測した場合には、このような車両５２に対しては、簡略モデル２５ａを選択することもできる。また、第２の選択部１６ｂは、領域７０内に存在しない車両５３であっても、車両５３の進行方向および速度から、所定時間後に領域７０内に存在することを予測した場合には、このような車両５３に対しては、詳細モデル２５ｂを選択することもできる。
【００６１】
また、領域７０は上記のものに限られず、個々の車両について定義された第２の選択部１６ｂは、個々の車両ごとに、領域７０を任意の形状で、任意の大きさで、任意の位置に設定できる。第２の選択部１６ｂが、シミュレーション対象の各車両について、どの計算モデルを用いて挙動を算出すべきかを決定するので、任意に選択された車両およびその他の車両について、シミュレーションを行うことができる。
【００６２】
計算部１６ｃは、注目車両以外の車両の各々に適用された計算モデルを用いて、注目車両以外の車両の各々の挙動を計算する。また、計算部１６ｃは、注目車両に対応する計算モデルを用いて、注目車両の挙動を計算する。
【００６３】
例えば、計算部１６ｃは、先の図３および図４の例に示すように、ドライバ行動計算モデル２５ｃの固定プログラム２６ｃを周期ΔＴｆで実行することで、次のような処理を周期ΔＴｆで実行する。すなわち、計算部１６ｃは、参照用データ１５ｂの自車両の周辺状態を取得し、取得した周辺状態を内部変数１５ａに登録し、内部変数１５ａを更新する。計算部１６ｃは、内部変数１５ａの自車両の周辺状態、および道路モデル２４ａに基づいて、ドライバ状態および運転操作状態を計算する。また、計算部１６ｃは、計算したドライバ状態および運転操作状態を内部変数１５ａに登録し、内部変数１５ａを更新する。なお、計算部１６ｃは、取得した自車両の周辺状態に対して、必要に応じて時間補間などの処理を施してもよい。
【００６４】
また、計算部１６ｃは、簡略モデル２５ａが適用された車両については、簡略モデル２５ａの簡易プログラム２６ａを周期ΔＴｖｓで実行することで、次のような処理を行う。すなわち、計算部１６ｃは、道路モデル２４ａ、内部変数１５ａの運転操作状態、車両の内部状態および外部状態に基づいて、車両の内部状態および外部状態を計算する。
【００６５】
また、計算部１６ｃは、詳細モデル２５ｂが適用された車両については、詳細モデル２５ｂの詳細プログラム２６ｂを周期ΔＴｖｐで実行することで、次のような処理を行う。すなわち、計算部１６ｃは、道路モデル２４ａ、内部変数１５ａの運転操作状態、車両の内部状態および外部状態に基づいて、車両の内部状態および外部状態を計算する。
【００６６】
また、計算部１６ｃは、注目車両については、詳細モデル２５ｂの詳細プログラム２６ｂを周期ΔＴｖｐで実行することで、次のような処理を行う。すなわち、計算部１６ｃは、第３の入力部２１から入力された運転操作状態を取得し、取得した運転操作状態を内部変数１５ａに登録し、内部変数１５ａを更新する。計算部１６ｃは、道路モデル２４ａ、内部変数１５ａの運転操作状態、車両の内部状態および外部状態に基づいて、車両の内部状態および外部状態を計算する。
【００６７】
また、計算部１６ｃは、計算した車両の内部状態および外部状態を内部変数１５ａに登録し、内部変数１５ａを更新する。また、計算部１６ｃは、内部変数１５ａに登録した外部状態を参照用データ１５ｂに登録し、参照用データ１５ｂの登録内容を更新する。
【００６８】
図６Ａは、詳細モデルを用いた計算部による車両の挙動計算の一例を示す図である。図６Ａの例では、詳細モデル２５ｂを用いた場合の挙動計算が例示されている。図６Ａの例では、計算部１６ｃは、アクセル状態、内部変数１５ａのエンジン状態および動力伝達系状態に基づいて、エンジン状態を計算する。なお、エンジン状態に含まれる状態の一例としては、回転数や、出力トルクが挙げられる。また、動力伝達系状態に含まれる状態の一例としては、ギア選択、ギア比、伝達ロスが挙げられる。
【００６９】
また、図６Ａの例では、計算部１６ｃは、計算したエンジン状態を内部変数１５ａに登録し、内部変数１５ａを更新する。
【００７０】
また、図６Ａの例では、計算部１６ｃは、内部変数１５ａのエンジン状態、動力伝達系状態およびタイヤ状態に基づいて、動力伝達系状態を計算する。なお、タイヤ状態に含まれる状態の一例としては、タイヤの位置、方向、スリップ量、角度、加えられた力、トルク、回転速度が挙げられる。
【００７１】
また、図６Ａの例では、計算部１６ｃは、計算した動力伝達系状態を内部変数１５ａに登録し、内部変数１５ａを更新する。
【００７２】
また、図６Ａの例では、計算部１６ｃは、ブレーキ状態、ハンドル状態、道路モデル２４ａ、内部変数１５ａの動力伝達系状態、タイヤ状態およびボディ状態に基づいて、タイヤ状態を計算する。なお、ボディ状態に含まれる状態の一例としては、加えられた力、トルク、加速度、角加速度が挙げられる。
【００７３】
また、図６Ａの例では、計算部１６ｃは、計算したタイヤ状態を内部変数１５ａに登録し、内部変数１５ａを更新する。
【００７４】
また、図６Ａの例では、計算部１６ｃは、内部変数１５ａのタイヤ状態、ボディ状態、自車両の外部状態に基づいて、ボディ状態を計算するとともに、外部状態を計算する。また、図６Ａの例では、計算部１６ｃは、計算したボディ状態を内部変数１５ａに登録し、内部変数１５ａを更新する。また、図６Ａの例では、計算部１６ｃは、計算した外部状態を内部変数１５ａに登録し、内部変数１５ａを更新する。また、図６Ａの例では、計算部１６ｃは、内部変数１５ａに登録し、更新した外部状態を、参照用データ１５ｂに登録し、参照用データ１５ｂを更新する。
【００７５】
このように、図６Ａの例では、計算部１６ｃは、詳細モデル２５ｂを用いた場合には、エンジン状態、動力伝達系状態およびタイヤ状態などの物理計算を行い、外部状態を計算する。それゆえ、図６Ａの例では、物理計算を行わず、外部状態を計算した場合と比較して、より計算詳細度が高い外部状態の計算結果を得ることができる。
【００７６】
図６Ｂは、簡略モデルを用いた計算部による車両の挙動計算の一例を示す図である。図６Ｂの例では、簡略モデル２５ａを用いた場合の挙動計算が例示されている。図６Ｂの例では、計算部１６ｃは、アクセル状態、ブレーキ状態、ハンドル状態、道路モデル２４ａ、内部変数１５ａのボディ状態に基づいて、ボディ状態を計算するとともに、外部状態を計算する。また、図６Ｂの例では、計算部１６ｃは、計算したボディ状態を内部変数１５ａに登録し、内部変数１５ａを更新する。また、図６Ｂの例では、計算部１６ｃは、計算した外部状態を内部変数１５ａに登録し、内部変数１５ａを更新する。また、図６Ｂの例では、計算部１６ｃは、内部変数１５ａに登録し、更新した外部状態を、参照用データ１５ｂに登録し、参照用データ１５ｂを更新する。
【００７７】
このように、図６Ｂの例では、計算部１６ｃは、詳細モデル２５ｂを用いた場合には、物理計算を行わず、外部状態を計算する。それゆえ、図６Ｂの例では、複雑な物理計算を行わないため、複雑な物理計算を行い、外部状態を計算した場合と比較して、単位時間あたりの計算量が少なくなる。
【００７８】
そして、計算部１６ｃは、計算したシミュレーション対象の複数の車両の交通流を表示するように、第１の表示部１１にシミュレーション結果を送信する。
【００７９】
図１の説明に戻り、生成部１６ｄは、注目車両のドライバの模擬視界映像を生成する。例えば、生成部１６ｄは、映像生成用モデル１４ｂと、参照用データ１５ｂの注目車両情報１５ｃが示す注目車両が示す外部状態と、注目車両の近傍に位置する車両が示す外部状態とに基づいて、模擬視界映像を生成する。なお、生成部１６ｄは、毎秒、所定数のフレーム、例えば、毎秒６０フレームで模擬視界映像を生成するが、模擬視界映像を生成する周期はこれに限られない。
【００８０】
制御部１６は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。  また、生成部１６ｄのみを分離することもできる。例えば、生成部１６ｄを、グラフィックプロセッサとすることもできる。
【００８１】
［処理の流れ］
次に、本実施例に係るシミュレーション装置１０の処理の流れを説明する。以下の図７Ａ〜図７Ｃで説明する各処理は、各々独立して実行される。図７Ａは、実施例１に係る第１の選択処理の手順を示すフローチャートである。この第１の選択処理は、シミュレーション装置１０の電源がＯＮの間、繰り返し実行される。
【００８２】
図７Ａに示すように、第１の入力部１１からＩＤが入力された場合（ステップＳ１０１肯定）には、第１の選択部１６ａは、計算用モデル１４ａに含まれるシミュレーション対象の複数の車両のＩＤを取得する（ステップＳ１０２）。
【００８３】
第１の選択部１６ａは、入力部１１から入力されたＩＤと一致するシミュレーション対象の車両を注目車両として決定し（ステップＳ１０３）、処理を終了する。
【００８４】
図７Ｂは、個々の車両についての、実施例１に係る固定計算処理の手順を示すフローチャートである。この固定計算処理は、シミュレーション装置１０の電源がＯＮの間、実行される。
【００８５】
図７Ｂに示すように、計算部１６ｃは、現在の時刻が処理を実行する時刻Ｔｆであるか否かを判定する（ステップＳ２０１）。現在の時刻が処理を実行する時刻Ｔｆでない場合（ステップＳ２０１否定）には、計算部１６ｃは、実行可能な時刻Ｔｆとなるまで待機し（ステップＳ２０２）、ステップＳ２０１に戻る。
【００８６】
一方、現在の時刻が処理を実行する時刻Ｔｆである場合（ステップＳ２０１肯定）には、計算部１６ｃは、固定モデル２４ｃを用いて車両の挙動を計算する（ステップＳ２０３）。そして、計算部１６ｃは、計算結果を内部変数１５ａに登録し、内部変数１５ａを更新するとともに、内部変数１５ａの外部状態を参照用データ１５ｂに登録し、参照用データ１５ｂを更新する（ステップＳ２０４）。
【００８７】
計算部１６ｃは、時刻ＴｆにΔＴｆを加えた時刻（Ｔｆ＋ΔＴｆ）を、次の計算を実行する時刻である計算対象時刻として求める（ステップＳ２０５）。そして、計算部１６ｃは、処理を続行するか否かを判定する（ステップＳ２０６）。処理を続行する場合（ステップＳ２０６肯定）には、ステップＳ２０１に戻る。一方、処理を終了する場合（ステップＳ２０６否定）には、処理を終了する。
【００８８】
図７Ｃは、個々の車両についての、実施例１に係る可変計算処理の手順を示すフローチャートである。この可変計算処理は、シミュレーション装置１０の電源がＯＮの間、実行される。
【００８９】
図７Ｃに示すように、計算部１６ｃは、現在の時刻が処理を実行する時刻Ｔｖであるか否かを判定する（ステップＳ３０１）。現在の時刻が処理を実行する時刻Ｔｖでない場合（ステップＳ３０１否定）には、計算部１６ｃは、実行可能な時刻Ｔｖとなるまで待機し（ステップＳ３０２）、ステップＳ３０１に戻る。
【００９０】
一方、現在の時刻が処理を実行する時刻Ｔｖである場合（ステップＳ３０１肯定）には、計算部１６ｃは、現在選択されている計算モデルを用いて車両の挙動を計算する（ステップＳ３０３）。そして、計算部１６ｃは、計算結果を内部変数１５ａに登録し、内部変数１５ａを更新するとともに、内部変数１５ａの外部状態を参照用データ１５ｂに登録し、参照用データ１５ｂを更新する（ステップＳ３０４）。
【００９１】
そして、計算対象となっている車両について定義された第２の選択部１６ｂ、例えば、計算対象になっているのが車両ＩＤ＝１の車両であれば、計算モデル１４ａ１の第２の選択部１６ｂは、挙動計算対象である本車両が、詳細モデル適用の対象か否かを判定する（ステップＳ３０５）。本車両が、詳細モデル適用の対象である場合（ステップＳ３０５肯定）には、第２の選択部１６ｂは、詳細モデル２５ｂを本車両に適用する計算モデルとして選択する（ステップＳ３０６）。
【００９２】
そして、計算部１６ｃは、時刻ＴｖにΔＴｖｐを加えた時刻（Ｔｖ＋ΔＴｖｐ）を、次の計算を実行する時刻である計算対象時刻として求める（ステップＳ３０７）。そして、計算部１６ｃは、処理を続行するか否かを判定する（ステップＳ３１０）。処理を続行する場合（ステップＳ３１０肯定）には、ステップＳ３０１に戻る。一方、処理を終了する場合（ステップＳ３１０否定）には、処理を終了する。
【００９３】
また、本車両が、詳細モデル適用の対象でない場合（ステップＳ３０５否定）には、第２の選択部１６ｂは、簡略モデル２５ａを本車両に適用する計算モデルとして選択する（ステップＳ３０８）。そして、計算部１６ｃは、時刻ＴｖにΔＴｖｓを加えた時刻（Ｔｖ＋ΔＴｖｓ）を、次の計算を実行する時刻である計算対象時刻として求め（ステップＳ３０９）、ステップ３１０へ進む。
【００９４】
［実施例１の効果］
上述してきたように、本実施例に係るシミュレーション装置１０は、シミュレーション対象の複数の車両のうち、注目車両を選択する。また、本実施例に係るシミュレーション装置１０は、注目車両と、注目車両以外の各車両との位置関係に基づいて、次のような処理を行う。すなわち、本実施例に係るシミュレーション装置１０は、個々の車両ごとに、車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる簡略モデル２５ａ、詳細モデル２５ｂの中から、注目車両以外の各車両に適用する計算モデルを選択する。例えば、本実施例に係るシミュレーション装置１０は、注目車両の近傍の車両には、計算詳細度が所定値より高い計算モデルである詳細モデル２５ｂを選択する。また、本実施例に係るシミュレーション装置１０は、注目車両から離れた車両には、計算詳細度が所定値以下の計算モデルである簡略モデル２５ａを選択する。そして、本実施例に係るシミュレーション装置１０は、注目車両以外の各車両に適用する計算モデルを用いて、注目車両以外の各車両の挙動を計算するとともに、詳細モデル２５ｂを用いて注目車両の挙動を計算する。このように、本実施例によれば、シミュレーション対象の全ての車両を区別してシミュレーションを行っているので、任意のタイミングで、任意に選択した注目車両およびその周辺の車両の詳細なシミュレーションを行うことができる。
【００９５】
また、本実施例に係るシミュレーション装置１０は、注目車両との位置関係に応じて、単位時間あたりの計算量が適切となる計算モデルを各車両ごとに選択する。したがって、本実施例によれば、単純に全車両に計算詳細度が高い計算モデルを適用した場合と比較して、単位時間あたりの計算量を削減することができる。仮に、シミュレーション対象の車両の台数が１万台程度となる場合について想定する。全ての車両について、計算詳細度の高い計算モデルを用いた場合には、総計算量は、車両１００台の場合の１００倍となり、膨大なリソースが必要となる。これに対して、計算詳細度が所定値より高い計算モデルが選択される車両の台数を１００台、それ以外の約９９００台の車両は所定値より計算詳細度の低いモデルが選択される場合を想定する。このような場合に、計算詳細度の低い計算モデルの車両１台あたりの単位時間あたりの計算量が、計算詳細度の高い計算モデルの車両１台あたりの単位時間あたりの計算量の１００分の１程度になるような計算モデルをそれぞれ採用すれば、次のような結果となる。すなわち、車両１００台について計算詳細度の高い計算モデルを用いて計算する場合の２倍程度の総計算量（９９００÷１００＋１００＝１９９）で、車両１万台の挙動のシミュレーションを行うことができる。
【００９６】
広域の道路上の多数の車両のうち、模擬運転車両についての模擬視界表示に関係の無い大部分の車両については、模擬運転車両近傍の車両ほど詳細なシミュレーションを行う必要は無い場合が多い。したがって、本実施例によれば、広域の道路上の多数の車両挙動のシミュレーションをリアルタイムで行うとともに、注目車両について、高品質なドライビングシミュレーション環境を実現することが可能となる。なお、領域によって計算周期のみを変更する方法では、簡略計算による計算削減量の度合いが低いばかりでなく、長い計算周期でも安定的な計算を行える計算モデルを使用する必要がある。このため、領域によって計算周期のみを変更する方法では、短い計算周期においても短周期での振動現象などを再現することが難しいなどの問題がある。一方で、本実施例によれば、計算周期ごとに最適の計算モデルを使用することが可能であるため、かかる問題は発生しない。
【００９７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００９８】
［選択個数］
上記の実施例１では、１台の注目車両を選択する場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、１台のみならず、２台、３台など少なくとも１台以上の注目車両を選択することができる。
【００９９】
［シミュレーション］
また、上記の実施例１では、シミュレーション対象の車両の交通流シミュレーションを行うとともに、運転を模擬する運転シミュレーションを行う場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、交通流シミュレーションのみを行うことができる。
【０１００】
［計算モデル］
また、上記の実施例１では、計算詳細度が異なる２種類の計算モデルをそれぞれ、対応する車両の挙動を計算する際に用いる場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、計算詳細度が異なる３種類以上の計算モデルをそれぞれ、対応する車両の挙動を計算する際に用いることができる。この場合、例えば、注目車両と、各車両との距離に応じて、上記の実施例１と同様の原理で、各車両の挙動の計算に適した計算モデルを適用することができる。また、予め不連続で計算詳細度が異なる計算モデルを複数用いるのではなく、連続的に計算詳細度が変化する計算モデルを用いるようにしてもよい。これにより、開示の装置は、より柔軟なシミュレーションを行うことが可能となる。
【０１０１】
これらの、計算詳細度が異なる計算モデルの種類、および、それを選択するための前記第２の選択部は、個々の車両ごとに計算モデルの種類や数が異なったり、個々の車両ごとに第２の選択部が選択処理を行う際の選択基準が異なったりしても良い。例えば、大型車について適用可能な計算モデルＡ、計算モデルＢ、計算モデルＣ、小型車について適用可能な計算モデルＤ、計算モデルＥ、二輪車について適用可能な計算モデルＦ、計算モデルＧ，と言うように、車両種別ごとに計算モデルの種類や数を異ならせても良い。また例えば、大型車について計算モデルを選択する際の基準Ｘ、小型車について計算モデルを選択する際の基準Ｙ、二輪車について計算モデルを選択する際の基準Ｚ、と言うように、車両種別ごとに計算モデルを選択する際の基準を異ならせてもよい。また、第２の選択部は、実施例１で記載した基準と車両種別ごとの選択基準との両方を用いて計算モデルの選択を行っても良い。これにより、大型車や小型車、二輪車などのように車種が異なる場合に、それぞれに適した計算モデルを選択することができる。また、特定の車両について継続的に詳細シミュレーションを行う必要がある場合などに、前記注目車両との位置関係とは無関係に計算モデルを選択することができる。
【０１０２】
また、上記の実施例１では、固定モデル２４ｃを用いてドライバ状態や、運転操作状態を計算し、可変モデル２４ｂを用いて車両の内部状態や、外部状態を計算する場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、固定モデルを用いて車両の内部状態や、外部状態を計算することもできる。また、開示の装置は、可変モデルを用いてドライバ状態や、運転操作状態を計算することもできる。  
【０１０３】
［道路モデル］
また、上記の実施例１では、道路モデル２４ａを、車両が走行する道路を定義した静的なデータとする場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、道路モデル２４ａに、信号機の信号状態などのような動的なデータを含めることができる。これにより、開示の装置は、信号状態などの刻々と変化する状況に対応するシミュレーションを行うことが可能となる。
【０１０４】
［模擬視界映像］
また、上記の実施例１では、模擬視界映像を生成する視点は、注目車両に固定である場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、かかる視点を注目車両以外に設定することができる。例えば、開示の装置は、道路に対して固定した視点を設定することができる。また、車両以外の移動物に対して固定した視点を設定することができる。その場合、それらの視点を基準として、詳細モデルを適用する範囲を定めればよい。また、それらの視点は任意のタイミングで任意に変更することも可能である。
【０１０５】
［計算周期］
また、上記の実施例１では、周期ΔＴｆ、ΔＴｖｓ、ΔＴｖｐが一定の値である場合について例示したが、開示の装置はこれに限定されない。例えば、開示の装置は、状況に応じて周期ΔＴｆ、ΔＴｖｓ、ΔＴｖｐを変更することができる。これにより、開示の装置は、状況に応じた、より柔軟なシミュレーションを行うことができる。また、開示の装置は、イベントが発生したときのみ計算プログラムを実行するようにしてもよい。これにより、開示の装置は、イベントの発生に応じたシミュレーションを行うことができる。
【０１０６】
また、実施例１において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、本実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。例えば、図７ＢのステップＳ２０６、図７ＣのステップＳ３１０において、それぞれ、処理を続行するか否かを人間が判断して、判断結果を第１の入力部１１から入力してもよい。
【０１０７】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、図７Ｂに示すステップＳ２０２、図７Ｃに示すステップＳ３０２を省略することもできる。
【０１０８】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更できる。例えば、図７Ｃに示すステップＳ３０１〜３０４の処理を行う前に、ステップＳ３０５〜３１０の処理を行うこともできる。
【０１０９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す第１の選択部１６ａと第２の選択部１６ｂとが統合されてもよい。
【０１１０】
［シミュレーションプログラム］
また、上記の実施例で説明したシミュレーション装置の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図８を用いて、上記の実施例で説明したシミュレーション装置と同様の機能を有するシミュレーションプログラムを実行するコンピュータの一例を説明する。図８は、シミュレーションプログラムを実行するコンピュータを示す図である。
【０１１１】
図８に示すように、実施例２におけるコンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０とを有する。これら３００〜３４０の各部は、バス４００を介して接続される。
【０１１２】
ＲＯＭ３２０には、上記の実施例１で示す第１の選択部１６ａと、第２の選択部１６ｂと、計算部１６ｃと、生成部１６ｄと同様の機能を発揮するシミュレーションプログラム３２０ａが予め記憶される。なお、シミュレーションプログラム３２０ａについては、適宜分離しても良い。例えば、第１の選択部１６ａと、第２の選択部１６ｂと、計算部１６ｃと同様の機能を発揮するプログラムと、生成部１６ｄと同様の機能を発揮するプログラムとに分離しても良い。
【０１１３】
そして、ＣＰＵ３１０が、シミュレーションプログラム３２０ａをＲＯＭ３２０から読み出して実行する。
【０１１４】
そして、ＨＤＤ３３０には、道路モデル、可変モデル、固定モデルが設けられる。これら道路モデル、可変モデルおよび固定モデルのそれぞれは、図１に示した道路モデル２４ａと、可変モデル２４ｂと、固定モデル２４ｃのそれぞれに対応する。
【０１１５】
そして、ＣＰＵ３１０は、道路モデルと、可変モデルと、固定モデルとを読み出してＲＡＭ３４０に格納する。さらに、ＣＰＵ３１０は、ＲＡＭ３４０に格納された道路モデルデータと、可変モデルデータと、固定モデルデータとを用いて、シミュレーションプログラムを実行する。なお、ＲＡＭ３４０に格納される各データは、常に全てのデータがＲＡＭ３４０に格納される必要はなく、処理に必要なデータのみがＲＡＭ３４０に格納されれば良い。
【０１１６】
なお、上記したシミュレーションプログラムについては、必ずしも最初からＲＯＭ３２０に記憶させておく必要はない。
【０１１７】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。  
【０１１８】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１１９】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【０１２０】
（付記１）シミュレーション対象の複数の車両のうち、少なくとも１台の第１の車両を選択する第１の選択部と、
車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる複数の計算モデルの中から、前記第１の選択部により選択された第１の車両と前記第１の車両以外の複数の第２の車両との位置関係に基づいて、該複数の第２の車両に適用する計算モデルを選択する第２の選択部と、
前記第２の選択部により選択された、前記複数の第２の車両の各々の計算モデルを用いて、前記複数の第２の車両の各々の挙動を計算するとともに、前記第１の車両の挙動を計算する計算部と
を有することを特徴とするシミュレーション装置。
【０１２１】
（付記２）前記第２の選択部は、前記第１の車両から、前記第１の車両の進行方向に所定距離離れた位置を中心とする所定半径の円の領域内に存在する前記第２の車両に対しては、所定値より高い計算詳細度の計算モデルを選択し、該領域内に存在しない前記第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択する
ことを特徴とする付記１に記載のシミュレーション装置。
【０１２２】
（付記３）前記第２の選択部は、前記領域内に存在する前記第２の車両であっても、所定時間後に前記領域内に存在しないことを予測した場合には、該第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択するとともに、前記領域内に存在しない前記第２の車両であっても、前記所定時間後に前記領域内に存在することを予測した場合には、該第２の車両に対しては、前記所定値より高い計算詳細度の計算モデルを選択する
ことを特徴とする付記２に記載のシミュレーション装置。
【０１２３】
（付記４）前記第２の選択部は、前記複数の車両を複数の種類に分ける種別ごとに異なる基準を用いて前記計算モデルを選択することを特徴とする付記１に記載のシミュレーション装置。
【０１２４】
（付記５）前記第１の選択部により選択された第１の車両に対応する映像であって、運転シミュレーション用の映像を生成する生成部
をさらに有することを特徴とする付記１〜４の何れか一つに記載のシミュレーション装置。
【０１２５】
（付記６）前記計算モデルは、前記複数の車両を複数の種類に分ける種別ごとに異なっていることを特徴とする付記１に記載のシミュレーション装置。
【０１２６】
（付記７）コンピュータに、
シミュレーション対象の複数の車両のうち、少なくとも１台の第１の車両を選択し、
車両の挙動を計算するための複数の計算モデルであって、計算詳細度が各々異なる複数の計算モデルの中から、選択された第１の車両と前記第１の車両以外の複数の第２の車両との位置関係に基づいて、該複数の第２の車両に適用する計算モデルを選択し、
選択された、前記複数の第２の車両の各々の計算モデルを用いて、前記複数の第２の車両の各々の挙動を計算するとともに、前記第１の車両の挙動を計算する
処理を実行させることを特徴とするシミュレーションプログラム。
【０１２７】
（付記８）前記各第２の車両に適用する計算モデルを選択する処理は、前記第１の車両から、前記第１の車両の進行方向に所定距離離れた位置を中心とする所定半径の円の領域内に存在する前記第２の車両に対しては、所定値より高い計算詳細度の計算モデルを選択し、該領域内に存在しない前記第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択する
ことを特徴とする付記７に記載のシミュレーションプログラム。
【０１２８】
（付記９）前記各第２の車両に適用する計算モデルを選択する処理は、前記領域内に存在する前記第２の車両であっても、所定時間後に前記領域内に存在しないことを予測した場合には、該第２の車両に対しては、前記所定値以下の計算詳細度の計算モデルを選択するとともに、前記領域内に存在しない前記第２の車両であっても、前記所定時間後に前記領域内に存在することを予測した場合には、該第２の車両に対しては、前記所定値より高い計算詳細度の計算モデルを選択する
ことを特徴とする付記８に記載のシミュレーションプログラム。
【０１２９】
（付記１０）前記各第２の車両に適用する計算モデルを選択する処理は、前記複数の車両を複数の種類に分ける種別ごとに異なる基準を用いて前記計算モデルを選択することを特徴とする付記７に記載のシミュレーションプログラム。
【０１３０】
（付記１１）コンピュータに、
選択された第１の車両に対応する映像であって、運転シミュレーション用の映像を生成する処理
をさらに実行させることを特徴とする付記７〜１０の何れか一つに記載のシミュレーションプログラム。
【０１３１】
（付記１２）前記計算モデルは、前記複数の車両を複数の種類に分ける種別ごとに異なっていることを特徴とする付記７に記載のシミュレーションプログラム。
【符号の説明】
【０１３２】
１０      シミュレーション装置
１１      第１の入力部
１２      第２の入力部
１３      第１の表示部
１４      第１の記憶部
１４ａ    計算用モデル
１５      第２の記憶部
１５ａ    内部変数
１５ｂ    参照用データ
１５ｃ    注目車両情報
１６      制御部
１６ａ    第１の選択部
１６ｂ    第２の選択部
１６ｃ    計算部
１６ｄ    生成部
２１      第３の入力部
２２      第２の表示部
２４ａ    道路モデル
２４ｂ    可変モデル
２４ｃ    固定モデル
２５ａ    簡略モデル
２５ｂ    詳細モデル
２６ａ    簡易プログラム
２６ｂ    詳細プログラム
２６ｃ    固定プログラム
【図１】
0005685906.tif 000002
【図２】
0005685906.tif 000003
【図３】
0005685906.tif 000004
【図４】
0005685906.tif 000005
【図５】
0005685906.tif 000006
【図６Ａ】
0005685906.tif 000007
【図６Ｂ】
0005685906.tif 000008
【図７Ａ】
0005685906.tif 000009
【図７Ｂ】
0005685906.tif 000010
【図７Ｃ】
0005685906.tif 000011
【図８】
0005685906.tif 000012