(57)【要約】【課題】  従来のシミュレーションにおける衝突判定は、時間間隔ΔＴの大きさにより精度が依存し、また高速に移動するエンティティほど精度が悪くなるという問題点がある。【解決手段】  移動するエンティティのシミュレーション結果より、所定の時間内におけるエンティティの移動可能範囲を求め、求めた移動可能範囲の重なりから衝突する可能性のあるエンティティを抽出する衝突一次判定部と、上記所定の時間内におけるエンティティの移動経路同士が交差した場合、交差した移動経路を移動するエンティティを衝突する可能性のあるエンティティとして抽出するゼロクロッシング検出部と、エンティティ間の接近距離を算出し、接近距離と所定の閾値とを比較してエンティティ同士の衝突判定を行い、判定結果を出力する判定出力部と、を備えるシミュレーション装置である。【選択図】        図１
2009251519.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のシミュレーション装置を用い、所定の時間間隔で時刻同期させつつ分散処理を行うシミュレーション装置であって、
移動するエンティティの位置、速度、加速度を用いてシミュレーションし、そのシミュレーション結果を上記所定の時間ごとに出力するシミュレーション実行部と、
上記シミュレーション実行部より出力されたシミュレーション結果と、他のシミュレーション装置より上記所定の時間ごとに受信するエンティティのシミュレーション結果とを記憶する記憶部と、
上記記憶部より読み出した各エンティティのシミュレーション結果より、上記所定の時間内におけるエンティティの移動可能範囲を求め、求めた移動可能範囲の重なりから衝突する可能性のあるエンティティを抽出する衝突一次判定部と、
上記衝突一次判定部より抽出されたエンティティに対して、上記所定の時間内におけるエンティティの移動経路同士が交差した場合、交差した移動経路を移動するエンティティを衝突する可能性のあるエンティティとして抽出するゼロクロッシング検出部と、
上記ゼロクロッシング検出部より抽出されたエンティティに対して、エンティティ間の接近距離を算出し、上記接近距離と所定の閾値とを比較してエンティティ同士の衝突判定を行い、判定結果を出力する判定出力部と、
を備えることを特徴とするシミュレーション装置。
【請求項２】
上記記憶部に記憶されているエンティティのシミュレーション結果には、エンティティの存在する位置に応じて、地上、空中、海上、海中などの存在領域を示す属性情報が付与され、
上記衝突一次判定部は、上記記憶部より読み出した各エンティティの属性情報に基づきエンティティを分類し、分類した属性ごとに対して衝突する可能性のあるエンティティを抽出する
ことを特徴とする請求項１記載のシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、時刻同期型分散シミュレーションシステムにおいて、シミュレーションの対象物同士の衝突判定を行うシミュレーション装置に関するものである。
【背景技術】
【０００２】
車両や航空機の移動体などを対象物（以下、エンティティ）とするシミュレーションにおいて、多数のエンティティの行動を模擬するシミュレーションにおいては、複数の計算機を利用した分散シミュレーションシステムが有効である。分散シミュレーションシステムの標準的規約として、ＩＥＥＥ１５１６．１のＨＬＡ（Ｈｉｇｈ−Ｌｅｖｅｌ−Ａｒｃｈｉｔｅｃｔｕｒｅ）が知られている。
【０００３】
分散シミュレーションシステムでは、計算機間のシミュレーション事象の時間的整合性を保証するためのＨＬＡの時刻同期機能を用いて、シミュレーション時刻を同期させるとともに、計算機間でエンティティのシミュレーション結果などをやりとりする時刻同期型分散シミュレーションを実行することができる。
【０００４】
また、シミュレーション装置におけるオブジェクトの衝突判定、例えば仮想３次元空間内を移動する移動オブジェクトと仮想３次元空間内に存在する衝突対象オブジェクトとの衝突判定を行う装置は、すでに提案されている（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開平９−２２５１４３号公報（第５−１１頁、第１−１７図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで時刻同期型分散シミュレーションにおいて、エンティティのシミュレーション結果に基づき、エンティティ同士の衝突判定を行う場合、次のような問題点がある。
【０００７】
従来は、シミュレーション時刻毎に、各エンティティの位置から所定の半径内に他のエンティティが存在するか否かにより衝突判定を行っていた。その際、計算機間の時刻同期間隔ΔＴを大きくする、つまり通信頻度を少なくすると、シミュレーション完了時間を短くすることができる。しかし、一方の計算機が、他方の計算機上におけるエンティティのシミュレーション結果を入手する頻度も少なくなるため、エンティティの移動距離も大きくなり、本来衝突するはずのエンティティ同士がすれ違った状態を示すこととなり、衝突を正しく判定することが困難になる、という問題が発生する。
【０００８】
これを防ぐには、時間間隔ΔＴを小さくして、エンティティの移動距離を短くすることが考えられる。しかし、時間間隔ΔＴを小さくすることはシミュレーション時間の増大につながり望ましくない。また、エンティティが高速で移動する場合、エンティティの移動距離を小さくするには時間間隔ΔＴを更に小さくしなければならず、更なるシミュレーション時間の増大に繋がる。
【０００９】
このように、従来の衝突判定は、時間間隔ΔＴの大きさによって精度が依存し、また高速に移動するエンティティほど精度が悪くなるという問題点がある。
【００１０】
この発明は係る課題を解決するためになされたものであり、時間間隔ΔＴの大きさやエンティティの移動速度に依存せず、一定の精度での衝突判定を行えるようにしたことを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係るシミュレーション装置は、
ネットワークを介して接続された複数のシミュレーション装置を用い、所定の時間間隔で時刻同期させつつ分散処理を行うシミュレーション装置であって、
移動するエンティティの位置、速度、加速度を用いてシミュレーションし、そのシミュレーション結果を上記所定の時間ごとに出力するシミュレーション実行部と、
上記シミュレーション実行部より出力されたシミュレーション結果と、他のシミュレーション装置より上記所定の時間ごとに受信するエンティティのシミュレーション結果とを記憶する記憶部と、
上記記憶部より読み出した各エンティティのシミュレーション結果より、上記所定の時間内におけるエンティティの移動可能範囲を求め、求めた移動可能範囲の重なりから衝突する可能性のあるエンティティを抽出する衝突一次判定部と、
上記衝突一次判定部より抽出されたエンティティに対して、上記所定の時間内におけるエンティティの移動経路同士が交差した場合、交差した移動経路を移動するエンティティを衝突する可能性のあるエンティティとして抽出するゼロクロッシング検出部と、
上記ゼロクロッシング検出部より抽出されたエンティティに対して、エンティティ間の接近距離を算出し、上記接近距離と所定の閾値とを比較してエンティティ同士の衝突判定を行い、判定結果を出力する判定出力部と、
を備えることを特徴とするものである。
【発明の効果】
【００１２】
本発明によれば、時間間隔ΔＴを大きくしてもエンティティの相対速度を用いたエンティティ同士の接近距離の算出を行うことにより、時間間隔ΔＴの大きさやエンティティの移動速度に依存することなく、一定の精度での衝突判定を行うことができる。また時間間隔ΔＴの大きさに依存しないため、ΔＴを小さくする必要がなく、シミュレーションに要する時間を削減することが可能となる。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
以下、図を用いてこの発明に係る実施の形態１について説明する。図１は、本発明のシミュレーション装置に関するブロック図を示す。シミュレーション装置は、衝突判定部１１と、記憶部１５と、シミュレーション実行部１６より構成されている。また衝突判定部１１は、衝突一次判定部１２と、ゼロクロッシング検出部１３と、判定出力部１４より構成されている。
【００１４】
衝突一次判定部１２は、衝突判定のために入力したエンティティのシミュレーション結果に対して、シミュレーション結果に含まれる属性情報、及びシミュレーション結果より算出した最大移動距離をもとに衝突判定一次候補を抽出する。ゼロクロッシング検出部１３は、衝突判定一次候補として抽出されたエンティティに対して、エンティティの移動経路が交差するか否かにより衝突判定二次候補を抽出する。判定出力部１４は、衝突判定二次候補として抽出されたエンティティに対して衝突判定を行い、判定結果を出力する。
【００１５】
本発明のシミュレーション装置は、ネットワークを介して他のシミュレーション装置と接続されている。シミュレーション装置は、他のシミュレーション装置とともにシミュレーション時刻を同期させつつ分散処理を行う時刻同期型分散シミュレーションシステムを構成する。シミュレーション時刻の同期は、時間間隔ΔＴ毎に行う。ここで時間間隔ΔＴは、シミュレーション時刻Ｔｎ−１とＴｎとの差分である。
【００１６】
シミュレーション装置同士は、時間間隔ΔＴごとに、お互いに通信を行い、シミュレーションに必要な情報等をやりとりする。シミュレーションに必要な情報には、シミュレーションの対象物であるエンティティに関するシミュレーション結果なども含まれる。
【００１７】
本発明のシミュレーション装置において、エンティティ同士の衝突判定を行う場合は、例えば、シミュレーション装置内にある記憶部１５にて記憶させたエンティティに関する情報を読み出し、衝突判定部１１に入力する。ここで記憶部１５に記憶させるエンティティに関する情報は、本発明のシミュレーション装置でのシミュレーション実行部１６により得られたシミュレーション時刻ごとのエンティティの位置、速度、加速度を含むシミュレーション結果、及び通信により他のシミュレーション装置によりシミュレーション時刻ごと、つまり時間間隔ΔＴごとに受信したシミュレーション結果である。
【００１８】
シミュレーション実行部１６は、移動するエンティティに対して、位置、速度、加速度等を用いてシミュレーションを実行し、シミュレーション結果を上記時間間隔ごとに出力する。なお、シミュレーション実行部１６には、判定出力部１４より出力される判定結果を反映させて、衝突判定以外に行うシミュレーションを実行してもよい。またシミュレーション実行部１６は、衝突一次判定部１２とゼロクロッシング検出部１３と判定出力部１４とを含んで、衝突判定を含めたシミュレーションを実行させてもよい。
【００１９】
またシミュレーション装置における衝突判定部１１やシミュレーション実行部１６は、例えばプログラムとして予めシミュレーション装置に記憶させておき、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）により、衝突判定部１１やシミュレーション実行部１６に関するプログラムを読み出し実行させればよい。
【００２０】
図２は、実施の形態１における衝突一次判定部１２の処理内容について示している。ここで記憶部１５から読み出した各エンティティのシミュレーション結果には、自ら存在する位置に応じて地上、空中、海上、海中などの存在領域を示す属性情報が付与されている。
【００２１】
例えば、地上の車両を示すエンティティには地上、空中の航空機を示すエンティティには空中、海上の艦船を示すエンティティには海上、海中の潜水艦を示すエンティティには海中というように属性が付与されている。
【００２２】
異なる属性を示すエンティティは衝突する可能性が低く、同じ属性を示すエンティティは衝突する可能性が高い。従って、衝突一次判定部１２は、記憶部１５より読み出した各エンティティを属性毎に分類し、衝突する可能性のあるエンティティを抽出する。なお図２に示す４つのエンティティＡ，Ｂ，Ｃ，Ｄは、同一の属性とする。
【００２３】
図２に示す各エンティティの位置は、シミュレーション時刻Ｔｎ−１における位置である。エンティティＡの次のシミュレーション時刻Ｔｎにおける移動可能範囲２１は、シミュレーション時刻Ｔｎ−１におけるエンティティＡの速度と加速度及び時間間隔ΔＴにより求めた最大移動距離を半径ｒＡとする円の内部である。同様に、エンティティＢの移動可能範囲２２は最大移動距離を半径ｒＢとする円の内部であり、エンティティＣの移動可能範囲２３は最大移動距離を半径ｒＣとする円の内部であり、エンティティＤの移動可能範囲２４は最大移動距離を半径ｒＤとする円の内部である。
【００２４】
また、シミュレーション時刻Ｔｎ−１におけるエンティティＡとエンティティＢとの距離をｒＡＢ、エンティティＡとエンティティＣとの距離をｒＡＣ、エンティティＡとエンティティＤとの距離をｒＡＤなどとする。距離ｒＡＢ、距離ｒＡＣ、距離ｒＡＤは、入力された各エンティティのシミュレーション結果に含まれる位置より算出できる。
【００２５】
図２より、距離ｒＡＢと比較してｒＡ＋ｒＢの方が大きいことがわかる。これは、図２に示すようにエンティティＡとエンティティＢとの円が重なる、つまりエンティティＡとエンティティＢとが衝突する可能性があることを示している。
【００２６】
また図２より、距離ｒＡＣと比較してｒＡ＋ｒＣの方が小さいことがわかる。これは、図２に示すようにエンティティＡとエンティティＣとの円が重ならない、つまりエンティティＡとエンティティＣとが衝突する可能性がないことを示している。その他の場合も、同様にして衝突の可能性を判断することができる。
【００２７】
従って、図２に示されるように、衝突一次判定部１２では、求めた移動可能範囲の重なりからエンティティＡとエンティティＢとが衝突する可能性があると判断し、衝突判定一次候補のエンティティとして抽出する。
【００２８】
図３は、実施の形態１におけるゼロクロッシング検出部１３の処理内容について示している。ゼロクロッシング検出部１３での判定対象となるエンティティは、衝突一次判定部１２にて衝突判定一次候補として抽出されたエンティティであり、実施の形態１の場合はエンティティＡとエンティティＢである。
【００２９】
図３（ａ）は、シミュレーション時刻Ｔｎ−１からシミュレーション時刻Ｔｎへ経過する際、エンティティＡとエンティティＢが交差したことを示す図である。シミュレーションでは、エンティティＡとエンティティＢとが交差したことを判定するため、図３（ｂ）に示すようにゼロクロッシング検出を用いる。
【００３０】
図３（ｂ）において、シミュレーション時刻Ｔｎ−１におけるエンティティＡの速度ベクトルをＶａ、エンティティＡを基準としたエンティティＢの位置ベクトルをＱａ、シミュレーション時刻ＴｎにおけるエンティティＡの速度ベクトルをＶａ´、エンティティＡを基準としたエンティティＢの位置ベクトルをＱａ´とする。ここで図３（ｂ）に示すように、ゼロクロッシング検出を行う際、エンティティＢの位置は固定しており、例えばＴｎ−１におけるエンティティＢの位置であってよい。
【００３１】
シミュレーション時刻Ｔｎ−１におけるエンティティＡの速度ベクトルＶａとエンティティＢの位置ベクトルＱａとのなす角θは、図３（ｂ）に示すように９０°以下であるため、エンティティＡの速度ベクトルＶａとエンティティＢの位置ベクトルＱａとの内積Ｖａ・Ｑａの符号は正である。
【００３２】
一方、シミュレーション時刻ＴｎにおけるエンティティＡの速度ベクトルＶａ´とエンティティＢの位置ベクトルＱａ´とのなす角θ´は、図３（ｂ）に示すように９０°を超えているため、エンティティＡの速度ベクトルＶａ´とエンティティＢの位置ベクトルＱａ´との内積Ｖａ´・Ｑａ´の符号は負である。
【００３３】
従って、シミュレーション時刻Ｔｎ−１でのベクトルの内積Ｖａ・Ｑａの符号と、シミュレーション時刻Ｔｎでのベクトルの内積Ｖａ´・Ｑａ´との符号が反転している、つまりゼロクロッシングが発生していることにより、時間間隔ΔＴにおけるエンティティＡの移動経路とエンティティＢ移動経路とが交差したと判定する。
【００３４】
図３の場合、ゼロクロッシング検出方法により、所定の時間内にエンティティＡの移動経路とエンティティＢの移動経路とが交差したと判定するため、エンティティＡとエンティティＢは衝突する可能性があると判断する。よって、エンティティＡとエンティティＢを衝突判定二次候補として抽出する。
【００３５】
図４は、実施の形態１における判定出力部１４の処理内容について示している。判定出力部１４での判定対象となるエンティティは、ゼロクロッシング検出部１３にて衝突判定二次候補として抽出されたエンティティであり、実施の形態１の場合は、エンティティＡとエンティティＢである。
【００３６】
判定出力部１４においてエンティティ同士の衝突判定を行う方法として、エンティティ同士の最接近点（Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ  ｏｆ  Ａｐｐｒｏａｃｈ：以下、ＣＰＡ）を算出して判定する衝突判定方法を用いる。
【００３７】
図４（ａ）と図４（ｂ）は、ＣＰＡを用いた衝突判定方法を示す図であり、図４（ｂ）は、図４（ａ）に記載されている白抜き矢印より見た図を示している。
【００３８】
図４（ａ）において、Ｌ１はエンティティＡがシミュレーション時刻Ｔｎ−１からＴｎにおいて移動する経路（以下、経路Ｌ１）を、Ｌ２はエンティティＢがシミュレーション時刻Ｔｎ−１からＴｎにおいて移動する経路（以下、経路Ｌ２）を示している。またｄは、経路Ｌ１と経路Ｌ２との最短距離を示している。
【００３９】
図４（ｂ）において、Ｖａはシミュレーション時刻Ｔｎ−１におけるエンティティＡの速度ベクトル、Ｖｂはシミュレーション時刻Ｔｎ−１におけるエンティティＢの速度ベクトルを示している。また４１はエンティティＡとエンティティＢとの相対速度ベクトル（以下、相対速度ベクトル）を示す。
【００４０】
シミュレーション時刻Ｔｎ−１におけるエンティティＢの位置から相対速度ベクトル４１の方向に沿って直線を引く。この直線に対してシミュレーション時刻Ｔｎ−１におけるエンティティＡの位置から下ろした垂線の足をＣＰＡと呼ぶ（以下、ＣＰＡ４２）。つまりＣＰＡ４２は、エンティティＡを基準としたエンティティＢの相対位置である。よってＣＰＡ４２は、シミュレーション時刻Ｔｎ−１におけるエンティティＡの位置と相対速度ベクトル４１より算出する。
【００４１】
次に、シミュレーション時刻Ｔｎ−１におけるエンティティＡの位置とＣＰＡ４２間の距離であるＲｃｐａを算出する。エンティティＡ及びエンティティＢが等速直線運動をするとみなせる場合、ＲｃｐａはエンティティＡとエンティティＢの間の最接近距離を正しく表す。すなわちエンティティＡとエンティティＢとの異なる移動速度を考慮した最接近距離を表しており、Ｒｃｐａ≧ｄ（経路間の最短距離）となる。
【００４２】
判定出力部１４には、例えば、所定の閾値として衝突判定距離Ｒを予め設定しておく。Ｒｃｐａが衝突判定距離Ｒより小さいまたは等しい場合、つまりＲｃｐａ≦Ｒが成立する場合、エンティティＡとエンティティＢはシミュレーション時刻Ｔｎ−１からシミュレーション時刻Ｔｎの間に衝突すると判定する。一方、Ｒｃｐａが衝突判定距離Ｒより大きい場合、つまりＲ＜Ｒｃｐａが成立する場合、エンティティＡとエンティティＢはシミュレーション時刻Ｔｎ−１からシミュレーション時刻Ｔｎの間に衝突しないと判定する。そして判定出力部１４は、エンティティの衝突判定結果を出力する。
【００４３】
このように、時間間隔ΔＴを大きくしてもエンティティの相対速度を用いたエンティティ同士の接近距離の算出を行うことにより、時間間隔ΔＴの大きさやエンティティの移動速度に依存することなく、一定の精度での衝突判定を行うことができる。また時間間隔ΔＴの大きさに依存しないため、ΔＴを小さくする必要がなく、シミュレーションに要する時間を削減することが可能となる。
【００４４】
またエンティティ同士の衝突判定を行うまでに、エンティティの存在領域を示す属性や最大移動距離やゼロクロッシング検出を用いて衝突する可能性があるエンティティの候補を絞りこむことにより、衝突判定を行う演算量を削減することができる。
【００４５】
なお衝突一次判定部１２において衝突判定一次候補のエンティティを抽出する際、エンティティの最大移動距離の和に基づいて抽出したが、予め閾値として所定の距離を設定し、シミュレーション時刻Ｔｎ−１におけるエンティティ間の距離が所定の距離より小さい場合、一次候補として抽出するようにしてもよい。その際、閾値としての所定の距離は、各エンティティにおける速度のうち最大である速度と時間間隔ΔＴとの積としてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明のシミュレーション装置に関するブロック図を示す。
【図２】本発明の実施の形態１における衝突一次判定部１２の処理内容について示している。
【図３】本発明の実施の形態１におけるゼロクロッシング検出部１３の処理内容について示している。
【図４】本発明の実施の形態１における判定出力部１４の処理内容について示している。
【符号の説明】
【００４７】
１１．衝突判定部
１２．衝突一次判定部
１３．ゼロクロッシング検出部
１４．判定出力部
１５．記憶部
１６．シミュレーション実行部
２１．エンティティＡの移動可能範囲
２２．エンティティＢの移動可能範囲
２３．エンティティＣの移動可能範囲
２４．エンティティＤの移動可能範囲
４１．エンティティＡとエンティティＢとの相対速度ベクトル
４２．ＣＰＡ
【図１】
2009251519.tif 000003
【図２】
2009251519.tif 000004
【図３】
2009251519.tif 000005
【図４】
2009251519.tif 000006