"物体を把持する際の手及び指の姿勢に関するデータベースを記憶する記憶部と、上記物体の形状のデータを入力する入力部と、入力された上記物体の形状のデータ及び上記データベースに基づいて、該物体を把持した状態の把持姿勢のデータを生成する把持姿勢生成部と、上記把持姿勢生成部において生成された把持姿勢のデータを出力する出力部とを備え、上記データベースは、少なくとも上記手及び指の姿勢に関するデータを有する小分類把持姿勢のデータを含む階層と、該小分類把持姿勢のデータに関連付けされ、幅の異なる基本形状を有する物体を把持した状態で取得され、該幅によって索引付けされた索引小分類把持姿勢のデータを含む階層とを有し、上記索引小分類把持姿勢のデータには、索引付けされた各指の各関節角度が関連付けられ、上記小分類把持姿勢のデータには、指上に設定された代表点のデータ及び接触点群のデータが関連付けられており、上記把持姿勢生成部は、上記入力された物体の表面又は該入力された物体のデータに基づいて生成された該物体の凸包体の表面をトレースして、該入力された物体を把持した際に、上記索引小分類把持姿勢の有する指が把持可能であるかを検出して、該索引小分類把持姿勢のデータに関連付けられ、索引付けされた各指の各関節角度のデータを探索し、上記各指の各関節角度のデータが上記データベースに存在しない場合には、該データベース内に存在する該各指の関節角度のデータを補間計算することによって新たに各指の関節角度のデータを生成し、把持可能な上記各指の関節角度のデータを発見したときには、上記代表点のデータに基づいて座標を設定して、上記手及び指の配置と上記物体との位置合わせを行い、上記位置合わせをした位置を初期値として、上記指ごとの接触点群のデータに従って上記手及び指の最適な配置を決定することを特徴とする把持姿勢生成装置。上記小分類把持姿勢のデータを含む階層は、大分類把持姿勢のデータを含む階層の下位の階層にあり、上記大分類把持姿勢のデータは、上記小分類把持姿勢の少なくとも1つの指又は手のひらに関連付けされ、物体を把持する際に対向して該物体に接触する仮想指を有し、上記仮想指が接触する該物体の面の間の距離によって、上記物体の形状特徴量のデータを抽出し、上記物体の形状特徴量のデータに基づいて、上記索引小分類把持姿勢のデータを探索することを特徴とする請求項1記載の把持姿勢生成装置。上記各指の関節角度のデータは、該各指ごとに独立して決定されることを特徴とする請求項1又は2記載の把持姿勢生成装置。上記最適な配置を決定するのに、点群間の距離に基づいた最適化アルゴリズムを用いることを特徴とする請求項1~3いずれか1項記載の把持姿勢生成装置。上記手及び指の最適な配置を決定する場合において、上記物体と該手又は指との位置について衝突判定を行うことによって、調整することを特徴とする請求項1~4いずれか1項記載の把持姿勢生成装置。上記大分類把持姿勢の分類は、2本の指の腹若しくは側面を対向させて物体をはさむ挟持把持姿勢、母指の腹と母指以外の指を平行に揃えてその指の腹若しくは手の平を対向させて物体をつかむ平行把持姿勢、又は各指の腹若しくは側面で物体を包み込む包囲把持姿勢の3種類であることを特徴とする請求項2~5いずれか1項記載の把持姿勢生成装置。把持対象の物体の形状のデータを入力するステップと、入力された上記物体の形状のデータ並びに物体を把持する際の手及び指の姿勢に関するデータベースに基づいて、該物体を把持した状態で生成される把持姿勢のデータを生成するステップと、生成された把持姿勢のデータを出力するステップとを有し、上記データベースは、少なくとも上記手及び指の姿勢に関するデータを有する小分類把持姿勢のデータを含む階層と、該小分類把持姿勢のデータに関連付けされ、幅の異なる基本形状を有する物体を把持した状態で取得され、該幅によって索引付けされた索引小分類把持姿勢のデータを含む階層とを有し、上記索引小分類把持姿勢のデータには、索引付けされた各指の各関節角度が関連付けられ、上記小分類把持姿勢のデータには、指上に設定された代表点のデータ及び接触点群のデータが関連付けられており、上記把持姿勢を生成するステップは、上記入力された物体の表面又は該入力された物体のデータに基づいて生成された該物体の凸包体の表面をトレースして、該入力された物体を把持した際に、上記索引小分類把持姿勢の有する指が把持可能であるかを検出して、該索引小分類把持姿勢のデータに関連付けられ、索引付けされた各指の各関節角度のデータを探索するステップと、上記各指の各関節角度のデータが上記データベースに存在しない場合には、該データベース内に存在する該各指の関節角度のデータを補間計算することによって新たに各指の関節角度のデータを生成するステップと、把持可能な上記各指の関節角度のデータを発見したときには、上記代表点のデータに基づいて座標を設定して、上記手及び指の配置と上記物体との位置合わせを行い、上記位置合わせをした位置を初期値として、上記指ごとの接触点群のデータに従って上記手及び指の最適な配置を決定するステップとを含むことを特徴とする把持姿勢生成方法。コンピュータに実行させる把持姿勢生成プログラムであって、上記コンピュータに、把持対象の物体の形状のデータを入力するステップと、入力された上記物体の形状のデータ並びに物体を把持する際の手及び指の姿勢に関するデータベースに基づいて、該物体を把持した状態で生成される把持姿勢のデータを生成するステップと、生成された把持姿勢のデータを出力するステップとを実行させ、上記データベースは、少なくとも上記手及び指の姿勢に関するデータを有する小分類把持姿勢のデータを含む階層と、該小分類把持姿勢のデータに関連付けされ、幅の異なる基本形状を有する物体を把持した状態で取得され、該幅によって索引付けされた索引小分類把持姿勢のデータを含む階層とを有し、上記索引小分類把持姿勢のデータには、索引付けされた各指の各関節角度が関連付けられ、上記小分類把持姿勢のデータには、指上に設定された代表点のデータ及び接触点群のデータが関連付けられており、上記把持姿勢を生成するステップは、上記入力された物体の表面又は該入力された物体のデータに基づいて生成された該物体の凸包体の表面をトレースして、該入力された物体を把持した際に、上記索引小分類把持姿勢の有する指が把持可能であるかを検出して、該索引小分類把持姿勢のデータに関連付けられ、索引付けされた各指の各関節角度のデータを探索するステップと、上記各指の各関節角度のデータが上記データベースに存在しない場合には、該データベース内に存在する該各指の関節角度のデータを補間計算することによって新たに各指の関節角度のデータを生成するステップと、把持可能な上記各指の関節角度のデータを発見したときには、上記代表点のデータに基づいて座標を設定して、上記手及び指の配置と上記物体との位置合わせを行い、上記位置合わせをした位置を初期値として、上記指ごとの接触点群のデータに従って上記手及び指の最適な配置を決定するステップとを含むことを特徴とする把持姿勢生成プログラム。非特許文献1、2に記載された手法を用いると、手の姿勢を一括して低次元化しているために、再現することができない把持姿勢を生じることがある。むりに再現しようとするとパラメータの次元数を増やす必要があり、反復計算回数はますます増大してしまう。さらに、把持姿勢の選択範囲は、把持分類数に依存するので、再現できない姿勢を減らすためには、把持分類の数を膨大に準備しなければならず、あまりに選択範囲を広げても実用上選択不能になるという問題がある。また、最適化のための反復計算回数が膨大となるために、インタラクティブな把持姿勢の生成をすることができないという問題がある。そこで、本発明は、インタラクティブに多様な把持姿勢を生成することのできる把持姿勢生成装置、把持姿勢生成プログラム及び把持姿勢生成方法を提供することを目的とする。本発明の把持姿勢生成装置は、物体を把持する際の手及び指の姿勢に関するデータベースを記憶する記憶部と、物体の形状のデータを入力する入力部と、入力された物体の形状のデータ及びデータベースに基づいて、物体を把持した状態の把持姿勢のデータを生成する把持姿勢生成部と、把持姿勢生成部において生成された把持姿勢のデータを出力する出力部とを備える。データベースは、少なくとも手及び指の姿勢に関するデータを有する小分類把持姿勢のデータを含む階層と、小分類把持姿勢のデータに関連付けされ、幅の異なる基本形状を有する物体を把持した状態で取得され、幅によって索引付けされた索引小分類把持姿勢のデータを含む階層とを有し、索引小分類把持姿勢のデータには、索引付けされた各指の各関節角度が関連付けられ、小分類把持姿勢のデータには、指上に設定された代表点のデータ及び接触点群のデータが関連付けられる。把持姿勢生成部は、入力された物体の表面又は入力された物体のデータに基づいて生成された物体の凸包体の表面をトレースして、入力された物体を把持した際に、索引小分類把持姿勢の有する指が把持可能であるかを検出して、索引小分類把持姿勢のデータに関連付けられ、索引付けされた各指の各関節角度のデータを探索し、各指の各関節角度のデータがデータベースに存在しない場合には、データベース内に存在する各指の関節角度のデータを補間計算することによって新たに各指の関節角度のデータを生成し、把持可能な各指の関節角度のデータを発見したときには、代表点のデータに基づいて座標を設定して、手及び指の配置と物体との位置合わせを行い、位置合わせをした位置を初期値として、指ごとの接触点群のデータに従って手及び指の最適な配置を決定する。本発明の把持姿勢生成装置は、小分類把持姿勢のデータを含む階層が大分類把持姿勢のデータを含む階層の下位にあり、大分類把持姿勢のデータは、小分類把持姿勢の少なくとも1つの指又は手のひらに関連付けされ、物体を把持する際に対向して物体に接触する仮想指を有し、仮想指が接触する面の間の距離によって、物体の形状特徴量のデータを抽出するようにしてもよい。本発明の把持姿勢生成方法は、本発明の把持姿勢生成装置により実行される。本発明の把持姿勢生成プログラムは、ネットワーク又は光ディスク等の記憶媒体を介してコンピュータにインストールされて、コンピュータ上で実行されて、把持姿勢生成装置として動作させる。また、本発明の把持姿勢生成プログラムは、サーバにインストールされており、ネットワークを介して、クライアントコンピュータにおいて実行されて把持姿勢生成装置として動作させる。本発明の把持姿勢生成装置、把持姿勢生成方法又は把持姿勢生成プログラムによれば、データベース内に存在する指の角度のデータを探索し、データベースに存在しない場合には、指の角度のデータを生成することによって、膨大な反復計算を行うことなく、短時間で多様な把持姿勢のデータを生成することができる。本発明の把持姿勢生成装置、把持姿勢生成方法又は把持姿勢生成プログラムは、データベースに大分類把持姿勢のデータを含む階層をさらに有し、より分類数の少ない大分類把持姿勢が、仮想指を有し、仮想指が把持対象の物体の面の間の距離を形状特徴量として抽出するようにしたときには、より高速に適切な把持姿勢を生成することができる。[把持姿勢生成装置の構成]図1は、本発明が適用された把持姿勢生成装置の構成例を示すブロック図である。把持姿勢生成装置10は、手及び指の姿勢に関するデータベース20を記憶する記憶部11と、把持対象の物体の形状を入力する入力部12と、把持姿勢を生成する把持姿勢生成部13と、生成された把持姿勢を出力する出力部14とを備える。記憶部11は、把持姿勢等のデータからなるデータベース20が保存されており、把持姿勢生成部13と接続されて、データのやりとりを行う。記憶部11は、ハードディスク装置のような読み書き可能な記憶装置であることが好ましいが、ハードディスク装置に限らず、フラッシュメモリのような固体メモリであってもよく、その他の記憶装置を用いることができる。入力部12は、把持姿勢生成部13に接続され、データを把持姿勢生成部13に提供する。入力部12には、キーボード、マウス等の入力装置が用いられる。タッチパネルを用いることによって、出力部14に出力されるデータと同一画面上でデータを入力するような装置を用いることもでき、その他の入力装置を用いることができる。あるいは、入力するためのデータをファイルとして保存した他の記憶装置を用いることによってもデータの入力を行うことができる。把持姿勢生成部13は、記憶部11と接続され、データベース20にアクセスし、データベース20上のデータを探索し、データベース20上からデータを取り出し、データベース20上にデータを書き込む等、データベース20とデータのやり取りをすることができる。また、把持姿勢生成部13は、入力部12からの入力されたデータに基づいて、記憶部11にアクセスしデータベース20のデータに基づいて所定の処理を行うこともできる。把持姿勢生成部13は、CPUの指令によって入力部12から入力されたデータをCPUに接続されたRAMのようなメモリに読み込んで、そのデータに基づいて、記憶部11内のデータベース20にアクセスしてデータの検索等する。検索したデータから新たなデータを生成して、再度、データベース20内に書き込むことができるのは上述したとおりである。書き込んだデータに基づいて、出力すべきデータに処理する。そして、処理されたデータを出力部14に出力することを制御する。これら一連の制御を行い、所望の把持姿勢生成を行う。出力部14は、把持姿勢生成部13に接続され、把持姿勢生成部13によって生成された把持姿勢を画面上に表示するディスプレイである。ディスプレイに限らずプリンタや、他の記憶装置にファイル形式で出力してもよい。図1の構成例においては、記憶部11、入力部12、把持姿勢生成部13及び出力部14がスタンドアロン形式でそれぞれ適切なインタフェースで接続されているが、これらのうちの一部又は全部をネットワーク上に配置して接続してももちろんよい。なお、上述のようなハードウェア構成に限らず、把持姿勢生成プログラムによって、コンピュータのCPU指令に基づいてソフトウェア的に適切な把持姿勢のデータを生成することもできる。把持姿勢生成プログラムは、ネットワーク経由でダウンロードされ、又は光ディスク等の記憶媒体によって提供され、コンピュータにインストールされる。あるいは、ネットワーク上のサーバに把持姿勢生成プログラムがインストールされ、クライアントコンピュータによってアクセスすることによって実行することもできる。[データベースの構成]データベース20は、複数に分類された大分類把持姿勢のデータと、各大分類把持姿勢に関連付けされた小分類把持姿勢のデータと、小分類把持姿勢に関連付けられたデータとを含む。大分類把持姿勢のデータは、把持対象の物体の形状に応じた把持の姿勢に分類されており、仮想指のデータを有している。仮想指のデータは、小分類把持姿勢のデータの対応する指のデータに関連付けられる。ここで、仮想指とは、指若しくは複数の指の組み合わせ又は手のひらからなり、物体を把持する際に対向する面に接触する仮想的な指である。小分類把持姿勢のデータは、大分類把持姿勢のデータを手の位置及び指の配置等のデータによってさらに細かく分類したものである。小分類把持姿勢ごとに基本形状の物体を把持し、その際の把持姿勢のデータを物体の幅のデータによって索引付けしてデータベース20に格納する。基本形状の物体の幅を変えて把持した際の把持姿勢のデータも物体の幅のデータで索引付けされてデータベース20に格納される。索引付けされた把持姿勢ごとに、各指の各関節の関節角度のデータも索引付けされてデータベース20に格納される。各仮想指に対応する指の上に配置された代表点のデータ及び対象となる指上の接触点群のデータは、小分類把持姿勢に関連付けられ、データベース20に格納される。好ましくは、大分類把持姿勢のデータは、3種類の把持姿勢のデータを含む。大分類把持姿勢のデータのうちの1つは、挟持把持姿勢以下、Pinch型ともいう。のデータであり、2本の指の腹又は側面を対向させて物体をはさむ把持姿勢を表わすデータである。他の1つは、平行把持姿勢以下、Parallel型ともいう。のデータであり、母指の腹と母指以外の指を平行に揃えてその指の腹又は手のひらを対向させて物体をつかむ把持姿勢を表わすデータである。残りの1つは、包囲把持姿勢以下、Circular型ともいう。のデータであり、各指の腹又は側面で物体を包み込むようにして把持する姿勢を表わすデータである。なお、把持姿勢のデータを3種類に分類することに限らず、任意の種類に分類してもよい。好ましくは、小分類把持姿勢のデータは、14種類の把持姿勢のデータを含む。14種類の把持姿勢のデータは、握力標準型把持姿勢以下、PoS型ともいう。、握力把握鈎型把持姿勢以下、PoH型ともいう。、握力把握示指伸展型把持姿勢以下、PoI型ともいう。、握力把握伸展型把持姿勢以下、PoE型ともいう。、側面把握型把持姿勢以下、Lat型ともいう。、三面把握型把持姿勢以下、Tpd型ともいう。、三面把握亜型I把持姿勢以下、TpdV1型ともいう。、三面把握亜型II把持姿勢以下、TpdV2型ともいう。、三面把握亜型III把持姿勢以下、TpdV3型ともいう。、並列軽屈曲把握把持姿勢以下、PMF型ともいう。、包囲軽屈曲把握把持姿勢以下、CMF型ともいう。、指尖把握把持姿勢以下、Tip型ともいう。、並列伸展把握把持姿勢以下、PE型ともいう。及び内転把握把持姿勢以下、Add型ともいう。の各データからなる。なお、14種類の把持姿勢のデータに分類することに限らず、これ以上の種類に分類してもよく、これらの分類を統合等して14種類よりも少なくしてもよい。図2には、各把持姿勢の分類と関連付けを示す。図3には、大分類把持姿勢の姿勢を示す。図3Aに示すように、手の各指について、番号を振って、母指1、示指2、中指3、薬指4、小指5とし、手のひらをPとする。図3Bには、Pinch型の把持姿勢によって、物体6を把持した状態を示す。Pinch型は、母指1と示指2とによって物体6をつまむ把持姿勢である。図3Cには、Parallel型の把持姿勢で物体6を把持した状態を示す。Parallel型は、母指1とほぼ平行に配置した示指2から小指5とを物体6に対して対向させるようにして、物体6をつかむ把持姿勢である。図3Dには、Circular型の把持姿勢で物体6を把持した状況を示す。ここで、物体6に対して対向して物体6に接触する指又は手のひらを、指単独又は複数の指を組み合わせることによって、仮想指とする。図2において、例えばPoS型の行でVF1の列にPとあるのは、手のひらPを第1の仮想指VF1とし、示指2から小指5をまとめて第2の仮想指VF2として、物体6を把持することを表わす。物体6に対して対向する部位としては、指の腹、指の側面、手のひらPがあるが、図2に示すようにPoS型においては、手のひらPが対向部位となる。なお、この場合の手のひらPに対するもう一方の対向部位は指の腹である。指の腹同士が対向し、指の側面同士が対向する。図2においては、大分類把持姿勢と小分類把持姿勢との関連付けも示される。図4には、Pinch型の大分類把持姿勢に関連付けされる各小分類把持姿勢の形態を示す。図4AがTip型であり、母指1及び示指2の指の腹同士で物体6をはさむ把持姿勢である。図4BがLat型であり、母指1及び示指2の指の側面同士で物体6を挟む把持姿勢である。図4CがAdd型であり、示指2及び中指3の指の側面で物体6をはさむ把持姿勢である。図5には、Parallel型の大分類把持姿勢に関連付けられる各小分類把持姿勢の形態を示す。図5AがPoS型、図5BがPoH型であり、いずれも手のひら及び示指2~小指5によって物体6をつかむ把持姿勢であり、母指1が物体6に添えられる場合をPoS型といい、母指1が物体6から離れているのをPoH型という。図5CがPMF型であり、母指1及びほぼ並列に配された示指2~小指5の指の腹同士で物体6をつまむように把持する姿勢である。図5DがPoI型であり、PoS型、PoH型と同様に、手のひらPを対向部位として物体6をつかむ姿勢だが、示指2を物体から離して把持に関与せず、中指3、薬指4及び小指5で物体6を把持する姿勢である。図5EがPoE型であり、母指1とほぼ平行に配された示指2、中指3、薬指4及び小指5とを進展させて物体6を把持する姿勢である。図5FがPE型であり、PoE型が伸展させた指全体で把持するのに対して、各指の先端寄りの位置で把持する姿勢である。図6には、Circular型の大分類把持姿勢に関連付けられる各小分類把持姿勢の形態を示す。A~Eのいずれも母指1~小指5によって、物体を包み込むように把持する姿勢である。図6AがTpd型であり、ペンのような物体6を把持する姿勢である。図6BがTpdV1型であり、スプーンのような物体6を把持する姿勢である。図6CがTpdV2型であり、毛筆のような物体6を把持する姿勢である。図6DがTpdV3型であり、印鑑のような物体6を把持する場合の姿勢である。図6EがCMF型であり、ボールのような物体6を把持する姿勢である。図7には、把持対象の物体の形状特徴量のデータを抽出するために、物体に設定される座標を示す。図7Aにおいて、Pinch型の場合には、第1の仮想指VF1と第2の仮想指VF2の間に座標軸をとり、第1及び第2の仮想指VF1,VF2の接触面間の距離をその物体の形状特徴量のデータとする。例えば、物体6をはさむ、母指1と示指2との指の間の距離である。図7Bにおいて、Parallel型の場合には、第1の仮想指VF1が1本であり、第2の仮想指VF2が複数本である。1本の第1の仮想指VF1に対して、複数本のうちのそれぞれの第2の仮想指VF2までの距離をその物体の形状特徴量のデータとする。実際に物体を把持させた場合に、物体の長さによっては、第2の仮想指のうちの何本かの指が物体に接触しないこともある。そのような場合には、接触しない指については、形状特徴量のデータを0とすればよい。図7Cにおいて、Circular型の場合には、第1の仮想指VF1、第2の仮想指VF2に加えて、第3の仮想指VF3によって、物体を包み込むように把持する。したがって、第1の仮想指VF1と第2の仮想指VF2との接触面間の距離を物体の形状特徴量のデータとするとともに、VF1とVF2とからなる座標に直交するようにして第3の仮想指との距離も形状特徴量のデータとする。これらの大分類把持姿勢のデータと仮想指のデータとの関連付けは、入力された把持対象の物体における部分形状のデータから手の姿勢のデータを生成する場合に用いられる。図2に示すように、各仮想指のデータは、小分類把持姿勢の各指のデータにも関連付けられている。なお、大分類把持姿勢のデータが本データベース20上になくとも、本発明の把持姿勢生成装置を動作させることが可能である。しかしながら、かかる場合には、索引付けされた小分類把持姿勢すべてについて、把持可否を判断する必要が生じ、把持姿勢の生成速度が遅くなるため、大分類把持姿勢及び仮想指のデータを用いて物体の形状特徴量を抽出するのが好ましい。また、大分類把持姿勢、小分類把持姿勢、索引付けされた小分類把持姿勢のデータをそれぞれ含むデータベース20上の階層に、さらに階層を設けてデータの細分化をしたり、データの集約化をすることが可能なのは言うまでもない。小分類把持姿勢ごとに、把持対象の物体を把持した姿勢で、その把持姿勢のデータを取得してデータベース20に格納する。把持する物体の幅を変えて複数の把持姿勢のデータを取得し、物体の幅によって索引付けされた把持姿勢のデータをデータベース20に格納する。さらに、各指の姿勢のデータを取得するために各関節の角度測定をし、関節角度のデータを索引付けしてデータベース20に格納する。関節角度のデータを含む把持姿勢のデータの取得には、データグローブを用いて取得することができる。データグローブは、光ファイバの屈曲を利用したセンサ、磁気抵抗効果を用いたセンサ、あるいは歪みゲージを用いたセンサ等によって、指の関節の角度を高分解能で測定する装置である。なお、モーションキャプチャシステムやMRI装置等を用いることによっても手の姿勢、指の角度を測定することができる。取得していない物体の幅についての把持姿勢のデータは、指が接触する面の間の距離に応じて指の関節角度が変化することを利用して求めることができる。すなわち、あらかじめ取得された把持姿勢のデータに関連付けられている接触面間の距離と関節角度のデータから線形補間計算をすることによって、未測定の関節角度のデータを生成することができる。生成された補間データは索引付けされて関節角度のデータとして、データベース20に格納される。図8には、索引付けされたPoS型の把持姿勢の例を示す。枠で囲った把持姿勢が、実測によって取得されたデータに基づく把持姿勢であり、枠で囲っていない把持姿勢は、実測された把持姿勢のデータの仮想指の間の距離とそれに対応した各関節の角度のデータから、補間計算によって生成されたデータに基づく把持姿勢である。図に記載された数字が物体の幅として索引付けしたものである。図9、10に示すように、小分類把持姿勢のデータごとに、仮想指に対応する指上に代表点7のデータが設定される。代表点7は、図9Bに示すように、2つの仮想指を有する把持姿勢については、第1の仮想指VF1上に1つ、第2の仮想指VF2上に2つ設定される。3つの仮想指を有する把持姿勢については、図10Bに示すように、各仮想指に1つずつ代表点7が設定される。これら3つの代表点の位置のデータから、3次元空間内における手の位置及び方向の6次元のデータを一意に決定することができる。また、図9C、図10Cに示すように、小分類把持姿勢のデータごとに、各指に接触点8のデータが設定される。接触点8は、実際の接触部位から経験的に設定することができる。接触点のデータを各指に設定することによって、把持対象の物体との位置合わせの最適化に用いることができる。代表点7のデータは、図11に示すように、把持姿勢生成部13で生成された把持姿勢の把持位置の初期値となる座標を設定し、物体6に生成された座標と合わせて、手の配置を決定するのに用いられる。また、接触点8のデータは、決定した手の配置を任意のアルゴリズムを用いることによって、最適な位置に設定するのに用いられる。なお、上述した代表点7及び接触点8を配置する位置は、一例であって、任意の位置に配置することができる。[把持姿勢生成装置の動作]本発明が適用された把持姿勢生成装置10の動作を、図17に示すフローチャートを用いて説明する。本発明が適用された把持姿勢生成装置10には、入力部12から入力する情報として、3次元モデル化された把持対象の物体のデータを入力する。そして、把持姿勢に関して、小分類把持姿勢のデータの14分類のうちから把持姿勢のデータを選択して入力することができ、あるいは、把持姿勢を入力しなくとも、その物体を把持できる小分類把持姿勢を適切な把持姿勢すべてを出力させることもできる。また、把持位置に関して、把持対象の物体の把持する部分をユーザが指定して入力することができ、ユーザが把持位置を指定しない場合には、ランダムに抽出した複数の位置に対して、それぞれ適切な把持姿勢を生成することもできる。図17に示すように、ステップS1,S2において、入力部12によって、把持対象の物体6のデータが入力される。小分類把持姿勢のデータを選択して入力することができる。小分類把持姿勢のデータを選択する場合には、ディスプレイ画面上に各小分類把持姿勢のデータをサムネイルで表示し、ユーザの選択により入力するようにしてもよい。ステップS3において、入力部12からデータを受け取った把持姿勢生成部13は、物体表面をトレースすることによって物体の形状特徴量のデータを抽出する。物体の形状特徴量のデータの抽出の方法について説明する。把持姿勢生成部13は、把持可能な位置を検出するために、物体6表面にランダムに点群を発生させ、そこから選ばれた点を出発点として物体6表面上をトレースする。ここで、一般的に物体は、図12A~Fに示すように、把持の方向によって把持可能か否かが判断される。図12A~Fにおいては、物体を把持した際に、両側の相反する面に指が届くか、手前から奥の面まで指が回り込むことができるかを矢印で示す。物体を支持できる程度に指が物体に回らない場合には0、指が両側の面に届いて物体を支持できる場合には1、指が奥の面まで届く場合には2と表わす。より具体的には、それぞれの端点における法線の方向の角度の変化がπ未満であれば0、π以上2π未満であれば1、2π以上であれば2とする。このように表わすと、把持可否のパターンは、図12のように6種類に分類できる。図12Aでは、例えば手よりも大きな平板状の物体において、平板の平面の方向については、どの方向においても指が届かないため、0-0と表わす。図12Bでは、例えば平板状の物体において、平板の側面からの把持に対しては、平板の厚さ方向、すなわち左右の面には指が届くが、平板の高さ方向、すなわち上下の面には指が届かないことを、1-0と表わす。図12Cでは、例えば柱状の物体を側面から把持する場合において、物体の周方向には奥まで指が回るが、物体の高さが高く、この方向には指が回らないので、2-0と表わす。図12Dでは、例えば柱状の物体を端部から把持する場合において、高さ方向のいずれの側面についても指が届くので、1-1と表わす。図12Eでは、柱状の物体において、柱の周方向には奥まで指が回り、柱の高さ方向の面にも指が届くので、2-1と表わす。図12Fでは、例えば球状の物体において、いずれの方向においても、指が奥まで届くので、2-2と表わす。なお、図13に、小分類把持姿勢ごとに、図12B~Fに示す分類についてそれぞれの把持が可能かをまとめた。○印は、把持可能であることを示し、△印は、例えば物体の幅等の条件によって、把持が可能な場合があることを示す。物体表面のトレースの結果から、把持可能な部分がその物体に存在するかどうかを検出し、把持可能な小分類把持姿勢を生成する。把持可能か否かを判定するに当たって、図13の表を用いてもよい。その小分類把持姿勢の属する大分類把持姿勢の仮想指が、その物体に対して、1又は2、すなわちその物体の側面を支持できるか、その物体の奥まで指を回すことができるか検出する。上述した物体表面のトレース結果から、把持可能であると把持姿勢生成部13によって判断された場合には、把持姿勢生成部13は、物体の把持可能な位置にローカル座標を設定する。それぞれの端点における法線ベクトルが逆向きになっている面を対立面とすると、図11に示すように、トレース結果が1又は2の場合に、物体6の対立面の法線方向をx軸、第2種方向にy軸、xy平面に垂直な方向をz軸とすることができる。z軸又はy軸の周りに座標系を回転させることによって、別のローカル座標系を設定してもよい。それぞれの軸について90度間隔で回転させ、1箇所に対して最大で12通りのローカル座標系を設定することができる。なお、ローカル座標系は、上述の場合に限らず、任意に設定することができるのは言うまでもない。大分類把持姿勢がPinch型の場合には、図7Aに示すように、x軸方向の対立面の距離が第1の仮想指VF1及び第2の仮想指VF2接触面間距離となり、これを形状特徴量のデータとする。大分類把持姿勢がParallel型の場合には、図7Bに示すように、第2の仮想指として複数の指が用いられるので、y軸方向に指の太さの分ずつシフトさせた位置における対立面間の距離を接触面間距離とし、それぞれ形状特徴量のデータとする。なお、図7Bの第2の仮想指のうちの一番下側にある指のように、物体に外部にあって物体に接触していない場合には、把持に加わらない指として扱う。例えば接触面間距離を0とする。大分類把持姿勢がCircular型の場合には、図7Cに示すように、対向する第1及び第2の仮想指VF1,VF2に加えて、第3の仮想指VF3がある。第3の仮想指VF3は、第1及び第2の仮想指VF1,VF2からなるx座標軸に直交するy座標軸として扱う。以上のようにして、仮想指の接触面間距離を測定することによって、把持対象の物体6の形状特徴量のデータを抽出する。ステップS4において、抽出された形状特徴量のデータをクエリとしてデータベース20にアクセスし、把持姿勢生成部13は、該当する索引付けされた小分類把持姿勢のデータを探索する。ステップS5において、把持姿勢生成部13は、該当する索引付けされた小分類把持姿勢のデータをデータベース20中に発見した場合には、次のステップS7に進む。データベース20中に見つからなかった場合には、ステップS6において、把持姿勢生成部13は、各指の間の距離及び各指の関節角度のデータを補間生成し、データベース20に書き込む。小分類把持姿勢がParallel型やCircular型の場合には、1つの仮想指に対して複数の指が関連するため、データベース20に存在する把持姿勢のデータだけでは、該当するものが見つかることは少ない。そこで、データベース20には、物体の幅の値、すなわち接触面間距離を形状特徴量のデータとして、索引付けされた小分類把持姿勢ごとに、形状特徴量のデータに対する各指の角度も索引付けされているので、複数存在する既存のこれらのデータを用いて、線形補間計算を行うことによって未知の指の関節角度を計算することができる。したがって、各指に対応する形状特徴量のデータごとに線形補間計算を行うことによって、各指の関節角度のデータを得ることができる。各指の関節角度のデータは、それぞれ独立して線形補間計算される。これによって、把持対象となる物体の把持位置の太さが異なるような場合であっても、指の接触位置によって指の関節角度のデータを補間生成することができ、自然な把持姿勢を生成することができる。なお、線形補間計算によって、新たに生成された各指の関節角度のデータは、データベース20上に書き込まれる場合に限らず、キャッシュメモリ等他の一時記憶メモリに保存されてもよく、生成して探索に用いられた後にすぐに消去されてもよい。ステップS7において、把持姿勢生成部13は、把持対象の物体のデータの座標軸と探索された小分類把持姿勢の指上の代表点のデータによる座標とから、手と物体との位置合わせを行う。図11に示すように、大分類把持姿勢のPinch型に属するLat型の場合においては、次のような方向ベクトルを設定することができる。すなわち、示指2から小指5からなる第2の仮想指の上の代表点P2から他の代表点P3に向かうベクトルをV3、母指1からなる第1の仮想指の代表点P1に向かうベクトルをV1とする。代表点P2の位置を把持対象の物体とローカル座標系のx軸との交点を合わせ、P2-V1,P2-V3の方向をそれぞれ-x方向、y方向と合わせることによって、手の配置を決定する。ステップS8において、把持姿勢生成部13は、位置合わせされた手及び指の配置を、点群間の距離に基づいた最適化アルゴリズムの1つであるICPIterativeClosestPointアルゴリズムによって最適化する。ここで、ICPアルゴリズムでは、物体と把持姿勢との2つの座標系に属する点群間で点と点との対応付けを行い、対応付けされた点のペアの間の距離を最小にするように座標系間のアフィン変換を求めるという処理を反復して、最適配置を求める。なお、手の最適配置を求めるアルゴリズムは、ICPアルゴリズムに限らず、他の3次元形状位置合わせアルゴリズムを用いることができる。上述した通り、図9AのLat型においては、図9Bに示すように、母指からなる第1の仮想指VF1上に1つ、示指から小指からなる第2の仮想指VF2上に2つの代表点7を有しており、母指上及び示指の側面上に接触点8を有するようにデータベース20上に設定される。他の例として、図10Aに示すようなPoE型並列伸展把握型把持姿勢の場合には、図10Bに示すように第1の仮想指上に1つ、第2の仮想指のうちの示指と中指に1つずつ代表点7を置き、図10Cに示すように示指から小指の指の腹側と、母指の腹に接触点8を置く。このように、すべての小分類把持姿勢に対して、代表点7、接触点8が設定されているのは上述したとおりである。なお、これらの点は、上述あるいは図示したものに限らず、任意に設定し、データベース20上で設定できることは言うまでもない。把持位置近傍に発生させた接触点群を、ICPアルゴリズムのための物体の表面の点群として用いる。ステップS8において、配置の最適化のための計算を反復して行うと、把持姿勢によっては、物体6に配置された一部の指が埋もれた状態で生成されたり、物体6から一部の指が離れてしまう場合がある。そこで、ステップS8において、反復された配置の状態のデータを毎回記憶しておく。そして、物体6と各指との衝突判定を行いながら、埋まっている指については、埋まってしまう直前の状態を探索し、接触していない指については、物体6に接触するまで屈曲させることによって最終的な最適配置を決定することができる。ステップS9において、出力部14によって、適切な把持姿勢を出力する。図17のステップS2において、把持姿勢を入力しなくても、把持姿勢生成装置10は、大分類把持姿勢の分類に従って、把持対象の物体の表面形状をトレースして把持可否を判断することができる。そして、把持可能な大分類把持姿勢に基づいて、形状特徴量を抽出することができる。ステップS3以降は、上述した把持姿勢生成装置の動作の場合と同様に動作させることができる。把持可能と検出した把持姿勢ごとに図17のフローチャートが適用される。図15B~Eに示すような把持姿勢を、このような方法によっても自動的に生成することができる。図17のステップS2を、小分類把持姿勢のデータを選択して入力するステップに代えて、物体6の把持部分を指定するステップとしてもよい。本発明が適用された把持姿勢生成装置10においては、小分類把持姿勢のデータが指定されない場合であっても、物体における把持位置を入力することによって、把持姿勢生成装置10が、適切な小分類把持姿勢のデータを1つ以上選択し、出力することができる。物体の把持位置が指定された場合においては、小分類把持姿勢が決定されていないので、大分類把持姿勢の各々に対して接触面間距離を求め、形状特徴量のデータを抽出する。図17のステップS3において、把持姿勢生成部13は、3種類の大分類把持姿勢のデータのそれぞれについて、入力された把持対象の物体の表面をトレースすることによって、1又は2が出力されるかを検出する。1又は2が出力され、把持可能であることを検出された大分類把持姿勢のデータのそれぞれに対して、把持対象の物体のデータに対してローカル座標を設定する。複数通りのローカル座標を設定することができるのは、上述した小分類把持姿勢を入力した場合と同様である。そして、把持可能と検出された大分類把持姿勢のデータについて、仮想指間ごとに接触面間距離を求めることも上述した小分類把持姿勢のデータを入力した場合と同様にして、把持対象の物体6の形状特徴量のデータを抽出する。ステップS4以降は、上述した小分類把持姿勢のデータを入力した場合と同様であるが、ステップS4において、形状特徴量のデータをクエリとして、データベース20を探索し、ステップS6において、各指の関節角度のデータの生成することによって、多数の把持姿勢が生成される。ステップS7以降は、生成された把持姿勢の個数分だけ反復して実行される。ユーザが把持位置を指定しない場合であっても、把持姿勢生成装置10が、把持対象の物体に対して、大分類把持姿勢の分類に基づいて、物体表面をトレースし、形状特徴量を抽出することによって、把持可能な部分をランダムに設定する。そして、設定した把持位置に対して、適切な把持姿勢を生成することができる。かかる場合には、設定された把持位置に対して、把持可能と判断された把持姿勢ごとに図17のフローチャートが適用される。図15B~Eに示すような把持位置9を、このような方法によっても自動的に生成することができ、把持位置ごとに適切な把持姿勢を生成することができる。したがって、把持姿勢生成装置10においては、ユーザが把持姿勢又は把持位置のいずれか又は両方を指定することによって、適切な把持姿勢を生成することができるほか、把持姿勢及び把持位置いずれも指定しなくても、適切な把持姿勢を生成することができる。[生成結果]図14に示すように、指ごとに関節角度のデータを補間生成することによって、把持位置によって太さや幅の異なる物体を把持した場合でも自然な把持姿勢のデータを生成することができる。ユーザは、把持する対象となる物体のデータを入力し、その物体のデータの把持位置に相当する箇所を指定するだけで、把持するその箇所に対応した適切な把持姿勢のデータを生成することができる。図15Aには、把持対象の物体6として、フライパンの形状のデータを入力する。なお、把持対象の物体を3次元モデルのデータとして入力するのに、3次元物体の情報を記述するためのファイルフォーマットであるVRMLVirtualRealityModelingLanguage形式を用いることができ、他にポリゴンデータ、パラメトリック曲面又は詳細な点群データ等を用いることができる。物体6に対して、そのフライパンの柄に相当する部分を把持指定位置9としてユーザが指定すると、図15Bに示すように、本発明が適用された把持姿勢生成装置10は、その柄の部分を把持可能か否か判定し、適切な把持姿勢を小分類把持姿勢のデータから選択する。図15Cに示すように、フライパン本体の縁の部分を指定しても適切な把持姿勢のデータを選択し、生成する。図15Dに示すように、フライパンの底部の周縁を指定しても、図15Eに示すように、柄の先端部分を指定しても適切な把持姿勢の3次元モデルデータを生成する。また、図16A~Lに示すように、ユーザが把持対象の物体のデータとともに小分類把持姿勢のデータを入力すれば、本発明が適用された把持姿勢生成装置10は、把持可能な部分を検出して適切な姿勢で把持する3次元モデルのデータを生成することができる。なお、小分類把持姿勢のデータを入力する場合には、小分類把持姿勢の分類名を指定してもよいが、あらかじめ各小分類把持姿勢のデータのサムネイル等を入力画面上に配置することによって、ユーザがそれを選択できるようにしてもよい。ここで、把持姿勢生成装置10によって、ハサミのように物理的に離れた部分を有する物体を把持する把持姿勢を生成しようとする場合には、把持対象の物体の離れた部分それぞれに対して、形状特徴量を抽出し、把持姿勢を生成する。したがって、図16G、Hのように、物理的に離れた柄の部分を、またがるように把持させた把持姿勢を生成するためには、把持対象の物体を、物体の離れた部分を含む、3次元空間に配置した点を含む最小の凸図形である凸包体形状とする必要がある。把持姿勢生成装置10に入力された物体6の形状に基づいて、例えば凸包体を生成する他のプログラムを用いて、その物体6の凸包体を生成して、その凸包体を把持姿勢生成装置10に入力する。入力された凸包体の形状に基づいて、把持姿勢生成装置10によって、形状特徴量が抽出され、適切な把持姿勢が生成される。いずれの場合においても、把持姿勢生成装置10によって自動的に把持姿勢を生成するのに限らず、物体に対する手の位置や各指の関節角度等のデータについては、入力部12を介してユーザがインタラクティブに調整することもでき、さらに最適な把持姿勢のデータとすることができる。従来技術においては、7万回の反復計算を行った結果、14個の把持姿勢のデータを生成するのに277秒を要した。同一のコンピュータシステムを用いて、本発明が適用された把持姿勢生成装置を用いることによって、250個の把持姿勢のデータを生成するのに、12.76秒を要したに過ぎない。従来技術においては、物体の形状と手の位置又は指の角度との対応付けを行わずに、すべての自由度について同時に最適化しようとするために、膨大な反復計算が必要になり、計算時間が長くかかった。本発明の把持姿勢生成装置によれば、把持対象の物体を把持姿勢の分類及び接触面間距離によって、把持可否を判定し、各把持姿勢のデータの各指の角度を接触面間距離のデータに関連付けをするので、従来技術よりも高速に、自然な把持姿勢のデータを生成することができる。したがって、より多くの把持姿勢のデータを生成することができるとともに、ユーザがインタラクティブに把持姿勢や把持位置を調整することができる。"