(57)【特許請求の範囲】
【請求項１】
物体における着目部位を設定する設定手段と、
複数の物体の位置及び姿勢の計測データを取得する計測データ取得手段と、
前記計測された複数の物体の位置及び姿勢に基づいて、前記計測された複数の物体それぞれについて前記設定された着目部位に対応する着目位置を算出することにより、前記複数の物体における複数の着目位置を得る算出手段と、
前記複数の着目位置に基づいて、物体を保持する保持手段が物体の前記着目位置を保持する場合に保持物体以外の物との干渉の有無を判定する判定手段と、
前記判定手段の判定結果に基づいて、前記保持手段が物体を保持するための情報を出力する出力手段とを備え、
前記判定手段は、
前記複数の物体における複数の着目位置のそれぞれの位置に基づいて前記複数の物体における複数の着目位置のうち１つの着目位置を選択し、選択された着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記複数の物体における複数の着目位置のうち他の着目位置を選択し、前記他の着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、
前記出力手段は、
前記判定手段が前記干渉が無いと判定した前記着目部位を前記保持手段が保持するための情報を出力することを特徴とする情報処理装置。
【請求項２】
前記判定手段は、前記計測データを生成するセンサからの奥行き方向の位置に基づいて前記複数の物体における複数の着目位置のうち１つの着目位置を選択し、選択された着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、前記複数の着目位置のうち、前記センサに最も近い奥行きをもつ着目位置を選択し、選択された着目位置を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記複数の着目位置のうち次に前記センサに近い奥行きをもつ他の着目位置を選択し、前記他の着目位置を前記保持手段が保持する場合の前記干渉の有無を判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判定手段は、前記複数の物体の存在する領域の中心からの距離に基づいて、前記干渉の有無を判定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記判定手段は、前記複数の着目位置のうち、前記複数の物体の存在する領域の中心からの距離が最も小さい着目位置を選択し、選択された着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記設定手段は、前記物体の３次元形状モデルおよび前記保持手段の３次元形状モデルに基づいて、前記着目部位を設定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記設定手段は、更に、前記物体を保持する際の保持手段と前記物体との相対位置姿勢に基づいて、前記着目部位を設定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記判定手段は、前記物体を把持する複数の把持方法のうち最も干渉が発生しにくい把持方法に対応する前記着目位置を選択し、選択された着目位置を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記複数の把持方法のうち他の把持方法に対応する着目位置を選択し、前記他の把持方法に対応する着目位置を前記保持手段が保持する場合の前記干渉の有無を判定することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記判定手段は、前記物体を把持する複数の把持方法のうち最も干渉が発生しにくい把持方法に対応する複数の着目位置のうち前記計測データを生成するセンサに最も近い奥行きをもつ着目位置を選択し、選択された着目位置を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記把持方法に対応する複数の着目位置のうち次に前記センサに近い奥行きをもつ位置にある他の着目位置を選択し、前記他の着目位置を前記保持手段が保持する場合の前記干渉の有無を判定し、更に、前記干渉が有ると判定した場合に、前記複数の把持方法のうち他の把持方法に対応する着目位置を選択し、前記他の把持方法に対応する着目位置を前記保持手段が保持する場合の前記干渉の有無を判定する、ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
物体における着目部位を設定する設定工程と、
複数の物体の位置及び姿勢の計測データを取得する計測データ取得工程と、
前記計測された複数の物体の位置及び姿勢に基づいて、前記計測された複数の物体それぞれについて前記設定された着目部位に対応する着目位置を算出することにより、前記複数の物体における複数の着目位置を得る算出工程と、
前記複数の着目位置に基づいて、物体を保持する保持手段が物体の前記着目位置を保持する場合に保持物体以外の物との干渉の有無を判定する判定工程と、
前記判定工程の判定結果に基づいて、前記保持手段が物体を保持するための情報を出力する出力工程と、を備え、
前記判定工程において、
前記複数の物体における複数の着目位置のそれぞれの位置に基づいて前記複数の物体における複数の着目位置のうち１つの着目位置を選択し、選択された着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記複数の物体における複数の着目位置のうち他の着目位置を選択し、前記他の着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、
前記出力工程において、
前記判定工程において前記干渉が無いと判定された前記着目部位を前記保持手段が保持するための情報を出力することを特徴とする情報処理方法。
【請求項１１】
請求項１０に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサの計測情報に基づき、バラ積み中から三次元位置姿勢を認識したワークをロボットハンドで把持する技術に関する。
【背景技術】
【０００２】
工場などの生産ラインにおいて、山積みされたワークの中から一個体をビジョンシステムを用いて特定し、三次元位置姿勢を認識することでロボットに取り付けたハンドにより把持を行う、バラ積みピッキング技術が近年開発されている。この技術でロボットでの把持動作を短時間で連続実施するためには、周辺物体との干渉が発生しにくい、バラ積みの表層で把持が可能なワークを優先的に選択することが重要である。
【０００３】
特許文献１には、バラ積み中の複数のワークの相互の位置情報を求め、この位置情報からワークの重なり状態を求めて、上方にあるワークから優先的に選択する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３０４５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法では、ワークの位置姿勢を高い順番に並べかえ、そのうちの高い位置にあるワークを優先的に選択する。しかし、ワークの位置姿勢の基準となる部位とハンドで把持する部位とが異なる場合、あるいは、長手形状のワークに対して長手方向に大きく異なる複数の部位のいずれでも把持が可能な場合には、バラ積み表層で把持可能なものを優先的に選択できない。たとえば図５に示すような、特定方向に長い形状を有するようなワークがパレット内にバラ積みで（ここでは５つ）収容されているものとする。このうち、検出できたワークを実線で示し、それぞれワークＡ、ワークＢとする。さらに、各ワークに対して着目部位１、着目部位２でそれぞれ示された部位での把持が可能であるとする。ここで、ワークＡを着目部位１で把持すれば、バラ積み表層で他物体との干渉も発生なく把持が可能である。しかし、ワークの位置姿勢に基づく高さを基準にした場合には、周辺物体との干渉が予想されるワークＢが選択されるため、処理の効率が悪くなってしまう。
【０００６】
本発明は以上の課題を鑑みてなされたものであり、バラ積み中のワークを認識して把持を行う際に、干渉の発生しにくい把持位置姿勢を優先的に選択することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本願発明の情報処理装置は、例えば、物体における着目部位を設定する設定手段と、複数の物体の位置及び姿勢の計測データを取得する計測データ取得手段と、前記計測された複数の物体の位置及び姿勢に基づいて、前記計測された複数の物体それぞれについて前記設定された着目部位に対応する着目位置を算出することにより、前記複数の物体における複数の着目位置を得る算出手段と、前記複数の着目位置に基づいて、物体を保持する保持手段が物体の前記着目位置を保持する場合に保持物体以外の物との干渉の有無を判定する判定手段と、前記判定手段の判定結果に基づいて、前記保持手段が物体を保持するための情報を出力する出力手段とを備え、前記判定手段は、前記複数の物体における複数の着目位置のそれぞれの位置に基づいて前記複数の物体における複数の着目位置のうち１つの着目位置を選択し、選択された着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、前記干渉が有ると判定した場合に、前記複数の物体における複数の着目位置のうち他の着目位置を選択し、前記他の着目位置に対応する着目部位を前記保持手段が保持する場合の前記干渉の有無を判定し、前記出力手段は、前記判定手段が前記干渉が無いと判定した前記着目部位を前記保持手段が保持するための情報を出力することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、バラ積み中のワークを認識して把持を行う際に、干渉の発生しにくい把持動作を優先的に選択することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態における情報処理装置１の構成を示す図である。
【図２】第１の実施形態における対象ワークおよびワークの把持を行うハンドの三次元形状モデルを示す図である。
【図３】ワークの把持方法および把持方法に対応した着目部位を説明する図である。
【図４】第１の実施形態におけるバラ積みワークの把持動作決定およびピッキングの処理手順を示すフローチャートである。
【図５】第１の実施形態におけるバラ積みワークに対する把持動作の決定方法を説明する図である。
【図６】変形例１−１におけるバラ積みワークに対する把持動作の決定方法を説明する図である。
【図７】第２の実施形態におけるバラ積みワークの把持動作決定およびピッキングの処理手順を示すフローチャートである。
【図８】本発明の情報処理装置のハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明にかかる実施形態の情報処理装置を詳細に説明する。
【００１２】
本発明にかかる実施形態を説明するのに先立ち、各実施形態に示す情報処理装置が実装されるハードウェア構成について、図８を用いて説明する。
【００１３】
図８は、本実施形態における情報処理装置１のハードウェア構成図である。同図において、ＣＰＵ８１０は、バス８００を介して接続する各デバイスを統括的に制御する。ＣＰＵ８１０は、読み出し専用メモリ（ＲＯＭ）８２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ８２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）８３０に一時記憶され、ＣＰＵ８１０によって適宜実行される。また、入力Ｉ／Ｆ８４０は、外部の装置（センサ、表示装置、操作装置など）から情報処理装置１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ８５０は、外部の装置（例えばロボットコントローラ）が処理可能な形式で出力信号として出力する。
【００１４】
（第１の実施形態）
第１の実施形態では、把持方法に対応した着目部位をワークに対してあらかじめ設定しておき、認識したワークの各着目部位の奥行き値に基づいて把持動作を決定する。これにより、把持部位が表層にあるような、干渉の発生しにくい把持動作で優先的に把持を行うため、効率よくバラ積みピッキングが可能となる。
【００１５】
図１は、本実施形態に係る情報処理装置１の構成を示している。
【００１６】
情報処理装置１は、着目部位入力部１０と、計測部１４と、ワーク認識部１５と着目位置算出部１６と、把持動作決定部１７とを備える。着目部位入力部１０は、モデル入力部１１と、把持位置姿勢入力部１２と、抽出部１３とを備える。以下、情報処理装置１を構成する各部について説明する。
【００１７】
着目部位入力部１０は、各把持方法に対応したワークの着目部位を着目部位算出部１６に入力する。本実施形態では、ロボットハンドがアプローチする位置ができるだけバラ積みの表層になるような把持動作を優先的に選択するものとする。そこで、各把持方法におけるワークとハンドとの位置関係において、アプローチ方向に対して最も奥側となるような部位を着目部位として設定しておき、入力する。ここで、着目部位入力部１０は、さらに、モデル入力部１１と、把持位置姿勢入力部１２と、抽出部１３とから構成される。以下、着目部位入力部１０を構成する各部について説明する。
【００１８】
モデル入力部１１は、バラ積みピッキングの対象となるワークの三次元形状モデル、および、ワークの把持を行うハンドの三次元形状モデルを入力する。三次元形状モデルには、たとえば物体（ワークもしくはハンド）の三次元形状を近似表現したポリゴンモデルを用いることができる。ポリゴンモデルは、物体形状の表面上の３次元座標と、形状を近似する三角形の面（ポリゴン）を構成するための各表面点の連結情報によって構成される。なお、ポリゴンは三角形で構成されるのが一般的であるが、四角形や五角形であってもよい。その他、表面点の座標とその連結情報によりワーク形状を近似表現できるポリゴンモデルであればいかなるものであってもかまわない。あるいは、三次元形状モデルには、ＣＡＤデータのように、Ｂ−Ｒｅｐ（Ｂｏｕｎｄａｒｙ−Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）表現と呼ばれる、区分されたパラメータ曲面の集合で形状を表現したモデルを用いてもよい。その他、物体の三次元形状を表現可能なモデルであればいかなるものであってもかまわない。
【００１９】
図２に、本実施形態にて取り扱うワークおよび、ワークの把持を行うハンドの三次元形状モデルを示す。ここでは二指の開閉によりワークの把持（保持）を行うハンドを利用するものとする。ハンド１、ハンド２はそれぞれ、二指のハンドを開いた状態、閉じた状態の三次元形状を表したものである。ここで、ハンドの三次元形状モデルは、ワーク形状に応じて把持に適したものを利用すればよい。たとえば二指ではなく三指の開閉ハンドを用いる場合や吸着式のハンドを用いる場合においても、利用するハンド形状に合わせた三次元形状モデルを入力すればよい。なお、ワークおよびハンドには、それぞれの形状を基準とした座標系が設定されているものとする。以後ではそれぞれ、ワーク座標系、ハンド座標系と呼ぶことにする。三次元形状モデルは、抽出部１３において、ワークを把持（保持）するための把持方法（保持方法）に対応した着目部位を抽出する際に用いられる。
【００２０】
把持位置姿勢入力部１２は、モデル入力部１１により入力されたワークおよびハンドの三次元形状モデルの各座標系に基づき、ワークの把持を行う際のワークとハンドとの相対位置姿勢を入力する。
【００２１】
なお、複数の把持方法がある場合には、複数の把持位置姿勢を入力する。これについて図３を用いて説明する。たとえば、本実施形態で取り扱うワークに対して２つの把持方法により把持が可能であるとする。１つ目の把持方法は、ワークのリング形状中心に二指を閉じた状態でハンドを差し込み、二指を開くことで内側から把持する把持方法１（内掴み）である。２つ目の把持方法は、ワーク角柱形状に対して二指を開いた状態でハンドをかぶせ込み、二指を閉じることで外側から把持する把持方法２（外掴み）である。ここで、内掴みに対する把持位置姿勢として、二指を開いたハンド、すなわちハンド１でワークを把持した状態におけるワーク座標系とハンド座標系との相対位置姿勢を抽出部１３に入力する。さらに、外掴みに対する把持位置姿勢として、二指を閉じたハンド、すなわちハンド２でワークを把持した状態におけるワーク座標系とハンド座標系との相対位置姿勢を抽出部１３に入力する。
【００２２】
抽出部１３は、ワークおよびハンドの三次元形状モデルと、各把持方法における把持位置姿勢とに基づいて、ワークの各把持方法に対する着目部位を抽出する。ここで抽出した着目部位は、着目位置算出部１６において、認識したワークを前述した２種類の把持方法で把持する際のロボットハンドの各把持位置（保持位置）に対する着目部位の位置の算出に用いられる。
【００２３】
計測部１２は、対象物体の位置姿勢を認識するために必要な計測情報を取得（計測データ取得）するセンサである。たとえば、二次元画像を撮影するカメラでもよいし、各画素が奥行きの情報を持つ距離画像を撮影する距離センサでもよいし、これらを併用してもよい。距離センサとしては、対象に照射したレーザ光やスリット光の反射光をカメラで撮影し、三角測量により距離を計測するもの、光の飛行時間を利用するＴｉｍｅ−ｏｆ−ｆｌｉｇｈｔ方式のもの、あるいは、ステレオカメラで撮影する画像から三角測量により距離を計算するもの、などが利用できる。その他、物体の三次元位置姿勢を認識するのに必要な情報を取得できればいかなるセンサであっても本発明の本質を損なうものではない。本実施形態では、距離画像および濃淡画像をともに取得可能なセンサを利用するものとする。計測部１４が取得した計測情報は概略ワーク認識部１５に入力される。なお、計測部１４に設定された座標系を以後、センサ座標系と呼ぶことにする。
【００２４】
ワーク認識部１５は、バラ積みされた多数のワークの中から一個体を検出するとともに、検出したワークのセンサ座標系における３次元位置姿勢を算出する。本実施形態では計測部１４がセンサにより距離画像および濃淡画像を取得可能である。まず、取得した距離画像および濃淡画像に対して事前学習した分類木を用いた投票を行うことでバラ積み中からワーク一個体の検出およびおおまかな位置姿勢を算出する。その後、算出したおおまかな位置姿勢から、ワークの三次元形状モデルを距離画像および濃淡画像にフィットするように位置姿勢を補正することでワークの高精度な位置姿勢を算出する。ただし、センサ座標系におけるワークの位置姿勢の算出方法は他の方法であってもかまわない。たとえば、前段の一個体の検出において、多数の姿勢から観測した画像とのパターンマッチングを行ってもよい。あるいは後段の高精度な位置姿勢算出において、距離画像のみ、あるいは濃淡画像のみを用いてフィッティングを行ってもよい。その他、バラ積み中から把持対象となる一個体を発見し、その三次元位置姿勢を算出できる方法であれば、ここで述べた以外のいかなる方法であってもかまわない。
【００２５】
着目位置算出部１６は、ワーク認識部１５により認識したワークの三次元位置姿勢と、着目部位入力部１０により入力された着目部位とに基づき、認識されたワーク上（物体上）の各把持位置に対する着目部位のセンサ座標系における位置（着目位置）を算出する。
【００２６】
把持位置決定部１７は、認識したワークの各把持方法に対する着目部位の三次元座標に基づき、ロボットハンドで把持を行うための把持位置および把持方法を決定する。
【００２７】
出力部１８は、把持位置決定部１７で決定された把持位置を外部装置（例えばロボットコントローラ）に出力する。ロボットコントローラは、出力部１８から受け取った把持位置および把持方法でワークを把持するようにロボットハンドを制御する。
【００２８】
情報処理装置１を構成する各機能部は、ＣＰＵ８１０が、ＲＯＭ８２０に格納されたプログラムをＲＡＭ８３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ８１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２９】
図４は、本実施形態において、バラ積み中から認識したワークに対して、設定した把持方法による把持位置を決定してロボットハンドで把持を行う処理手順を示すフローチャートである。
【００３０】
（ステップＳ１０１）
ステップＳ１０１では、着目部位入力部１０は、ワークの各把持方法に対応した、ワークの着目部位を入力する。ここでは、ワークおよびハンドの三次元形状モデルと、把持位置姿勢に基づき、着目部位を抽出して入力する方法について述べる。この場合の処理は、以下のステップＳ１０２〜Ｓ１０４から成る。
【００３１】
（ステップＳ１０２）
ステップＳ１０２では、モデル入力部１１は、ワークの三次元形状モデル、および、ワークの把持を行うハンドの三次元形状モデルを入力する。
【００３２】
（ステップＳ１０３）
ステップＳ１０３では、把持位置姿勢入力部１２は、モデル入力部１１により入力されたワークおよびハンドの三次元形状モデルの各座標系に基づき、ワークの把持を行う際のワークとハンドとの相対位置姿勢を入力する。
【００３３】
（ステップＳ１０４）
ステップＳ１０４では、抽出部１３は、ワークを把持するための各把持方法に対する着目部位を抽出する。
【００３４】
本実施形態における二種類の把持方法では、ハンドは、ハンド座標系のＺ軸正方向に移動することでワークの把持位置姿勢へとアプローチする。後段の把持位置決定において、バラ積みの表層付近で把持可能なものから優先的に把持を行うために、ここではまず、ハンドの三次元形状モデルの中で、Ｚ軸方向に最大の座標をもつ頂点を抽出する。具体的には、ハンド二指の先端の８頂点が抽出される。さらにこれらの重心座標を算出する。図３に内掴みで把持を行う場合の着目部位を黒丸で、外掴みで把持を行う場合の着目部位を白丸で示す。次に、抽出した座標を把持位置姿勢に基づき、ハンド座標系から、ワーク座標系に基づく座標値に変換して入力する。
【００３５】
ただし、着目部位の設定方法はこの限りではない。たとえば、ハンドの重心位置をハンド座標系からワーク座標系に基づく座標値に変換して用いてもよい。あるいは、把持位置姿勢に基づき、ハンドおよびワークの三次元形状モデルを配置し、そのときの両者の面が一定距離以内かつ、面の法線方向の一致度が所定値以内のモデル面を把持位置におけるワークとハンドとの接触部位として抽出し、これらの重心位置を用いてもよい。これ以外にも、たとえばＧＵＩ上にワークの三次元形状モデルを表示し、ユーザーがワークモデル上のある面、あるいは点などの幾何特徴を選択し、選択した幾何特徴の重心位置などを着目部位として用いてもよい。あるいは３次元形状モデルを用いず、ワーク座標系におけるにおける着目部位の座標（ｘ，ｙ，ｚ）を数値で入力してもかまわない。
【００３６】
（ステップＳ１０５）
ステップＳ１０５では、計測部１４は、ワークの位置姿勢を認識するための計測情報の取得を行う。本実施形態では、距離画像および濃淡画像を撮影するものとする。なお、前述したように、ワークの位置姿勢を認識するための情報を取得できれば、センサにはカメラを用いてもよいし、その他のセンサを用いてもよい。
【００３７】
（ステップＳ１０６）
ステップＳ１０６では、ワーク認識部１５は、ワークの位置姿勢を認識する。具体的には、センサ座標系におけるワークの位置姿勢を表す６つのパラメータを算出する。ここで算出された６つのパラメータに基づくセンサ座標系からワーク座標系への座標変換において、姿勢を表す３つのパラメータで表現される３×３の回転行列をＲＷＳ、位置を表す３つのパラメータで表現される３列の並進ベクトルをそれぞれｔＷＳとする。このとき、センサ座標系ＸＳ＝［ＸＳ，ＹＳ，ＺＳ］Ｔからワーク座標系ＸＷ＝［ＸＷ，ＹＷ，ＺＷ］Ｔへの変換は、４×４行列ＴＷＳを用いて以下のように表すことができる。
ＸＷ’＝ＴｗｓＸＳ’      （式１）
ここで、
ＸＷ’＝［ＸＷ，ＹＷ，ＺＷ，１］Ｔ
ＸＳ’＝［ＸＳ，ＹＳ，ＺＳ，１］Ｔ
【００３８】
【数１】
0006529302.tif 000002
【００３９】
である。
【００４０】
（ステップＳ１０７）
ステップＳ１０７では、着目位置算出部１６は、認識したワークに対して内掴み、外掴みでそれぞれ把持を行う各把持位置に対する着目部位の位置（着目位置）を算出する。図５に示すように、パレット内にバラ積みのワーク（ここでは５つ）が収容されているものとする。このうち、ステップＳ１０６、Ｓ１０７の処理により、バラ積み中から２つのワーク（Ａ，Ｂ）を検出できたものとする。検出できたワークを実線で示し、それぞれワークＡ、ワークＢとする。なお、検出できなかった３つのワークを破線で示す。ここで認識したワークの位置姿勢、すなわち、センサ座標系におけるワークの位置姿勢に基づき、着目部位の座標をワーク座標系からセンサ座標系に変換する。これにより、認識したワークＡ、Ｂに対して、着目部位１、着目部位２のセンサ座標系における位置（ｘ，ｙ，ｚ）がそれぞれ算出される。以後、ワークＡの着目部位１、着目部位２の位置をそれぞれＰＡ１、ＰＡ２、ワークＢの着目部位１、着目部位２の位置をそれぞれＰＢ１、ＰＢ２と表現することにする。
【００４１】
（ステップＳ１０８）
ステップＳ１０８において、着目位置算出部１６は、着目位置ＰＡ１、ＰＡ２、ＰＢ１、ＰＢ２それぞれ対応した把持位置のうち、候補として未選択の把持位置が１つ以上存在する場合には、ステップＳ１０９へ進む。もし、すべての把持位置がすでに候補として選択済みであった場合には、把持候補がこれ以上存在しないものとして処理を終了する。
【００４２】
（ステップＳ１０９）
ステップＳ１０９では、候補として未選択のすべての把持位置について着目位置を比較し、把持位置を１つ選択する。たとえば、図５に示したワークＡの内掴み、外掴み、ワークＢの内掴み、外掴みの４つの把持位置がすべて未選択であったとする。このとき、それぞれの把持位置に対応した着目位置ＰＡ１、ＰＡ２、ＰＢ１、ＰＢ２の各ｚ値に着目し、値が最も小さいものに対応した把持位置を選択する。これにより、バラ積みの表層で把持が可能なもの、すなわち周辺物体との干渉が発生しにくい把持位置を優先的に選択する。図５の例ではＰＡ２、ＰＢ２、ＰＢ１、ＰＡ１の順にｚ値が小さいため、ワークＡの外掴みがはじめに候補として選択されることになる。
【００４３】
（ステップＳ１１０）
ステップＳ１１０では、把持位置決定部１７は、ステップＳ１０９で選択された把持位置によるワークの把持が可能であるか事前判定を行う。具体的には、把持位置におけるハンドの姿勢、把持位置における周辺物体（パレット、近接ワーク）との干渉有無を判定する。ハンドの姿勢判定は、たとえば認識したワークに対して把持方法に対応した相対位置姿勢でハンド形状モデルを配置し、このときのハンド座標系Ｚ軸とセンサ座標系Ｚ軸とのなす角度により判定する。この角度が所定値以上である場合には姿勢に無理があるものとして把持不可、所定値未満の場合には把持可能と判定する。たとえば図４において、ワークＢに対する外掴みは、パレット底面に対してほぼ水平にアプローチするような把持位置となるため、把持不可と判定する。あるいは、把持位置までロボットを制御可能か、ロボットコントローラにより判定を行ってもよい。干渉有無の判定は、たとえば、ワークの認識結果に基づいて仮想的にバラ積み状態のワークおよびパレットを含めた三次元空間を再現し、把持位置におけるハンドが周辺物体と干渉するかを判定する。ここで干渉が発生する場合には把持不可、発生しない場合には把持可能と判定する。これらの判定により、いずれも把持可能と判定された場合にはステップＳ１１１へ、把持不可と判定された場合には、ステップＳ１０８へ進む。
【００４４】
（ステップＳ１１１）
ステップＳ１１１では、出力部１８は、ステップＳ１１０で把持可能と判定された把持位置を外部のロボットコントローラに出力する。ロボットコントローラは、ロボットハンドを制御し、決定された把持位置に基づき、ロボットハンドによる把持およびその後のハンドによる作業（搬送、設置、組み付けなど）を実施する。ステップＳ１０５へ進む。これにより、バラ積みワークに対するロボットハンドによる作業を連続して実施可能となる。
【００４５】
以上、第１の実施形態では、把持方法に対応した着目部位をワークに対してあらかじめ設定しておき、認識したワークの各着目部位の奥行き値に基づいて把持位置を決定する方法について述べた。これにより、把持部位が表層にあるような、干渉の発生しにくい把持位置で優先的に把持を行うため、効率よくバラ積みピッキングが可能となる。
【００４６】
なお、本実施形態では、ステップＳ１０７において、着目部位の座標をワーク座標系からセンサ座標系に変換し、ステップＳ１０９では、この座標（ｚ値）を用いた比較により把持位置を選択した。この方法は、センサを水平方向に配置したようなケースにおいて、センサに近いものから把持を行いたいような場合にも、センサ座標系におけるz値が小さい把持位置を選択することで有効である。これに対して、着目部位の座標はセンサ座標系以外の座標系に変換してもよい。たとえばロボットに対して設定されているロボット座標系と、センサ座標系との相対位置姿勢が既知であればロボット座標系に変換してもよい。あるいは、ワークを収納するパレットを基準としたパレット座標系に変換してもかまわない。なお、変換した座標系に応じて、着目部位の座標の判定基準も合わせて変更する必要がある。たとえばロボット座標系のＺ軸正方向が鉛直上向きと一致するような場合、表層で把持可能な把持位置を選択するには、ロボット座標系に変換した着目部位の座標比較において値が最も大きいものを選択する。このほか、把持位置の選択にあたり、適切な基準を設定できるのであればいかなる座標系に変換してもかまわない。
【００４７】
なお、本実施形態では、着目部位を２つ設定したが、着目部位を１つだけ設定し、バラ積み中から認識した複数のワークに対して、算出されるそれぞれの着目位置を比較して把持位置を選択してもよい。
【００４８】
また、ステップＳ１０９では、未選択の把持位置の中から、対応する着目位置の奥行きが最も小さい把持位置を逐次選択した。これに対して、着目位置の奥行き値に基づいてすべての把持位置をあらかじめソートしておき、奥行き値の小さいものから順次把持可否判定を行ってもよい。
【００４９】
（変形例１−１）
第１の実施形態では、認識したワークの各着目部位の奥行き値に基づき、把持部位が表層にあるような把持位置を、干渉の発生しにくいものとして優先的に選択を行った。これに対して、変形例では、パレットの側面付近ではパレットとの干渉が発生しやすいことを考慮して、把持部位がパレット中央領域付近であるような把持位置を優先的に選択する。なお、対象とするワークおよびハンド、把持方法は第１の実施形態と同様であるものとする。
【００５０】
本変形例の装置構成は第１の実施形態の図１と同様のため省略する。また、本変形例の処理フローは第１の実施形態の図４と同様のため省略するものとし、処理の異なるステップＳ１０９についてのみ説明する。
【００５１】
（ステップＳ１０９）
ステップＳ１０９では、把持位置決定部１７は、候補として未選択のすべての把持位置について着目位置を比較し、把持位置を１つ選択することにより把持位置を決定する。図６を用いて説明する。なお、説明簡略化のため、ここではセンサ座標系のＺ軸がパレット底面の中心を貫くような配置でパレットが設置されているものとする。このとき、センサ座標系のＸＹ平面おいて、着目位置の原点からの距離が小さいものほど、パレット中央付近に把持部位があることになる。そこで、着目部位のセンサ座標系における位置（ｘ，ｙ，ｚ）に対して、センサ原点からの距離ｄをｄ＝ｘ２＋ｙ２で算出する。そして、各着目部位に対して算出した距離ｄをそれぞれ比較し、この値が最も小さい把持位置を選択する。
【００５２】
たとえば図６において、バラ積み中から２つのワーク、ワークＣ、ワークＤを認識したものとする。ここでワークＣの着目部位１、着目部位２の位置をそれぞれＰＣ１、ＰＣ２、ワークｄの着目部位１、着目部位２の位置をそれぞれＰＤ１、ＰＤ２と表現することにする。このとき、各着目部位ＰＣ１、ＰＣ２、ＰＤ１、ＰＤ２に対して上記ｄの値を算出した場合、ＰＣ１、ＰＣ２、ＰＤ１、ＰＤ２の順に値ｄが小さくなるため、ワークＣの内掴みがはじめに候補として選択されることになる。
【００５３】
以上の方法により、把持部位がパレット中央付近であるような、干渉の発生しにくい把持位置で優先的に把持を行うため、効率よくバラ積みピッキングが可能となる。
【００５４】
なお、把持位置の選択方法としてこれ以外の評価値を用いてもかまわない。たとえば、実施形態１で述べたセンサ座標系の奥行き方向の距離ｚと、本変形例で述べた、センサ座標系のＸＹ平面における原点からの距離ｄの評価値を組み合わせ、バラ積み表層かつパレット中央に把持部位があるような把持位置を優先して選択してもよい。これには、パレット上面かつ中央にあたる位置を基準として、センサ座標系における基準点の三次元位置をあらかじめ設定しておき、着目部位と基準点との三次元距離を評価値として用いることができる。このほか、三次元空間における把持部位の優先度を適切に設定できれば、評価値の算出方法はいかなる方法に変更してもよい。
【００５５】
（第２の実施形態）
第１の実施形態では、認識したワークの各着目部位の位置のみに基づき、把持位置の選択を行った。本実施例では、複数の把持方法において周辺物体との干渉の発生確率が異なる場合に、把持方法に対する優先度もあらかじめ設定しておくことで、より干渉のしにくい把持位置を選択する方法について述べる。なお、対象とするワークおよびハンド、把持方法は第１の実施形態と同様であるものとする。ただし、本実施例では、内掴みによる把持が、外掴みに比べて干渉が発生しにくいものとし、内掴みでの把持を優先的に選択するものとする。
【００５６】
本実施形態の装置構成は第１の実施形態の図１と同様のため省略する。
【００５７】
本実施形態の処理フローを図７に示す。なお、図７におけるステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０７、Ｓ２０８、Ｓ２０９、Ｓ２１０はそれぞれ第１の実施形態におけるＳ１０１、Ｓ１０５、Ｓ１０６、Ｓ１０８、Ｓ１０９、Ｓ１１０、Ｓ１１１と同様のため説明を省略する。以下、処理の異なるステップＳ２０４、Ｓ２０５、Ｓ２０６についてのみ説明する。
【００５８】
（ステップＳ２０４）
ステップＳ２０４では、着目位置決定部１７は、ワークを把持可能な把持方法（内掴み、外掴み）のうち、候補として未選択の把持方法が１つ以上存在する場合には、ステップＳ２０５へ進む。もし、すべての把持方法がすでに候補として選択済みであった場合には、把持候補がこれ以上存在しないものとして処理を終了する。
【００５９】
（ステップＳ２０５）
ステップＳ２０５では、着目位置決定部１７は、複数の把持方法の中から干渉の発生しにくい方法を優先的に選択する。前述したとおり、本実施形態では、内掴みによる把持が、外掴みに比べて干渉が発生しにくいものとし、内掴みでの把持をまず選択する。
【００６０】
（ステップＳ２０６）
ステップＳ２０６では、着目位置決定部１７は、認識したワークに対して、ステップＳ２０５で選択した把持方法での把持位置に対する各着目位置を算出する。たとえば図５において、把持方法として内掴みが選択されている場合、ワークＡに対する着目部位１、ワークＢに対する着目部位１のセンサ座標系における位置（ｘ，ｙ，ｚ）をそれぞれＰＡ１、ＰＢ１として算出する。
【００６１】
以上の方法により、複数の把持方法において干渉のしやすさが異なるような場合に、より干渉のしにくい把持位置を選択することが可能となる。
【００６２】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。
【００６３】
即ち、上述した各実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００６４】
このプログラム及び当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体は、本発明に含まれる。
【図１】
0006529302.tif 000003
【図２】
0006529302.tif 000004
【図３】
0006529302.tif 000005
【図４】
0006529302.tif 000006
【図５】
0006529302.tif 000007
【図６】
0006529302.tif 000008
【図７】
0006529302.tif 000009
【図８】
0006529302.tif 000010