(57)【要約】【課題】整理箱であるビン１２に無作為に配置されたボルトなどの対象物Ａを拾い上げるビンピッキング方法を提供する。【解決手段】対象物Ａは、複数のビデオカメラ２２と、位置決め用カメラ２４と、画像処理ユニット２６とにより、３次元画像が画像処理ユニット２６で認識される。対象物Ａが一つも認識されないときなどは、ビン１２内の対象物Ａを再配置するためのビン１２の揺動方式を備える。また、対象物Ａがビン１２上にないことを判定するための基準、およびビン１２内で最初に拾い上げる対象物Ａを選択するための基準も含んでいる。さらに、認識技術が対象物Ａを、または対象物Ａ上の把握形体部を正しく認識できなかったときに、対象物Ａとロボット１４を損傷から保護する機構も備える。【選択図】図１
2008062376.tif 000002
【特許請求の範囲】
【請求項１】
整理箱であるビンの少なくとも一つの利用可能な対象物の中から選択された対象物を拾い上げるためのビンピッキング方法において、前記利用可能な対象物はロボットが前記利用可能な対象物を拾い上げることを可能にするのに適した把握形体部を有し、前記ロボットは前記利用可能な対象物を拾い上げるために前記利用可能な対象物上の前記把握形体部を用いるのに適し、前記ロボットは操作範囲を有し、前記ロボットは前記操作範囲内で前記利用可能な対象物を拾い上げることが可能であり、該ビンピッキング方法は、
前記ビンをある一つのビン位置に配置する過程と；
前記ビン内の前記少なくとも一つの利用可能な対象物の画像を取得する、画像取得過程と；
前記画像を用いて前記少なくとも一つの利用可能な対象物の前記把握形体部の視認性に関する情報を獲得する、視認情報獲得過程と；
前記画像上に視認できる前記把握形体部を有する前記利用可能な対象物の一つを把握可能な対象物として識別する、識別過程と；
前記把握可能な対象物が前記ロボットによって拾い上げられる状態にあるかを判定する、判定過程と；
前記少なくとも一つの利用可能な対象物の中で一つの把握可能な対象物が拾い上げられる状態にあると判定されたとき、前記画像から得られた位置情報を用いて前記ロボットによって前記把握可能な対象物を拾い上げる、ピッキング過程と；
拾い上げられる状態にある把握可能な対象物がないと判定されたとき、前記ビンを移動して前記ビン位置に位置を戻して、前記画像取得過程と、前記視認情報獲得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復することから成ることを特徴とする、ビンピッキング方法。
【請求項２】
前記移動が、前記ビンを傾ける傾斜過程を含んでいることを特徴とする、請求項１に記載のビンピッキング方法。
【請求項３】
前記判定過程が前記把握形体部の前記位置情報と前記操作範囲とを用いて実施されることを特徴とする、請求項１に記載のビンピッキング方法。
【請求項４】
前記画像を用いて前記ビンが少なくとも一つの利用可能な対象物を含んでいるかを確認する過程をさらに備え、前記画像取得過程と、前記視認情報獲得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程が、前記ビン内に利用可能な対象物がなくなるまで反復されることを特徴とする、請求項１に記載のビンピッキング方法。
【請求項５】
前記画像が、三次元画像であることを特徴とする、請求項１に記載のビンピッキング方法。
【請求項６】
請求項１に記載のビンピッキング方法において、
さらに
前記画像から前記把握形体部の把握方向の軸心を得る過程と；
前記操作範囲を用いて前記ビン内の拾い上げ区域を定義する過程とから成り；
前記判定過程が
前記位置情報、前記拾い上げ区域定義および前記把握方向の軸心を用いて前記把握可能な対象物が前記ロボットによって拾い上げられる状態にあるかを判定する過程を備え、前記把握形体部が前記拾い上げ区域定義内に位置づけられ、前記把握方向の軸心が前記操作範囲内にあるときに前記把握可能な対象物が前記ロボットによって拾い上げられる状態にあり、
前記少なくとも一つの利用可能な対象物の中で、一つの把握可能な対象物が拾い上げられる状態にあると判定されたとき、前記位置情報と前記把握方向の軸心を用いて前記ロボットによって前記把握可能な対象物を拾い上げる、
ことを特徴とする、ビンピッキング方法。
【請求項７】
請求項６に記載のビンピッキング方法において、
さらに
前記操作範囲を用いて、前記位置から離れた、前記把握方向の軸心上に位置するクリアランス点を定義する過程と、
前記位置情報、前記拾い上げ区域定義、前記把握方向の軸心および前記クリアランス点を用いて前記把握可能な対象物が前記ロボットによって拾い上げられる状態にあるかどうかを判定する過程とを備え、前記把握形体部と前記クリアランス点が前記拾い上げ区域内に位置づけられているとき、前記把握可能な対象物が前記ロボットによって拾い上げられる状態にあることを特徴とする、ビンピッキング方法。
【請求項８】
前記拾い上げ区域が、ビンの側壁から所定の距離に定義された表面であることを特徴とする、請求項６に記載のビンピッキング方法。
【請求項９】
請求項１に記載のビンピッキング方法において、さらに
把握可能な対象物が一つも識別されなかったとき、前記ビンを傾けて揺動し、前記画像取得過程と、前記視認情報獲得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と、前記ビンを傾けて揺動し、前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復する過程を備えることを特徴とする、ビンピッキング方法。
【請求項１０】
請求項１のビンピッキング方法において、前記画像が３次元画像であり、該ビンピッキング方法が、
前記ロボットによって前記拾い上げられる状態にある前記把握可能な対象物のそれぞれについて前記ビン内での高さを判定し、
前記高さを用いて前記ロボットによって前記拾い上げられる状態にある前記把握可能な対象物の中から選択された対象物を選択し、前記位置情報を用いて前記ロボットによって前記選択された対象物を拾い上げる過程、
を備えることを特徴とする、ビンピッキング方法。
【請求項１１】
請求項２に記載の方法において、前記傾斜過程が前記ロボットによって前記ビンの隅と側壁の少なくとも一つを拾い上げ持ち上げることを含むことを特徴とする、ビンピッキング方法。
【請求項１２】
前記傾斜過程が、前記ロボットを用いて前記ビンの隅と側壁の前記少なくとも一つを揺することをさらに含んでいることを特徴とする、請求項１１に記載のビンピッキング方法。
【請求項１３】
請求項２に記載のビンピッキング方法において、
前記ビンが複数の運動の軸心を有し、それらを中心に前記ビンを傾けることができ、前記傾けが運動の軸心のうちの一つを中心に傾けられ、前記方法がさらに、
前記傾けに関する軸心の情報を保存する過程と；
前記の軸心の情報を用いて、前記運動の軸心の全てについて前記ビンが傾けられたかを判定する過程と；
の各過程を備えて、
把握可能な対象物として識別された利用可能な対象物がなく、前記ビンが前記運動の軸心の全てについて傾けられていないとき、前記運動の軸心の残りの一つを中心に前記ビンを傾け、前記ビンを前記ビン位置に戻して、前記画像取得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と前記ビンを傾けて前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復することから成り、
把握可能な対象物として識別された利用可能な対象物がなく、前記ビンが前記運動の軸心の全てについて傾けられたとき、前記ビンには拾い上げられるべき利用可能な対象物がないと識別することを特徴とする、ビンピッキング方法。
【請求項１４】
少なくとも一つの対象物が把握可能な対象物と識別されたとき、前記傾けに関する前記の軸心の情報をリセットする過程をさらに備えていることを特徴とする、請求項１３に記載のビンピッキング方法。
【請求項１５】
請求項１のビンピッキング方法において、
前記把握可能な対象物の前記拾い上げが、前記位置情報を用いて把握可能な対象物に到達して拾い上げるために前記ロボットの少なくとも一部を移動させる過程と、前記把握可能な対象物を拾い上げるのに必要な力を監視する過程と、前記力が所定の限界力より大きいときは、前記ロボットの少なくとも一部を前記ビンの外に移動する過程と、前記ビンの傾けと揺動の少なくとも一つの過程と前記画像取得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つと、の各過程を反復する過程とから成ることを特徴とする、ビンピッキング方法。
【請求項１６】
整理箱であるビンにロボットによって拾い上げられるべき認識された対象物がないことを判定するための対象物不在判定方法において、
前記ロボットが対象物を拾い上げるのに適し、前記ビンが複数の運動の軸心を有し、それらを中心に前記ビンを傾けることができ、該方法が
ビン位置に前記ビンを配置する過程と；
前記運動の軸心を中心とする前記ビンの以前の傾けに関する軸心の情報を獲得する軸心情報獲得過程と；
前記の軸心の情報を用いて、前記運動の軸心の全てについて前記ビンが傾けられたかを判定する軸心判定過程と；
前記ビンの被収容物の画像を取得する画像取得過程と；
前記画像を用いて前記ビン内の認識された対象物を識別する識別過程と；
認識された対象物が一つも識別されず、前記ビンが前記運動の軸心の全てについて傾けられたとき、前記ビンに拾い上げられるべき認識された対象物がないと判定する対象物不在判定過程と；
認識された対象物が一つも視認されず、前記ビンが前記運動の軸心の全てについて傾けられていないとき、前記ビンを前記運動の軸心の残りの一つを中心に傾け、前記ビンを前記ビン位置に戻し、前記判定過程、前記画像取得過程と前記判定過程を反復する過程：
とから成ることを特徴とする、対象物不在判定方法。
【請求項１７】
請求項１６に記載の対象物不在判定方法において、前記対象物が認識特性を有し、さらに
前記認識特性を用いて、前記画像内の対象物を認識されたものとして識別する過程：
を備えていることを特徴とする、対象物不在判定方法。
【請求項１８】
請求項１６に記載の対象物不在判定方法において、該方法が、
少なくとも一つの認識された対象物が識別されたとき、前記の軸心の情報をリセットする過程：
をさらに備えていることを特徴とする、対象物不在判定方法。
【請求項１９】
整理箱であるビン内の少なくとも一つの利用可能な対象物の中からどの対象物を拾い上げるかを選択するための方法において、前記利用可能な対象物はロボットが前記利用可能な対象物を拾い上げるのを可能にするのに適した把握形体部を有し、前記ロボットは前記利用可能な対象物を拾い上げることができ、該方法が、
前記ビン内の前記少なくとも一つの利用可能な対象物の３次元画像を取得する過程と；
前記画像を用いて、前記少なくとも一つの利用可能な対象物の前記把握形体部の視認性に関する情報を獲得する過程と；
前記少なくとも一つの利用可能な対象物の中から、前記把握形体部の視認性に関する前記情報を用いて拾い上げられるべき対象物を選択する過程
とから成ることを特徴とする選択方法。
【請求項２０】
請求項１９に記載の選択方法において、該方法が
前記画像を用いて利用可能な対象物のそれぞれについて前記ビン内での高さに関する高さ情報を判定する過程をさらに備え、前記選択に前記高さ情報が用いられることを特徴とする、選択方法。
【請求項２１】
請求項１９に記載の選択方法において、前記対象物が認識特性を有し、さらに
前記画像を用いて前記少なくとも一つの利用可能な対象物の前記認識特性の視認性に関する情報を獲得する過程を備え、前記選択に前記認識特性の前記視認性情報が用いられることを特徴とする、選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いた対象物の自動ビンピッキングに関するものである。より詳細には、本発明は、整理箱であるビン内に無作為に配置された対象物の自動ビンピッキングに関するものである。
【背景技術】
【０００２】
いくつかの工業用途において、例えば、組立または包装工場において、整理箱であるビン、箱などの中に無作為に配置された対象物を認識し拾い上げることが要求される。拾い上げられる対象物は、ビン内で工業プロセスの所与の段階で使用されない対象物と混ざっていることがある。一般的には、視覚システムを用いて、拾い上げられるべき有用な対象物を認識し、ビン内のその位置を特定して、選択した対象物を把持するのに使用されるロボットを誘導し、該対象物を拾い上げて、例えば、出荷箱の中などの、配列された、または所定の位置にその対象物を置く。ビンピッキングシステムは、視覚システムによって提供された情報に基づいて、どの対象物を拾い上げるかを選択することが、第一に必要になる。
【０００３】
拾い上げる仕事の多くは、現在、人だけがすることができる。無作為に配置された対象物を拾い上げるときの一つの困難は、対象物が重なり合っていることがあって、ロボットが、所与の積み重なった配置にある他の有用な対象物や無用な対象物が重なって障害となっているいくつかの対象物に到達するのを妨げられることである。ビンピッキングシステムは、障害物のない対象物を認識し、選択することを要求されるが、重なっている対象物によって、そうすることを妨げられる。
【０００４】
拾い上げられるべき対象物が、整理箱であるビン内に置かれているとき、ビンの側壁から生じる別の困難があって、ビンの側壁は、ロボットが対象物に到達するときの機械的障害物になる可能性がある。いくつかの用途分野では、対象物が対称でないので、および／またはロボットの把持部が、孔、支柱などの対象物の特定の形体を用いて対象物を把持することが要求されるので、対象物を対象物に対して一つの所定の方向からしか把持できない。対象物の向きが不正確な場合、および／または対象物がビンの側壁に近いとき、把持部は、方向調節のために関節的結合であってさえも、対象物に向かって移動する間にビンの側壁にぶつかって対象物に到達できないこともある。
【０００５】
これらの問題を回避するために、拾い上げられるべき対象物は、対象物が互いに積み重ならないようにトレー、コンベヤまたはビンに通常整然と配置され、例えば、ボルトなどの拾い上げられるべき対象物は、典型的には多方向から把持可能であるか、あるいは搬送表面上で適切に配向され、平坦な部材はコンベヤ上に拡げられる。いくつかの用途分野において、多方向から把持することのできる対象物はトレーの上に積み上げられるが、これらのシステムは側壁のあるビンの使用に関連する問題には、対処することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の一つの目的は、先行技術の様々な欠点、すなわち、重なった対象物による妨げの問題、把持部がビンの側壁にぶつかる問題、あるいは、多方向から把持できる対象物における側壁のあるビンでの問題、の少なくともいくつかを克服することである。
【課題を解決するための手段】
【０００７】
本発明は、対象物上の把握形体部を用いて対象物を把持するための把持部を有するロボットを用いて、整理箱であるビン内に無作為に配置された対象物を拾い上げる方法を提供するものである。該方法は、対象物が一つも認識されないとき、把持部によって把握できる対象物がないとき、あるいは、例えば、拾い上げる対象物の把握形体部がビンの側壁にほぼ向いているので把持部が該対象物に到達できないときにビン内の対象物を再配置するための揺動方式を含んでいる。該方法は、拾い上げられるべき認識された対象物がビンにないことを決定するルーチン、およびビン内の複数の対象物を拾い上げることができるときにビン内で最初に拾い上げられるべき対象物を選択するルーチンも含んでいる。該方法は、認識技術が対象物を、または対象物上の把握形体部を正しく認識できなかったときに対象物およびロボットを損傷から保護する機構も提供する。
【０００８】
本発明の一つの面によれば、整理箱であるビン内の少なくとも一つの利用可能な対象物の中から選択された対象物を拾い上げるための方法が提供される。利用可能な対象物は、ロボットが利用可能な対象物を拾い上げることを可能にするのに適した把握形体部を有する。ロボットは利用可能な対象物を拾い上げるために利用可能な対象物上の把握形体部を用いるのに適している。ロボットは利用可能な対象物を拾い上げることが可能な操作範囲を有する。
該ピッキング方法は、
ビンをある一つのビン位置に配置する過程と；
ビン内の少なくとも一つの利用可能な対象物の画像を取得する画像取得過程と；
該画像を用いて少なくとも一つの利用可能な対象物の把握形体部の視認性に関する情報を獲得する視認情報獲得過程と；
該画像上に視認できる把握形体部を有する少なくとも一つの利用可能な対象物の一つを把握可能な対象物として識別する識別過程と；
該把握可能な対象物がロボットによって拾い上げられる状態にあるかを判定する判定過程と；
少なくとも一つの利用可能な対象物の中で、一つの把握可能な対象物が拾い上げられる状態にあると判定されたとき、該画像から得られた位置情報を用いてロボットによって該把握可能な対象物を拾い上げるピッキング過程と；
拾い上げられる状態にある把握可能な対象物がないと判定されたとき、ビンを移動してビン位置に戻して、前記画像取得過程と、前記視認情報獲得過程と、前記識別過程と、前記判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復することから成る。
【０００９】
本発明のもう一つの面によれば、整理箱であるビン内にロボットによって拾い上げられるべき認識された対象物がないことを判定するための方法が提供される。ロボットは対象物を拾い上げるのに適している。ビンは複数の運動の軸心を有し、それらを中心にビンを傾けることができる。
該方法は、
ビンをある一つのビン位置に配置する過程と；
運動の軸心を中心とするビンの以前の傾けに関する軸心の情報を獲得する過程と；
軸心の情報を用いて、全ての運動の軸心についてビンが傾けられたかを判定する過程と；
ビンの被収容物の画像を取得する過程と；
該画像を用いてビン内の認識された対象物を識別する過程と；
認識された対象物が一つも識別されず、ビンが運動の軸心の全てについて傾けられたとき、ビンには拾い上げられるべき認識された対象物がないと判定する過程と；
認識された対象物が一つも視認できず、ビンが運動の軸心の全てについて傾けられていなかったときは、運動の軸心のうちの残っている一つを中心にビンを傾け、ビンをビン位置に戻し、判定過程、取得過程と判定過程を反復する過程、とから成る。
【００１０】
本発明のもう一つの面によれば、整理箱であるビン内の少なくとも一つの利用可能な対象物の中からどの対象物を拾い上げるかを選択するための方法が提供される。利用可能な対象物は、ロボットが利用可能な対象物を拾い上げることを可能にするのに適した把握形体部を有する。ロボットは利用可能な対象物を拾い上げることができる。
該方法は、
ビン内の少なくとも一つの利用可能な対象物の３次元画像を取得する過程と；
該画像を用いて少なくとも一つの利用可能な対象物の把握形体部の視認性に関する情報を獲得する過程と；
少なくとも一つの利用可能な対象物の中から把握形体部の視認性に関する情報を用いて、拾い上げられるべき利用可能な対象物を選択する過程、とから成る。
【００１１】
本発明のもう一つの面は、少なくとも一つの利用可能な対象物がロボットで少なくとも一つの利用可能な対象物を拾い上げることを可能にするのに適した把握形体部を有し、ロボットが少なくとも一つの利用可能な対象物を拾い上げるのに少なくとも一つの利用可能な対象物上の把握形体部を利用するのに適しているとき、整理箱であるビン内の少なくとも一つの利用可能な対象物の中から選択した対象物を拾い上げるための方法を提供する。
該方法は、
ビンをある一つのビン位置に配置する過程と；
ビン内の少なくとも一つの利用可能な対象物の画像を取得する画像取得過程と；
該画像を用いて少なくとも一つの利用可能な対象物の把握形体部の視認性に関する情報を獲得する視認情報獲得過程と；
少なくとも一つの利用可能な対象物が該画像上で視認できる把握形体部を有するかを判定する判定過程と；
少なくとも一つの利用可能な対象物の中の選択された対象物が該画像上で視認できる把握形体部を有するとき、該画像から得られた位置情報を用いてロボットによって選択された対象物を拾い上げるピッキング過程と；
少なくとも一つの利用可能な対象物が該画像上で視認できない把握形体部を有するときは、ビンを移動してビン位置に戻して、画像取得過程と、視認情報獲得過程と、判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復することから成る。移動にはビンを水平に揺することを含んでいてもよい。
【００１２】
本発明のもう一つの面によれば、ロボットによって拾い上げられるのに適した、整理箱であるビン内の少なくとも一つの利用可能な対象物の中から視認可能な対象物を拾い上げる方法が提供される。
該方法は、
ビンをある一つのビン位置に配置する過程と；
ビン内の少なくとも一つの利用可能な対象物の画像を取得する画像取得過程と；
該画像中に視認できる利用可能な対象物の一つを視認可能な対象物として識別する識別過程と；
該視認可能な対象物に到達し、拾い上げるためにロボットを移動する過程と；
ロボットを移動している間にロボットに必要な力を監視する監視過程と；
該力が所定の限界力より大きいかを判定する判定過程と；
該力が所定の限界力以下であるとき、該画像から得られた位置情報を用いてロボットによって該視認可能な対象物を拾い上げるピッキング過程と：
該力が所定の限界力より大きいときは、ロボットをビンから除去し、ビンを移動してビン位置に戻し、画像取得過程と、識別過程と、移動過程と、監視過程と、判定過程と、前記ピッキング過程と前記ロボットを除去しビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復することから成る。移動にはビンを傾けることを含んでいてもよい。
【発明を実施するための最良の形態】
【００１３】
本発明のその他の特徴と利点は、付属の図面を参照して、下記の詳細な説明を読むことによって明らかになるだろう。
【００１４】
図１は、整理箱であるビン内の対象物が視覚システムによって誘導されるロボットによって拾い上げられるビンピッキングシステムを図示する概略図である。
【００１５】
図２は、ロボットを用いて整理箱であるビン内の対象物を拾い上げる方法を図示するフローチャートである。
【００１６】
図３は、図２の方法の整理箱であるビン内の認識された対象物を識別する過程を実施するための方法を図示するフローチャートである。
【００１７】
図４は、表内で最高のランクを有する対象物が選択されるときの、図２の方法の到達可能な対象物の中で一つの対象物を選択する過程を実施するための方法を図示するフローチャートである。
【００１８】
図５は、基準に従っていくつかの対象物が優先され、優先対象物の中から整理箱であるビン内で最大の高さを有する対象物が選択されるときの、図２の方法の到達可能な対象物の中で一つの対象物を選択する過程を実施するための方法を図示するフローチャートである。
【００１９】
図６は、把持部が拾い上げる対象物に到達する間に整理箱であるビンの側壁にぶつからないときに対象物が到達可能である場合の、図２の方法の少なくとも一つの把握可能な対象物が把持部によって到達可能かを評価する過程を実施するための方法を図示するフローチャートである。
【００２０】
図７は、把持部が、拾い上げられるべき対象物に到達する間に、整理箱であるビンの側壁にもビン内の他の対象物にもぶつからないときに対象物が到達可能である場合の、図２の方法の少なくとも一つの把握可能な対象物が把持部によって到達可能かを評価する過程を実施するための方法を図示するフローチャートである。
【００２１】
図８は、図２の方法のロボットの衝突を検出する過程を実施するための方法を図示するフローチャートである。
【００２２】
図９は、把持部によって到達できる対象物がないときに整理箱であるビンが傾けられる、ロボットを用いてビン内の対象物を拾い上げるための方法を図示するフローチャートである。
【００２３】
図１０は、どの対象物も把握できないように対象物が重なっているときに整理箱であるビンが水平に揺すられる、ロボットを用いてビン内の対象物を拾い上げる方法を図示するフローチャートである。
【００２４】
図１１は、整理箱であるビン内にロボットによって拾い上げられるべき対象物がないことを判定するための方法を図示するフローチャートである。
【００２５】
図１２は、対象物またはロボットの損傷防止のためにロボットと対象物または整理箱であるビンの側壁との衝突が検出される、ロボットを用いてビン内の対象物を拾い上げる方法を図示するフローチャートである。
【００２６】
図１３は、整理箱であるビン内のどの対象物を最初に拾い上げるかを選択するための方法を図示するフローチャートである。
【００２７】
なお、付属の全ての図面を通じて、同様な各特徴点は、それぞれ、同様な符号で識別される。
【００２８】
以下、各図面を参照するのであるが、図１は、ロボット１４を用いて整理箱であるビン１２内の対象物Ａを拾い上げるためのビンピッキングシステム１０を図示している。
【００２９】
整理箱であるビン１２はトレーに似ているが、側壁１３も備えており、該側壁１３は側壁１３の近くに位置する対象物Ａの到達範囲を制限する可能性がある一方で、ビン１２が移動されたとき、すなわち持ち上げ、傾斜、揺動などされたときに対象物がビンから落ちる可能性を最小にもする。特別に設計したプラスチック製のビンを使用することができるが、ボール箱などの対象物の出荷用に使用される箱も、蓋を取り除くか、閉鎖折り蓋を取り除くか開口位置に保持した場合、ビン１２として使用することができる。ビン１２は典型的には搬送され、所定のビン位置または場所で停止する。ビン１２はロボット１４の到達範囲内で、適切な位置に手動で置くこともできる。視覚システム２０はビン１２内の対象物を認識するのに使用され、所定の許容差内で拾い上げプロセスのためにビン１２が適切に位置づけられたか否かを検査するためのビンの位置決め用カメラ２４を備えている。もし、該当しない場合、コンベヤ（図示せず）を用いてビン１２を置き直すか、ロボット１４によってビン１２を持ち上げ、後述のごとくそれを移動してもよい。ビン１２は、手動で移動してもよい。
【００３０】
図示した実施態様において、ロボット１４は、関節的結合のアーム１８上に取り付けられた把持部１６を有する関節的結合のアームロボットである。なお、図１のロボットは、図示のためにだけ提供されたものであり、図１ではアームは三つの平行な運動の軸心を有して図示されているが、当業者には自明のごとく、適切な関節的結合のロボットは典型的には少なくとも三つの異なって配置された軸心を有し、把持部１６は、用途分野と拾い上げられるべき対象物の形状に応じて、二つまたは三つの追加の運動の軸心を備えたアーム１８に典型的には関節的結合自在に取り付けられることになる。ビンピッキングシステムに適したロボットの例は、関節的結合のロボット、選択的・受容的・関節結合・ロボット・アーム（Ｓｅｌｅｃｔｉｖｅ  Ｃｏｍｐｌｉａｎｔ  Ａｒｔｉｃｕｌａｔｅｄ／Ａｓｓｅｍｂｌｙ  Ｒｏｂｏｔ  Ａｒｍｓ）（ＳＣＡＲＡ）、および直交座標ロボットである。
【００３１】
把持部１６は、拾い上げられるべき対象物と、把持部１６で対象物を把持するのに用いられる対象物上の形体とに適している。典型的には、二本の指を有する空気圧力ハンドグリッパを用いることができる。孔の形の把握形体部を有する対象物は、ロボット指を孔の内部に挿入し、指を拡げて対象物を保持することによって拾い上げることができる。ほぼ平坦な表面を有する対象物は、吸引把持部を用いて典型的には把持することができる。対象物の把握形体部に応じて、単一ロッドまたはプレートなどの、他のタイプの把持部を用いて対象物を把持することができる。
【００３２】
ロボットは典型的には対象物を拾い上げることができる操作範囲を有する。この範囲はロボットのそれぞれの関節的結合の角度およびロボットと把持部が占める容積に対する制限を考慮に入れ、把握形体部を備えた対象物にロボットが到達して把持できるように適切な角度と位置で把持部を位置付けることが可能か否かを判定するのに用いられる。対象物がビン内に置かれているこの場合において、対象物はロボットのアームのすぐ下に置いてもよいが、把持部はビンの側壁または他の対象物に衝突することなしに対象物を拾い上げるために適切に回転したり下げることができないので、ロボットは対象物に到達できないままである。
【００３３】
必要な場合（後述のごとく）整理箱であるビン１２内の対象物を再配置するためにビン１２を傾けたり揺動するために、ビン１２は把持部を用いてロボットによって把持するのに適合させることができる。把持部１６が空気圧力ハンドグリッパである場合、把持部１６は側壁１３の頂部でハンドを閉じることによってビン１２の一つの側壁１３を簡単に把持することができる。代案として、把持部１６がビンの一つの側壁１３または隅を把持して持ち上げることができるように、とくに適合した把握形体部をビンの側壁１３または隅に取り付けるか、側壁１３と共に画成することができる。ビン１２は、把持部１６によって把持または持ち上げるのに適合させることができる。例えば、非制限的に、ビン１２は、識別され把持部１６によって把持される、側壁１３内に画成された孔などの、形体を含むことができる。代案としてビン１２は、ビン１２を載せた作動テーブルを用いて傾け、揺動させることができる。ビン１２を揺動するために傾斜自在なコンベヤを用いてもよい。
【００３４】
ビンピッキングシステム１０は、拾い上げプロセスにおいてロボット１４を誘導するための視覚システム２０を備えている。視覚システム２０は、ビン１２内の対象物の２次元画像を取得するためにビン１２上に配置された二台の３次元造影ビデオカメラ２２を備えている。２次元画像は例えば、立体化方法を用いてビン１２内の対象物の３次元画像を提供するために画像処理ユニット２６によって処理される。画像処理ユニット２６は２次元または３次元画像を処理することによってビン１２内の対象物Ａを認識する。拾い上げられるべき対象物Ａのモデルが、画像処理ユニット２６に提供される。モデルには、例えば、対象物の全体的形状または対象物上の判別幾何形状もしくは標的を記述する認識特性、および対象物を把持するために把持部１６によって使用され、対象物Ａ上に存在しなければならない、対象物内の孔などの把握形体部の定義が含まれる。例えば、もし、拾い上げられるべき対象物の全てが判別標識、例えば、一端の上の図形や特別な幾何形状を有するとき、判別標識が認識特性を提供するので、対象物を認識するのにその判別標識を認識することが要求されるだけかも知れない。画像処理ユニット２６は、認識特性を有する対象物を認識することによってビン内の拾い上げられるべき対象物Ａを識別する。把握形体部も画像処理ユニット２６によって認識され、後述のごとく、把持部１６によって把握可能な対象物を識別するのに用いられる。
【００３５】
認識された対象物のリストはビン１２内のそれらの位置と配向と共にロボット制御器２８に提供され、後者は一つの対象物Ａ’に到達し、それを把持し、それを拾い上げるためにアーム１８と把持部１６を動かす。それぞれの対象物は、ロボット１４によって順次拾い上げられ、ビン１２内の対象物の中から所与の時間に拾い上げられるべき対象物Ａ’は、ロボット制御器２８によって選択される。拾い上げられるべき対象物を、どれかを選択する際に、ロボット制御器は、対象物の把握形体部の位置と配向の軸心、ビン１２の上から視覚システム２０によって見た対象物Ａ’の表面視認性および把握形体部の視認性などの、リストと共に画像処理ユニット２６によって提供されたいくつかの追加データを計算に入れる。第一のルーチンによれば、ロボット制御器２８は、該表面視認性が、拾い上げられるべき対象物Ａ’の上に積み重なり、ロボット１４が対象物Ａ’を拾い上げるのを妨げている対象物がないと結論するのに十分であることを確認する。第二のルーチンによれば、ロボット制御器２８は、対象物Ａ’の把握形体部が十分に視認できて、把握形体部が十分に対象物Ａ’の頂部の上にあり、重なり合った対象物がないので把持部によって把持されると結論するに足ることも確認する。最後に、第三のルーチンによれば、ロボット制御器２８は、把握形体部がビン１２の側壁１３にほぼ向かい合っていることで把持部１６が側壁１３にぶつからずに把握形体部に到達するのを阻止しているかを確認して、把握形体部が把持部１６によって到達可能であるかを評価する。これらのルーチンは例として提供されるものであり、対象物をロボット１４によって拾い上げることができるかを判定するために、ロボット制御器２８によってより多い、あるいは、より少ないルーチンを確認することができる。
【００３６】
図１において、視覚システムは二台の３次元造影ビデオカメラ２２ならびに追加のビンの位置決め用カメラ２４を備えて図示されているが、３次元造影ビデオカメラ２２を位置決め用カメラ２４の代わりに使用してもよい。３次元造影ビデオカメラ２２をデジタルカメラに替え、３次元画像を代案として３次元カメラによって取得することも考えられる。視認できる対象物のリストを提供することのできる任意の視覚設定構成を代わりに使用することができる。例えば、自明のごとく、ビデオカメラ２２の台数を増やせば典型的にはシステムの堅牢性が増強される。
【００３７】
基準に合う対象物の中で、一つの対象物がロボット制御器２８によって選択され、ロボット１４によって拾い上げられる。基準に合致する対象物がないとき、ビン１２内の対象物は図２に記載の揺動方式によって再配置される。
【００３８】
ビン１２内の対象物を拾い上げるための、ビン内の対象物を再配置するのに使用される揺動方式を含む、ロボット制御器２８によって使用される方法を図２を参照して以下に説明する。図２の方法の代わりに、異なる方法に組み込むことができるいくつかの追加の基本ルーチンも図９から図１３を参照して以下に説明することとする。
【００３９】
ここでは図２の方法を図１のビンピッキングシステム１０を参照して説明するが、自明のごとく、任意の代替のビンピッキングシステム１０を該方法を実施するために代わりに使用することができる、また所与のハードウェア構成部品によって実施されると、ここに記載された過程は代わりに他のハードウェア構成部品によって実施することもできる。
【００４０】
第一に、過程１００において、ビン１２は、ビンの被収容物が、視覚システム２０の視野の中に入り、ロボット１４の到達範囲内に入るように決定された、所定のビン位置に位置づけられる。ビン１２の位置決めは、ビンの位置決め用カメラ２４を含む視覚システム２０によって支援することができる。過程１０２において、ビン１２の被収容物の３次元画像は視覚システム２０を用いて取得される。例えば、二台の３次元造影ビデオカメラ２２のそれぞれは２次元画像を提供し、３次元画像は画像処理ユニット２６によって実施される立体化方法を用いて提供される。過程１０４において、画像上に見える拾い上げられる対象物は、画像処理ユニット２６によって識別され、認識された対象物のリストが提供される。視覚システムによって認識されるために、対象物は、ビンの上から見えるその認識特性の十分な部分を持たなければならない。過程１０４は図３を参照して以下にもっと詳しく説明する。
【００４１】
過程１０８において、ロボット制御器２８は、認識された対象物リストを受信し、リストの中に認識された対象物があるかどうかを検査する。もし、リストの中に認識された対象物がないときは、ビン１２には拾い上げられるべき対象物がないか、あるいはビン内の拾い上げられるべき対象物、すなわち有用な対象物が、ロボットによって拾い上げられない他の対象物、すなわち無用な対象物によって隠されているかである。有用な対象物の上に他の対象物が重なって、ビンの上から見える対象物の表面の十分な部分がないとき、対象物は視覚システムによって認識されず、認識されたとは見なされない。結果として、認識された対象物がないとき、ビン内に拾い上げられるべき対象物がないか、拾い上げを中止すべきかを確認するためのルーチンが提供される。他の対象物によって隠された、ビン内の拾い上げられるべき対象物が少なくとも一つ残っていないかを点検するために、ビンは最初に、過程１１２において、ビン１２がその周囲を回転することができる一つの運動の軸心を中心に傾けられる。最初にビン１２の位置が視覚システム２０を用いて検査され、つぎにビン１２を傾けついでそれを揺するためにロボット１４がビン１２の一つの隅を把持して軽く持ち上げる。このプロセスによりビン１２内の対象物を再配置するが、いくつかの有用な対象物を隠していたいくつかの無用な対象物を移動することもできる。代案として、ビン１２を傾けて揺するためにビンの一つの側壁１３をロボットによって把持し持ち上げることができる、あるいは作動傾斜テーブルを用いてビン１２を単純に傾けることもできる。ビン１２の一つの側壁１３をロボット１４によって把持し持ち上げることによってビンを傾ける場合、運動の軸心は把持された側壁１３と反対側のビンの底縁になることとなる。長方形のビンは、それぞれの側壁１３に一つずつ、都合四つの運動の軸心を有する。ビン１２が作動テーブルの上に置かれたとき、運動の軸心は完全に自由任意になる。ビン１２の一つの側隅をロボット１４によって把持し持ち上げることによってビンを傾ける場合にも、運動の軸心はビンの一つの底縁になるか、あるいはビン１２は把持された隅に相対する底隅の上にくる任意の軸心を中心に回転させることもできる。運動の軸心は、ロボット１４によって提供された持ち上げ運動の方向に依存することになる。対象物同士の間の表面の結合を破るために、ビン１２を単に傾けるか、あるいは少し傾けて揺することができる。
【００４２】
該方法はつぎに過程１０２に戻って結果的に過程１０４と１０８を実施する。過程１０８でも視認できる対象物がないとき、過程１１２において、ビン１２はもう一つの運動の軸心を中心に傾けられる、すなわち、もう一つの隅が把持され、持ち上げられ、揺すられて、該方法は再度過程１０２に戻る。過程１０８でもビン１２の中に視認できる対象物がなく、過程１１０で、ビンが全ての軸心について傾けられたとき、すなわち、矩形のビンの実施態様において、ビン１２の四つ全ての隅が把持され、持ち上げられ、および／または揺すられたとき、ビン１２には拾い上げられるべき対象物がないと結論され、このビンピッキング方法は、過程１１４で終了する。ここで、少なくとも一つの運動の軸心についてビンを傾けた後に対象物が認識されたとき、ビンの以前の傾けに関する軸心の情報は、リセットされる、すなわち以前の傾けは、なかったことになる。
【００４３】
過程１０８において、ビン内に少なくとも一つの視認できる対象物があるとき、該方法は過程１１６に進む。過程１１６において、認識された対象物の中で、視覚システムによって視認できる把握形体部を有する対象物は把握可能な対象物として識別される。したがって、視覚システム２０によって撮られた画像上に把握形体部が認識されるとき、すなわち、それらが他の対象物によって隠されていないとき、把持部１６はビンの頂部から把握形体部を把持できると見なされる。対象物が把握できるかを評価するために使用される基準は、実施態様ごとに、また拾い上げる対象物のタイプによって変化することがある。
ある一つの実施態様によれば、把握形体部の視認率に限界値がある。例えば、把握形体部がロボットが対象物を把持するのに利用する対象物における孔である場合、対象物は孔の縁の９０％が視覚システム２０によって視認できる場合に把握可能と見なされる。残りの１０％は画質の故に画像上では認識できないか、別の対象物が重なっているかも知れないが、それでも孔は把持部１６で把握できるかも知れない。別の例において、対象物は、対象物を把持するのに個別に使用できる一つ以上の孔を有することがある。このときは少なくとも一つの孔が視認できることが要求される可能性がある。限界値を含む把握基準は、対象物の性状に応じて変化することがある。
【００４４】
代替のある一つの実施態様において、把握形体部が対象物の周縁に位置するとき、例えば、ボルトの場合であって、そのロッド上で二本の指部を閉じて把持するようなとき、把握基準は異なる、なぜなら把握形体部は視認できることが要求されるだけでなく、把持部１６が対象物を把持することができるように把握形体部の周囲に十分な空間がなければならないからである。このとき、ビン内のそれぞれの認識された対象物について、対象物を包含する容積が３次元で定義される。複数個の容積に基づき、把握可能な対象物は、把持部が対象物を把持することを可能にするために、他の全ての容積から十分自由であるその容積を有する認識された対象物である。この方法はビン内に無用な対象物が全くないか少ししかない場合に有効であろう、なぜなら容積は有用な対象物の幾何に基づいて認識された対象物についてのみ定義されるからである。代案として、対象物を包含する容積を定義せずに、把握形体部の周囲の空間が十分であることを、３次元画像を用いて、確認することができるだろう。
【００４５】
過程１１８において、把握可能な対象物がなければ、ロボット１４はどの対象物も把持できないので、ビンは過程１２０で揺すられ、該方法は過程１０２に戻る。過程１２０で、ビンはコンベヤ上で水平に揺すられる。一つの実施態様において、ビンは、ビンの一つの側壁１３を把持し、それを律動的な往復運動へと並進させるロボット１４によって揺すられる。ビン１２がロボット１４によって傾けられるか平坦に揺すられるとき、それに先だってビン１２の位置の点検が実施される。水平揺動は代案としてコンベヤによって提供してもよい。ビンの適切な水平揺動によってビン１２内に積み重なった対象物が典型的には分散され、それによって望ましくはいくつかの把握形体部が現れる。
【００４６】
少なくとも一つの把握可能な対象物があれば、過程１２２において、少なくとも一つの把握可能な対象物が把持部によって到達できるか、すなわちロボットによって拾い上げられる状態にあるかが評価される。対象物の把握形体部の位置と配向によって、把持部が対象物に到達することを可能にする、把握形体部のクリアランス空間と定義される、把握形体部に隣接する十分な自由空間がないために把持部が対象物に到達できないとき、対象物は到達不可能と見なされる。例えば、拾い上げられるべき対象物がビンの側壁１３のそばにあり、把握形体部の向きによって把持部１６が垂直運動を用いて対象物に達することによって対象物を把持することができず、傾斜経路に従って対象物に達して把持することを要求されるとき、ロボット１４の操作範囲は、ロボット１４が対象物に到達する経路でビンの側壁１３に当たるので、把持部１６が対象物に到達することを可能にしないかも知れない。この評価のための二つの可能な基準が図６と図７に示されているので、以下にそれを説明する。
【００４７】
過程１２４において、到達できる対象物がないとき、過程１２６でビンを傾け、典型的には揺すってから過程１０２に戻る。傾斜の軸心は典型的には把握できるが到達できない対象物のうちのいずれか一つに従って選択されるが、これら二つの条件を満たす対象物は典型的にはほとんどない。ビンは、選択された対象物が、その把握形体部がさらに上を向くか、あるいは把持部１６の障害となっている側壁１３と反対方向に摺動するように望むらくは回転または並進するように傾けられる。典型的には、選択された対象物に一番近い側壁１３が持ち上げられ、揺すられる。
【００４８】
少なくとも一つの到達可能な対象物があるとき、過程１３２で、到達可能な対象物のうちの一つの対象物が拾い上げられるために選択される。到達できる対象物が複数あるとき、最初に拾い上げられるべき対象物の選択のための二つの可能な基準が、図４と図５に示されているので、これを以下に説明する。
【００４９】
過程１３４において、ロボット１４は移動してビン内の選択された対象物を拾い上げるために作動される。過程１３６において、ロボットが移動するとき、ロボット１４とビン内のいずれかの対象物との間に、あるいはロボット１４とビンの側壁１３との間に衝突があれば検出される。これは、例えば、認識技術が対象物または対象物上の把握形体部を正確に認識できなかったときの対象物とロボットの損傷に対する保護機構を提供する。いかなる視覚システムも完全ではないので、かかる衝突の検出はビンピッキングシステムの信頼性を高める。例えば、対象物Ａ’の把握形体部に他の対象物が少し重なっていても、把握可能な対象物の決定基準は把握形体部の視認率の限界値に基づいているので、対象物Ａ’は把握可能と（またさらに到達可能と）識別される可能性がある。ついで、ロボット１４が移動して対象物に到達し把持するとき、重なっている対象物にぶつかるかも知れない。ロボット１４はそのときその運動を停止して、重なっている対象物または把持部１６の損傷を防止しなければならない。一つの実施態様において、衝突検出はロボット１４が運動するのに必要な機械的力の検出に基づいている。別の実施態様において、衝突は視覚的方法を用いて検出される。例えば、ロボット１４の経路に沿って障害物の有無を検出するために３次元衝突検出カメラが把持部に取り付けられる。
【００５０】
過程１３８において、衝突または衝突の恐れが検出されたとき、ロボット１４は過程１４０でビン１２の外に後退する。つぎにビン１２が衝突の間に移動されていないことを確認するためにビン位置を確認することができ、そして、１４６において、ビン１２内の対象物を再配置し、またできれば障害物を排除するために、ビン１２は平坦に揺すられる。
【００５１】
衝突または衝突の恐れが検出されないとき、過程１４８において、ロボット１４は、選択された対象物を拾い上げ、ビンピッキングシステムの所与の用途に適した場所と配置で、ビン１２の外にそれを置く。さらに拾い上げるべき対象物があれば、該方法はつぎに過程１０２に戻ってビン１２内のもっと多くの対象物を拾い上げる。
【００５２】
なお、図２の実施態様において、画像処理ユニット２６とロボット制御器２８は別個のハードウェアユニットであり、過程１０２と過程１０４は画像処理ユニット２６によって実施され、他方で過程１０８〜１４８は、ロボット制御器２８とロボット１４によって実施されることに留意されたい。したがって、画像処理は、過程１０４で全て完了していなければならない、また、認識の結果は、過程１０４の終わりに、ロボット制御器２８に、例えば、ある一つの表で、提供されなければならない。この表は、それぞれの認識された対象物の把握形体部の３次元位置座標と配向の軸心、およびそれぞれの視認可能な対象物の表面視認性と把握形体部の視認性を含んでいる。このデータは、ロボット制御器２８が各基準を検査し、拾い上げられるべき対象物Ａ’を選択するのに用いられる。ある一つの代替の実施態様においては、画像処理ユニット２６とロボット制御器２８の機能は、単一の中央処理装置によって実施され、過程１０４で提供される表は視認可能な対象物のリストとその３次元位置座標を含んでいるだけであり、ある一つ基準を検査するために、あるいは拾い上げられるべき対象物を選択するために情報が実際に要求されるときだけ、該方法の別の過程で、表面の視認性が計算され把握形体部が後で認識される。
【００５３】
なお、ビン内に含まれる対象物を移動させるビン１２の代替移動を過程１１２、１２０、１２６と１４６で実施することができる。さらに、一つの代替実施態様において、過程１１２、１２０、１２６または１４６で被収容物を動かすためにビン１２を移動した後、ビン１２の位置を確認（過程１００）した後、ビンの被収容物の３次元画像を取得する。
【００５４】
図３は、画像処理ユニット２６とロボット制御器２８が別個のハードウェアである実施態様にしたがって図２の方法のビン内の視認可能な対象物を識別する過程１０４を実施する方法を図示している。図３の方法は、このようにして、画像処理から得られた認識された対象物の分類リストならびに認識された対象物の特性を提供し、それらは過程１０８から１４８において、ロボット制御器によって利用される。過程３１０において、画像処理ユニット２６は、３次元造影ビデオカメラによって取得された２次元画像内の、または３次元画像内のビン１２の中の拾い上げられるべき対象物を認識する。対象物は画像上の所定の認識特性を認識することによって認識される。過程３２０において、それぞれの認識された対象物の把握形体部を認識するために画像はさらに処理される。過程３３０において、それぞれの認識された対象物について把握形体部の３次元位置と把握配向の軸心が３次元画像を用いて評価される。３次元位置と把握方向の軸心は、対象物を把持するようにロボットを動かすときに把握形体部を正しく把持するために把握方向の軸心に沿って把持部を向けるのに用いられる。
【００５５】
過程３４０において、それぞれの認識された対象物の高さが３次元画像を用いて評価される。過程３５０において、それぞれの認識された対象物の視認率が評価される。視認率は視覚システムから見える上向きの表面の百分率として定義される、すなわち、認識された対象物の表面の、重なっている対象物の下に隠れている部分は見えない。過程３６０において、それぞれの認識された対象物の把握形体部の視認率が評価される。把握形体部の視認率は、把握形体部の表面の百分率、すなわち、視覚システムから見える各形体部の百分率である。この情報は、把握形体部が把持部によって把握可能であるために、重なっている対象物から十分解放されているかを判定するのに用いられる（図２の方法の過程１１６を参照）。高さ、視認率と把握形体部の視認性は、なかでも特に、図４と図５とを参照して後述するように、複数個の到達可能な対象物があるときに最初に拾い上げられるべき対象物を選択するのに用いることができる。
【００５６】
過程３７０において、認識された対象物は、対象物の視認率と、対象物上の把握形体部の視認率と対象物の高さとの組合せに従って分類される。その後、複数個の到達可能な対象物の中で拾い上げられるべき対象物を選択するときに、分類の中で最高ランクを有する対象物が低いランクを有する対象物よりも優先されることになる。一つの実施態様において、第一の所定の率（例えば、８０％）よりも高い視認率を有し、第二の所定の率（例えば、９５％、これは図２の方法の過程１１６で把握可能な対象物を識別するのに用いられた率と異なっていてもよい）よりも高い把握形体部の視認率を有する対象物の中で、対象物はビン１２内のそれらの高さによって分類される。ここで、ビン１２内でより高い対象物は、重なっている対象物がない可能性が高い。所定の率を満たさない対象物は、リストの下位にとどまり、おなじくそれらの高さによって分類されることがある。
【００５７】
過程３８０において、それぞれの視認可能な対象物の把握形体部の３次元位置座標と配向の軸心、およびそれぞれの視認可能な対象物の表面視認性と把握形体部の視認性を含む、分類された対象物の表がロボット制御器２８に提供される。
【００５８】
図４は、対象物が図３の方法に従って予め分類されたときの、到達可能な対象物の中から一つの対象物を選択するための方法１３２を図示している。この場合、分類された対象物の表の中で一番高いランクを有する対象物が、到達可能な対象物の中から単純に選択される。
【００５９】
到達可能な対象物の中から拾い上げられるべき対象物を選択するための代替方法１３２’が、図５に図示されている。この方法は、対象物が図２の方法の過程１０４で分類されていなかったときに適用される。過程５１０において、到達可能な対象物の中で、第一の所定の限界値より大きな対象物の視認率を有する対象物が優先される。過程５２０において、到達可能な対象物の中で、第二の所定の限界値より大きな対象物把握形体部の視認率を有する対象物も優先される。過程５３０において、優先対象物の中で、最大の高さを有する対象物が選択される。優先対象物がないとき、最大の高さを有する到達可能な対象物が選択される。
【００６０】
図６と図７は、把握可能な対象物が把持部によって到達可能かどうかを評価するのに可能な二つの基準を示している。図６の方法によれば、把持部が拾い上げられるべき対象物に到達する間にビンの側壁に当たらないときその対象物は到達可能である。図７の方法によれば、もし、把持部が拾い上げられるべき対象物に到達する間にビンの側壁にも当たらず、ビン内の他の対象物にも当たらないとき、そのときは、その対象物は到達可能である。
【００６１】
つぎに図６を参照して説明するが、把握可能な対象物が把持部によって到達可能かどうかを評価するための基準１２２が提供される。まず、ビンの側壁１３のきわめて近くに位置する把握形体部は、把持部が所与の操作範囲を有し、対象物を把持するために動いて自らを位置づけるために所与の空間を必要とするので、把持部によって到達できないだろう。このように、把握形体部はビンの側壁１３の内側に定義される所与の拾い上げ区域内に位置することが要求される。したがって、過程６１０において、拾い上げ区域がビン内に定義される。把握可能な対象物Ａ’の把握形体部がこの拾い上げ区域内にあり、把持部１６が垂直に接近することによって対象物Ａ’に到達できるように把握形体部が上を向いているとき、把握可能な対象物は把持部によって到達可能である。この拾い上げ区域は典型的にはロボット１４の操作範囲によって、より詳細には把持部１６の幅によって定義される。しかしながら、把握形体部が上を向いていないとき、把握形体部がビンの側壁１３に向いているならば、対象物を把持できないかも知れない。したがって、過程６２０において、把握形体部の３次元位置から離れて、ロボットの操作範囲に従って、把握配向の軸心上に位置するクリアランス点が定義される。クリアランス点は、把持部が把握形体部を把持するときの把持部１６とロボットのアーム１８との間の関節的結合の３次元位置を定義する。この関節的結合は、ビン内の、傾いた位置にある対象物に到達するために把持部を傾けるのに用いられる。過程６３０において、クリアランス点と把握可能な対象物の把握形体部の位置とが共に拾い上げ区域内にあるとき、対象物は到達可能である。この条件で、対象物が傾いているとき、傾けられた把持部は把握形体部に到達するのにビンの側壁１３に当たらない。
【００６２】
つぎに図７において、把握可能な対象物が把持部１６によって到達可能かどうかを評価するための代替基準１２２’が提供されている。この基準は把持部の寸法とビンの側壁１３とを考慮に入れるが、図６に示した基準とは反対に、ビン１２内の他の対象物の位置も計算に入れる。過程７２０において、把握形体部の３次元位置と把持方向の軸心ならびに把持部の寸法に従って、把握形体部のクリアランス空間が定義される。クリアランス空間は、把持部１６が把握形体部に到達するために必要とする、該把握形体部に隣接する空間に対応し、把持部をアーム１８に結合する関節的結合を含む、把持部１６の寸法を典型的に有する。過程７４０において、ビン内の対象物によって占められる空間に対応する容積がそれぞれの対象物について定義される。過程７６０において、少なくとも一つの把握可能な対象物のクリアランス空間に、他の対象物とビンの側壁１３とに対応する容積がないとき、対象物は把持部１６によって到達可能である。
【００６３】
図８は、図２の方法において、ロボットの衝突を検出する過程１３６を実施するための方法を図示している。この方法によれば、ロボット１４の移動の間、ロボット１４とビン内の対象物またはビンの側壁１３との衝突を検出するために、過程８１０において、ロボット１４が必要とする機械的力を監視する。過程８２０において、ロボットのアーム１８または把持部１６の機械的作動器が要求する力が所定の限界力より大きいとき、衝突が検出される。例えば、衝突はロボット１４のそれぞれの作動器を駆動する電流を所定の電流振幅限度に制限することによって検出できるものである。電流の振幅が電流振幅限度に達したときには、衝突が検出される。一つの代替の実施態様において、上記の力は、ロボット１４に備えられた、力センサまたは圧力センサによって監視される。
【００６４】
図９は、把持部によって到達できる対象物がないときビンが傾けられる実施態様による、ロボットを用いてビン内の対象物を拾い上げる方法を図示している。
該方法は、
ビンをある一つのビン位置に配置する過程９１０と；
ビン内の対象物の画像を取得する画像取得過程９２０と；
該画像を用いて対象物の把握形体部の視認性に関する情報を獲得する視認情報獲得過程９３０と；
該画像上で視認できる把握形体部を有する対象物を把握可能な対象物として識別する識別過程９４０と；
該把握可能な対象物がロボットによって拾い上げられる状態にあるかを判定する判定過程９５０と；
対象物の中で、一つの把握可能な対象物が拾い上げられる状態にあると判定されたとき、ロボットによって該把握可能な対象物を拾い上げるピッキング過程９６０と；
拾い上げられる状態にある把握可能な対象物がないと判定されたとき、ビンを傾けてビン位置に戻し、画像取得過程と、視認情報獲得過程と、識別過程と、判定過程と、前記ピッキング過程と前記ビンを傾けて前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復する過程９７０とから成る。
一つの実施態様において、過程９５０は把握形体部の位置、把握形体部の把握方向の軸心および／またはロボットのサイズ特性を用いて実施され、位置と把握方向の軸心は画像から得られる。
【００６５】
図１０は、把握可能な対象物がないように、すなわち把握形体部が視認できないように対象物が重なり合っているときにビンが水平に揺すられる実施態様による、ロボットを用いてビン内の対象物を拾い上げるための方法を図示している。
該方法は、
ビンをある一つのビン位置に配置する過程１０１０と；
ビン内の少なくとも一つの利用可能な対象物の画像を取得する画像取得過程１０２０と；
該画像を用いて少なくとも一つの利用可能な対象物の把握形体部の視認性に関する情報を獲得する視認情報獲得過程１０３０と；
少なくとも一つの利用可能な対象物が該画像上で視認できる把握形体部を有するかを判定する判定過程１０４０と；
少なくとも一つの利用可能な対象物の中で、選択された対象物が該画像上で視認できる把握形体部を有するとき、該画像から獲得した位置情報を用いてロボットによって該選択された対象物を拾い上げるピッキング過程１０６０と；
少なくとも一つの利用可能な対象物が画像上で視認できる把握形体部を持たないとき、ビンを移動してビン位置に戻し、画像取得過程と、視認情報獲得過程と、判定過程と、前記ピッキング過程と前記ビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復する過程１０５０とから成る。対象物は、把握形体部を含むときに利用可能と判定される。
【００６６】
図１１は、一つの実施態様にしたがって、ビンにロボットによって拾い上げられるべき対象物がないことを判定するための方法を図示している。
該方法は、
ビンをある一つのビン位置に配置する過程１１１０と；
運動の軸心を中心とするビンの以前の傾けに関する軸心の情報を獲得する過程１１２０と；
該軸心の情報を用いて、全ての運動の軸心についてビンが傾けられたかを判定する過程１１３０と；
ビンの被収容物の画像を取得する過程１１４０と；
該画像を用いてビン内の認識された対象物を識別する過程１１５０と；
認識された対象物が一つも識別されず、ビンが全ての運動の軸心について傾けられたとき、ビンに拾い上げられるべきと認識された対象物がないと判定する過程１１６０と；
認識された対象物が一つも視認できず、ビンが全ての運動の軸心について傾けられていないとき、運動の軸心の残りの一つを中心にビンを傾け、ビンをビン位置に戻し、判定、取得と判定の過程を反復する過程１１７０、とから成る。
【００６７】
図１２は、対象物の損傷やロボットの損傷を防止するために、ロボットと対象物やビンの側壁との衝突が検出される実施態様による、ロボットを用いてビン内の対象物を拾い上げるビンピッキング方法を図示している。
該ピッキング方法は、
ビンをある一つのビン位置に配置する過程１２１０と；
ビン内の少なくとも一つの利用可能な対象物の画像を取得する画像取得過程１２２０と；
該画像上で視認できる利用可能な対象物の一つを視認可能な対象物として識別する識別過程１２３０と；
該視認可能な対象物に到達し拾い上げるためにロボットを移動する移動過程１２４０と；
ロボットを移動している間、ロボットによって要求される力を監視する監視過程１２５０と；
該力が所定の限界力より大きいかを判定する判定過程１２６０と；
該力が所定の限界力より大きくないとき、該画像から得られた位置情報を用いてロボットによって該視認可能な対象物を拾い上げるピッキング過程１２７０と；
該力が所定の限界力より大きいとき、ロボットをビンから除去する除去過程１２８０と；
ビンを移動してビン位置に戻し、画像取得過程と、識別過程と、移動過程と、監視過程と、判定過程と、前記ピッキング過程と前記ロボットを除去しビンを移動して前記ビン位置に位置を戻して反復する過程のいずれか一つの過程と、の各過程を反復する過程１２９０、とから成る。
【００６８】
図１３は、一つの実施態様による、ビン内で最初に拾い上げる対象物を選択するための方法を図示している。
該方法は、
ビン内の少なくとも一つの利用可能な対象物の３次元画像を取得する過程１３１０と；
該画像を用いて少なくとも一つの利用可能な対象物の把握形体部の視認性に関する情報を獲得する過程１３２０と；
少なくとも一つの利用可能な対象物の中から、把握形体部の視認性に関する情報を用いて拾い上げられるべき対象物を選択する過程１３３０、とから成る。
【００６９】
図９〜１２を参照して上に説明した方法において、ビン内に含まれる対象物を移動させる、ビン１２の任意の代替移動を実施することができる。さらに、一つの代替実施態様において、ビンの被収容物を動かすためにビン１２を移動した後に、ビン１２の位置を点検してからビンの被収容物の３次元画像を取得することができる。
【００７０】
ブロック図には、別個のデータ信号接続を介して互いに通信する離散構成部品群として図示されているが、当業者には自明のごとく、実施態様はハードウェアおよびソフトウェア構成部品の組合せによって提供することも可能で、いくつかの構成部品はハードウェアまたはソフトウェアシステムの所与の機能または動作によって実施され、図示されたデータパスの多くはコンピュータアプリケーションまたはオペレーティングシステム内でデータ通信によって実施される。図示された構造はしたがって、本実施態様の教示の効率のために提供されるものである。
【００７１】
上述の本発明の各実施態様は、例示だけを意図するものである。例えば、ある対象物を認識されたもの、あるいは把握可能なものとして識別するために、視認できる認識特性および／または把握形体部の十分な部分以外の基準を用いることができる。さらに、十分な部分として用いられる限界値も可変させることができる。認識された対象物を分類するための表における基準の種類特質と優越性も可変させることができる。同様に、到達可能な対象物の中から拾い上げられるべき対象物を選択するための方法、および／または把握可能な対象物に把持部によって到達できるかを評価するための方法に用いられる基準の種類特質と優越性も可変させることができる。対象物の位置情報は、その３次元位置、その把握方向の軸心、そのクリアランス点などを含むことができるが、それらに限定されない。したがって、本発明の範囲は、付属の請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【００７２】
【図１】整理箱であるビン内の対象物が視覚システムによって誘導されるロボットによって拾い上げられるビンピッキングシステムを示す概略図
【図２】ロボットを用いて整理箱であるビン内の対象物を拾い上げる方法を示すフローチャート
【図３】整理箱であるビン内の認識された対象物を識別する過程を実施するための方法を示すフローチャート
【図４】表内で最高のランクを有する対象物が選択されるときの、到達可能な対象物の中で一つの対象物を選択する過程を実施するための方法を示すフローチャート
【図５】基準に従っていくつかの対象物が優先され、優先対象物の中から整理箱であるビン内で最大の高さを有する対象物が選択されるときの、到達可能な対象物の中で一つの対象物を選択する過程を実施するための方法を示すフローチャート
【図６】把持部が拾い上げる対象物に到達する間に整理箱であるビンの側壁にぶつからないときに対象物が到達可能である場合の、少なくとも一つの把握可能な対象物が把持部によって到達可能かを評価する過程を実施するための方法を示すフローチャート
【図７】把持部が拾い上げる対象物に到達する間に整理箱であるビンの側壁にもビン内の他の対象物にもぶつからないときに対象物が到達可能である場合の、少なくとも一つの把握可能な対象物が把持部によって到達可能かを評価する過程を実施するための方法を示すフローチャート
【図８】ロボットの衝突を検出する過程を実施するための方法を示すフローチャート
【図９】把持部によって到達できる対象物がないときに、整理箱であるビンが傾けられる、ロボットを用いてビン内の対象物を拾い上げるための方法を示すフローチャート
【図１０】どの対象物も把握できないように対象物が重なっているときに整理箱であるビンが水平に揺すられる、ロボットを用いてビン内の対象物を拾い上げる方法を示すフローチャート
【図１１】整理箱であるビン内にロボットによって拾い上げられる対象物がないことを判定するための方法を示すフローチャート
【図１２】対象物またはロボットの損傷防止のためにロボットと対象物または整理箱であるビンの側壁との衝突が検出される、ロボットを用いてビン内の対象物を拾い上げる方法を示すフローチャート
【図１３】整理箱であるビン内の、どの対象物を最初に拾い上げるかを選択するための方法を示すフローチャート
【符号の説明】
【００７３】
１０  ビンピッキングシステム
１２  ビン
１３  側壁
１４  ロボット
１６  把持部
１８  アーム
２０  視覚システム
２２  ビデオカメラ
２４  位置決め用カメラ
２６  画像処理ユニット
２８  ロボット制御器
Ａ    対象物
１０４  ビン内の視認可能な対象物を識別する過程
１２２、１２２’  把握可能な対象物が把持部によって到達可能かどうか評価する基準
１３２、１３２’  到達可能な対象物の中から一つの対象物を選択するための方法
１３６  ロボットの衝突を検出する過程
【図１】
2008062376.tif 000003
【図２】
2008062376.tif 000004
【図３】
2008062376.tif 000005
【図４】
2008062376.tif 000006
【図５】
2008062376.tif 000007
【図６】
2008062376.tif 000008
【図７】
2008062376.tif 000009
【図８】
2008062376.tif 000010
【図９】
2008062376.tif 000011
【図１０】
2008062376.tif 000012
【図１１】
2008062376.tif 000013
【図１２】
2008062376.tif 000014
【図１３】
2008062376.tif 000015
【外国語明細書】
BIN-PICKING SYSTEM 
FOR RANDOMLY POSITIONED OBJECTS
BACKGROUND OF THE INVENTION
1) Field of the Invention 
[0001]      The invention relates to the automated picking up of objects using a robot. More specifically, the invention relates to the automated picking up of objects which are randomly disposed in a bin.
2) Description of the Prior Art
[0002]      In some industrial applications, in an assembling or packaging factory for example, it is required to recognize and pick up objects randomly arranged in a bin, a box or the like. The objects to be picked up may be mixed up in the bin with objects that are not useful at a given stage of the industrial process. A vision system is generally used to recognize the useful objects to be picked up and to determine their position in the bin to guide a robot which is used for grasping a selected object, to pick it up and place it in an arranged or predetermined position, such as in a shipping box for example. The bin-picking system first needs to select which object to pick up based on the information provided by the vision system. 
[0003]      Many picking up jobs are currently only doable by humans. One difficulty with the picking up of randomly arranged objects is that the objects may be piled up thus preventing the robot to reach some objects obstructed by other useful or unuseful overlapping objects in a given pile arrangement. The picking up system is required to recognize and select unobstructed objects but is prevented to do so by the overlapping objects. 
[0004]      If the objects to be picked up are disposed in a bin, a further difficulty results from the walls of the bin which may be mechanical obstacles in the reaching of an object by the robot. In some applications, the objects can only be grasped from one predetermined orientation relative to the object because the object is not symmetric and/or because it is required that the gripper of the robot grasps the object using specific features on the object, such as a hole, a post, etc. If the object is incorrectly oriented and/or close to the walls of the bin, the gripper, even if articulated to adjust its orientation, may not be able reach the object as it would hit the walls of the bin while moving to the object.
[0005]      To circumvent those problems, the objects to be picked up are conventionally orderly arranged on a tray, a conveyer or a bin such that the objects are not piled up on one another and the objects to be picked up, such as bolts for example, are typically graspable from multiple orientations or properly oriented on the conveying surface, for example flat pieces are laid out on a conveyer. In some applications, objects graspable from multiple orientations are piled up on a tray but those systems do not encounter the problems associated with the use of a bin having walls. 
SUMMARY OF THE INVENTION
[0006]      It is an aim of the present invention to overcome at least some of the drawbacks of the prior art.
[0007]      The invention provides a method for picking up objects randomly arranged in a bin using a robot having a gripper for grasping the objects using a prehension feature on the object. The method includes a shaking scheme for rearranging the objects in the bin when no objects are recognized, when no objects are prehensible by the gripper or when the object to be picked up is not reachable by the gripper because, for example, its prehension feature is substantially facing a wall of the bin. The method also includes a routine for determining that a bin is free of recognized objects to be picked up and a routine for selecting the object to be picked up first in the bin when more than one object could be picked up in the bin. The method also provides for a protection mechanism against damage of the objects and the robot when a recognition technique has failed in properly recognizing the object or the prehension feature on the object.
[0008]      One aspect of the invention provides a method for picking up a selected object among at least one available object in a bin. The available object has a prehension feature adapted to allow a robot to pick up the available object. The robot is adapted to use the prehension feature on the available object to pick up the available object. The robot has an operable range in which it is able to pick up the available object. The method comprises: providing the bin at a bin location; acquiring an image of the at least one available object in the bin; obtaining information concerning a visibility of the prehension feature of the at least one available object using the image; identifying one of the at least one available object having the prehension feature visible on the image as a prehensible object; determining if the prehensible object is in a state to be picked up by the robot; if, among the at least one available object, a prehensible object is determined to be in a state to be picked up, picking up the prehensible object by the robot using position information obtained from the image; and if no prehensible object is determined to be in a state to be picked up, displacing and putting the bin back at the bin location and repeating the steps of acquiring, obtaining, identifying, determining and one of picking up and displacing, putting and repeating.
[0009]      Another aspect of the invention provides a method for determining that a bin is free of recognized objects to be picked up by a robot. The robot is adapted to pick up an object. The bin has axes of motion about which the bin can be tilted. The method comprises: providing the bin at a bin position; obtaining axis information concerning previous tilting of the bin about the axes of motion; determining if the bin has been tilted about all of the axes of motion using the axis information; acquiring an image of the content of the bin; identifying recognized objects in the bin using the image; if no recognized object is identified and if the bin has been tilted about all of the axes of motion, determining that the bin is free of recognized objects to be picked up; and if no recognized object is visible and if the bin has not been tilted about all of the axes of motion, tilting the bin about a remaining one of the axes of motion, putting back the bin at the bin position and repeating the steps of determining, acquiring and determining.
[0010]      A further aspect of the invention provides a method for selecting which object to pick up among at least one available object in a bin. The available object has a prehension feature adapted to allow a robot to pick up the available object. The robot is able to pick up the available object. The method comprises: acquiring a 3D image of the at least one available object in the bin; obtaining information concerning a visibility of the prehension feature of the at least one available object using the image; and selecting an available object to be picked up using the information concerning visibility of the prehension feature among the at least one available object.
[0011]      Another aspect of the invention provides a method for picking up a selected object among at least one available object in a bin, the at least one available object having a prehension feature adapted to allow a robot to pick up the at least one available object, the robot being adapted to use the prehension feature on the at least one available object to pick up the at least one available object. The method comprises: providing the bin at a bin location; acquiring an image of the at least one available object in the bin; obtaining information concerning a visibility of the prehension feature of the at least one available object using the image; determining if the least one available object has the prehension feature visible on the image; if a selected object among the least one available object has the prehension feature visible on the image, picking up the selected object by the robot using position information obtained from the image; and if the least one available object has the prehension feature not visible on the image, displacing and putting the bin back at the bin location and repeating the steps of acquiring, obtaining, determining and one of picking up and displacing, putting and repeating. The displacing may comprise horizontally shaking the bin.
[0012]      Another aspect of the invention provides a method for picking up a visible object among at least one available object in a bin, the object being adapted to be picked up by a robot. The method comprising: providing the bin at a bin location; acquiring an image of the at least one available object in the bin; identifying one of the available object being visible in the image as the visible object; moving the robot to reach and pick up the visible object; monitoring a force required by the robot while moving the robot; determining if the force is higher than a predetermined threshold force; if the force is not higher than a predetermined threshold force, picking up the visible object by the robot using position information obtained from the image; and if the force is higher than a predetermined threshold force, removing the robot from the bin, displacing and putting the bin back at the bin location and repeating the steps of acquiring, identifying, moving, monitoring, determining and one of picking up and removing, displacing, putting and repeating. The displacing may comprise tilting the bin.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]      Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
[0014]      Fig. 1 is a schematic diagram illustrating a bin picking system wherein objects in a bin are to be picked up by a robot guided by a vision system;
[0015]      Fig. 2 is a flow chart illustrating a method for picking up objects in the bin using the robot;
[0016]      Fig. 3 is a flow chart illustrating a method for conducting the step of identifying recognized objects in the bin of the method of Fig. 2;
[0017]      Fig. 4 is a flow chart illustrating a method for conducting the step of selecting an object among the reachable objects of the method of Fig. 2 wherein the object having the highest rank in a table is selected;
[0018]      Fig. 5 is a flow chart illustrating a method for conducting the step of selecting an object among the reachable objects of the method of Fig. 2 wherein some objects are prioritized according to a criterion and the object having the greatest height in the bin is selected among the prioritized objects;
[0019]      Fig. 6 is a flow chart illustrating a method for conducting the step of evaluating if at least one prehensible object is reachable by a gripper of the method of Fig. 2 wherein an object is reachable if the gripper is not to hit a wall of the bin while reaching the object to be picked up;
[0020]      Fig. 7 is a flow chart illustrating a method for conducting the step of evaluating if at least one prehensible object is reachable by the gripper of the method of Fig. 2 wherein an object is reachable if the gripper is to hit neither the walls of the bin nor other objects in the bin while reaching the object to be picked up;
[0021]      Fig. 8 is a flow chart illustrating a method for conducting the step of detecting a collision of the robot of the method of Fig. 2;
[0022]      Fig. 9 is a flow chart illustrating a method for picking up objects in the bin using a robot wherein the bin is tilted if there is no object reachable by the gripper;
[0023]      Fig. 10 is a flow chart illustrating a method for picking up objects in the bin using the robot wherein the bin is horizontally shaken if the objects overlap such that no object is prehensible;
[0024]      Fig. 11 is a flow chart illustrating a method for determining that the bin is free of objects to be picked up by a robot;
[0025]      Fig. 12 is a flow chart illustrating a method for picking up objects in a bin using a robot wherein a collision of the robot with objects or walls of the bin is detected to prevent damage of the objects or the robot; and
[0026]      Fig. 13 is a flow chart illustrating a method for selecting which object to pick up first in the bin.
[0027]      It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTION
[0028]      Now referring to the drawings, Fig. 1 illustrates a bin-picking system 10 for picking up objects A in a bin 12 using a robot 14. 
[0029]      The bin 12 is similar to a tray but further has side walls 13 that can limit the reach of the objects A located near the walls 13 but that also minimizes the probability of an object to fall off the bin while the bin 12 is being displaced, i.e. lifted, tilted, shaken, and the like. A specially designed plastic bin can be used but the box used for the shipping of the objects, such as a carton, could also be used as a bin 12 if the lid is removed or the closing flaps are removed or held in an open position. The bin 12 is typically conveyed and stops at a predetermined bin position or location. The bin 12 can also be manually placed at an appropriate position, within the reach of the robot 14. A vision system 20 is used for recognizing the objects in the bin 12 and includes a bin positioning camera 24 for checking if the bin 12 is appropriately positioned for the picking up process within predetermined tolerances. If it is not the case, a conveyer (not shown) may be used to reposition the bin 12 or the robot 14 may lift the bin 12 and displace it as will be discussed later on. The bin 12 may also be manually displaced.
[0030]      In the illustrated embodiment, the robot 14 is an articulated arm robot having a gripper 16 mounted on an articulated arm 18. It is noted that the robot of Fig. 1 is provided for illustration only and that, while in Fig. 1 the arm is shown having three parallel axes of movement, one skilled in the art will understand that a suitable articulated robot would typically have at least three differently arranged axis and the gripper 16 would be typically articulately mounted to the arm 18 with two or three additional axes of movement, depending on the application and the geometry of the objects to be picked up. Examples of suitable robots for bin-picking systems are articulated robots, Selective Compliant Articulated/Assembly Robot Arms (SCARA) and Cartesian coordinate robots.
[0031]      The gripper 16 is adapted for the objects to be picked up and for the features on the objects that are used for grasping it with the gripper 16. Typically, a pneumatic hand gripper having two fingers can be used. Objects having a prehension feature in the shape of a hole can be picked up by inserting the robotized fingers inside the holes and opening the fingers to hold the object. Objects having a substantially flat surface can typically be grasped using a suction gripper. Other types of grippers can be used to grasp the objects, such as a single rod or plate, depending on the prehension feature of the object.
[0032]      The robot will typically have an operable range within which it is able to pick up objects. This range will take into account the limits on the angle of each articulation of the robot and the volume occupied by the robot and the gripper and is used to determine whether it is possible to position the gripper at the appropriate angle and location to allow the robot to reach and grasp the object with the prehension feature. In the present case where the objects are placed in a bin, the object may be placed directly below the arm of the robot, but still be unreachable by the robot since the gripper cannot be rotated and lowered adequately to pick up the object without hitting the walls of the bin or another object. 
[0033]      In order to tilt and shake the bin 12 to rearrange the objects in the bin 12 when required (as will be discussed later on), the bin 12 can be adapted to be grasped by the robot using the gripper. If the gripper 16 is a pneumatic hand gripper, the gripper 16 can simply grasp one wall 13 of the bin 12 by closing the hand on the top of the wall 13. Alternatively, a specially adapted prehension feature can be attached to the walls 13 or the corners of the bin or defined with the walls 13 to allow the gripper 12 to grasp and lift one wall 13 or corner of the bin. The bin 12 can be adapted to be grasped or lifted by the gripper 16. For example, without being limitative, it can include features, such as holes defined in the walls 13, which are identified and grasped by the gripper 16. The bin 12 can alternatively be tilted and shaken using an actuated table on the top of which the bin 12 is placed. A tiltable conveyer may also be used for shaking the bin 12.
[0034]      The bin-picking system 10 includes a vision system 20 for guiding the robot 14 in the picking up process. The vision system 20 includes two 3D imaging video cameras 22 provided above the bin 12 for acquiring 2D images of the objects in the bin 12. The 2D images are processed by an image processing unit 26 to provide a 3D image of the objects in the bin 12 using a stereoscopic method, for instance. The image processing unit 26 recognizes the objects A in the bin 12 by processing the 2D or 3D images. A model of the objects A to be picked up is provided to the image processing unit 26. The model includes a definition of the recognition features, e.g. describing the general shape of the object or a distinctive geometric shape or target on the object, and of a prehension feature, such as a hole in the object to be used by the gripper 16 to grasp it and that should be present on the object A. For example, if the objects to be picked up all have a distinct mark, such as a drawing or a special geometric shape at one end, it may only be required to recognize that distinct mark to recognize an object, the distinctive mark providing the recognition features. The image processing unit 26 identifies the objects A to be picked up in the bin by recognizing objects having the recognition features. The prehension feature is also recognized by the image processing unit 26 and is used to identify the objects that are prehensible by the gripper 16, as will be described later on. 
[0035]      A list of the recognized objects along with their position and orientation in the bin 12 is provided to a robot controller 28 that moves the arm 18 and the gripper 16 to reach one object A’, grasp it and pick it up. Each object is picked up successively by the robot 14 and the object A’ to be picked up at a given time among the objects in the bin 12 is selected by the robot controller 28. In selecting which object to pick up, the robot controller takes into account some further data provided by the image processing unit 26 along with the list, such as the position and an orientation axis of the prehension feature of the objects, and the visibility of the surface and the visibility of the prehension feature of the object A’ as seen by the vision system 20 from above the bin 12. According to a first routine, the robot controller 28 verifies that the visibility of the surface is sufficient to conclude that there are no objects piled up over the object A’ to be picked up and thus preventing the robot 14 to pick up the object A’. According to a second routine, the robot controller 28 also verifies that the prehension feature of the object A’ is sufficiently visible to conclude that the prehension feature is sufficiently on the top of the object A’ and free of overlapping objects to be grasped by the gripper. Finally and according to a third routine, the robot controller 28 evaluates if the prehension feature is reachable by the gripper 16, by checking if the prehension feature is substantially facing a wall 13 of the bin 12 to prevent the gripper 16 to reach it without hitting the wall 13. Those routines are provided as examples and more or less routines can by checked by the robot controller 28 to determine that an object can be picked up by the robot 14.
[0036]      While in Fig. 1 the vision system is shown with two 3D imaging video cameras 18 along with an additional bin positioning camera 20, it should be appreciated that a 3D imaging video camera 18 could be alternatively used as a positioning camera 20. It is contemplated that the 3D imaging video cameras 22 could be replaced by digital cameras and that the 3D image could alternatively be acquired by a 3D camera. Any vision setup able to provide the list of visible objects can alternatively be used. For example, as it will be appreciated, increasing the number of video cameras 22 typically increases the robustness of the system. 
[0037]      Among the objects meeting the criteria, one object is selected by the robot controller 28 and is picked up by the robot 14. When there is no object meeting the criteria, objects in the bin 12 are rearranged according to the shaking scheme described in Fig. 2. 
[0038]      The method used by the robot controller 28 for picking up the objects in the bin 12 and including the shaking scheme used for rearranging the objects in the bin will be described in reference to Fig. 2. Some more basic routines that can be integrated into a different method, as an alternative to the method of Fig. 2, will also be described in reference to Fig. 9 to Fig. 13.
[0039]      While the method of Fig. 2 will be herein described in reference to the bin-picking system 10 of Fig. 1, it will be apparent that any alternative bin-picking system 10 could alternatively be used for implementing the method and that the steps described herein as being implemented by a given hardware component could alternatively be implemented by any other hardware components. 
[0040]      First, in step 100, the bin 12 is positioned at a predetermined bin position which is determined such that the contents of the bin is in the field of view of the vision system 20 and is in the field of reach of the robot 14. The positioning of the bin 12 may be assisted by the vision system 20 including the bin positioning camera 24. In step 102, a 3D image of the contents of the bin 12 is acquired using the vision system 20. For example, each of the two 3D imaging video cameras 22 provides a 2D image and a 3D image is provided using a stereoscopic method implemented by the image processing unit 26. In step 104, objects to be picked up that are visible on the images are identified by the image processing unit 26 and a list of recognized objects is provided. To be recognized by the vision system, an object must have a sufficient fraction of its recognition features visible from the top of the bin. Step 104 will be described in more details below in reference to Fig. 3.
[0041]      In step 108, the robot controller 28 receives the list of recognized objects and checks whether there is any recognized object in the list. If there is no recognized object in the list, it may be that the bin 12 is free of objects to be picked up or that objects to be picked up, i.e. useful objects, in the bin are hidden by other objects that are not to be picked up by the robot, i.e. non useful objects. If a useful object is overlapped by other objects such that there is not a sufficient fraction of the surface of the object visible from the top of the bin, the object is not recognized by the vision system and it is not considered recognized. Consequently, if there is no recognized object, a routine is provided to verify if the bin is free of objects to be picked up and if the picking up should be stopped. In order to check if there is at least one remaining object to be picked up in the bin that might be hidden by other objects, the bin is first tilted, in step 112, about one axis of motion about which the bin 12 can be tilted. The position of the bin 12 is first checked using the vision system 20 and the robot 14 then grasps and slightly lifts one corner of the bin 12 in order to tilt the bin 12 and then shakes it. This process rearranges the objects in the bin 12 and may move away some non useful objects which were hiding some useful ones. Alternatively, one side wall 13 of the bin is grasped and lifted by the robot 14 to tilt and shake the bin 12 or the bin 12 is simply tilted using an actuated tilting table. If the robot 14 is to tilt the bin 12 by grasping and lifting one side wall 13 of the bin, the axes of motion will be the bottom edge of the bin opposite to the grasped side wall 13. A rectangular bin has four axes of motion, one for each side wall 13. If the bin 12 is placed on an actuated table, the axis of motion may be completely arbitrary. If the robot 14 is to tilt the bin 12 by grasping and lifting one side corner of the bin, the axis of motion may still be one bottom edge of the bin or the bin 12 may rotate about any axis on which lies the bottom corner opposite to the grasped corner. The axis of motion will depend on the direction of the lifting movement provided by the robot 14. The bin 12 can be simply tilted or can be slightly tilted and shaken in order to break the surface bonds between the objects. 
[0042]      The method then goes back to step 102 and consequently perform steps 104 and 108. If, in step 108, there is still no visible object, in step 112, the bin 12 is tilted about another axis of motion, i.e. another corner is grasped, lifted and shaken and the method goes back again to step 102. If at step 108 there is still no visible object in the bin 12 and if, at step 110, the bin has been tilted about all the axes, i.e. all the four corners of the bin 12 have been grasped and lifted and/or shaken in the embodiment of a rectangular bin, it is concluded that the bin 12 is free of objects to be picked up and the picking method ends at step 114. It is appreciated that if an object is recognized after tilting the bin about at least one axis of motion, the axis information concerning the prior tilting of the bin are reset, i.e. no prior tilting has occurred.
[0043]      If, in step 108, there is at least one visible object in the bin, the method goes to step 116. In step 116, among the recognized objects, the objects having their prehension feature visible by the vision system are identified as prehensible objects. Accordingly, if the prehension feature is recognized on the images taken by the vision system 20, i.e. they are not hidden by other objects, it is considered that the gripper 16 will be able to grasp the prehension feature from the top of the bin. The criterion used for evaluating if the objects are prehensible can vary from embodiment to embodiment and according to the type of the objects to be picked up. According to one embodiment, there is a threshold on the ratio of the visibility of the prehension feature. For example, if the prehension feature is a hole in the object which the robot uses to grasp the object, the object may be considered prehensible if 90% of the edge of the hole is visible by the vision system 20. The 10% left may be unrecognizable on the image due to the image quality or may be overlapped by another object but the hole may still be prehensible by the gripper 16. In another example, the object may have more than one hole that can be individually used for grasping the object. It may than be required that at least one of the holes be visible. The prehension criteria, including the threshold(s), can vary in accordance with the nature of the objects. 
[0044]      In an alternative embodiment, if the prehensible features are located on the periphery of the objects, for example a bolt that is to be grasped by closing two fingers on its rod, the prehension criterion is different since the prehension feature is not only required to be visible but there should be sufficient space around the prehension feature to allow the gripper 16 to grasp the object. A volume enclosing the object is then defined in 3D for each recognized object in the bin. Based on the plurality of volumes, a prehensible object is a recognized object having its volume sufficiently free of all other volumes in order to allow the gripper to grasp the object. This method will be efficient in cases where there are no or few non useful objects in the bin since a volume is defined only for the objects recognized based on the geometry of the useful objects. Alternatively, without defining volumes enclosing the objects, it could be verified, using the 3D image, that the space around the prehension feature is sufficient. 
[0045]      In step 118, if there is no prehensible object, the robot 14 not being able to grasp any object, the bin is shaken in step 120 and the method goes back to step 102. In step 120, the bin is shaken horizontally on the conveyer. In one embodiment, the bin is shaken by the robot 14 which grasp one side wall 13 of the bin and translates it into a jerky back in forth motion. When the bin 12 is tilted or flat shaken by the robot 14, a prior check of the position of the bin 12 is performed. The horizontal shake can alternatively be provided by the conveyer. A suitable horizontal shake of the bin will typically disperse the objects that are piled up in the bin 12, thus hopefully showing some prehension feature.
[0046]      If there is at least one prehensible object, it is evaluated, in step 122, if at least one prehensible object is reachable by the gripper, i.e. in a state to be picked up by the robot. An object is considered not reachable if the position and the orientation of its prehension feature is such that the gripper cannot reach the object because there is not sufficient free space adjacent to the prehension feature, defined as the clearance space of the prehension feature, to allow the gripper to reach the object. For example, if the object to be picked up is near a wall 13 of the bin and if the orientation of the prehension feature is such that the gripper 16 cannot grasp the object by reaching the object using a vertical movement but rather requires to follow a tilted path to reach and grasp the object, the operable range of the robot 14 may not allow the gripper 16 to reach the object as the robot 14would hit the wall 13 of the bin in its path to reach the object. Two possible criteria for this evaluation are provided in Fig. 6 and Fig. 7 and will be described below.
[0047]      In step 124, if there is no reachable object, the bin is tilted and typically shaken in step 126 before going back to step 102. The tilting axis is typically selected according to anyone of the objects that is prehensible but not reachable, but there will typically be few objects meeting these two conditions. The bin is tilted so that the selected object will hopefully rotate or translate such that its prehension feature will be facing further up or will rather slip in a direction opposite to the wall 13 obstructing the gripper 16. Typically, the wall 13 that is the nearest to the selected object is lifted and shaken.
[0048]      If there is at least one reachable object, one object among the reachable objects is selected to be picked up in step 132. In the case where there is more than one reachable object, two possible criteria for the selection of the object to be picked up first are shown in Fig. 4 and Fig. 5 and will be described below.
[0049]      In step 134, the robot 14 is actuated to move and pick up the selected object in the bin. In step 136, as the robot moves, a potential collision between the robot 14 and any object in the bin or between the robot 14 and the walls 13 of the bin is detected. It provides for a protection mechanism against damage of the objects and the robot when, for example, a recognition technique has failed in properly recognizing the object or the prehension feature on the object. Because no vision system is perfect, detection of such a collision increases the reliability of the bin-picking system. For example, the prehension feature of an object A’ may be slightly overlapped by another object but the object A’ may still be identified as being prehensible (and further as being reachable) because the decision criteria for prehensible objects is based on a threshold on the ratio of visibility of the prehension feature. And then, as the robot 14 moves to reach and grasp the object, it may hit the overlapping object. The robot 14 should then stop its motion to prevent it from damaging the overlapping object or the gripper 16. In one embodiment, the collision detection is based on the detection of the mechanical force required by the robot 14 to move. In another embodiment, collision is detected using a vision method. For example, a 3D collision detection camera is mounted on the gripper for detecting the presence of an obstacle along the path of the robot 14.
[0050]      In step 138, if a collision or an imminent collision is detected, the robot 14 is moved back, out of the bin 12, in 140. The bin position can then be checked to make sure that the bin 12 has not been displaced during the collision, and, in 146, the bin 12 is flat shaken to rearrange the objects in the bin 12 and possibly get the obstacle out of the way.
[0051]      If no collision or imminent collision is detected, in step 148, the robot 14 picks up the selected object and places it out of the bin 12, in an appropriate location and arrangement for a given application of the bin-picking system. The method then goes back to step 102 to pick up more objects in the bin 12 if there are still more objects to be picked up.
[0052]      It is noted that in the embodiment of Fig. 2, the image processing unit 26 and the robot controller 28 are distinct hardware units and that steps 102 and 104 are implemented by the image processing unit 26, while steps 108 to 148 are implemented by the robot controller 28 and the robot 14. Accordingly, the image processing should be all completed at step 104 and the result of the recognition should be provided to the robot controller 28, in a table for example, at the end of step 104. The table contains the 3D position coordinates and the orientation axis of the prehension feature of each recognized object, and the visibility of the surface and the visibility of the prehension feature of each visible object. This data is used by the robot controller 28 to check criteria and select the object A’to be picked up. In an alternative embodiment, the functions of the image processing unit 26 and of the robot controller 28 are implemented in a single central processing unit and the table provided at step 104 only includes a list of the visible objects with their 3D position coordinates and the visibility of the surface is calculated and the prehension feature is recognized later in the further steps of the method, only when the information is actually required for checking a criterion or for selecting the object to be picked up. 
[0053]      It is appreciated that any alternative displacement of the bin 12 which imparts displacement of the objects contained therein can be carried out in steps 112, 120, 126, and 146. Moreover, in an alternative embodiment, after having displaced the bin 12 for moving its content in steps 112, 120, 126 or 146, the position of the bin 12 can be checked (step 100) before acquiring a 3D image of the bin content. 
[0054]      Fig. 3 illustrates a method for conducting the step 104 of identifying visible objects in the bin of the method of Fig. 2 according an embodiment wherein the image processing unit 26 and the robot controller 28 are distinct hardware. The method of Fig. 3 thus provides a sorted list of the recognized objects along with characteristics of the recognized objects obtained from the processing of the images and that are to be used by the robot controller in steps 108 to 148. In step 310, the image processing unit 26 recognizes objects to be picked up in the bin 12 in the 2D images acquired by the 3D imaging video cameras or in the 3D image. The objects are recognized by recognizing predetermined recognition features on the images. In step 320, the images are further processed for recognizing a prehension feature on each recognized object. In step 330, for each recognized object, the 3D position and the prehension orientation axis of the prehension feature is evaluated using the 3D image. The 3D position and the prehension orientation axis are used when moving the robot to grasp an object for orienting the gripper along the prehension orientation axis for proper grasping of the prehension feature.
[0055]      In step 340, the height of each recognized object is evaluated using the 3D image. In step 350, the visibility ratio of each recognized object is evaluated. The visibility ratio is defined as the percentage of the surface facing upward that is visible from the vision system, i.e. the fraction of the surface of the object that is hidden under an overlapping object is not visible. In step 360, the visibility ratio of the prehension feature of each recognized object is evaluated. The visibility ratio of the prehension feature is the percentage of the surface of the prehension feature or the percentage of features that is visible from the vision system. This information can be used to determine if the prehension feature is sufficiently free of overlapping objects to be prehensible by the gripper (see step 116 of the method of Fig. 2). The height, the visibility ratio and the visibility of the prehension feature can be used, among others, to select the object to be picked up first when there is more than one reachable object, as will be described along with Fig. 4 and Fig. 5.
[0056]      In step 370, the recognized objects are sorted according to a combination of the visibility ratio of the objects, the visibility ratio of the prehension feature on the objects and the height of the objects. Objects having a highest rank in the sort will be later prioritized over objects having a lower rank when selecting the object to be picked up among a plurality of reachable objects. In one embodiment, among the objects having a visibility ratio higher than a first predetermined ratio (80% for example) and having a ratio of the visibility of prehension feature higher than a second predetermined ratio (95% for example, which can be different from the ratio used in identifying prehensible objects in step 116 of the method of Fig. 2), the objects are sorted by their height in the bin 12. It is appreciated that an object higher in the bin 12 is more likely to be free of overlapping objects. Objects not meeting the predetermined ratios may remain at the bottom of the list and also be sorted according to their height.
[0057]      In step 380, a table of the sorted objects and including the 3D position coordinates and the orientation axis of the prehension feature of each visible object, and the visibility of the surface and the visibility of the prehension feature of each visible object is provided to the robot controller 28.
[0058]      Fig. 4 illustrates a method 132 for selecting an object among the reachable objects wherein the objects have been previously sorted according to the method of Fig. 3. In this case, the object having the highest rank in the table of the sorted objects is simply selected among the reachable objects.
[0059]      An alternative method 132’ for selecting the object to be picked up among the reachable objects is illustrated in Fig. 5. This method applies to a case wherein the objects have not been sorted in step 104 of the method of Fig. 2. In step 510, among the reachable objects, the objects having a visibility ratio of the object greater than a first predetermined threshold are prioritized. In step 520, among the reachable objects, the objects having a visibility ratio of the prehension feature of the object greater than a second predetermined threshold are also prioritized. In step 530, among the prioritized objects, the object having the greatest height is selected. If no objects have been prioritized, the reachable object having the greatest height is selected.
[0060]      Fig. 6 and Fig. 7 show two possible criteria to evaluate if a prehensible object is reachable by the gripper. According to the method of Fig. 6, an object is reachable if the gripper is not to hit a wall of the bin while reaching the object to be picked up. According the method of Fig. 7, an object is reachable if the gripper is to hit neither the walls of the bin nor other objects in the bin while reaching the object to be picked up.
[0061]      Now referring to Fig. 6, there is provided a criterion 122 for evaluating if a prehensible object is reachable by the gripper. First, prehensible features located very close to a wall 13 of the bin may not be reachable by the gripper as the gripper has a given operable range and requires a given space to move about and position itself to grasp the object. It is thus required that the prehensible features be located within a given pick-up area which is defined inside the walls 13 of the bin. Accordingly, in step 610, a pick-up area is defined within the bin. If the prehension feature of the prehensible object A’ is within this pick-up area and if the prehension feature faces up such that the gripper 16 can reach the object A’ by approaching vertically, the prehensible objects are reachable by the gripper. This pick-up area is typically defined by the operable range of the robot 14, particularly the width of the gripper 16. However, if the prehension feature is not facing up, the object may not be graspable if the prehension feature is oriented toward a wall 13 of the bin. Accordingly, in step 620, a clearance point located on the prehension orientation axis, away from the 3D position of the prehension feature and according to the operable range of the robot is defined. The clearance point defines the 3D position of the articulation between the gripper 16 and the arm 18 of the robot as the gripper is to grasp the prehension feature. This articulation is used to tilt the gripper in order to reach objects that are in a slanted position in the bin. In step 640, the object is reachable if the clearance point and the position of the prehension feature of a prehensible object are both inside the pick-up area. In this condition, if the object is slanted, the tilted gripper does not the hit the walls 13 of the bin to reach the prehensible features.
[0062]      Now referring to Fig. 7, there is provided an alternative criterion 122’ for evaluating if a prehensible object is reachable by the gripper 16. This criterion takes into account the dimensions of the gripper, the walls 13 of the bin and, in contrast to the criterion shown in Fig. 6, it also takes the location of the other objects in the bin 12 into account. In step 720, a clearance space of the prehension feature in accordance with the 3D position and the prehension orientation axis of the prehension feature and the gripper dimensions is defined. The clearance space corresponds to the space required adjacent to the prehension feature for the gripper 16 to reach it and typically has the dimensions of the gripper 16, including the articulation joining it to the arm 18. In step 740, a volume corresponding to the space occupied by the object in the bin in defined for each object. In step 760, if the clearance space of at least one prehensible object is free of volumes corresponding to other objects and the walls 13 of the bin, the object is reachable by the gripper 16.
[0063]      Fig. 8 illustrates a method for conducting the step 136 of detecting a collision of the robot in the method of Fig. 2. According to this method, as the robot 14 moves, the mechanical force required by the robot 14 is monitored in step 810 in order to detect a collision of the robot 14 with objects in the bin or with the walls 13 of the bin. In step 820, if the force required by the mechanical actuators of the robot arm 18 or the gripper 16 is higher than a predetermined threshold force, a collision is detected. For example, collisions may be detected by limiting the electrical current driving each actuator of the robot 14 to a predetermined current amplitude limit. If the amplitude of the current reaches the current amplitude limit, a collision is detected. In an alterative embodiment, the force is monitored by a force or pressure sensor provided on the robot 14. 
[0064]      Fig. 9 illustrates a method for picking up objects in a bin using a robot according to an embodiment wherein the bin is tilted if there is no object reachable by the gripper. The method includes: step 910 of providing the bin at a bin location; step 920 of acquiring an image of the objects in the bin; step 930 of obtaining information concerning a visibility of the prehension feature of objects using the image; step 940 of identifying objects having prehension feature visible on the image as prehensible objects; step 950 of determining if the prehensible objects are in a state to be picked up by the robot; step 960 of, if, among objects, a prehensible object is determined to be in a state to be picked up, picking up the prehensible object by the robot; and step 970 of, if no prehensible object is determined to be in a state to be picked up, tilting and putting the bin back at the bin location and repeating the steps of acquiring, obtaining, identifying, determining and one of picking up and tilting, putting and repeating. In an embodiment, step 950 is carried out using the position of the prehension feature, the prehension orientation axis of the prehension feature and/or the size characteristic of the robot, wherein the position and the prehension orientation axis are obtained from the image.
[0065]      Fig. 10 illustrates a method for picking up objects in a bin using a robot according to an embodiment wherein the bin is horizontally shaken if the objects overlap such that there is no prehensible object, i.e. the prehension feature is not visible. The method includes: step 1010 of providing the bin at a bin location; step 1020 of acquiring an image of the at least one available object in the bin; step 1030 of obtaining information concerning a visibility of the prehension feature of the at least one available object using the image; step 1040 of determining if the least one available object has the prehension feature visible on the image; step 1060 of, if a selected object among the least one available object has the prehension feature visible on the image, picking up the selected object by the robot using position information obtained from the image; and, step 1050 of, if the least one available object has the prehension feature not visible on the image, displacing and putting the bin back at the bin location and repeating the steps of acquiring, obtaining, determining and one of picking up and displacing, putting and repeating. An object is defined as available if it includes the prehension feature.
[0066]      Fig. 11 illustrates a method for determining that a bin is free of objects to be picked up by a robot according to an embodiment. The method includes: step 1110 of providing the bin at a bin position; step 1120 of obtaining axis information concerning previous tilting of the bin about the axes of motion; step 1130 of determining if the bin has been tilted about all of the axes of motion using the axis information; step 1140 of acquiring an image of the content of the bin; step 1150 of identifying recognized objects in the bin using the image; step 1160 of, if no recognized object is identified and if the bin has been tilted about all of the axes of motion, determining that the bin is free of recognized objects to be picked up; and step 1170 of, if no recognized object is visible and if the bin has not been tilted about all of the axes of motion, tilting the bin about a remaining one of the axes of motion, putting back the bin at the bin position and repeating the steps of determining, acquiring and determining..
[0067]      Fig. 12 illustrates a method for picking up objects in a bin using a robot according to an embodiment wherein a collision of the robot with objects or walls of the bin is detected to prevent damage of the objects or the robot. The method includes: step 1210 of providing the bin at a bin location; step 1220 of acquiring an image of the at least one available object in the bin; step 1230 of identifying one of the available object being visible in the image as a visible object; step 1240 of moving the robot to reach and pick up the visible object; step 1250 of monitoring a force required by the robot while moving the robot; step 1260 of determining if the force is higher than a predetermined threshold force; step 1270 of, if the force is not higher than a predetermined threshold force, picking up the visible object by the robot using position information obtained from the image; step 1280 of, if the force is higher than a predetermined threshold force, removing the robot from the bin, and step 1290 of displacing and putting the bin back at the bin location and repeating the steps of acquiring, identifying, moving, monitoring, determining and one of picking up and removing, displacing, putting and repeating.
[0068]      Fig. 13 illustrates a method for selecting which object to pick up first in a bin according to an embodiment. The method includes: step 1310 of acquiring a 3D image of the at least one available object in the bin; step 1320 of obtaining information concerning a visibility of the prehension feature of the at least one available object using the image; and step 1330 of selecting an object to be picked up using the information concerning visibility of the prehension feature among the at least one available object..
[0069]      In the methods described above in reference to Figs. 9 to 12, it is appreciated that any alternative displacement of the bin 12 which imparts displacement of the objects contained therein can be carried out. Moreover, in an alternative embodiment, after having displaced the bin 12 for moving its content, the position of the bin 12 can be checked before acquiring a 3D image of the bin content. 
[0070]      While illustrated in the block diagrams as groups of discrete components communicating with each other via distinct data signal connections, it will be understood by those skilled in the art that the embodiments may be provided by a combination of hardware and software components, with some components being implemented by a given function or operation of a hardware or software system, and many of the data paths illustrated being implemented by data communication within a computer application or operating system. The structure illustrated is thus provided for efficiency of teaching the present embodiment.
[0071]      The embodiments of the invention described above are intended to be exemplary only. For example, other criteria than the sufficient fraction of the recognition feature and/or the prehension feature visible can be used to identify an objected as either recognized or prehensible. Moreover, the threshold used as the sufficient fraction can vary. The nature and the preponderance of the criteria in the table to sort the recognized objects can vary. Similarly, the nature and the preponderance of the criteria used in the methods for selecting the object to be picked up among the reachable objects and/or evaluating if a prehensible object is reachable by the gripper can vary. The position information of an object can include, without being limitative, its 3D position, its prehension orientation axis, its clearance point, etc. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.
1.    A method for picking up a selected object among at least one available object in a bin, said available object having a prehension feature adapted to allow a robot to pick up said available object, said robot being adapted to use said prehension feature on said available object to pick up said available object, said robot having an operable range, said robot being able to pick up said available object within said operable range, the method comprising:
providing said bin at a bin location;
acquiring an image of said at least one available object in said bin;
obtaining information concerning a visibility of said prehension feature of said at least one available object using said image;
identifying one of said available object having said prehension feature visible on said image as a prehensible object;
determining if said prehensible object is in a state to be picked up by said robot;
if, among said at least one available object, a prehensible object is determined to be in a state to be picked up, picking up said prehensible object by said robot using position information obtained from said image; and 
if no prehensible object is determined to be in a state to be picked up, displacing and putting said bin back at said bin location and repeating said steps of acquiring, obtaining, identifying, determining and one of picking up and displacing, putting and repeating.
2.    The method as claimed in claim 1, wherein said displacing comprises tilting said bin.
3.    The method as claimed in claim 1, wherein the step of determining is carried out using said position information of said prehension feature and said operable range.
4.    The method as claimed in claim 1, further comprising a step of verifying if said bin contains at least one available object using said image and wherein said steps of acquiring, obtaining, identifying, determining and one of picking up and displacing, putting and repeating are repeated until no available object is present in said bin.
5.    The method as claimed in claim 1, wherein said image is a three dimensional image.
6.    The method as claimed in claim 1, 
further comprising :
obtaining a prehension orientation axis of said prehension feature from said image;
defining a pick-up area within said bin using said operable range;
wherein said determining comprises : 
determining if said prehensible object is in a state to be picked up by said robot using said position information, said pick-up area definition and said prehension orientation axis, wherein said prehensible object is in a state to be picked up by said robot if said prehension feature is positioned within said pick-up area definition and said prehension orientation axis is within said operable range;
if, among said at least one available object, a prehensible object is determined to be in a state to be picked up, picking up said prehensible object by said robot using said position information and said prehension orientation axis.
7.    The method as claimed in claim 6, 
further comprising: 
defining a clearance point located on said prehension orientation axis, away from said position, using said operable range;
determining if said prehensible object is in a state to be picked up by said robot using said position information, said pick-up area definition, said prehension orientation axis and said clearance point, wherein said prehensible object is in a state to be picked up by said robot if said prehension feature and said clearance point are positioned within said pick-up area.
8.    The method as claimed in claim 6, wherein said pick-up area is a surface defined at a predetermined distance from walls of the bin.
9.    The method as claimed in claim 1, further comprising: if no prehensible object is identified, tilting and shaking said bin and repeating said steps of acquiring, obtaining, identifying, determining and one of picking up and tilting and shaking, putting and repeating.
10.   The method as claimed in claim 1, wherein said image is a 3D image and wherein said picking up comprises:
determining a height in said bin for each of said prehensible objects in said state to be picked up by said robot;
selecting the selected object among said prehensible objects in said state to be picked up by said robot using said height and picking up said selected object by said robot using said position information.
11.   The method as claimed in claim 2, wherein said tilting comprises picking up and lifting at least one of a corner and a wall of said bin by said robot.
12.   The method as claimed in claim 11, wherein said tilting further comprises shaking said at least one of a corner and a wall of said bin using said robot.
13.   The method as claimed in claim 2, wherein said bin has axes of motion about which said bin can be tilted, wherein said tilting is about one of axes of motion, said method further comprises: 
storing axis information concerning said tilting;
determining if said bin has been tilted about all of said axes of motion using said axis information;
if no available object is identified as a prehensible object and if said bin has not been tilted about all of said axes of motion, tilting said bin about a remaining one of said axes of motion, putting back said bin in said bin position and repeating said steps of acquiring, identifying, determining and one of picking up and tilting, putting and repeating;
if no available object is identified as a prehensible object and if said bin has been tilted about all of said axes of motion, identifying said bin as being free of available objects to be picked up. 
14. The method as claimed in claim 13, said method further comprises:
if at least one object is identified as a prehensible object, resetting said axis information concerning said tilting.
15.   The method as claimed in claim 1, wherein said picking up said prehensible object comprises: moving at least a portion of said robot to reach and pick up the prehensible object using said position information, monitoring a force required to pick up said prehensible object and, if said force is higher than a predetermined threshold force, moving at least a portion of said robot out of said bin, at least one of tilting and shaking said bin and repeating said steps of acquiring, identifying, determining and one of picking up and displacing, putting and repeating.
16.   A method for determining that a bin is free of recognized objects to be picked up by a robot, said robot being adapted to pick up an object, wherein said bin has axes of motion about which said bin can be tilted, the method comprising:
providing said bin at a bin position;
obtaining axis information concerning previous tilting of said bin about said axes of motion;
determining if said bin has been tilted about all of said axes of motion using said axis information;
acquiring an image of the content of said bin;
identifying recognized objects in said bin using said image;
if no recognized object is identified and if said bin has been tilted about all of said axes of motion, determining that said bin is free of recognized objects to be picked up; and
if no recognized object is visible and if said bin has not been tilted about all of said axes of motion, tilting said bin about a remaining one of said axes of motion, putting back said bin at said bin position and repeating said steps of determining, acquiring and determining.
17.   The method as claimed in claim 16, wherein said object has a recognition feature, further comprising : 
identifying an object as recognized in said image using said recognition feature.
18.   The method as claimed in claim 16, the method further comprising:
if at least one recognized object is identified, resetting said axis information. 
19.   A method for selecting which object to pick up among at least one available object in a bin, said available object having a prehension feature adapted to allow a robot to pick up said available object, said robot being able to pick up said available object, the method comprising:
acquiring a 3D image of said at least one available object in said bin;
obtaining information concerning a visibility of said prehension feature of said at least one available object using said image; and
selecting an object to be picked up using said information concerning visibility of said prehension feature among said at least one available object.
20.   The method as claimed in claim 19, the method further comprising: determining height information concerning a height in said bin for each available object using said image, wherein said selecting use said height information. 
21.   The method as claimed in claim 19, wherein said object has a recognition feature, further comprising : 
obtaining information concerning a visibility of said recognition feature of said at least one available object using said image; wherein said selecting uses said visibility information of said recognition feature.
The invention provides a method for picking up objects randomly arranged in a bin using a robot having a gripper for grasping the objects using prehension feature(s) on the object. The method includes a shaking scheme for rearranging the objects in the bin when no objects are recognized, when no objects are prehensible by the gripper or when the object to be picked up is not reachable by the gripper because, for example, its prehension feature is substantially facing a wall of the bin. The method also includes a criterion for determining that a bin is free of objects to be picked up and a criterion for selecting the object to be picked up first in the bin. The method also provides for a protection mechanism against damage of the objects and the robot when a recognition technique has failed in properly recognizing the object or the prehension feature on the object.
【図１】
2008062376.tif 000016
【図２】
2008062376.tif 000017
【図３】
2008062376.tif 000018
【図４】
2008062376.tif 000019
【図５】
2008062376.tif 000020
【図６】
2008062376.tif 000021
【図７】
2008062376.tif 000022
【図８】
2008062376.tif 000023
【図９】
2008062376.tif 000024
【図１０】
2008062376.tif 000025
【図１１】
2008062376.tif 000026
【図１２】
2008062376.tif 000027
【図１３】
2008062376.tif 000028