| 【発明の名称】 |
情報処理方法、情報処理装置 |
| 【発明者】 |
【氏名】時田 俊伸
【氏名】野上 敦史
【氏名】西村 直樹
|
| 【要約】 |
【課題】より簡便に力覚提示を行うための技術を提供すること。
【構成】仮想工具物体と仮想ねじ物体とが干渉状態にあり、且つ仮想ねじ物体と仮想ねじ穴物体とが干渉状態にある場合、干渉判定部211は、力覚提示装置1に対する制御モードを通常モードから非通常モードに移行する。非通常モードに移行した場合、力覚計算部221は、仮想ねじ物体と仮想ねじ穴物体との干渉に応じて発生する仮想工具物体に対するトルクを、仮想ねじ物体の回転数に基づいて求める。制御部231は、求めたトルクに基づいた力覚を力覚提示装置1によって提示させるための制御値を求め、力覚提示装置1に送信する。 |
【特許請求の範囲】
【請求項1】 工具を模した仮想工具物体を操作する為の操作部を有する力覚提示装置であると共に、与えられた制御値に応じた力覚を提示する力覚提示装置を制御するための情報処理装置が行う情報処理方法であって、 前記仮想工具物体と、ねじ部材を模した仮想ねじ物体とが干渉状態にあるのかを判断する第1の判断工程と、 前記仮想ねじ物体と、ねじ穴を模した仮想ねじ穴物体とが干渉状態にあるのかを判断する第2の判断工程と、 前記仮想工具物体と前記仮想ねじ物体とが干渉状態にあり、且つ前記仮想ねじ物体と前記仮想ねじ穴物体とが干渉状態にある場合には、前記力覚提示装置に対する制御モードを通常モードから非通常モードに移行するモード制御工程と、 前記非通常モードに移行した場合には、前記仮想ねじ物体と前記仮想ねじ穴物体との干渉に応じて発生する前記仮想工具物体に対するトルクを、前記仮想ねじ物体の回転数に基づいて求める計算処理を行う計算工程と、 前記計算工程で求めたトルクに基づいた力覚を前記力覚提示装置によって提示させるための制御値を求め、前記力覚提示装置に送信する送信工程と を備えることを特徴とする情報処理方法。 【請求項2】 ねじ部材を模した仮想ねじ物体を、ねじ穴を模した仮想ねじ穴物体に取り付ける際の力覚を提示する力覚提示装置を制御するための情報処理装置が行う情報処理方法であって、 前記仮想ねじ物体と前記仮想ねじ穴物体の干渉状態を判断する判断工程と、 前記判断工程において干渉していると判断された場合に、前記仮想ねじ物体の回転数に対応するトルクを求める計算工程と、 前記計算工程で求めたトルクに基づいた力覚を、前記力覚提示装置により提示するように制御する制御工程と を備えることを特徴とする情報処理方法。 【請求項3】 前記仮想ねじ物体はおねじを模した仮想物体であり、前記仮想ねじ穴物体はめねじを模した仮想物体であることを特徴とする請求項1又は2に記載の情報処理方法。 【請求項4】 前記計算工程では、 前記仮想ねじ物体の各回転数に対応するトルクが登録されたテーブルを用いて前記計算処理を行うことを特徴とする請求項1又は2に記載の情報処理方法。 【請求項5】 前記計算工程では、 前記仮想ねじ物体の回転数に対応するトルクを、回転数とトルクとの関係式を用いて求めることを特徴とする請求項1又は2に記載の情報処理方法。 【請求項6】 前記仮想ねじ物体の回転数に対応するトルクは、回転数の増加に応じて変化することを特徴とする請求項4又は5に記載の情報処理方法。 【請求項7】 工具を模した仮想工具物体を操作する為の操作部を有する力覚提示装置であると共に、与えられた制御値に応じた力覚を提示する力覚提示装置を制御するための情報処理装置であって、 前記仮想工具物体と、ねじ部材を模した仮想ねじ物体とが干渉状態にあるのかを判断する第1の判断手段と、 前記仮想ねじ物体と、ねじ穴を模した仮想ねじ穴物体とが干渉状態にあるのかを判断する第2の判断手段と、 前記仮想工具物体と前記仮想ねじ物体とが干渉状態にあり、且つ前記仮想ねじ物体と前記仮想ねじ穴物体とが干渉状態にある場合には、前記力覚提示装置に対する制御モードを通常モードから非通常モードに移行するモード制御手段と、 前記非通常モードに移行した場合には、前記仮想ねじ物体と前記仮想ねじ穴物体との干渉に応じて発生する前記仮想工具物体に対するトルクを、前記仮想ねじ物体の回転数に基づいて求める計算処理を行う計算手段と、 前記計算手段が求めたトルクに基づいた力覚を前記力覚提示装置によって提示させるための制御値を求め、前記力覚提示装置に送信する送信手段と を備えることを特徴とする情報処理装置。 【請求項8】 ねじ部材を模した仮想ねじ物体を、ねじ穴を模した仮想ねじ穴物体に取り付ける際の力覚を提示する力覚提示装置を制御するための情報処理装置であって、 前記仮想ねじ物体と前記仮想ねじ穴物体の干渉状態を判断する判断手段と、 前記判断手段において干渉していると判断された場合に、前記仮想ねじ物体の回転数に対応するトルクを求める計算手段と、 前記計算手段が求めたトルクに基づいた力覚を、前記力覚提示装置により提示するように制御する制御手段と を備えることを特徴とする情報処理装置。 【請求項9】 コンピュータに請求項1乃至6の何れか1項に記載の情報処理方法を実行させるためのプログラム。 【請求項10】 請求項9に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、バーチャルリアリティーにおける力覚提示に係る技術に関するものである。 【背景技術】 【0002】 図8は、従来のバーチャルリアリティにおける力覚提示を実現するためのシステムの機能構成を示すブロック図である(非特許文献1参照)。 【0003】 図8において、1は力覚提示装置である。力覚提示装置1の代表的な例としては、ロボットアームを制御することでスタイラスペンをロボットアームの先に把持させ、ロボットアームのモータで出力制御することによってスタイラスペンを把持する手に力覚を提示させるものがある(非特許文献2参照)。 【0004】 また、ボールや指サックから数本の糸を伸ばし、その糸の張力を制御することによってボールを把持している手、あるいは指サックに挿入している指に力覚を提示させるものがある(非特許文献3参照)。 【0005】 あるいは、外骨格(エグゾスケルトン)型と呼ばれるものがある(特許文献1参照)。この外骨格型力覚提示装置は、手首を力覚提示の支持点として固定する。そして、外骨格に沿ってワイヤなどの駆動媒体を配置し、それを駆動することによって、指先に仮想物体を把持したときの力覚を提示させる。 【0006】 次に、2は力覚レンダリング部で、干渉判定部210と、力覚計算部220と、制御部230とで構成されている。 【0007】 干渉判定部210は、力覚提示装置1からユーザの操作対象となる工具を模した仮想物体(アバタ)の位置Xを取得し、取得した位置と、工具による操作対象としてのオブジェクトの位置とを用いて、それぞれの干渉状態を求める。ここでの干渉状態とは、アバタがどれだけオブジェクトに対して侵入しているのかを示す侵入深度Sである。 【0008】 力覚計算部220は、この侵入深度Sに基づいて、アバタにかかる力Fdを求める。 【0009】 制御部230は、この力Fdが力覚提示装置1によってユーザに提示されるような制御値Frを求め、求めた制御値Frを力覚提示装置1に対して送出する。 【0010】 3はシミュレーション部で、シミュレーションエンジン310を有する。シミュレーション部3は、力覚計算部220が計算した力Fdに基づいて、オブジェクトの変形や移動等をシミュレーションする。シミュレーション結果は即座に干渉判定部210に送出される。これにより干渉判定部210はこのシミュレーション結果に応じたオブジェクトと、アバタとの干渉判定処理を行う。また、このシミュレーション結果は、後段のグラフィックスエンジン410に対しても送出される。 【0011】 4は画像レンダリング部で、グラフィックスエンジン410を有する。グラフィックスエンジン410は、アバタの画像、オブジェクトの画像を生成するのであるが、かかるオブジェクトは、シミュレーション結果に基づいて移動したり変形していたりする。 【0012】 5はCRTや液晶等、フラットパネルディスプレイ、ヘッドマウントディスプレイ(HMD)などからなる画像表示部で、グラフィックスエンジン410で生成された画像を表示する。 【非特許文献1】Kenneth Salisbury, Francois Conti and Federico Barbagli, "Haptic Rendering: Introductory Concepts, "IEEE Computer Graphics and Applications, January/February 2004, pp. 24-32 【非特許文献2】T. M. Massie, J. K. Salisbury, “The PHANTOM Haptic Interface, "A Device for Probing Virtual Objects, “ASME Haptic Interface for Virtual Environment and Teleoperator Systems 1994, In Dynamic Systems and Control, Vol.1, pp.295-301 【非特許文献3】佐藤 誠、平田 幸広、河原田 弘、“空間インターフェース装置SPIDARの提案、”電子情報通信学会論文誌 D-II Vol.J74-D-II、No.7、pp.887-894、1991年7月 【特許文献1】米国特許第5184319号明細書 【発明の開示】 【発明が解決しようとする課題】 【0013】 しかしながら、従来の技術では以下の課題があった。 【0014】 従来技術の力覚提示方法でねじ締結の力覚提示を行うためには、おねじの山・谷と、めねじの谷・山との干渉判定が必要で、計算が複雑になる。また、多点の反力や摩擦を計算する必要があるため、さらに計算が複雑になり、膨大な計算量を要することになる。したがって、リアルタイムな提示ができなくなり、滑らかな、かつ自然な力覚提示ができなくなる。 【0015】 本発明は以上の問題に鑑みてなされたものであり、より簡便に力覚提示を行うための技術を提供することを目的とする。 【課題を解決するための手段】 【0016】 本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。 【0017】 即ち、工具を模した仮想工具物体を操作する為の操作部を有する力覚提示装置であると共に、与えられた制御値に応じた力覚を提示する力覚提示装置を制御するための情報処理装置が行う情報処理方法であって、 前記仮想工具物体と、ねじ部材を模した仮想ねじ物体とが干渉状態にあるのかを判断する第1の判断工程と、 前記仮想ねじ物体と、ねじ穴を模した仮想ねじ穴物体とが干渉状態にあるのかを判断する第2の判断工程と、 前記仮想工具物体と前記仮想ねじ物体とが干渉状態にあり、且つ前記仮想ねじ物体と前記仮想ねじ穴物体とが干渉状態にある場合には、前記力覚提示装置に対する制御モードを通常モードから非通常モードに移行するモード制御工程と、 前記非通常モードに移行した場合には、前記仮想ねじ物体と前記仮想ねじ穴物体との干渉に応じて発生する前記仮想工具物体に対するトルクを、前記仮想ねじ物体の回転数に基づいて求める計算処理を行う計算工程と、 前記計算工程で求めたトルクに基づいた力覚を前記力覚提示装置によって提示させるための制御値を求め、前記力覚提示装置に送信する送信工程と を備えることを特徴とする。 【0018】 本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。 【0019】 即ち、ねじ部材を模した仮想ねじ物体を、ねじ穴を模した仮想ねじ穴物体に取り付ける際の力覚を提示する力覚提示装置を制御するための情報処理装置が行う情報処理方法であって、 前記仮想ねじ物体と前記仮想ねじ穴物体の干渉状態を判断する判断工程と、 前記判断工程において干渉していると判断された場合に、前記仮想ねじ物体の回転数に対応するトルクを求める計算工程と、 前記計算工程で求めたトルクに基づいた力覚を、前記力覚提示装置により提示するように制御する制御工程と を備えることを特徴とする。 【0020】 本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。 【0021】 即ち、工具を模した仮想工具物体を操作する為の操作部を有する力覚提示装置であると共に、与えられた制御値に応じた力覚を提示する力覚提示装置を制御するための情報処理装置であって、 前記仮想工具物体と、ねじ部材を模した仮想ねじ物体とが干渉状態にあるのかを判断する第1の判断手段と、 前記仮想ねじ物体と、ねじ穴を模した仮想ねじ穴物体とが干渉状態にあるのかを判断する第2の判断手段と、 前記仮想工具物体と前記仮想ねじ物体とが干渉状態にあり、且つ前記仮想ねじ物体と前記仮想ねじ穴物体とが干渉状態にある場合には、前記力覚提示装置に対する制御モードを通常モードから非通常モードに移行するモード制御手段と、 前記非通常モードに移行した場合には、前記仮想ねじ物体と前記仮想ねじ穴物体との干渉に応じて発生する前記仮想工具物体に対するトルクを、前記仮想ねじ物体の回転数に基づいて求める計算処理を行う計算手段と、 前記計算手段が求めたトルクに基づいた力覚を前記力覚提示装置によって提示させるための制御値を求め、前記力覚提示装置に送信する送信手段と を備えることを特徴とする。 【0022】 本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。 【0023】 即ち、ねじ部材を模した仮想ねじ物体を、ねじ穴を模した仮想ねじ穴物体に取り付ける際の力覚を提示する力覚提示装置を制御するための情報処理装置であって、 前記仮想ねじ物体と前記仮想ねじ穴物体の干渉状態を判断する判断手段と、 前記判断手段において干渉していると判断された場合に、前記仮想ねじ物体の回転数に対応するトルクを求める計算手段と、 前記計算手段が求めたトルクに基づいた力覚を、前記力覚提示装置により提示するように制御する制御手段と を備えることを特徴とする。 【発明の効果】 【0024】 本発明の構成により、より簡便に力覚提示を行うことができる。 【発明を実施するための最良の形態】 【0025】 以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。 【0026】 [第1の実施形態] 技術分野で説明した通り、バーチャルリアリティー技術や複合現実感提示技術を用いて工業製品や装置などの作業検証を行うとき、仮想的に表示した製品内部に治工具を挿入し、組立やメンテナンスなどの作業ができるかを検証することがある。 【0027】 図1は、仮想の工具を用いて仮想のねじを締める様子を示した図である。同図において11は工具を模した仮想物体である。12はユーザの手を模した仮想物体であり、先の工具の仮想物体11は、この手の仮想物体12に把持されているように配置される。14は台の仮想物体であり、台の仮想物体14上にはめねじ部(仮想物体)が設けられている。同図ではこのめねじ部上には、おねじとしての六角ねじ(ボルト)の仮想物体13が挿入されている。同図は、手の仮想物体12の位置を操作することで工具の仮想物体11で六角ねじの仮想物体13をはさみ、台の仮想物体14におけるめねじ部に対してネジ締めを行う様子を示している。 【0028】 図11は、おねじとしての仮想物体13と、めねじ部としての仮想物体の断面図である。同図において1101はめねじ部であり、台の仮想物体14上に設けられたものであるので、めねじ部1101もまた仮想物体である。本実施形態では、おねじとしての仮想物体13をめねじ部1101に挿入し、ねじ締めを行う。 【0029】 なお、以下で説明する本実施形態において工具の種類、ボルトの形状等は下記のものに限定するものではない。即ち、ボルトについては、六角穴付きボルトや六角ナット、木ねじ、テーパねじなど、ねじであれば良い。さらに、工具については、六角レンチ、スパナ、ラチェットレンチ、ドライバなどねじを回す工具であれば良い。 【0030】 図3は、本実施形態に係るシステムの機能構成例を示す図である。同図に示す如く、本実施形態に係るシステムは、力覚提示装置1と、情報処理装置350とで構成されている。 【0031】 先ず、力覚提示装置1について説明する。力覚提示装置1は、ユーザによる操作対象としての工具の仮想物体(工具仮想物体)の位置を操作する為のものである。更に力覚提示装置1は、工具仮想物体が何らかの仮想物体と干渉した場合には、係る干渉に基づいて後段の計算処理で計算される力に応じた力覚を提示するためのものである。 【0032】 図2A、2Bはそれぞれ異なる力覚提示装置の外観例を示す図である。先ず図2Aに示した力覚提示装置について説明する。 【0033】 同図に示した力覚提示装置1aは、エンドエフェクタ110、ロボットアーム120、フレーム140により構成されている。 【0034】 エンドエフェクタ110は、ユーザが把持するものであり、任意の位置に移動させることができる。ロボットアーム120は複数の節により構成されており、エンドエフェクタ110とフレーム140とを繋ぐものである。これにより、ユーザがエンドエフェクタ110を任意の位置に移動させても、ロボットアーム120はそれに追従して変形することができる。 【0035】 フレーム140は、ユーザがエンドエフェクタ110を任意の位置に移動させると、この位置に応じた信号を後段の情報処理装置350に送出すると共に、情報処理装置350から受けた制御値に応じた力覚をエンドエフェクタ110に提供する。フレーム140内には力覚提示のためにアクチュエータ等が備わっており、情報処理装置350から受けた制御値に基づいた力をアクチュエータ等でもって実現し、ロボットアーム120を介してエンドエフェクタ110に対して提供する。 【0036】 次に、図2Bに示した力覚提示装置について説明する。同図に示した力覚提示装置1bは、エンドエフェクタ190,アクチュエータ192、フレーム191、糸130により構成されている。 【0037】 エンドエフェクタ190は、ユーザが把持するものであり、複数の糸130に繋がれている。これにより、ユーザは糸130の張力の範囲内でエンドエフェクタ190の位置を移動させることができる。 【0038】 アクチュエータ192は、例えばDCサーボモータとエンコーダとで構成されており、エンドエフェクタ190が移動したことで糸130が引っ張られたりすると、係る変化を検知し、検知した変化に基づいてエンドエフェクタ190の位置を求める。そして求めた位置を信号として情報処理装置350に送出する。また、情報処理装置350から受けた制御値に応じた力覚を糸130を介してエンドエフェクタ110に対して提供する。 【0039】 なお、図2A、2Bに示した何れの力覚提示装置も、本実施形態で力覚提示装置1として用いることができる。しかし、力覚提示装置1として用いることができる力覚提示装置はこれらに限定するものではなく、様々なものが考えられる。 【0040】 例えば、外骨格(エグゾスケルトン)型の力覚提示装置を用いれば、仮想的に工具を把持した力覚を提示できるため、工具に模すエンドエフェクタは不要とすることができる。 【0041】 さらに、アクチュエータ192にDCモータなどを使って積極的にトルクを出力させる制御方法はアクティブ型と呼ばれるが、これに限定するものではない。アクチュエータ192にブレーキやクラッチ、MR流体、ER流体を用いて、ユーザがエンドエフェクタを動かす力やトルクに抵抗を与えるパッシブ型の制御を行っても良い。 【0042】 以上説明したように、本実施形態では力覚提示装置1として、工具仮想物体の位置を操作すると共に、工具仮想物体が何らかの仮想物体と干渉した場合には、係る干渉に基づいて後段の計算処理で計算される力に応じた力覚を提示することができる装置を用いる。従って係る機能を有するものであれば、如何なる構成を有する装置を力覚提示装置1として用いても良い。 【0043】 図3に戻って次に21は力覚レンダリング部で、干渉判定部211と、力覚計算部221と、制御部231とで構成されている。 【0044】 干渉判定部211は先ず、力覚提示装置1からエンドエフェクタの位置を工具仮想物体の位置Xとして取得する。そして取得した位置Xと、工具による操作対象としてのオブジェクト(本実施形態では六角ねじであり、以下では六角ねじ仮想物体と呼称)の位置とを用いて、それぞれの干渉状態を求める。ここでの干渉状態とは、工具仮想物体と六角ねじ仮想物体とが干渉しているか否か、即ち工具仮想物体と六角ねじ仮想物体とがかみ合っているか否かである。ここで、工具仮想物体と六角ねじ仮想物体とがかみ合っている、とは、工具(仮想物体)が六角ねじ(仮想物体)を回すべく、六角ねじに工具をはめ込んでいる様子を示す。 【0045】 更に、干渉判定部211は、六角ねじ仮想物体がめねじ部とかみ合っているか否かをチェックする。かみ合っている場合には、六角ねじ仮想物体がめねじ部にどれだけ侵入しているか(干渉深度S)を求める。 【0046】 なお、干渉判定部211による仮想物体同士の干渉判定処理は周知の技術であるので、係る技術についての説明は省略する。 【0047】 以上の処理の結果、干渉判定部211は、工具仮想物体と六角ねじ仮想物体とがかみ合っており、且つ六角ねじ仮想物体がめねじ部とかみ合っている(おねじをめねじに挿入している(S≧θ))と判断した場合には、ねじ回し力覚モードを設定する。また干渉判定部211は、工具仮想物体と六角ねじ仮想物体とが干渉する毎に、六角ねじ仮想物体が現在どれだけ回転しているのかをチェックする。もちろん、工具仮想物体と六角ねじ仮想物体との干渉を検知していなかったり、六角ねじ仮想物体がめねじ部とかみ合っていない場合には、ねじ回し力覚モードは解除する。 【0048】 そして干渉判定部211は、干渉深度Sと工具仮想物体の位置Xと六角ねじ仮想物体の回転数N(六角ねじ仮想物体のねじ込み回転数)とを力覚計算部221に送出する。 【0049】 一方、工具仮想物体と六角ねじ仮想物体との干渉が検知されなかったり、六角ねじ仮想物体がめねじ部とかみ合っていない場合、干渉判定部211は、工具仮想物体と他の仮想物体(例えば、図1に示した台の仮想物体14)との干渉状態を求める。係る干渉状態は力覚計算部221に通知する。 【0050】 力覚計算部221は、ねじ回し力覚モードが設定されている場合には、回転数Nに基づいて、工具仮想物体にかかる力(トルク)Tdを求める。この力覚計算部221による計算処理については後述する。 【0051】 また、力覚計算部221は、ねじ回し力覚モードが設定されておらず、工具仮想物体が他の仮想物体と干渉した旨を干渉判定部211から受けた場合には、この干渉によって工具仮想物体にかかる力Fdを求める。 【0052】 力覚計算部221はトルクTd若しくは力Fdを制御部231とシミュレーションエンジン311とに送出する。 【0053】 制御部231は、力覚提示装置1が有するフレーム140内のアクチュエータ等がこの力Fd若しくはトルクTdをエンドエフェクタに対して提供するために、このアクチュエータ等を制御するためのそれぞれの制御値Fr若しくは制御値Trを求める。そして、この求めた制御値Fr若しくはTrを力覚提示装置1に対して送出する。 【0054】 31はシミュレーション部で、シミュレーションエンジン311を有する。シミュレーションエンジン311は、力覚計算部221が計算したトルクTdに基づいて、六角ねじ仮想物体の変形や回転、移動等をシミュレーションする。またシミュレーションエンジン311は、力覚計算部221が計算した力Fdに基づいて、台の仮想物体14等の変形や回転、移動等をシミュレーションする。シミュレーション結果は即座に干渉判定部211に送出される。これにより干渉判定部211はこのシミュレーション結果に応じた六角ねじ仮想物体と工具仮想物体との上記干渉判定処理や、工具仮想物体と台の仮想物体140等との上記干渉判定処理を行う。また、このシミュレーション結果は、後段のグラフィックスエンジン411に対しても送出される。 【0055】 41は画像レンダリング部で、グラフィックスエンジン411を有する。グラフィックスエンジン411は、与えられた視点から見た工具仮想物体、六角ねじ仮想物体等を含む仮想物体群の画像を生成する。なお、これらの仮想物体は、シミュレーション結果に基づいて移動したり変形していたりする。 【0056】 また、与えられた視点から見える仮想物体(仮想空間)の画像を生成する為の技術については上記バーチャルリアリティ技術や複合現実感提示技術などで用いられている周知の技術であるので、係る技術についての説明は省略する。 【0057】 51は画像表示部であり、CRTや液晶画面などでもって構成されているフラットパネルディスプレイやHMDである。画像表示部51は、グラフィックスエンジン411が生成した画像を表示する。なお、グラフィックスエンジン411が生成した画像は表示することに限定するものではなく、格納したり、ネットワークを介して外部に出力したりしても良い。 【0058】 次に、上記力覚計算部221が行う処理について説明する。六角ねじ仮想物体が工具仮想物体によって締結されておらず、六角ねじ仮想物体とめねじ部とがかみ合っており、且つエンドエフェクタを用いてねじ締め操作がなされた場合、干渉判定部211は先ず、ねじ回し力覚モードのうち、ねじ締めモードを設定する。そして上述の通り、トルクTdを求める。ねじ締め操作については、例えば、エンドエフェクタをねじを締める方向に往復させればよい。トルクTdを計算する処理について図4Aを用いて説明する。 【0059】 図4Aは横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。係るグラフは、ねじ締め作業の開始から終了までの間で、ねじ回転数Nに対してトルクTdが増加する様子を示している。なお、ねじ回しの回転数Nの最小(開始)から最大(終了)までの範囲を全回転領域と定義する。 【0060】 力覚計算部221は干渉判定部211から取得したねじ込み回転数Nを参照し、現在の六角ねじ仮想物体に対するねじ締め状態が、「噛み合い開始状態」、「ねじ込み状態」、「締め上げ状態」の何れであるのかを判別する。 【0061】 噛み合い開始状態は、初めてめねじとおねじが噛み合うところであり、力覚計算はねじ込み回転数Nに応じて線形にトルクTdを増加させる。そしてある程度、例えば一山半(1.5回転)噛み合ったら、ねじ込み状態へと移行する。 【0062】 ねじ込み状態では、めねじとおねじの動摩擦が働き、ねじ込み回転数Nによってその接触面積が増えていく。そのため、力覚計算は噛み合い開始状態よりも緩やかな傾きで、ねじ込み回転数Nに応じて線形にトルクTdを増加させる。ねじ込み状態のねじ込み回転数Nはねじ長さによって決定される。 【0063】 最後に、締め上げ状態では一気にめねじとおねじの接触面積が大きくなり、急激な傾きで、ねじ込み回転数Nに応じて線形にトルクTdを増加させる。 【0064】 なお、各状態のねじ込み回転数Nに対するトルクTdの傾きは、ねじ種やねじ径によって決定させる。このような、ねじ種やねじ径等の、六角ねじ仮想物体に関するパラメータについては力覚計算部221が管理しているものとする。 【0065】 以上の説明では、各状態においてそれぞれねじ込み回転数Nに対してトルクTdを線形に増加させたが、これに限定するものではない。例えば、図4Aに示したグラフ中の破線のように、連続的にトルクTdを増加させても良いし、高次の関数など非線形にしても良い。 【0066】 更には図4Bに示す如く、噛み合い開始状態とねじ込み状態を兼ねても良い。図4Bは、横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。そのときのトルクをTdsとし、締め上げ状態のトルクTdeとしたとき、ねじ込み回転数Nに応じてトルクTds、Tdeを線形に増加させ、その傾きをdTds/dN<dTde/dNとすれば良い(図4B中の実線)。或いは、ねじ込み回転数Nに応じてトルクTds、Tdeはそれぞれ一定とし、Tds<Tdeとしても良い(図4B中の破線)。このように、ねじ回しの力覚モードを設定した場合、ねじ込みの領域の少なくとも一部の区間においては、提示するトルクTdは複数の傾き、あるいは複数の大きさを持てば良い。 【0067】 このように、ねじの締め上げ作業は作業状態、すなわちねじの回転数Nに応じてトルクTdが工具にかかるようにすると、現実感を著しく向上させることができる。このためには、全回転領域内の少なくとも一部でトルクTdを可変とする力覚モードを有することが必要である。また、ねじを締め始める状態と締め終わる状態で、トルクTdの回転するに対する変化分が異なるように設定することにより、より使用者に現実感を与えることが可能となる。 【0068】 次に、締結された六角ねじ仮想物体に工具仮想物体が触れ、ねじ緩め操作がなされた場合、干渉判定部211はねじ回し力覚モードのうち、ねじ緩めモードを設定する。ねじ緩め操作については、例えば、エンドエフェクタをねじゆるめる方向に往復させればよい。この場合、力覚計算部221によるトルクTdの計算方法は、図5A、5Bに示す如く、図4A、4Bを用いて説明したねじ締めモードとは反対の方法を採用すればよい。図5A、5Bは、横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【0069】 先ず力覚計算部221は干渉判定部211から取得したねじ込み回転数Nを参照し、現在の六角ねじ仮想物体に対するねじ緩め状態が、「緩め開始状態」、「ねじ緩め状態」、「ねじ開放状態」の何れであるのかを判別する。 【0070】 図5A中の実線に示す如く、緩め開始状態は、めねじとおねじが強い力で噛み合い静摩擦が働いており、力覚計算はねじ緩め回転数Nに応じて線形にトルクTdを減少させる。 【0071】 ねじ緩め状態では、めねじとおねじの動摩擦が働き、ねじ込み回転数Nによってその接触面積が減っていく。そのため、力覚計算は緩め開始状態よりも緩やかな傾きで、ねじ緩め回転数Nに応じて線形にトルクTdを減少させる。ねじ緩め状態のねじ緩め回転数Nはねじ長さによって決定される。 【0072】 最後に、ねじ開放状態ではめねじとおねじの接触面積がなくなり開放されるため、ねじ緩め状態よりも大きな傾きで、ねじ緩め回転数Nに応じて線形にトルクTdを減少させる。 【0073】 なお、各状態のねじ込み回転数Nに対するトルクTdの傾きは、ねじ種やねじ径によって決定させる。 【0074】 以上の説明では、各状態においてそれぞれねじ緩め回転数Nに対してトルクTdを線形に減少させたが、これに限定するものではない。例えば、図5Aに示したグラフ中の破線に示す如く、連続的にトルクTdを減少させても良いし、高次の関数など非線形にしても良い。或いは、図5Bに示す如く、ねじ緩め状態とねじ開放状態を兼ねても良い。そのときのトルクをTdsとし、締め上げ状態のトルクTdeとしたとき、ねじ緩め回転数Nに応じてトルクTds、Tdeを線形に減少させる。そしてその傾きをdTds/dN<dTde/dN(|dTds/dN|>|dTde/dN|)とすれば良い(図5B中の実線)。或いは、ねじ緩め回転数Nに応じてトルクTds、Tdeはそれぞれ一定とし、Tds>Tdeとしても良い(図5B中の破線)。このように、ねじ緩めモードを設定した場合、ねじ緩めの領域の少なくとも一部の区間において、提示するトルクTdは複数の傾き、あるいは複数の大きさを持てば良い。 【0075】 また、力覚計算部221が計算するトルクTdは、図4A、4Bや図5A、5Bのグラフに基づいた数式を用いても良いし、係るグラフをテーブル化し、このテーブルを参照することで回転数Nに対応するトルクTdを特定しても良い。 【0076】 また、トルクTdを求める際には、ねじ締め回転数やねじ緩め回転数以外にも、ねじ種やねじ径、ねじ長さを用いているが、係るパラメータについても数式中に含めることに限定するものではなく、テーブル化しても良い。この場合、六角ねじ仮想物体の種別に対応するパラメータをこのテーブルから取得し、トルクTdを求める際に用いることになる。 【0077】 さらに、ねじ回し力覚モードを設定した際、力覚提示装置1は少なくとも、ねじの軸の並進方向と倒れ方向は拘束することが好ましい。例えば、本システムを複合現実感提示システムに適用した場合を考える。図6は、図2Aに示した状態における力覚提示装置1に工具仮想物体600、六角ねじ仮想物体650を重畳表示した場合における表示例を示す図である。係る表示において工具仮想物体600と六角ねじ仮想物体650とが重なった場合、干渉判定部211はねじ回し力覚モードを設定し、ユーザは工具を模したエンドエフェクタ110を、ねじを回す方向へ動かす。そのとき、エンドエフェクタ110は、同図矢印680、690で示す方向にのみ動かし、その他の方向は動かさないように拘束する。この拘束条件は力覚提示装置1だけでなく、画像表示部5にも同様に適用することが好ましい。 【0078】 このように、ねじ回し力覚モードを設けることで、簡単な計算あるいはテーブルを参照するだけで、ねじ回しの力覚を提示することができる。これにより、計算量が軽減されるため、リアルタイムな力覚提示が可能となり、滑らかでかつ自然な力覚提示を行うことができる。 【0079】 図9は、情報処理装置350が力覚提示装置1を制御するための処理のフローチャートである。 【0080】 ステップS901では先ず、干渉判定部211が力覚提示装置1からエンドエフェクタの位置を工具仮想物体の位置Xとして取得する。そして取得した位置Xと、六角ねじ仮想物体の位置とを用いて、それぞれの干渉状態を求める。 【0081】 更に、干渉判定部211は、六角ねじ仮想物体がめねじ部とかみ合っているか否かをチェックする。係る処理の結果、工具仮想物体と六角ねじ仮想物体とがかみ合っており、且つ六角ねじ仮想物体がめねじ部とかみ合っている場合には、処理をステップS902に進め、干渉判定部211はねじ回し力覚モードを設定する。そして干渉判定部211は、干渉状態Sと工具仮想物体の位置Xと六角ねじ仮想物体の回転数Nとを力覚計算部221に送出する。そして処理をステップS904に進める。 【0082】 一方、係る干渉判定により、工具仮想物体と六角ねじ仮想物体との干渉を検知していなかったり、六角ねじ仮想物体がめねじ部とかみ合っていない場合には、ねじ回し力覚モードを解除し、処理をステップS901からステップS903に進める。そしてステップS903では、干渉判定部211は、工具仮想物体と他の仮想物体との干渉状態を求める。係る干渉状態が、工具仮想物体が何れの仮想物体とも干渉していないことを示すものである場合には処理をステップS901に戻す。一方、工具仮想物体が六角ねじ仮想物体以外の何れかの仮想物体と干渉している場合には処理をステップS904に進める。 【0083】 次にステップS904では、力覚計算部221は、ねじ回し力覚モードが設定されているか否かをチェックする。このチェックの結果、設定されている場合には処理をステップS904を介してステップS905に進め、設定されていない場合にはステップS904を介してステップS907に進める。 【0084】 ステップS905では、力覚計算部221は、回転数Nに基づいて、工具仮想物体にかかる力(トルク)Tdを求める。そして力覚計算部221はトルクTdを制御部231とシミュレーションエンジン311に送出する。ステップS906では、制御部231は、フレーム140内のアクチュエータ等がこのトルクTdをエンドエフェクタに対して提供するために、このアクチュエータ等を制御するための制御値Trを求める。 【0085】 一方、ステップS907では、力覚計算部221は、工具仮想物体と六角ねじ仮想物体以外の仮想物体との干渉によって工具仮想物体に係る力Fdを求める。そして力覚計算部221は力Fdを制御部231とシミュレーションエンジン311に送出する。ステップS908では、制御部231は、フレーム140内のアクチュエータ等がこの力Fdをエンドエフェクタに対して提供するために、このアクチュエータ等を制御するための制御値Frを求める。 【0086】 ステップS909では、制御部231が求めた制御値Fr若しくはTrを力覚提示装置1に対して送出する。 【0087】 [第2の実施形態] 本実施形態では、第1の実施形態で説明したねじ回し力覚モードに加え、異常モードを設ける。 【0088】 実際のねじ締めでは、めねじとおねじが噛み合っていない状態で締め込みと、ねじ込みができず、異常トルクが発生する。その原因は異物が混入することや、ねじ加工でバリが残っていること、異なる規格のねじを挿入する、などがある。その内の一つに、ねじの軸方向から傾けて噛み合わせたときにも異常トルクが発生する。本実施形態では、異常トルクの提示方法として、ねじの軸方向から傾きを検出し、その検出結果に応じて異常モードを設定し、異常トルクを計算する力覚提示方法について説明する。 【0089】 尚、以下では、第1の実施形態に加える部分のみについて説明する。図3に示したシステムにおいて、力覚提示装置1が有するエンコーダなどのポジショニングセンサや、不図示の位置検出部を用いて、めねじに対するおねじの傾きを求める。その傾きがトレランス(許容範囲)内であれば、干渉判定部211は第1の実施形態で説明したねじ回し力覚モードを設定する。 【0090】 しかしながら、めねじに対するおねじの傾きがトレランスを越えた場合、干渉判定部211は異常モードを設定する。めねじに対するおねじの傾きのトレランスは、例えば、ねじ種とねじ径によって設定すれば良い。ねじ種とねじ径から、ねじのピッチが規格で決まっているので、ピッチからねじ山を一山乗り越える角度を求め、それをトレランスにする。このトレランスはねじの種類や取り付け場所にて応じてあらかじめ決められたもので、トルク決定に用いるテーブルに予め登録しておけば良い。また、ユーザの熟練度やシステム全体の仕様にあわせて、このトレランスを変更させても良い。 【0091】 異常モードにおいて、力覚計算部221が計算する異常トルクについて図7を用いて説明する。なお、図7では異常モードとねじ回し力覚モードとにおけるトルクTdとねじ込み回転数Nとの関係を示している。図7は、横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【0092】 干渉判定部211が異常モードを設定すると、力覚計算部211は、現在の六角ねじ仮想物体に対するねじ緩め状態が、「噛み合い開始状態」、「ねじ込み状態」の何れであるのかを判別する。そして、図7中に示す実線700のように、噛み合い状態とねじ込み状態で、それぞれねじ込み回転数Nに対して、線形にトルクTdを増加させる。さらに、ねじ込み状態でのねじ込み回転数Nに対するトルクTdの傾きは、噛み合い状態よりも大きくする。 【0093】 なお、各状態のねじ込み回転数Nに対するトルクTdの傾きは、ねじ種やねじ径によって決定させる。なお、ここでは各状態においてそれぞれねじ込み回転数Nに対してトルクTdを線形に増加させたが、これに限定するものではない。例えば、線形を高次関数など非線形にしても良いし、噛み合い開始状態とねじ込み状態との間の不連続性をなくすよう、補間して連続関数にしてトルクTdを計算しても良い。若しくは、図7中の破線701のようにステップ状にトルクTdを計算しても良い。 【0094】 このように噛み合い開始状態のトルクをTd1とし、ねじ込み状態のトルクをTd2としたとき、トルクTdをねじ込み回転数Nで微分した値がdTd1/dN<dTd2/dNとすれば良い(図7中の実線700)。或いは、ねじ込み回転数Nに応じてトルクTd1、Td2はそれぞれ一定として、Td1<Td2としても良い(図7中の破線701)。このように、異常モードを設定した場合、ねじ込みの領域の少なくとも一部の区間において、提示するトルクTdは複数の傾き、あるいは複数の大きさを持てば良い。 【0095】 以上で説明した異常モードにおいて、力覚計算部221が計算するトルクTdは、図7のグラフに基づいた数式を用いても良いし、係るグラフをテーブル化し、このテーブルを参照することで回転数Nに対応するトルクTdを特定しても良い。 【0096】 また、トルクTdを求める際には、ねじ締め回転数やねじ緩め回転数以外にも、ねじ種やねじ径、ねじ長さを用いているが、係るパラメータについても数式中に含めることに限定するものではなく、テーブル化しても良い。この場合、六角ねじ仮想物体の種別に対応するパラメータをこのテーブルから取得し、トルクTdを求める際に用いることになる。 【0097】 このように、異常モードを設けることで、簡単な計算あるいはテーブルを参照するだけで、異常トルクの力覚を提示することができる。これにより、計算量が軽減されるため、リアルタイムな力覚提示が可能となり、滑らかでかつ自然な力覚提示を行うことができる。 【0098】 [第3の実施形態] なお、上記各実施形態では、情報処理装置350が有する上記各部はハードウェアとして説明した。しかし各部のうち一部をソフトウェアでもって実現し、係るソフトウェアをPC(パーソナルコンピュータ)等のコンピュータでもって実行することで、同様の目的を達成するようにしても良い。 【0099】 図10は係るコンピュータのハードウェア構成を示すブロック図である。 【0100】 1001はCPUで、RAM1002やROM1003に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、上記情報処理装置350が行うものとして説明した各処理を実行する。 【0101】 1002はRAMで、外部記憶装置1006からロードしたプログラムやデータを一時的に記憶するためのエリアや、I/F(インターフェース)1007を介して上記力覚提示装置1から取得した様々な情報を一時的に記憶するためのエリアを有する。更にRAM1002は、CPU1001が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1002は、各種のエリアを適宜提供することができる。 【0102】 1003はROMで、本コンピュータの設定データやブートプログラム等を格納する。 【0103】 1004は操作部で、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU1001に対して入力することができる。 【0104】 1005は表示部で、CRTや液晶画面などにより構成されており、CPU1001による処理結果を画像や文字などでもって表示することができる。なお、表示部1005を上記HMDとしても良い。 【0105】 1006は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置である。ここにはOS(オペレーティングシステム)や、情報処理装置350が行うものとして説明した上述の各処理をCPU1001に実行させるためのプログラムやデータ等が保存されている。例えば、図9に示したフローチャートに従った処理をCPU1001に実行させるためのプログラムやデータが保存されている。更には、図4A、B、5A、5B、7に示したグラフ、上記パラメータをテーブル化した場合には、このテーブルのデータが保存されている。外部記憶装置1006に保存されている各種の情報は、CPU1001による制御に従って適宜RAM1002にロードされ、CPU1001による処理対象となる。 【0106】 1007はI/Fであり、上記力覚提示装置1を本コンピュータに接続するためのものである。本コンピュータはこのI/F1007を介して上記力覚提示装置1とのデータ通信を行う。 【0107】 1008は上述の各部を繋ぐバスである。 【0108】 [その他の実施形態] また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。 【0109】 また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 【0110】 さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。 【0111】 本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。 【図面の簡単な説明】 【0112】 【図1】仮想の工具を用いて仮想のねじを締める様子を示した図である。 【図2A】力覚提示装置の外観例を示す図である。 【図2B】力覚提示装置の外観例を示す図である。 【図3】本発明の第1の実施形態に係るシステムの機能構成例を示す図である。 【図4A】横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【図4B】横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【図5A】横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【図5B】横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【図6】図2Aに示した状態における力覚提示装置1に工具仮想物体600、六角ねじ仮想物体650を重畳表示した場合における表示例を示す図である。 【図7】横軸をねじ込み回転数N、縦軸をトルクTdとしたグラフである。 【図8】従来のバーチャルリアリティにおける力覚提示を実現するためのシステムの機能構成を示すブロック図である。 【図9】情報処理装置350が力覚提示装置1を制御するための処理のフローチャートである。 【図10】コンピュータのハードウェア構成を示すブロック図である。 【図11】おねじとしての仮想物体13と、めねじ部としての仮想物体の断面図である。
|
| 【出願人】 |
【識別番号】000001007 【氏名又は名称】キヤノン株式会社
|
| 【出願日】 |
平成18年8月29日(2006.8.29) |
| 【代理人】 |
【識別番号】100076428 【弁理士】 【氏名又は名称】大塚 康徳
【識別番号】100112508 【弁理士】 【氏名又は名称】高柳 司郎
【識別番号】100115071 【弁理士】 【氏名又は名称】大塚 康弘
【識別番号】100116894 【弁理士】 【氏名又は名称】木村 秀二
|
| 【公開番号】 |
特開2008−55527(P2008−55527A) |
| 【公開日】 |
平成20年3月13日(2008.3.13) |
| 【出願番号】 |
特願2006−232813(P2006−232813) |
|