(57)【特許請求の範囲】
【請求項１】
整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する算出手段と、
前記ワーク毎に算出される少なくとも一つの把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークを前記ロボットハンドが把持する際の把持位置に決定する決定手段と、を有することを特徴とする教示装置。
【請求項２】
前記算出された把持可能位置毎に、当該把持可能位置が共通するワークの数を集計する集計手段をさらに有し、
前記決定手段は、前記集計されるワークの数にしたがって、共通するワークの数が多い把持可能位置から順次に、前記把持位置に決定することを特徴とする請求項１に記載の教示装置。
【請求項３】
前記ワークの輪郭線を取得する取得手段と、
前記取得されるワークの輪郭線から、少なくとも一対の平行線を抽出する抽出手段と、をさらに有し、
前記算出手段は、前記抽出される平行線に基づいて、前記把持可能位置を算出することを特徴とする請求項１に記載の教示装置。
【請求項４】
前記抽出される平行線の間隔と前記ロボットハンドの開き量とを比較する第１の比較手段をさらに有し、
前記算出手段は、前記平行線の間隔が前記ロボットハンドの開き量未満の場合、前記平行線に基づいて、前記把持可能位置を算出することを特徴とする請求項３に記載の教示装置。
【請求項５】
前記ロボットハンドがワークを把持する際に、当該ロボットハンドが把持対象のワークと干渉するか否かを判断する第１の干渉判断手段をさらに有し、
前記算出手段は、前記ロボットハンドが前記ワークと干渉しない場合、当該ロボットハンドによるワークの把持位置を、前記把持可能位置として算出することを特徴とする請求項１に記載の教示装置。
【請求項６】
前記ロボットハンドがワークを把持する際に、当該ロボットハンドが把持対象のワークの周辺部と干渉するか否かを判断する第２の干渉判断手段をさらに有し、
前記算出手段は、前記ロボットハンドが前記ワークの周辺部と干渉しない場合、当該ロボットハンドによるワークの把持位置を、前記把持可能位置として算出することを特徴とする請求項１に記載の教示装置。
【請求項７】
前記ロボットハンドからワークが落下するか否かを判断する落下判断手段をさらに有し、
前記算出手段は、前記ロボットハンドからワークが落下しない場合、当該ロボットハンドによるワークの把持位置を、前記把持可能位置として算出することを特徴とする請求項１に記載の教示装置。
【請求項８】
前記ワークの重心位置を算出する重心位置算出手段と、
前記算出されたワークの重心位置と前記把持位置との位置関係と、前記ワークの重量とに基づいて、当該把持位置に作用する力を算出する力算出手段と、
前記ロボットハンドと前記ワークとの間に作用する静止摩擦力を算出する摩擦力算出手段と、
前記把持位置に作用する力と前記静止摩擦力とを比較する第２の比較手段と、をさらに有し、
前記落下判断手段は、前記把持位置に作用する力が前記静止摩擦力未満の場合、前記ワークが落下しないと判断することを特徴とする請求項７に記載の教示装置。
【請求項９】
整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する段階と、
前記ワーク毎に算出される把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークを前記ロボットハンドが把持する際の把持位置に決定する段階と、を有することを特徴とする教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示装置および教示方法に関する。特に、本発明は、整列されている複数のワークの把持位置を決定する教示装置および教示方法に関する。
【背景技術】
【０００２】
近年、車両の組立工程において、サプライヤからの供給部品を生産順序に並べ替え、組立ラインに同期させて供給するロットピッキングが実施されている。種々のワークおよび棚に対応するように、ピッキング作業を自動化する手法としては、ピッキングロボットにピッキング動作を教示する技術が知られている（たとえば、特許文献１）。
【０００３】
しかしながら、ピッキングロボットにピッキング動作を教示する一般的な教示装置では、ワーク毎に２点の把持位置が指定されるため、複数のワークの把持位置がそれぞれ異なる場合がある。したがって、異なる把持位置でワークを把持するピッキング動作をピッキングロボットに教示するため、教示工数が膨大になるという問題がある。
【特許文献１】特開平１１−０５８２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上述した問題を解決するためになされたものである。したがって、本発明の目的は、複数のワークの把持位置を共通化することにより、ピッキングロボットへの教示工数を低減することが可能な教示装置および教示方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明の上記目的は、下記の手段によって達成される。
【０００６】
本発明の教示装置は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する算出手段と、前記ワーク毎に算出される把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークを前記ロボットハンドが把持する際の把持位置に決定する決定手段と、を有することを特徴とする。
【０００７】
本発明の教示方法は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する段階と、前記ワーク毎に算出される把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークを前記ロボットハンドが把持する際の把持位置に決定する段階と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明の教示装置および教示方法によれば、整列されている複数のワークの把持位置が共通化されるため、ロボットハンドにピッキング動作を教示する際の把持位置の数が低減される。その結果、ピッキングロボットへの教示工数が低減される。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の実施の形態を説明する。本実施の形態の教示装置は、部品箱中に整列されているワーク（部品）のピッキング動作をピッキングロボットにオフライン教示する際に、整列されている複数のワークの把持位置を決定するものである。決定された把持位置をロボットハンドが把持するように、たとえば、三次元データ上で仮想ロボットを動作させることにより、教示データ、すなわち、実際のピッキングロボットを動作させる動作プログラムが作成される。仮想ロボットを動作させて教示データを作成する処理自体は、一般的なオフライン教示技術であるため、詳細な説明は省略する。
【００１０】
図１は、本発明の一実施の形態における教示装置によってオフライン教示されるピッキングロボットを示す図である。図１に示されるとおり、本実施の形態におけるピッキングロボット１００は、部品箱５００に収容されているワークを把持するものである。ピッキングロボット１００は、ロボット本体部１１０およびロボット本体部１１０の先端部に設けられたロボットハンド１２０を備え、制御装置３００によって制御される。ピッキングロボット１００は、教示装置４００によって作成された教示データに基づいて制御される。また、ロボットハンド１２０の近傍には、カメラ２００が設けられていて、カメラ２００によって取得される画像データに基づいて、ロボットハンド１２０の位置および姿勢が補正される。なお、ピッキングロボット１００自体は、一般的な多関節ロボットであるため、詳細な説明は省略する。また、図２に示されるとおり、本実施の形態では、同一形状のワークが平積み整列された状態で、部品箱５００に収納されている。図２では、３つの同一形状のワークが一の方向に沿って同一向きに整列されている。
【００１１】
図３は、本発明の一実施の形態における教示装置の概略構成を示すブロック図である。図３に示されるとおり、本実施の形態における教示装置４００は、ＣＰＵ４１０、ＲＡＭ４２０、ＲＯＭ４３０、ハードディスク４４０、インタフェース４５０、入力部４６０、および表示部４７０を有する。これらの各部は、バスを介して相互に接続されている。
【００１２】
ＣＰＵ４１０は、種々の演算および制御を実行するものである。ＣＰＵ４１０は、算出部（算出手段）、決定部（決定手段）、および集計部（集計手段）として機能する。
【００１３】
ここで、算出部は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出するものである。決定部は、ワーク毎に算出される少なくとも一つの把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークをロボットハンドが把持する際の把持位置に決定するものである。集計部は、算出された把持可能位置毎に、当該把持可能位置が共通するワークの数を集計するものである。なお、各部の具体的な処理内容については、後述する。
【００１４】
ＲＡＭ４２０は、ワーク毎に算出される把持可能位置および把持可能位置が共通するワーク数などを一時的に記憶するものであり、ＲＯＭ４３０は、制御プログラムおよびパラメータなどを予め記憶するものである。
【００１５】
ハードディスク４４０は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する算出プログラム、ワーク毎に算出される少なくとも一つの把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークをロボットハンドが把持する際の把持位置に決定する決定プログラム、および算出された把持可能位置毎に、当該把持可能位置が共通するワークの数を集計する集計プログラムを格納する。
【００１６】
インタフェース４５０は、ワークおよびピッキングロボットのＣＡＤデータを外部から受信するとともに、教示データを制御装置３００に送信する。
【００１７】
入力部４６０は、たとえば、キーボード、タッチパネル、およびマウスなどのポインティングデバイスであり、表示部４７０は、たとえば、液晶ディスプレイおよびＣＲＴディスプレイなどである。
【００１８】
以上のとおり構成される本実施の形態の教示装置によれば、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置が算出され、より多数のワークに共通する把持可能位置が、ロボットハンドがワークを把持する際の把持位置に決定される。以下、本実施の形態における教示方法について詳細に説明する。
【００１９】
図４は、本実施の形態の教示装置における教示処理を説明するためのフローチャートである。なお、上述したとおり、以下の処理は、ワークおよびロボットハンドなどの三次元データを用いて、オフラインで実行される。
【００２０】
本実施の形態における教示処理では、まず、ワーク毎に把持位置候補が算出される（ステップＳ１０１）。より具体的には、ワークの三次元データから取得されるワークの輪郭線に基づいて、ロボットハンドの指部がワークを挟持することができる把持位置候補が設定される。本実施の形態では、ステップＳ１０１に示す処理で算出された把持位置候補が、後続するステップＳ１０２〜Ｓ１０４に示す処理を通じて評価され、評価内容を満足する把持位置候補に限定される。その結果、ロボットハンドによるワークの把持可能位置が算出される。ステップＳ１０１に示す把持位置候補設定処理についての詳細な説明は後述する。
【００２１】
次に、ステップＳ１０１に示す処理で算出された把持位置候補に対して、ロボットハンドがワークの他の部分と干渉するか否かが評価される（ステップＳ１０２）。より具体的には、ロボットハンドが、ステップＳ１０１の処理で算出される一の把持位置候補を把持する場合に、ロボットハンドが把持位置を除くワークの他の部分と干渉するか否かが判断される。ステップＳ１０２に示す第１の干渉評価処理によれば、ステップＳ１０１に示す処理で算出された把持位置候補が、ロボットハンドとワークの他の部分とが干渉しない把持位置候補にさらに限定される。ステップＳ１０２に示す第１の干渉評価処理についての詳細な説明は後述する。
【００２２】
次に、ステップＳ１０２に示す処理で限定された把持位置候補に対して、ロボットハンドからワークが落下するか否かが評価される（ステップＳ１０３）。より具体的には、ロボットハンドが、ステップＳ１０２に示す処理で限定された一の把持位置候補を把持して持ち上げる際に、ロボットハンドからワークが落下するか否かが判断される。ステップＳ１０３に示す落下評価処理によれば、ステップＳ１０２に示す処理で限定された把持位置候補が、ワークが落下しない把持位置候補にさらに限定される。ステップＳ１０３に示す落下評価処理についての詳細な説明は後述する。
【００２３】
次に、ステップＳ１０３に示す処理で限定された把持位置候補に対して、ロボットハンドがワークの周辺部と干渉するか否かが評価される（ステップＳ１０４）。より具体的には、ロボットハンドが、ステップＳ１０３に示す処理で限定された一の把持位置候補を把持する際に、ロボットハンドが他のワークおよび部品箱の壁部などと干渉するか否かが判断される。ステップＳ１０４に示す第２の干渉評価処理によれば、ステップＳ１０３に示す処理で限定された把持位置候補が、ロボットハンドとワークの周辺部とが干渉しない把持位置候補にさらに限定される。ステップＳ１０４に示す第２の干渉評価処理についての詳細な説明は後述する。
【００２４】
以上のとおり、ステップＳ１０１〜Ｓ１０４に示す処理によれば、ワークの三次元データから把持位置候補が算出された後に、種々の評価に基づいて把持位置候補が限定される。その結果、部品箱に整列された状態で収容されている複数のワークに対して、ロボットハンドによるワークの把持可能位置がワーク毎に算出される。より具体的には、図５（Ａ）に示されるとおり、たとえば、部品箱に収容される複数のワークに対して、それぞれ複数の把持可能位置が算出される。図５（Ａ）では、６つの同一形状のワークが一の方向に沿って整列されていて、各ワークに対してそれぞれ２つの把持可能位置が算出されている。なお、６つのワークのうち一の方向に沿って連続する３つのワークは同一向きに整列されており、後続する３つのワークは反対向きに整列されている。
【００２５】
そして、ワーク毎に算出された複数の把持可能位置に対して、把持可能位置毎に当該把持可能位置が共通するワークの数が集計される（ステップＳ１０５）。より具体的には、たとえば、６つのワークに対して、図５（Ａ）に示されるような把持可能位置（第１〜第３の把持可能位置）が算出される場合、図５（Ｂ）に示されるとおり、第１の把持可能位置が共通するワークの数が４つ、第２の把持可能位置が共通するワークの数が６つ、そして、第３の把持可能位置が共通するワークの数が２つという集計結果が得られる。
【００２６】
次に、把持可能位置が共通するワーク数の集計結果に基づいて、より多数のワークに共通する一の把持可能位置が、ロボットハンドが実際に把持する把持位置に決定される（ステップＳ１０６）。より具体的には、共通するワークの数が最も多い把持可能位置（たとえば、第２の把持可能位置）が、実際に把持される把持位置に決定される。
【００２７】
次に、すべてのワークに対して把持位置が決定されているか否かが判断される（ステップＳ１０７）。本実施の形態では、たとえば、ステップＳ１０６に示す処理で決定された一の把持位置がすべてのワークに共通するものでない場合、把持位置が未決定のワークが存在することになる。
【００２８】
すべてのワークに対して把持位置が決定されている場合（ステップＳ１０７：ＹＥＳ）、処理が終了される。本実施の形態では、たとえば、図５（Ｂ）および図５（Ｃ）に示されるとおり、第２の把持可能位置がワークの把持位置として決定され、処理が終了される。一方、すべてのワークに対して把持位置が決定されていない場合（ステップＳ１０７：ＮＯ）、すべてのワークに対して把持位置が決定されるまで、ステップＳ１０６以下の処理が繰り返される。より具体的には、たとえば、２番目に共通するワークの数が多い把持可能位置が次の把持位置に決定され、以下、共通するワークの数が多い把持可能位置から順次に、把持位置が未決定のワークがなくなるまで、処理が繰り返される。
【００２９】
以上のとおり、ステップＳ１０５〜ステップＳ１０７に示す処理によれば、ワーク毎に算出される把持可能位置から、より多数のワークに共通する把持可能位置が、ロボットハンドがワークを実際に把持する把持位置に決定される。より具体的には、集計されるワークの数にしたがって、共通するワークの数が多い把持可能位置から順次に、ロボットハンドがワークを把持する際の把持位置に決定される。そして、このような構成にすると、把持位置が共通化されることにより把持位置の数が低減され、ピッキングロボットを動作させる基準経路の種類などが低減される。その結果、ピッキングロボットの動作プログラム数も低減されることにより、たとえば、ピッキングロボット実機での動作プログラムの確認作業工数といった教示工数が低減される。
【００３０】
以下、図６〜図１８を参照して、図４のステップＳ１０１〜Ｓ１０４に示す各処理について詳細に説明する。上述したとおり、図４のステップＳ１０１〜Ｓ１０４に示す処理は、ワーク毎に把持可能位置を算出するものである。
【００３１】
図６は、図４のステップＳ１０１に示す把持位置候補設定処理を説明するためのフローチャートである。上述したとおり、以下の処理に先立って、複数のワークおよび当該ワークを収容する部品箱５００のデータが、たとえば、ＣＡＤデータから取得される。また、以下の処理では、ＣＰＵ４１０は、ワークの輪郭線を取得する取得部（取得手段）、輪郭線から少なくとも一対の平行線を抽出する抽出部（抽出手段）、および平行線の間隔とロボットハンドの開き量とを比較する第１の比較部（第１の比較手段）として機能する。
【００３２】
本実施の形態の把持位置候補設定処理では、まず、ロボットハンドのワークへのアプローチ方向が決定される（ステップＳ２０１）。本実施の形態では、ロボットハンドは、ワークが整列して収容される部品箱の真上から部品箱に進入するため、図７に示されるとおり、部品箱の底面に垂直な方向がアプローチ方向に決定される。
【００３３】
次に、ワークの三次元データからワークの輪郭線が取得される（ステップＳ２０２）。本実施の形態では、図８に示されるとおり、ワークの三次元データを上方から見た場合の輪郭線が取得される。
【００３４】
次に、取得されたワークの輪郭線から、少なくとも一対の平行線が抽出される（ステップＳ２０３）。本実施の形態では、まず、輪郭線から一本の直線が抽出され、当該直線からワークの内側に向かって、対となる直線があるか否かが判断されることにより、少なくとも一対の平行線が抽出される。なお、平行線対を構成する直線の長さが互いに異なる場合は、短い方の直線を基準に平行線対を抽出する。その結果、図９に示されるとおり、たとえば、複数の平行線対（第１〜第１１の平行線対）が抽出される。
【００３５】
次に、ステップＳ２０３の処理で抽出された少なくとも一つの平行線対から一の平行線対が選択され（ステップＳ２０４）、選択された平行線の間隔が算出される（ステップＳ２０５）。より具体的には、平行線対を構成する一の直線と他の直線との間の距離が算出される。そして、算出された平行線の間隔が、ロボットハンドの指部の開き量未満か否かが判断される（ステップＳ２０６）。すなわち、抽出された平行線対をロボットハンドが把持することができるか否かが判断される。
【００３６】
平行線の間隔がロボットハンドの指部の開き量未満の場合（ステップＳ２０６：ＹＥＳ）、平行線対が把持位置設定候補として記憶され（ステップＳ２０７）、ステップＳ２０８以下の処理に移行する。一方、平行線の間隔がロボットハンドの指部の開き量よりも大きい場合（ステップＳ２０６：ＮＯ）、平行線対が把持位置設定候補として記憶されることなく、ステップＳ２０８以下の処理に移行する。
【００３７】
そして、ステップＳ２０８に示す処理では、抽出された他の平行線対があるか否かが判断される。抽出された他の平行線対がない場合（ステップＳ２０８：ＮＯ）、ステップＳ２０９以下の処理に移行する。一方、抽出された他の平行線対がある場合（ステップＳ２０８：ＹＥＳ）、抽出された他の平行線対がなくなるまで、ステップＳ２０４以下の処理が繰り返される。
【００３８】
以上のとおり、ステップＳ２０４〜Ｓ２０８に示す処理によれば、図１０に示されるとおり、ロボットハンドの開き量未満の間隔を有する平行線対（第２〜第６、第８、および第１０の平行線対）が把持位置設定候補として記憶される。言い換えれば、ロボットハンドが把持することが可能な平行線対の候補が算出される。
【００３９】
次に、記憶された平行線対に対して、把持位置候補が設定される（ステップＳ２０９）。本実施の形態では、図１１に示されるとおり、記憶された平行線対を構成する２本の直線上の対応する位置に、所定の間隔で少なくとも一つの把持位置候補が設定される。本実施の形態では、たとえば、平行線対を構成する直線の長さが指部の幅よりも短い場合、直線の中点に把持位置候補が設定され、直線の長さが指部の幅よりも長い場合、指部の幅に基づいて、所定の間隔（たとえば、指部の幅と同一の間隔）で複数の把持位置候補が設定される。
【００４０】
以上のとおり、図６に示すフローチャートによれば、ワークの輪郭線から平行線対が抽出され、ロボットハンドの開き量未満の平行線対に対して把持位置候補が設定される。
【００４１】
図１２は、図４のステップＳ１０２に示す第１の干渉評価処理を説明するためのフローチャートである。このとき、ＣＰＵ４１０は、ロボットハンドが把持対象のワークと干渉するか否かを判断する第１の干渉判断部（第１の干渉判断手段）として機能する。
【００４２】
本実施の形態の第１の干渉評価処理では、まず、図６に示す把持位置候補設定処理で設定された把持位置候補の中から、一の把持位置候補が選択される（ステップＳ３０１）。次に、選択された把持位置候補をロボットハンドが把持する際に、ロボットハンドがワークの他の部分と干渉するか否かが判断される（ステップＳ３０２）。本実施の形態では、たとえば、ロボットハンドの指部の三次元データを、ワークの三次元データ上の把持位置候補に近接させ、ワークとロボットハンドの三次元データの重なり部分を検出することにより、ワークの他の部分とロボットハンドの干渉とが判断される。
【００４３】
ロボットハンドがワークの他の部分と干渉する場合（ステップＳ３０２：ＹＥＳ）、設定された把持位置候補が候補から除外され（ステップＳ３０３）、ステップＳ３０４以下の処理に移行する。一方、ロボットハンドがワークの他の部分と干渉しない場合（ステップＳ３０２：ＮＯ）、設定された把持位置候補が候補から除外されることなく、ステップＳ３０４以下の処理に移行する。
【００４４】
次に、ステップＳ３０４に示す処理では、設定された他の把持位置候補があるか否かが判断される。設定された他の把持位置候補がない場合（ステップＳ３０４：ＮＯ）、処理が終了される。一方、設定された他の把持位置候補がある場合（ステップＳ３０４：ＹＥＳ）、設定された他の把持位置候補がなくなるまで、ステップＳ３０１以下の処理が繰り返される。
【００４５】
以上のとおり、図１２に示すフローチャートによれば、把持位置候補をロボットハンドが把持する際の、ロボットハンドとワークとの干渉が評価される。その結果、図１３に示されるとおり、ロボットハンドとワークとが干渉すると判断された把持位置候補（第２〜第６の平行線対に設定された把持位置候補）は、候補から除外される。言い換えれば、把持位置候補は、ロボットハンドがワークと干渉しない把持位置候補（第８および第１０の平行線対に設定された把持位置候補）に限定される。
【００４６】
図１４は、図４のステップＳ１０３に示す落下評価処理を説明するためのフローチャートである。以下の処理では、ＣＰＵ４１０は、重心位置算出部（重心位置算出手段）、力算出部（力算出手段）、摩擦力算出部（摩擦力算出手段）、第２の比較部（第２の比較手段）、および落下判断部（落下判断手段）として機能する。ここで、重心位置算出部は、ワークの重心位置を算出するものである。力算出部は、ワークの重心位置と把持位置との位置関係と、ワークの重量とに基づいて、当該把持位置に作用する力を算出するものである。摩擦力算出部は、ロボットハンドとワークとの間に作用する静止摩擦力を算出するものである。第２の比較部は、把持位置に作用する力と静止摩擦力とを比較するものである。落下判断部は、ロボットハンドからワークが落下するか否かを判断するものである。
【００４７】
本実施の形態の落下評価処理では、まず、ワークの重心位置が算出される（ステップＳ４０１）。ワークの重心位置は、たとえば、ワークの三次元データから算出される。ワークの三次元データから重心位置を算出する技術自体は、一般的な画像処理技術であるため、詳細な説明は省略する。
【００４８】
次に、一の把持位置候補が選択され（ステップＳ４０２）、選択された把持位置候補においてワークに作用する力が算出される（ステップＳ４０３）。より具体的には、たとえば、ハードディスク４４０にワークの重量が予め記憶されており、ステップＳ４０１の処理で算出されたワークの重心位置と把持位置候補との位置関係と、ワークの重量とから、把持位置候補に作用する力Ｗが算出される。
【００４９】
そして、算出された力Ｗが、ロボットハンドとワークとの間の静止摩擦力Ｆ未満か否かが判断される（ステップＳ４０４）。より具体的には、図１５（Ａ）に示されるとおり、ロボットハンドの把持力（仕様値：グロス値）、ロボットハンドの指部とワークとの接触面積、およびロボットハンドとワークとの間の静止摩擦係数から、ロボットハンドとワークとの間に作用する静止摩擦力Ｆが算出される。そして、静止摩擦係数Ｆと把持位置候補に作用する力Ｗとが比較される。なお、静止摩擦係数および接触面積は、予めハードディスク４４０に記憶されている。
【００５０】
把持位置候補に作用する力が静止摩擦係数よりも大きい場合（ステップＳ４０４：ＮＯ）、比較に用いられた把持位置候補が候補から除外され（ステップＳ４０５）、ステップＳ４０６以下の処理に移行する。一方、把持位置候補に作用する力が静止摩擦係数未満の場合（ステップＳ４０４：ＹＥＳ）、比較に用いられた把持位置候補が候補から除外されることなく、ステップＳ４０６以下の処理に移行する。
【００５１】
そして、ステップＳ４０６に示す処理では、他に把持位置候補があるか否かが判断される。他に把持位置候補がない場合（ステップＳ４０６：ＮＯ）、処理が終了される。一方、他に把持位置候補がある場合、他の把持位置候補がなくなるまで、ステップＳ４０２以下の処理が繰り返される。
【００５２】
以上のとおり、図１４に示すフローチャートによれば、ロボットハンドがワークを持ち上げる際の、ロボットハンドからのワークの落下が評価される。その結果、図１５（Ｂ）に示されるとおり、ワークがロボットハンドから落下すると判断された把持位置候補は、候補から除外される。言い換えれば、把持位置候補は、ロボットハンドからワークが落下することなく搬送されるものにさらに限定される。
【００５３】
図１６は、図４のステップＳ１０４に示す第２の干渉評価処理を説明するためのフローチャートである。なお、上述したとおり、図１６に示す第２の干渉評価処理では、図４のステップＳ１０２に示すロボットハンドとワークの他の部分との干渉を評価する第１の干渉評価処理とは異なり、ロボットハンドと把持対象のワークの周辺部との干渉が評価される。また、以下の処理では、ＣＰＵ４１０は、ロボットハンドが把持対象のワークの周辺部と干渉するか否かを判断する第２の干渉判断部（第２の干渉判断手段）として機能する。
【００５４】
本実施の形態の第２の干渉評価処理では、まず、部品箱に整列されている複数のワークの中から一のワークが選択される（ステップＳ５０１）。次に、選択される一のワークに対して算出されている少なくとも一つの把持位置候補の中から、一の把持位置候補が選択される（ステップＳ５０２）。
【００５５】
そして、選択された把持位置候補をロボットハンドが把持する際に、ロボットハンドがワークの周辺部と干渉するか否かが判断される（ステップＳ５０３）。本実施の形態では、ロボットハンドの指部の三次元データを、ワークの三次元データ上の把持位置候補に近接させ、ワークの周辺部とロボットハンドの三次元データの重なり部分を検出することにより、ロボットハンドとワークの周辺部との干渉とが判断される。なお、ここでいうワークの周辺部とは、部品箱に収容されている他のワーク、部品箱の壁部５１０、および部品箱の仕切り板５２０などである。
【００５６】
ロボットハンドが把持対象のワークの周辺部と干渉する場合（ステップＳ５０３：ＹＥＳ）、評価に用いられた把持位置候補が候補から除外され（ステップＳ５０４）、ステップＳ５０５以下の処理に移行する。一方、ロボットハンドが把持対象のワークの周辺部と干渉しない場合（ステップＳ５０３：ＮＯ）、評価に用いられた把持位置候補が候補から除外されることなく、ステップＳ５０５以下の処理に移行する。
【００５７】
そして、ステップＳ５０５に示す処理では、他に把持位置候補があるか否かが判断される。選択されたワークに他の把持位置候補がある場合（ステップＳ５０５：ＹＥＳ）、選択されているワークについて、他の把持位置候補がなくなるまで、ステップＳ５０２以下の処理が繰り返される。一方、選択されたワークに他の把持位置候補がない場合（ステップＳ５０５：ＮＯ）、部品箱に他のワークが収容されているか否かが判断される（ステップＳ５０６）。
【００５８】
部品箱に他のワークがある場合（ステップＳ５０６：ＹＥＳ）、部品箱に他のワークがなくなるまで、ステップＳ５０１以下の処理が繰り返される。一方、部品箱に他のワークがない場合（ステップＳ５０６：ＮＯ）、処理が終了される。
【００５９】
以上のとおり、図１６に示すフローチャートによれば、部品箱に収容されているすべてのワークに対して、ロボットハンドとワークの周辺部との干渉が評価される。その結果、図１７に示されるとおり、ロボットハンドがワークの周辺部と干渉すると判断された把持位置候補（第３および第４の把持位置候補）は、候補から除外される。言い換えれば、把持位置候補は、ロボットハンドがワークの周辺部と干渉しない把持位置候補（第１および第２の把持位置候補）にさらに限定される。
【００６０】
そして、図４のステップＳ１０５以下の処理で説明したとおり、ワーク毎に算出された複数の把持可能位置に対して、把持可能位置毎に当該把持可能位置が共通するワークの数が集計され、集計されるワークの数にしたがって、共通するワークの数が多い把持可能位置から順次に、ロボットハンドがワークを把持する際の把持位置に決定される。図１８に示されるとおり、共通するワークの数が同数の把持可能位置（第１および第２の把持可能位置）が算出される場合には、たとえば、番号の小さい把持可能位置、つまり、第１の把持可能位置が、把持位置に決定されることができる。そして、決定された把持位置に基づいて仮想ロボットが動作され、ピッキングロボットを実際に動作させるための教示データが作成される。
【００６１】
以上のとおり説明された本実施の形態は、以下の効果を奏する。
【００６２】
本実施の形態の教示装置は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する算出部と、ワーク毎に算出される少なくとも一つの把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持可能位置が共通するワークをロボットハンドが把持する際の把持可能位置に決定する決定部と、を有する。したがって、整列されている複数のワークの把持位置が共通化されるため、ロボットハンドにピッキング動作を教示する際の把持位置の数が低減される。その結果、たとえば、動作プログラム数が低減され、ピッキングロボットへの教示工数が低減される。さらに、教示工数が低減されることにより、把持精度が向上される。
【００６３】
本実施の形態の教示装置は、算出された把持可能位置毎に、当該把持可能位置が共通するワークの数を集計する集計部をさらに有し、決定部は、集計されるワークの数にしたがって、共通するワークの数が多い把持可能位置から順次に、ロボットハンドがワークを把持する際の把持位置に決定する。したがって、ピッキングロボットに教示する把持位置の数を最少化することができる。
【００６４】
本実施の形態の教示装置は、ワークの輪郭線を取得する取得部と、取得されるワークの輪郭線から、少なくとも一対の平行線を抽出する抽出部と、をさらに有し、算出部は、抽出される平行線に基づいて、把持可能位置を算出する。したがって、ロボットハンドがワークを確実に把持することができる。さらに、平行線対がワークの輪郭線から抽出されるため、把持可能位置をもれなく抽出することができる。
【００６５】
本実施の形態の教示装置は、抽出される平行線の間隔とロボットハンドの開き量とを比較する第１の比較部をさらに有し、算出部は、平行線の間隔がロボットハンドの開き量未満の場合、平行線に基づいて、把持可能位置を算出する。したがって、ロボットハンドの開き量から把持可能位置が算出され、把持可能位置が精査される。
【００６６】
本実施の形態の教示装置は、ロボットハンドがワークを把持する際に、当該ロボットハンドが把持対象のワークと干渉するか否かを判断する第１の干渉判断部をさらに有し、算出部は、ロボットハンドがワークと干渉しない場合、当該ロボットハンドによるワークの把持位置を、把持可能位置として算出する。したがって、単体のワークに対して、ロボットハンドの干渉から、把持可能位置を算出することができる。
【００６７】
本実施の形態の教示装置は、ロボットハンドがワークを把持する際に、当該ロボットハンドが把持対象のワークの周辺部と干渉するか否かを判断する第２の干渉判断部をさらに有し、算出部は、ロボットハンドがワークの周辺部と干渉しない場合、当該ロボットハンドによるワークの把持位置を、把持可能位置として算出する。したがって、荷姿状態のワークに対して、把持可能位置を算出することができる。
【００６８】
本実施の形態の教示装置は、ロボットハンドからワークが落下するか否かを判断する落下判断部をさらに有し、算出部は、ロボットハンドからワークが落下しない場合、当該ロボットハンドによるワークの把持位置を、把持可能位置として算出する。したがって、ワークを搬送可能な把持可能位置を算出することができる。さらに、ワークが落下するか否かがピッキング動作前に評価されるため、ピッキングの成功率が向上される。
【００６９】
本実施の形態の教示装置は、ワークの重心位置を算出する重心位置算出部と、算出されたワークの重心位置と把持位置との位置関係と、ワークの重量とに基づいて、当該把持位置に作用する力を算出する力算出部と、ロボットハンドとワークとの間に作用する静止摩擦力を算出する摩擦力算出部と、把持位置に作用する力と静止摩擦力とを比較する第２の比較部と、をさらに有し、落下判断部は、把持位置に作用する力が静止摩擦力未満の場合、ワークが落下しないと判断する。したがって、ワークが落下するか否かを正確に評価することができるため、ピッキング成功率がさらに向上される。
【００７０】
本実施の形態の教示方法は、整列されている複数のワークそれぞれについて、ロボットハンドによる把持可能位置を算出する段階と、ワーク毎に算出される把持可能位置のうち、より多数のワークに共通する把持可能位置を、当該把持位置が共通するワークをロボットハンドが把持する際の把持位置に決定する段階と、を有する。したがって、整列されている複数のワークの把持位置が共通化されるため、ロボットハンドにピッキング動作を教示する際の把持位置の数が低減される。その結果、たとえば、動作プログラム数が低減され、ピッキングロボットへの教示工数が低減される。さらに、教示工数が低減されることにより、把持精度が向上される。
【００７１】
以上のとおり、本実施の形態において、本発明の教示装置および教示方法を説明した。しかしながら、本発明は、その技術思想の範囲内において当業者が適宜に追加、変形、省略することができることはいうまでもない。
【００７２】
たとえば、本実施の形態では、ロボットハンドの開き量と平行線の間隔とが比較された。しかしながら、ロボットハンドの開き量に対して、余裕代を持たせ、ロボットハンドの開き量から余裕代を差し引いた値と平行線の間隔とが比較されることができる。同様に、静止摩擦係数と把持位置に作用する力とが比較される場合、静止摩擦係数から余裕代を差し引いた値と、把持位置に作用する力とが比較されることができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の一実施の形態における教示装置によってオフライン教示されるピッキングロボットを示す図である。
【図２】図１に示す部品箱およびワークを説明するための図である。
【図３】図１に示す教示装置の概略構成を示すブロック図である。
【図４】図１に示す教示装置における教示処理を説明するためのフローチャートである。
【図５】図４のステップＳ１０５〜Ｓ１０７に示す把持位置決定処理を説明するための図である。
【図６】図４のステップＳ１０１に示す把持位置候補設定処理を説明するためのフローチャートである。
【図７】図６のステップＳ２０１に示すアプローチ方向決定処理を説明するための図である。
【図８】図６のステップＳ２０２に示すワーク輪郭線取得処理を説明するための図である。
【図９】図６のステップＳ２０３に示す平行線対抽出処理を説明するための図である。
【図１０】図６のステップＳ２０４〜Ｓ２０８に示す平行線対記憶処理を説明するための図である。
【図１１】図６のステップＳ２０９に示す設定処理を説明するための図である。
【図１２】図４のステップＳ１０２に示す第１の干渉評価処理を説明するためのフローチャートである。
【図１３】図１２に示す第１の干渉評価処理を説明するための図である。
【図１４】図４のステップＳ１０３に示す落下評価処理を説明するためのフローチャートである。
【図１５】図１４に示す落下評価処理を説明するための図である。
【図１６】図４のステップＳ１０４に示す第２の干渉評価処理を説明するためのフローチャートである。
【図１７】図１６に示す第２の干渉評価処理を説明するための図である。
【図１８】図４のステップＳ１０５〜Ｓ１０７に示す把持位置決定処理を説明するための図である。
【符号の説明】
【００７４】
１００    ピッキングロボット、
２００    カメラ、
３００    制御装置、
４００    教示装置、
５００    部品箱。
【図１】
0004811136.tif 000002
【図２】
0004811136.tif 000003
【図３】
0004811136.tif 000004
【図４】
0004811136.tif 000005
【図５】
0004811136.tif 000006
【図６】
0004811136.tif 000007
【図７】
0004811136.tif 000008
【図８】
0004811136.tif 000009
【図９】
0004811136.tif 000010
【図１０】
0004811136.tif 000011
【図１１】
0004811136.tif 000012
【図１２】
0004811136.tif 000013
【図１３】
0004811136.tif 000014
【図１４】
0004811136.tif 000015
【図１５】
0004811136.tif 000016
【図１６】
0004811136.tif 000017
【図１７】
0004811136.tif 000018
【図１８】
0004811136.tif 000019