(57)【要約】【課題】物体との接触に伴う皮膚の変形を再現できる触力覚提示装置を提供する。【解決手段】触力覚提示装置１は、３自由度のアクチュエータ１４のアーム１２の先端に力覚提示部１１を有する力覚提示装置１０ａ，１０ｂ，１０ｃと、３次元位置データ入力部２０ａ，２０ｂ，２０ｃと、反力ベクトル算出部４０と、力ベクトルデータ出力部２５ａ，２５ｂ，２５ｃと、各力覚提示装置１０の個別座標系にて記述される力覚提示部１１ａ，１１ｂ，１１ｃの実空間位置と、力覚提示装置１０ａ，１０ｂ，１０ｃの共通座標系にて記述される当該力覚提示部１１ａ，１１ｂ，１１ｃの実空間位置とを、平行移動と回転移動とを組み合わせて相互に変換する座標系変換部３０と、を備え、利用者の皮膚の１つの触力覚受容領域に、力覚提示装置１０の力覚提示部１１ａ，１１ｂ，１１ｃを配置して、アクチュエータ１４ａ，１４ｂ，１４ｃをそれぞれ同時に駆動させる。【選択図】図１
2014092906.tif 000002
【特許請求の範囲】
【請求項１】
予め形状および表面の物理特性が定義された仮想物体を押したときの反力による力覚を提示するために３自由度のアクチュエータで駆動されるアーム先端に接触している利用者の皮膚の位置を検出して検出位置に応じた力覚情報を提示する力覚提示装置を少なくとも３台備える触力覚提示装置であって、
前記少なくとも３台の力覚提示装置は、前記アーム先端に力覚提示部を有し、
前記触力覚提示装置は、
前記力覚提示装置の前記力覚提示部の実空間位置のデータを入力する３次元位置データ入力部と、
前記力覚提示部の実空間位置に対応させて仮想空間内に定義して生成するポインタと前記仮想物体とが干渉するか否かを判定し、干渉する場合、前記ポインタが前記仮想物体から受ける反力の３次元ベクトルを算出する反力ベクトル算出部と、
前記算出された反力の３次元ベクトルを示す信号を、前記力覚提示装置のアクチュエータに出力する力ベクトルデータ出力部と、
前記各力覚提示装置の個別座標系にて記述される空間位置に対して、平行移動と回転移動とを組み合わせた演算処理を施すことで、前記少なくとも３台の力覚提示装置の共通座標系にて記述される空間位置に変換する座標系変換部と、を備え、
前記反力ベクトル算出部は、前記各個別座標系から前記共通座標系に変換された前記力覚提示部のそれぞれの実空間位置に応じて、前記仮想空間内において少なくとも３つのポインタの仮想空間位置を算出し、前記各ポインタと前記仮想物体とが干渉するか否かを個別に判定し、干渉するポインタが前記仮想物体から受ける反力の３次元ベクトルを個別に算出し、
前記力ベクトルデータ出力部は、前記共通座標系から前記各個別座標系に変換された前記反力の３次元ベクトルを示す信号を、当該個別座標系の前記力覚提示装置のアクチュエータに出力し、
利用者が触力覚を感じようとする身体部位の皮膚上の１つの触力覚受容領域に、前記少なくとも３台の力覚提示装置の前記力覚提示部を配置して、前記少なくとも３つのアクチュエータをそれぞれ同時に駆動させることを特徴とする触力覚提示装置。
【請求項２】
外装のガイド部に案内された指が差し込まれる袋状の本体部において指の一部が接触する所定領域に前記力覚提示装置の台数と同数の孔が設けられた指サックを備え、
前記少なくとも３台の力覚提示装置の前記力覚提示部が、前記指サックの本体部の孔を介して前記本体部の内側にそれぞれ設けられていることを特徴とする請求項１に記載の触力覚提示装置。
【請求項３】
親指用と、人差指または中指用との２組の前記指サックを備え、
前記各指サックに対応して、前記少なくとも３台の力覚提示装置の前記力覚提示部を、２組備えることを特徴とする請求項２に記載の触力覚提示装置。
【請求項４】
記憶部に、
前記仮想物体の形状から定義される表面物理パラメータの基準値を記憶すると共に、
前記仮想物体の表面物理パラメータの予め決定された相対的な表面分布に基づいて、前記仮想物体に干渉する前記ポインタの表面物理パラメータを、前記仮想空間内の所定の３次元区分ごとに設定したポインタパラメータテーブルを記憶し、
前記反力ベクトル算出部は、前記各ポインタの前記仮想空間位置が前記仮想空間内の前記空間領域のいずれに含まれているかを追跡し、前記追跡中のポインタが含まれている空間領域に対して前記ポインタパラメータテーブルにて設定されている表面物理パラメータを、当該ポインタに対して設定した上で、当該ポインタと前記仮想物体とが干渉するか否かを判定することを特徴とする請求項１から請求項３のいずれか一項に記載の触力覚提示装置。
【請求項５】
前記表面物理パラメータは、前記仮想物体の表面の硬さのパラメータであることを特徴とする請求項４に記載の触力覚提示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、触力覚提示装置に係り、特に、利用者が物体を触った際の反力を指や手の触力覚に提示する触力覚提示装置に関する。
【背景技術】
【０００２】
一般に、テレビ放送やインターネット等の通信ネットワークでは、情報発信側から情報提示側（視聴者側）へ、例えば美術品の造形を映したり、模型やコンピュータグラフィックスを用いたりすることで、物体の情報の大部分を視覚的に伝えている。物体の３次元形状等の情報は、視覚的には伝わるが、音声や点字等の言語を用いた手段によって伝達することは難しい。そのため、例えば視覚障害者へ伝える物体の形状の情報を保障するために、音声による情報提示だけではなく、触力覚による情報提示も重要となってきている。また、物体表面の硬さ分布等の物体の性質を表す物理情報は、視覚的に伝えることができないため、視覚障害の有無に関わらず触力覚による伝達が求められている。
【０００３】
しかし、物体の形状や表面の硬さ分布を触力覚で伝達するといった放送サービスや通信サービスは登場していないのが現状である。これは、情報発信側において、物体の３次元形状や表面の硬さ分布等の情報の取得を容易に行うことができないことも一因である。従来、これらの情報を容易に取得するための研究がなされている（例えば特許文献１参照）。特許文献１には、物体に対して超音波やレーザ等を用いて非接触に形状と硬さ分布の情報を取得する手法とその手法を用いた情報提示の手法が記載されている。
【０００４】
これに対して、情報提示側（視聴者側）においては、物体を触った際の反力を指や手の触力覚に提示する手法（第１の手法）として、スタイラス（ペン型の入力装置）に、または、指サックを装着した指先の一点に、反力を提示する力覚フィードバックデバイスが実用化されている（例えば、非特許文献１参照）。これらの力覚フィードバックデバイスは、スタイラスまたは指先に装着した指サックを介して、指や手等に力の情報を提示するものである。指等に提示する力の情報を求める原理は、計算機上に構築した仮想空間内の仮想物体と、力覚提示装置のアーム等を介して入力されるユーザの指の位置を表すポインタと、の接触時の反力を、所定の物理法則に基づいて算出するというものである。そして、力覚フィードバックデバイスは、算出した反力に基づいて、モータのトルクやワイヤの張力を用いて、スタイラスや指サックを介して、指や手等に力の情報を提示する。非特許文献１に記載の力覚フィードバックデバイスは、３又は６自由度（Degrees of freedom）のアーム型のアクチュエータを用いている。なお、自由度は数式モデルにおいて、ある物体を動かすことができる方向の数を表す。
【０００５】
また、物体を触った際の反力を指や手の触力覚に提示する手法（第２の手法）として、前記第１の方法と組み合わせた方法も知られている（非特許文献２参照）。第２の手法は、指先の皮膚に対して複数の刺激を与えることで物体表面の材質感を伝達することを目的としている。第２の手法では、指先に（力覚提示装置の指サックに相当する箇所に）、上下に微小振動（最大振幅約３０μｍ）するピンを複数（５行２列の計１０本）並べることで皮膚感覚の提示を行う。各ピンは上下方向（一方向）に変位するものである。これは１自由度のアクチュエータを同時に１０個駆動するものに相当する。
【０００６】
本願発明者らは、情報提示側（視聴者側）において３自由度のアクチュエータを２台使って２本の指にそれぞれ装着することで、多指で仮想物体を触察できる装置を提案している（例えば、特許文献１参照）。ここで、３自由度のアーム型のアクチュエータを用いて指サックを装着した指先の一点に、反力を提示する従来の触力覚提示装置について図８を参照して説明する。図８に示す触力覚提示装置１００は、触力覚により仮想物体を提示するために、２台の感覚伝達装置１０１（１０１ａ，１０１ｂ）と、触力覚制御装置１２０とを備えている。感覚伝達装置１０１は、ユーザの異なる指先に、移動を拘束できる程度の反力等の触力覚フィードバックを伝達する装置であり、感覚を伝達する指には、指サックが装着される。感覚伝達装置１０１は、ユーザの指等から取得した位置情報を触力覚制御装置１２０に出力する位置センサとしての機能を有すると共に、触力覚制御装置１２０からの制御情報に基づいて所定の動作を行い、ユーザに感覚を伝達するアクチュエータとしての機能を有している。
【０００７】
感覚伝達装置１０１（１０１ａ，１０１ｂ）は、図８に示すように基台１０２（１０２ａ，１０２ｂ）と、駆動部１０３（１０３ａ，１０３ｂ）と、アーム１０４（１０４ａ，１０４ｂ）と、指先伝達部１０５（１０５ａ，１０５ｂ）とを備えている。基台１０２は、不図示のテーブル等の所定の場所に設置されている。駆動部（アクチュエータ）１０３は、例えば基台１０２に対して水平に０〜３６０度の回転駆動ができ、またアーム１０４のリンクを基台１０２に対して垂直に０〜３６０度の回転駆動ができる（３自由度）。駆動部１０３は、例えばモータやワイヤ機構、ロータリーエンコーダ等を用いることができる。
【０００８】
アーム１０４は、１以上（図８では２つ）のリンク（節）で構成され、その一方は駆動部１０３に接続されているため、基台１０２の面に対して水平、垂直に０〜３６０度回転することができる。つまり、駆動部１０３及びアーム１０４により、基台１０２を中心としてあらゆる方向への移動が可能となっている。アーム１０４は、指先伝達部１０５と接続され、ユーザの指に対し、その指の位置情報と、仮想物体の位置情報、仮想物体の全体の形状情報、表面の硬さ情報等に応じて適切な反力等の触力覚的負荷を与えるための動作を行う。
【０００９】
指先伝達部１０５は、指先の位置情報と仮想物体の位置関係とに応じてその指先に対していずれかの方向に移動できなかったり、所定量の反力を与えたりすることで所定の触力覚的負荷を与える。なお、図８に示す例では、指先伝達部１０５は指サックからなり、指サックを例えばユーザの親指と人差指に装着し、仮想物体を把持するときの触力覚情報（触力覚的負荷）を提示する。
【００１０】
触力覚制御装置１２０は、感覚伝達装置１０１（１０１ａ，１０１ｂ）を制御するものであり、感覚伝達装置１０１から得られる指先等の位置情報を検出し、仮想物体の位置情報等を基に、感覚伝達装置１０１を制御することで各指先伝達部１０５を介して、ユーザに物体の形状、触察箇所の硬さ等を提示する。触力覚制御装置１２０は、ディスプレイ１２１を有し、その画面上に３次元物体提示データとして、例えば円柱状の仮想物体１２２を表示すると共に、感覚伝達装置１０１から得られる指の位置情報に基づいて動作する仮想ハンド１２３も画面に表示する。なお、仮想物体１２２はディスプレイ１２１に表示されるが、実空間の指先伝達部１０５ａ，１０５ｂの間には、円柱状の物体は存在していない。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１２−３７４２０号公報
【非特許文献】
【００１２】
【非特許文献１】“反力デバイス  PHANTOMシリーズ  ラインナップ”、[online]、センサブル日本語サイト、[平成24年8月27日検索]、インターネット<URL: http://sensable.jp/haptic/haptic_overview.html>
【非特許文献２】西村加南子、外３名、「３次元空間における皮膚感覚提示の特性評価」、日本機会学会論文集（Ｃ編）、2011年３月、77巻775号、p.346
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、物体を触った際の反力を指や手の触力覚に提示するための前記第１の手法では、算出され提示される反力は、指の１点に働く力であり、この１点に対する力が指サックを介して一様に加えられるため、指と物体が接触した際の皮膚の変形を再現することができない。このため、第１の手法では、物体のエッジ部分等の面の不連続な箇所においては、指がエッジを完全に超えた時点でエッジであることを知ることとなり、指が面に追従できずに物体から逸脱するという問題がある。
【００１４】
また、前記第２の手法は、物体表面の材質感を伝達できればよいので各ピンの変位が上下振動の１自由度であり、その変位量（振幅）は、ごく僅かである。人は、指と物体が接触した際に、物体の形にあわせて皮膚が変形し、その変形を知覚できる。物体を触察した場合に指の末節などの皮膚の各点が物体から受けている力は、それぞれ独立した３次元のベクトルで表される。これに対して、第２の手法によるピンの変位は１次元であり、その変位量は、ユーザがそのような皮膚の変形を知覚できる閾に達するものではない。このため、第２の手法では、ユーザにとっては、指先は常に平面と接しており、指の皮膚での物体形状の知覚や、物体の輪郭に沿った触察を実現することはできない。
【００１５】
つまり、従来技術では、指と物体との接触に伴う皮膚の変形を再現することができず、このため、物体の輪郭に沿った触察をすることができない。なお、物体の輪郭に沿った触察は、物体の３次元形状を知る上で重要となるものである。
【００１６】
また、特許文献１に記載された、情報提示側（視聴者側）において３自由度のアクチュエータを２台使って２本の指にそれぞれ装着して触力覚を提示する装置は、情報提示側において第１の手法を利用しており、改良の余地があった。
【００１７】
本発明は、以上のような問題点に鑑みてなされたものであり、物体との接触に伴う皮膚の変形を再現できる触力覚提示装置を提供することを課題とする。
【課題を解決するための手段】
【００１８】
前記課題を解決するために、本発明のうち請求項１に記載の触力覚提示装置は、予め形状が定義された仮想物体を押したときの反力による力覚を提示するために３自由度のアクチュエータで駆動されるアーム先端に接触している利用者の皮膚の位置を検出して検出位置に応じた力覚情報を提示する力覚提示装置を少なくとも３台備える触力覚提示装置であって、前記少なくとも３台の力覚提示装置は、前記アーム先端に力覚提示部を有し、前記触力覚提示装置は、３次元位置データ入力部と、反力ベクトル算出部と、力ベクトルデータ出力部と、座標系変換部と、を備えることを特徴とする。
【００１９】
かかる構成によれば、触力覚提示装置は、３次元位置データ入力部によって、前記力覚提示装置の前記力覚提示部の実空間位置のデータを入力する。そして、触力覚提示装置は、反力ベクトル算出部によって、前記力覚提示部の実空間位置に対応させて仮想空間内に定義して生成するポインタと前記仮想物体とが干渉するか否かを判定し、干渉する場合、前記ポインタが前記仮想物体から受ける反力の３次元ベクトルを算出する。そして、触力覚提示装置は、力ベクトルデータ出力部によって、前記算出された反力の３次元ベクトルを示す信号を、前記力覚提示装置のアクチュエータに出力する。そして、触力覚提示装置は、座標系変換部によって、前記各力覚提示装置の個別座標系にて記述される空間位置に対して、平行移動と回転移動とを組み合わせた演算処理を施すことで、前記少なくとも３台の力覚提示装置の共通座標系にて記述される空間位置に変換する。さらに、触力覚提示装置において、前記反力ベクトル算出部は、前記各個別座標系から前記共通座標系に変換された前記力覚提示部のそれぞれの実空間位置に応じて、前記仮想空間内において少なくとも３つのポインタの仮想空間位置を算出し、前記各ポインタと前記仮想物体とが干渉するか否かを個別に判定し、干渉するポインタが前記仮想物体から受ける反力の３次元ベクトルを個別に算出する。そして、前記力ベクトルデータ出力部は、前記共通座標系から前記各個別座標系に変換された前記反力の３次元ベクトルを示す信号を、当該個別座標系の前記力覚提示装置のアクチュエータに出力する。そして、触力覚提示装置は、利用者が触力覚を感じようとする身体部位の皮膚上の１つの触力覚受容領域に、前記少なくとも３台の力覚提示装置の前記力覚提示部を配置して、前記少なくとも３つのアクチュエータをそれぞれ同時に駆動させる。したがって、触力覚提示装置は、利用者の指先等の触力覚受容領域における予め定められた面積の皮膚の多点が受ける独立した３次元の力ベクトルを、少なくとも３つの力覚提示部を用いて忠実に再現することができる。これにより、触力覚提示装置は、利用者が物体に触った際の当該部位の皮膚の変形と、皮膚が受ける力の分布を再現することができる。また、３自由度の少なくとも３台のアクチュエータによって仮想物体の表面形状としての平面やエッジを表現できるため、利用者は仮想物体の表面形状を認識し易くなる。
【００２０】
また、請求項２に記載の触力覚提示装置は、請求項１に記載の触力覚提示装置において、外装のガイド部に案内された指が差し込まれる袋状の本体部において指の一部が接触する所定領域に前記力覚提示装置の台数と同数の孔が設けられた指サックを備え、前記少なくとも３台の力覚提示装置の前記力覚提示部が、前記指サックの本体部の孔を介して前記本体部の内側にそれぞれ設けられていることとした。
【００２１】
かかる構成によれば、触力覚提示装置は、少なくとも３台の力覚提示装置の力覚提示部を、１つの触力覚受容領域に配置するときに、各力覚提示部を１つの指サックの袋状の本体部の孔を介してその内側に設けている。このため、柔軟に変形できる指サックの各孔において力覚提示部を緩やかに拘束できるので、アクチュエータの３自由度を阻害することなく各力覚提示部が独立に動き易くなる。
【００２２】
また、請求項３に記載の触力覚提示装置は、請求項２に記載の触力覚提示装置において、親指用と、人差指または中指用との２組の前記指サックを備え、前記各指サックに対応して、前記少なくとも３台の力覚提示装置の前記力覚提示部を、２組備えることとした。
【００２３】
かかる構成によれば、触力覚提示装置は、２組の指サックを備えるので、利用者は、親指と、人差指または中指とによって、仮想物体を掴むときに、仮想物体のエッジ等の表面形状を認識し易くなる。
【００２４】
また、請求項４に記載の触力覚提示装置は、請求項１から請求項３のいずれか一項に記載の触力覚提示装置において、記憶部に、前記仮想物体の形状から定義される表面物理パラメータの基準値を記憶すると共に、前記仮想物体の表面物理パラメータの予め決定された相対的な表面分布に基づいて、前記仮想物体に干渉する前記ポインタの表面物理パラメータを、前記仮想空間内の所定の３次元区分ごとに設定したポインタパラメータテーブルを記憶し、前記反力ベクトル算出部が、前記各ポインタの前記仮想空間位置が前記仮想空間内の前記空間領域のいずれに含まれているかを追跡し、前記追跡中のポインタが含まれている空間領域に対して前記ポインタパラメータテーブルにて設定されている表面物理パラメータを、当該ポインタに対して設定した上で、当該ポインタと前記仮想物体とが干渉するか否かを判定することとした。
【００２５】
かかる構成によれば、触力覚提示装置は、ポインタが仮想物体と接触する前に、予めポインタの側の表面物理パラメータを設定しておくことができるので、仮想物体の側の表面物理パラメータを制御する方法と比較して、計算時間を短縮し、高速な演算処理が可能である。
【００２６】
また、請求項５に記載の触力覚提示装置は、請求項４に記載の触力覚提示装置において、前記表面物理パラメータが前記仮想物体の表面の硬さのパラメータであることとした。
【００２７】
かかる構成によれば、触力覚提示装置は、利用者の触力覚受容領域に、少なくとも３つの力覚提示部を配置したので、１つの仮想物体にて提示する硬い箇所と軟らかい箇所との境目の情報が利用者にとって分かり易くなる。従来技術では、物体の表面の硬さの分布等を知るためには、例えば指を動かして移動させ、移動させる前後の感触を比較しなければならず、表面の硬さの分布等を一度に把握することができないが、本発明によればこのような不都合を解決することができる。
【発明の効果】
【００２８】
請求項１に記載の発明によれば、触力覚提示装置は、利用者が物体に触った際の当該部位の皮膚の変形と、皮膚が受ける力の分布を再現することができる。そのため、物体のエッジなどの面の不連続な箇所を触知することが容易となり、物体の輪郭に沿った触察が可能となる。
請求項２に記載の発明によれば、触力覚提示装置は、全体の演算処理をスムーズに行うことができる。
請求項３に記載の発明によれば、触力覚提示装置は、少なくとも３台の力覚提示装置の力覚提示部を、利用者の触力覚受容領域に配置し易くなる。
請求項４に記載の発明によれば、触力覚提示装置は、計算時間を短縮し、処理をスムーズに行うことができる。
請求項５に記載の発明によれば、触力覚提示装置は、表面の硬さが一様ではない仮想物体の情報を触察により分かり易く伝達することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１実施形態に係る触力覚提示装置の構成例を模式的に示すブロック図である。
【図２】図１の触力覚提示装置で提示する仮想物体の模式図であって、（ａ）は仮想物体が存在する仮想空間、（ｂ）は対応する実空間を示している。
【図３】図１に示すポインタパラメータテーブルの具体例を示す図であって、（ａ）は３次元表形式のデータ、（ｂ）は数式表現を示している。
【図４】図１の反力ベクトル算出部が、ポインタの位置に応じてポインタの表面物理パラメータを変更する制御を示す模式図であって、（ａ）はポインタパラメータテーブルの一例、（ｂ）はポインタの空間位置とその表面の硬さのパラメータとの対応例を示している。
【図５】図１の反力ベクトル算出部における処理の流れを示すフローチャートである。
【図６】本発明の第２実施形態に係る触力覚提示装置の一部を拡大して模式的に示す構成図であって、（ａ）は側面から見た指サック、（ｂ）は正面から見た指サック、（ｃ）は指サックを構成する本体部を示している。
【図７】図６に示す指サックの説明図であって、（ａ）はポインタに接触している指の概念図、（ｂ）は仮想物体に接触している指の概念図を示している。
【図８】従来の触力覚提示装置の構成例を模式的に示すブロック図である。
【発明を実施するための形態】
【００３０】
以下、本発明の触力覚提示装置を実施するための形態について、図面を参照して詳細に説明する。
【００３１】
（第１の実施形態）
［触力覚提示装置の概要］
本発明の第１実施形態に係る触力覚提示装置について図１および図２を参照して説明する。触力覚提示装置１は、３自由度のアクチュエータを用いた力覚提示装置１０を少なくとも３台備えている。本実施形態では、一例として、触力覚提示装置１が３台の力覚提示装置１０を備えているものとして説明する。ここで、３自由度のアクチュエータを３台としたのは、２台では平面の点と点とを繋ぐ線にしかならないが、３台あればその３点で面を形成できることから仮想物体の表面形状としての平面やエッジを表現でき、利用者は仮想物体の表面形状を認識し易くなるからである。ちなみに１自由度のアクチュエータでは、３台以上あったとしても、利用者にとっては、指先は常に平面と接していることから、指の皮膚での物体形状の知覚や、物体の輪郭に沿った触察を実現することはできない。なお、図１では、力覚提示装置１０ａ，１０ｂ，１０ｃと表記して区別し、また、その構成要素の符号に記号ａ，ｂ，ｃを付加したが、特に区別しない場合、記号ａ，ｂ，ｃを省略して説明する。
【００３２】
力覚提示装置１０は、予め形状および表面の物理特性が定義されている仮想物体（以下、オブジェクトと呼称する）を押したときの反力による力覚を提示するものである。オブジェクトの形状は特に限定されないが、図２（ａ）には例えば円柱状のオブジェクトＯＢを例示した。
【００３３】
オブジェクトの表面の物理特性とは、例えば硬さ、静止摩擦、動摩擦、表面粗さ等を含んでいる。以下では、オブジェクトの表面の物理特性は、一例として、オブジェクトの表面の硬さであるものとして説明する。本実施形態では、オブジェクトの表面の硬さ分布が一様ではない場合も想定している。表面の硬さ分布が一様である場合の硬さをベース（基準値）として、表面の硬さ分布が一様ではない場合、その相対値で硬さを表している。
【００３４】
図１に示す力覚提示装置１０は、アクチュエータ１４で駆動されるアーム１２の先端に接触している利用者の皮膚の位置を位置センサ１３で検出して検出位置に応じた力覚刺激を皮膚に与えることで、検出位置の力覚情報を提示する。アームの１２の先端には、利用者が触るための力覚提示部１１が設けられている。
【００３５】
触力覚提示装置１は、利用者が触力覚を感じようとする身体部位の皮膚上の１つの触力覚受容領域に、３台の力覚提示装置１０の力覚提示部１１ａ，１１ｂ，１１ｃを配置して、３つのアクチュエータ１４ａ，１４ｂ，１４ｃをそれぞれ同時に駆動させる。触力覚受容領域の部位や領域の面積は任意である。１つの触力覚受容領域を例えば数ｍｍの範囲としてもよい。本実施形態では、図２（ｂ）に仮想線で示すように、利用者の触力覚受容領域を、一例として、指９０の先端の所定領域であるものとして説明する。なお、図２（ｂ）において、指９０の先端の所定領域とは、手の人差指の第１関節の腹側の直径数〜十数ｍｍ程度の領域を示している。
【００３６】
［触力覚提示装置の各部の構成］
図１に示す触力覚提示装置１は、３台の力覚提示装置１０と、それらを制御する制御装置とを備えている。制御装置は、例えばＣＰＵ（Central Processing Unit）等の演算装置と、メモリ、ハードディスク等の記憶手段と、外部との各種情報の送受信を行う入出力インタフェースとを備えている。この制御装置は、インストールされたプログラムと前記ハードウェア装置とが協働し、図１に示すように、３次元位置データ入力部２０と、力ベクトルデータ出力部２５と、座標系変換部３０と、反力ベクトル算出部４０と、記憶部５０とを備えている。
【００３７】
＜力覚提示装置１０＞
力覚提示装置１０は、アクチュエータによりユーザの指などにおける任意の面積の皮膚に力覚刺激を与える機能と、実空間における当該皮膚の３次元位置を取得するセンサとしての機能を有していれば、従来公知のものや市販されているものを利用することができる。例えば、背景技術にて説明した前記第１の手法を前提とする装置を利用してもよいし、図８に示す感覚伝達装置１０１等を用いてもよい。また、３台の力覚提示装置１０として、異なるタイプの力覚提示装置や異なるタイプのアクチュエータを併用してもよい。
力覚提示装置１０は、図１に示すように、力覚提示部１１と、アーム１２と、位置センサ１３と、アクチュエータ１４とを備えている。
【００３８】
≪力覚提示部１１≫
力覚提示部１１には、利用者の皮膚が直接接触してアーム１２の先端であることが分かるような構造を採用することができる。触力覚提示装置１に用いる力覚提示装置１０の台数に応じて、力覚提示部１１の形状、大きさ、硬度、材質を適宜選択することができる。本実施形態のように力覚提示装置１０が３台の場合、図２（ｂ）に示すように、一例として数ｍｍの大きさの鉄球を用いることができる。なお、反力ベクトル算出部４０は、図２（ｂ）に示す３つの力覚提示部１１の実空間位置に対応させて、図２（ａ）に示す仮想空間内に３つのポインタＰを定義して生成する。図２（ａ）に示す仮想空間内のオブジェクト（仮想物体）ＯＢを、図２（ｂ）に示す実空間内に破線で表している。
【００３９】
≪アーム１２≫
アーム１２は、１つ以上のリンクで構成される。例えばリンクが１つの場合、手首関節を動かすアームに対応し、２つの場合、肘関節も動かすアームに対応し、３つの場合、肩関節も動かすアームに対応する。図２（ｂ）には、一例として１つのリンクで構成されたアームを備える力覚提示装置１０を模式的に示した。なお、アーム１２を、例えば図８に示す感覚伝達装置１０１のアーム１０４のように２つのリンクで構成してもよい。
【００４０】
≪位置センサ１３≫
位置センサ１３は、回転量や回転角度等の回転情報を計測するロータリエンコーダや、平行移動の移動情報を計測するリニアエンコーダ等で構成され、アーム１２の関節等に配置されている。
≪アクチュエータ１４≫
アクチュエータ１４は、例えば、アーム１２の関節の屈曲や伸縮の駆動力を発生するサーボモータ等で構成される。なお、アクチュエータ１４が位置センサ１３を備えるようにしてもよい。
【００４１】
＜記憶部５０＞
記憶部５０は、演算処理を行う前に予め格納された制御プログラムや各種情報、また、演算結果等を記憶するものであって、一般的なハードディスクや、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）等のメモリから構成される。記憶部５０には、図１に示すように、オブジェクトデータ５１やポインタパラメータテーブル５２等のための記憶領域が確保される。なお、記憶内容は同じ記憶手段に記憶されていてもよいし、それぞれ他の記憶手段に分散記憶されていてもよい。
【００４２】
≪オブジェクトデータ５１≫
オブジェクトデータ５１は、利用者に対して提示するオブジェクトの３次元形状（オブジェクト形状データ）や、その形状から定義されるベース（基準値）となる硬さの情報を表す。つまり、オブジェクトデータ５１は、オブジェクト形状データと、オブジェクトの表面の硬さのパラメータ（表面物理パラメータ）の基準値（硬さの基準値）とを含んでいる。
【００４３】
オブジェクトデータ５１としては、３次元デジタイザや各種の計測器などで取得した実物体の形状の情報を利用してもよいし、ＣＧ（コンピュータグラフィックス）によって形状の情報を生成してもよい。また、オブジェクト形状データとは独立なオブジェクトの表面物理データ５３（図１参照）も、同様に実物体の測定された硬さ等の情報を利用したりＣＧで生成した形状に合わせた硬さ等の情報を生成したりすることができる。硬さ分布等を示す表面物理データ５３は、記憶部５０に記憶されたポインタパラメータテーブル５２を作成するために事前に用いられるものであって、本実施形態では、記憶部５０には記憶していない。なお、記憶部５０に表面物理データ５３も記憶するようにしてもよい。
【００４４】
≪ポインタパラメータテーブル５２≫
ポインタパラメータテーブル５２は、計算機上に構築した仮想空間において定義されたポインタ（図２（ａ）参照）の空間位置に対応した、ポインタの硬さのパラメータを、設定した情報である。
通常、ポインタの硬さのパラメータは、オブジェクトの硬さのパラメータと同様に一定であるものとして取り扱われている。一方、本実施形態では、オブジェクトの表面の硬さ分布が一様ではない場合も想定している。そこで、硬さ等の表面物理データを規定する各パラメータが、ポインタとオブジェクトとの相対的なパラメータであることに着目し、空間位置に応じてポインタ側のパラメータを適宜変更することで、オブジェクト形状データ（オブジェクトデータ５１）とは独立なオブジェクトの表面物理データ５３（図１参照）の再現を実現するために、ポインタパラメータテーブル５２を用いることとした。このポインタパラメータテーブル５２は、オブジェクトの表面の硬さ分布が一様ではない場合にも対応するために用いられる。なお、具体例については後記する。
【００４５】
ポインタパラメータテーブル５２におけるポインタの空間位置とは、仮想空間内の所定の３次元区分で表される領域を示す。すなわち、ポインタの空間位置は、ポインタの位置座標（仮想空間におけるワールド座標系で表される座標）のように一点で表されるものではなく、仮想空間において所定の大きさをもつ体積要素（以下、ボクセルという）で表される位置を意味する。ボクセルは、オブジェクトの形状とは独立しているため、ボクセル単位でデータを記述することは、各種の計測装置でオブジェクト表面の物理パラメータを計測したデータとのマッチングがとり易くなる。
【００４６】
図２（ａ）には、仮想空間におけるワールド座標系において、１辺を単位長さ２とした立方体で表される範囲の中に、合計８個のボクセル６０が配置されている例を図示した。なお、ボクセル６０は、オブジェクト形状データにマッチするように最低限となる区分としてもよい。つまり、図２（ａ）に示す円柱状のオブジェクトＯＢと同等の体積の領域を１つのボクセルとしてもよい。また、ボクセル６０は、オブジェクトの形状の構成単位（ポリゴン等）よりも高精細な区分としてもよい。つまり、例えば１つのポリゴンでカバーする領域を２つのボクセルでカバーしてもよい。また、ボクセルを規定する座標系については、図２（ａ）に示すようにワールド座標系としてもよいが、オブジェクトのスケールの変化や並進および回転の移動に対応するために、オブジェクトのローカル座標系としてもよい。
【００４７】
図１に示すポインタパラメータテーブル５２は、ポインタが、どのボクセル６０の中に存在するかによって、異なる硬さのパラメータを決定するために用いられる情報であり、各ボクセルにポインタの硬さのパラメータの数値がそれぞれ設定される。これらパラメータの数値は、表面物理データ５３（図１参照）により予め決定されている。
【００４８】
ここで、ポインタパラメータテーブル５２の形式について図３を参照して説明する。
ポインタパラメータテーブル５２の形式として、一例として、図３（ａ）に示すような３次元表形式のデータを採用することができる。ここでは、所定の立体形状のボクセルを、ワールド座標系の原点から３軸の正の方向に順番に並べたときに、原点から数えて何番目のボクセルであるかによって識別する数値（順番）を、各軸方向の最大値をＸ，Ｙ，Ｚ（いずれも自然数）として表したものである。なお、ボクセルを識別する数値は０にはならない。
【００４９】
図３（ａ−１）〜図３（ａ−３）は、ボクセルをＺ軸方向に１，２，…，Ｚ番目の順序で数え上げていることに対応している。
図３（ａ−１）に示すように、Ｚ軸方向に１番目の位置において２次元配列されたボクセルの硬さのパラメータの数値は、ＸＹ平面内において原点から遠ざかるほど大きくなるように、つまり、仮想空間の原点から離れるほど硬くなってくるように設定されている。
ここで、仮想空間の原点から離れるほど硬くなってくるとは、実空間上では、実空間の原点から離れるほど力覚提示部１１を指先で押したときに指先に対する反力が大きくなってくることを意味する。なお、オブジェクトの存在しない領域では指先に対する反力が０なので、そのような領域では力覚提示部１１を指先で押すと自由に動く。
図３（ａ−２）に示すように、Ｚ軸方向に２番目の位置において２次元配列されたボクセルの硬さのパラメータの数値は、ＸＹ平面内において原点から遠ざかるほど大きくなるように、つまり、仮想空間の原点から離れるほど硬くなってくるように設定されている。
図３（ａ−１）と図３（ａ−２）とを比べると、ボクセルの硬さのパラメータの数値は、原点からＺ軸方向に遠ざかるほど大きくなるように、つまり、仮想空間の原点から離れるほど硬くなってくるように設定されていることが分かる。なお、図３（ａ−３）において、硬さのパラメータの具体的な数値を省略した。
【００５０】
なお、ボクセルの硬さのパラメータは、図３（ａ）に示す例に限られないことは勿論である。また、ポインタパラメータテーブル５２の形式は、図３（ａ）に示す３次元表形式に限らず、例えば構造体（データ型を組み合わせて新しいデータ型として扱うデータ構造）やテキスト形式のデータの羅列であってもよい。
【００５１】
また、オブジェクトの表面の硬さ分布に規則性があるようなオブジェクトを提示対象とするような場合、ポインタパラメータテーブル５２の形式の他の例として、図３（ｂ）に示すような数式表現を採用することができる。
図３（ｂ−１）には、所定の立体形状のボクセルを、ワールド座標系の原点から３軸方向に並べたときの軸ごとのボクセルの順序（原点からの距離）を示す変数の定義域Ｘ，Ｙ，Ｚと、軸ごとのボクセルの順序（原点からの距離）に所定の重み付けをすることで定義された硬さのパラメータＣPの関数（式（１））と、を示す。
【００５２】
Ｘ＝１，２，…，５
Ｙ＝１，２，…，５
Ｚ＝１，２，…，５
ＣP＝０．１Ｘ＋０．１Ｙ＋０．１Ｚ
…  式（１）
【００５３】
式（１）の定義域Ｘ，Ｙ，Ｚに示すように、この例では、１２５（＝５×５×５）個のボクセルによって、仮想空間上のポインタの空間位置を特定することとしている。
また、図３（ｂ−２）には、式（１）に対応して、ワールド座標系において、例えば立方体で表したボクセル（不図示）を、１２５（＝５×５×５）個積み重ねたときに、ボクセル（不図示）において８つある頂点のうちの１つの頂点（左下の奥側の頂点）をすべて繋げたときの軌跡を立方体の各辺で示している。
【００５４】
式（１）によれば、例えば、Ｘ＝１、Ｙ＝１、Ｚ＝１の場合、演算によりＣP＝０．３となることが分かる。このことは、ワールド座標系の原点からＸ軸方向に１番目、かつ、Ｙ軸方向に１番目、かつＺ軸方向に１番目として特定されるボクセルには、０．３の硬さが与えられることを意味する。図３（ｂ−２）において、この特定されたボクセル（不図示）の１つの頂点（左下の奥側の頂点）は、立方体の左下の奥側の頂点（ワールド座標系の原点）に重なることになる。
【００５５】
また、式（１）によれば、Ｘ＝１、Ｙ＝５、Ｚ＝１の場合、演算によりＣP＝０．７となることが分かる。このことは、ワールド座標系の原点からＸ軸方向に１番目、かつ、Ｙ軸方向に５番目、かつＺ軸方向に１番目として特定されるボクセルには、０．７の硬さが与えられることを意味する。図３（ｂ−２）において、この特定されたボクセル（不図示）の１つの頂点（左下の奥側の頂点）は、立方体の左下の手前側の頂点に重なることになる。
【００５６】
さらに、式（１）によれば、Ｘ＝５、Ｙ＝５、Ｚ＝１の場合、演算によりＣP＝１．１となることが分かる。このことは、ワールド座標系の原点からＸ軸方向に５番目、かつ、Ｙ軸方向に５番目、かつＺ軸方向に１番目として特定されるボクセルには、１．１の硬さが与えられることを意味する。図３（ｂ−２）において、この特定されたボクセル（不図示）の１つの頂点（左下の奥側の頂点）は、立方体の右下の手前側の頂点に重なることになる。
【００５７】
同様に、式（１）によれば、Ｘ＝５、Ｙ＝５、Ｚ＝５の場合、演算によりＣP＝１．５となることが分かる。このことは、ワールド座標系の原点からＸ軸方向に５番目、かつ、Ｙ軸方向に５番目、かつＺ軸方向に５番目として特定されるボクセルには、１．５の硬さが与えられることを意味する。図３（ｂ−２）において、この特定されたボクセル（不図示）の１つの頂点（左下の奥側の頂点）は、立方体の右上の手前側の頂点に重なることになる。
【００５８】
要するに、図３（ｂ−２）によれば、ボクセルの硬さのパラメータの数値は、ワールド座標系の原点を含むボクセル（不図示）において最小となり、原点からの距離が大きいほど硬くなるように設定されていることが分かる。
【００５９】
図１に戻って、触力覚提示装置１の各部の構成について説明を続ける。
＜３次元位置データ入力部２０＞
３次元位置データ入力部２０は、力覚提示装置１０から取得する情報を制御装置に入力するための所定の入力インタフェースであり、力覚提示装置１０の力覚提示部１１の実空間位置のデータを入力する。３次元位置データ入力部２０は、力覚提示装置１０の実空間での３次元位置を単位時間（例えば１ミリ秒）ごとに取得して、座標系変換部３０を介して反力ベクトル算出部４０に提供する。なお、本実施形態では、図１に示すように、力覚提示装置１０ａ，１０ｂ，１０ｃに対応して、３次元位置データ入力部２０ａ，２０ｂ，２０ｃを備えることとした。
【００６０】
＜座標系変換部３０＞
座標系変換部３０は、各力覚提示装置１０の個別座標系（ローカル座標系）にて記述される空間位置に対して、平行移動と回転移動とを組み合わせた演算処理を施すことで、全ての力覚提示装置１０に共通である共通座標系（ワールド座標系）にて記述される空間位置に変換する演算処理を行うものである。この座標系変換部３０は、ＣＰＵ等の演算装置が、ＲＯＭ（Read Only Memory）等に記憶された所定の座標系変換ソフトウェアをＲＡＭ（Random Access Memory）に展開して演算処理することにより実現される。なお、図２等では、直交座標系を左手系として示したが、本発明はこれに限らず右手系としてもよい。
【００６１】
本実施形態では、座標系変換部３０は、各力覚提示装置１０のローカル座標系にて記述された力覚提示部１１の実空間位置を、ワールド座標系に変換すると共に、反力ベクトル算出部４０で算出された反力の３次元ベクトルをワールド座標系から各力覚提示装置１０のローカル座標系に逆変換する集中制御を行うこととした。図２（ｂ）はワールド座標系（Ｘ，Ｙ，Ｚ）と各ローカル座標系（Ｌｘ，Ｌｙ，Ｌｚ）との関係を模式的に示す図である。
【００６２】
具体的には、座標系変換部３０は、力覚提示部１１ａ（図１参照）の実空間位置をワールド座標系に変換する。ここで変換された力覚提示部１１ａの実空間位置は、反力ベクトル算出部４０の処理に用いられる。また、座標系変換部３０は、反力ベクトル算出部４０による処理の結果として算出された反力の３次元ベクトルをワールド座標系から力覚提示装置１０ａ（図１参照）のローカル座標系に逆変換する。ここで逆変換された力覚提示部１１ａの実空間位置は、力ベクトルデータ出力部２５ａを介して力覚提示装置１０ａに出力される。そして、アクチュエータ１４ａが力覚提示部１１ａ４０を対応する位置に移動させる。
同様に、座標系変換部３０は、力覚提示部１１ｂの実空間位置をワールド座標系に変換すると共に、反力ベクトル算出部４０で算出された反力の３次元ベクトルをワールド座標系から力覚提示装置１０ｂのローカル座標系に逆変換する。
同様に、座標系変換部３０は、力覚提示部１１ｃの実空間位置をワールド座標系に変換すると共に、反力ベクトル算出部４０で算出された反力の３次元ベクトルをワールド座標系から力覚提示装置１０ｃのローカル座標系に逆変換する。
【００６３】
＜力ベクトルデータ出力部２５＞
力ベクトルデータ出力部２５は、制御装置からの制御信号を力覚提示装置１０に出力するための所定の出力インタフェースであり、反力ベクトル算出部４０で算出された反力の３次元ベクトルを示す信号を、力覚提示装置１０のアクチュエータ１４に出力する。
本実施形態では、図１に示すように、力覚提示装置１０ａ，１０ｂ，１０ｃに対応して、力ベクトルデータ出力部２５ａ，２５ｂ，２５ｃを備えている。
【００６４】
力ベクトルデータ出力部２５ａは、ワールド座標系から、力覚提示装置１０ａのローカル座標系に変換された、反力の３次元ベクトルを示す信号を、力覚提示装置１０ａのアクチュエータ１４ａに出力する。
力ベクトルデータ出力部２５ｂは、ワールド座標系から力覚提示装置１０ｂのローカル座標系に変換された反力の３次元ベクトルを示す信号を、力覚提示装置１０ｂのアクチュエータ１４ｂに出力する。
力ベクトルデータ出力部２５ｃは、ワールド座標系から力覚提示装置１０ｃのローカル座標系に変換された反力の３次元ベクトルを示す信号を、力覚提示装置１０ｃのアクチュエータ１４ｃに出力する。
【００６５】
＜反力ベクトル算出部４０＞
反力ベクトル算出部４０は、力覚提示部１１の実空間位置に対応させて仮想空間内に定義して生成するポインタとオブジェクトとが干渉するか否かを判定し、干渉する場合、ポインタがオブジェクトから受ける反力の３次元ベクトルを算出するものである。この反力ベクトル算出部４０は、ＣＰＵ等の演算装置が、ＲＯＭ等に記憶された所定の反力ベクトル算出ソフトウェアをＲＡＭに展開して演算処理することにより実現される。
【００６６】
反力ベクトル算出部４０は、図１に示すように、座標系変換部３０を介して３次元位置データ入力部２０より提供される力覚提示装置１０の力覚提示部１１の実空間位置を取得する。
反力ベクトル算出部４０は、力覚提示部１１の実空間位置を、計算機上に構築した仮想空間に対応付けるために、予め定められた変換式を用いる。なお、変換式の代わりに変換テーブルを用いてもよい。これにより、反力ベクトル算出部４０は、例えば、図２（ｂ）に示す力覚提示部１１の実空間位置に対応させて、図２（ａ）に示す仮想空間内にポインタＰを生成することができる。
【００６７】
反力ベクトル算出部４０は、各ローカル座標系からワールド座標系に変換された力覚提示部１１のそれぞれの実空間位置に応じて、図２（ａ）に示す仮想空間内において３つのポインタＰの仮想空間位置を算出し、各ポインタＰとオブジェクトＯＢとが干渉するか否かを個別に判定し、干渉するポインタＰがオブジェクトＯＢから受ける反力の３次元ベクトルを個別に算出する。
【００６８】
本明細書において、「干渉している」または「干渉する」とは、オブジェクトＯＢにポインタＰがめりこむこと、または接触することを意味する。計算機上に構築した仮想空間において、例えばオブジェクトＯＢの表面に対してポインタＰが接近してきて重なった時点で干渉していると判定される。なお、実際には、処理による遅延があるので、オブジェクトＯＢにポインタＰが接近して重なったとの判定結果が得られた時点では既にポインタＰがオブジェクトＯＢにめりこんでいることになる。
【００６９】
反力ベクトル算出部４０は、ポインタＰとオブジェクトＯＢが干渉している場合、その干渉深度（めりこみの度合）に応じて、各ポインタＰがオブジェクトＯＢから受ける反力の３次元ベクトルを算出する。反力の３次元ベクトルを算出する方法については、表面の硬さ分布が一様である場合と、表面の硬さ分布が一様ではない場合とに分けて説明する。
【００７０】
表面の硬さ分布が一様である場合、従来公知の方法で反力の３次元ベクトルを算出することができる。一般的にはオブジェクトＯＢとポインタＰとの双方の物理パラメータ（例えば表面の硬さのパラメータ）から求めた相対的な物理パラメータ、または合成された物理パラメータを基に計算が行われる。ここでは、合成された物理パラメータを基に計算することとして、具体的には、オブジェクトの表面の硬さ分布が一様である場合、下記の式（２）に基づいて、反力の３次元ベクトル（反力ベクトル）Ｆを算出することができる。
【００７１】
Ｆ＝{ＣOＣP／（ＣO＋ＣP）}Ｄ  …  式（２）
【００７２】
式（２）において、ＤはポインタＰとオブジェクトＯＢとの干渉深度を示す３次元ベクトル、ＣOはオブジェクトＯＢの硬さ（Compliance）パラメータを示すスカラー（定数）、ＣPはポインタＰの硬さパラメータを示すスカラー（定数）をそれぞれ示している。
【００７３】
反力ベクトル算出部４０は、オブジェクトＯＢの表面の硬さ分布が一様ではない場合の処理を行うために、計算機上に構築した仮想空間において、仮想空間位置（座標）を、予め定められた変換式を用いて、ポインタパラメータテーブル５２におけるポインタの空間位置（ボクセル６０の位置）に対応付ける機能を有する。なお、変換式の代わりに変換テーブルを用いてもよい。これにより、反力ベクトル算出部４０は、例えば、図２（ａ）に示すポインタＰの仮想空間位置（座標）がどのボクセル６０に含まれるかを特定することができる。
【００７４】
そして、オブジェクトＯＢの表面の硬さ分布が一様ではない場合、反力ベクトル算出部４０は、各ポインタＰとオブジェクトＯＢとの干渉の有無を判定する処理を行う前に、特別な制御を行うこととした。そして、この特別な制御として、反力ベクトル算出部４０は、各ポインタＰの仮想空間位置（座標）が、いずれのボクセル６０に含まれているかを追跡し、追跡中のポインタＰが含まれているボクセルに対してポインタパラメータテーブル５２にて設定されている硬さのパラメータを、当該ポインタＰに対して設定することとした。そして、反力ベクトル算出部４０は、この特別な制御をした上で、当該追跡中のポインタＰとオブジェクトＯＢとが干渉するか否かを判定する。
【００７５】
反力ベクトル算出部４０が、ポインタの位置に応じてポインタの硬さのパラメータを変更する制御の具体例について図４を参照して説明する。図４（ａ）は、３次元表形式で作成されたポインタパラメータテーブルの一例であって、ここでは、ポインタパラメータテーブルをＴ（Ｘ，Ｙ，Ｚ）と表記する。図４（ｂ）に示すように、例えば立方体形状のボクセル（細線で区分される領域）を、ワールド座標系の原点Ｏから３軸方向に並べたときの軸ごとのボクセルの順序（原点からの距離）を示す変数Ｘ，Ｙ，Ｚは、１または２であり、８（＝２×２×２）個のボクセルを想定した。
【００７６】
図４（ａ）に示すポインタパラメータテーブルにおけるＸ＝１は、図４（ｂ）に示す仮想空間のワールド座標系におけるＹＺ平面（Ｘ＝０の平面）とＸ＝１の平面とで挟まれる区間に対応している。同様に、ポインタパラメータテーブルにおけるＸ＝２は、図４（ｂ）に示すＸ＝１の平面とＸ＝２の平面とで挟まれる区間に対応している。
図４（ａ）に示すポインタパラメータテーブルにおけるＹ＝１は、図４（ｂ）に示す仮想空間のワールド座標系におけるＺＸ平面（Ｙ＝０の平面）とＹ＝１の平面とで挟まれる区間に対応している。同様に、ポインタパラメータテーブルにおけるＹ＝２は、図４（ｂ）に示すＹ＝１の平面とＹ＝２の平面とで挟まれる区間に対応している。
図４（ａ）に示すポインタパラメータテーブルにおけるＺ＝１は、図４（ｂ）に示す仮想空間のワールド座標系におけるＸＹ平面（Ｚ＝０の平面）とＺ＝１の平面とで挟まれる区間に対応している。同様に、ポインタパラメータテーブルにおけるＺ＝２は、図４（ｂ）に示すＺ＝１の平面とＺ＝２の平面とで挟まれる区間に対応している。
つまり、ポインタパラメータテーブルの（Ｘ，Ｙ，Ｚ）と、図４（ｂ）に示す８個のボクセルの位置との対応関係は次の通りである。
（１，１，１）  ＝  左奥下
（１，２，１）  ＝  左手前下
（２，１，１）  ＝  右奥下
（２，２，１）  ＝  右手前下
（１，１，２）  ＝  左奥上
（１，２，２）  ＝  左手前上
（２，１，２）  ＝  右奥上
（２，２，２）  ＝  右手前上
【００７７】
図４（ｂ）は、仮想空間中で追跡されたポインタを模式的に示している。この例では、初期状態にて、ポインタは、例えば、左手前下のボクセルで特定される空間領域に含まれていたが、最終状態では、右奥上のボクセルで特定される空間領域に移動した。
ポインタパラメータテーブルでは、図４（ａ）に示すように、（１，２，１）のボクセル、つまり、左手前下のボクセルにおいて、ポインタの硬さのパラメータとして０．７を予め設定してある。
また、（２，２，１）のボクセル、つまり、右手前下のボクセルにおいて、ポインタの硬さのパラメータとして０．８を予め設定してある。
さらに、（２，２，２）のボクセル、つまり、右手前上のボクセルにおいて、ポインタの硬さのパラメータとして１．０を予め設定してある。
同様に、（２，１，２）のボクセル、つまり、右奥上のボクセルにおいて、ポインタの硬さのパラメータとして０．８を予め設定してある。
【００７８】
したがって、反力ベクトル算出部４０は、追跡中のポインタが左手前下のボクセルで特定される空間領域に含まれている間、そのポインタの硬さのパラメータが０．７であるものとした上で、そのポインタと図示しないオブジェクトとが干渉するか否かを判定する。干渉すると判定された場合、例えば前記式（２）においてＣPの値を０．７として反力ベクトルＦを算出する。
【００７９】
そして、追跡中のポインタが左手前下のボクセルから右手前下のボクセルに移動した場合、反力ベクトル算出部４０は、追跡中のポインタが右手前下のボクセルで特定される空間領域に含まれている間、そのポインタの硬さのパラメータが０．８であるものとした上で、そのポインタと図示しないオブジェクトとが干渉するか否かを判定する。干渉すると判定された場合、例えば前記式（２）においてＣPの値を０．８に変更して反力ベクトルＦを算出する。
【００８０】
そして、追跡中のポインタが右手前下のボクセルから右手前上のボクセルに移動した場合、反力ベクトル算出部４０は、同様に、ポインタの硬さのパラメータが１．０であるものとした上で、干渉判定を行う。
さらに、追跡中のポインタが右手前上のボクセルから右奥上のボクセルに移動した場合、反力ベクトル算出部４０は、同様に、ポインタの硬さのパラメータが０．８であるものとした上で、干渉判定を行う。
【００８１】
このように、オブジェクトＯＢの表面の硬さ分布が一様ではない場合、反力ベクトル算出部４０は、例えば前記式（２）においてＣPを定数ではなく変数として扱う。干渉判定において、ポインタＰの硬さのパラメータとオブジェクトＯＢの硬さのパラメータとは、物理的に等価な相対的なパラメータなので、反力ベクトル算出部４０が、例えば前記式（２）においてポインタＰの硬さのパラメータＣPを変数として扱うことは、仮想空間の空間位置に応じてオブジェクトＯＢの硬さのパラメータを変更することと等価である。これにより、反力ベクトル算出部４０は、オブジェクトＯＢの硬さパラメータＣOがオブジェクトＯＢの部分ごとに異なるようなオブジェクトデータをあたかも用いたかのように、オブジェクト形状データとは独立なオブジェクトＯＢの表面物理データ５３の再現を実現することができる。
【００８２】
なお、図４（ｂ）に吹き出しで示した具体例においては、ポインタがボクセル間を縦，横，上に移動し、ポインタが移動する前に属したボクセルと移動後に含まれるボクセルとの間で、ポインタの硬さのパラメータの値が異なるものだけを示したが、これに限定されるものではない。例えば図４（ａ）に示す例では、ポインタがボクセル間を斜め移動すれば、ポインタの硬さのパラメータの値が０．７のときに、ポインタが移動する前に属したボクセルと移動後に含まれるボクセルとの間で、ポインタの硬さのパラメータの値が同じとなる。
【００８３】
なおまた、図４（ａ）に示した具体例においては、予め設定された８個のポインタの硬さのパラメータのうち、３個は、同じ値（０．８）である。このように同じ値を設定する場合、それを基準値として別に記憶し、基準値と異なる値だけをポインタパラメータテーブルに設定、つまり、硬さの異なる空間領域だけ設定するようにしてもよい。この場合、反力ベクトル算出部４０が追跡するポインタの位置から特定されたボクセルが、ポインタパラメータテーブルにそもそも設定されていなければ、ポインタパラメータテーブルを参照したり、ポインタの硬さのパラメータの値を変更したりする処理が不要なので、処理を高速化することができる。
【００８４】
なおまた、反力ベクトル算出部４０においてポインタの硬さのパラメータを変更するという制御は、オブジェクトＯＢの表面の硬さ分布が一様ではない場合の特別な制御であるものとして説明したが、逆に、オブジェクトＯＢの表面の硬さ分布が一様である場合の方を特別な制御であるものとして扱うこともできる。この場合、通常は、表面の硬さ分布が一様ではないオブジェクトを提示対象として演算処理し、表面の硬さ分布が一様であるオブジェクトを例外的に処理する。そして、この例外処理では、図４（ｂ）に示した具体例において、反力ベクトル算出部４０が追跡しているポインタが、例えば左手前下のボクセルから右手前下のボクセルに移動した場合、ポインタの硬さのパラメータを変更する必要がないので、追跡しているポインタの位置だけ更新すればよい。そして、ポインタと図示しないオブジェクトとが干渉するか否かを判定し、干渉すると判定された場合、例えば前記式（２）においてＣPの値を定数として反力ベクトルＦを算出する。
【００８５】
なおまた、触力覚提示装置１は、少なくとも３つのアクチュエータをそれぞれ同時に駆動させる。ここで、同時とは、反力ベクトル算出部４０における各ポインタＰの追跡、ポインタＰとオブジェクトＯＢとの干渉の判定および反力の算出を、並列処理により真にパラレルに各ポインタＰについて並列的に行う処理を意味することも当然に含むが、それだけに限定されるものではない。すなわち、各アクチュエータの同時駆動とは、反力ベクトル算出部４０における各ポインタＰの追跡、ポインタＰとオブジェクトＯＢとの干渉の判定および反力の算出を、ポインタＰごとに時系列的に順次高速に行う処理のことも含んで意味する。
【００８６】
［触力覚提示装置の動作］
触力覚提示装置１の動作として、主として反力ベクトル算出部４０の処理の流れの一例について図５を参照（適宜図１参照）して説明する。図５は、反力ベクトル算出部４０における各ポインタＰの追跡、各ポインタＰとオブジェクトＯＢとの干渉の判定および反力の算出を時系列的に順次行う場合のフローチャートを示す。
【００８７】
反力ベクトル算出部４０は、ポインタの追跡処理を開始すると、触力覚提示装置１内の力覚提示装置１０の台数を示す変数Ｎの値を初期化してＮ＝１に設定する（ステップＳ１）。Ｎ番目の力覚提示装置１０は、利用者が触れた力覚提示部１１の位置を位置センサ１３にて検出し、Ｎ番目の３次元位置データ入力部２０を介して座標系変換部３０に入力する。Ｎ番目の力覚提示装置１０のローカル座標系にて記述された力覚提示部１１の３次元位置は、座標系変換部３０にてワールド座標系に変換される。
【００８８】
そして、反力ベクトル算出部４０は、座標系変換部３０を介して３次元位置データ入力部２０より提供されるＮ番目の力覚提示装置１０の力覚提示部１１の３次元位置を取得する（ステップＳ２）。反力ベクトル算出部４０は、この力覚提示部１１の３次元位置（実空間位置）を、仮想空間内のポインタの位置座標に変換し、さらに、ポインタがどのボクセルに含まれるか対応付ける。
【００８９】
そして、反力ベクトル算出部４０は、ポインタパラメータテーブル５２を参照し（ステップＳ３）、追跡中のポインタが含まれているボクセルに対してポインタパラメータテーブル５２にて設定されている硬さのパラメータを、当該ポインタに対して設定する（ステップＳ４）。このとき、必要に応じて、追跡中のポインタの硬さのパラメータを変更する。このステップＳ４にて設定された、ポインタの硬さのパラメータＣPが干渉判定に用いられる。
【００９０】
そして、反力ベクトル算出部４０は、オブジェクトデータ５１を参照し（ステップＳ５）、オブジェクトの硬さのパラメータＣOを取得する。そして、反力ベクトル算出部４０は、ポインタとオブジェクトが干渉するか否かを判別する（ステップＳ６）。ポインタとオブジェクトが干渉する場合（ステップＳ６：Ｙｅｓ）、反力ベクトル算出部４０は、反力ベクトルを算出する（ステップＳ７）。ここでは、ステップＳ４にて設定された、ポインタの硬さのパラメータＣPと、ステップＳ５にて取得されたオブジェクトの硬さのパラメータＣOとを用いて前記した式（２）によって、反力ベクトルＦを算出する。
【００９１】
そして、反力ベクトル算出部４０は、座標系変換部３０およびＮ番目の力ベクトルデータ出力部２５を介して、Ｎ番目の力覚提示装置１０に力ベクトルデータを出力する（ステップＳ８）。このとき、座標系変換部３０は、ワールド座標系にて記述された反力ベクトルＦを、Ｎ番目の力覚提示装置１０のローカル座標系に逆変換して、Ｎ番目の力ベクトルデータ出力部２５を介して、Ｎ番目の力覚提示装置１０に出力する。
【００９２】
そして、反力ベクトル算出部４０は、終了指示があれば（ステップＳ９：Ｙｅｓ）、処理を終了する。一方、終了指示が無ければ（ステップＳ９：Ｎｏ）、（Ｎ＋１）番目の力覚提示装置が存在するか否かを判別する（ステップＳ１０）。（Ｎ＋１）番目の力覚提示装置が存在すれば（ステップＳ１０：Ｙｅｓ）、変数Ｎの値を１つ増加し（ステップＳ１１）、ステップＳ２に戻る。これにより、触力覚提示装置１は、利用者の１つの触力覚受容領域に、３台の力覚提示装置１０の力覚提示部１１を配置して、３つのアクチュエータ１４をそれぞれ同時に駆動させる。
【００９３】
一方、（Ｎ＋１）番目の力覚提示装置が存在しなければ（ステップＳ１０：Ｎｏ）、ステップＳ１に戻る。つまり、触力覚提示装置１は、時々刻々と、利用者の１つの触力覚受容領域に、３台の力覚提示装置１０の力覚提示部１１を配置して、３つのアクチュエータ１４をそれぞれ同時に駆動させる制御を連続的に行う。
なお、前記ステップＳ６において、ポインタとオブジェクトが干渉しない場合（ステップＳ６：Ｎｏ）、反力ベクトル算出部４０は、ステップＳ１０に進む。
【００９４】
以上説明したように、本発明の実施形態に係る触力覚提示装置１は、利用者の指先等の予め定められた面積の皮膚の多点が受ける独立した３次元の力ベクトルを、３つの力覚提示部１１を用いて忠実に再現することができる。これにより、触力覚提示装置１は、利用者の指が接触している３つの力覚提示部１１から利用者の指に反力を伝達するので、利用者が物体に触った際の当該部位の皮膚の変形と、皮膚が受ける力の分布を再現することができる。また、触力覚提示装置１は、表面の硬さが一様ではないオブジェクトの３次元形状と表面の硬さ分布を、より実物体に触ったときに近い感覚で、指などの触力覚に提示することができる。さらに、触力覚提示装置１は、ポインタがオブジェクトと接触する前に、予めポインタの側の表面の硬さのパラメータを設定しておくことができるので、計算時間を短縮し、高速な演算処理が可能である。
【００９５】
（第２実施形態）
本発明の第２実施形態に係る触力覚提示装置について図６および図７を参照（適宜図１および図２参照）して説明する。なお、第２実施形態に係る触力覚提示装置において、図１に示す触力覚提示装置１と同様な構成には同様の符号を付し、該当の説明を適宜省略し、全体構成図を省略する。
【００９６】
第２実施形態に係る触力覚提示装置１は、その一部を図６に拡大して示すように、３台の力覚提示装置１０ａ，１０ｂ，１０ｃのアーム１２ａ，１２ｂ，１２ｃの先端に指サック７０を設けた点が、図１に示す触力覚提示装置１と相違している。図６（ａ）は、利用者の指９０に指サック７０を装着した状態で、側面から見た指サック７０を示す。図６（ｂ）は、指を抜いたときに正面から見た指サック７０を示している。図６（ｃ）は指サック７０の本体部７２を示している。
【００９７】
指サック７０は、主として外装のガイド部７１と、その内側に設けられた袋状の本体部７２と、を備えている。
ガイド部７１は、利用者の指９０を指し込むときに指を本体部７２に案内するものである。ガイド部７１は、指９０が差し込まれた状態で利用者の操作に追随できるような強度を有していれば、その形状、大きさ、硬度、材質を適宜選択することができる。例えば、材質について挙げると、軽量で、強度の強いプラスチック、特に加工性等を考慮すると、ポリカーボネートやアクリルなどの樹脂材料にて形成されていることが好ましい。
【００９８】
図６に示す例では、ガイド部７１は、指の先端が当接する円板状の先端部と、指の周囲に当接するように先端部から立設した側面部とを備える。側面部は、指の周囲の全周に一体的に設けられているのではなく、指の周方向に所定の隙間を介して同形状の３枚の板に分離されている。板の周方向の長さは、４枚あったとしたら、指の周囲の全周と同じかやや短い長さとなっている。実在する３枚の板の間隔のうち２箇所は同程度に短く、残りの１箇所は、それらより広く形成され、指の腹側（下側）に設けられている。ガイド部７１の板と板との間に広い隙間を設けることにより、指９０の先端の腹側の領域に、３台の力覚提示装置１０ａ，１０ｂ，１０ｃの力覚提示部１１ａ，１１ｂ，１１ｃをそれぞれ配置しやすくなっている。また、ガイド部７１の板と板との間に狭い隙間を設けることにより、指９０を挿入した利用者が窮屈に感じることなく快適に利用でき、個人差を吸収することができる。なお、図６に示したガイド部７１の構造は一例であって、これに限定されるものではない。
【００９９】
本体部７２は、指が差し込まれる袋であり、指を保護するための一般的な指サックと同様な材質、例えばシリコーン樹脂やシリコーンゴムで形成されている。ここで、指が差し込まれるとは、本体部７２の大きな開口に指９０の皮膚の一部の領域を装着することを意味しており、指全体を本体部７２の袋にすっぽり入れなくてもよい。
本体部７２は、図６（ｃ）に示すように、指の一部が接触する所定領域に力覚提示装置１０の台数と同数の孔７３ａ，７３ｂ，７３ｃが設けられている。なお、本体部７２は非常に薄く透明なので実際には孔７３ｂ，７３ｃの輪郭が見える。
図６に示す例では、本体部７２の先端は、ガイド部７１の先端部に固着されている。本体部７２は、ガイド部７１の先端部に固着された状態で、指の腹側（下側）に孔７３ａ，７３ｂ，７３ｃが設けられている。図６（ｂ）に示すように、力覚提示装置１０の力覚提示部１１ａ，１１ｂ，１１ｃが、本体部７２の孔７３ａ，７３ｂ，７３ｃを介して本体部７２の内側にそれぞれ設けられている。力覚提示部１１が本体部７２の内側から孔７３を介して抜けないように、孔７３の大きさは、力覚提示部１１の直径よりも小さくなっている。孔７３ａ，７３ｂ，７３ｃの位置は所定の大きさの三角形の各頂点に対応している。本体部７２には、孔７３ａ，７３ｂ，７３ｃ以外に、これらよりも大きな開口（貫通孔）が穿設されている。この開口の大きさは、例えば直径数〜十数ｍｍ程度である。この開口を通じて、図６（ａ）に示すように手の人差指の第１関節の腹側の直径数〜十数ｍｍ程度の領域を、力覚提示部１１ａ，１１ｂ，１１ｃに直接的に接触させることができる。
【０１００】
本体部７２の開口を介して力覚提示部１１に接触した指を、本体部７２の孔７３の外側（指の腹側）から透視した模式図を図７（ａ）に示す。なお、図７（ａ）および図７（ｂ）では、実空間と、対応する仮想空間とを重ねて表示している。図７（ａ）では、実空間にて指９０の第一関節９１の腹側の所定面積の領域にて接触する力覚提示部１１ａ，１１ｂ，１１ｃが、仮想空間上のポインタＰａ，Ｐｂ，Ｐｃに対応していることを示す。図７（ｂ）では、実空間には、提示しようとする物体が存在せずに、かつ不図示の指サック７０を備えた触力覚提示装置１と指９０が存在するときに、この不図示の指サック７０を備えた触力覚提示装置１によって、仮想空間上に存在するオブジェクトＯＢのエッジＥがあることを利用者が感じることができることを模式的に示す。
【０１０１】
第２実施形態に係る触力覚提示装置１は、３台の力覚提示装置１０の力覚提示部１１を利用者の１つの触力覚受容領域に配置するときに、柔軟に変形できる指サック７０の袋状の本体部７２の孔を介して各力覚提示部１１を指サック７０の内側に設けたので、各力覚提示部１１を緩やかに拘束できる。したがって、アクチュエータの３自由度を阻害することなく各力覚提示部１１が独立に動き易くなる効果を奏する。
【０１０２】
以上、各実施形態に基づいて本発明を説明したが、本発明はこれらに限定されるものではない。例えば、オブジェクトの表面物理データ５３として硬さ分布を例に挙げて説明したが、本発明はこれに限らず、例えば、摩擦、粗さなどのその他の物理パラメータも同様に扱うことができる。また、３台の力覚提示装置１０を用いることとして説明したが、本発明はこれに限らず、より複雑なオブジェクトの形状や高精細な硬さ分布を提示するために、より多くの力覚提示装置１０を用いてもよい。また、利用者の触力覚受容領域を、手の人差指としたが、これに限らず、他の指や、掌、足の指等、利用者が触力覚を感じようとする部位であればどこでも構わない。
【０１０３】
また、第２実施形態に係る触力覚提示装置１は、１つの指サックを備えるものとしたが、図８に示す触力覚提示装置１００のように、２組の指サックを用意して例えば利用者の親指と、人差指または中指とに装着することとしてもよい。この場合、各指サックに対応して、少なくとも３台の力覚提示装置１０の力覚提示部１１を、２組備えることとする。これによれば、利用者は、親指と、人差指または中指とによって、仮想物体を掴むときに、仮想物体のエッジ等の表面形状を認識し易くなる。
また、触力覚提示装置１には、１つの座標系変換部３０を設けて変換および逆変換を行うこととしたが、これに限らず、代わりに、例えば、各３次元位置データ入力部２０に座標系の変換機能を持たせ、かつ、各力ベクトルデータ出力部２５に座標系の逆変換機能を持たせるようにしてもよい。
【０１０４】
１      触力覚提示装置
１０    力覚提示装置
１１    力覚提示部
１２    アーム
１３    位置センサ
１４    アクチュエータ
２０    ３次元位置データ入力部
２５    力ベクトルデータ出力部
３０    座標系変換部
４０    反力ベクトル算出部
５０    記憶部
５１    オブジェクトデータ
５２    ポインタパラメータテーブル
５３    表面物理データ
６０    ボクセル
７０    指サック
７１    ガイド部
７２    本体部
７３    孔
９０    指
【図１】
2014092906.tif 000003
【図２】
2014092906.tif 000004
【図３】
2014092906.tif 000005
【図４】
2014092906.tif 000006
【図５】
2014092906.tif 000007
【図６】
2014092906.tif 000008
【図７】
2014092906.tif 000009
【図８】
2014092906.tif 000010