JP5404815B2 - 2つの干渉するオブジェクトを離すための並進ベクトルを求めるシステム、方法およびコンピュータプログラム - Google Patents

2つの干渉するオブジェクトを離すための並進ベクトルを求めるシステム、方法およびコンピュータプログラム Download PDF

Info

Publication number
JP5404815B2
JP5404815B2 JP2011548008A JP2011548008A JP5404815B2 JP 5404815 B2 JP5404815 B2 JP 5404815B2 JP 2011548008 A JP2011548008 A JP 2011548008A JP 2011548008 A JP2011548008 A JP 2011548008A JP 5404815 B2 JP5404815 B2 JP 5404815B2
Authority
JP
Japan
Prior art keywords
mtv
voxel
modified
clipping
tree
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.)
Expired - Fee Related
Application number
JP2011548008A
Other languages
English (en)
Other versions
JP2012515979A (ja
Inventor
リー チェン−ハン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Industry Software Inc
Original Assignee
Siemens Product Lifecycle Management Software Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens Product Lifecycle Management Software Inc filed Critical Siemens Product Lifecycle Management Software Inc
Publication of JP2012515979A publication Critical patent/JP2012515979A/ja
Application granted granted Critical
Publication of JP5404815B2 publication Critical patent/JP5404815B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)

Description

関連出願の相互参照
本出願は、米国仮特許出願番号61/146,092(2009年1月21日出願)の優先権を主張し、該出願は本明細書中に参照により含まれる。
技術分野
本発明は、概して、コンピュータを使ったデザイン、製図、製造および可視化システム(個別におよび集約的に「CADシステム」という)に関する。
発明の背景
CADシステムにおいて用いられる用語として、最小並進ベクトル(Minimum Translation Vector;MTV)は、1つのオブジェクトを他のオブジェクトに対して互いに衝突しないように動かすために必要とされる最小の変位ベクトルを意味する。MTVの長さは最小並進距離(Minimum Translation Distance;MTD)と呼ばれ、侵入距離あるいは衝突深度としても知られている。
発明の概要
種々の実施形態には、CADシステムにおいて表される第1のオブジェクトおよび第2のオブジェクトの間の最小並進ベクトル(MTV)を求める方法、ならびに同様の方法を実行するCADシステムおよびコンピュータ読み取り可能な記録媒体にコードされるコンピュータプログラムが含まれる。該方法は、第1のオブジェクトおよび第2のオブジェクトを受け取るステップと、第1オブジェクトおよび第2のオブジェクト個々のファセットにテッセレーションするステップとを有する。該方法は、第1のオブジェクトおよび第2のオブジェクトのそれぞれに対応するファセットの境界ボリュームツリーを形成するステップを有する。該方法は、境界ボリュームツリーについて貪欲プロセスを実行して、初期MTVを生成するステップと、境界ボリュームツリーおよび初期MTVに従って連続クリッピング処理を実行して、最終MTVを生成するステップとを有する。該方法は、コンピュータ読み取り可能な媒体に最終MTVを保存するステップを有する。
いくつかの実施形態では、貪欲処理は、初回は推定MTVを求めるために実行され、2回目は修正MTVを求めて当該修正MTVを初期MTVとして出力するために実行される。いくつかの実施形態では、貪欲処理は、初期データをロードするステップと、ツリーレベルおよびクリッピングウインドウを初期化するステップと、ツリーレベルおよびクリッピングウインドウを用いてボクセル処理を実行して修正MTVを求めるステップと、修正MTVを保存するステップと、修正MTVを出力するステップと、を有する。いくつかの実施形態では、ツリーレベルが所定の最大値に達するまで、貪欲処理がより下位のツリーレベルについて繰り返される。
いくつかの実施形態では、初期データには、ツリーレベル値、ボックス使用値、クリッピング値、境界ボリュームツリーおよび現在のMTVの少なくとも1つが含まれる。いくつかの実施形態では、ボクセル処理は、ボクセル初期データをロードするステップと、クリッピングウインドウのボクセルモデルを構築するステップと、境界ボリュームツリー間のミンコフスキー差を計算するステップと、ボクセルモデル内の各ボクセルをマークするステップと、マークしたボクセルのうちから少なくとも1つの候補ボクセルを決定するステップと、原点からの距離が最小のベクトルを有する候補ボクセルを決定するステップと、原点からの距離が最小のベクトルを修正MTVとして出力するステップと、を有する。
いくつかの実施形態では、ボクセル初期値には、クリッピングウインドウ、境界ボリュームツリーおよび現在のMTVのうちの少なくとも1つが含まれる。いくつかの実施形態では、連続クリッピング処理は、クリッピング処理の初期データをロードするステップと、現在のMTVを含み、従前のクリッピングウインドウよりも原点に近いクリッピングウインドウを構築し、ツリーレベルおよびクリッピングウインドウを用いるボクセル処理を実行し、修正MTVを求めるステップと、修正MTVを保存し、かつ、修正したMTVを最終MTVとして出力するステップと、を有する。
上記のものは本開示の特徴および技術的利点を比較的広くなぞったものであり、当業者は以下の詳細な説明をより良く理解するであろう。請求項の対象を構成する本開示の他の特徴および利点は以下に記載されている。当業者はその概念および記載された特定の実施形態を、本開示と同一の目的を達するために、他の構成を修正または設計するための基礎として容易に用いることができることを理解するであろう。当業者はまたこのような等価構成が最も広い形態における本開示の精神および範囲から逸脱するものではないことも理解するであろう。
以下の[発明を実施するための形態]に入る前に、本願書類において用いられている特定の単語または表現の定義について述べておくことが有利であろう。「含む」と「有する」およびこれらに類似する語は、限定なく含むことを意味している。「または」の語は包括的なものであり、および/またはを意味する。「関連する」との表現およびこれに類似するものは、含む、含まれる、相互接続される、含有する、含有される、接続される、結合する、通信可能である、協働する、インターリーブする、並列する、近位される、結びつけられる、持つ、性質を持つなどを意味する場合がある。「コントローラ」との語は、少なくとも1つの動作を制御するハードウェアに実現される任意の装置であって、ハードウェア、ファームウェア、ソフトウェアまたはこれらの少なくとも2つの特定の組み合わせにおいて実現される装置を意味する。任意の特定のコントローラに関連する機能はローカルまたはリモートで、中央化または分散されていてもよいことに留意されたい。特定の語および表現の定義については、本願書類と通じて与えられ、当業者はこれらの定義が、当該語または表現の従前のまたは将来の使用に対する多くの、あるいはたいていの場合に適用されることは理解するであろう。いくつかの語は、多岐にわたる実施形態を含む一方で、添付の特許請求の範囲はこれらの語を特定の実施形態に明確に限定する場合がある。
実施形態にかかる、データ処理システムのブロック図である。 実施形態にかかる、衝突するオブジェクトを示す。 実施形態にかかる、衝突するオブジェクトに対応するミンコフスキー差を示す。 実施形態にかかる、2つの境界ボリュームツリーを示す。 実施形態にかかる、図3aのボリュームツリーに対応するツリーノードの境界ボックスを示す。 実施形態にかかる、衝突するオブジェクトを示す。 実施形態にかかる、最適MTVを示す。 実施形態にかかる、安全MTVを示す。 実施形態にかかる、実際のMTVおよび大体のMTVを示す。 実施形態にかかる、クリッピングウインドウを示す。 実施形態にかかる、2つのミンコフスキー差および対応するボクセルモデルを示す。 連続クリッピング処理におけるクリッピングウインドウの動きの例を示す。 実施形態にかかる処理を示す。 実施形態にかかる処理を示す。 実施形態にかかる処理を示す。 実施形態にかかる処理を示す。
本発明およびその利点のより完全な理解のため、添付の図面と関連づけられた以下の詳細な説明について以下参照する。図面中、類似の番号は同様の対象を指す。
以下で説明する図1〜11、および、本願出願書類における開示の基本を記載するために用いられる種々の実施形態は例示に過ぎず、いかなる意味においても開示の範囲を制限するものと理解されるべきではない。当業者は、本開示の基本が任意の適切に構成された装置において実現可能であることは理解するであろう。本出願の多数の革新的な教示は、例示的であり非限定的な実施形態を参照して説明される。
本明細書中に記載されている種々の実施形態には、互いに衝突(侵入)するCADシステムにおける1対の形状または幾何モデルの最小並進ベクトル(個別におよび集約的に「MTV」という)を求めるシステムおよび方法が含まれる。当業者に理解されるように、MTVには距離と方向の双方が含まれ、一方、最小並進距離(MTD)はMTVの長さまたは距離を記述するものである。MTVとは、1つの幾何オブジェクトを他の幾何オブジェクトと接する(しかし衝突または侵入しない)ように動かすのに必要な最小の変位ベクトルであり、MTDとは、1つの幾何オブジェクトを他の幾何オブジェクトと接する(しかし衝突または侵入しない)ように動かすのに必要な最小の距離である。これらのオブジェクトが離れているときMTDは最小の距離である;そうでないとき、MTDは侵入距離である。
衝突をなくすのに必要な距離は移動方向に依存する。最小距離をもたらし、MTVに対応する1つの方向が存在する。手間のかかる検索以外に「最適な」方向を求める簡単な方法はない。
数学的にいえば、MTVの計算は非常に大きな複雑さを有する。たとえば、1組のオブジェクトがファセット(メッシュ)モデルにより表される場合、計算上の複雑さは、一方のオブジェクトのファセットの数と、他方のオブジェクトのファセットの数との積の二乗(N*Nにより表される。この計算を高速化するアルゴリズムが知られている。最速のものによれば、複雑さを(N*logN)*(N*logN)まで低減可能である。しかし、商業用途における典型的なモデルは数億のファセットを含んでおり、これでも商業用途では遅すぎる。
開示の実施形態には、MTVを計算するための実用的で高速な処理が含まれ、商業用途に適したlogN*logN程度の複雑さまで低減される。他の実施形態では、「最適な」方向を見つけ出す代わりに、開示の方法では代替的にまたは付加的に「安全な」方向を見つけ出す。この点で、MTVは、絶対的に最小のMTVではなく、最小の「安全な」MTVである。
図1は、本明細書中に記載されたプロセスを実行するよう特定的に構成されたCADシステムとして一実施形態が具体化されたデータ処理システムのブロック図を示す。図示されたデータ処理システムは、プロセッサ102と、プロセッサ102が接続されているレベル2キャッシュ/ブリッジ104と、レベル2キャッシュ/ブリッジ104が接続されているローカルシステムバス106と、を有している。ローカルシステムバス106は、たとえば、PCIアーキテクチャバスである。例示のローカルシステムバス106には、メインメモリ108とグラフィックアダプタ110とが接続されている。グラフィックアダプタ110はたとえばディスプレイ111に接続されている。
他の周辺機器、たとえば、LAN/WAN/無線(たとえばWiFi)アダプタ112もローカルシステムバス106に接続されている。拡張バスインタフェース114がローカルバスシステム106を入出力(I/O)バス116に接続している。I/Oバス116は、キーボード/マウスアダプタ118、ディスクコントローラ120およびI/Oアダプタ122に接続されている。ディスクコントローラ120は、たとえばストレージ126に接続されている。ストレージ126は機械で使用可能なまたは機械で読み取り可能な任意の記録媒体であってよく、たとえば、不揮発性のハードコード型媒体(たとえば読み出し専用メモリ(ROM)または消去可能な、電気的消去可能なプログラマブルROM(EEPROM))、磁気テープストレージおよびユーザ記録型媒体(たとえばフロッピー(登録商標)ディスク、ハードディスクドライブおよびコンパクトディスク読み出し専用メモリ(CD−ROM)またはデジタルバーサティルディスク(DVD))であってよいが、これらのものに限られない。
また、例示のI/Oバス116には、オーディオアダプタ124が接続されており、オーディオアダプタ124にはたとえば音声出力のためのスピーカ(図示せず)が接続されている。キーボード/マウスアダプタ118は、マウス、トラックボール、トラックポインタなどのポインティングデバイス(図示せず)のための接続を提供する。
当業者には、図1に示されるハードウェアが特定の実施形態では変えることができることが理解されるであろう。たとえば、他の周辺装置たとえば光学ディスクドライブが付加的にまたは図示のハードウェアの代わりに用いられてもよい。示される例は、説明を目的としたものに過ぎず、本開示に関する構造的な限定を示すものであることを意味しない。
本発明の実施の形態にかかるデータ処理システムは、グラフィカルユーザインタフェースを用いるオペレーティングシステムを含んでいる。オペレーティングシステムによって、異なるアプリケーションまたは同一のアプリケーションの異なるインスタンスをそれぞれ表示する複数の表示ウインドウを、グラフィカルユーザインタフェースに同時に表示することができる。グラフィカルユーザインタフェースのカーソルはポインティングデバイスを通じてたとえばユーザにより操作される。カーソル位置は変更可能であり、および/または、所望の応答が得られるようたとえばマウスボタンのクリックなどがなされる。
種々の商業的なオペレーティングシステムの1つ、たとえばマイクロソフト社(ワシントン州レドモンド)製ウインドウズ(登録商標)の1バージョンを、適切に修正されている限り用いることができる。オペレーティングシステムは記載されているように本発明に従って修正されまたは作成される。
LAN/WAN/無線アダプタ112は、ネットワーク130(データ処理システム100の一部ではない)に接続可能である。ネットワーク130は、当業者に知られている、インターネットを含む、任意の公衆または私用データ処理システムネットワークまたはネットワークの組み合わせであってよい。データ処理システム100は、サーバシステム140とネットワーク130を介して接続可能である。サーバシステム140も同様にデータ処理システム100の一部ではないが、たとえば、別個のデータ処理システム100として実現されてもよい。
MTVは衝突回避に重要であり、かつ、デジタル製造システムおよびCADシステムの分野に関して広範囲の用途に重要である。衝突検出および衝突回避は種々の要素、たとえばロボット、工作機械および他の製造設備の動作のプログラミングまたはシミュレーションにとって重要である。プログラムされた動作が衝突を引き起こす場合、好ましい解決方法は、たとえば、MTVを計算して、衝突を回避するようプログラムをどのように修正するかを決定することである。
衝突回避自体は、CADシステムの共通の特徴であり、当業者にはよく知られている。しかし、この共通の能力は衝突の存在を検出するだけであり、衝突深度のさらなる分析を提供するものではない。
商業レベルのMTV処理機能が提供されていない理由の1つは、処理能力による制限である。上述したように、商業レベルでの複雑さは計算の実行を非常に遅くし、実用レベルでの具体化を妨げている。
2つの凸型オブジェクト間のMTVの計算は、よく研究されたテーマである。たとえば下記のGilbertとCameronの論文に記載されている既知の方法は、2つのオブジェクト間のMTVが、原点から当該2つのオブジェクトのミンコフスキー差までの最短のベクトルであるという観察に基づいている。すなわち、MTVの問題は、ミンコフスキー差の計算に等しい。
2つの狭義凸型のオブジェクト間のミンコフスキー差の計算はよく知られている。2つのオブジェクト(ボディ)AおよびB間のミンコフスキー差は次のように定義される:
Figure 0005404815
。すなわち、ミンコフスキー差は2つのオブジェクトの重ね合わせである。
図2aに、互いに衝突しているオブジェクトA205およびオブジェクトB210を示す。図2bに、オブジェクトAおよびBのミンコフスキー差を示す。対応するMTV215は太矢印で示している。
応用においては、たいていの形状は非凸型である。不幸なことに、2つの非凸型オブジェクト間のミンコフスキー差の計算は非常に複雑であり、困難である。たとえば、下記のEhmannおよびKimの論文にあるように、非凸型形状に対して上記方法を一般化するためには、システムはまず各非凸型形状をより小さい凸型片の結合に分解する。全てのミンコフスキー差は個々の凸型片のミンコフスキー差の結合であることが証明可能である。
Figure 0005404815
オブジェクト1にN個の凸片が存在し、オブジェクト2にN個の凸片が存在する場合、ミンコフスキー差の対の総数は、N*Nである。これらの結合を計算するため、たとえば、システムは他の全てに対する各ミンコフスキー差を分析し、このとき全体の複雑さはその二乗となる:(N*N
計算を高速化可能な特定の技術としては、たとえば以下のものが挙げられる。
・境界ボリューム階層(Bounding Volume Hierarchy):オブジェクトの複数の凸片を1つの空間ツリーに組織化し、互いに近い全ての片は同じブランチに配置する。その1つの例はKDツリーである。各ブランチのノードについて、全ての下位のものの境界ボックスが計算され、保存される。図3aは、本例において図2のオブジェクト205、210に対する例に対応する、2つの境界ボリュームツリー305、310の構造(各オブジェクトについて1つ)の例を示す。ルートレベル(レベル0)において、ルートのオブジェクトのみが、各オブジェクトについて1つのノードとして示されている。次のレベル(レベル1)では、各オブジェクトについて2つの下位ノードが示されている。
図3bは、ボリュームツリー305、310(そして図2のオブジェクト205、210)にそれぞれ対応する、ルートレベル315(レベル0)および次のレベル320(レベル1)に対応する境界ボックスの例を示す。ここで再び、レベル0において、それぞれ1つのオブジェクトに対応する2つの境界ボックスのみが示されている。レベル1には、各オブジェクトについて、図3aのボリュームツリーに一致する2つの境界ボックスが存在する。
・階層カリング(Hierarchical Culling):図3aおよび3bから、システムがより高次のレベル(レベル0)から次のレベル(レベル1)に移るとき、境界ボックスはより小さくなり、したがって侵入深度はより小さくなることがわかる。すなわち、MTV(太矢印で示す)は、システムがツリーレベルの下位に進むほどますます小さくなる。レベル1におけるMTV330はレベル0のMTV325より小さい。本実施形態では、パフォーマンスを向上するようこのカリング技術を用いることができる。
システムは最高レベルから開始し、(推定)MTVを計算する。たとえば、システムはその後1つ下のレベルに移り、従前のレベルから推定MTVよりも侵入深度の浅い(すなわち推定MTVよりも大きい)全てのノードの対を飛ばすことができる。このレベルを越えた後、システムは推定MTVを更新し(推定MTVは以前より小さいものとなる)、次の下位レベルに進む。リーフレベルに達するまで同一の処理がくり返され、リーフレベルにおけるMTVが最終的な回答である。結果として、ツリーノードの大部分にアクセスすることはなく、計算時間は非常に削減される。
このカリング技術を用いると、予測される複雑さは、(N*Nから(N*logN)*(N*logN)まで低減される。
パフォーマンスを向上させる他の技術も存在するが、(N*logN)*(N*logN)に対してさほどの向上は得られないであろう。本実施形態では、予測される複雑さを(N*logN)*(N*logN)から(logN)*(logN)まで低減可能である。より積極的なカリング方法を設計することが重要である。この方法には、以下で詳述する複数のステップが含まれる。これには、所定のCADシステムプロセッサがより高速かつ効率的にMTVを見つけ出すことを可能とし、または、より演算能力の低いプロセッサを有するCADシステムにおいて適切な速度および効率性を実現可能とするという格別な技術的利点がある。
種々の実施形態では、境界ボリューム階層スキームが用いられる。該スキームは、それが凸片(凸要素)の空間階層(たとえばツリー)を含み、各ノードが全ての下位の要素を含む境界ボックスを保存する限り、いかなる種類のスキームであってよい。境界ボリューム階層スキームのこれらの2つの特徴は、いくつかの実施形態において用いられ、本明細書中に記載される積極的なカリング方法を具体化する。
本処理は、ミンコフスキー差およびそれらの結合を計算するために用いられる方法に依存しない。それらのうちのいかなる方法も本発明とともに用いることができる。これは、軸並行境界ボックス(Axis-Aligned Bounding Box)および有向境界ボックス(Oriented Bounding Box)が一般的に選択される任意の種類の境界ボックスとともに用いることができる。凸片が利用可能である限り、これらはオブジェクトの表現方法にも依存せず、オブジェクトの凸片(凸要素)の計算方法にも依存しない。
種々の実施形態において、システムは最適なMTVの代わりに安全なMTVを見つけ出す。最適な(最小の)MTVを見つけ出すという目的を放棄し、代わりに「安全な」MTVを見つけ出すようにすることにより、効率が実質的に向上される。この意味で、もちろん、安全なMTVは必ずしも「最小」並進ベクトルではないが、衝突または問題のある工具の配置をもたらす可能性が実質的に低い、最小に近い並進ベクトルである。
以下でより詳細に説明するように、安全なMTVは最適なMTVよりもはるかに高速に見つけ出せる。図4a〜4cには、オブジェクト405、410を用いて、最適なMTVと安全なMTVとの差が示されている。図4aには、2つの衝突しているオブジェクト405、410が示されている。矢印415、420は、小オブジェクトを衝突しないように動かすための2つの候補MTVを示す。上方の矢印415は、最小(候補矢印420よりも小さい)であるので、最適なMTVである。
しかし、図4bに示されるように、最適なMTV415はオブジェクトを狭いスポットへと動かすものであり、ここでオブジェクトはオブジェクト405によって3方が取り囲まれ、2つの方向においてオブジェクト405に非常に近い。
他方、矢印420を選択すると、オブジェクトは開放空間へと動かされる。この「安全な」MTVは最適なMTVほど小さくないが、図4cに示されるように、衝突を無くすだけでなくオブジェクトを安全な開放空間へと動かす最小のMTVである。
上述したように、コンピュータ支援製造におけるMTVの共通の使用は、ロボットや工作機械などの製造設備の衝突回避のためである。衝突を無くしまたは回避するため、ロボットアームや切削工具を開放領域に動かすことがより安全で望ましい。すなわち、目的は全ての狭いスポットを無視し、オブジェクトを安全な開放領域に移動させる最小のMTVだけを計算することである。
種々の実施形態において、システムは境界ボックスを用いて安全なMTVを位置決めする。安全なMTVを見つけ出すため、CADシステムは階層構造の境界ボックスを用いることができる。好適には、システムは、浅いレベルたとえば8分ツリー構造の上層3レベルへのみ進み、レベル3(または他の選択された浅いレベル)のノードの境界ボックスを用いてMTVとの差を計算する。
レベル3ノードで止める理由の1つは、8分ツリーを用いる場合のパフォーマンスを考慮したものである。経験的結果では、レベル3よりさらに進むと、かなりの計算時間がかかる一方で、レベル2の境界ボックスでは粗すぎる傾向がある。レベル深さは、ツリーの幅に依存して選択される。たとえば、二進ツリーについての対応する選択はレベル9であり、これは8分ツリーのレベル3に対応する。
ブランチノードの境界ボックスは、実際の下位の形状の凸包であり、該境界ボックスは該形状の凹みを「満たす」自然な方法である。これにより安全でなく狭い全ての空間は自動的に排除されるので、結果得られるMTVは常に安全な開放空間へと導くものとなる。
境界ボックスは常に実際の形状よりも大きいため、境界ボックスから計算されたMTVは、実際の最適なMTVよりも常に大きい推定MTVである。この推定MTVは実際のMTVの大体の(おおよその)位置を表す。大体のMTVから実際のMTVを正確に示す方法について、以下でより詳細に説明する。
いくつかの実施形態では、CADシステムはクリッピングを用いてMTVを修正し、完成する。境界ボックス処理から求められる大体のMTV位置は、実際のMTVの大体の位置であり、システムはさらに探す必要はない。高速にするため、処理はクリッピングされた空間「ウインドウ」の立方体のみを考慮し、非常に積極的なカリングを行う。システムは階層構造のより深いレベルに進むが、それらの境界ボックスのミンコフスキー差がクリッピングウインドウと重ならない場合には、ノードの全ての対を飛ばす。
図5aは、図2bに示すものと類似した、全ミンコフスキー差<B−A>の簡単な例を示す。実線矢印505は実際のMTVであり、破線矢印510は大体のMTVを示す。図5bは、クリッピングウインドウを示す網掛けされた正方形515が追加された同一の例を示す。破線のボックス520は、(一対のノードの境界ボックスからの)可能なミンコフスキー差の対を表す。システムは、このミンコフスキー差が網掛けされたウインドウから離れていることを高速に判別することができ、このミンコフスキー差は実際のMTVに決して寄与することはない。システムはこのノード対およびその下位レベルをスキップする。
システムは次いで、クリッピングウインドウの一部を占めうるミンコフスキー差を生成しうるノードのみへと進むので、少数のミンコフスキー差だけが用いられる。
いくつかの実施形態では、システムは、パフォーマンスを向上させるため、MTDの計算における3つの段階から構成される「貪欲」アプローチを用いることができる。これらの3つの段階は、「評価」、「改善」、「決定」の段階として示され、その例示的な処理をフローチャートに示す。
「評価」段階では、MTDベクトルの概略位置を見つけ出すことが目的である。この段階では、システムは2つの境界ボリュームツリーのそれぞれにおける上から3つのレベルへと進み、上述したように、境界ボリュームを用いてミンコフスキー差および対応するボクセルモデルZを計算する。得られるボクセルモデルは実際のモデルの近似であり、常にこれよりも大きい。システムはZを用いて推定MTDおよび対応するMTDベクトルを計算する。システムはこの処理を深度1〜3まで3度繰り返す。浅い深度で得られるMTDはより深い深度のブランチのカットに用いられる。ボクセルモデルのカバー範囲は、ルートノードの境界ボックスまでである。
「改善」段階では、MTDベクトルの精度を向上させ、検索範囲を狭めることが目的である。システムは、検索が少なくなるよう、ボクセルモデルに関する(従前の段階で得られた)推定MTDベクトルを中心とした「切り取り範囲(cropped range)」(カメラのファインダのようなもの)を選択する。切り取り範囲を用いて、システムはツリーレベル4からの境界ボックスを用いてMTDベクトルのより正確な予測を行う。システムはボクセルモデルのより小さな切り取り範囲でもって処理を繰り返し、ツリーレベル5まで進んでMTDに関するより精細で、より正確な結果を得る。その結果は未だおおよそのものであるが、実際の回答に非常に近いものである。処理はたとえばレベル10あるいは選択されたより深いレベルまで繰り返される。
「評価」および「改善」の段階では、システムは境界ボックスのミンコフスキー差だけを用いる。2つのボックスのミンコフスキー差は1つのボックスでもあるので、このことはパフォーマンスにおいて格別な利点がある。ミンコフスキー差のボックスの最大の点は第1のボックスの最小の点から第2のボックスの最大の点までの変位ベクトルであり、ミンコフスキー差のボックスの最小の点は第1のボックスの最大の点から第2のボックスの最小の点までの変位ベクトルである。TCDMinkowskiSum.cpp内のソースコードは、入力された対が境界ボックスである場合にこの簡略化された計算が用いられるように修正される。
「決定」段階では、厳密な解を計算することが目的である。システムはZOOM_IN段階からの推定MTDベクトルを包囲する非常に精細なボクセルモデルを構築し、境界ボリュームモデルツリーをリーフレベルまでずっと進み、厳密なモデルZを構築し、厳密なMTDを計算する。アルゴリズムを効率的なものとするため、システムは境界ボックスを用いて余計な検索を排除する。TCDノードの所定の対より深いレベルに進む前に、システムは境界ボックスの対のミンコフスキー差を計算する。ミンコフスキー差の境界ボックスが精細なボクセルモデルの任意の範囲と重ならない場合、より深いレベルに進むことはない。
最後の「決定」段階は、リーフレベルにおけるファセットを主として用い、より遅い。しかし、最初の2つの段階からの結果によって、推定MTDの近傍の検索に絞ることができるので、ツリーの僅かの部分について処理が進められる。ツリーのブランチのほとんどはその近傍になく、対称から除外される。いくつかの実施形態では、システムはクリッピングにボクセルモデルを用いて高速な結果を得る。クリッピングウインドウが選択されると、システムはボクセルモデルを用いて実際のMTVを位置決めする。クリッピングウインドウは基本的に立方体である。ボクセルモデルにおいて、システムは立方体を小さな等サイズの立方体に分割し、各ボクセル(小立方体)は3つの整数の組によりラベルされる。
本明細書中に記載されるボクセルモデルは、3次元空間をボクセルと呼ばれる小さな長方形のボックス(等サイズ)に分割し、それぞれは整数の組(i,j,k)でラベルされる。各ボクセルは初期状態で「空」であり、空白の状態であることを意味する。所定のミンコフスキー差のボリュームを記録するため、システムはミンコフスキー差に含まれるボクセルを「被占」としてマークし、その外側のボクセルは空のままとする。さらに、システムは被占(内側)ボクセルと空(外側)ボクセルとの境界上のボクセルを「移行」としてマークする。
CADの解は、ミンコフスキー差の「可視」側に関連するものであり、この実施形態では、システムは可視の移行ボクセルのみをマークする。可視側とは、原点上の光源から来る概念上の光とは反対の、無限遠から原点方向に向かう概念上の光に対して可視的な側である。システムは全ての可能な可視移行ボクセルにおけるミンコフスキー差に対するポインタも保存してもよい。
MTDを計算する1つの段階の呼び出しは、全てのミンコフスキー差の結合を計算することである。これらの実施形態において、システムはボクセルモデルに対する各ミンコフスキー差を探し、任意のミンコフスキー差に含まれる各ボクセルを被占としてマークし、可視側にあるボクセルを可視移行としてマークする。
空または可視移行のボクセルが別のミンコフスキー差によって占められるとき、該ボクセルは被占としてマークされる。可視移行ボクセルが別のミンコフスキー差の可視移行ボクセルでもあるとき、このミンコフスキー差に対するポインタは該ボクセル内に同様に保存される。最終的に、全ての被占ボクセルの結合が、ミンコフスキー差の結合されたものの大体の形状を形成する。
MTDを見つけ出すため、システムは、原点に最も近い可視移行ボクセルを検索し、このボクセル位置がMTDベクトルの大体の位置である。ボクセルモデルの精度はボクセルのサイズによって決定される。
速度を犠牲にすることなく精度を向上するため、システムは「再帰的ボクセルモデル」を用いることができる。すなわち、システムは粗いボクセルモデルでスタートしてMTDの全体的な位置を見つけ出し、粗いボクセルをより小さい多数の細かいボクセルに副分割し、これらのより細かいボクセルについてのマーキングを繰り返し、すべての処理を再帰的に繰り返し、所望の精度が達成される。最後に、候補MTDボクセルにおいて、システムは、全ての近傍の(ボクセル内に保存されていた)ミンコフスキー差を指定し、MTDの厳密な値を計算する。
図6は2つのミンコフスキー差と対応するボクセルモデルを示す。被占ボクセルは丸によりマークされている。被占ボクセルを包囲するボクセルが移行ボクセルである。点Qに近い移行ボクセルはMTDベクトルを含むボクセルである。ここで点Oは原点である。原点Oからは候補MTD605が延びている。
いくつかの実施形態では、システムは連続クリッピングを用いて正確性を確保する。上述のように、小さなクリッピングを選択して、クリッピングウインドウと重ならないツリーノードの大部分をスキップすることが、より良いパフォーマンスのためには望ましい。しかし、小さすぎるクリッピングウインドウを選択することは、実際のMTVを外す可能性がある。クリッピングウインドウが実際のMTVをカバーしない場合には、全てのボクセルは「空」のままであり、何も見つからない。
クリッピングウインドウが空である場合には、原点により近い解が常に存在する。したがって、システムは、たとえば、MTVが見つかるまで、クリッピングウインドウを原点により近く繰り返し動かす。図7はクリッピングウインドウの動きの例を示す。図7中、実際のMTV(太矢印710)を外れた第1のクリッピングウインドウが、一番右に示されている(網掛けされた四方形)。それに続くクリッピングウインドウ715、720は原点により近いものが選択され、3番目のものがMTVを見つけ出す。この方法により安全なMTVを確実に見つけることができる。
図8は、本実施形態に従う主な処理を示している。いくつかの実施形態では、MTVの計算には以下のステップが含まれる。
CADシステムは2つの入力オブジェクトAおよびBを受け付ける(ステップ805)。この処理には、たとえば、これらのコンピュータ読み取り可能な記録媒体からのロード、ネットワークを介した受信、または、当業者には知られた他の手段が含まれる。オブジェクトはたとえば2次元または3次元オブジェクトモデルである。
システムは、入力されたオブジェクトAおよびBをファセット(三角形)または凸プリミティブAiおよびBjにテッセレーションする(ステップ810)。システムは、ファセット間の接続情報を記録できるが、必ずというわけではない。システムは、入力されたオブジェクトAおよびBのそれぞれについて、ファセットまたは凸プリミティブの境界ボリュームツリーを形成する(ステップ815)。
次に、システムは初期値を設定し、これには、いくつかの実施形態では、最小レベルを1に、最大レベルを3などの浅いレベルに設定すること、偽へのクリッピングを含んでおり、システムは、図9に示されているようなプロセッサの貪欲処理を呼び出す(ステップ820)。このステップは、先に説明した「評価」段階に対応する。
システムは、プロセッサの貪欲処理の結果を受け取り、いくつかの実施形態では、最小レベルを4にする設定、最大レベルを10などの深いレベルにする設定、真へのクリッピングを含む第2の値を設定し、システムは再び、図9に示されているようなプロセッサの貪欲処理を呼び出す(ステップ825)。このステップは先に説明した「改善」段階に対応する。
システムは、第2のプロセッサの貪欲処理の結果を受け取り、図11に示されているような最後のプロセッサ処理を呼び出し、連続クリッピングを用いてMTVを決定する(ステップ830)。このステップは、先に説明した「決定」段階に対応する。決定されたMTVはこの処理から戻され、CADシステムまたは他のコンピュータ読み取り可能な媒体に保存され、場合によりユーザに対して表示される。
図9は、本実施形態にかかるプロセッサの貪欲処理を示す。この処理において、システムはまず初期データ(呼び出し処理からの通過データを含みうる)をロードする(ステップ905)。初期値には、最小レベル、最大レベル、クリッピング値、境界ボリュームツリー、現在のMTVが含まれる。
システムはツリーレベルを最小レベルに設定することによって初期化する(ステップ910)。
システムは、クリッピングウインドウを、全てを含むボックスに初期化する(ステップ915)。
システムは、クリッピングが真かどうかチェックする(ステップ920)。Yesの場合、システムは、MTVを中心としてクリッピングウインドウを構築し(ステップ925)、Noの場合、ステップ925を飛ばす。
システムは、「ボックス使用」の値を真に設定し、図10に示されているようなボクセル処理を呼び出し、修正MTVを計算する(ステップ930)。
システムは、ボクセル処理の結果を受け取り、ツリーレベルをインクリメントする(ステップ935)。ツリーレベルが最大ツリーレベルを超えない場合(ステップ940)、処理はステップ920に戻って繰り返される。そうでない場合、システムは修正MTVを呼び出し処理に出力する(ステップ945)。
図10は本実施形態にかかる、全てのミンコフスキー差
Figure 0005404815
の結合を形算するボクセル処理を示す。ここで、システムはツリーを進み、組をなすミンコフスキー差を計算し、以下でより詳細に説明するように、結合を表すボクセルモデルZを構築する。
この処理において、システムは、まず(呼び出し処理からの通過データを含みうる)初期データをロードする(ステップ1005)。初期データにはツリーレベル、「ボックス使用」値、クリッピングウインドウ、境界ボリュームツリー、現在のMTVが含まれる。
システムは、クリッピングウインドウのボクセルモデルを構築し、ボクセルを空として初期化する(ステップ1010)。
システムは、境界ボリューム(BV)ツリーのルートへ進む(ステップ1015)。
このステップでは、「ボックス使用」値が真であるかどうか、または、リーフノードでないかどうかが判別される(ステップ1020)。これらのうちのいずれかに該当する場合、システムは境界ボリュームのミンコフスキー差を計算する(ステップ1025)。いずれにも該当しない場合、システムはファセット/プリミティブのミンコフスキー差を計算する(ステップ1030)。
システムは計算されたミンコフスキー差と現在のクリッピングウインドウとの間に重なりがあるかどうかを判別する(ステップ1035)。重なりがない場合、ステップ1040は飛ばされる。
重なりがある場合、システムは計算されたミンコフスキー差をボクセルモデルに入力し、ボクセルをマークする(ステップ1040)。ボクセルモデルにおいて、各ボクセルVαβγは「外側(空)」、「内側(被占)」または「可視(移行)」のいずれかとしてマークされる。所定の「可視」ボクセルに近い全てのCjiのMTDポインタがボクセル内に保存される。ボクセルモデルZにおける各ミンコフスキー差について、システムは以下のようにボクセルのマークを行う。
システムは、ボクセルがどのような状態にあったかにかかわらず、ミンコフスキー差により完全に占められている全てのボクセルを「被占」としてマークする。「被占」ボクセルは「被占」のままである。システムは、ボクセルが「被占」でなければ、「被占」と「空」との境界上の全てのボクセルを「移行」としてマークする。このミンコフスキー差の基準は、「移行」ボクセルの関連するメモリに加えられる。
次に、システムは、兄弟ノードまたは子ノードに進む(ステップ1045)。
システムは、処理がツリーレベルを越えたか、または、全ての子ノードを用い尽くしたがどうか判別する(ステップ1050)。Noの場合、処理はステップ1020に戻って繰り返される。
Yesの場合、システムは、候補ボクセルを見つけ出し、原点からの距離が最小のベクトルを有するボクセルを決定する(ステップ1055)。システムは原点からの距離が最小のベクトルを修正MTVとして出力する(ステップ1060)。原点と、ボクセルモデルZのこのボクセルとの間のベクトルは、オブジェクトAおよびBの間のMTDに対応する:
Figure 0005404815
図11は、本実施形態にかかる、連続クリッピング処理として記載されている最後のプロセッサ処理を示す。この処理において、システムは、まず初期データ(呼び出し処理からの通過データを含みうる)をロードする。初期データには境界ボリュームツリーおよび現在のMTVが含まれる(ステップ1105)。
システムは、MTVを含み、原点により近いクリッピングウインドウを構築する。
システムは、いくつかの実施形態では、「ボックス使用」値を偽に設定することおよびツリーレベルを無限に設定することを含む初期値を設定し、図10に示されるようなボクセルプロセッサ処理を呼び出し、最終MTVを計算する(ステップ1115)。
システムは、最終MTVがクリッピングウインドウ内にあるかどうかを判別する(ステップ1120)。Noの場合、処理はステップ1110に戻って繰り返される。Yesの場合、システムは、最終的なMTVを処理から出力する(ステップ1125)。
いくつかの実施形態では、シェルに含まれるボリュームの代わりに、表面シェルが表面の中空シェルに基づいて用いられる。いくつかの実施形態では、本明細書中に開示される処理は、最小のベクトルを表す全体で最小の並進ベクトルをレポートおよび/または保存し、第1の部分を第2の部分と衝突しないよう移動させる。いくつかの実施形態では、最小の並進ベクトルの侵入位置または開始位置は、第1の部分のシェルの上、最深の侵入のおおよそ近いところである。位置は特有のものではなくまたは十分定義されていないため、位置は正確ではない場合がある。いくつかの実施形態では、精度はたとえば部分のテッセレーションの密度に基づいて自動的に決定される。
本実施形態により用いることのできる当業者に知られている技術には、E.G. Gilbert, D. W. Johnson, and S.S. Keerthi, "A fast procedure for computing the distance between complex objects in three-dimensional space", IEEE J. Robotics and Automation, volume 4 (1988)、S. Cameron, "Enhancing GJK: Computing Minimum and Penetration Distances between Convex Polyhedra", IEEE Int. Conf. Robotics & Automation, Albuquerque, 22-24 Apr 1997; S.A. Ehmann and M.C. Lin, "Accurate and Fast Proximity Queries between Polyhedra Using Convex Surface Decomposition", Eurographics, volume 20 (2001)、YJ. Kim. M.A. Otuduy, M.C. Lin, and D. Manocha, "Fast Penetration Depth Computation for Physically-based Animation"', ACM Symposium on Computer Animation, 21-22 July 2002に記載のものが含まれ、これらは本明細書に参照により含まれる。
簡潔さと明瞭さのために、本開示とともの使用に適した全てのデータ処理システムの完全な構成および動作が本明細書中に記載されていないことは、当業者には理解されるところである。代わりに、本開示に特有であるか、または、本開示の理解のために必要であるような1つのデータ処理システムについて多く記載されている。データ処理システム100の他の構成および動作は、当業者に知られている種々の現在実現および実施されている任意のものに適合可能である。
本開示には完全な機能システムの内容における記載が含まれるが、本開示の構成の少なくとも一部が機械使用可能な、任意の種々の形態の、コンピュータ使用可能なまたはコンピュータ読み取り可能な媒体に含まれる命令の形態で流通可能であり、本開示は流通の実際の実行に用いられる、命令または信号を保持する特定の種類の媒体またはストレージにかかわらず等しく適用することは当業者に理解されるであろう。機械使用可能/読み取り可能またはコンピュータ使用可能/読み取り可能な媒体の例には、読み取り専用メモリ(ROM)や消去可能な電気プログラム可能な読み取り専用モデル(EEPROM)等の不揮発性のハードコードタイプの媒体、および、フロッピー(登録商標)ディスク、ハードディスクドライブおよびコンパクトディスク読み取り専用メモリ(CD−ROM)またはデジタルバーサティルディスク(DVD)等のユーザ記録タイプの媒体が挙げられる。
本開示の例示実施形態について詳細に説明したが、本明細書中に開示された種々の変化、置換、変更および改善はその最も広い形における開示の精神および範囲から逸脱することなくなされうることは当業者には理解されるであろう。
本願の開示のいずれも、特定の要素、ステップまたは機能のいずれかが請求項の範囲に含まれるべき不可欠の要素であることを意味するものとして理解されるべきではない。特許された発明の範囲は、許可された請求項によってのみ定められる。さらに、「〜手段」の語が「〜」の部分に分詞が来ない限り、請求項のいずれも米国特許法112条第6パラグラフの行使を意図するものではない。
102 プロセッサ、 108 メモリ、 126 ストレージ

Claims (10)

  1. CADシステムにおいて表される第1のオブジェクトおよび第2のオブジェクトの間の最小並進ベクトル(MTV)を求める方法であって、
    CADシステムが、第1のオブジェクトおよび第2のオブジェクトを受け取るステップと、
    前記CADシステムが、前記第1オブジェクトおよび前記第2のオブジェクトを個々のファセットにテッセレーションするステップと、
    前記CADシステムが、前記第1のオブジェクトおよび前記第2のオブジェクトのそれぞれについて前記ファセットの境界ボリュームツリーを形成するステップと、
    前記CADシステムが、前記境界ボリュームツリーについて貪欲処理を実行して、修正MTVを生成するステップと、
    前記CADシステムが、前記境界ボリュームツリーおよび前記修正MTVに従って連続クリッピング処理を実行して、最終MTVを生成するステップと、
    コンピュータ読み取り可能な媒体に前記最終MTVを保存するステップと、
    を有
    前記貪欲処理は、
    初期データをロードするステップと、
    ツリーレベルと、MTVを中心とするクリッピングウインドウとを初期化するステップと、
    ツリーレベルが最大ツリーレベル以下であるとき、前記ツリーレベルおよび前記クリッピングウインドウを用いてボクセル処理を実行して、修正MTVを求めるステップと、
    前記修正MTVを保存し、かつ、前記修正MTVを出力するステップと、
    を有し、
    前記ボクセル処理は、
    ボクセル初期データをロードするステップと、
    前記クリッピングウインドウのボクセルモデルを構築するステップと、
    境界ボリュームツリー間のミンコフスキー差を計算するステップと、
    前記クリッピングウインドウと前記ミンコフスキー差との間に重なりが存在するとき、前記ボクセルモデル内の各ボクセルにマークするステップと、
    前記マークしたボクセルのうちから少なくとも1つの候補ボクセルを決定し、かつ、原点からの距離が最小のベクトルを有する候補ボクセルを求めるステップと、
    前記原点からの距離が最小のベクトルを前記修正MTVとして出力するステップと、
    を有し、
    前記連続クリッピング処理は、
    クリッピング処理の初期データをロードするステップと、
    現在のMTVを含み、従前のクリッピングウインドウよりも原点に近いクリッピングウインドウを構築し、
    前記ツリーレベルおよび前記クリッピングウインドウを用いるボクセル処理を実行し、修正MTVを求めるステップと、
    前記修正MTVが前記クリッピングウインドウ内にないとき、前記構築ステップおよび前記ボクセル処理ステップを繰り返すステップと、
    前記修正MTVを保存し、かつ、前記修正したMTVを最終MTVとして出力するステップと、
    を有する、
    ことを特徴とする方法。
  2. 前記初期データには、最小レベル、最大レベル、クリッピングウインドウサイズ、境界ボリュームツリーおよび現在のMTVの少なくとも1つが含まれる、請求項記載の方法。
  3. ボクセル初期データには、ツリーレベル、クリッピングが真か偽かを示す「ボックス使用」値、前記クリッピングウインドウ、前記境界ボリュームツリーおよび現在のMTVのうちの少なくとも1つが含まれる、請求項1または2記載の方法。
  4. プロセッサおよびアクセス可能メモリを有し、CADシステムにおいて表される第1のオブジェクトおよび第2のオブジェクトの間の最小並進ベクトル(MTV)を決定する処理を実行するCADシステムであって、前記CADシステムが、
    第1のオブジェクトおよび第2のオブジェクトを受け取り、
    前記第1オブジェクトおよび前記第2のオブジェクトを個々のファセットにテッセレーションし、
    前記第1のオブジェクトおよび前記第2のオブジェクトのそれぞれについて前記ファセットの境界ボリュームツリーを形成し、
    前記境界ボリュームツリーについて貪欲処理を実行して、修正MTVを生成し、
    前記境界ボリュームツリーおよび前記修正MTVに従う連続クリッピング処理を実行して、最終MTVを生成し、
    コンピュータ読み取り可能な媒体に前記最終MTVを保存
    前記貪欲処理として、
    初期データをロードし、
    ツリーレベルと、MTVを中心とするクリッピングウインドウとを初期化し、
    ツリーレベルが最大ツリーレベル以下であるとき、前記ツリーレベルおよび前記クリッピングウインドウを用いてボクセル処理を実行して、修正MTVを求め、
    前記修正MTVを保存し、かつ、前記修正MTVを出力し、
    前記ボクセル処理として、
    ボクセル初期データをロードし、
    前記クリッピングウインドウのボクセルモデルを構築し、
    境界ボリュームツリー間のミンコフスキー差を計算し、
    前記クリッピングウインドウと前記ミンコフスキー差との間に重なりが存在するとき、前記ボクセルモデル内の各ボクセルにマークし、
    前記マークしたボクセルのうちから少なくとも1つの候補ボクセルを決定し、かつ、原点からの距離が最小のベクトルを有する候補ボクセルを求め、
    前記原点からの距離が最小のベクトルを前記修正MTVとして出力し、
    前記連続クリッピング処理として、
    クリッピング処理の初期データをロードし、
    現在のMTVを含み、従前のクリッピングウインドウよりも原点に近いクリッピングウインドウを構築し、
    前記ツリーレベルおよび前記クリッピングウインドウを用いるボクセル処理を実行し、修正MTVを求め、
    前記修正MTVが前記クリッピングウインドウ内にないとき、前記構築ステップおよび前記ボクセル処理ステップを繰り返し、
    前記修正MTVを保存し、かつ、前記修正したMTVを最終MTVとして出力する、
    ことを特徴とするCADシステム。
  5. 前記初期データには、最小レベル、最大レベル、クリッピングウインドウサイズ、境界ボリュームツリーおよび現在のMTVの少なくとも1つが含まれる、請求項記載のCADシステム。
  6. 前記ボクセル初期データには、ツリーレベル、クリッピングが真か偽かを示す「ボックス使用」値、前記クリッピングウインドウ、前記境界ボリュームツリーおよび現在のMTVの少なくとも1つが含まれる、請求項4または5記載のCADシステム。
  7. CADシステムに設けられたプロセッサに、当該CADシステムにおいて表される第1のオブジェクトおよび第2のオブジェクトの間の最小並進ベクトル(MTV)を決定するための以下の各ステップを実行させるコンピュータプログラムであって、
    第1のオブジェクトおよび第2のオブジェクトを受け取るステップと、
    前記第1オブジェクトおよび前記第2のオブジェクトを個々のファセットにテッセレーションするステップと、
    前記第1のオブジェクトおよび前記第2のオブジェクトのそれぞれについて前記ファセットの境界ボリュームツリーを形成するステップと、
    前記境界ボリュームツリーについて貪欲処理を実行して、修正MTVを生成するステップと、
    前記境界ボリュームツリーおよび前記修正MTVに従って連続クリッピング処理を実行して、最終MTVを生成するステップと、
    コンピュータ読み取り可能な媒体に前記最終MTVを保存するステップと、
    を有
    前記貪欲処理として、
    初期データをロードするステップと、
    ツリーレベルと、MTVを中心とするクリッピングウインドウとを初期化するステップと、
    ツリーレベルが最大ツリーレベル以下であるとき、前記ツリーレベルおよび前記クリッピングウインドウを用いてボクセル処理を実行して、修正MTVを求めるステップと、
    前記修正MTVを保存し、かつ、前記修正MTVを出力するステップと、
    を該プロセッサに実行させ、
    前記ボクセル処理として、
    ボクセル初期データをロードするステップと、
    前記クリッピングウインドウのボクセルモデルを構築するステップと、
    境界ボリュームツリー間のミンコフスキー差を計算するステップと、
    前記クリッピングウインドウと前記ミンコフスキー差との間に重なりが存在するとき、前記ボクセルモデル内の各ボクセルにマークするステップと、
    前記マークしたボクセルのうちから少なくとも1つの候補ボクセルを決定し、かつ、原点からの距離が最小のベクトルを有する候補ボクセルを求めるステップと、
    前記原点からの距離が最小のベクトルを前記修正MTVとして出力するステップと、
    を該プロセッサに実行させ、
    前記連続クリッピング処理として、
    クリッピング処理の初期データをロードするステップと、
    現在のMTVを含み、従前のクリッピングウインドウよりも原点に近いクリッピングウインドウを構築し、
    前記ツリーレベルおよび前記クリッピングウインドウを用いるボクセル処理を実行し、修正MTVを求めるステップと、
    前記修正MTVが前記クリッピングウインドウ内にないとき、前記構築ステップおよび前記ボクセル処理ステップを繰り返すステップと、
    前記修正MTVを保存し、かつ、前記修正したMTVを最終MTVとして出力するステップと、
    を該プロセッサに実行させる、
    ことを特徴とするプログラム。
  8. 前記初期データには、最小レベル、最大レベル、クリッピングウインドウサイズ、境界ボリュームツリーおよび現在のMTVの少なくとも1つが含まれる、請求項記載のプログラム。
  9. ボクセル初期データには、ツリーレベル、クリッピングが真か偽かを示す「ボックス使用」値、前記クリッピングウインドウ、前記境界ボリュームツリーおよび現在のMTVの少なくと1つが含まれる、請求項7または8記載のプログラム。
  10. 請求項7乃至9記載のいずれか1項記載のプログラムが記録されているコンピュータ読み取り可能な記録媒体。
JP2011548008A 2009-01-21 2010-01-12 2つの干渉するオブジェクトを離すための並進ベクトルを求めるシステム、方法およびコンピュータプログラム Expired - Fee Related JP5404815B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14609209P 2009-01-21 2009-01-21
US61/146,092 2009-01-21
US12/549,078 2009-08-27
US12/549,078 US8497875B2 (en) 2009-01-21 2009-08-27 System, method, and computer program product for determining a translation vector
PCT/US2010/020692 WO2010085389A1 (en) 2009-01-21 2010-01-12 System, method, and computer program product for determining a translation vector that separates two interfering objects

Publications (2)

Publication Number Publication Date
JP2012515979A JP2012515979A (ja) 2012-07-12
JP5404815B2 true JP5404815B2 (ja) 2014-02-05

Family

ID=42336604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011548008A Expired - Fee Related JP5404815B2 (ja) 2009-01-21 2010-01-12 2つの干渉するオブジェクトを離すための並進ベクトルを求めるシステム、方法およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US8497875B2 (ja)
EP (1) EP2380141B1 (ja)
JP (1) JP5404815B2 (ja)
CN (1) CN102292749B (ja)
WO (1) WO2010085389A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009129824A1 (de) * 2008-04-24 2009-10-29 Siemens Aktiengesellschaft Verfahren und system zur erkennung von gruppierungseigenschaften
US9311744B2 (en) * 2012-01-09 2016-04-12 Fca Us Llc System and method for generating an outer layer representation of an object
US9633458B2 (en) * 2012-01-23 2017-04-25 Nvidia Corporation Method and system for reducing a polygon bounding box
JP5967786B2 (ja) * 2013-12-18 2016-08-10 株式会社ソニー・インタラクティブエンタテインメント シミュレーション装置
JP6534583B2 (ja) * 2015-08-25 2019-06-26 日置電機株式会社 判定装置、基板検査装置および判定方法
JP6534582B2 (ja) * 2015-08-25 2019-06-26 日置電機株式会社 判定装置、基板検査装置および判定方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243665A (en) * 1990-03-07 1993-09-07 Fmc Corporation Component surface distortion evaluation apparatus and method
US5548694A (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
JPH11328445A (ja) * 1998-03-11 1999-11-30 Matsushita Electric Ind Co Ltd 衝突判定装置および方法、および衝突判定方法を記録した媒体
JP3415438B2 (ja) * 1998-05-12 2003-06-09 富士通株式会社 干渉チェック装置および方法
JP3425760B2 (ja) * 1999-01-07 2003-07-14 富士通株式会社 干渉チェック装置
JP2003006245A (ja) * 2001-06-26 2003-01-10 Ricoh Co Ltd 3次元形状処理装置および3次元形状処理方法
JP4748770B2 (ja) * 2005-03-29 2011-08-17 キヤノン株式会社 近接点算出方法および装置
CN101071515A (zh) * 2007-06-25 2007-11-14 北京金山软件有限公司 一种在服务器端实现三维游戏碰撞检测的方法
CN101093586A (zh) * 2007-07-12 2007-12-26 上海交通大学 面向复杂场景实时交互操作的并行碰撞检测方法

Also Published As

Publication number Publication date
EP2380141A1 (en) 2011-10-26
US20100182344A1 (en) 2010-07-22
US8497875B2 (en) 2013-07-30
JP2012515979A (ja) 2012-07-12
CN102292749B (zh) 2014-03-12
CN102292749A (zh) 2011-12-21
WO2010085389A1 (en) 2010-07-29
EP2380141B1 (en) 2014-04-02

Similar Documents

Publication Publication Date Title
JP5404815B2 (ja) 2つの干渉するオブジェクトを離すための並進ベクトルを求めるシステム、方法およびコンピュータプログラム
CN110232741B (zh) 多层包围盒确定方法、碰撞检测及运动控制方法与设备
EP3623759B1 (en) A computer-implemented method and a system for defining a path for a vehicle within an environment with obstacles
JP6282798B2 (ja) 工作物の機械加工のシミュレーション
JP2018129031A (ja) 3dプリンティングのための現実の物体の向き付け
KR102370617B1 (ko) 적응적 샘플링을 수행하여 영상을 처리하는 방법 및 장치.
JP6294072B2 (ja) 剛体運動によって変換される幾何学要素
JP7521894B2 (ja) メッシュからの特徴木の抽出
JP7564624B2 (ja) 突起又は窪みを特徴とする部分の設計
CN111815774A (zh) 真实场景的结构的3d重建
CN113112600B (zh) 基于结构的室内场景三维建模方法
JP2022075560A (ja) 開表面を用いた現実のシーンの構造の3d再構成
US20170161944A1 (en) System and method of constructing bounding volume hierarchy tree
KR102476800B1 (ko) 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치
US11657195B2 (en) Processing a 3D signal of a shape attribute over a real object
CN116764225B (zh) 一种高效寻路的处理方法、装置、设备及介质
KR101500814B1 (ko) 구들의 교집합을 이용한 바운딩 볼륨 생성 장치 및 방법
KR102467031B1 (ko) 가속 구조를 생성 및 탐색하는 방법
CN112802151B (zh) 一种墙线绘制方法、电子设备、存储介质
Quadros et al. 3 D discrete skeleton generation by wave propagation on PR-octree for finite element mesh sizing
US9400854B2 (en) Aerospace joggle on multiple adjacent web faces with intersecting runouts
KR20160058299A (ko) 3차원 객체의 슬라이싱 및 층별 윤곽 계산 장치 및 방법
JP6636001B2 (ja) 画像処理装置、画像処理方法およびプログラム
KR101048018B1 (ko) 보수적 전진 기법을 이용한 실시간 충돌 검사 방법 및 시스템
KR100876641B1 (ko) 서브쉘을 이용한 접촉감지 방법 및 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130312

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130930

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131029

R150 Certificate of patent or registration of utility model

Ref document number: 5404815

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees