(57)【要約】【課題】教示作業に要する時間を短縮することができる把持候補位置選出装置を提供する。【解決手段】ワークの形状モデルを構成する複数の形状片に対して、法線ベクトルをそれぞれ計算する法線ベクトル計算手段と、複数の形状片のなかから、計算される法線ベクトルの内積が閾値以下であって、かつ、一の形状片の法線から他の形状片までの距離が許容範囲内に含まれる形状片の対を、ロボットハンドによる把持候補位置として選出する候補位置選出手段と、を有する。【選択図】図１
2008272886.tif 000002
【特許請求の範囲】
【請求項１】
ワークの形状モデルを構成する複数の形状片に対して、法線ベクトルをそれぞれ計算する法線ベクトル計算手段と、
前記複数の形状片のなかから、前記計算される法線ベクトルの内積が閾値以下であって、かつ、一の形状片の法線から他の形状片までの距離が許容範囲内に含まれる形状片の対を、ロボットハンドによる把持候補位置として選出する候補位置選出手段と、を有することを特徴とする把持候補位置選出装置。
【請求項２】
前記候補位置選出手段は、一の形状片から他の形状片に向かう方向ベクトルと、前記一の形状片の法線ベクトルとの内積が許容値以下の形状片の対を、前記一の形状片の法線から前記他の形状片までの距離が許容範囲内に含まれる形状片の対として選出することを特徴とする請求項１に記載の把持候補位置選出装置。
【請求項３】
前記形状片の対の間隔と前記ロボットハンドの開き量とを比較する比較手段と、
前記形状片の対の間隔と前記開き量との比較結果に基づいて、前記把持候補位置として選出された形状片の対を限定する第１の限定手段と、をさらに有することを特徴とする請求項１に記載の把持候補位置選出装置。
【請求項４】
前記ワークの同一平面上で一の形状片から隣接する他の形状片に向かう放射ベクトルを計算する放射ベクトル計算手段と、
複数の前記放射ベクトルの内積の和に基づいて、前記把持候補位置として選出された形状片の対を限定する第２の限定手段と、をさらに有することを特徴とする請求項１に記載の把持候補位置選出装置。
【請求項５】
前記ロボットハンドが前記把持候補位置を把持する際の前記ロボットハンドの前記ワークへの接近方向を示す接近候補ベクトルを計算する接近候補ベクトル計算手段と、
前記接近候補ベクトルにしたがって、前記ロボットハンドが前記ワークに接近する際に、当該ロボットハンドが前記ワークと干渉するか否かを判断する干渉判断手段と、
前記ワークと前記ロボットハンドとが干渉する場合、前記接近候補ベクトルを候補から除外する接近候補ベクトル選出手段と、をさらに有することを特徴とする請求項１に記載の把持候補位置選出装置。
【請求項６】
請求項１に記載の把持候補位置選出装置で選出された把持候補位置に基づいて、ロボットハンドがワークに接近する把持経路を生成することを特徴とする把持経路生成装置。
【請求項７】
前記把持候補位置に基づいて計算される接近候補ベクトルと、前記ロボットハンドから前記ワークに向かう進入ベクトルとの内積を計算する内積計算手段と、
前記計算される内積が最大となる接近候補ベクトルにしたがって、前記ロボットハンドの把持経路を生成する経路生成手段と、を有することを特徴とする請求項６に記載の把持経路生成装置。
【請求項８】
ワークの形状モデルを構成する複数の形状片に対して、法線ベクトルをそれぞれ計算する段階と、
前記複数の形状片のなかから、前記計算される法線ベクトルの内積が閾値以下であって、かつ、一の形状片の法線から他の形状片までの距離が許容範囲内に含まれる形状片の対を、ロボットハンドによる把持候補位置として選出する段階と、を有することを特徴とする把持候補位置選出方法。
【請求項９】
請求項８に記載の把持候補位置選出方法で選出された把持候補位置に基づいて、ロボットハンドがワークに接近する把持経路を生成することを特徴とする把持経路生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持候補位置選出装置、把持候補位置選出方法、把持経路生成装置、および把持経路生成方法に関する。
【背景技術】
【０００２】
近年、車両の組立工程において、サプライヤからの供給部品を生産順序にしたがって並べ替え、組立ラインに同期させつつ供給するロットピッキングが実施されている。
【０００３】
このようなロットピッキングでは、ピッキングロボットに種々の部品をピッキングさせる技術が開発されている。ピッキングロボットを制御して種々の部品をピッキングさせる技術としては、下記の特許文献１に開示される把持位置姿勢教示御装置が知られている。
【０００４】
特許文献１の教示装置は、２つの把持位置の三次元位置データを部品把持データとして設定する部品把持データ設定部と、部品把持データに基づいてハンドの把持位置姿勢を計算する把持位置姿勢計算部と、を備える。このような構成の教示装置によれば、部品毎に指定される２つの把持位置に基づいて、ロボットの把持位置および姿勢が計算されるため、ロボットを実際に動作させることなく、把持位置および姿勢を教示することができる。
【特許文献１】特開平１１−５８２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記教示装置では、作業者が画像上で部品毎に２点の把持位置を指定するため、教示作業に多くの時間を必要とするという問題がある。
【０００６】
本発明は、上記の問題を解決するためになされたものである。したがって、本発明の目的は、教示作業に要する時間を短縮することができる把持候補位置選出装置および把持候補位置選出方法を提供することである。
【０００７】
また、本発明の他の目的は、上記把持候補位置選出装置および把持候補位置選出方法を利用した把持経路生成装置および把持経路生成方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の上記目的は、下記の手段によって達成される。
【０００９】
本発明の把持候補位置選出装置は、ワークの形状モデルを構成する複数の形状片に対して、法線ベクトルをそれぞれ計算する法線ベクトル計算手段と、前記複数の形状片のなかから、前記計算される法線ベクトルの内積が閾値以下であって、かつ、一の形状片の法線から他の形状片までの距離が許容範囲内に含まれる形状片の対を、ロボットハンドによる把持候補位置として選出する候補位置選出手段と、を有することを特徴とする。
【００１０】
本発明の把持候補位置選出方法は、ワークの形状モデルを構成する複数の形状片に対して、法線ベクトルをそれぞれ計算する段階と、前記複数の形状片のなかから、前記計算される法線ベクトルの内積が閾値以下であって、かつ、一の形状片の法線から他の形状片までの距離が許容範囲内に含まれる形状片の対を、ロボットハンドによる把持候補位置として選出する段階と、を有することを特徴とする。
【００１１】
本発明の把持経路生成装置は、上記把持候補位置選出装置で選出された把持候補位置に基づいて、ロボットハンドがワークに接近する把持経路を生成することを特徴とする。
【００１２】
本発明の把持経路生成方法は、上記把持候補位置選出方法で選出された把持候補位置に基づいて、ロボットハンドがワークに接近する把持経路を生成することを特徴とする。
【発明の効果】
【００１３】
本発明の把持候補位置選出装置および把持候補位置選出方法によれば、ワークの形状データから把持候補位置が自動的に選出されるため、教示作業に要する時間が短縮される。
【００１４】
本発明の把持経路生成装置および把持経路生成方法によれば、予め選出された把持候補位置に基づいて把持経路が生成されるため、ピッキング作業に要する時間が短縮される。
【発明を実施するための最良の形態】
【００１５】
以下、添付の図面を参照して本発明の実施の形態を詳細に説明する。なお、図中、同様の部材には同一の符号を用いた。
【００１６】
図１は、本発明の一実施の形態におけるピッキングシステムの概略構成を示す図である。図１に示すとおり、本実施の形態のピッキングシステムは、ピッキングロボット１００、把持候補位置選出装置２００、および把持経路生成装置３００を備える。また、本実施の形態では、同一形状の剛体のワークがバラ積みされた状態で、部品箱４００に収容されている。
【００１７】
以下に説明する実施の形態では、ピッキングロボット１００が部品箱４００に収容されているワークを把持するに先立って、把持候補位置選出装置２００でのオフライン処理によって、ピッキングロボット１００がワークを把持することができるワーク上の把持候補位置が複数選出される。そして、把持経路生成装置３００でのオンライン処理によって、複数の把持候補位置のなかから、一の把持候補位置が選択される。選択された把持候補位置でワークを把持するように、ピッキングロボット１００の動作が制御される。以下、本実施の形態のピッキングロボット１００、把持候補位置選出装置２００、および把持経路生成装置３００を順次に説明する。
【００１８】
＜ピッキングロボット＞
ピッキングロボット１００は、部品箱４００からワークを取り出すものである。ピッキングロボット１００は、ロボット本体部１１０およびロボット本体部１１０の先端部に設けられたハンド部１２０を備える。ロボット本体部１１０は、把持経路生成装置３００によって制御され、ハンド部１２０を部品箱４００の近傍まで誘導するとともに、ハンド部１２０の姿勢を補正しつつ、ハンド部１２０をワークにアプローチさせる。ハンド部１２０は、対向２指型のロボットハンドであって、２つの指部が平行移動することによってワークを挟持する。また、ハンド部１２０の近傍には、部品箱４００に収容されているワークの画像情報を取得するカメラ１３０が設けられている。なお、ピッキングロボット１００自体は、一般的な多関節ロボットであるため、詳細な説明は省略する。
【００１９】
＜把持候補位置選出装置＞
把持候補位置選出装置２００は、ピッキングロボット１００のハンド部１２０がワークを把持するに先立って、ハンド部１２０によるワークの把持候補位置を複数選出するものである。把持候補位置選出装置２００は、ワークの形状モデルを構成する複数の三角パッチ（形状片）のなかから、後述する把持条件を満たす三角パッチの対を、ハンド部１２０による把持候補位置として選出する。
【００２０】
また、本実施の形態の把持候補位置選出装置２００は、ハンド部１２０のワークへのアプローチ方向を示すアプローチ候補ベクトルを、把持候補位置毎に選出する。
【００２１】
図２は、本実施の形態の把持候補位置選出装置の概略構成を示すブロック図である。図２に示すとおり、把持候補位置選出装置２００は、たとえば、パーソナルコンピュータまたはワークステーションといったコンピュータであって、ＣＰＵ２１０、ＲＡＭ２２０、ＲＯＭ２３０、ハードディスク２４０、入力部２５０、表示部２６０、およびインタフェース２７０を有する。これらの各部は、バスを介して相互に接続されている。
【００２２】
ＣＰＵ２１０は、法線ベクトル計算部（法線ベクトル計算手段）、候補位置選出部（候補位置選出手段）、比較部（比較手段）、第１限定部（第１の限定手段）、放射ベクトル計算部（放射ベクトル計算手段）、第２限定部（第２の限定手段）、接近候補ベクトル計算部（接近候補ベクトル計算手段）、干渉判断部（干渉判断手段）、および接近候補ベクトル選出部（接近候補ベクトル選出手段）として機能する。ここで、法線ベクトル計算部は、ワークの形状モデルを構成する複数の三角パッチに対して、法線ベクトルを計算するものである。また、候補位置選出部は、複数の三角パッチのなかから、法線ベクトルの内積が閾値以下であって、かつ、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を、ハンド部１２０による把持候補位置として選出するものである。
【００２３】
比較部は、三角パッチの対の間隔とハンド部１２０の開き量とを比較するものであり、第１限定部は、比較部での比較結果に基づいて、把持候補位置として選出された三角パッチの対を限定するものである。また、放射ベクトル計算部は、ワークの同一平面上で一の三角パッチから隣接する他の三角パッチに向かう放射ベクトルを計算するものであり、第２限定部は、複数の放射ベクトルの内積の和に基づいて、把持候補位置として選出された三角パッチの対を限定するものである。
【００２４】
接近候補ベクトル計算部は、ハンド部１２０が把持候補位置を把持する際のワークへのアプローチ方向を示すアプローチ候補ベクトルを計算するものであり、干渉判断部は、アプローチ候補ベクトルにしたがって、ハンド部１２０がワークにアプローチする際に、ハンド部１２０がワークと干渉するか否かを判断するものである。接近候補ベクトル選出部は、ワークとハンド部１２０とが干渉する場合、アプローチ候補ベクトルを候補から除外するものである。
【００２５】
ＲＡＭ２２０は、ワークおよびハンド部１２０の形状データなどを一時的に記憶するものであり、ＲＯＭ２３０は、制御プログラムおよびパラメータなどを予め記憶するものである。ハードディスク２４０は、ＣＰＵ２１０が実行する各種処理のプログラムを格納する。
【００２６】
入力部２５０は、たとえば、キーボード、タッチパネル、およびマウスなどのポインティングデバイスであり、表示部２６０は、たとえば、液晶ディスプレイまたはＣＲＴディスプレイなどである。
【００２７】
インタフェース２７０は、外部のＣＡＤ装置などからワークおよびハンド部１２０の形状データの入力を受け付ける一方で、把持経路生成装置３００に把持位置姿勢データを出力する。
【００２８】
＜把持経路生成装置＞
把持経路生成装置３００は、把持候補位置選出装置２００で選出される複数の把持候補位置のなかから一の把持候補位置を選択して、ハンド部１２０がワークにアプローチする把持経路を生成するものである。
【００２９】
本実施の形態の把持経路生成装置３００は、把持候補位置毎に複数選出されるアプローチ候補ベクトルのなかから、一のアプローチ候補ベクトルを選択することによって、ハンド部１２０の把持経路を生成する。
【００３０】
図３は、本実施の形態の把持経路生成装置の概略構成を示すブロック図である。図３に示すとおり、把持経路生成装置３００は、たとえば、パーソナルコンピュータまたはワークステーションといったコンピュータであって、ＣＰＵ３１０、ＲＡＭ３２０、ＲＯＭ３３０、ハードディスク３４０、入力部３５０、表示部３６０、およびインタフェース３７０を有する。これらの各部は、バスを介して相互に接続されている。
【００３１】
ＣＰＵ３１０は、ハンド部１２０からワークに向かう進入ベクトルと、アプローチ候補ベクトルとの内積を計算する内積計算部（内積計算手段）、および、進入ベクトルとの内積が最大となるアプローチ候補ベクトルにしたがって、ハンド部１２０の把持経路を生成する経路生成部（経路生成手段）として機能する。
【００３２】
ＲＡＭ３２０は、アプローチ候補ベクトルなどを一時的に記憶するものであり、ＲＯＭ３３０は、制御プログラムおよびパラメータなどを予め記憶するものである。ハードディスク３４０は、ＣＰＵ３１０が実行する各種処理のプログラムを格納する。
【００３３】
入力部３５０は、たとえば、キーボード、タッチパネル、およびマウスなどのポインティングデバイスであり、表示部３６０は、たとえば、液晶ディスプレイまたはＣＲＴディスプレイなどである。
【００３４】
インタフェース３７０は、把持候補位置選出装置２００から把持位置姿勢データの入力を受け付ける一方で、ピッキングロボット１００に動作指令を出力する。
【００３５】
以上のとおり、構成される本実施の形態のピッキングシステムによれば、ピッキングロボット１００がワークを把持する動作に先立って、ワークの形状モデルを構成する複数の三角パッチのなかから、後述する把持条件を満たす三角パッチの対が、ハンド部１２０による把持候補位置として複数選出される。そして、把持候補位置毎に複数選出されるアプローチ候補ベクトルのなかから一のアプローチ候補ベクトルが選択され、選択された一のアプローチ候補ベクトルに基づいて、ハンド部１２０の把持経路が生成される。以下、図４〜図２１を参照して、本実施の形態のピッキングシステムにおける処理について詳細に説明する。
【００３６】
まず、図４を参照して、図１に示す把持候補位置選出装置２００が、ワークの形状モデルを構成する三角パッチのなかから把持候補位置を選出する処理について説明する。
【００３７】
図４は、図１に示す把持候補位置選出装置における基本的な処理を示すフローチャートである。本実施の形態における把持候補位置選出処理では、まず、ワークの形状モデルを構成する三角パッチのなかから把持候補位置が選出される。そして、選出された把持候補位置毎に、ピッキングロボット１００がワークを把持する際のアプローチ候補ベクトルが複数選出される。
【００３８】
図４に示すとおり、本実施の形態のおける把持候補位置選出処理では、まず、ワークの形状データが読み込まれる（ステップＳ１０１）。本実施の形態では、外部のＣＡＤ装置からワークの形状モデルを構成するＣＡＤデータが読み込まれる。読み込まれたＣＡＤデータは、たとえば、ＳＴＬ（Ｓｔｅｒｅｏ  Ｌｉｔｈｏｇｒａｐｈｙ  Ｉｎｔｅｒｆａｃｅ  Ｆｏｒｍａｔ）に準じて三角パッチ化される。
【００３９】
次に、ワークの形状モデルを構成する三角パッチに対して、法線ベクトルが計算される（ステップＳ１０２）。より具体的には、図５に示すとおり、ワークの形状モデルを構成する三角パッチ毎に外向きの法線ベクトルＮＶが計算される。各三角パッチの法線ベクトルＮＶは、三角パッチを構成する３点の座標値より算出される。また、面の表裏情報は、ワークのＣＡＤデータから引き継がれる。
【００４０】
次に、法線ベクトルが計算された複数の三角パッチのなかから、内積が閾値以下となる法線ベクトルを有する三角パッチの対が選出される（ステップＳ１０３）。本実施の形態では、ステップＳ１０２に示す処理で法線ベクトルが計算された複数の三角パッチのなかから、法線ベクトルの内積が閾値以下である三角パッチの対が選出されることによって、互いに逆向きの法線ベクトルを有する三角パッチの対が選出される。ステップＳ１０３に示す処理の詳細については後述する。
【００４１】
次に、法線ベクトルの内積が閾値以下である三角パッチの対のなかから、三角パッチの対をなす一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対が選出される（ステップＳ１０４）。本実施の形態では、三角パッチの対を構成する一の三角パッチから他の三角パッチに向かう方向ベクトルと、一の三角パッチの法線ベクトルとの内積を計算することによって、一の三角パッチの法線から他の三角パッチまでの距離が許容値以内に含まれる三角パッチの対が選出される。ステップＳ１０４に示す処理の詳細については後述する。
【００４２】
以上のとおり、ステップＳ１０３〜Ｓ１０４に示す処理によれば、図６に示すとおり、ワークの形状モデルを構成する複数の三角パッチのなかから、法線ベクトルＮＶ１，ＮＶ２の内積が閾値以下であって、かつ、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチＭ１，Ｍ２の対が、ハンド部１２０による把持候補位置として選出される。
【００４３】
次に、ステップＳ１０１〜Ｓ１０４に示す処理で把持候補位置として選出された複数の三角パッチの対のなかから、三角パッチの対の間隔がハンド部１２０の開き量の範囲外にある三角パッチの対が除外される（ステップＳ１０５）。本実施の形態では、三角パッチの対の間隔と、ハンド部１２０の開き量との比較結果に基づいて、ステップＳ１０１〜Ｓ１０４に示す処理で把持候補位置として選出された複数の三角パッチの対が、ハンド部１２０の開き量の範囲内に含まれるものに限定される。ステップＳ１０５に示す処理の詳細については後述する。
【００４４】
次に、ステップＳ１０５に示す処理で限定された複数の三角パッチの対のなかから、ワークを構成する一対の平面の端部に位置する三角パッチの対が除外される（ステップＳ１０６）。本実施の形態では、一対の平面上に三角パッチの対が設定数以上存在する場合、一対の平面上に存在する複数の三角パッチの対のなかから平面端部に位置する三角パッチの対が削除される。言い換えれば、ステップＳ１０５に示す処理で限定された複数の三角パッチの対のうち、一対の平面上に設定数以上含まれる複数の三角パッチの対が、平面の中央部に位置するものに限定される。ステップＳ１０６に示す処理の詳細については後述する。
【００４５】
以上のとおり、ステップＳ１０５〜Ｓ１０６に示す処理によれば、ステップＳ１０１〜Ｓ１０４に示す処理で把持候補位置として選出された複数の三角パッチが、上述した２つの把持条件に基づいて限定される。
【００４６】
次に、把持候補位置として選出された三角パッチの対をピッキングロボット１００が把持する際に、ハンド部１２０とワークとが干渉するか否かが判断される（ステップＳ１０７）。本実施の形態では、まず、把持候補位置毎に、ハンド部１２０がワークにアプローチする方向を示すアプローチ候補ベクトルが複数選出される。そして、選出されたアプローチ候補ベクトルにしたがってハンド部１２０がワークにアプローチする際に、ハンド部１２０がワークと干渉するか否かが判断される。その結果、ワークの把持候補位置毎にワークとハンド部１２０とが干渉しないアプローチ候補ベクトルが選出される。ステップＳ１０７に示す処理の詳細については後述する。
【００４７】
次に、ステップＳ１０７に示す処理で選出されたアプローチ候補ベクトルに基づいて、把持位置姿勢データが作成される（ステップＳ１０８）。本実施の形態では、ステップＳ１０１〜Ｓ１０６に示す処理で把持候補位置として選出された複数の三角パッチの対と、ステップＳ１０７に示す処理で三角パッチの対毎に複数選出されたアプローチ候補ベクトルについての情報を含む把持位置姿勢データが作成される。
【００４８】
そして、ステップＳ１０５に示す処理で算出された三角パッチの対の間隔が、ハンド部１２０の開き量を示す開き量データとして添付され、把持位置姿勢データが出力される（ステップＳ１０９，Ｓ１１０）。
【００４９】
以上のとおり、図４に示すフローチャートの処理によれば、まず、ワークの形状モデルを構成する複数の三角パッチのなかから、ハンド部１２０による把持候補位置として複数の三角パッチの対が選出される。そして、選出された把持候補位置毎に、アプローチ候補ベクトルが複数選出され、把持位置姿勢データが作成される。以下、図７〜図１９を参照して、図４のフローチャートに示す各処理について詳細に説明する。
【００５０】
図７は、図４のステップＳ１０３に示す内積評価処理を説明するためのフローチャートである。上述したとおり、図７のフローチャートに示す処理では、複数の三角パッチのなかから、法線ベクトルの内積が閾値以下となる三角パッチの対が選出される。
【００５１】
図７に示すとおり、本実施の形態における内積評価処理では、まず、法線ベクトルが計算された複数の三角パッチのなかから、一対の三角パッチが選択される（ステップＳ２０１）。
【００５２】
次に、選択された三角パッチの対の内積が計算され、計算された内積が閾値以下か否かが判断される（ステップＳ２０２，Ｓ２０３）。本実施の形態では、図８（Ａ）の破線Ｖ１に示すとおり、互いに逆向きの法線ベクトルを有する複数の三角パッチの対が把持候補位置として選出されるように、たとえば、単位ベクトルに正規化された法線ベクトルＮＶ１，ＮＶ２の内積が−０．９（ＮＶ１・ＮＶ２＝−０．９）以下であるか否かが判断される。
【００５３】
法線ベクトルＮＶ１，ＮＶ２の内積が閾値よりも大きい場合（ステップＳ２０３：ＮＯ）、ステップＳ２０５以下の処理に移行する。一方、内積が閾値以下の場合（ステップＳ２０３：ＹＥＳ）、対応する三角パッチの対が選出される（ステップＳ２０４）。そして、次の三角パッチの対があるか否かが判断され（ステップＳ２０５）、次の三角パッチの対がなくなるまで、ステップＳ２０１〜Ｓ２０４に示す処理が繰り返される。
【００５４】
以上のとおり、図７に示すフローチャートの処理によれば、法線ベクトルが計算された三角パッチのなかから、法線ベクトルの内積が閾値以下の複数の三角パッチの対が選出される。その結果、図７に示すフローチャートの処理によれば、図８（Ａ）の破線Ｖ１に示すとおり、複数の三角パッチのなかから、互いに逆向きの法線ベクトルＮＶ１，ＮＶ２を有する複数の三角パッチの対（対群Ｖ１）が選出される。選出された複数の三角パッチの対は、たとえば、ＲＡＭ２２０に格納される。
【００５５】
次に、図９を参照して、図４のステップＳ１０４に示す位置関係評価処理について詳細に説明する。上述したとおり、図９のフローチャートに示す処理では、図８（Ａ）に示すとおり、逆向きの法線ベクトルを有する複数の三角パッチの対（対群Ｖ１）のなかから、三角パッチの対を構成する一の三角パッチから他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対（対群Ｖ２）が選出される。
【００５６】
図９に示すとおり、本実施の形態における位置関係評価処理では、まず、図７に示すフローチャートの処理で選出された逆向きの法線ベクトルを有する複数の三角パッチの対のなかから、一の三角パッチの対が選択される（ステップＳ３０１）。
【００５７】
次に、選択された三角パッチの対を構成する一の三角パッチから他の三角パッチに向かう方向ベクトルが算出される（ステップＳ３０２）。本実施の形態では、図８（Ｂ）に示すとおり、一の三角パッチＭ１の中点（重心）から他の三角パッチＭ２の中点に向かう方向ベクトルＭＰが算出される。
【００５８】
次に、方向ベクトルＭＰと法線ベクトルＮＶ１との内積が計算され、計算された内積が閾値以下か否かが判断される（ステップＳ３０３，Ｓ３０４）。本実施の形態では、ほぼ同一直線上に位置する法線ベクトルを有する三角パッチの対を把持候補位置として選出することができるように、たとえば、単位ベクトルに正規化された法線ベクトルＮＶ１と方向ベクトルＭＰとの内積が−０．９（ＭＰ・ＮＶ１＝−０．９）以下であるか否かが判断される。
【００５９】
ベクトルの内積が閾値以下の場合（ステップＳ３０４：ＹＥＳ）、ステップＳ３０６以下の処理に移行する。一方、ベクトルの内積が閾値よりも大きい場合（ステップＳ３０４：ＮＯ）、選択された三角パッチの対が候補から除外される（ステップＳ３０５）。そして、次の三角パッチの対があるか否かが判断され（ステップＳ３０６）、次の三角パッチの対がなくなるまで、ステップＳ３０１〜Ｓ３０５に示す処理が繰り返される。
【００６０】
以上のとおり、図９に示すフローチャートの処理によれば、図８（Ａ）に示すとおり、逆向きの法線ベクトルを有する複数の三角パッチの対（対群Ｖ１）のなかから、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチＭ１，Ｍ２ｂの対（対群Ｖ２）が選出される。
【００６１】
次に、図１０を参照して、図４のステップＳ１０５に示す間隔評価処理について詳細に説明する。上述したとおり、図１０のフローチャートに示す処理では、図１１に示すとおり、把持候補位置として選出された複数の三角パッチの対（対群Ｖ２）が、ハンド部１２０の開き量の範囲内に含まれる三角パッチの対（対群Ｖ３）に限定される。
【００６２】
図１０に示すとおり、本実施の形態における間隔評価処理では、まず、図７および図９に示すフローチャートの処理で選出された複数の三角パッチの対のなかから、一の三角パッチの対が選択される（ステップＳ４０１）。
【００６３】
次に、選択された三角パッチの対をなす一の三角パッチと他の三角パッチとの間隔が算出される（ステップＳ４０２）。本実施の形態では、図１１（Ａ）に示すとおり、一の三角パッチＭ１の中点と他の三角パッチＭ２の中点との距離ＬＨが算出される。
【００６４】
次に、算出された距離ＬＨが開き量の上限値（ｍａｘ）未満か否かが判断される（ステップＳ４０３）。距離ＬＨが上限値以上の場合（ステップＳ４０３：ＮＯ）、三角パッチの対が把持候補位置から除外されて（ステップＳ４０４）、ステップＳ４０７以下の処理に移行する。一方、距離ＬＨが上限値未満の場合（ステップＳ４０３：ＹＥＳ）、距離ＬＨが開き量の下限値（ｍｉｎ）以上か否かが判断される（ステップＳ４０５）。
【００６５】
距離ＬＨが下限値未満の場合（ステップＳ４０５：ＮＯ）、三角パッチの対が把持候補位置から除外されて（ステップＳ４０４）、ステップＳ４０７以下の処理に移行する。一方、距離ＬＨが下限値以上の場合（ステップＳ４０５：ＹＥＳ）、ピッキングロボット１００を制御する際のハンド部１２０の開き量データとして距離ＬＨが記憶される（ステップＳ４０６）。
【００６６】
そして、次の三角パッチの対があるか否かが判断され（ステップＳ４０７）、次の三角パッチがなくなるまで、ステップＳ４０１〜Ｓ４０６に示す処理が繰り返される。
【００６７】
以上のとおり、図１０に示すフローチャートの処理によれば、図１１（Ａ）に示すとおり、把持候補位置として選出された複数の三角パッチの対（対群Ｖ２）が、ハンド部１２０の開き量の範囲内に含まれる三角パッチの対（対群Ｖ３）に限定される。
【００６８】
次に、図１２を参照して、図４のステップＳ１０６に示す端部候補除外処理について詳細に説明する。上述したとおり、図１２のフローチャートに示す処理では、図１３に示すとおり、把持候補位置として選択された複数の三角パッチの対のうち、ワークを構成する一対の平面上に設定数以上存在する複数の三角パッチの対（対群Ｖ４）のなかから、平面の端部に位置する三角パッチの対が除外される。
【００６９】
図１２に示すとおり、本実施の形態における端部候補除外処理では、まず、図１０に示すフローチャートの処理で限定された複数の三角パッチの対のなかから、一の三角パッチの対が選択される（ステップＳ５０１）。
【００７０】
次に、Ｓ５０１に示す処理で選択された一の三角パッチの対を除く残りの三角パッチの対のなかから、ステップＳ５０１に示す処理で選択された三角パッチの対と、同一のパッチ間隔（すなわち、距離ＬＨ）を有し、かつ、同一の法線ベクトルを有する三角パッチの対の数が算出される（ステップＳ５０２）。すなわち、ステップＳ５０２に示す処理によれば、図１３（Ａ）の破線Ｖ４に示すとおり、三角パッチの対をなす一の三角パッチと他の三角パッチとがそれぞれ一対の平行な平面上に存在する三角パッチの対の数が算出される。
【００７１】
次に、算出された三角パッチの対の数が設定数以上か否かが判断される（ステップＳ５０３）。言い換えれば、一対の平面上に設定数以上の三角パッチの対が把持候補位置として選出されているか否かが判断される。
【００７２】
三角パッチの対の数が設定数未満の場合（ステップＳ５０３：ＮＯ）、ステップＳ５０８以下の処理に移行する。一方、三角パッチの対の数が設定数以上の場合（ステップＳ５０３：ＹＥＳ）、ステップＳ５０１に示す処理で選択された三角パッチの対の一の三角パッチから隣接する三角パッチへ向かう放射ベクトルが計算される（ステップＳ５０４）。本実施の形態では、図１３（Ｂ）および図１３（Ｃ）に示すとおり、一の三角パッチＭａ，Ｍｘに対して、同一平面上で三角パッチＭａ，Ｍｘから所定距離内に位置する三角パッチＭｂ〜Ｍｋが選出され、三角パッチＭａ，Ｍｘの中点から隣接する各三角パッチＭｂ〜Ｍｅ，Ｍｆ〜Ｍｋに向かう複数の放射ベクトルが計算される。
【００７３】
そして、複数の放射ベクトルの内積が計算され（ステップＳ５０５）、計算される内積の和が設定値未満か否かが判断される（ステップＳ５０６）。より具体的には、たとえば、三角パッチＭａから三角パッチＭｂ〜Ｍｅに向かう４つの放射ベクトルのなかから選択される６通りの放射ベクトルの対の内積が計算され、６通りの放射ベクトルの対の内積の和が設定値未満か否かが判断される。なお、基準となる三角パッチの特定方向にのみ三角パッチが隣接する場合、このような放射ベクトルの内積の和は大きくなる。
【００７４】
内積の和が設定値未満の場合（ステップＳ５０６：ＹＥＳ）、図１３（Ｂ）に示すとおり、選択された三角パッチＭｘの対には、全方向に三角パッチの対が隣接するとして、ステップＳ５０８以下の処理に移行する。一方、内積の和が設定値以上の場合（ステップＳ５０６：ＮＯ）、図１３（Ｃ）に示すとおり、選択された三角パッチＭａの対には、特定方向にのみ三角パッチの対が隣接するとして、選択された三角パッチの対が把持候補位置から除外される（ステップＳ５０７）。その結果、一対の平面の端部に位置する三角パッチＭａの対が、特定方向にのみ三角パッチの対が隣接する三角パッチの対として、把持候補位置から除外される。
【００７５】
そして、次の三角パッチの対があるか否かが判断され（ステップＳ５０８）、次の三角パッチがなくなるまで、ステップＳ５０１〜Ｓ５０７に示す処理が繰り返される。
【００７６】
以上のとおり、図１２に示すフローチャートの処理によれば、まず、把持候補位置として選出された複数の三角パッチの対（対群Ｖ３）が、一対の同一平面上に設定数以上位置する三角パッチの対（対群Ｖ４）と、これ以外の三角パッチの対（対群Ｖ５）とに分類される。その後、同一平面上に設定数以上位置する複数の三角パッチの対（対群Ｖ４）のなかから、平面の端部に位置する三角パッチの対が除外され、図１３（Ａ）に示すとおり、平面上に位置する複数の三角パッチの対（対群Ｖ４）が、平面の中央部に位置する三角パッチの対（対群Ｖ６）に限定される。その結果、把持候補位置として選出された複数の三角パッチの対（対群Ｖ３）が、ワークを構成する一対の平面上の中央部に位置する三角パッチの対（対群Ｖ６）と、ワークを構成する曲面上に位置する三角パッチの対（対群Ｖ５）とを合わせた三角パッチの対に限定される。
【００７７】
図１４〜図１６は、上述したフローチャートの処理によって選出される三角パッチの対を説明するための図である。図１４〜図１６に示すワークの形状モデルでは、一例として、法線ベクトルの内積が−１であって、かつ、法線ベクトルがほぼ同一直線上に位置する三角パッチの対を把持候補位置として選出した場合を示す。
【００７８】
図１４（Ａ）は、変形球形状のワークの把持候補位置として選出される三角パッチの対を説明するための図である。図１４（Ａ）に示すとおり、変形球形状のワークでは、たとえば、３対の法線ベクトルにそれぞれ対応する３つの三角パッチの対が把持候補位置として選出される。一方、図１４（Ｂ）に示すとおり、互いに逆向きの法線ベクトルを有する三角パッチの対であって、三角パッチの対をなす一の三角パッチから他の三角パッチまでの距離が許容範囲外にある三角パッチの対は、把持候補位置として選出されない。
【００７９】
図１５（Ａ）は、鼓状のワークの把持候補位置として選出される三角パッチの対を説明するための図である。図１５（Ａ）に示すとおり、鼓状のワークでは、たとえば、６対の法線ベクトルにそれぞれ対応する上下面の三角パッチおよび凹部周辺の三角パッチの対が把持候補位置として選出される。一方、図１５（Ｂ）に示すとおり、互いに逆向きの法線ベクトルを有する三角パッチの対であって、三角パッチの対をなす一の三角パッチから他の三角パッチまでの距離が許容範囲外にある三角パッチの対は、把持候補位置として選出されない。
【００８０】
図１６は、浮き輪状のワークの把持候補位置として選出される三角パッチの対を説明するための図である。図１６（Ａ）に示すとおり、浮き輪状のワークでは、たとえば、浮き輪状ワークの径方向の６対の法線ベクトルにそれぞれ対応する側面の三角パッチの対が把持候補位置として選出される。また、図１６（Ｂ）に示すとおり、たとえば、浮き輪状ワークの軸線方向の６対の法線ベクトルにそれぞれ対応する上下面の三角パッチの対が把持候補位置として選出される。
【００８１】
以上のとおり、説明したフローチャートの処理によれば、ワークの形状モデルを構成する三角パッチのなかから、上述した把持条件を満たす三角パッチの対が把持候補位置として複数選出される。以下、図１７〜図１９を参照しつつ、把持候補位置として選出された三角パッチの対毎に、ハンド部１２０がワークと干渉することなくワークにアプローチすることができるアプローチ候補ベクトルを選出する処理について説明する。
【００８２】
図１７は、図４のステップＳ１０７に示す干渉評価処理を説明するためのフローチャートである。上述したとおり、図１７に示すフローチャートの処理によれば、まず、把持候補位置として選出された三角パッチの対毎に、図１８に示すとおり、当該三角パッチの対をピッキングロボット１００が把持する際のハンド部１２０のアプローチ方向を示すアプローチ候補ベクトルＡＰが複数選出される。そして、アプローチ候補ベクトルＡＰにしたがって、ハンド部１２０がワークにアプローチする際のハンド部１２０とワークとの干渉が評価される。
【００８３】
図１７に示すとおり、本実施の形態における干渉評価処理では、まず、ピッキングロボット１００のハンド部１２０の形状データが読み込まれる（ステップＳ６０１）。
【００８４】
次に、図１２に示すフローチャートの処理で把持候補位置として選出された複数の三角パッチの対のなかから、一の三角パッチの対が選択される（ステップＳ６０２）。
【００８５】
次に、選択された三角パッチの対を把持する際のハンド部１２０のアプローチ候補ベクトルが算出される（ステップＳ６０３）。本実施の形態では、図１８（Ａ）に示すとおり、まず、三角パッチの対をなす一の三角パッチＭ１の中点と他の三角パッチＭ２の中点とを結ぶ線分Ｌを軸線として、線分Ｌの中点を中心Ｃとする円Ｒが設定される。円Ｒの半径ＡＰは、ハンド部１２０の形状データによって決定される。そして、円Ｒの円周上に所定の角度で等間隔毎に中心Ｃに向かう複数のアプローチ候補ベクトルＡＰが算出される。本実施の形態では、アプローチ候補ベクトルＡＰとともに、線分Ｌに平行なオリエントベクトルが計算され、アプローチ候補ベクトルおよびオリエントベクトルを有するワークの把持姿勢を示す複数の同次変換行列Ｈが算出される。
【００８６】
次に、ステップＳ６０３に示す処理で算出された複数のアプローチ候補ベクトルのなかから、一のアプローチ候補ベクトルが選択される（ステップＳ６０４）。そして、選択された一のアプローチ候補ベクトルにしたがって、ハンド部１２０がワークにアプローチする際に、ハンド部１２０とワークとが干渉するか否かが判断される（ステップＳ６０５）。本実施の形態では、図１８（Ｂ）および図１８（Ｃ）に示すとおり、まず、ハンド部１２０の形状モデルを円Ｒ上に配置して、ハンド部１２０の形状モデルとワークの形状モデルとの干渉の有無を評価する。次に、アプローチ候補ベクトル方向に設定量だけハンド部１２０の形状モデルをスライドさせて、ハンド部１２０の形状モデルとワークの形状モデルとの干渉を評価する。なお、ワークおよびハンド部の形状モデルを利用して干渉を評価する技術自体は、一般的な干渉評価技術であるため、詳細な説明は省略する。
【００８７】
図１９は、図１６に示す浮き輪状のワークとハンド部との干渉評価の一例を説明するための図である。図１９（Ａ）に示すとおり、浮き輪状ワークの径方向に平行なアプローチ候補ベクトルにしたがってハンド部１２０がワークにアプローチする場合、ハンド部１２０はワークと２点で接触するため、ハンド部１２０とワークとが干渉しないと判断される。一方、図１９（Ｂ）に示すとおり、浮き輪状ワークの軸線方向に平行なアプローチ候補ベクトルにしたがってハンド部１２０がワークにアプローチする場合、ハンド部１２０はワークと３点で接触するため、３点での接触がエラーと設定される場合においては、ハンド部１２０とワークとが干渉すると判断される。
【００８８】
ステップＳ６０５に示す処理において、ハンド部１２０とワークとが干渉しない場合（ステップＳ６０５：ＮＯ）、ステップＳ６０７以下の処理に移行する。一方、ハンド部１２０とワークとが干渉する場合（ステップＳ６０５：ＹＥＳ）、選択されたアプローチ候補ベクトルが候補から除外される（ステップＳ６０６）。
【００８９】
そして、次のアプローチ候補ベクトルがあるか否かが判断され（ステップＳ６０７）、次のアプローチ候補ベクトルがなくなるまで、ステップＳ６０４〜Ｓ６０６に示す処理が繰り返される。その結果、図１８（Ｃ）に示すとおり、たとえば、ハンド部１２０とワークとが干渉するアプローチ候補ベクトルを有する行列Ｈａが候補から削除される。
【００９０】
そして、次の三角パッチの対があるか否かが判断され（ステップＳ６０８）、次の三角パッチの対がなくなるまで、ステップＳ６０２〜Ｓ６０７に示す処理が繰り返される。
【００９１】
以上のとおり、図１７に示すフローチャートの処理によれば、把持候補位置として選出された三角パッチの対毎に、ハンド部とワークとが干渉しない複数のアプローチ候補ベクトルが選出される。
【００９２】
以上のとおり、説明した本実施の形態の把持候補位置選出処理によれば、ワークの形状モデルを構成する複数の三角パッチのなかから、上述した把持条件を満たす三角パッチの対が把持候補位置として複数選出される。そして、選出された把持候補位置毎に、複数のアプローチ候補ベクトルが選出され、把持位置姿勢データが作成される。以下、図２０および図２１を参照して、把持候補位置選出装置２００で作成された把持位置姿勢データに基づいて、把持経路生成装置３００が把持経路を生成する処理について説明する。
【００９３】
図２０は、図１に示す把持経路生成装置における把持経路生成処理を示すフローチャートである。上述したとおり、本実施の形態における把持経路生成処理では、把持位置姿勢データに含まれる複数のアプローチ候補ベクトルのなかから、一のアプローチ候補ベクトルがアプローチベクトルとして選択され、選択されたアプローチベクトルにしたがってハンド部１２０がワークを把持するように、ピッキングロボット１００が制御される。
【００９４】
図２０に示すとおり、本実施の形態における把持経路生成処理では、まず、把持候補位置選出装置２００から把持位置姿勢データが読み込まれる（ステップＳ７０１）。上述したとおり、本実施の形態における把持位置姿勢データは、ハンド部１２０によるワークの把持候補位置と、把持候補位置毎に複数選出されるアプローチ候補ベクトルについての情報を含む。
【００９５】
次に、部品箱４００に収容されるワークの画像情報が取得される（ステップＳ７０２）。本実施の形態では、カメラ１３０によってワークの画像情報が取得され、画像認識用のワーク形状データと整合されることにより、ワーク認識位置姿勢データが作成される。
【００９６】
次に、ステップＳ７０２に示す処理で画像情報が取得されたワークにアプローチ候補ベクトルが適用される（ステップＳ７０３）。より具体的には、ワーク認識位置姿勢データと把持位置姿勢データとが整合されて、部品箱４００にバラ積み状態で収容されている把持対象のワークに対して、複数のアプローチ候補ベクトルが適用される。
【００９７】
次に、ステップＳ７０３に示す処理でワークに適用された複数のアプローチ候補ベクトルと、ハンド部１２０からワークに向かう進入ベクトルとの内積がそれぞれ計算される（ステップＳ７０４）。本実施の形態では、たとえば、カメラ１３０の撮像方向がハンド部１２０の進入ベクトルとして設定される。
【００９８】
次に、複数のアプローチ候補ベクトルのなかから、進入ベクトルとの内積が最大となる一のアプローチ候補ベクトルが、ハンド部１２０のアプローチベクトルとして決定される（ステップＳ７０５）。本実施の形態では、ハンド部１２０の進入ベクトルとの内積が最大となるアプローチ候補ベクトルを選出することによって、進入ベクトルとなす角度が最も小さいアプローチ候補ベクトルがハンド部１２０のアプローチベクトルとして決定される。すなわち、ワークにアプローチする際のハンド部１２０の姿勢補正を最小にすることができるように、ハンド部１２０の進入ベクトルの向きに最も類似する向きのアプローチ候補ベクトルが、ハンド部１２０のアプローチベクトルとして決定される。
【００９９】
次に、決定されたアプローチベクトルに基づいて、ハンド部１２０の把持経路を示すロボット動作データが作成され、作成されたロボット動作データがピッキングロボット１００に出力される（ステップＳ７０７，Ｓ７０８）。本実施の形態では、ハンド部１２０の現在の位置姿勢に対する補正量が、ロボット動作データとしてピッキングロボット１００に出力される。その結果、決定されたアプローチベクトルの向きでワークを把持するように姿勢が補正されつつ、ハンド部１２０がワークにアプローチし、対応する三角パッチの対を把持することができる。このとき、図４のフローチャートのステップＳ１０９に示す処理で開き量データとして添付された三角パッチの対の距離ＬＨに基づいて、ハンド部１２０の指部の開き量が調整される。
【０１００】
なお、上述したロボット動作データは、カメラ１３０のカメラ座標系Σｃ、ハンド部１２０のハンド座標系Σｈ、およびワークのモデル座標系Σｍ間での座標変換を利用して作成される（図２１参照）。相対的な位置関係が既知であるカメラ座標系Σｃおよびハンド座標系Σｈに基づいて、ハンド部１２０のハンド座標系Σｈからモデル座標系Σｍ上の把持位置姿勢までの同次変換行列を算出する処理自体は、一般的な座標変換技術であるため詳細な説明は省略する。
【０１０１】
以上のとおり、図２０に示すフローチャートの処理によれば、ハンド部１２０の進入ベクトルに最も類似する方向のアプローチ候補ベクトルがハンド部１２０の把持経路を生成する際のアプローチベクトルとして決定される。したがって、ワークを把持する際のハンド部１２０の姿勢補正が最小限に抑えられ、ピッキング処理に要する時間が短縮される。
【０１０２】
以上のとおり、説明された本実施の形態は、以下の効果を奏する。
【０１０３】
（ａ）本実施の形態の把持候補位置選出装置は、ワークの形状モデルを構成する複数の三角パッチに対して、法線ベクトルをそれぞれ計算する法線ベクトル計算部と、複数の三角パッチのなかから、計算される法線ベクトルの内積が閾値以下であって、かつ、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を、ハンド部による把持候補位置として選出する候補位置選出部と、を有する。したがって、ワークの形状データから把持候補位置が自動的に選出されるため、教示作業に要する時間が短縮される。
【０１０４】
（ｂ）候補位置選出部は、一の三角パッチから他の三角パッチに向かう方向ベクトルと、一の三角パッチの法線ベクトルとの内積が許容値以下の三角パッチの対を、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対として選出する。したがって、ベクトルの内積を計算することによって、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を容易に求めることができる。すなわち、ハンド部の２つの指部によって挟持することができる三角パッチの対を容易に求めることができる。
【０１０５】
（ｃ）本実施の形態の把持候補位置選出装置は、三角パッチの対の間隔とハンド部の開き量とを比較する比較部と、三角パッチの対の間隔と開き量との比較結果に基づいて、把持候補位置として選出された三角パッチの対を限定する第１限定部と、をさらに有する。したがって、オフライン処理によって、より厳密にワークの把持候補位置を選出することができる。また、三角パッチの対の間隔をハンド部の開き量データとして用いることにより、ワークを把持する際のハンド部の開き量を制御することができる。
【０１０６】
（ｄ）本実施の形態の把持候補位置選出装置は、ワークの同一平面上で一の三角パッチから隣接する他の三角パッチに向かう放射ベクトルを計算する放射ベクトル計算部と、複数の放射ベクトルの内積の和に基づいて、把持候補位置として選出された三角パッチの対を限定する第２限定部と、をさらに有する。したがって、ワークを構成する一対の平面の端部に位置する三角パッチの対を把持候補位置から除外することができる。その結果、ハンド部１２０が把持することが比較的困難なワーク端部の把持候補位置が除外されることにより、ピッキングの成功率が向上する。また、把持候補位置として選出される三角パッチの対が限定されることによって情報量が削減され、後続する処理での計算負荷が低減される。
【０１０７】
（ｅ）本実施の形態の把持候補位置選出装置は、ハンド部が把持候補位置を把持する際のハンド部のワークへのアプローチ方向を示すアプローチ候補ベクトルを計算する接近候補ベクトル計算部と、アプローチ候補ベクトルにしたがって、ハンド部がワークにアプローチする際に、ハンド部がワークと干渉するか否かを判断する干渉判断部と、ワークとハンド部とが干渉する場合、アプローチ候補ベクトルを候補から除外する接近候補ベクトル選出部と、をさらに有する。したがって、オフライン処理によって、ワークと干渉することなくハンド部がワークにアプローチすることができる方向を容易に選出することができる。また、後続する処理において、アプローチ候補ベクトルに基づいて、ハンド部のアプローチベクトルを容易に算出することができる。
【０１０８】
（ｆ）本実施の形態の把持経路生成装置は、上記把持候補位置選出装置で選出された把持候補位置に基づいて、ハンド部がワークにアプローチする把持経路を生成する。したがって、予め選出された把持候補位置に基づいて把持経路が生成されるため、ピッキング作業に要する時間が短縮される。
【０１０９】
（ｇ）本実施の形態の把持経路生成装置は、把持候補位置に基づいて計算されるアプローチ候補ベクトルと、ハンド部からワークに向かう進入ベクトルとの内積を計算する内積計算部と、計算される内積が最大となるアプローチ候補ベクトルにしたがって、ハンド部の把持経路を生成する経路生成部と、を有する。したがって、複数のアプローチ候補ベクトルのなかから、ハンド部の姿勢の補正量を最小に抑えることができるアプローチベクトルを選出することができる。また、ベクトルの内積の計算によって、アプローチベクトルを容易に選出することができる。
【０１１０】
（ｈ）本実施の形態の把持候補位置選出方法は、ワークの形状モデルを構成する複数の三角パッチに対して、法線ベクトルをそれぞれ計算する段階と、複数の三角パッチのなかから、計算される法線ベクトルの内積が閾値以下であって、かつ、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を、ハンド部による把持候補位置として選出する段階と、を有する。したがって、ワークの形状データから把持候補位置が自動的に選出されるため、教示作業に要する時間が短縮される。
【０１１１】
（ｉ）本実施の形態の把持経路生成方法は、上記把持候補位置選出方法で選出された把持候補位置に基づいて、ハンド部がワークにアプローチする把持経路を生成する。したがって、予め選出された把持候補位置に基づいて把持経路が生成されるため、ピッキング作業に要する時間が短縮される。
【０１１２】
以上のとおり、上述した実施の形態において、本発明における把持候補位置選出装置、把持候補位置選出方法、把持経路生成装置、および把持経路生成方法を説明した。しかしながら、本発明は、その技術思想の範囲内において当業者が適宜に追加、変形、および省略することができることはいうまでもない。
【０１１３】
たとえば、上述した実施の形態では、ワークの形状モデルを構成する三角パッチの法線ベクトルの内積を計算することによって逆向きの法線ベクトルを有する三角パッチの対を選出したのちに、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を選出した。しかしながら、把持候補位置の選出手順は上述した実施の形態に限定されるものではなく、一の三角パッチの法線から他の三角パッチまでの距離が許容範囲内に含まれる三角パッチの対を選出したのちに、法線ベクトルの内積を計算することによって逆向きの法線ベクトルを有する三角パッチの対を選出することもできる。
【図面の簡単な説明】
【０１１４】
【図１】本発明の一実施の形態におけるピッキングシステムの概略構成を示す図である。
【図２】図１に示す把持候補位置選出装置の概略構成を示すブロック図である。
【図３】図１に示す把持経路生成装置の概略構成を示すブロック図である。
【図４】図２に示す把持候補位置選出装置における基本的な処理を示すフローチャートである。
【図５】図４のステップＳ１０２に示す法線ベクトル計算処理を説明するための図である。
【図６】図４のフローチャートに示す処理で選出される三角パッチの対を説明するための図である。
【図７】図４のステップＳ１０３に示す内積評価処理を説明するためのフローチャートである。
【図８】図４のフローチャートに示す処理で選出される三角パッチの対を説明するための図である。
【図９】図４のステップＳ１０４に示す位置関係評価処理を説明するためのフローチャートである。
【図１０】図４のステップＳ１０５に示す間隔評価処理を説明するためのフローチャートである。
【図１１】図１０のフローチャートに示す処理を説明するための図である。
【図１２】図４のステップＳ１０６に示す端部候補除外処理を説明するためのフローチャートである。
【図１３】図１２のフローチャートに示す処理を説明するための図である。
【図１４】変形球形状のワークに対して把持候補位置を選出する処理を説明するための図である。
【図１５】鼓状のワークに対して把持候補位置を選出する処理を説明するための図である。
【図１６】浮き輪状のワークに対して把持候補位置を選出する処理を説明するための図である。
【図１７】図４のステップＳ１０７に示す干渉評価処理を説明するためのフローチャートである。
【図１８】図１７のフローチャートに示す処理を説明するための図である。
【図１９】図１６に示す浮き輪状のワークとハンド部との干渉評価の一例を説明するための図である。
【図２０】図１に示す把持経路生成装置における把持経路生成処理を示すフローチャートである。
【図２１】図２０のフローチャートに示す処理を説明するための図である。
【符号の説明】
【０１１５】
１００    ピッキングロボット、
２００    把持候補位置選出装置、
３００    把持経路生成装置、
４００    部品箱。
【図１】
2008272886.tif 000003
【図２】
2008272886.tif 000004
【図３】
2008272886.tif 000005
【図４】
2008272886.tif 000006
【図５】
2008272886.tif 000007
【図６】
2008272886.tif 000008
【図７】
2008272886.tif 000009
【図８】
2008272886.tif 000010
【図９】
2008272886.tif 000011
【図１０】
2008272886.tif 000012
【図１１】
2008272886.tif 000013
【図１２】
2008272886.tif 000014
【図１３】
2008272886.tif 000015
【図１４】
2008272886.tif 000016
【図１５】
2008272886.tif 000017
【図１６】
2008272886.tif 000018
【図１７】
2008272886.tif 000019
【図１８】
2008272886.tif 000020
【図１９】
2008272886.tif 000021
【図２０】
2008272886.tif 000022
【図２１】
2008272886.tif 000023