(57)【特許請求の範囲】
【請求項１】
所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行う装置であって、
仮想物体を定義するための情報を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、前記作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて前記作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
前記位置検出部が検出した作用点の位置と前記物体情報設定手段内の情報とに基づいて、前記作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを前記力トランスデューサへ与える制御を行う演算制御手段と、
を備え、
前記演算制御手段が、
前記位置検出部が検出した作用点の位置と前記物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、作用点と仮想物体との相互位置関係を認識する相互位置関係認識部と、
前記相互位置関係認識部により作用点が仮想物体の表面位置に到達したと認識された時点から現時点に至るまでの時間を計測する時間計測部と、
前記相互位置関係認識部により作用点が仮想物体の内部にあると判断されたときに、前記時間計測部の計測値として与えられる内部滞在時間に基づいて前記作用点に生じるべき反力を演算により求める反力演算部と、
前記反力に基いて作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
を有することを特徴とする物体の接触感シミュレーション装置。
【請求項２】
請求項１に記載のシミュレーション装置において、
反力演算部が、内部滞在時間が長くなればなるほど反力の大きさが大きくなる演算を行うことを特徴とする物体の接触感シミュレーション装置。
【請求項３】
請求項１または２に記載のシミュレーション装置において、
物体情報設定手段が、時間ｔを変数とする所定の関数ｆ（ｔ）を仮想物体の表面状態を定義するための情報として設定し、
反力演算部が、前記関数ｆ（ｔ）に内部滞在時間ｔを代入して得られる関数値に基づいて反力の大きさを決定することを特徴とする物体の接触感シミュレーション装置。
【請求項４】
請求項３に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータＫを設定し、
反力演算部が、反力の大きさを、関数値ｆ（ｔ）とパラメータＫとの積Ｋ・ｆ（ｔ）に基いて決定することを特徴とする物体の接触感シミュレーション装置。
【請求項５】
請求項４に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定し、
力制御ベクトル演算部が、作用点Ｐが仮想物体の内部に位置する場合に、この作用点Ｐに最も近い二次元多角形αに垂直な法線ベクトルＮを求め、この法線ベクトルＮを単位ベクトルとし、反力演算部で演算された反力に応じた大きさをもつベクトルを力制御ベクトルとすることを特徴とする物体の接触感シミュレーション装置。
【請求項６】
請求項１〜５のいずれかに記載のシミュレーション装置において、
反力演算部が、作用点の内部滞在時間に基づいて定まる第１の反力と、仮想物体の表面と作用点との距離に基づいて定まる第２の反力と、を演算する機能を有し、前記第１の反力と前記第２の反力との合成力を作用点に生じるべき反力とすることを特徴とする物体の接触感シミュレーション装置。
【請求項７】
請求項６に記載のシミュレーション装置において、
反力演算部が、仮想物体の表面と作用点との距離ｄが大きくなればなるほど第２の反力が大きくなる演算を行うことを特徴とする物体の接触感シミュレーション装置。
【請求項８】
請求項７に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータｋを設定し、
反力演算部が、第２の反力の大きさを、パラメータｋと距離ｄとの積（ｋ・ｄ）に基いて決定することを特徴とする物体の接触感シミュレーション装置。
【請求項９】
請求項１〜８のいずれかに記載のシミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された情報および位置検出部が検出した作用点の位置の情報に基いて、前記ディスプレイの画面上の所定の表示位置に仮想物体の形状および作用点を描画する物体形状描画手段と、
を更に設けたことを特徴とする物体の接触感シミュレーション装置。
【請求項１０】
請求項９に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、前記質感データおよび前記光源データを考慮して仮想物体の形状を描画することを特徴とする物体の接触感シミュレーション装置。
【請求項１１】
コンピュータを、請求項１〜１０のいずれかに記載のシミュレーション装置における演算制御手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
請求項１〜１０のいずれかに記載のシミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したことを特徴とする物体の接触感シミュレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は物体の接触感シミュレーション装置に関し、特に、物体表面に触れる際の硬軟感を疑似的に体験させることのできるシミュレーション装置に関する。
【０００２】
【従来の技術】
コンピュータを利用したシミュレーションは、種々の分野で採り入れられており、特に近年では、コンピュータの画像処理機能の向上により、いわゆるバーチャル・リアリティーと呼ばれている仮想現実の世界をディスプレイ画面上に表示するシミュレーション装置が普及してきている。この種のシミュレーション装置では、通常、オペレータは仮想の空間内を自由に移動することができ、オペレータの移動に伴ってディスプレイの表示画面がリアルタイムで描き換えられてゆく。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のシミュレーション装置は、ディスプレイ上の映像などを利用して、オペレータの視覚を通じて仮想の世界を提示することに主眼が置かれており、オペレータの触覚を通じて仮想の世界を提示する機能に乏しい。ところが、今後は、物体表面に触れた際の硬さあるいは軟らかさといった感触を疑似的に提供することができるシミュレーション装置の需要が見込まれており、特に、市販のパソコン程度の処理機能をもったコンピュータを利用した安価なシミュレーション装置が望まれている。
【０００４】
そこで本発明は、物体表面に対する接触感を疑似的に体験させることができるシミュレーション装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
(1)   本発明の第１の態様は、所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行う物体の接触感シミュレーション装置において、
仮想物体を定義するための情報を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報とに基づいて、作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを力トランスデューサへ与える制御を行う演算制御手段と、
を設け、
演算制御手段に、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、作用点と仮想物体との相互位置関係を認識する相互位置関係認識部と、
相互位置関係認識部により作用点が仮想物体の表面位置に到達したと認識された時点から現時点に至るまでの時間を計測する時間計測部と、
相互位置関係認識部により作用点が仮想物体の内部にあると判断されたときに、時間計測部の計測値として与えられる内部滞在時間に基づいて作用点に生じるべき反力を演算により求める反力演算部と、
求めた反力に基いて作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
を設けるようにしたものである。
【０００６】
(2)   本発明の第２の態様は、上述の第１の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、内部滞在時間が長くなればなるほど反力の大きさが大きくなる演算を行うようにしたものである。
【０００７】
(3)   本発明の第３の態様は、上述の第１または第２の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、時間ｔを変数とする所定の関数ｆ（ｔ）を仮想物体の表面状態を定義するための情報として物体情報設定手段内に設定し、
反力演算部が、関数ｆ（ｔ）に内部滞在時間ｔを代入して得られる関数値に基づいて反力の大きさを決定するようにしたものである。
【０００８】
(4)   本発明の第４の態様は、上述の第３の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータＫを設定し、
反力演算部が、反力の大きさを、関数値ｆ（ｔ）とパラメータＫとの積Ｋ・ｆ（ｔ）に基いて決定するようにしたものである。
【０００９】
(5)   本発明の第５の態様は、上述の第４の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定し、
力制御ベクトル演算部が、作用点Ｐが仮想物体の内部に位置する場合に、この作用点Ｐに最も近い二次元多角形αに垂直な法線ベクトルＮを求め、この法線ベクトルＮを単位ベクトルとし、反力演算部で演算された反力に応じた大きさをもつベクトルを力制御ベクトルとするようにしたものである。
【００１０】
(6)   本発明の第６の態様は、上述の第１〜第５の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、作用点の内部滞在時間に基づいて定まる第１の反力と、仮想物体の表面と作用点との距離に基づいて定まる第２の反力と、を演算する機能を有し、第１の反力と第２の反力との合成力を作用点に生じるべき反力とするようにしたものである。
【００１１】
(7)   本発明の第７の態様は、上述の第６の態様に係る物体の接触感シミュレーション装置において、
反力演算部が、仮想物体の表面と作用点との距離ｄが大きくなればなるほど第２の反力が大きくなる演算を行うようにしたものである。
【００１２】
(8)   本発明の第８の態様は、上述の第７の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、仮想物体の硬さを示すパラメータｋを設定し、
反力演算部が、第２の反力の大きさを、パラメータｋと距離ｄとの積（ｋ・ｄ）に基いて決定するようにしたものである。
【００１３】
(9)   本発明の第９の態様は、上述の第１〜第８の態様に係る物体の接触感シミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された情報および位置検出部が検出した作用点の位置の情報に基いて、ディスプレイの画面上の所定の表示位置に仮想物体の形状および作用点を描画する物体形状描画手段と、
を更に設け、オペレータに仮想物体の形状および位置ならびに作用点の位置を提示できるようにしたものである。
【００１４】
(10)  本発明の第１０の態様は、上述の第９の態様に係る物体の接触感シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、質感データおよび光源データを考慮して仮想物体の形状を描画するようにしたものである。
【００１５】
(11)  本発明の第１１の態様は、コンピュータを、上述の第１〜第１０の態様に係る物体の接触感シミュレーション装置として動作させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００１６】
(12)  本発明の第１２の態様は、上述の第１〜第１０の態様に係る物体の接触感シミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したものである。
【００１７】
【発明の実施の形態】
§１．  装置の基本構成
以下、本発明を図示する実施形態に基いて説明する。図１は本発明の一実施形態に係る物体の接触感シミュレーション装置の基本構成を示すブロック図である。この装置では、所定の仮想物体を定義し、この仮想物体に対する接触感を疑似的に体験させるためのシミュレーションを行うことができる。この装置の構成要素は、図示のとおり、物体情報設定手段１０と、ディスプレイ２０と、物体形状描画手段３０と、演算制御手段４０と、力トランスデューサ５０とである。
【００１８】
物体情報設定手段１０は、仮想物体を定義するための情報を設定する機能を有する。オペレータが、この物体情報設定手段１０に対してデータやパラメータなどの情報を入力すると、入力された情報は、この物体情報設定手段１０内に格納され保持される。オペレータは、物体情報設定手段１０に対して設定したデータやパラメータを変更することにより、シミュレーションの条件設定を適宜変えることができる。この実施形態では、仮想物体を定義するための情報として、図示のように、形状データ，質感データ，光源データなる３種類のデータと、時間ｔを変数とする所定の関数ｆ（ｔ）と、仮想物体の硬さを示すパラメータＫとを設定できるようにしている。
【００１９】
ディスプレイ２０は、仮想物体を表示するための手段であり、図１では立方体形状の仮想物体Ｂが所定位置に表示されている状態が示されている。物体形状描画手段３０は、物体情報設定手段１０内に設定された情報（形状データ，質感データ，光源データ）に基いて、ディスプレイ２０の画面上の所定位置に仮想物体Ｂの形状を描画する機能を有する。なお、物体形状描画手段３０は、仮想物体Ｂだけでなく、後述する作用点Ｐの位置を、ディスプレイ２０の画面上に描画する機能を有しており、図示のとおり、ディスプレイ２０の画面上には、仮想物体Ｂとともに、作用点Ｐの位置が表示される。
【００２０】
力トランスデューサ５０は、作用部５１、位置検出部５２、力発生部５３を有しており、演算制御手段４０に接続されている。力トランスデューサ５０は、オペレータに対するマン・マシン・インターフェイスとして機能し、オペレータから与えられる操作量を入力するとともに、オペレータに対して力を返す働きをする。この実施形態では、力トランスデューサ５０は、１本の指としての機能を果たすことになり、仮想物体に対する接触感は、この指を介して体験することになる。
【００２１】
作用部５１上には、作用点Ｐが定義されており、この作用点Ｐはオペレータから加えられた力に基いて三次元の任意方向に移動可能となっている。図１のディスプレイ２０上に表示されている作用点Ｐは、この作用部５１上の作用点の位置である。位置検出部５２は、作用部５１上の作用点Ｐの三次元座標系上での位置を検出する機能を有する。具体的には、作用点Ｐの位置は、ｘ座標，ｙ座標，ｚ座標の３つの座標値として検出されることになる。ここでは、この３つの座標値によって示された作用点Ｐの位置をＰ（ｘ，ｙ，ｚ）なるデータで表わすことにする。
【００２２】
この作用点の位置を示すデータＰ（ｘ，ｙ，ｚ）は、演算制御手段４０に与えられ、更に、物体形状描画手段３０へと与えられる。物体形状描画手段３０は、前述したように、この位置を示すデータに基いて、ディスプレイ２０の画面上に作用点Ｐの位置を描画することになる。一方、演算制御手段４０は、位置検出部５２が検出した作用点Ｐの位置と物体情報設定手段１０内の情報により定義された仮想物体の位置とに基いて、作用点Ｐと仮想物体Ｂとの相互位置関係を認識し、その認識結果に応じて作用点Ｐに生じるべき反力（仮想物体側からオペレータ側へと返される力）を求める演算を行う。ここで行われる具体的な演算内容については後に詳述する。こうして、作用点Ｐに生じるべき反力が得られたら、この反力に基いて作用点Ｐに加えるべき制御力を示す力制御ベクトルＣが求められ、この力制御ベクトルＣを示すデータは、力トランスデューサ５０へ与えられる。力トランスデューサ５０内の力発生部５３は、演算制御手段４０から与えられた力制御ベクトルＣに基いて作用点Ｐに加える力を発生させる機能を有する。
【００２３】
§２．  物体情報設定手段に設定される情報
続いて、図１に示すシミュレーション装置において、物体情報設定手段１０内に設定される具体的な情報について説明する。前述したように、この実施形態では、形状データ，質感データ，光源データ，時間ｔの関数ｆ（ｔ），硬度を示すパラメータＫが設定される。
【００２４】
形状データは、仮想物体の三次元形状を特定するためのデータである。ここでは、仮想物体の表面を二次元多角形の集合体として表現するようにしており、二次元多角形の頂点座標を示す頂点テーブルと、各二次元多角形を構成する頂点の連結関係を示す面テーブルと、によって形状データを構成するようにしている。たとえば、図２(a) に示すような立方体からなる仮想物体を定義する場合を考える。この立方体は、６つの正方形の集合体として表現することができ、図に１〜８の番号を付した合計８個の頂点によって構成される。このような立方体についての形状データは、図２(b) に示す頂点テーブルと図２(c) に示す面テーブルによって構成できる。図２(a) に示す頂点テーブルは、８個の頂点のそれぞれについて、ＸＹＺ三次元座標系における位置座標を示している。図示の例では、図２(a) に示す立方体は、頂点１が座標系の原点に位置し、頂点１−２に沿った辺がＸ軸上、頂点１−４に沿った辺がＹ軸上、頂点１−５に沿った辺がＺ軸上に位置しており、一辺の長さが１となる立方体である。図２(b) の頂点テーブルは、単に８個の頂点の位置座標を示すものであり、仮想物体の形状は、実際には、図２(c) の面テーブルによって定義されることになる。この面テーブルは、この立方体を構成する６個の面▲１▼〜▲６▼の頂点構成を示しており、たとえば、面▲１▼は、頂点１−２−６−５を連結することにより形成される面になる。
【００２５】
このように、頂点テーブルと面テーブルとを用いれば、任意形状の仮想物体の表面を定義することができる。図２の例では、仮想物体の表面を四角形の集合体として定義したが、三角形や六角形など、用いる多角形はどのようなものでもかまわない。また、本発明を実施する上では、仮想物体の形状定義は必ずしも二次元多角形を用いる必要はない。たとえば、球や円錐などであれば、方程式を用いて定義することも可能であり、物体情報設定手段１０に設定される形状データは、数値、式を問わず、形状を定義することができる情報であればどのようなものでもかまわない。なお、ここに示す実施形態では、形状データは座標を示す情報（図２の例では、頂点テーブル内の各座標値）を含んでいるため、形状とともに位置を定義する情報として機能する。もちろん、形状データとは別個に位置を示すための位置データを設定するようにしてもよい。
【００２６】
物体情報設定手段１０に設定される質感データは、形状データによって定義された仮想物体の表面の質感を示すためのデータである。具体的には、仮想物体を構成する各面（図２の例では、面▲１▼〜▲６▼）についての環境色，拡散色，鏡面色，鏡面係数などの値が質感データとして設定される。また、光源データは、この仮想物体を照明するための光源の性質を示すデータであり、光源の形状（点，線，面），光源の位置，光源色などを示すデータが光源データとして設定される。この質感データおよび光源データは、ディスプレイ２０の画面上に、定義した仮想物体を表示するために利用されるデータである。物体形状描画手段３０は、この質感データおよび光源データを考慮して、仮想物体Ｂの形状を描画することになる。
【００２７】
一方、時間ｔの関数ｆ（ｔ）および硬度を示すパラメータＫは、仮想物体の表面状態を定義する情報である。関数ｆ（ｔ）もパラメータＫも、いずれも物体表面の硬さあるいは柔らかさを左右する要素であるが、パラメータＫが作用点Ｐに作用する反力の大きさを決定する係数として機能するのに対し、関数ｆ（ｔ）は反力の大きさの時間変化を決定する機能を果たす。これらの機能については後述する。関数ｆ（ｔ）もパラメータＫも、仮想物体の個々の表面ごとにそれぞれ異なる関数あるいはパラメータ値を設定することも可能であるが、本実施形態では、１つの仮想物体に対しては１つの関数ｆ（ｔ）のみ、１つのパラメータＫのみを設定するようにしている。したがって、１つの仮想物体については、どの面についての接触感も同じであるが、異なる仮想物体については、それぞれ異なる関数ｆ（ｔ）およびパラメータＫを設定しているので、物体ごとに接触感の相違を体験することができる。もちろん、１つの仮想物体の面ごとに、これらの設定を変えれば、同一の仮想物体であっても、面ごとに異なる接触感を体験することができるようになる。
【００２８】
§３．  具体的な装置構成
図１に示すブロック図は、説明の便宜上、本発明に係る装置を機能要素の集合としてとらえ、個々の機能要素をブロックで示したものであり、実際には、このシミュレーション装置はコンピュータを利用して構築される。すなわち、図１に示す装置における物体情報設定手段１０、物体形状描画手段３０、演算制御手段４０は、汎用のコンピュータに、上述した各処理を実行するためのプログラムを組み込むことにより構成することができる。たとえば、物体情報設定手段１０に対するデータやパラメータの設定は、キーボードやマウスなどのコンピュータ用入力機器を用いて行うことができ、設定されたデータやパラメータはメモリや種々の記憶装置に格納されることになる。また、物体形状描画手段３０による描画機能や、演算制御手段４０による演算処理機能は、コンピュータに組み込まれたプログラムによって実現されることになり、このプログラムは、コンピュータ読み取り可能な記録媒体に記録して配布することが可能である。なお、ディスプレイ２０は、コンピュータ用の一般的なディスプレイ装置によって構成できる。
【００２９】
一方、力トランスデューサ５０は、オペレータの物理的操作をデジタルデータ（作用点の位置を示すデータ）に変換する第１の機能と、演算制御手段４０から与えられるデジタルデータ（力制御ベクトルＣを示すデータ）を物理的な力に変換してオペレータに与える第２の機能とを実行する物理的な構成要素である。一般的な物体に対する接触動作には、通常、指が用いられる。そこで、この実施形態では、上記機能が効果的に実行されるように、力トランスデューサ５０の作用部５１を、オペレータの指先に嵌めて固定できる指サックにより構成し、オペレータの指の動きに基いて作用点Ｐを移動できるようにするとともに、力制御ベクトルＣに基く制御力がこの指サックを介してオペレータの指に伝達されるように構成した。
【００３０】
図３は、この指サックの形態をした作用部５１を用いて構成される力トランスデューサ５０の機能を示すブロック図である。作用部５１は、ゴムなどの弾力性をもった材料で構成されており、オペレータは、この作用部５１を指の先端に装着して固定することができる。図示の例では、この作用部５１の先端部分に作用点Ｐが定義されている（もちろん、作用点Ｐは作用部５１のいずれの部分に定義してもかまわないが、操作性を向上する上では、指先位置に定義するのが好ましい）。本発明では、このような力トランスデューサを少なくとも１組用意する必要がある。
【００３１】
この力トランスデューサ５０において、作用部５１は三次元の自由度をもって移動可能な状態に支持されている必要がある。すなわち、作用点Ｐは、オペレータから加えられた力に基いて三次元の任意方向に移動可能な状態になっている必要がある（もちろん、作用点Ｐの移動可能空間は、所定の範囲内に制限されていてかまわない）。したがって、オペレータは、作用部５１を指先に装着した状態で、指先を三次元空間内の任意の方向に移動させることができる。位置検出部５２は、前述したように、作用点Ｐの三次元空間内の位置を、Ｐ（ｘ，ｙ，ｚ）なる３つの座標値からなるデータとしてリアルタイムで逐次検出する機能を有している。一方、力発生部５３は、演算制御手段４０からリアルタイムで逐次与えられる力制御ベクトルＣに基いて、力Ｆを発生させ、これを作用点Ｐに逐次加える機能を果たす。ここで、作用点Ｐに加えられる力Ｆは、力制御ベクトルＣの向きおよび大きさをもった力である。
【００３２】
結局、オペレータは、作用部５１を装着した指を任意の方向に動かすことが可能ではあるが、逆に、作用点Ｐに加わる力Ｆを常に指先に受け、物体からの反力を感じることになる（もちろん、Ｆ＝０の場合は、何ら反力は感じない）。
【００３３】
図４は、このような力トランスデューサ５０の具体的構成例を示す斜視図である。図では、力トランスデューサ５０の作用部５１（指サック）を右手の人差し指に装着した状態が示されている。この指の先端部分に作用点Ｐが定義されており、オペレータは、作用部５１を任意の方向に移動させながら、仮想物体に対する接触感を体感することができる。図示の力トランスデューサ５０では、複数のリンク機構を用いて、上述した２つの機能を実現している。すなわち、作用部５１は、複数の自在アームによって支持されているため、ある程度の範囲の空間内では、三次元の任意の方向に自由に移動させることが可能である。しかも、各自在アームの回転位置を検出する機構が備わっており、作用点Ｐの三次元座標値Ｐ（ｘ，ｙ，ｚ）を検出することができる。更に、各自在アームに力を加えるためのモータが用意されており、これらのモータを駆動することにより、作用点Ｐに任意の方向、任意の大きさの力を作用させることができる。
【００３４】
このような複数のリンク機構を用いた力トランスデューサは、既に公知の装置であるため、その構造や機構についての詳細な説明は省略する。市販の製品としては、たとえば、米国のセンサブル・デバイス社（SensAble Device Inc.）が「ＰＨＡＮＴｏＭ」なる商品名で販売している装置を利用することができる。結局、本発明に係る液体の接触感シミュレーション装置は、図４に示すような力トランスデューサを、汎用コンピュータに接続し、所定のプログラムをこのコンピュータに組み込むことにより実現することが可能になる。
【００３５】
§４．  演算制御手段の動作
続いて、上述した実施形態に係るシミュレーション装置の具体的な動作、特に、演算制御手段４０において行われる反力の演算処理動作について詳述する。いま、三次元座標系上の図５に示すような位置に、仮想物体Ｂ（αおよびβは、この仮想物体Ｂの表面を示す）が存在するものとする。もちろん、この仮想物体は、実在の物体ではないので、たとえば、図４に示すような力トランスデューサ５０を用いた場合、この力トランスデューサ５０が設置されている三次元空間内のいずれかの位置に、仮想物体の存在が定義されているに過ぎない。ここで、オペレータが図４のような指サック状の作用部５１を人差し指に装着し、この作用部５１の先端に定義された作用点Ｐを、図５の矢印Ｍで示されている方向に動かしたとしよう。すなわち、作用点Ｐは、図示の点Ｐ１→Ｐ２→Ｐ３→Ｐ４→Ｐ５→Ｐ６なる軌跡に沿って移動することになる。仮想物体Ｂは、実在の物体ではないので、もし、力トランスデューサ５０に対して何ら力制御ベクトルが与えられていなければ、オペレータは、図５に示すように作用点を自由に移動させることができる。
【００３６】
このような作用点Ｐの動きは、仮想物体Ｂが実在の物体であった場合には矛盾する。すなわち、図示の点Ｐ１→Ｐ２→Ｐ３までの移動は、仮想物体Ｂが実在の物体であった場合でも可能であるが、点Ｐ３→Ｐ４→Ｐ５→Ｐ６なる移動は、指先が物体の内部に侵入していることになり、物体が変形をしない限り、そのような作用点の移動は現実的には不可能である。もちろん、物体が弾性変形や塑性変形を生じるものとして、作用点が物体の内部に侵入した場合には、それに応じて物体の形状をリアルタイムで補正するという手法を採れば、図５に示すような作用点の移動に、現実的な矛盾は生じない。しかしながら、物体形状をリアルタイムで補正するには、膨大な演算処理が必要になり、特に、ディスプレイ２０上にリアルタイムで物体を描画する場合、かなり高機能なコンピュータが要求されることになる。そこで、本実施形態では、仮想物体Ｂは剛体から構成されており、形状は一切変化しないものとして取り扱っている。
【００３７】
このように、仮想物体Ｂを剛体として取り扱うと、図５における点Ｐ３→Ｐ４→Ｐ５→Ｐ６なる移動は、指先が剛体中にめり込んでいる状態に相当するため、現実の物理現象を忠実にシミュレートするという意味では、矛盾した移動になる。しかしながら、本発明の主眼は、オペレータに物体に対する接触感を体験させることにあるので、必ずしも現実の物理現象を忠実にシミュレートする必要はない。したがって、本発明では、図５に示すように、作用点Ｐが仮想物体Ｂの内部に侵入するような事象も認めることにする。ただし、オペレータに接触感を感じさせるためには、作用点Ｐが仮想物体Ｂの内部に侵入した際に、何らかの反力を作用点Ｐに戻してやる必要がある。本願発明者は、この反力の大きさを、作用点の内部滞在時間に基いて決定するようにすれば、仮想物体Ｂの表面における硬さあるいは柔らかさをオペレータに効果的に伝達させることができることを発見した。
【００３８】
たとえば、図５において、作用点Ｐが点Ｐ１の位置あるいは点Ｐ２の位置にある場合、オペレータの指先はまだ仮想物体Ｂに触れていないので、何ら反力を戻す必要はない。ところが、作用点Ｐが点Ｐ３の位置（仮想物体Ｂの表面α上の位置）に到達した後、点Ｐ４→Ｐ５→Ｐ６へと移動してゆく間は、物体に接触したことを知らしめるために、何らかの反力を戻す必要がある。そこで、作用点Ｐと仮想物体Ｂとの相互位置関係を認識し、作用点Ｐが仮想物体Ｂの内部にあると判断された場合には、作用点Ｐが仮想物体Ｂの表面位置に到達した時点から現時点に至るまでの内部滞在時間ｔに基づいて、作用点Ｐに生じるべき反力を演算により求め、この反力に基いて作用点Ｐに加えるべき制御力を示す力制御ベクトルＣを求め、求めた力制御ベクトルＣを力トランスデューサ５０へ与える制御を行うようにしたのである。
【００３９】
図５の例では、作用点が点Ｐ３の位置に到達した時点が基準時刻０となり、点Ｐ４に到達した時点では内部滞在時間ｔ＝ｔ１となり、点Ｐ５に到達した時点では内部滞在時間ｔ＝ｔ２となり、点Ｐ６に到達した時点では内部滞在時間ｔ＝ｔ３となる。この実施形態では、作用点の内部滞在時間が長くなればなるほど大きな反力が得られるようにしているため、反力の大きさは時間の経過とともに大きくなる。反力の大きさを定義するためには、時間ｔを変数とする所定の関数ｆ（ｔ）を用いるようにすればよい。既に述べたように、この関数ｆ（ｔ）は、物体情報設定手段１０内に設定しておくことができる。いわば、関数ｆ（ｔ）は、仮想物体Ｂの表面状態を定義するための情報ということになる。
【００４０】
図６に、関数ｆ（ｔ）の具体例をいくつか示しておく。いずれも、時間ｔの増加とともに関数値ｆ（ｔ）も増加している。図６(a) は、線形関数を用いた例を示しており、この場合、所定の係数Ａを用いて、ｆ（ｔ）＝Ａ・ｔなる簡単な式で表現される。図６(b) は、時間ｔが小さいうちは急激な増加を示すが、徐々に増加率が低下するような関数を用いた例であり、比較的硬い接触感を与えることが可能である。これに対し、図６(c) は、時間ｔの増加とともに関数値は緩慢な増加を示し、最後は関数値が飽和してしまうような関数を用いた例であり、比較的柔らかい接触感を与えることが可能である。
【００４１】
なお、本実施形態では、物体情報設定手段１０内に、関数ｆ（ｔ）とともに硬さを示すパラメータＫを設定しており、反力の大きさを、関数値ｆ（ｔ）とパラメータＫとの積Ｋ・ｆ（ｔ）に基いて決定するようにしている。たとえば、図５に示す例では、作用点Ｐが点Ｐ４の位置に到達した時点では、内部滞在時間ｔ＝ｔ１であるから、関数ｆ（ｔ）に内部滞在時間ｔ１を代入して得られる関数値ｆ（ｔ１）に、パラメータＫを乗じることにより得られる値Ｋ・ｆ（ｔ１）に基づいて反力の大きさが決定されることになる。同様に、作用点Ｐが点Ｐ５の位置に到達した時点では、値Ｋ・ｆ（ｔ２）に基いて反力の大きさが決定され、作用点Ｐが点Ｐ６の位置に到達した時点では、値Ｋ・ｆ（ｔ３）に基いて反力の大きさが決定される。関数ｆ（ｔ）が時間変化を示すファクターであるのに対し、パラメータＫは絶対値として乗じられるファクターであり、これら両ファクターを併用することにより、バリエーション豊かな表面状態を設定することが可能になる。
【００４２】
以上、反力の大きさを求める方法について述べたが、実際の反力は力制御ベクトルＣとして、力発生部５３によって作用点Ｐに対して与えられることになる。そこで、本実施形態では、物体情報設定手段１０内の仮想物体Ｂを定義するための情報として、仮想物体の表面を二次元多角形の集合体として表現する形状データを設定しておくようにし、作用点Ｐが仮想物体Ｂの内部に位置する場合に、この作用点Ｐに最も近い二次元多角形に垂直な法線ベクトルＮを求め、この法線ベクトルＮを単位ベクトルとして大きさＫ・ｆ（ｔ）のベクトルを力制御ベクトルＣとするようにしている。
【００４３】
たとえば、図７に示す例の場合、仮想物体Ｂの内部に作用点Ｐが位置している。ここで、仮想物体Ｂの表面は多数の二次元多角形α，β，…によって定義されているが、作用点Ｐに最も近い二次元多角形αに立てた法線を向いた単位ベクトルを法線ベクトルＮとし、この法線ベクトルＮと同じ向きを向いており、大きさがＫ・ｆ（ｔ）のベクトルを力制御ベクトルＣとすることになる。別言すれば、力制御ベクトルＣは、法線ベクトルＮ（単位ベクトル）を用いて、Ｃ＝Ｋ・ｆ（ｔ）・Ｎで与えられることになる。演算制御手段は、このような力制御ベクトルＣを演算により求め、力トランスデューサ５０内の力発生部５３に与える処理を行う。力発生部５３は、作用部５１の作用点Ｐに対して、この力制御ベクトルＣの方向に、この力制御ベクトルＣの大きさに応じた力を作用させることになる。
【００４４】
結局、オペレータの指先が仮想物体の表面位置を通過して内部に侵入すると、その時間経過（内部滞在時間）に応じて定まる大きさをもった反力が、仮想物体の表面に対して垂直な方向に制御力として加わることになる。オペレータは、この制御力を物体側からの抵抗力として感じることになり、物体表面の接触感を認識することになる。したがって、図５に示す例の場合、オペレータは、指先が点Ｐ３の位置に到達した時点から、矢印Ｍとは逆方向に押し戻される反力（正確には、表面αから垂直に押し戻される反力）を感じ始め、指先が点Ｐ４→Ｐ５→Ｐ６と移動するにしたがって、反力の大きさが徐々に大きくなるのを感じることができる（関数ｆ（ｔ）として、ｔとともに増加する関数を用いた場合）。
【００４５】
このように、作用点が仮想物体の表面位置に到達した時点から現時点に至るまでの内部滞在時間に基いて反力の大きさを求める手法を採ると、演算制御手段４０の演算負担を極めて少なくできるというメリットが得られる。すなわち、演算制御手段４０は、作用点が仮想物体の外部にある場合は、反力に関する演算は一切行う必要がなく、作用点が仮想物体の内部にある場合は、作用点の内部滞在時間ｔを計測し、Ｃ＝Ｋ・ｆ（ｔ）・Ｎなる単純な演算を行うだけでよい。
【００４６】
§５．  作用点の深さも考慮して反力を求める手法
ところで、上述した§４の手法で反力を求めた場合、厳密には、現実の接触感とは矛盾する現象も起こり得る。たとえば、図５において、矢印Ｍに沿って点Ｐ１〜点Ｐ６へと作用点を移動させた後、今度は作用点を矢印Ｍとは逆方向に点Ｐ６〜点Ｐ１へと移動させたとしよう。この場合、作用点が物体表面の浅い位置へ向かっているにもかかわらず、内部滞在時間ｔは常に大きくなるため、反力は徐々に大きくなり続ける（あるいは、最大値に飽和した状態になる）。もちろん、作用点が点Ｐ３の位置まで到達すれば、以後は反力は全く作用しなくなるが、実際の作用点の位置にかかわらず、内部滞在時間ｔのみで反力の大きさを決定してしまうと、現実の接触感と比べて違和感が生じる可能性がある。また、図５において、同じ矢印Ｍに沿って指先を動かした場合でも、指先の移動速度によって、異なる接触感が得られることになる。もちろん、現実の世界においても、ゆっくりと触れた場合と、急いで触れた場合とでは、実際の接触感も異なるであろうから、指先の移動速度によって異なる接触感が得られること事態は、必ずしも現実と矛盾するものではない。ただ、より現実的な接触感を体験させる上では、以下に述べるように、作用点の深さをも考慮して反力を求めるようにするのが好ましい。
【００４７】
たとえば、図８に示す例の場合、作用点Ｐの深さｄ（仮想物体Ｂの表面αとの距離）を求め、これに硬さを示すパラメータｋ（ここでは、前述したパラメータＫと区別するために、小文字のｋを用いている。）を乗じることにより、ｋ・ｄなる大きさの反力を想定する。そして、力制御ベクトルＣとして、Ｃ＝（Ｋ・ｆ（ｔ）＋ｋ・ｄ）・Ｎなる式で表されるベクトルを用いるのである。ここで、右辺第１項のＫ・ｆ（ｔ）は、§４で述べたとおり、作用点Ｐの内部滞在時間ｔに基づいて定まる第１の反力の大きさを示しており、右辺第２項のｋ・ｄは、上述したとおり、仮想物体Ｂの表面αと作用点Ｐとの距離ｄに基づいて定まる第２の反力の大きさを示している。また、右辺の法線ベクトルＮは、前述したように、作用点Ｐに最も近い二次元多角形αに垂直な単位ベクトルである。結局、第１の反力と第２の反力との合成力に基いて作用点Ｐに加えるべき制御力を示す力制御ベクトルＣが求められている。なお、合成力を求める際に、第１の反力と第２の反力との大きさの積をとるようにし、Ｃ＝（Ｋ・ｆ（ｔ）×ｋ・ｄ）・Ｎなる式で力制御ベクトルＣを求めてもかまわない。
【００４８】
ここで併用した第２の反力は、仮想物体の表面と作用点との距離ｄが大きくなればなるほど大きな値を採ることになるので、指先を仮想物体の表面から内部に深く入れれば入れるほど、第２の反力は大きくなることになる。また、仮想物体の硬さを示すパラメータｋと距離ｄとの積（ｋ・ｄ）に基いて第２の反力の大きさを決定するようにしているので、物体の硬さの設定情報を反映させることができる。
【００４９】
以上、本発明を図示する実施形態に基いて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の態様で実施可能である。
【００５０】
たとえば、上述の例では、１組の力トランスデューサ５０のみを用いているが、複数組の力トランスデューサ５０を用意すれば、仮想物体に対する把持動作を体験させることも可能である。図９には、２組の力トランスデューサ５０を用い、両作用部５１（指サック）をそれぞれ親指と人差し指とに装着した状態が示されている。いずれも指の先端部分に作用点Ｐが定義されており、オペレータは、両作用部５１を任意の方向に移動させながら、仮想物体Ｂを把持する動作を体感することができる。
【００５１】
また、上述の実施形態では、関数ｆ（ｔ）は時間ｔの増加とともに関数値が増加するタイプの関数を用いているが、特殊な接触感（たとえば、現実には存在しないような不思議な材質の物体に対する接触感）を与える上では、時間ｔの増加とともに関数値が減少するようなタイプの関数を用いることも可能である。
【００５２】
【発明の効果】
以上のとおり本発明に係る物体の接触感シミュレーション装置によれば、作用点の内部滞在時間に基いて反力の大きさを決定するようにしたため、物体表面に対する接触感を疑似的に体験させることができるシミュレーション装置を提供することが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る物体の接触感シミュレーション装置の基本構成を示すブロック図である。
【図２】図１に示すシミュレーション装置において定義された仮想物体およびその形状データの一例を示す図である。
【図３】図１に示すシミュレーション装置における力トランスデューサの機能を示すブロック図である。
【図４】図３に示す力トランスデューサの具体的な構成例を示す斜視図である。
【図５】本発明における反力の求め方の基本概念を説明するための物体の側断面図である。
【図６】本発明において反力を求める際に用いられる時間ｔの関数ｆ（ｔ）の具体例を示すグラフである。
【図７】本発明における反力の方向の基本概念を説明するための物体の側断面図である。
【図８】本発明において２種類の反力を用いる基本概念を説明するための物体の側断面図である。
【図９】２組の力トランスデューサを用いた本発明の具体的な構成例を示す斜視図である。
【符号の説明】
１〜８…頂点
１０…物体情報設定手段
２０…ディスプレイ
３０…物体形状描画手段
４０…演算制御手段
５０…力トランスデューサ
５１…作用部
５２…位置検出部
５３…力発生部
Ｂ…仮想物体
Ｃ…力制御ベクトル
ｄ…作用点と仮想物体の表面との距離
ｆ（ｔ）…時間ｔの関数
Ｆ…作用点に加わる力
Ｋ，ｋ…硬さを示すパラメータ
Ｍ…作用点の移動方向
Ｎ…法線ベクトル
Ｐ…作用点
Ｐ１〜Ｐ６…作用点Ｐの位置
Ｐ（ｘ，ｙ，ｚ）…作用点Ｐの位置
α，β…仮想物体の表面を構成する多角形
【図１】
0003722992.tif 000002
【図２】
0003722992.tif 000003
【図３】
0003722992.tif 000004
【図４】
0003722992.tif 000005
【図５】
0003722992.tif 000006
【図６】
0003722992.tif 000007
【図７】
0003722992.tif 000008
【図８】
0003722992.tif 000009
【図９】
0003722992.tif 000010