(57)【要約】【課題】指と掌の合理的な姿勢を効率よく、かつ、より短時間で作成するための技術を提供する。【解決手段】指掌姿勢生成システムは、（i）少なくとも３つの指吸着点データのうち２つの指吸着点を選択し、それらに対応する指付け根点データを特定する処理と、（ii）２つの指吸着点と２つの指付け根点によって決まる制約から少なくとも３つの吸着点データに対応する３つの指付け根点データを決定し、当該指付け根点データが構成する平面を掌姿勢とする処理と、（iii）各指の末端の位置姿勢を指データから特定し、当該各指の末端の位置姿勢と掌姿勢のデータを用いて、逆運動学演算を行い、各指の各関節の回転角度データを算出し、指姿勢とする処理と、（iv）各指の各関節の回転角度データを用いて順運動学演算を行い、掌姿勢によって規定される掌から各指の末端へ至る各関節の姿勢を決定する処理と、を実行する。【選択図】図１
2015191519.tif 000002
【特許請求の範囲】
【請求項１】
３次元の指掌姿勢を生成する指掌姿勢生成システムであって、
物体モデルデータと、指データと、指掌モデルデータと、を格納するメモリと、
指が物体を掴む位置を示し、物体表面上に指示された指吸着点データを受け付け、当該指吸着点データ、前記物体モデルデータ、前記指データ、及び前記指掌モデルデータに基づいて、指と掌の姿勢を示す指掌姿勢を決定する処理を行うプロセッサと、を有し、
前記プロセッサは、
少なくとも３つの指吸着点データのうち２つの指吸着点を選択し、それらに対応する指付け根点データを特定する処理と、
前記２つの指吸着点と２つの指付け根点によって決まる制約から前記少なくとも３つの吸着点データに対応する３つの指付け根点データを決定し、当該指付け根点データが構成する平面を掌姿勢とする処理と、
各指の末端の位置姿勢を前記指データから特定し、当該各指の末端の位置姿勢と前記掌姿勢のデータを用いて、逆運動学演算を行い、各指の各関節の回転角度データを算出し、指姿勢とする処理と、
各指の各関節の回転角度データを用いて順運動学演算を行い、前記掌姿勢によって規定される掌から各指の末端へ至る各関節の姿勢を決定する処理と、
を実行することを特徴とする指掌姿勢生成システム。
【請求項２】
請求項１において、
前記指掌モデルデータは、各指の各関節の回転角度の上限及び下限のデータを有し、
前記プロセッサは、演算対象の関節の前記回転角度の上限及び下限データを用いて逆運動学演算を実行することにより、前記演算対象の関節の回転角度データを算出することを特徴とする指掌姿勢生成システム。
【請求項３】
請求項１において、
前記プロセッサは、前記２つの指吸着点データと前記２つの指付け根点データのうち対応する点同士で規定される直線の交点と、前記選択されなかった１つの指吸着点データとそれに対応する指付け根点データとの距離が最小となるように、前記少なくとも３つの指吸着点データに対応する少なくとも３つの指付け根点データを決定することを特徴とする指掌姿勢生成システム。
【請求項４】
請求項３において、
前記プロセッサは、前記掌姿勢を決定する処理に用いていない残りの指に関し、前記掌姿勢のデータと前記残りの指の指吸着点データを用いて逆運動学演算をすることにより、前記残りの指の姿勢を決定する処理を実行することを特徴とする指掌姿勢生成システム。
【請求項５】
請求項４において、
前記プロセッサは、前記残りの指の指吸着点データが指示されていない場合、前記残りの指に関し任意の姿勢を決定することを特徴とする指掌姿勢生成システム。
【請求項６】
コンピュータシステムを用いて、３次元の指掌姿勢を生成する指掌姿勢生成方法であって、
前記コンピュータシステムは、物体モデルデータと、指データと、指掌モデルデータと、を格納するメモリと、指が物体を掴む位置を示し、物体表面上に指示された指吸着点データを受け付け、当該指吸着点データ、前記物体モデルデータ、前記指データ、及び前記指掌モデルデータに基づいて、指と掌の姿勢を示す指掌姿勢を決定する処理を行うプロセッサと、を有し、
前記方法は、
前記プロセッサが、少なくとも３つの指吸着点データのうち２つの指吸着点を選択し、それらに対応する指付け根点データを特定するステップと、
前記プロセッサが、前記２つの指吸着点と２つの指付け根点によって決まる制約から前記少なくとも３つの吸着点データに対応する３つの指付け根点データを決定し、当該指付け根点データが構成する平面を掌姿勢とするステップと、
前記プロセッサが、各指の末端の位置姿勢を前記指データから特定し、当該各指の末端の位置姿勢と前記掌姿勢のデータを用いて、逆運動学演算を行い、各指の各関節の回転角度データを算出し、指姿勢とするステップと、
前記プロセッサが、各指の各関節の回転角度データを用いて順運動学演算を行い、前記掌姿勢によって規定される掌から各指の末端へ至る各関節の姿勢を決定するステップと、
を有することを特徴とする指掌姿勢生成方法。
【請求項７】
請求項６において、
前記指掌モデルデータは、各指の各関節の回転角度の上限及び下限のデータを有し、
前記プロセッサは、演算対象の関節の前記回転角度の上限及び下限データを用いて逆運動学演算を実行することにより、前記演算対象の関節の回転角度データを算出することを特徴とする指掌姿勢生成方法。
【請求項８】
請求項６において、
前記プロセッサは、前記２つの指吸着点データと前記２つの指付け根点データのうち対応する点同士で規定される直線の交点と、前記選択されなかった１つの指吸着点データとそれに対応する指付け根点データとの距離が最小となるように、前記少なくとも３つの指吸着点データに対応する少なくとも３つの指付け根点データを決定することを特徴とする指掌姿勢生成方法。
【請求項９】
請求項８において、さらに、
前記プロセッサが、前記掌姿勢を決定する処理に用いていない残りの指に関し、前記掌姿勢のデータと前記残りの指の指吸着点データを用いて逆運動学演算をすることにより、前記残りの指の姿勢を決定するステップを有することを特徴とする指掌姿勢生成方法。
【請求項１０】
請求項９において、
前記プロセッサは、前記残りの指の指吸着点データが指示されていない場合、前記残りの指に関し任意の姿勢を決定することを特徴とする指掌姿勢生成方法。
【請求項１１】
コンピュータシステムに３次元の指掌姿勢を生成する処理を実行させるためのプログラムであって、
前記コンピュータシステムは、物体モデルデータと、指データと、指掌モデルデータと、を格納するメモリと、指が物体を掴む位置を示し、物体表面上に指示された指吸着点データを受け付け、当該指吸着点データ、前記物体モデルデータ、前記指データ、及び前記指掌モデルデータに基づいて、指と掌の姿勢を示す指掌姿勢を決定する処理を行うプロセッサと、を有し、
前記プログラムは、前記プロセッサに、
少なくとも３つの指吸着点データのうち２つの指吸着点を選択し、それらに対応する指付け根点データを特定する処理と、
前記２つの指吸着点と２つの指付け根点によって決まる制約から前記少なくとも３つの吸着点データに対応する３つの指付け根点データを決定し、当該指付け根点データが構成する平面を掌姿勢とする処理と、
各指の末端の位置姿勢を前記指データから特定し、当該各指の末端の位置姿勢と前記掌姿勢のデータを用いて、逆運動学演算を行い、各指の各関節の回転角度データを算出し、指姿勢とする処理と、
各指の各関節の回転角度データを用いて順運動学演算を行い、前記掌姿勢によって規定される掌から各指の末端へ至る各関節の姿勢を決定する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指掌姿勢生成システム、指掌姿勢生成方法、及びプログラムに関し、例えば、３次元人体モデル等の、指と掌の姿勢を自動的に生成するための技術に関するものである。
【背景技術】
【０００２】
従来から３次元人体モデルを用いて指の作業を表現した作業指示書（指の動かし方の画像：例えば、自動車組み立てマニュアルなど）を作成し、作業効率を向上させるための姿勢作成技術が考えられてきた。例えば、特許文献１には、物体を把持した時の指の姿勢を生成し、その姿勢を基に３次元人体モデルの指掌形状を作成することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２８５６８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示の技術では、物体に対する指先位置を指定できるものではなく、３次元人体モデルの指掌の形を作る時、掌の位置を決めたのち５本の指をそれぞれ物体へあてがう必要がある。このため、３次元人体モデルを使って指の作業を表現した作業指示書等の作成工数が多大であり、物体を掴んでいる姿勢の表現には多数の操作数が必要で、作成に非常に時間が掛るという課題がある。
本発明はこのような状況に鑑みてなされたものであり、指と掌の合理的な姿勢を効率よく、かつ、より短時間で作成するための技術を提供するものである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明による指掌姿勢生成システムは、３次元の指掌姿勢を生成する指掌姿勢生成システムであって、物体モデルデータと、指データと、指掌モデルデータと、を格納するメモリと、指が物体を掴む位置を示し、物体表面上に指示された指吸着点データを受け付け、当該指吸着点データ、物体モデルデータ、指データ、及び指掌モデルデータに基づいて、指と掌の姿勢を示す指掌姿勢を決定する処理を行うプロセッサと、を有している。より詳細には、当該プロセッサは、（i）少なくとも３つの指吸着点データのうち２つの指吸着点を選択し、それらに対応する指付け根点データを特定する処理と、（ii）２つの指吸着点と２つの指付け根点によって決まる制約から少なくとも３つの吸着点データに対応する３つの指付け根点データを決定し、当該指付け根点データが構成する平面を掌姿勢とする処理と、（iii）各指の末端の位置姿勢を指データから特定し、当該各指の末端の位置姿勢と掌姿勢のデータを用いて、逆運動学演算を行い、各指の各関節の回転角度データを算出し、指姿勢とする処理と、（iv）各指の各関節の回転角度データを用いて順運動学演算を行い、掌姿勢によって規定される掌から各指の末端へ至る各関節の姿勢を決定する処理と、を実行する。
【０００６】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【０００７】
本発明によれば、物体に対する３から５点の指吸着点指示入力を行うことで、合理的な指と掌の姿勢を効率良く作成することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態による指掌姿勢決定システムの概略構成を示す図である。
【図２】指データの概念を示す図である。
【図３】指データの構成例を示す図である。
【図４】指吸着点指示データの概念を示す図である。
【図５】指吸着点指示データの構成例を示す図である。
【図６】指掌モデルの概念を示す図である。
【図７】掌姿勢決定手処理の概念を説明するための図である。
【図８】関節データの概念を示す図である。
【図９】関節データの構成例を示す図である。
【図１０】本発明の実施形態による指掌姿勢生成及び描画処理を説明するためのフローチャートである。
【図１１】指掌姿勢決定処理の詳細を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
本発明は、より少ない指示入力数から物体を掴んでいる姿勢、すなわち指関節回転角度のセットを取得することができるシステムを提供するものである。ここで、物体を掴む姿勢とは、例えば、「取る」「支える」「置く」「押える」等を含む概念である。本発明は、物体を掴む姿勢がほとんどの場合、指を伸ばした状態であることに着目し、これらを少ない操作で表現するための技術を提供する。
【００１０】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１１】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００１２】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００１３】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００１４】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００１５】
以下では「プログラム」を主語（動作主体）として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００１６】
＜指掌姿勢決定システムの構成＞
図１は、本発明の実施形態による指掌姿勢決定システム１０の概略構成を示す図である。指掌姿勢決定システム１０は、指掌姿勢を決定し３次元動画を描画する計算機１００と、描画された動画を表示するための表示装置１１０と、物体に対する指の位置をユーザが指示入力するための位置入力装置１２０と、物体モデル、指掌モデル、及び指データを格納する外部記憶装置１３０と、を有している。
【００１７】
位置入力装置１２０は、マウスなどのポインティングデバイスが相当し、指によって操作される物体のデータ（物体データ）のポリゴン表面に対して、指で掴む位置をユーザが指示入力するためのデバイスである。
【００１８】
計算機１００は、図示しないＣＰＵ（プロセッサ）とメモリを有し、ＣＰＵがメモリから各種プログラムと必要な情報を読み出し、プログラムに記載された処理を実行する。当該メモリは、３次元描画プログラム１０１と、物体モデル１０２と、指掌モデル１０３と、指データ１０４と、指掌姿勢制御プログラム１０５と、指吸着点指示データ１０６と、指吸着点指示プログラム１０７と、を格納している。物体モデル１０２、指掌モデル１０３（図６参照）、及び指データ１０４は、元々外部記憶装置１３０に格納されていて、そこから計算機１００のメモリに読み込まれ格納される。指吸着点指示データ１０６（図５参照）は、指吸着点指示プログラム１０７が位置入力装置１２０によって入力された指の位置情報と物体モデル１０２から作成したデータである。
【００１９】
指掌姿勢制御プログラム１０５は、メモリから指掌モデル１０３（図６参照）と指データ１０４を読み出し、指吸着点指示データと指の長さから掌姿勢を決定し、逆運動学演算（Inverse Kinematics：指の付け根と作用点（指先）の関係から指の角度を決定する演算）により、指の末端の位置姿勢として、指の中間の各関節の角度パラメータを決定する。つまり、指の末端及び指の付け根の情報と、指データ（一般的な指の長さのデータ：図３参照）とが与えられるので、これらの情報を逆運動学計算に用いれば各関節の角度が求められる。
【００２０】
また、指掌姿勢制御プログラム１０５は、求めた指の各関節の角度パラメータから関節の姿勢を決定する。さらに、指掌姿勢制御プログラム１０５は、指データ１０４（図３参照）と指吸着点指示データ１０６（図５参照）をメモリから読み出し、これらの情報から掌姿勢（図７参照）を決定する。また、指掌姿勢プログラム１０５は、親子関係にある物体、例えば、上記決定した指の各関節の姿勢の情報を用いて、掌から指の先端に至るまでの各関節の姿勢を順運動学演算（Forward Kinematics：角度を与えると姿勢が決まる演算）により決定する。ここで、親子関係に関し、掌と指との関係で言えば、掌を親とすると第１指関節が子に相当し、第一指関節を親とすると第２指関節が相当するものである。
【００２１】
３次元描画プログラム１０１は、指掌姿勢制御プログラム１０５が算出したデータに基づいて、特定の視点から見える３次元モデル群（指掌モデル１０３や物体モデル１０２を含む）を描画し、表示装置１１０に当該描画データを表示する。
【００２２】
＜指データ＞
図２は、指データの概念を示す図である。図３は、指データの構成を示す図である。
図２に示されるように、指データは、掌関節２１０と、指第３関節（指付け根）２２０と、指第２関節２３０と、指第１関節２４０と、作用点２５０と、指第３関節２２０から作用点２５０までの長さ（代表長：一般的な大人の平均的な長さ）２６０と、を有している。
【００２３】
そして、図３に示されるように、指データは、指の種類（親指から小指まで）を一意に特定するための指コードＦｎ３０１と、各指の一般的な大人の平均的長さを示す代表長Ｌ３０２と、を構成情報として有している。
【００２４】
＜吸着点指示データ＞
図４は、指吸着点指示データの概念を示す図である。図５は、指吸着点指示データの構成を示す図である。
【００２５】
指吸着点指示データ１０６は、物体のどの位置に指先を配置するかを示す情報である。当該指先の配置位置は、ユーザが位置入力装置１２０を用いて指示する。図４に示されるように、３本の指が指吸着点Ｑ１乃至Ｑ３に配置される。このとき各吸着点は、当該吸着点における物体の表面の法線を反転したベクトルを有する。
【００２６】
そして、図５に示されるように、指吸着点指示データ１０６は、指吸着点に配置される指の種類を特定するための指コードＦｎ５０１と、各指吸着点の位置を示す空間座標５０２と、各吸着点における法線ベクトル５０３と、を構成情報として有している。指コードＦｎ５０１は、図３の指コードＦｎ３０１に対応する情報であり、ユーザによってどの指を用いて物体を掴む等の動作をするか指定される。なお、例えば、指コードＦｎ＝１は親指を、Ｆｎ＝２は人差し指を、Ｆｎ＝５は小指をそれぞれ表している。空間座標５０２は、ユーザが位置入力装置１２０を用いて指定（指示）した物体表面上の位置座標を示す情報である。法線ベクトル５０３は、物体のポリゴンデータに定義されている、物体上で指定（指示）された面における法線ベクトルを示す情報である。前述のように、指吸着点指示プログラム１０７は、ユーザによって指示された、指コードと物体上の点（座標）に基づいて、その指示点が属する物体面のポリゴン情報を物体モデル１０２から取得し、法線ベクトルを特定する。そして、指吸着点指示プログラム１０７は、ユーザによって指示された指コード及び指示点の空間座標と、法線ベクトルによって指吸着点指示データを構成する。
【００２７】
＜指掌モデル＞
図６は、指掌モデル（データ）１０３の例を示す図である。指掌モデル１０３は、掌関節６１０と、指第３関節（指付け根）６２０と、指第２関節６３０と、指第１関節６４０と、作用点（指先）６５０と、指吸着用ベクトル６６０と、から構成される。各指と掌との関係が、この指掌モデル１０３によって規定することができる。例えば、各指について、指第３関節６２０と作用点６５０との間の距離は、指データ（図３）の代表長として与えられることになる。また、各指の第３関節（付け根）間の距離や、各関節の回転角度の上限と下限のデータ（図９の９０４と９０５に対応する情報）も当該モデルによって規定されている。なお、各関節の回転角度の上限と下限のデータについては指掌モデルで規定していなくても良く、外部記憶装置１３０に格納されている回転角度の上下限データを読み出すようにして用いても良い。
【００２８】
＜掌姿勢決定処理の概要＞
図７は、掌姿勢決定プログラム１０５による掌姿勢決定処理の概要を説明するための図である。掌姿勢決定処理は、指吸着点指示データ（図５）、指定された指（例えば３本）の拘束条件、及び指掌モデル（図６）から掌の姿勢を決定する処理である。
【００２９】
図７に示されるように、ユーザによって指定された指吸着点Ｑ１〜Ｑ３のうち、２点からそれぞれ伸びる、指定された指の長さの情報が指データ（図３）から取得される。図７では、Ｑ１及びＱ２がまず選択される。指先（指吸着点）と指の長さが分かるので、指定された指の付け根Ｐ１〜Ｐ３の２点が分かる。つまり、図７では、指の付け根Ｐ１及びＰ２が決まる。
【００３０】
そして、第１及び第２の吸着点（Ｑ１及びＱ２）と第１及び第２の指付け根点（Ｐ１及びＰ２）の４点が平面内に収まる制約データが取得される。この制約データは、指定された第１及び第２の指吸着点（Ｑ１及びＱ２）と対応する２つの指付け根点（Ｐ１及びＰ２）の４点で構成される台形が３次元的にねじれずに収まるようにすることにより求められる。より具体的には、Ｑ１−Ｑ２間の距離（ユーザの指示による座標から求まる）と、Ｐ１−Ｐ２間の距離（指掌モデルによって与えられている）と、Ｑ１−Ｐ１間の距離（指定された指の代表長で与えられる）と、Ｑ２−Ｐ２間の距離（指定された指の代表長によって与えられる）から、第１吸着点（Ｑ１）と第１指付け根点（Ｐ１）によって規定される直線Ｌ１と、第２吸着点（Ｑ２）と第２指付け根点（Ｐ２）によって規定される直線Ｌ２とが生成され、Ｌ１とＬ２が交わるようにＱ１、Ｑ２、Ｐ１、及びＰ２が平面内に収められる。ここで、直線Ｌ１とＬ２の交点をＨとする。このとき、三角形Ｑ１Ｑ２Ｈは、Ｑ１及びＱ２の座標が与えられている（固定）ため、線分Ｑ１−Ｑ２を軸として回転方向に自由度１を有することになる。一方、第３吸着点Ｑ３が空間に固定（座標が与えられている）、かつＱ３−Ｐ３間の距離が固定である（指の代表長で与えられている）ため、Ｐ３の自由度は２となる。従って、３つ目の指付け根点Ｐ３と、三角形Ｑ１Ｑ２Ｈ上に存在すべきＰ１及びＰ２の座標を一意に決定することはできない。
【００３１】
そこで、さらなる拘束条件であるＰ１−Ｐ３間の距離（掌モデルで与えられる）とＰ２−Ｐ３間の距離（掌モデルで与えられる）を用いてＰ１〜Ｐ３を決定する。つまり、この拘束条件Ｐ１−Ｐ３間の距離、及びＰ２−Ｐ３間の距離を満足するＰ１〜Ｐ３のうち、第３吸着点（Ｑ３）と第３指付け根点（Ｐ３）とによって規定される直線Ｌ３と点Ｈとの距離ｄが最小となるようなＰ１からＰ３が選択される。以上のようにして掌の姿勢が決定される。
【００３２】
＜関節データの概念及ぶ構成＞
図８は、関節データの概念を示す図である。関節データは、各指の親関節と子関節との関係を規定するための情報である。親関節と子関節の関係は、親関節原点８１０と、親関節から見て子関節に相当する関節の原点を示す関節原点８２０と、親関節座標系８３０と、親関節から見て子関節に相当する関節の座標系を示す関節座標系８４０と、親関節からの座標変換行列８５０と、関節回転角度８６０と、ポリゴン等の描画要素８７０と、によって規定することができる。ここで、関節座標系８４０は、逆運動学計算によって求まるデータである。また、親関節からの座標系変換行列８５０は、順運動学計算により求まるデータである。
【００３３】
図９は、関節データの構成例を示す図である。関節データ９００は、描画時に必要なデータであり、親関節ＩＤ９０１と、親関節からの座標系変換行列（Ｍ）９０２と、関節回転角度（ｒｘ，ｒｙ，ｒｚ）９０３と、回転角度下限（ＲＭＩＮｘ，ＲＭＩＮｙ，ＲＭＩＮｚ）９０４と、回転角度上限（ＲＭＡＸｘ，ＲＭＡＸｙ，ＲＭＡＸｚ）９０５と、を構成情報として有している。親関節ＩＤ９０１は、各指の親関節を一意に特定するための情報である。指は第１関節（指先に最も近い関節）乃至第３関節（指の付け根の関節）を有しているので、第３関節は第２関節に対して親関節となり、第２関節は第１関節に対して親関節となる。親関節からの座標系変換行列９０２は、親関節姿勢の座標系からこの関節の座標系への座標変換用の行列である。回転角度下限９０４と回転角度上限９０５は、各指固有に与えられ（指掌モデルが有する情報）、逆運動学演算において回転角度の制限として用いられる情報である。回転角度下限９０４は、対応する親関節が曲がる限度を示し、回転角度上限９０５は、対応する親関節が伸ばせる限度を示している。なお、関節データ９００において、関節回転角度９０３のみが可変のデータであり、他の構成情報は対応する親関節に固有の値（固定値）となっている。そして、関節回転角度９０３は、回転角度の上下限９０４及び９０５を用いて逆運動学演算を実行することにより、求めることができる。つまり、関節回転角度９０３は、回転角度の上下限９０４及び９０５の範囲内に収まり、不自然な角度にならないように求められる。以上のようにして物体を掴むのに用いた指の姿勢が決定される。
【００３４】
＜その他の指の姿勢決定＞
物体を掴むために用いる指以外の指（使っていない指）の姿勢は、指ごとに、上記演算により求めた掌姿勢から決まる指付け根６２０のデータ（図６）と指吸着点指示データ（図５）を用いて逆運動学計算を実行し、各指の関節回転角度データ（図９）を決定することにより求めることができる。具体的には、各指先の作用点６５０にある指吸着用ベクトル６６０が、吸着点指示データの法線ベクトル５０３に一致するように、作用点６５０から指付け根６２０までの範囲で逆運動学演算を行うことにより、各指の関節回転角度データが求まる。なお、使っていない指の姿勢に関し、ユーザにより指示が与えられていればそれに従って姿勢を決定するが、与えられていなければ任意の姿勢に決定しても構わない（自由度が大きい）。つまり、５指ともにユーザによって位置が指示入力された場合には、当該５点の指示入力により合理的な掌姿勢と５本の指姿勢（関節回転角度データ群）を決定することができる。一方、３指のみユーザによって位置が指示入力された場合には、当該３点の指示入力により合理的な掌姿勢と５本の指姿勢（関節回転角度データ群）を決定することができる。
【００３５】
＜指掌姿勢生成及び描画処理（フローチャートによる説明）＞
図１０は、本発明の実施形態による指掌姿勢生成して描画する処理の内容を説明するためのフローチャートである。本発明の処理の流れを正確に理解するため、当該説明には前述した説明と重複する部分も含まれる。
【００３６】
（i）ステップ１００１
指吸着点指示プログラム１０７は、ユーザが位置入力装置１２０を用いて物体上に指示した座標を受け付ける。
【００３７】
（ii）ステップ１００２
指吸着点指示プログラム１０７は、さらに、物体モデル１０２のデータを取得し、ユーザが位置入力装置１２０を用いて物体上に指示した座標と物体モデル１０２のデータから、指吸着点指示データ（図５）を生成する。つまり、指吸着点指示プログラム１０７は、ユーザによって指示された、指コードと物体上の点（座標）に基づいて、その指示点が属する物体面のポリゴン情報を物体モデル１０２から取得し、法線ベクトルを特定する。また、指吸着点指示プログラム１０７は、ユーザによって指示された指コード及び指示点の空間座標と、法線ベクトルによって指吸着点指示データ（図５）を構成する。
【００３８】
（iii）ステップ１００３
指掌姿勢制御プログラム１０５は、メモリから指掌モデル１０３（図６参照）と指データ１０４を読み出し、指吸着点指示データと指の長さから掌姿勢を決定し、逆運動学演算（Inverse Kinematics：指の付け根と作用点（指先）の関係から指の角度を決定する演算）により、指の末端の位置姿勢として、指の中間の各関節の角度パラメータを決定する。また、指掌姿勢制御プログラム１０５は、求めた指の各関節の角度パラメータから関節の姿勢を決定する。さらに、指掌姿勢制御プログラム１０５は、指データ１０４（図３参照）と指吸着点指示データ１０６（図５参照）をメモリから読み出し、これらの情報から掌姿勢（図６参照）を決定する。また、指掌姿勢プログラム１０５は、親子関係にある物体、例えば、上記決定した指の各関節の姿勢の情報を用いて、掌から指の先端に至るまでの各関節の姿勢を順運動学演算（Forward Kinematics：角度を与えると姿勢が決まる演算）により決定する。なお、ステップ１００３の更なる詳細は、図１１を用いて別途説明する。
【００３９】
（iv）ステップ１００４
３次元描画プログラム１０１は、指掌姿勢制御プログラム１０５が算出したデータに基づいて、特定の視点から見える３次元モデル群（指掌モデル１０３や物体モデル１０２を含む）を描画し、表示装置１１０に当該描画データを表示する。
【００４０】
＜指掌姿勢決定処理の詳細＞
図１１は、指掌姿勢決定処理（Ｓ１００３）の詳細を説明するためのフローチャートである。
【００４１】
（i）ステップ１１０１
指掌姿勢制御プログラム１０５は、ユーザによって指定された指吸着点のうち２点を選択し、それに対応する指の付け根点を特定する。つまり、指掌姿勢制御プログラム１０５は、図７に示されるように、指定された指吸着点Ｑ１〜Ｑ３のうち、２点からそれぞれ伸びる指の長さの情報が指データ（図３）から取得する。図７の例では、Ｑ１及びＱ２と、それに対応する指の付け根Ｐ１及びＰ２が特定される。
【００４２】
（ii）ステップ１１０２
指掌姿勢制御プログラム１０５は、２つの指吸着点と２つの指付け根点の制約データを取得する。この制約データは、指定された第１及び第２の指吸着点（Ｑ１及びＱ２）と対応する２つの指付け根点（Ｐ１及びＰ２）の４点で構成される台形が３次元的にねじれずに収まるようにすることにより求められる。具体的には、図７を参照して、Ｑ１−Ｑ２間の距離（ユーザの指示による座標から求まる）と、Ｐ１−Ｐ２間の距離（指掌モデルによって与えられている）と、Ｑ１−Ｐ１間の距離（指定された指の代表長で与えられる）と、Ｑ２−Ｐ２間の距離（指定された指の代表長によって与えられる）から、第１吸着点（Ｑ１）と第１指付け根点（Ｐ１）によって規定される直線Ｌ１と、第２吸着点（Ｑ２）と第２指付け根点（Ｐ２）によって規定される直線Ｌ２とが生成され、Ｌ１とＬ２が交わるようにＱ１、Ｑ２、Ｐ１、及びＰ２が平面内に収められる。
【００４３】
（iii）ステップ１１０３
指掌姿勢制御プログラム１０５は、ステップ１１０２で取得した制約データに基づいて、３つの指付け根点の位置（掌姿勢）を決定する。具体的には、上記直線Ｌ１とＬ２の交点をＨとすると、三角形Ｑ１Ｑ２Ｈは、Ｑ１及びＱ２の座標が与えられている（固定）ため、線分Ｑ１−Ｑ２を軸として回転方向に自由度１を有することになる。一方、第３吸着点Ｑ３が空間に固定（座標が与えられている）、かつＱ３−Ｐ３間の距離が固定である（指の代表長で与えられている）ため、Ｐ３の自由度は２となる。従って、３つ目の指付け根点Ｐ３と、三角形Ｑ１Ｑ２Ｈ上に存在すべきＰ１及びＰ２の座標を一意に決定することはできない。
【００４４】
そこで、さらなる拘束条件であるＰ１−Ｐ３間の距離（掌モデルで与えられる）とＰ２−Ｐ３間の距離（掌モデルで与えられる）を用いてＰ１〜Ｐ３を決定する。つまり、この拘束条件Ｐ１−Ｐ３間の距離、及びＰ２−Ｐ３間の距離を満足するＰ１〜Ｐ３のうち、第３吸着点（Ｑ３）と第３指付け根点（Ｐ３）とによって規定される直線Ｌ３と点Ｈとの距離ｄが最小となるようなＰ１からＰ３が選択される。以上のようにして掌の姿勢が決定される。
【００４５】
（iv）ステップ１１０４
指掌姿勢制御プログラム１０５は、対象となっている３本の指の関節データ（図８及び９）を用いて、物体表面に指示された指の姿勢を決定する。具体的には、指掌姿勢制御プログラム１０５は、関節データ（図９）から回転角度の上下限９０４及び９０５の情報を取得し、逆運動学演算により各指の各関節の回転角度９０３を算出する。つまり、回転角度下限９０４と回転角度上限９０５は、逆運動学演算において回転角度の制限として用いられる情報となっている。このようにして求められた各指の各関節の回転角度によって指の姿勢が規定されることになる。
【符号の説明】
【００４６】
１０・・・指掌姿勢生成システム
１００・・・計算機（コンピュータ）
１０１・・・３次元描画プログラム
１０２・・・物体モデル
１０３・・・指掌モデル
１０４・・・指データ
１０５・・・指掌姿勢制御プログラム
１０６・・・指吸着点指示データ
１０７・・・指吸着点指示プログラム
１１０・・・表示装置
１２０・・・位置入力装置
１３０・・・外部記憶装置
【図１】
2015191519.tif 000003
【図２】
2015191519.tif 000004
【図３】
2015191519.tif 000005
【図４】
2015191519.tif 000006
【図５】
2015191519.tif 000007
【図６】
2015191519.tif 000008
【図７】
2015191519.tif 000009
【図８】
2015191519.tif 000010
【図９】
2015191519.tif 000011
【図１０】
2015191519.tif 000012
【図１１】
2015191519.tif 000013