(57)【要約】【課題】  指部材によって物体を倒したり、損傷したりする危険性が低く、物体を確実に把持することができるロボットハンドの把持制御装置を提供する。【解決手段】  ロボットハンドの把持制御装置は、画像認識装置２によって把持対象物体の形状を認識し、把持対象物体の形状に基づいて、把持姿勢算出装置３によって、ロボットハンド１の把持姿勢を算出する。把持姿勢算出装置３では、ロボットハンド１の各指１１〜１４における各リンクが、把持対象物体に対して最も接触点が多くなるように、各指１１〜１４における各リンクの目標関節角を算出する。【選択図】  図１
2006026875.tif 000002
【特許請求の範囲】
【請求項１】
関節を介して接続された複数のリンク部材を備える複数の指部材と、前記複数の指部材が取り付けられたハンド部材と、を有し、前記複数の指部材における各関節の角度を制御して、把持対象物体を把持するロボットハンドの把持制御装置において、
前記把持対象物体の形状を認識する物体形状認識手段と、
認識した前記把持対象物体の形状に基づいて、前記把持対象物体に前記指部材が備える複数のリンク部材が接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、前記指部材の把持姿勢を算出する把持姿勢算出手段と、
前記各関節を制御することにより、前記指部材を前記把持姿勢算出手段で求めた姿勢とする関節角度制御手段と、
を備えることを特徴とするロボットハンドの把持制御装置。
【請求項２】
関節を介して接続された複数のリンク部材を備える複数の指部材と、前記複数の指部材が取り付けられたハンド部材と、を有し、前記複数の指部材における各関節の角度を制御して、把持対象物体を把持するロボットハンドの把持制御装置において、
前記関節の少なくとも一部は、接続するリンク部材を連動させる連動関節であり、
前記把持対象物体の形状を認識する物体形状認識手段と、
認識した前記把持対象物体の形状に基づいて、前記把持対象物体に前記指部材が備える複数のリンク部材が所定数以上の接触点を持って接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、前記指部材の把持姿勢を算出する把持姿勢算出手段と、
を備え、
前記把持姿勢算出手段は、算出した把持姿勢の接触点が、前記所定数に満たない場合、前記把持姿勢算出に用いる前記ハンド部材の前記把持対象物体に対する位置を変更する、
ことを特徴とするロボットハンドの把持制御装置。
【請求項３】
前記把持姿勢算出手段は、予め定義された複数のモデル形状と、前記モデル形状に対するロボットハンドの拘束条件から定めた接触条件を記憶しており、
認識した前記把持対象物体の形状に対して前記複数のモデル形状のいずれかを割り当て、割り当てたモデル形状に対応する接触条件を満たす把持姿勢を算出する請求項１または請求項２に記載のロボットハンドの把持姿勢制御装置。
【請求項４】
前記接触条件は、前記モデル形状と、前記ロボットハンドの拘束条件とから、前記把持対象物体と前記指部材とが所定数以上の接触点数を有する場合における前記物体に対する指部材の位置を幾何学的に求めた条件である請求項３に記載のロボットハンドの把持制御装置。
【請求項５】
前記把持対象物体の位置を認識する物体位置認識手段と、
前記ハンド部材の位置を制御するハンド部材位置制御手段と、
を備え、
認識した把持対象物体の位置と、前記ハンド部材の位置との相対的な位置関係に基づいて、ハンド部材位置を制御する請求項１〜請求項４のうちのいずれか１項に記載のロボットハンドの把持制御装置。
【請求項６】
前記関節角度制御手段は、前記指部材が前記把持対象物体に対する接触点でそれぞれ同時に接触するように前記各関節を制御する請求項１〜請求項５のうちのいずれか１項に記載のロボットハンドの把持制御装置。
【請求項７】
前記リンク部材に設けられ、前記把持対象物体を把持する際の前記リンク部材の把持力を検出する把持力検出手段を備え、
前記関節角度制御手段は、前記把持力検出手段によって検出された把持力が、所定のしきい値を超えたときに、前記各関節の制御を終了する請求項１〜請求項６のうちのいずれか１項に記載のロボットハンドの把持制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節を介して接続された複数のリンク部材を備える指部材を複数有するロボットハンドの把持制御を行うロボットハンドの把持制御装置に関する。
【背景技術】
【０００２】
ロボットハンドを用いた物体の把持についての先行技術として、従来、特開２００３−２４５８８３号公報に開示されたロボットの制御方法がある。このロボットの制御方法は、ロボットハンドを用いて物体の把持を行う際に、非接触時には各関節を所定速度で強く握り締め、指リンクが物体に接触した際には、接触した指リンクの根元側リンクに作用する接触力が目標接触力となるように力制御するというものである。
【０００３】
また、他の先行技術として、特開２００３−９４３６７号公報に開示された手先視覚付ロボットハンドがある。この手先視覚付ロボットハンドは、撮像したワークの形状および位置からワークを把持するための把持位置データを生成し、この把持位置データに基づいて、ロボットハンドの把持位置を変更し、ロボットハンドが自律して最適な把持位置でワークを把持可能としたというものである。
【特許文献１】特開２００３−２４５８８３号公報
【特許文献２】特開２００３−９４３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献１に開示されたロボットの制御方法では、把持姿勢の予測をすることなく物体を把持している。このため、指リンクの位置によっては物体と指リンクとの接触点が少なくなってしまい、不安定な状態での把持となるおそれがある。また、接触力を用いているため、軽い物体や不安定な物体では先に物体に接触した指リンクが物体を動かしたり、倒したり、損傷したりするおそれがあった。
【０００５】
また、上記特許文献２に開示された手先視覚付ロボットハンドは、撮像したワークの形状および位置に基づいてロボットハンドの把持位置を決定してワークを把持するものである。ところが、ロボットハンドによってワークを把持するための具体的な方法については開示されておらず、確実にワークを把持することができるとは言えないものであった。
【０００６】
そこで、本発明の課題は、指部材によって物体を倒したり、損傷したりする危険性が低く、物体を確実に把持することができるロボットハンドの把持制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決した本発明に係るロボットハンドの把持制御装置は、関節を介して接続された複数のリンク部材を備える複数の指部材と、複数の指部材が取り付けられたハンド部材と、を有し、複数の指部材における各関節の角度を制御して、把持対象物体を把持するロボットハンドの把持制御装置において、把持対象物体の形状を認識する物体形状認識手段と、認識した把持対象物体の形状に基づいて、把持対象物体に指部材が備える複数のリンク部材が接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、指部材の把持姿勢を算出する把持姿勢算出手段と、各関節を制御することにより、指部材を把持姿勢算出手段で求めた姿勢とする関節角度制御手段と、を備えるものである。
【０００８】
本発明に係るロボットハンドの把持制御装置においては、認識した把持対象物体の形状に基づいて、把持対象物体に指部材が備える複数のリンク部材が接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、指部材の把持姿勢を算出している。このため、指部材が把持対象物体を把持するために適した形状として、把持対象物体を把持することができる。したがって、指部材によって把持対象物体を倒したり、損傷したりする危険性を低くすることができるとともに、把持対象物体を確実に把持することができる。
【０００９】
また、上記課題を解決した本発明に係るロボットハンドの把持制御装置は、関節を介して接続された複数のリンク部材を備える複数の指部材と、複数の指部材が取り付けられたハンド部材と、を有し、複数の指部材における各関節の角度を制御して、把持対象物体を把持するロボットハンドの把持制御装置において、関節の少なくとも一部は、接続するリンク部材を連動させる連動関節であり、把持対象物体の形状を認識する物体形状認識手段と、認識した把持対象物体の形状に基づいて、把持対象物体に指部材が備える複数のリンク部材が所定数以上の接触点を持って接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、指部材の把持姿勢を算出する把持姿勢算出手段と、を備え、把持姿勢算出手段は、算出した把持姿勢の接触点が、所定数に満たない場合、把持姿勢算出に用いるハンド部材の把持対象物体に対する位置を変更する、ものである。
【００１０】
本発明に係るロボットハンドの把持制御装置においては、認識した把持対象物体の形状に基づいて、把持対象物体に指部材が備える複数のリンク部材が接触する際の関節角度をそれぞれ求め、求めた関節角度に応じて、指部材の把持姿勢を算出している。このため、指部材が把持対象物体を把持するために適した形状として、把持対象物体を把持することができる。したがって、指部材によって把持対象物体を倒したり、損傷したりする危険性を低くすることができるとともに、把持対象物体を確実に把持することができる。
【００１１】
また、関節の少なくとも一部は、接続するリンク部材を連動させる連動関節とされている。関節が連動関節であると、把持対象物体と指部材との接触点が、リンク部材の自由度よりも少なくなってしまい、絶対的にリンク部材の数と把持対象物体との接触点の数を確保するのが困難となる。
【００１２】
これに対して、本発明に係るロボットハンドの把持制御装置は、把持姿勢算出手段において、算出される指部材の前記把持対象物体に対する接触点が、所定数に満たないときに、ハンド部材の位置を変更するようにしている。このため、所定数、例えばリンク部材と同数の接触点が得られないときに、把持対象物体に対するハンド部材の位置を変更することにより、所定数の接触点をもって、指部材によって把持対象部材を把持することができる。
【００１３】
なお、本発明にいう所定数としては、モデル形状とロボットの拘束条件から幾何学的に求められる最大接触点数とするのが望ましい。このように、最大接触点数で把持することにより、最も安定した把持状態とすることができる。
【００１４】
ここで、把持姿勢算出手段は、予め定義された複数のモデル形状と、モデル形状に対するロボットハンドの拘束条件から定めた接触条件を記憶しており、認識した前記把持対象物体の形状に対して複数のモデル形状のいずれかを割り当て、割り当てたモデル形状に対応する接触条件を満たす把持姿勢を算出する態様とすることができる。
【００１５】
把持対象物体の形状が任意形状である場合、一般に、任意形状に対する把持姿勢を一義的に定義するのは困難である。そこで、本発明では、実際に想定され定義された物体形状をモデル化したモデル形状の１つに認識した物体を割り当て、ロボットハンドの拘束条件と物体モデルの形状から導き出した接触条件を満たす関節角度を算出することで、把持姿勢を決定する。このように、任意形状でなく、モデル化されたモデル形状であれば、ロボットハンドの拘束条件から接触点数や接触位置（方法）を幾何学的に算出することができ、安定した把持を行う接触条件を定めることができる。このような接触条件を定めることによって、安定した把持姿勢を算出することができる。また、モデル形状とロボットハンドの拘束条件とから幾何学的に求めた所定数以上の接触点における接触条件を用いることで、接触点数の多い安定した把持姿勢を算出することができる。
【００１６】
なお、本発明にいうモデル形状としては、直方体、円柱、球などの形状やコップの取っ手などとして用いられるリング形状などを例示することができる。さらには、これらの形状のほか、ロボットが把持する可能性を有する物体の形状をおおまかに分類したものとすることができる。
【００１７】
また、接触条件は、モデル形状と、ロボットハンドの拘束条件とから、把持対象物体と指部材とが所定数以上の接触点数を有する場合における物体に対する指部材の位置を幾何学的に求めた条件である態様とすることもできる。
【００１８】
さらに、把持対象物体の位置を認識する物体位置認識手段と、ハンド部材の位置を制御するハンド部材位置制御手段と、を備え、認識した把持対象物体の位置と、ハンド部材の位置との相対的な位置関係に基づいて、ハンド部材位置を制御する態様とすることもできる。
【００１９】
指部材が取り付けられたハンド部材の位置を制御するハンド部材位置制御手段が設けられており、ハンド部材の位置を制御することにより、指部材による把持対象物体の把持をより確実に行うことができる。また、指部材と把持対象物体とが最大数の接触点を有するように制御するにあたり、把持対象物体の位置と、ハンド部材との相対的な位置関係に基づいて、両者の接触点がより多くなるように、ロボットハンドを制御することができる。したがって、把持対象物体をさらに確実に把持することができる。
【００２０】
また、関節角度制御手段は、指部材が把持対象物体に対する接触点でそれぞれ同時に接触するように各関節を制御する態様とすることができる。
【００２１】
このように、指部材が把持対象物体に対する接触点でそれぞれ同時に接触することにより、最先に到達した指部材によって、把持対象物体を倒したり、傷つけたりするといった事態を防止することができる。
【００２２】
さらに、リンク部材に設けられ、把持対象物体を把持する際のリンク部材の把持力を検出する把持力検出手段を備え、関節角度制御手段は、把持力検出手段によって検出された把持力が、所定のしきい値を超えたときに、各関節の制御を終了する態様とすることもできる。
【００２３】
このように、把持力検出手段で検出された把持力が所定のしきい値を超えたときに、各関節の制御を終了することにより、確実な把持力を持ってロボットハンドの指で把持対象物体を把持することができる。
【発明の効果】
【００２４】
本発明に係るロボットハンドの把持制御装置によれば、指部材によって物体を倒したり、損傷したりする危険性が低く、物体を確実に把持することができる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して、本発明の好適な実施形態について説明する。図１は本発明の実施形態に係るロボットハンドの把持制御装置のブロック構成図、図２は、ロボットハンドの側面図、図３は、ロボットハンドの正面図である。
【００２６】
図１に示すように、本実施形態に係るロボットハンドの把持制御装置（以下「把持制御装置」という）は、ロボットハンド１、画像認識装置２、把持姿勢算出装置３、および制御装置４を備えている。
【００２７】
ロボットハンド１は、図２および図３に示すように、親指に相当する第一指１１、人差し指に相当する第二指１２、中指に相当する第三指１３、および薬指に相当する第四指１４を備えている。また、第一指１１には、第一指第一関節１１Ａ、第一指第二関節１１Ｂ、および第一指第三関節１１Ｃが設けられており、第二指１２には、第二指第一関節１２Ａ、第二指第二関節１２Ｂ、および第二指第三関節１２Ｃが設けられている。さらに、第三指１３には、第三指第一関節１３Ａ、第三指第二関節１３Ｂ、および第三指第三関節１３Ｃが設けられており、第四指１４には、第四指第一関節１４Ａ、第四指第二関節１４Ｂ、および第四指第三関節１４Ｃが設けられている。
【００２８】
第二指１２における付け根部分には、第二指１２を揺動させる第二指揺動関節１２Ｇが設けられている。揺動関節１２Ｇは、掌部１６に直交する水平軸周りに第二指１２を揺動可能としている。また、第三指１３および第四指１４におけるそれぞれの付け根部分には、第三指１３および第四指１４を揺動させる第三指揺動関節１３Ｇおよび第四指揺動関節１４Ｇが設けられている。揺動関節１３Ｇ，１４Ｇは、第三指１３および第四指１４を掌部１６に直交する水平軸周りにそれぞれ揺動させる。これらの各関節１１Ａ〜１１Ｃ，１２Ａ〜１２Ｃ，１３Ａ〜１３Ｃ，１４Ａ〜１４Ｃおよび揺動関節１２Ｇ〜１４Ｇには、図１に示すモータドライバ７に接続された図示しないモータが設けられている。
【００２９】
また、第一指１１における第一指第一関節１１Ａと第一指第二関節１１Ｂとの間には、第一指第一リンク１１Ｄが設けられ、第一指第二関節１１Ｂと第一指第三関節との間には、第一指第二リンク１１Ｅが設けられ、第一指第三関節１１Ｃの先端には、第一指第三リンク１１Ｆが設けられている。第二指１２における第二指第一関節１２Ａと第二指第二関節１２Ｂとの間には、第二指第一リンク１２Ｄが設けられ、第二指第二関節１２Ｂと第二指第三関節との間には、第二指第二リンク１２Ｅが設けられ、第二指第三関節１２Ｃの先端には、第二指第三リンク１２Ｆが設けられている。
【００３０】
さらに、第三指１３における第三指第一関節１３Ａと第三指第二関節１３Ｂとの間には、第三指第一リンク１３Ｄが設けられ、第三指第二関節１３Ｂと第三指第三関節との間には、第三指第二リンク１３Ｅが設けられ、第三指第三関節１３Ｃの先端には、第三指第三リンク１３Ｆが設けられている。第四指１４における第四指第一関節１４Ａと第四指第二関節１４Ｂとの間には、第四指第一リンク１４Ｄが設けられ、第四指第二関節１４Ｂと第四指第三関節との間には、第四指第二リンク１４Ｅが設けられ、第四指第三関節１４Ｃの先端には、第四指第三リンク１４Ｆが設けられている。さらに、第二指揺動関節１２Ｇと、第二指第一関節１２Ａとの間には、第二指揺動リンク１２Ｈが設けられている。同様に、第三指揺動関節１３Ｇと、第三指第一関節１３Ａとの間、および第四指揺動関節１４Ｇと、第四指第一関節１４Ａとの間には、それぞれ図示しない第三指揺動リンクおよび第四指揺動リンクが設けられている。
【００３１】
また、ロボットハンド１は、本発明のハンド部材である第一掌部１５および第二掌部１６を有している。第一掌部１５には、第一指１１が取り付けられており、第一指１１を水平軸周りに回転可能に支持している。また、第一掌部１５は、鉛直軸周りに回転可能とされており、第一掌部１５とともに第一指１１が鉛直軸周りに回転可能とされている。第二掌部１６には、第二指１２〜第四指１４が取り付けられており、第二指１２〜第四指１４を鉛直軸周りに回転可能に支持している。また、第一指１１〜第四指１４の各リンク１１Ｄ〜１１Ｆ，１２Ｄ〜１２Ｆ，１３Ｄ〜１３Ｆ，１４Ｄ〜１４Ｆには、それぞれ緩衝パッド（柔軟肉）１７が取り付けられている。
【００３２】
このように、第一指１１は自由度４とされており、他の第二指１２〜第四指１４は自由度が４とされ、ロボットハンド１の全体として１６の自由度を有している。また、ロボットハンド１で物体を把持する際には、第一指１１と第三指１３とが対向する状態となるように、第一指１１が前側に回り込む。こうして、図４に模式的に示すように、第一指１１と第三指１３とで、把持対象物体Ｍを把持する。
【００３３】
図１に示す画像認識装置２は、撮像手段となるカメラと、カメラで撮影された画像を処理する画像処理部とを有している。カメラで撮像された画像を画像処理部で画像処理することにより、画像中に映される把持の対象となる物体（以下「把持対象物体」という）の位置、形状、およびサイズを認識する。画像認識装置２は、認識した把持対象部物体の位置、形状、およびサイズを把持姿勢算出手段である把持姿勢算出装置３に出力する。
【００３４】
本実施形態では、画像認識装置２が、物体形状認識装置および物体位置認識装置として機能している。画像認識装置２は、ともにカメラで撮像された画像を画像処理部で画像処理し、画像中に映し出される把持対象物体の形状とサイズ、および位置を認識する。
【００３５】
把持姿勢算出装置３は、画像認識装置２から出力された把持対象物体の形状に基づいて、ロボットハンドによって物体を把持するために好適なロボットハンドの把持姿勢を目標関節角として算出する。把持姿勢算出装置３は、把持対象物体のモデル形状に対応した把持計算方法を記憶している。
【００３６】
把持姿勢算出装置３は、モデル形状として、円柱、球、および直方体の形状について、これらのモデル形状がロボットハンドの拘束条件から定めた接触条件を、把持対象物体の形状がこれらのモデル形状であるときの把持計算方法として記憶している。具体的な把持計算方法については、後に説明する。把持姿勢算出装置３は、算出したロボットハンドの把持姿勢（目標関節角）を制御装置４に出力する。
【００３７】
制御装置４には、把持姿勢算出装置３、エンコーダ・ポテンショメータ５、触覚センサ６、およびモータドライバ７が接続されている。エンコーダ・ポテンショメータ５は、ロボットハンド１における第一指１１〜第四指１４の位置を検出しており、検出した第一指１１〜第四指１４の各リンクの関節角を制御装置４に出力している。また、触覚センサ６は、図２に示す第一指１１〜第四指１４の第三関節１１Ｃ〜１４Ｃに取り付けられた緩衝パッド１７に埋め込まれた三軸力覚センサである。触覚センサ６は、ロボットハンド１が物体を把持した際の触覚を把持反力で検出しており、検出した把持反力を制御装置４に出力している。
【００３８】
制御装置４は、エンコーダ・ポテンショメータ５から出力された第一指１１〜第四指１４の各リンクの関節角と、把持姿勢算出装置３から出力された目標関節角に基づいて、フィードバック制御を行っている。このフィードバック制御により、ロボットハンド１の各関節に設けられたモータを駆動するモータドライバ７に角度指令を出力している。また、制御装置４は、触覚センサ６から出力された把持反力に基づいて、ロボットハンド１の把持位置の誤差を修正するように、モータドライバ７に角度指令または速度指令を出力している。
【００３９】
以上の構成を有する本実施形態に係るロボットハンドの把持制御装置における制御の手順について説明する。図５は、本実施形態に係るロボットハンドの把持制御装置の制御手順を示すフローチャートである。
【００４０】
図５に示すように、ロボットハンドの把持制御を行う際には、まず把持対象物体の位置および形状を認識する（Ｓ１）。把持対象物体の位置および形状を認識する際には、画像認識装置２によって把持対象物体を撮影するとともに、所定の画像処理を施して、把持対象物体の位置および形状を認識する。
【００４１】
把持対象物体の位置および形状を認識したら、把持姿勢算出装置３において、把持計算方法を選択する（Ｓ２）。把持計算方法は、把持対象物体が円柱、球、直方体のいずれかによって異なり、ここでは、把持対象物体に応じた計算方法を選択する。把持計算方法を選択したら、連動関節があるか否かを判断する（Ｓ３）。ここで、連動関節があると判断した場合には、ステップＳ５に進んで相対位置の設定を行うが、本実施形態に係るロボットハンド１には、連動関節が設けられていないことから、そのまま目標関節角の算出を行う（Ｓ４）。連動関節を有する例については第二の実施形態において説明する。
【００４２】
目標関節角の算出は、各指１１〜１４が、把持対象物体に対して最大数の接触点を有するようにして行われる。この目標関節角は、把持対象物体の形状を、円柱、球、直方体のいずれかのモデル形状に割り当て、モデル形状とロボットハンド１との拘束条件から定められる接触条件を満たすように算出される。この目標関節角を求めることにより、ロボットハンド１の把持姿勢が決定される。
【００４３】
ロボットハンドの拘束条件は、モデル形状との関係で決められ、たとえばモデル形状とロボットハンド１との接触点数が最も多くなることが条件とされる。このモデル形状とロボットハンドの拘束条件と対応する接触条件が定められている。ここで、把持対象物体がそれぞれのモデル形状に割り当てられる形状である場合について説明する。
【００４４】
把持対象物体の形状が円柱である場合、主に第一指１１および第三指１３の把持力によって把持対象物体を把持する。円柱からなる把持対象物体を把持するにあたり、各指が、把持対象物体に最大接触点数を持って接触する際に最も安定した把持状態となる。したがって、原則的には、各指が、把持対象物体に最大接触点数を持って接触することがここでの拘束条件となり、最大接触点数が接触条件となる。但し、円柱の径がロボットハンド１に対して著しく小さい場合などには、最大接触点数よりも少ない接触点数で把持することが拘束条件となり、この接触点数が接触条件となることもある。
【００４５】
把持対象物体を把持する際の最大の接触点数は、通常、各指におけるそれぞれのリンクの数に相当する。この把持対象物の把持方法について、ロボットハンドの指を一般化して説明する。第三指１３に対応する指として、ｎ個のリンクを有する上指を用い、第一指１１に対応する指として、３個のリンクを有する下指を用いて説明する。上記ロボットハンド１の第三指１３が上指２１に相当する場合には、上指２１におけるｎは３となる。このように、２本の指で把持対象物体としての円柱を把持する状態の横断平面の概略図を図６に示す。
【００４６】
上指２１は、第一リンク２３Ａ〜第ｎリンク２３Ｎを有しており、掌部２５と第一リンク２３Ａとは第一関節２４Ａで接続され、第二リンク２３Ｂ〜第ｎリンク２３Ｎは、互いに隣接するリンク同士が第二関節２４Ｂ〜第ｎ関節２４Ｎで接続されている。また、下指２２は、第一リンク２６Ａ〜第三リンク２６Ｃを有しており、掌部２５と第一リンク２６Ａとは第一関節２７Ａで接続されている。第一リンク２６Ａと第二リンク２６Ｂとは第二関節２７Ｂで接続され、第二リンク２６Ｂと第三リンク２６Ｃとは、第三関節２７Ｃで接続されている。
【００４７】
２本の指２１，２２で把持対象物体Ｍを把持する際、図６に示すように、上指２１では、第一リンク２３Ａ、第二リンク２３Ｂ、・・・、第ｎリンク２３Ｎがそれぞれ把持対象物体Ｍに当接する。また、下指２２では、第一リンク２６Ａ〜第三リンク２６Ｃが把持対象物体Ｍに当接する。
【００４８】
このように、指２１，２２のすべてのリンクが把持対象物体Ｍに当接するとして、上指２１の付け根を座標原点（ｘ０，ｙ０）とするｘ−ｙ座標系を設定する。また、把持対象物体Ｍにおける底面の中心の座標を（ｘｃ，ｙｃ）とする。上指２１および下指２２で把持対象物体Ｍを把持する際、最も安定した把持パターンとなるのは、この横断平面で上指２１および下指２２のすべてのリンクが把持対象物体Ｍに接触する状態である。ここでは、把持対象物体Ｍの底面の中心座標が与えられていることから、この中心座標を利用して、上指２１および下指２２における各リンクの目標関節角を算出する。
【００４９】
いま、把持対象物体Ｍの底面の半径をＲとする。把持対象物体における底面の中心座標（ｘｃ，ｙｃ）は、画像認識の結果によって得ることができる。
【００５０】
また、上指２１は、ｎ個のリンクから構成され、各リンクを接続する関節が独立して動くアクチュエータ（モータ）を有するリンク系である。ここで、ｉ番目のリンクが円柱に接触する幾何条件は、下記（３）式で表すことができる。
【００５１】
（円柱中心ｃから第一ｉリンクの中心線までの距離）＝Ｒ＋ｔｉ  ・・・（３）
ここで、ｔｉは、リンクｉの中心線から接触側の外縁までの距離である、
次に、第一リンク２３Ａが円柱に接触するときのＹ軸に対する第一リンク２３Ａの角度（目標関節角）θ１を求める。目標関節角θ１を求めるための式として、点−直線距離の計算式に基づいて、下記（４）式が成り立つ。なお、第ｎリンクの目標関節角θｎは、第ｎ関節のなす角度であり、第ｎリンクと第（ｎ−１）リンクとがなす角度である。
【００５２】
（ｘｃ−ｘ０）cosθ１−（ｙｃ−ｙ０）sinθ１＝Ｒ１  ・・・（４）
ここで、Ｒ１＝Ｒ＋ｔ１
また、第二リンク２３Ｂに対して、同様の方法で下記（５）式が導出される。
【００５３】
（ｘｃ−ｘ１）cos（θ１＋θ２）−（ｙｃ−ｙ１）sin（θ１＋θ２）＝Ｒ２  ・・・（５）
ここで、（ｘ１，ｙ１）は、第二関節２４Ｂの回転中心座標で、下記（６）式および（７）式で算出される。
【００５４】
ｘ１＝ｘ０＋Ｌ１sinθ１  ・・・（６）
ｙ１＝ｙ０＋Ｌ１cosθ１  ・・・（７）
ここで、Ｌ１は、第一リンクの長さ
同様に、第ｎリンクの中心までの距離は、下記（８）式によって求めることができる。
【００５５】
（ｘｃ−ｘｎ−１）cos（θ１＋θ２＋・・・＋θｎ）−（ｙｃ−ｙｎ−１）sin（θ１＋θ２＋・・・＋θｎ）＝Ｒｎ  ・・・（８）
ここで、（ｘｎ−１，ｙｎ−１）は、第ｎ関節の回転中心座標で、下記（９）式および（１０）式を用いて求めることができる。
【００５６】
ｘｎ−１＝ｘｎ−２＋Ｌｎ−１sin（θ１＋θ２＋・・・＋θｎ−１）  ・・・（９）
ｙｎ−１＝ｙｎ−２＋Ｌｎ−１cos（θ１＋θ２＋・・・＋θｎ−１）  ・・・（１０）
ここで、Ｌｎ−１は、第Ｌｎ−１リンクの長さ
上記（４）式を変形すると、下記（１１）式となる。この下記（１１）式から、目標関節角θ１を求めることができる。但し、目標関節角θ１は、（１１）式における２つの解のうち、小さい方の値とする。
【００５７】
【数１】
2006026875.tif 000003
同様に、上記（５）式を変形すると、下記（１２）式となる。この下記（１２）式から、第一リンク２３Ａに対する第二リンク２３Ｂの角度である目標関節角θ２を求めることができる。
【００５８】
【数２】
2006026875.tif 000004
さらに、同様に上記（８）式を変形すると、下記（１３）式となる。この下記（１３）式から、第ｎリンクの目標関節角θｎを求めることができる。
【００５９】
【数３】
2006026875.tif 000005
こうして、上指２１の各リンク２３Ａ〜２３Ｎに対する目標関節角θ１〜θｎの算出を行う。ここで求められた目標関節角θ１〜θ３となるように、各リンク１３Ｄ〜１３Ｆにおけるモータをモータドライバ７で駆動させることにより、円柱である把持対象物体を把持するために好適な把持形状となるように、第三指１３を制御することができる。
【００６０】
上指２１の各リンク２３Ａ〜２３Ｎに対する目標関節角θ１〜θｎの算出を行ったら、同様の方法によって下指２２の各リンク２６Ａ〜２６Ｃに対する目標関節角の算出を行う。このようにして、ロボットハンドの各指の把持形状を、円柱である把持対象物体を把持するために好適な形状とすることができる。
【００６１】
次に、把持対象物体の形状が球である場合の目標関節角の算出について説明する。把持対象物体が球体である場合には、第一指１１〜第四指１４の４本の指で包み込みを行って把持する態様とするのが好適となる。ここでは、図２に示すロボットハンドを用いた例について説明する。
【００６２】
球体を包み込みで把持する場合、第一指１１と第三指１３とにおける各リンクの目標関節角の計算は、把持対象物体が円柱である場合と同様であるので、その詳細については説明を省略する。ここでは、第二指１２および第四指１４の目標関節角を算出する手順を、図７を参照して具体的に説明する。図７は、把持対象物体としての球を把持する状態の概略を示す正面図である。
【００６３】
第二指１２および第四指１４についても、各指に設けられたリンクの数だけ、把持対象物体と接触するときに、最も安定した把持状態とすることができる。したがって、原則的には、各指のりンクの数の接触点を有する状態が球に対するロボットハンド１の拘束条件となり、この接触点の数が接触条件となる。但し、球がロボットハンド１よりも著しく小さい場合などには、接触点が各指のリンクの数よりも少なくなることもある。
【００６４】
図７に示すように、第二指１２と第三指１３との間が角度θ０であるとすると、第二指１２における各リンクの目標関節角は、次のように計算される。まず、第二指１２の中心線を通って、掌に垂直な平面を平面Ｐと定義する。また、球からなる把持対象物体Ｍの断面積が最大となるように、掌と平行な面で球を切断した際の球の切断面に現れる円を第一円Ｃ１とし、平面Ｐと球表面の交線を第二円Ｃ２とする。包み込みの姿勢では、第二指１２の各リンクは第二円Ｃ２に接触する。
【００６５】
また、第二円Ｃ２の半径と中心Ｅの座標は、次のようにして求められる。まず、ＸＺ平面上において、第一円Ｃ１と第二指１２の中心線との交点は、下記（１４）式および（１５）式に示す方程式の解として求めることができる。
【００６６】
（ｘ−ｘｃ）２＋（ｚ−ｚｃ）２＝Ｒ２  ・・・（１４）
ｘ−ｘＨ０＝ｔａｎθ０（ｚ−ｚ０）  ・・・（１５）
但し、Ｈ０点は第二指１２の根元関節の中心点である。
【００６７】
上記（１５）式を（１４）式に代入して整理することにより、下記（１６）式を得ることができる。
【００６８】
Ａｚ２＋Ｂｚ＋Ｃ＝０  ・・・（１６）
ここで、Ａ＝ｔａｎ２θ０＋１
Ｂ＝２（Ｓ・ｔａｎθ０−ｚｃ）
Ｃ＝−ｔａｎθ０ｚＨ０＋ｘＨ０−ｘｃ
したがって、第一円Ｃ１と第二指１２の中心線との交点の座標（ｘ１，２、ｚ１，２）は、下記（１７）式および（１８）式に示す座標となる。
【００６９】
【数４】
2006026875.tif 000006
また、第一円Ｃ１の半径ｒは下記（１９）式のように求めることができる。さらに、第二円Ｃ２の中心点Ｅの座標（ｘＥ，ｙＥ，ｚＥ）は、下記（２０）式〜（２２）式によって表すことができる。
【００７０】
ｒ＝［（ｘ１−ｘ２）２＋（ｚ１−ｚ２）２］１／２／２  ・・・（１９）
ｘＥ＝（ｘ１＋ｘ２）／２  ・・・（２０）
ｙＥ＝ｙｃ  ・・・（２１）
ｚＥ＝（ｚ１＋ｚ２）／２  ・・・（２２）
これらの条件の下、平面Ｐで円柱と同じ方法により、第二指第一リンク１２Ｄが第二円Ｃ２に接触する条件を求めると、この条件は、下記（２３）式のように導出される。
【００７１】
Ｓｘ・cosθＨ１＋Ｓｙ・sinθＨ１＝ＲＨ１  ・・・（２３）
ここで、Ｓｘ＝ｙＥ−ｙＨ０
Ｓｙ＝（ｘＨ０−ｘＥ）sinθ０＋（ｘＨ０−ｚＥ）cosθ０
上記（２３）式から、下記（２４）式を導出し、（２４）式によって第二指第一リンク１２Ｄの目標関節角θＨ１を算出する。
【００７２】
【数５】
2006026875.tif 000007
同様に、（２３）式から、下記（２５）式を導出し、（２５）式によって第二指第二リンク１２Ｅの目標関節角θＨ２を算出し、さらには、第二指第三リンク１２Ｆの目標関節角θＨ３を算出する。なお、指がさらに多数のリンクを有し、第Ｎリンクまである場合には、下記（２６）式によって、第Ｎリンクの目標関節角θＨｎを算出する。
【００７３】
【数６】
2006026875.tif 000008
こうして、第二指１２の各リンク１２Ｄ〜１２Ｆに対する目標関節角θＨ１〜θＨ３の算出を行う。ここで求められた目標関節角θＨ１〜θＨ３となるように、各リンク１２Ｄ〜１２Ｆにおけるモータをモータドライバ７で駆動させることにより、円柱である把持対象物体を把持するために好適な把持形状となるように、第二指１２を制御することができる。
【００７４】
第二指１２の各リンク１２Ｄ〜１２Ｆに対する目標関節角θＨ１〜θＨ３の算出を行ったら、同様の方法によって第四指１４の各リンク１４Ｄ〜１４Ｆに対する目標関節角の算出を行う。このようにして、ロボットハンドの各指の把持形状を、球からなる把持対象物体を把持するために好適な形状とすることができる。
【００７５】
続いて、把持対象物体の形状が直方体である場合の目標関節角の算出について説明する。ここでも、上指がＮ個のリンクを有する一般的なロボットハンドについて説明する。図２に示すロボットハンド１では、上指２１には第二指１２〜第四指１４が対応し、そのときのリンクの数ｎは３である。また、下指２２には第一指１１が対応する。
【００７６】
把持対象物体が直方体である場合には、ロボットハンドで把持した際の最も安定した把持姿勢は、図８に示すように、第一リンク以外のリンクがすべて把持対象物体Ｍに接触している状態である。したがって、各指と把持対象物体Ｍとの接触点数は、リンクの総数から１を減じた数の接触点を持って把持するのが、拘束条件となり、この接触点の数が接触条件となる。但し、直方体がロボットハンド１に対して著しく大きい場合などには、リンクの総数からさらに多くの数を減じた数の接触点を持って把持するのが拘束条件となる。
【００７７】
図８に示すように、把持対象物体Ｍと上指２１における第ｎリンクとの距離ｔｎ（ｎ＝２，３，…）がすべて等しいと仮定すると、第二リンク２３Ｂおよび第三リンク２３Ｃは、水平な姿勢をとることになる。したがって、第二リンク２３Ｂと第三リンク２３Ｃとの間の角度（第三リンク２３Ｃの目標関節角）は０となる。
【００７８】
また、第一リンク２３Ａの目標関節角θ１は、下記（２７）式から導出される（２８）式を用いて算出される。
【００７９】
【数７】
2006026875.tif 000009
この結果、第二リンク２３Ｂの目標関節角θ２は、第一リンク２３Ａの目標関節角θ１を用いて下記（２９）式によって求められる。また、第ｎリンク２３Ｎの目標関節角θｎは０となる。
【００８０】
θ２＝π／−θ１  ・・・（２９）
こうして、上指２１の各リンク２３Ａ〜２３Ｎに対する目標関節角θ１〜θｎの算出を行う。ここで求められた目標関節角θ１〜θｎとなるように、各リンク２３Ａ〜２３Ｎにおけるモータをモータドライバ７で駆動させることにより、円柱である把持対象物体を把持するために好適な把持形状となるように、上指２１を制御することができる。
【００８１】
上指２１の各リンク２３Ａ〜２３Ｎに対する目標関節角θ１〜θｎの算出を行ったら、同様の方法によって下指２２の各リンクに対する目標関節角の算出を同様の方法によって行う。このようにして、ロボットハンドの各指の把持形状を、直方体からなる把持対象物体を把持するために好適な形状とすることができる。
【００８２】
このように、本実施形態に係るロボットハンドの把持制御装置によれば、把持対象物体の位置および形状を認識し、認識した把持対象物体の形状に基づいて、把持対象物体に指部材が備える複数のリンク部材が接触する際の関節角度をそれぞれ求めている。そして、求めた関節角度に応じて、指部材の把持姿勢を算出している。したがって、指部材が把持対象物体を把持するために適した形状として、把持対象物体を把持することができ、もって指部材によって把持対象物体を倒したり、損傷したりする危険性を低くすることができるとともに、把持対象物体を確実に把持することができる。
【００８３】
また、把持姿勢の算出を行う際に、把持対象物体に直方体や円柱などのモデル形状を割り当て、このモデル形状に対応する接触条件を満たす把持姿勢を算出している。このため、ロボットハンドの拘束条件から接触点数や接触位置を幾何学的に算出することができ、安定した把持を行う接触条件を定めることができる。
【００８４】
次に、本発明の第二の実施形態について説明する。本実施形態では、ロボットハンドとして、連動関節を有するものを用いている。ここで、連動関節を有するロボットハンドについて説明する。図９は、連動関節を有するロボットハンドの側面図である。
【００８５】
図９に示すように連動関節を有するロボットハンド１０は、第二指１２〜第四指１４の関節のうち、第二関節と第三関節とが連動関節３０となっている。その他の点については、図２に示すロボットハンド１と同様の構成を有している。連動関節３０は、第二関節１２Ｂ〜１４Ｂと第三関節１２Ｃ〜１４Ｃとの間に、リンク部材３１が設けられている。
【００８６】
また、第二関節１２Ｂ〜１４Ｂには、モータが設けられているが、第三関節１２Ｃ〜１４Ｃには、モータが設けられていない。そして、第二関節１２Ｂ〜１４Ｂに設けられたモータが回転駆動することにより、第二関節１２Ｂ〜１４Ｂが回転する。また、第二関節１２Ｂ〜１４Ｂが回転することにより、その回転がリンク部材３１を介して第三関節１２Ｃ〜１４Ｃに伝達される。こうして、第三関節１２Ｃ〜１４Ｃも第二関節１２Ｂ〜１４Ｂとともに回転するようになっている。したがって、ロボットハンド１０における第二指１２〜第四指１４では、第二関節１２Ｂ〜１４Ｂの関節角度と、第三関節１２Ｃ〜１２Ｄの関節角度とは同一となる。
【００８７】
本実施形態に係るロボットハンド１０は、連動関節が設けられていることにより、第二指１２〜第四指１４の自由度がそれぞれ３となっている。このため、ロボットハンド１０としての自由度は、第一の実施形態に係るロボットハンド１の自由度より少ない１３となっている。
【００８８】
次に、本実施形態に係る把持制御装置における制御の手順について説明する。図１０は、図１におけるステップＳ５の制御手順を示すフローチャートである。
【００８９】
本実施形態に係るロボットハンド１０においては、図１に示すように、上記第一の実施形態と同様、まず把持対象物体の位置および形状を認識し（Ｓ１）、把持姿勢算出装置３において、把持計算方法を選択する（Ｓ２）。次に、把持計算方法を選択したら、連動関節があるか否かを判断する（Ｓ３）。その結果、連動関節がないと判断したら、上記第一の実施形態と同様に、目標関節角の算出を行う（Ｓ４）。一方、連動関節があると判断したときには、把持対象物体とロボットハンド１０との相対的な位置関係の設定が行われる（Ｓ５）。両者の位置関係の設定は、次のようにして行われる。
【００９０】
図１０に示すように、両者の位置関係の設定を行う際に、まず、把持対象物体とロボットハンド１０との相対位置の初期値を設定する（Ｓ６）。両者の相対位置の初期値は、画像認識装置２で認識された把持対象物体の位置と、画像認識装置におけるカメラとロボットハンドの相対的な位置関係から求められる。
【００９１】
把持対象物体とロボットハンド１０との相対位置の初期値を設定したら、両者の相対位置に基づいて、目標関節角が算出可能であるか否かの判断を行う（Ｓ７）。目標関節角の算出が可能であるか否かは、指１２の把持対象物体に対する接触点が、所定数、たとえばリンク部材と同数以上となるような目標関節角を求めることができるか否かによって判断される。
【００９２】
その判断を行った結果（Ｓ８）、目標関節角の算出が可能であると判断したならば、図１のステップＳ４に進んで目標関節角を算出する（Ｓ４）。一方、目標関節角の算出が不可能であると判断したら、把持対象物体Ｍに対する掌部１５，１６、すなわちロボットハンド１０の相対位置の初期値を変更する（Ｓ９）。このステップＳ７からＳ９までの処理について、図１１を参照して説明する。この処理についても、連動関節を有しない場合と同様、把持対象物体の形状が円柱、球、直方体の場合でそれぞれ異なる。
【００９３】
まず、把持対象物体の形状が円柱体である場合について説明する。図１１は、把持対象物体の形状が円柱である場合に、目標関節角を設定する手順を示すフローチャートである。また、図１１に示すフローチャートの説明について、図１２を参照して説明する。図１２は、連動関節を有する指（第二指に相当）が円柱体からなる把持対象物体を把持する状態を示す横断面図である。
【００９４】
図１２に示すように、たとえば第二指１２に相当する指４１が円柱体からなる把持対象物体Ｍに接触する場合を用いて説明する。指４１は、第一リンク４２、第二リンク４３、および第三リンク４４を備えている。また、第一リンク４２は、掌４５に取り付けられ、第一リンク４２と掌４５との間には第一関節４６が設けられている。さらに、第一リンク４２と第二リンク４３との間には、第二関節４７が設けられ、第二リンク４３と第三リンク４４との間には、第三関節４８が設けられている。このうちの第二関節４７および第三関節４８が連動関節となっている。
【００９５】
指に連動関節が設けられている場合、リンク系の自由度はリンクの数に対して１つ減る。このため、ロボットハンドと把持対象物体との位置関係いかんでは、指における全リンクが把持対象物体に接触するという条件を満たさないことがある。そこで、図１２に示すように、目標関節角の算出可能判断を行う際には、最初に、第一リンク４２の軸に対する角度である第一リンク４２の目標関節角θ１を算出する（Ｓ１１）。いま、第二関節４７と第三関節４８とは連動関節であることから、第三リンク４４の目標関節角θ３は、第二リンク４３の目標関節角θ２に対して、下記（３０）式の関係を有する。
【００９６】
θ３＝γθ２  ・・・（３０）
但し、γ＞０
したがって、表示される平面内では自由度数が２であるので、任意な物体位置に対して、指４１が３箇所で接触することは一般的に不可能である。そこで、三箇所で接触する条件を満たすために、適宜関節角とハンド座標系における円柱中心位置を設定する。
【００９７】
第一リンク４２と第二リンク４３とが、それぞれ円柱である把持対象物体に接触する条件は、上記（４）式および（５）式で表される。また、第三リンク４４が円柱に接触する条件は、下記（３１）式で表すことができる。
【００９８】
（ｘｃ−ｘ２）cos［θ１＋（１＋γ）θ２］−（ｙｃ−ｙ２）sin［θ１（１＋γ）θ２］＝Ｒ３  ・・・（３１）
上記（４）式、（５）式、および（３１）式に含まれる未知数は、θ１、θ２、ｘｃ、ｙｃの４つである。このため、この３式の連立方程式を解いたとしても、解の数は無数にある。ところで、第一リンク４２の目標関節角θ１は、把持対象物体の大きさに依存している。把持対象物体の大きさが大きいほど、第一リンク４２の目標関節角θ１は小さくなる。このため、第一リンク４２の目標関節角θ１は、下記（３２）式で求めることができる。
【００９９】
θ１＝ａ−ｂ・Ｒ  ・・・（３２）
ここで、ａ，ｂは、正の定数
上記（３２）式を上記（４）式、（５）式、および（３１）式と連立させることにより、４つの式から４つの解を求めるため、唯一解が存在することになるため、そのままｙｃを求めることもできる。ところが、複雑な三角関数が含まれることから、解析的な解を求めるのは困難である。そこで、数値的な算出方法をとることができる。
【０１００】
そのため、ｙｃを探索変数として、ある初期値から出発して、（４）式からｘｃを計算し、さらに、（５）式から、第二リンク４３が第一リンク４２に対してなす角度である第二リンク４３の目標関節角θ２を求める。そのために、まずｙｃの初期値を設定する（Ｓ１２）。ｙｃの初期値の大きさは、ハンドの大きさから適宜設定することができるが、たとえば１００ｍｍ程度とすることができる。
【０１０１】
ｙｃの初期値を決定したら、第二リンクの目標関節角θ２を算出する（Ｓ１３）。第二リンク４３の目標関節角θ２を算出するにあたり、まず、（４）式を整理し、下記（３３）式でｘｃを再計算する。
【０１０２】
ｘｃ＝ｘ０＋［（ｙｃ−ｙ０）sinθ１＋Ｒ１］／cosθ１  ・・・（３３）
次に、（５）式を整理して下記（３４）式とする。
【０１０３】
Ａcosα＋Ｂsinα＝Ｃ  ・・・（３４）
ここで、Ａ＝ｘｃ−ｘ１、Ｂ＝−（ｙｃ−ｙ１）、Ｃ＝Ｒ２、α＝θ１＋θ２
上記（３４）式を解くと、下記（３５）式となる。
【０１０４】
【数８】
2006026875.tif 000010
また、θ２は、下記（３６）式で求めることができる。
【０１０５】
θ２＝α−θ１  ・・・（３６）
こうして、第二リンク４３の目標関節角θ２を求めたら、θ１，θ２，ｘｃ，ｙｃを（３１）式を変形して得られる下記（３７）式に代入して、点Ｃ（ｘｃ，ｙｃ）から第三リンク４４までの距離ｄを求める（Ｓ１４）。
【０１０６】
ｄ＝｜（ｘｃ−ｃ２）cos［θ１＋（１＋γ）θ２］−（ｙｃ−ｙ２）sin［θ１＋（１＋γ）θ２］  ・・・（３７）
上記（３７）式で求めた距離ｄが、Ｒ３と等しければ、安定な把持条件が満たされ、θ２、ｘｃ、ｙｃは（４）式、（５）式、および（３１）式を満たす解となる。そこで、上記（３７）式で求めた距離ｄと、上記（３１）式で求めたＲ３とを下記（３８）式によって比較する（Ｓ１５）。
【０１０７】
｜ｄ−Ｒ３｜＜ε  ・・・（３８）
ここで、εは所定の許容誤差である。
【０１０８】
その結果、上記（３８）式が成り立つ場合には、その時点で計算を終了し、ｘｃ、ｙｃ、およびθ２を解として決定する。また、第一リンク４２の目標関節角θ１は、（３２）式で求めた値を用い、第三リンク４４の目標関節角θ３は、（３０）式で自動的に決定される。そして、他の指の姿勢を算出する（Ｓ１６）。ここでは、第二指の把持姿勢についての説明を例としているが、他の第三指１３、および第四指１４でも同様にして把持姿勢を算出することができる。また、第一指１１については、連動関節を有していないので、上記した連動関節を有しない場合の姿勢の算出方法により、その姿勢を算出することができる。そうして、すべての指の姿勢も算出し、得られた把持対象物体の中心位置Ｃ（ｘｃ，ｙｃ）および目標関節角θ１，θ２を設定する。
【０１０９】
一方、上記（３８）式が成り立たない場合には、下記（３９）式に示すように、ｙｃを初期値から次のように変更し、繰り返して計算を行う。
【０１１０】
ｙｃ（ｉ＋１）＝ｙｃ（ｉ）＋Δｙｃ  ・・・（３９）
ここで、Δｙｃ＝ｋ（Ｒ３−ｄ）
ｋは、ｋ＞０の調整ゲインである。
【０１１１】
このように、把持対象物体の初期位置を設定してロボットハンドが安定した状態で把持可能であるか否かを判断し、可能である場合には、そのときの目標関節角を設定する。また、不可能である場合には、把持対象物体のハンド座標系での相対位置の初期位置を調整することにより、安定した状態で把持可能となるようにする。実際には、把持対象物体の絶対位置は、画像認識によって得られているので、ハンド座標系での物体中心に相対位置が上記の値となるように、絶対空間内におけるハンド座標系原点の位置を、アームを動かすことによって調整する。したがって、ロボットハンドによって把持対象物体を安定した状態で把持することができる。
【０１１２】
次に、連動関節を備える指を有するロボットハンドで把持する把持対象物体の形状が球である場合について説明する。図１３は、把持対象物体の形状が球である場合に、目標関節角を設定する手順を示すフローチャートである。
【０１１３】
球体を包み込みで把持する場合、第一指１１と第三指１３の姿勢計算は、円柱体の場合と同様である。したがって、ここでは、第二指１２および第四指１４の把持姿勢について図１４を参照して説明する。
【０１１４】
第三指１３の姿勢を計算した時点で、把持対象物体Ｍの中心Ｅはすでに定められている。このため、２自由度のリンク系からなる第二指１２は、通常、最大２箇所で接触可能となる。そこで、第二指１２における第二リンク１２Ｅおよび第三リンク１２Ｆが接触する条件を算出する。
【０１１５】
そのため、まず、第二指１２の中心線を通って、掌に垂直な平面で把持対象物体を切断したときに現れる円の中心Ｅの半径と座標とを算出する（Ｓ２１）。この円の半径は、上記（１９）式のよって算出することができ、円の中心Ｅの座標（ｘＥ，ｙＥ，ｚＥ）は、それぞれ上記（２０）式〜（２２）式によって算出することができる。
【０１１６】
次に、第一リンク１２Ｄの目標関節角θＨ１および第二リンク１２Ｅの目標関節角θＨ２の初期値を設定する（Ｓ２２）。これらの初期値としては、予め設定しておいた値を用いることができる。
【０１１７】
次に、把持対象物体と第二リンク１２Ｅとの間の隙間ｅ１、および把持対象物体と第三リンク１２Ｆとの間の隙間ｅ２とを算出する（Ｓ２３）。いま、把持対象物体Ｍの中心Ｅから第二リンク１２Ｅの中心線までの距離ｄ１は、下記（４０）式によって算出することができる。
【０１１８】
ｄ１＝Ｕｘ・cos（θＨ１＋θＨ２）＋Uｙ・sin（θH１＋θH２）  ・・・（４０）
ここで、Ｕｘ＝ｙＥ−ｙＨ１
Ｕｙ＝（ｘＨ１−ｘＥ）sinθ０＋（ｚＨ１−ｚＥ）cosθ０
また、第三リンク１２Ｆの中心線までの距離ｄ２は、下記（４１）式によって算出される。
【０１１９】
ｄ２＝Ｖｘ・cos［θＨ１＋（１＋γ）θＨ２］＋Ｖｙ・sin［θＨ１＋（１＋γ）θＨ２］  ・・・（４１）
ここで、Ｖｘ＝ｙＥ−ｙＨ２
Ｖｙ＝（ｘＨ２−ｘＥ）sinθ０＋（ｚＨ２−ｚＥ）cosθ０
したがって、第二リンク１２Ｅと把持対象物体との間の隙間ｅ１および第三リンクと把持対象物体との隙間ｅ２は、それぞれ下記（４２）式および（４３）式によって求めることができる。
【０１２０】
ｅ１＝ｄ１−ｒ−ｔ２  ・・・（４２）
ｅ２＝ｄ２−ｒ−ｔ３  ・・・（４３）
ここで、ｔ２は、第二リンクの幅の１／２、ｔ３は、第三リンクの幅の１／２である。
【０１２１】
この隙間ｅ１とｅ２とが同時に０となることにより、第二リンク１２Ｅと第三リンク１２Ｆとが同時に把持対象物体に接触することになる。そこで、下記（４４）式および（４５）式が成り立つか否かを判断する（Ｓ２４）。
【０１２２】
｜ｅ１｜＜ε  ・・・（４４）
｜ｅ２｜＜ε  ・・・（４５）
その結果、上記（４４）式および（４５）式の両方が成り立つ場合には、このときの目標関節角θＨ１，θＨ２をそれぞれ第一リンク１２Ｄおよび第二リンク１２Ｅの目標関節角に設定する。一方、上記（４４）式および（４５）式の一方または両方が成り立たない場合には、下記（４６）式および（４７）式によってθＨ１およびθＨ２を更新する（Ｓ２５）。
【０１２３】
θＨ１（ｋ＋１）＝θＨ１（ｋ）＋α・ｅ１  ・・・（４６）
θＨ２（ｋ＋１）＝θＨ２（ｋ）＋β・ｅ２  ・・・（４７）
それから、再びステップＳ２３に戻って上記（４２）式および（４３）式によってｅ１およびｅ２を算出する。その後、ステップＳ２４で上記（４４）式および（４５）式が成り立つと判断されるまで、同様の工程を繰り返す。このようにして、目標関節角θＨ１，θＨ２を決定することができる。
【０１２４】
続いて、連動関節を備える指を有するロボットハンドで把持する把持対象物体の形状が直方体である場合について説明する。把持物体が直方体である場合は、図１５に示すように、直方体である把持対象物体Ｍを把持する際には、ロボットハンドと把持対象物体Ｍの大きさの関係などによっては、第二指１２の第一リンク１２Ｄは、直方体の把持面には接触できない。
【０１２５】
また、第二指１２は、３リンク系であることから、最大２箇所で把持対象物体Ｍに対して接触可能である。これらのことから、第二指１２における第二リンク１２Ｅおよび第三リンク１２Ｆの２点が接触する条件で、第一リンク１２Ｄの目標関節角θ１および第二リンク１２Ｅの目標関節角θ２を決定することができる。
【０１２６】
いま、第二リンク１２Ｅの接触側の境界曲線をＣ１，指先部の形状曲線をＣ２とする。現在の第一リンク１２Ｄの目標関節角θ１および第二リンク１２Ｅの目標関節角θ２で運動解析を行い、境界曲線Ｃ１および形状曲線Ｃ２上の各点の座標を計算し、境界曲線Ｃ１上の一番下方の点を探す。その点から、把持対象物体Ｍの上方表面までの垂直距離を隙間ｅ１と定義する。同じように、形状曲線Ｃ２と把持対象物体Ｍとの垂直距離を隙間ｅ２と定義する。
【０１２７】
隙間ｅ１，ｅ２が同時に０になれば、包み込み把持状態となる。また、隙間ｅ１，ｅ２が０でなければ、上記（４６）式および（４７）式でそれぞれ第一リンク１２Ｄの目標関節角θ１および第二リンク１２Ｅの目標関節角θ２を調整して再計算する。計算のアルゴリズムは、把持対象物体の形状が球体の場合と同様である。このようにして、目標関節角を決定することができる。
【０１２８】
このように、本実施形態に係るロボットハンドの把持制御装置では、指が連動関節を有する場合および連動関節を有しない場合のいずれにおいても、把持対象物体の形状に応じて目標関節角を設定することによって指の把持姿勢を算出し、把持対象物体を把持するようにしている。
【０１２９】
上記特許文献２に開示されたロボットハンドでは、ロボットハンドで把持対象物体を把持するために、適切な把持位置を算出するものではある。ところが、ハンドを正確な把持位置に到達させたとしても、指の各能動関節を協調的に動作させなければ、必ずしも安定した包み込み把持をすることができるとは限らない。
【０１３０】
これに対して、本実施形態に係るロボットハンドの把持制御装置では、最多把持接触点を持つ包み込み把持の条件を導出した上で、事前に各指の各関節の目標位置を算出するようにしている。このため、ロボットハンドによって把持対象物体を確実に把持することができる。
【０１３１】
また、ロボットハンドの各指の各目標関節角を算出し、各指の把持姿勢を決定した後は、図１に示す制御装置４によって、モータドライバ７を一斉に作動させ、各指における関節を同時に動かして把持対象物体を把持する態様とするのが好適である。上記特許文献２に開示されたロボットハンドでは、把持対象物体を把持する際、各関節の目標角度と動作経路を事前に知ることができない。このため、手先感覚による把持対象物体と指との間の相対位置を実時間で計測したり、またはセンサによって接触有無を検知したりして、指の運動をフィードバックして制御することが必要となる。したがって、各情報のフィードバックと実時間で経路探しに時間がかかり、高速での把持ができず、作業効率が低いものである。
【０１３２】
これに対して、本実施形態に係るロボットハンドの把持制御装置では、ロボットハンドで把持動作を行う前に、安定な包み込み把持となるために必要な各指の目標姿勢をあらかじめ計算し、把持動作の際にすべての関節が一斉に動き出すようにしている。このため、実時間での経路探しおよび視覚情報のフィードバックが不要となるので、高速把持を可能とし、もって作業効率の向上を図ることができる。
【０１３３】
さらに、本実施形態に係るロボットハンドの把持制御方法では、物体のサイズが把持可能の範囲にあれば、任意のサイズに対応することができる。しかも、本実施形態では、物体形状を円柱、球、直方体の３種類に分けてそれぞれの包み込み把持の目標計算を行っている。このため、三次元物体の包み込み把持を確実に行うことができる。
【０１３４】
しかも、本実施形態に係るロボットハンドの把持制御方法では、各指が同時に把持対象物体の表面に到着するようにしている。このため、先に把持対象物体に到達した指が把持対象物体に到達して把持対象物体を動かしたり、倒したり、損傷したりといった事態を防止することができる。
【０１３５】
また、上記実施形態において、連動関節を有する指と連動関節を有しない指とを例に挙げて説明したが、連動関節を有する指を用いた場合には、連動関節を有しない指を用いた場合と比較して、連動化によってアクチュエータの個数を削減することができるというメリットがある。また、アクチュエータの個数の削減に伴い、全体としての制御を簡素化することができるとともに、連動関節の体格を小さくすることができる。
【０１３６】
さらに、各指の緩衝パッド１７に埋め込まれた触覚センサ６を用いて、把持位置の誤差補償を行うことができる。以下、この誤差補償について説明する。図１６は、誤差補償を含めたロボットハンドの把持制御装置の制御手順を示すフローチャートである。
【０１３７】
図１６に示すように、画像認識装置２では、物体の位置および形状を確認し（Ｓ３１）、把持姿勢算出装置３に出力する。把持姿勢算出装置３では、画像認識装置２から出力された物体の位置および形状に基づいて、計算方法を選択し（Ｓ３２）、ロボットハンドの各指における各リンクの目標関節角の初期値を設定する（Ｓ３３）。
【０１３８】
続いて、把持対象物体と指との隙間を算出し（Ｓ３４）、隙間が所定の許容誤差未満であるか否かを判断する（Ｓ３５）。その結果、隙間＜εでない場合には、把持対象物体の初期位置または対象となるリンクの目標関節角θｉを調整し（Ｓ３６）、ステップＳ３４に戻る工程を繰り返す。一方、ステップＳ３５で隙間＜εである場合には、ステップＳ３７に進む。ここまでの工程は、上記の制御手順で示したものと同様にして進めることができる。
【０１３９】
次に、ステップＳ３５で隙間＜εであると判断したら、把持姿勢算出装置３は、各指における各リンクの目標関節角に基づいて、各指の目標姿勢を算出し（Ｓ３７）、制御装置４に出力する。制御装置４では、把持姿勢算出装置３から出力された把持姿勢に基づいて、モータドライバ７を介して各指のモータを制御し、把持対象物体を把持する（Ｓ３８）。
【０１４０】
このように、各指によって把持対象物体を把持するとともに、触覚センサ６では、各指の接触点における把持力を監視し（Ｓ３９）、監視した把持力を制御装置４に出力する。制御装置４は、指が把持対象物体を把持する際の好適な把持力をリミット値として記憶している。制御装置４では、触覚センサ６から出力された把持力と、記憶した把持力とを比較し、把持力がリミット値未満であるか否かを判断する（Ｓ４０）。
【０１４１】
その結果、把持力がリミット値未満であると判断したときには、ステップＳ３８に戻り、さらに指の関節を作動させる制御を行い、把持位置の誤差を修正する。また、この把持位置の誤差の修正を行う際、このとき、指をゆっくり作動させて把持力を徐々に大きくしていき、所定の把持力となった時点で指の動作を停止させる。こうすることにより、適切な把持力で把持対象物体を把持することができる。
【０１４２】
逆に、ステップＳ３９において、把持力がリミット値に達していると判断した場合には、指によって把持対象物体を確実に把持した状態となっている。したがって、この状態となったときに、指の動作を停止させて制御を終了する。
【０１４３】
このように、触覚センサを用いて把持位置の誤差を修正することにより、把持ロバスト性の高い把持制御を行うことができる。
【０１４４】
以上、本発明の好適な実施形態について説明したが、本発明は上記各実施形態に限定されるものではないた。たとえば、上記実施形態では、モデル形状として、直方体、円柱、球を設定しているが、たとえばコップの取っ手となるリングなど、ロボットが把持する可能性が比較的高いものを大まかに分類して設定することができる。
【０１４５】
また、上記実施形態において、モデル形状に対応する接触点の所定数として、モデル形状ごとの最大数に設定しているが、最大数の接触点に設定することが必須ではなく、たとえば、モデル形状ごとに、安定して把持するのに必要な接触点数を予め記憶しておき、その接触点数の接触点を所定数の接触点とすることもできる。あるいは、把持対象物体を認識した結果から把持重量を予測し、予測した重量の基づいて、安定した把持に必要な接触点数を算出し、この接触点数の接触点を、所定数の接触点とすることもできる。但し、所定数の接触点としてはモデル形状とロボットハンドの拘束条件から幾何学的に求められる最大の接触点数の接触点を、所定数の接触点とするのが最も好ましくなる。
【０１４６】
さらに、上記実施形態では、物体形状認識装置と物体位置認識装置として、画像処理装置を用いているが、これに限定されず、種々のものを用いることができる。たとえば、物体形状認識装置としては、物体に光を投射し、その反射光から形状を推定するものなどを用いることができる。また、物体位置認識装置としては、たとえば物体の形状を画像から認識し、物体の位置を超音波などで検出するものを用いることもできる。
【図面の簡単な説明】
【０１４７】
【図１】ロボットハンドの把持制御装置のブロック構成図である。
【図２】ロボットハンドの側面図である。
【図３】ロボットハンドの正面図である。
【図４】２本の指で円柱を把持する状態を示す平面図である。
【図５】ロボットハンドの把持制御装置の制御手順を示すフローチャートである。
【図６】２本の指で円柱を把持する状態の横断平面を概略的に示す図である。
【図７】球を把持する状態の概略を示す正面図である。
【図８】直方体を把持する状態の概略を示す側面図である。
【図９】連動関節を有するロボットハンドの側面図である。
【図１０】図５におけるフローチャートのステップＳ５の工程を示すフローチャートである。
【図１１】把持対象物体の形状が円柱である場合に、目標関節角を設定する手順を示すフローチャートである。
【図１２】連動関節を有する指が円柱体を把持する状態の概略を示す横断面図である。
【図１３】把持対象物体の形状が球である場合に、目標関節角を設定する手順を示すフローチャートである。
【図１４】連動関節を有する指が球体を把持する状態の概略を示す横断面図である。
【図１５】連動関節を有する指が直方体を把持する状態の概略を示す横断面図である。
【図１６】誤差補償を含めたロボットハンドの把持制御装置の制御手順を示すフローチャートである。
【符号の説明】
【０１４８】
１，１０…ロボットハンド、２…画像認識装置、３…把持姿勢算出装置、４…制御装置、５…エンコーダ・ポテンショメータ、６…触覚センサ、７…モータドライバ、１１…第一指、１２…第二指、１３…第三指、１４…第四指、１５…第一掌部、１６…第二掌部、１７…緩衝パッド、３０…連動関節、３１…リンク部材、Ｍ…把持対象物体。
【図１】
2006026875.tif 000011
【図２】
2006026875.tif 000012
【図３】
2006026875.tif 000013
【図４】
2006026875.tif 000014
【図５】
2006026875.tif 000015
【図６】
2006026875.tif 000016
【図７】
2006026875.tif 000017
【図８】
2006026875.tif 000018
【図９】
2006026875.tif 000019
【図１０】
2006026875.tif 000020
【図１１】
2006026875.tif 000021
【図１２】
2006026875.tif 000022
【図１３】
2006026875.tif 000023
【図１４】
2006026875.tif 000024
【図１５】
2006026875.tif 000025
【図１６】
2006026875.tif 000026