【解決手段】処理部31は、変形モデルの変形計算31aと、操作パラメータを他の変形シミュレーション装置へ送信する送信処理31bと、変形モデルの変形状態を同期させる同期処理31cと、を行う。同期処理31cは、他の変形シミュレーション装置が有する変形モデルの局所領域の変形状態情報を、他の変形シミュレーション装置に対して要求する要求処理と、他の変形シミュレーション装置から取得した変形状態情報を、自装置が有する変形モデルに反映させる反映処理と、を含む。前記要求処理は、自装置が有する変形モデルと他の変形シミュレーション装置が有する変形モデルとの間の変形誤差の推定値に基づいて、前記要求処理が必要であると判定されたときに行われる。
前記同期処理は、複数の他の変形シミュレーション装置の前記入力デバイスによって操作される複数の仮想ツールそれぞれが前記変形モデルに接触する位置同士が近接していると判定された場合に、複数の他の変形シミュレーション装置のうちの一の変形シミュレーション装置を選択する選択処理を更に含み、
前記反映処理は、前記選択処理によって選択された変形シミュレーション装置が有する前記変形モデルの局所領域の変形状態情報を、自装置が有する変形モデルに反映させる
請求項1又は2記載の変形シミュレーションシステム。
前記要求処理は、前記変形状態情報を自装置へ送信することを、複数の他の変形シミュレーション装置のうち前記選択処理によって選択された変形シミュレーション装置に対して要求する
請求項3記載の変形シミュレーション装置。
【発明を実施するための形態】
【0013】
以下、本発明の好ましい実施形態について添付図面を参照しながら説明する。
【0014】
[1.変形シミュレーションシステム(手術シミュレータ)]
図1は、変形シミュレーションシステム1を示している。この変形シミュレーションシステム1は、例えば、内視鏡下の低侵襲手術のための手術シミュレータとして用いられる。変形シミュレーションシステム1は、遠隔地にある複数の拠点(第1地点、第2地点、第3地点)それぞれに設置された複数(
図1では3つ)の変形シミュレーション装置10A,10B,10Cを有して構成されている。各拠点にいる複数のユーザ(例えば、指導医と指導を受ける若手医師)それぞれが、変形シミュレーション装置10A,10B,10Cを操作し、仮想空間上の臓器(変形モデル)に対して、触覚を伴った協働作業を行うことで、手術訓練を行うことができる。
【0015】
各変形シミュレーション装置10A,10B,Cは、それぞれ、ネットワーク2を介して互いに接続されたコンピュータ3A,3B,3C、及び、コンピュータ3A,3B,3Cに接続された力覚入出力デバイス4A,4B、4Cを備えている。各拠点のコンピュータ3A,3B,3CはP2P方式で、通信を行う。各拠点のコンピュータ3A,3B,3Cは、それぞれが、同一の臓器(手術対象部位)の3次元変形モデル(臓器モデル)を有し、当該変形モデルの変形計算を行う。
【0016】
力覚入出力デバイス4A,4B、4Cは、手術において医師が使用する鉗子・電気メスなどの手術器具としての役割を手術シミュレータ1において果たすものであり、仮想空間上の手術器具(仮想ツール)をユーザが操作するための入力デバイスである。各拠点のユーザが力覚入出力デバイス4A,4B,4Cに設けられたスタイラス4A−1,4B−1を操作することで、仮想空間上の手術器具(仮想ツール)を操作し、手術器具を介して現実の臓器に対する処置を行うのと同様の操作を、仮想空間上の臓器モデルに対して行うことができる。また、力覚入出力デバイス4A,4Bは、各ユーザが力覚入出力デバイス4A,4Bを介して仮想空間上の変形モデル(臓器モデル)を操作(インタラクション)した際の力覚を各ユーザに提示することができる。
【0017】
図2に示すように、各コンピュータ3A,3B,3Cは、CPUなどからなる処理部31と、変形モデルなどを記憶する記憶部32と、を備えている。
処理部31は、変形計算31a、通信処理(送信処理と受信処理)31b、同期処理31c、描画処理31d、及び力覚処理31eなどの処理を行う。
【0018】
変形計算31aでは、記憶部32に記憶された変形モデルの変形計算を行う。つまり、各変形シミュレーション装置10A,10B,10Cの処理部31は、自装置10A,10B,10Cが有する変形モデルの変形計算を行う。
変形計算31aでは、各拠点の力覚入出力デバイス4A,4B,4Cにおけるユーザ操作に応じて各デバイス4A,4B,4Cから出力された操作パラメータに基づいて、各コンピュータ3A,3B,3Cが有する変形モデルの変形計算が行われる。変形計算31aでは、複数の力覚入出力デバイス4A,4B,4Cからの操作パラメータに基づいてスタイラス4A−1,4B−1,4C−1によって操作される仮想ツールが、変形モデルの表面に接触しているか否かを判定し、もし接触しているならば、変形モデルの表面を共有している4面体メッシュ要素に対して、仮想ツールから変形モデルに与えている力の算出を行う。変形計算では、仮想ツールの衝突時に変形モデルにかかる力を基に、例えば質点バネダンパモデルを用いて、各メッシュ要素にかかる力の算出を行う。
【0019】
通信処理31bでは、他のコンピュータ3A,3B,3Cと間で通信が行われる。通信処理31bでは、各拠点のユーザが力覚入出力デバイス4A,4B,4Cを操作することで得られた操作パラメータを送受信する。操作パラメータには、スタイラス4A−1,4B−1,4C−1の3次元位置・姿勢情報及びデバイス4A,4B,4Cに備わったボタンのON/OFF情報のほか、当該3次元位置・姿勢情報のタイムスタンプなどが含まれる。操作パラメータの詳細については後述する。
処理部31は、自装置10A,10B,10Cに備わった力覚入出力デバイス4A,4B,4Cから取得した操作パラメータを、ネットワーク2を介して、他の全ての変形シミュレーション装置へ送信する。したがって、処理部31は、自装置10A,10B,10Cに備わった力覚入出力デバイス4A,4B,4Cの操作パラメータのほか、他の変形シミュレーション装置10A,10B,10Cに備わった力覚入出力デバイス4A,4B,4Cの操作パラメータを取得することができる。
例えば、第1地点の変形シミュレーション装置10Aは、自装置10Aの力覚入出力デバイス4Aから出力された操作パラメータのほか、通信処理31bによって、遠隔地(第2地点及び第3地点)の力覚入出力デバイス4B,4Cから出力された操作パラメータも、当該遠隔地から受信できる。したがって、遠隔地の力覚入出力デバイス4B,4Cによる操作も自装置10Aが有する変形モデルの変形計算に反映させることができる。したがって、遠隔拠点間で、協働して変形モデルを操作することができる。
【0020】
同期処理31cでは、自装置10A,10B,10Cが有する変形モデルの変形状態と、他の変形シミュレーション装置10A,10B,10Cが有する変形モデルの変形状態を同期させる。この同期処理31cでは、変形誤差の大きくなった変形シミュレーション装置10A,10B,10Cが、より精度の良い変形モデルを有する他の変形シミュレーション装置10A,10B,10Cから、変形モデルの局所領域の変形状態情報(局所領域情報)を取得し、取得した変形状態情報(局所領域情報)を、自装置10A,10B,10Cの変形モデルに反映させることで、変形誤差を解消する。
【0021】
描画処理31dでは、変形計算31aによって計算された変形モデルの変形状態を示す画像を生成し、モニタ36へ出力する。これにより、ユーザは、仮想空間上の変形モデル(臓器モデル)を視覚的に認識することができる。なお、描画処理31dでは、変形モデルに加えて、スタイラス4A−1,4B−1,4C−1によって操作される仮想ツールを示す画像も、変形モデルの画像とともに生成する。すなわち、モニタ36には、内視鏡手術において内視鏡から得られる映像と同様の仮想空間映像を表示することができる。
【0022】
力覚処理31eでは、変形計算31aによって計算された変形モデルに基づき、自装置10A,10B,10Cの力覚入出力デバイス4A,4B,4Cによって操作される仮想ツールにかかる力(反力)を計算し、自装置10A,10B,10Cの力覚入出力デバイス4A,4B,4Cに出力する。これにより、変形モデルの変形に伴う力覚をユーザへフィードバックすることができる。
【0023】
記憶部32には、臓器モデルである変形モデルを示す情報(変形モデル情報)32aが記憶される。変形モデル情報32aは、変形モデルを構成する四面体メッシュ要素の木構造を示す木構造情報を有して構成されている。
記憶部35には、コンピュータ3A,3B,3Cに、変形シミュレーション装置10A,10B,10Cとしての処理31a,31b,31c,31dを実行させるためのコンピュータプログラムも格納されている。このコンピュータプログラムがコンピュータ3A,3B,3Cにおいて実行されることで、コンピュータ3A,3B,3Cは、変形シミュレーション装置10A,10B,10Cにおける必要な機能を発揮する。
【0024】
[2.変形モデル]
力覚を伴う手術シミュレーションでは、臓器のような柔軟物体と手術ツールとのインタラクションを高精度かつリアルタイムに再現し表示する必要がある。柔軟物体の変形モデルとしては、質点バネダンパモデル(MSDM)と有限要素法(FEM)とを用いたモデルが代表的である。
本発明者らは、高い精度と計算コスト低減とを両立するため、必要に応じて複数の精度のモデルを使い分ける適応的四面体を用いた多重解像度モデルとオンラインリメッシュを提案しており(非特許文献2参照)、本実施形態の変形モデルおいても、適応的四面体を用いた多重解像度モデルとオンラインリメッシュが採用されている。
【0025】
変形モデルとなる多重解像度モデルは以下の手順にて作成される。まず、臓器などの手術対象部位を示すボリュームデータが持つ空間全体を初期立方体(
図3(a)参照)の格子で区切る。ボリュームデータは、CTやMRIで撮影された断層画像から得られる。それぞれの初期立方体(初期立方体メッシュ要素)は、
図3(b)に示すように、6等分され、6つ同形の四面体メッシュ要素(ルート四面体)から構成される。
【0026】
四面体メッシュ要素(以下、単に「四面体」という)は、ボリュームデータの複雑さに応じて、再帰的に二分割される。四面体メッシュ要素の二分割は、四面体の最長辺(基辺)の中点において行われる。
四面体の再帰的二分割の過程では、
図4に示すように、親四面体の分割レベルを3kとすると、分割レベルが3k,3k+1,3k+2,3(k+1)と進むごとに、四面体の形状は、TYPE0,TYPE1,TYPE2、さらに、(分割レベル=3kのTYPE0の各辺を半分にした)TYPE0の順に循環する。なお、初期立方体を6等分した四面体は、TYPE0である。
二分割は、ボリュームデータの等値面の曲率などの局所的特徴の変化に応じて、指定された近似精度を満たすまでに再帰的に行われる。より具体的には、ある四面体を二分割するか否かは、その四面体とその近傍領域の局所的特徴の変化に基づいて決定され、もし、その四面体と近傍領域内の近似精度が、指定の近似精度に達していなければ、その四面体は二分割される。
【0027】
このような再帰的二分割によって、局所的特徴の変化の大きい箇所(モデルの境界部分など)は、より小さな四面体によって構成されるとともに、局所的特徴の変化の小さい箇所は、より大きな四面体によって構成される。すなわち、メッシュ要素の解像度(分割レベル)がモデルの部分によって異なる多重解像度の変形モデルが得られる。
【0028】
上記のようにして得られた多重解像度の変形モデルは、
図5に示すように、二分木階層構造を用いて表現される。二分木構造の各ノードが四面体に対応する。
図5に示す二分木構造おいて、分割レベルがLeve1のノード(ルートノード)が、初期立方体を構成するルート四面体(TYPE0)の一つであるとすると、Level2の2つの子ノードは、ルート四面体を二分割した2つの四面体(TYPE1)を示している。Level3の孫ノードは、Level2の四面体(TYPE1)をさらに二分割した四面体(TYPE2)を示し、Level4のひ孫ノードは、Level3の四面体(TYPE2)をさらに二分割した四面体(TYPE0)を示し、Level5(の四面体(TYPE0)の玄孫ノードは、Level4の四面体(TYPE0)をさらに二分割した四面体(TYPE1)を示している。
【0029】
図5の木構造において、黒丸はリーフノードであり、多重解像度の変形モデルは、各リーフノードに対応する四面体(リーフメッシュ要素;リーフ四面体)によって構成される。変形モデルを構成する四面体は、
図5のリーフノードのレベルが異なるレベルに分散していることからも明らかなように、局所的に分割レベル(解像度)が異なっている。
なお、変形モデルは、多数のルート四面体を再帰的に二分割することによって構成されているため、一つの変形モデルは、複数の二分木構造の集合によって表現される。
変形モデルの木構造を示す木構造情報は、記憶部32に記憶されている。木構造情報には、各ノードが、リーフノードであるか否かを示すリーフノードフラグが含まれている。
【0030】
オンラインリメッシュが採用されている本実施形態では、変形計算31aにおいて、変形モデルに対する仮想ツールによる接触(インタラクション)などによって動的に生じる各四面体の歪の大きさに従って、変形操作が与えられた部分領域の四面体を再帰的に二分割又は二統合する。
例えば、
図6に示すように、仮想ツール(鉗子など)によって引っ張り操作が与えられた変形モデルの部分領域のうち、仮想ツール側(
図6に示す変形モデルの左上側)に近いほど、変形が大きい(歪が大きい)ため、二分割が多く行われて細分化され、より細かい四面体(例えば、分割Level5の四面体)によって構成されることになる。逆に、引っ張り操作が解除されると、変形が小さいくなる(歪が小さくなる)ため、四面体の二統合が行われて、より粗い四面体(例えば、分割Level3の四面体)によって構成されることになる。
このようにオンラインリメッシュでは、変形モデルに対して動的に生じる変形に応じて、メッシュ要素である四面体の二分割又は二統合が動的に行われるため、計算量を抑えつつ精度良い変形モデルが得られる。
【0031】
本実施形態では、変形モデルの解像度(メッシュ体の分割レベル)の最大値は、各コンピュータ3A,3B,3Cの処理能力に応じて、異なって設定される。変形モデルの解像度が大きくなると変形計算の処理負荷が増大するため、処理能力の低いコンピュータ3A,3B,3Cの場合は最大解像度を比較的低く設定しておき、変形計算の処理負荷を軽減する一方、処理能力の高いコンピュータ3A,3B,3Cの場合は最大解像度を比較的高く設定しておく。コンピュータ3A,3B,3Cの処理能力の相違に応じて、最大解像度を異ならせることで、変形モデルの変形計算の進行速度を揃えることができる。変形モデルの変形計算の進行速度を揃えることで、コンピュータ3A,3B,3Cの処理能力の相違に起因して特定のコンピュータの処理に遅れが生じることを防止することができる。
【0032】
[3.変形モデルの同期]
図7は、各変形シミュレーション装置10A,10B,10Cの処理部31によって実行される処理のうち、操作パラメータの取得から変形計算及び同期処理に至る処理を示している。ここでは、主に、第1地点に設置された第1変形シミュレーション装置10Aにおける処理を示すが、第2及び第3シミュレーション装置10B,10Cにおける処理も同様である。
【0033】
処理部31は、操作パラメータの送受信に関する処理を行う(ステップS1)。操作パラメータの送受信に関する処理(ステップS1)には、操作パラメータを自装置10Aの力覚入出力デバイス4Aから取得する第1取得処理、操作パラメータを他の装置10B,10Cから取得する第2取得処理、自装置10Aの力覚入出力デバイス4Aから取得した操作パラメータを他の装置10B,10Cへ送信する送信処理、及び、他の装置10B,10Cから取得すべき操作パラメータを予測(外挿入補間)する予測処理などが含まれる。
【0034】
処理部31が自装置10Aの力覚入出力デバイスから取得する操作パラメータには、スタイラス4A−1,4B−1,4C−1の3次元位置・姿勢情報及びデバイス4A,4B,4Cに備わったボタンのON/OFF情報といった操作に関する基本情報が含まれる。
処理部31が、操作パラメータを他の装置10B,10Cへ送信する場合には、基本情報のほか、付加情報が付加される。付加情報としては、基本情報に対応するタイムスタンプ(基本情報を取得した時間又は基本情報を送信した時間を示すタイムスタンプ)が含まれる。
付加情報には、更に、仮想ツールが変形モデルに接触開始した時刻を示す接触時刻情報と、局所領域内の四面体の最大分割レベルを示す最大分割レベル情報と、が含まれる。
【0035】
接触時刻情報は、自装置10のスタイラス4A−1によって操作される仮想ツールが、変形モデルに接触している場合に付加される情報であり、当該接触が開始された時刻を示す。
最大分割レベル情報も、自装置10のスタイラス4A−1によって操作される仮想ツールが、変形モデルに接触している場合に付加される情報である。最大分割レベル情報は、当該仮想ツールが変形モデルに接触している場合に、その接触位置の近傍の範囲(局所領域)内の四面体の分割レベルのうち最大の分割レベルを示す。なお、局所領域の決め方については後述する。
【0036】
複数の変形シミュレーション装置10A,10B,10C間では、基本情報に付加情報を付加した操作パラメータ(送信情報)の送受信が、例えば、1msec周期といった高周期で繰り返される。
【0037】
処理部31は、取得した操作パラメータに基づいて、自装置10Aが有する変形モデルの変形計算31aを行う(ステップS2)。
しかし、変形シミュレーション装置10A,10B,10C間の通信におけるレイテンシ(ジッタ)・パケットロスによって、他の変形シミュレーション装置10B,10Cから送信された操作パラメータ(送信情報)が変形シミュレーション装置10Aに届くのが遅れたり、届かなかったりすることがある。
変形計算31aの際には、同一時刻における各装置10A,10B,10Cの操作パラメータを用いるべきであるが、他の装置10B,10Cの操作パラメータの取得が遅れると、変形計算が遅れたり、適切な変形計算が行えなくなる。この結果、各装置10A,10B,10C間で変形誤差が大きくなる。
【0038】
そこで、前述のステップS1において説明したように、他の装置10B,10Cから取得すべき操作パラメータを予測(外挿補間)する予測処理を行い、他の装置10B,10Cから操作パラメータを取得できていない段階でも、予測した操作パラメータを用いて変形計算31aを行う。操作パラメータの予測は、過去の(取得済みの)操作パラメータに基づいて外挿補間によって取得すべき操作パラメータの予測値を生成する。したがって、変形計算31aの際には、自装置10Aの力覚入出力デバイス4Aから取得した最新の操作パラメータと、当該最新の操作パラメータと同一の時刻における他の装置10B,10Cの操作パラメータ(予測値)を用いることができる。
【0039】
ただし、操作パラメータの予測を行っても、レイテンシ(ジッタ)が大きくなったり、パケットロスが頻繁に発生すると、各装置10A,10B,10C間の変形誤差が大きくなり易い。
【0040】
そこで、処理部31は、自装置10Aが有する変形モデルと他の変形シミュレーション装置10B,10Cが有する変形モデルとの間の変形誤差を推定し、その推定値に基づいて、他の装置10B,10Cとの間で変形モデルの同期処理31cが必要か否かを判定する(ステップS3;変形誤差判定)。
ここで、変形誤差を正確に求めるには、自装置10Aが有する変形モデルを、他の装置10B,10Cが有する変形モデルと比較する必要がある。しかし、他の装置10B,10Cの変形モデル全体の変形状態情報を頻繁に取得するのは、通信負荷を増大させ好ましくない。そこで、本実施形態では、変形誤差を直接求めるのではなく、変形誤差に影響を与える情報(指標)に基づいて変形誤差を推定する。本実施形態では、変形誤差は、自装置10Aと他の装置10B,10Bそれぞれとの間の通信状況を示す指標に基づいて算出される。
【0041】
本実施形態において、通信状況としては、ジッタなどに起因する操作パラメータの到着遅延時間Td、パケットロスが発生した時間幅Tlが用いられる。到着遅延時間Tdは、操作パラメータに含まれるタイムスタンプを参照し、通常の通信遅延量を超えて遅延して到着した場合の遅延時間として算出される。また、パケットロスの発生時間幅Tlは、操作パケットの最大許容遅延量を超えても操作パラメータが到着しない状況(パケットロス)が発生している時間幅として算出される。
【0042】
複数の他の装置10B,10Cが存在する場合、変形誤差は、他の装置10B,10C毎に算出される。
通信状況が悪化して遅延時間Tdやパケットロス時間幅Tlが大きくなると、他の装置10B,10Cからの操作パラメータが適切に反映されにくくなるため、変形誤差が増大し易い。したがって、このような遅延時間Tdやパケットロス時間幅Tlは変形誤差の大きさを推定するのに用いることができる。
【0043】
変形誤差の推定値U1errは、Td及びTlを用いて、例えば、k1×(ΣTd+ΣTl)として算出される。ここで、k1は係数であり、適宜設定される。TdとTlの総和(直前の同期処理後において観測された遅延時間Td及びパケットロス時間幅の総和)に係数k1を乗じることで、変形誤差の推定値(変形誤差の大きさを示す指標)U1errを算出することができる。
そして、変形誤差の推定値U1errを、閾値と比較することで、変形誤差判定(ステップS3)を行うことができる。
変形誤差の推定値U1errが、閾値よりも大きい場合(「誤差大」の場合)、同期処理31cが行われる。つまり、ステップS3は、同期処理における各処理(要求処理など)の実行が必要であるか否かの判定処理となっている。
変形誤差の推定値U1errが、閾値よりも小さい場合(「誤差小」の場合)、ステップ1に戻り、操作パラメータの取得等と変形計算とが繰り返される。
【0044】
変形誤差の推定値は、タイムスタンプを用いて算出される通信状況を示す指標に限られず、通信状況を示すその他の指標、あるいは、他の装置10B,10Cから送信された操作パラメータに含まれる「局所領域内の四面体の最大分割レベルを示す最大分割レベル情報」を用いてもよい。
最大分割レベル情報を用いる場合、他の装置10B,10Cの変形モデルにおける局所領域の最大分割レベルと、自装置10Aの変形モデルにおいて前記局所領域と対応する領域の最大分割レベルと、の差(モデル解像度の差)ldiffを求め、当該差に基づいて、変形誤差の推定値を求めても良い。
分割レベルは変形モデルの変形度に応じて大きくなるため、同一の局所領域における分割レベルの差(モデル解像度の差)ldiffは、変形誤差の大きさを推定するのに用いることができる。この場合、変形誤差の推定値U2errは、分割レベルの差ldiffを用いて、例えば、k2×ldiffとして算出される。ここで、k2は係数であり、適宜設定される。
【0045】
また、変形誤差の推定値Uerrは、前記の推定値U1err及び推定値U2errの双方を用いて算出された値であってもよい。
【0046】
ステップS3において、複数の他の装置10B,10Cそれぞれの変形モデルとの間の変形誤差が推定され、少なくとも一つの他の装置10B,10Cの変形モデルとの間の変形誤差が大であると判定されると、変形誤差が大である他の装置10B,10Cそれぞれとの間で変形モデルの同期処理31cが行われる。
【0047】
同期処理31cは、局所領域重複判定処理(ステップS4)、選択処理(ステップS5)、局所領域情報要求処理(ステップS6)、局所領域情報受信処理(ステップS8)、反映処理(ステップS9)を含む。所領域重複判定処理(ステップS4)及び選択処理(ステップS5)の説明は後述する。ここでは、第1変形シミュレーション装置10Aは、第2変形シミュレーション装置10Bとの間で、変形誤差が大きくなり、同期処理を行うものとして、ステップS6以降を説明する。
【0048】
図8にも示すように、処理部31は、ステップS6において、第2変形シミュレーション装置10B(変形誤差が大きい他の装置)に対して、局所領域情報の送信を要求する。ここでの局所領域は、第2変形シミュレーション装置10Bの力覚入出力デバイス4Bによって操作される仮想ツールが変形モデルに接触している場合に、その接触位置の近傍の範囲である。第2変形シミュレーション装置10Bの仮想ツールが変形モデルに接触している位置近傍の領域においては、第2シミュレーション装置10Bが有する変形モデルにおける変形状態が最も正確であると考えられる。つまり、第2シミュレーション装置10Bの仮想ツールによる変形モデルへの操作は、第2シミュレーション装置10Bに備わった力覚入出力デバイス4Bによって行われるため、第2シミュレーション装置10Bの処理部31は、第2シミュレーション装置10Bの仮想ツールによる変形モデルへの操作を示す操作パラメータを、ネットワーク2における通信遅延などの影響を受けることなく取得し、局所領域における変形計算を比較的正確に行うことができる。
【0049】
一方、第1シミュレーション装置10Aにおいては、第2シミュレーション装置10Bの仮想ツールが変形モデルへ接触している位置近傍(局所領域)の変形計算を正確に行うには、第2シミュレーション装置10Bから操作パラメータを取得する必要があり、変形計算の精度が低下しやすい。
【0050】
そこで、第2シミュレーション装置10Bとの間で変形誤差が大きいと判定した第1シミュレーション装置10Aの処理部31は、第2シミュレーション装置10Bに対して、第2シミュレーション装置10Bの仮想ツールが変形モデルに接触している位置近傍の領域である局所領域の変形状態情報(局所領域情報)の送信を要求する(ステップS6)。
その要求を受けた第2シミュレーション装置10Bは、第2シミュレーション装置10Bによって操作される仮想ツールが変形モデルに接触しているか否かを判定し、自身の仮想ツールが変形モデルに接触していれば、その接触位置近傍の局所領域の変形状態情報(局所領域情報)を生成し、生成した局所領域情報を、第1シミュレーション装置10Aに対して送信する。
【0051】
第2シミュレーション装置10Bは、第2シミュレーション装置10Bによって操作される仮想ツールが変形モデルに接触していると判定した場合、局所領域情報として送信すべき局所領域を決定する。局所領域は、前述のように、第2変形シミュレーション装置10Bの力覚入出力デバイス4Bによって操作される仮想ツールが変形モデルに接触している位置の近傍の領域である。局所領域は、
図9に示すように、仮想ツール先端Cを中心として設定されたバウンディングボリューム(球など)に内容される変形モデルの領域として決定される。また、局所領域は、第2シミュレーション装置10Bが有する変形モデルにおいて分割レベルが初期の分割レベルよりも閾値以上深くなった場所の近傍領域(変形が大きい領域)として決定することができる。
第2シミュレーション装置10Bは決定された局所領域における変形状態を示す情報を局所領域情報として生成する(
図8参照)。
【0052】
なお、第2シミュレーション装置10Bは、居所領域情報の要求を受けても、自身の仮想ツールが変形モデルに接触していない場合、局所領域情報は送信しない。
したがって、第1シミュレーション装置10Aが、第2シミュレーション装置10Bの局所領域情報を受信した場合(ステップS8)、第2シミュレーション装置10Bの仮想ツールがその局所領域内で変形モデルに接触しており、この場合、前述のように、その局所領域情報は、当該局所領域における変形状態を比較的正確に示す情報(正解情報)であるとみなすことができる。
【0053】
そこで、第1シミュレーション装置10Aの処理部31は、第2シミュレーション装置10Bから取得した局所領域情報(正解情報)を、自身10Aが有する変形モデルにおける対応する局所領域の変形状態として、自身10Aが有する変形モデルに反映させる(ステップS9)。これにより、両装置10A,10Bの変形モデルの変形状態が、当該局所領域においては、より正確な第1シミュレーション装置10Aにおける変形状態に統一され、同期がとれた状態となる(
図8参照)。
【0054】
本実施形態では、変形モデルの解像度(メッシュ体の分割レベル)の最大値は、各コンピュータ3A,3B,3Cの処理能力に応じて、異なって設定されているため、他の装置10Bが自装置10Aよりも高解像度である場合、自装置10Aが他の装置10Bから取得した局所領域情報は、低解像度に落とされた上で、自装置10Aの変形モデルに反映させる。
ただし、装置10Aが取得した高解像度の局所領域情報は、処理負荷の大きい変形計算31aには用いなくても、描画処理31dや力覚処理31eには用いても良い。この場合、高解像度の局所領域情報を有効活用することができる。
【0055】
さて、複数の仮想ツールが近接して変形モデルに接触している場合がある。例えば、第2変形シミュレーション装置10Bのデバイス4Bによって操作される仮想ツールと、第3変形シミュレーション装置10Cのデバイス4Cによって操作される仮想ツールと、が変形モデルにおける近接した位置に接触していることがある。このような場合において、第1変形シミュレーション装置10Aが、複数の他の装置10B,10Cそれぞれとの変形誤差が大きいと判定し、複数の他の装置10B,10Cそれぞれに対して局所領域情報の要求(ステップS6)を送信してしまうと、複数の他の装置10B,10Cそれぞれが、局所領域情報を生成して、第1変形シミュレーション装置10Aに送信してくることになる。この場合、第1変形シミュレーション装置10Aが他の装置10B,10Bから取得した局所領域情報は重複したものとなる。
【0056】
取得した局所領域情報が重複したものとなることを避けるべく、
図7に示す同期処理では、局所領域情報要求(ステップS6)に先立って、局所領域重複判定(ステップS4)が行われ、局所領域が重複していると判定された場合には、局所領域情報を要求すべき一の装置10Bを選択する選択処理(ステップS5)が行われる。
局所領域重複判定(ステップS4)は、複数の他の装置10B,10Cのデバイス4B、4Cによって操作される仮想ツールそれぞれが変形モデルに接触する位置同士が近接しているか否かの判定となっている。この判定のために、第1変形シミュレーション装置10Aの処理部31は、他の装置10B,10Cのデバイス4B、4Cによって操作される仮想ツールそれぞれが接触している局所領域を求め、それらの局所領域が重複しているか否かによって、複数の仮想ツールそれぞれが変形モデルに接触する位置同士が近接しているか否かを判定する。
【0057】
第1変形シミュレーション装置10Aの処理部31は、他の装置10B,10Cのデバイス4B、4Cによって操作される仮想ツールそれぞれが接触している局所領域を求めるために、他の装置10B,10Cそれぞれから取得した操作パラメータ(基本情報)に基づいて、他の装置10B、10Cのデバイス4B、4Cによって操作される仮想ツールの先端位置C1,C2(
図10参照)を求める。求めた先端位置C1,C2それぞれから、他の装置10B,10Cにおいて決定される局所領域を推定する。具体的には、先端位置C1,C2から他の装置10B,10Cにおけるバウンディングボリュームの領域B1,B2を推定し、その領域B1,B2を他の装置10B,10Cの局所領域とする。
そして、第1変形シミュレーション装置10Aは、推定した局所領域B1,B2が重複しているか否かを判定する。
【0058】
なお、局所領域重複判定(ステップS4)は、他の装置10B,10Cから局所領域の範囲を示す情報を取得して行っても良い。
また、仮想ツールそれぞれが変形モデルに接触する位置同士が近接しているか否かの判定は、局所領域の重複によって判定するものに限られず、複数の仮想ツールが変形モデルに接触して位置同士間の距離によって判定してよい。
【0059】
局所領域が重複していると判定された場合、第1変形シミュレーション装置10Aの処理部31は、局所領域が重複する他の装置10B、10Cから、局所領域情報を要求すべき一の装置10Bを選択する(ステップS5)。この選択は、他の装置10B,10Cから取得した操作パラメータに含まれる「接触時刻情報」に基づいて行われる。例えば、他の装置10B,10Cのうち、接触時刻情報が示す時刻が最先である装置(最先に接触した装置)を選択したり、逆に、接触時刻情報が示す時刻が最後である装置(最後に接触した装置)を選択したりすることができる。
【0060】
第1変形シミュレーション装置10Aの処理部31は、以上のようにして選択された一の装置(例えば、第2変形シミュレーション装置10B)に対して、局所領域情報を要求する(ステップS6)。
【0061】
図7では、選択処理(ステップ5)は、要求処理(ステップS6)に先立って行われるが、複数の他の装置10B,10Cから一の装置を選択することを行わずに、複数の他の装置10B,10Cに対して要求処理(ステップS6)を行い、複数の他の装置10B,10Cから取得した後に、選択処理を行っても良い。この場合、取得した局所領域情報によって局所領域の重複を判定でき、選択された装置Bから送信された局所領域情報が自装置10Aの変形モデルに反映される。
なお、
図7に示すように、選択処理(ステップ5)を要求処理(ステップS6)に先立って行うことで、不要な局所領域情報(例えば、第3変形シミュレーション装置10Cの局所領域情報)が送信されるのを防止して、通信負荷を低減することができる。
【0062】
装置10A,10B,10C間で送受信される操作パラメータには、各仮想ツールが変形モデルに接触しているか否かといった仮想ツールの状態を示す情報を含めても良い。変形モデルが装置10A,10B,10Cが相違することによって、ある仮想ツールがある装置では変形モデルに接触しているが、他の装置では変形モデルに接触していない場合が生じることがある。操作パラメータに仮想ツールの状態を示す情報を含めることで、より適切に同期処理の必要性を判定したり、選択処理を適切に行うことが可能となる。
【0063】
なお、本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。