JP3713381B2 - Object gripping motion simulation device - Google Patents

Object gripping motion simulation device Download PDF

Info

Publication number
JP3713381B2
JP3713381B2 JP09088698A JP9088698A JP3713381B2 JP 3713381 B2 JP3713381 B2 JP 3713381B2 JP 09088698 A JP09088698 A JP 09088698A JP 9088698 A JP9088698 A JP 9088698A JP 3713381 B2 JP3713381 B2 JP 3713381B2
Authority
JP
Japan
Prior art keywords
vector
virtual object
force
state
action point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP09088698A
Other languages
Japanese (ja)
Other versions
JPH11272157A (en
Inventor
輝明 飯沼
秀樹 室田
靖夫 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP09088698A priority Critical patent/JP3713381B2/en
Publication of JPH11272157A publication Critical patent/JPH11272157A/en
Application granted granted Critical
Publication of JP3713381B2 publication Critical patent/JP3713381B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は物体の把持動作シミュレーション装置に関し、特に、物体を把持する際の接触感や重量感を疑似的に体験させることのできるシミュレーション装置に関する。
【0002】
【従来の技術】
コンピュータを利用したシミュレーションは、種々の分野で採り入れられており、特に近年では、コンピュータの画像処理機能の向上により、いわゆるバーチャル・リアリティーと呼ばれている仮想現実の世界をディスプレイ画面上に表示するシミュレーション装置が普及してきている。この種のシミュレーション装置では、通常、オペレータは仮想の空間内を自由に移動することができ、オペレータの移動に伴ってディスプレイの表示画面がリアルタイムで描き換えられてゆく。また、必要に応じて、オペレータの操作入力に基き、仮想の空間内の物体情報をデータとして入手することも可能である。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のシミュレーション装置は、ディスプレイ上の映像などを利用して、オペレータの視覚を通じて仮想の世界を提示することに主眼が置かれており、オペレータの触覚を通じて仮想の世界を提示する機能に欠けている。たとえば、オペレータが仮想空間内の物体を指示して、この物体を入手するコマンドを入力すれば、ディスプレイ画面上では、あたかもその物体を手にした情景が表示されるような機能は、エンターテイメント型のシミュレーション装置で広く利用されている。しかしながら、このような機能は、「物体を手に取った」という概念を視覚を通じて提示する機能にすぎず、オペレータの触覚に直接働きかけるものではない。
【0004】
もちろん、視覚を通じて仮想現実を提示する技術は、応用分野も広く、極めて重要な技術である。ただ、特殊な分野においては、触覚を通じて仮想現実を提示する技術が重要性をもつこともある。たとえば、美術館や博物館などが所蔵する美術品は、視覚を通じて鑑賞することが重要であることは当然であるが、触覚を通じた鑑賞も大きな意味をもつ。具体的には、陶磁器、彫刻、仏像などのもつ重量感や凹凸感、表面の接触感などは、実際に手に取って触れてみなければ味わうことのできない感覚である。ところが、これらの美術品は国宝や重要文化財などに指定されているものをはじめとして、非常に財産的価値の高いものが多く、美術館や博物館で展示することは可能であっても、一般の参観者の手に取らせて自由に鑑賞させることは困難である。
【0005】
また、最近はCAD装置を利用して製品設計をすることが多くなってきたが、CAD装置で設計された製品は、実際の試作品が完成するまでは、実際に手に取ることはできない。もちろん、三次元の外観は設計段階においてディスプレイ画面上で確認することができるので、視覚を通じてのデザイン把握や表面の質感把握は従来のCAD装置を利用して十分に行うことができる。しかしながら、製品の重量感や接触感は設計段階では体験することができない。
【0006】
そこで本発明は、物体を把持する際の接触感や重量感を疑似的に体験させることのできるシミュレーション装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
(1) 本発明の第1の態様は、所定の仮想物体を定義し、この仮想物体を掴む動作を疑似的に体験させるためのシミュレーションを行う物体の把持動作シミュレーション装置において、
仮想物体を定義するための情報として、当該仮想物体の表面を三次元座標系上の所定位置に配置された二次元多角形の集合体として表現する形状データと、当該仮想物体の質量を示すパラメータmと、を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて作用点に加える力を発生させる力発生部と、を有する複数n個の力トランスデューサと、
所定の演算を実施することにより、n個の力トランスデューサのそれぞれについての作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを個々の力トランスデューサへ与える制御を行う演算制御手段と、
を設け、
演算制御手段を、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、仮想物体の内部に位置する作用点については接触状態であると判定し、仮想物体の外部に位置する作用点については非接触状態であると判定する接触状態判定部と、
接触状態であると判定された作用点については、最も近い二次元多角形αとの距離dに応じた大きさを有し、この最も近い二次元多角形αに垂直な法線ベクトルNと同じ方向をもった反力ベクトルFを求め、非接触状態であると判定された作用点については、大きさ零の反力ベクトルFを求め、求めた反力ベクトルFに基いて各作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
各作用点の反力ベクトルFを合成することにより合成反力ベクトルΣFを求め、この合成反力ベクトルΣFの大きさが所定の基準値Fr以下であった場合には把持動作が平衡状態にあると判定し、所定の基準値Frを越える場合には把持動作が非平衡状態にあると判定する平衡状態判定部と、
非平衡状態にあると判定された場合には、合成反力ベクトルΣFの反転ベクトル−ΣFおよびパラメータmに基いて決定される加速度が作用した場合の仮想物体の移動態様を示す移動ベクトルDを演算により求め、この移動ベクトルDに基いて仮想物体の位置が変更されるように物体情報設定手段内の情報を更新する処理を行う物体情報更新部と、
によって構成したものである。
【0008】
(2) 本発明の第2の態様は、上述の第1の態様に係る物体の把持動作シミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された形状データおよび位置検出部が検出した作用点の位置に基づいて、ディスプレイの画面上に仮想物体および作用点を表示するための画像データを作成する物体形状描画手段と、
を更に設けるようにしたものである。
【0009】
(3) 本発明の第3の態様は、上述の第2の態様に係る物体の把持動作シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、質感データおよび光源データを考慮して仮想物体の画像データを作成するようにしたものである。
【0010】
(4) 本発明の第4の態様は、上述の第1〜第3の態様に係る物体の把持動作シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の硬さを示すパラメータKを設定し、
力制御ベクトル演算部が、距離dとパラメータKとの積(d・K)に基づいて反力ベクトルFの大きさを求めるようにしたものである。
【0011】
(5) 本発明の第5の態様は、上述の第1〜第4の態様に係る物体の把持動作シミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体表面の摩擦係数を示すパラメータSを設定し、
演算制御手段が、
各作用点における摩擦力を反力ベクトルFの大きさとパラメータSとの積と定義することにより、各作用点における摩擦力の総和である総摩擦力Tsを求める摩擦力演算部と、
重力加速度ベクトルgに仮想物体の質量を示すパラメータmを乗じることにより重力ベクトルWを求める重力演算部と、
平衡状態判定部によって平衡状態にあると判定され、かつ、重力ベクトルWの大きさよりも総摩擦力Tsの大きさの方が大きいという条件を満たす場合には、その時点で接触状態にあるL個の作用点によって仮想物体が把持状態にあると判定し、上記条件を満たさない場合には、仮想物体は非把持状態にあると判定する把持状態判定部と、
仮想物体が把持状態にあると判定されたときに、L個の作用点の位置の時間的変化に基いて仮想物体に作用する加速度ベクトルAを求める加速度演算部と、
加速度ベクトルAにパラメータmを乗じることにより得られる運動ベクトルmAと重力ベクトルWとを合成することにより得られる外力ベクトル(mA+W)に基いて、各作用点に作用する分散外力ベクトルFaを求める分散外力ベクトル演算部と、
を更に備え、
力制御ベクトル演算部が、
仮想物体が非把持状態にあると判定されたときには、各作用点についての反力ベクトルFを、当該作用点に加えるべき制御力を示す力制御ベクトルCとし、
仮想物体が把持状態にあると判定されたときには、接触状態にある作用点については、各作用点についての反力ベクトルFと分散外力ベクトルFaとを合成することにより得られるベクトルを、当該作用点に加えるべき制御力を示す力制御ベクトルCとし、非接触状態にある作用点については、大きさ零のベクトルを当該作用点に加えるべき制御力を示す力制御ベクトルCとするようにしたものである。
【0012】
(6) 本発明の第6の態様は、上述の第5の態様に係る物体の把持動作シミュレーション装置において、
分散外力ベクトル演算部が、Fa=(mA+W)/Lなる式に基いて各作用点に作用する分散外力ベクトルFaを決定するようにしたものである。
【0013】
(7) 本発明の第7の態様は、上述の第5または第6の態様に係る物体の把持動作シミュレーション装置において、
演算制御手段が、
仮想物体が把持状態にあると判定されたときに、個々の作用点について、接触状態から非接触状態への状態遷移もしくは非接触状態から接触状態への状態遷移を監視する接触状態監視部を更に備え、
把持状態判定部が、すべての作用点について状態遷移が生じていない場合は、引き続き把持状態にあるとの判定を行い、いずれかの作用点について状態遷移が生じていた場合には、把持状態/非把持状態の判定を再度実行するようにしたものである。
【0014】
(8) 本発明の第8の態様は、上述の第1〜第7の態様に係る物体の把持動作シミュレーション装置において、
演算制御手段が、
仮想物体が把持状態にあると判定されたときに、加速度ベクトルAに基く仮想物体の移動態様を示す移動ベクトルMを演算により求める移動ベクトル演算部を更に備え、
物体情報更新部が、移動ベクトルMに基いて仮想物体の位置が変更されるように物体情報設定手段内の情報を更新する処理を行うようにしたものである。
【0015】
(9) 本発明の第9の態様は、上述の第1〜第8の態様に係る物体の把持動作シミュレーション装置における演算制御手段を、コンピュータにプログラムを組み込むことにより構成するようにし、当該プログラムをコンピュータ読み取り可能な記録媒体に記録するようにしたものである。
【0016】
(10) 本発明の第10の態様は、上述の第1〜第8の態様に係る物体の把持動作シミュレーション装置において、
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックによって構成するようにしたものである。
【0020】
【発明の実施の形態】
§1. 装置の基本構成
以下、本発明を図示する実施形態に基いて説明する。図1は本発明の一実施形態に係る物体の把持動作シミュレーション装置の基本構成を示すブロック図である。この装置では、所定の仮想物体を定義し、この仮想物体を掴む動作を疑似的に体験させるためのシミュレーションを行うことができる。この装置の構成要素は、図示のとおり、物体情報設定手段10と、ディスプレイ20と、物体形状描画手段30と、演算制御手段40と、n個の力トランスデューサ50とである。
【0021】
物体情報設定手段10は、仮想物体を定義するための情報を設定する機能を有する。オペレータが、この物体情報設定手段10に対して種々のデータやパラメータを入力すると、入力されたデータやパラメータは、この物体情報設定手段10内に格納され保持される。オペレータは、物体情報設定手段10に対して設定したデータやパラメータを変更することにより、シミュレーションの条件設定を適宜変えることができる。この実施形態では、仮想物体を定義するための情報として、図示のように、形状データ,質感データ,光源データなる3種類のデータと、硬さK,摩擦係数S,質量mなる3種類のパラメータとを設定できるようにしている。
【0022】
ディスプレイ20は、仮想物体を表示するための手段であり、図1では立方体形状の仮想物体Bが所定位置に表示されている状態が示されている。物体形状描画手段30は、物体情報設定手段10内に設定された情報(形状データ,質感データ,光源データ)に基いて、ディスプレイ20の画面上の所定位置に仮想物体Bの形状を描画する機能を有する。なお、物体形状描画手段30は、仮想物体Bだけでなく、後述する作用点P1〜Pnの位置を、ディスプレイ20の画面上に描画する機能を有しており、図示のとおり、ディスプレイ20の画面上には、仮想物体Bとともに、n個の作用点P1〜Pnの位置が表示される。
【0023】
n個の力トランスデューサ50は、いずれも作用部51、位置検出部52、力発生部53を有しており、演算制御手段40に接続されている。各力トランスデューサ50は、オペレータに対するマン・マシン・インターフェイスとして機能し、オペレータから与えられる操作量を入力するとともに、オペレータに対して力を返す働きをする。この実施形態では、1つの力トランスデューサ50は、1本の指としての機能を果たすことになる。本発明は、物体の把持動作をシミュレートする装置であるので、少なくとも2組の力トランスデューサ50が必要である。
【0024】
作用部51上には、作用点Pが定義されており、この作用点Pはオペレータから加えられた力に基いて三次元の任意方向に移動可能となっている。ここでは、n個の力トランスデューサ50の各作用部51上に、それぞれ作用点P1〜Pnが定義されているものとする。図1のディスプレイ20上に表示されている作用点P1〜Pnは、この各作用部51上の作用点の位置である。位置検出部52は、作用部51上の作用点Pの三次元座標系上での位置を検出する機能を有する。具体的には、作用点Pの位置は、x座標,y座標,z座標の3つの座標値として検出されることになる。ここでは、この3つの座標値によって示された作用点Pの位置をP(x,y,z)なるデータで表わすことにする。たとえば、第1番目の力トランスデューサ50内の位置検出部52からは、作用点P1の位置を示すデータP1(x,y,z)が出力され、第2番目の力トランスデューサ50内の位置検出部52からは、作用点P2の位置を示すデータP2(x,y,z)が出力され、第n番目の力トランスデューサ50内の位置検出部52からは、作用点Pnの位置を示すデータPn(x,y,z)が出力される。
【0025】
これら作用点の位置を示すデータP1(x,y,z),P2(x,y,z),…,Pn(x,y,z)は、演算制御手段40に与えられ、更に、物体形状描画手段30へと与えられる。物体形状描画手段30は、前述したように、これらの位置を示すデータに基いて、ディスプレイ20の画面上に作用点P1〜Pnの位置を描画することになる。一方、演算制御手段40は、これら作用点の位置と、仮想物体の位置(物体情報設定手段10内の情報により定義されている)とに基いて、各作用点と仮想物体との接触状態を認識し、この接触状態に応じて各作用点に生じるべき反力(仮想物体側からオペレータ側へと返される力)を求める演算を行う。ここで行われる具体的な演算内容については後に詳述する。こうして、各作用点に生じるべき反力が得られたら、この反力に基いて各作用点に加えるべき制御力を示す力制御ベクトルCが求められ、これら力制御ベクトルCを示すデータは、個々の力トランスデューサ50へ与えられる。図示の例では、第1番目〜第n番目の力トランスデューサ50に対して、それぞれ力制御ベクトルC1〜Cnが与えられる。力トランスデューサ50内の力発生部53は、演算制御手段40から与えられた力制御ベクトルCに基いて作用点Pに加える力を発生させる機能を有する。
【0026】
§2. 物体情報設定手段に設定される情報
続いて、図1に示すシミュレーション装置において、物体情報設定手段10内に設定される具体的な情報について説明する。前述したように、この実施形態では、形状データ,質感データ,光源データなる3種類のデータと、硬さK,摩擦係数S,質量mなる3種類のパラメータとが設定される。
【0027】
形状データは、仮想物体の三次元形状を特定するためのデータである。ここでは、仮想物体の表面を二次元多角形の集合体として表現するようにしており、二次元多角形の頂点座標を示す頂点テーブルと、各二次元多角形を構成する頂点の連結関係を示す面テーブルと、によって形状データを構成するようにしている。たとえば、図2(a) に示すような立方体からなる仮想物体を定義する場合を考える。この立方体は、6つの正方形の集合体として表現することができ、図に1〜8の番号を付した合計8個の頂点によって構成される。このような立方体についての形状データは、図2(b) に示す頂点テーブルと図2(c) に示す面テーブルによって構成できる。図2(a) に示す頂点テーブルは、8個の頂点のそれぞれについて、XYZ三次元座標系における位置座標を示している。図示の例では、図2(a) に示す立方体は、頂点1が座標系の原点に位置し、頂点1−2に沿った辺がX軸上、頂点1−4に沿った辺がY軸上、頂点1−5に沿った辺がZ軸上に位置しており、一辺の長さが1となる立方体である。図2(b) の頂点テーブルは、単に8個の頂点の位置座標を示すものであり、仮想物体の形状は、実際には、図2(c) の面テーブルによって定義されることになる。この面テーブルは、この立方体を構成する6個の面▲1▼〜▲6▼の頂点構成を示しており、たとえば、面▲1▼は、頂点1−2−6−5を連結することにより形成される面になる。
【0028】
このように、頂点テーブルと面テーブルとを用いれば、任意形状の仮想物体の表面を定義することができる。図2の例では、仮想物体の表面を四角形の集合体として定義したが、三角形や六角形など、用いる多角形はどのようなものでもかまわない。また、本発明を実施する上では、仮想物体の形状定義は必ずしも二次元多角形を用いる必要はない。たとえば、球や円錐などであれば、方程式を用いて定義することも可能であり、物体情報設定手段10に設定される形状データは、数値、式を問わず、形状を定義することができる情報であればどのようなものでもかまわない。なお、ここに示す実施形態では、形状データは座標を示す情報(図2の例では、頂点テーブル内の各座標値)を含んでいるため、形状とともに位置を定義する情報として機能する。もちろん、形状データとは別個に位置を示すための位置データを設定するようにしてもよい。
【0029】
物体情報設定手段10に設定される質感データは、形状データによって定義された仮想物体の表面の質感を示すためのデータである。具体的には、仮想物体を構成する各面(図2の例では、面▲1▼〜▲6▼)についての環境色,拡散色,鏡面色,鏡面係数などの値が質感データとして設定される。また、光源データは、この仮想物体を照明するための光源の性質を示すデータであり、光源の形状(点,線,面),光源の位置,光源色などを示すデータが光源データとして設定される。この質感データおよび光源データは、ディスプレイ20の画面上に、定義した仮想物体を表示するために利用されるデータである。物体形状描画手段30は、この質感データおよび光源データを考慮して、仮想物体Bの形状を描画することになる。
【0030】
一方、硬さK,摩擦係数S,質量mなる3種類のパラメータは、仮想物体を把持する動作を行う際の接触感や重量感に直接関連するパラメータであり、これらのパラメータの設定を変えることにより、シミュレーション時の接触感や重要感を変えることができる。硬さKは、仮想物体の表面に力を加えた際に、物体側から返ってくる反力の大きさを決定するパラメータである。硬さKの値を大きく設定すればするほど反力の大きさも大きくなり、仮想物体に触れたときに硬い接触感が得られる。逆に、硬さKの値を小さく設定すればするほど反力の大きさも小さくなり、仮想物体に触れたときに柔らかい接触感が得られる。硬さKは、仮想物体の個々の表面ごとにそれぞれ異なる値を設定することも可能であるが、本実施形態では、1つの仮想物体に1つの硬さKのみを設定するようにしている。
【0031】
摩擦係数Sは、仮想物体の表面に加えた力のうち、物体を把持するために有効に作用する力の割合を決定するパラメータである。摩擦係数Sの値を大きく設定すればするほど有効な力の割合が多くなり、物体の把持が容易になる。逆に、摩擦係数Sの値を小さく設定すればするほど有効な力の割合が少なくなり、物体の把持が困難になる。この摩擦係数Sも、仮想物体の個々の表面ごとにそれぞれ異なる値を設定することも可能であるが、本実施形態では、1つの仮想物体に1つの摩擦係数Sのみを設定するようにしている。
【0032】
質量mは、仮想物体の質量を示すものであり、後に詳述するように、仮想物体の移動速度を求める演算や、仮想物体に作用する重力を求める演算などに物理量として利用されることになる。質量mの値を大きく設定すればするほど、把持動作を行う際に体感できる重量感が増すことになる。なお、本実施形態では、演算を単純化するために、定義した仮想物体を均一密度の物体として取り扱い、重心位置に単一の質点を定義し、設定した質量mはこの単一の質点のもつ質量として取り扱うことにしている。もちろん、仮想物体を非均一密度の物体として取り扱うために、仮想物体の内部に多数の質点を定義し、個々の質点ごとにそれぞれ独立した質量を定義するようにしてもかまわない。
【0033】
§3. 具体的な装置構成
図1に示すブロック図は、説明の便宜上、本発明に係る装置を機能要素の集合としてとらえ、個々の機能要素をブロックで示したものであり、実際には、このシミュレーション装置はコンピュータを利用して構築される。すなわち、図1に示す装置における物体情報設定手段10、物体形状描画手段30、演算制御手段40は、汎用のコンピュータに、上述した各処理を実行するためのプログラムを組み込むことにより構成することができる。たとえば、物体情報設定手段10に対するデータやパラメータの設定は、キーボードやマウスなどのコンピュータ用入力機器を用いて行うことができ、設定されたデータやパラメータはメモリや種々の記憶装置に格納されることになる。また、物体形状描画手段30による描画機能や、演算制御手段40による演算処理機能は、コンピュータに組み込まれたプログラムによって実現されることになり、このプログラムは、コンピュータ読み取り可能な記録媒体に記録して配布することが可能である。なお、ディスプレイ20は、コンピュータ用の一般的なディスプレイ装置によって構成できる。
【0034】
一方、力トランスデューサ50は、オペレータの物理的操作をデジタルデータ(作用点の位置を示すデータ)に変換する第1の機能と、演算制御手段40から与えられるデジタルデータ(力制御ベクトルCを示すデータ)を物理的な力に変換してオペレータに与える第2の機能とを実行する物理的な構成要素である。一般的な物体の把持動作には、通常、指が用いられる。そこで、この実施形態では、上記機能が効果的に実行されるように、力トランスデューサ50の作用部51を、オペレータの指先に嵌めて固定できる指サックにより構成し、オペレータの指の動きに基いて作用点Pを移動できるようにするとともに、力制御ベクトルCに基く制御力がこの指サックを介してオペレータの指に伝達されるように構成した。
【0035】
図3は、この指サックの形態をした作用部51を用いて構成される力トランスデューサ50の機能を示すブロック図である。作用部51は、ゴムなどの弾力性をもった材料で構成されており、オペレータは、この作用部51を指の先端に装着して固定することができる。図示の例では、この作用部51の先端部分に作用点Pが定義されている(もちろん、作用点Pは作用部51のいずれの部分に定義してもかまわないが、操作性を向上する上では、指先位置に定義するのが好ましい)。本発明では、このような力トランスデューサを複数n組用意する必要がある。物体に対する接触感を得るだけであれば、1組でも十分であるが、本発明は物体の把持動作をシミュレートする装置であり、物体の把持動作には少なくとも2組の力トランスデューサが必要になる。
【0036】
ここで、作用部51は三次元の自由度をもって移動可能な状態に支持されている必要がある。すなわち、作用点Pは、オペレータから加えられた力に基いて三次元の任意方向に移動可能な状態になっている必要がある(もちろん、作用点Pの移動可能空間は、所定の範囲内に制限されていてかまわない)。したがって、オペレータは、作用部51を指先に装着した状態で、指先を三次元空間内の任意の方向に移動させることができる。位置検出部52は、前述したように、作用点Pの三次元空間内の位置を、P(x,y,z)なる3つの座標値からなるデータとしてリアルタイムで逐次検出する機能を有している。一方、力発生部53は、演算制御手段40からリアルタイムで逐次与えられる力制御ベクトルCに基いて、力fを発生させ、これを作用点Pに逐次加える機能を果たす。ここで、作用点Pに加えられる力fは、力制御ベクトルCの向きおよび大きさをもった力である。
【0037】
結局、オペレータは、作用部51を装着した指を任意の方向に動かすことが可能ではあるが、逆に、作用点Pに加わる力fを常に指先に受け、物体からの反力を感じることになる(もちろん、f=0の場合は、何ら反力は感じない)。
【0038】
図4は、このような力トランスデューサ50の具体的構成例を示す斜視図である。図では、2組の力トランスデューサ50を用い、両作用部51(指サック)をそれぞれ親指と人差し指とに装着した状態が示されている。いずれも指の先端部分に作用点Pが定義されており、オペレータは、両作用部51を任意の方向に移動させながら、仮想物体Bを把持する動作を体感することができる。図示の力トランスデューサ50では、複数のリンク機構を用いて、上述した2つの機能を実現している。すなわち、作用部51は、複数の自在アームによって支持されているため、ある程度の範囲の空間内では、三次元の任意の方向に自由に移動させることが可能である。しかも、各自在アームの回転位置を検出する機構が備わっており、作用点Pの三次元座標値P(x,y,z)を検出することができる。更に、各自在アームに力を加えるためのモータが用意されており、これらのモータを駆動することにより、作用点Pに任意の方向、任意の大きさの力を作用させることができる。
【0039】
このような複数のリンク機構を用いた力トランスデューサは、既に公知の装置であるため、その構造や機構についての詳細な説明は省略する。市販の製品としては、たとえば、米国のセンサブル・デバイス社(SensAble Device Inc.)が「PHANToM」なる商品名で販売している装置を利用することができる。結局、本発明に係る把持動作シミュレーション装置は、図4に示すような力トランスデューサを、汎用コンピュータに接続し、所定のプログラムをこのコンピュータに組み込むことにより実現することが可能になる。図4には、2組の力トランスデューサを用い、2本の指で操作する例を示したが、たとえば、10組の力トランスデューサを用いれば、10本の指で操作する装置を構成することも可能である。また、作用部51は必ずしも指に固定する必要はない。たとえば、作用部51を腕に固定するようにすれば、腕を用いて物体を把持する動作をシミュレートすることが可能である。
【0040】
§4. 具体的な装置動作(非把持状態)
続いて、上述した実施形態に係るシミュレーション装置の具体的な動作、特に、演算制御手段40において行われる演算処理動作について詳述する。図5および図6は、この装置を用いたシミュレーション動作の具体的な手順を示す流れ図である。ここに示す手順の特徴は、仮想物体の把持動作を、大きく2とおりの段階に分けて取り扱っている点にある。すなわち、非把持状態と把持状態との2段階を定義し、各段階でそれぞれ異なる取り扱いを行うようにしている。ここで、把持状態とは、少なくとも2つの作用点によって仮想物体を完全に支持した状態を指す。別言すれば、この把持状態においては、重力が作用しているにもかかわらず仮想物体は落下せず、少なくとも2つの作用点によって保持されたままの状態になり、この保持に関与している作用点をそのまま移動させると、仮想物体も一体となって移動する状態になる。これに対し、非把持状態とは、把持状態には至っていない状態を指し、作用点と仮想物体との動きが一体となっていない状態に相当する。
【0041】
図5に示すステップS1〜S11の手順は、非把持状態における動作を示す手順であり、図6に示すステップS12〜S19の手順は、把持状態における動作を示す手順である。図5のステップS11は、把持状態であるか否かを判定するステップであり、ここで肯定的な判定がなされると、図6のステップS12からの手順が進められることになる。一方、図6のステップS15において肯定的な判定がなされると、再び非把持状態へと戻り図5のステップS2からの手順が進められる(場合によっては、一旦は非把持状態と判定されてステップS2に戻っても、再びステップS11で把持状態と判定されてステップS12へと直ちに戻ることもある)。以下、これらの流れ図の各ステップで行われる手順について詳述する。
【0042】
まず、図5のステップS1において、仮想物体を定義するために、物体に関する諸情報が設定される。この実施形態の場合、図1に示す物体情報設定手段10に対して、形状データ,質感データ,光源データ,硬さK,摩擦係数S,質量mが設定されることになる。これらデータやパラメータの内容については、既に§2において述べたとおりである。続いて、ステップS2において、仮想物体がディスプレイ上に表示される。たとえば、図2(a) に示すような立方体を仮想物体とする情報が物体情報設定手段10内に設定されていた場合、図1に示すディスプレイ20の画面上に、図示されているような立方体の描画が物体形状描画手段30によって行われることになる。このとき、質感データおよび光源データを考慮することにより、写実的な描画がなされることは既に述べたとおりである。
【0043】
続くステップS3では、n個の作用点P1〜Pnについての三次元位置P1(x,y,z)〜Pn(x,y,z)が検出される。既に述べたように、各力トランスデューサ50の位置検出部52の働きにより、演算制御手段40に対しては、このような位置データがリアルタイムで逐次伝達されている。ステップS3の処理は、このような位置データを演算対象として取り込む処理ということになる。そして、ステップS4において、いずれかの作用点が仮想物体に接触しているか否かが判断される。
【0044】
本実施形態では、演算負担を軽減するため、仮想物体を剛体として取り扱うようにしており、物体情報設定手段10内に設定された仮想物体は形状を変えないという前提で処理を進めるようにしている(もちろん、仮想物体を弾性体あるいは塑性体として取り扱うようにしてもかまわないが、この場合は、弾性変形あるいは塑性変形のための係数などを設定し、形状を変化させる演算を行う必要がある)。したがって、本来であれば、作用点が仮想物体に接触している状態とは、作用点が仮想物体の表面に位置している状態を意味することになる。しかしながら、本発明の主眼は、オペレータに物体に対する接触感や重量感を体験させることにあるので、必ずしも現実の物理現象を忠実にシミュレートする必要はない。このような観点から、本願発明者は、仮想物体の内部に位置する作用点については接触状態であると認識し、仮想物体の外部に位置する作用点については非接触状態であると認識することにすれば、効果的な接触感を与える上で好都合であることを見出だした。
【0045】
たとえば、図7に示すような位置に仮想物体B(αおよびβは、この仮想物体Bの表面を示す)が存在し、この仮想物体Bに対して、図示する位置に作用点Pが存在する場合を考える。この場合、作用点Pは仮想物体Bの内部に潜り込んだ状態(面αから深さdだけ潜った状態)となっている。このような状態は、もし作用点Pが指先の点として定義されており、物体を剛体とした場合には、現実的には有り得ない状態である。しかしながら、ここでは、このように作用点Pが仮想物体Bの内部に潜り込んでいた場合に、当該作用点Pは仮想物体Bに対して接触状態であると認識するようにし、仮想物体Bの外部にある場合には非接触状態であると認識するようにする。個々の作用点が仮想物体の内部にあるか外部にあるかは、両者の位置座標を比較することにより認識することができる。なお、仮想物体Bのちょうど表面に位置する作用点も接触状態ではあるが、後述するように、反力Fが零になるため、接触状態/非接触状態のいずれの取り扱いをしても差は生じない。
【0046】
ステップS4において、いずれの作用点も接触状態ではないと判断された場合(別言すれば、すべての作用点が仮想物体Bの外部に位置すると判断された場合)は、ステップS3へと戻り、各作用点の新たな位置が取り込まれる。一方、いずれかの作用点(いずれか1つの作用点でも)が接触状態であると認識された場合には、ステップS5において、各作用点について反力ベクトルFが算出される。もっとも、接触状態にない作用点については、後述するように、反力ベクトルはいずれも0になるので、実際には演算を行う必要はない。
【0047】
ここで、反力ベクトルFは、物体からオペレータの指に対して反作用として加わる力を示すベクトルであり、本来であれば、指から物体に加えられた力に応じた大きさをもち、この力と反対方向を向いたベクトルとして定義されるべきものである。しかしながら、本発明に係るシミュレーション装置では、オペレータの指から与えられる操作量は、作用点の座標値として与えられることになる。そこで、本実施形態では、図7に示すように、接触状態にある作用点Pについては、仮想物体Bの表面αと作用点Pとの距離dに応じて、この距離dが大きくなるほど大きな反力が得られるものとし、更に、この反力の方向は、表面αに立てた法線ベクトルNの方向と定義することにしている。前述したように、本実施形態では、仮想物体Bは多数の二次元多角形の集合体として定義されており、仮想物体Bの表面α,βは、いずれも二次元多角形から構成されている。したがって、本実施形態では、仮想物体Bの内部に位置する作用点Pについては(すなわち、接触状態にある作用点Pについては)、最も近い二次元多角形αとの距離dに応じた大きさを有し、当該作用点Pを通り前記二次元多角形αに垂直な法線ベクトルNと同じ方向をもったベクトルとして、反力ベクトルFが定義されることになる。
【0048】
なお、本実施形態では、仮想物体Bについて硬さKなるパラメータが設定されている。そこで、反力ベクトルFの大きさを、距離dとパラメータKとの積(d・K)と定義している。すなわち、接触状態にある作用点Pについての反力ベクトルFは、図7に示すように、法線ベクトルNと同じ方向を向き、かつ、大きさが(d・K)であるベクトルとして定義されることになる。一方、非接触状態にある作用点については、大きさ零の反力が得られるものとし(別言すれば、反力は無し)、反力ベクトルFは零ベクトルとなる。
【0049】
こうして、各作用点P1〜Pnについての反力ベクトルF1〜Fnが求まったら、続くステップS6において、各作用点P1〜Pnについての力制御ベクトルC1〜Cnを求める。ここで、力制御ベクトルC1〜Cnは、各作用点P1〜Pnに実際に加えるべき制御力を示すベクトルであり、このステップS6においては、各反力ベクトルをそのまま各力制御ベクトルとする。すなわち、力制御ベクトルC1〜Cn=反力ベクトルF1〜Fnとする(後述するステップS13では、異なる設定がなされる)。この力制御ベクトルC1〜Cnは、演算制御手段40からn個の力トランスデューサ50へと伝達される。そして、各力発生部53によって、各作用点P1〜Pnに対して、力制御ベクトルC1〜Cnと同じ向きに、力制御ベクトルC1〜Cnの大きさに応じた制御力が実際に加えられることになる。もちろん、非接触状態の作用点については、力制御ベクトルCの大きさは零であるから、実際には力は加えられない。
【0050】
結局、オペレータが、指先を仮想物体Bの表面位置まで移動させ、更に、仮想物体Bの内部へと移動させようとすると、当該指先に定義された作用点は、接触状態であると認識され、力制御ベクトルCに応じた反力が当該指先に加えられることになる。この反力は、仮想物体表面(図7の場合、表面α)の法線方向を向いているため、オペレータは仮想物体の形状に応じた接触感を得ることができる。しかも、指先(作用点P)を仮想物体Bの内部へと移動させようとすればするほど、反力の大きさが増すので、仮想物体の存在感を感じることができる。このとき、硬さKなるパラメータは、フックの法則におけるばね定数と同じ機能を果たすことになる。すなわち、硬さKを大きく設定すれば反力の大きさが増し、硬い接触感が得られることになり、硬さKを小さく設定すれば反力の大きさが減り、柔らかな接触感が得られることになる。
【0051】
次のステップS7,S8に示す手順は、オペレータの複数の指による操作が平衡状態にあるか否かを判定する処理である。たとえば、図4に示すように2組の力トランスデューサを用いた装置において、右側の力トランスデューサの作用点Pのみが仮想物体Bの右側に接触している状態を考える。この状態は、オペレータの人差し指から左方向の力が仮想物体Bに加えられており、親指は仮想物体Bに対して非接触となっている状態を示している。このような状態では、仮想物体Bは、図の左方向へと移動するはずである。これに対して、もし左右の力トランスデューサの作用点Pが仮想物体Bの両側に接触した状態になっており、オペレータの人差し指から左方向に加えられる力と、オペレータの親指から右方向に加えられる力とが均衡している場合は、仮想物体Bは静止状態を保つはずである。
【0052】
そこで、ステップS7において、全作用点P1〜Pnの反力ベクトルF1〜Fnを合成することにより合成反力ベクトルΣFを求める演算が行われる。前述したように、非接触状態の作用点についての反力ベクトルは零ベクトルであるから、合成反力ベクトルΣFは、実質的には、接触状態にある作用点についての反力ベクトルを合成したベクトルになる。図8は、三角柱からなる仮想物体Bの上断面図である。
【0053】
いま、このような仮想物体Bについて、図のように、2つの接触作用点P1,P2が存在する場合を考える。作用点P1は面αから深さd1の位置にあり、作用点P2は面βから深さd2の位置にある。したがって、作用点P1については、面αの法線方向を向き、大きさが(d1・K)なる反力ベクトルF1が定義され、この反力ベクトルF1に応じた制御力が作用点P1に加えられることになる。同様に、作用点P2については、面βの法線方向を向き、大きさが(d2・K)なる反力ベクトルF2が定義され、この反力ベクトルF2に応じた制御力が作用点P2に加えられることになる。
【0054】
この場合、ステップS7では、図8の右下に示すようなベクトル合成により、合成反力ベクトルΣFが求められる。そして、ステップS8では、この合成反力ベクトルΣFの大きさが所定の基準値Fr以下であるか否かが判定される。これは、オペレータの指から加えられた力が均衡しているか否かの判定に相当する。理論的には、基準値Fr=0として、ΣF=0の場合に限り、平衡状態と判定すればよい。ΣF=0であれば、全接触作用点に対する反力が均衡しており、オペレータの把持動作が平衡状態にあると判断することができ、仮想物体Bは静止状態を保つことになる。ところが、ΣF≠0の場合には、オペレータの把持動作が非平衡状態にあるので、仮想物体Bを所定方向に移動させる力が作用することになる。たとえば、図8の例では、合成反力ベクトルΣF≠0であり、仮想物体Bを反転ベクトル−ΣF(合成反力ベクトルΣFと大きさが同じで逆向きのベクトル)の方向へ移動させる力が作用していることになる。これに対して、図9の例では、3つの作用点P1,P2,P3が仮想物体Bに接触状態になっており、各作用点についての反力ベクトルF1,F2,F3を合成することにより得られる合成ベクトルΣFは、ΣF=(0,0,0)となっている(ここで、(0,0,0)は、各座標軸方向成分が0であるベクトル(零ベクトル)を示している)。したがって、この図9の例の場合は、平衡状態と判定されることになる。
【0055】
もっとも、実用上は、ΣFが完全に0になった場合だけでなく、所定の基準値Fr以下になった場合にも、平衡状態と判定して問題はなく、むしろそのような判定を行う方が操作性を向上できる。そこで、ステップS8では、合成反力ベクトルΣFの大きさが、所定の基準値Fr以下であるか否かを判定することにより、平衡状態の判定を行うようにしている。基準値Fr以下である場合には、把持動作が平衡状態にあると判定し、ステップS10へと進み、所定の基準値Frを越える場合には把持動作が非平衡状態にあると判定し、ステップS9へと進むことになる。
【0056】
ステップS9は、仮想物体Bを移動させるための処理であり、たとえば、図8に示す例の場合、仮想物体Bを、合成反力ベクトルΣFを反転して得られる反転ベクトル−ΣFの方向に移動させる処理が行われる。このような移動処理を行うために、まず、移動ベクトルDが演算される。この移動ベクトルDは、D=1/2・(−ΣF/m)・tで与えられる長さの次元をもったベクトルである。ここで、−ΣFは、上述の反転ベクトルであり、仮想物体Bを運動させるために加えられた力を示し、mは、物体情報設定手段10内に設定されている仮想物体の質量を示すパラメータである。結局、上式における(−ΣF/m)なる項は、仮想物体Bに加わる加速度を示していることになる。また、tは時間を示す変数であり、移動ベクトルDは、(−ΣF/m)なる加速度の作用下において、時間tの間における仮想物体Bの移動態様(移動方向および移動距離)を示すベクトルということになる。ステップS9では、この移動ベクトルDに基いて、仮想物体Bの位置が変更されるように物体情報設定手段10内の情報を更新する処理が行われる。
【0057】
ステップS9の処理が完了すると、再びステップS2からの手順が実行されることになる。ステップS2では、仮想物体の描画が行われるが、この時点で、物体情報設定手段10内の情報が更新されているので、移動後の新たな位置に仮想物体が描き直されることになる。
【0058】
一方、ステップS8において平衡状態との判定がなされた場合には、ステップS10,S11へと進み、把持状態か否かの判定がなされる。前述したように、把持状態とは、少なくとも2つの作用点によって仮想物体が完全に支持された状態である。本実施形態では、次の2つの条件をともに満たした場合に、把持状態と判定するようにしている。第1の条件は「平衡状態との判定がなされていること」である。非平衡状態では、仮想物体は作用点から逃げるように移動することになり、安定した支持が困難である。したがって、ここでは、「平衡状態」が保たれていることを把持状態の必須条件に設定した。しかしながら、「平衡状態にある」という条件だけでは、これを直ちに把持状態と認定することはできない。
【0059】
たとえば、図4に示す例のように、仮想物体Bの左右両側に作用点Pを接触させ、両側から挟むような力を加え、仮にその力が均衡していたとしても、挟む力が十分でなければ、仮想物体Bを持ち上げることはできない。挟む力が弱ければ、両作用点Pを上方へ移動させたとしても、仮想物体Bは滑って落下してしまうことになる。把持状態とは、仮想物体が作用点により完全に支持されており、作用点の移動とともに、仮想物体も一体となって移動する状態を言うものであるから、仮想物体が滑って落下してしまうようでは、把持状態にあると言うことはできない。ここで、挟む力が十分であるか否か、別言すれば、仮想物体が滑って落下してしまうか否か、という問題は、作用点と仮想物体表面との間の摩擦力(静的摩擦力)と仮想物体に働く重力との大小関係の問題として把握することができる。そこで、本実施形態では、把持状態と判定するための第2の条件として、「仮想物体に働く重力よりも、作用点による全摩擦力の方が大きい」なる条件を用いている。
【0060】
上述した「平衡状態にある」という第1の条件判断は、既にステップS8において行われているので、ステップS10,S11では、第2の条件判断を行うだけでよい。そこで、ステップS10では、まず、全作用点における摩擦力の合計を、総摩擦力Tsとして算出している。個々の作用点における摩擦力は、当該作用点についての反力ベクトルFの大きさに、摩擦係数S(物体情報設定手段10において設定されている)を乗じることにより求めることができる。そこで、これら個々の作用点における摩擦力の総和をとれば、総摩擦力Tsが得られる。もっとも、非接触状態の作用点についての反力ベクトルの大きさは0であるから、実質的には、接触状態の作用点のみが総摩擦力Tsに貢献することになる。たとえば、図10に示すように、三角柱からなる仮想物体Bを構成する3つの面α,β,γに、それぞれ作用点P1,P2,P3が接しており、各作用点に、それぞれ反力ベクトルF1,F2,F3が定義されていた場合、総摩擦力Tsは、各面の摩擦係数Sを用いて、
Ts=|F1|・S+|F2|・S+|F3|・S
なる式で得られることになる。一方、仮想物体Bに作用する重力ベクトルWは、W=mgで表される(mは仮想物体Bの質量、gは重力加速度ベクトル)。
【0061】
かくして、ステップS11において、重力ベクトルWの大きさと、総摩擦力Tsとを比較し、後者が前者よりも大きいと判断された場合には、その時点において接触状態にあるL個の作用点によって、仮想物体が把持状態にあると判定することができる。このステップS11において、把持状態にあると判定された場合には、図6のステップS12の手順が実行されることになる。一方、非把持状態にあると判定された場合には、ステップS3からの処理が再び実行される。
【0062】
§5. 具体的な装置動作(把持状態)
非把持状態にある場合の取り扱いと、把持状態にある場合の取り扱いとの大きな相違点は、後者では、仮想物体の加速度を考慮した制御力が作用点に加えられるようにするという点にある。たとえば、図4に示す例において、仮想物体Bが一対の作用点Pによって左右からしっかりと支持され、把持状態になったと考えよう。この場合、一対の作用点Pと仮想物体Bとは一体となって運動することになり、オペレータは、仮想物体を指先で把持しているとの体感を得ることになる。本願発明者は、このような場合、各作用点Pに、反力(指から仮想物体に対して加えられた力の反作用として、仮想物体から指に対して加えられる力)だけでなく、仮想物体Bの運動加速度および重力加速度に基く力を加えると、よりリアルな重量感を与えることができることを見出だした。
【0063】
すなわち、前述した非把持状態におけるステップS6では、反力ベクトルF1〜Fnを、そのまま力制御ベクトルC1〜Cnとして、各作用点P1〜Pnに制御力として作用させていたが、把持状態にある場合は、この反力ベクトルF1〜Fnに、仮想物体Bの運動加速度および重力加速度に基く力ベクトルを合成することにより、力制御ベクトルC1〜Cnを求め、これを各作用点P1〜Pnに制御力として作用させればよい。ただし、非接触状態の作用点についての力制御ベクトルは、やはり零ベクトル(0,0,0)とする。
【0064】
以下、このような考え方に基く具体的な手法を、図6の流れ図に基いて説明する。まず、図5のステップS11において把持状態と判定された場合には、ステップS12において、仮想物体の加速度ベクトルAを、A=(0,0,0)なる初期値(零ベクトル)に設定する。別言すれば、本実施形態では、把持状態と判定された初期段階においては、仮想物体Bは静止状態にあるという取り扱いをすることになる。
【0065】
続いて、ステップS13において、加速度を考慮した力制御ベクトルを求め、各作用点に制御力を加える処理が行われる。たとえば、図11に示す例のように、立方体形状をした仮想物体が、3つの作用点P1,P2,P4によって把持されており、しかも加速度ベクトルAに基く運動をしていたとする(加速度ベクトルAは、オペレータが3つの作用点P1,P2,P4を運動させることにより生じた加速度を示すものである)。このとき、作用点P3,P5は、非接触状態の作用点であり、仮想物体の把持動作には関与していない。したがって、作用点P3,P5に対しては、仮想物体側からは何ら力は作用しない。これに対して、接触状態の作用点P1,P2,P4については、前述したように、それぞれ反力ベクトルF1,F2,F4が演算され、それぞれ反力ベクトルF1,F2,F4に応じた力が力発生部53によって加えられる。ただ、把持状態における取り扱いでは、接触状態の作用点P1,P2,P4には、反力ベクトルF1,F2,F4に加えて、加速度ベクトルAに基く力と、重力ベクトルW(W=mg)に基く力と、を重畳して作用させることにより、物体の重量感を体感させるようにするのである。
【0066】
ここでは、加速度ベクトルAに仮想物体の質量mを乗じて得られるベクトルmAを運動ベクトル(力の次元をもつ)と呼び、この運動ベクトルmAと重力ベクトルWとを合成することにより得られるベクトル(mA+W)を、外力ベクトルと呼ぶことにする。運動ベクトルmAは、オペレータが物体を把持した状態で所定方向に運動させようとすることにより生じる力のベクトルであり、外力ベクトルは、更に重力を加えることにより、仮想物体全体に外力として作用する力を表すベクトルである。この外力ベクトル(mA+W)は、仮想物体全体に作用する力を示しているが、この外力ベクトル(mA+W)が各接触作用点にそれぞれ分散して作用すると考えることにより、各接触作用点に分散外力ベクトルFaを定義することができる。ここでは、外力ベクトル(mA+W)が、接触状態にあるL個の作用点すべてに均等に分散するという仮定に基づき、Fa=(mA+W)/Lなる式に基いて各作用点に作用する分散外力ベクトルFaを決定している。
【0067】
結局、図11に示す3つの接触作用点P1,P2,P4には、それぞれ反力ベクトルF1,F2,F4に、分散外力ベクトルFaを重畳して作用させればよい。すなわち、作用点P1,P2,P4に加えるべき制御力を示す力制御ベクトルC1,C2,C4を、それぞれC1=F1+Fa,C2=F2+Fa,C4=F4+Faなるベクトル合成により求め、各作用点にこれら力制御ベクトルに応じた制御力を加えるようにすればよい。もちろん、非接触作用点P3,P5についての力制御ベクトルC3,C5は、大きさ零の零ベクトル(0,0,0)とし、実質的には何ら制御力は加えない。
【0068】
続いて、ステップS14において、時間t経過後のn個の作用点P1〜Pnについての三次元位置PP1(x,y,z)〜PPn(x,y,z)を検出する。たとえば、時刻Tにおける作用点P1〜Pnの位置がP1(x,y,z)〜Pn(x,y,z)であったとすると、時刻(T+t)における作用点P1〜Pnの位置はPP1(x,y,z)〜PPn(x,y,z)ということになる。そして、ステップS15において、各作用点について接触状態の変化があったか否かが判断される。すなわち、個々の作用点について、接触状態から非接触状態への状態遷移もしくは非接触状態から接触状態への状態遷移が生じたか否かが、時間tの周期で監視されることになる。そして、すべての作用点について状態遷移が生じていない場合は、引き続き把持状態にあるとの判定が行われ、ステップS16へと進むことになるが、いずれかの作用点について状態遷移が生じていた場合には、ステップS15からステップS2へと戻り、前述した非把持状態の手順が実行されることになる。
【0069】
たとえば、図11に示す例では、作用点P1,P2,P4が接触状態、作用点P3,P5が非接触状態となっているので、これらの状態が維持されている限りは、引き続き把持状態にあるとの判定が行われ、ステップS16へと進むことになる。ところが、作用点P1が接触状態から非接触状態へ状態遷移を生じたり、あるいは、作用点P5が非接触状態から接触状態へ状態遷移を生じたりした場合には、ステップS15において接触状態が変化したと判断され、ステップS2へと戻ることになる。もちろん、このようにいずれかの作用点について接触状態の変化が生じたからといって、必ずしも把持状態が解消されるわけではない。ただ、いずれかの作用点について接触状態の変化が生じた場合には、把持状態が解消される可能性があるので、本実施形態では、このような場合は、取り敢えずステップS2からの手順に戻り、把持状態/非把持状態の判定を再度実行するようにしている。もし、把持状態が解消されていない場合には、直ちにステップS11において把持状態である旨の判定がなされ、ステップS12へと戻るので、大きな問題は生じない。なお、このように直ちに把持状態に戻った場合には、ステップS12の初期化を省略するようにすると、仮想物体の運動を継続させた取り扱いが可能になる。
【0070】
一方、引き続き把持状態にあるとの判定が行われ、ステップS16へと進んだ場合には、各作用点P1〜Pnについて、それぞれ加速度ベクトルA1〜Anが算出される。ただし、非接触状態の作用点については、加速度ベクトルの算出は行われない(あるいは、非接触状態の作用点についての加速度ベクトルは、すべて零ベクトル(0,0,0)とする取り扱いをすればよい)。各加速度ベクトルは、各作用点の位置の時間的変化に基いて求めることができる。たとえば、第1番目の作用点P1が接触状態であった場合、この作用点P1についての加速度ベクトルA1は、作用点P1の旧位置を示すベクトルP1(x,y,z)と、新位置(時間t経過後の位置)を示すベクトルPP1(x,y,z)とを用いることにより、
A1=(PP1(x,y,z)−P1(x,y,z))×2/t
なる演算で求めることができ、同様に、第n番目の作用点Pnが接触状態であった場合、この作用点Pnについての加速度ベクトルAnは、作用点Pnの旧位置を示すベクトルPn(x,y,z)と、新位置(時間t経過後の位置)を示すベクトルPPn(x,y,z)とを用いることにより、
An=(PPn(x,y,z)−Pn(x,y,z))×2/t
なる演算で求めることができる。
【0071】
なお、前述したように、本実施形態では、仮想物体を剛体として取り扱っているため、仮想物体は変形することがない。したがって、n個の作用点P1〜Pnについての加速度ベクトルA1〜Anに対して、
A=(A1+A2+ …… +An)/L
なる演算を行い(Lは接触状態にある作用点の数)、平均加速度ベクトルAを求めるようにし、この平均加速度ベクトルAが仮想物体全体に作用しているものとすればよい。
【0072】
続いて、ステップS17では、仮想物体を移動ベクトルMに基いて移動する処理が行われる。たとえば、第1番目の作用点P1の時間tの間の移動態様(移動方向および移動距離)を示す移動ベクトルM1は、加速度ベクトルA1を用いて、
M1=1/2・A1・t
なる式で求めることができ、第n番目の作用点Pnの時間tの間の移動態様を示す移動ベクトルMnは、加速度ベクトルAnを用いて、
Mn=1/2・An・t
なる式で求めることができる(非接触状態の作用点の場合、加速度ベクトルが零ベクトルであるため、移動ベクトルも零ベクトルになる)。もっとも、本実施形態のように、仮想物体を剛体として取り扱い、かつ、仮想物体の移動を平行移動(いわゆる回転要素をもたない移動)に限定した取り扱いを行う場合は、
M=(M1+M2+ …… +Mn)/L
なる演算、もしくは、上記平均加速度ベクトルAを用いた、
M=1/2・A・t
なる演算で、平均移動ベクトルMを求め、この移動ベクトルMに基いて仮想物体の位置が変更されるように物体情報設定手段10内の情報を更新する処理を行うようにすればよい。たとえば、図2(a) に示すような立方体形状の仮想物体について、X軸負方向を向き、大きさが1の移動ベクトルMが得られた場合には、全体がX軸負方向に距離1だけ移動することになるので、図2(b) に示す頂点テーブルは、図12に示すように更新されることになる。
【0073】
続くステップS18では、物体形状描画手段30により、更新された物体情報設定手段10内の情報に基く仮想物体の描画が行われることになり、ディスプレイ20の画面上には、移動後の仮想物体の位置が表示されることになる。
【0074】
最後に、ステップS19において、n個の作用点P1〜Pnの旧位置を示すベクトルP1(x,y,z)〜Pn(x,y,z)が、新位置を示すベクトルPP1(x,y,z)〜PPn(x,y,z)によって置き換えられた後、再びステップS13からの処理が繰り返し実行される。すなわち、ステップS16において求められた加速度ベクトルAが、ステップS13において利用されることになる。かくして、各作用点の接触状態の変化が生じない限り、ステップS13〜S19の手順が繰り返し実行されることになる。
【0075】
以上、本発明に係る物体の把持動作シミュレーション装置を代表的な実施形態に基いて説明したが、本発明はここに述べた形態に限定されるものではなく、この他にも種々の形態で実施可能である。たとえば、仮想物体は必ずしも剛体とする必要はなく、弾性体や塑性体として取り扱うことも可能であり、形状が変形するような取り扱いをしてもかまわない。また、上述の実施形態で述べたディスプレイ20および物体形状描画手段30は、視覚による提示が必要なければ、必ずしも設ける必要はない。もっとも、オペレータに対して接触感や重量感を効率的に与えるためには、視覚による提示と触覚による提示とを併用するのが好ましく、実用上は、ディスプレイ20および物体形状描画手段30を設けるのが好ましい。
【0076】
【発明の効果】
以上のとおり本発明に係る物体の把持動作シミュレーション装置によれば、物体を把持する際の接触感や重量感を疑似的に体験させることができるようになる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る物体の把持動作シミュレーション装置の基本構成を示すブロック図である。
【図2】図1に示すシミュレーション装置において定義された仮想物体およびその形状データの一例を示す図である。
【図3】図1に示すシミュレーション装置における力トランスデューサの機能を示すブロック図である。
【図4】図3に示す力トランスデューサの具体的な構成例を示す斜視図である。
【図5】本発明に係るシミュレーション装置における非把持状態における動作手順を示す流れ図である。
【図6】本発明に係るシミュレーション装置における把持状態における動作手順を示す流れ図である。
【図7】本発明に係るシミュレーション装置における反力ベクトルFの決定方法の一例を示す側断面図である。
【図8】本発明に係るシミュレーション装置における反力の非平衡状態を示す上断面図である。
【図9】本発明に係るシミュレーション装置における反力の平衡状態を示す上断面図である。
【図10】本発明に係るシミュレーション装置における摩擦を考慮した把持状態の判定方法を示す斜視図である。
【図11】本発明に係るシミュレーション装置において、把持状態における物体に作用する力を示す斜視図である。
【図12】物体の移動により図2に示す形状データの更新例を示す図である。
【符号の説明】
1〜8…頂点
10…物体情報設定手段
20…ディスプレイ
30…物体形状描画手段
40…演算制御手段
50…力トランスデューサ
51…作用部
52…位置検出部
53…力発生部
A…加速度ベクトル
B…仮想物体
C,C1〜Cn…力制御ベクトル
d,d1,d2,d3…作用点と仮想物体の表面との距離
F,F1〜Fn…反力ベクトル
Fa…分散外力ベクトル
ΣF…合成反力ベクトル
f…作用点Pに加えられる力
K…硬さを示すパラメータ
N…法線ベクトル
P,P1〜Pn…作用点
P(x,y,z),P1(x,y,z)〜Pn(x,y,z)…作用点P,P1〜Pnの位置
PP1(x,y,z)〜PPn(x,y,z)…作用点P1〜Pnの新位置
W…重力ベクトル
α,β,γ…仮想物体の表面を構成する多角形
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an object gripping motion simulation apparatus, and more particularly to a simulation apparatus that allows a user to experience a feeling of contact and a feeling of weight when gripping an object.
[0002]
[Prior art]
Computer-based simulations have been adopted in various fields, and in recent years, the simulation of displaying a virtual reality world called a so-called virtual reality on a display screen by improving the computer's image processing function. Devices are becoming popular. In this type of simulation apparatus, the operator can usually move freely in a virtual space, and the display screen of the display is redrawn in real time as the operator moves. In addition, object information in a virtual space can be obtained as data based on an operation input by an operator as necessary.
[0003]
[Problems to be solved by the invention]
However, the conventional simulation apparatus focuses on presenting the virtual world through the operator's vision using the image on the display, etc., and lacks the function of presenting the virtual world through the operator's sense of touch. ing. For example, if an operator points to an object in the virtual space and enters a command to obtain this object, the function of displaying a scene with the object on the display screen is an entertainment type. Widely used in simulation equipment. However, such a function is merely a function of visually presenting the concept of “I picked up an object” and does not directly affect the sense of touch of the operator.
[0004]
Of course, the technology for presenting virtual reality through vision is a very important technology with wide application fields. However, in special fields, technology that presents virtual reality through tactile sensation may be important. For example, it is natural that it is important to appreciate art objects held in museums and museums, but appreciation through tactile sense also has great significance. Specifically, the sense of weight, unevenness, and touch of the surface of ceramics, sculptures, and Buddha statues are sensations that cannot be tasted without actually picking them up and touching them. However, many of these artworks have very high property values, including those designated as national treasures and important cultural properties, and even though they can be displayed in museums and museums, It is difficult to let the audience take the picture freely.
[0005]
Recently, products are often designed using CAD devices, but products designed using CAD devices cannot actually be picked up until an actual prototype is completed. Of course, since the three-dimensional appearance can be confirmed on the display screen at the design stage, it is possible to sufficiently grasp the design through the visual sense and the texture of the surface using a conventional CAD device. However, the weight and touch of the product cannot be experienced at the design stage.
[0006]
SUMMARY OF THE INVENTION An object of the present invention is to provide a simulation device that can simulate a feeling of contact and a feeling of weight when gripping an object.
[0007]
[Means for Solving the Problems]
  (1) According to a first aspect of the present invention, there is provided an object grasping motion simulation apparatus that defines a predetermined virtual object and performs a simulation for causing a virtual experience of grasping the virtual object.
  Information for defining virtual objectsAs shape data expressing the surface of the virtual object as an aggregate of two-dimensional polygons arranged at predetermined positions on the three-dimensional coordinate system, a parameter m indicating the mass of the virtual object,Object information setting means for setting
  An action part having an action point movable in an arbitrary three-dimensional direction based on a force applied by an operator, a position detection part for detecting the position of the action point on the three-dimensional coordinate system, and given force control A force generator that generates a force applied to the point of action based on a vector, and a plurality of n force transducers,
Arithmetic control for performing control to obtain a force control vector indicating a control force to be applied to the action point for each of the n force transducers by performing a predetermined computation, and to apply the obtained force control vector to each force transducer Means,
Provided,
Arithmetic control means
Based on the position of the action point detected by the position detector and the position of the virtual object defined by the information in the object information setting means, the action point located inside the virtual object is determined to be in a contact state, A contact state determination unit that determines that the action point located outside the virtual object is in a non-contact state;
The action point determined to be in the contact state has a size corresponding to the distance d to the nearest two-dimensional polygon α, and is the same as the normal vector N perpendicular to the nearest two-dimensional polygon α. A reaction force vector F having a direction is obtained. For an action point determined to be in a non-contact state, a zero reaction force vector F is obtained and added to each action point based on the obtained reaction force vector F. A force control vector computing unit for obtaining a force control vector indicating the power to be controlled;
A combined reaction force vector ΣF is obtained by combining the reaction force vectors F of the respective action points. When the magnitude of the combined reaction force vector ΣF is equal to or smaller than a predetermined reference value Fr, the gripping operation is in an equilibrium state. An equilibrium state determination unit that determines that the gripping operation is in an unbalanced state when a predetermined reference value Fr is exceeded,
When it is determined that the vehicle is in the non-equilibrium state, the movement vector D indicating the movement mode of the virtual object when the acceleration determined based on the inverted vector −ΣF of the combined reaction force vector ΣF and the parameter m is applied is calculated. An object information update unit that performs processing for updating information in the object information setting means so that the position of the virtual object is changed based on the movement vector D;
It is constituted by.
[0008]
  (2) According to a second aspect of the present invention, in the object grasping motion simulation apparatus according to the first aspect described above,
  A display for displaying virtual objects;
  Set in the object information setting meansObject shape drawing means for creating image data for displaying a virtual object and an action point on a display screen based on the shape data and the position of the action point detected by the position detection unit;
Is further provided.
[0009]
  (3) According to a third aspect of the present invention, in the object grasping motion simulation apparatus according to the second aspect described above,
  The object information setting means further sets, as information for defining the virtual object, material data indicating the surface texture of the virtual object and light source data indicating the nature of the light source for illuminating the virtual object,
The object shape drawing means creates image data of the virtual object in consideration of the texture data and the light source data.
[0010]
  (4) According to a fourth aspect of the present invention, in the object grasping motion simulation apparatus according to the first to third aspects described above,
The object information setting means further sets a parameter K indicating the hardness of the virtual object as information for defining the virtual object,
The force control vector calculation unit obtains the magnitude of the reaction force vector F based on the product (d · K) of the distance d and the parameter K.
[0011]
  (5) The fifth aspect of the present invention isIn the object grasping motion simulation apparatus according to the first to fourth aspects described above,
The object information setting means further sets a parameter S indicating the friction coefficient of the virtual object surface as information for defining the virtual object,
The arithmetic control means is
A frictional force calculating unit for obtaining a total frictional force Ts that is a sum of the frictional forces at the respective operating points by defining the frictional force at each operating point as a product of the magnitude of the reaction force vector F and the parameter S;
A gravity calculation unit for obtaining the gravity vector W by multiplying the gravity acceleration vector g by a parameter m indicating the mass of the virtual object;
When it is determined by the equilibrium state determination unit that the state is in an equilibrium state and the condition that the total friction force Ts is larger than the magnitude of the gravity vector W is satisfied, L pieces in contact state at that time A gripping state determination unit that determines that the virtual object is in a gripping state by the action point of
An acceleration calculation unit for obtaining an acceleration vector A acting on the virtual object based on a temporal change in the position of the L action points when it is determined that the virtual object is in the gripping state;
A distributed external force for obtaining a distributed external force vector Fa acting on each action point based on an external force vector (mA + W) obtained by synthesizing a motion vector mA obtained by multiplying the acceleration vector A by a parameter m and a gravity vector W. A vector operation unit;
Further comprising
Force control vector calculation unit
When it is determined that the virtual object is in the non-gripping state, the reaction force vector F for each action point is set as a force control vector C indicating the control force to be applied to the action point,
When it is determined that the virtual object is in the gripping state, for the action point in the contact state, a vector obtained by combining the reaction force vector F and the distributed external force vector Fa for each action point is used as the action point. A force control vector C indicating the control force to be applied to the action point, and for a point of action in a non-contact state, a zero magnitude vector is set as a force control vector C indicating the control force to be applied to the action point. is there.
[0012]
  (6) The sixth aspect of the present invention is:In the object grasping motion simulation apparatus according to the fifth aspect described above,
The distributed external force vector calculation unit determines the distributed external force vector Fa acting on each action point based on the formula Fa = (mA + W) / L.
[0013]
  (7) The seventh aspect of the present invention isIn the object grasping motion simulation apparatus according to the fifth or sixth aspect described above,
The arithmetic control means is
A contact state monitoring unit for monitoring the state transition from the contact state to the non-contact state or the state transition from the non-contact state to the contact state for each action point when it is determined that the virtual object is in the gripping state; Prepared,
When the state transition has not occurred for all the action points, the gripping state determination unit determines that it is in the gripping state continuously. If the state transition has occurred for any of the action points, the gripping state / The determination of the non-gripping state is executed again.
[0014]
  (8) The eighth aspect of the present invention isIn the object grasping motion simulation apparatus according to the first to seventh aspects described above,
The arithmetic control means is
A movement vector calculation unit that calculates a movement vector M indicating a movement mode of the virtual object based on the acceleration vector A when it is determined that the virtual object is in a gripping state;
The object information updating unit performs a process of updating information in the object information setting unit so that the position of the virtual object is changed based on the movement vector M.
[0015]
  (9) A ninth aspect of the present invention provides:The arithmetic control means in the object grasping motion simulation apparatus according to the first to eighth aspects described above is configured by incorporating a program into a computer, and the program is recorded on a computer-readable recording medium. Is.
[0016]
  (10) The tenth aspect of the present invention isIn the object grasping motion simulation apparatus according to the first to eighth aspects described above,
The action portion of the force transducer is constituted by a finger sack that can be fitted and fixed to the fingertip of the operator.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
§1. Basic configuration of the device
Hereinafter, the present invention will be described based on the illustrated embodiments. FIG. 1 is a block diagram showing a basic configuration of an object gripping motion simulation apparatus according to an embodiment of the present invention. In this apparatus, it is possible to define a predetermined virtual object and perform a simulation for causing a virtual experience of grasping the virtual object. The components of this apparatus are an object information setting means 10, a display 20, an object shape drawing means 30, an operation control means 40, and n force transducers 50 as shown in the figure.
[0021]
The object information setting means 10 has a function of setting information for defining a virtual object. When the operator inputs various data and parameters to the object information setting unit 10, the input data and parameters are stored and held in the object information setting unit 10. The operator can appropriately change the simulation condition setting by changing the data and parameters set for the object information setting means 10. In this embodiment, as information for defining a virtual object, as shown in the figure, three types of data including shape data, texture data, and light source data, and three types of parameters including hardness K, friction coefficient S, and mass m are used. And can be set.
[0022]
The display 20 is a means for displaying a virtual object, and FIG. 1 shows a state in which a cubic virtual object B is displayed at a predetermined position. The object shape drawing unit 30 has a function of drawing the shape of the virtual object B at a predetermined position on the screen of the display 20 based on information (shape data, texture data, light source data) set in the object information setting unit 10. Have The object shape drawing means 30 has a function of drawing not only the virtual object B but also the positions of action points P1 to Pn described later on the screen of the display 20, and the screen of the display 20 as shown in the figure. On the upper side, the positions of the n action points P1 to Pn are displayed together with the virtual object B.
[0023]
Each of the n force transducers 50 includes an action part 51, a position detection part 52, and a force generation part 53, and is connected to the calculation control means 40. Each force transducer 50 functions as a man-machine interface for the operator, and functions to input an operation amount given by the operator and to return a force to the operator. In this embodiment, one force transducer 50 will serve as one finger. Since the present invention is a device for simulating an object gripping operation, at least two sets of force transducers 50 are required.
[0024]
An action point P is defined on the action part 51, and the action point P can be moved in a three-dimensional arbitrary direction based on a force applied by an operator. Here, it is assumed that the action points P1 to Pn are defined on the action parts 51 of the n force transducers 50, respectively. Action points P <b> 1 to Pn displayed on the display 20 of FIG. 1 are positions of the action points on the action parts 51. The position detection unit 52 has a function of detecting the position of the action point P on the action unit 51 on the three-dimensional coordinate system. Specifically, the position of the action point P is detected as three coordinate values of x coordinate, y coordinate, and z coordinate. Here, the position of the action point P indicated by these three coordinate values is represented by data P (x, y, z). For example, the position detection unit 52 in the first force transducer 50 outputs data P1 (x, y, z) indicating the position of the action point P1, and the position detection unit in the second force transducer 50. 52 outputs data P2 (x, y, z) indicating the position of the action point P2, and the position detector 52 in the nth force transducer 50 outputs data Pn ( x, y, z) is output.
[0025]
Data P1 (x, y, z), P2 (x, y, z),..., Pn (x, y, z) indicating the positions of these action points are given to the arithmetic control means 40, and further the object shape. It is given to the drawing means 30. As described above, the object shape drawing means 30 draws the positions of the action points P1 to Pn on the screen of the display 20 based on the data indicating these positions. On the other hand, the arithmetic control means 40 determines the contact state between each action point and the virtual object based on the position of these action points and the position of the virtual object (defined by the information in the object information setting means 10). Recognizing and calculating a reaction force (force returned from the virtual object side to the operator side) to be generated at each action point according to the contact state. Specific calculation contents performed here will be described in detail later. Thus, when the reaction force to be generated at each action point is obtained, a force control vector C indicating the control force to be applied to each action point is obtained based on this reaction force, and the data indicating these force control vectors C is individually To the force transducer 50. In the illustrated example, force control vectors C1 to Cn are given to the first to nth force transducers 50, respectively. The force generator 53 in the force transducer 50 has a function of generating a force to be applied to the action point P based on a force control vector C given from the arithmetic control means 40.
[0026]
§2. Information set in the object information setting means
Next, specific information set in the object information setting unit 10 in the simulation apparatus shown in FIG. 1 will be described. As described above, in this embodiment, three types of data including shape data, texture data, and light source data, and three types of parameters including hardness K, friction coefficient S, and mass m are set.
[0027]
The shape data is data for specifying the three-dimensional shape of the virtual object. Here, the surface of the virtual object is expressed as an aggregate of two-dimensional polygons, and the vertex table indicating the vertex coordinates of the two-dimensional polygons and the connection relationship between the vertices constituting each two-dimensional polygon are shown. The shape data is constituted by the surface table. For example, consider a case where a virtual object composed of a cube as shown in FIG. This cube can be expressed as an aggregate of six squares, and is composed of a total of eight vertices numbered 1 to 8 in the figure. The shape data for such a cube can be composed of a vertex table shown in FIG. 2 (b) and a surface table shown in FIG. 2 (c). The vertex table shown in FIG. 2A shows the position coordinates in the XYZ three-dimensional coordinate system for each of the eight vertices. In the illustrated example, the cube shown in FIG. 2A has a vertex 1 located at the origin of the coordinate system, the side along the vertex 1-2 is on the X axis, and the side along the vertex 1-4 is the Y axis. Above, a side along the vertex 1-5 is located on the Z axis, and the length of one side is 1. The vertex table in FIG. 2 (b) merely indicates the position coordinates of the eight vertices, and the shape of the virtual object is actually defined by the surface table in FIG. 2 (c). This surface table shows the vertex configuration of the six surfaces (1) to (6) constituting this cube. For example, the surface (1) is formed by connecting the vertices 1-2-6-5. It becomes the surface to be formed.
[0028]
As described above, by using the vertex table and the surface table, the surface of a virtual object having an arbitrary shape can be defined. In the example of FIG. 2, the surface of the virtual object is defined as an aggregate of rectangles, but any polygon such as a triangle or a hexagon may be used. In implementing the present invention, it is not always necessary to use a two-dimensional polygon for the shape definition of the virtual object. For example, if it is a sphere or a cone, it can be defined using an equation, and the shape data set in the object information setting means 10 is information that can define a shape regardless of a numerical value or an expression. Anything can be used. In the embodiment shown here, since the shape data includes information indicating coordinates (in the example of FIG. 2, each coordinate value in the vertex table), the shape data functions as information defining the position together with the shape. Of course, position data for indicating the position may be set separately from the shape data.
[0029]
The texture data set in the object information setting means 10 is data for indicating the texture of the surface of the virtual object defined by the shape data. Specifically, values such as environmental color, diffusion color, specular color, and specular coefficient for each surface constituting the virtual object (surfaces (1) to (6) in the example of FIG. 2) are set as the texture data. The The light source data is data indicating the properties of the light source for illuminating the virtual object. Data indicating the shape of the light source (point, line, surface), light source position, light source color, etc. is set as the light source data. The The texture data and the light source data are data used for displaying the defined virtual object on the screen of the display 20. The object shape drawing means 30 draws the shape of the virtual object B in consideration of the texture data and the light source data.
[0030]
On the other hand, the three types of parameters of hardness K, coefficient of friction S, and mass m are parameters that are directly related to the feeling of touch and weight when performing an operation of gripping a virtual object, and changing the setting of these parameters This makes it possible to change the feeling of touch and importance during simulation. The hardness K is a parameter that determines the magnitude of the reaction force returned from the object side when a force is applied to the surface of the virtual object. The larger the value of the hardness K is set, the larger the reaction force becomes, and a hard touch feeling is obtained when the virtual object is touched. Conversely, the smaller the value of the hardness K, the smaller the magnitude of the reaction force, and a soft touch feeling can be obtained when touching a virtual object. The hardness K can be set to a different value for each individual surface of the virtual object, but in the present embodiment, only one hardness K is set to one virtual object.
[0031]
The friction coefficient S is a parameter that determines the ratio of the force that effectively acts to grip the object out of the force applied to the surface of the virtual object. As the value of the friction coefficient S is set larger, the effective force ratio increases and the object can be easily gripped. On the contrary, the smaller the value of the friction coefficient S, the smaller the effective force ratio and the more difficult it is to grip the object. The friction coefficient S can also be set to a different value for each surface of the virtual object, but in the present embodiment, only one friction coefficient S is set for one virtual object. .
[0032]
The mass m indicates the mass of the virtual object and, as will be described in detail later, will be used as a physical quantity in calculations for determining the moving speed of the virtual object, calculations for determining the gravity acting on the virtual object, and the like. . The larger the value of the mass m, the greater the feeling of weight that can be experienced when performing a gripping operation. In this embodiment, in order to simplify the calculation, the defined virtual object is handled as an object of uniform density, a single mass point is defined at the center of gravity, and the set mass m has the single mass point. We will treat it as mass. Of course, in order to treat a virtual object as an object of non-uniform density, a large number of mass points may be defined inside the virtual object, and an independent mass may be defined for each mass point.
[0033]
§3. Specific device configuration
The block diagram shown in FIG. 1 shows the apparatus according to the present invention as a set of functional elements for convenience of explanation, and shows each functional element as a block. In practice, this simulation apparatus uses a computer. Built. That is, the object information setting unit 10, the object shape drawing unit 30, and the calculation control unit 40 in the apparatus shown in FIG. 1 can be configured by incorporating a program for executing the above-described processes into a general-purpose computer. . For example, data and parameters can be set for the object information setting means 10 using a computer input device such as a keyboard and a mouse, and the set data and parameters are stored in a memory and various storage devices. become. The drawing function by the object shape drawing unit 30 and the calculation processing function by the calculation control unit 40 are realized by a program incorporated in a computer, and this program is recorded on a computer-readable recording medium. It is possible to distribute. The display 20 can be configured by a general display device for a computer.
[0034]
On the other hand, the force transducer 50 has a first function for converting the physical operation of the operator into digital data (data indicating the position of the action point) and digital data (data indicating the force control vector C) given from the arithmetic control means 40. ) Is a physical component that performs a second function that is converted into a physical force and provided to the operator. A finger is usually used for a general object gripping operation. Therefore, in this embodiment, the action portion 51 of the force transducer 50 is constituted by a finger sack that can be fitted and fixed to the fingertip of the operator so that the above functions are executed effectively, and based on the movement of the operator's finger. The action point P can be moved, and the control force based on the force control vector C is transmitted to the operator's finger through the finger sack.
[0035]
FIG. 3 is a block diagram showing the function of the force transducer 50 configured using the action part 51 in the form of this finger sack. The action part 51 is made of a material having elasticity such as rubber, and the operator can attach and fix the action part 51 to the tip of the finger. In the example shown in the figure, an action point P is defined at the tip of the action part 51 (of course, the action point P may be defined in any part of the action part 51, but to improve operability. Then, it is preferable to define at the fingertip position). In the present invention, it is necessary to prepare a plurality of n sets of such force transducers. One set is sufficient as long as it only provides a feeling of contact with an object, but the present invention is a device that simulates an object gripping operation, and at least two force transducers are required for the object gripping operation. .
[0036]
Here, the action part 51 needs to be supported in a movable state with a three-dimensional degree of freedom. That is, the action point P needs to be movable in any three-dimensional direction based on the force applied by the operator (of course, the movable space of the action point P is within a predetermined range. Can be limited). Therefore, the operator can move the fingertip in any direction in the three-dimensional space with the action unit 51 attached to the fingertip. As described above, the position detection unit 52 has a function of sequentially detecting the position of the action point P in the three-dimensional space as data including three coordinate values P (x, y, z) in real time. Yes. On the other hand, the force generator 53 generates a force f based on the force control vector C sequentially given in real time from the arithmetic control means 40 and performs a function of sequentially applying this to the action point P. Here, the force f applied to the action point P is a force having the direction and magnitude of the force control vector C.
[0037]
Eventually, the operator can move the finger wearing the action part 51 in any direction, but conversely, the operator receives the force f applied to the action point P at the fingertip and feels the reaction force from the object. (Of course, when f = 0, no reaction force is felt).
[0038]
FIG. 4 is a perspective view showing a specific configuration example of such a force transducer 50. In the figure, two sets of force transducers 50 are used and both action portions 51 (finger sack) are respectively attached to the thumb and index finger. In any case, the action point P is defined at the tip of the finger, and the operator can experience the action of gripping the virtual object B while moving both action parts 51 in any direction. In the illustrated force transducer 50, the two functions described above are realized using a plurality of link mechanisms. That is, since the action part 51 is supported by a plurality of free arms, it can be freely moved in any three-dimensional direction within a certain range of space. In addition, a mechanism for detecting the rotational position of each free arm is provided, and the three-dimensional coordinate value P (x, y, z) of the action point P can be detected. Furthermore, motors for applying a force to each of the free arms are prepared. By driving these motors, an arbitrary direction and an arbitrary amount of force can be applied to the action point P.
[0039]
Since the force transducer using such a plurality of link mechanisms is already a known device, a detailed description of its structure and mechanism will be omitted. As a commercially available product, for example, a device sold by the US Sensable Device Inc. under the trade name “PHANToM” can be used. As a result, the grasping motion simulation apparatus according to the present invention can be realized by connecting a force transducer as shown in FIG. 4 to a general-purpose computer and incorporating a predetermined program into the computer. FIG. 4 shows an example in which two pairs of force transducers are used to operate with two fingers. For example, if ten pairs of force transducers are used, a device that operates with ten fingers can be configured. Is possible. Moreover, the action part 51 does not necessarily need to be fixed to a finger. For example, if the action unit 51 is fixed to the arm, it is possible to simulate an operation of gripping an object using the arm.
[0040]
§4. Specific device operation (non-gripping state)
Subsequently, a specific operation of the simulation apparatus according to the above-described embodiment, in particular, an arithmetic processing operation performed in the arithmetic control unit 40 will be described in detail. FIG. 5 and FIG. 6 are flowcharts showing a specific procedure of the simulation operation using this apparatus. The feature of the procedure shown here is that the grasping operation of the virtual object is handled in roughly two stages. That is, two stages of a non-gripping state and a gripping state are defined, and different handling is performed at each stage. Here, the gripping state refers to a state in which the virtual object is completely supported by at least two action points. In other words, in this gripping state, the virtual object does not fall despite gravity, but remains held by at least two points of action and is involved in this holding. When the action point is moved as it is, the virtual object also moves together. On the other hand, the non-gripping state refers to a state where the gripping state has not been reached, and corresponds to a state where the movement of the action point and the virtual object is not integrated.
[0041]
The procedure of steps S1 to S11 shown in FIG. 5 is a procedure showing the operation in the non-gripping state, and the procedure of steps S12 to S19 shown in FIG. 6 is a procedure showing the operation in the holding state. Step S11 in FIG. 5 is a step for determining whether or not the gripping state is set. If an affirmative determination is made here, the procedure from step S12 in FIG. 6 is advanced. On the other hand, if an affirmative determination is made in step S15 in FIG. 6, the process returns to the non-gripping state and the procedure from step S2 in FIG. Even if it returns to S2, it will be determined again in step S11 as a gripping state, and it may return immediately to step S12). Hereinafter, the procedure performed in each step of these flowcharts will be described in detail.
[0042]
First, in step S1 of FIG. 5, in order to define a virtual object, various information related to the object is set. In the case of this embodiment, shape data, texture data, light source data, hardness K, friction coefficient S, and mass m are set for the object information setting means 10 shown in FIG. The contents of these data and parameters are as already described in §2. Subsequently, in step S2, the virtual object is displayed on the display. For example, when information about a cube as shown in FIG. 2 (a) as a virtual object is set in the object information setting means 10, a cube as shown on the screen of the display 20 shown in FIG. Is drawn by the object shape drawing means 30. At this time, as described above, realistic drawing is performed by considering the texture data and the light source data.
[0043]
In the subsequent step S3, three-dimensional positions P1 (x, y, z) to Pn (x, y, z) for n action points P1 to Pn are detected. As already described, such position data is sequentially transmitted to the arithmetic control means 40 in real time by the action of the position detection unit 52 of each force transducer 50. The process of step S3 is a process of taking such position data as a calculation target. In step S4, it is determined whether any of the action points is in contact with the virtual object.
[0044]
In this embodiment, in order to reduce the calculation burden, the virtual object is handled as a rigid body, and the process proceeds on the assumption that the virtual object set in the object information setting unit 10 does not change its shape. (Of course, the virtual object may be handled as an elastic body or a plastic body, but in this case, it is necessary to set an elastic deformation or a coefficient for plastic deformation and perform an operation to change the shape.) . Therefore, originally, the state in which the action point is in contact with the virtual object means a state in which the action point is located on the surface of the virtual object. However, since the main point of the present invention is to let the operator experience a feeling of contact and weight with respect to an object, it is not always necessary to faithfully simulate an actual physical phenomenon. From this point of view, the present inventor recognizes that the action point located inside the virtual object is in a contact state, and recognizes that the action point located outside the virtual object is in a non-contact state. In this case, it has been found that it is advantageous in providing an effective touch feeling.
[0045]
  For example, a virtual object B (α and β indicate the surface of the virtual object B) exists at a position as shown in FIG. 7, and an action point P exists at a position shown in the figure with respect to the virtual object B. Think about the case. In this case, the action point P is in a state of being submerged inside the virtual object B (a state of being submerged by a depth d from the surface α). Such a state is practically impossible if the action point P is defined as the point of the fingertip and the object is a rigid body. However, here, when the action point P has entered the inside of the virtual object B in this way, the action point P is recognized as being in contact with the virtual object B, and the outside of the virtual object B is detected. If it is, it is recognized that it is in a non-contact state. Individual action points are inside or outside the virtual objectIs thereIt can be recognized by comparing the position coordinates of the two. In addition, although the action point located just on the surface of the virtual object B is also in the contact state, as will be described later, since the reaction force F becomes zero, there is no difference between the handling state and the non-contact state. Does not occur.
[0046]
When it is determined in step S4 that none of the action points are in contact (in other words, when all the action points are determined to be located outside the virtual object B), the process returns to step S3. The new position of each action point is captured. On the other hand, if any one of the action points (even any one of the action points) is recognized as being in contact, a reaction force vector F is calculated for each action point in step S5. However, since the reaction force vector is zero for the action points that are not in the contact state, as described later, it is not actually necessary to perform the calculation.
[0047]
Here, the reaction force vector F is a vector indicating a force applied as a reaction from the object to the operator's finger, and originally has a magnitude corresponding to the force applied from the finger to the object. Should be defined as a vector pointing in the opposite direction. However, in the simulation apparatus according to the present invention, the operation amount given from the operator's finger is given as the coordinate value of the action point. Therefore, in the present embodiment, as shown in FIG. 7, the action point P in the contact state increases as the distance d increases according to the distance d between the surface α of the virtual object B and the action point P. It is assumed that force is obtained, and the direction of the reaction force is defined as the direction of the normal vector N set on the surface α. As described above, in this embodiment, the virtual object B is defined as an aggregate of a number of two-dimensional polygons, and the surfaces α and β of the virtual object B are both configured from two-dimensional polygons. . Therefore, in the present embodiment, the action point P located inside the virtual object B (that is, the action point P in a contact state) has a size corresponding to the distance d from the closest two-dimensional polygon α. The reaction force vector F is defined as a vector having the same direction as the normal vector N passing through the action point P and perpendicular to the two-dimensional polygon α.
[0048]
In the present embodiment, a parameter of hardness K is set for the virtual object B. Therefore, the magnitude of the reaction force vector F is defined as the product (d · K) of the distance d and the parameter K. That is, the reaction force vector F for the contact point P in contact is defined as a vector having the same direction as the normal vector N and a size of (d · K), as shown in FIG. Will be. On the other hand, it is assumed that a reaction force having a magnitude of zero is obtained for an action point in a non-contact state (in other words, there is no reaction force), and the reaction force vector F is a zero vector.
[0049]
When the reaction force vectors F1 to Fn for the action points P1 to Pn are obtained in this way, the force control vectors C1 to Cn for the action points P1 to Pn are obtained in the subsequent step S6. Here, the force control vectors C1 to Cn are vectors indicating the control force to be actually applied to the action points P1 to Pn, and in this step S6, each reaction force vector is directly used as each force control vector. That is, force control vectors C1 to Cn = reaction force vectors F1 to Fn (different settings are made in step S13 described later). The force control vectors C1 to Cn are transmitted from the arithmetic control means 40 to n force transducers 50. And each force generation part 53 actually applies the control force according to the magnitude | size of force control vector C1-Cn to each action point P1-Pn in the same direction as force control vector C1-Cn. become. Of course, no force is actually applied to the contact point in the non-contact state because the magnitude of the force control vector C is zero.
[0050]
Eventually, when the operator moves the fingertip to the surface position of the virtual object B, and further moves it to the inside of the virtual object B, the action point defined for the fingertip is recognized as being in a contact state, A reaction force corresponding to the force control vector C is applied to the fingertip. Since this reaction force is directed in the normal direction of the virtual object surface (surface α in the case of FIG. 7), the operator can obtain a touch feeling according to the shape of the virtual object. Moreover, the more the fingertip (the point of action P) is moved into the virtual object B, the greater the reaction force, so that the presence of the virtual object can be felt. At this time, the parameter of hardness K performs the same function as the spring constant in Hook's law. That is, if the hardness K is set large, the reaction force increases and a hard contact feeling is obtained. If the hardness K is set small, the reaction force decreases and a soft contact feeling is obtained. Will be.
[0051]
The procedure shown in the next steps S7 and S8 is a process for determining whether or not the operation by the operator's fingers is in an equilibrium state. For example, let us consider a state in which only the action point P of the right force transducer is in contact with the right side of the virtual object B in an apparatus using two sets of force transducers as shown in FIG. In this state, a leftward force is applied to the virtual object B from the operator's index finger, and the thumb is not in contact with the virtual object B. In such a state, the virtual object B should move to the left in the figure. On the other hand, if the acting point P of the left and right force transducers is in contact with both sides of the virtual object B, the force applied to the left from the operator's index finger and the right from the operator's thumb are applied. If the force is balanced, the virtual object B should remain stationary.
[0052]
Therefore, in step S7, an operation for obtaining the combined reaction force vector ΣF is performed by combining the reaction force vectors F1 to Fn of all the action points P1 to Pn. As described above, since the reaction force vector for the contact point in the non-contact state is a zero vector, the combined reaction force vector ΣF is substantially a vector obtained by combining the reaction force vectors for the contact point in the contact state. become. FIG. 8 is an upper cross-sectional view of a virtual object B made of a triangular prism.
[0053]
Consider a case where there are two contact action points P1 and P2 for such a virtual object B as shown in the figure. The action point P1 is located at a depth d1 from the surface α, and the action point P2 is located at a depth d2 from the surface β. Therefore, for the action point P1, a reaction force vector F1 that is oriented in the normal direction of the surface α and has a size (d1 · K) is defined, and a control force corresponding to the reaction force vector F1 is applied to the action point P1. Will be. Similarly, for the action point P2, a reaction force vector F2 is defined that is oriented in the normal direction of the surface β and has a size (d2 · K), and a control force corresponding to the reaction force vector F2 is applied to the action point P2. Will be added.
[0054]
In this case, in step S7, a synthetic reaction force vector ΣF is obtained by vector synthesis as shown in the lower right of FIG. In step S8, it is determined whether or not the magnitude of the resultant reaction force vector ΣF is equal to or smaller than a predetermined reference value Fr. This corresponds to determination of whether or not the force applied from the operator's finger is balanced. Theoretically, the reference value Fr = 0 is set, and only when ΣF = 0, the equilibrium state may be determined. If ΣF = 0, the reaction force against all contact points is balanced, and it can be determined that the gripping operation of the operator is in a balanced state, and the virtual object B remains stationary. However, when ΣF ≠ 0, the gripping action of the operator is in a non-equilibrium state, so that a force that moves the virtual object B in a predetermined direction is applied. For example, in the example of FIG. 8, the combined reaction force vector ΣF ≠ 0, and the force that moves the virtual object B in the direction of the inversion vector −ΣF (the reverse direction vector having the same magnitude as the combined reaction force vector ΣF). Will be working. On the other hand, in the example of FIG. 9, three action points P1, P2, and P3 are in contact with the virtual object B, and by combining reaction force vectors F1, F2, and F3 for each action point. The resultant combined vector ΣF is ΣF = (0,0,0) (where (0,0,0) indicates a vector (zero vector) in which each coordinate axis direction component is 0. ). Therefore, in the case of the example of FIG.
[0055]
However, in practice, not only when ΣF is completely zero, but also when it is less than or equal to the predetermined reference value Fr, there is no problem in determining an equilibrium state. Can improve operability. Therefore, in step S8, the equilibrium state is determined by determining whether or not the magnitude of the combined reaction force vector ΣF is equal to or less than a predetermined reference value Fr. If it is less than or equal to the reference value Fr, it is determined that the gripping operation is in an equilibrium state, and the process proceeds to step S10. If the predetermined reference value Fr is exceeded, it is determined that the gripping operation is in an unbalanced state. Proceed to S9.
[0056]
Step S9 is a process for moving the virtual object B. For example, in the case of the example shown in FIG. 8, the virtual object B is moved in the direction of the inverted vector −ΣF obtained by inverting the combined reaction force vector ΣF. Processing is performed. In order to perform such movement processing, first, a movement vector D is calculated. This movement vector D is given by D = 1/2 · (−ΣF / m) · t2Is a vector with a dimension of length given by. Here, −ΣF is the above-described inversion vector, which indicates the force applied to move the virtual object B, and m is a parameter indicating the mass of the virtual object set in the object information setting means 10. It is. After all, the term (−ΣF / m) in the above equation indicates the acceleration applied to the virtual object B. Further, t is a variable indicating time, and the movement vector D is a vector indicating the movement mode (movement direction and movement distance) of the virtual object B during the time t under the action of the acceleration of (−ΣF / m). It turns out that. In step S9, processing for updating the information in the object information setting means 10 is performed based on the movement vector D so that the position of the virtual object B is changed.
[0057]
When the process of step S9 is completed, the procedure from step S2 is executed again. In step S2, a virtual object is drawn. At this time, since the information in the object information setting unit 10 is updated, the virtual object is redrawn at a new position after the movement.
[0058]
On the other hand, when it is determined in step S8 that the equilibrium state is established, the process proceeds to steps S10 and S11, and it is determined whether or not the gripping state is established. As described above, the gripping state is a state in which the virtual object is completely supported by at least two action points. In the present embodiment, the gripping state is determined when both of the following two conditions are satisfied. The first condition is “determination of the equilibrium state”. In the non-equilibrium state, the virtual object moves so as to escape from the action point, and stable support is difficult. Therefore, here, the fact that the “equilibrium state” is maintained is set as an essential condition for the gripping state. However, it is not possible to immediately recognize this as the gripping state only under the condition of “in equilibrium”.
[0059]
For example, as in the example shown in FIG. 4, even if the force P is brought into contact with the left and right sides of the virtual object B and a force is applied between both sides and the force is balanced, the holding force is sufficient. Without it, the virtual object B cannot be lifted. If the pinching force is weak, the virtual object B will slip and fall even if both action points P are moved upward. The gripping state refers to a state in which the virtual object is completely supported by the action point, and the virtual object moves together with the movement of the action point, so the virtual object slips and falls. It cannot be said that it is in the gripping state. Here, the problem of whether or not the clamping force is sufficient, in other words, whether or not the virtual object slips and falls, is the frictional force between the point of action and the virtual object surface (static Friction force) and gravity acting on the virtual object can be grasped as a problem of the magnitude relationship. Therefore, in the present embodiment, as the second condition for determining the grip state, a condition that “the total frictional force by the action point is larger than the gravity acting on the virtual object” is used.
[0060]
Since the above-described first condition determination of “equilibrium” has already been performed in step S8, it is only necessary to perform the second condition determination in steps S10 and S11. Therefore, in step S10, first, the total frictional force at all the operating points is calculated as the total frictional force Ts. The frictional force at each action point can be obtained by multiplying the magnitude of the reaction force vector F for the action point by the friction coefficient S (set in the object information setting means 10). Therefore, the total friction force Ts can be obtained by taking the sum of the friction forces at these individual points of action. However, since the magnitude of the reaction force vector for the contact point in the non-contact state is 0, substantially only the contact point in the contact state contributes to the total frictional force Ts. For example, as shown in FIG. 10, action points P1, P2, and P3 are in contact with three surfaces α, β, and γ constituting a virtual object B made of a triangular prism, and a reaction force vector is applied to each action point. When F1, F2, and F3 are defined, the total friction force Ts is obtained by using the friction coefficient S of each surface.
Ts = | F1 | .S + | F2 | .S + | F3 | .S
Is obtained by the following formula. On the other hand, the gravity vector W acting on the virtual object B is represented by W = mg (m is the mass of the virtual object B, and g is the gravitational acceleration vector).
[0061]
Thus, in step S11, the magnitude of the gravity vector W is compared with the total friction force Ts. If the latter is determined to be greater than the former, the L action points in contact at that time point It can be determined that the virtual object is in the gripping state. If it is determined in step S11 that the robot is in the gripping state, the procedure of step S12 in FIG. 6 is executed. On the other hand, if it is determined that it is in the non-gripping state, the processing from step S3 is executed again.
[0062]
§5. Specific device operation (gripping state)
The major difference between the handling in the non-gripping state and the handling in the gripping state is that in the latter, a control force in consideration of the acceleration of the virtual object is applied to the action point. For example, in the example shown in FIG. 4, it is assumed that the virtual object B is firmly supported from the left and right by the pair of action points P and is in a gripping state. In this case, the pair of action points P and the virtual object B move together, and the operator can feel that he is holding the virtual object with his fingertip. In such a case, the inventor of this application applies not only a reaction force (a force applied from the virtual object to the finger as a reaction of the force applied from the finger to the virtual object) but also a virtual force to each action point P. It has been found that when a force based on the motion acceleration and gravity acceleration of the object B is applied, a more realistic weight feeling can be given.
[0063]
That is, in step S6 in the non-gripping state described above, the reaction force vectors F1 to Fn are used as the force control vectors C1 to Cn as they are as the control force on the action points P1 to Pn. Obtains force control vectors C1 to Cn by synthesizing force vectors based on the motion acceleration and gravity acceleration of the virtual object B with the reaction force vectors F1 to Fn, and obtains the control force at each of the action points P1 to Pn. As long as it works. However, the force control vector for the contact point in the non-contact state is still a zero vector (0, 0, 0).
[0064]
Hereinafter, a specific method based on such a concept will be described based on the flowchart of FIG. First, if it is determined in step S11 in FIG. 5 that the gripping state is detected, the acceleration vector A of the virtual object is set to an initial value (zero vector) of A = (0, 0, 0) in step S12. In other words, in the present embodiment, the virtual object B is handled in the stationary state at the initial stage where it is determined to be in the gripping state.
[0065]
Subsequently, in step S13, a force control vector considering acceleration is obtained, and a process of applying a control force to each action point is performed. For example, as in the example shown in FIG. 11, it is assumed that a virtual object having a cubic shape is gripped by three action points P1, P2, and P4 and is moving based on the acceleration vector A (acceleration vector A Indicates the acceleration caused by the operator moving the three action points P1, P2 and P4). At this time, the action points P3 and P5 are action points in a non-contact state and are not involved in the grasping operation of the virtual object. Therefore, no force acts on the action points P3 and P5 from the virtual object side. On the other hand, as described above, the reaction force vectors F1, F2, and F4 are calculated for the contact points P1, P2, and P4, and the forces corresponding to the reaction force vectors F1, F2, and F4 are respectively applied. Applied by the force generator 53. However, in handling in the gripping state, in addition to the reaction force vectors F1, F2, and F4, the force based on the acceleration vector A and the gravity vector W (W = mg) are applied to the contact points P1, P2, and P4. By superimposing and acting on the base force, the object feels heavy.
[0066]
Here, a vector mA obtained by multiplying the acceleration vector A by the mass m of the virtual object is referred to as a motion vector (having a force dimension), and a vector obtained by synthesizing the motion vector mA and the gravity vector W ( mA + W) will be referred to as an external force vector. The motion vector mA is a force vector generated when the operator tries to move the object in a predetermined direction while holding the object, and the external force vector is a force acting as an external force on the entire virtual object by further applying gravity. Is a vector. The external force vector (mA + W) indicates a force acting on the entire virtual object. By considering that the external force vector (mA + W) acts in a distributed manner on each contact action point, a distributed external force is applied on each contact action point. A vector Fa can be defined. Here, based on the assumption that the external force vector (mA + W) is evenly distributed to all L action points in contact, a distributed external force acting on each action point based on the formula Fa = (mA + W) / L. The vector Fa is determined.
[0067]
After all, it is only necessary to cause the distributed external force vector Fa to be superimposed on the reaction force vectors F1, F2, and F4 at the three contact action points P1, P2, and P4 shown in FIG. That is, force control vectors C1, C2, and C4 indicating control forces to be applied to the action points P1, P2, and P4 are obtained by vector synthesis of C1 = F1 + Fa, C2 = F2 + Fa, and C4 = F4 + Fa, respectively. What is necessary is just to add the control force according to a control vector. Of course, the force control vectors C3 and C5 for the non-contact action points P3 and P5 are zero vectors (0, 0, 0) of zero magnitude, and virtually no control force is applied.
[0068]
Subsequently, in step S14, three-dimensional positions PP1 (x, y, z) to PPn (x, y, z) for n action points P1 to Pn after the elapse of time t are detected. For example, if the positions of the action points P1 to Pn at time T are P1 (x, y, z) to Pn (x, y, z), the positions of the action points P1 to Pn at time (T + t) are PP1 ( x, y, z) to PPn (x, y, z). Then, in step S15, it is determined whether or not the contact state has changed for each action point. That is, for each action point, whether or not a state transition from the contact state to the non-contact state or a state transition from the non-contact state to the contact state occurs is monitored at a period of time t. If no state transition has occurred for all the action points, it is determined that the gripping state is continued, and the process proceeds to step S16. However, the state transition has occurred for any of the action points. In this case, the process returns from step S15 to step S2, and the above-described procedure in the non-gripping state is executed.
[0069]
For example, in the example shown in FIG. 11, since the action points P1, P2, and P4 are in a contact state and the action points P3 and P5 are in a non-contact state, as long as these states are maintained, the gripping state is continued. It is determined that there is, and the process proceeds to step S16. However, when the action point P1 changes state from the contact state to the non-contact state, or when the action point P5 changes state from the non-contact state to the contact state, the contact state changes in step S15. It will be judged and it will return to Step S2. Of course, just because a change in the contact state occurs at any of the action points as described above, the gripping state is not necessarily canceled. However, since the gripping state may be canceled when a change in the contact state occurs at any of the operating points, in this embodiment, in such a case, the procedure returns to step S2 for the time being. The determination of the gripping state / non-holding state is executed again. If the gripping state has not been resolved, it is immediately determined in step S11 that the gripping state is present, and the process returns to step S12, so that no major problem occurs. In addition, when the state immediately returns to the gripping state as described above, if the initialization in step S12 is omitted, the virtual object can be handled while continuing the motion.
[0070]
On the other hand, when it is determined that the gripping state is continued and the process proceeds to step S16, acceleration vectors A1 to An are calculated for the action points P1 to Pn, respectively. However, the acceleration vector is not calculated for the contact point in the non-contact state (or if the acceleration vector for the contact point in the non-contact state is handled as all zero vectors (0, 0, 0). Good). Each acceleration vector can be obtained based on a temporal change in the position of each action point. For example, when the first action point P1 is in a contact state, the acceleration vector A1 for this action point P1 includes a vector P1 (x, y, z) indicating the old position of the action point P1 and a new position ( By using the vector PP1 (x, y, z) indicating the position after the time t),
A1 = (PP1 (x, y, z) −P1 (x, y, z)) × 2 / t2
Similarly, when the nth action point Pn is in a contact state, the acceleration vector An for the action point Pn is a vector Pn (x, x, x) indicating the old position of the action point Pn. y, z) and a vector PPn (x, y, z) indicating the new position (position after time t has elapsed),
An = (PPn (x, y, z) −Pn (x, y, z)) × 2 / t2
Can be obtained by the following calculation.
[0071]
Note that, as described above, in this embodiment, the virtual object is handled as a rigid body, and therefore the virtual object is not deformed. Therefore, for the acceleration vectors A1 to An for the n action points P1 to Pn,
A = (A1 + A2 +... + An) / L
(L is the number of action points in the contact state) to obtain an average acceleration vector A, and this average acceleration vector A may be applied to the entire virtual object.
[0072]
Subsequently, in step S17, a process of moving the virtual object based on the movement vector M is performed. For example, the movement vector M1 indicating the movement mode (movement direction and movement distance) during the time t of the first action point P1 is expressed by using the acceleration vector A1.
M1 = 1/2 · A1 · t2
The movement vector Mn indicating the movement mode during the time t of the n-th action point Pn can be obtained using the acceleration vector An.
Mn = 1/2 · An · t2
(In the case of an action point in a non-contact state, since the acceleration vector is a zero vector, the movement vector is also a zero vector). However, when the virtual object is handled as a rigid body and the movement of the virtual object is limited to parallel movement (movement without a so-called rotation element) as in this embodiment,
M = (M1 + M2 +... + Mn) / L
Or using the average acceleration vector A,
M = 1/2 · A · t2
In this calculation, the average movement vector M is obtained, and information in the object information setting means 10 is updated so that the position of the virtual object is changed based on the movement vector M. For example, for a cube-shaped virtual object as shown in FIG. 2A, when a movement vector M having a size of 1 in the X-axis negative direction is obtained, the entire distance is 1 in the X-axis negative direction. Therefore, the vertex table shown in FIG. 2B is updated as shown in FIG.
[0073]
In the subsequent step S18, the object shape drawing unit 30 draws a virtual object based on the updated information in the object information setting unit 10, and the virtual object after movement is displayed on the screen of the display 20. The position will be displayed.
[0074]
Finally, in step S19, vectors P1 (x, y, z) to Pn (x, y, z) indicating the old positions of the n action points P1 to Pn are converted into vectors PP1 (x, y) indicating the new positions. , Z) to PPn (x, y, z), and then the process from step S13 is repeated. That is, the acceleration vector A obtained in step S16 is used in step S13. Thus, the steps S13 to S19 are repeatedly executed unless the contact state of each action point changes.
[0075]
Although the object gripping motion simulation apparatus according to the present invention has been described based on the representative embodiment, the present invention is not limited to the embodiment described here, and can be implemented in various other forms. Is possible. For example, the virtual object does not necessarily need to be a rigid body, can be handled as an elastic body or a plastic body, and may be handled such that its shape is deformed. Further, the display 20 and the object shape drawing means 30 described in the above embodiment are not necessarily provided unless visual presentation is required. However, in order to efficiently give a sense of touch and weight to the operator, it is preferable to use both visual presentation and tactile presentation. In practice, the display 20 and the object shape drawing means 30 are provided. Is preferred.
[0076]
【The invention's effect】
As described above, according to the object grasping motion simulation apparatus according to the present invention, it is possible to experience a feeling of contact and a feeling of weight when grasping an object.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a basic configuration of an object gripping motion simulation apparatus according to an embodiment of the present invention.
2 is a diagram showing an example of a virtual object and its shape data defined in the simulation apparatus shown in FIG. 1; FIG.
FIG. 3 is a block diagram showing functions of a force transducer in the simulation apparatus shown in FIG.
4 is a perspective view showing a specific configuration example of the force transducer shown in FIG. 3; FIG.
FIG. 5 is a flowchart showing an operation procedure in a non-gripping state in the simulation apparatus according to the present invention.
FIG. 6 is a flowchart showing an operation procedure in a gripping state in the simulation apparatus according to the present invention.
FIG. 7 is a side sectional view showing an example of a method for determining a reaction force vector F in the simulation apparatus according to the present invention.
FIG. 8 is an upper sectional view showing a non-equilibrium state of reaction force in the simulation apparatus according to the present invention.
FIG. 9 is an upper cross-sectional view showing an equilibrium state of reaction forces in the simulation apparatus according to the present invention.
FIG. 10 is a perspective view showing a gripping state determination method considering friction in the simulation apparatus according to the present invention.
FIG. 11 is a perspective view showing forces acting on an object in a gripping state in the simulation apparatus according to the present invention.
12 is a diagram illustrating an example of updating the shape data illustrated in FIG. 2 due to the movement of an object.
[Explanation of symbols]
1-8 ... vertices
10: Object information setting means
20 ... Display
30 ... Object shape drawing means
40. Calculation control means
50 ... Force transducer
51. Action part
52 ... Position detection unit
53 ... Force generator
A ... Acceleration vector
B ... Virtual object
C, C1-Cn ... Force control vector
d, d1, d2, d3... distance between the action point and the surface of the virtual object
F, F1-Fn ... reaction force vector
Fa: Distributed external force vector
ΣF ... Composite reaction force vector
f: Force applied to the point of action P
K: Parameter indicating hardness
N ... Normal vector
P, P1 to Pn ... operating point
P (x, y, z), P1 (x, y, z) to Pn (x, y, z) ... positions of action points P, P1 to Pn
PP1 (x, y, z) to PPn (x, y, z) ... New positions of the action points P1 to Pn
W ... gravity vector
α, β, γ… Polygons constituting the surface of the virtual object

Claims (10)

所定の仮想物体を定義し、この仮想物体を掴む動作を疑似的に体験させるためのシミュレーションを行う装置であって、
仮想物体を定義するための情報として、当該仮想物体の表面を三次元座標系上の所定位置に配置された二次元多角形の集合体として表現する形状データと、当該仮想物体の質量を示すパラメータmと、を設定する物体情報設定手段と、
オペレータから加えられた力に基いて三次元の任意方向に移動可能な作用点を有する作用部と、前記作用点の三次元座標系上での位置を検出する位置検出部と、与えられた力制御ベクトルに基いて前記作用点に加える力を発生させる力発生部と、を有する複数n個の力トランスデューサと、
所定の演算を実施することにより、前記n個の力トランスデューサのそれぞれについての作用点に加えるべき制御力を示す力制御ベクトルを求め、求めた力制御ベクトルを個々の力トランスデューサへ与える制御を行う演算制御手段と、
を備え、
前記演算制御手段が、
位置検出部が検出した作用点の位置と物体情報設定手段内の情報により定義された仮想物体の位置とに基いて、仮想物体の内部に位置する作用点については接触状態であると判定し、仮想物体の外部に位置する作用点については非接触状態であると判定する接触状態判定部と、
接触状態であると判定された作用点については、最も近い二次元多角形αとの距離dに応じた大きさを有し、前記最も近い二次元多角形αに垂直な法線ベクトルNと同じ方向をもった反力ベクトルFを求め、非接触状態であると判定された作用点については、大きさ零の反力ベクトルFを求め、求めた反力ベクトルFに基いて各作用点に加えるべき制御力を示す力制御ベクトルを求める力制御ベクトル演算部と、
各作用点の反力ベクトルFを合成することにより合成反力ベクトルΣFを求め、この合成反力ベクトルΣFの大きさが所定の基準値Fr以下であった場合には把持動作が平衡状態にあると判定し、所定の基準値Frを越える場合には把持動作が非平衡状態にあると判定する平衡状態判定部と、
非平衡状態にあると判定された場合には、前記合成反力ベクトルΣFの反転ベクトル−ΣFおよび前記パラメータmに基いて決定される加速度が作用した場合の仮想物体の移動態様を示す移動ベクトルDを演算により求め、この移動ベクトルDに基いて仮想物体の位置が変更されるように物体情報設定手段内の情報を更新する処理を行う物体情報更新部と、
を有することを特徴とする物体の把持動作シミュレーション装置。
A device for defining a predetermined virtual object and performing a simulation to simulate the operation of grasping the virtual object,
As information for defining a virtual object, shape data representing the surface of the virtual object as a collection of two-dimensional polygons arranged at predetermined positions on a three-dimensional coordinate system, and a parameter indicating the mass of the virtual object object information setting means for setting m ,
An action part having an action point movable in an arbitrary three-dimensional direction based on a force applied by an operator, a position detection part for detecting the position of the action point on a three-dimensional coordinate system, and the given force A force generator that generates a force to be applied to the action point based on a control vector, and a plurality of n force transducers,
An operation for performing a control to obtain a force control vector indicating a control force to be applied to the action point for each of the n force transducers by performing a predetermined operation, and to give the obtained force control vector to each force transducer. Control means;
With
The arithmetic control means is
Based on the position of the action point detected by the position detector and the position of the virtual object defined by the information in the object information setting means, the action point located inside the virtual object is determined to be in a contact state, A contact state determination unit that determines that the action point located outside the virtual object is in a non-contact state;
The action point determined to be in the contact state has a size corresponding to the distance d to the nearest two-dimensional polygon α, and is the same as the normal vector N perpendicular to the nearest two-dimensional polygon α. A reaction force vector F having a direction is obtained. For an action point determined to be in a non-contact state, a zero reaction force vector F is obtained and added to each action point based on the obtained reaction force vector F. A force control vector calculation unit for obtaining a force control vector indicating the power to be controlled;
A combined reaction force vector ΣF is obtained by combining the reaction force vectors F of the respective action points. When the magnitude of the combined reaction force vector ΣF is equal to or smaller than a predetermined reference value Fr, the gripping operation is in an equilibrium state. An equilibrium state determination unit that determines that the gripping operation is in an unbalanced state when a predetermined reference value Fr is exceeded,
When it is determined that the vehicle is in the non-equilibrium state, the movement vector D indicating the movement mode of the virtual object when the acceleration determined based on the inverted vector −ΣF of the composite reaction force vector ΣF and the parameter m is applied. An object information update unit that performs a process of updating information in the object information setting means so that the position of the virtual object is changed based on the movement vector D;
An apparatus for simulating a grasping operation of an object, comprising:
請求項1に記載のシミュレーション装置において、
仮想物体を表示するためのディスプレイと、
物体情報設定手段内に設定された形状データおよび位置検出部が検出した作用点の位置に基づいて、前記ディスプレイの画面上に仮想物体および作用点を表示するための画像データを作成する物体形状描画手段と、
を更に設けたことを特徴とする物体の把持動作シミュレーション装置。
The simulation apparatus according to claim 1,
A display for displaying virtual objects;
Object shape drawing for creating image data for displaying a virtual object and an action point on the screen of the display based on the shape data set in the object information setting means and the position of the action point detected by the position detector Means,
An object gripping motion simulation apparatus, further comprising:
請求項2に記載のシミュレーション装置において、
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の表面の質感を示す質感データおよび仮想物体を照明するための光源の性質を示す光源データを設定し、
物体形状描画手段が、前記質感データおよび前記光源データを考慮して仮想物体の画像データを作成することを特徴とする物体の把持動作シミュレーション装置。
The simulation apparatus according to claim 2,
The object information setting means further sets, as information for defining the virtual object, material data indicating the surface texture of the virtual object and light source data indicating the nature of the light source for illuminating the virtual object,
An object gripping motion simulation apparatus, wherein object shape drawing means creates image data of a virtual object in consideration of the texture data and the light source data.
請求項1〜3のいずれかに記載のシミュレーション装置において、In the simulation apparatus in any one of Claims 1-3,
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体の硬さを示すパラメータKを設定し、  The object information setting means further sets a parameter K indicating the hardness of the virtual object as information for defining the virtual object,
力制御ベクトル演算部が、距離dとパラメータKとの積(d・K)に基づいて反力ベク  The force control vector calculation unit calculates the reaction force vector based on the product (d · K) of the distance d and the parameter K. トルFの大きさを求めることを特徴とする物体の把持動作シミュレーション装置。An object grasping motion simulation apparatus characterized by obtaining a size of the toll F.
請求項1〜4のいずれかに記載のシミュレーション装置において、In the simulation apparatus in any one of Claims 1-4,
物体情報設定手段が、仮想物体を定義するための情報として、更に、仮想物体表面の摩擦係数を示すパラメータSを設定し、  As the information for defining the virtual object, the object information setting means further sets a parameter S indicating the friction coefficient of the virtual object surface,
演算制御手段が、  The arithmetic control means is
各作用点における摩擦力を反力ベクトルFの大きさと前記パラメータSとの積と定義することにより、各作用点における摩擦力の総和である総摩擦力Tsを求める摩擦力演算部と、  A frictional force calculating unit for obtaining a total frictional force Ts that is a sum of the frictional forces at the respective operating points by defining the frictional force at each operating point as a product of the magnitude of the reaction force vector F and the parameter S;
重力加速度ベクトルgに仮想物体の質量を示すパラメータmを乗じることにより重力ベクトルWを求める重力演算部と、  A gravity calculation unit for obtaining a gravity vector W by multiplying the gravity acceleration vector g by a parameter m indicating the mass of the virtual object;
平衡状態判定部によって平衡状態にあると判定され、かつ、前記重力ベクトルWの大きさよりも前記総摩擦力Tsの大きさの方が大きいという条件を満たす場合には、その時点で接触状態にあるL個の作用点によって仮想物体が把持状態にあると判定し、前記条件を満たさない場合には、仮想物体は非把持状態にあると判定する把持状態判定部と、  When it is determined by the equilibrium state determination unit that the state is in an equilibrium state and the condition that the total frictional force Ts is larger than the magnitude of the gravity vector W is in a contact state at that time. A gripping state determination unit that determines that the virtual object is in a gripping state by L action points and determines that the virtual object is in a non-gripping state if the condition is not satisfied,
仮想物体が把持状態にあると判定されたときに、前記L個の作用点の位置の時間的変化に基いて仮想物体に作用する加速度ベクトルAを求める加速度演算部と、  An acceleration calculation unit for obtaining an acceleration vector A acting on the virtual object based on a temporal change in the position of the L action points when it is determined that the virtual object is in the gripping state;
前記加速度ベクトルAにパラメータmを乗じることにより得られる運動ベクトルmAと前記重力ベクトルWとを合成することにより得られる外力ベクトル(mA+W)に基いて、各作用点に作用する分散外力ベクトルFaを求める分散外力ベクトル演算部と、  Based on an external force vector (mA + W) obtained by combining the motion vector mA obtained by multiplying the acceleration vector A by the parameter m and the gravity vector W, a distributed external force vector Fa acting on each action point is obtained. A distributed external force vector calculation unit;
を更に備え、  Further comprising
力制御ベクトル演算部が、  Force control vector calculation unit
仮想物体が非把持状態にあると判定されたときには、各作用点についての反力ベクトルFを、当該作用点に加えるべき制御力を示す力制御ベクトルCとし、  When it is determined that the virtual object is in the non-gripping state, the reaction force vector F for each action point is set as a force control vector C indicating the control force to be applied to the action point,
仮想物体が把持状態にあると判定されたときには、接触状態にある作用点については、各作用点についての反力ベクトルFと分散外力ベクトルFaとを合成することにより得られるベクトルを、当該作用点に加えるべき制御力を示す力制御ベクトルCとし、非接触状態にある作用点については、大きさ零のベクトルを当該作用点に加えるべき制御力を示す力制御ベクトルCとすることを特徴とする物体の把持動作シミュレーション装置。  When it is determined that the virtual object is in the gripping state, for the action point in the contact state, a vector obtained by combining the reaction force vector F and the distributed external force vector Fa for each action point is used as the action point. A force control vector C indicating a control force to be applied to the action point, and for a point of action in a non-contact state, a zero magnitude vector is set as a force control vector C indicating the control force to be applied to the action point. Object gripping motion simulation device.
請求項5に記載のシミュレーション装置において、The simulation apparatus according to claim 5, wherein
分散外力ベクトル演算部が、Fa=(mA+W)/Lなる式に基いて各作用点に作用する分散外力ベクトルFaを決定することを特徴とする物体の把持動作シミュレーション装置。  An object gripping motion simulation apparatus, wherein a distributed external force vector calculation unit determines a distributed external force vector Fa acting on each action point based on an expression Fa = (mA + W) / L.
請求項5または6に記載のシミュレーション装置において、The simulation apparatus according to claim 5 or 6,
演算制御手段が、  The arithmetic control means is
仮想物体が把持状態にあると判定されたときに、個々の作用点について、接触状態から非接触状態への状態遷移もしくは非接触状態から接触状態への状態遷移を監視する接触状態監視部を更に備え、  A contact state monitoring unit for monitoring the state transition from the contact state to the non-contact state or the state transition from the non-contact state to the contact state for each action point when it is determined that the virtual object is in the gripping state; Prepared,
把持状態判定部が、すべての作用点について状態遷移が生じていない場合は、引き続き把持状態にあるとの判定を行い、いずれかの作用点について状態遷移が生じていた場合には、把持状態/非把持状態の判定を再度実行することを特徴とする物体の把持動作シミュレーション装置。  When the state transition has not occurred for all the action points, the gripping state determination unit determines that the gripping state is continued, and if the state transition has occurred for any of the action points, An object gripping motion simulation apparatus, wherein the determination of the non-grip state is executed again.
請求項1〜7のいずれかに記載のシミュレーション装置において、In the simulation apparatus in any one of Claims 1-7,
演算制御手段が、  The arithmetic control means is
仮想物体が把持状態にあると判定されたときに、加速度ベクトルAに基く仮想物体の移動態様を示す移動ベクトルMを演算により求める移動ベクトル演算部を更に備え、  A movement vector calculation unit that calculates a movement vector M indicating a movement mode of the virtual object based on the acceleration vector A when it is determined that the virtual object is in a gripping state;
物体情報更新部が、前記移動ベクトルMに基いて仮想物体の位置が変更されるように物体情報設定手段内の情報を更新する処理を行うことを特徴とする物体の把持動作シミュレーション装置。  An object gripping motion simulation apparatus, wherein an object information update unit performs a process of updating information in an object information setting unit so that a position of a virtual object is changed based on the movement vector M.
コンピュータを、請求項1〜8のいずれかに記載のシミュレーション装置における演算制御手段として機能させるためのプログラムを記録したコンピュータ読A computer-readable recording medium storing a program for causing a computer to function as arithmetic control means in the simulation apparatus according to claim 1. み取り可能な記録媒体。A removable recording medium. 請求項1〜8のいずれかに記載のシミュレーション装置において、In the simulation apparatus in any one of Claims 1-8,
力トランスデューサの作用部を、オペレータの指先に嵌めて固定できる指サックによって構成したことを特徴とする物体の把持動作シミュレーション装置。  An object gripping motion simulation apparatus, wherein the action portion of the force transducer is configured by a finger sack that can be fitted and fixed to an operator's fingertip.
JP09088698A 1998-03-19 1998-03-19 Object gripping motion simulation device Expired - Fee Related JP3713381B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09088698A JP3713381B2 (en) 1998-03-19 1998-03-19 Object gripping motion simulation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09088698A JP3713381B2 (en) 1998-03-19 1998-03-19 Object gripping motion simulation device

Publications (2)

Publication Number Publication Date
JPH11272157A JPH11272157A (en) 1999-10-08
JP3713381B2 true JP3713381B2 (en) 2005-11-09

Family

ID=14010923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09088698A Expired - Fee Related JP3713381B2 (en) 1998-03-19 1998-03-19 Object gripping motion simulation device

Country Status (1)

Country Link
JP (1) JP3713381B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11508016B1 (en) * 2020-02-04 2022-11-22 Avalara, Inc. Determining a resource for a place based on three-dimensional coordinates that define the place

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005348779A (en) * 2004-06-08 2005-12-22 Asahi Kasei Engineering Kk Kinetic rehabilitation and training system
JP2006247280A (en) * 2005-03-14 2006-09-21 Osaka Univ Upper extremity rehabilitation apparatus
US8149236B2 (en) 2005-08-01 2012-04-03 National University Corporation NARA Institute of Science and Technology Information processing apparatus and program
JP4921113B2 (en) * 2006-10-25 2012-04-25 キヤノン株式会社 Contact presentation apparatus and method
KR100927009B1 (en) * 2008-02-04 2009-11-16 광주과학기술원 Haptic interaction method and system in augmented reality
JP5559855B2 (en) * 2012-11-06 2014-07-23 株式会社コナミデジタルエンタテインメント GAME DEVICE, GAME DEVICE CONTROL METHOD, AND PROGRAM

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3266296B2 (en) * 1992-02-18 2002-03-18 富士ゼロックス株式会社 Virtual reality device
JPH06324622A (en) * 1993-05-11 1994-11-25 Matsushita Electric Ind Co Ltd Force sense indication device
JP2938805B2 (en) * 1996-06-10 1999-08-25 株式会社エイ・ティ・アール通信システム研究所 Virtual object operation method and virtual object display device
JPH1148168A (en) * 1997-07-31 1999-02-23 Yaskawa Electric Corp Contact clamp sense presenting device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11508016B1 (en) * 2020-02-04 2022-11-22 Avalara, Inc. Determining a resource for a place based on three-dimensional coordinates that define the place

Also Published As

Publication number Publication date
JPH11272157A (en) 1999-10-08

Similar Documents

Publication Publication Date Title
Girard et al. Haptip: Displaying haptic shear forces at the fingertips for multi-finger interaction in virtual environments
Zhai User performance in relation to 3D input device design
Sato Development of string-based force display: SPIDAR
Magnenat-Thalmann et al. Haptics in virtual reality and multimedia
US20060119578A1 (en) System for interfacing between an operator and a virtual object for computer aided design applications
Magnenat-Thalmann et al. From Physics-based Simulation to the Touching of Textiles: The HAPTEX Project.
Salisbury Jr Making graphics physically tangible
Nilsson et al. Propping up virtual reality with haptic proxies
Otaduy et al. Representations and algorithms for force-feedback display
JP5364035B2 (en) Virtual force sense presentation device and virtual force sense presentation program
CN106371573A (en) Tactile feedback method and apparatus, and virtual reality interaction system
Tong et al. Survey on hand-based haptic interaction for virtual reality
JP3713381B2 (en) Object gripping motion simulation device
Kim et al. A novel seven degree of freedom haptic device for engineering design
JP3722994B2 (en) Object contact feeling simulation device
Cui et al. Mid-air gestures for virtual modeling with leap motion
Falcao et al. Applications of haptic devices & virtual reality in consumer products usability evaluation
Kudry et al. Prototype of a wearable force-feedback mechanism for free-range immersive experience
JP3722992B2 (en) Object contact feeling simulation device
JP2000047563A (en) Holding action simulation device for object
Sener et al. Towards' virtual clay'modelling-challenges and recommendations: a brief summary of the literature
JP3722993B2 (en) Hair texture contact simulation device
Han et al. A framework for virtual hand haptic interaction
Wan et al. A 4-layer flexible virtual hand model for haptic interaction
Cao et al. Research and Implementation of virtual pottery

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050816

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050822

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees