(57)【特許請求の範囲】
【請求項１】
仮想物体をユーザに触力覚で提示する感覚伝達装置を制御する力覚制御装置において、
前記感覚伝達装置から得られる前記ユーザの実空間上の指又は手の位置と、前記仮想物体の形状に対応する位置とを比較し、前記実空間上の指又は手の位置が前記仮想物体内に存在する場合に、前記指又は手に力覚を提示する箇所と、該力覚を提示しない箇所のそれぞれに対する反力を計算し、前記力覚を提示しない箇所に対する反力を、前記指に力覚を提示する箇所に作用する反力と見做して、反力を合成する反力取得部と、
前記反力取得部により得られる反力の情報に基づいて、前記感覚伝達装置に対する力覚制御情報を生成する力覚制御情報生成部と、
前記感覚伝達装置から得られる前記ユーザの実空間上の指又は手の位置及び姿勢から、手の動作内容を判定する手運動判定部と、を有し、
前記反力取得部は、前記手運動判定部における判定結果が、予め設定された動作である場合に、前記力覚を提示しない箇所のそれぞれに対する反力を計算することを特徴とする力覚制御装置。
【請求項２】
前記予め設定された動作は、前記手を静止させ前記仮想物体の表面に前記手や指を沿わせる動作であることを特徴とする請求項１に記載の力覚制御装置。
【請求項３】
前記反力取得部は、
前記力覚を提示する箇所に対する反力と、前記力覚を提示しない箇所に対する反力とを合成する際に、前記力覚を提示しない箇所に対する反力を、力覚提示点における前記仮想物体の表面の接線成分のみの力に変更して合成することを特徴とする請求項１、又は２に記載の力覚制御装置。
【請求項４】
前記反力取得部は、
前記力覚を提示しない箇所に対する前記仮想物体への侵入量を取得し、取得した前記侵入量に比例させて、前記力覚を提示しない箇所に対する反力を取得することを特徴とする請求項１乃至３の何れか１項に記載の力覚制御装置。
【請求項５】
請求項１乃至４の何れか１項に記載の力覚制御装置を備えた力覚提示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、力覚制御装置及び力覚提示装置に係り、特にユーザが物体を触った際の反力を指や手の触力覚に提示するための力覚制御装置及び力覚提示装置に関する。
【背景技術】
【０００２】
テレビ放送やインターネット等による情報提供では、物体の情報の大部分を視覚的に伝える割合が多く、視覚障害者等に情報が伝わらない場合（情報バリアとなる場合）がある。特に美術番組等で重要となる３次元形状の情報は、言語化も難しく情報バリアが顕著となる。そこで、３次元形状を知覚できる力覚での情報提示は、バリアフリー化を実現する手法の一つとなっている。
【０００３】
現在、力覚提示装置は、指先等の１点に仮想物体に応じた反力を提示するものが実用化され、その装置を複数用いて各指や手掌へ反力を示すことで物体を把持し触察する方法が提案されている。
【０００４】
例えば、物体を力覚的に提示する手法として、リンク機構を有するマニピュレータのインターフェース位置をトラッキングして仮想空間内のポインタとし、同空間内に作成した物体との干渉に応じた反力をフィードバックする手法がある（例えば、非特許文献１参照）。非特許文献１において、反力は、指サック等の１点に提示される。
【０００５】
一方、物体形状を探る手の動きは、手全体で体積や全体の形を短時間で探る"包み込み"と指先で輪郭をなぞり正確な形状を探る"輪郭探索"の２つが示されている（例えば、非特許文献２参照）。したがって、指等の１点に反力を示す前述の手法では"輪郭探索"は行えるが、"包み込み"で触探索できない。そこで、同手法を多指や手掌へ複数適用して、仮想物体を把持できるようにした手法がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５３４２３５４号公報
【非特許文献】
【０００７】
【非特許文献１】Ｇｅｏｍａｇｉｃ  Ｔｏｕｃｈ／ＰＨＡＮＴｏＭシリーズ，インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｇｅｏｍａｇｉｃ．ｃｏｍ／ｅｎ／ｐｒｏｄｕｃｔｓ−ｌａｎｄｉｎｇ−ｐａｇｅｓ/ｈａｐｔｉｃ＞
【非特許文献２】Ｌｅｄｅｒｍａｎ，Ｓ．Ｊ．＆Ｋｌａｔｚｋｙ，Ｒ．Ｌ．："Ｈａｎｄ  ｍｏｂｅｍｅｎｔｓ：Ａ  ｗｉｎｄｏｗ  ｉｎｔｏ  ｈａｐｔｉｃ  ｏｂｊｅｃｔ  ｒｅｃｏｇｎｉｔｉｏｎ"，ｃｏｇｎｉｔｉｖｅ  Ｐｓｙｃｈｏｌｏｇｙ，１９，３４２−３６８，１９８７．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来手法では、反力を提示しない部位が仮想物体に侵入し、形状認識を歪ませる問題がある。したがって、反力を提示しない部位の物体への侵入が原因で、物体の形状や大きさを誤認してしまい、特に従来手法において、"包み込み"による触探索への応用が困難となっている。
【０００９】
本発明は、上述した問題点に鑑みなされたものであり、３次元形状をより自然に力覚で提示するための力覚制御装置及び力覚提示装置を提供することを目的とする。更に言い換えれば、本発明の目的は、仮想物体の力覚提示において、実物体を触察しているような、より自然な触感覚を得るための力覚制御装置及び力覚提示装置を提供することである。
【課題を解決するための手段】
【００１０】
一つの態様では、仮想物体をユーザに触力覚で提示する感覚伝達装置を制御する力覚制御装置において、前記感覚伝達装置から得られる前記ユーザの実空間上の指又は手の位置と、前記仮想物体の形状に対応する位置とを比較し、前記実空間上の指又は手の位置が前記仮想物体内に存在する場合に、前記指又は手に力覚を提示する箇所と、該力覚を提示しない箇所のそれぞれに対する反力を計算し、前記力覚を提示しない箇所に対する反力を、前記指に力覚を提示する箇所に作用する反力と見做して、反力を合成する反力取得部と、前記反力取得部により得られる反力の情報に基づいて、前記感覚伝達装置に対する力覚制御情報を生成する力覚制御情報生成部と、前記感覚伝達装置から得られる前記ユーザの実空間上の指又は手の位置及び姿勢から、手の動作内容を判定する手運動判定部と、を有し、前記反力取得部は、前記手運動判定部における判定結果が、予め設定された動作である場合に、前記力覚を提示しない箇所のそれぞれに対する反力を計算する。
【００１１】
また一つの態様は、上述した力覚制御装置を備えた力覚提示装置である。
【発明の効果】
【００１２】
本発明によれば、３次元形状をより自然に力覚で提示することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態における力覚提示装置の機能構成の一例を示す図である。
【図２】力覚制御処理の一例を示すフローチャートである。
【図３】本実施形態における力覚制御処理を説明するための図である。
【図４】手の形状・位置・姿勢取得例について説明するための図である。
【図５】手のリンクモデルの一例を示す図である。
【図６】センサに基づく手の形状取得例を示す図である。
【図７】感覚伝達装置による指先、手掌の位置情報について説明するための図である。
【図８】手の座標系変換を説明するための図である。
【図９】力覚提示箇所及び非提示箇所における座標系変換を説明するための図である。
【図１０】本実施形態における力覚提示の内容を説明するための図である。
【図１１】干渉に基づく反力の計算手法を説明するための図である。
【図１２】力覚非提示箇所反力計算部における干渉計算を説明するための図である。
【発明を実施するための形態】
【００１４】
＜本発明について＞
本発明は、例えば、指先や手掌等の力覚提示箇所へ仮想物体との干渉に応じた反力を提示する際に、力覚提示箇所と仮想物体との干渉部分の計算だけではなく、力覚を提示しない指の中節部や基節部（力覚非提示箇所）等と仮想物体との干渉部分も計算し、力覚非提示箇所の干渉部分を減じるように同指又は手掌への力覚提示を制御する。これにより、仮想物体への手の侵入が少なくなり、把持した際の手の形状が、実物体を把持した時の形状に近づくため、"包み込み"の触探索が可能となる。なお、上述の干渉とは、例えばユーザの指や手の少なくとも一部が仮想物体内に存在する状態であり、指や手による触探索において、仮想物体に指や手が侵入している状態をいう。
【００１５】
次に、上述したような特徴を有する本発明における力覚制御装置及び力覚提示装置を好適に実施した形態について、図面等を用いて詳細に説明する。なお、以下の例では、本実施形態における力覚制御装置と、その力覚制御装置からの制御情報を受けて力覚を提示する感覚伝達装置とを備えた力覚提示装置について説明する。また、以下の説明では、仮想物体を把持したときの片手の各指先の皮膚に対して触力覚を提示する例を示すが、本実施形態はこれに限定されるものではなく、例えば両手で把持する場合等にも適用することができる。
【００１６】
＜力覚提示装置の機能構成例＞
図１は、本実施形態における力覚提示装置の機能構成の一例を示す図である。図１の例に示す力覚提示装置１０は、力覚制御装置１１と、感覚伝達装置１２と、手位置・形状・姿勢計測装置１３とを有する。
【００１７】
力覚制御装置１１は、５本の指に対応する感覚伝達装置１２−１〜１２−５からの各指に対する力覚提示位置情報や、感覚伝達装置１２−６からの手掌部に対する手掌部提示位置情報、手位置・形状・姿勢計測装置１３からの計測結果等を取得し、取得した情報に基づいて、感覚伝達装置１２−１〜１２−６に対して力覚を制御する制御情報を生成し、生成した制御情報を感覚伝達装置１２−１〜１２−６に出力する。
【００１８】
感覚伝達装置１２は、例えばユーザの指や手掌に力覚を伝達する点接触型の装置である。感覚伝達装置１２は、例えば指サックやパッドを介して反力を伝達し、同時にユーザの指及び手掌の位置を取得して力覚制御装置１１に出力する。
【００１９】
手位置・形状・姿勢計測装置１３は、例えばカメラ等の撮像装置を用いて、ユーザの手（感覚伝達装置１２により力覚を伝達する手）の位置や形状、姿勢を撮影し、撮影した画像や映像等に対して、色情報や形状情報等による画像解析を行って手の位置や形状、姿勢を計測する。また、手位置・形状・姿勢計測装置１３は、その計測結果を力覚制御装置１１に出力する。
【００２０】
なお、手位置・形状・姿勢計測装置１３は、上述した手法に限定されるものではなく、例えば磁気センサを用いて手の位置や姿勢を検出し、曲げセンサやを用いて手の形状等を検出してもよい（例えば、「Ｄａｖｉｄ  Ｊ．Ｓｔｕｍａｎ："Ａ  Ｓｕｒｖｅｙ  ｏｆ  Ｇｌｏｖｅ−ｂａｓｅｄ  ｌｎｐｕｔ"，ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ＆  Ａｐｐｌｉｃａｔｉｏｎｓ，ＰＰ．３０−３９，１９９４」等を参照）。
【００２１】
また、手位置・形状・姿勢計測装置１３は、手全体の位置や形状、姿勢ではなく、所定の指（少なくとも１本の指）に対する位置や形状、姿勢を検出してもよい。手位置・形状・姿勢計測装置１３により、感覚伝達装置１２では取得できない手の各部（例えば、指の基節や中節）の位置等を取得することができる。
【００２２】
次に、上述した力覚提示装置１０における力覚制御装置１１、感覚伝達装置１２の機能構成例について、具体的に説明する。
【００２３】
＜力覚制御装置１１について＞
力覚制御装置１１は、手位置・形状・姿勢計算部２１と、手運動判定部２２と、干渉計算部（反力取得部）２３と、力覚制御情報生成部２４とを有する。
【００２４】
手位置・形状・姿勢計算部２１は、感覚伝達装置１２からのユーザの指や手掌の位置情報、及び手位置・形状・姿勢計測装置１３からの手の位置・形状・姿勢情報を用いて、仮想空間内におけるユーザの手の位置・形状・姿勢を計算する。また、手位置・形状・姿勢計算部２１は、計算結果を手運動判定部２２及び干渉計算部２３に出力する。
【００２５】
手運動判定部２２は、手位置・形状・姿勢計算部２１の結果を時系列（所定の時間間隔）で取得して、現在の手の動きが"包み込み"（例えば、手を静止させ物体表面に手や指を沿わせる動作）の触探索か、又は"輪郭探索"（例えば、物体の輪郭に沿って手を動かす動作）の触探索かを判定する。また、手運動判定部２２は、判定方法の一例としては、例えば"輪郭探索"の判定を示指（人差し指）を基準に行うこととし、示指が伸展し、他指が屈曲している場合には、"輪郭探索"であると判定し、それ以外の状態を"包み込み"として判定することができるが、判定条件についてはこれに限定されるものではなく、手位置・形状・姿勢計算部２１の結果より各指の状態を確認し判定してもよい。手運動判定部２２は、判定結果を干渉計算部２３に出力する。
【００２６】
干渉計算部２３は、仮想空間に配置されている触探索対象の物体（仮想物体）の形状を３次元の座標（位置情報）で示した３次元物体情報３１を入力し、手位置・形状・姿勢計算部２１から得られた手の位置や形状、姿勢の情報と比較して、物体と手との干渉に応じた反力の情報等を計算し、その計算結果を力覚制御情報生成部２４に出力する。３次元物体情報３１は、例えば物体（オブジェクト）の形状を複数の点群で示す形状点群データや、物体の硬さを示す硬さ分布データ等の物理特性情報等があるが、これに限定されるものではない。物理特性情報は、物体の表面の物理特性として、上述した硬さ分布データだけでなく、静止摩擦、動摩擦、表面粗さ等のデータを有していてもよい。
【００２７】
ここで、図１に示す干渉計算部２３について具体的に説明する。干渉計算部２３は、力覚提示箇所反力計算部２３−１と、力覚非提示箇所反力計算部２３−２と、反力合成部２３−３とを有する。力覚提示箇所反力計算部２３−１は、上述した手位置・形状・姿勢計算部２１からの手の位置・形状・姿勢情報より、力覚が提示される箇所（例えば、指先）の位置情報と、３次元物体情報３１とを比較して、物体と力覚が提示される箇所との干渉に応じた反力の情報等を計算する。
【００２８】
力覚非提示箇所反力計算部２３−２は、手運動判定部２２により"包み込み"の判定結果を得た場合に、力覚非提示箇所の反力を計算する。本実施形態では、力覚非提示箇所の一例として指の中節及び基節部に対して干渉を低減させる反力を計算するが、これに限定されるものではない。
【００２９】
なお、上述した力覚提示箇所反力計算部２３−１と、力覚非提示箇所反力計算部２３−２とにおける干渉に基づく反力の計算手法については、例えばｐｒｏｘｙ（プロクシ）法（例えば、「Ｄ．Ｃ．Ｒｕｓｐｉｎｉ，Ｋ  Ｋｏｌａｒｏｖ，Ｏ．Ｋｈａｔｉｂ："Ｔｈｅ  ｈａｐｔｉｃ  ｄｉｓｐｌａｙ  ｏｆ  ｃｏｍｐｌｅｘ  ｇｒａｐｈｉｃａｌ  ｅｎｖｉｒｏｎｍｅｎｔｓ"，Ｐｒｏｃ  ｏｆ  ＳＩＧＧＲＡＰＨ  ９７，ｐｐ．３４５−３５２，１９９７」等を参照）を用いることができるが、これに限定されるものではない。なお、ｐｒｏｘｙ法を用いる場合は、手の各部位をポインタで表現した簡易モデルを使用してもよい。
【００３０】
反力合成部２３−３は、力覚提示箇所反力計算部２３−１と、力覚非提示箇所反力計算部２３−２とからそれぞれ得られる反力結果を合成等により調整し、得られた反力の情報を力覚制御情報生成部２４に出力する。
【００３１】
具体的には、力覚を提示しない箇所（力覚非提示箇所）に対する反力を、ユーザの指に力覚を提示する箇所（力覚提示箇所）に作用する反力と見做して、この箇所で計算された反力と合成する。
【００３２】
なお、力覚提示箇所反力計算部２３−１と、力覚非提示箇所反力計算部２３−２とからそれぞれ得られる反力をそのまま合成すると、力覚提示箇所反力計算部２３−１で計算された実際に力覚提示箇所においてユーザに与えなくてはいけない力が打ち消されてしまう等の可能性がある。そこで、反力合成部２３−３は、反力を合成する際に、力覚非提示箇所反力計算部２３−２で算出した結果（反力）を、力覚提示点における反力と直交する方向の成分、すなわち物体表面の接線成分のみの力に変更することで力覚提示箇所反力計算部２３−１への影響を小さくすることが望ましい。
【００３３】
なお、干渉計算部２３において、上述した手運動判定部２２の判定結果が"輪郭探索"の触探索の場合には、上述した力覚非提示箇所反力計算部２３−２及び反力合成部２３−３の処理は省略してもよく、その場合には、力覚提示箇所反力計算部２３−１で得られた値（反力）が力覚制御情報生成部２４に出力される。また、干渉計算部２３は、上述した手運動判定部２２の判定結果が"輪郭探索"の場合であっても、上述した力覚非提示箇所反力計算部２３−２及び反力合成部２３−３の処理を行ってもよい。
【００３４】
力覚制御情報生成部２４は、干渉計算部２３から得られた反力の情報から各感覚伝達装置１２−１〜１２−６に対するそれぞれの制御情報を生成し、生成した制御情報を各感覚伝達装置１２−１〜１２−６に出力する。
【００３５】
なお、力覚制御装置１１は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やタブレット端末等でもよい。また、上述した処理は、例えば力覚制御プログラムとして実行させてもよく、例えば力覚制御プログラムをＰＣ等にインストールし、インストールしたプログラムを実行することで、上述した力覚制御に関する処理を実行することができる。
【００３６】
＜感覚伝達装置１２について＞
感覚伝達装置１２−１〜１２−５は、力覚提示出力制御部４１−１〜４１−５と、力覚提示部４２−１〜４２−５と、力覚提示位置検出部４３−１〜４３−５とを有する。また、感覚伝達装置１２−６は、手掌部力覚提示制御部４４と、手掌部力覚提示部４５と、手掌部力覚提示位置検出部４６とを有する。感覚伝達装置１２−１〜１２−５は、各指に対する感覚伝達を行い、感覚伝達装置１２−６は、手掌部に対する感覚伝達を行う。
【００３７】
力覚提示出力制御部４１−１〜４１−５は、力覚制御装置１１から得られた制御情報（例えば、仮想の物体形状や物理特性情報（例えば、硬さ、静止摩擦、動摩擦、表面粗さ等）等に対応する反力の情報）に基づいて、各指に対して力覚を提示する力覚提示部４２−１〜４２−５を制御する。
【００３８】
力覚提示部４２−１〜４２−５は、例えばアクチュエータ等である。力覚提示部４２−１〜４２−５は、例えば仮想物体の面を押したユーザの指又は手に対して物体の物理特性情報等に対応する反力を与える。力覚提示部４２−１〜４２−５は、例えばアームや先端部（指サックやパッド）等を有する。力覚提示部４２−１〜４２−５は、例えばアームの関節の屈曲や伸縮等の駆動力を発生させるサーボモータ等であり、アームの先端に設けられ、ユーザの指の皮膚と直接接触する指サックやパッドから所定の反力を伝達することができる。
【００３９】
力覚提示位置検出部４３−１〜４３−５は、例えば３次元位置センサ等である。力覚提示位置検出部４３−１〜４３−５は、例えば実空間において仮想の物体を把持しようとするユーザの指先（言い換えれば、上述したポインタ（先端部））の３次元位置（ｘ，ｙ，ｚ）を取得する。力覚提示位置検出部４３−１〜４３−５としては、例えば上述したアーム関節部に設置したエンコーダを使用することができるが、これに限定されるものではない。力覚提示位置検出部４３−１〜４３−５は、検出した位置情報を手位置・形状・姿勢計算部２１に出力する。
【００４０】
手掌部力覚提示制御部４４は、力覚制御装置１１から得られた制御情報に基づいて、手掌部に対して力覚を提示する手掌部力覚提示部４５を制御する。手掌部力覚提示部４５は、例えばアクチュエータ等であり、仮想物体の面を押したユーザの手掌部に対して物体の物理特性情報等に対応する反力を与える。手掌部力覚提示位置検出部４６は、手掌部の３次元位置（ｘ，ｙ，ｚ）を取得する。
【００４１】
上述した実施形態により、例えば"包み込み"の触探索においてもより正確な力覚を提示することができる．
＜力覚制御処理の一例＞
次に、力覚制御処理の一例について、フローチャートを用いて説明する。図２は、力覚制御処理の一例を示すフローチャートである。図２の例において、力覚制御装置１１は、仮想物体の情報（３次元物体情報３１）を読み込み（Ｓ０１）、手の形状・位置・姿勢等を取得する（Ｓ０２）。Ｓ０１の処理では、読み込んだ３次元物体情報３１の情報が、予め設定された仮想物体の中心を原点としたモデル座標系である場合、実空間に対応したワールド座標系の任意の位置に変換する。
【００４２】
次に、力覚制御装置１１は、現在の触探索方法が"包み込み"か否かを判断し（Ｓ０３）、"包み込み"である場合（Ｓ０３において、ＹＥＳ）、手掌部での仮想物体との位置の干渉を計算する（Ｓ０４）。ここで、本実施形態において、触探索方法は、"包み込み"と"輪郭探索"の何れかである。そのため、Ｓ０３の処理では、"包み込み"でない場合は、"輪郭探索"であると判断される。また、Ｓ０３の処理では、現在の触探索方法が"輪郭探索"か否かを判断してもよい。また、Ｓ０４の処理では、感覚伝達装置１２−１〜１２−６のうち、手掌部に対応する感覚伝達装置１２−６から得られる手掌部の位置情報等を用いて干渉を計算する。
【００４３】
次に、力覚制御装置１１は、Ｓ０４の処理結果として、手掌部の位置が仮想物体と干渉しているか否かを判断し（Ｓ０５）、干渉している場合（Ｓ０５において、ＹＥＳ）、手掌部の力覚提示制御を行う（Ｓ０６）。また、Ｓ０５の処理において干渉していない場合（Ｓ０５において、ＮＯ）、又はＳ０６の処理後、力覚制御装置１１は、各指（例えば、指先）での仮想物体との位置の干渉を計算する（Ｓ０７）。
【００４４】
Ｓ０７の処理では、感覚伝達装置１２−１〜１２−６のうち、各指に対応する感覚伝達装置１２−１〜１２−５から得られる各指の位置情報等を用いて干渉を判定する。
【００４５】
次に、力覚制御装置１１は、Ｓ０７の処理結果として、各指のうち少なくとも１つの指の位置が仮想物体と干渉しているか否かを判断し（Ｓ０８）、干渉している場合（Ｓ０８において、ＹＥＳ）、力覚非提示部での干渉を計算する（Ｓ０９）。
【００４６】
ここで、Ｓ０３の処理において、現在の触探索方法が"包み込み"でない場合（Ｓ０３において、ＮＯ）、力覚制御装置１１は、現在の触探索方法が"輪郭探索"であるとして、各指での干渉を計算し（Ｓ１０）、各指のうち少なくとも１つの指の位置が仮想物体と干渉しているか否かを判断する（Ｓ１１）。
【００４７】
力覚制御装置１１は、Ｓ０９の処理後、又はＳ１１の処理において、各指のうち少なくとも１つの指の位置が仮想物体と干渉している場合（Ｓ１１において、ＹＥＳ）、各指の力覚提示制御を行う（Ｓ１２）。
【００４８】
また、力覚制御装置１１は、Ｓ０８の処理において、各指のうち少なくとも１つの指の位置が仮想物体と干渉していない場合（Ｓ０８において、ＮＯ）、Ｓ１２の処理後、又はＳ１１の処理において、各指のうち少なくとも１つの指の位置が仮想物体に干渉していない場合（Ｓ１１において、ＮＯ）、ユーザが入力装置等を用いて力覚制御処理の終了を指示しているか否かを判断する（Ｓ１３）。指示している場合（Ｓ１３において、ＹＥＳ）、処理を終了し、指示していない場合（Ｓ１３において、ＮＯ）、Ｓ０２の処理に戻る。
【００４９】
＜本実施形態における力覚制御処理の具体例＞
次に、本実施形態における力覚制御処理の具体例について説明する。図３は、本実施形態における力覚制御処理を説明するための図である。本実施形態における力覚制御では、図３（Ａ）に示す仮想空間上に存在する仮想物体５０に対してユーザの手５１の感覚により、実際に仮想物体５０が存在するかのような感覚を伝達するための制御を行う。
【００５０】
感覚の伝達は、上述した感覚伝達装置１２により伝達させることができる。図３の例における力覚提示箇所は、例えば、拇指（親指）の指先（力覚提示箇所５２−１）、示指の指先（力覚提示箇所５２−２）、手掌部（力覚提示箇所５２−３）等があるが、これに限定されるものではない。各力覚提示箇所については、例えば、図３（Ｂ）に示すように実空間上に存在する感覚伝達装置１２−１，１２−２，１２−６を用いて、本実施形態における力覚制御装置１１で制御された所定の感覚をユーザの手５１に伝達する。また、図３（Ａ）の例では、力覚非提示箇所５３−１〜５３−４を有する。
【００５１】
例えば、図３（Ｂ）の例では、拇指と示指への力覚提示を指サックを介して行い、手掌部への力覚提示をパッドを介して行うが、これに限定されるものではない。指サックでの力覚提示が、図３（Ａ）に示す力覚提示箇所５２−１，５２−２に対応し、パッドでの力覚提示が図３（Ａ）に示す力覚提示箇所５２−３に対応する。
【００５２】
感覚伝達装置１２は、実空間の指先及び手掌の位置を仮想空間に取り込むと共に、力覚制御装置１１で制御された仮想物体５０を触ったときの反力を提示する。
【００５３】
また、図３（Ｂ）の例では、手位置・形状・姿勢計測装置１３の一例として、曲げセンサ６０−１〜６０−６及び手５１の姿勢を推定するための姿勢センサ６０−７を有する。なお、上述した各センサ６０の種類や数、設置位置等については、これに限定されるものではない。
【００５４】
例えば、上述した各センサ６０−１〜６０−７は、例えば手袋に設けられ、その手袋をユーザが手５１に着用することで、各センサ６０−１〜６０−７から手や指の位置、姿勢を取得することができる。また各センサ６０−１〜６０−７は、直接手５１に貼り付けてもよい。
【００５５】
＜手の形状・位置・姿勢取得例＞
次に、手位置・形状・姿勢計算部２１における手の形状・位置・姿勢取得例について図を用いて説明する。図４は、手の形状・位置・姿勢取得例について説明するための図である。
【００５６】
手の形状推定には手のリンクモデルを利用する。仮想の手のモデル作成には、例えばＤＨ（Ｄｅｎａｖｉｔ−Ｈａｒｔｅｎｂｅｒｇ）記法と呼ばれる隣接する関節間の関係を表す方法を用いる。図４の例において、関節７０の座標系Σｎの番号及びリンク番号は、根から順にｎ＝１，２，３・・・と割り当て、各関節７０の座標系のＺ軸は関節の回転軸とする。
【００５７】
ここで、図４に示すように、隣接する指の関節７０−１，７０−２の回転軸に対し両者に垂直に交わる線分を考える。末端に向かう方向をΣｉ−１のＸ軸とし、その距離をａｉとする。その線分に沿ってΣｉ−１のＺ軸がＺｉ軸に交わるように並進させ、Σｉ−１のＸ軸周りにＺ軸がＺｉ軸にする回転角度をαｉとする。Ｘ軸にオフセットがかかっているときはＺｉ軸上をＸ軸が一致するよう距離ｄｉ並進させる。また、これまで回転・並進させてきたΣｉ−１のＸ軸をＺｉ軸周りにＸｉ軸に一致させる際の回転角度をθｉとする。以上のａｉ、αｉ、ｄｉ、θｉがＤＨパラメータとなる。このＤＨパラメータを用いると、座標系ΣｉからΣｉ−１への変換行列ｉ−１Ｔｉは、以下に示す（１）式となる。
【００５８】
【数１】
0006499900.tif 000002
図５は、手のリンクモデルの一例を示す図である。本実施形態では、図５の例に示すように、手掌中心を原点とするよう仮想の手ローカル座標系ΣＨを設定する。手位置・形状・姿勢計算部２１は、基節座標系ΣＩ１と中節座標系ΣＩ２（拇指は基節ΣＴ１と中手部ΣＴ２）とからΣＨへの変換行列を求める。ここで、各リンク長Ｌ、θｉ、θｔ、及びＭＰ（拇指はＴＭＣ）関節（外転・内転）座標系からΣＨへの変換行列ＨＴ0ｉ（拇指はＨＴ0ｔ）は、ユーザー毎の固有値であるため、事前に設定しておく。ＤＨパラメータ及び各変換行列は、図５に示す通りである。
【００５９】
図６は、センサに基づく手の形状取得例を示す図である。図６の例において、
センサ６０−１〜６０−７は、上述した図３（Ｂ）に示すセンサに対応している。曲げセンサ６０−１〜６０−６は、手の形状推定用のセンサであり、導電性インク等で構成され、曲げ角度に応じて抵抗値が変化するため、その抵抗値に応じて曲げ角度を取得する。本実施形態では、予め関節角度と抵抗値と対応付けておく。各曲げセンサ６０−１〜６０−６の対応関節の例としては、例えば図６に示すように設定することができるが、これに限定されるものではない。図６に示す各対応関節の記載は、上述した図５の例に対応している。
【００６０】
ここで、本実施形態の目的である指の仮想物体への侵入（干渉）解消において、ＭＰ関節が水平以上に伸展する場合がある。このとき、センサ６０が片面屈曲にしか対応できないセンサである場合には、最大伸展時にセンサが水平になるように治具を挟む等するのが好ましいが、これに限定されるものではない。また、センサからの角度情報をＤＨパラメータに適用することで、手の形状が決定される。
【００６１】
また、姿勢センサ６０−７は、手５１の姿勢を推定するためのセンサである。姿勢センサ６０−７は、例えば慣性計測装置（例えば、加速度センサ、ジャイロセンサ、地磁気センサ等を組み合わせたもの）を用いてロール角ｒ，ピッチ角ｐ，ヨー角ｙを取得し、センサの現在座標系ΣＳｒからセンサの基準座標系ΣＳへの変換行列ＳＴｒを取得する。
【００６２】
また、仮想手ローカル座標系ΣＨをワールド座標系ΣＷの姿勢と一致させ、かつ仮想手と実際の手の形状姿勢を一致させた際のΣＳｒからΣＳへの変換行列ＳＴＳｒ＿ｃａｌを事前に取得しておくことで、ΣＷ上の手の姿勢は変換行列ＷＴＳｒで求まる。上述した変換行列ＳＴｒは、以下に示す（２）式となり、上述した変換行列ＷＴＳｒは、以下に示す（３）式となる
【００６３】
【数２】
0006499900.tif 000003
次に、感覚伝達装置１２による指先、手掌の位置情報について、図を用いて説明する。図７は、感覚伝達装置による指先、手掌の位置情報について説明するための図である。図７の例では、実空間上に、拇指の感覚伝達装置１２−１、示指用の感覚伝達装置１２−２、手掌部の感覚伝達装置１２−６とを有する。
【００６４】
ここで、本実施形態では、実空間の任意の位置にワールド座標系ΣＷを設定し、各感覚伝達装置装置の座標系（拇指ΣＰＴ、示指ΣＰＩ、手掌部ΣＰＰ）からワールド座標系ΣＷへの変換行列（ＷＴＰＴ、ＷＴＰＩ、ＷＴＰＰ）を事前に導出する。これにより、図７に示すように、実空間と仮想空間をΣＷ系で一致させ、各感覚伝達装置１２−１，１２−２，１２−６をそれぞれ共通の座標系で操作することができる。
【００６５】
感覚伝達装置１２のインターフェース部（力覚提示箇所５２）の位置ベクトルｔは、感覚伝達装置１２の座標系で得られ、図７に示すように、仮想空間内では力覚ポインタとして表現される。拇指力覚ポインタ（力覚提示箇所５２−１）からΣＰＴへの変換行列をＰＴＴとし、示指、手掌も同様にＰＩＴ、ＰＰＴとすると、各力覚ポインタ（力覚提示箇所５２−１，５２−２）からΣＷへの変換行列は、拇指の変換行列ＷＴｔＤ＝ＷＴＰＴＰＴＴ、示指の変換行列ＷＴｉＤ＝ＷＴＰＩＰＩＴ、手掌部の変換行列ＷＴＰ＝ＷＴＰＰＰＰＴで表される。ここで、＊Ｔについては、以下に示す（４）式となる。
【００６６】
【数３】
0006499900.tif 000004
図８は、手の座標系変換を説明するための図である。また、図９は、力覚提示箇所及び非提示箇所における座標系変換を説明するための図である。図８に示すように、仮想手モデル座標系（ローカル座標系ΣＨ）からワールド座標系ΣＷへの変換行列ＷＴＨは、ΣＨ上の手５１の姿勢を表す変換行列ＷＴＳｒ及び、手掌部力覚提示部４５からΣＷへの変換行列ＷＴＰの回転成分をΣＷと一致させた変換行列ＷＴＰ''を用いて表され、以下に示す（５）となる。
【００６７】
【数４】
0006499900.tif 000005
上述の処理を行うことで、力覚提示箇所５２及び力覚非提示箇所５３の座標系からワールド座標系ΣＷへの変換行列を図９に示す式で表すことができる。
【００６８】
図９の例において、ＷＴｉＤは、示指力覚提示部（力覚提示箇所５２−２）の座標系からΣＷへの変換行列を示す。また、ＷＴｉＭは、示指力覚非提示部（中節）（力覚非提示箇所５３−３）座標系からΣＷへの変換行列を示す。また、ＷＴｉＰは、示指力覚非提示部（基節）（力覚非提示箇所５３−４）座標系からΣＷへの変換行列を示す。
【００６９】
また、ＷＴｔＤは、拇指力覚提示部座標系（力覚提示箇所５２−１）からΣＷへの変換行列を示す。また、ＷＴｔＰは、拇指力覚非提示部（基節）（力覚非提示箇所５３−１）座標系からΣＷへの変換行列を示す。ＷＴｔＭは、拇指力覚非提示部（中手）（力覚非提示箇所５３−２）座標系からΣＷへの変換行列を示す。また、ＷＴＨは、手掌力覚提示部座標系（力覚提示箇所５２−３）からΣＷへの変換行列を示す。
【００７０】
＜本実施形態における力覚提示の内容＞
次に、本実施形態における力覚提示の内容について、図を用いて説明する。図１０は、本実施形態における力覚提示の内容を説明するための図である。図１０（Ａ）は、従来の力覚提示の一例を示し、図１０（Ｂ）は、本実施形態における力覚提示の一例を示している。
【００７１】
上述したように、力覚提示は、手５１の所定の位置に予め設定された力覚提示箇所５２（図１０（Ａ）の例では、指先の力覚提示箇所５２−２，手掌部の力覚提示箇所５２−３）から仮想物体５０に対する反力等を伝達している。しかしながら、従来では、図１０（Ａ）に示すように、ＩＰ関節や中節、基節等については、仮想物体５０の形状と干渉している（仮想物体５０内に指が侵入した状態となる）ため、実際の仮想物体５０の形状をより自然に力覚で提示できない。また、このような状態は、形状を探る手５１の動作が、上述した"包み込み"での触探索時に影響が出やすい。
【００７２】
そこで、本実施形態では、手５１の動作が、"包み込み"である場合に、干渉量を計算し、図１０（Ｂ）に示すように、力覚提示箇所５２−２、５２−３に対し、力覚非提示箇所５３−３，５３−４が仮想物体５０の形状と干渉しない位置（仮想物体５０内に存在しなくなる位置）に移動するような反力を与える。例えば、図１０（Ｂ）の例では、ＭＰ関節を固定端と考え、仮想物体５０の表面を末節を上部にスライドさせるような反力を与える。これにより、力覚非提示箇所５３−３，５３−４を仮想物体５０の形状と干渉しない位置に移動させることができる。
【００７３】
＜手運動判定部２２における手の動き判定例＞
次に、手運動判定部２２における手の動き判定例について説明する。本実施形態では、非特許文献１に示されるように形状を探る手の動きを"包み込み"及び"輪郭探索"の２種類に分類している。したがって、手運動判定部２２は、手位置・形状・姿勢計算部２１の結果から現在の手の動きが"包み込み"の触探索か、又は"輪郭探索"の触探索かを判定する。
【００７４】
"輪郭探索"の場合は、物体の輪郭に沿って手を動かし、"包み込み"の場合は、手を静止させ物体表面に手や指を沿わせるといった動作上の特徴がある。したがって、手運動判定部２２は、"包み込み"の触探索の場合に、力覚非提示箇所５３を考慮した干渉制御を行う。
【００７５】
ここで、手運動判定部２２は、示指が伸展し、他指が屈曲している場合には、"輪郭探索"であると判定し、それ以外の状態を"包み込み"として判定することができる。手運動判定部２２は、手掌部及び指先が共に仮想物体５０に接触し、かつ手掌部の力覚ポインタが静止している場合を"包み込み"の触探索とし、それ以外の状態を"輪郭探索"であると判定することができる。
【００７６】
また、手運動判定部２２は、まず各指及び手掌部の力覚ポインタの位置と仮想物体の位置とを比較し、各指及び手掌部の力覚ポインタと仮想物体の干渉状態を確認する。手運動判定部２２は、力覚ポインタが物体表面に接する、若しくは仮想物体の内部に存在している場合に、力覚ポインタが物体と干渉している状態で互いに接触していると判定する。また、手運動判定部２２は、手掌力覚ポインタの運動量を併せて確認する。そして、手掌力覚ポインタと指の力覚ポインタとの双方が仮想物体と干渉している、かつ、手掌力覚ポインタの速度が予め設定された閾値未満であれば、現在の触探索を"包み込み"と判定し、それ以外の場合を"輪郭探索"と判定することができる。なお、各指は、それぞれ干渉解消制御を行うため、手運動判定部２２は、それぞれ独立して上述の判定を行う。
【００７７】
手運動判定部２２における判定手法は、上述の例に限定されるものではなく、例えば、他の入力装置等によりユーザが任意に探索方法を"包み込み"又は"輪郭探索"に切り替えてもよい。また、手運動判定部２２は、上述したような複数の判定手法のうち、何れかを予め設定しておいてもよい。
【００７８】
＜干渉に基づく反力の計算手法＞
次に、力覚提示箇所反力計算部２３−１と、力覚非提示箇所反力計算部２３−２とにおける干渉に基づく反力の計算手法について、具体的に説明する。図１１は、干渉に基づく反力の計算手法を説明するための図である。なお、図１１の例では、力覚提示に用いるＰｒｏｘｙ法について説明する。仮想空間において、感覚伝達装置１２の力覚提示箇所５２の位置を表す力覚ポインタとプロクシと呼ばれるポインタ（以下、プロクシ８０）を設定する。両者はバネ等により連結されており共に移動するが、仮想物体５０に力覚ポインタが侵入した際は仮想物体５０の表面にプロクシ８０が留まる。それにより、侵入を解消するための感覚伝達装置１２への反力を算出することができる。
【００７９】
ここで、バネ定数Ｋで連結されたプロクシ８０と力覚ポインタ（力覚提示箇所５２）について考えると、力覚ポインタの位置ベクトルをｐ、プロクシ８０の位置ベクトルｑをとすると、力覚ポインタに働く反力Ｆは（６）式で求まる。
【００８０】
【数５】
0006499900.tif 000006
ここで、仮想物体５０の表面について、法線ベクトルをｎとし、簡単化のために原点が含まれるとすると、ｑは以下の（７）式で表される。
【００８１】
【数６】
0006499900.tif 000007
すなわち、仮想物体５０と干渉していないときは、プロクシ８０と力覚ポインタの位置は一致しており、干渉しているときは力覚ポインタを仮想物体５０の表面へ正射影した位置にプロクシは留まっている。したがって、手掌部及び指への力覚提示部の干渉判定及び制御は、上述した（６）、（７）式を用いて行い、手掌への反力ＦＰ、示指への反力ＦＩ、拇指への反力ＦＴを感覚伝達装置１２を介して提示する。
【００８２】
＜力覚非提示箇所反力計算部２３−２における干渉計算例＞
次に、力覚非提示箇所反力計算部２３−２における干渉計算例について、図を用いて説明する。図１２は、力覚非提示箇所反力計算部における干渉計算を説明するための図である。
【００８３】
力覚非提示箇所反力計算部２３−２では、例えば図１２に示すように、仮想物体５０に対するユーザの手５１の指の基節及び中節の侵入（干渉）を解消するように力覚ポインタを制御する。侵入量（干渉量）は、例えばｐｒｏｘｙ法により取得することができるが、これに限定されるものではない。
【００８４】
力覚ポインタへの反力提示方向は、力覚ポインタからＭＰ関節へのベクトルｆとＭＰ関節（屈曲・伸展）の軸方向のベクトルの外積により求まるベクトルｆ⊥（向きはＭＰ関節が伸展する方向）を面へ射影して生成されるベクトルｗを用いる。但し、ｆ⊥を凸方向としてｆに対して力覚ポインタが存在する面が凹面の一部の場合は−ｗを用いる。干渉を解消する反力ベクトルＦｉｆｃａｎの式は、以下に示す（８）式となる。
【００８５】
【数７】
0006499900.tif 000008
反力合成部２３−３は、上述の手法で得られた干渉を解消する反力ベクトルＦｉｆｃａｎを、力覚提示箇所反力計算部２３−１で得られた反力（示指ならＦＩ、拇指ＦＴ）等に合成して、その合成結果の反力が感覚伝達装置１２を介して提示される。
【００８６】
＜力覚非提示箇所における干渉解消例＞
ここで、干渉計算部２３により得られる力覚非提示箇所における干渉解消例（反力による力覚制御例）について説明する。本実施形態では、上述したように、力覚非提示箇所（力覚を提示しない基節部又は中節部等）と物体の干渉を解消するように指先の力覚ポインタを制御する。
【００８７】
＜第１の実施例＞
第１の実施例では、例えば基節部及び中節部等にポインタを設定し（非力覚ポインタ）、上述したｐｒｏｘｙ法を用いて非力覚ポインタの物体への侵入量（干渉量）を取得し、指先等の力覚提示箇所に対して、基節部及び中節部等の干渉を低減させる反力を提示する。この場合、反力の大きさは、非力覚ポインタの物体への侵入量に比例させ、その方向は物体の硬さ等に影響を与えないように指先のプロクシが接している物体表面の接線方向とし、かつ該当する指のＭＰ関節、ＰＩＰ関節、又はＤＩＰ関節が伸展する方向とする。
【００８８】
＜第２の実施例＞
上述した第１の実施例では、非力覚ポインタの干渉低減のための指先の力覚提示部に与える反力の大きさを非力覚ポインタの侵入量に比例した値としたが、非力覚ポインタの干渉低減のための反力は、指先に力覚を提示するための反力とは異なり直接的に物体形状を示す力ではない。
【００８９】
そこで、第２の実施例では、非力覚ポインタの干渉低減のための反力を侵入量の大小によらず一定の値とし、非力覚ポインタの干渉低減のための反力であることを認識できるようにする。これにより、指先の力覚ポインタ（力覚提示箇所）による形状認識への影響を低減させることができる。
【００９０】
＜第３の実施例＞
上述した各実施例では、非力覚ポインタの干渉低減のための反力の提示方法を力覚ポインタ（力覚提示箇所）による反力とは異なるようにすることで、非力覚ポインタの干渉低減のための反力を認識できるようにしたが、第３の実施例では、非力覚ポインタの干渉低減の反力を提示している際に、その旨の通知を行う通知部を設けてもよい。その場合、通知手法は、光や音、振動子等うち少なくとも１つを用いることができる。通知部によりユーザに刺激を与えることで、干渉低減の反力が提示されていることを認識させることができる。
【００９１】
＜第４の実施例＞
第４の実施例では、基節部及び中節部をワイヤ等で圧迫する非接地型の力覚装置（例えば、「青木孝文，三武裕玄，長谷川晶一，佐藤誠、ワイヤによる皮膚感覚刺激を用いた指先装着型接触感提示デバイス」、日本バーチャルリアリティ学会論文誌，Ｖｏｌ．１４，Ｎｏ．３，ｐｐ．４２１−４２８，２００９」等を参照）を用いる。第４実施例では、物体への侵入量が低減して干渉が解消しているとみなせる際に、基節部及び中節部が物体に接している場合、非接地型の力覚装置により基節部及び中節部を圧迫することで物体への接触感を提示する。これにより、物体への接触感を向上させ、非力覚ポインタの干渉低減のための反力の影響を低減させることができる。
【００９２】
＜第５の実施例＞
上述した各実施例では、基節部及び中節部等にポインタを設定し、物体への侵入を計算したが、第５の実施例では、ポインタではなく手の形状を再現したモデルを作成し、作成したモデルに対して上述したｐｒｏｘｙ法を適用して物体の侵入を計算してもよい。このように、物体表面への手の接触状態をプロクシより計算することで、侵入を解消した際の指先の位置を直接取得し、その位置へ指を移動させる反力を提示して干渉を低減させることができる。
【００９３】
なお、反力の方向は、プロクシ法より計算した侵入解消時の指先の位置へ直接移動させる方向でもよい。また、力の種類等は、上述した各実施例と同様に非力覚ポインタの干渉低減のための反力であることを認識できれは、特に制限されない。
【００９４】
上述したように、本発明によれば、３次元形状をより自然に力覚で提示することができる。また、手の動作範囲を仮想物体の３次元形状により近づけることができるため、今まで困難であった"包み込み"の触探索が行えるようになり、より正確な力覚を提示することができる。なお、上述した本実施形態では、ユーザの手に対する力覚提示の例を示したが、これに限定されるものではなく、足等の部位であってもよい。
【００９５】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
【符号の説明】
【００９６】
１０  力覚提示装置
１１  力覚制御装置
１２  感覚伝達装置
１３  手位置・形状・姿勢計測装置
２１  手位置・形状・姿勢計算部
２２  手運動判定部
２３  干渉計算部（反力取得部）
２４  力覚制御情報生成部
３１  ３次元物体情報
４１  力覚提示出力制御部
４２  力覚提示部
４３  力覚提示位置検出部
４４  手掌部力覚提示制御部
４５  手掌部力覚提示部
４６  手掌部力覚提示位置検出部
５０  仮想物体
５１  手
５２  力覚提示箇所
５３  力覚非提示箇所
６０  センサ
７０  関節
８０  プロクシ
【図１】
0006499900.tif 000009
【図２】
0006499900.tif 000010
【図３】
0006499900.tif 000011
【図４】
0006499900.tif 000012
【図５】
0006499900.tif 000013
【図６】
0006499900.tif 000014
【図７】
0006499900.tif 000015
【図８】
0006499900.tif 000016
【図９】
0006499900.tif 000017
【図１０】
0006499900.tif 000018
【図１１】
0006499900.tif 000019
【図１２】
0006499900.tif 000020