(57)【要約】【課題】仮想物体に接触したときに仮想物体の硬さに応じた手ごたえをオペレータに感じさせる。【解決手段】コンピュータは、操作力ｆの方向が仮想物体の外側に向かっているか内側に向かっているかを判定する（ステップＳ８）。内側に向かっているときは、コンピュータは、操作力ｆを考慮した仮の指先位置を示す指先目標位置ｘｄを計算し、この指先目標位置ｘｄに最も近い仮想物体表面上の点（最近点）の位置を指先の目標位置ｘｔとする（ステップＳ９）。そして、指先の目標位置ｘｔを実現するための力覚提示機構の各関節角度θｔを計算し（ステップＳ１０）、計算された各関節角度θｔになるように、モータを制御する（ステップＳ１１）。【選択図】図３
2008217260.tif 000002
【特許請求の範囲】
【請求項１】
実空間の操作部に作用する操作力を検出する操作力検出手段と、
前記操作部の操作位置を検出する位置検出手段と、
前記位置検出手段により検出された操作位置を仮想空間に変換する位置変換手段と、
前記操作力検出手段により検出された操作力と、前記位置変換手段により仮想空間に変換された操作位置と、に基づいて、仮想空間の操作部の第１の目標位置を計算し、第１の目標位置から最も近い仮想物体表面の位置を第２の目標位置として計算する目標位置計算手段と、
前記目標位置計算手段により計算された第２の目標位置に仮想空間の操作部が移動するように、実空間の操作部の位置を制御する位置制御手段と、
を備えた力覚提示装置。
【請求項２】
前記目標位置計算手段は、前記操作部の仮想質量がバネとダンパが並列になるようにして接続された運動モデルを用いて前記第１の目標位置を計算する
請求項１に記載の力覚提示装置。
【請求項３】
前記仮想空間における操作部と仮想物体とを表示する表示手段を更に備えた
請求項１または２に記載の力覚提示装置。
【請求項４】
実空間の操作部に作用する操作力を検出する操作力検出手段と、
前記操作部の操作位置を検出する位置検出手段と、
前記位置検出手段により検出された操作位置を仮想空間の被操作仮想物体の位置に変換する位置変換手段と、
前記操作力検出手段により検出された操作力と、前記位置変換手段により変換された仮想空間の被操作仮想物体の位置と、に基づいて、仮想空間の被操作仮想物体の第１の目標位置を計算し、前記第１の目標位置を用いて前記被操作仮想物体と仮想物体とが干渉しなくなる位置を第２の目標位置として計算する目標位置計算手段と、
前記目標位置計算手段により計算された第２の目標位置に被操作仮想物体が移動するように、実空間の操作部の位置を制御する位置制御手段と、
を備えた力覚提示装置。
【請求項５】
前記仮想空間における前記被操作仮想物体と前記仮想物体とを表示する表示手段を更に備えた
請求項４に記載の力覚提示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、力覚提示装置に関する。
【背景技術】
【０００２】
現実世界又は仮想世界の重機やロボット等の機械を制御するとき、その機械で生じる力覚情報を操作者に提示する技術が提案されている（特許文献１を参照。）。
【０００３】
特許文献１の力覚コントローラ装置は、制御対象に対する操作を入力するための可動部を含む操作機構と、該可動部に加えられた操作力を検出する操作力検出手段と、前記可動部の現在位置を検出する現在位置検出手段と、前記制御対象に加わる外力を入力する外力入力手段と、前記可動部を駆動する駆動手段と、前記操作力に応じて前記可動部に対する操作をアシストするとともに、前記外力に応じて該可動部に力覚を提示するように、前記操作力及び前記外力を任意の比率で合成した力に基づいて前記可動部の目標位置を算出し、該目標位置及び前記現在位置に基づいて前記可動部を該目標位置に追従させるように前記駆動手段を制御する力覚制御手段と、を備えている。
【０００４】
これにより、特許文献１の力覚コントローラ装置は、可動部の操作に力を要しないようになっているので、可動部を介して手触り感など微妙な感覚を操作者に効率的に伝達することができる。
【特許文献１】特開２００６−３１２２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術は、手触り感をオペレータに伝達することができるものの、仮想物体の表面を撫でたり、被操作仮想物体と固定仮想物体との接触感を伝達したりすることができない問題があった。
【０００６】
本発明は、上述した課題を解決するために提案されたものであり、仮想物体に接触したときに仮想物体の硬さに応じた手ごたえをオペレータに感じさせることができる力覚提示装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る力覚提示装置は、実空間の操作部に作用する操作力を検出する操作力検出手段と、前記操作部の操作位置を検出する位置検出手段と、前記位置検出手段により検出された操作位置を仮想空間に変換する位置変換手段と、前記操作力検出手段により検出された操作力と、前記位置変換手段により仮想空間に変換された操作位置と、に基づいて、仮想空間の操作部の第１の目標位置を計算し、第１の目標位置から最も近い仮想物体表面の位置を第２の目標位置として計算する目標位置計算手段と、前記目標位置計算手段により計算された第２の目標位置に仮想空間の操作部が移動するように、実空間の操作部の位置を制御する位置制御手段と、を備えている。
【０００８】
本発明は、操作力検出手段により検出された操作力と、位置変換手段により仮想空間に変換された操作位置と、に基づいて、仮想空間の操作部の第１の目標位置を計算し、第１の目標位置から最も近い仮想物体表面の位置を第２の目標位置として計算することにより、仮想物体の内側に操作力がある場合でも、仮想物体の表面に第２の目標位置を計算する。そして、本発明は、第２の目標位置に仮想空間の操作部が移動するように実空間の操作部の位置を制御することにより、仮想物体の表面を撫でるような手ごたえをオペレータに感じさせることができる。
【０００９】
また、本発明に係る力覚提示装置は、実空間の操作部に作用する操作力を検出する操作力検出手段と、前記操作部の操作位置を検出する位置検出手段と、前記位置検出手段により検出された操作位置を仮想空間の被操作仮想物体の位置に変換する位置変換手段と、  前記操作力検出手段により検出された操作力と、前記位置変換手段により変換された仮想空間の被操作仮想物体の位置と、に基づいて、仮想空間の被操作仮想物体の第１の目標位置を計算し、前記第１の目標位置を用いて前記被操作仮想物体と仮想物体とが干渉しなくなる位置を第２の目標位置として計算する目標位置計算手段と、前記目標位置計算手段により計算された第２の目標位置に被操作仮想物体が移動するように、実空間の操作部の位置を制御する位置制御手段と、を備えている。
【００１０】
本発明は、操作力検出手段により検出された操作力と、位置変換手段により変換された仮想空間の被操作仮想物体の位置と、に基づいて、仮想空間の被操作仮想物体の第１の目標位置を計算する。そして、本発明は、第１の目標位置を用いて被操作仮想物体と仮想物体とが干渉しなくなる位置を第２の目標位置として計算することにより、被操作仮想物体が仮想物体に接触したときの手ごたえをオペレータに感じさせることができる。
【発明の効果】
【００１１】
本発明は、仮想物体に接触したときに仮想物体の硬さに応じた手ごたえをオペレータに感じさせることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の好ましい実施の形態について図面を参照しながら詳細に説明する。
【００１３】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る力覚提示装置を示す図である。力覚提示装置は、指先の一点で仮想物体を触るときの手応えをオペレータに提示するものである。なお、第１の実施形態では、硬い物体を触る場合を例に挙げて説明する。
【００１４】
力覚提示装置は、オペレータが仮想物体を触ったときの手応えを与える力覚提示機構１０と、仮想物体と手先との接触判定や手先位置の計算等を行うコンピュータ２０と、仮想物体と仮想手先を表示するＬＣＤ３０と、を備えている。なお、力覚提示機構１０は、図示しないが、棒状部材で構成された複数のリンクと、各リンクを接続すると共に所望の角度（以下「関節角度」という。) にするための関節部と、を備えている。
【００１５】
図２は、力覚提示装置の機能的な構成を示すブロック図である。力覚提示機構１０は、いずれかのリンクのオペレータの力が作用する位置に設けられた力センサ１１と、関節角度を検出する角度センサ１２と、モータドライバ１３と、モータドライバ１３の制御に応じて関節角度を設定するモータ１４と、を備えている。力センサ１１は、オペレータの操作力ｆとして、３次元空間のｘ、ｙ、ｚ軸のそれぞれの力の大きさｆｘ、ｆｙ、ｆｚを検出する。
【００１６】
なお、関節部の数は特に限定されるものではなく、本実施形態ではｎ個あるものとする。よって、角度センサ１２及びモータ１４は、それぞれｎ個設けられている。また、各関節角度を設定することにより、力センサ１１の位置、すなわち手先の３次元空間上の位置が決まる。
【００１７】
図３は、第１の実施形態の力覚提示ルーチンを示すフローチャートである。以上のように構成された力覚提示装置のコンピュータ２０は、力覚提示ルーチンに従って処理を実行する。
【００１８】
ステップＳ１では、コンピュータ２０は、力センサ１１からの操作力ｆ＝［ｆｘ、ｆｙ、ｆｚ］Ｔと、各関節部に取り付けられた各角度センサ１２からの関節角度θ＝［θ１，θ２，・・・，θｎ］Ｔを入力して、ステップＳ２に進む。
【００１９】
ステップＳ２では、コンピュータ２０は、各角度センサ１２からの関節角度θ＝［θ１，θ２，・・・，θｎ］Ｔに基づいて、力覚提示機構１０の固有の構造から、ｐｒ＝ｇ（θ）を演算することにより、実環境におけるオペレータの手先ｐｒ＝［ｘｒ，ｙｒ，ｚｒ］Ｔを計算して、ステップＳ３に進む。
【００２０】
ステップＳ３では、コンピュータ２０は、  実環境におけるオペレータの指先位置ｐｒを仮想環境におけるオペレータの指先位置ｐｖ［ｘｖ，ｙｖ，ｚｖ］Ｔに変換することにより、指先位置を仮想環境に写像して、ステップＳ４に進む。なお、この関係はｐｖ＝ｈ（ｐｒ）という方程式で表される。また、必要に応じて、操作力ｆの各ベクトル成分も変換される。
【００２１】
ステップＳ４では、コンピュータ２０は、仮想環境における現在の指先位置ｐｖと仮想物体との接触判定を計算して、ステップＳ５に進む。
【００２２】
ステップＳ５では、コンピュータ２０は、接触判定の計算結果に基づいて、仮想環境における現在の指先位置ｐｖが仮想物体に接触したか否かを判定する。接触していないときはステップＳ６に進み、接触したときはステップＳ７に進む。
【００２３】
ステップＳ６では、図４に示すように、指先が仮想物体に接触していないので、オペレータの指先には“手ごたえ”が発生していない。そこで、コンピュータ２０は、オペレータが力覚提示機構１０を操作する際の操作力ｆを利用して、指先が仮想物体と接触していない場合の指先目標位置ｘｔを計算する。
【００２４】
サンプリング時間ｄｔの離数時間系とし、現在の時刻をｔとする。時刻ｔ−１における指先位置をｘｔ−１、時刻ｔ−２における指先位置をｘｔ−２、時刻ｔ−１における操作力をｆｔ−１とする。指先目標位置ｘｔは、式（１）で表される。
【００２５】
【数１】
2008217260.tif 000003
【００２６】
ここでＭは仮想質量であり、力覚提示機構１０を動作させる場合には微小な値を用いる。そして、コンピュータ２０は、式（１）に従って、指先目標位置ｘｔを計算すると、ステップＳ１０に進む。
【００２７】
ステップＳ７では、コンピュータ２０は、ステップＳ１で入力された操作力ｆに基づいて操作力の方向を計算して、ステップＳ８に進む。
【００２８】
ステップＳ８では、コンピュータ２０は、操作力ｆの方向が仮想物体の外側に向かっているか内側に向かっているかを判定する。例えば、コンピュータ２０は、仮想環境の指先の操作力のベクトル成分と、仮想物体表面の法線のベクトル成分と、を比較することで、操作力ｆの方向が仮想物体の外側に向かっているか内側に向かっているかを判定する。そして、操作力ｆが外側に向かっているときはステップＳ６に進み、内側に向かっているときはステップＳ９に進む。
【００２９】
操作力ｆの方向が仮想物体の外側に向かっている場合は、図５に示すように、これまで接触していた指先が仮想物体から離れていく場合である。このとき、オペレータの指先には“手ごたえ”が発生しない。
【００３０】
一方、操作力の方向が仮想物体の内側に向かっている場合は、図６に示すように、指先で仮想物体をなでる場合である。このとき、オペレータの指先に“手ごたえ”が発生する。
【００３１】
指先が仮想物体と接触している場合、図７に示すように、指先に最も近い仮想物体表面上の点（「最近点」という。）の位置に指先目標位置ｘｔを設定し、指先位置を位置制御すれば、仮想物体に触った“手ごたえ”をオペレータに提示される。
【００３２】
しかし、図８（Ａ）に示すように指先目標位置を単純に最近点にするだけでは、図８（Ｂ）に示すように仮想物体表面上のある一点に指先が拘束され、仮想物体表面をなでることができなくなる。そこで、図９（Ａ）に示すように、オペレータの操作力を考慮した指先目標位置ｘｄを設定する。これにより、図９（Ｂ）に示すように、オペレータは仮想物体表面をなでることができる。
【００３３】
指先が仮想物体と接触している場合には、以下の方法で指先目標位置ｘｔ＝［ｘｔ，ｙｔ，ｚｔ］Ｔを求める。
【００３４】
サンプリング時間ｄｔの離数時間系とし、現在の時刻をｔとする。時刻ｔ−１における指先位置をｘｔ−１、時刻ｔ−２における指先位置をｘｔ−２、時刻ｔ−１における操作力をｆｔ−１とする。仮の指先目標位置をｘｄとすると、ｘｄは式（２）により表される。
【００３５】
【数２】
2008217260.tif 000004
【００３６】
ここでＭは仮想質量、Ｃは仮想粘性係数である。
【００３７】
ステップＳ９では、コンピュータ２０は、式（２）に従って仮の指先位置を示す指先目標位置ｘｄを計算し、この指先目標位置ｘｄに最も近い仮想物体表面上の点（最近点）の位置を指先の目標位置ｘｔとして、ステップＳ１０に進む。例えば、指先目標位置ｘｄから、仮想物体表面の法線方向へ移動したときの当該仮想物体表面上の位置を指先の目標位置ｘｔとする。
【００３８】
ステップＳ１０では、コンピュータ２０は、指先の目標位置ｘｔを実現するための力覚提示機構１０の各関節角度θｔを計算して、ステップＳ１１に進む。ここでは、力覚提示機構１０に固有の機構から、目標位置ｘｔと関節角度θｔの関係を表すθｔ＝ｋ（ｘｔ）の式が用いられる。
【００３９】
ステップＳ１１では、コンピュータ２０は、ステップＳ１０で計算された各関節角度θｔになるように、図２に示すモータドライバ１３を介して、モータ１４を制御する。このとき、つぎのようなフィートバック制御が行われる。
【００４０】
力覚提示機構１０の運動方程式が式（３）で与えられるものとする。
【００４１】
【数３】
2008217260.tif 000005
【００４２】
ここで、τは関節トルク、Ｍは慣性質量、
【００４３】
【数４】
2008217260.tif 000006
はコリオリ力と遠心力の項、Ｂは粘性係数、ｇは重力である。
【００４４】
【数５】
2008217260.tif 000007
を状態変数とする。ｕθを新たな入力として、式（４）の非線形状態フィードバック補償を考える。
【００４５】
【数６】
2008217260.tif 000008
ただし、次の式（５）を満たす。
【００４６】
【数７】
2008217260.tif 000009
【００４７】
また、式（３）、（４）より、関節変数に関する線形かつ非干渉な系である次式（６）を得る。
【００４８】
【数８】
2008217260.tif 000010
この系に対してサーボ補償器を次式（７）のように設ける。
【００４９】
【数９】
2008217260.tif 000011
【００５０】
ここで、θｔは、指先目標位置ｘｔを実現する目標関節角度であり、力覚提示機構１０の逆運動学から求めることができる。誤差ｅ＝θｔ−θとすると、式（８）となる。
【００５１】
【数１０】
2008217260.tif 000012
【００５２】
適当なＫｖ、Ｋｐを選ぶことにより、関節ごとにＰＤ動作のフィードバックループを設けたことになり、ｅの各要素は０に収束する。すなわち、力覚提示機構１０の関節角度が関節目標角度θｔに収束し、指先目標位置ｘｔが実現される。
【００５３】
そして、コンピュータ２０は、ステップＳ１１の処理が終了するとステップＳ１にリターンして、再びステップＳ１以降の処理を実行する。
【００５４】
以上のように、第１の実施形態に係る力覚提示装置は、指先による操作力が仮想物体の内側に向かって働いている場合、仮想物体内部において操作力を考慮した仮の指先目標位置を設定し、仮の指先目標位置に最も近い仮想物体表面上の点を最終的な指先目標位置に設定する。そして、上記力覚提示装置は、仮想環境上の指先が最終的な指先目標位置に制御されるように実環境の指先位置を制御することにより、オペレータに対して仮想物体の表面を撫でているような“手ごたえ”を提示することができる。
【００５５】
［第２の実施形態］
つぎに、本発明の第２の実施形態について説明する。なお、第１の実施形態と同一の部位及び処理については第１の実施形態と同一の符号を付し、主に異なる点について説明する。
【００５６】
図１０は、第２の実施形態に係る力覚提示装置を示す図である。上記力覚提示装置は、力覚提示機構１０により操作される被操作仮想物体Ａを仮想世界に固定された硬い仮想物体Ｂに押し当てるときの“手ごたえ”をオペレータに提示するものである。
【００５７】
力覚提示装置は、オペレータが被操作仮想物体を把持したときの手応えを与える力覚提示機構１０Ａと、被操作仮想物体と固定仮想物体との接触判定や被操作仮想物体の位置の計算等を行うコンピュータ２０と、被操作仮想物体と固定仮想物体とを表示するＬＣＤ３０と、を備えている。
【００５８】
なお、第１の実施形態の力覚提示機構１０はオペレータの指先により操作されるのに対して、力覚提示機構１０Ａはオペレータによりグリップが把持されて操作される点が異なっている。この相違点を除き、力覚提示機構１０Ａは、力覚提示機構１０と同様に、図２に示すように構成されている。
【００５９】
図１１は、第２の実施形態の力覚提示ルーチンを示すフローチャートである。以上のように構成された力覚提示装置のコンピュータ２０は、力覚提示ルーチンに従って処理を実行する。
【００６０】
ステップＳ２１では、コンピュータ２０は、力センサ１１からの操作力ｆ＝［ｆｘ，ｆｙ，ｆｚ，ｎｘ，ｎｙ，ｎｚ］Ｔと、各関節部に取り付けられた各角度センサ１２からの関節角度θ＝［θ１，θ２，・・・，θｎ］Ｔを入力して、ステップＳ２２に進む。
【００６１】
ステップＳ２２では、コンピュータ２０は、各角度センサ１２からの関節角度θ＝［θ１，θ２，・・・，θｎ］Ｔに基づいて、力覚提示機構１０Ａのグリップ位置及び姿勢ｐｒを計算して、ステップＳ２３に進む。なお、ｐｒ＝［ｘｒ，ｙｒ，ｚｒ，αｒ，βｒ，θｒ］Ｔは、力覚提示機構１０Ａに固有の構造から、ｐｒ＝ｇ（θ）の方程式により演算される。被操作物体の位置姿勢は、このｐｒに等しいものとする。
【００６２】
ステップＳ２３では、コンピュータ２０は、  実環境における被操作物体の位置姿勢ｐｒを仮想環境における被操作物体の位置姿勢ｐｖ＝［ｘｖ，ｙｖ，ｚｖ，αｖ，βｖ，θｖ］Ｔに変換することにより、被操作物体の位置姿勢を仮想環境に写像して、ステップＳ２４に進む。なお、この関係はｐｖ＝ｈ（ｐｒ）という方程式で表される。また、必要に応じて、操作力ｆの各ベクトル成分も変換されてもよい。
【００６３】
ステップＳ２４では、コンピュータ２０は、仮想環境における被操作仮想物体と固定仮想物体との接触判定を計算して、ステップＳ２５に進む。
【００６４】
ステップＳ２５では、コンピュータ２０は、接触判定の計算結果に基づいて、仮想環境における現在の指先位置ｐｖが仮想物体に接触したか否かを判定する。接触していないときはステップＳ２６に進み、接触したときはステップＳ２７に進む。
【００６５】
ステップＳ２６では、被操作仮想物体が仮想物体に接触していないので、オペレータの指先には“手ごたえ”が発生していない。そこで、コンピュータ２０は、オペレータが力覚提示機構１０Ａを操作する際の操作力ｆを利用して、被操作仮想物体が固定仮想物体と接触していない場合における被操作仮想物体の目標位置姿勢ｘｔを計算する。
【００６６】
サンプリング時間ｄｔの離数時間系とし、現在の時刻をｔとする。時刻ｔ−１における位置姿勢をｘｔ−１、時刻ｔ−２における位置姿勢をｘｔ−２、時刻ｔ−１における操作力をｆｔ−１とする。目標位置姿勢ｘｔは、式（９）で表される。
【００６７】
【数１１】
2008217260.tif 000013
【００６８】
ここでＭは仮想質量であり、力覚提示機構１０Ａを動作させる場合には微小な値を用いる。そして、コンピュータ２０は、式（９）に従って、位置姿勢ｘｔを計算すると、ステップＳ３０に進む。
【００６９】
ステップＳ２７では、コンピュータ２０は、ステップＳ２１で入力された操作力ｆに基づいて、 オペレータが被操作仮想物体をどちらの方向へ移動させようとしているのか、すなわち被操作仮想物体の操作方向を計算してステップＳ２８に進む。 
【００７０】
ステップＳ２８では、コンピュータ２０は、被操作仮想物体の操作方向が固定仮想物体の内側へ向かっているか、外側へ向かっているかを判定する。そして、被操作仮想物体が固定仮想物体の外側へ向かっているときはステップＳ２６に進み、内側へ向かっているときはステップＳ２９に進む。 
【００７１】
被操作仮想物体が固定仮想物体の外側へ向かっている場合は、これまで接触していた被操作仮想物体が固定仮想物体から離れていく場合である。このとき、オペレータの指先には“手ごたえ”が発生しない。 
【００７２】
一方、被操作仮想物体が固定仮想物体の内側へ向かっている場合は、被操作仮想物体を固定仮想物体に押し付ける場合である。このとき、オペレータの指先に“手ごたえ”が発生する。そこで、 ステップＳ２９では、次の計算が行われる。
【００７３】
ステップＳ２９では、コンピュータ２０は、第１の実施形態における指先の一点で物体表面を触る場合と同様にして、目標位置姿勢ｘｔを計算する。但し、第２の実施形態では、被操作仮想物体を取り扱うので被操作仮想物体の形状を考慮した干渉回避計算が必要となる。そこで、以下の方法で目標位置姿勢ｘｔを求めて、ステップＳ３０に進む。
【００７４】
ここで、サンプリング時間ｄｔの離散時間系とし、現在の時刻をｔとする。時刻ｔ−１における被操作仮想物体の位置姿勢をｘｔ−１、時刻ｔ−２における位置姿勢をｘｔ−２、時刻ｔ−１における操作力をｆｔ−１とする。仮の目標位置姿勢ｘｄを式（１０）より求める。
【００７５】
【数１２】
2008217260.tif 000014
【００７６】
ここでＭは仮想質量、Ｃは仮想粘性係数である。
【００７７】
そして、図１２（Ａ）に示すように仮の目標位置姿勢ｘｄを用いて、図１２（Ｂ）に示すように固定仮想物体Ｂとの干渉を解消できるような被操作仮想物体Ａの位置姿勢として目標位置姿勢ｘｔを求める。
【００７８】
被操作仮想物体Ａと固定仮想物体Ｂがあり、Ａの頂点とＢの面が干渉状態にあるとする。Ａの重心を原点とすると、Ａの頂点はｒＡ、Ｂの面の方程式はｎ・Ｘ＝ｄで表される。ただし、ｎは面の外向き法線ベクトルを表す。
【００７９】
Ａの頂点とＢの面が干渉状態にない場合は、ｎ・Ｘ＞ｄとなる。
【００８０】
仮想物体Ａの移動を、重心の微小並進移動Δｒと微小回転移動Δθで表すと、移動後の頂点の位置は式（１１）となる。
【００８１】
【数１３】
2008217260.tif 000015
【００８２】
この移動によって干渉状態を解消するためには、式（１２）、（１３）を満足する必要がある。
【００８３】
【数１４】
2008217260.tif 000016
【００８４】
ここで、式（１４）を干渉量と定義する。
【００８５】
【数１５】
2008217260.tif 000017
【００８６】
これにより、式（１５）が得られる。以下、式（１５）を干渉解消条件式という。
【００８７】
【数１６】
2008217260.tif 000018
【００８８】
Ａに関してｎ個の干渉があるとする。それに関わる頂点をｒｉ（ｉ＝１，２，・・・，ｎ）とし、それぞれがＡを動かす力ｆｉを発生するとする。ただし、力の方向はｕｉとする。力の方向は干渉面に垂直なので、ｕｉ＝ｎｉである。
【００８９】
Ａの重心にかかる力とモーメントは、式（１６）となる。
【００９０】
【数１７】
2008217260.tif 000019
【００９１】
簡単のため、力が直接移動量に比例すると仮定すると、式（１７）の運動方程式が得られる。
【００９２】
【数１８】
2008217260.tif 000020
【００９３】
Ａへのｎ個の干渉に対して、ｎ個の干渉解消条件式を示す式（１８）が得られる。
【００９４】
【数１９】
2008217260.tif 000021
【００９５】
式（１８）の左辺に式（１７）を代入すると、式（１９）が得られる。
【００９６】
【数２０】
2008217260.tif 000022
【００９７】
ここで、ｆ＝［ｆ１，・・・，ｆｎ］Ｔ、ｂ＝［ｂ１，・・・，ｂｎ］Ｔとおくと、式（２０）が得られる。
【００９８】
【数２１】
2008217260.tif 000023
【００９９】
ただし、次の式（２１）〜（２３）を満たす。
【０１００】
【数２２】
2008217260.tif 000024
【０１０１】
式（１７）は式（２０）を用いて、式（２４）と書き直すことができる。
【０１０２】
【数２３】
2008217260.tif 000025
【０１０３】
干渉の解消がなった時点で力がゼロになる。干渉解消後のｉ番目の干渉点の状態はベクトル（ＡＦ−ｂ）のｉ番目の値で示されており、これがゼロなら接触、正なら非接触である。そして後者の場合にはｆｉ＝０でなければならない。これが、ｉ＝１、２、・・・、ｎのすべての点について成り立つためには、各ｉについて式（２５）が成り立つ必要がある。
【０１０４】
【数２４】
2008217260.tif 000026
ｆが式（２５）を満足していることを加味すると、この条件は式（２６）と表すことができる。
【０１０５】
【数２５】
2008217260.tif 000027
【０１０６】
多面体Ｂがｎ個の干渉を受けたとき、それを仮想物体Ａの運動Δｒ、Δθによって解消するためには、干渉状態によって決まる行列Ａ、ベクトルｂを用いて、式（２０）、（２６）を満足するｆを求めればよいことになる。
【０１０７】
スラック変数ｓを用いると式（２０）は式（２７）と書くことができる。
【０１０８】
【数２６】
2008217260.tif 000028
【０１０９】
これを満足する解は新たに変数ｑを導入した方程式（２８）
【０１１０】
【数２７】
2008217260.tif 000029
の解（ｆ，ｑ，ｓ）のうち、式（２９）となるものと等しい。
【０１１１】
【数２８】
2008217260.tif 000030
【０１１２】
この解は、式（３０）と制御すると、
【０１１３】
【数２９】
2008217260.tif 000031
評価関数である式（３１）をゼロに、すなわち最大にするものである。
【０１１４】
【数３０】
2008217260.tif 000032
【０１１５】
これは式（２８）と次の式（３２）の下で、式（３１）を最大とする線形計画問題である。
【０１１６】
【数３１】
2008217260.tif 000033
この問題は、式（３３）を最初の基底解として、Ｓｉｍｐｌｅｘ法により効率よく求めることができる。
【０１１７】
【数３２】
2008217260.tif 000034
【０１１８】
一方、必要とする解は式（２６）も満足する必要がある。これは式（２７）の表現に直せば、ｆＴｓ＝０すなわち次の式（３４）を意味する。
【０１１９】
【数３３】
2008217260.tif 000035
【０１２０】
これは、各ｉについてｆｉとｓｉがともに正となることを許さないものである。Ｓｉｍｐｌｅｘ法により式（２８）〜（３２）を解く場合、ｎ個の条件式に対して３ｎ個の変数があるので、すべての基底解は３ｎ個の変数のうち、正値のものはｎ個、残りの２ｎ個はゼロである。従って、式（３４）を満たす解は基底解の中の特殊なものであり、解はこの中で探索される必要がある。
【０１２１】
そして、コンピュータ２０は、ステップＳ３０、Ｓ３１については、第1の実施形態のステップＳ１０、Ｓ１１と同様に処理を行う。
【０１２２】
以上のように、第２の実施形態に係る力覚提示装置は、操作力により被操作仮想物体の操作方向を求め、被操作仮想物体が固定仮想物体の内側に向かって働いている場合、固定仮想物体内部において操作力を考慮した仮の目標位置を設定し、被操作仮想物体と固定仮想物体とが干渉しないような点を最終的な目標位置に設定する。そして、上記力覚提示装置は、仮想環境上の被操作仮想物体が最終的な目標位置に制御されるように実環境の指先位置を制御することにより、オペレータに対して被操作仮想物体と固定仮想物体とが衝突したような“手ごたえ”を提示することができる。
【０１２３】
［第３の実施形態］
つぎに、本発明の第３の実施形態について説明する。なお、上述した実施形態と同一の部位及び処理については上述した実施形態と同一の符号を付し、主に異なる点について説明する。
【０１２４】
本実施形態に係る力覚提示装置は、第１の実施形態と同様に指先の一点で仮想物体を触るときの手応えをオペレータに提示する。但し、ここでは任意の硬さを有する物体を触る場合を例に挙げて説明する。
【０１２５】
本実施形態に係る力覚提示装置は、第１の実施形態と同様に構成されている。さらに、力覚提示装置のコンピュータ２０は、図３に示す力覚提示ルーチンに従って処理を実行するが、ステップＳ９の代わりに後述するステップＳ９’を実行する。以下、ステップＳ９’について説明する。
【０１２６】
図１３は、仮想物体の機械的インピーダンスを示す図である。仮想物体は、任意の硬さを有するので、仮想的に、剛性係数Ｋのバネと粘性係数Ｃのダンパがそれぞれ並列になるように接続されている。このとき、式（３５）が成り立つ。
【０１２７】
【数３４】
2008217260.tif 000036
ここで、
【０１２８】
【数３５】
2008217260.tif 000037
は仮想物体の慣性質量、
【０１２９】
【数３６】
2008217260.tif 000038
は減衰係数、
【０１３０】
【数３７】
2008217260.tif 000039
は剛性係数、
【０１３１】
【数３８】
2008217260.tif 000040
は時刻ｔにおける指先位置、
【０１３２】
【数３９】
2008217260.tif 000041
は仮想物体の基準位置である。これらを離散時同系で解く。サンプリング時間をｄｔとすると式（３６）、（３７）が成り立つ。
【０１３３】
【数４０】
2008217260.tif 000042
【０１３４】
よって、式（３５）〜（３７）より、式（３８）となる。
【０１３５】
【数４１】
2008217260.tif 000043
【０１３６】
ここで、式（３９）が成り立つ。
【０１３７】
【数４２】
2008217260.tif 000044
【０１３８】
式（３８）、（３９）より、時刻ｔにおける目標位置ｘｔは次の式（４０）で表される。
【０１３９】
【数４３】
2008217260.tif 000045
【０１４０】
なお、Ｋがゼロ行列の場合、式（４０）は式（２）に一致する。そして、第３の実施形態のステップＳ９’では、コンピュータ２０は、式（４０）に従って目標位置ｘｔを計算する。
【０１４１】
以上のように、第３の実施形態に係る力覚提示装置は、指先による操作力が仮想物体の内側に向かって働いている場合、仮想物体内部における操作力だけでなく仮想物体の硬さを考慮した指先目標位置を設定する。そして、上記力覚提示装置は、仮想環境上の指先が最終的な指先目標位置に制御されるように実環境の指先位置を制御することにより、オペレータに対して仮想物体の表面を撫でているような“手ごたえ”を提示することができる。
【０１４２】
なお、本発明は、上述した実施の形態に限定されるものではなく、特許請求の範囲に記載された範囲内で設計上の変更をされたものにも適用可能であるのは勿論である。
【図面の簡単な説明】
【０１４３】
【図１】本発明の第１の実施形態に係る力覚提示装置を示す図である。
【図２】力覚提示装置の機能的な構成を示すブロック図である。
【図３】第１の実施形態の力覚提示ルーチンを示すフローチャートである。
【図４】指先が仮想物体に接触していない状態を示す図である。
【図５】指先が仮想物体から離れていく状態を示す図である。
【図６】指先で仮想物体をなでる状態を示す図である。
【図７】指先に最も近い仮想物体表面上の点である最近点を説明する図である。
【図８】（Ａ）は指先目標位置を単純に最近点にした状態を示す図であり、（Ｂ）は仮想物体表面上のある一点に指先が拘束され仮想物体表面をなでることができない状態を示す図である。
【図９】（Ａ）はオペレータの操作力を考慮した指先目標位置ｘｄを示す図であり、（Ｂ）はオペレータが仮想物体表面をなでる状態を示す図である。
【図１０】第２の実施形態に係る力覚提示装置を示す図である。
【図１１】第２の実施形態の力覚提示ルーチンを示すフローチャートである。
【図１２】（Ａ）は仮の目標位置姿勢ｘｄを示す図であり、（Ｂ）は固定仮想物体との干渉を解消できるような被操作仮想物体の位置姿勢として目標位置姿勢ｘｔを求めることを示す図である。
【図１３】仮想物体の機械的インピーダンスを示す図である。
【符号の説明】
【０１４４】
１０  力覚提示機構
１１  力センサ
１２  角度センサ
１３  モータドライバ
１４  モータ
２０  コンピュータ２０
３０  ＬＣＤ
【図１】
2008217260.tif 000046
【図２】
2008217260.tif 000047
【図３】
2008217260.tif 000048
【図４】
2008217260.tif 000049
【図５】
2008217260.tif 000050
【図６】
2008217260.tif 000051
【図７】
2008217260.tif 000052
【図８】
2008217260.tif 000053
【図９】
2008217260.tif 000054
【図１０】
2008217260.tif 000055
【図１１】
2008217260.tif 000056
【図１２】
2008217260.tif 000057
【図１３】
2008217260.tif 000058