(57)【特許請求の範囲】
【請求項１】
少なくとも１つの物体を含む少なくとも１つの画像を取得するステップと、
前記物体を把持するための少なくとも１つの把持位置を決定するために前記少なくとも１つの画像を分析するステップと、
所定の基準に基づいて、前記少なくとも１つの把持位置から１つの把持位置を選択するステップと、
選択された前記把持位置で前記物体を把持するために少なくとも１つの命令をグリッパへ発するステップと、を含む方法であって、
前記分析するステップ及び前記選択するステップは、
前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出するステップと、
把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出するステップと、
前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出するステップと、
前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出するステップと、
少なくとも１つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせるステップと、
前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出するステップと、
前記少なくとも１つの位置で前記把持領域マスクを前記物体マスクに重ね合わせるステップと、
前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複を算出するステップと、
前記重複の算出に基づいて把持位置を選択するステップと、をさらに含む方法。
【請求項２】
前記少なくとも１つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てるステップをさらに含む請求項１に記載の方法。
【請求項３】
前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第１の品質係数を割り当てるステップと、
前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第２の品質係数を割り当てるステップと、
前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップと、をさらに含む請求項１又は２に記載の方法。
【請求項４】
前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップは、前記第１及び第２の品質係数の結果が最も大きい把持位置を選択することをさらに含む請求項３に記載の方法。
【請求項５】
前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップは、選択された前記把持位置の前記第１の品質係数に対する最小値を設定することをさらに含む請求項４に記載の方法。
【請求項６】
前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するステップをさらに含む請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対して予め算出される請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対してリアルタイムで算出される請求項１から６のいずれか一項に記載の方法。
【請求項９】
マスクの重複を算出するステップは、
前記グリッパマスクをグリッパマスクパーツに分割するステップと、
１つの前記グリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出するステップと、
前記グリッパマスクにおける第１のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第１のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出するステップと、
前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するステップと、をさらに含む請求項１から８のいずれか一項に記載の方法。
【請求項１０】
マスクの重複を算出するステップは、
前記把持領域マスクを把持領域マスクパーツに分割するステップと、
１つの把持領域マスクパーツ及び前記物体マスクの重複を算出するステップと、
前記把持領域マスクにおける第１の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第１の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出するステップと、
前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するステップと、をさらに含む請求項１から９のいずれか一項に記載の方法。
【請求項１１】
高速フーリエ変換（ＦＦＴ）によるコンボリューションは、前記重複の算出に用いられる請求項１から８のいずれか一項に記載の方法。
【請求項１２】
前記ステップのいくつか又は全てはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を用いることにより実装される請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
請求項１から１２のいずれか一項に記載の方法を実行するための命令を含むプログラムコードを含むコンピュータプログラム。
【請求項１４】
前記コンピュータプログラムは、コンピュータ可読媒体に記憶される請求項１３に記載のコンピュータプログラム。
【請求項１５】
物体を含む少なくとも１つの画像を取得する手段（１４５，１５２）と、
前記物体を把持するための少なくとも１つの把持位置を決定するために前記少なくとも１つの画像を分析する手段（１５４，１５６）と、
所定の基準に基づいて、前記少なくとも１つの把持位置から１つの把持位置を選択する手段（１５６）と、
選択された前記把持位置で前記物体を把持するために少なくとも１つの命令をグリッパへ発する手段（１４２）と、を備える装置であって、
前記分析する手段及び前記選択する手段は、
前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出する手段と、
把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出する手段と、
前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出する手段と、
前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出する手段と、
少なくとも１つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせる手段と、
前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出する手段と、
前記少なくとも１つの位置で前記把持領域マスクを前記物体マスクに重ね合わせる手段と、
前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複を算出する手段と、
前記重複の算出に基づいて把持位置を選択する手段と、をさらに含む装置。
【請求項１６】
請求項１から１２のいずれか一項に記載の方法を実装する手段（１４０）をさらに備える請求項１５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアーム及びグリッパにより物理的な物体を操作するソリューションに関する。特に、本発明は、物体を把持するための把持位置を決定する方法に関する。
【背景技術】
【０００２】
ロボットシステムは、視覚的又は認識的に操作される物理的な物体を実際にモデルするためにわずかな能力しか必要としない、又は掴んで移動するためにわずかなスキルしか要求しない反復的なタスクを行うために多くの産業で広く用いられてきた。ロボットは、また、人間の作業員には好ましくない環境で仕事をするように製造されうる、又は有毒又は放射性物質、ごみ又は巨大な物体のような人間にとって有害な材料で仕事をすることが可能なように製造されうる。必要とされる人間の関与の量を最小化するために、可能な限り自立したロボットシステムを製造することが望まれている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
目的がロボットアームに物体を操作させることである場合、ロボットアームは、通常、対象となる物体を把持するのに適切な装置が装備されている。このような装置は、例えば、手、爪又はクランプに類似している。反復的なタスクを行うためにロボットアームをプログラムすることは、相対的に容易であるが、自動的に物体を操作することは困難であり、特に、変化する環境又は他の物体が混在する環境から物体を認識すること、及び他の物体の中に存在する物体を操作することは困難である。
【０００４】
物体を操作するために用いられるロボットシステムは、一般的に、ロボットアームのグリッパが物体を確実に把持するように設計しうるために、事前に知られた物体の形状を必要とする。ごみを分別するときのような、非構造化環境から位置、方向及び幾何学形状が変化する物体を把持するとき、グリッパは、事前に特定の物体に対して設計されず、より一般的なデザインが用いられる必要がある。
【０００５】
従来技術の欠点の１つは、他の所望しない物体又は他の障害物の中から形状及び大きさが変化する物体を確実に把持できるグリッパを設計することが困難なことである。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、少なくとも１つの物体を含む少なくとも１つの画像を取得するステップと、物体を把持するための少なくとも１つの把持位置を決定するために前記少なくとも１つの画像を分析するステップと、所定の基準に基づいて、前記少なくとも１つの把持位置から１つの把持位置を選択するステップと、選択された前記把持位置で前記物体を把持するために少なくとも１つの命令をグリッパへ発するステップと、を含む方法が提供される。
【０００７】
本発明の別の態様によれば、前記方法を実行するための命令を含むプログラムコードを含むコンピュータプログラムが提供される。
【０００８】
本発明の別の態様によれば、物体を含む少なくとも１つの画像を取得する手段と、前記物体を把持するための少なくとも１つの把持位置を決定するために前記少なくとも１つの画像を分析する手段と、所定の基準に基づいて、前記少なくとも１つの把持位置から１つの把持位置を選択する手段と、選択された前記把持位置で前記物体を把持するために少なくとも１つの命令をグリッパへ発する手段と、を備える装置が提供される。
【０００９】
本発明の一実施形態では、前記分析するステップ及び前記選択するステップは、前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出するステップと、把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出するステップと、前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出するステップと、前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出するステップと、少なくとも１つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせるステップと、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出するステップと、前記少なくとも１つの位置で前記把持領域マスクを前記物体マスクに重ね合わせるステップと、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複を算出するステップと、前記重複の算出に基づいて把持位置を選択するステップと、をさらに含む。
【００１０】
本発明の一実施形態では、前記方法は、前記少なくとも１つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てるステップをさらに含む。
【００１１】
本発明の一実施形態では、前記方法は、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第１の品質係数を割り当てるステップと、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第２の品質係数を割り当てるステップと、前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップと、をさらに含む。
【００１２】
本発明の一実施形態では、前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップは、前記第１及び第２の品質係数の結果が最も大きい把持位置を選択することをさらに含む。
【００１３】
本発明の一実施形態では、前記第１及び第２の品質係数に基づいて前記把持位置を選択するステップは、選択された前記把持位置の前記第１の品質係数に対する最小値を設定することをさらに含む。
【００１４】
本発明の一実施形態では、前記方法は、前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するステップをさらに含む。
【００１５】
本発明の一実施形態では、前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対して予め算出される。
【００１６】
本発明の一実施形態では、前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対してリアルタイムで算出される。
【００１７】
本発明の一実施形態では、マスクの重複を算出するステップは、前記グリッパマスクをグリッパマスクパーツに分割するステップと、１つのグリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出するステップと、前記グリッパマスクにおける第１のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第１のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出するステップと、前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するステップと、をさらに含む。
【００１８】
本発明の一実施形態では、マスクの重複を算出するステップは、前記把持領域マスクを把持領域マスクパーツに分割するステップと、１つの把持領域マスクパーツ及び前記物体マスクの重複を算出するステップと、前記把持領域マスクにおける第１の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第１の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出するステップと、前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するステップと、をさらに含む。
【００１９】
本発明の一実施形態では、高速フーリエ変換（ＦＦＴ）によるコンボリューション（畳み込み）は、前記重複の算出に用いられる。
【００２０】
本発明の一実施形態では、前記ステップのいくつか又は全てはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を用いることにより実装される。
【００２１】
本発明の一実施形態では、前記装置は、本発明の各種実施形態を実装する手段を含む。
【００２２】
本発明の一実施形態では、前記装置は、前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出し、把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出し、前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出し、前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出し、少なくとも１つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせ、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出し、前記少なくとも１つの位置で前記把持領域マスクを前記物体マスクに重ね合わせ、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複を算出する手段をさらに備え、前記選択する手段は、前記重複の算出に基づいて把持位置を選択するように構成される。
【００２３】
本発明の一実施形態では、前記装置は、前記少なくとも１つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てる手段をさらに備える。
【００２４】
本発明の一実施形態では、前記装置は、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも１つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第１の品質係数を割り当て、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも１つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第２の品質係数を割り当てる手段をさらに備え、前記選択する手段は、前記第１及び第２の品質係数に基づいて前記把持位置を選択するように構成される。
【００２５】
本発明の一実施形態では、前記選択する手段は、前記第１及び第２の品質係数の結果が最も大きい把持位置を選択するように構成される。
【００２６】
本発明の一実施形態では、前記選択する手段は、選択された前記把持位置の前記第１の品質係数に対する最小値を設定するように構成される。
【００２７】
本発明の一実施形態では、前記算出する手段は、前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するように構成される。
【００２８】
本発明の一実施形態では、前記算出する手段は、前記グリッパマスクをグリッパ領域マスクパーツに分割し、１つのグリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出し、前記グリッパマスクにおける第１のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第１のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出し、前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するように構成される。
【００２９】
本発明の一実施形態では、前記算出する手段は、前記把持領域マスクを把持領域マスクパーツに分割し、１つの把持領域マスクパーツ及び前記物体マスクの重複を算出し、前記把持領域マスクにおける第１の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第１の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出し、前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するように構成される。
【００３０】
本発明は、物体における“ハンドル（ｈａｎｄｌｅｓ）”がマシンビジョンを用いて認識されるソリューションを開示する。“ハンドル（ｈａｎｄｌｅ）”は、実装されたグリッパにより把持されうる物体の一部である。本発明の少なくとも１つの実施形態の利点は、把持するためのグリッパ用のハンドルとして機能しうる小さな突出部分を有する場合に、グリッパの開きよりも大きい物体でも把持できることを含む。また、本発明の少なくとも１つの実施形態は、物体を把持するための最適な把持位置を決定することができるソリューションを提供する。
【図面の簡単な説明】
【００３１】
添付の図面は、本発明のさらなる理解を提供し、この明細書の一部を構成し、本発明の実施形態を図示し、明細書と共に本発明の概念の説明を補助する。
【図１】図１は、本発明の一実施形態に係るロボットシステムを示す。
【図２】図２は、本発明の一実施形態に係る方法を示すブロック図を開示する。
【図３】図３は、本発明の一実施形態に係る、把持する物体の少なくとも１つの把持位置を求めるために少なくとも１つの画像を分析し、所定の基準に基づいて少なくとも１つの把持位置から１つの把持位置を選択することを開示する。
【図４Ａ】図４Ａは、取り得るグリッパマスクの一例を開示する。
【図４Ｂ】図４Ｂは、取り得るグリッパマスクの別の例を開示する。
【図５Ａ】図５Ａは、本発明の一実施形態に係る、複数の部分に分割されたマスクを開示する。
【図５Ｂ】図５Ｂは、本発明の一実施形態に係る図５Ａのマスク部分のコンボリューション（畳み込み）演算を示す。
【発明を実施するための形態】
【００３２】
本発明の実施形態の詳細な説明が添付の図面に示す実施例を参照してなされる。
【００３３】
図１は、本発明の一実施形態に係る物体把持を行うロボットシステムを示す。ロボットシステム１００は、例えば、ロボットアーム１１６を含む産業用ロボットのようなロボット１１０を含む。ロボットアーム１１６は、グリッパ１１２に接続され、クランプ又は爪であってもよい。ロボットアーム１１６は、動作領域１０２内のグリッパ１１２を移動可能である。ロボットアーム１１６は、例えば、ロボットアームの回転、上昇及び把持の制御を可能にするサーボモータのような多数のモータを含んでもよい。ロボットアーム１１６及びグリッパ１１２の各種の移動は、例えば、アクチュエータによりもたらされる。実施例により、アクチュエータは、電気、空気圧又は油圧若しくはこれらの組み合わせでありうる。アクチュエータは、ロボット１１０の各種要素を移動又は回転してもよい。一連の電気的なドライバは、データ処理信号、すなわち、装置１２０からのロボットアーム１１６のアクチュエータを制御する適切な電圧及び電力レベルへの指示を変換するために用いられてもよい。装置１２０からの制御信号に応答して、アクチュエータは、動作領域１１２内の特定の位置においてグリッパ１１２を位置づけること、グリッパ１１２を下降又は上昇すること、及びグリッパ１１２を開閉することを含む各種の機械的な機能を実行するが、これに限定されない。
【００３４】
ロボット１１０は、各種のセンサを含んでもよい。実施例により、センサは、ロボットアーム１１６及びグリッパ１１２の位置を示すと共に、グリッパ１１２の開閉状態を示す各種の位置センサ（図示せず）を含む。グリッパ１１２の開閉状態は、単純なｙｅｓ／ｎｏビットに限定されない。本発明の一実施形態では、グリッパ１１２は、そのフィンガーのそれぞれに対するマルチビット開閉状態を示してもよく、グリッパにおける物体の大きさ及び／又は形状を示すものが取得されてもよい。
【００３５】
位置センサに加えて、一連のセンサは、歪みセンサ又はフォースフィードバックセンサとしても知られている歪センサを含んでもよく、歪センサは、ロボットアーム１１６及びグリッパ１１２の各種要素により受けられる歪みを示す。図示した例に限定されない実装例では、歪センサは、抵抗に加えられる圧縮力に応じて抵抗値が変化する可変抵抗を含む。抵抗の変化は抵抗の絶対値に比べて小さいため、可変抵抗は、通常、ホイートストーンブリッジ構成で測定される。
【００３６】
グリッパ１１２又はロボットアーム１１６に対して接続されるカメラ１１４が存在し、カメラ１１４は、その視野において、少なくとも部分的にグリッパ１１２により把持される物体を有することを目的とする。図１では、カメラは、グリッパ１１２の内側にあるように図示される。カメラ１１４は、また、ロボットアーム１１６に接続される別のシャフトに配置され、グリッパ１１２により把持される物体がカメラ１１４の視野内に良好となるように位置づけられてもよい。別の実施形態では、カメラ１１４は、また、グリッパ１１２又はロボットアーム１１６とは独立した離れた位置に配置されてもよい。一実施形態では、ロボット１１０は、領域１０２、つまりロボット１１０の動作領域に含まれる物体をソートする。領域１０２は、物体１０３、１０４及び１０５のような多数の物体を含む。図１では、ロボット１１０が対象物１０５の把持動作を行い、グリッパ１１２で対象物１０５を掴んでおくことが示される。
【００３７】
ロボット１１０は、データ処理装置１２０、つまり装置に接続される。装置１２０の内部機能は、ボックス１４０により示される。装置１２０は、少なくとも１つのプロセッサ１４２と、ランダムアクセスメモリ（ＲＡＭ）１４８と、ハードディスク１４６と、を備える。プロセッサ１４２は、ソフトウェアエンティティ１５０、１５２、１５４及び１５６を実行することによりロボットアームを制御する。装置１２０は、また、少なくともカメラ周辺機器インターフェース１４５と、ロボット１１０を制御するためのロボットインターフェース１４４とを備える。周辺機器インターフェース１４５は、例えばユニバーサルシリアルバス（ＵＳＢ）のようなバスであってもよい。装置１２０は端末１３０も接続され、端末１３０は少なくともディスプレイ及びキーボードを含む。端末１３０は、装置１２０にローカルエリアネットワークを用いて接続されたラップトップであってもよい。別の実施形態では、装置１２０及び端末１３０は、単一のコンピュータにより実装される。
【００３８】
ロボット１１０のような外部装置と通信するために、装置１２０は、ロボットインターフェース１４４のような外部送受信回路を含む又は使用し、外部送受信回路は、送信回路及び受信回路を含み、内部又は外部アンテナ（図示せず）を含んでもよい。装置１２０は、物質界と通信するためのいくつかの異なるインターフェース技術を使用してもよく、本実施例ではロボット１１０、グリッパ１１２及びカメラ１１４を含む。ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）及び赤外線、ラジオ又はブルートゥースのような近距離ワイヤレスインターフェースは、このような無線送受信回路の実施例であるが、これに限定されるものではない。このようなワイヤレス通信技術に替えて又は加えて、データ処理装置は、ＵＳＢ、パラレル又はシリアルインターフェース、又は他の産業上標準的なインターフェース又は専用のインターフェースのような有線接続を使用してもよい。
【００３９】
さらに、装置１２０のメモリ１４０は、プログラム又は通常少なくとも１つのプロセッサ１４２により実行されるソフトウェアエンティティのコレクションを含む。アームコントローラエンティティ１５０は、ロボットアーム１１６及びグリッパ１１２の回転、上昇及び把持を制御するために、ロボットインターフェースを通じて指示を発する。アームコントローラエンティティ１５０は、また、ロボットアーム１１６及びグリッパ１１２の測定された回転、上昇及び把持にふさわしいセンサデータを受信してもよい。アームコントローラエンティティ１５０は、インターフェース１４４を通じて装置１２０に受信されたフィードバックに基づいて発せられた新たな指示によりアームを作動してもよい。アームコントローラエンティティ１５０は、明確に定義されたハイレベル動作を行うロボット１１０への命令を発するように構成される。ハイレベル動作の一例は、特定の位置へロボットアームを移動することである。アームコントローラエンティティ１５０は、ハイレベル動作を、例えばロボット１１０のアクチュエータへの電気的なドライバを通じて出力信号の適切なシーケンスを出力する等の一連のローレベル動作に変換する各種のソフトウェアドライバ、ルーチン又はダイナミックリンクライブラリを使用してもよい。
【００４０】
カメラコントローラエンティティ１５２は、インターフェース１４５を用いてカメラ１１４と通信する。カメラコントローラエンティティ１５２は、カメラ１１４にカメラコントローラエンティティ１５２により指示された時間に開始する予め設定された時間に複数の写真を撮らせてもよい。一般的に、カメラコントローラエンティティ１５２は、任意の時間で写真を撮るためにカメラ１１４へ命令を発してもよい。カメラコントローラエンティティ１５２は、インターフェース１４５を通じてカメラ１１４により撮られた画像を取得し、メモリ１４０に画像を記憶する。別の実施形態では、カメラ１１４は、ビデオストリームを記録するように構成され、ビデオストリームは、スチール画像を抽出するために装置１２０により処理される。
【００４１】
物体抽出エンティティ１５４は、予め設定された数のソース画像から対象物体を抽出するように構成される。
【００４２】
形状、大きさ、色又は質感のような対象物体の各種の視覚特徴に基づいて対象物体へのさらなる分析を行ってもよい把持位置セレクタ１５６は、所定の基準に基づく取り得る把持位置のセットから、選択された把持位置を決定する。選択機能の詳細が簡潔に説明される。
【００４３】
事例的であるが、これに限定されない実施例では、領域１０２は、コンベヤーベルト又はロボットの動作領域を横断するコンベヤーベルトの一部である。一実施形態では、装置１２０は、対象となる物体の大きさ、形状及び／又は色のような、非構造化領域１０２内の物体１０３、１０４及び１０５の事前情報がわずか又は全く無い。本発明のいくつかの実施形態では、装置１２０は、対象となる物体のいくつかの事前情報を有していてもよく、又は装置１２０は、学習によって得た物体の情報を有していてもよいが、対象となる物体の背景（別の物体）、位置及び向きは、通常、事前には知られていない。すなわち、物体１０３、１０４及び１０５は、非構造化領域１０２内のランダムな位置及び方向であってもよく、物体は、互いに重なっていてもよい。
【００４４】
少なくとも１つのプロセッサ１４２が本発明に関する機能エンティティを実行するとき、メモリ１４８は、コントローラエンティティ１５０、カメラコントローラエンティティ１５２、物体抽出エンティティ１５４及び把持位置セレクターエンティティ１５６のようなエンティティを含む。図１に示される装置１２０内の機能エンティティは、様々な手法で実装されてもよい。機能エンティティは、ネットワークノードのネイティブオペレーティングシステム下で実行される処理として実装されてもよい。エンティティは、別のプロセス又はスレッドとして実装されてもよく、又は多数の異なるエンティティが一のプロセス又はスレッドにより実装されるようになっていていてもよい。プロセス又はスレッドは、多数のルーチン、つまり、例えばプロシージャー及びファンクションを含むプログラムブロックのインスタンスであってもよい。機能エンティティは、別々のコンピュータプログラムとして、又はエンティティを実装するいくつかのルーチン又はファンクションを含む単一のコンピュータプログラムとして実装されてもよい。プログラムブロックは、例えば、メモリ回路、メモリカード、磁気又は光学ディスクのような少なくとも１つのコンピュータ可読媒体に記憶される。いくつかの機能エンティティは、別の機能エンティティとリンクされたプログラムモジュールとして実装されてもよい。図１の機能エンティティは、また、例えば、メッセージバス又はネットワークノード内の内部ネットワークを通じて別々のメモリに記憶され、別々のプロセッサにより実行されてもよい。このようなメッセージバスの一例としては、ペリフェラル  コンポーネント  インターコネクト（ＰＣＩ）バスがある。
【００４５】
本発明の一実施形態では、ソフトウェアエンティティ１５０−１５６は、例えば、サブルーチン、プロセス、スレッド、メソッド、オブジェクト、モジュール及びプログラムコードシーケンスのような別々のソフトウェアエンティティとして実装されてもよい。これらは、また、単に、特定の別々のサブルーチン、プロセス、スレッド、メソッド、オブジェクト、モジュール及びプログラムコードシーケンスにグループ分けされていない、装置１２０のソフトウェア内のロジカルな機能であってもよい。これらの機能は、装置１２０のソフトウェアを通じて展開されてもよい。いくつかの機能は、装置１２０のオペレーションシステムで実行されてもよい。
【００４６】
図１について本明細書で説明される本発明の実施形態は、互いに組み合わせて用いられてもよい。いくつかの実施形態は、本発明のさらなる実施形態を形成するために共に組み合わせられてもよい。
【００４７】
図２は、本発明の一実施形態に係る方法を示すブロック図を開示する。
【００４８】
ステップ２００では、少なくとも１つの物体を含む少なくとも１つの画像が取得される。少なくとも１つの画像は、一又は複数の物体を含んでもよい。物体は、互いに重複してもよい。よって、いくつかのケースでは、実際に物体は、別の物体から切り離すことができない。ステップ２０２では、少なくとも１つの画像は、物体を把持するための少なくとも１つの把持位置を決定するために分析される。ステップ２０４では、分析に基づいて、把持位置は、所定の基準に基づいて少なくとも１つの把持位置から選択される。ステップ２０６では、少なくとも１つの命令は、選択された把持位置において物体を把持するためにグリッパへ発せられる。
【００４９】
図３は、物体を把持するための少なくとも１つの把持位置を決定するために少なくとも１つの画像を分析し、所定の基準に基づいて少なくとも１つの把持位置から１つの把持位置を選択する実施形態を開示する。分析及び選択する機能は、例えば、図１に開示される物体抽出器１５４及び／又は把持位置セレクタ１５６により行われる。
【００５０】
図１に開示するように、一又はそれ以上のカメラは、作業領域の少なくとも１つの画像を取得するために用いられる（３００）。作業領域は、固定されていてもよく、それに替えて、例えば、コンベヤーベルトの移動のようなものであってもよい。画像は、元々カメラによって撮られたスチール画像であってもよく、又はビデオストリームから抽出されたスチール画像であってもよい。一実施形態では、画像は、二次元画像である。別の実施形態では、画像は、三次元画像である。一実施形態では、三次元画像は、その後さらに処理される一又はそれ以上の二次元のサブパーツに分割されている。
【００５１】
画像は、把持される物体に対応する画像における領域を識別するために処理される。一実施形態では、元の画像における各ピクセルは、物体が属するか否かの尤度に対応する値に割り当てられる。いくつかのピクセルに対して、例えば、物体の境界での曖昧なピクセルのように、これらのピクセルが物体の一部であるか否かが不確かであってもよい。したがって、一実施形態では、２つのマスク画像が算出される。第１のマスク画像は、バックグラウンドマスク（３０６）であり、第２のマスク画像は、物体マスク（３０８）である。
【００５２】
バックグラウンドマスク（３０６）は、物体の一部又は障害物ではない元の画像におけるピクセルのマスクである（図３の網掛け部分）。すなわち、ピクセルのマスクは、図１のグリッパが動作できる空間部分を示す。物体マスク（３０８）は、把持される物体の一部である元の画像におけるピクセルのマスクである（図３の黒の物体領域）。
【００５３】
把持する位置を見つけるために、一実施形態では、他のマスクの対が生成される：グリッパマスク（３０２）及び把持領域マスク（３０４）。グリッパマスク（３０２）は、グリッパの部分に対応するピクセルのマスクである。グリッパマスク（３０２）は、この実施形態では、三角形の形態で配置された３つのフィンガーグリッパの３つに分かれた“フィンガーストリップス（ｆｉｎｇｅｒｔｉｐｓ）”として示される。別の一実施形態では、グリッパマスク（３０２）は、また、他の形態を取ってもよい。最上部のフィンガーストリップと最下部のフィンガーストリップとの間の空間は、フィンガーストリップ間の最大把持距離を示す。把持領域マスク（３０４）は、グリッパの内側に適合するピクセルのマスクである。把持領域マスク（３０４）の小さな四角形は、グリッパの内側の空間に対応し、物体が把持されたとき、物体が一部又は全部を埋めることが好ましい。一実施形態では、把持領域マスク（３０４）における小さな四角形は、物体の把持された部分が満たされなければならないグリッパ内の最小領域／体積を示す。別の一実施形態では、把持位置が決定するときに用いられるいくつかの離れた把持領域マスクが存在してもよい。これらの少なくともいくつかは、上記のように、物体の把持された部分が満たされなければならないグリッパ内の最小領域／体積を示してもよい。また、一実施形態では、いくつかの離れた把持領域マスクは、把持位置を決定するために同時に用いられてもよい。一実施形態では、選択される把持位置は、把持領域マスク全体（小さな四角形）（３０４）を満たさなければならない必要は無い。
【００５４】
物体の把持位置を算出するために、はじめに、グリッパマスク（３０２）は、異なる位置でバックグラウンドマスク（３０６）に重畳され、２つのマスクの重複は、各位置で別々に算出される。グリッパマスク（３０２）及びバックグラウンドマスク（３０６）が完全に重複しない位置は、グリッパが何かに衝突する把持位置に対応する。したがって、これらの位置は、物体を把持するための取り得る位置としてみなされなくてもよく、一実施形態では、これらの把持位置は、却下される。
【００５５】
参照番号３１０及び３１２は、グリッパマスク（３０２）の領域（“フィンガーストリップス”）がバックグランドマスク（３０６）で完全に重複せず、把持領域マスク（３０４）は、適度に物体マスク（３０８）で重複するソリューションの一例を示す。したがって、上記のように、この位置は、物体を把持するための取り得る位置としてみなされず、よって、この把持位置も却下される。
【００５６】
参照番号３１４及び３１６は、グリッパマスク（３０２）の領域（“フィンガーストリップス”）がバックグランドマスク（３０６）で完全に重複するが、把持領域マスク（３０４）は、物体マスク（３０８）で小さな部分によってのみ重複するソリューションの一例を示す。したがって、一実施形態では、上記のように、この位置は、物体を把持するための取り得る位置としてみなされず、よって、この把持位置も却下される。
【００５７】
参照番号３１８及び３２０は、グリッパマスク（３０２）の領域（“フィンガーストリップス”）がバックグランドマスク（３０６）で完全に重複し、把持領域マスク（３０４）は、物体マスク（３０８）で完全に重複するソリューションの一例を示す。よって、この例は、１つの取り得る把持位置を示す。
【００５８】
結果として、グリッパマスク（３０２）は、異なる位置でバックグランドマスク（３０６）に重ね合わせられ、マスクの重複が算出される。重複の量が多い位置は、原理上、把持が可能な位置である。同様に、把持領域マスク（３０４）は、異なる位置で物体マスク（３０８）に重ね合わせられ、マスクの重複が算出される。グリッパマスク（３０２）とバックグランドマスク（３０６）との重複及び把持領域マスク（３０４）と物体マスク（３０８）との重複の両方の量が大きい位置は、グリッパが物体の大部分を取り囲み、把持が成功する位置である。
【００５９】
よって、把持位置に良好な座標は、グリッパが物体の周りを動作するために十分な空間を有し、把持位置での物体の大きさは、グリッパに対して適切である。把持する最良の方向を決定するために、グリッパの異なる位置に対応する離れたグリッパマスク（３０２）及び把持領域マスク（３０４）は、各ペアに対して上述した工程を繰り返すために用いられることができ、その後、把持位置及び重複の最も大きな値を与える位置を選択する。これらのマスクは、取り得るグリッパ位置のセットに対して予め算出される、又はオンザフライで算出されうる。
【００６０】
一実施形態では、上記の重複のいずれも数的な品質係数を与えられる。品質係数の結果が最も大きい位置は、物体の最良の把持位置として選択される。一実施形態では、少なくとも１つの品質値に対して最小値が求められる。これは、実際には、グリッパが選択された把持位置へ移動するために十分な空間を有することを保証する。
【００６１】
重複を算出する１つの取り得る方法は、マスクのコンボリューションである。コンボリューションは、高速フーリエ変換（ＦＦＴ）アルゴリズムを用いて効率良く算出される。一実施形態では、分散フーリエ変換は、マスクで算出される。その後、重複の算出は、変換されたマスクのエレメント−ワイズ乗算（ｅｌｅｍｅｎｔ−ｗｉｓｅ  ｍｕｌｔｉｐｌｉｃａｔｉｏｎ）により行われる。乗算を算出した後、逆ＦＦＴがその結果から得られ、元のマスクのコンボリューションの結果を得る。
【００６２】
上記で説明した方法におけるいくつか又は全ての計算は、並行して行われることができ、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ  （ＦＰＧＡ）を用いた実装に好適である。ＦＰＧＡは、ＦＦＴ及びコンボリューションのようなタスクに広く用いられ、上記で説明された方法の部分又は全体としての方法は、それらに効果的に実装されうる。
【００６３】
別の一実施形態では、グリッパマスクは、小さな同一の部分に分割される。図５Ａは、グリッパマスクが部分に分割されることを開示する。この実施形態では、マスクの全ての部分は、オフセットｄｘ，ｄｙによりシフトされた、１つのパーツ（５００）のコピーとみなされうることがわかる。図５Ｂに記載されるように、異なる位置にあるマスクとパーツとの重複を算出することにより、計算は、その後、マスクとしてのパーツ（５００）を用いて行われる。マスクのパーツが全体マスクよりも小さいと、演算の量は、全体マスクの場合よりも小さくなり、計算は、それぞれ速くなる。最終結果は、マスクに対する異なる位置において、パーツ及びマスクの算出された重複に対応する値のアレイである。
【００６４】
第１のパーツにより算出されたこれらの値は、その後、他のパーツに対する値として再使用されうる。全体マスクに対する計算は、合計の前に、それらがマスクパーツ位置での差に対応する量によりシフトされたときに、値から蓄積されうる。すなわち、全体マスクによるコンボリューションは、マスクパーツによるコンボリューションの合計となる。しかし、他のコンボリューションは、初めのものと同一のアレイであり、第１のパーツから差分ｄｘ，ｄｙによりシフトされたのみである。したがって、各画像ポイントの全体マスクに対するコンボリューションは、分割されたマスクの全てのパーツに対する、ポイントでのアレイ値＋（ポイント＋第２のパーツのオフセット）でのアレイ値＋（ポイント＋第３のパーツのオフセット）でのアレイ値等である。
【００６５】
上記の工程は、コンボリューションを算出するためにＦＦＴを用いる場合よりも効率が良く、これは、ＦＦＴ及び逆ＦＦＴの算出が、マスクを蓄積することに比べて費用の掛かる演算であるためである。さらなる利点は、重複の算出において、例えば、２つのマスクのピクセル値の最小値を取るような乗算ではなく他の数学的な演算、又はＦＦＴを用いることにより効果的な手法で行うことができない他の関数を用いることができることである。
【００６６】
図４Ａ及び４Ｂは、取り得るグリッパマスクの２つの実施例を示す。いずれの実施例でも、矢印で示される距離Ｄは、グリッパの動作に応じて変化してもよい。
【００６７】
本明細書に記載される本発明の実施形態は、互いに組み合わせて用いられてもよい。いくつかの実施形態は、本発明のさらに別の実施形態を形成するために互いに組み合わされてもよい。
【００６８】
本発明の例示的な実施形態は、任意の適切なサーバ、ワークステーション、ＰＣ、ラップトップコンピュータ、ＰＤＡ、インターネット家電、ハンドヘルド装置、携帯電話、無線装置、他の装置等の例示的な実施形態のプロセスを実行可能な任意の適切なデバイスを含み得、例えば、インターネットアクセス、任意の適切な形式（例えば、音声、モデム等）での電話、無線通信媒体、一又はそれ以上の無線通信ネットワーク、携帯通話ネットワーク、３Ｇ通信ネットワーク、４Ｇ通信ネットワーク、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ  （ＰＳＴＮｓ））、パケットデータネットワーク（ＰＤＮｓ）、インターネット、イントラネット、それらの組み合わせ等を含む一又はそれ以上のインターフェース機構を通じて通信可能である。
【００６９】
ハードウェア分野の当業者には理解できるように、例示的な実施形態は、例示的なプロセスのためのものであり、例示的な実施形態を実装するために特定のハードウェアの多くのバリエーションが可能であることがわかる。例えば、例示的な実施形態の一又はそれ以上の構成要素の機能性は、一又はそれ以上のハードウェアデバイスにより実装されうる。
【００７０】
例示的な実施形態は、本明細書で説明された各種のプロセスに関する情報を記憶しうる。この情報は、ハードディスク、光ディスク、磁気−光ディスク、ＲＡＭ等のような一又はそれ以上のメモリに記憶されうる。一又はそれ以上のデータベースは、本発明の例示的な実施形態を実装するために用いられる情報を記憶しうる。データベースは、本明細書に挙げた一又はそれ以上のメモリ又はストレージに含まれるデータ構造（例えば、レコード、テーブル、アレイ、フィールド、グラフ、ツリー、リスト等）を用いて構成されうる。例示的な実施形態について説明されたプロセスは、一又はそれ以上のデータベースにおける例示的な実施形態のデバイス及びサブシステムのプロセスにより収集及び／又は生成されたデータを記憶するために適切なデータ構造を含みうる。
【００７１】
電気分野の当業者には理解できるように、例示的な実施形態の全部又は一部は、特定用途集積回路の作成により、又は従来のコンポーネント回路の適切なネットワークを相互接続することにより実装されてもよい。
【００７２】
上述したように、例示的な実施形態の構成要素は、本発明の教示に係り、データ構造、テーブル、レコード、及び／又は本明細書に記載された他のデータを保持するためのコンピュータで読み取り可能な媒体又はメモリを含みうる。コンピュータで読み取り可能な媒体は、実行のためのプロセッサへの命令の提供を共有する任意の媒体を含みうる。このような媒体は、多くの形態をとり得、不揮発性媒体、揮発性媒体、伝送媒体等を含むが、これに限定されない。不揮発性媒体は、例えば、光又は磁気ディスク、磁気−光ディスク等を含みうる。揮発性媒体は、ダイナミックメモリ等を含みうる。伝送媒体は、同軸ケーブル、銅線、光ファイバー等を含みうる。伝送媒体は、また、無線周波数（ＲＦ）通信、赤外線（ＩＲ）データ通信等の間に生成される音響、光、電磁波等の形態をとりうる。コンピュータで読み取り可能な媒体の一般的な形態は、フロッピーディスク（登録商標）、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ，ＣＤＲＷ，ＤＶＤ，任意の他の適切な光学媒体、パンチカード、ペーパーテープ、光学マークシート、穴のパターンを有する任意の他の適切な物理媒体、任意の他の光学的に識別可能な印、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他の適切なメモリチップ又はカートリッジ、搬送波又はコンピュータが読み取ることができる任意の他の適切な媒体を含みうる。
【００７３】
本発明は、多くの例示的な実施形態及び実装に関して説明してきたが、本発明はこれに限定されず、予期される特許請求の範囲内に含まれる各種の変更及び均等物が含まれる。
【００７４】
当業者には本発明の基本概念が各種の手法で実装されてもよいことが自明である。よって、本発明及びその実施形態は、上述した実施例に限定されず、特許請求の範囲内で変更されてもよい。
【図２】
0005918266.tif 000002
【図３】
0005918266.tif 000003
【図４Ａ】
0005918266.tif 000004
【図４Ｂ】
0005918266.tif 000005
【図５Ａ】
0005918266.tif 000006
【図５Ｂ】
0005918266.tif 000007
【図１】
0005918266.tif 000008