(57)【要約】  衝突判定装置は、第一の物体の形状を表現したボクセルモデルについて着目セルを指定する着目セル指定部と、着目セルについて判定対象点群を発生させる判定対象点発生部１０３と、判定対象点の移動軌跡曲線である空間曲線を生成する空間曲線生成部１０４と、第二の物体の形状を表現した境界表現モデルの各境界要素と空間曲線との間の交差の有無を判定する曲線交差判定部１０５と、境界表現モデルの境界面に対する空間曲線の最近接距離を算出する距離算出部と、判定結果と、算出結果に基づき両物体間の衝突の可能性を判定する衝突判定部と、を備える。
2010082378.tif 000002
【特許請求の範囲】
【請求項１】
第一の物体に固定した座標系で定義されるボクセルモデルで前記第一の物体の形状を表現したボクセルモデルデータと、第二の物体に固定した座標系で定義される境界表現モデルで前記第二の物体の形状を表現した境界表現モデルデータと、を格納する形状データ記憶部と、
前記ボクセルモデルを構成するセルから、衝突判定を行う着目セルを指定する着目セル指定部と、
前記着目セルについて、衝突判定のための判定対象点群を発生させる判定対象点発生部と、
前記第一の物体の前記第二の物体に対する相対的な剛体移動を前記判定対象点群のそれぞれに適用して該判定対象点の移動軌跡曲線である空間曲線を生成する空間曲線生成部と、
前記境界表現モデルの各境界要素と前記空間曲線との間の交差の有無を判定する曲線交差判定部と、
前記曲線交差判定部による判定の結果、前記空間曲線がいずれの境界要素とも交差しない場合は、前記境界表現モデルの境界面に対する前記空間曲線の最近接距離を算出する距離算出部と、
前記曲線交差判定部による判定結果と、前記距離算出部による算出結果に基づき両物体間の衝突の可能性を判定する衝突判定部と、を備えることを特徴とする衝突判定装置。
【請求項２】
前記距離算出部は、前記曲線交差判定部による判定の結果、前記空間曲線と前記境界表現モデルのいずれかの境界要素とが交差する場合には、前記空間曲線の前記境界表現モデルに対する最奥距離を算出することを特徴とする請求項１に記載の衝突判定装置。
【請求項３】
前記曲線交差判定部は、前記空間曲線と前記境界表現モデルのいずれかの境界要素とが交差する場合には、交差位置に対応する空間曲線のパラメータを算出することを特徴とする請求項１または２に記載の衝突判定装置。
【請求項４】
前記ボクセルモデルデータは、ツリー階層による空間分割格子の各格子点をサンプル点とし、各サンプル点の第一の物体の形状の境界までの符号付き距離に基づいて形状を表現する適応的サンプル距離フィールドを用いて表現され、
前記判定対象点発生部は、前記着目セルのコーナーに位置する格子点または中心に位置する格子点を前記判定対象点群として発生させ、
前記衝突判定部は、曲線交差判定部による判定結果、前記距離算出部による算出結果、および前記判定対象点の距離フィールドの値に基づいて衝突の可能性を判定し、
前記着目セル指定部は、前記着目セルの衝突の可能性を判定できない場合は、より下位階層のセルを新たな着目セルに指定することを特徴とする請求項１〜３のいずれか１つに記載の衝突判定装置。
【請求項５】
前記ツリー階層の最下層の末端セルを着目セルとしても衝突の可能性を判定できない場合に、前記末端セルを前記ボクセルモデルの次元に応じてオクト分割またはクワッド分割し、分割された着目セルについて、前記衝突判定部に衝突の可能性を判定させる衝突判定制御部をさらに備えることを特徴とする請求項４に記載の衝突判定装置。
【請求項６】
前記衝突判定制御部は、前記衝突判定部が衝突の可能性を判定できるまで、前記着目セルの分割を繰り返し、分割された着目セルが所定の許容マージンよりも小さくなった時点で前記着目セルの分割を打ち切り、
前記衝突判定部は、前記着目セルの分割が打ち切られた場合には、衝突の可能性ありと判定することを特徴とする請求項５に記載の衝突判定装置。
【請求項７】
第一の物体に固定した座標系で定義され、前記第一の物体の形状を表現するボクセルモデルを構成するセルから、衝突判定を行う着目セルを指定するステップと、
前記着目セルについて、衝突判定のための判定対象点群を発生させるステップと、
前記第一の物体の第二の物体に対する相対的な剛体移動を前記判定対象点群のそれぞれに適用して該判定対象点の移動軌跡曲線である空間曲線を生成するステップと、
第二の物体に固定した座標系で定義され、前記第二の物体の形状を表現する境界表現モデルの各境界要素と前記空間曲線との間の交差の有無を判定するステップと、
前記曲線交差判定部による判定の結果、前記空間曲線がいずれの境界要素とも交差しない場合は、前記境界表現モデルの境界面に対する前記空間曲線の最近接距離を算出するステップと、
前記曲線交差判定部による判定結果と、前記距離算出部による算出結果に基づき両物体間の衝突の可能性を判定するステップと、をコンピュータに実行させることを特徴とする衝突判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、二次元または三次元の空間内を移動する物体間の衝突の有無を判定する衝突判定装置および衝突判定プログラムに係り、特に工作機械による切削加工のシミュレーション装置において、工作機械の機構部品とワークとの間の衝突を検出する衝突判定装置および衝突判定プログラムに関するものである。【０００２】
移動する物体間の衝突事象を扱う際、それぞれの物体がともに移動する場合は、一方の物体から見た他方の物体の相対移動を考え、静止物体と移動物体との間の衝突事象に帰着させることができる。本明細書においても、以下、静止物体と移動物体との間の衝突事象として取り扱う。【０００３】
このような物体間の衝突を検出する手法として、移動物体側の形状をその移動軌跡に沿ってスイープさせたスイープ形状を作成して、スイープ形状と静止物体側の形状との間で交差の有無を判定する方法（以下、スイープ法）がある。また、移動の開始から終了までを適当な間隔で分割した瞬間ごとの移動物体および静止物体の形状間の交差の有無を判定する方法（以下、時分割法）がある。両手法の基本的違いは、物体移動という時間軸に沿った連続的な事象を、連続のまま扱うか、離散化して扱うか、という点にある。【０００４】
しかしながら、スイープ法は、任意形状の任意移動によるスイープ形状を作成すること、特に、位置変化だけでなく姿勢変化も伴う一般の剛体移動に対するスイープ形状を作成することに汎用的かつ効率的な手法がない。すなわち、スイープ法は、移動物体側の形状の種類や移動の種類を限定した特定ケースでなければ、適用しにくいという問題がある。また、複雑な形状となったスイープ形状と静止物体形状との交差判定の計算コストも高くなりやすく、あまり実用には供されていない。【０００５】
時分割法は、スイープ法よりは概して計算コストが低いと言われているが、分割の間隔を細かく取ると、交差判定の回数が増え、全体の計算コストが無視できないものとなる。一方、分割の間隔を粗く取ると、すり抜けによって衝突検出漏れの可能性が高くなってしまうという問題がある。【０００６】
そこで従来は、時分割法をベースとし、１回当たりの交差判定の計算コストを抑えることに注力され、そのような方法の一つに例えば特許文献１に記載された方法がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１１４８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の方法では、時分割法をベースとしているため、上述した粗い分割でのすり抜けによる衝突検出漏れや密な分割での全体計算コストの増大の問題は依然として解消されていない。また、判定対象となる両物体の形状は、ともに空間格子モデルの形式で定義されるため、コンピュータでの処理にあたり大きなメモリ量を必要とする。この問題は特に三次元形状を扱う場合に深刻となる。【０００９】
工作機械の切削加工シミュレーション分野では、衝突判定対象の一方の物体であるワークは加工の進行とともに形状が変化し加工途中段階では複雑な形状を呈するため、位相構造の制約条件がないボクセルモデルなどの空間格子モデルでワークの形状を表現しておくことが多い。しかしながら、衝突判定対象のもう一方の物体である工作機械の機構部品は、衝突判定のためだけに空間格子モデルで表現するのは、上記メモリ量のペナルティが大きすぎて実用には適さない。【００１０】
本発明は、上記に鑑みてなされたものであって、衝突検出漏れのおそれを減らしつつ、計算コストの高い処理を不要とし、少ないデータメモリ量の下で高速かつ確実な衝突判定を行うことのできる衝突判定装置および衝突判定プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記課題を解決するために本発明の衝突判定装置は、第一の物体の形状を第一の物体に固定した座標系で定義されるボクセルモデルで表現したボクセルモデルデータと、第二の物体の形状を第二の物体に固定した座標系で定義される境界表現モデルで表現した境界表現モデルデータと、を格納する形状データ記憶部と、ボクセルモデルを構成するセルから、衝突判定を行う着目セルを指定する着目セル指定部と、着目セルについて、衝突判定のための判定対象点群を発生させる判定対象点発生部と、第一の物体の第二の物体に対する相対的な剛体移動を判定対象点群のそれぞれに適用して判定対象点の移動軌跡曲線である空間曲線を生成する空間曲線生成部と、境界表現モデルの各境界要素と空間曲線との間の交差の有無を判定する曲線交差判定部と、曲線交差判定部による判定の結果、空間曲線がいずれの境界要素とも交差しない場合は、境界表現モデルの境界面に対する空間曲線の最近接距離を算出する距離算出部と、曲線交差判定部による判定結果と、距離算出部による算出結果に基づき両物体間の衝突の可能性を判定する衝突判定部と、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明の衝突判定装置では、物体間の衝突の可能性の判定を、境界表現モデルの境界要素と判定対象点の移動軌跡曲線との交差判定によって行うことで、物体の移動という時間軸に沿った連続的な事象をそのまま扱うため、時分割法に見られるすり抜けによる衝突検出漏れの可能性を排除することができるという効果を奏する。また、移動物体のスイープ形状を作成する必要がないことと、上記の移動曲線に対する交差判定は曲線パラメータに関する一元の方程式に帰着させて扱えることから演算量を少なくすることができ、高速な衝突判定が可能になる。さらに、衝突判定の対象となる一方の物体の形状は境界表現モデルで表現されるため、機械部品のような少数の構成面から成る形状の場合は、少ないデータ量で衝突判定が行えるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の衝突判定装置の実施の形態の構成図である。
【図２】図２は、本発明の衝突判定方法の基本原理を説明するための図である。
【図３】図３は、本発明の衝突判定手順を説明するためのフローチャートである。
【図４】図４は、本発明の衝突判定手順をさらに補足説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
実施の形態１．
以下に、本発明にかかる衝突判定装置および衝突判定プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
図１は、本発明にかかる衝突判定装置の概略構成を示すブロック図である。図１において、衝突判定装置１００は、衝突判定制御部１０１、形状データ記憶部１０２、判定対象点発生部１０３、空間曲線生成部１０４、曲線交差判定部１０５と、を有して構成されている。形状データ記憶部１０２には、衝突判定対象となる第一の物体の形状を、第一の物体に固定した座標系で定義したボクセルモデルで表現したボクセルモデルデータ１０６が格納される。また、形状データ記憶部１０２には、衝突判定対象となる第二の物体の形状を、第二の物体に固定した座標系で定義した境界表現モデルで表現した境界表現モデルデータ１０７が格納保持される。また、第一の物体の第二の物体に対する相対的な剛体移動を表す剛体移動データ１０８が、衝突判定装置１００の外部で準備され空間曲線生成部１０４に入力される。
【００１６】
ここで、本発明にいうボクセルモデルとは、二次元または三次元の空間領域で、一様間隔に取った格子またはクワッド分割やオクト分割などの階層ツリー管理された格子の各格子点での物理量を表現したモデルである。形状を表現する場合には、表現対象形状に対する格子点での内外識別情報や表現対象形状の境界までの符号付き距離などの情報を物理量として含むモデルを指す。また、ボクセルモデルにおいて、所定の間隔で隣接する格子点をコーナー点とする正方形または立方体領域を「セル」と呼び、階層ツリー管理されたボクセルモデルにおいては最下層の最小セルを「末端セル」、中間階層のセルを「中間ノードセル」と呼ぶことにする。
【００１７】
また、本発明にいう境界表現モデルとは、一般にBoundary-RepresentationモデルまたはB-Repsモデルと呼ばれ、形状を向き付けされた境界要素の集合体とそれら間の隣接位相構造で表すことを基本とした形状表現モデルである。境界要素は、二次元形状においては境界線を構成する辺、三次元形状においては境界面を構成する面を指す。
【００１８】
なお、本実施の形態１では、形状データ記憶部１０２に格納保持されるボクセルモデルデータ１０６として、Frisken他による「Adaptively  Sampled  Distance  Fields:  A  General  Representation  of  Shape  for  Computer  Graphics」、Proc．SIGGRAPH2000，pp．249〜254，2000において述べられている適応的サンプル距離フィールドを採用する。適応的サンプル距離フィールドは、形状表現対象物が置かれた空間をスカラー場の一種である距離フィールド（距離場、きょりば、とも言われる）として表現する手法および表現モデルの一種で、空間の次元に応じてクワッド分割またはオクト分割で階層ツリー管理された格子点で表現対象形状の境界までの符号付き距離をサンプリングし、サンプリング点以外の任意の空間座標点での距離フィールドの値を補間等の方法によって復元できるようにしたものである。
【００１９】
以下、各部の動作について説明する。なお、本発明は衝突判定対象となる物体の形状が二次元であるか三次元であるかを問わないが、記述を簡潔にするため本実施の形態１では、三次元の形状を念頭に置いて説明する。
【００２０】
衝突判定制御部１０１は、衝突判定装置１００外部からの衝突判定リクエストを受け、第二の物体との衝突判定の候補となる候補セル群をボクセルモデルデータ１０６から特定する。衝突判定制御部１０１は、候補セル群の個々のセルについて、判定対象点発生部１０３、空間曲線生成部１０４、曲線交差判定部１０５の各部を順に指令し、交差判定を行わせる。衝突判定制御部１０１は、曲線交差判定部１０５で行われた交差判定結果に基づき、第一の物体と第二の物体との間の衝突の可能性を判定し、所定の許容マージンの下で衝突の有無が確定するまでこれら各部に指令する処理を繰り返す。すなわち、衝突判定制御部１０１は、両物体の衝突の可能性を判定する衝突判定部としても機能する。なお、その詳細な動作内容については後述する。
【００２１】
判定対象点発生部１０３は、衝突判定制御部１０１からの指令を受けて動作する。本実施の形態１においては、判定対象点発生部１０３は、衝突判定制御部１０１から指定された個々のセルのコーナーに位置する点を判定対象点として発生させる。また、本実施の形態１においては、判定対象点発生部１０３は、末端セルに対して、その占有立方領域を再帰的にオクト分割した部分立方領域のコーナーおよび中心に位置する点も判定対象点として発生させるように構成されている。なお、セルの中心に判定対象点を発生させてもよい。
【００２２】
空間曲線生成部１０４は、判定対象点発生部１０３が発生させた判定対象点と剛体移動データ１０８とから、剛体移動データ１０８に基づいて判定対象点を移動させてできる移動軌跡曲線を表す空間曲線を生成する。剛体移動データ１０８は、一般的な剛体移動に対しては、時刻または時刻に等価なパラメータ（ｓとする）を変数とする回転移動と並進移動の組み合わせで表現したデータで、具体的には、各成分がパラメータｓの関数となる３×３の回転行列Ｒ（ｓ）と並進ベクトルＴ（ｓ）のペアで記述される。生成される空間曲線データは、判定対象点をＰとするとき、Ｃ（ｓ）＝［Ｃｘ（ｓ），Ｃｙ（ｓ），Ｃｚ（ｓ）］Ｔ＝Ｒ（ｓ）・Ｐ＋Ｔ（ｓ）、として記述される。なお、剛体移動データ１０８を、４×４の同次座標変換行列Ｍ（ｓ）や、これらパラメトリックな表現が導出可能な任意の形式であってもよい。
【００２３】
曲線交差判定部１０５は、空間曲線生成部１０４が生成した空間曲線と境界表現モデルデータ１０７の各構成面の曲面データとから、稜線で囲まれた領域内で空間曲線と構成面とが交差するか否かを判定する。具体的には、構成面の曲面データがｕ、ｖを２変数とするパラメトリックな表現：Ｓ（ｕ，ｖ）＝［Ｓｘ（ｕ，ｖ），Ｓｙ（ｕ，ｖ），Ｓｚ（ｕ，ｖ）］Ｔで与えられる場合は、三元連立方程式：Ｓ（ｕ，ｖ）＝Ｃ（ｓ）が曲線パラメータｓの定義域内と構成面の領域内で解を持つかどうかを調べればよい。一方、曲面データが陰関数：Ｆ（Ｘ，Ｙ，Ｚ）＝０で与えられる場合は、一元の方程式：Ｆ（Ｃｘ（ｓ），Ｃｙ（ｓ），Ｃｚ（ｓ））＝０が曲線パラメータｓの定義域内と構成面の領域内で解を持つかどうかを調べればよい。
【００２４】
曲線交差判定部１０５は、さらに、上記交差判定で空間曲線が境界表現モデルデータ１０７のいずれの構成面とも交差しない場合には、境界表現モデルデータ１０７の境界面に対する空間曲線の最近接距離を計算する処理を行う。また、本実施の形態１においては、曲線交差判定部１０５は、さらに、上記交差判定で空間曲線が境界表現モデルデータ１０７のいずれかの構成面と交差する場合には、衝突判定制御部１０１の要求に応じて、境界表現モデルデータ１０７の境界面に対して空間曲線が奥になる地点での境界面までの距離である最奥距離を計算するように構成されている。すなわち、曲線交差判定部１０５は、最近接距離および最奥距離を算出する距離算出部としても機能する。
【００２５】
ここで、最近接距離および最奥距離は、点と境界面との間の最短距離を、形状外部を正、内部を負とする符号付き距離で考えた場合に、空間曲線上で符号付き距離が最小となる地点での距離として求められる。
【００２６】
次に、衝突判定制御１０１における動作の詳細について説明する。まず、本発明における衝突判定方法の基本原理について説明する。図２は、衝突判定方法の基本原理を説明するための図である。図２（ａ）において、ボクセルモデル２０１を構成するセル群のうち、セル２０２のようにボクセルモデル２０１の境界面がセル内を横切るものは境界セルと呼ばれる。衝突の有無が判定されるセルを着目セルと呼ぶ。着目セルは、衝突判定制御部１０１によって指定される。すなわち、衝突判定制御部１０１は、着目セル指定部としても機能する。
【００２７】
以下、セル２０２を着目セルとした場合の衝突の有無の判定を説明する。図２（ｂ）に示したセル２０２の拡大図において、白丸で示した外部コーナー点２０４はボクセルモデル２０１の外部に位置し、黒丸で示した内部コーナー点２０５はボクセルモデル２０１の内部に位置する。なお、境界表現モデル２０３は、衝突判定対象となる第二の物体の形状である。
【００２８】
ボクセルモデル２０１が境界表現モデル２０３から見て相対移動する場合、これらコーナー点は図２（ｂ）の矢印２０６および矢印２０７のような軌跡を描く。これらの移動軌跡曲線が空間曲線として表されている。そして、移動軌跡曲線と境界表現モデルの構成面との間の交差状況を調べることにより、ボクセルモデル２０１と境界表現モデル２０３とがセル２０２の領域で衝突する可能性があるか否かを、以下の条件にしたがって判定することができる。
【００２９】
条件１：セル２０２のいずれかの内部コーナー点の移動軌跡曲線（たとえば、内部コーナー点２０５の移動軌跡曲線２０７）が境界表現モデル２０３の構成面のいずれかと交差する場合は、セル２０２の全コーナー点についての構成面との交差判定結果を待たずとも、ボクセルモデル２０１はセル２０２の領域で境界表現モデル２０３と明らかに衝突する。
【００３０】
条件２：内部コーナー点か外部コーナー点かを問わず、セル２０２のいずれかのコーナー点の移動軌跡曲線が、境界表現モデル２０３のいずれの構成面とも交差せず、かつ、境界表現モデル２０３の境界面に対する移動軌跡曲線の最近接距離が後述する基準値よりも長い場合は、セル２０２の全コーナー点についての構成面との交差判定結果を待たずとも、ボクセルモデル２０１はセル２０２の領域で境界表現モデル２０３と明らかに衝突しない。
【００３１】
条件３：セル２０２のいずれかの外部コーナー点の移動軌跡曲線（たとえば、外部コーナー点２０４の移動軌跡曲線２０６）が境界表現モデル２０３の構成面のいずれかと交差し、かつ、境界表現モデル２０３の境界面に対する移動軌跡曲線の最奥距離が後述する基準値よりも長い場合は、セル２０２の全コーナー点についての構成面との交差判定結果を待たずとも、ボクセルモデル形状はセル２０２の領域で境界表現モデル２０３と明らかに衝突する。
【００３２】
上記条件１〜３のいずれにも合致しない場合は、衝突の有無が判断できない場合となる。この場合、セル２０２が中間ノードセルであれば、一階層下の子セルを着目セルとして、再帰的に上記条件に基づく判定を繰り返せばよい。セル２０２が末端セルの場合は、本実施の形態１のように適応的サンプル距離フィールドを採用したボクセルモデルであればセル内の任意の点での距離フィールド値の符号から点の内外を識別できるため、末端セルの占有立方領域を再帰的にオクト分割した部分立方領域のコーナー点を発生させて、上記条件に基づく判定を繰り返せばよい。
【００３３】
上記条件２および３における距離の基準値としては、着目セルの対角長を用いることができる。より厳密には、条件２における距離の基準値は、着目セルの着目コーナー点から最も離れた位置にある着目セル内でのボクセルモデル形状内部または境界面上の点までの距離を下界とする任意の値である。コーナー点を中心とし、上記距離を半径とする球を考えると、球内にはボクセルモデル側の形状の一部が必ず存在するが、条件２によれば、球が剛体移動中のどの時点においても境界表現モデル側の形状とは交差しないと言えるからである。また、条件３における距離の基準値は、着目外部コーナー点から、着目セル内で最もそのコーナー点に近い位置にあるボクセル形状境界面までの距離を下界とする任意の値である。着目外部コーナー点はボクセルモデル側の形状の外部にあるが、コーナー点を中心とし上記距離を半径とする球を考えると、球内にはボクセルモデル側の形状の一部が必ず存在し、条件３によって、剛体移動中の球内に含まれるボクセルモデル側の部分形状が境界表現モデル側の形状といずれかの時点で交差すると言えるからである。なお、上記条件２に対する判定は、着目セル内の任意の点に対して行なってもよい。例えば、セルの中心点に対しては、距離の基準値を着目セルの対角長の半分とすることができる。ここで、基準値として、着目セルの対角長を用いる場合に比べて、コーナー点と境界面上の点との距離を用いたほうが、衝突の有無の判定が早期に確定されやすく、より高速な処理を行うことができる。
【００３４】
また、本実施の形態１のように適応的サンプル距離フィールドを採用したボクセルモデルでは、上記条件３の判定において、コーナー点での距離フィールド値を基準値とすることができる。さらに、着目セル内の任意の点の内外を距離フィールド値の符号から調べて、上記条件１および３に対する判定を行うこともできる。
【００３５】
なお、上記条件１〜３に基づく判定は、ボクセルモデル２０１の境界セルに対してのみ行なえばよい。表現対象形状の外部にある外部セルの場合は明らかに物体間の衝突はありえず、また、衝突が発生していない状態から衝突が発生する状態に至る過程では必ず境界セルの領域での衝突があるため、表現対象形状の内部にある内部セルに対する判定は不要であるからである。
【００３６】
衝突判定制御部１０１は、上記の判定の基本原理に基づき物体間の衝突判定を行う。図３は、衝突判定の処理フローを示した図である。本処理では、ボクセルモデル形状１のツリー階層を最上位セルから始めて深さ優先順で巡回する。
【００３７】
まず、ボクセルモデルデータ１０６の最上位セルを着目セルとする（ステップＳ１）。次に、着目セルが第二の物体との衝突判定の候補セルとなるか判定する（ステップＳ２）。これは、例えば、剛体移動データ１０８とは逆の関係となる第二の物体の第一の物体に対する相対的な剛体移動に基づき、第一の物体の座標系における第二の物体のおおよその可動範囲を含むバウンディングボックスを予め求めておき、着目セルがバウンディングボックス内にあるか否かで判断する。
【００３８】
着目セルが候補セルである場合は、判定対象点発生部１０３に指令して着目セルの判定対象点群を発生させ、空間曲線生成部１０４に指令して判定対象点群のそれぞれについて移動軌跡曲線群を生成し、曲線交差判定部１０５に指令して移動軌跡曲線と境界表現モデルデータ１０７の各境界要素との交差判定を行う（ステップＳ３）。ステップＳ４では上記条件１〜３に基づく判定を行う（ステップＳ４）。
【００３９】
判定の結果、明らかに衝突する場合は、「衝突あり」であると確定として処理を終える。明らかに衝突しない場合は、着目セルの未処理の兄弟セル、なければ、その上位いずれかの階層のセルの未処理の兄弟セルを次の着目セルとする（ステップＳ５〜Ｓ６）。次の着目セルがなければ「衝突なし」であると確定して処理を終える。
【００４０】
衝突の有無が判断できない場合は、中間ノードセルに対しては直下の子セルを着目セルとする（ステップＳ７〜Ｓ８）。末端セルに対しては、セルの占有立方領域を再帰的にオクト分割するモードに遷移し着目セル内での衝突の有無を判定し、衝突があれば「衝突あり」であると確定して処理を終え、衝突がなければステップＳ５に合流して処理を継続する（ステップＳ９〜Ｓ１０）。
【００４１】
図４は、図３のステップＳ９において末端セルの占有立方領域を再帰的にオクト分割するオクト分割モードでの衝突判定の処理フローを示した図である。ステップＳ９１で、末端セルの占有立方領域を一段階だけオクト分割した部分領域の一つを着目領域（分割された着目セル）とする。
【００４２】
次に、着目領域が第二の物体との衝突判定の候補領域となるかを判定する（ステップＳ９２）。これは上述のステップＳ２と同様の方法で判断する。着目領域が候補領域である場合は、判定対象点発生部１０３に指令して着目領域の判定対象点群を発生させ、空間曲線生成部１０４に指令して判定対象点群のそれぞれについて移動軌跡曲線を生成し、曲線交差判定部１０５に指令して交差判定を行う（ステップＳ９３）。
【００４３】
続いて、上記条件１〜３に基づく判定を行う（ステップＳ９４）。判定の結果、明らかに衝突する場合は「衝突あり」であると確定して本モードの処理を終える。明らかに衝突しない場合は、着目領域の未処理の兄弟領域、なければ、その上位階層の領域の未処理の兄弟領域を次の着目領域とする（ステップＳ９５〜Ｓ９６）。次の着目領域がなければ「衝突なし」であるとして本モードの処理を終える。
【００４４】
衝突の有無が判断できない場合は、着目領域を一段階だけオクト分割した部分領域の一つを次の着目領域とする（ステップＳ９７）。なお、より現実的には、上記オクト分割モードでは、着目領域のサイズが予め決めておいた許容マージンよりも小さくなった時点で分割を打ち切るように分割の上限を定めておき、上限を超えて分割が行われる場合には、安全を見込んで「衝突あり」とみなして処理を終えることが望ましい。
【００４５】
以上のように、本実施の形態１によれば、時分割法に見られるすり抜けによる衝突検出漏れのおそれがなく、曲線と曲面の交差判定に帰着させた演算量の少ない方法で物体間の高速な衝突判定が可能になる。また、衝突判定対象の一方の物体の形状を境界表現モデルで表現することにより、少ないデータ量で衝突判定が行える。
【００４６】
本実施の形態１で説明した衝突判定装置１００による一連の処理は、予め用意された衝突制御プログラムに基づいて行われる。本実施の形態１に係る衝突判定装置で実行される衝突判定プログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等、コンピュータで読み取り可能な記録媒体に記録されていてもよい。また、衝突判定プログラムは、インターネットなどの通信網を介して提供・配布可能となっていてもよい。
【００４７】
なお、上述したような一連の処理を行わせる衝突判定プログラムによって、第一の物体と第二の物体との衝突の可能性の有無を判定できる構成であればよく、衝突判定制御部１０１等の各処理部の構成は本実施の形態１の構成に限られない。例えば、本実施の形態１では、衝突判定制御部１０１に衝突判定部としての機能や着目セル指定部としての機能を持たせたが、これらを別々に構成してもよい。また、曲線交差判定部１０５に、距離算出部としての機能を持たせたが、これらを別々に構成してもよい。
【００４８】
実施の形態２．
実施の形態２の構成は実施の形態１と同様に図１のブロック図で表される。本実施の形態２では、曲線交差判定部１０５は、空間曲線と境界表現モデルデータ１０７の構成面との交差判定および最近接距離もしくは最奥距離の算出を行なうほかに、さらに、交差がある場合に交差位置での曲線のパラメータを算出するように構成される。これは、空間曲線の曲線式と構成面の曲面式を連立させた方程式を解くことで得られる。
【００４９】
また、図３および図４に示した衝突判定制御部１０１の処理フローにおいて、「衝突あり」と確定した場合に、処理を終えずに次の着目セルまたは着目領域に対する判定処理を継続して行い、上記交差位置での曲線パラメータのうち時刻に換算して最も早期の時刻に対応する値を求めるように構成される。これにより、第一の物体と第二の物体との間の衝突の時刻を検出することができる。
【産業上の利用可能性】
【００５０】
以上のように、この発明に係る衝突判定装置は、二次元または三次元の空間内を移動する物体間の衝突の有無を判定するのに適している。
【符号の説明】
【００５１】
１００  衝突判定装置
１０１  衝突判定制御部
１０２  形状データ記憶部
１０３  判定対象点発生部
１０４  空間曲線生成部
１０５  曲線交差判定部
１０６  ボクセルモデルデータ
１０７  境界表現モデルデータ
１０８  剛体移動データ
２０１  ボクセルモデル
２０２  セル
２０３  境界表現モデル
２０４  外部コーナー点
２０５  内部コーナー点
２０６，２０７  矢印
【図１】
2010082378.tif 000003
【図２】
2010082378.tif 000004
【図３】
2010082378.tif 000005
【図４】
2010082378.tif 000006
【手続補正書】
【提出日】平成23年6月29日(2011.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第一の物体に固定した座標系で定義されるボクセルモデルで前記第一の物体の形状を表現したボクセルモデルデータと、第二の物体に固定した座標系で定義される境界表現モデルで前記第二の物体の形状を表現した境界表現モデルデータと、を格納する形状データ記憶部と、
前記ボクセルモデルを構成するセルから、衝突判定を行う着目セルを指定する着目セル指定部と、
前記着目セルについて、衝突判定のための判定対象点群を発生させる判定対象点発生部と、
前記第一の物体の前記第二の物体に対する相対的な剛体移動を前記判定対象点群のそれぞれに適用して該判定対象点の移動軌跡曲線である空間曲線を生成する空間曲線生成部と、
前記境界表現モデルの各境界要素と前記空間曲線との間の交差の有無を判定する曲線交差判定部と、
前記曲線交差判定部による判定の結果、前記空間曲線がいずれの境界要素とも交差しない場合は、前記境界表現モデルの境界面に対する前記空間曲線の最近接距離を算出する距離算出部と、
前記曲線交差判定部による判定結果と、前記距離算出部による算出結果に基づき両物体間の衝突の可能性を判定する衝突判定部と、を備えることを特徴とする衝突判定装置。
【請求項２】
前記衝突判定部は、前記曲線交差判定部による判定結果および前記距離算出部による算出結果に加えて、前記判定対象点群のそれぞれの判定対象点の情報と、前記着目セルまたは前記判定対象点群の情報から決定される距離基準値とに基づき両物体間の衝突の可能性を判定することを特徴とする請求項１に記載の衝突判定装置。
【請求項３】
前記距離算出部は、前記曲線交差判定部による判定の結果、前記空間曲線と前記境界表現モデルのいずれかの境界要素とが交差する場合には、前記空間曲線の前記境界表現モデルに対する最奥距離を算出することを特徴とする請求項１または２に記載の衝突判定装置。
【請求項４】
前記曲線交差判定部は、前記空間曲線と前記境界表現モデルのいずれかの境界要素とが交差する場合には、交差位置に対応する空間曲線のパラメータを算出することを特徴とする請求項１〜３のいずれか１つに記載の衝突判定装置。
【請求項５】
前記ボクセルモデルデータは、ツリー階層による空間分割格子の各格子点をサンプル点とし、各サンプル点の第一の物体の形状の境界までの符号付き距離に基づいて形状を表現する適応的サンプル距離フィールドを用いて表現され、
前記判定対象点発生部は、前記着目セルのコーナーに位置する格子点または中心に位置する格子点を前記判定対象点群として発生させ、
前記衝突判定部は、曲線交差判定部による判定結果、前記距離算出部による算出結果、および前記判定対象点の距離フィールドの値に基づいて衝突の可能性を判定し、
前記着目セル指定部は、前記着目セルの衝突の可能性を判定できない場合は、より下位階層のセルを新たな着目セルに指定することを特徴とする請求項１〜４のいずれか１つに記載の衝突判定装置。
【請求項６】
前記ツリー階層の最下層の末端セルを着目セルとしても衝突の可能性を判定できない場合に、前記末端セルを前記ボクセルモデルの次元に応じてオクト分割またはクワッド分割し、分割された着目セルについて、前記衝突判定部に衝突の可能性を判定させる衝突判定制御部をさらに備えることを特徴とする請求項５に記載の衝突判定装置。
【請求項７】
前記衝突判定制御部は、前記衝突判定部が衝突の可能性を判定できるまで、前記着目セルの分割を繰り返し、分割された着目セルが所定の許容マージンよりも小さくなった時点で前記着目セルの分割を打ち切り、
前記衝突判定部は、前記着目セルの分割が打ち切られた場合には、衝突の可能性ありと判定することを特徴とする請求項６に記載の衝突判定装置。
【請求項８】
第一の物体に固定した座標系で定義され、前記第一の物体の形状を表現するボクセルモデルを構成するセルから、衝突判定を行う着目セルを指定するステップと、
前記着目セルについて、衝突判定のための判定対象点群を発生させるステップと、
前記第一の物体の第二の物体に対する相対的な剛体移動を前記判定対象点群のそれぞれに適用して該判定対象点の移動軌跡曲線である空間曲線を生成するステップと、
第二の物体に固定した座標系で定義され、前記第二の物体の形状を表現する境界表現モデルの各境界要素と前記空間曲線との間の交差の有無を判定するステップと、
前記曲線交差判定部による判定の結果、前記空間曲線がいずれの境界要素とも交差しない場合は、前記境界表現モデルの境界面に対する前記空間曲線の最近接距離を算出するステップと、
前記曲線交差判定部による判定結果と、前記距離算出部による算出結果に基づき両物体間の衝突の可能性を判定するステップと、をコンピュータに実行させることを特徴とする衝突判定プログラム。
【国際調査報告】
2010082378.tif 000007
2010082378.tif 000008
2010082378.tif 000009
2010082378.tif 000010