(57)【特許請求の範囲】
【請求項１】
液体の水面に対する接触動作を疑似的に体験させるためのシミュレーションを行う装置であって、
液体の水面位置および所定の基準深度Ｄ、ならびに液体の力学的な抵抗を示す環境情報を設定する環境情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、前記作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて前記作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
前記位置検出部が検出した作用点の位置と前記環境情報とに基づいて、前記作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを前記力トランスデューサへ与える制御を行う演算制御手段と、
を備え、
前記演算制御手段が、
前記環境情報設定手段内に設定されている前記水面位置および前記位置検出部が検出した作用点の位置に基づいて、水面から鉛直下方に向かう方向を正方向にとったときの前記水面位置と作用点との距離ｄを求める距離演算部と、
前記距離ｄが零もしくは負の場合または前記距離ｄが前記基準深度Ｄを越える場合には大きさが零となり、前記距離ｄが前記基準深度Ｄ以内の正の値をとる場合には前記距離ｄおよび前記力学的な抵抗に応じた大きさとなる、水面反力Ｆｓの大きさを定義する水面反力大きさ定義部と、
前記位置検出部が検出した作用点の位置の時間的変遷に基づき、作用点の速度成分を検出し、検出された作用点の速度成分のうちの鉛直方向成分の向きと反対方向に前記水面反力Ｆｓの向きを定義する水面反力向き定義部と、
大きさおよび向きが定義された水面反力Ｆｓに応じた力制御ベクトルを生成する力制御ベクトル生成部と、
を有することを特徴とする液体の接触感シミュレーション装置。
【請求項２】
請求項１に記載のシミュレーション装置において、
オペレータに提示すべき画像を表示するためのディスプレイと、
環境情報設定手段内に設定された水面位置の情報および位置検出部が検出した作用点の位置の情報に基いて、所定の水位まで満たされた液体を示す画像および作用点の位置を示す画像を前記ディスプレイの画面上に表示するための画像データを作成する表示制御手段と、
を更に設けたことを特徴とする液体の接触感シミュレーション装置。
【請求項３】
請求項１または２に記載のシミュレーション装置において、
水面反力大きさ定義部が、位置検出部が検出した作用点の位置の時間的変遷に基づき、作用点の移動向きを検出し
液体の力学的な抵抗を示す係数Ｒを用いて、水面反力の大きさ［Ｆｓ］を
(a) ｄ≦０の場合は、
［Ｆｓ］＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
［Ｆｓ］＝Ｒ（ｄ／Ｄ）
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(d) ｄ＞Ｄの場合は、
［Ｆｓ］＝０
なる式に基づいて求めることを特徴とする液体の接触感シミュレーション装置。
【請求項４】
請求項１または２に記載のシミュレーション装置において、
水面反力大きさ定義部が、
液体の力学的な抵抗を示す係数Ｒを用いて、水面反力の大きさ［Ｆｓ］を
(a) ｄ≦０の場合は、
［Ｆｓ］＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(d) ｄ＞Ｄの場合は、
［Ｆｓ］＝０
なる式に基づいて求めることを特徴とする液体の接触感シミュレーション装置。
【請求項５】
請求項１〜４のいずれかに記載のシミュレーション装置において、
力制御ベクトル生成部が、液体の力学的抵抗に基づいて作用点の移動方向とは逆向きに作用する移動反力Ｆｍを求め、水面反力Ｆｓと移動反力Ｆｍとの合成反力Ｆに基いて作用点に加えるべき制御力を示す力制御ベクトルを生成することを特徴とする液体の接触感シミュレーション装置。
【請求項６】
請求項５に記載のシミュレーション装置において、
力制御ベクトル生成部が、移動反力Ｆｍを、作用点の移動速度ベクトルＶと液体の力学的な抵抗を示す係数Ｒとを用いて、Ｆｍ＝−ＲＶなる式によりベクトル量として求めることを特徴とする液体の接触感シミュレーション装置。
【請求項７】
コンピュータを、請求項１〜６のいずれかに記載のシミュレーション装置における演算制御手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
請求項１〜６のいずれかに記載のシミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したことを特徴とする液体の接触感シミュレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は液体の接触感シミュレーション装置に関し、特に、液体の水面に対する接触動作を行う際の接触感を疑似的に体験させることのできるシミュレーション装置に関する。
【０００２】
【従来の技術】
コンピュータを利用したシミュレーションは、種々の分野で採り入れられており、特に近年では、コンピュータの画像処理機能の向上により、いわゆるバーチャル・リアリティーと呼ばれている仮想現実の世界をディスプレイ画面上に表示するシミュレーション装置が普及してきている。この種のシミュレーション装置では、通常、オペレータは仮想の空間内を自由に移動することができ、オペレータの移動に伴ってディスプレイの表示画面がリアルタイムで描き換えられてゆく。また、必要に応じて、オペレータの操作入力に基き、仮想の空間内の物体情報をデータとして入手することも可能である。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のシミュレーション装置は、ディスプレイ上の映像などを利用して、オペレータの視覚を通じて仮想の世界を提示することに主眼が置かれており、オペレータの触覚を通じて仮想の世界を提示する機能は乏しい。特に、液体の水面との接触状態を触覚を通じて体験させることができるシミュレーション装置は、現時点では実用化に至っていない。
【０００４】
そこで本発明は、液体の水面に対する接触動作を触覚を通じて疑似的に体験させることのできるシミュレーション装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
(1)   本発明の第１の態様は、液体の水面に対する接触動作を疑似的に体験させるためのシミュレーションを行う液体の接触感シミュレーション装置において、
液体の水面位置および所定の基準深度Ｄ、ならびに液体の力学的な抵抗を示す環境情報を設定する環境情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて作用点に加える力を発生させる力発生部と、を有する力トランスデューサと、
位置検出部が検出した作用点の位置と環境情報とに基づいて、作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを力トランスデューサへ与える制御を行う演算制御手段と、
を設け、
演算制御手段を、
環境情報設定手段内に設定されている水面位置および位置検出部が検出した作用点の位置に基づいて、水面から鉛直下方に向かう方向を正方向にとったときの水面位置と作用点との距離ｄを求める距離演算部と、
距離ｄが零もしくは負の場合または距離ｄが基準深度Ｄを越える場合には大きさが零となり、距離ｄが基準深度Ｄ以内の正の値をとる場合には距離ｄおよび力学的な抵抗に応じた大きさとなる、水面反力Ｆｓの大きさを定義する水面反力大きさ定義部と、
位置検出部が検出した作用点の位置の時間的変遷に基づき、作用点の速度成分を検出し、検出された作用点の速度成分のうちの鉛直方向成分の向きと反対方向に水面反力Ｆｓの向きを定義する水面反力向き定義部と、
大きさおよび向きが定義された水面反力Ｆｓに応じた力制御ベクトルを生成する力制御ベクトル生成部と、
によって構成するようにしたものである。
【０００６】
(2)   本発明の第２の態様は、上述の第１の態様に係る液体の接触感シミュレーション装置において、
オペレータに提示すべき画像を表示するためのディスプレイと、
環境情報設定手段内に設定された水面位置の情報および位置検出部が検出した作用点の位置の情報に基いて、所定の水位まで満たされた液体を示す画像および作用点の位置を示す画像をディスプレイの画面上に表示するための画像データを作成する表示制御手段と、
を更に設けるようにしたものである。
【０００８】
(3)   本発明の第３の態様は、上述の第１または第２の態様に係る液体の接触感シミュレーション装置において、
水面反力大きさ定義部が、位置検出部が検出した作用点の位置の時間的変遷に基づき、作用点の移動向きを検出し
液体の力学的な抵抗を示す係数Ｒを用いて、水面反力の大きさ［Ｆｓ］を
(a) ｄ≦０の場合は、
［Ｆｓ］＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
［Ｆｓ］＝Ｒ（ｄ／Ｄ）
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(d) ｄ＞Ｄの場合は、
［Ｆｓ］＝０
なる式に基づいて求めるようにしたものである。
【０００９】
(4)   本発明の第４の態様は、上述の第１または第２の態様に係る液体の接触感シミュレーション装置において、
水面反力大きさ定義部が、
液体の力学的な抵抗を示す係数Ｒを用いて、水面反力の大きさ［Ｆｓ］を
(a) ｄ≦０の場合は、
［Ｆｓ］＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
［Ｆｓ］＝Ｒ（（Ｄ−ｄ）／Ｄ）
(d) ｄ＞Ｄの場合は、
［Ｆｓ］＝０
なる式に基づいて求めるようにしたものである。
【００１０】
(5)   本発明の第５の態様は、上述の第１〜第４の態様に係る液体の接触感シミュレーション装置において、
力制御ベクトル生成部が、液体の力学的抵抗に基づいて作用点の移動方向とは逆向きに作用する移動反力Ｆｍを求め、水面反力Ｆｓと移動反力Ｆｍとの合成反力Ｆに基いて作用点に加えるべき制御力を示す力制御ベクトルを生成するようにしたものである。
【００１１】
(6)   本発明の第６の態様は、上述の第５の態様に係る液体の接触感シミュレーション装置において、
力制御ベクトル生成部が、移動反力Ｆｍを、作用点の移動速度ベクトルＶと液体の力学的な抵抗を示す係数Ｒとを用いて、Ｆｍ＝−ＲＶなる式によりベクトル量として求めるようにしたものである。
【００１２】
(7)   本発明の第７の態様は、上述の第１〜第６の態様に係る液体の接触感シミュレーション装置における演算制御手段として機能させるためのプログラムを、コンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【００１３】
(8)   本発明の第８の態様は、上述の第１〜第６の態様に係る液体の接触感シミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックにより構成したものである。
【００１４】
【発明の実施の形態】
§１．  装置の基本構成
以下、本発明を図示する実施形態に基いて説明する。図１は本発明の一実施形態に係る液体の接触感シミュレーション装置の基本構成を示すブロック図である。この装置では、液体の水面位置や液体の力学的な抵抗などの環境を設定し、この液体の水面に対する接触動作を疑似的に体験させるためのシミュレーションを行うことができる。この装置の構成要素は、図示のとおり、環境情報設定手段１０と、ディスプレイ２０と、表示制御手段３０と、演算制御手段４０と、力トランスデューサ５０とである。
【００１５】
環境情報設定手段１０は、シミュレーションの環境条件設定を行う機能を有する。オペレータが、この環境情報設定手段１０に対して種々のデータを入力すると、入力されたデータは、この環境情報設定手段１０内に格納され保持される。オペレータは、環境情報設定手段１０に対して設定したデータを変更することにより、シミュレーションの環境条件を適宜変えることができる。
【００１６】
この実施形態では、環境情報として、液体の水面位置Ｓ、液体の力学的な抵抗Ｒ、基準深度Ｄを示すための各データを設定できるようにしている。ここでは、ＸＹＺ三次元座標系が定義され、液体の水面位置Ｓは、この座標系内の平面を示すデータとして設定される。たとえば、鉛直方向にＺ軸を定義したとすれば、水面はＸＹ平面に平行な平面として定義することができるので、液体の水面位置Ｓを示すデータとしては、具体的には、Ｚ＝Ｚｈ（Ｚｈは任意の定数）といった平面を示す式で与えることができる。液体の力学的な抵抗Ｒは、液体中に手を挿入したときに、液体側から受ける抵抗の大きさを示すデータであり、抵抗Ｒの値を大きく設定すればするほど、より大きな抵抗を受けることになる。この力学的な抵抗Ｒを、実際の物理量としてとらえると、液体の密度あるいは粘性率に関連した物理量ということになるが、本発明を実施する上では、抵抗Ｒと実際の物理量との関係を明確にしておく必要はない。基準深度Ｄは、水面を通過することによって受ける反力（ここでは水面反力と呼ぶ）の作用範囲を示す値であり、その詳細については後述する。
【００１７】
ディスプレイ２０は、液体の水面とオペレータの手との位置関係を示す画像を、オペレータに対して提示するための手段であり、この例では、オペレータの手を模したアイコンの先端部に作用点Ｐ（後述）の位置が示されている。表示制御手段３０は、環境情報設定手段１０内に設定された水面位置Ｓに関する情報と、演算制御手段４０から与えられる作用点Ｐの位置に関する情報（位置検出部５２が検出した情報）とに基づいて、図示のように、所定の水位まで満たされた液体を示す画像と作用点の位置を示す画像とをディスプレイ２０上に表示する処理を行う。
【００１８】
力トランスデューサ５０は、作用部５１、位置検出部５２、力発生部５３を有しており、演算制御手段４０に接続されている。力トランスデューサ５０は、オペレータに対するマン・マシン・インターフェイスとして機能し、オペレータから与えられる操作量を入力するとともに、オペレータに対して力を返す働きをする。この実施形態では、力トランスデューサ５０は、後述するように１本の指としての機能を果たすことになり、オペレータはこの１本の指を介して液体に対する接触動作を体験することになる。
【００１９】
作用部５１上には、作用点Ｐが定義されており、この作用点Ｐはオペレータから加えられた力に基いて三次元の任意方向に移動可能となっている。図１のディスプレイ２０上に表示されている作用点Ｐは、この作用部５１上の作用点の位置である。位置検出部５２は、作用部５１上の作用点Ｐの三次元座標系上での位置を検出する機能を有する。具体的には、作用点Ｐの位置は、ｘ座標，ｙ座標，ｚ座標の３つの座標値として検出されることになる。ここでは、この３つの座標値によって示された作用点Ｐの位置をＰ（ｘ，ｙ，ｚ）なるデータで表わすことにする。作用点の位置を示すデータＰ（ｘ，ｙ，ｚ）は、演算制御手段４０に与えられ、更に、表示制御手段３０へと与えられる。表示制御手段３０は、前述したように、このデータＰ（ｘ，ｙ，ｚ）に基いて、ディスプレイ２０の画面上に作用点Ｐの位置を描画することになる。
【００２０】
一方、演算制御手段４０は、この作用点Ｐの位置と、環境情報設定手段１０内に環境情報として設定されている水面位置Ｓとに基づいて、作用点Ｐと水面位置Ｓとの相互位置関係を認識する。そして、環境情報設定手段１０内に環境情報として設定されている液体の力学的な抵抗Ｒおよび基準深度Ｄと、作用点Ｐおよび水面位置Ｓの相互関係とに応じて、作用点Ｐに与えるべき反力を演算により求める。ここで行われる具体的な演算内容については後に詳述する。こうして、作用点Ｐに生じるべき反力が得られたら、この反力に基いて作用点Ｐに加えるべき制御力を示す力制御ベクトルＣが求められ、この力制御ベクトルＣを示すデータは、力トランスデューサ５０へ与えられる。力トランスデューサ５０内の力発生部５３は、演算制御手段４０から与えられた力制御ベクトルＣに基いて作用点Ｐに加える力を発生させる機能を有する。
【００２１】
なお、図１に示す各構成要素において、ディスプレイ２０および表示制御手段３０は、本発明を実施する上での必須構成要素ではない。本発明に係る液体の接触感シミュレーション装置は、オペレータの触覚を通じて液体の接触感を伝達させるための装置であるため、オペレータの視覚を通じての情報伝達は必ずしも必要ではない。ただ、ディスプレイ２０および表示制御手段３０を付加することにより、触覚的な情報と視覚的な情報との相乗効果により、液体の接触感を、より臨場感をもってオペレータに伝達させることができるようになる。
【００２２】
§２．  具体的な装置構成
図１に示すブロック図は、説明の便宜上、本発明に係る装置を機能要素の集合としてとらえ、個々の機能要素をブロックで示したものであり、実際には、このシミュレーション装置はコンピュータを利用して構築される。すなわち、図１に示す装置における環境情報設定手段１０、表示制御手段３０、演算制御手段４０は、汎用のコンピュータに、上述した各処理を実行するためのプログラムを組み込むことにより構成することができる。たとえば、環境情報設定手段１０に対するデータやパラメータの設定は、キーボードやマウスなどのコンピュータ用入力機器を用いて行うことができ、設定されたデータやパラメータはメモリや種々の記憶装置に格納されることになる。また、表示制御手段３０による表示機能や、演算制御手段４０による演算処理機能は、コンピュータに組み込まれたプログラムによって実現されることになり、このプログラムは、コンピュータ読み取り可能な記録媒体に記録して配布することが可能である。なお、ディスプレイ２０は、コンピュータ用の一般的なディスプレイ装置によって構成できる。
【００２３】
一方、力トランスデューサ５０は、オペレータの物理的操作をデジタルデータ（作用点の位置を示すデータ）に変換する第１の機能と、演算制御手段４０から与えられるデジタルデータ（力制御ベクトルＣを示すデータ）を物理的な力に変換してオペレータに与える第２の機能とを実行する物理的な構成要素である。通常、触覚は、手の指先において最も敏感に感知されるので、この実施形態では、力トランスデューサ５０の作用部５１を、オペレータの指先に嵌めて固定できる指サックにより構成し、オペレータの指の動きに基いて作用点Ｐを移動できるようにするとともに、力制御ベクトルＣに基く制御力がこの指サックを介してオペレータの指に伝達されるように構成した。
【００２４】
図２は、この指サックの形態をした作用部５１を用いて構成される力トランスデューサ５０の機能を示すブロック図である。作用部５１は、ゴムなどの弾力性をもった材料で構成されており、オペレータは、この作用部５１を指の先端に装着して固定することができる。図示の例では、この作用部５１の先端部分に作用点Ｐが定義されている（もちろん、作用点Ｐは作用部５１のいずれの部分に定義してもかまわないが、操作性を向上する上では、指先位置に定義するのが好ましい）。なお、この実施形態では、このような力トランスデューサを１組だけ用いているが、複数組の力トランスデューサ５０を用いるようにしてもかまわない。たとえば、５組の力トランスデューサを用意すれば、５本の指すべてに作用部５１を装着することができ、５本の指全体によって液体の接触感を感じることができるようになる。また、作用部５１は必ずしも指に固定する必要はない。たとえば、作用部５１を腕に固定するようにすれば、腕によって液体の接触感を感じることができるようになる。
【００２５】
本発明に用いる力トランスデューサでは、作用部５１は三次元の自由度をもって移動可能な状態に支持されている必要がある。すなわち、作用点Ｐは、オペレータから加えられた力に基いて三次元の任意方向に移動可能な状態になっている必要がある（もちろん、作用点Ｐの移動可能空間は、所定の範囲内に制限されていてかまわない）。したがって、図２に示す力トランスデューサ５０を用いた場合、オペレータは、作用部５１を指先に装着した状態で、指先を三次元空間内の任意の方向に移動させることができる。位置検出部５２は、前述したように、作用点Ｐの三次元空間内の位置を、Ｐ（ｘ，ｙ，ｚ）なる３つの座標値からなるデータとしてリアルタイムで逐次検出する機能を有している。一方、力発生部５３は、演算制御手段４０からリアルタイムで逐次与えられる力制御ベクトルＣに基いて、力ｆを発生させ、これを作用点Ｐに逐次加える機能を果たす。ここで、作用点Ｐに加えられる力ｆは、力制御ベクトルＣの向きおよび大きさをもった力である。
【００２６】
結局、オペレータは、作用部５１を装着した指を任意の方向に動かすことが可能ではあるが、逆に、作用点Ｐに加わる力ｆを常に指先に受け、物体からの反力を感じることになる（もちろん、ｆ＝０の場合は、何ら反力は感じない）。
【００２７】
図３は、このような力トランスデューサ５０の具体的構成例を示す斜視図である。図では、力トランスデューサ５０の作用部５１（指サック）を右手の人差し指に装着した状態が示されている。この指の先端部分に作用点Ｐが定義されており、オペレータは、作用部５１を任意の方向に移動させながら、液体の接触感を体感することができる。図示の力トランスデューサ５０では、複数のリンク機構を用いて、上述した２つの機能を実現している。すなわち、作用部５１は、複数の自在アームによって支持されているため、ある程度の範囲の空間内では、三次元の任意の方向に自由に移動させることが可能である。しかも、各自在アームの回転位置を検出する機構が備わっており、作用点Ｐの三次元座標値Ｐ（ｘ，ｙ，ｚ）を検出することができる。更に、各自在アームに力を加えるためのモータが用意されており、これらのモータを駆動することにより、作用点Ｐに任意の方向、任意の大きさの力を作用させることができる。
【００２８】
このような複数のリンク機構を用いた力トランスデューサは、既に公知の装置であるため、その構造や機構についての詳細な説明は省略する。市販の製品としては、たとえば、米国のセンサブル・デバイス社（SensAble Device Inc.）が「ＰＨＡＮＴｏＭ」なる商品名で販売している装置を利用することができる。結局、本発明に係る液体の接触感シミュレーション装置は、図３に示すような力トランスデューサを、汎用コンピュータに接続し、所定のプログラムをこのコンピュータに組み込むことにより実現することが可能になる。
【００２９】
§３．  水面反力の定義方法
続いて、上述した実施形態に係るシミュレーション装置の具体的な動作、特に、演算制御手段４０において行われる水面反力の演算処理動作について詳述する。本発明は、液体に対する接触動作を疑似的に体験させるためのシミュレーションに関するものであるが、特に、水面に対する接触動作を体験させるための新規な手法を提案するものである。
【００３０】
一般に、液体中で何らかの動作を行うと、力学的な抵抗を反力として受けることになる。たとえば、空気中で掌を動かす場合に比べ、水中で掌を動かす場合は、水の力学的な抵抗を反力として受けることになる。別言すれば、水中で作用点Ｐを所定方向に移動させたとすると、この作用点Ｐには、移動方向とは逆向きの反力が作用することになる。ここでは、このように液体中を作用点Ｐが移動することにより、この作用点Ｐに移動方向とは反対方向に作用する力を移動反力Ｆｍと呼ぶことにする。液体に対する接触感を体験させるためには、この移動反力Ｆｍを作用点Ｐに作用させることは重要である。しかしながら、本発明の主眼は、液体に対する接触感の中でも、特に、液体の水面に対する接触感を疑似的に体験させる点にある。本願発明者は、§２で説明したシミュレーション装置を用いて種々の実験を行った結果、作用点Ｐが水面を通過する際に、移動反力Ｆｍとは別個の反力を作用点Ｐに対して与えるようにすると、オペレータの触覚を介して水面を意識させることができることを見出だした。これは、作用点Ｐが水面を通過する際に、水面の表面張力による反力を受ける現象があるためと考えられる。ここでは、この表面張力に基づくものと考えられる反力、すなわち、水面を通過することによって受ける反力を水面反力Ｆｓと呼ぶことにする。
【００３１】
いま、図４に示すような水槽に、水面位置Ｓまで液体が満たされているものとする。本願発明者が行った実験によると、この水面位置Ｓに対して所定の基準深度Ｄを設定し、作用点Ｐがこの基準深度Ｄ内にある場合に、所定の水面反力Ｆｓを作用させるようにすると、触覚的に水面を意識させる効果が顕著になることが判明した。別言すれば、基準深度Ｄは、水面反力Ｆｓの作用範囲を示す数値ということになる。このように所定の基準深度Ｄを設定してシミュレーションを行うと、実際の体験に近い接触感を与えることができる理由は、深い部分では、もはや水面の表面張力による影響がなくなるためと考えられる。演算制御手段４０は、作用点Ｐと水面位置Ｓとの相互位置関係に基づいて水面反力Ｆｓを演算により求める。作用点Ｐの位置は、三次元座標値Ｐ（ｘ，ｙ，ｚ）として検出されるので、たとえば、水面位置ＳをＸＹ平面に平行な平面として定義していたとすれば、水面位置ＳのＺ座標値と作用点ＰのＺ座標値との差が水面と作用点との距離ｄとして得られることになる。ここでは、説明の便宜上、水面位置Ｓから鉛直下方に向かう方向を正方向にとり、水面と作用点との距離ｄを定義することにする（すなわち、ｄの値が負の場合、作用点は水面上にある）。
【００３２】
水面反力Ｆｓは、作用点Ｐの位置に基づいて、それぞれ次のように定義される。まず、作用点Ｐが水面位置Ｓより上方にある場合（距離ｄが零または負の値をとる場合）は、オペレータの手は大気中にあることになるので、水面反力は何ら作用せず、Ｆｓ＝０とすればよい。一方、作用点Ｐが水面位置Ｓより下方の基準深度Ｄ以内の位置にある場合（距離ｄが基準深度Ｄ以内の正の値をとる場合）は、オペレータの手は水面近傍の水中内にあることになるので、距離ｄに応じた大きさをとる水面反力Ｆｓを定義する。更に、作用点Ｐが基準深度Ｄを越える深さにある場合（距離ｄが基準深度Ｄを越える場合）は、もはや水面反力の作用範囲外となるので、水面反力は何ら作用せず、Ｆｓ＝０とすればよい。しかも、水面反力Ｆｓの方向は、作用点Ｐの鉛直方向の移動に抗する方向というように定義している。すなわち、作用点Ｐの速度成分のうち鉛直方向成分の向きが、下方の場合には水面反力Ｆｓは上方に作用し、逆に、上方の場合には水面反力Ｆｓは下方に作用することになる。
【００３３】
このようにして水面反力Ｆｓを定義しておけば、オペレータが作用部５１を装着した指を水面位置Ｓの上方から水面へと動かし、更に、水面下の深部へと移動させた場合、水面位置Ｓから基準深度Ｄに至るまでの間、作用点Ｐを介して鉛直上方向に向いた水面反力を受けることになり、表面張力を有する水面に侵入した接触感を得ることができる。基準深度Ｄを越えて更に下方へと移動させると、水面反力はなくなるので、もはや水面を通過するための抵抗は存在しないとの感触を得ることができる。一方、オペレータが作用部５１を装着した指を水面下の深部（基準深度Ｄよりも深い位置）から上方へと動かし、水面Ｓを通過して水面上へと移動させた場合、基準深度Ｄから水面位置Ｓに至るまでの間、作用点Ｐを介して鉛直下方向に向いた水面反力を受けることになり、表面張力を有する水面から脱した接触感を得ることができる。
【００３４】
続いて、より具体的な水面反力Ｆｓの定義方法の一例を示しておく。ここでは、図４に示すように、鉛直上方向を向いた単位ベクトルｎを定義し、水面反力Ｆｓをこの単位ベクトルｎを用いたベクトル量として定義してみよう。ベクトルＦｓは、作用点Ｐと水面との距離を示す値ｄ（以下、単に水深と呼ぶ）、基準深度Ｄ、液体の力学的な抵抗を示す係数Ｒを用いて、
(a) ｄ≦０の場合は、
Ｆｓ＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
Ｆｓ＝Ｒ（ｄ／Ｄ）ｎ
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
Ｆｓ＝−Ｒ（（Ｄ−ｄ）／Ｄ）ｎ
(d) ｄ＞Ｄの場合は、
Ｆｓ＝０
なる式で定義できる。
【００３５】
上の式によって定義された水面反力Ｆｓの大きさと水深ｄとの関係を図５のグラフに示す。このグラフ上の矢印は、作用点Ｐの位置変化による状態遷移を示している。たとえば、▲１▼に示す過程は、作用点Ｐを水面上方から水面位置Ｓまで移動させる過程であり、この過程では水面反力Ｆｓ＝０である。続く▲２▼に示す過程は、作用点Ｐを水面位置Ｓから基準深度Ｄまで移動させる過程であり、上向きの水面反力Ｆｓが徐々に増えてゆくことになる。▲３▼に示す過程は、作用点Ｐが基準深度Ｄに到達したときに、水面反力Ｆｓが急に零になる過程であり、これに後続する▲４▼に示す過程は、作用点Ｐを基準深度Ｄから更に深部へと移動させる過程である。結局、この一連の▲１▼〜▲４▼に示す過程は、オペレータが指先を水面へと侵入させ、更に水面下の深部へと移動させてゆく過程を示している。この例では、水面位置Ｓを通過すると、オペレータの指には表面張力に基づく上方への水面反力Ｆｓが徐々に伝達されることになり、液体中に指を挿入している感覚を与えることができる。また、基準深度Ｄを過ぎると、この水面反力Ｆｓが急になくなるため、液体中への挿入動作が完了した感覚を与えることができる。
【００３６】
一方、▲５▼に示す過程は、作用点Ｐを水面下の深部から基準深度Ｄまで移動させる過程であり、この過程では水面反力Ｆｓ＝０である。続く▲６▼に示す過程は、作用点Ｐを基準深度Ｄから水面位置Ｓまで移動させる過程であり、下向きの水面反力Ｆｓが徐々に増えてゆくことになる。▲７▼に示す過程は、作用点Ｐが水面位置Ｓに到達したときに、水面反力Ｆｓが急に零になる過程であり、これに後続する▲８▼に示す過程は、作用点Ｐを水面位置Ｓから更に上方へと移動させる過程である。結局、この一連の▲５▼〜▲８▼に示す過程は、オペレータが指先を深部から徐々に引上げ、水面から抜き出す過程を示している。この例では、基準深度Ｄを通過すると、オペレータの指には下方への水面反力Ｆｓが徐々に伝達されることになり、水面近傍で表面張力による抵抗を受けている感覚を与えることができる。また、水面位置Ｓを過ぎると、この水面反力Ｆｓが急になくなるため、液体から指先が完全に抜き出されたという感覚を与えることができる。なお、水中に指を入れかけて途中ですぐに引き抜いた場合には、▲２▼の過程の途中から▲６▼の過程へと遷移することになり、この場合は、水面反力Ｆｓの向きが急激に反転することになる。同様に、▲６▼の過程の途中から▲２▼の過程への遷移もありうる。
【００３７】
続いて、具体的な水面反力Ｆｓの定義方法の別な一例を示しておく。ここでもやはり、鉛直上方向を向いた単位ベクトルｎを定義し、水面反力Ｆｓをこの単位ベクトルｎを用いたベクトル量として定義してみる。ベクトルＦｓは、水深ｄ、基準深度Ｄ、液体の力学的な抵抗を示す係数Ｒを用いて、
(a) ｄ≦０の場合は、
Ｆｓ＝０、
(b) ０＜ｄ≦Ｄ、かつ、作用点が下方へ移動中の場合は、
Ｆｓ＝Ｒ（（Ｄ−ｄ）／Ｄ）ｎ
(c) ０＜ｄ≦Ｄ、かつ、作用点が上方へ移動中の場合は、
Ｆｓ＝−Ｒ（（Ｄ−ｄ）／Ｄ）ｎ
(d) ｄ＞Ｄの場合は、
Ｆｓ＝０
なる式で定義できる。
【００３８】
上の式によって定義された水面反力Ｆｓの大きさと水深ｄとの関係を図６のグラフに示す。このグラフ上の矢印は、やはり作用点Ｐの位置変化による状態遷移を示している。たとえば、▲１▼に示す過程は、作用点Ｐを水面上方から水面位置Ｓまで移動させる過程であり、この過程では水面反力Ｆｓ＝０である。続く▲２▼に示す過程は、作用点Ｐが水面位置Ｓに到達したときに、水面反力Ｆｓが急に加わる過程である。▲３▼の過程は、作用点Ｐを水面位置Ｓから基準深度Ｄまで移動させる過程であり、上向きの水面反力Ｆｓが徐々に減少してゆくことになる。以下、▲４▼〜▲８▼に示す過程は、図５に示す例と全く同様である。
【００３９】
図５に示す例と図６に示す例とを比較すると、図５に示す例では、▲１▼の過程により作用点Ｐが水面位置Ｓに到達すると、以後は上方向の水面反力Ｆｓが徐々に増え始めるが、図６に示す例では、水面位置Ｓにおいて、最大値をもった水面反力Ｆｓが急に加わることになる。このため、図５に示す例に比べて、図６に示す例では、水面位置Ｓをより明確に意識することができる。逆に、図５に示す例では、作用点Ｐが基準深度Ｄに到達すると、▲３▼の過程により水面反力Ｆｓが急激に零になるため、基準深度Ｄを過ぎ、水面の表面張力の作用から解き放たれたという感触を明確に意識することができるが、図６に示す例では、基準深度Ｄを明確に感じることはできない。このように、図５に示す例と図６に示す例とでは、表面張力に基づく反力の作用形態が若干異なるが、いずれの場合も、オペレータに対して水面に対する接触感を与えるという点では効果的である。要するに、所定の基準深度Ｄ内において、水深ｄに応じた水面反力Ｆｓを与えることができれば、表面張力に基づく反力を体験させることが可能である。
【００４０】
§４．  合成反力の演算手法
上述した§３では、水面を通過することによって受ける水面反力Ｆｓを求める具体的な方法を述べた。しかしながら、実際には、移動中の作用点Ｐには、この移動方向とは反対方向に移動反力Ｆｍが作用し、実際に作用点Ｐに作用させるべき反力は、この移動反力Ｆｍと水面反力Ｆｓとの合成反力Ｆということになり、演算制御手段４０から力トランスデューサ５０に対して与えられる力制御ベクトルＣは、この合成反力Ｆに基づくものになる。
【００４１】
移動反力Ｆｍは、図７に示すように、作用点Ｐの移動速度ベクトルＶと液体の力学的な抵抗を示す係数Ｒとを用いて、Ｆｍ＝−ＲＶなる式によりベクトル量として定義することができる。図７において、点Ｐ０（ｘ０，ｙ０，ｚ０）は作用点の過去の位置を示しており、点Ｐ（ｘ，ｙ，ｚ）は作用点の現在の位置を示している。たとえば、位置検出部５２が１ｍsec ごとに作用点の位置検出を行っているとすれば、点Ｐ０（ｘ０，ｙ０，ｚ０）は現在より１ｍsec 前の作用点の位置を示していることになる。この例では、ベクトル量として与えられる移動反力Ｆｍは、速度ベクトルＶとは逆方向を向き、抵抗を示す係数Ｒと速度ベクトルＶの大きさとの積で定まる大きさをもったベクトルとなる。したがって、移動速度Ｖが大きければ大きいほど、また、抵抗を示す係数Ｒが大きければ大きいほど、移動反力Ｆｍは大きくなる。
【００４２】
抵抗を示す係数Ｒ（ここでは、水面反力Ｆｓを求めるために用いた係数Ｒと同じ係数を用いているが、それぞれ別個の係数を設定してもかまわない）は、環境情報設定手段１０内に環境情報として予め設定されているので、速度ベクトルＶが求まれば、移動反力Ｆｍを得ることができる。なお、速度ベクトルＶは、図７に示すように、作用点の過去の位置である点Ｐ０（ｘ０，ｙ０，ｚ０）と現在の位置である点Ｐ（ｘ，ｙ，ｚ）に基づいて求めることができるので、位置検出部５２から、たとえば１ｍsec ごとに作用点の位置情報を得ることができれば、１ｍsec ごとの移動反力Ｆｍを得ることができる。一方、水面反力Ｆｓは§３で述べた手法により得ることができるので、合成反力Ｆは、移動反力Ｆｍと水面反力Ｆｓとの合成ベクトルとして求めることができる。
【００４３】
図８は、演算制御手段４０内において行われる処理動作の手順の一例を示す流れ図である。まず、ステップＳ１において、力トランスデューサ５０から、作用点の現在位置Ｐ（ｘ，ｙ，ｚ）が入力される。続いて、ステップＳ２において、水面との距離ｄが求められる。この距離ｄは、ステップＳ１で求めた現在位置Ｐ（ｘ，ｙ，ｚ）と環境情報設定手段１０内に設定された水面位置Ｓとに基づく演算により求まる。そして、ステップＳ３において、ｄ＞０か否かが判断され、ここで否定的な判断がなされた場合（すなわち、ｄが負か０の場合）には、作用点は水面上に位置することになるので、再びステップＳ１からの処理に戻ることになる。
【００４４】
ステップＳ３において、肯定的な判断がなされた場合（すなわち、ｄが正の場合）には、更に、ステップＳ４において、ｄ＞Ｄか否かが判断される。ここで、否定的な判断がなされた場合は、作用点は基準深度Ｄ以内の位置にあるので、ステップＳ５において、作用点の移動方向が下方か上方かが判断される。これは、作用点の過去位置Ｐ０（ｘ０，ｙ０，ｚ０）と現在位置Ｐ（ｘ，ｙ，ｚ）とを比較すれば、容易に判断することができる。たとえば、鉛直方向軸をＺ軸にとった場合、座標値ｚとｚ０との大小関係を比べることにより、作用点が現在のところ下方へ移動中か上方へ移動中かを認識することができる。
【００４５】
結局、作用点が基準深度Ｄ以内にあり、下方へ移動中の場合には、ステップＳ６に示す式Ｆｓ＝Ｒ（ｄ／Ｄ）ｎにより水面反力Ｆｓが求まり、上方へ移動中の場合には、ステップＳ７に示す式Ｆｓ＝−Ｒ（（Ｄ−ｄ）／Ｄ）ｎにより水面反力Ｆｓが求まり、作用点が基準深度Ｄを越えている場合には、ステップＳ８に示す式Ｆｓ＝０により水面反力Ｆｓが求まることになる（図５に示す例を適用した場合）。
【００４６】
こうして水面反力Ｆｓが求まったら、続いて、ステップＳ９において、移動反力Ｆｍが、Ｆｍ＝−ＲＶなる式で求まり、最終的に、合成反力Ｆが、Ｆ＝Ｆｍ＋Ｆｓなるベクトル合成で求まる。そこで、ステップＳ１０において、この合成反力Ｆに対応する力制御ベクトルＣが力トランスデューサ５０に対して出力されることになる。そして、ステップＳ１１では、作用点の現在位置Ｐ（ｘ，ｙ，ｚ）が過去位置Ｐ０（ｘ０，ｙ０，ｚ０）として保存され（この過去位置Ｐ０（ｘ０，ｙ０，ｚ０）は、後に行われるステップＳ５における移動方向の判定およびステップＳ９で速度ベクトルＶを求める際に利用される）、ステップＳ１からの処理が続けられる。
【００４７】
【発明の効果】
以上のとおり本発明に係る液体の接触感シミュレーション装置によれば、液体の水面に対する接触動作を触覚を通じて疑似的に体験させることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る液体の接触感シミュレーション装置の基本構成を示すブロック図である。
【図２】図１に示すシミュレーション装置における力トランスデューサの機能を示すブロック図である。
【図３】図２に示す力トランスデューサの具体的な構成例を示す斜視図である。
【図４】本発明に係るシミュレーション装置において作用させる水面反力を説明するための側面図である。
【図５】本発明に係るシミュレーション装置における水面反力Ｆｓの定義方法の一例を示すグラフである。
【図６】本発明に係るシミュレーション装置における水面反力Ｆｓの定義方法の別な一例を示すグラフである。
【図７】本発明に係るシミュレーション装置における移動反力Ｆｍの定義方法の一例を示す図である。
【図８】本発明に係るシミュレーション装置における処理手順を示す流れ図である。
【符号の説明】
１０…環境情報設定手段
２０…ディスプレイ
３０…表示制御手段
４０…演算制御手段
５０…力トランスデューサ
５１…作用部
５２…位置検出部
５３…力発生部
Ｃ…力制御ベクトル
Ｄ…基準深度
ｄ…水面位置と作用点との距離（水深）
Ｆ…合成反力
Ｆｍ…移動反力
Ｆｓ…水面反力
ｆ…作用点に作用する力
ｎ…鉛直上方向を向いた単位ベクトル
Ｐ…作用点
Ｐ（ｘ，ｙ，ｚ）…作用点の現在位置
Ｐ０（ｘ０，ｙ０，ｚ０）…作用点の過去位置
Ｒ…液体の力学的な抵抗
Ｓ…水面位置
Ｖ…作用点の速度ベクトル
【図１】
0003745541.tif 000002
【図２】
0003745541.tif 000003
【図３】
0003745541.tif 000004
【図４】
0003745541.tif 000005
【図５】
0003745541.tif 000006
【図６】
0003745541.tif 000007
【図７】
0003745541.tif 000008
【図８】
0003745541.tif 000009