JP3722992B2 - 物体の接触感シミュレーション装置 - Google Patents
物体の接触感シミュレーション装置 Download PDFInfo
- Publication number
- JP3722992B2 JP3722992B2 JP22545898A JP22545898A JP3722992B2 JP 3722992 B2 JP3722992 B2 JP 3722992B2 JP 22545898 A JP22545898 A JP 22545898A JP 22545898 A JP22545898 A JP 22545898A JP 3722992 B2 JP3722992 B2 JP 3722992B2
- Authority
- JP
- Japan
- Prior art keywords
- force
- virtual object
- reaction force
- action point
- simulation apparatus
- 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 - Lifetime
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Description
【発明の属する技術分野】
本発明は物体の接触感シミュレーション装置に関し、特に、物体表面に触れる際の硬軟感を疑似的に体験させることのできるシミュレーション装置に関する。
【0002】
【従来の技術】
コンピュータを利用したシミュレーションは、種々の分野で採り入れられており、特に近年では、コンピュータの画像処理機能の向上により、いわゆるバーチャル・リアリティーと呼ばれている仮想現実の世界をディスプレイ画面上に表示するシミュレーション装置が普及してきている。この種のシミュレーション装置では、通常、オペレータは仮想の空間内を自由に移動することができ、オペレータの移動に伴ってディスプレイの表示画面がリアルタイムで描き換えられてゆく。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のシミュレーション装置は、ディスプレイ上の映像などを利用して、オペレータの視覚を通じて仮想の世界を提示することに主眼が置かれており、オペレータの触覚を通じて仮想の世界を提示する機能に乏しい。ところが、今後は、物体表面に触れた際の硬さあるいは軟らかさといった感触を疑似的に提供することができるシミュレーション装置の需要が見込まれており、特に、市販のパソコン程度の処理機能をもったコンピュータを利用した安価なシミュレーション装置が望まれている。
【0004】
そこで本発明は、物体表面に対する接触感を疑似的に体験させることができるシミュレーション装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
(1) 本発明の第1の態様は、所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行う物体の接触感シミュレーション装置において、
仮想物体を定義するための情報を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報とに基づいて、作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを力トランスデューサへ与える制御を行う演算制御手段と、
を設け、
演算制御手段に、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、作用点と仮想物体との相互位置関係を認識する相互位置関係認識部と、
相互位置関係認識部により作用点が仮想物体の表面位置に到達したと認識された時点から現時点に至るまでの時間を計測する時間計測部と、
相互位置関係認識部により作用点が仮想物体の内部にあると判断されたときに、時間計測部の計測値として与えられる内部滞在時間に基づいて作用点に生じるべき反力を演算により求める反力演算部と、
求めた反力に基いて作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
を設けるようにしたものである。
【0006】
(2) 本発明の第2の態様は、上述の第1の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、内部滞在時間が長くなればなるほど反力の大きさが大きくなる演算を行うようにしたものである。
【0007】
(3) 本発明の第3の態様は、上述の第1または第2の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、時間tを変数とする所定の関数f(t)を仮想物体の表面状態を定義するための情報として物体情報設定手段内に設定し、
反力演算部が、関数f(t)に内部滞在時間tを代入して得られる関数値に基づいて反力の大きさを決定するようにしたものである。
【0008】
(4) 本発明の第4の態様は、上述の第3の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータKを設定し、
反力演算部が、反力の大きさを、関数値f(t)とパラメータKとの積K・f(t)に基いて決定するようにしたものである。
【0009】
(5) 本発明の第5の態様は、上述の第4の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定し、
力制御ベクトル演算部が、作用点Pが仮想物体の内部に位置する場合に、この作用点Pに最も近い二次元多角形αに垂直な法線ベクトルNを求め、この法線ベクトルNを単位ベクトルとし、反力演算部で演算された反力に応じた大きさをもつベクトルを力制御ベクトルとするようにしたものである。
【0010】
(6) 本発明の第6の態様は、上述の第1〜第5の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、作用点の内部滞在時間に基づいて定まる第1の反力と、仮想物体の表面と作用点との距離に基づいて定まる第2の反力と、を演算する機能を有し、第1の反力と第2の反力との合成力を作用点に生じるべき反力とするようにしたものである。
【0011】
(7) 本発明の第7の態様は、上述の第6の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、仮想物体の表面と作用点との距離dが大きくなればなるほど第2の反力が大きくなる演算を行うようにしたものである。
【0012】
(8) 本発明の第8の態様は、上述の第7の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータkを設定し、
反力演算部が、第2の反力の大きさを、パラメータkと距離dとの積(k・d)に基いて決定するようにしたものである。
【0013】
(9) 本発明の第9の態様は、上述の第1〜第8の態様に係る物体の接触感シミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された情報および位置検出部が検出した作用点の位置の情報に基いて、ディスプレイの画面上の所定の表示位置に仮想物体の形状および作用点を描画する物体形状描画手段と、
を更に設け、オペレータに仮想物体の形状および位置ならびに作用点の位置を提示できるようにしたものである。
【0014】
(10) 本発明の第10の態様は、上述の第9の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、質感データおよび光源データを考慮して仮想物体の形状を描画するようにしたものである。
【0015】
(11) 本発明の第11の態様は、コンピュータを、上述の第1〜第10の態様に係る物体の接触感シミュレーション装置として動作させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【0016】
(12) 本発明の第12の態様は、上述の第1〜第10の態様に係る物体の接触感シミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したものである。
【0017】
【発明の実施の形態】
§1. 装置の基本構成
以下、本発明を図示する実施形態に基いて説明する。図1は本発明の一実施形態に係る物体の接触感シミュレーション装置の基本構成を示すブロック図である。この装置では、所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行うことができる。この装置の構成要素は、図示のとおり、物体情報設定手段10と、ディスプレイ20と、物体形状描画手段30と、演算制御手段40と、力トランスデューサ50とである。
【0018】
物体情報設定手段10は、仮想物体を定義するための情報を設定する機能を有する。オペレータが、この物体情報設定手段10に対してデータやパラメータなどの情報を入力すると、入力された情報は、この物体情報設定手段10内に格納され保持される。オペレータは、物体情報設定手段10に対して設定したデータやパラメータを変更することにより、シミュレーションの条件設定を適宜変えることができる。この実施形態では、仮想物体を定義するための情報として、図示のように、形状データ,質感データ,光源データなる3種類のデータと、時間tを変数とする所定の関数f(t)と、仮想物体の硬さを示すパラメータKとを設定できるようにしている。
【0019】
ディスプレイ20は、仮想物体を表示するための手段であり、図1では立方体形状の仮想物体Bが所定位置に表示されている状態が示されている。物体形状描画手段30は、物体情報設定手段10内に設定された情報(形状データ,質感データ,光源データ)に基いて、ディスプレイ20の画面上の所定位置に仮想物体Bの形状を描画する機能を有する。なお、物体形状描画手段30は、仮想物体Bだけでなく、後述する作用点Pの位置を、ディスプレイ20の画面上に描画する機能を有しており、図示のとおり、ディスプレイ20の画面上には、仮想物体Bとともに、作用点Pの位置が表示される。
【0020】
力トランスデューサ50は、作用部51、位置検出部52、力発生部53を有しており、演算制御手段40に接続されている。力トランスデューサ50は、オペレータに対するマン・マシン・インターフェイスとして機能し、オペレータから与えられる操作量を入力するとともに、オペレータに対して力を返す働きをする。この実施形態では、力トランスデューサ50は、1本の指としての機能を果たすことになり、仮想物体に対する接触感は、この指を介して体験することになる。
【0021】
作用部51上には、作用点Pが定義されており、この作用点Pはオペレータから加えられた力に基いて三次元の任意方向に移動可能となっている。図1のディスプレイ20上に表示されている作用点Pは、この作用部51上の作用点の位置である。位置検出部52は、作用部51上の作用点Pの三次元座標系上での位置を検出する機能を有する。具体的には、作用点Pの位置は、x座標,y座標,z座標の3つの座標値として検出されることになる。ここでは、この3つの座標値によって示された作用点Pの位置をP(x,y,z)なるデータで表わすことにする。
【0022】
この作用点の位置を示すデータP(x,y,z)は、演算制御手段40に与えられ、更に、物体形状描画手段30へと与えられる。物体形状描画手段30は、前述したように、この位置を示すデータに基いて、ディスプレイ20の画面上に作用点Pの位置を描画することになる。一方、演算制御手段40は、位置検出部52が検出した作用点Pの位置と物体情報設定手段10内の情報により定義された仮想物体の位置とに基いて、作用点Pと仮想物体Bとの相互位置関係を認識し、その認識結果に応じて作用点Pに生じるべき反力(仮想物体側からオペレータ側へと返される力)を求める演算を行う。ここで行われる具体的な演算内容については後に詳述する。こうして、作用点Pに生じるべき反力が得られたら、この反力に基いて作用点Pに加えるべき制御力を示す力制御ベクトルCが求められ、この力制御ベクトルCを示すデータは、力トランスデューサ50へ与えられる。力トランスデューサ50内の力発生部53は、演算制御手段40から与えられた力制御ベクトルCに基いて作用点Pに加える力を発生させる機能を有する。
【0023】
§2. 物体情報設定手段に設定される情報
続いて、図1に示すシミュレーション装置において、物体情報設定手段10内に設定される具体的な情報について説明する。前述したように、この実施形態では、形状データ,質感データ,光源データ,時間tの関数f(t),硬度を示すパラメータKが設定される。
【0024】
形状データは、仮想物体の三次元形状を特定するためのデータである。ここでは、仮想物体の表面を二次元多角形の集合体として表現するようにしており、二次元多角形の頂点座標を示す頂点テーブルと、各二次元多角形を構成する頂点の連結関係を示す面テーブルと、によって形状データを構成するようにしている。たとえば、図2(a) に示すような立方体からなる仮想物体を定義する場合を考える。この立方体は、6つの正方形の集合体として表現することができ、図に1〜8の番号を付した合計8個の頂点によって構成される。このような立方体についての形状データは、図2(b) に示す頂点テーブルと図2(c) に示す面テーブルによって構成できる。図2(a) に示す頂点テーブルは、8個の頂点のそれぞれについて、XYZ三次元座標系における位置座標を示している。図示の例では、図2(a) に示す立方体は、頂点1が座標系の原点に位置し、頂点1−2に沿った辺がX軸上、頂点1−4に沿った辺がY軸上、頂点1−5に沿った辺がZ軸上に位置しており、一辺の長さが1となる立方体である。図2(b) の頂点テーブルは、単に8個の頂点の位置座標を示すものであり、仮想物体の形状は、実際には、図2(c) の面テーブルによって定義されることになる。この面テーブルは、この立方体を構成する6個の面▲1▼〜▲6▼の頂点構成を示しており、たとえば、面▲1▼は、頂点1−2−6−5を連結することにより形成される面になる。
【0025】
このように、頂点テーブルと面テーブルとを用いれば、任意形状の仮想物体の表面を定義することができる。図2の例では、仮想物体の表面を四角形の集合体として定義したが、三角形や六角形など、用いる多角形はどのようなものでもかまわない。また、本発明を実施する上では、仮想物体の形状定義は必ずしも二次元多角形を用いる必要はない。たとえば、球や円錐などであれば、方程式を用いて定義することも可能であり、物体情報設定手段10に設定される形状データは、数値、式を問わず、形状を定義することができる情報であればどのようなものでもかまわない。なお、ここに示す実施形態では、形状データは座標を示す情報(図2の例では、頂点テーブル内の各座標値)を含んでいるため、形状とともに位置を定義する情報として機能する。もちろん、形状データとは別個に位置を示すための位置データを設定するようにしてもよい。
【0026】
物体情報設定手段10に設定される質感データは、形状データによって定義された仮想物体の表面の質感を示すためのデータである。具体的には、仮想物体を構成する各面(図2の例では、面▲1▼〜▲6▼)についての環境色,拡散色,鏡面色,鏡面係数などの値が質感データとして設定される。また、光源データは、この仮想物体を照明するための光源の性質を示すデータであり、光源の形状(点,線,面),光源の位置,光源色などを示すデータが光源データとして設定される。この質感データおよび光源データは、ディスプレイ20の画面上に、定義した仮想物体を表示するために利用されるデータである。物体形状描画手段30は、この質感データおよび光源データを考慮して、仮想物体Bの形状を描画することになる。
【0027】
一方、時間tの関数f(t)および硬度を示すパラメータKは、仮想物体の表面状態を定義する情報である。関数f(t)もパラメータKも、いずれも物体表面の硬さあるいは柔らかさを左右する要素であるが、パラメータKが作用点Pに作用する反力の大きさを決定する係数として機能するのに対し、関数f(t)は反力の大きさの時間変化を決定する機能を果たす。これらの機能については後述する。関数f(t)もパラメータKも、仮想物体の個々の表面ごとにそれぞれ異なる関数あるいはパラメータ値を設定することも可能であるが、本実施形態では、1つの仮想物体に対しては1つの関数f(t)のみ、1つのパラメータKのみを設定するようにしている。したがって、1つの仮想物体については、どの面についての接触感も同じであるが、異なる仮想物体については、それぞれ異なる関数f(t)およびパラメータKを設定しているので、物体ごとに接触感の相違を体験することができる。もちろん、1つの仮想物体の面ごとに、これらの設定を変えれば、同一の仮想物体であっても、面ごとに異なる接触感を体験することができるようになる。
【0028】
§3. 具体的な装置構成
図1に示すブロック図は、説明の便宜上、本発明に係る装置を機能要素の集合としてとらえ、個々の機能要素をブロックで示したものであり、実際には、このシミュレーション装置はコンピュータを利用して構築される。すなわち、図1に示す装置における物体情報設定手段10、物体形状描画手段30、演算制御手段40は、汎用のコンピュータに、上述した各処理を実行するためのプログラムを組み込むことにより構成することができる。たとえば、物体情報設定手段10に対するデータやパラメータの設定は、キーボードやマウスなどのコンピュータ用入力機器を用いて行うことができ、設定されたデータやパラメータはメモリや種々の記憶装置に格納されることになる。また、物体形状描画手段30による描画機能や、演算制御手段40による演算処理機能は、コンピュータに組み込まれたプログラムによって実現されることになり、このプログラムは、コンピュータ読み取り可能な記録媒体に記録して配布することが可能である。なお、ディスプレイ20は、コンピュータ用の一般的なディスプレイ装置によって構成できる。
【0029】
一方、力トランスデューサ50は、オペレータの物理的操作をデジタルデータ(作用点の位置を示すデータ)に変換する第1の機能と、演算制御手段40から与えられるデジタルデータ(力制御ベクトルCを示すデータ)を物理的な力に変換してオペレータに与える第2の機能とを実行する物理的な構成要素である。一般的な物体に対する接触動作には、通常、指が用いられる。そこで、この実施形態では、上記機能が効果的に実行されるように、力トランスデューサ50の作用部51を、オペレータの指先に嵌めて固定できる指サックにより構成し、オペレータの指の動きに基いて作用点Pを移動できるようにするとともに、力制御ベクトルCに基く制御力がこの指サックを介してオペレータの指に伝達されるように構成した。
【0030】
図3は、この指サックの形態をした作用部51を用いて構成される力トランスデューサ50の機能を示すブロック図である。作用部51は、ゴムなどの弾力性をもった材料で構成されており、オペレータは、この作用部51を指の先端に装着して固定することができる。図示の例では、この作用部51の先端部分に作用点Pが定義されている(もちろん、作用点Pは作用部51のいずれの部分に定義してもかまわないが、操作性を向上する上では、指先位置に定義するのが好ましい)。本発明では、このような力トランスデューサを少なくとも1組用意する必要がある。
【0031】
この力トランスデューサ50において、作用部51は三次元の自由度をもって移動可能な状態に支持されている必要がある。すなわち、作用点Pは、オペレータから加えられた力に基いて三次元の任意方向に移動可能な状態になっている必要がある(もちろん、作用点Pの移動可能空間は、所定の範囲内に制限されていてかまわない)。したがって、オペレータは、作用部51を指先に装着した状態で、指先を三次元空間内の任意の方向に移動させることができる。位置検出部52は、前述したように、作用点Pの三次元空間内の位置を、P(x,y,z)なる3つの座標値からなるデータとしてリアルタイムで逐次検出する機能を有している。一方、力発生部53は、演算制御手段40からリアルタイムで逐次与えられる力制御ベクトルCに基いて、力Fを発生させ、これを作用点Pに逐次加える機能を果たす。ここで、作用点Pに加えられる力Fは、力制御ベクトルCの向きおよび大きさをもった力である。
【0032】
結局、オペレータは、作用部51を装着した指を任意の方向に動かすことが可能ではあるが、逆に、作用点Pに加わる力Fを常に指先に受け、物体からの反力を感じることになる(もちろん、F=0の場合は、何ら反力は感じない)。
【0033】
図4は、このような力トランスデューサ50の具体的構成例を示す斜視図である。図では、力トランスデューサ50の作用部51(指サック)を右手の人差し指に装着した状態が示されている。この指の先端部分に作用点Pが定義されており、オペレータは、作用部51を任意の方向に移動させながら、仮想物体に対する接触感を体感することができる。図示の力トランスデューサ50では、複数のリンク機構を用いて、上述した2つの機能を実現している。すなわち、作用部51は、複数の自在アームによって支持されているため、ある程度の範囲の空間内では、三次元の任意の方向に自由に移動させることが可能である。しかも、各自在アームの回転位置を検出する機構が備わっており、作用点Pの三次元座標値P(x,y,z)を検出することができる。更に、各自在アームに力を加えるためのモータが用意されており、これらのモータを駆動することにより、作用点Pに任意の方向、任意の大きさの力を作用させることができる。
【0034】
このような複数のリンク機構を用いた力トランスデューサは、既に公知の装置であるため、その構造や機構についての詳細な説明は省略する。市販の製品としては、たとえば、米国のセンサブル・デバイス社(SensAble Device Inc.)が「PHANToM」なる商品名で販売している装置を利用することができる。結局、本発明に係る液体の接触感シミュレーション装置は、図4に示すような力トランスデューサを、汎用コンピュータに接続し、所定のプログラムをこのコンピュータに組み込むことにより実現することが可能になる。
【0035】
§4. 演算制御手段の動作
続いて、上述した実施形態に係るシミュレーション装置の具体的な動作、特に、演算制御手段40において行われる反力の演算処理動作について詳述する。いま、三次元座標系上の図5に示すような位置に、仮想物体B(αおよびβは、この仮想物体Bの表面を示す)が存在するものとする。もちろん、この仮想物体は、実在の物体ではないので、たとえば、図4に示すような力トランスデューサ50を用いた場合、この力トランスデューサ50が設置されている三次元空間内のいずれかの位置に、仮想物体の存在が定義されているに過ぎない。ここで、オペレータが図4のような指サック状の作用部51を人差し指に装着し、この作用部51の先端に定義された作用点Pを、図5の矢印Mで示されている方向に動かしたとしよう。すなわち、作用点Pは、図示の点P1→P2→P3→P4→P5→P6なる軌跡に沿って移動することになる。仮想物体Bは、実在の物体ではないので、もし、力トランスデューサ50に対して何ら力制御ベクトルが与えられていなければ、オペレータは、図5に示すように作用点を自由に移動させることができる。
【0036】
このような作用点Pの動きは、仮想物体Bが実在の物体であった場合には矛盾する。すなわち、図示の点P1→P2→P3までの移動は、仮想物体Bが実在の物体であった場合でも可能であるが、点P3→P4→P5→P6なる移動は、指先が物体の内部に侵入していることになり、物体が変形をしない限り、そのような作用点の移動は現実的には不可能である。もちろん、物体が弾性変形や塑性変形を生じるものとして、作用点が物体の内部に侵入した場合には、それに応じて物体の形状をリアルタイムで補正するという手法を採れば、図5に示すような作用点の移動に、現実的な矛盾は生じない。しかしながら、物体形状をリアルタイムで補正するには、膨大な演算処理が必要になり、特に、ディスプレイ20上にリアルタイムで物体を描画する場合、かなり高機能なコンピュータが要求されることになる。そこで、本実施形態では、仮想物体Bは剛体から構成されており、形状は一切変化しないものとして取り扱っている。
【0037】
このように、仮想物体Bを剛体として取り扱うと、図5における点P3→P4→P5→P6なる移動は、指先が剛体中にめり込んでいる状態に相当するため、現実の物理現象を忠実にシミュレートするという意味では、矛盾した移動になる。しかしながら、本発明の主眼は、オペレータに物体に対する接触感を体験させることにあるので、必ずしも現実の物理現象を忠実にシミュレートする必要はない。したがって、本発明では、図5に示すように、作用点Pが仮想物体Bの内部に侵入するような事象も認めることにする。ただし、オペレータに接触感を感じさせるためには、作用点Pが仮想物体Bの内部に侵入した際に、何らかの反力を作用点Pに戻してやる必要がある。本願発明者は、この反力の大きさを、作用点の内部滞在時間に基いて決定するようにすれば、仮想物体Bの表面における硬さあるいは柔らかさをオペレータに効果的に伝達させることができることを発見した。
【0038】
たとえば、図5において、作用点Pが点P1の位置あるいは点P2の位置にある場合、オペレータの指先はまだ仮想物体Bに触れていないので、何ら反力を戻す必要はない。ところが、作用点Pが点P3の位置(仮想物体Bの表面α上の位置)に到達した後、点P4→P5→P6へと移動してゆく間は、物体に接触したことを知らしめるために、何らかの反力を戻す必要がある。そこで、作用点Pと仮想物体Bとの相互位置関係を認識し、作用点Pが仮想物体Bの内部にあると判断された場合には、作用点Pが仮想物体Bの表面位置に到達した時点から現時点に至るまでの内部滞在時間tに基づいて、作用点Pに生じるべき反力を演算により求め、この反力に基いて作用点Pに加えるべき制御力を示す力制御ベクトルCを求め、求めた力制御ベクトルCを力トランスデューサ50へ与える制御を行うようにしたのである。
【0039】
図5の例では、作用点が点P3の位置に到達した時点が基準時刻0となり、点P4に到達した時点では内部滞在時間t=t1となり、点P5に到達した時点では内部滞在時間t=t2となり、点P6に到達した時点では内部滞在時間t=t3となる。この実施形態では、作用点の内部滞在時間が長くなればなるほど大きな反力が得られるようにしているため、反力の大きさは時間の経過とともに大きくなる。反力の大きさを定義するためには、時間tを変数とする所定の関数f(t)を用いるようにすればよい。既に述べたように、この関数f(t)は、物体情報設定手段10内に設定しておくことができる。いわば、関数f(t)は、仮想物体Bの表面状態を定義するための情報ということになる。
【0040】
図6に、関数f(t)の具体例をいくつか示しておく。いずれも、時間tの増加とともに関数値f(t)も増加している。図6(a) は、線形関数を用いた例を示しており、この場合、所定の係数Aを用いて、f(t)=A・tなる簡単な式で表現される。図6(b) は、時間tが小さいうちは急激な増加を示すが、徐々に増加率が低下するような関数を用いた例であり、比較的硬い接触感を与えることが可能である。これに対し、図6(c) は、時間tの増加とともに関数値は緩慢な増加を示し、最後は関数値が飽和してしまうような関数を用いた例であり、比較的柔らかい接触感を与えることが可能である。
【0041】
なお、本実施形態では、物体情報設定手段10内に、関数f(t)とともに硬さを示すパラメータKを設定しており、反力の大きさを、関数値f(t)とパラメータKとの積K・f(t)に基いて決定するようにしている。たとえば、図5に示す例では、作用点Pが点P4の位置に到達した時点では、内部滞在時間t=t1であるから、関数f(t)に内部滞在時間t1を代入して得られる関数値f(t1)に、パラメータKを乗じることにより得られる値K・f(t1)に基づいて反力の大きさが決定されることになる。同様に、作用点Pが点P5の位置に到達した時点では、値K・f(t2)に基いて反力の大きさが決定され、作用点Pが点P6の位置に到達した時点では、値K・f(t3)に基いて反力の大きさが決定される。関数f(t)が時間変化を示すファクターであるのに対し、パラメータKは絶対値として乗じられるファクターであり、これら両ファクターを併用することにより、バリエーション豊かな表面状態を設定することが可能になる。
【0042】
以上、反力の大きさを求める方法について述べたが、実際の反力は力制御ベクトルCとして、力発生部53によって作用点Pに対して与えられることになる。そこで、本実施形態では、物体情報設定手段10内の仮想物体Bを定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定しておくようにし、作用点Pが仮想物体Bの内部に位置する場合に、この作用点Pに最も近い二次元多角形に垂直な法線ベクトルNを求め、この法線ベクトルNを単位ベクトルとして大きさK・f(t)のベクトルを力制御ベクトルCとするようにしている。
【0043】
たとえば、図7に示す例の場合、仮想物体Bの内部に作用点Pが位置している。ここで、仮想物体Bの表面は多数の二次元多角形α,β,…によって定義されているが、作用点Pに最も近い二次元多角形αに立てた法線を向いた単位ベクトルを法線ベクトルNとし、この法線ベクトルNと同じ向きを向いており、大きさがK・f(t)のベクトルを力制御ベクトルCとすることになる。別言すれば、力制御ベクトルCは、法線ベクトルN(単位ベクトル)を用いて、C=K・f(t)・Nで与えられることになる。演算制御手段は、このような力制御ベクトルCを演算により求め、力トランスデューサ50内の力発生部53に与える処理を行う。力発生部53は、作用部51の作用点Pに対して、この力制御ベクトルCの方向に、この力制御ベクトルCの大きさに応じた力を作用させることになる。
【0044】
結局、オペレータの指先が仮想物体の表面位置を通過して内部に侵入すると、その時間経過(内部滞在時間)に応じて定まる大きさをもった反力が、仮想物体の表面に対して垂直な方向に制御力として加わることになる。オペレータは、この制御力を物体側からの抵抗力として感じることになり、物体表面の接触感を認識することになる。したがって、図5に示す例の場合、オペレータは、指先が点P3の位置に到達した時点から、矢印Mとは逆方向に押し戻される反力(正確には、表面αから垂直に押し戻される反力)を感じ始め、指先が点P4→P5→P6と移動するにしたがって、反力の大きさが徐々に大きくなるのを感じることができる(関数f(t)として、tとともに増加する関数を用いた場合)。
【0045】
このように、作用点が仮想物体の表面位置に到達した時点から現時点に至るまでの内部滞在時間に基いて反力の大きさを求める手法を採ると、演算制御手段40の演算負担を極めて少なくできるというメリットが得られる。すなわち、演算制御手段40は、作用点が仮想物体の外部にある場合は、反力に関する演算は一切行う必要がなく、作用点が仮想物体の内部にある場合は、作用点の内部滞在時間tを計測し、C=K・f(t)・Nなる単純な演算を行うだけでよい。
【0046】
§5. 作用点の深さも考慮して反力を求める手法
ところで、上述した§4の手法で反力を求めた場合、厳密には、現実の接触感とは矛盾する現象も起こり得る。たとえば、図5において、矢印Mに沿って点P1〜点P6へと作用点を移動させた後、今度は作用点を矢印Mとは逆方向に点P6〜点P1へと移動させたとしよう。この場合、作用点が物体表面の浅い位置へ向かっているにもかかわらず、内部滞在時間tは常に大きくなるため、反力は徐々に大きくなり続ける(あるいは、最大値に飽和した状態になる)。もちろん、作用点が点P3の位置まで到達すれば、以後は反力は全く作用しなくなるが、実際の作用点の位置にかかわらず、内部滞在時間tのみで反力の大きさを決定してしまうと、現実の接触感と比べて違和感が生じる可能性がある。また、図5において、同じ矢印Mに沿って指先を動かした場合でも、指先の移動速度によって、異なる接触感が得られることになる。もちろん、現実の世界においても、ゆっくりと触れた場合と、急いで触れた場合とでは、実際の接触感も異なるであろうから、指先の移動速度によって異なる接触感が得られること事態は、必ずしも現実と矛盾するものではない。ただ、より現実的な接触感を体験させる上では、以下に述べるように、作用点の深さをも考慮して反力を求めるようにするのが好ましい。
【0047】
たとえば、図8に示す例の場合、作用点Pの深さd(仮想物体Bの表面αとの距離)を求め、これに硬さを示すパラメータk(ここでは、前述したパラメータKと区別するために、小文字のkを用いている。)を乗じることにより、k・dなる大きさの反力を想定する。そして、力制御ベクトルCとして、C=(K・f(t)+k・d)・Nなる式で表されるベクトルを用いるのである。ここで、右辺第1項のK・f(t)は、§4で述べたとおり、作用点Pの内部滞在時間tに基づいて定まる第1の反力の大きさを示しており、右辺第2項のk・dは、上述したとおり、仮想物体Bの表面αと作用点Pとの距離dに基づいて定まる第2の反力の大きさを示している。また、右辺の法線ベクトルNは、前述したように、作用点Pに最も近い二次元多角形αに垂直な単位ベクトルである。結局、第1の反力と第2の反力との合成力に基いて作用点Pに加えるべき制御力を示す力制御ベクトルCが求められている。なお、合成力を求める際に、第1の反力と第2の反力との大きさの積をとるようにし、C=(K・f(t)×k・d)・Nなる式で力制御ベクトルCを求めてもかまわない。
【0048】
ここで併用した第2の反力は、仮想物体の表面と作用点との距離dが大きくなればなるほど大きな値を採ることになるので、指先を仮想物体の表面から内部に深く入れれば入れるほど、第2の反力は大きくなることになる。また、仮想物体の硬さを示すパラメータkと距離dとの積(k・d)に基いて第2の反力の大きさを決定するようにしているので、物体の硬さの設定情報を反映させることができる。
【0049】
以上、本発明を図示する実施形態に基いて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。
【0050】
たとえば、上述の例では、1組の力トランスデューサ50のみを用いているが、複数組の力トランスデューサ50を用意すれば、仮想物体に対する把持動作を体験させることも可能である。図9には、2組の力トランスデューサ50を用い、両作用部51(指サック)をそれぞれ親指と人差し指とに装着した状態が示されている。いずれも指の先端部分に作用点Pが定義されており、オペレータは、両作用部51を任意の方向に移動させながら、仮想物体Bを把持する動作を体感することができる。
【0051】
また、上述の実施形態では、関数f(t)は時間tの増加とともに関数値が増加するタイプの関数を用いているが、特殊な接触感(たとえば、現実には存在しないような不思議な材質の物体に対する接触感)を与える上では、時間tの増加とともに関数値が減少するようなタイプの関数を用いることも可能である。
【0052】
【発明の効果】
以上のとおり本発明に係る物体の接触感シミュレーション装置によれば、作用点の内部滞在時間に基いて反力の大きさを決定するようにしたため、物体表面に対する接触感を疑似的に体験させることができるシミュレーション装置を提供することが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る物体の接触感シミュレーション装置の基本構成を示すブロック図である。
【図2】図1に示すシミュレーション装置において定義された仮想物体およびその形状データの一例を示す図である。
【図3】図1に示すシミュレーション装置における力トランスデューサの機能を示すブロック図である。
【図4】図3に示す力トランスデューサの具体的な構成例を示す斜視図である。
【図5】本発明における反力の求め方の基本概念を説明するための物体の側断面図である。
【図6】本発明において反力を求める際に用いられる時間tの関数f(t)の具体例を示すグラフである。
【図7】本発明における反力の方向の基本概念を説明するための物体の側断面図である。
【図8】本発明において2種類の反力を用いる基本概念を説明するための物体の側断面図である。
【図9】2組の力トランスデューサを用いた本発明の具体的な構成例を示す斜視図である。
【符号の説明】
1〜8…頂点
10…物体情報設定手段
20…ディスプレイ
30…物体形状描画手段
40…演算制御手段
50…力トランスデューサ
51…作用部
52…位置検出部
53…力発生部
B…仮想物体
C…力制御ベクトル
d…作用点と仮想物体の表面との距離
f(t)…時間tの関数
F…作用点に加わる力
K,k…硬さを示すパラメータ
M…作用点の移動方向
N…法線ベクトル
P…作用点
P1〜P6…作用点Pの位置
P(x,y,z)…作用点Pの位置
α,β…仮想物体の表面を構成する多角形
Claims (12)
- 所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行う装置であって、
仮想物体を定義するための情報を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、前記作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて前記作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
前記位置検出部が検出した作用点の位置と前記物体情報設定手段内の情報とに基づいて、前記作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを前記力トランスデューサへ与える制御を行う演算制御手段と、
を備え、
前記演算制御手段が、
前記位置検出部が検出した作用点の位置と前記物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、作用点と仮想物体との相互位置関係を認識する相互位置関係認識部と、
前記相互位置関係認識部により作用点が仮想物体の表面位置に到達したと認識された時点から現時点に至るまでの時間を計測する時間計測部と、
前記相互位置関係認識部により作用点が仮想物体の内部にあると判断されたときに、前記時間計測部の計測値として与えられる内部滞在時間に基づいて前記作用点に生じるべき反力を演算により求める反力演算部と、
前記反力に基いて作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
を有することを特徴とする物体の接触感シミュレーション装置。 - 請求項1に記載のシミュレーション装置において、
反力演算部が、内部滞在時間が長くなればなるほど反力の大きさが大きくなる演算を行うことを特徴とする物体の接触感シミュレーション装置。 - 請求項1または2に記載のシミュレーション装置において、
物体情報設定手段が、時間tを変数とする所定の関数f(t)を仮想物体の表面状態を定義するための情報として設定し、
反力演算部が、前記関数f(t)に内部滞在時間tを代入して得られる関数値に基づいて反力の大きさを決定することを特徴とする物体の接触感シミュレーション装置。 - 請求項3に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータKを設定し、
反力演算部が、反力の大きさを、関数値f(t)とパラメータKとの積K・f(t)に基いて決定することを特徴とする物体の接触感シミュレーション装置。 - 請求項4に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定し、
力制御ベクトル演算部が、作用点Pが仮想物体の内部に位置する場合に、この作用点Pに最も近い二次元多角形αに垂直な法線ベクトルNを求め、この法線ベクトルNを単位ベクトルとし、反力演算部で演算された反力に応じた大きさをもつベクトルを力制御ベクトルとすることを特徴とする物体の接触感シミュレーション装置。 - 請求項1〜5のいずれかに記載のシミュレーション装置において、
反力演算部が、作用点の内部滞在時間に基づいて定まる第1の反力と、仮想物体の表面と作用点との距離に基づいて定まる第2の反力と、を演算する機能を有し、前記第1の反力と前記第2の反力との合成力を作用点に生じるべき反力とすることを特徴とする物体の接触感シミュレーション装置。 - 請求項6に記載のシミュレーション装置において、
反力演算部が、仮想物体の表面と作用点との距離dが大きくなればなるほど第2の反力が大きくなる演算を行うことを特徴とする物体の接触感シミュレーション装置。 - 請求項7に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータkを設定し、
反力演算部が、第2の反力の大きさを、パラメータkと距離dとの積(k・d)に基いて決定することを特徴とする物体の接触感シミュレーション装置。 - 請求項1〜8のいずれかに記載のシミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された情報および位置検出部が検出した作用点の位置の情報に基いて、前記ディスプレイの画面上の所定の表示位置に仮想物体の形状および作用点を描画する物体形状描画手段と、
を更に設けたことを特徴とする物体の接触感シミュレーション装置。 - 請求項9に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、前記質感データおよび前記光源データを考慮して仮想物体の形状を描画することを特徴とする物体の接触感シミュレーション装置。 - コンピュータを、請求項1〜10のいずれかに記載のシミュレーション装置における演算制御手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- 請求項1〜10のいずれかに記載のシミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したことを特徴とする物体の接触感シミュレーション装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22545898A JP3722992B2 (ja) | 1998-07-24 | 1998-07-24 | 物体の接触感シミュレーション装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22545898A JP3722992B2 (ja) | 1998-07-24 | 1998-07-24 | 物体の接触感シミュレーション装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000047565A JP2000047565A (ja) | 2000-02-18 |
JP3722992B2 true JP3722992B2 (ja) | 2005-11-30 |
Family
ID=16829664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22545898A Expired - Lifetime JP3722992B2 (ja) | 1998-07-24 | 1998-07-24 | 物体の接触感シミュレーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3722992B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020073890A (ko) * | 2001-03-16 | 2002-09-28 | 한국전자통신연구원 | 손의 주물거림을 이용한 3 차원 모델링 시스템 및 그 방법 |
JP4687957B2 (ja) * | 2005-03-29 | 2011-05-25 | マツダ株式会社 | 車両企画支援システム |
JP4926799B2 (ja) * | 2006-10-23 | 2012-05-09 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
JP6499900B2 (ja) * | 2015-04-06 | 2019-04-10 | 日本放送協会 | 力覚制御装置及び力覚提示装置 |
JP2017182495A (ja) * | 2016-03-30 | 2017-10-05 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
CN110047343B (zh) * | 2019-03-27 | 2021-07-20 | 北京市理化分析测试中心 | 一种vr模拟显微硬度计操作的方法 |
-
1998
- 1998-07-24 JP JP22545898A patent/JP3722992B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000047565A (ja) | 2000-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Salisbury et al. | Haptic rendering: introductory concepts | |
US7084884B1 (en) | Graphical object interactions | |
Murakami et al. | Direct and intuitive input device for 3-D shape deformation | |
US20060119578A1 (en) | System for interfacing between an operator and a virtual object for computer aided design applications | |
Burdea | Haptics issues in virtual environments | |
Massie | Initial haptic explorations with the phantom: Virtual touch through point interaction | |
CN101819462B (zh) | 基于力/触觉交互设备的图像纹理的力触觉再现*** | |
Magnenat-Thalmann et al. | From Physics-based Simulation to the Touching of Textiles: The HAPTEX Project. | |
KR101318244B1 (ko) | 3차원 사용자 인터페이스 구현 시스템 및 구현 방법 | |
KR100906576B1 (ko) | 핸드 햅틱 인터페이스 장치 및 방법 | |
CN111665933A (zh) | 虚拟或者增强现实中的对象操作方法及装置 | |
Romat et al. | Flashpen: A high-fidelity and high-precision multi-surface pen for virtual reality | |
JP3722994B2 (ja) | 物体の接触感シミュレーション装置 | |
JP3722992B2 (ja) | 物体の接触感シミュレーション装置 | |
Stewart et al. | CAD data representations for haptic virtual prototyping | |
JP3722993B2 (ja) | 物体の毛並接触感シミュレーション装置 | |
JP3713381B2 (ja) | 物体の把持動作シミュレーション装置 | |
JP6088208B2 (ja) | 触力覚提示装置 | |
Pihuit et al. | Hands on virtual clay | |
McGee et al. | Haptic perception of virtual roughness | |
Murakami et al. | DO-IT: deformable object as input tool for 3-D geometric operation | |
Sener et al. | Towards' virtual clay'modelling-challenges and recommendations: a brief summary of the literature | |
JP6386781B2 (ja) | 触力覚提示装置 | |
JP2000047563A (ja) | 物体の把持動作シミュレーション装置 | |
Salsedo et al. | Architectural design of the haptex system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050810 |
|
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: 20050913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050914 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090922 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100922 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110922 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120922 Year of fee payment: 7 |