(57)【特許請求の範囲】
【請求項１】
任意形状の物体を把持する曲面状の指先部を有する複数本の指と、前記各指の関節を駆動させる複数のアクチュエータとを備えたロボットハンドの把持制御装置であって、
前記物体上における前記各指の指先部と接する目標接触点を画像認識によって決定し、前記目標接触点における法線ベクトルを求める接触位置設定手段と、
前記各指について、前記指先部の表面を要素分割して複数の点を生成し、前記複数の点のうち任意の一点の周囲に位置する少なくとも３つの点で決められる平面の法線ベクトルを当該一点における法線ベクトルと近似することにより、前記各点における法線ベクトルをそれぞれ求め、前記目標接触点と前記指先部上の点との間の距離がゼロになると共に前記目標接触点における法線ベクトルと前記指先部上の点における法線ベクトルとが実質的に一致するような前記関節の目標角度を求める把持姿勢演算手段と、
前記各指について、前記関節の目標角度に応じて前記アクチュエータを制御する駆動制御手段とを備えることを特徴とするロボットハンドの把持制御装置。
【請求項２】
前記把持姿勢演算手段は、前記任意の一点から最も近い４つの点で決められる平面の法線ベクトルを当該一点における法線ベクトルと近似することにより、前記各点における法線ベクトルをそれぞれ求めることを特徴とする請求項１記載のロボットハンドの把持制御装置。
【請求項３】
前記把持姿勢演算手段は、前記目標接触点と前記指先部上の点との間の距離がゼロになると共に前記目標接触点における法線ベクトルと前記指先部上の点における法線ベクトルとが実質的に一致するように最適化するための下記の目標関数ｆ（ｉ）を設定し、前記指の関節角度を変数として前記目標関数ｆ（ｉ）に与えると共に前記指先部上の各点の座標及び当該各点における法線ベクトルを代入して前記目標関数ｆ（ｉ）を計算し、前記目標関数ｆ（ｉ）の最小値を求めることにより、前記関節の目標角度を求めることを特徴とする請求項１または２記載のロボットハンドの把持制御装置。
ｆ（ｉ）＝ｄi(θ1,…θm)＋α[(Vox−Vix)2＋(Voy−Viy)2＋(Voz−Viz)2]
Ｖｏ＝（Vox，Voy，Voz）
Ｖｉ＝（Vix，Viy，Viz）
ｄi：目標接触点と指先部上の点との間の距離
θm：関節角度（ｍは関節数）
α：重み係数
Ｖｏ：目標接触点における法線ベクトル
Ｖｉ：指先部上の点における法線ベクトル
【請求項４】
前記把持姿勢演算手段は、前記目標関数ｆ（ｉ）の最小値を前記目標関数ｆ（ｉ）に与えられる前記指の関節角度を修正するかどうかの判断基準となるしきい値と比較し、前記目標関数ｆ（ｉ）の最小値が前記しきい値よりも小さい場合には、その時に前記目標関数ｆ（ｉ）に与えられた前記指の関節角度を前記目標角度に設定し、前記目標関数ｆ（ｉ）の最小値が前記しきい値よりも小さくない場合には、前記指の関節角度の値を修正し、当該指の関節角度を変数として前記目標関数ｆ（ｉ）に与えると共に再び前記指先部上の各点の座標及び当該各点における法線ベクトルを代入して前記目標関数ｆ（ｉ）を計算することを特徴とする請求項３記載のロボットハンド１の把持制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、任意形状の物体を把持する複数本の指を有するロボットハンドの把持制御装置に関するものである。
【０００２】
【従来の技術】
ロボットにより物体を把持する従来技術としては、例えば特許文献１に記載されているものが知られている。この文献に記載のロボット制御装置は、ロボットをマニュアル動作させ、ロボット先端位置を記憶させることにより、移動経路上の代表的な位置・姿勢を表す参照点と運転時のロボット先端の動作位置の参照点に対する相対位置とを教示し、参照点の列で運転時のロボット先端の動作位置経路を指定し、その動作位置経路に従ってワークを把持するものである。
【０００３】
【特許文献１】
特開平２−５９２８５号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来技術においては、把持すべき物体（ワーク）の種類が変わるたびに、どのような動作位置経路が適当かを教示によって決める必要がある。このため、ワークの種類が多いと、教示作業に手間がかかり、効率が悪くなる。また、任意形状のワークに対応するのは困難である。
【０００５】
本発明の目的は、任意形状の物体を確実に且つ効率良く把持することができるロボットハンドの把持制御装置を提供することである。
【０００６】
【課題を解決するための手段】
本発明は、任意形状の物体を把持する曲面状の指先部を有する複数本の指と、前記各指の関節を駆動させる複数のアクチュエータとを備えたロボットハンドの把持制御装置であって、物体上における各指の指先部と接する目標接触点を画像認識によって決定し、目標接触点における法線ベクトルを求める接触位置設定手段と、各指について、指先部の表面を要素分割して複数の点を生成し、複数の点のうち任意の一点の周囲に位置する少なくとも３つの点で決められる平面の法線ベクトルを当該一点における法線ベクトルと近似することにより、各点における法線ベクトルをそれぞれ求め、目標接触点と指先部上の点との間の距離がゼロになると共に目標接触点における法線ベクトルと指先部上の点における法線ベクトルとが実質的に一致するような関節の目標角度を求める把持姿勢演算手段と、各指について、関節の目標角度に応じてアクチュエータを制御する駆動制御手段とを備えることを特徴とするものである。
【０００７】
ロボットハンドの各指で物体を把持する際、各指の指先部が曲面状を有している場合には、指先部上のどの部分が対象物に接触するかは事前には分からないので、従来一般の逆運動解析法は効かない。しかし、曲面状の指先部であっても、物体上の目標接触点と指先部上の任意点との間の距離がゼロになると共に、物体上の目標接触点における法線ベクトルと指先部上の任意点における法線ベクトルとがほぼ一致していれば、物体の把持が可能な状態となる。本発明は、そのような点に着目して為されたものである。即ち、上記の接触位置設定手段、把持姿勢演算手段及び駆動制御手段を設けることにより、各指で物体を把持する時の関節の目標角度が求められ、この関節の目標角度に応じてアクチュエータが制御され、その結果として物体が各指に把持される。この場合には、ロボットハンドの動作に関する教示作業を一切行わなくて済む。従って、任意形状の物体を確実に且つ効率良く把持することが可能となる。
【０００８】
好ましくは、把持姿勢演算手段は、任意の一点から最も近い４つの点で決められる平面の法線ベクトルを当該一点における法線ベクトルと近似することにより、各点における法線ベクトルをそれぞれ求める。この場合には、指先部上の多点における法線ベクトルを、簡単かつ高精度に求めることができる。
【０００９】
また、好ましくは、把持姿勢演算手段は、目標接触点と指先部上の点との間の距離がゼロになると共に目標接触点における法線ベクトルと指先部上の点における法線ベクトルとが実質的に一致するように最適化するための下記の目標関数ｆ（ｉ）を設定し、指の関節角度を変数として目標関数ｆ（ｉ）に与えると共に指先部上の各点の座標及び当該各点における法線ベクトルを代入して目標関数ｆ（ｉ）を計算し、目標関数ｆ（ｉ）の最小値を求めることにより、前記関節の目標角度を求める。
ｆ（ｉ）＝ｄi(θ1,…θm)＋α[(Vox−Vix)2＋(Voy−Viy)2＋(Voz−Viz)2]
Ｖｏ＝（Vox，Voy，Voz）
Ｖｉ＝（Vix，Viy，Viz）
ｄi：目標接触点と指先部上の点との間の距離
θm：関節角度（ｍは関節数）
α：重み係数
Ｖｏ：目標接触点における法線ベクトル
Ｖｉ：指先部上の点における法線ベクトル指先部上の複数のこれにより、各指の関節の目標角度を簡単な手法で確実に求めることができる。
【００１０】
このとき、好ましくは、把持姿勢演算手段は、目標関数ｆ（ｉ）の最小値を目標関数ｆ（ｉ）に与えられる指の関節角度を修正するかどうかの判断基準となるしきい値と比較し、目標関数ｆ（ｉ）の最小値がしきい値よりも小さい場合には、その時に目標関数ｆ（ｉ）に与えられた指の関節角度を目標角度に設定し、目標関数ｆ（ｉ）の最小値がしきい値よりも小さくない場合には、指の関節角度の値を修正し、当該指の関節角度を変数として目標関数ｆ（ｉ）に与えると共に再び指先部上の各点の座標及び当該各点における法線ベクトルを代入して目標関数ｆ（ｉ）を計算する。この場合には、目標関数ｆ（ｉ）の最小値がしきい値よりも小さくなった時点で、関節の目標角度を求める処理が終了するので、把持姿勢演算手段の計算処理時間を短縮することが可能となる。
【００１１】
【発明の実施の形態】
以下、本発明に係るロボットハンドの把持制御装置の好適な実施形態について図面を参照して説明する。
【００１２】
図１は、本発明に係る把持制御装置の一実施形態が適用されるロボットハンドの主要部の外観を示す斜視図である。同図において、ロボットハンド１は、図示しないロボットアームに取り付けられたものであり、任意形状の物体２を把持する４本の指３（親指３Ａ、人差指３Ｂ、中指３Ｃ、薬指３Ｄ）を有している。これらの指３は、図示しないハンド掌部に連結されている。
【００１３】
親指３Ａは、４自由度のリンク系であり、４つの関節４Ａと、各関節４Ａを駆動させる４つのモータ５Ａとを有している。人差指３Ｂは、３自由度のリンク系であり、４つの関節４Ｂと、各関節４Ｂを駆動させる３つのモータ５Ｂとを有している。最も先端側の関節４Ｂは、連動関節構造となっている。中指３Ｃは、３自由度のリンク系であり、４つの関節４Ｃと、各関節４Ｃを駆動させる３つのモータ５Ｃとを有している。最も先端側の関節４Ｃは、連動関節構造となっている。薬指３Ｄは、３自由度のリンク系であり、４つの関節４Ｄと、各関節４Ｄを駆動させる３つのモータ５Ｄとを有している。最も先端側の関節４Ｄは、連動関節構造となっている。各指３Ａ〜３Ｄは、弾性体からなる曲面状の指先部６Ａ〜６Ｄ（以下、指先部６）を有している。
【００１４】
図２は、上記のロボットハンド１の各指３の把持姿勢を制御する把持制御装置を示す構成図である。同図において、把持制御装置７は、複数の６軸力センサ８と、複数のエンコーダ・ポテンショメータ９と、画像認識ユニット１０と、ロボットハンド制御ユニット１１と、複数のモータドライバ１２とを有している。
【００１５】
６軸力センサ７は、各指３の根元部に設けられ（図１参照）、把持反力を検出する。エンコーダ・ポテンショメータ８は、各モータ５Ａ〜５Ｄ（以下、モータ５）に設けられ、各関節４Ａ〜４Ｄ（以下、関節４）の角度（関節角度）θを検出する。関節角度θは、図３に示すように、関節４と連結された２本のリンク１３の長手方向に延びる線が交差する角度である。
【００１６】
画像認識ユニット１０は、図示はしないが、光源、撮像部及び画像処理部等を有している。画像認識ユニット１０は、図３に示すような物体２上における各指３の指先部６と接する目標接触点Ｐの座標を決定し、その目標接触点Ｐにおける物体曲面の法線ベクトルＶ0を求める。
【００１７】
Ｖ0＝（Ｖ0x，Ｖ0y，Ｖ0z）
なお、この法線ベクトルＶ0は、ロボットハンド１の手首（図示せず）に固定された絶対座標系における座標である。
【００１８】
ロボットハンド制御ユニット１１は、把持姿勢演算部１４と、制御演算部１５とを有している。把持姿勢演算部１４は、画像認識ユニット１０で予め設定された物体上の目標接触点Ｐの座標及び法線ベクトルＶ0を入力し、所定の演算を行い、物体２を把持するための指３の各関節４の目標角度（目標関節角度）を求める。なお、把持姿勢演算部１４による演算処理については、後で詳述する。
【００１９】
制御演算部１５は、把持姿勢演算部１４で求めた各指３の目標関節角度に応じた時系列の関節角度指令値を作成し、この指令値をモータドライバ１２に送出する。このとき、エンコーダ・ポテンショメータ９の検出信号を入力し、関節４の角度（関節角度）をフィードバック制御する。また、６軸力センサ８の検出信号を入力し、各指３による把持力をフィードバック制御してもよい。
【００２０】
モータドライバ１２は、制御演算部１５で作成された関節角度指令値に応じた駆動電流を各モータ５に供給して、各モータ５を回転駆動させる。
【００２１】
次に、ロボットハンド制御ユニット１１の把持姿勢演算部１４において、ロボットハンド１の把持姿勢を求める考え方について、以下に説明する。
【００２２】
（１）指先部の要素分割
図４に示すように、指先部６の表面を要素分割することにより、数多くの格子点Ｑを生成する。そして、関節４の回転中心を原点とし、指先リンク１６に固定されたリンク座標系（ローカル座標系）における各格子点Ｑの座標のデータベースを予め作成しておく。
【００２３】
（２）絶対座標系における指先部上の格子点座標の計算
リンク座標系と絶対座標系（前述）との間の座標変換を行うことにより、指先部６上の格子点Ｑの絶対座標系における座標を計算する。
【００２４】
図５に、人差指３ｂ、中指３ｃ、薬指３ｄの座標系の取り方を示す。同図において、ｘsｙsｚs座標系は、上述したようにロボットハンド１の手首に固定された絶対座標系である。ｘ0ｙ0ｚ0座標系は、第４関節４ａにおけるモータの静止部分に固定された相対座標系である。ｘiｙiｚi（ｉ＝１〜４）座標系は、第３関節４ｂ、第２関節４ｃ及び第１関節４ｄの回転軸に固定されたリンク座標系である。
【００２５】
ｘiｙiｚi座標系の原点は、関節４ｂ〜４ｄまたはモータの中心点に位置している。ｘiｙiｚi座標系のｚ軸は、関節４ｂ〜４ｄの回転軸に対応している。ｘiｙiｚi座標系のｘ軸は、関節４ｂ〜４ｄの回転軸に直交し、且つ指先側のリンク１６ｂ〜１６ｄの長手方向に延びた軸である。ｘiｙiｚi座標系のｙ軸は、ｘiｙiｚi座標系のｘ軸及びｚ軸に直交する軸である。各リンク１６ａ〜１６ｃの長さはＬ1〜Ｌ3であり、各関節４ａ〜４ｄの関節角度はθ1〜θ4である。ここで、関節４ｃ，４ｄは連動関節であるため、関節４ｃの関節角度θ3と関節４ｄの関節角度θ4とは等しくなっている。
【００２６】
指先部６上の任意の格子点ｊのｘ4ｙ4ｚ4座標系（指先リンク１６ｄのリンク座標系）における座標(xj(4),yj(4),zj(4)) は、関節角θiにより変わらず、前記データベースから事前に決められる既知量である。このとき、ｘsｙsｚs座標系における格子点ｊの座標(xj(s),yj(s),zj(s)) は、次式で表される。
【式１】
0004033050.tif 000002
ここで、sＴ4は、ｘ4ｙ4ｚ4座標系からｘsｙsｚs座標系への座標変換行列であり、次式のように隣り合うリンク座標系の座標変換行列により求められる。
【式２】
0004033050.tif 000003
ここで、ｘ0ｙ0ｚ0座標系は、ｘsｙsｚs座標系の各座標軸の並進移動を施すことによって得られるので、sＴ0は次式で表される。
【式３】
0004033050.tif 000004
【００２７】
また、ｘiｙiｚi座標系は、ｘi-1ｙi-1ｚi-1座標系に次のような変換を施すことによって得られる。
（ａ）ｘi-1軸に沿ってａi-1だけ並進
（ｂ）ｘi-1軸回りにαi-1だけ回転
（ｃ）回転後のｚi-1軸（即ちｚi軸）に沿ってｄiだけ並進
（ｄ）回転後のｚi-1軸（即ちｚi軸）回りにθiだけ回転
【００２８】
ｘiｙiｚi座標系からｘi-1ｙi-1ｚi-1座標系への座標変換行列i-1Ｔiは、以上の（ａ）〜（ｄ）の同次変換の積で表せる。
【式４】
0004033050.tif 000005
上記（４）式のパラメータは、表１に示される。
【表１】
0004033050.tif 000006
【００２９】
表１の各パラメータを（４）式に代入して、座標変換行列0Ｔ1，1Ｔ2，2Ｔ3，3Ｔ4を計算する。さらに、（３）式と（４）式を（２）式に代入して、座標変換行列sＴ4を計算する。最後に、（２）式を（１）式に代入して、指先部６上の任意点ｊのｘsｙsｚs座標系（絶対座標系）における座標を得る。
【００３０】
図６に、親指３ａの座標系の取り方を示す。考え方は上記と同様であり、ｘ4ｙ4ｚ4座標系からｘsｙsｚs座標系への座標変換を行うことで、指先部６上の任意点ｊのｘsｙsｚs座標系における座標を得る。座標変換行列i-1Ｔiを算出する式のパラメータは、表２に示される。
【表２】
0004033050.tif 000007
【００３１】
（３）指先部上の任意点の法線ベクトルの計算
図７に示すように、指先部６上の任意点ｉにおける法線ベクトルＶiは、周囲の最も近い４つの格子点で決められる平面の法線ベクトルとして近似される。原理的には、３つの格子点で平面を定義できるが、近似精度を上げるためには、２つの格子点の中間点を計算し、これに他の２つの格子点を加えて平面を決めるのが望ましい。このような平面の方程式は、次のように導かれる。
【式５】
0004033050.tif 000008
ただし、３'点は、３点と４点の間の中間点であり、座標は次式によって求められる。
【式６】
0004033050.tif 000009
上式を整理すると、
【式７】
0004033050.tif 000010
このとき、上述した平面内の任意点ｉにおける法線ベクトルＶiの成分（Ｖix，Ｖiy，Ｖiz）は、次式で与えられる。
【式８】
0004033050.tif 000011
【００３２】
（４）最適化手法による指の各関節の目標把持姿勢の導出
図３において、各指３の指先部６の点Ｑが物体に接触し、各指３の指先部６で物体２を把持する状態では、指先部６上の点Ｑと物体２上の目標接触点Ｐとの距離ｄがゼロであり、かつ点Ｑにおける法線ベクトルＶiと目標接触点Ｐにおける法線ベクトルＶ0とが一致するようになる。
【００３３】
従って、最適化の目標関数としては、まず物体２上の目標接触点Ｐまで一番近い指先部６上の点Ｑを探せばよい。つまり、目標接触点Ｐと点Ｑとの間の距離ｄが最小となるように設定する。
【式９】
0004033050.tif 000012
座標（ｘ0，ｙ0，ｚ0）は、物体２上の目標接触点Ｐの絶対座標である。座標（ｘi，ｙi，ｚi）は、上記（１）式から得られた指先部６上の点Ｑの絶対座標であり、各関節角度θ1〜θmの関数である。従って、（７）式のｄiも各関節角度θ1〜θmの関数となる。
【００３４】
次いで、制約条件式として、物体２と各指３との接触点における両者の法線ベクトルが一致するように設定する。
【式１０】
0004033050.tif 000013
ここで、問題を簡単化するために、以上の制約条件付きの最適化問題を無制約最適化問題へ転換する。この場合、（８）式の制約条件を（６）式に組み込んで、次の目標関数ｆ（ｉ）を作る。
【式１１】
0004033050.tif 000014
なお、αは重み係数である。
【００３５】
このような（９）式に、指先部６上の各点Ｑの座標及び法線ベクトルＶiを代入して目標関数ｆ（ｉ）を計算し、各点Ｑに対応する目標関数ｆ（ｉ）を比較して一番小さい値ｆを探す。
【式１２】
0004033050.tif 000015
ここで、（７）式のｄi及び（８）式のＳiは、両項とも正の値であるため、目標関数ｆ（ｉ）の最小値ｆがしきい値εよりも小さければ、ｄi及びＳiもしきい値εよりも小さくなる。即ち、（６）式の値ｆがほぼ最小となると同時に、（８）式の制約条件がほぼ満足される。これにより、（１０）式の無制約最適化問題は、（６）式、（８）式の制約条件付きの最適化問題と等価である。
【００３６】
従って、目標関数ｆ（ｉ）の最小値ｆがしきい値εよりも小さいときは、当該最小値ｆを満足する指の各関節角度θ1〜θmが最適化問題の解となり、それが各関節４ａ〜４ｄの目標関節角度となる。
【００３７】
一方、目標関数ｆ（ｉ）の最小値ｆがしきい値ε以上のときは、各関節角度θ1〜θmを修正する必要がある。この各関節角度θ1〜θmを修正するための計算手法の１つとしては、最速降下法が知られている。この最速降下法の探索原理を図８に示す。
【００３８】
同図において、変数θの初期値を任意に設定されたθ(0)とし、θ(0)点における目標関数ｆの勾配▽ｆ0（曲線の接線）を計算する。θ(0)点における目標関数ｆの降下方向は−▽ｆ0方向と一致するので、−▽ｆ0方向に沿って適当なステップを取って新しい点θ(1)を得る。次いで、θ(1)点における勾配▽ｆ1を計算し、−▽ｆ1方向に沿ってθ(1)を修正してθ(2)を得る。このように▽ｆi＝０となるまで繰り返すと、最小値ｆminが得られる。
【００３９】
次に、最速降下法のアルゴリズムを説明する。
【式１３】
0004033050.tif 000016
この（１１）式の目標関数に対して勾配を次のように求める。
【式１４】
0004033050.tif 000017
アルゴリズムは下記の通りである。
（ａ）初期値θ(0)及び許容誤差εを設定する。
（ｂ）Ｋ＝０とする。
（ｃ）ｚ(K)＝−▽ｆ（θ(K)）を計算する。
（ｄ）｜ｚ(K)｜＜εが成り立つと終了。θ(K)は最適解と見られる。そうでなければ、次に進む。
（ｅ）下式のようにθを修正する。
θ(K+1)＝θ(K)＋ｓｚ(K)、ｓ＞０          （１３）
さらに、一次元線形探索法によりｆ（θ(K)＋ｓｚ(K)）が最小となる最適なｓを求める。
（ｆ）Ｋ＝Ｋ＋１、ステップ（ｃ）に戻る。
【００４０】
この方法は、毎回の目標関数値が常に前回より小さくなるように降下方向に変数値を更新していくメリットがあるが、収束速度が遅い。通常は、改良型共役勾配法を用いて探索方向ｚ(K)を決める。色々な共役勾配の計算方法があるが、収束速度が一番速いのは、Broyden,Fletcher,Goldfarb and Shannoの４人が提案したＢＦＧＳ計算法であると考えられる。次式は、ＢＦＧＳの計算数式である。
【式１５】
0004033050.tif 000018
ここで、Ｈ(K)はHessian行列、Ｈ(0)はｍ×ｍ単位行列であり、Ｈ(K)は次式で計算される。
【式１６】
0004033050.tif 000019
改良型共役勾配法のアルゴリズムは、ｚ(K)の計算以外の部分は最速降下法と全く同じである。
【００４１】
以上のように説明した最適化手法を用いて、直方体状の物体を把持するシミュレーションを行ったところ、物体上の目標接触点で把持した理想的な把持姿勢となる計算結果が得られ、本計算方法の妥当性が実証された。
【００４２】
図９は、上記のロボットハンド制御ユニット１１の把持姿勢演算部１４による演算処理手順の詳細を示すフローチャートである。以下、本フローチャートを用いて、ロボットハンド１で物体２を把持するための制御動作について説明する。
【００４３】
まず画像認識ユニット１０によって、物体２上の目標接触点Ｐの座標を決定し、その目標接触点Ｐにおける法線ベクトルＶ0を検出する。
【００４４】
すると、把持姿勢演算部１４は、その物体２上の目標把持点Ｐの座標と法線ベクトルＶ0とを入力する（図９の手順１０１）。そして、指３の各関節角度θ1〜θ4（図５及び図６参照）の初期値としきい値ε（前述）とを設定する（同手順１０２）。
【００４５】
続いて、各関節角度θ1〜θ4の初期値を上記（１）〜（４）式に代入して、指先部６上の各点ｉの座標を計算する（同手順１０３）。また、（５）式により指先部６上の各点ｉにおける法線ベクトルＶiを計算する（同手順１０４）。続いて、各点ｉの座標及び法線ベクトルＶiを（９）式に代入して、物体２上の目標把持点Ｐと指先部６上の点ｉとの間の距離ｄ、並びに法線ベクトルＶ0と法線ベクトルＶiとのズレを最適化するための目標関数ｆ（ｉ）を計算する（同手順１０５）。そして、各点ｉについて計算した目標関数ｆ（ｉ）を比較して、目標関数ｆ（ｉ）の最小値ｆを検出する（同手順１０６）。
【００４６】
続いて、目標関数ｆ（ｉ）の最小値ｆをしきい値εと比較する（同手順１０７）。そして、目標関数ｆ（ｉ）の最小値ｆがしきい値εよりも小さいときは、その時に与えた関節角度θ1〜θ4を各関節４の目標関節角度に設定する（同手順１０８）。一方、目標関数ｆ（ｉ）の最小値ｆがしきい値εよりも小さくないときは、関節角度θ1〜θ4の値を修正し（同手順１０９）、上記手順１０３に戻る。そして、目標関数ｆ（ｉ）の最小値ｆがしきい値εよりも小さくなるまで、手順１０３〜１０７を繰り返し行うことにより、各関節４の目標関節角度を得る。
【００４７】
以上のような演算処理を各指３Ａ〜３Ｄについて実行することにより、指３Ａ〜３Ｄの各関節４の目標関節角度を求め、ロボットハンド１全体としての把持姿勢角度を得る。
【００４８】
このように把持姿勢演算部１４で求められた指３Ａ〜３Ｄの各関節４の目標関節角度は制御演算部１５に送られ、制御演算部１５において関節角度指令値が作成される。そして、その関節角度指令値は各モータドライバ１２に送られ、各モータドライバ１２により各モータ５が駆動制御される。これにより、ロボットハンド１の各指３Ａ〜３Ｄが把持姿勢となり、各指３Ａ〜３Ｄにより物体２が把持されることとなる。
【００４９】
以上において、画像認識ユニット１０は、物体２上における各指３の指先部６と接する目標接触点を決定し、目標接触点における法線ベクトルＶ0を求める接触位置設定手段を構成する。ロボットハンド制御ユニット１１の把持姿勢演算部１４は、前記各指３について、目標接触点と指先部６上の任意点との間の距離がゼロになると共に目標接触点における法線ベクトルＶ0と任意点における法線ベクトルＶiとが実質的に一致するような関節４の目標角度を求める把持姿勢演算手段を構成する。ロボットハンド制御ユニット１１の制御演算部１５及びモータドライバ１２は、各指３について、関節４の目標角度に応じてアクチュエータ５を制御する駆動制御手段を構成する。
【００５０】
以上のように本実施形態にあっては、各指３の指先部６上の任意点と物体２上の各目標接触点との距離がゼロになると共に指先部６上の任意点の法線ベクトルと物体２上の各目標接触点の法線ベクトルとがほぼ一致するような各指３の目標関節角度を求め、この目標関節角度に応じて各指３のモータ５を駆動制御するので、各指３の指先部６が曲面状をなしている場合であっても、あらゆる形状の物体２を確実に把持することができる。このとき、各指３の目標関節角度は、計算によって自動的に求められるので、ロボットハンド１の動作に関する教示作業が不要であり、これにより物体２を効率良く把持することが可能となる。
【００５１】
なお、本発明は、上記実施形態に限定されるものではない。例えば、上記実施形態では、最適化のための目標関数ｆ（ｉ）の最小値ｆをしきい値εと比較し、最小値ｆがしきい値εよりも小さくなった時点で、各関節４の目標関節角度を決定するものとしたが、特にこの手法には限られず、関節角度の変数すべてを与えて、最適な目標関節角度を決定しても良い。
【００５２】
また、上記実施形態のロボットハンドは４本の指を有するものであるが、指の数は複数本であればよく、また各指の関節数及び自由度数も、特に上記のものには限られない。
【００５３】
【発明の効果】
本発明によれば、複数本の指について、物体上の目標接触点と指先部上の任意点との距離がゼロになると共に目標接触点における法線ベクトルと指先部上の任意点における法線ベクトルとが実質的に一致するような関節部の目標角度を求め、この関節部の目標角度に応じてアクチュエータを制御するので、任意形状の物体を効率良くかつ確実に把持することができる。
【図面の簡単な説明】
【図１】本発明に係る把持制御装置の一実施形態が適用されるロボットハンドの主要部の外観を示す斜視図である。
【図２】本発明に係る把持制御装置の一実施形態を示す構成図である。
【図３】ロボットハンドの指と物体との位置・姿勢関係を示す図である。
【図４】ロボットハンドの指先部の要素分割を示す図である。
【図５】ロボットハンドの人差指、中指、薬指の絶対座標系とリンク座標系を示す図である。
【図６】ロボットハンドの親指の絶対座標系とリンク座標系を示す図である。
【図７】ロボットハンドの指先部上の任意点における法線ベクトルを求める方法を示す図である。
【図８】最速降下法の捜索原理を示す図である。
【図９】図２に示す把持姿勢演算部による演算処理手順の詳細を示すフローチャートである。
【符号の説明】
１…ロボットハンド、２…物体、３…指、３Ａ…親指、３Ｂ…人差指、３Ｃ…中指、３Ｄ…薬指、４…関節、５…モータ（アクチュエータ）、６…指先部、７…把持制御装置、１０…画像認識ユニット（接触位置設定手段）、１１…ロボットハンド制御ユニット、１２…モータドライバ（駆動制御手段）、１４…把持姿勢演算部（把持姿勢演算手段）、１５…制御演算部（駆動制御手段）。
【図１】
0004033050.tif 000020
【図２】
0004033050.tif 000021
【図３】
0004033050.tif 000022
【図４】
0004033050.tif 000023
【図５】
0004033050.tif 000024
【図６】
0004033050.tif 000025
【図７】
0004033050.tif 000026
【図８】
0004033050.tif 000027
【図９】
0004033050.tif 000028