(57)【要約】  ロボットピッキングシステムが、コンピュータビジョンおよび／または１つもしくは複数の「予備的ピッキング」を用いてパレットのボックスのサイズおよび位置を決定することで、ボックスの位置を特定し、ボックスを非構造パレットから取り出すことを可能とする技法が記載されている。
2019509559.tif 000002
【特許請求の範囲】
【請求項１】
荷積みパレットの第１画像を取り込む段階であって、前記荷積みパレットは、そこに積み重ねられた複数のボックスを有する、取り込む段階と、
前記第１画像を用いて、前記荷積みパレットの表面の第１表現を生成する段階と、
ロボットアームを用いて、前記荷積みパレットの前記表面のコーナーにある第１ボックスをプログラム可能な量動かす段階と
前記ロボットアームにより動かされた前記第１ボックスを含む、前記荷積みパレットの第２画像を取り込む段階と、
前記第２画像を用いて、前記荷積みパレットの前記表面の第２表現を生成する段階と、
前記ロボットアームを用いて前記第１ボックスを元に戻す段階と、
前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理して、前記第１ボックスの表面の表現を生成する段階と、
前記第１ボックスの前記表面の前記表現を用いて、前記ロボットアームを前記第１ボックスに対して位置決めする段階と、
前記ロボットアームを用いて、前記荷積みパレットから前記第１ボックスを動かす段階と
を備える、コンピュータ実装方法。
【請求項２】
前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理する段階は、前記荷積みパレットの前記表面の前記第１表現と前記第２表現との差異を決定する段階と、前記差異を用いて前記第１ボックスの前記表面のサイズおよび位置を決定する段階とを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第２画像は、前記第１ボックスの前記表面の一部を不明瞭にする前記ロボットアームの表現を含んでおり、前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理して、前記第１ボックスの前記表面の表現を生成する段階は、前記荷積みパレットの前記表面の前記第１表現および前記第２表現の両方からのデータを用いて、前記第１ボックスの前記表面の前記表現を生成する段階を含む、請求項１または２に記載のコンピュータ実装方法。
【請求項４】
前記荷積みパレットの前記ボックスの最小限のボックスサイズを表す入力を受信する段階を更に備え、前記第１ボックスの前記表面の前記表現を用いて前記ロボットアームを前記第１ボックスに対して位置決めする段階は、前記最小限のボックスサイズを用いる段階を含む、請求項１から３の何れか一項に記載のコンピュータ実装方法。
【請求項５】
前記荷積みパレットの前記ボックスの最大限のボックスサイズを表す入力を受信する段階を更に備え、前記ロボットアームを用いて前記荷積みパレットから前記第１ボックスを動かす段階は、（１）少なくとも、前記最大限のボックスサイズと関連付けられる高さだけ、前記荷積みパレットの上面の上方に前記第１ボックスを持ち上げる段階、または（２）少なくとも、前記最大限のボックスサイズと関連付けられる距離だけ、前記荷積みパレットの側面から前記第１ボックスを遠ざける段階を含む、請求項１から４の何れか一項に記載のコンピュータ実装方法。
【請求項６】
前記ロボットアームを用いて前記荷積みパレットから前記第１ボックスを動かす段階は、前記荷積みパレットの前記ボックスの数、サイズ、向きおよび位置を先験的に認識することなく達成される、請求項１から３の何れか一項に記載のコンピュータ実装方法。
【請求項７】
前記第１画像および前記第２画像は、カメラを用いて取り込まれ、前記コンピュータ実装方法は、前記ロボットアームにより対応する複数の位置に保持された基準点の複数の画像を用いて、前記カメラの位置を決定する段階を更に備える、請求項１から６の何れか一項に記載のコンピュータ実装方法。
【請求項８】
空のパレットの基準点の画像を用いて、前記荷積みパレットの位置を決定する段階を更に備える、請求項１から７の何れか一項に記載のコンピュータ実装方法。
【請求項９】
前記ボックスの総数よりも少ない数のボックスに対して、前記取り込む段階と、生成する段階と、持ち上げる段階と、取り込む段階と、生成する段階と、離す段階と、処理する段階とを行いながらも、前記ボックスの全てを前記荷積みパレットから降ろす段階を更に備える、請求項１から８の何れか一項に記載のコンピュータ実装方法。
【請求項１０】
前記第１ボックスを動かす段階は、（１）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットに対して前記プログラム可能な量持ち上げる段階、（２）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットに対して横方向に動かす段階、および（３）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットの前記表面に対して傾ける段階のうち１つを含む、請求項１から９の何れか一項に記載のコンピュータ実装方法。
【請求項１１】
前記第１ボックスの前記表面の前記表現を記憶する段階と、
画像取込デバイスを用いて前記荷積みパレットの第３画像を取り込む段階であって、前記第３画像は、前記第１ボックスを含まない、取り込む段階と、
前記第３画像を用いて、前記荷積みパレットの前記表面の第３表現を生成する段階と、
前記荷積みパレットの前記表面の前記第３表現と前記第１ボックスの前記表面の記憶された前記表現とを比較することにより、前記第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスを特定する段階であって、前記第１ボックスタイプの前記１つまたは複数のインスタンスの各々の位置および向きを決定する段階を含む、特定する段階と、
対応する前記位置および前記向きを用いて、前記第１ボックスタイプの前記１つまたは複数のインスタンスの各々を取り出す段階と
を更に備える、請求項１から１０の何れか一項に記載のコンピュータ実装方法。
【請求項１２】
前記第１ボックスの前記表面の前記表現を記憶する段階と、
画像取込デバイスを用いて異なる積荷パレットの画像を取り込む段階と、
前記画像を用いて前記異なる積荷パレットの表面の表現を生成する段階と、
前記異なる積荷パレットの前記表面の前記表現と前記第１ボックスの前記表面の記憶された前記表現とを比較することにより、前記第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスを特定する段階であって、前記第１ボックスタイプの前記１つまたは複数のインスタンスの各々の位置および向きを決定する段階を含む、特定する段階と、
前記ロボットアームと前記１つまたは複数のインスタンスの各々の対応する前記位置および前記向きとを用いて、前記第１ボックスタイプの各インスタンスを取り出す段階と
を更に備える、請求項１から１１の何れか一項に記載のコンピュータ実装方法。
【請求項１３】
コンピューティングデバイス、ロボットアーム、ロボット制御システムおよび画像取込デバイスを備えるシステムであって、前記コンピューティングデバイスは、
前記画像取込デバイスを用いて荷積みパレットの第１画像を取り込むことであって、前記荷積みパレットは、そこに積み重ねられた複数のボックスを有する、取り込むことと、
前記第１画像を用いて、前記荷積みパレットの表面の第１表現を生成することと、
前記ロボット制御システムを介して、前記ロボットアームにより前記荷積みパレットの前記表面のコーナーにある第１ボックスをプログラム可能な量動かすことと、
前記画像取込デバイスを用いて前記荷積みパレットの第２画像を取り込むことであって、前記第２画像は、前記ロボットアームにより動かされる前記第１ボックスを含む、取り込むことと、
前記第２画像を用いて前記荷積みパレットの前記表面の第２表現を生成することと、
前記ロボット制御システムを介して、前記ロボットアームにより前記第１ボックスを元に戻すことと、
前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理して、前記第１ボックスの上面の表現を生成することと、
前記第１ボックスの前記表面の前記表現を用いて、前記ロボット制御システムを介して、前記ロボットアームを前記第１ボックスに対して位置決めすることと、
前記ロボット制御システムを介して、前記ロボットアームにより前記荷積みパレットから前記第１ボックスを動かすことと
を行うよう構成される、システム。
【請求項１４】
前記コンピューティングデバイスは、前記荷積みパレットの前記表面の前記第１表現と前記第２表現との差異を決定すること、および、前記差異を用いて前記第１ボックスの前記表面のサイズおよび位置を決定することにより、前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理するよう構成される、請求項１３に記載のシステム。
【請求項１５】
前記第２画像は、前記第１ボックスの前記表面の一部を不明瞭にする前記ロボットアームの表現を含んでおり、前記コンピューティングデバイスは、前記荷積みパレットの前記表面の前記第１表現および前記第２表現の両方からのデータを用いて前記第１ボックスの前記表面の表現を生成することにより、前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理して前記第１ボックスの前記表面の前記表現を生成するよう構成される、請求項１３または１４に記載のシステム。
【請求項１６】
前記コンピューティングデバイスは更に、前記荷積みパレットの前記ボックスの最小限のボックスサイズを表す入力を受信するよう構成され、前記コンピューティングデバイスは、前記最小限のボックスサイズを用いることにより、前記第１ボックスの前記表面の前記表現を用いて、前記ロボットアームを前記第１ボックスに対して位置決めするよう構成される、請求項１３から１５の何れか一項に記載のシステム。
【請求項１７】
前記コンピューティングデバイスは更に、前記荷積みパレットの前記ボックスの最大限のボックスサイズを表す入力を受信するよう構成され、前記コンピューティングデバイスは、前記ロボットアームを用いて（１）少なくとも、前記最大限のボックスサイズと関連付けられる高さだけ、前記荷積みパレットの上面の上方に前記第１ボックスを持ち上げること、または（２）少なくとも、前記最大限のボックスサイズと関連付けられる距離だけ、前記荷積みパレットの側面から前記第１ボックスを遠ざけることにより、前記荷積みパレットから前記第１ボックスを動かすよう構成される、請求項１３から１６の何れか一項に記載のシステム。
【請求項１８】
前記コンピューティングデバイスは、前記荷積みパレットの前記ボックスの数、サイズ、向きおよび位置を先験的に認識することなく、前記ロボットアームを用いて前記荷積みパレットから前記第１ボックスを動かすよう構成される、請求項１３から１５の何れか一項に記載のシステム。
【請求項１９】
前記コンピューティングデバイスは更に、前記ロボットアームにより対応する複数の位置に保持された基準点の複数の画像を用いて、前記画像取込デバイスの位置を決定するよう構成される、請求項１３から１８の何れか一項に記載のシステム。
【請求項２０】
前記コンピューティングデバイスは更に、空のパレットの基準点の画像を用いて、前記荷積みパレットの位置を決定するよう構成される、請求項１３から１９の何れか一項に記載のシステム。
【請求項２１】
前記コンピューティングデバイスは更に、前記ボックスの総数よりも少ない数のボックスに対して、前記取り込むことと、生成することと、持ち上げることと、取り込むことと、生成することと、離すことと、処理することとを行いながらも、前記ロボットアームを用いて前記ボックスの全てを前記荷積みパレットから降ろすよう構成される、請求項１３から２０の何れか一項に記載のシステム。
【請求項２２】
前記コンピューティングデバイスは更に（１）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットに対して前記プログラム可能な量持ち上げること、（２）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットに対して横方向に動かすこと、および（３）前記ロボットアームを用いて、前記第１ボックスを前記荷積みパレットの前記表面に対して傾けることのうち１つにより前記第１ボックスを動かすよう構成される、請求項１３から２１の何れか一項に記載のシステム。
【請求項２３】
前記コンピューティングデバイスは更に、
前記第１ボックスの前記表面の前記表現を記憶することと、
前記画像取込デバイスを用いて前記荷積みパレットの第３画像を取り込むことであって、前記第３画像は、前記第１ボックスを含まない、取り込むことと、
前記第３画像を用いて、前記荷積みパレットの前記表面の第３表現を生成することと、
前記荷積みパレットの前記表面の前記第３表現と前記第１ボックスの前記表面の記憶された前記表現とを比較することにより、前記第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスを特定することであって、前記第１ボックスタイプの前記１つまたは複数のインスタンスの各々の位置および向きを決定することを含む、特定することと、
前記ロボットアームと前記１つまたは複数のインスタンスの各々の対応する前記位置および前記向きとを用いて、前記第１ボックスタイプの各インスタンスを取り出すことと
を行うよう構成される、請求項１３から２２の何れか一項に記載のシステム。
【請求項２４】
前記コンピューティングデバイスは更に、
前記第１ボックスの前記表面の前記表現を記憶することと、
前記画像取込デバイスを用いて異なる積荷パレットの画像を取り込むことと、
前記画像を用いて前記異なる積荷パレットの表面の表現を生成することと、
前記異なる積荷パレットの前記表面の前記表現と前記第１ボックスの前記表面の記憶された前記表現とを比較することにより、前記第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスを特定することであって、前記第１ボックスタイプの前記１つまたは複数のインスタンスの各々の位置および向きを決定することを含む、特定することと、
前記ロボットアームと前記１つまたは複数のインスタンスの各々の対応する前記位置および前記向きとを用いて、前記第１ボックスタイプの各インスタンスを取り出すことと
を行うよう構成される、請求項１３から２３の何れか一項に記載のシステム。
【請求項２５】
１つまたは複数のコンピューティングデバイスに、
荷積みパレットの第１画像を取り込む手順であって、前記荷積みパレットは、そこに積み重ねられた複数のボックスを有する、取り込む手順と、
前記第１画像を用いて前記荷積みパレットの表面の第１表現を生成する手順と、
ロボットアームを用いて、前記荷積みパレットの前記表面のコーナーにある第１ボックスをプログラム可能な量動かす手順と、
前記ロボットアームにより動かされた前記第１ボックスを含む、前記荷積みパレットの第２画像を取り込む手順と、
前記第２画像を用いて前記荷積みパレットの前記表面の第２表現を生成する手順と、
前記ロボットアームを用いて前記第１ボックスを元に戻す手順と、
前記荷積みパレットの前記表面の前記第１表現および前記第２表現を処理して、前記第１ボックスの表面の表現を生成する手順と、
前記第１ボックスの前記表面の前記表現を用いて、前記ロボットアームを前記第１ボックスに対して位置決めする手順と、
前記ロボットアームを用いて前記荷積みパレットから前記第１ボックスを動かす手順と
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は２０１６年２月２６日に出願されたＬｏｃａｔｉｎｇ，  Ｓｅｐａｒａｔｉｎｇ，  ａｎｄ  Ｐｉｃｋｉｎｇ  Ｂｏｘｅｓ  Ｗｉｔｈ  ａ  Ｓｅｎｓｏｒ−Ｇｕｉｄｅｄ  Ｒｏｂｏｔの米国仮特許出願第６２／３００，４０３号（代理人整理番号ＫＮＭＡＰ００１Ｐ）、および２０１７年１月３０日に出願されたＬｏｃａｔｉｎｇ，  Ｓｅｐａｒａｔｉｎｇ，  ａｎｄ  Ｐｉｃｋｉｎｇ  Ｂｏｘｅｓ  Ｗｉｔｈ  ａ  Ｓｅｎｓｏｒ−Ｇｕｉｄｅｄ  Ｒｏｂｏｔの米国特許出願第１５／４１９，８６２（代理人整理番号ＫＮＭＡＰ００１）に基づく優先権を主張するものであり、両出願の開示全体が、全ての目的において参照により本明細書へ組み込まれる。
【背景技術】
【０００２】
工業環境、製造環境、物流環境および商用環境では、取り出される（すなわち、パレットまたは保持容器から動かされる）べき物体の大部分をボックスのような物体が構成する。ボックスのような物体は、通常、少なくとも１つのほぼ平らな取り出し面により特徴付けられる。従来のロボットによるボックスのピッキングでは、構造化パレットに均一に配置された、既知のサイズ、数およびタイプのボックスしか処理することができない。機械的固定具を用いて、幾つかの現行システムは、パレットのボックスを事前に配置して、ロボットが予めプログラムされた既知の位置からボックスを取り出すことができるようにする。ボックスのサイズ、ボックスの数、またはボックスの位置がこの既知の構造から少しでもずれると、システムの故障につながる。コンピュータビジョンに基づく幾つかのシステムでは、境界にだけ滑らかな縁を有するボックスに依存したものであり、広告、印刷された文字、印刷されたロゴ、絵、色、または任意の他の表面模様を有するボックスは処理することができない。係るボックスは、その表側に視覚上の縁、すなわち、ボックスの実際の物理的境界に相当しない縁を有する。コンピュータビジョンに基づく現行のシステムでは、２つの異なるボックス間の物理的な縁と、ボックスの表側にある他の視覚上の縁とを区別することができないので、これらのシステムは、ボックスのサイズおよび位置を誤測することになる。システムがボックスのサイズおよび位置を誤測したにもかかわらずボックスを取り出して動かすと、ボックスがロボットの把持からすり抜けることもあるし、ロボットが、ボックスを１つだけ取り出すべきところで２つまたはそれより多くのボックスを取り出すこともある。
【発明の概要】
【０００３】
様々な環境でロボットによるボックスのピッキングを制御するためのセンサベース技法に関する方法、装置、システムおよびコンピュータプログラム製品が記載されている。
【０００４】
ある特定の種類の実装によると、荷積みパレットの第１画像が取り込まれる。荷積みパレットは、そこに積み重ねられた複数のボックスを有する。第１画像を用いて、荷積みパレットの表面の第１表現が生成される。ロボットアームを用いて、荷積みパレットの表面のコーナーにある第１ボックスがプログラム可能な量動かされる。ロボットアームにより動かされた第１ボックスを含む、荷積みパレットの第２画像が取り込まれる。第２画像を用いて、荷積みパレットの表面の第２表現が生成される。第１ボックスは、ロボットアームを用いて元に戻される。荷積みパレットの表面の第１表現および第２表現は処理されて、第１ボックスの表面の表現を生成する。ロボットアームは、第１ボックスの表面の表現を用いて、第１ボックスに対して位置決めされる。第１ボックスは、ロボットアームを用いて荷積みパレットから動かされる。
【０００５】
ある特定の実装によると、荷積みパレットの表面の第１表現および第２表現を処理することは、荷積みパレットの表面の第１表現と第２表現との差異を決定することと、この差異を用いて第１ボックスの表面のサイズおよび位置を決定することとを含む。
【０００６】
ある特定の実装によると、第２画像は、第１ボックスの表面の一部を不明瞭にするロボットアームの表現を含む。荷積みパレットの表面の第１表現および第２表現を処理して第１ボックスの表面の表現を生成することは、荷積みパレットの表面の第１表現および第２表現の両方からのデータを用いて、第１ボックスの表面の表現を生成することを含む。
【０００７】
ある特定の実装によると、荷積みパレットのボックスの最小限のボックスサイズを表す入力が受信される。第１ボックスの表面の表現を用いてロボットアームを第１ボックスに対して位置決めすることは、最小限のボックスサイズを用いることを含む。
【０００８】
ある特定の実装によると、荷積みパレットのボックスの最大限のボックスサイズを表す入力が受信される。ロボットアームを用いて荷積みパレットから第１ボックスを動かすことは、（１）少なくとも、最大限のボックスサイズと関連付けられる高さだけ、荷積みパレットの上面の上方に第１ボックスを持ち上げること、または（２）少なくとも、最大限のボックスサイズと関連付けられる距離だけ、荷積みパレットの側面から第１ボックスを遠ざけることを含む。
【０００９】
ある特定の実装によると、ロボットアームを用いて荷積みパレットから第１ボックスを動かすことは、荷積みパレットのボックスの数、サイズ、向きおよび位置を先験的に認識することなく達成される。
【００１０】
ある特定の実装によると、第１画像および第２画像は、カメラを用いて取り込まれる。ロボットアームにより対応する複数の位置に保持された基準点の複数の画像を用いて、カメラの位置が決定される。
【００１１】
ある特定の実装によると、空のパレットの基準点の画像を用いて、荷積みパレットの位置が決定される。
【００１２】
ある特定の実装によると、ボックスの総数よりも少ない数のボックスに対して、取り込むことと、生成することと、持ち上げることと、取り込むことと、生成することと、離すことと、処理することとを行いながらも、ボックスの全てが荷積みパレットから降ろされる。
【００１３】
ある特定の実装によると、第１ボックスを動かすことは、（１）ロボットアームを用いて、第１ボックスを荷積みパレットに対してプログラム可能な量持ち上げること、（２）ロボットアームを用いて、第１ボックスを荷積みパレットに対して横方向に動かすこと、および（３）ロボットアームを用いて、第１ボックスを荷積みパレットの表面に対して傾けることのうち１つを含む。
【００１４】
ある特定の実装によると、第１ボックスの表面の表現が記憶される。画像取込デバイスを用いて、荷積みパレットの第３画像が取り込まれる。第３画像は第１ボックスを含まない。第３画像を用いて、荷積みパレットの表面の第３表現が生成される。荷積みパレットの表面の第３表現と第１ボックスの表面の記憶された表現とを比較することにより、第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスが特定される。このことは、第１ボックスタイプのインスタンスの各々の位置および向きを決定することを含む。対応する位置および向きを用いて、第１ボックスタイプのインスタンスの各々が取り出される。
【００１５】
ある特定の実装によると、第１ボックスの表面の表現が記憶される。画像取込デバイスを用いて、異なる積荷パレットの画像が取り込まれる。この画像を用いて、異なる積荷パレットの表面の表現が生成される。異なる積荷パレットの表面の表現と第１ボックスの表面の記憶された表現とを比較することにより、第１ボックスに対応する第１ボックスタイプの１つまたは複数のインスタンスが特定される。このことは、第１ボックスタイプのインスタンスの各々の位置および向きを決定することを含む。ロボットアームとインスタンスの各々の対応する位置および向きとを用いて、第１ボックスタイプの各インスタンスが取り出される。
【００１６】
本明細書の残りの部分および図面を参照することにより、様々な実装の本質および利点の更なる理解が実現され得る。
【図面の簡単な説明】
【００１７】
【図１】本明細書の記載通りに実装されたパレットピッキングシステムの図である。
【図２】パレットのボックスの積み重ねの上部を表したものである。
【図３】特定の実装の動作を示すフローチャートである。
【図４】荷積みパレットの画像を表したものである。
【図５】本明細書の記載通りに実装されたパレットピッキングシステムの図である。
【図６】荷積みパレットの画像を表したものである。
【図７】本明細書の記載通りに実装されたパレットピッキングシステムの図である。
【図８】荷積みパレットの画像を表したものである。
【図９】荷積みパレットの画像を表したものである。
【図１０】ボックスの上部を表したものである。
【図１１】本明細書の記載通りに実装されたパレットピッキングシステムの図である。
【図１２】パレットのボックスの積み重ねの上部を表したものである。
【図１３】パレットのボックスの積み重ねの上部を表したものである。
【図１４】ボックスの上部を表したものである。
【図１５】特定の実装の動作を示すフローチャートである。
【図１６】パレットのボックスの積み重ねの上部を表したものである。
【図１７】モデルデータベースへの入力を示している。
【図１８】モデルデータベースの使用を示している。
【発明を実施するための形態】
【００１８】
ここで、特定の実装を詳しく参照することにする。添付図面にはこれらの実装例が示されている。これらの例は例示目的で記載されており、本開示の範囲を限定することを意図するものではないことに留意されたい。むしろ、記載の実装の代替形態、修正形態および均等物が本開示の範囲内に含まれる。加えて、記載の実装の十分な理解を促すために特定の詳細が提供されてよい。これらの詳細のうち幾つかまたは全てがなくても、本開示の範囲内にある幾つかの実装が実施されてよい。更には、分かりやすくするために、周知の特徴は詳しく記載されていないかも知れない。
【００１９】
本明細書には、ボックスのサイズおよび位置を決定するためにコンピュータビジョンだけを用いて、または、コンピュータビジョンと組み合わされた１回または複数回の「予備的ピッキング」を用いてボックスの位置を特定し、ボックスを非構造パレットから取り出すことができるロボットピッキングシステムの実装が記載されている。様々な実装によると、システムは、コンピュータビジョンと１つまたは複数の視覚センサ（例えば、１つまたは複数のカメラ）からの画像（コンピュータビジョンおよび画像はどちらも２Ｄおよび／または３Ｄ）とを用いてパレットのボックスの最上層の最も外側にあるコーナーを決定する。次にシステムは、ロボットおよび付属グリッパを用いて予備的ピッキングを行い、ロボットおよび付属グリッパは、最も外側にあるボックスをそのコーナーから少しだけ持ち上げて、最上層からボックスを分離する。システムは、再びコンピュータビジョンを用いてパレットおよびボックスの新しい画像を撮り、２つの画像間の差異を算出して、取り出されたボックスのサイズと最上層におけるそのボックスの位置とを決定する。システムはボックスを降ろし、算出されたサイズおよび位置を用いてボックスの中心部を再び持ち上げ、タスクを完了する。
【００２０】
幾つかの実装によると、システムは、ボックスの取り出された面の外見を、その外見のボックスを初めて取り出した時に学習し、次にその後のピッキングにおいて、パレット内で一致した外見を有する他のボックスを特定しようと試みる。これにより、システムは、自らが学習した外見を有するボックスについては予備的ピッキングを省略し、代わりに、既に学習されたボックスの外見からボックスのサイズおよびボックス中心部の位置を決定することが可能となる。
【００２１】
本明細書の記載通りに実装されるシステムにより、ロボットは、グリッパがボックスの把持面の物理的中心部またはその近くを中心とした状態で各ボックスを正確に取り出すことが可能となり、ボックス面が長方形である幾つかの場合には、グリッパがその面の長軸と位置合わせされた状態で各ボックスを正確に取り出すことが可能となる。
【００２２】
ここで図１を参照すると、２つのボックス１２および１４を含む例示的なボックスパレット２０が示されている。ボックスの上面１６および１８は、パレット２０の最上層において互いに同じレベルにある。視覚センサ（例えば、カメラ）２６がパレット２０を上方から観察できるよう置かれている。作業空間には付属グリッパ３０を有するロボット２８も存在する。ロボット制御システム３１と通信しているコンピューティングデバイス２９により、本明細書に記載されているロボットの自動制御が可能となる。コンピューティングデバイス２９はユーザインタフェースも提供しており、このユーザインタフェースにより、人間のオペレータがシステムとインタラクトすることができる。理解されるように、コンピューティングデバイス２９は、様々なコンピューティングデバイスの何れであってもよく、かつ、制御システム３１と直接接続されてもよいし、仲介デバイスおよび／またはネットワークを介して制御システム３１と通信してもよい。
【００２３】
本明細書における特定のコンピューティングパラダイムおよびソフトウェアツールへの何れの言及にかかわらず、様々な実装の基となっているコンピュータプログラム命令は、多種多様なプログラミング言語、ソフトウェアツールおよびデータフォーマットの何れにも対応してよく、任意のタイプの非一時的コンピュータ可読記憶媒体またはメモリデバイスに記憶されてよく、かつ、例えば、クライアント／サーバモデル、ピアツーピアモデルを含む様々なコンピューティングモデルに従って独立型のコンピューティングデバイスで実行されてもよいし、様々な機能が様々な位置で実行または利用され得る分散コンピューティングモデルに従って実行されてもよいことに更に留意されたい。当業者であれば知っている適切な代替形態が利用されてもよい。
【００２４】
特定の実装によると、ロボット２８は、Ｙａｓｋａｗａ  ＭｏｔｏｍａｎのＭＨ８０ロボットまたはＭＨ５Ｆロボットであってよい。しかしながら、特定のロボットへの何れの言及にかかわらず、本明細書に記載されている技法は、移動型ベースに搭載された、１つまたは複数のロボットアームを含む１つまたは複数のアームを有する任意のロボット、様々な数の自由度を有する直列連鎖ロボット、および並列連鎖ロボットに適用され得ることに留意されたい。
【００２５】
特定の視覚センサの配置への何れの言及にかかわらず、システムは、複数のセンサ配置態様に適用され得ることに留意されたい。この配置態様は、センサが固定プラットフォームに搭載されている場合、または、センサがグリッパもしくはロボットアームの他の部分に搭載されている場合、または、センサが移動プラットフォーム（移動型ロボット）に搭載されている場合を含んでおり、移動プラットフォームには、ロボットアームも搭載されている。当業者にとっては他の変形形態も明白であろう。
【００２６】
特定のグリッパへの何れの言及にかかわらず、システムは、これらに限定されるわけではないが、真空グリッパ、静電グリッパ、２本指の平行あごグリッパ、複数の指を有するロボットハンドなどを含む様々なタイプのグリッパを有するロボットに適用され得ることに留意されたい。
【００２７】
特定のパレットの幾何学的形状への何れの言及にかかわらず、システムは、これらに限定されるわけではないが、パレット、大型ボックス、３面ケージ、輸送用容器、ビン、またはトラック、バン、平らな荷台の後部などを含む、任意のタイプの開放型容器または開放型平面から取り出すことにも適用され得ることに留意されたい。
【００２８】
図２はパレット２０の上面図を示している。四角３２は、ボックス１４の表面の印刷された縁に相当する。縁３４は、ボックス１２の上面の中央の継ぎ目に相当する。縁３６は、ボックス１２およびボックス１４の縁に相当する実際の物理的境界に相当する。後ほど記載されるように、特定のボックスの数、サイズ、向きおよび位置の先験的に認識していなくとも、ロボットは、ボックス１２および１４を別々に取り出すことができ、両方のボックスが同時に持ち上げられるのを避けることができる。
【００２９】
ひとたびロボットの電源が入って、その制御システムが正常に起動すると、人間のオペレータが（例えば、コンピューティングデバイス２９を介して）システム較正を誘導する。ここで、システムは、自らがボックスを取り出すことになるパレットの位置と、取り出されたボックスが送られるべき位置（この例ではコンベア（不図示））とを学習する。グリッパに較正基準点が置かれ、ロボットアームは、カメラにより取り込まれる約２０種類の異なるポーズを取るよう動き回され、空間におけるカメラの位置をシステムが決定できるようにする。すなわち、空間におけるロボットアームの位置をシステムが認識しているので、カメラの位置は、様々な既知の位置にある基準点の異なる視点により決定され得る。
【００３０】
パレットの中心部に別の基準点が置かれ、パレットの位置が決定され得るよう画像が撮られる。パレットの大きさ（長さ、幅、高さ）は、オペレータにより指定され、次に基準点の位置と結び付けられる。次に、仮想パレットのレンダリングがスクリーン上で実際のパレットの画像に重ね合わされてオペレータに示され、それらがどの程度揃っているかが分かる。
【００３１】
通常の状況ではコンベアの関連部分がカメラの視野に入っていないかも知れないので、ボックスが送られるべき位置においてグリッパがコンベアに触れようとするまでは、オペレータがロボットアームを手動で駆動することにより、コンベアの位置が決定されてよい。
【００３２】
次に、空のパレットが荷積みパレットと交換され、荷下ろし過程が始まってよい。パレットのボックスの各ピッキングはサイクルと呼ばれる。各サイクルの初めに、システムは、カメラ前方の境界点と荷積みパレットの大きさの境界点とにより画定される凸空間内にロボットアームがあるかどうかを確認する。凸空間内にある場合は、アームが既知の好適な位置にどかされることで、画像の取り込みが可能となる。アームがどかされた状態にあると決定されると、カメラ画像（深さおよびＲＧＢ）および既知のパレット位置から３Ｄ点群が生成される。その後の処理では、荷積みパレットの大きさ以外の視覚情報が無視される。
【００３３】
図１および図２、図３のフローチャート、並びに図４の例示的な画像を参照すると、システムはまず、パレット２０の（３Ｄおよび２Ｄ）画像３８を撮り、コンピュータビジョンを用いて図２に示されているパレット２０の最上面に相当する３Ｄ点群クラスタを包含する凹包から最も外側にあるコーナー（４０、４２、４４、４６）を決定する。（隣り合うボックスの島に相当する）複数のクラスタの場合は、最も外側にあるコーナーが、クラスタごとに算出されるコーナーから決定される。ある特定の実装によると、３Ｄ点群の点がパレットに対するｚ軸でソートされ、最も高い点が選択されることにより、パレット積荷の最上面の表現を含む点群のスライスが生成される。この情報は２次元に投影される。理解されるように、このスライスは、既に取り出された１つまたは複数のボックスを表す幾つかの長方形状および幾つかの空きスペースを含むことがある。次に、スライスの最も外側にあるコーナーが（例えば、空間の中心からの距離でコーナーをソートすることにより）特定される。
【００３４】
次に、システムは、ロボット２８を用いて最も近いコーナー４０までグリッパ３０を動かすことを選択し、グリッパ３０は、ボックス１４とは重なり合わずにボックス１２とだけ重なり合うよう算出されて、ボックス１２と重なり合う。システムは、可能な限り小さな既知のサイズのボックスを用いてボックスをコーナーエリアで把持するのに必要とされる最小限の重複部分を算出する。ある特定の実装によると、ロボットアームのグリッパのコーナーは、グリッパのサイズと（例えば、オペレータにより指定された）最も小さな既知のボックスサイズとを考慮して、これらのコーナーのうち１つの上に位置決めされ、グリッパが一度に１つより多くのボックスを把持しないようにする。これに際して長方形グリッパの向きも考慮され、その向きは、隣り合うボックスにグリッパが最も干渉しない向きが好ましい。グリッパを所定の位置へ動かすには、経路計画、すなわちロボットアームの一連の関節角度動作の計算が必要であり、ロボットアームは、グリッパを、その現在の既知の位置から所望の位置まで何にもぶつけることなく適切に動かす。
【００３５】
図３のフローチャート並びに図５のロボットおよびパレットの斜視図に示されるように、グリッパ３０を用いて、システムは、ボックス１２を垂直上方へ少しだけ持ち上げる。係る動作は、たとえグリッパ３０がボックス１２の中心部を持ち上げていなくても、ボックス１２の移動距離がほんのわずかなので可能となる。この動作は「予備的ピッキング」と呼ばれる。
【００３６】
図３のフローチャートおよび図６の例示的な３Ｄ画像を参照すると、システムは次に、センサ２６を用いてパレットの新しい画像５０を撮る。図６を参照すると、新しい画像５０は、ロボットおよびグリッパ並びに持ち上げられたボックスに対応する画素を含んでおり、ロボットおよびグリッパ並びに持ち上げられたボックスの全てがカメラ２６の視野内にある。動かされたボックスをその新しい位置に含んでいる新しい画像から別の３Ｄ点群が生成される。ボックスが持ち上げられたおおよその量だけ前のスライスよりも上にあるこの新しい３Ｄ点群からスライスが取得される。
【００３７】
図７を参照すると、システムは、取り出されたボックスの上面を中心とする短い縦型の関心領域５２の画像５０を調べる。図８を参照すると、画像３８と画像５０との差異５４は、ロボット２８、グリッパ３０、およびシステムが持ち上げたボックス１２に相当する。
【００３８】
図９を参照すると、システムは、最初の画像３８の平面を差異５４に対応する画素へはめ合わせる。この平面は、図１のボックス１２の上面１６に相当する。システムは、図１０に示されているこの平面を用いて、ボックス１２の上面のサイズを算出する。すなわち、持ち上げられている物体がボックスだと認識していることを考慮して、新しいスライスが２Ｄに投影され、２Ｄ境界が特定され、その境界に最適な長方形がはめ合わされる。
【００３９】
図３のフローチャートおよび図１０の取り出されたボックスの上面図を参照すると、システムは、この差異５４を用いてボックス１２の中心部５６も決定する。理解されるように、ボックスの一部は、グリッパおよびロボットアームで見えなくなっている。しかし、見えなくなっているボックスのコーナーは、前の処理工程で既に表されている。故に、予備的ピッキングで生成されている長方形は、スライスのこの領域も含む。
【００４０】
図３のフローチャートを参照すると、ここでシステムはボックスをパレットに戻し、次にボックスがグリッパにより最もしっかりと固定される向きを用いて（例えば、図１１に示されているように、ボックスの長い方の縁に沿ってグリッパ３０を方向付けながら）ボックス１２の中心部５６を取り出すよう、付属グリッパ３０を有するロボット２８を再配置する。次にアームは（例えば、オペレータにより指定される）最大限のボックスの高さに若干の余裕を持たせた分だけ（最近生成された点群から決定される）パレット積荷の最上面の上方にボックスを持ち上げる。
【００４１】
把持されたボックスをコンベアまで動かすための経路計画は次に、パレット積荷が単にパレット積荷の最も高い既知のコーナーの高さとパレット自体の高さとにより画定された長方形のボックスとして表され得る環境の３Ｄモデルを用いて計算される。このようにして、システムは、これまでサイズの分からなかったボックスのピッキングを正常に完了した。
【００４２】
幾つかの実装と関連付けられる利点は、複数の視覚上の縁を全面に有し得る物理的ボックスを、複数の物理的ボックスと混同することなく分離して取り出す能力である。例えば、図２を参照すると、ボックス１４および１２の上面１８および１６にそれぞれある四角３２および縁３４は、システムがボックス１２の外縁を正確に認識する妨げとはならない。
【００４３】
予備的ピッキングでは、取り出されたボックスが上記のようにその上面で把持されて垂直方向に持ち上げられなくてよいことに留意されたい。すなわち、本開示により可能となる、想定される実装では、ボックスの他の表面を把持することおよび／または把持されたボックスを他の方向へ動かすことにより、予備的ピッキングが実行されてよい。例えば、ボックスの側面が把持されてよく、ボックスが荷積みパレットの外側に引き出されてよい。同様に、システムは、積み重ねの他のボックスに対して水平ではなく、傾いているボックスを取り出すこともできる。より一般的には、本明細書に記載されているボックスの関連表面の認識が可能となる任意のやり方で、荷積みパレットのボックスを把持して動かすことにより、予備的ピッキングが達成されてよい。
【００４４】
図１２は、異なるボックスパレット、すなわちパレット５８の上面図を示している。パレット５８は、例示的なデザインまたはテキストが表側に印刷されたボックスを有する。コーナーのボックス６０は、上記のこの積み重ねにおいて取り出される第１ボックスとなる例示的なボックスである。図１３は、ボックス６０が取り出された後のパレット５８の上面図を示している。図１４は、ボックス６０の取り出し前後におけるパレット５８の上面図の差異６２を示している。差異６２は、ボックス６０のシステムの図を表している。差異６２は、ボックス６０の、フィーチャーベースの外観モデルを算出するために使用される。
【００４５】
すなわち、幾つかの実装によると、予備的ピッキングで学習されたボックスの境界は、最初の画像のボックスを特定して、同じタイプのボックスをその後に認識できるようモデルを生成するために、最初の画像のデータ点と併せて使用される。このモデルは、ボックス上部の複数の表現を含んでおり、スケール、回転、および視野角に対して不変となるやり方で、認識をし易くすることができる。これは、例えば、スケール不変特徴変換（ＳＩＦＴ：Ｓｃａｌｅ  Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）アルゴリズム、高速化ロバスト特徴（ＳＵＲＦ：Ｓｐｅｅｄｅｄ  Ｕｐ  Ｒｏｂｕｓｔ  Ｆｅａｔｕｒｅｓ）アルゴリズム、ＫＡＺＥアルゴリズム、ＡＫＡＺＥアルゴリズム、ＯＲＢアルゴリズムなどの多種多様な特徴抽出ツールおよび特徴記述ツールを用いて行われてよく、関連する認識技法（例えば、ＯｐｅｎＣＶライブラリにおけるものなど）が使用されてよい。これらの表現は次に、パレットの他の同様のボックスを特定し、結果としてボックスごとに予備的ピッキングを実行せざるを得ない状態を避けるために使用されてよい。
【００４６】
パレットの上面の２Ｄ表現の生成と併せて、既知のボックスの記憶されたモデルは、予備的ピッキングを用いることなく取り出され得る既知のタイプのボックスがあるかどうかを決定するために使用される。幾つかの実装によると、この物体認識は、ボックスがパレットから動かされるたびに行われてよい。このことは、取り出すたびにボックスがずれるかも知れない可能性が大きい場合に好都合であり得る。代替的に、認識されたタイプのボックスのうち１つより多くが、または、それら全てでさえ、物体認識工程をやり直すことなくパレットから動かされてよい。加えて、システムは、自らが認識しないボックスの境界に出くわすたびに、新しいモデルをデータベースに加える。このことは、既に記憶されたモデルにボックスが相当するとしても当てはまる。同じボックスタイプのために複数のモデルを生成すると、不都合であるどころか、より効率的でロバストなシステム動作が実現し得る。理解されるように、記憶されたモデルは、同じパレットのボックスだけでなく、その後のパレットのボックスについてもその後のピッキングをサポートするために、今後も潜在的に無期限に使用されてよい。
【００４７】
図１５のフローチャートおよび図１７の図表を参照すると、ボックス６０を表す外観モデル６４は、図１６の網掛けボックスで表されるボックス６０と同様の、パレット５８の他のボックスを検出するために使用される。ここで、これらのボックスは、予備的ピッキングを必要とすることなくロボットにより直接取り出されてよい。図１７に示されるように、外観モデル６４並びにボックス６０の算出されたサイズおよび中心部は、（他のボックスタイプを表すモデルと共に）モデルのデータベース７２に加えられる。図１８に示されるように、データベース７２のモデルは、新しいパレットにおけるボックスの位置および中心部を決定するために使用され、これにより、ロボットは予備的ピッキングを必要とすることなく認識されたボックスを持ち上げることが可能となる。
【００４８】
当業者であれば、本明細書に記載されている実装の形態および詳細の変更が、本開示の範囲から逸脱することなく行われ得ることを理解するであろう。加えて、様々な実装を参照して様々な利点、態様および対象が記載されているが、本開示の範囲は、係る利点、態様および対象への言及により限定されるべきではない。むしろ、本開示の範囲は、添付の特許請求の範囲を参照して決定されるべきである。
【図１】
2019509559.tif 000003
【図２】
2019509559.tif 000004
【図３】
2019509559.tif 000005
【図４】
2019509559.tif 000006
【図５】
2019509559.tif 000007
【図６】
2019509559.tif 000008
【図７】
2019509559.tif 000009
【図８】
2019509559.tif 000010
【図９】
2019509559.tif 000011
【図１０】
2019509559.tif 000012
【図１１】
2019509559.tif 000013
【図１２】
2019509559.tif 000014
【図１３】
2019509559.tif 000015
【図１４】
2019509559.tif 000016
【図１５】
2019509559.tif 000017
【図１６】
2019509559.tif 000018
【図１７】
2019509559.tif 000019
【図１８】
2019509559.tif 000020
【国際調査報告】
2019509559.tif 000021
2019509559.tif 000022