"少なくとも1つの物体を含む少なくとも1つの画像を取得するステップと、前記物体を把持するための少なくとも1つの把持位置を決定するために前記少なくとも1つの画像を分析するステップと、所定の基準に基づいて、前記少なくとも1つの把持位置から1つの把持位置を選択するステップと、選択された前記把持位置で前記物体を把持するために少なくとも1つの命令をグリッパへ発するステップと、を含む方法。前記分析するステップ及び前記選択するステップは、前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出するステップと、把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出するステップと、前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出するステップと、前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出するステップと、少なくとも1つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせるステップと、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出するステップと、前記少なくとも1つの位置で前記把持領域マスクを前記物体マスクに重ね合わせるステップと、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複を算出するステップと、前記重複の算出に基づいて把持位置を選択するステップと、をさらに含む請求項1に記載の方法。前記少なくとも1つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てるステップをさらに含む請求項2に記載の方法。前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第1の品質係数を割り当てるステップと、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第2の品質係数を割り当てるステップと、前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップと、をさらに含む請求項2又は3に記載の方法。前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップは、前記第1及び第2の品質係数の結果が最も大きい把持位置を選択することをさらに含む請求項4に記載の方法。前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップは、選択された前記把持位置の前記第1の品質係数に対する最小値を設定することをさらに含む請求項5に記載の方法。前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するステップをさらに含む請求項2から6のいずれか一項に記載の方法。前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対して予め算出される請求項2から7のいずれか一項に記載の方法。前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対してリアルタイムで算出される請求項2から7のいずれか一項に記載の方法。マスクの重複を算出するステップは、前記グリッパマスクをグリッパマスクパーツに分割するステップと、1つの前記グリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出するステップと、前記グリッパマスクにおける第1のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第1のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出するステップと、前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するステップと、をさらに含む請求項2から9のいずれか一項に記載の方法。マスクの重複を算出するステップは、前記把持領域マスクを把持領域マスクパーツに分割するステップと、1つの把持領域マスクパーツ及び前記物体マスクの重複を算出するステップと、前記把持領域マスクにおける第1の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第1の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出するステップと、前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するステップと、をさらに含む請求項2から10のいずれか一項に記載の方法。高速フーリエ変換FFTによるコンボリューションは、前記重複の算出に用いられる請求項2から9のいずれか一項に記載の方法。前記ステップのいくつか又は全てはフィールドプログラマブルゲートアレイFPGAを用いることにより実装される請求項1から12のいずれか一項に記載の方法。請求項1から13のいずれか一項に記載の方法を実行するための命令を含むプログラムコードを含むコンピュータプログラム。前記コンピュータプログラムは、コンピュータ可読媒体に記憶される請求項14に記載のコンピュータプログラム。物体を含む少なくとも1つの画像を取得する手段145,152と、前記物体を把持するための少なくとも1つの把持位置を決定するために前記少なくとも1つの画像を分析する手段154,156と、所定の基準に基づいて、前記少なくとも1つの把持位置から1つの把持位置を選択する手段156と、選択された前記把持位置で前記物体を把持するために少なくとも1つの命令をグリッパへ発する手段142と、を備える装置。請求項2から13のいずれか一項に記載の方法を実装する手段140をさらに備える請求項16に記載の装置。目的がロボットアームに物体を操作させることである場合、ロボットアームは、通常、対象となる物体を把持するのに適切な装置が装備されている。このような装置は、例えば、手、爪又はクランプに類似している。反復的なタスクを行うためにロボットアームをプログラムすることは、相対的に容易であるが、自動的に物体を操作することは困難であり、特に、変化する環境又は他の物体が混在する環境から物体を認識すること、及び他の物体の中に存在する物体を操作することは困難である。物体を操作するために用いられるロボットシステムは、一般的に、ロボットアームのグリッパが物体を確実に把持するように設計しうるために、事前に知られた物体の形状を必要とする。ごみを分別するときのような、非構造化環境から位置、方向及び幾何学形状が変化する物体を把持するとき、グリッパは、事前に特定の物体に対して設計されず、より一般的なデザインが用いられる必要がある。従来技術の欠点の1つは、他の所望しない物体又は他の障害物の中から形状及び大きさが変化する物体を確実に把持できるグリッパを設計することが困難なことである。本発明の一態様によれば、少なくとも1つの物体を含む少なくとも1つの画像を取得するステップと、物体を把持するための少なくとも1つの把持位置を決定するために前記少なくとも1つの画像を分析するステップと、所定の基準に基づいて、前記少なくとも1つの把持位置から1つの把持位置を選択するステップと、選択された前記把持位置で前記物体を把持するために少なくとも1つの命令をグリッパへ発するステップと、を含む方法が提供される。本発明の別の態様によれば、前記方法を実行するための命令を含むプログラムコードを含むコンピュータプログラムが提供される。本発明の別の態様によれば、物体を含む少なくとも1つの画像を取得する手段と、前記物体を把持するための少なくとも1つの把持位置を決定するために前記少なくとも1つの画像を分析する手段と、所定の基準に基づいて、前記少なくとも1つの把持位置から1つの把持位置を選択する手段と、選択された前記把持位置で前記物体を把持するために少なくとも1つの命令をグリッパへ発する手段と、を備える装置が提供される。本発明の一実施形態では、前記分析するステップ及び前記選択するステップは、前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出するステップと、把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出するステップと、前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出するステップと、前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出するステップと、少なくとも1つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせるステップと、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出するステップと、前記少なくとも1つの位置で前記把持領域マスクを前記物体マスクに重ね合わせるステップと、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複を算出するステップと、前記重複の算出に基づいて把持位置を選択するステップと、をさらに含む。本発明の一実施形態では、前記方法は、前記少なくとも1つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てるステップをさらに含む。本発明の一実施形態では、前記方法は、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第1の品質係数を割り当てるステップと、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第2の品質係数を割り当てるステップと、前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップと、をさらに含む。本発明の一実施形態では、前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップは、前記第1及び第2の品質係数の結果が最も大きい把持位置を選択することをさらに含む。本発明の一実施形態では、前記第1及び第2の品質係数に基づいて前記把持位置を選択するステップは、選択された前記把持位置の前記第1の品質係数に対する最小値を設定することをさらに含む。本発明の一実施形態では、前記方法は、前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するステップをさらに含む。本発明の一実施形態では、前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対して予め算出される。本発明の一実施形態では、前記グリッパマスク及び前記把持領域マスクは、取り得る把持位置のセットに対してリアルタイムで算出される。本発明の一実施形態では、マスクの重複を算出するステップは、前記グリッパマスクをグリッパマスクパーツに分割するステップと、1つのグリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出するステップと、前記グリッパマスクにおける第1のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第1のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出するステップと、前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するステップと、をさらに含む。本発明の一実施形態では、マスクの重複を算出するステップは、前記把持領域マスクを把持領域マスクパーツに分割するステップと、1つの把持領域マスクパーツ及び前記物体マスクの重複を算出するステップと、前記把持領域マスクにおける第1の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第1の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出するステップと、前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するステップと、をさらに含む。本発明の一実施形態では、高速フーリエ変換FFTによるコンボリューション畳み込みは、前記重複の算出に用いられる。本発明の一実施形態では、前記ステップのいくつか又は全てはフィールドプログラマブルゲートアレイFPGAを用いることにより実装される。本発明の一実施形態では、前記装置は、本発明の各種実施形態を実装する手段を含む。本発明の一実施形態では、前記装置は、前記画像における物体の一部ではない画像ピクセルのマスクであるバックグラウンドマスクを算出し、把持される前記物体の一部である画像ピクセルのマスクである物体マスクを算出し、前記グリッパの把持部分に対応する画像ピクセルのマスクであるグリッパマスクを算出し、前記グリッパの内側に適合する画像ピクセルのマスクである把持領域マスクを算出し、少なくとも1つの位置で前記グリッパマスクを前記バックグラウンドマスクに重ね合わせ、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複を算出し、前記少なくとも1つの位置で前記把持領域マスクを前記物体マスクに重ね合わせ、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複を算出する手段をさらに備え、前記選択する手段は、前記重複の算出に基づいて把持位置を選択するように構成される。本発明の一実施形態では、前記装置は、前記少なくとも1つの画像における各ピクセルを、前記ピクセルが前記物体に属する尤度に対応する値に割り当てる手段をさらに備える。本発明の一実施形態では、前記装置は、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複の算出に基づいて、前記少なくとも1つの位置における前記グリッパマスク及び前記バックグラウンドマスクの重複に対する第1の品質係数を割り当て、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複の算出に基づいて、前記少なくとも1つの位置における前記把持領域マスク及び前記物体マスクの重複に対する第2の品質係数を割り当てる手段をさらに備え、前記選択する手段は、前記第1及び第2の品質係数に基づいて前記把持位置を選択するように構成される。本発明の一実施形態では、前記選択する手段は、前記第1及び第2の品質係数の結果が最も大きい把持位置を選択するように構成される。本発明の一実施形態では、前記選択する手段は、選択された前記把持位置の前記第1の品質係数に対する最小値を設定するように構成される。本発明の一実施形態では、前記算出する手段は、前記グリッパの異なる位置に対応する複数のグリッパマスク及び把持領域マスクを算出するように構成される。本発明の一実施形態では、前記算出する手段は、前記グリッパマスクをグリッパ領域マスクパーツに分割し、1つのグリッパマスクパーツ及び前記バックグラウンドマスクの重複を算出し、前記グリッパマスクにおける第1のグリッパマスクパーツに対する他のグリッパマスクパーツのそれぞれのオフセットによる前記第1のグリッパマスクパーツにより算出された値をシフトすることにより、前記他のグリッパマスクパーツのそれぞれに対する重複を算出し、前記グリッパマスクパーツに対して算出された前記重複の合計として前記グリッパマスク及び前記バックグラウンドマスク全体の重複を算出するように構成される。本発明の一実施形態では、前記算出する手段は、前記把持領域マスクを把持領域マスクパーツに分割し、1つの把持領域マスクパーツ及び前記物体マスクの重複を算出し、前記把持領域マスクにおける第1の把持領域マスクパーツに対する他の把持領域マスクパーツのそれぞれのオフセットによる前記第1の把持領域マスクパーツにより算出された値をシフトすることにより、前記他の把持領域マスクパーツのそれぞれに対する重複を算出し、前記把持領域マスクパーツに対して算出された前記重複の合計として前記把持領域マスク及び前記物体マスク全体の重複を算出するように構成される。本発明は、物体におけるハンドルhandlesがマシンビジョンを用いて認識されるソリューションを開示する。ハンドルhandleは、実装されたグリッパにより把持されうる物体の一部である。本発明の少なくとも1つの実施形態の利点は、把持するためのグリッパ用のハンドルとして機能しうる小さな突出部分を有する場合に、グリッパの開きよりも大きい物体でも把持できることを含む。また、本発明の少なくとも1つの実施形態は、物体を把持するための最適な把持位置を決定することができるソリューションを提供する。本発明の実施形態の詳細な説明が添付の図面に示す実施例を参照してなされる。図1は、本発明の一実施形態に係る物体把持を行うロボットシステムを示す。ロボットシステム100は、例えば、ロボットアーム116を含む産業用ロボットのようなロボット110を含む。ロボットアーム116は、グリッパ112に接続され、クランプ又は爪であってもよい。ロボットアーム116は、動作領域102内のグリッパ112を移動可能である。ロボットアーム116は、例えば、ロボットアームの回転、上昇及び把持の制御を可能にするサーボモータのような多数のモータを含んでもよい。ロボットアーム116及びグリッパ112の各種の移動は、例えば、アクチュエータによりもたらされる。実施例により、アクチュエータは、電気、空気圧又は油圧若しくはこれらの組み合わせでありうる。アクチュエータは、ロボット110の各種要素を移動又は回転してもよい。一連の電気的なドライバは、データ処理信号、すなわち、装置120からのロボットアーム116のアクチュエータを制御する適切な電圧及び電力レベルへの指示を変換するために用いられてもよい。装置120からの制御信号に応答して、アクチュエータは、動作領域112内の特定の位置においてグリッパ112を位置づけること、グリッパ112を下降又は上昇すること、及びグリッパ112を開閉することを含む各種の機械的な機能を実行するが、これに限定されない。ロボット110は、各種のセンサを含んでもよい。実施例により、センサは、ロボットアーム116及びグリッパ112の位置を示すと共に、グリッパ112の開閉状態を示す各種の位置センサ図示せずを含む。グリッパ112の開閉状態は、単純なyes/noビットに限定されない。本発明の一実施形態では、グリッパ112は、そのフィンガーのそれぞれに対するマルチビット開閉状態を示してもよく、グリッパにおける物体の大きさ及び/又は形状を示すものが取得されてもよい。位置センサに加えて、一連のセンサは、歪みセンサ又はフォースフィードバックセンサとしても知られている歪センサを含んでもよく、歪センサは、ロボットアーム116及びグリッパ112の各種要素により受けられる歪みを示す。図示した例に限定されない実装例では、歪センサは、抵抗に加えられる圧縮力に応じて抵抗値が変化する可変抵抗を含む。抵抗の変化は抵抗の絶対値に比べて小さいため、可変抵抗は、通常、ホイートストーンブリッジ構成で測定される。グリッパ112又はロボットアーム116に対して接続されるカメラ114が存在し、カメラ114は、その視野において、少なくとも部分的にグリッパ112により把持される物体を有することを目的とする。図1では、カメラは、グリッパ112の内側にあるように図示される。カメラ114は、また、ロボットアーム116に接続される別のシャフトに配置され、グリッパ112により把持される物体がカメラ114の視野内に良好となるように位置づけられてもよい。別の実施形態では、カメラ114は、また、グリッパ112又はロボットアーム116とは独立した離れた位置に配置されてもよい。一実施形態では、ロボット110は、領域102、つまりロボット110の動作領域に含まれる物体をソートする。領域102は、物体103、104及び105のような多数の物体を含む。図1では、ロボット110が対象物105の把持動作を行い、グリッパ112で対象物105を掴んでおくことが示される。ロボット110は、データ処理装置120、つまり装置に接続される。装置120の内部機能は、ボックス140により示される。装置120は、少なくとも1つのプロセッサ142と、ランダムアクセスメモリRAM148と、ハードディスク146と、を備える。プロセッサ142は、ソフトウェアエンティティ150、152、154及び156を実行することによりロボットアームを制御する。装置120は、また、少なくともカメラ周辺機器インターフェース145と、ロボット110を制御するためのロボットインターフェース144とを備える。周辺機器インターフェース145は、例えばユニバーサルシリアルバスUSBのようなバスであってもよい。装置120は端末130も接続され、端末130は少なくともディスプレイ及びキーボードを含む。端末130は、装置120にローカルエリアネットワークを用いて接続されたラップトップであってもよい。別の実施形態では、装置120及び端末130は、単一のコンピュータにより実装される。ロボット110のような外部装置と通信するために、装置120は、ロボットインターフェース144のような外部送受信回路を含む又は使用し、外部送受信回路は、送信回路及び受信回路を含み、内部又は外部アンテナ図示せずを含んでもよい。装置120は、物質界と通信するためのいくつかの異なるインターフェース技術を使用してもよく、本実施例ではロボット110、グリッパ112及びカメラ114を含む。ワイヤレスローカルエリアネットワークWLAN及び赤外線、ラジオ又はブルートゥースのような近距離ワイヤレスインターフェースは、このような無線送受信回路の実施例であるが、これに限定されるものではない。このようなワイヤレス通信技術に替えて又は加えて、データ処理装置は、USB、パラレル又はシリアルインターフェース、又は他の産業上標準的なインターフェース又は専用のインターフェースのような有線接続を使用してもよい。さらに、装置120のメモリ140は、プログラム又は通常少なくとも1つのプロセッサ142により実行されるソフトウェアエンティティのコレクションを含む。アームコントローラエンティティ150は、ロボットアーム116及びグリッパ112の回転、上昇及び把持を制御するために、ロボットインターフェースを通じて指示を発する。アームコントローラエンティティ150は、また、ロボットアーム116及びグリッパ112の測定された回転、上昇及び把持にふさわしいセンサデータを受信してもよい。アームコントローラエンティティ150は、インターフェース144を通じて装置120に受信されたフィードバックに基づいて発せられた新たな指示によりアームを作動してもよい。アームコントローラエンティティ150は、明確に定義されたハイレベル動作を行うロボット110への命令を発するように構成される。ハイレベル動作の一例は、特定の位置へロボットアームを移動することである。アームコントローラエンティティ150は、ハイレベル動作を、例えばロボット110のアクチュエータへの電気的なドライバを通じて出力信号の適切なシーケンスを出力する等の一連のローレベル動作に変換する各種のソフトウェアドライバ、ルーチン又はダイナミックリンクライブラリを使用してもよい。カメラコントローラエンティティ152は、インターフェース145を用いてカメラ114と通信する。カメラコントローラエンティティ152は、カメラ114にカメラコントローラエンティティ152により指示された時間に開始する予め設定された時間に複数の写真を撮らせてもよい。一般的に、カメラコントローラエンティティ152は、任意の時間で写真を撮るためにカメラ114へ命令を発してもよい。カメラコントローラエンティティ152は、インターフェース145を通じてカメラ114により撮られた画像を取得し、メモリ140に画像を記憶する。別の実施形態では、カメラ114は、ビデオストリームを記録するように構成され、ビデオストリームは、スチール画像を抽出するために装置120により処理される。物体抽出エンティティ154は、予め設定された数のソース画像から対象物体を抽出するように構成される。形状、大きさ、色又は質感のような対象物体の各種の視覚特徴に基づいて対象物体へのさらなる分析を行ってもよい把持位置セレクタ156は、所定の基準に基づく取り得る把持位置のセットから、選択された把持位置を決定する。選択機能の詳細が簡潔に説明される。事例的であるが、これに限定されない実施例では、領域102は、コンベヤーベルト又はロボットの動作領域を横断するコンベヤーベルトの一部である。一実施形態では、装置120は、対象となる物体の大きさ、形状及び/又は色のような、非構造化領域102内の物体103、104及び105の事前情報がわずか又は全く無い。本発明のいくつかの実施形態では、装置120は、対象となる物体のいくつかの事前情報を有していてもよく、又は装置120は、学習によって得た物体の情報を有していてもよいが、対象となる物体の背景別の物体、位置及び向きは、通常、事前には知られていない。すなわち、物体103、104及び105は、非構造化領域102内のランダムな位置及び方向であってもよく、物体は、互いに重なっていてもよい。少なくとも1つのプロセッサ142が本発明に関する機能エンティティを実行するとき、メモリ148は、コントローラエンティティ150、カメラコントローラエンティティ152、物体抽出エンティティ154及び把持位置セレクターエンティティ156のようなエンティティを含む。図1に示される装置120内の機能エンティティは、様々な手法で実装されてもよい。機能エンティティは、ネットワークノードのネイティブオペレーティングシステム下で実行される処理として実装されてもよい。エンティティは、別のプロセス又はスレッドとして実装されてもよく、又は多数の異なるエンティティが一のプロセス又はスレッドにより実装されるようになっていていてもよい。プロセス又はスレッドは、多数のルーチン、つまり、例えばプロシージャー及びファンクションを含むプログラムブロックのインスタンスであってもよい。機能エンティティは、別々のコンピュータプログラムとして、又はエンティティを実装するいくつかのルーチン又はファンクションを含む単一のコンピュータプログラムとして実装されてもよい。プログラムブロックは、例えば、メモリ回路、メモリカード、磁気又は光学ディスクのような少なくとも1つのコンピュータ可読媒体に記憶される。いくつかの機能エンティティは、別の機能エンティティとリンクされたプログラムモジュールとして実装されてもよい。図1の機能エンティティは、また、例えば、メッセージバス又はネットワークノード内の内部ネットワークを通じて別々のメモリに記憶され、別々のプロセッサにより実行されてもよい。このようなメッセージバスの一例としては、ペリフェラルコンポーネントインターコネクトPCIバスがある。本発明の一実施形態では、ソフトウェアエンティティ150-156は、例えば、サブルーチン、プロセス、スレッド、メソッド、オブジェクト、モジュール及びプログラムコードシーケンスのような別々のソフトウェアエンティティとして実装されてもよい。これらは、また、単に、特定の別々のサブルーチン、プロセス、スレッド、メソッド、オブジェクト、モジュール及びプログラムコードシーケンスにグループ分けされていない、装置120のソフトウェア内のロジカルな機能であってもよい。これらの機能は、装置120のソフトウェアを通じて展開されてもよい。いくつかの機能は、装置120のオペレーションシステムで実行されてもよい。図1について本明細書で説明される本発明の実施形態は、互いに組み合わせて用いられてもよい。いくつかの実施形態は、本発明のさらなる実施形態を形成するために共に組み合わせられてもよい。図2は、本発明の一実施形態に係る方法を示すブロック図を開示する。ステップ200では、少なくとも1つの物体を含む少なくとも1つの画像が取得される。少なくとも1つの画像は、一又は複数の物体を含んでもよい。物体は、互いに重複してもよい。よって、いくつかのケースでは、実際に物体は、別の物体から切り離すことができない。ステップ202では、少なくとも1つの画像は、物体を把持するための少なくとも1つの把持位置を決定するために分析される。ステップ204では、分析に基づいて、把持位置は、所定の基準に基づいて少なくとも1つの把持位置から選択される。ステップ206では、少なくとも1つの命令は、選択された把持位置において物体を把持するためにグリッパへ発せられる。図3は、物体を把持するための少なくとも1つの把持位置を決定するために少なくとも1つの画像を分析し、所定の基準に基づいて少なくとも1つの把持位置から1つの把持位置を選択する実施形態を開示する。分析及び選択する機能は、例えば、図1に開示される物体抽出器154及び/又は把持位置セレクタ156により行われる。図1に開示するように、一又はそれ以上のカメラは、作業領域の少なくとも1つの画像を取得するために用いられる300。作業領域は、固定されていてもよく、それに替えて、例えば、コンベヤーベルトの移動のようなものであってもよい。画像は、元々カメラによって撮られたスチール画像であってもよく、又はビデオストリームから抽出されたスチール画像であってもよい。一実施形態では、画像は、二次元画像である。別の実施形態では、画像は、三次元画像である。一実施形態では、三次元画像は、その後さらに処理される一又はそれ以上の二次元のサブパーツに分割されている。画像は、把持される物体に対応する画像における領域を識別するために処理される。一実施形態では、元の画像における各ピクセルは、物体が属するか否かの尤度に対応する値に割り当てられる。いくつかのピクセルに対して、例えば、物体の境界での曖昧なピクセルのように、これらのピクセルが物体の一部であるか否かが不確かであってもよい。したがって、一実施形態では、2つのマスク画像が算出される。第1のマスク画像は、バックグラウンドマスク306であり、第2のマスク画像は、物体マスク308である。バックグラウンドマスク306は、物体の一部又は障害物ではない元の画像におけるピクセルのマスクである図3の網掛け部分。すなわち、ピクセルのマスクは、図1のグリッパが動作できる空間部分を示す。物体マスク308は、把持される物体の一部である元の画像におけるピクセルのマスクである図3の黒の物体領域。把持する位置を見つけるために、一実施形態では、他のマスクの対が生成される:グリッパマスク302及び把持領域マスク304。グリッパマスク302は、グリッパの部分に対応するピクセルのマスクである。グリッパマスク302は、この実施形態では、三角形の形態で配置された3つのフィンガーグリッパの3つに分かれたフィンガーストリップスfingertipsとして示される。別の一実施形態では、グリッパマスク302は、また、他の形態を取ってもよい。最上部のフィンガーストリップと最下部のフィンガーストリップとの間の空間は、フィンガーストリップ間の最大把持距離を示す。把持領域マスク304は、グリッパの内側に適合するピクセルのマスクである。把持領域マスク304の小さな四角形は、グリッパの内側の空間に対応し、物体が把持されたとき、物体が一部又は全部を埋めることが好ましい。一実施形態では、把持領域マスク304における小さな四角形は、物体の把持された部分が満たされなければならないグリッパ内の最小領域/体積を示す。別の一実施形態では、把持位置が決定するときに用いられるいくつかの離れた把持領域マスクが存在してもよい。これらの少なくともいくつかは、上記のように、物体の把持された部分が満たされなければならないグリッパ内の最小領域/体積を示してもよい。また、一実施形態では、いくつかの離れた把持領域マスクは、把持位置を決定するために同時に用いられてもよい。一実施形態では、選択される把持位置は、把持領域マスク全体小さな四角形304を満たさなければならない必要は無い。物体の把持位置を算出するために、はじめに、グリッパマスク302は、異なる位置でバックグラウンドマスク306に重畳され、2つのマスクの重複は、各位置で別々に算出される。グリッパマスク302及びバックグラウンドマスク306が完全に重複しない位置は、グリッパが何かに衝突する把持位置に対応する。したがって、これらの位置は、物体を把持するための取り得る位置としてみなされなくてもよく、一実施形態では、これらの把持位置は、却下される。参照番号310及び312は、グリッパマスク302の領域フィンガーストリップスがバックグランドマスク306で完全に重複せず、把持領域マスク304は、適度に物体マスク308で重複するソリューションの一例を示す。したがって、上記のように、この位置は、物体を把持するための取り得る位置としてみなされず、よって、この把持位置も却下される。参照番号314及び316は、グリッパマスク302の領域フィンガーストリップスがバックグランドマスク306で完全に重複するが、把持領域マスク304は、物体マスク308で小さな部分によってのみ重複するソリューションの一例を示す。したがって、一実施形態では、上記のように、この位置は、物体を把持するための取り得る位置としてみなされず、よって、この把持位置も却下される。参照番号318及び320は、グリッパマスク302の領域フィンガーストリップスがバックグランドマスク306で完全に重複し、把持領域マスク304は、物体マスク308で完全に重複するソリューションの一例を示す。よって、この例は、1つの取り得る把持位置を示す。結果として、グリッパマスク302は、異なる位置でバックグランドマスク306に重ね合わせられ、マスクの重複が算出される。重複の量が多い位置は、原理上、把持が可能な位置である。同様に、把持領域マスク304は、異なる位置で物体マスク308に重ね合わせられ、マスクの重複が算出される。グリッパマスク302とバックグランドマスク306との重複及び把持領域マスク304と物体マスク308との重複の両方の量が大きい位置は、グリッパが物体の大部分を取り囲み、把持が成功する位置である。よって、把持位置に良好な座標は、グリッパが物体の周りを動作するために十分な空間を有し、把持位置での物体の大きさは、グリッパに対して適切である。把持する最良の方向を決定するために、グリッパの異なる位置に対応する離れたグリッパマスク302及び把持領域マスク304は、各ペアに対して上述した工程を繰り返すために用いられることができ、その後、把持位置及び重複の最も大きな値を与える位置を選択する。これらのマスクは、取り得るグリッパ位置のセットに対して予め算出される、又はオンザフライで算出されうる。一実施形態では、上記の重複のいずれも数的な品質係数を与えられる。品質係数の結果が最も大きい位置は、物体の最良の把持位置として選択される。一実施形態では、少なくとも1つの品質値に対して最小値が求められる。これは、実際には、グリッパが選択された把持位置へ移動するために十分な空間を有することを保証する。重複を算出する1つの取り得る方法は、マスクのコンボリューションである。コンボリューションは、高速フーリエ変換FFTアルゴリズムを用いて効率良く算出される。一実施形態では、分散フーリエ変換は、マスクで算出される。その後、重複の算出は、変換されたマスクのエレメント-ワイズ乗算element-wisemultiplicationにより行われる。乗算を算出した後、逆FFTがその結果から得られ、元のマスクのコンボリューションの結果を得る。上記で説明した方法におけるいくつか又は全ての計算は、並行して行われることができ、FieldProgrammableGateArraysFPGAを用いた実装に好適である。FPGAは、FFT及びコンボリューションのようなタスクに広く用いられ、上記で説明された方法の部分又は全体としての方法は、それらに効果的に実装されうる。別の一実施形態では、グリッパマスクは、小さな同一の部分に分割される。図5Aは、グリッパマスクが部分に分割されることを開示する。この実施形態では、マスクの全ての部分は、オフセットdx,dyによりシフトされた、1つのパーツ500のコピーとみなされうることがわかる。図5Bに記載されるように、異なる位置にあるマスクとパーツとの重複を算出することにより、計算は、その後、マスクとしてのパーツ500を用いて行われる。マスクのパーツが全体マスクよりも小さいと、演算の量は、全体マスクの場合よりも小さくなり、計算は、それぞれ速くなる。最終結果は、マスクに対する異なる位置において、パーツ及びマスクの算出された重複に対応する値のアレイである。第1のパーツにより算出されたこれらの値は、その後、他のパーツに対する値として再使用されうる。全体マスクに対する計算は、合計の前に、それらがマスクパーツ位置での差に対応する量によりシフトされたときに、値から蓄積されうる。すなわち、全体マスクによるコンボリューションは、マスクパーツによるコンボリューションの合計となる。しかし、他のコンボリューションは、初めのものと同一のアレイであり、第1のパーツから差分dx,dyによりシフトされたのみである。したがって、各画像ポイントの全体マスクに対するコンボリューションは、分割されたマスクの全てのパーツに対する、ポイントでのアレイ値ポイント第2のパーツのオフセットでのアレイ値ポイント第3のパーツのオフセットでのアレイ値等である。上記の工程は、コンボリューションを算出するためにFFTを用いる場合よりも効率が良く、これは、FFT及び逆FFTの算出が、マスクを蓄積することに比べて費用の掛かる演算であるためである。さらなる利点は、重複の算出において、例えば、2つのマスクのピクセル値の最小値を取るような乗算ではなく他の数学的な演算、又はFFTを用いることにより効果的な手法で行うことができない他の関数を用いることができることである。図4A及び4Bは、取り得るグリッパマスクの2つの実施例を示す。いずれの実施例でも、矢印で示される距離Dは、グリッパの動作に応じて変化してもよい。本明細書に記載される本発明の実施形態は、互いに組み合わせて用いられてもよい。いくつかの実施形態は、本発明のさらに別の実施形態を形成するために互いに組み合わされてもよい。本発明の例示的な実施形態は、任意の適切なサーバ、ワークステーション、PC、ラップトップコンピュータ、PDA、インターネット家電、ハンドヘルド装置、携帯電話、無線装置、他の装置等の例示的な実施形態のプロセスを実行可能な任意の適切なデバイスを含み得、例えば、インターネットアクセス、任意の適切な形式例えば、音声、モデム等での電話、無線通信媒体、一又はそれ以上の無線通信ネットワーク、携帯通話ネットワーク、3G通信ネットワーク、4G通信ネットワーク、公衆交換電話網PublicSwitchedTelephoneNetworkPSTNs、パケットデータネットワークPDNs、インターネット、イントラネット、それらの組み合わせ等を含む一又はそれ以上のインターフェース機構を通じて通信可能である。ハードウェア分野の当業者には理解できるように、例示的な実施形態は、例示的なプロセスのためのものであり、例示的な実施形態を実装するために特定のハードウェアの多くのバリエーションが可能であることがわかる。例えば、例示的な実施形態の一又はそれ以上の構成要素の機能性は、一又はそれ以上のハードウェアデバイスにより実装されうる。例示的な実施形態は、本明細書で説明された各種のプロセスに関する情報を記憶しうる。この情報は、ハードディスク、光ディスク、磁気-光ディスク、RAM等のような一又はそれ以上のメモリに記憶されうる。一又はそれ以上のデータベースは、本発明の例示的な実施形態を実装するために用いられる情報を記憶しうる。データベースは、本明細書に挙げた一又はそれ以上のメモリ又はストレージに含まれるデータ構造例えば、レコード、テーブル、アレイ、フィールド、グラフ、ツリー、リスト等を用いて構成されうる。例示的な実施形態について説明されたプロセスは、一又はそれ以上のデータベースにおける例示的な実施形態のデバイス及びサブシステムのプロセスにより収集及び/又は生成されたデータを記憶するために適切なデータ構造を含みうる。電気分野の当業者には理解できるように、例示的な実施形態の全部又は一部は、特定用途集積回路の作成により、又は従来のコンポーネント回路の適切なネットワークを相互接続することにより実装されてもよい。上述したように、例示的な実施形態の構成要素は、本発明の教示に係り、データ構造、テーブル、レコード、及び/又は本明細書に記載された他のデータを保持するためのコンピュータで読み取り可能な媒体又はメモリを含みうる。コンピュータで読み取り可能な媒体は、実行のためのプロセッサへの命令の提供を共有する任意の媒体を含みうる。このような媒体は、多くの形態をとり得、不揮発性媒体、揮発性媒体、伝送媒体等を含むが、これに限定されない。不揮発性媒体は、例えば、光又は磁気ディスク、磁気-光ディスク等を含みうる。揮発性媒体は、ダイナミックメモリ等を含みうる。伝送媒体は、同軸ケーブル、銅線、光ファイバー等を含みうる。伝送媒体は、また、無線周波数RF通信、赤外線IRデータ通信等の間に生成される音響、光、電磁波等の形態をとりうる。コンピュータで読み取り可能な媒体の一般的な形態は、フロッピーディスク登録商標、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM,CDRW,DVD,任意の他の適切な光学媒体、パンチカード、ペーパーテープ、光学マークシート、穴のパターンを有する任意の他の適切な物理媒体、任意の他の光学的に識別可能な印、RAM、PROM、EPROM、FLASH-EPROM、任意の他の適切なメモリチップ又はカートリッジ、搬送波又はコンピュータが読み取ることができる任意の他の適切な媒体を含みうる。本発明は、多くの例示的な実施形態及び実装に関して説明してきたが、本発明はこれに限定されず、予期される特許請求の範囲内に含まれる各種の変更及び均等物が含まれる。当業者には本発明の基本概念が各種の手法で実装されてもよいことが自明である。よって、本発明及びその実施形態は、上述した実施例に限定されず、特許請求の範囲内で変更されてもよい。"