(57)【要約】【課題】教示データの通りに対象物を把持できない場合でも適切に把持可能とする。【解決手段】教示データに設定された把持箇所を把持できない場合は新たな把持箇所を設定し、その把持箇所で把持するための必要把持力を算出する。得られた必要把持力が対象物の許容把持力よりも大きかった場合は、教示データの把持力および移動加速度を変更して、変更した教示データに従って対象物を把持する。こうすれば、新たな把持箇所を設定した場合でも、把持力が大きすぎて対象物に損傷を与えたり、把持力が不足して対象物の移動中に対象物を落としたりすることがない。その結果、適切に対象物を把持して移動させることが可能となる。【選択図】図１６
2013013948.tif 000002
【特許請求の範囲】
【請求項１】
対象物を把持する把持部と、前記把持部を移動させる移動部とを備え、前記把持部で把持した前記対象物を移動させるロボットであって、
前記把持部および前記移動部に対する教示データを記憶している教示データ記憶部と、
前記教示データに従って前記把持部および前記移動部の動作を制御する動作制御部と
を備え、
前記教示データ記憶部は、前記教示データとして、前記対象物の重量、および前記対象物に加えることのできる許容把持力に関する情報を記憶しており、
前記動作制御部は、
前記対象物を認識して、前記教示データが示す把持箇所を把持可能であるかについて判断し、前記判断の結果が把持可能でない旨の結果である場合は、前記教示データが示す前記把持箇所とは別の前記把持箇所を設定する把持箇所設定部と、
前記教示データが示す前記把持箇所とは別の前記把持箇所で前記対象物を把持して前記対象物を移動させるために必要な必要把持力を算出する必要把持力算出部と、
前記必要把持力が前記許容把持力よりも大きい場合は、前記教示データが示す把持力および前記教示データが示す前記対象物の移動加速度を変更する教示データ変更部と
を備えることを特徴とするロボット。
【請求項２】
請求項１に記載のロボットであって、
前記把持力の設定値を複数記憶している設定値記憶部を備え、
前記教示データ変更部は、前記必要把持力が前記教示データの前記許容把持力よりも大きい場合は、複数の前記設定値の中から、前記必要把持力より大きく且つ前記許容把持力より小さな前記設定値を選択設定値として選択して、前記教示データの把持力を前記選択設定値に変更する
ことを特徴とするロボット。
【請求項３】
対象物を把持する把持部と、前記把持部を移動させる移動部とを備え、前記把持部で把持した前記対象物を移動させるロボットの制御方法であって、
前記把持部および前記移動部に対する教示データを記憶する記憶工程と、
前記対象物を認識して、前記教示データが示す把持箇所を把持可能であるかについて判断し、前記判断の結果が把持可能でない旨の結果である場合は、前記教示データが示す前記把持箇所とは別の前記把持箇所を設定する設定工程と、
前記教示データが示す前記把持箇所とは別の前記把持箇所で前記対象物を把持して前記対象物を移動させるために必要な必要把持力を算出する算出工程と、
前記必要把持力が前記許容把持力よりも大きい場合は、前記教示データが示す把持力および前記教示データが示す前記対象物の移動加速度を変更する変更工程と、
前記教示データに従って前記把持部および前記移動部の動作を制御する制御工程と
を備えることを特徴とするロボットの制御方法。
【請求項４】
請求項３に記載のロボットの制御方法であって、
前記変更工程は、複数記憶されている前記把持力の設定値の中から、前記必要把持力より大きく且つ前記許容把持力より小さな前記設定値を選択設定値として選択して、前記教示データの前記把持力を前記選択設定値に変更する工程である
ことを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物を把持して搬送するロボット、およびロボットの制御方法に関する。
【背景技術】
【０００２】
製造現場の溶接や塗装の工程では、ロボットが広く活用されている。また、複数本の指部を用いて様々な形状の対象物を把持可能なロボットハンドが開発されて、各種の部品の搬送や組み付けなどの工程でもロボットが活用されるようになっている。
【０００３】
これらのロボットには、ロボットハンドの指部が対象物を把持する把持箇所や、対象物を把持する際の把持力や、把持した対象物を移動させる移動経路や移動する際の加速度（移動加速度）などのデータ（教示データと呼ばれる）が予め設定されている。そして、ロボットはこの教示データに従って動作することで、対象物の搬送や組み付けなどの作業を、何度でも正確に繰り返して実行することが可能である。
【０００４】
もっとも、ロボットが常に教示データに設定された通りの把持箇所で対象物を把持できるとは限らない。たとえば、対象物を把持しようとしてロボットハンドが対象物に近付く経路上に何らかの障害物が進入して、教示データに設定された把持箇所を把持できない場合が起こり得る。あるいは、対象物を把持した後の搬送中に、対象物が何らかの障害物に接触して把持箇所がずれてしまうことが起こり得る。そこで、対象物の把持箇所が、教示データに設定された箇所からずれた場合には、ずれた後の新たな把持箇所を検出して、その結果に基づいて必要な把持力を算出する技術が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−００７８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記提案の技術では、教示データの把持箇所で対象物を把持できない事態に、必ずしも十分に対応することができないという問題があった。たとえば、教示データの把持箇所からずれたことに対応して把持力を増加させた結果、把持力が過大となって対象物に傷を付けてしまうことが起こり得る。あるいは、教示データに設定されていない新たな把持箇所で対象物を把持した場合は、搬送中に対象物を把持し続けるために必要な力が、ロボットハンドで発生可能な把持力を超えてしまい、対象物を落としてしまうことが起こり得る。
【０００７】
この発明は、従来の技術が有する上述した課題の少なくとも一部を解決するためになされたものであり、教示データに設定された把持箇所で対象物を把持することができない事態が生じた場合（例えば、ロボットハンドを対象物に近付ける経路上に何らかの障害物が進入して教示データの通りの把持箇所で対象物を把持することができなかったり、搬送中に対象物が障害物と干渉して把持箇所がずれてしまったりした場合など）でも、適切に対象物を把持することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００８】
上述した課題の少なくとも一部を解決するために、本発明のロボットは次の構成を採用した。すなわち、
対象物を把持する把持部と、前記把持部を移動させる移動部とを備え、前記把持部で把持した前記対象物を移動させるロボットであって、
前記把持部および前記移動部に対する教示データを記憶している教示データ記憶部と、
前記教示データに従って前記把持部および前記移動部の動作を制御する動作制御部と
を備え、
前記教示データ記憶部は、前記教示データとして、前記対象物の重量、および前記対象物に加えることのできる許容把持力に関する情報を記憶しており、
前記動作制御部は、
前記対象物を認識して、前記教示データが示す把持箇所を把持可能であるかについて判断し、前記判断の結果が把持可能でない旨の結果である場合は、前記教示データが示す前記把持箇所とは別の前記把持箇所を設定する把持箇所設定部と、
前記教示データが示す前記把持箇所とは別の前記把持箇所で前記対象物を把持して前記対象物を移動させるために必要な必要把持力を算出する必要把持力算出部と、
前記必要把持力が前記許容把持力よりも大きい場合は、前記教示データが示す把持力および前記教示データが示す前記対象物の移動加速度を変更する教示データ変更部と
を備えることを特徴とする。
【０００９】
また、上記のロボットに関する本発明は、ロボットの制御方法としての態様で把握することも可能である。すなわち、
対象物を把持する把持部と、前記把持部を移動させる移動部とを備え、前記把持部で把持した前記対象物を移動させるロボットの制御方法であって、
前記把持部および前記移動部に対する教示データを記憶する記憶工程と、
前記対象物を認識して、前記教示データが示す把持箇所を把持可能であるかについて判断し、前記判断の結果が把持可能でない旨の結果である場合は、前記教示データが示す前記把持箇所とは別の前記把持箇所を設定する設定工程と、
前記教示データが示す前記把持箇所とは別の前記把持箇所で前記対象物を把持して前記対象物を移動させるために必要な必要把持力を算出する算出工程と、
前記必要把持力が前記許容把持力よりも大きい場合は、前記教示データが示す把持力および前記教示データが示す前記対象物の移動加速度を変更する変更工程と、
前記教示データに従って前記把持部および前記移動部の動作を制御する制御工程と
を備えることを特徴とする。
【００１０】
このような構成を有する本発明のロボット、あるいは本発明のロボットの制御方法においては、ロボットの把持部および移動部に対する教示データを記憶しておく。教示データとしては、把持しようとする対象物の把持箇所、把持力、移動経路、移動加速度に関する情報、対象物の重量、および対象物に加えることのできる許容把持力に関する情報などを含んだデータとすることができる。また、移動経路としては、対象物が移動する経路そのものを記憶しておく必要はなく、たとえば把持部の移動経路や、把持部を移動させる移動部の動作などのように、対象物が移動する経路を間接的に表す内容を記憶しておいても良い。また、対象物の移動加速度に関する情報としては、移動加速度そのものを記憶しておいても良いが、間接的に移動加速度を表す内容を記憶しておいてもよい。例えば、移動速度の時間当りの変化量は移動加速度を表すことから、時間とともに変化する移動速度を記憶しておいても良い。更に、対象物に加えることのできる許容把持力は、対象物の材質や構造に応じて、対象物に損傷を与えることなく把持することのできる上限の把持力とすることができるし、ロボットが発生可能な最大把持力を許容把持力とすることもできる。また、許容把持力に関する情報としては、許容把持力の値を記憶しておくことも可能であるが、許容把持力を特定可能な情報（例えば、対象物の材質など）を記憶しておいても良い。対象物を把持するに際しては、把持しようとする対象物を認識する。対象物の認識には、対象物の位置あるいは形状などを用いることができる。そして、教示データが示す把持箇所で対象物を把持可能であるかを判断し、把持可能でない場合は、教示データが示す把持箇所とは別の把持箇所を設定する。更に、教示データが示す把持箇所とは別の把持箇所で把持して対象物を移動させるために必要となる必要把持力を算出する。その結果、得られた必要把持力が、対象物の許容把持力よりも大きい場合は、教示データの把持力および移動加速度を変更し、教示データに従って把持部および移動部の動作を制御することによって、対象物を移動させる。
【００１１】
こうすれば、教示データが示す把持箇所で対象物を把持できない事態が生じた場合でも、別の把持箇所を設定して、その把持箇所で把持するための必要把持力を算出する。そして必要があれば、教示データの把持力および移動加速度を変更して、変更した教示データに従って対象物を搬送することができる。このため、把持力が大きすぎて対象物に損傷を与えたり、把持力が不足して対象物の移動中に対象物を落としたりすることがない。その結果、適切に対象物を把持して移動させることが可能となる。
【００１２】
また、上述した本発明のロボットあるいはロボットの制御方法においては、次のようにして教示データの把持力を変更しても良い。先ず、予め、把持力の設定値を複数記憶しておく。そして、新たに設定した把持箇所での必要把持力が許容把持力よりも大きい場合には、複数の設定値の中から必要把持力より大きく、且つ、許容把持力より小さな設定値を選択設定値として選択し、その選択設定値に教示データの把持力を変更してもよい。
【００１３】
こうすれば、予め記憶されている複数の設定値の中から選択すればよいので、教示データの新たな把持力を簡単に決定することが可能となる。また、把持部が発生する把持力は、予め記憶されている設定値に限られるので、把持部が対象物を把持する際の制御が簡単になり、その結果、ロボットの制御を単純化することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施例のロボットの大まかな構造を示した説明図である。
【図２】本実施例のロボットが対象物を把持する処理（対象物把持処理）の前半部分を示したフローチャートである。
【図３】本実施例のロボットが対象物を把持する処理（対象物把持処理）の後半部分を示したフローチャートである。
【図４】本実施例のロボットが取得する教示データを例示した説明図である。
【図５】教示データに設定された対象物の形状や重心位置を示した説明図である。
【図６】教示データに設定された対象物の把持箇所や、把持位置、把持姿勢を示した説明図である。
【図７】対象物の把持形態を例示した説明図である。
【図８】教示データに設定された対象物の移動経路や、把持形態、移動加速度を示した説明図である。
【図９】対象物を把持可能な箇所が存在するか否かについて判断する方法を示した説明図である。
【図１０】対象物の把持形態毎に設定された力学モデルを示した説明図である。
【図１１】把持形態１についての力学モデルを用いて必要把持力を算出する方法を示した説明図である。
【図１２】把持形態３についての力学モデルを用いて、中間の長さの対象物を把持するための必要把持力を算出する方法を示した説明図である。
【図１３】把持形態３についての力学モデルを用いて、長い対象物を把持するための必要把持力を算出する方法を示した説明図である。
【図１４】把持形態３についての力学モデルを用いて、短い対象物を把持するための必要把持力を算出する方法を示した説明図である。
【図１５】新たな把持箇所で必要把持力を算出した結果を例示した説明図である。
【図１６】必要把持力が許容把持力以下となるように移動加速度を修正した結果を示した説明図である。
【図１７】新たな把持箇所に応じて教示データが変更される様子を示した説明図である。
【発明を実施するための形態】
【００１５】
以下では、上述した本願発明の内容を明確にするために、次のような順序に従って実施例を説明する。
Ａ．本実施例のロボットの構造：
Ｂ．対象物把持処理：
Ｂ−１．教示データ：
Ｂ−２．力学モデルを用いた必要把持力の算出方法：
【００１６】
Ａ．本実施例のロボットの構造  ：
図１は、本実施例のロボット１０の大まかな構造を示す説明図である。図１（ａ）に示されるように、本実施例のロボット１０は、地面に設置された本体部１２０と、本体部１２０から立設されたアーム部１１０と、アーム部１１０の先端に設けられたハンド部１００などから構成されている。アーム部１１０は、複数本のリンク部１１２が関節部１１４によって接続されて構成されており、関節部１１４で屈曲したり回転したりすることが可能である。また、ハンド部１００は、リンク部１１２の先端に取り付けられた基台部１０４と、基台部１０４から立設されて対象物Ｗを把持する複数本の指部１０２などから構成されている。尚、本実施例では、ハンド部１００が本発明における「把持部」に対応し、アーム部１１０が本発明における「移動部」に対応する。
【００１７】
図１（ｂ）には、ハンド部１００の大まかな構造が示されている。図示するように本実施例のハンド部１００には、四本の指部１０２ａ〜ｄが設けられている。このうち、二本の指部１０２ａ，ｂは並べて同じ向きに設けられており、残りの二本の指部１０２ｃ，ｄは、これら二本の指部１０２ａ，ｂと向かい合わせになるように、並べて同じ向きに設けられている。また、二本の指部１０２ａ，ｂは、向かい側の二本の指部１０２ｃ，ｄの方向に移動可能である。同様に、二本の指部１０２ｃ，ｄも、向かい側の二本の指部１０２ａ，ｂの方向に移動可能である。このため、指部１０２ａ，ｂと、向かい側に設けられた指部１０２ｃ，ｄとの間で対象物Ｗを把持することができる。
【００１８】
また、図１（ａ）に示されるように、ロボット１０には、対象物Ｗの画像を撮影する画像撮影部１３０が設けられている。更に、本体部１２０の内部には、ロボット１０の全体の動作を制御する制御部１２２が設けられている。詳細には後述するが、制御部１２２は、画像撮影部１３０で撮影した画像から対象物Ｗを確認すると、アーム部１１０を動かしてハンド部１００で対象物Ｗを把持した後、その把持力を保ったまま再びアーム部１１０を動かすことによって、対象物Ｗを搬送することが可能である。尚、本実施例では、制御部１２２が本発明における「動作制御部」に対応する。
【００１９】
Ｂ．対象物把持処理  ：
図２および図３は、本実施例のロボット１０が対象物Ｗを把持するために行う対象物把持処理のフローチャートである。この処理は、本体部１２０に内蔵された制御部１２２によって実行される。
【００２０】
対象物把持処理を開始すると、先ず始めに教示データを取得する（ステップＳ１００）。教示データとは、対象物Ｗを把持するためのアーム部１１０やハンド部１００の動作が記述されたデータである。教示データは、制御部１２２に内蔵されたメモリーに予め記憶されている。従って、本実施例の制御部１２２は、本発明における「教示データ記憶部」に対応する。また、この教示データは、対象物把持処理を実行するための基礎となるデータである。そこで、教示データの内容について簡単に説明しておく。
【００２１】
Ｂ−１．教示データ  ：
図４には、本実施例の対象物把持処理で用いられる教示データが例示されている。図示されるように、教示データには、対象物Ｗを把持するための情報（把持情報）や、把持した対象物Ｗを移動させるための情報（移動情報）に加えて、予備的な情報（予備情報）が設定されている。把持情報としては、対象物Ｗの形状（寸法を含む）や、把持力、把持箇所、把持形態が設定されており、移動情報としては、対象物Ｗの移動経路や、移動の加速度（移動加速度）、移動中の把持形態が設定されている。更に予備情報としては、対象物Ｗの重量や、対象物Ｗの重心位置、対象物Ｗを把持した時の対象物Ｗとハンド部１００との位置関係や、対象物Ｗの材質などが設定されている。
【００２２】
図５は、対象物Ｗの形状および重心位置Ｇを例示した説明図である。図に例示した対象物Ｗは、幅の寸法が３０、奥行き寸法が４０、高さ寸法が６０の直方体形状であり、このことと対応して、教示データの把持情報中の「形状」の項目には、対象物Ｗが直方体であることを表すデータ「０１」と、幅（Ｗ）、奥行き（Ｄ）、高さ（Ｈ）を示す寸法（３０，４０，６０）とが設定されている。また、対象物Ｗの重心位置Ｇは、幅（Ｗ）、奥行き（Ｄ）、高さ（Ｈ）のちょうど中心の位置にある。このことと対応して、教示データの予備情報中の「重心位置」の項目には、重心位置Ｇを示す座標（１５，２０，３０）が設定されている。尚、重心位置Ｇを示す座標の原点は、図５に示した対象物Ｗの左下手前側の角に設定されており、直方体の稜線に沿って、幅方向にＸ軸、奥行き方向にＹ軸、高さ方向にＺ軸が設定されている。
【００２３】
図６は、対象物Ｗの把持箇所を例示した説明図である。図１を用いて前述したように、本実施例のハンド部１００には四本の指部１０２ａ〜ｄが設けられており、ハンド部１００が対象物Ｗを把持するとそれぞれの指部１０２ａ〜ｄが対象物Ｗに当接するので、四つの把持箇所が存在する。このことに対応して、図４に示した教示データの把持情報中の「把持箇所」には、四つの把持箇所Ｎａ〜Ｎｄの座標を示すデータが設定されている。
【００２４】
また、図６に示した例では、ハンド部１００が対象物Ｗを真上から把持しているが、ハンド部１００は、必ずしも真上から対象物Ｗを把持するとは限らない。本実施例のロボット１０では、対象物Ｗを真上から把持する把持形態の他に、対象物Ｗを横方向から把持することも可能である。そこで、図４に示した教示データの把持情報中の「把持形態」という項目には、対象物Ｗを真上から把持する把持形態であることを示すデータ「１」が設定されている。
【００２５】
図７には、本実施例のロボット１０に設定されている把持形態が例示されている。図７（ａ）に示した把持形態１は、ハンド部１００が対象物Ｗを真上から把持する形態である。図７（ｂ）に示した把持形態２は、ハンド部１００の指部１０２ａ〜ｄを左右（水平方向）に開いた状態で対象物Ｗを横から把持する形態である。更に、図７（ｃ）に示した把持形態３および把持形態４は、指部１０２ａ〜ｄを上下（重力方向）に開いた状態で対象物Ｗを横から把持する形態である。尚、把持形態３で対象物Ｗを把持した場合は、対象物Ｗがハンド部１００の基台部１０４から力を受けるのに対して、把持形態４で対象物Ｗを把持した場合は、対象物Ｗが基台部１０４から受ける力は無視して良い。そこで、把持形態３と把持形態４とは別の把持形態としている。
【００２６】
また、図６に示したように、四つの指部１０２ａ〜ｄがそれぞれの把持箇所Ｎａ〜Ｎｄで対象物Ｗに当接するようにすると、自ずから、ハンド部１００は対象物Ｗに対して所定の位置に来る。このときのハンド部１００と対象物Ｗと位置関係は、次のように表される。先ず、ハンド部１００とともに移動する座標軸（ハンド部１００基準の座標軸）を考える。図６中には、ハンド部１００基準の座標軸が、破線で示したｘｙｚ座標軸によって表されている。このハンド部１００基準の座標軸の原点ｏは、対象物Ｗを基準とする座標軸（図中に実線で示したＸＹＺ座標軸）の原点Ｏとは異なる位置にある。そこで、対象物Ｗ基準の座標軸（ＸＹＺ座標軸）の原点Ｏから、ハンド部１００基準の座標軸（ｘｙｚ座標軸）の原点ｏへの並進ベクトルＰを考える。すると、対象物Ｗ基準のＸＹＺ座標軸の原点Ｏを並進べクトルＰだけ平行移動させることによって、ハンド部１００基準のｘｙｚ座標軸の原点ｏに一致させることができる。もちろん、原点を一致させただけで二つの座標軸が重なるわけではない。そこで、原点Ｏを中心として対象物Ｗ基準のＸＹＺ座標軸を回転させることによって、対象物Ｗ基準のＸＹＺ座標軸がハンド部１００基準のｘｙｚ座標軸に重なるようにする。このときの対象物Ｗ基準のＸＹＺ座標軸の回転を、３行３列の回転行列Ｒによって表すものとする。
【００２７】
このような並進ベクトルＰおよび回転行列Ｒは、対象物Ｗ基準のＸＹＺ座標軸と、ハンド部１００基準のｘｙｚ座標軸との位置関係を表している。従って、ハンド部１００が対象物Ｗを把持したときの並進ベクトルＰおよび回転行列Ｒが分かれば、ハンド部１００が対象物Ｗに対してどれくらい離れた距離で、どちらの方向から把持しているかを知ることができる。そこで、図４に示した教示データの予備情報中の「対象物とハンド部との位置関係」という項目には、ハンド部１００が対象物Ｗを把持する時の並進ベクトルＰおよび回転行列Ｒが設定されている。
【００２８】
また、上述した並進ベクトルＰおよび回転行列Ｒは、対象物Ｗを把持した時のハンド部１００と対象物Ｗとの位置関係を表しているが、把持動作を行うために対象物Ｗに近付く前の（すなわち、基準位置にある）ハンド部１００と、対象物Ｗとの間にも並進ベクトルおよび回転行列を考えることができる。教示データの予備情報中の「対象物とハンド部との位置関係」という項目には、把持動作に入る前の基準位置にあるハンド部１００に対する並進ベクトルおよび回転行列も、それぞれ並進ベクトルｐおよび回転行列ｒとして設定されている。
【００２９】
図８は、対象物Ｗを把持した後に、対象物Ｗを移動させる移動経路や、移動加速度、移動中の把持形態が例示されている。図８（ａ）は、把持した対象物Ｗの移動経路および移動中の把持形態を表している。すなわち、対象物Ｗの移動経路は、対象物Ｗを把持した位置Ｐ１から、Ｐ２の位置、Ｐ３の位置を経由して、Ｐ４の位置に至る経路に設定されている。また、Ｐ１の位置からＰ２の位置への移動中、およびＰ２の位置からＰ３の位置への移動中は、把持形態１（図７参照）で対象物Ｗを把持し、Ｐ３の位置からＰ４の位置への移動中は把持形態３（図７参照）で把持する。すなわち、Ｐ３の位置で把持形態１から把持形態３に変更していることになる。尚、Ｐ１の位置での把持形態（すなわち対象物Ｗを把持する際の把持形態）については、前述したように、教示データの把持情報中の「把持形態」という項目に設定されている。
【００３０】
また、図８（ｂ）には、把持した対象物Ｗを移動させる移動加速度が示されている。図示した例では、Ｐ１の位置から一定の加速度で加速し、毎秒１ｍ（１ｍ／ｓ）の速度に達したら、今度は一定の加速度で減速して、Ｐ２の位置で停止する。尚、このときの加速度（１０ｍ／ｓ２）は、ロボット１０が発生させることが可能な最大加速度であり、速度（１ｍ／ｓ）は、ロボット１０が発生させることが可能な最大速度である。また、Ｐ２の位置からは最大加速度で最大速度に達するまで加速し、暫くの間、最大速度を維持した後、最大加速度と同じ大きさの加速度で減速してＰ３の位置で停止する。更にＰ３の位置からは、最大加速度で最大速度に達するまで加速し、その後、最大加速度と同じ大きさの加速度で減速してＰ４の位置で停止する。すなわち、Ｐ１，Ｐ２，Ｐ３，Ｐ４の各停止位置の間では、加速および減速は最大加速度（あるいは最大加速度と同じ大きさの加速度）で行い、速度が最大速度に達した場合は最大速度でクリップされるように設定されている。
【００３１】
以上に示した対象物Ｗの移動経路や、移動中の把持形態、移動加速度に関する情報は、教示データの移動情報中の「移動経路」、「移動加速度」、「把持形態」という項目として設定されている。図４に示した例では、教示データの移動情報中の「移動経路」という項目には、Ｐ１、Ｐ２、Ｐ３、Ｐ４の各停止位置の座標が設定されている。また、教示データの移動情報中の「移動加速度」という項目には、Ｐ１の位置からＰ２の位置までの区間（区間Ｐ１２）、Ｐ２の位置からＰ３の位置までの区間（区間Ｐ２３）、Ｐ３の位置からＰ４の位置までの区間（区間Ｐ３４）のそれぞれについて、対象物Ｗを移動させる加速度および速度の上限値が、最大加速度および最大速度を基準として設定されている。例えば、Ｐ１２（ａ，ｂ）とは、区間Ｐ１２での加速および減速は、ロボット１０が発生させることの可能な最大加速度に対してａ％の比率で行い、且つ区間Ｐ１２での速度の上限は、ロボット１０が発生させることの可能な最大速度に対してｂ％の比率に制限されることを表している。
【００３２】
また、教示データの移動情報中の「把持形態」という項目には、それぞれの区間Ｐ１２、Ｐ２３、Ｐ３４での把持形態が設定されている。図４に示した例では、区間Ｐ１２および区間Ｐ２３では把持形態１に設定されており、区間Ｐ３４では把持形態３に設定されている。
【００３３】
教示データには、以上の各種データの他に、対象物Ｗの重量に関するデータや、対象物Ｗの材質についても、予備情報中の「重量」および「材質」という項目に設定されている。これらの項目が教示データに設定されている理由については後述する。
【００３４】
図２および図３に示した対象物把持処理を開始すると、先ず始めに、以上に説明した教示データを取得する（ステップＳ１００）。続いて、画像撮影部１３０を用いて対象物Ｗの画像を取得し（ステップＳ１０２）、取得した画像を解析することによって、対象物Ｗを把持する際の障害物の有無、換言すれば、対象物Ｗが障害物の陰になっているか否かを判断する（ステップＳ１０４）。その結果、対象物Ｗが障害物の陰になっている場合（ステップＳ１０４：ｙｅｓ）は、対象物Ｗを把持することができないものと考えられるので、障害物を取り除くことを促すべく警報を出力して（図３のステップＳ１３４）、対象物把持処理を終了する。これに対して、対象物Ｗが障害物の陰になっていない場合は（ステップＳ１０４：ｎｏ）、対象物Ｗの置かれた位置および姿勢（あるいは向き）が教示データの予備情報中の「対象物とハンド部との位置関係」という項目中に設定されている並進ベクトルｐおよび回転行列ｒの内容と一致するか否かを判断する（ステップＳ１０６）。
【００３５】
その結果、対象物Ｗの置かれた位置が教示データの並進ベクトルｐに示される通りであり、且つ、対象物Ｗの姿勢が教示データの回転行列ｒに示される通りであった場合は、対象物Ｗの位置および姿勢が教示データと一致すると判断する（ステップＳ１０６：ｙｅｓ）。そして、この場合は、対象物Ｗは障害物の陰になっておらず（ステップＳ１０４：ｎｏ）、且つ、対象物Ｗが正しい位置に正しい姿勢で置かれていることになるので、教示データの通りに対象物Ｗを把持することが可能である。そこで、教示データに従って把持動作を実行する（図３のステップＳ１３６）。
【００３６】
これに対して、対象物Ｗの位置および姿勢が教示データと一致しなかった場合は（ステップＳ１０６：ｎｏ）、対象物Ｗの姿勢が、教示データの回転行列ｒに示される姿勢と一致するか否かを判断する（ステップＳ１０８）。その結果、対象物Ｗの姿勢が教示データの姿勢と一致していた場合は（ステップＳ１０８：ｙｅｓ）、対象物Ｗの置かれた位置がずれているだけなので、位置がずれている量だけ、教示データに設定された把持箇所からオフセットさせた箇所を新たな把持箇所として設定する（ステップＳ１１０）。一方、対象物Ｗの姿勢が教示データに設定されている姿勢とも一致しなかった場合は（ステップＳ１０８：ｎｏ）、教示データに設定された把持箇所以外に、把持可能な箇所が存在するか否かを判断する（ステップＳ１１２）。把持可能な箇所が存在するか否かは次のようにして判断する。
【００３７】
図９は、対象物Ｗを把持可能な箇所が、その対象物Ｗに存在するか否かを判断する方法を示した説明図である。対象物Ｗを把持可能であるためには、互いに平行で且つ向かい合う平面が存在しなければならない。例えば、図９（ａ）中に示した三角柱の対象物Ｗを把持する場合、図中のＡ面とＢ面とは、互いに平行であり且つ向かい合う平面であるため、Ａ面とＢ面とを把持することで対象物Ｗを把持することができる。これに対して、図９（ｂ）中に示したＣ面とＤ面とは互いに向かい合ってはいるが平行ではないため、Ｃ面とＤ面とで把持しても対象物Ｗを把持できない。あるいは、図９（ｃ）に示すような形状の対象物Ｗでは、Ｅ面とＦ面とは互いに平行ではあるが、互いに向き合っていないので、Ｅ面とＦ面とで把持しようとしても対象物Ｗを把持できない。
【００３８】
図２に示した対象物把持処理のステップＳ１１２では、教示データに示される把持箇所を含んだ平面以外に、互いに平行で且つ向かい合う平面を対象物Ｗに見いだすことができるか否かによって、把持可能な箇所が存在するか否かを判断する。尚、このような平面は、二本の指部１０２ａ，ｂおよび向かい側の二本の指部１０２ｃ，ｄで把持可能な広さお必要となる。その結果、そのような平面を見いだすことができなかった場合は、教示データに示された把持箇所以外には把持可能な箇所が存在しないと判断して（ステップＳ１１２：ｎｏ）、警報を出力することによって対象物Ｗを把持できない旨を報知した後（図３のステップＳ１３４）、対象物把持処理を終了する。これに対して、教示データに示される把持箇所を含んだ平面以外に、互いに平行で且つ向かい合う平面が見つかった場合は、教示データの把持箇所以外にも把持可能な箇所が存在すると判断して（ステップＳ１１２：ｙｅｓ）、見つけた平面上に新たな把持箇所を設定する（ステップＳ１１４）。尚、教示データに設定された以外の新たな把持箇所を設定する処理は、制御部１２２が図２の対象物把持処理を実行する中で行われる。従って、本実施例においては制御部１２２が、本発明における「把持箇所設定部」に対応する。
【００３９】
以上のようにして、教示データとは全く異なる平面に新たな把持箇所を設定（ステップＳ１１４）した場合や、把持する平面は教示データと同じであるが、対象物Ｗの位置ずれに応じて把持箇所をオフセットさせて新たな把持箇所を設定（ステップＳ１１０）した場合は、新たな把持箇所で対象物Ｗを把持して搬送するために必要な把持力（必要把持力）を算出する（ステップＳ１１６）。必要把持力は、把持形態毎に設定されている力学モデルを用いて算出する。以下では、力学モデルを用いて必要把持力を算出する方法について説明する。
【００４０】
Ｂ−２．力学モデルを用いた必要把持力の算出方法  ：
図１０は、把持形態毎に設定された力学モデルの概要を示す説明図である。前述したように本実施例のロボット１０は、把持形態１〜４の四つの把持形態を備えており、それぞれの把持形態に対して力学モデルが設定されている。例えば、把持形態１では、対象物Ｗは、四本の指部１０２ａ〜ｄと対象物Ｗとの間で発生する摩擦力によって支えられていると考えることができる。従って、指部１０２ａと対象物Ｗとの間に生じる摩擦力（以下では、指部１０２ａでの摩擦力と称する。他の指部１０２ｂ〜ｄについても同様）をｆａ、指部１０２ｂでの摩擦力をｆｂ、指部１０２ｃでの摩擦力をｆｃ、指部１０２ｄでの摩擦力をｆｄとし、対象物Ｗの重量ｍｇとすると、摩擦力ｆａ〜ｆｄと対象物Ｗの重量ｍｇとの間で、重力方向の力、およびモーメントが釣り合うような力学モデルを考えることができる。そして、この力学モデルから、対象物Ｗの重量ｍｇを支えるために必要な最低限の摩擦力ｆａ〜ｆｄが求められ、指部１０２ａ〜ｄと対象物Ｗとの間での静摩擦係数をμとすると、その摩擦力ｆａ〜ｆｄを発生させるために必要な最低限の把持力Ｎを決定することができる。
【００４１】
また、把持形態２では、対象物Ｗが回転しようとして基台部１０４から反力を受けるので、この反力ｎを考慮する必要がある。簡単のために、対象物Ｗを同じ側から支える二本の指部１０２ａおよび指部１０２ｂを一本の指部１０２にまとめ、同様に指部１０２ｃおよび指部１０２ｄを一本の指部１０２にまとめる。更に、こうしてまとめた左右どちらの指部１０２にも同じ大きさの力が作用するものとして、それらの指部１０２を一つの指部１０２で代表させる。すると、図１０に示すように把持形態２に対する力学モデルは、指部１０２と対象物Ｗとの間で発生する摩擦力ｆの重力方向成分ｆ１と、水平方向成分ｆ２と、対象物Ｗの重量ｍｇと、基台部１０４から受ける反力ｎとの間で、力およびモーメントが釣り合うような力学モデルとなる。
【００４２】
把持形態３では、対象物Ｗの重量ｍｇは、対象物Ｗの下側にある指部１０２からの反力によって主に支えられると考えられる。しかし、対象物Ｗが回転しようとして基台部１０４からの反力も受けるので、この反力を支えるために指部１０２で発生する摩擦力も考慮する必要がある。簡単のために、対象物Ｗを同じ側から支える二本の指部１０２ａおよび指部１０２ｂを一本の指部１０２にまとめ、同様に指部１０２ｃおよび指部１０２ｄを一本の指部１０２にまとめる。そして、対象物Ｗの下側の指部１０２から受ける反力をｎ１、この反力ｎ１に伴う摩擦力をｆ１とし、対象物Ｗの上側の指部１０２から受ける反力をｎ２、この反力ｎ２に伴う摩擦力をｆ２とし、更に、対象物Ｗが基台部１０４から受ける反力をｎ３、この反力ｎ３に伴う摩擦力をｆ３とする。すると、図１０に示すように把持形態３に対する力学モデルは、上下の指部１０２での反力ｎ１，ｎ２と、上下の指部１０２での摩擦力ｆ１，ｆ２と、基台部１０４での反力ｎ３と、基台部１０４での摩擦力ｆ３と、対象物Ｗの重量ｍｇとの間で、力およびモーメントが釣り合うような力学モデルとなる。
【００４３】
把持形態４では、対象物Ｗの重量ｍｇは、対象物Ｗの下側にある二本の指部１０２からの反力によって主に支えられると考えられる。上述した把持形態３とは異なって、対象物Ｗが回転しようとしても基台部１０４から反力を受けることはない。従って、図１０に示すように把持形態４に対する力学モデルは、対象物Ｗの下側の二本の指部１０２からの反力ｎ１、ｎ２と、対象物Ｗの重量ｍｇとの間で、力およびモーメントが釣り合うような力学モデルとなる。尚、このような力学モデルによって求められた反力が負の値となった場合は、対象物Ｗの上側の指部１０２から反力を受けているものと考えればよい。また、各把持形態に対応するこれらの力学モデルは、制御部１２２内のメモリーに予め記憶されている。図４あるいは図８を用いて前述したように、本実施例では、把持形態１および把持形態３で対象物Ｗを把持することから、それぞれの把持形態に対応する力学モデルを用いて必要把持力（対象物Ｗを把持するために最低限必要な把持力）を算出する。
【００４４】
図１１は、把持形態１での必要把持力を算出するための詳細な力学モデルを示した説明図である。図１１（ａ）に示すように、指部１０２ａと指部１０２ｂとの間隔（指部１０２ｃと指部１０２ｄとの間隔）をＳとする。また、対象物Ｗの重心位置Ｇは、指部１０２ａと指部１０２ｂとの中間の位置からの水平方向の距離Ｌの位置にあるものとする。すると、重力方向の力の釣り合いは、図１１（ｂ）中の（１）式によって表される。尚、指部１０２ａでの摩擦力ｆａが二倍されているのは、指部１０２ｃでの摩擦力ｆｃも摩擦力ｆａに含めたためであり、指部１０２ｂでの摩擦力ｆｂが二倍されているのは、指部１０２ｄでの摩擦力ｆｄも摩擦力ｆｂに含めたためである。また、指部１０２ａと指部１０２ｂとの中間の位置を中心とするモーメントの釣り合いは、図１１（ｂ）中の（２）式によって表される。
【００４５】
指部１０２ａと指部１０２ｂとの間隔Ｓは予め分かっている。また、対象物Ｗに対して新たに設定された把持箇所から、対象物Ｗの重心位置Ｇを表す距離Ｌを求めることができる。更に、図４に示したように教示データの予備情報には、対象物Ｗの重量ｍｇも設定されている。従って、図１１（ｂ）に示した（１）式および（２）式から、把持形態１で対象物Ｗを把持するために必要な摩擦力ｆａ，ｆｂを決定することができる。また、指部１０２と対象物Ｗとの間での静摩擦係数をμとすると、図１１（ｃ）に示したクーロンの摩擦法則から、摩擦力ｆａを発生させるために指部１０２ａ（および指部１０２ｃ）で必要な最低限の把持力ｎａと、摩擦力ｆｂを発生させるために指部１０２ｂ（および指部１０２ｄ）で必要な最低限の把持力ｎｂとを決定することができる。そして、これら把持力ｎａ、ｎｂの大きい方の把持力が必要把持力となる。
【００４６】
次に、把持形態３での必要把持力を算出する方法について説明する。図１０を用いて前述したように把持形態３に対する力学モデルでは、対象物Ｗの下側の指部１０２から受ける反力ｎ１および摩擦力ｆ１と、上側の指部１０２から受ける反力ｎ２および摩擦力ｆ２と、基台部１０４から受ける反力ｎ３および摩擦力ｆ３とを考えればよい。しかし、長い対象物Ｗを把持した場合と短い対象物Ｗを把持した場合とでは、対象物Ｗが回転する方向が違うので、基台部１０４からの反力ｎ３がかかる位置や摩擦力ｆ３の方向が異なったものとなる。また、指部１０２が重心位置Ｇで対象物Ｗを支えた場合は対象物Ｗが回転しないので、基台部１０４からの反力ｎ３や摩擦力ｆ３を考慮する必要はない。このため、把持形態３に対する力学モデルは、長い対象物Ｗを把持する場合（対象物Ｗの重心位置Ｇがハンド部１００の外側にある場合）に対応する力学モデルと、短い対象物Ｗを把持する場合（対象物Ｗの重心位置Ｇが指部１０２の把持箇所と基台部１０４との間にある場合）に対応する力学モデルと、その中間の場合（指部１０２が対象物Ｗの重心位置Ｇを真下から支える場合）に対応する力学モデルの三つのモデルに分けられる。
【００４７】
図１２は、指部１０２が対象物Ｗの重心位置Ｇを真下から支える場合の必要把持力を算出するための詳細な力学モデルを示した説明図である。図１２（ａ）に示すように、対象物Ｗの長さを２Ｌとすると、対象物Ｗの重心位置Ｇは基台部１０４からの距離Ｌの位置にある。指部１０２が、この重心位置Ｇで真下から対象物Ｗを支えるためには、指部１０２の長さが基台部１０４から（Ｄ＋Ｒ）で、且つ、先端の長さＲの部分で対象物Ｗを支えるとしたときに、重心位置ＧがこのＲの範囲内にあればよい。
【００４８】
ここで、指部１０２の長さ（Ｄ＋Ｒ）や、対象物Ｗに当接する部分の長さＲは予め分かっている。また、教示データの把持情報に基づいて対象物Ｗの長さ２Ｌを求めることができる。従って、Ｄ≦Ｌ≦（Ｄ＋Ｒ）が成立する場合には、図１２（ａ）に示すような力学モデルを用いることができる。そして、対象物Ｗに当接する指部１０２の長さＲの部分のうち、先端側の端部（基台部１０４からの距離がＤ＋Ｒの箇所）で発生する反力をｎ１、根元側の端部（基台部１０４からの距離がＤの箇所）で発生する反力をｎ２とすると、重力方向の力の釣り合いは、図１２（ｂ）中の（３）式によって表される。また、指部１０２が対象物Ｗに当接する長さＲの部分の根元側の端部を中心とするモーメントの釣り合いは、図１２（ｂ）中の（４）式によって表される。従って、教示データに設定されている対象物Ｗの重量ｍｇを用いて、（３）式および（４）式を満足する反力ｎ１，ｎ２を決定することができる。尚、反力ｎ１，ｎ２が負の値となった場合は、その反力は対象物Ｗの上側の指部１０２から受ける反力と考えればよい。そして、これら反力ｎ１，ｎ２のうちで絶対値の大きい方の反力が必要把持力となる。
【００４９】
図１３は、長い対象物Ｗを把持する場合の必要把持力を算出するための詳細な力学モデルを示した説明図である。対象物Ｗの長さ２Ｌが長くなると、基台部１０４から重心位置Ｇまでの距離Ｌが、指部１０２の先端までの長さ（Ｄ＋Ｒ）よりも長くなる。そしてこの場合は、対象物Ｗの先端側（基台部１０４から遠い側）が下がろうとして対象物Ｗが回転し、その結果、対象物Ｗの基台部１０４側では、下側の角が基台部１０４に押しつけられて反力ｎ３を受けるようになる。従って、（Ｄ＋Ｒ）＜Ｌが成立する場合には、図１３（ａ）に示すような力学モデルを用いることができる。また、この力学モデルでは、下側の指部１０２から受ける反力ｎ１は、指部１０２が対象物Ｗに当接する長さＲ部分の先端側（基台部１０４からの距離がＤ＋Ｒの箇所）に発生し、上側の指部１０２から受ける反力ｎ２は、指部１０２が対象物Ｗに当接する長さＲ部分の根元側（基台部１０４からの距離がＤの箇所）に発生する。
【００５０】
従って、重力方向の力の釣り合いは、図１３（ｂ）中の（５）式によって表され、水平方向の力の釣り合いは、（６）式によって表される。また、下側の指部１０２が対象物Ｗに当接する長さＲの部分の根元側の端部を中心とするモーメントの釣り合いは、図１３（ｂ）中の（７）式によって表される。尚、（７）式中のＳは、下側の指部１０２が対象物Ｗに当接する部分と、上側の指部１０２が対象物Ｗに当接する部分との距離を表している。また、摩擦力ｆ１，ｆ２，ｆ３は、反力ｎ１，ｎ２，ｎ３に静摩擦係数μを乗算した値となる。従って、（５）式〜（７）式を満足する反力ｎ１，ｎ２，ｎ３を決定することができる。そして、反力ｎ１，ｎ２のうちで絶対値の大きい方の反力が必要把持力となる。
【００５１】
図１４は、短い対象物Ｗを把持する場合の必要把持力を算出するための詳細な力学モデルを示した説明図である。対象物Ｗの長さ２Ｌが短くなると、指部１０２は、対象物Ｗの重心位置Ｇよりも遠い箇所で対象物Ｗを把持するようになる。そしてこの場合は、対象物Ｗの手前側（基台部１０４に接する側）が下がろうとして対象物Ｗが回転し、その結果、対象物Ｗの上側の角が基台部１０４に押しつけられて反力ｎ３を受けるようになる。従って、Ｌ＜Ｄが成立し、且つ、（Ｄ＋Ｒ）＜２Ｌが成立する場合には、図１４（ａ）に示すような力学モデルを用いることができる。尚、（Ｄ＋Ｒ）＜２Ｌが条件に含まれるのは、この条件が成立しないと、基台部１０４および指部１０２を用いて対象物Ｗを安定した状態で把持することができなくなることによる。また、図１４（ａ）に示した力学モデルでは、下側の指部１０２から受ける反力ｎ１は、指部１０２が対象物Ｗに当接する長さＲ部分の根元側（基台部１０４からの距離がＤの箇所）に発生し、上側の指部１０２から受ける反力ｎ２は、指部１０２が対象物Ｗに当接する長さＲ部分の先端側（基台部１０４からの距離がＤ＋Ｒの箇所）に発生する。
【００５２】
このとき、重力方向の力の釣り合いは、図１４（ｂ）中の（８）式によって表され、水平方向の力の釣り合いは、（９）式によって表される。また、下側の指部１０２が対象物Ｗに当接する長さＲの部分の根元側の端部を中心とするモーメントの釣り合いは、図１４（ｂ）中の（１０）式によって表される。また、図１３の場合と同様に、摩擦力ｆ１，ｆ２，ｆ３は、反力ｎ１，ｎ２，ｎ３に静摩擦係数μを乗算した値となる。従って、（８）式〜（１０）式を満足する反力ｎ１，ｎ２，ｎ３を決定することができる。そして、反力ｎ１，ｎ２のうちで絶対値の大きい方の反力が必要把持力となる。
【００５３】
以上では、それぞれの把持形態で対象物Ｗを静止した状態で把持するために必要な把持力（以下では、「静的な必要把持力」と称する）を、力学モデルに基づいて決定する方法について説明した。しかし、図４あるいは図８を用いて前述したように、ハンド部１００は対象物Ｗを把持した状態で移動するので、対象物Ｗには慣性力も作用する。従って実際には、対象物Ｗに働く慣性力の影響も考慮して必要把持力を決定する必要がある。
【００５４】
図１５は、対象物Ｗに働く慣性力も考慮して必要把持力を決定する様子を示した説明図である。図１５（ａ）には、教示データに示された対象物Ｗの移動加速度が示されている。また、図１５（ｂ）には、力学モデルを用いて決定された静的な必要把持力が示されている。この静的な必要把持力に対して、対象物ＷがＰ１の位置からＰ２の位置まで移動する間（区間Ｐ１２）と、Ｐ３の位置からＰ４の位置まで移動する間（区間Ｐ３４）とでは、対象物Ｗが加減速する加速度に応じて重力方向の慣性力が作用する。また、対象物ＷがＰ２の位置からＰ３の位置に移動する間（区間Ｐ２３）では、対象物Ｗが加減速する加速度に応じて水平方向の慣性力が作用する。その結果、対象物Ｗに加わる慣性力も考慮した必要把持力は、図１５（ｃ）に示した把持力となる。
【００５５】
以上、把持形態に応じた力学モデルを用いて必要把持力を算出する方法について説明した。図２および図３に示す対象物把持処理のステップＳ１１６では、新たに設定した把持箇所で対象物Ｗを把持した状態で、教示データに示される移動経路を移動加速度で移動させたときに必要な把持力（必要把持力）を算出する。尚、新たな把持箇所での必要把持力を算出する処理は、制御部１２２が図２の対象物把持処理を実行する中で行われる。従って、本実施例においては制御部１２２が、本発明における「必要把持力算出部」に対応する。
【００５６】
続いて、算出した必要把持力が、許容把持力以下であるか否かを判断する（図３のステップＳ１１８）。許容把持力とは、実際に対象物Ｗを把持するときに許容し得る最大の把持力である。例えば、あまりに大きな把持力で把持すると対象物Ｗを損傷してしまうおそれがあるから、把持力の上限は、対象物Ｗの材質（あるいは構造）に応じて制限される。また、ロボット１０が発生させることの可能な把持力にも限界がある。従って、対象物Ｗの材質（あるいは構造）によって決まる上限の把持力や、ロボット１０が発生可能な上限の把持力などが許容把持力となり得る。もっとも、多くの場合は、対象物Ｗの材質（あるいは構造）によって決まる上限の把持力の方が、ロボット１０が発生可能な上限の把持力よりも小さいので、対象物Ｗの材質（あるいは構造）によって許容把持力が決定される。本実施例では、教示データに設定された対象物Ｗの材質（ステンレス）が耐え得る把持力を許容把持力とする。従って、本実施例においては、教示データに設定されている対象物Ｗの材質が、本発明における「許容把持力に関する情報」に対応する。
【００５７】
図１５（ｃ）に示したように、慣性力を考慮した必要把持力は、対象物ＷをＰ３の位置からＰ４の位置に移動させる間（区間Ｐ３４）で、材質（ステンレス）の許容把持力を超えている。従って、図３のステップＳ１１８では「ｎｏ」と判断し、続いて、静的な必要把持力は許容把持力以下であるか否かを判断する（ステップＳ１２０）。その結果、静的な必要把持力も許容把持力を超えていた場合は（ステップＳ１２０：ｎｏ）、新たに設定した把持箇所では対象物Ｗを把持できないと考えられるので、その旨の警報を出力して（ステップＳ１３４）、図２および図３に示した対象物把持処理を終了する。尚、警報を出力する前に別の把持箇所を探して、別の把持箇所を見いだすことができなかった場合に警報を出力するようにしても良い。
【００５８】
一方、静的な必要把持力は許容把持力を超えていなかった場合は（ステップＳ１２０：ｙｅｓ）、対象物Ｗに加わる慣性力を抑制することで、慣性力を考慮した場合でも必要把持力を許容把持力以下に抑えることが可能である。そこで、慣性力を考慮した必要把持力が許容把持力を超える区間での移動加速度を低下させる（ステップＳ１２２）。図１５（ｃ）に示した例では、慣性力を考慮した必要把持力は、Ｐ３の位置からＰ４の位置までの間（区間Ｐ３４）で許容把持力を超えているから、この区間Ｐ３４で対象物Ｗを加速させる際および減速させる際の加速度を小さくする。教示データの移動情報には、区間Ｐ３４では、ロボット１０が発生可能な最大加速度で加減速させる旨が設定されているが（図４あるいは図８を参照）、この区間での移動加速度を、最大加速度の例えば半分の加速度に変更する。そして、その移動加速度での必要把持力（慣性力を考慮した必要把持力）を算出し（ステップＳ１２４）、得られた必要把持力が許容把持力以下であるか否かを判断する（ステップＳ１２６）。
【００５９】
図１６には、区間Ｐ３４での移動加速度を最大加速度の半分の加速度にしたときの移動速度、静的な必要把持力、および慣性力を考慮した必要把持力が示されている。図１６（ａ）に示されるように、Ｐ１の位置からＰ３の位置まで（区間Ｐ１２および区間Ｐ２３）は教示データと同じ移動速度（および移動加速度）で移動するが、区間Ｐ３４では移動加速度が半分に減少している。尚、これに伴って区間Ｐ３４で達する最高速度が低くなり、区間Ｐ３４の移動に要する時間も少し長くなっている。
【００６０】
もちろん、移動加速度が半分になっても、図１６（ｂ）に示すように静的な必要把持力は変わらない。しかし、移動加速度が半分になると対象物Ｗに作用する慣性力も半分になるので、図１６（ｃ）に示すように慣性力を考慮した必要把持力は小さくなる。その結果、必要把持力が許容把持力以下であると判断される（ステップＳ１２６：ｙｅｓ）。また、仮に、移動加速度を半分にしても、慣性力を考慮した必要把持力が許容把持力以下にならなかった場合は、ステップＳ１２６では「ｎｏ」と判断して、ステップＳ１２２に戻って、更に移動加速度を低下させた後、その移動加速度での慣性力を考慮した必要把持力を計算する（ステップＳ１２４）。
【００６１】
そして、慣性力を考慮した必要把持力が許容把持力以下であった場合は（ステップＳ１２６：ｙｅｓ）、予め複数設定されている把持力の設定値の中から、新たな把持箇所で対象物Ｗを把持するための把持力を選択する（ステップＳ１２８）。すなわち、本実施例のロボット１０では、ハンド部１００の把持力を複数段階に切り換えるようになっており、ある把持力に設定されると、対象物Ｗを把持してから離すまで、その把持力を維持するようになっている。こうすることで、対象物Ｗを把持する際や、把持した対象物Ｗの移動中に把持力を細かく調整する必要が無くなるので、制御を簡単にすることができる。また、複数の設定値の中から把持力を選択すればよいので、新たな把持力を簡単に設定することが可能となる。
【００６２】
図１６（ｃ）に示した例では、把持力の設定値として、８ニュートン（以下、ニュートンをＮと略記する）、１０（Ｎ）、１２（Ｎ）、１４（Ｎ）の四つの設定値が設定されている。また、慣性力を考慮した必要把持力は約９．５（Ｎ）であり、許容把持力は１１（Ｎ）であるから、必要把持力よりも大きく、且つ許容把持力よりも小さな設定値である１０（Ｎ）を新たな把持力（選択設定値）として選択する。尚、把持力の設定値は、制御部１２２に内蔵されたメモリーに記憶されている。従って、本実施例においては制御部１２２が、本発明における「設定値記憶部」に対応する。
【００６３】
以上では、新たな把持箇所に対して算出した必要把持力が許容把持力を超えていたために（ステップＳ１１８：ｎｏ）、教示データに設定された移動加速度を変更して、新たな必要把持力を算出する場合について説明した。これに対して、新たな把持箇所に対して算出した必要把持力が許容把持力を超えていなかった場合（ステップＳ１１８：ｙｅｓ）は、ステップＳ１２８において、その必要把持力よりも大きく、且つ許容把持力よりも小さな設定値を、新たな把持力（選択設定値）として選択すればよい。
【００６４】
以上のようにして、新たな把持箇所に対する把持力を設定したら、教示データを変更する（ステップＳ１３０）。上述した例では、図１６（ａ）に示したように、区間Ｐ３４での移動加速度の設定を、ロボット１０が発生可能な最大加速度に対して５０％の設定に変更し、また、把持力を１０（Ｎ）に変更している。これに伴って、図１７に示すように、教示データの把持情報中の「把持力」および「把持箇所」と、移動情報中の「移動加速度」とについての教示データを変更する。そして、変更した教示データを用いて把持動作を実行した後（ステップＳ１３２）、図２および図３に示した対象物把持処理を終了する。尚、変更した教示データは、新たに設定した把持箇所に対する教示データとして記憶しておき、再度、その把持箇所で対象物Ｗを把持する場合には、記憶しておいた教示データを用いて対象物Ｗを把持するようにしても良い。また、教示データを変更する処理は、制御部１２２が図２の対象物把持処理を実行する中で行われる。従って、本実施例においては制御部１２２が、本発明における「教示データ変更部」に対応する。
【００６５】
以上のような対象物把持処理を行う本実施例のロボット１０は、教示データに設定された把持箇所で対象物Ｗを把持することができない事態が生じると、新たな把持箇所を設定し、設定した把持箇所に応じた必要把持力を教示データに基づいて算出する。そして、得られた必要把持力と、教示データに基づいて定められた許容把持力との範囲内で新たな把持力を設定して対象物Ｗを把持する。このため、把持力が大きすぎて対象物Ｗに損傷を与えたり、あるいはロボット１０が発生可能な把持力が不足して対象物Ｗの移動中に対象物Ｗを落としてしまったりすることがない。その結果、適切に対象物Ｗを把持して移動させることが可能となる。また、新たな把持力を設定するに際しては、予め設定されている複数の設定値の中から選択すればよいので、簡単に把持力を設定することが可能となる。加えて、ハンド部１００の発生する把持力が設定値の把持力に限られるので、ハンド部１００が対象物Ｗを把持する制御が簡単になり、ロボット１０の制御を単純にすることも可能となる。
【００６６】
以上、本実施例のロボットについて説明したが、本発明は上記の実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
【符号の説明】
【００６７】
１０…ロボット、            １００…ハンド部、          １０２…指部、
１０４…基台部、            １１０…アーム部、          １１２…リンク部、
１１４…関節部、            １２０…本体部、            １２２…制御部、
１３０…画像撮影部、        Ｗ…対象物
【図１】
2013013948.tif 000003
【図２】
2013013948.tif 000004
【図３】
2013013948.tif 000005
【図４】
2013013948.tif 000006
【図５】
2013013948.tif 000007
【図６】
2013013948.tif 000008
【図７】
2013013948.tif 000009
【図８】
2013013948.tif 000010
【図９】
2013013948.tif 000011
【図１０】
2013013948.tif 000012
【図１１】
2013013948.tif 000013
【図１２】
2013013948.tif 000014
【図１３】
2013013948.tif 000015
【図１４】
2013013948.tif 000016
【図１５】
2013013948.tif 000017
【図１６】
2013013948.tif 000018
【図１７】
2013013948.tif 000019