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