(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
(実施の形態1)
以下、本発明の実施の形態1における、力覚提示装置、情報端末、力覚提示方法、及びプログラムについて、
図1〜
図8を参照しながら説明する。
【0024】
[装置構成]
最初に、
図1〜
図3を用いて、本実施の形態1における力覚提示装置及び情報端末の構成を説明する。まず、
図1を用いて、本実施の形態1における情報端末の外観構成について説明する。
図1は、本発明の実施の形態1における情報端末の外観を示す斜視図である。
【0025】
図1に示すように、本実施の形態1における情報端末100は、タブレット型の情報端末であり、後述の
図2に示すように、ユーザ110に力覚を提示する力覚提示装置を備えている。
【0026】
本実施の形態1では、情報端末100は、端末背面側(画面101が設けられた側の反対側)の空間において、ユーザ110の操作に用いる部分、具体的には、指の位置を検出することができる。このため、ユーザ110は指の位置を動かすことによって入力操作を行うことができる。
【0027】
また、情報端末100は、画面101上に、仮想空間を表示することができ、更に、ユーザ110の指に相当するオブジェクト(以下「ユーザオブジェクト」と表記する。)102を、検出された位置に合わせて仮想空間内に表示することもできる。そして、仮想空間内に配置されている仮想オブジェクト103とユーザオブジェクト102とが接触した場合は、情報端末100の力覚提示装置が、ユーザ110の指に対して、仮想オブジェクト103に触れた感触を伝達する。
【0028】
つまり、情報端末100では、ユーザ110が、指を動かしたり、仮想オブジェクト103が動いたりすることにより、ユーザ110に、仮想空間内の動作及び状態が、力覚として提示される。また、情報端末100では、その背面側の空間がユーザ110の操作空間となるので、広い範囲での3次元的な力覚の提示が可能となる。なお、
図1においては、ユーザ110の指と仮想オブジェクト103との位置関係を示すため、現実空間に存在した場合の仮想オブジェクト103が破線で示されている。
【0029】
続いて、
図2を用いて、情報端末100の内部構成について説明する。
図2は、本発明の実施の形態1における情報端末の各構成部品を示す分解斜視図である。
図2に示すように、情報端末100は、ユーザ110(
図1参照)の操作に応じて力覚を提示する力覚提示装置10と、画面上にコンテンツを表示させる表示装置20と、情報処理部40と、を備えている。
【0030】
このうち、表示装置20は、液晶表示パネル、有機ELパネルといった薄型の表示パネルである。情報処理部40は、情報端末100において必要な各種処理を行なっており、例えば、ユーザ110の操作に応じて、コンテンツの内容を変化させる。また、情報処理部40は、変化したコンテンツの内容に基づいて、ユーザ110に力覚を提示するための提示力を算出する。なお、情報処理部40における処理については、
図3を用いて後述する。
【0031】
また、
図2に示すように、力覚提示装置10は、伝達部材12と、位置検出部13と、駆動部11と、制御部14とを備えている。このうち、伝達部材12は、情報端末100からユーザ110の操作に用いる部分に引っ張り方向の力(以下、「張力」と表記する。)を伝達する部材である。ユーザの操作に用いる部分は、
図1及び
図2の例では指であり、ユーザはこの部分によって力覚の提示を受けることになる。
【0032】
位置検出部13は、ユーザ110の操作に用いる部分(
図1及び
図2の例では指)の位置を検出する。制御部14は、ユーザ10に力覚を提示するための提示力と、検出された位置とに基づいて、伝達部材12における張力を、その変動幅が設定範囲内に収まるように算出する。駆動部11は、伝達部材12において、算出された張力を発生させる。
【0033】
なお、変動幅とは、前回の算出時の値と最新の算出時の値との差をいうものとする。更に、変動幅の設定範囲は、各伝達部材の張力の変動によって、不自然な力覚が提示されない範囲であり、実験等によって適宜設定されていても良いし、後述するように関数によって制限される範囲であっても良い。
【0034】
このように、本実施の形態では、制御部14は、伝達部材12における張力が急激に変動しないように、駆動部11で発生する張力を調整している。この結果、本実施の形態によれば、張力を利用して力覚を提示する際において、引張を開始する位置に影響されることなく、即ち、
図2に示すように各伝達部材12の引張を開始する位置が同一平面上に設定されていても、適切な力覚提示を行なうことが可能となる。
【0035】
また、本実施の形態1では、制御部14は、予め、駆動部11に、設定された大きさの張力を初期力として発生させることができる。この場合、制御部14は、情報処理部40によって算出された提示力が、伝達部材12を介してユーザ110(
図2参照)に与えられるように、初期力を増加又は減少させる。なお、本発明でいう「力覚」とは、ユーザが感じる、反発力、抵抗力、外力、感触、等を意味する。
【0036】
ここで、本実施の形態1における情報端末100及び力覚提示装置10の構成について更に具体的に説明する。
図2に示すように、情報端末100は、ユーザ側から順に、枠状に形成されたカバー50と、表示装置20と、箱状の筐体51とを備えている。カバー50は、表示装置20の画面が露出するように、筐体51の開口部分に取り付けられる。
【0037】
上述した、駆動部11、制御部14、位置検出部13、及び情報処理部40は、表示装置20の背面側となる筐体51の内部に配置されている。また、
図2に示すように、本実施の形態1では、4本の伝達部材12が備えられており、これに対応して4つの駆動部11が配置されている。よって、制御部14は、伝達部材14毎に、張力を算出し、対応する駆動部11に、算出された張力を発生させる。
【0038】
本実施の形態1では、伝達部材12は、それぞれ、力覚提示装置10における、ユーザが操作において使用する空間に含まれない位置から、ユーザ110における操作に用いる部分(指)へと伸びる紐状の部材である。具体的には、各伝達部材12は、ワイヤであり、情報端末100の背面の操作空間に重ならない位置から、ユーザ110の指へと伸びている(
図1参照)。また、各伝達部材12の先端は、ユーザ110の力覚の提示を受ける部分に装着される装着部材30に固定されている。具体的には、装着部材30としては、ユーザ110の指に装着可能なリング状の部材が用いられている。
【0039】
また、本実施の形態1では、各駆動部11としては、プーリ15が軸に取り付けられたモータが用いられている。この例では、対応する伝達部材12をプーリ15で巻き取ることによって、対応する伝達部材12に張力が与えられる。
【0040】
更に、筐体50の底面には、伝達部材12毎に、通し穴16が設けられており、各伝達部材12は、通し穴16を経由して、情報端末100の背面側へと伸びる。なお、各通し穴16の位置は、上述したように操作空間に重ならない位置であれば良い。
【0041】
このように、本実施の形態1においては、4本の伝達部材12によって、装着部材30が引っ張られることによって、ユーザ110の指に、提示力に応じた力覚が提示される(
図1参照)。つまり、各駆動部11が伝達部材13に与える張力の合力によって、力覚が提示される。
【0042】
なお、本実施の形態1では、伝達部材12は、通し穴16と接触した状態で、駆動部1に引っ張られることから、「伝達部材12における引張を開始する位置」は、伝達部材12の通し穴16位置(又は通し穴16との接触位置)とみなすことができる。よって、各通し穴16が同一平面上に設けられているため、各伝達部材12における引張を開始する位置も、同一平面上に設定されることになる。
【0043】
また、本実施の形態1では、位置検出部13は、駆動部11毎に、その軸に設けられたエンコーダである。このため、位置検出部13は、ユーザの操作に用いる部分の位置を検出するためのデータ(以下、「位置検出データ」と表記する。)として、モータの軸の回転数を特定するデータを、情報処理部40に出力する。
【0044】
情報処理部40は、各位置検出部13から出力された位置検出データを受け取ると、予め登録されている、伝達部材12の全長、プーリ15の直径、プーリ15から通し穴16までの距離等に基づいて、各伝達部材12の通し穴16から装着部材30までの長さを算出する。また、情報処理部40は、後述するように、算出された各伝達部材12の長さに基づいて、ユーザ110の操作に用いる部分の位置、即ち、装着部材30の位置を算出する。更に、情報処理部40は、算出した位置を、制御部14に通知する。
【0045】
また、本実施の形態1では、制御部14及び情報処理部40は、それぞれ、マイコン等のコンピュータによって実現されている。また、両者は、それぞれ別々のコンピュータによって実現されていても良いし、同一のコンピュータによって実現されていても良い。
【0046】
図2に示すように、本実施の形態1では、駆動部11が発生した張力の伝達機構として、紐状の部材(伝達部材12)が用いられる。従って、力覚提示装置10において、構成部材の軽量化と、力覚を提示するための機構の単純化とが図られるので、情報端末100の小型軽量化が達成される。
【0047】
また、本実施の形態1では、駆動部材12による張力の伝達方向は、プーリ15及び通し穴16の位置によって、自由に設定できる。更に、伝達部材12の通し穴から装着部材30までの距離は、プーリ15での巻き取り量によって、自由に設定できる。従って、ユーザが指を動かすことのできる範囲を大きくできるので、広い範囲での3次元的な力覚の提示が可能となる。また、伝達部材12として、軽量な紐状の部材が用いられているので、ユーザは、指を動かす際に、機械的な抵抗などを感じ難いといえる。
【0048】
なお、
図17を用いて説明した特許文献1に開示された力覚提示装置では、ワイヤを引っ張るモータを空間内の上方と下方とに配置する必要があったが、
図2に示したように、本実施の形態1では、駆動部11は、筐体51の底面に平面的に配置される。このため、
図2に示す力覚提示装置10を、平面的な形状の情報端末100に実装することは、容易である。
【0049】
続いて、
図3を用いて、情報端末100でやり取りされるデータについて説明する。
図3は、本発明の実施の形態1における情報端末の構成を示すブロック図である。
【0050】
図3に示すように、情報処理部40は、表示装置20、位置検出部13、及び制御部14に接続されている。また、制御部14は、駆動部(モータ)11に接続されている。
【0051】
この構成では、ユーザ110が、装着部材30を装着した指を、情報端末100の背面側で動かすと、各位置検出部13が、位置検出データaを情報処理部40に出力する。
【0052】
情報処理部40は、各位置検出データaを受け取ると、受け取った位置検出データaに基づいて、ユーザ110の指(装着部材13)の位置を特定する。更に、情報処理部40は、特定したユーザ110の指の位置を、制御部14に通知する。
【0053】
また、情報処理部40は、ユーザ110の指の位置を特定すると、特定した位置に応じて、ユーザオブジェクト102(
図1参照)の位置を変更する。そして、情報処理部40は、コンテンツデータ41を参照し、ユーザオブジェクト102とコンテンツ内の仮想オブジェクト103とを連動させる処理を行ない、その処理内容が反映されたコンテンツの表示情報を表示データeとして表示装置20に出力する。
【0054】
コンテンツデータ41の具体例としては、ゲームプログラム、シミュレーションプログラムなどの、仮想空間を提供するアプリケーションプログラムのデータ、更にはWebサイトのデータが挙げられる。また、コンテンツデータ41は、情報端末100に備えられた記憶装置に格納されていても良いし、インターネットで接続された別の機器(コンピュータ)に格納されていても良い。
【0055】
また、このとき、情報処理部40は、ユーザオブジェクト102に仮想空間内で発生した力を算出し、算出した力を特定するデータb(以下「提示データb」と表記する。)を、制御部14に出力する。このとき算出された力は、オブジェクトに発生した反発力等であり、この力が、ユーザに力覚を提示するための力、即ち、ユーザに伝達すべき提示力に相当する。
【0056】
制御部14は、情報処理部40によって通知された位置と、提示データbによって特定される提示力とに基づいて、各伝達部材12の張力を算出する。具体的には、本実施の形態1では、制御部14は、各張力が最小となり、更に、各張力の合力と提示力との差が最小となるようにして、加えて、張力間の差が大きくなることを抑制する関数を用いて、各張力を算出する。また、このような関数を用いることにより、本実施の形態1では、各張力の変動幅は、設定範囲内に収まることになる。
【0057】
そして、制御部14は、各伝達部材12の張力を算出すると、駆動部11毎に、張力を発生させるための制御データdを生成し、これを各駆動部11に出力する。具体的には、制御部14は、電源回路(図示せず)を用いて、駆動部11として機能するモータを駆動するためのパルス信号を生成し、これを制御データdとして出力する。これにより、各駆動部(モータ)11は、算出された張力で伝達部材12を引っ張り、ユーザ110の指先には、提示データbによって特定される提示力が力覚として提示される。
【0058】
[装置動作]
次に、本実施の形態1における力覚提示装置10及び情報端末100の動作について
図4〜
図8を用いて説明する。まず、
図4を参照して力覚提示装置10及び情報端末100の全体の動作について説明する。
図4は、本発明の実施の形態1における力覚提示装置及び情報端末の動作を示すフロー図である。
【0059】
なお、以下の説明においては、適宜
図1〜
図3を参酌する。また、本実施の形態1では、力覚提示装置10を動作させることによって、力覚提示方法が実施される。よって、本実施の形態1における力覚提示方法の説明は、以下の力覚提示装置10の動作説明に代える。
【0060】
最初に、
図1に示すように、ユーザ110が、情報端末100の背面の空間において、表示装置20の画面上に表示されるコンテンツを操作しようと、指を動かすとする。これにより、
図3に示したように、位置検出部13それぞれは、位置検出データaを、情報処理部40に出力する。
【0061】
次に、
図4に示すように、情報処理部40は、出力されてきた位置検出データaに基づいて、各伝達部材12の通し穴16から装着部材30までの長さを算出し、更に、算出された各伝達部材12の長さに基づいて、ユーザ110の指の位置を特定する(S101)。ステップS101では、情報処理部40は、特定した位置を、制御部14に通知する。また、情報処理部40は、特定した位置に応じて、ユーザオブジェクト102(
図1参照)の位置を変更する。
【0062】
次に、情報処理部40は、コンテンツデータ41を参照し、ユーザオブジェクト102に仮想オブジェクト103を連動させる処理(コンテンツ連動処理)を実行する(ステップS102)。また、ステップS102では、情報処理部40は、コンテンツ連動処理の処理内容が反映されたコンテンツの表示情報を、表示データeとして表示装置20出力する。更に、ステップS102では、情報処理部40は、ユーザオブジェクト102に仮想空間内で発生した力を算出し、算出した力を特定する提示データbを、制御部14に出力する。
【0063】
次に、制御部14は、情報処理部40から提示データbを受け取ると、ステップS101で特定された位置と提示データbとを用いて、提示データbで特定される提示力(以下「目的提示力」と表記する。)を提示する上で各駆動部11が出力すべき張力を算出する(ステップS103)。また、ステップS103では、制御部14は、更に、各駆動部11によって、算出された張力が発生するように制御データdを生成し、これを各駆動部11に出力する。
【0064】
ステップS103が実行されると、力覚提示装置10は、ユーザ110の指先に、装着部材30を介して力覚を提示する(ステップS104)。また、表示装置の画面101には、ステップS102で情報処理部40が出力した表示データeに基づいて、コンテンツ連動処理後のコンテンツが表示される(ステップS105)。なお、ステップS104とステップS105とは、同時に実行されても良い。
【0065】
また、本実施の形態1においては、ステップS101〜S105は、繰り返し実行される。よって、ユーザ110が、ある位置から別の位置までを指を動かした場合は、開始から終了までの間に、ステップS101〜S105は繰り返し実行されるので、その間、ユーザ110は、連続して、力覚の提示を受けることができる。
【0066】
ここで、
図4に示したステップS101〜ステップS105までの各ステップについて、
図5〜
図8を用いて更に詳細に説明する。
【0067】
[ステップS101]
まず、
図5を用いて、
図4に示したステップS101(指位置検出処理)について説明する。
図5は、
図4に示したステップS101を説明するための図である。ステップS101の指位置検出処理では、上述したように、情報端末100の背面側において、伝達部材12の先端に接続されている装着部材30の位置が、位置検出部13が特定した伝達部材12の長さによって特定される。
【0068】
具体的には、
図5に示すように、各伝達部材12の通し穴16から装着部材30までの長さを、それぞれ、l
1、l
2、l
3、l
4とし、画面の水平方向において隣り合う通し穴間の間隔をwとし、画面の垂直方向において隣り合う通し穴間の間隔をhとする。この場合、情報処理部40は、l
1、l
2、l
3、l
4、w、及びhを用いて、装着部材12の座標(x、y、z)を幾何的に算出する。
【0069】
[ステップS102]
次に、
図1を参照しながら、
図4に示したステップS102(コンテンツ連動処理)について説明する。ステップS102のコンテンツ連動処理では、上述したように、ユーザ110の実際の指の動きに合せて、仮想空間内でユーザオブジェクト102が動き、更に、仮想空間内の仮想オブジェクト103は、ユーザオブジェクト102に連動する。
【0070】
具体的には、情報処理部40は、ユーザオブジェクト102の動きに追従して、仮想オブジェクト103を動かして、仮想空間内の仮想オブジェクトと実空間の物体(ユーザ110の指)とのインタラクション(相互作用)を取る。このとき、情報処理部40は、仮想空間内の物理シミュレータを用いて、ユーザオブジェクト102と仮想オブジェクト103とが接触した際の位置の変化及び接触力をシミュレートする。
【0071】
そして、情報処理部40は、ユーザオブジェクト102と仮想オブジェクト103との仮想空間での物理係数に応じて、接触によって両者に生じた反力を計算する。なお、物理係数としては、ユーザオブジェクト102及び仮想オブジェクト103それぞれの、質量、速度、加速度、接触方向、反発係数等が挙げられる。
【0072】
また、この計算された反力のうち、ユーザオブジェクト102が仮想オブジェクト103から受けた反力が、ユーザ110に提示すべき力覚に相当する(後述の
図6参照)。よって、ユーザオブジェクト102が仮想オブジェクト103から受けた反力を「提示力F」とすると、情報処理部40は、提示力Fが提示されるようにするため、提示力Fを特定する提示データbを制御部14に出力する。また、情報処理部40は、その際の、ユーザオブジェクト102及び仮想オブジェクト103を表示するためのデータを、表示情報である表示データeとして表示装置20に出力する。
【0073】
[ステップS103]
次に、
図6〜
図8を用いて、
図4に示したステップS103(張力の算出処理及び制御データの生成処理)について説明する。
【0074】
図6(a)は、
図4に示したステップS103を説明するための図であり、
図6(b)は、ステップS103における張力の算出処理で用いられる座標軸を示す図である。
図6(a)に示すように、目的提示力Fを提示するために必要となる各伝達部材12の張力を、それぞれ、τ
1、τ
2、τ
3、τ
4とすると、目的提示力Fは、基本的には、引張力τ
1、τ
2、τ
3、及びτ
4の合力に相当する。
【0075】
また、力覚提示装置10においては、その構造上の問題により、目的提示力Fの提示を実現できないことがある。具体的には、目的提示力Fの提示を実現できない場合としては、アクチュエータ(モータ)の出力が制限されている場合、装着部材30が、通し穴16間を線で結んで得られる領域に、その法線上において重ならない位置にある場合等がある。但し、本実施の形態においては、目的提示力Fは、あくまで目的とする提示力のことであり、実際には正確な提示が実現されていなくても良い。
【0076】
ここで、ステップS103について説明する前に、上述した特許文献1に示された数1及び数2を用いて、本実施の形態1における各伝達部材12の張力を計算する場合の問題点について説明する。本実施の形態1においては、各伝達部材12における引張の開始位置が同一平面上に設定されているため、以下の問題が発生する。
【0077】
上述した特許文献1に示された数2は、目的提示力Fと各伝達部材12の張力の合力との差を最小化し、更に、アクチュエータの消費エネルギを最適化すべく、各伝達部材12の張力の二乗和を最小化する、ことを目的とした式である。本実施の形態1における条件を数2に適用した場合は、下記の数3に示す通りとなる。
【0079】
また、上記数3において、伝達部材12の張力τ
1〜τ
4はスカラー量である。そして、Φ
iは方向ベクトルであり、
図6(b)から分かるように、下記の数4によって表すことができる。
【0081】
なお、張力τ
1〜τ
4は引張方向でしか力を提示できないため、各伝達部材12の張力の条件として、張力τ
1〜τ
4は基本的に正の値をとることとする。また、ユーザが操作を行なった際、伝達部材12であるワイヤが弛まないようにするため、各張力の最小値τ
minと張力の最大値τ
maxとの制約条件は、上記数1から、下記の数5の通りとなる。
【0083】
そして、上記数3〜数5を用いて、各伝達部材12の張力を計算した場合、各伝達部材12における引張の開始位置が同一平面上に設定されているため、目的関数Jを満たす張力の組み合わせは複数存在することになる。この点について、
図7(a)〜(c)を用いて具体的に説明する。
図7(a)は、目的提示力がF
exである場合の各伝達部材の張力を示す図であり、
図7(b)及び(c)は、
図7(a)に示す目的提示力を実現するための張力の組み合わせを示す図である。
【0084】
図7(a)の例では、ユーザの指(装着部材30)は、各伝達部材12の引張の開始位置を結んで得られる長方形状の領域の中心を通る法線上に位置している。そして、目的提示力F
exは、Z軸方向の成分のみを含んでいる。この場合においては、各張力τ
1〜τ
4をZ軸方向(法線方向)から見ると、
図7(b)及び(c)に示すように複数の組み合わせが存在する。
【0085】
具体的には、
図7(b)に示す、張力τ
1と張力τ
3とが強く、張力τ
2と張力τ
4とが弱い組み合わせ、及び
図7(c)に示す、張力τ
1と張力τ
3とが弱く、張力τ
2と張力τ
4とが強い組み合わせである。このことから、上述した特許文献1に示された数1及び数2を用いた計算方法を、本実施の形態1での各伝達部材12の張力の計算に適用した場合は、張力の組み合わせが複数存在し、解の一意性が保証されないという問題が発生する。
【0086】
従って、張力τ
1〜張力τ
4の組み合わせがどのようになるかは、ユーザの指(装着部材30)の位置、計算の順序、種々の設定条件等によっては決定されないので、各張力の計算において、特定の伝達部材12の張力の値が偏ってしまう可能性がある。そして、この状態で、ユーザの指の位置が変わる等すると、張力が偏った伝達部材12が入れ替わってしまい、各伝達部材12の張力は、急激に変化してしまうことになる。また、このことは、ユーザの指の位置、計算の順序、種々の設定条件等によって、張力τ
1〜張力τ
4の組み合わせが決定される場合であっても発生する。
【0087】
また、現実世界では、目的提示力Fが同じになるように、各張力の計算が行なわれていても、張力τ
1〜τ
4の組み合わせが変化し、特定の伝達部材において張力の急激な変化が発生すると、アクチュエータが発振してしまう可能性がある。この場合、アクチュエータの発振は、ユーザに対して、不快な振動となって伝達されてしまい、不自然な力覚が提示されてしまう。上述した特許文献1に示された数1及び数2を用いた計算方法は、
図17に示すような、ワイヤの引張の開始位置が空間的にレイアウトされている場合にのみ有効である。
【0088】
このような点から、本実施の形態1におけるステップS103では、各張力の計算において、上述した特許文献1に示された数1及び数2を用いた計算方法とは異なる計算方法が利用される。本実施の形態1では、特定の伝達部材の張力に偏りが発生しないようにするため、張力の計算にペナルティが与えられる。この結果、各張力は、ユーザの指の位置、計算の順序、種々の設定条件等に影響されることなく、連続な変化を保ち、不自然な力覚の提示が抑制される。
【0089】
つまり、本実施の形態1では、目的提示力Fと各張力の合力を最小化し、更にアクチュエータの消費エネルギを最適化するために各張力の二乗和を最小化することに加え、張力間の差が大きくなることを抑制する関数(以下「ペナルティ関数」と表記する。)が用いられる。これにより、各張力は、連続変化する様に計算され、それぞれの変動幅は、不自然な力覚が提示されない範囲内に収まることになる。
【0090】
具体的には、本実施の形態1では、各伝達部材の張力間の偏りに応じて評価値が変化するペナルティ関数が、目的関数Jに取り入れられる。そして、制御部14は、この目的関数Jを用いて、各張力を最適化する最適化計算を実行する。本実施の形態1において用いられる目的関数Jの一例を下記の数6に示す。また、本実施の形態1において用いられるペナルティ関数P
e(τ
i)の一例を下記の数7に示す。
【0093】
上記数6において、第1項目は、目的提示力Fと各伝達部材12の張力の合力との差を最小化する。第2項目のペナルティ関数は、特定の伝達部材12の張力に偏りが発生しないようにしている。なお、上記数6及び数7において使用される各変数は、上記数1〜数5と同様である。
【0094】
本実施の形態1では、このように数6及び数7が用いられ、ペナルティ関数として、張力の逆数が設定されているので、特定の伝達部材の張力が、他の伝達部材の張力と比較して、極端に小さい値を示す場合に、可能な限り均等に張力分配しようとする力が働く。この結果、解の一意性が担保される。また、各伝達部材は引張方向でしか力を発生せず、張力は負の値を取ることができず、そして、ペナルティ関数は、各張力の値が負になると、評価値が無限大をとることをペナルティとするので、張力の最適化計算を行なうに際して、制約条件を設定する必要もない。
【0095】
また、上記数6及び数7の例では、第2項目のペナルティ関数として、張力の逆数を算出する関数が用いられているが、本実施の形態1では、ペナルティ関数は、張力間の差の大きさに応じて評価値に差がでるようにする関数であれば良い。他のペナルティ関数の例としては、各伝達部材の張力を二乗して得られた値の逆数を用いる関数、各伝達部材の張力の値に応じて評価値を単調減少させる関数等が挙げられる。
【0096】
更に、本実施の形態1では、上記数6以外の目的関数を用いることもできる。本実施の形態1において用いられる目的関数Jの他の例を下記の数8に示す。
【0098】
上記数8においては、第1項目及び第2項目は、上記数6の第1項目及び第2項目と同様であるが、新たに、各アクチュエータの張力の線形二乗和を表す第3項目が追加されている。このため、目的関数として上記数8が用いられる場合は、各アクチュエータにおける消費エネルギが最適化される。なお、上記数8において使用される各変数も、上記数1〜数5と同様である。
【0099】
ここで、
図8を用いて、上記数8に示す目的関数について、より詳細に説明を行なう。
図8は、本発明の実施の形態で用いられる目的関数における変化を説明する図である。
【0100】
図8に示すように、上記数8に示す目的関数Jにおいて、第3項目の最適化の関数は、消費エネルギを最適化するために、特定の伝達部材の張力τ
iが小さくなろうとすると、目的関数Jの評価値を低くして、全体の張力も小さくなるように働く。但し、第3項目の最適化の関数によって、張力の偏りが抑制されるわけではない。一方、第2項目のペナルティ関数は、張力の組み合わせ結果によって、特定の伝達部材の張力τ
iのみが小さくなろうとすると、目的関数Jの評価値を高くして、特定の伝達部材の張力τ
iのみが極端に小さくなることを防ぎ、張力の偏りを抑制する。この結果、上述したように、張力の連続な変化が保たれ、不自然な力覚の提示が抑制される。
【0101】
また、上記数8においては、第3項目の最適化の関数として、各張力の線形二乗和を算出する関数が用いられているが、本実施の形態1では、第3項目は、消費エネルギの最適化を評価する関数であれば良い。
【0102】
[プログラム]
本実施の形態1におけるプログラムは、コンピュータに、
図4に示すステップS103を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1における力覚提示装置10と力覚提示方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、制御部14として機能し、処理を行なう。
【0103】
また、力覚提示装置10を実現可能なコンピュータは、特に限定されず、上述したマイコンであっても良いし、汎用のパーソナルコンピュータであっても良い。更に、力覚提示装置10を実現可能なコンピュータは、携帯電話、スマートフォン、又はタブレット型の情報端末に備えられているコンピュータであっても良い。
【0104】
また、本実施の形態1におけるプログラムは、コンピュータ読み取り可能な記録媒体に記録された状態で提供されても良いし、インターネット介して送信されても良い。なお、記録媒体の具体例としては、CF(Compact Flash)及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
【0105】
(実施の形態2)
次に、本発明の実施の形態2における、力覚提示装置、情報端末、力覚提示方法、及びプログラムについて、
図9を参照しながら説明する。
【0106】
[装置構成]
まず、本実施の形態2において、力覚提示装置及び情報端末は、制御部における処理の点で、実施の形態1と異なるが、それ以外の点では、実施の形態1と同様である。よって、本実施の形態2における力覚提示装置及び情報端末は、
図1〜
図3に示した実施の形態1における力覚提示装置及び情報端末と同様に構成されているので、以下の説明では、適宜
図1〜
図3を参酌する。また、以下においては、相違点を中心に説明する。
【0107】
本実施の形態2においては、制御部14(
図2及び
図3参照)は、各張力が最小となり、更に、各張力の合力と目的提示力Fとの差が最小となるようにして、加えて、特定の伝達部材の利用を優先させる関数を用いることによって、各張力を算出する。また、これにより、本実施の形態2においても、各張力の変動幅は設定範囲内に収まることになる。
【0108】
即ち、本実施の形態2では、必ず特定の伝達部材12に張力の偏りが存在するように、プライオリティが与えられる。この結果、各張力は、ユーザの指の位置、計算の順序、種々の設定条件等に影響されることなく、連続な変化を保つので、ユーザに対して不快となる振動の発生は抑制され、不自然な力覚の提示も抑制される。
【0109】
[装置動作]
次に、本実施の形態2における力覚提示装置及び情報端末の動作について
図9を用いて説明する。
図9は、本発明の実施の形態2における力覚提示装置及び情報端末の動作を示すフロー図である。また、本実施の形態2でも、力覚提示装置を動作させることによって、力覚提示方法が実施される。よって、本実施の形態2における力覚提示方法の説明は、以下の力覚提示装置の動作説明に代える。
【0110】
最初に、
図1に示すように、ユーザ110が、情報端末100の背面の空間において、表示装置20の画面上に表示されるコンテンツを操作しようと、指を動かすとする。これにより、
図3に示したように、位置検出部13それぞれは、位置検出データaを、情報処理部40に出力する。
【0111】
次に、
図9に示すように、情報処理部40は、出力されてきた位置検出データaに基づいて、各伝達部材12の通し穴16から装着部材30までの長さを算出し、更に、算出された各伝達部材12の長さに基づいて、ユーザ110の指の位置を特定する(S201)。ステップS201は、
図4に示したステップS101と同様のステップである。
【0112】
次に、情報処理部40は、コンテンツデータ41を参照し、ユーザオブジェクト102に仮想オブジェクト103を連動させる処理(コンテンツ連動処理)を実行する(ステップS202)。ステップS202は、
図4に示したステップS102と同様のステップであり、情報処理部40は、表示装置20に表示データeを出力し、制御部14に提示データbを出力する。
【0113】
次に、制御部14は、情報処理部40から提示データbを受け取ると、ステップS201で特定された位置と提示データbとを用いて、各駆動部11が出力すべき張力を算出する(ステップS203)。また、ステップS203では、制御部14は、更に、各駆動部11によって、算出された張力が発生するように制御データdを生成し、これを各駆動部11に出力する。
【0114】
このように、ステップS203においても、
図4に示したステップS101と同様に、各伝達部材の張力が算出されるが、ステップS203は、張力の計算方法の点で、ステップS103と異なっている。
【0115】
即ち、
図4に示したステップS103では、各伝達部材12の張力に偏りが生じないように張力分配計算が行なわれていたのに対して、本実施の形態2におけるステップS203では、各伝達部材12の張力に特定の偏りが生じるように張力分配計算が行なわれる。
【0116】
具体的には、本実施の形態2では、特定の伝達部材12の利用を優先させる関数(以下、「プライオリティ関数」と表記する。)が、目的関数Jに取り入れる。そして、制御部14は、この目的関数Jを用いて、各張力を最適化する最適化計算を実行する。本実施の形態2において用いられる目的関数Jの一例を下記の数9に示す。また、本実施の形態2において用いられるプライオリティ関数P
r(τ
i)を下記の数10に示す。
【0119】
上記数9において、第1項目は、目的提示力Fと各伝達部材12の張力の合力との差を最小化し、第2項目は、各アクチュエータの線形二乗和を目的関数に取り入れることで消費エネルギを最適化する。また、第3項目のプライオリティ関数は、特定の伝達部材12が優先的に使われるようにしている。なお、上記数9及び数10においても、使用される各変数は、上記数1〜数5と同様である。
【0120】
本実施の形態2では、このように、数9及び数10が用いられ、プライオリティ関数として、張力τ
1〜τ
4に定数iを組み合わせた関数が用いられている。このため、張力τ
4を活用すると、最も目的関数Jの評価値が高くなってしまうので、制御部14は、張力τ
1の伝達部材12、張力τ
2の伝達部材12、張力τ
3の伝達部材12、張力τ
4の伝達部材12の順で、張力τ
1の伝達部材12を最も優先させて使用することになる。
【0121】
また、上述の例では、第3項目のプライオリティ関数として、張力τにその添え字を定数として組み合わせた関数が設定され、τ
1、τ
2、τ
3、τ
4の順に優先度が設定されている。但し、本実施の形態2では、プライオリティ関数が設定する優先順位はこの例に限定されるものではない。本実施の形態2においては、プライオリティ関数は、特定の伝達部材12を優先的に使用する関数であれば良く、上記数10に限定されるものではない。
【0122】
例えば、本実施の形態2においては、プライオリティ関数として、下記の数11に示す関数を用いることもできる。下記の数11に示す関数を用いた場合は、張力τ
1を活用すると、最も目的関数Jの評価値が高くなってしまう。よって、制御部14は、張力τ
4の伝達部材12、張力τ
3の伝達部材12、張力τ
2の伝達部材12、張力τ
1の伝達部材12の順で、張力τ
4の伝達部材12を最も優先させて使用することになる。この結果、各張力の連続な変化が保たれ、不自然な力覚の提示が抑制される。
【0124】
その他、プライオリティ関数としては、数10において、iの2乗を係数とした関数、同じく数10において、単なる数字の列(1,4,3,2)で構成された定数を係数とした関数、等も挙げられる。
【0125】
ステップS203が実行されると、力覚提示装置10は、ユーザ110の指先に、装着部材30を介して力覚を提示する(ステップS204)。また、表示装置の画面101には、ステップS202で情報処理部40が出力した表示データeに基づいて、コンテンツ連動処理後のコンテンツが表示される(ステップS205)。ステップS204及びS205は、それぞれ、ステップS104及びステップS105と同様のステップである。
【0126】
また、本実施の形態2においても、ステップS201〜S205は、繰り返し実行される。よって、ユーザ110が、ある位置から別の位置までを指を動かした場合は、開始から終了までの間に、ステップS201〜S205は繰り返し実行されるので、その間、ユーザ110は、連続して、力覚の提示を受けることができる。
【0127】
[プログラム]
本実施の形態2におけるプログラムは、コンピュータに、
図9に示すステップS203を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2における力覚提示装置と力覚提示方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、制御部14として機能し、処理を行なう。
【0128】
また、本実施の形態2においても、力覚提示装置を実現可能なコンピュータとしては、実施の形態1で述べたものが挙げられる。更に、本実施の形態2におけるプログラムも、実施の形態1と同様に、コンピュータ読み取り可能な記録媒体に記録された状態で提供されても良いし、インターネット介して送信されても良い。
【0129】
(実施の形態3)
次に、本発明の実施の形態3における、力覚提示装置、情報端末、力覚提示方法、及びプログラムについて、
図10を参照しながら説明する。
【0130】
[装置構成]
まず、本実施の形態3においても、力覚提示装置及び情報端末は、制御部における処理の点で、実施の形態1と異なるが、それ以外の点では、実施の形態1と同様である。よって、本実施の形態3における力覚提示装置及び情報端末も、
図1〜
図3に示した実施の形態1における力覚提示装置及び情報端末と同様に構成されているので、以下の説明では、適宜
図1〜
図3を参酌する。また、以下においては、相違点を中心に説明する。
【0131】
本実施の形態3においては、制御部14(
図2及び
図3参照)は、各張力が最小となり、更に、各張力の合力と目的提示力Fとの差が最小となるようにして、加えて、各張力の変化の度合いを抑制する計算処理を行なうことによって、各張力を算出する。また、これにより、本実施の形態3においても、各張力の変動幅は設定範囲内に収まることになる。
【0132】
即ち、本実施の形態3では、実施の形態1及び2のように関数を用いた張力調整は行なわれないが、各伝達部材12の張力が急激な変化をしないように制御が行なわれる。この結果、本実施の形態3においても、各張力は、ユーザの指の位置、計算の順序、種々の設定条件等に影響されることなく、連続な変化を保つので、ユーザに対して不快となる振動の発生は抑制され、不自然な力覚の提示も抑制される。
【0133】
[装置動作]
次に、本実施の形態3における力覚提示装置及び情報端末の動作について
図10を用いて説明する。
図10は、本発明の実施の形態3における力覚提示装置及び情報端末の動作を示すフロー図である。また、本実施の形態3でも、力覚提示装置を動作させることによって、力覚提示方法が実施される。よって、本実施の形態3における力覚提示方法の説明は、以下の力覚提示装置の動作説明に代える。
【0134】
最初に、
図1に示すように、ユーザ110が、情報端末100の背面の空間において、表示装置20の画面上に表示されるコンテンツを操作しようと、指を動かすとする。これにより、
図3に示したように、位置検出部13それぞれは、位置検出データaを、情報処理部40に出力する。
【0135】
次に、
図10に示すように、情報処理部40は、出力されてきた位置検出データaに基づいて、各伝達部材12の通し穴16から装着部材30までの長さを算出し、更に、算出された各伝達部材12の長さに基づいて、ユーザ110の指の位置を特定する(S301)。ステップS301は、
図4に示したステップS101と同様のステップである。
【0136】
次に、情報処理部40は、コンテンツデータ41を参照し、ユーザオブジェクト102に仮想オブジェクト103を連動させる処理(コンテンツ連動処理)を実行する(ステップS202)。ステップS302は、
図4に示したステップS102と同様のステップであり、情報処理部40は、表示装置20に表示データeを出力し、制御部14に提示データbを出力する。
【0137】
次に、制御部14は、情報処理部40から提示データbを受け取ると、ステップS301で特定された位置と提示データbとを用いて、各駆動部11が出力すべき張力を算出する(ステップS303)。また、ステップS303では、制御部14は、更に、各駆動部11によって、算出された張力が発生するように制御データdを生成し、これを各駆動部11に出力する。
【0138】
このように、ステップS303においても、
図4に示したステップS101と同様に、各伝達部材の張力が算出されるが、ステップS303は、張力の計算方法の点で、ステップS103と異なっている。
【0139】
即ち、
図4に示したステップS103では、各伝達部材12の張力に偏りが生じないように張力分配計算が行なわれていたのに対して、本発明の実施の形態3におけるステップS303では、各伝達部材12の張力の変化の度合いを抑制する計算処理が行なわれる。
【0140】
具体的には、制御部14は、先ず、上記数3〜
図5を用いて各伝達部材12の仮の張力を計算する。次に、制御部14は、伝達部材12毎に、時系列データとして、計算された仮の張力と、それ以前に計算された張力とを用いて、移動平均を算出し、算出した移動平均を、その時点での張力とする。この結果、特定の張力が急激に変化する事態が回避され、各張力の変化は滑らかな曲線となり、不自然な力覚の提示が抑制される。
【0141】
ステップS303が実行されると、力覚提示装置10は、ユーザ110の指先に、装着部材30を介して力覚を提示する(ステップS304)。また、表示装置の画面101には、ステップS202で情報処理部40が出力した表示データeに基づいて、コンテンツ連動処理後のコンテンツが表示される(ステップS305)。ステップS304及びS305は、それぞれ、ステップS104及びステップS105と同様のステップである。
【0142】
また、本実施の形態2においても、ステップS301〜S305は、繰り返し実行される。よって、ユーザ110が、ある位置から別の位置までを指を動かした場合は、開始から終了までの間に、ステップS301〜S305は繰り返し実行されるので、その間、ユーザ110は、連続して、力覚の提示を受けることができる。
【0143】
[プログラム]
本実施の形態2におけるプログラムは、コンピュータに、
図10に示すステップS303を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態3における力覚提示装置と力覚提示方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、制御部14として機能し、処理を行なう。
【0144】
また、本実施の形態3においても、力覚提示装置を実現可能なコンピュータとしては、実施の形態1で述べたものが挙げられる。更に、本実施の形態2におけるプログラムも、実施の形態1と同様に、コンピュータ読み取り可能な記録媒体に記録された状態で提供されても良いし、インターネット介して送信されても良い。
【0145】
(変形例)
続いて、本実施の形態1〜3における変形例について説明する。また、以下の説明では、適宜、
図1〜
図10を参酌する。
【0146】
[変形例1]
実施の形態1〜3に示した例では、伝達部材12は4本であるが、伝達部材12の数は4本以上であれば、特に限定されるものではない。伝達部材12の数は、情報端末100を大型化させない範囲で設定されていれば良い。
【0147】
[変形例2]
実施の形態1〜3に示した例では、駆動部11としてモータが用いられているが、駆動部はモータに限定されない。駆動部11は、駆動部材を引っ張ることが可能なアクチュエータであれば良く、駆動部11としては、他に、伸張動作を行なう人工筋肉アクチュエータ、繊維状の形状記憶合金アクチュエータ、などが挙げられる。
【0148】
[変形例3]
実施の形態1〜3に示した例では、位置検出部13として、伝達部材の長さを特定するエンコーダが用いられているが、位置検出部13は、エンコーダ以外であっても良い。例えば、位置検出部13としては、情報端末の背面に設置されたカメラを用いることができる。この場合は、装着部材30の位置が光学的に検出される。また、位置検出部13として、情報端末の背面に設置された磁気センサを用いることができる。この場合は、磁気を発する材料で装着部材30を形成することによって、装着部材30の位置検出が可能となる。
【0149】
[変形例4]
実施の形態1〜3に示した例では、
図5に示したように、伝達部材12を引張し始める位置である通し穴16の位置は、縦方向をh、横方向をwとした長方形の頂点位置に設定されているが、通し穴16の位置は特に限定されるものではない。各通し穴16の位置は、操作空間(4本の伝達部材12で構成される四角錐状の空間)の外であれば良く、上述の長方形以外の四角形の頂点位置に設定されていても良い。
【0150】
また、全ての通し穴16は、同一平面内に配置されていなくても良い。通し穴16の位置は、情報端末又は力覚提示装置が平面的な形状を有するのであれば、装置の厚みが許す範囲で適宜設定されていれば良い。よって、各通し穴16が厳密には同一平面上に設けられていなくても、装置の厚みの範囲内に位置しているのであれば、「各伝達部材12の引張を開始する位置は同一平面上に設定されている」とみなすことができる。よって、例えば、各通し穴16が、曲面で形成された筐体51の底面に形成されていても、これらが情報端末100の厚みの範囲内に位置しているのであれば、この場合も「各伝達部材12の引張を開始する位置が同一平面上に設定されている」とみなすことができる。
【0151】
[変形例5]
更に、実施の形態1〜3に示した例では、力覚提示装置10は、情報端末100の内部に組み込まれているが、この例に限定されるものではない。力覚提示装置は、アタッチメントとして、既存の情報端末に後付け可能な装置であっても良い。
【0152】
[変形例6]
また、実施の形態1〜3に示した例では、情報端末100の背面側を操作空間にして、力覚が提示されているが、これに限定されるものではない。例えば、情報端末100の画面側の空間が操作空間となっていても良い。
【0153】
[変形例7]
続いて、
図11〜
図15を用いて、変形例7について説明する。
図11は、本発明の実施の形態の変形例7における情報端末の外観構成を示す図である。
図12は、本発明の実施の形態の変形例7における情報端末の使用例を示す図である。
図13は、
図11に示す情報端末及び力覚提示装置の構成を示すブロック図である。
【0154】
図11に示すように、本例では、情報端末120は、背面側の空間を撮影可能なデジタルカメラ70を備えている。このため、情報端末120では、デジタルカメラ70によって撮影された実物の画像と、実空間内での動作である指の動きとを連動させることができる。
【0155】
例えば、
図12に示すように、ユーザが、情報端末120の背面のデジタルカメラ70によって、ユーザ110の遠方にある広告71を撮影したとする。この場合、広告71はユーザの手の届かない位置にあり、ユーザ110は、実際には、広告71に触れることができないが、力覚提示装置によって指に提示された力覚により、遠方にある広告71に触ったことを感じることができる。また、このとき、ユーザが、広告71に記載のテキストを触ったことが、力覚によって伝達できるようになっていれば、ユーザは、テキスト情報を確実に選択することができるので、実世界からの情報収集が容易なものとなる。
【0156】
また、
図13に示すように、デジタルカメラ70で撮影された映像は、情報処理部40へと送られる。そして、情報処理部40は、実施の形態1〜3と異なり、デジタルカメラ70で撮影された映像を対象にして、コンテンツ連動処理を実行する。なお、情報端末120は、デジタルカメラ70を備えている点以外については、
図3に示した情報端末100と同様に構成されている。
【0157】
このように、本例では、実世界のものを取り込むことができ、ユーザは、それに触れることができる。また、本例は、
図12に示した遠方のものを対象とする場合に限らず、例えば、危険であるために実際は触れることができない大型の肉食獣等を対象とする場合にも有効である。
【0158】
また、情報端末120の背面にデジタルカメラ70が備えられている場合においては、情報端末120は、デジタルカメラ70で撮影された実空間の映像に、AR(Augmented Reality)コンテンツを重畳的に表示させることもできる。更に、この場合においては、情報端末120は、ユーザがARコンテンツを触ったことを検出すると、それに合せて、ユーザに力覚を提示することもできる。
【0159】
また、デジタルカメラ70は、情報端末の画面側(前面側)の空間を撮影可能なように設置されていても良い。この場合は、表示装置に表示される仮想空間の状態を、ユーザの動きと連動させることができる。この例について、
図14及び
図15を用いて説明する。
【0160】
図14(a)及び
図15(a)は、本発明の実施の形態の変形例7の他の態様での画面の一例を示す図であり、
図14(b)及び
図15(b)は、画面とユーザの顔の向きとの関係を示す図である。
【0161】
図14及び
図15の例では、仮想空間内に、仮想的なユーザインタフェースとして、仮想のタッチパネル31と仮想のキーボード32とが配置されている。ユーザは、情報端末の背面側で指を動かすことで、情報端末の背面にある仮想のタッチパネル31及び仮想のキーボード32をあたかも操作しているような感触を得ることができる。
【0162】
但し、
図14(a)及び(b)、
図15(a)及び(b)に示すように、本態様では、情報端末120は、画面側のデジタルカメラ70によって、ユーザの顔の向きを検出している。このため、情報端末120は、ユーザが画面を見る方向を変えると、それに合せて、画面に表示されるコンテンツの見え方を変化させることができる。本変形例を採用した場合は、ユーザの視点に合わせて表示を変化させることができるので、仮想空間をより効果的に利用することができる。
【0163】
(応用例)
続いて、本実施の形態1〜3の応用例について説明する。また、以下の説明では、適宜、
図1〜
図10を参酌する。
【0164】
[応用例1]
実施の形態1〜3に示した例では、力覚提示装置は、タブレット状の情報端末に適用されているが、これに限定されるものではない。例えば、
図16に示すように、力覚提示装置は、ユーザの顔面に装着されるヘッドマウントディスプレイ60に組み込まれていても良い。
【0165】
図16は、実施の形態1〜3のいずれかの力覚提示装置を備えたヘットマウントディスプレイの一例を示す図である。
図16の例では、ユーザは、ヘッドマウントディスプレイ60内側の表示パネル(
図16において図示せず)に映し出されているコンテンツを見ながら、ヘッドマウントディスプレイ60の前方で、装着部材30を装着した指を動かすことで、触った感覚を感じることができる。
【0166】
[応用例2]
加えて、実施の形態1〜3に示した例では、力覚が提示なされるコンテンツの例として、実空間にあるユーザの指と画面に表示される仮想オブジェクトとを連動させる例が示されているが、コンテンツは、これに限定されるものではない。他のコンテンツの例としては、
図14及び
図15に示した、仮想空間内に、仮想的なユーザインタフェースとして、仮想のタッチパネル31と仮想のキーボード32とが配置された例が挙げられる。この場合、ユーザは、情報端末の背面側で指を動かすことで、情報端末の背面にある仮想のタッチパネル31及び仮想のキーボード32をあたかも操作しているような感触を得ることができる。
【0167】
[応用例3]
また、実施の形態1〜3は、コンテンツがナビゲーションである場合にも適用できる。つまり、力覚提示装置をナビゲーション装置に適用することで、ユーザにナビゲーションする方向を力覚によって提示することができる。
【0168】
この場合、ユーザは、進むべき方向が画面に表示される場合よりも、進むべき方向を確実に把握できる。また、この場合において、画面をスクロールする際の画面の動きに連動させ力覚を提示することで、より実体感をユーザに与えた操作が可能になる。
【0169】
[応用例4]
また、実施の形態1〜3における力覚提示装置は、スクロールする画面の動きに連動した力覚を提示することで、より実体的な操作感をユーザに提供できる。例えば、画面のスクロールにおいて、これ以上の情報が無くてスクロールができない場合に、表示画面をスクロール方向においてバウンドさせてスクロールできないことを知らせる表示方法が知られている。この表示方法が採用される場合に、表示画面のバウンドに連動して力覚が提示されるようにすれば、ユーザは、より実体的に、情報を素早く正確に受け取ることが可能になる。
【0170】
[応用例5]
実施の形態1〜3における力覚提示装置は、表示されているコンテンツがwebサイトである場合において、タッチしている指の下にLinkボタン等があることを力覚により提示することができる。この場合、ユーザは、表示情報だけでは得にくい情報を受け取ることができる。更に、力覚提示装置は、Link先に有害なサイトが含まれる場合は、ユーザがLinkボタンを押しにくくなるように、力覚の提示によって警告を行なうこともできる。
【0171】
[応用例5]
実施の形態1〜3における力覚提示装置は、仮想のオブジェクト(仮想物体)との連動に限らず、マスタ・スレーブのロボットアームなどの入力操作の動作反応に利用可能である。例えば、ユーザが画面を見ながらロボットアームを遠隔操作して実物体を操作する場合において、力覚提示装置は、障害物に接触したことの反応、障害物に接触する前の警告等として、力覚を提示することができる。この場合、ユーザは、より安全で正確に、ロボットアームを操作することができる。
【0172】
[応用例6]
実施の形態1〜3における力覚提示装置は、触地図などの状態把握に利用可能である。つまり、力覚提示装置は、視覚障がい者における地図把握として利用できる。また、一般ユーザが3D迷路等において壁及び道順を理解する際に、力覚提示装置によって、壁及び道に対応する力覚を提示させれば、ユーザにおける形状及び状態の把握が容易となる。
【0173】
[応用例7]
実施の形態1〜3における力覚提示装置は、文字学習における漢字書き順の情報提示に利用可能である。子どもが漢字学習における文字の書く順番理解のため、力覚提示装置によって、書き順序、とび、はね等が不正確であるときに、正しい入力方向以外の入力に抵抗力を力覚として提示すれば良い。力覚提示装置は、文字学習の補助に有用である。
【0174】
[応用例8]
実施の形態1〜3における力覚提示装置は、ピアノなどの楽器操作のシミュレーション、手術のシミュレーション、粘土造形のシミュレーションにおいて、フィードバック装置として利用可能である。つまり、力覚提示装置は、機器使用の事前学習、エンタテイメントのひとつとして、入力に対する機器のフィードバックとして力覚提示をすることができる。
【0175】
[応用例9]
実施の形態1〜3における力覚提示装置は、Webサイト及びテレビといった実店舗以外での商品の購入において、商品の状態認識に利用可能である。実店舗での商品購入と異なり、Webサイト及びテレビでの商品購入においては、商品の実感が問題となる。このため、力覚提示装置を利用すれば、ユーザは、商品に触った際の触覚情報を得る事が出来るので、より商品を理解したうえで購入を行なうことができる。
【0176】
[応用例10]
実施の形態1〜3における力覚提示装置は、錯視絵の理解などエンタテイメントとして利用可能である。この場合、力覚提示装置は、視覚情報と一致しない力覚を提示情報としてユーザに与えることにより、ユーザに違和感を提示する。例えば Maurits CornelisEscher作の螺旋階段が続く錯視絵は、実物としては触ることができないが、力覚提示装置を用いれば、仮想空間内の物体の感触を提示できるので、ユーザは、錯視絵に触れることもできる。
【0177】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記25)によって表現することができるが、以下の記載に限定されるものではない。
【0178】
(付記1)
ユーザの操作に応じて力覚を提示するための装置であって、
当該装置から前記ユーザの操作に用いる部分に引張方向の力を伝達する、伝達部材と、
前記ユーザの操作に用いる部分の位置を検出する、位置検出部と、
前記ユーザに力覚を提示するための提示力と、検出された前記位置とに基づいて、前記伝達部材における前記引張方向の力を、その変動幅が設定範囲内に収まるように算出する、制御部と、
前記伝達部材において、算出された前記引張方向の力を発生させる、駆動部と、
を備えている、
ことを特徴とする力覚提示装置。
【0179】
(付記2)
複数の前記伝達部材が備えられており、
複数の前記伝達部材それぞれは、当該装置における、前記ユーザが操作において使用する空間に含まれない位置から、前記ユーザの操作に用いる部分へと伸びる、紐状の部材であり、
前記制御部は、前記複数の前記伝達部材それぞれ毎に、前記引張方向の力を算出し、
前記駆動部は、前記複数の前記伝達部材それぞれ毎に、算出された前記引張方向の力を発生させる
付記1に記載の力覚提示装置。
【0180】
(付記3)
前記伝達部材となる前記紐状の部材が4本以上備えられており、
複数の前記伝達部材それぞれにおける、引張を開始する位置が、同一平面上に設定されている、
付記2に記載の力覚提示装置。
【0181】
(付記4)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、前記引張方向の力それぞれの間の差が大きくなることを抑制する関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記2または3に記載の力覚提示装置。
【0182】
(付記5)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、特定の前記伝達部材の利用を優先させる関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記2または3に記載の力覚提示装置。
【0183】
(付記6)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となり、加えて、前記引張方向の力それぞれの変化の度合いを抑制する計算処理を行なって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記2または3に記載の力覚提示装置。
【0184】
(付記7)
当該力覚提示装置が、ヘットマウントディスプレイに組み込まれている、付記1〜6のいずれかに記載の力覚提示装置。
【0185】
(付記8)
画面に表示されたコンテンツの内容に応じてユーザに力覚を提示可能な情報端末であって、
前記コンテンツを表示させる、表示装置と、
ユーザの操作に応じて前記コンテンツの内容を変化させ、変化した前記コンテンツの内容に基づいて、力覚を提示するための提示力を算出する、情報処理部と、
ユーザの操作に応じて力覚を提示する、力覚提示装置と、を備え、
前記力覚提示装置は、
当該情報端末から前記ユーザの操作に用いる部分に引張方向の力を伝達する、伝達部材と、
前記ユーザの操作に用いる部分の位置を検出する、位置検出部と、
前記情報処理部によって算出された提示力と、検出された前記位置とに基づいて、前記伝達部材における前記引張方向の力を、その変動幅が設定範囲内に収まるように算出する、制御部と、
前記伝達部材において、算出された前記引張方向の力を発生させる、駆動部と、
を備えている、
ことを特徴とする情報端末。
【0186】
(付記9)
複数の前記伝達部材が備えられており、
複数の前記伝達部材それぞれは、当該装置における、前記ユーザが操作において使用する空間に含まれない位置から、前記ユーザの操作に用いる部分へと伸びる、紐状の部材であり、
前記制御部は、前記複数の前記伝達部材それぞれ毎に、前記引張方向の力を算出し、
前記駆動部は、前記複数の前記伝達部材それぞれ毎に、算出された前記引張方向の力を発生させる
付記8に記載の情報端末。
【0187】
(付記10)
前記伝達部材となる前記紐状の部材が4本以上備えられており、
複数の前記伝達部材それぞれにおける、引張を開始する位置が、同一平面上に設定されている、
付記9に記載の情報端末。
【0188】
(付記11)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、前記引張方向の力それぞれの間の差が大きくなることを抑制する関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記9または10に記載の情報端末。
【0189】
(付記12)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、特定の前記伝達部材の利用を優先させる関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記9または10に記載の情報端末。
【0190】
(付記13)
前記制御部は、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となり、加えて、前記引張方向の力それぞれの変化の度合いを抑制する計算処理を行なって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記9または10に記載の情報端末。
【0191】
(付記14)
ユーザの操作に応じて力覚を提示するための方法であって、
当該装置から前記ユーザの操作に用いる部分に引張方向の力を伝達する、伝達部材と、前記ユーザの操作に用いる部分の位置を検出する、位置検出部と、前記伝達部材において、前記引張方向の力を発生させる、駆動部と、を備える装置を用い、
(a)前記ユーザに力覚を提示するための提示力と、検出された前記位置とに基づいて、前記伝達部材における前記引張方向の力を、その変動幅が設定範囲内に収まるように算出する、ステップと、
(b)前記駆動部に、算出した前記引張方向の力を発生させる、ステップと、
を実行する、
ことを特徴とする力覚提示方法。
【0192】
(付記15)
複数の前記伝達部材が備えられており、
複数の前記伝達部材それぞれは、当該装置における、前記ユーザが操作において使用する空間に含まれない位置から、前記ユーザの操作に用いる部分へと伸びる、紐状の部材であり、
前記(a)のステップにおいて、前記複数の前記伝達部材それぞれ毎に、前記引張方向の力を算出し、
前記(b)のステップにおいて、前記複数の前記伝達部材それぞれ毎に、算出された前記引張方向の力を発生させる
付記14に記載の力覚提示方法。
【0193】
(付記16)
前記伝達部材となる前記紐状の部材が4本以上備えられており、
複数の前記伝達部材それぞれにおける、引張を開始する位置が、同一平面上に設定されている、
付記15に記載の力覚提示方法。
【0194】
(付記17)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、前記引張方向の力それぞれの間の差が大きくなることを抑制する関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記15または16に記載の力覚提示方法。
【0195】
(付記18)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、特定の前記伝達部材の利用を優先させる関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記15または16に記載の力覚提示方法。
【0196】
(付記19)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となり、加えて、前記引張方向の力それぞれの変化の度合いを抑制する計算処理を行なって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記15または16に記載の力覚提示方法。
【0197】
(付記20)
ユーザの操作に応じて力覚を提示するため、
コンピュータと、前記コンピュータから前記ユーザの操作に用いる部分に引張方向の力を伝達する、伝達部材と、前記ユーザの操作に用いる部分の位置を検出する、位置検出部と、前記伝達部材において、前記引張方向の力を発生させる、駆動部と、を備える装置において、
前記コンピュータに、
(a)前記ユーザに力覚を提示するための提示力と、検出された前記位置とに基づいて、前記伝達部材における前記引張方向の力を、その変動幅が設定範囲内に収まるように算出する、ステップと、
(b)前記駆動部に、算出した前記引張方向の力を発生させる、ステップと、
を実行させる、プログラム。
【0198】
(付記21)
複数の前記伝達部材が備えられており、
複数の前記伝達部材それぞれは、当該装置における、前記ユーザが操作において使用する空間に含まれない位置から、前記ユーザの操作に用いる部分へと伸びる、紐状の部材であり、
前記(a)のステップにおいて、前記複数の前記伝達部材それぞれ毎に、前記引張方向の力を算出し、
前記(b)のステップにおいて、前記複数の前記伝達部材それぞれ毎に、算出された前記引張方向の力を発生させる
付記20に記載のプログラム。
【0199】
(付記22)
前記伝達部材となる前記紐状の部材が4本以上備えられており、
複数の前記伝達部材それぞれにおける、引張を開始する位置が、同一平面上に設定されている、
付記21に記載のプログラム。
【0200】
(付記23)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、前記引張方向の力それぞれの間の差が大きくなることを抑制する関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記21または22に記載のプログラム。
【0201】
(付記24)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となるようにして、加えて、特定の前記伝達部材の利用を優先させる関数を用いることによって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記21または22に記載のプログラム。
【0202】
(付記25)
前記(a)のステップにおいて、前記引張方向の力それぞれが最小となり、更に、前記引張方向の力の合力と前記提示力との差が最小となり、加えて、前記引張方向の力それぞれの変化の度合いを抑制する計算処理を行なって、前記引張方向の力それぞれを、それぞれの変動幅が設定範囲内に収まるように算出する、
付記21または22に記載のプログラム。