JP2004081715A - 仮想動態の触覚提示方法および装置 - Google Patents
仮想動態の触覚提示方法および装置 Download PDFInfo
- Publication number
- JP2004081715A JP2004081715A JP2002249901A JP2002249901A JP2004081715A JP 2004081715 A JP2004081715 A JP 2004081715A JP 2002249901 A JP2002249901 A JP 2002249901A JP 2002249901 A JP2002249901 A JP 2002249901A JP 2004081715 A JP2004081715 A JP 2004081715A
- Authority
- JP
- Japan
- Prior art keywords
- tactile
- pointer
- contact
- dimensional model
- dynamic
- 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.)
- Pending
Links
Images
Landscapes
- Magnetic Resonance Imaging Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】触覚提示デバイスを用い、コンピュータ内の3次元モデルに触るアプリケーションにおいて、自ら動く物体に触る際に、ポインタが物体内部になってしまった場合の接触判定ができなかったという課題があり、高速に動態モデルとポインタの接触判定を行う技術が必要であった。
【解決手段】キーフレームとなるポリゴンモデルを作成し(ステップ100)、Octreeを作成する(ステップ102)ことにより接触判定の計算量を減らし、動態変形に対応したオフセットを利用(ステップ108)することにより、動態とポインタの接触判定を行って触覚を提示する(ステップ124)。
【効果】高速に動態とポインタとの接触判定を行うことが可能となり、コンピュータ内に実現された動態に触覚提示デバイスを用いて触ることができるようになる。
【選択図】 図1
【解決手段】キーフレームとなるポリゴンモデルを作成し(ステップ100)、Octreeを作成する(ステップ102)ことにより接触判定の計算量を減らし、動態変形に対応したオフセットを利用(ステップ108)することにより、動態とポインタの接触判定を行って触覚を提示する(ステップ124)。
【効果】高速に動態とポインタとの接触判定を行うことが可能となり、コンピュータ内に実現された動態に触覚提示デバイスを用いて触ることができるようになる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータ内に表現された動く物体に触る感覚をシミュレーションする際の触覚提示方法に関し、主に定常的な自律動態として心臓を想定した触覚提示方法に関する。
【0002】
【従来の技術】
本発明に関連する従来技術として、以下の文献が知られている。
▲1▼C. Tarr, J. K. Salisbury, “Haptic Rendering of Visco−Elastic and Plastic Surfaces,”Proceedings of the Second PHANToM Users Group Workshop, A.I. Technical,Report No. 1617, Massachusetts Institute of Technology, Cambridge Massachusetts, J. K. Salsbury, M. A. Srinivasan, editors. 1997.
▲2▼A. Gregory, M.C. Lin, S. Gottschalk, and R. Taylor. ”A framework for fast and accurate collision detection for haptic interaction,”IEEE Virtual Reality Conference, pp. 38−45, 1999.
触覚提示デバイスであるSensAble社のPHANTOMを用いて、仮想物体をPHANTOMで触るのに応じて仮想物体が変形することを実現するための3次元サーフェスモデルについて文献▲1▼で述べられている。
また、PHANTOM用いて接触判定する際の計算を、OBBTreeというボリューム境界の階層構造を利用することにより、高速に、かつ正確に行う方法について文献▲2▼に述べられている。
【0003】
【発明が解決しようとする課題】
上記文献▲1▼▲2▼の従来技術は静止している物体を変形させることについて検討しているが、自ら動く物体に触ることは考慮されていない。
【0004】
そのため、静止している物体を変形させる場合には考える必要がなかった、ポインタが物体変形により物体内部になってしまうことにより接触判定ができなくなっていたという課題が存在する。
。
【0005】
本発明はそのような自律的に動く物体に触った感覚を発生させるための接触判定方法を提供することを主な目的としている。
【0006】
【課題を解決するための手段】
上記の目的を達成するために、Octreeにより物体モデルを空間分割することにより接触判定するポリゴン数を減らし、さらに、物体の動きを考慮して、仮想的にポインタを物体外部へ移動させることにより接触判定を可能としたものである。
【0007】
【発明の実施の形態】
以下、本発明の実施例として、図1、6を用いて、コンピュータ内に実現された動く心臓モデルを触覚デバイスにより触るアプリケーションを実現する1例について説明する。
【0008】
図6は動く心臓を触っている例を示している。SensAble Technologies社のPHANToMなどの触覚提示デバイス50をユーザの手52で操作し、モニタ54上に表示されたコンピュータ内に実現された動態である心臓モデル56の表面について、ポインタ58を動かすことにより触っているところを示している。触覚提示デバイス50はモータなどの力により、仮想物体に触覚提示デバイスのポインタ(以下ポインタ)が触ったときに反力を返す機構を持っているものとする。
【0009】
このアプリケーションを実現する方法について図1のフローに沿って説明する。
【0010】
まず、心臓の動きが周期的であることを利用し、キーフレームの補間により動態を表現する。例えば心臓の動きが図2の状態1から状態5まで拡張するとき、その中間の状態3を状態1と状態5の形状を補間することにより形状を求めるものであるとする。そのため、まずキーフレームとなる状態1と状態5の心臓の3次元ポリゴンモデルを作成する(ステップ100)。このモデルは心電図などに同期をかけて撮影したX線CTやMRIなどのデータを利用することにより、患者個人の形状や動きを反映することが可能である。
【0011】
このとき、補間のためのキーフレームは、多くするほど患者個人の心臓の動きをより正確に反映することができる。
また、ポリゴンモデルがトポロジー的に一致している方が補間を容易に適用しやすいため、標準的な心臓モデルを作成しておき、それをX線CTなどで撮影されたデータにマッチングするように変形させる方法により3次元モデルを作成してもよい。
【0012】
次に、キーフレームとして作成した3次元ポリゴンモデル各々について、Octreeを作成する(ステップ102)。Octreeは図3に示すように、空間を階層的に8分割してゆき、その空間に属するポリゴンを階層的に記憶する公知の技術である。図3は3次元の心臓モデル1を含む直方体空間として10を定義し、その直方体空間10を8つの領域に分割する。例えば2段階のOctreeであれば、8分割された直方体空間の一つである空間12に含まれるポリゴンの番号を空間12のOctreeノードの下に記憶するものとする。もし、3段階のOctree構造を作成するのであれば、空間12はさらに8つの空間に分割される。
【0013】
このとき、分割された空間の境界をまたがったポリゴンについては、ポリゴンの一部でも存在する空間にはそのポリゴンが存在するとして重複して記憶するものとする。
【0014】
この方法により、ポインタが空間12にあるときには、Octreeを検索し、空間12のOctreeノードに記憶されたポリゴンとの接触判定のみを行えば良いことになり、計算速度を向上できる。
続いて、触覚提示処理を開始する。触覚提示処理が終了するまで(ステップ104)ポインタとの接触判定と触覚提示を繰り返し、触覚提示処理の終了が入力されれば触覚提示を終了する。(ステップ130)。
【0015】
ここで、画像を表示する周波数と触覚計算を行う周波数については違いがあることについて説明する。視覚的には30Hz程度で表示すれば滑らかな動きが知覚されるが、触覚的には1000Hz程度で触覚提示を行わなければ滑らかな動きとして知覚されない。そこで、上記の動態とポインタとの接触判定において、動態の動きを表示するのは30Hzとし、その表示間隔におけるある時刻において動態の形状をキーフレームの補間により求めて表示するものとし(ステップ105)、触覚に必要となる1000Hzの計算においては、動態とポインタの接触判定に必要となるOctreeノード内のポリゴンについてのみ補間計算により動態の形状を求めるものとする(ステップ119)。
【0016】
本手法によれば、視覚的にも触覚的にも滑らかな動きを実現することができる。
【0017】
また、キーフレーム間の形状(以下、中間形状)の補間には線形補間を用いても良いが、心臓の拍動のように、短時間での急激な形状変化は、1次の線形補間ではなく、2次補間を用いることにより実現することが可能である。キーフレーム間をn段階に分割するとき、段階mの3次元形状を求めることを考え、例えばある頂点座標のx座標値を求める場合、キーフレームにおける頂点のx座標値がx0, x1であったとすると、段階mにおけるx座標値xmは以下の数1により求めることができる。
【0018】
xm=((n2−m2)x0+m2x1)/n2 (数式1)
さらに、上記中間形状を表示する際に、予定以上の時間がかかった場合には、次の中間形状を飛ばして、さらに次の中間形状を表示するようにすることで、全体としての拍動表示の周波数は一定とすることができる。
【0019】
図8を用いて説明する。例えば、ステップ105における表示更新間隔を1/30秒とし、拍動が1秒に1回として、最収縮期と最拡張期の2つをキーフレームとしたとき、2つのキーフレーム間を15区間に分割して補間した中間形状を表示する必要がある。このときの各表示時刻をTnとするとき、例えば時刻T0でレンダリング予測時間82を調べ、時刻T1以前に終わる予定であれば、時刻T1における形状のレンダリングを開始する(80)。しかし実際には矢印84のように1.5/30秒かかってしまい、86の時点で表示したとする。すると、次のレンダリング時間を予測し(矢印88)、次に表示が間に合う時刻の形状として、時刻T2を飛ばして、時刻T3のときに表示すべき中間形状のレンダリングを開始する(90)。表示は予定時刻よりも前にレンダリングが終了した場合には表示時刻まで待って表示し、予定時刻よりも遅くレンダリングが終了した場合には直ちに表示するものとする。レンダリング時間の予想は、直前のレンダリング時間を用いても良いし、過去のレンダリング時間の平均値などの統計量を用いても良い。以上の方法によれば、若干動きがぎこちなくなることはあるるが、拍動周期は一定に保った動態の表示が可能である。
【0020】
このように、動態の動きをキーフレームの補間を利用して実現することにより、複雑な形状のモデルの動きを高速に計算することが可能であり、また、表示処理能力に応じてキーフレームの数を選択することでスケーラブルな対応が可能となる。
続いて、触覚提示の方法について説明をする。触覚提示をするためには、3次元ポリゴンモデルとポインタが接触したかの判定を行う必要がある。まずは、3次元ポリゴンモデルが動いていないことを想定して、接触判定を行う方法について図4を用いて説明する。
【0021】
3次元ポリゴンモデルのあるポリゴン20に着目して考える。ポリゴン20は頂点22、24、26からなり、その法線ベクトルNが34であるとする。このとき、ポインタが点P26から点Q28へ移動したと考える。このとき、本来ポリゴン20に接触する位置が点R32であるとする。また、頂点24から点P26へのベクトルaを36、頂点24から点Q28へのベクトルbを38とする。
【0022】
もし、図4のように点P26と点Q28との間にポリゴン20が存在するならば、内積を用いて以下の数2のようになるはずである。
【0023】
a・N×b・N≦0 (数式2)
もしも点P26と点Q28との間にポリゴン20が存在しないならば、数3のようになる。
【0024】
a・N×b・N>00 (数式3)
以上のように、3次元ポリゴンモデルの形状が変わらなければ、数2、数3を用いて、ポインタの直前位置と、現在位置とから、接触判定を行うことができる。
【0025】
次に、3次元ポリゴンモデルが自律的に動く場合へ対応する方法について図5を用いて説明する。
【0026】
図5は心臓ポリゴンモデルの断面図である。左側は3次元心臓モデル1の表面に対して、ポインタが点A40の位置にあることを示している。右側は、3次元心臓モデルが状態1から状態3に変化し、心臓が拡張していることを示している。
【0027】
このとき、点A40にもっとも近いポリゴンが状態1から状態3へ変化するときの移動量をポリゴン各頂点の平均値としたベクトルがv44であるとし、点A40を点B42の位置に仮想的に移動することを考える。
【0028】
すると、ポインタを点A40の位置で保持していることを想定したとき、心臓が動くことにより、本来は接触が起こるはずなのに、図4を用いて説明した上記の方法では接触判定ができないことになる。そこで、心臓が動いた場合には、その動き量としてベクトルv44を求め、点A40を仮想的に点B42へ移動した点が直前のポインタ位置であったと仮定することにより、上記数2により接触判定を行うことが可能となる。
【0029】
図1のフローチャートを使って上記手法を利用する方法を説明する。まず、ポインタの直前位置を取得し(ステップ106)、物体の変形によるオフセット移動量をポインタ直前位置に追加した位置を求める(ステップ108)。続いてポインタの現在位置を取得する(ステップ110)。現在時刻の物体の中間形状を生成するために必要となる2つのキーフレームを求め(ステップ112)、ポインタ現在位置の属するOctreeノードを求め(ステップ114)、各キーフレームのOctreeノードに含まれるポリゴンのリストを作成する(ステップ116)。ステップ116で作成したリスト内の全ポリゴンについて現時点の位置を補間により求め(ステップ119)、ポインタとの接触判定を数2、数3を用いて行い(ステップ120)、全てが終了したら(ステップ118)、ポリゴンとの接触があったかどうかを調べ(ステップ122)、接触した位置を求めて触覚を提示する(ステップ124)。
【0030】
ここで、例えば触覚提示デバイスとしてSensAble Technologies社のPHANTOMを用いる場合には、GHOSTというライブラリを通じて、ポリゴンとの接触位置とポリゴンの法線ベクトルを指定することで、触覚提示デバイスを通して触覚を提示することが可能である。
ここでOctree境界における問題について図7を用いて説明する。
Octreeの最小レベルの直方体空間60、62があり、それぞれの直方体空間内に、ポリゴン64、66が存在しているとする。このとき、現在のポインタ位置が点C70であり、動態の動きを考慮したオフセットを加えた直前のポインタ位置が点D72であるとする。すると、この点C,点Dとポリゴンとの交点E68は、ポリゴン66上に存在することとなる。しかし、上記の手法によると、ポリゴンとの接触判定は、現在のポインタが存在するOctreeの直方体空間内にあるポリゴンとしか行わないため、ステップ122において接触がないと判定されてしまう。
【0031】
そこでこのような場合には以下のような方法を取る。
ステップ122においてポリゴン内での接触がないと判定された場合においても、数2において、ポリゴンを含む平面とは接触するという判定があった場合(ステップ126)、触覚計算は1/1000秒の間隔で行っていることを利用し、連続性を考慮することにより、オフセット前のポインタ直前位置を接触位置として触覚を提示する(ステップ128)。ここでステップ126における平面との接触判定は、その周囲のポリゴンのとの連続性を考慮すると、複数の平面との接触があるものと考えられるため、接触が検出された平面数があるしきい値以上ならば接触があるはずであるとすることにより、本当は接触しないはずのときに接触ありとしてしまう誤判定を減らすことが可能である。
【0032】
本手法により、Octreeの境界においても、近似的に接触判定が可能となる。
【0033】
ここで装置としての実施例を図6、9を用いて説明する。コンピュータ92に、モニタ54と触覚提示デバイス50を接続する。コンピュータ内部の記憶装置95には、上記の実施例のような、コンピュータ内の3次元物体(例えば心臓)の形状56と、触覚提示デバイス50のポインタ位置に応じた触覚を計算するプログラムを記憶しておき、演算装置96によって、記憶装置95に記憶されたプログラムにより、3次元物体の形状と触覚を計算する。計算された3次元物体の形状56と触覚提示デバイスのポインタ58をモニタ54に表示する。また、計算された触覚を触覚提示デバイスにより提示する。以上の装置により、コンピュータ内に実現された心臓などの仮想的な動態を触覚提示デバイス50により触ることが可能となる。
【0034】
【発明の効果】
本発明によれば、自律的に動く物体の表面とポインタの接触判定を高速に行うことができるので、動態の触覚を実現することができる効果がある。
【0035】
また、本発明によれば、キーフレームの補間による動態表現を利用できるため、レンダリング能力に応じたキーフレームの増減やレンダリング予想時間に応じたレンダリングフレームの制御により、計算機の能力に応じて適切に動態のリアルタイム表示に合わせた触覚を提示することが可能である。
【図面の簡単な説明】
【図1】本発明の1実施例のフローチャート。
【図2】動態として心臓の拡張期を示した図。
【図3】3次元モデルのOctreeによる空間分割を示した図。
【図4】ポリゴンとポインタの接触判定原理を示した図。
【図5】動態の動きに応じたポインタの仮想的な移動を示した断面図。
【図6】触覚提示デバイスを用いてコンピュータ内の3次元モデルをポインタで触っているところを示した図。
【図7】Octree境界での接触判定エラーを示した図。
【図8】補間による中間形状表示のレンダリング時間による制御を示した図。
【図9】触覚提示のための装置構成を示した図。
【符号の説明】
10.Octreeのルート直方体、20.接触判定するポリゴン、26.直前のポインタ位置、28.現在のポインタ位置、44.仮想オフセットベクトル、50.触覚提示デバイス、56.コンピュータ内の3次元モデル、58.触覚提示デバイスのポインタ、102.Octree作成ステップ、108.仮想オフセット追加ステップ、120.接触判定ステップ、124.触覚提示ステップ
【発明の属する技術分野】
本発明は、コンピュータ内に表現された動く物体に触る感覚をシミュレーションする際の触覚提示方法に関し、主に定常的な自律動態として心臓を想定した触覚提示方法に関する。
【0002】
【従来の技術】
本発明に関連する従来技術として、以下の文献が知られている。
▲1▼C. Tarr, J. K. Salisbury, “Haptic Rendering of Visco−Elastic and Plastic Surfaces,”Proceedings of the Second PHANToM Users Group Workshop, A.I. Technical,Report No. 1617, Massachusetts Institute of Technology, Cambridge Massachusetts, J. K. Salsbury, M. A. Srinivasan, editors. 1997.
▲2▼A. Gregory, M.C. Lin, S. Gottschalk, and R. Taylor. ”A framework for fast and accurate collision detection for haptic interaction,”IEEE Virtual Reality Conference, pp. 38−45, 1999.
触覚提示デバイスであるSensAble社のPHANTOMを用いて、仮想物体をPHANTOMで触るのに応じて仮想物体が変形することを実現するための3次元サーフェスモデルについて文献▲1▼で述べられている。
また、PHANTOM用いて接触判定する際の計算を、OBBTreeというボリューム境界の階層構造を利用することにより、高速に、かつ正確に行う方法について文献▲2▼に述べられている。
【0003】
【発明が解決しようとする課題】
上記文献▲1▼▲2▼の従来技術は静止している物体を変形させることについて検討しているが、自ら動く物体に触ることは考慮されていない。
【0004】
そのため、静止している物体を変形させる場合には考える必要がなかった、ポインタが物体変形により物体内部になってしまうことにより接触判定ができなくなっていたという課題が存在する。
。
【0005】
本発明はそのような自律的に動く物体に触った感覚を発生させるための接触判定方法を提供することを主な目的としている。
【0006】
【課題を解決するための手段】
上記の目的を達成するために、Octreeにより物体モデルを空間分割することにより接触判定するポリゴン数を減らし、さらに、物体の動きを考慮して、仮想的にポインタを物体外部へ移動させることにより接触判定を可能としたものである。
【0007】
【発明の実施の形態】
以下、本発明の実施例として、図1、6を用いて、コンピュータ内に実現された動く心臓モデルを触覚デバイスにより触るアプリケーションを実現する1例について説明する。
【0008】
図6は動く心臓を触っている例を示している。SensAble Technologies社のPHANToMなどの触覚提示デバイス50をユーザの手52で操作し、モニタ54上に表示されたコンピュータ内に実現された動態である心臓モデル56の表面について、ポインタ58を動かすことにより触っているところを示している。触覚提示デバイス50はモータなどの力により、仮想物体に触覚提示デバイスのポインタ(以下ポインタ)が触ったときに反力を返す機構を持っているものとする。
【0009】
このアプリケーションを実現する方法について図1のフローに沿って説明する。
【0010】
まず、心臓の動きが周期的であることを利用し、キーフレームの補間により動態を表現する。例えば心臓の動きが図2の状態1から状態5まで拡張するとき、その中間の状態3を状態1と状態5の形状を補間することにより形状を求めるものであるとする。そのため、まずキーフレームとなる状態1と状態5の心臓の3次元ポリゴンモデルを作成する(ステップ100)。このモデルは心電図などに同期をかけて撮影したX線CTやMRIなどのデータを利用することにより、患者個人の形状や動きを反映することが可能である。
【0011】
このとき、補間のためのキーフレームは、多くするほど患者個人の心臓の動きをより正確に反映することができる。
また、ポリゴンモデルがトポロジー的に一致している方が補間を容易に適用しやすいため、標準的な心臓モデルを作成しておき、それをX線CTなどで撮影されたデータにマッチングするように変形させる方法により3次元モデルを作成してもよい。
【0012】
次に、キーフレームとして作成した3次元ポリゴンモデル各々について、Octreeを作成する(ステップ102)。Octreeは図3に示すように、空間を階層的に8分割してゆき、その空間に属するポリゴンを階層的に記憶する公知の技術である。図3は3次元の心臓モデル1を含む直方体空間として10を定義し、その直方体空間10を8つの領域に分割する。例えば2段階のOctreeであれば、8分割された直方体空間の一つである空間12に含まれるポリゴンの番号を空間12のOctreeノードの下に記憶するものとする。もし、3段階のOctree構造を作成するのであれば、空間12はさらに8つの空間に分割される。
【0013】
このとき、分割された空間の境界をまたがったポリゴンについては、ポリゴンの一部でも存在する空間にはそのポリゴンが存在するとして重複して記憶するものとする。
【0014】
この方法により、ポインタが空間12にあるときには、Octreeを検索し、空間12のOctreeノードに記憶されたポリゴンとの接触判定のみを行えば良いことになり、計算速度を向上できる。
続いて、触覚提示処理を開始する。触覚提示処理が終了するまで(ステップ104)ポインタとの接触判定と触覚提示を繰り返し、触覚提示処理の終了が入力されれば触覚提示を終了する。(ステップ130)。
【0015】
ここで、画像を表示する周波数と触覚計算を行う周波数については違いがあることについて説明する。視覚的には30Hz程度で表示すれば滑らかな動きが知覚されるが、触覚的には1000Hz程度で触覚提示を行わなければ滑らかな動きとして知覚されない。そこで、上記の動態とポインタとの接触判定において、動態の動きを表示するのは30Hzとし、その表示間隔におけるある時刻において動態の形状をキーフレームの補間により求めて表示するものとし(ステップ105)、触覚に必要となる1000Hzの計算においては、動態とポインタの接触判定に必要となるOctreeノード内のポリゴンについてのみ補間計算により動態の形状を求めるものとする(ステップ119)。
【0016】
本手法によれば、視覚的にも触覚的にも滑らかな動きを実現することができる。
【0017】
また、キーフレーム間の形状(以下、中間形状)の補間には線形補間を用いても良いが、心臓の拍動のように、短時間での急激な形状変化は、1次の線形補間ではなく、2次補間を用いることにより実現することが可能である。キーフレーム間をn段階に分割するとき、段階mの3次元形状を求めることを考え、例えばある頂点座標のx座標値を求める場合、キーフレームにおける頂点のx座標値がx0, x1であったとすると、段階mにおけるx座標値xmは以下の数1により求めることができる。
【0018】
xm=((n2−m2)x0+m2x1)/n2 (数式1)
さらに、上記中間形状を表示する際に、予定以上の時間がかかった場合には、次の中間形状を飛ばして、さらに次の中間形状を表示するようにすることで、全体としての拍動表示の周波数は一定とすることができる。
【0019】
図8を用いて説明する。例えば、ステップ105における表示更新間隔を1/30秒とし、拍動が1秒に1回として、最収縮期と最拡張期の2つをキーフレームとしたとき、2つのキーフレーム間を15区間に分割して補間した中間形状を表示する必要がある。このときの各表示時刻をTnとするとき、例えば時刻T0でレンダリング予測時間82を調べ、時刻T1以前に終わる予定であれば、時刻T1における形状のレンダリングを開始する(80)。しかし実際には矢印84のように1.5/30秒かかってしまい、86の時点で表示したとする。すると、次のレンダリング時間を予測し(矢印88)、次に表示が間に合う時刻の形状として、時刻T2を飛ばして、時刻T3のときに表示すべき中間形状のレンダリングを開始する(90)。表示は予定時刻よりも前にレンダリングが終了した場合には表示時刻まで待って表示し、予定時刻よりも遅くレンダリングが終了した場合には直ちに表示するものとする。レンダリング時間の予想は、直前のレンダリング時間を用いても良いし、過去のレンダリング時間の平均値などの統計量を用いても良い。以上の方法によれば、若干動きがぎこちなくなることはあるるが、拍動周期は一定に保った動態の表示が可能である。
【0020】
このように、動態の動きをキーフレームの補間を利用して実現することにより、複雑な形状のモデルの動きを高速に計算することが可能であり、また、表示処理能力に応じてキーフレームの数を選択することでスケーラブルな対応が可能となる。
続いて、触覚提示の方法について説明をする。触覚提示をするためには、3次元ポリゴンモデルとポインタが接触したかの判定を行う必要がある。まずは、3次元ポリゴンモデルが動いていないことを想定して、接触判定を行う方法について図4を用いて説明する。
【0021】
3次元ポリゴンモデルのあるポリゴン20に着目して考える。ポリゴン20は頂点22、24、26からなり、その法線ベクトルNが34であるとする。このとき、ポインタが点P26から点Q28へ移動したと考える。このとき、本来ポリゴン20に接触する位置が点R32であるとする。また、頂点24から点P26へのベクトルaを36、頂点24から点Q28へのベクトルbを38とする。
【0022】
もし、図4のように点P26と点Q28との間にポリゴン20が存在するならば、内積を用いて以下の数2のようになるはずである。
【0023】
a・N×b・N≦0 (数式2)
もしも点P26と点Q28との間にポリゴン20が存在しないならば、数3のようになる。
【0024】
a・N×b・N>00 (数式3)
以上のように、3次元ポリゴンモデルの形状が変わらなければ、数2、数3を用いて、ポインタの直前位置と、現在位置とから、接触判定を行うことができる。
【0025】
次に、3次元ポリゴンモデルが自律的に動く場合へ対応する方法について図5を用いて説明する。
【0026】
図5は心臓ポリゴンモデルの断面図である。左側は3次元心臓モデル1の表面に対して、ポインタが点A40の位置にあることを示している。右側は、3次元心臓モデルが状態1から状態3に変化し、心臓が拡張していることを示している。
【0027】
このとき、点A40にもっとも近いポリゴンが状態1から状態3へ変化するときの移動量をポリゴン各頂点の平均値としたベクトルがv44であるとし、点A40を点B42の位置に仮想的に移動することを考える。
【0028】
すると、ポインタを点A40の位置で保持していることを想定したとき、心臓が動くことにより、本来は接触が起こるはずなのに、図4を用いて説明した上記の方法では接触判定ができないことになる。そこで、心臓が動いた場合には、その動き量としてベクトルv44を求め、点A40を仮想的に点B42へ移動した点が直前のポインタ位置であったと仮定することにより、上記数2により接触判定を行うことが可能となる。
【0029】
図1のフローチャートを使って上記手法を利用する方法を説明する。まず、ポインタの直前位置を取得し(ステップ106)、物体の変形によるオフセット移動量をポインタ直前位置に追加した位置を求める(ステップ108)。続いてポインタの現在位置を取得する(ステップ110)。現在時刻の物体の中間形状を生成するために必要となる2つのキーフレームを求め(ステップ112)、ポインタ現在位置の属するOctreeノードを求め(ステップ114)、各キーフレームのOctreeノードに含まれるポリゴンのリストを作成する(ステップ116)。ステップ116で作成したリスト内の全ポリゴンについて現時点の位置を補間により求め(ステップ119)、ポインタとの接触判定を数2、数3を用いて行い(ステップ120)、全てが終了したら(ステップ118)、ポリゴンとの接触があったかどうかを調べ(ステップ122)、接触した位置を求めて触覚を提示する(ステップ124)。
【0030】
ここで、例えば触覚提示デバイスとしてSensAble Technologies社のPHANTOMを用いる場合には、GHOSTというライブラリを通じて、ポリゴンとの接触位置とポリゴンの法線ベクトルを指定することで、触覚提示デバイスを通して触覚を提示することが可能である。
ここでOctree境界における問題について図7を用いて説明する。
Octreeの最小レベルの直方体空間60、62があり、それぞれの直方体空間内に、ポリゴン64、66が存在しているとする。このとき、現在のポインタ位置が点C70であり、動態の動きを考慮したオフセットを加えた直前のポインタ位置が点D72であるとする。すると、この点C,点Dとポリゴンとの交点E68は、ポリゴン66上に存在することとなる。しかし、上記の手法によると、ポリゴンとの接触判定は、現在のポインタが存在するOctreeの直方体空間内にあるポリゴンとしか行わないため、ステップ122において接触がないと判定されてしまう。
【0031】
そこでこのような場合には以下のような方法を取る。
ステップ122においてポリゴン内での接触がないと判定された場合においても、数2において、ポリゴンを含む平面とは接触するという判定があった場合(ステップ126)、触覚計算は1/1000秒の間隔で行っていることを利用し、連続性を考慮することにより、オフセット前のポインタ直前位置を接触位置として触覚を提示する(ステップ128)。ここでステップ126における平面との接触判定は、その周囲のポリゴンのとの連続性を考慮すると、複数の平面との接触があるものと考えられるため、接触が検出された平面数があるしきい値以上ならば接触があるはずであるとすることにより、本当は接触しないはずのときに接触ありとしてしまう誤判定を減らすことが可能である。
【0032】
本手法により、Octreeの境界においても、近似的に接触判定が可能となる。
【0033】
ここで装置としての実施例を図6、9を用いて説明する。コンピュータ92に、モニタ54と触覚提示デバイス50を接続する。コンピュータ内部の記憶装置95には、上記の実施例のような、コンピュータ内の3次元物体(例えば心臓)の形状56と、触覚提示デバイス50のポインタ位置に応じた触覚を計算するプログラムを記憶しておき、演算装置96によって、記憶装置95に記憶されたプログラムにより、3次元物体の形状と触覚を計算する。計算された3次元物体の形状56と触覚提示デバイスのポインタ58をモニタ54に表示する。また、計算された触覚を触覚提示デバイスにより提示する。以上の装置により、コンピュータ内に実現された心臓などの仮想的な動態を触覚提示デバイス50により触ることが可能となる。
【0034】
【発明の効果】
本発明によれば、自律的に動く物体の表面とポインタの接触判定を高速に行うことができるので、動態の触覚を実現することができる効果がある。
【0035】
また、本発明によれば、キーフレームの補間による動態表現を利用できるため、レンダリング能力に応じたキーフレームの増減やレンダリング予想時間に応じたレンダリングフレームの制御により、計算機の能力に応じて適切に動態のリアルタイム表示に合わせた触覚を提示することが可能である。
【図面の簡単な説明】
【図1】本発明の1実施例のフローチャート。
【図2】動態として心臓の拡張期を示した図。
【図3】3次元モデルのOctreeによる空間分割を示した図。
【図4】ポリゴンとポインタの接触判定原理を示した図。
【図5】動態の動きに応じたポインタの仮想的な移動を示した断面図。
【図6】触覚提示デバイスを用いてコンピュータ内の3次元モデルをポインタで触っているところを示した図。
【図7】Octree境界での接触判定エラーを示した図。
【図8】補間による中間形状表示のレンダリング時間による制御を示した図。
【図9】触覚提示のための装置構成を示した図。
【符号の説明】
10.Octreeのルート直方体、20.接触判定するポリゴン、26.直前のポインタ位置、28.現在のポインタ位置、44.仮想オフセットベクトル、50.触覚提示デバイス、56.コンピュータ内の3次元モデル、58.触覚提示デバイスのポインタ、102.Octree作成ステップ、108.仮想オフセット追加ステップ、120.接触判定ステップ、124.触覚提示ステップ
Claims (7)
- 触覚提示手段を用い、コンピュータ内部の3次元形状の触覚を提示する方法において、
該3次元形状が動態である場合に、該動態の複数時点の形状の3次元モデルをキーフレームとして作成するステップと、
該複数の3次元モデルそれぞれについて、3次元モデルを構成するポリゴンを空間的階層的に分類したOctree(8分木)構造を作成するステップと、
該キーフレームにおける3次元モデルを用い、キーフレーム間のある時刻における該動態形状を補間により生成するステップと、
該Octreeから該触覚提示手段のポインタが存在する空間に属するポリゴンを抽出するステップと、
該抽出されたポリゴンと該触覚提示手段のポインタの接触判定を行う際に、該ポインタの位置を該動態の動きに合わせて仮想的に移動させるステップと、
該接触判定により接触があった場合に触覚を該触覚提示手段に提示するステップとを有することを特徴とした触覚提示方法。 - 請求項1記載の触覚提示方法において、
さらに、補間によりキーフレームの3次元モデルから、キーフレーム間のある時刻における前記動態の画像(中間フレーム画像)を生成して表示するステップと、
該中間フレーム画像のレンダリング時間を予想し、画像表示時刻にレンダリングが間に合う中間フレームを求めてレンダリングするステップを有することを特徴とした触覚提示方法。 - 請求項1記載の触覚提示方法であって、
さらに、前記動態の画像を表示する間隔と前記触覚提示を行う間隔を別々に設定するステップと、
画像表示については、画像表示時点における全ポリゴンの位置を補間により求めるステップと、
触覚提示については、前記触覚提示手段のポインタが存在するOctree空間に属するポリゴンについてのみ、触覚提示時点の位置を補間により求めるステップを有することを特徴とした触覚提示方法。 - 請求項3記載の触覚提示方法において、
画像表示時点における全ポリゴンの位置を補間によって求めるステップは、
前記キーフレームにおける3次元モデルの2次補間により、該キーフレーム間のある時刻における3次元モデル形状を求めるステップを有することを特徴とした触覚提示方法。 - 請求項1記載の触覚提示方法において、
キーフレームとなる動態の3次元モデルを作成するステップは、
実際に動態を計測する装置によりキーフレームとなる動態の形状を計測するステップと、
標準的な3次元モデルを該計測された動態形状にフィッティングさせるステップとからなることを特徴とした触覚提示方法。 - 請求項1記載の触覚提示方法であって、
上記接触判定を行うステップにおいて、
該3次元モデルを構成するポリゴンと該触覚提示手段のポインタの接触はないと判定された場合に、
該ポリゴンを含む平面と該触覚提示手段のポインタが接触するかどうかを調べ、指定数以上の平面との接触が存在するかどうかを判定するステップと、
前記ステップにおいて指定数以上の平面との接触が存在した場合には、その直前の接触位置における触覚を触覚提示手段に提示するするステップとを有することを特徴とする触覚提示方法。 - 触覚と物体形状を計算するための演算手段と、該演算手段による演算結果に基づいた触覚をユーザへ提示する手段と、該演算手段による演算結果に基づいた物体形状を表示するための表示手段からなる触覚提示装置において、
該演算手段は、記憶手段に記憶されたプログラムに基いて、該3次元形状が動態である場合に、該動態の複数時点の形状の3次元モデルをキーフレームとして作成し、該複数の3次元モデルそれぞれについて、3次元モデルを構成するポリゴンを空間的階層的に分類したOctree(8分木)構造を作成し、該キーフレームにおける3次元モデルを用い、キーフレーム間のある時刻における該動態形状を補間により生成し、該Octreeから該触覚提示手段のポインタが存在する空間に属するポリゴンを抽出し、該抽出されたポリゴンと該触覚提示手段のポインタの接触判定を行う際に、該ポインタの位置を該動態の動きに合わせて仮想的に移動させ、該接触判定により接触があった場合に触覚を該触覚提示手段に提示することを特徴とする触覚提示装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002249901A JP2004081715A (ja) | 2002-08-29 | 2002-08-29 | 仮想動態の触覚提示方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002249901A JP2004081715A (ja) | 2002-08-29 | 2002-08-29 | 仮想動態の触覚提示方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004081715A true JP2004081715A (ja) | 2004-03-18 |
Family
ID=32056862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002249901A Pending JP2004081715A (ja) | 2002-08-29 | 2002-08-29 | 仮想動態の触覚提示方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004081715A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108054A (ja) * | 2006-10-25 | 2008-05-08 | Canon Inc | 接触提示装置及び方法 |
JP2011110282A (ja) * | 2009-11-27 | 2011-06-09 | Ziosoft Inc | 医療用画像処理装置及び医療用画像処理プログラム |
JP2011238069A (ja) * | 2010-05-11 | 2011-11-24 | Nippon Hoso Kyokai <Nhk> | 仮想力覚提示装置及び仮想力覚提示プログラム |
JP2013505778A (ja) * | 2009-09-25 | 2013-02-21 | ジオソフト,インコーポレーテッド | 運動情報を用いた医用画像解析のためのコンピュータ可読媒体、システム、および方法 |
-
2002
- 2002-08-29 JP JP2002249901A patent/JP2004081715A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108054A (ja) * | 2006-10-25 | 2008-05-08 | Canon Inc | 接触提示装置及び方法 |
JP2013505778A (ja) * | 2009-09-25 | 2013-02-21 | ジオソフト,インコーポレーテッド | 運動情報を用いた医用画像解析のためのコンピュータ可読媒体、システム、および方法 |
JP2011110282A (ja) * | 2009-11-27 | 2011-06-09 | Ziosoft Inc | 医療用画像処理装置及び医療用画像処理プログラム |
JP2011238069A (ja) * | 2010-05-11 | 2011-11-24 | Nippon Hoso Kyokai <Nhk> | 仮想力覚提示装置及び仮想力覚提示プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8154544B1 (en) | User specified contact deformations for computer graphics | |
CN109741463B (zh) | 虚拟现实场景的渲染方法、装置及设备 | |
De Haan et al. | IntenSelect: Using Dynamic Object Rating for Assisting 3D Object Selection. | |
JP6073058B2 (ja) | オーサリングシステムによる再生可能なシーンの生成 | |
JPH10247252A (ja) | 衝突判定処理装置 | |
JP7490072B2 (ja) | マルチビュー画像を使用した3d人間ポーズ推定に基づく視覚ベースのリハビリ訓練システム | |
JP4936522B2 (ja) | 画像処理方法、画像処理装置 | |
US20110149042A1 (en) | Method and apparatus for generating a stereoscopic image | |
JP2004081715A (ja) | 仮想動態の触覚提示方法および装置 | |
CN106716500B (zh) | 一种信息处理装置及深度定义方法 | |
Palmerius et al. | Haptic rendering of dynamic volumetric data | |
Tagawa et al. | Manipulation of dynamically deformable object using impulse-based approach | |
US7583262B2 (en) | Optimization of time-critical software components for real-time interactive applications | |
KR102610824B1 (ko) | Xr 실객체 변형을 위한 사용자 인터랙티브 맞춤형 인터랙션 제공 방법 및 장치 | |
CN115908664A (zh) | 人机交互的动画生成方法、装置、计算机设备、存储介质 | |
Tagawa et al. | Impulse response deformation model: an approach to haptic interaction with dynamically deformable object | |
JP2008059375A (ja) | 情報処理方法、情報処理装置 | |
Hou et al. | A prediction method using interpolation for smooth six-DOF haptic rendering in multirate simulation | |
Zerbato et al. | A unified representation to interact with simulated deformable objects in virtual environments | |
US8704828B1 (en) | Inverse kinematic melting for posing models | |
Na et al. | Local shape blending using coherent weighted regions | |
KR20120048734A (ko) | 텍스쳐를 포함하는 사실적인 포즈 생성 장치 및 방법 | |
JPH07271998A (ja) | 立体表示方法および装置 | |
Steinhurst et al. | Reducing photon-mapping bandwidth by query reordering | |
JP2000010466A (ja) | 実世界の制約を用いる仮想空間でのシミュレーション方法 |