本明細書では、選択されたオブジェクトを把持するためのシステム及び方法を説明する。システムは、単一のオブジェクト又は複数のオブジェクトを独立して又は連動して把持/解放するように動作するよう構成されるマルチグリッパアセンブリを有する輸送ロボットを含むことができる。たとえば、システムは、複数のオブジェクトを同時に又は順次的にピックアップすることができる。システムは、たとえば、マルチグリッパアセンブリの運搬能力、輸送プラン、又はそれらの組み合わせに基づいて、運搬されるオブジェクトを選択することができる。マルチグリッパアセンブリは、オブジェクトのグループ、不規則なオブジェクト、形状/サイズの異なるオブジェクトなどからオブジェクトを確実に把持することができる。たとえば、マルチグリッパアセンブリは、選択されたオブジェクトのみが真空グリップを介して保持されるように空気を吸い込むようそれぞれ構成されるアドレス指定可能真空領域又はバンクを含むことができる。マルチグリッパアセンブリをロボット制御で移動させて、保持されたオブジェクトを所望の位置に輸送することができ、次いでオブジェクトを解放することができる。システムは、把持されたオブジェクトを同時に又は順次的に解放することもできる。このプロセスを繰り返して、異なる位置の間で任意の数のオブジェクトを輸送することができる。
少なくともいくつかの実施形態は、アドレス指定可能ピックアップ領域を持つマルチグリッパアセンブリを有する輸送ロボットを動作させるための方法を対象とする。ピックアップ領域は、独立して真空把持を提供するように構成することができる。対象オブジェクト(複数可)は、キャプチャされた画像データに基づいて識別することができる。ピックアップ領域は空気を吸い込んで、識別された対象オブジェクト(複数可)を把持することができる。いくつかの実施形態では、輸送ロボットは、識別された対象オブジェクトを運搬しているマルチグリッパアセンブリをロボット制御で動かすことができる。
いくつかの実施形態では、ロボット式輸送システムは、ロボット装置、対象オブジェクト検出器、及び真空式グリッパデバイスを含む。真空式グリッパデバイスは、複数のアドレス指定可能領域と、マニホールドアセンブリとを含む。マニホールドアセンブリを、アドレス指定可能領域のそれぞれと、少なくとも1つの真空ラインとに流体的に結合して、各アドレス指定可能領域が、吸引要素のアレイを介して独立して負圧を提供できるようにすることができる。負圧は、ロボット装置が異なる位置の間で真空式グリッパデバイスを移動させている間に、少なくとも1つの対象オブジェクトを真空式グリッパデバイスに対して保持するのに十分なものにすることができる。
輸送ロボットを動作させるための方法は、オブジェクトのグループ(たとえば、オブジェクトのスタック又はパイル)を表す画像データを受信することを含む。受信された画像データに基づいて、グループ内の1つ又は複数の対象オブジェクトが識別される。識別された1つ又は複数の対象オブジェクトに基づいて、アドレス指定可能真空領域が選択される。輸送ロボットは、選択された真空領域に、識別された1つ又は複数の対象オブジェクトを保持及び輸送させるように指令される。輸送ロボットは、独立して真空把持を提供するようにそれぞれが構成される真空領域のアレイを有するマルチグリッパアセンブリを含む。視覚センサデバイスは、真空式グリッパデバイスに隣接する又はそれによって保持される対象オブジェクトを表す画像データをキャプチャすることができる。
以下では、本開示技術の完全な理解を提供するために、多数の具体的な詳細を記載している。他の実施形態では、本明細書で紹介する技術は、これらの具体的な詳細がなくとも実践することができる。他の例では、よく知られている特徴、たとえば、特定の関数又はルーチンについては、本開示を不必要に不明瞭にしないように、詳細には説明していない。本明細書における「実施形態」、「一実施形態」などへの言及は、説明している特定の特徴、構造、材料、又は特性が本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような文言の出現は、必ずしも全てが同一の実施形態を指すものではない。一方、そのような言及は、必ずしも相互に排他的ではない。さらに、特定の特徴、構造、材料、又は特性は、1つ又は複数の実施形態において任意の好適な方法で組み合わせることができる。図面に示す様々な実施形態は説明のための表現にすぎず、必ずしも縮尺通りに描かれていないことを理解されたい。
よく知られており、多くの場合、ロボットシステム及びサブシステムに関連するものであるが、開示した技術のいくつかの重要な特徴を不必要に不明瞭にする可能性のある、構造又は処理を説明する一部の詳細については、明瞭にするために以下の説明には記載していない。また、以下の開示では本技術の異なる態様のいくつかの実施形態を記載しているが、他のいくつかの実施形態は、このセクションに記載したものとは異なる構成又は異なるコンポーネントを有することができる。したがって、開示した技術は、追加の要素を有するか、又は後述の要素の一部を有さない他の実施形態を有することができる。
以下で説明する本開示の多くの実施形態又は態様は、プログラム可能コンピュータ又はコントローラによって実行されるルーチンを含むコンピュータ実行可能命令又はコントローラ実行可能命令の形態をとることができる。当業者であれば、開示した技術が以下に図示及び説明した以外のコンピュータ又はコントローラシステム上で実践できることを理解するであろう。本明細書に記載の技術は、後述のコンピュータ実行可能命令のうちの1つ又は複数を実行するように特別にプログラム、構成、又は構築された専用コンピュータ又はデータプロセッサにおいて具現化することができる。したがって、本明細書で一般的に使用する「コンピュータ」及び「コントローラ」という用語は、任意のデータプロセッサを指し、インターネット機器及びハンドヘルドデバイス(たとえば、パームトップコンピュータ、ウェアラブルコンピュータ、セルラー又はモバイル電話、マルチプロセッサシステム、プロセッサベースの又はプログラム可能なコンシューマ電子機器、ネットワークコンピュータ、ミニコンピュータなど)を含むことができる。これらのコンピュータ及びコントローラによって扱われる情報は、任意の好適な表示媒体、たとえば、液晶ディスプレイ(LCD)に提示することができる。コンピュータ実行可能タスク又はコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェア及びファームウェアの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、又はその媒体上に記憶することができる。命令は、たとえば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体、たとえば、有形非一時的コンピュータ可読媒体を含む任意の好適なメモリデバイスに含めることができる。
「結合される」及び「接続される」という用語、ならびにこれらの派生形は、本明細書ではコンポーネント間の構造関係を記述するために使用し得る。これらの用語が互いに同義語であることは意図していないことを理解されたい。むしろ、特定の実施形態では、「接続される」は、2つ以上の要素が互いに直接接していることを示すために使用し得る。文脈において別途明記していない限り、「結合される」という用語は、2つ以上の要素が互いに直接的にもしくは間接的に(間に他の介在要素を介して)接していること、又は2つ以上の要素が(たとえば、信号の送受信もしくは関数呼び出しなどに関する因果関係のように)互いに協力又は相互作用すること、あるいはその両方を示すために使用し得る。
適切な環境
図1は、ロボットシステム100がオブジェクトを輸送する例示的な環境の図である。ロボットシステム100は、倉庫又は流通/出荷拠点における、荷下ろしユニット102、転置ユニット又はアセンブリ104(「転置アセンブリ104」)、輸送ユニット106、積載ユニット108、又はそれらの組み合わせを含むことができる。ロボットシステム100の各ユニットは、1つ又は複数のタスクを実行するように構成することができる。タスクを順番に組み合わせて目標を達成する動作を行うことができ、たとえば、トラックもしくはバンからオブジェクトを荷下ろしして倉庫に保管する、又は保管場所からオブジェクトを荷下ろしし、トラックもしくはバンに積載して出荷することができる。他の例では、タスクは、オブジェクトをあるコンテナから他のコンテナに移動させることを含むことができる。各ユニットは、アクションのシーケンスを実行して(たとえば、その中の1つ又は複数のコンポーネントを動作させて)タスクを実行するように構成することができる。
いくつかの実施形態では、タスクは、開始位置114からタスク位置116までの対象オブジェクト又はパッケージ112(たとえば、ボックス、ケース、ケージ、パレットなど)の操作(たとえば、移動及び/又は向き変更)を含むことができる。たとえば、荷下ろしユニット102(たとえば、デバンニングロボット)は、対象パッケージ112をキャリア(たとえば、トラック)内の位置からコンベヤベルト上の位置に転置するように構成することができる。転置アセンブリ104(たとえば、パレタイズロボットアセンブリ)は、パッケージ112を輸送ユニット106又はコンベヤ120に積載するように構成することができる。他の例では、転置アセンブリ104は、1つ又は複数の対象パッケージ112をあるコンテナから他のコンテナに転置するように構成することができる。転置アセンブリ104は、オブジェクト(複数可)112をピックアップ及び運搬するようにそれぞれが個々に動作する真空式グリッパ(又は真空領域)を有するロボット式エンドエフェクタ140(「エンドエフェクタ140」)を含むことができる。エンドエフェクタ140がオブジェクトに隣接して載置された場合、対象パッケージ112に隣接するグリッパ(複数可)内に空気を吸い込んで、対象オブジェクトを保持するのに十分な圧力差を生成することができる。オブジェクト表面を損傷することも損なうこともなく、対象オブジェクトをピックアップ及び輸送することができる。一度に運搬されるパッケージ112の数は、ピックアップ位置におけるオブジェクトのスタッキング配置、降下位置における利用可能なスペース、ピックアップ位置及び降下位置の間の輸送経路、最適化ルーチン(たとえば、ユニット利用、ロボット利用などを最適化するためのルーチン)、それらの組み合わせなどに基づいて選択することができる。エンドエフェクタ140は、保持しているオブジェクトに関する情報(たとえば、保持しているオブジェクトの数及び構成)、任意の保持しているオブジェクト間の相対位置などを示す読取値を出力するように構成される1つ又は複数のセンサを有することができる。
撮像システム160は、コンポーネントの動作を監視し、対象オブジェクトを識別し、オブジェクトを追跡し、又は別の方法でタスクを実行するために使用される画像データを提供することができる。画像データを分析して、たとえば、パッケージスタッキング配置(たとえば、段ボール箱、パッキングコンテナなどの、スタックされたパッケージ)、オブジェクトの位置情報、利用可能な輸送経路(たとえば、ピックアップゾーン及び降下ゾーンの間の輸送経路)、把持アセンブリに関する位置情報、又はそれらの組み合わせを評価することができる。コントローラ109は、撮像システム160及びロボットシステム100の他のコンポーネントと通信することができる。コントローラ109は、オブジェクトをピックアップ及び降下するシーケンス(たとえば、安定したコンテナとして図示)、位置情報、オブジェクトをピックアップする順序情報、オブジェクトを降下する順序情報、スタッキングプラン(たとえば、オブジェクトを降下ゾーンにスタッキングするためのプラン)、再スタッキングプラン(たとえば、コンテナの少なくとも一部をピックアップゾーンに再スタッキングするためのプラン)、又はそれらの組み合わせを含む輸送プランを生成することができる。輸送プランによって提供される情報及び命令は、コンテナの配置、コンテナの内容物、又はそれらの組み合わせに基づいて選択することができる。いくつかの実施形態では、コントローラ109は、電子/電気デバイス、たとえば、1つ又は複数の処理ユニット、プロセッサ、記憶デバイス(たとえば、外部又は内部記憶デバイス、メモリなど)、通信デバイス(たとえば、無線又は有線接続用の通信デバイス)、及び入出力デバイス(たとえば、スクリーン、タッチスクリーンディスプレイ、キーボード、キーパッドなど)を含むことができる。例示的な電子/電気デバイス及びコントローラコンポーネントについては、図2及び図6に関連して説明する。
輸送ユニット106は、対象パッケージ112(又は複数の対象パッケージ112)を転置アセンブリ104に関連付けられたエリアから積載ユニット108に関連付けられたエリアに転置することができ、積載ユニット108は、(たとえば、対象パッケージ112を運搬するパレットを移動させることによって)対象パッケージ112を保管場所に転置することができる。いくつかの実施形態では、コントローラ109は、転置アセンブリ104及び輸送ユニット106の動作を調整して、オブジェクトを保管棚に効率的に積載することができる。
ロボットシステム100は、図1に示していない他のユニット、たとえば、マニピュレータ、サービスロボット、モジュール式ロボットなどを含むことができる。たとえば、いくつかの実施形態では、ロボットシステム100は、オブジェクトをケージカート又はパレットからコンベヤ又は他のパレット上に転置するためのデパレタイズユニット、あるコンテナから他のコンテナにオブジェクトを転置するためのコンテナ入替ユニット、オブジェクトを包装するためのパッケージングユニット、オブジェクトをそれらの1つ又は複数の特性に応じてグループ化するためのソーティングユニット、オブジェクトをそれらの1つ又は複数の特性に応じて異なって操作するための(たとえば、ソートする、グループ化する、及び/又は転置するための)ピースピッキングユニット、あるいはそれらの組み合わせを含むことができる。システム100のコンポーネント及びサブシステムは、異なるタイプのエンドエフェクタを含むことができる。たとえば、ロボットシステム100の荷下ろしユニット102、輸送ユニット106、積載ユニット108、及び他のコンポーネントは、ロボット式マルチグリッパアセンブリを含むこともできる。ロボット式グリッパアセンブリの構成は、所望の運搬能力に基づいて選択することができる。例示の目的で、ロボットシステム100は、出荷センターの状況で説明しているが、ロボットシステム100は、他の環境/目的で、たとえば、製造、アセンブリ、パッケージング、ヘルスケア、及び/又は他のタイプの自動化のためにタスクを実行するように構成できることを理解されたい。タスク及び関連するアクションに関する詳細については、以下で説明する。
ロボットシステム
図2は、本技術の1つ又は複数の実施形態によるロボットシステム100のコンポーネントを示すブロック図である。いくつかの実施形態では、たとえば、ロボットシステム100は(たとえば、上述のユニットもしくはアセンブリ及び/又はロボットのうちの1つ又は複数において)、電子/電気デバイス、たとえば、1つ又は複数のプロセッサ202、1つ又は複数の記憶デバイス204、1つ又は複数の通信デバイス206、1つ又は複数の入出力デバイス208、1つ又は複数のアクチュエーションデバイス212、1つ又は複数の輸送モータ214、1つ又は複数のセンサ216、あるいはそれらの組み合わせを含むことができる。様々なデバイスは、有線接続及び/又は無線接続を介して互いに結合することができる。たとえば、ロボットシステム100は、たとえば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バスもしくはPCI−Expressバス、ハイパートランスポートもしくは業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、又は電気電子技術者協会(IEEE)標準1394バス(「Firewire」とも呼ばれる)などのバスを含むことができる。また、たとえば、ロボットシステム100は、ブリッジ、アダプタ、コントローラ、又はデバイス間に有線接続を提供するための他の信号関連デバイスを含むことができる。無線接続は、たとえば、セルラー通信プロトコル(たとえば、3G、4G、LTE、5Gなど)、無線ローカルエリアネットワーク(LAN)プロトコル(たとえば、ワイヤレスフィディリティ(WIFI))、ピアツーピアもしくはデバイスツーデバイス通信プロトコル(たとえば、Bluetooth、近距離無線通信(NFC)など)、モノのインターネット(IoT)プロトコル(たとえば、NB−IoT、Zigbee、Z−wave、LTE−Mなど)、及び/又は他の無線通信プロトコルに基づくことができる。
プロセッサ202は、記憶デバイス204(たとえば、コンピュータメモリ)に記憶された命令(たとえばソフトウェア命令)を実行するように構成されるデータプロセッサ(たとえば、中央処理装置(CPU)、専用コンピュータ、及び/又はオンボードサーバ)を含むことができる。プロセッサ202は、プログラム命令を実行して、他のデバイスを制御する/それとインターフェースをとることによって、ロボットシステム100にアクション、タスク、及び/又は動作を実行させることができる。
記憶デバイス204は、プログラム命令(たとえば、ソフトウェア)が記憶された非一時的コンピュータ可読媒体を含むことができる。記憶デバイス204のいくつかの例は、揮発性メモリ(たとえば、キャッシュ及び/又はランダムアクセスメモリ(RAM))、及び/又は不揮発性メモリ(たとえば、フラッシュメモリ及び/又は磁気ディスクドライブ)を含むことができる。記憶デバイス204の他の例は、ポータブルメモリドライブ及び/又はクラウドストレージデバイスを含むことができる。
いくつかの実施形態では、記憶デバイス204を使用して、さらにマスターデータ、処理結果及び/又は所定のデータ/閾値を記憶し、これらへのアクセスを提供することができる。たとえば、記憶デバイス204は、ロボットシステム100によって操作され得るオブジェクト(たとえば、ボックス、ケース、コンテナ、及び/又は製品)の説明を含むマスターデータを記憶することができる。1つ又は複数の実施形態では、マスターデータは、ロボットシステム100によって操作されると想定されるオブジェクトの寸法、形状(たとえば、可能性のある姿勢のテンプレート、及び/又は異なる姿勢のオブジェクトを認識するためのコンピュータ生成モデル)、質量/重量情報、色彩設計、画像、識別情報(たとえば、バーコード、クイックレスポンス(QR)コード(登録商標)、ロゴなど、及び/又はそれらの想定位置)、想定質量又は重量、あるいはそれらの組み合わせを含むことができる。いくつかの実施形態では、マスターデータは、オブジェクトに関する操作関連情報、たとえば、各オブジェクトの重心位置、1つ又は複数のアクション/操作に対応する想定センサ測定値(たとえば、力、トルク、圧力、及び/又は接触の測定値)、あるいはそれらの組み合わせを含むことができる。ロボットシステムは、圧力レベル(たとえば、真空レベル、吸引レベルなど)、把持/ピックアップエリア(たとえば、アクティブ化される真空式グリッパのエリア又はバンク)、及び転置ロボットを制御するための他の記憶されたマスターデータを調べることができる。記憶デバイス204は、オブジェクト追跡データを記憶することもできる。いくつかの実施形態では、オブジェクト追跡データは、スキャン済み又は操作済みオブジェクトのログを含むことができる。いくつかの実施形態では、オブジェクト追跡データは、1つ又は複数の場所(たとえば、指定されたピックアップ位置もしくは降下位置及び/又はコンベヤベルト)におけるオブジェクトの画像データ(たとえば、写真、点群、ライブビデオフィードなど)を含むことができる。いくつかの実施形態では、オブジェクト追跡データは、1つ又は複数の場所におけるオブジェクトの位置及び/又は向きを含むことができる。
通信デバイス206は、ネットワークを介して外部又は遠隔のデバイスと通信するように構成される回路を含むことができる。たとえば、通信デバイス206は、受信器、送信器、変調器/復調器(モデム)、信号検出器、信号符号化器/復号器、コネクタポート、ネットワークカードなどを含むことができる。通信デバイス206は、1つ又は複数の通信プロトコル(たとえば、インターネットプロトコロル(IP)、無線通信プロトコルなど)に従って電気信号を送信、受信、及び/又は処理するように構成することができる。いくつかの実施形態では、ロボットシステム100は通信デバイス206を使用して、ロボットシステム100のユニット間で情報を交換する、及び/又はロボットシステム100の外部のシステム又はデバイスと情報(たとえば、報告、データ収集、分析、及び/又はトラブルシューティング用)を交換することができる。
入出力デバイス208は、人間のオペレータとの間で情報を伝達及び/又は受信するように構成されるユーザインターフェースデバイスを含むことができる。たとえば、入出力デバイス208は、情報を人間のオペレータに伝達するためのディスプレイ210及び/又は他の出力デバイス(たとえば、スピーカー、ハプティックス回路、又は触覚フィードバックデバイスなど)を含むことができる。また、入出力デバイス208は、制御デバイス又は受信デバイス、たとえば、キーボード、マウス、タッチスクリーン、マイクロフォン、ユーザインターフェース(UI)センサ(たとえば、モーションコマンドを受信するためのカメラ)、ウェアラブル入力デバイスなどを含むことができる。いくつかの実施形態では、ロボットシステム100は、入出力デバイス208を使用して、アクション、タスク、動作、又はそれらの組み合わせを実行する際に人間のオペレータと対話することができる。
いくつかの実施形態では、コントローラ(たとえば、図1のコントローラ109)は、プロセッサ202、記憶デバイス204、通信デバイス206、及び/又は入出力デバイス208を含むことができる。コントローラは、スタンドアロンコンポーネント又はユニット/アセンブリの一部とすることができる。たとえば、システム100の各荷下ろしユニット、転置アセンブリ、輸送ユニット、及び積載ユニットは、1つ又は複数のコントローラを含むことができる。いくつかの実施形態では、単一のコントローラが、複数のユニット又はスタンドアロンコンポーネントを制御することができる。
ロボットシステム100は、動き(たとえば、回転変位及び/又は並進変位)のために関節において接続された物理的な部材又は構造部材(たとえば、ロボット式マニピュレータアーム)を含むことができる。構造部材及び関節は、ロボットシステム100の用途/動作に応じて1つ又は複数のタスク(たとえば、把持、回転、接合など)を実行するように構成されるエンドエフェクタ(たとえば、グリッパ)を操作するように構成される運動連鎖を形成することができる。ロボットシステム100は、対応する関節まわりで又はその位置で構造部材を駆動又は操作する(たとえば、変位させる及び/又は向き変更する)ように構成されるアクチュエーションデバイス212(たとえば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシを場所から場所へと輸送するように構成される輸送モータ214を含むことができる。たとえば、アクチュエーションデバイス212及び輸送モータは、ロボットアーム、リニアスライド、又は他のロボットコンポーネントに接続され得るか又はそれらの一部である。
センサ216は、たとえば、構造部材を操作するための、及び/又はロボットユニットを輸送するためのタスクを実施するために使用される情報を取得するように構成することができる。センサ216は、ロボットシステム100の1つ又は複数の物理特性(たとえば、1つ又は複数の構造部材/それらの関節の状態、状況、及び/又は位置)、及び/又は周辺環境の1つ又は複数の物理特性を検出又は測定するように構成されるデバイスを含むことができる。センサ216のいくつかの例は、接触センサ、近接センサ、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、トルクセンサ、位置エンコーダ、圧力センサ、真空センサなどを含むことができる。
いくつかの実施形態では、たとえば、センサ216は、周辺環境を検出するように構成される1つ又は複数の撮像デバイス222(たとえば、2次元及び/又は3次元撮像デバイス)を含むことができる。撮像デバイスは、カメラ(視覚及び/又は赤外線カメラを含む)、ライダーデバイス、レーダーデバイス、及び/又は他の距離測定もしくは検出デバイスを含むことができる。撮像デバイス222は、マシン/コンピュータビジョン(たとえば、自動検査、ロボット案内、又は他のロボットアプリケーション用)の実装に使用される、デジタル画像及び/又は点群などの、検出された環境の表現を生成することができる。
ここで図1及び図2を参照すると、ロボットシステム100は(たとえば、プロセッサ202を介して)、画像データ及び/又は点群を処理して、図1の対象パッケージ112、図1の開始位置114、図1のタスク位置116、図1の対象パッケージ112の姿勢、又はそれらの組み合わせを識別することができる。ロボットシステム100は画像データを使用して、オブジェクトにアクセスし、それをピックアップする方法を決定することができる。オブジェクトの画像を分析して、隣接するオブジェクトもまたグリッパアセンブリに近接し得るとしても、対象オブジェクトを把持するように真空式グリッパアセンブリを位置決めするためのピックアッププランを決定することができる。オンボードセンサ216(たとえば、ライダーデバイス)からの撮像出力、及びリモートデバイス(たとえば、図1の撮像システム160)からの画像データは、単独で又は組み合わせて利用することができる。ロボットシステム100は(たとえば、様々なユニットを介して)、指定エリア(たとえば、トラック内、コンテナ内、又はコンベヤベルト上のオブジェクトのピックアップ位置)の画像を撮影及び分析して、対象パッケージ112及びその開始位置114を識別することができる。同様に、ロボットシステム100は、他の指定エリア(たとえば、オブジェクトをコンベヤ上に載置するための降下位置、オブジェクトをコンテナ内に載置するための位置、又はスタッキング目的のパレット上の位置)の画像を撮影及び分析して、タスク位置116を識別することができる。
また、たとえば、図2のセンサ216は、ロボットシステム100の構造部材(たとえば、ロボットアーム及び/又はエンドエフェクタ)及び/又はロボットシステム100の対応する関節の位置を検出するように構成される図2の位置センサ224(たとえば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサ224を使用して、タスクの実行中の構造部材及び/又は関節の位置及び/又は向きを追跡することができる。本明細書で開示する荷下ろしユニット、転置ユニット、輸送ユニット/アセンブリ、及び積載ユニットは、センサ216を含むことができる。
いくつかの実施形態では、センサ216は、複数の物理的な構造又は面の間の直接接触に関連する特性を測定するように構成される接触センサ226(たとえば、力センサ、ひずみゲージ、ピエゾ抵抗/圧電センサ、静電容量センサ、弾性抵抗(elastoresistive)センサ、及び/又は他の触覚センサ)を含むことができる。接触センサ226は、対象パッケージ112に対するエンドエフェクタ(たとえば、グリッパ)の把持に対応する特性を測定することができる。それに応じて、接触センサ226は、物理的な接触に対応する定量化された測定値(たとえば、測定された力、トルク、位置など)、グリッパ及び対象パッケージ112の間の接触又は付着の程度、又は他の接触特性を表す接触測定値を出力することができる。たとえば、接触測定値は、エンドエフェクタによる対象パッケージ112の把持に伴う力に関連する1つ又は複数の力読取値、圧力読取値、又はトルク読取値を含むことができる。いくつかの実施形態では、接触測定値は、(1)真空把持に関連する圧力読取値と、(2)オブジェクト(複数可)の運搬に関連する力読取値(たとえば、モーメント読取値)と、の両方を含むことができる。接触測定値に関する詳細については、以下で説明する。
以下でさらに詳細に説明するように、ロボットシステム100は(たとえば、プロセッサ202を介して)、接触測定値、画像データ、それらの組み合わせなどに基づいて、異なるアクションを実施してタスクを遂行することができる。たとえば、ロボットシステム100は、初期接触測定値が閾値を下回る、たとえば、真空グリップが低い(たとえば、吸引レベルが真空閾値を下回る)、又はそれらの組み合わせの場合に、対象パッケージ112を再把持することができる。また、ロボットシステム100は、1つ又は複数の輸送ルール(たとえば、タスクの実行中に接触度合い又は吸引レベルが閾値を下回る場合)、ならびに接触測定値、画像データ、及び/又は他の読取値もしくはデータに基づいて、対象パッケージ112を意図的に降下する、タスク位置116を調整する、アクションの速度もしくは加速度を調整する、又はそれらの組み合わせを行うことができる。
ロボット式転置アセンブリ
図3に、本技術の1つ又は複数の実施形態による転置アセンブリ104を示す。転置アセンブリ104は、撮像システム160及びロボットアームシステム132を含むことができる。撮像システム160は、デパレタイズ台110を有する対象環境からキャプチャされた画像データを提供することができる。ロボットアームシステム132は、ロボットアームアセンブリ139及びエンドエフェクタ140を含むことができ、エンドエフェクタ140は、視覚センサデバイス143及びマルチグリッパアセンブリ141(「グリッパアセンブリ141」)を含む。ロボットアームアセンブリ139は、ピックアップ環境163に配置されたスタック165内のオブジェクトのグループの上方にエンドエフェクタ140を位置決めすることができる。視覚センサデバイス143は、スタック165内のオブジェクトに接触したり、これらを移動したり、又は取り除いたりすることなく、近くのオブジェクトを検出することができる。
エンドエフェクタ140の底部に対して対象オブジェクトを固定することができる。いくつかの実施形態では、グリッパアセンブリ141は、それぞれが選択的に空気を吸い込んで真空グリップを提供することが可能なアドレス指定可能領域を有することができる。いくつかの動作モードでは、対象オブジェクト(複数可)に近接するアドレス指定可能領域のみが空気を吸い込んで、真空式グリッパデバイスと対象オブジェクト(複数可)との間に圧力差を直接提供する。これにより、グリッパアセンブリ141の他の把持部分が他のパッケージに隣接又は接触していても、選択されたパッケージ(すなわち、対象パッケージ)のみを引っ張るか又は別の方法でグリッパアセンブリ141に対して固定することが可能になる。
図3は、コンベヤ120の上方に位置する単一のオブジェクト又はパッケージ112(「パッケージ112」)を運搬するグリッパアセンブリ141を示している。グリッパアセンブリ141は、パッケージ112をコンベヤベルト120上に解放することができ、ロボットアームシステム132は次いで、荷下ろししたグリッパアセンブリ141を両方のパッケージ112a、112bの真上に位置決めすることによって、パッケージ112a、112bを取得することができる。グリッパアセンブリ141は次いで、真空グリップを介して両方のパッケージ112a、112bを保持することができ、ロボットアームシステム132は、保持しているパッケージ112a、112bをコンベヤ120の真上の位置まで運搬することができる。グリッパアセンブリ141は次いで、パッケージ112a、112bをコンベヤ120上に(たとえば、同時に又は順次的に)解放することができる。このプロセスを任意の回数繰り返して、スタック165からコンベヤ120にオブジェクトを運搬することができる。
視覚センサデバイス143は、グリッパアセンブリ141の下に保持されたパッケージを検出するように構成される1つ又は複数の光センサを含むことができる。視覚センサデバイス143は、グリッパアセンブリ141の側面に位置決めされ、パッケージのピックアップ/降下と干渉しないようにすることができる。いくつかの実施形態では、視覚センサデバイス143をエンドエフェクタ140又はロボットアーム139に移動可能に結合して、視覚センサデバイス143をグリッパアセンブリ141の異なる側面に移動できるようにして、オブジェクトにぶつからないようにしつつ、グリッパアセンブリ141によって保持される1つ又は複数のオブジェクトがある場合に、それらの存在を検出することができる。視覚センサデバイス143の位置、数、及び構成は、グリッパアセンブリ141の構成に基づいて選択することができる。
図3を引き続き参照すると、デパレタイズ台(de−palletizing platform)110は、複数のオブジェクト又はパッケージ112(単数形で、「パッケージ112」)が、スタッキング及び/又はステージングされて輸送の準備が整い得る任意の台、面、及び/又は構造を含むことができる。撮像システム160は、デパレタイズ台110上のパッケージ112の画像データをキャプチャするように構成される1つ又は複数の撮像デバイス161を含むことができる。撮像デバイス161は、ピックアップ環境又は領域163における距離データ、位置データ、ビデオ、静止画、ライダーデータ、レーダーデータ、及び/又はモーションをキャプチャすることができる。「オブジェクト」及び「パッケージ」という用語を本明細書で使用しているが、これらの用語は、たとえば、「ケース」、「ボックス」、「カートン」、又はそれらの任意の組み合わせなどであるがこれらに限定されない、把持し、持ち上げ、輸送し、届けることが可能な他の任意のアイテムを含むことに留意されたい。そのうえ、多角形のボックス(たとえば、長方形のボックス)を本明細書で開示する図面に示しているが、ボックスの形状はそのような形状に限定されず、以下で詳細に説明するように、把持し、持ち上げ、輸送し、届けることが可能な、任意の規則的な又は不規則な形状を含む。
デパレタイズ台110と同様に、受け取り側のコンベヤ120は、さらなるタスク/動作のためにパッケージ112を受け取るように指定される任意の台、面、及び/又は構造を含むことができる。いくつかの実施形態では、受け取り側のコンベヤ120は、さらなる動作(たとえば、ソート及び/又は保管)のために、ある位置(たとえば、解放点)から他の位置にパッケージ112を輸送するためのコンベヤシステムを含むことができる。
図4は、本技術のいくつかの実施形態によるロボットアーム139に結合されたエンドエフェクタ140の正面図である。図5は、図4のエンドエフェクタ140の底面図である。視覚センサデバイス143は、パッケージを検出するように構成される1つ又は複数のセンサ145と、視覚センサデバイス143に対するグリッパアセンブリ141の位置の較正などに使用される較正ボード147と、を含むことができる。いくつかの実施形態では、較正ボード147は、動作環境内のエンドエフェクタ140又はグリッパアセンブリ141の位置、ロボットアーム139の位置、又はそれらの組み合わせを較正又は定義するために使用されるパターン又はデザインを有するプラカードとすることができる。グリッパアセンブリ141は、把持ゾーン125を定義するアドレス指定可能真空ゾーン又は領域117a、117b、117c(総称して「真空領域117」)を含むことができる。1つの真空領域117の説明は、特記のない限り、他の真空領域117にも当てはまる。いくつかの実施形態では、各真空領域117は、エンドエフェクタ140の外部の真空源に接続されたコンポーネントを含む吸引チャネルバンクとすることができる。真空領域117は、オブジェクトを保持できる把持接合部121(図4では1つを識別)を含むことができる。
ここで図4を参照すると、真空領域117aは、空気を吸い込んでパッケージ112を保持することができ、空気の吸い込みを減少又は停止させてパッケージ112を解放することができる。真空領域117b、117c(パッケージを保持しないよう図示)は、独立して空気を吸い込んで(矢印で示す)、パッケージを対応する位置113a、113b(図4に仮想線で示す)に保持することができる。ここで図5を参照すると、真空領域117は、空気を吸い込む吸引要素151(図5では1つを識別)のグループ又はバンクを含むことができる。吸引要素151は、相互に均一/一様に又は不均一に離間させることができ、所望のパターン(たとえば、不規則な又は規則的なパターン)で配置することができる。真空領域117は、同一の又は異なる数、構成、及び/又はパターンの吸引要素151を有することができる。真空領域117の幾何形状に一致するパッケージを運搬するために、真空領域117の各吸引要素151を介して空気を吸い込むことができる。より小さいパッケージを運搬するために、パッケージの幾何形状に一致する吸引要素151のサブセット(たとえば、パッケージの境界又は外周内に位置する吸引要素151)を介して空気を吸い込むことができる。たとえば、真空領域117のうちの1つの吸引要素のサブセット、たとえば、把持される対象面に直接隣接するか又はそれに重なる吸引要素151のみを介して空気を吸い込むことができる。図5に示すように、たとえば、境界119(破線で示す)内の吸引要素151を使用して、パッケージの対応する円形面を把持することができる。
全ての真空領域117がアクティブである場合、エンドエフェクタ140は、把持接合部121のそれぞれ又は底面223全体に沿って、ほぼ一様な把持力を提供することができる。いくつかの実施形態では、底面223はほぼ連続した実質的に途切れない面であり、隣接する真空領域117の吸引要素151間の距離又はピッチは、同一の真空領域117の吸引要素151間のピッチより小さくするか、等しくするか、又は大きくする(たとえば、2倍、3倍、4倍など)ことができる。エンドエフェクタ140は、真空領域117とオブジェクトとの間に真空状態を形成して維持することによって実現されるような引力を介してオブジェクト(複数可)を保持する又は張り付かせるように構成することができる。たとえば、エンドエフェクタ140は、対象オブジェクトの面に接触し、真空領域117と面との間の空間に真空状態を形成/維持するように構成される1つ又は複数の真空領域117を含むことができる。ロボットアーム139を介してエンドエフェクタ140を下げて、対象オブジェクトの面に真空領域117を押し当て、対向する面の間の気体を押し出すか又は別の方法で除去した場合に、真空状態を作成することができる。ロボットアーム139がエンドエフェクタ140を持ち上げる場合、真空領域117内の空間と周辺環境との圧力差によって、対象オブジェクトが真空領域117に付着したままにすることができる。いくつかの実施形態では、エンドエフェクタ140の真空領域117を通る気流速度は、対象オブジェクトをしっかりと把持するのに十分な把持が実現されるように動的に、又は対象オブジェクトと、真空領域117の接触面又は把持面との間の接触面積に基づいて調整することができる。同様に、真空領域117を通る気流速度は、対象オブジェクトをしっかりと把持するのに十分な把持が実現されるように、対象オブジェクトの重量に対応するよう、たとえば、より重いオブジェクトに対して気流を増加させるよう、動的に調整することができる。例示的な吸引要素については、図15に関連して説明する。
図6は、本技術の1つ又は複数の実施形態による転置アセンブリ104の機能ブロック図である。処理ユニット150(PU)は、ロボットアームシステム132の動き及び/又は他のアクションを制御することができる。PU150は、センサ(たとえば、図3の撮像システム160のセンサ161)、視覚センサデバイス143のセンサ145、又はビデオ、静止画、ライダーデータ、レーダーデータ、もしくはそれらの組み合わせを含む画像データを収集することが可能な他のセンサもしくは検出器から画像データを受信することができる。いくつかの実施形態では、画像データは、パッケージ112の表面画像(SI)を示す又は表すことができる。
PU150は、メモリ152、デジタルメモリ記憶デバイス、又は非一時的コンピュータ可読媒体、たとえば、限定はしないが、ランダムアクセスメモリ(RAM)、ディスクドライブ、磁気メモリ、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、ソリッドステートメモリ、セキュアデジタルカード、及び/又はコンパクトフラッシュカードに永久に又は一時的に記憶することができるソフトウェア又はコンピュータ命令コードを実行する任意の電子データ処理ユニットを含むことができる。PU150は、本明細書で具現化する特定の機能のために開発されるアルゴリズムを含むソフトウェア又はコンピュータ命令コードを実行することによって駆動され得る。いくつかの実施形態では、PU150は、本明細書で開示する実施形態向けにカスタマイズされた特定用途向け集積回路(ASIC)であり得る。いくつかの実施形態では、PU150は、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラマブルロジックデバイス(PLD)、プログラマブルゲートアレイ(PGA)、及び信号発生器のうちの1つ又は複数を含むことができるが、本明細書における実施形態では、「プロセッサ」という用語はそのような例示的な処理ユニットに限定されず、その意味は狭く解釈されることを意図していない。たとえば、PU150は2つ以上の電子データ処理ユニットを含むこともできる。いくつかの実施形態では、PU150は、ロボットアームシステム130、エンドエフェクタ140、及び/又は撮像システム160を含むがこれらに限定されないロボットシステム100の他の任意のシステムによって、又はそれらと共に使用されるプロセッサ(複数可)とすることができる。図6のPU150及び図2のプロセッサ202は、同一のコンポーネント又は異なるコンポーネントとすることができる。
PU150は、入力データの受信を容易にするために、システム及び/又はソースに(たとえば、ワイヤ、バス、及び/又は無線接続を介して)電子的に結合され得る。いくつかの実施形態では、動作可能に結合されることは、電子的に結合されることと置き換え可能であるとみなされ得る。直接接続が行われる必要はなく、代わりに、入力データのそのような受信及び出力データの提供は、バスを介して、無線ネットワークを介して、あるいはPU150により物理的又は仮想的なコンピュータポートを介して受信及び/又は送信される信号として、行うことができる。PU150は、本明細書で説明する方法を実行するようにプログラム又は構成され得る。いくつかの実施形態では、PU150は、撮像システム160、エンドエフェクタ140などを含むがこれらに限定されない様々なシステム及び/又はユニットからデータを受信するようにプログラム又は構成され得る。いくつかの実施形態では、PU150は、出力データを様々なシステム及び/又はユニットに提供するようにプログラム又は構成され得る。
撮像システム160は、パッケージ(たとえば、図3のデパレタイズ台110上に配置されたパッケージ112)を表す画像データをキャプチャするように構成される1つ又は複数のセンサ161を含むことができる。いくつかの実施形態では、画像データは、パッケージの登録ステータスの判定がそこから行われ得る、1つ又は複数のパッケージの面に見えている視覚的デザイン及び/又はマーキングを表すことができる。いくつかの実施形態では、センサ161は、対象とする(たとえば、可視及び/又は赤外)電磁スペクトル帯域幅内で機能するように構成され、対応するスペクトル内の光/エネルギーを検出するために使用されるカメラである。いくつかのカメラの実施形態では、画像データは、1つ又は複数の3次元(3−D)カメラ及び/又は1つ又は複数の2次元(2−D)カメラからキャプチャされる点群を形成するデータ点のセット、深度マップ、又はそれらの組み合わせである。これらのカメラから、撮像システム160と、パッケージ112の1つ又は複数の(たとえば、撮像システム160の視線に対する)露出面との間の距離又は深度が求められ得る。いくつかの実施形態では、画像認識アルゴリズム(複数可)、たとえば、コンテキストに応じた画像分類アルゴリズム(複数可)及び/又はエッジ検出アルゴリズム(複数可)を使用して、距離又は深度を求めることができる。距離/深度値は、求められると、ロボットアームシステムを介してパッケージを操作するために使用され得る。たとえば、PU150及び/又はロボットアームシステムは、パッケージが持ち上げられる及び/又は把持され得る位置を計算するために距離/深度値を使用することができる。本明細書に記載のデータ、たとえば、画像データは、任意のアナログ又はデジタル信号を、離散又は連続のいずれでも含むことができ、これは情報を含むか又は情報を示すことができることに留意されたい。
撮像システム160は、動作情報(たとえば、ステータス情報、設定など)、センサ162によってキャプチャされたパッケージ(複数可)112の画像、又は以下で詳細に説明するロボットシステム100の1人又は複数人のオペレータによって見られ得る他の情報/出力を提示するように構成される少なくとも1つの表示ユニット164を含むことができる。加えて、表示ユニット164は、対象パッケージ、非対象パッケージ、登録済みパッケージ、及び/又はパッケージの未登録インスタンスを表すシンボロジーなどであるがこれらに限定されない他の情報を提示するように構成することができる。
視覚センサデバイス143は、有線及び/又は無線接続を介してPU150と通信することができる。視覚センサ145は、ビデオセンサ、CCDセンサ、ライダーセンサ、レーダーセンサ、距離測定又は検出デバイスなどとすることができる。視覚センサデバイス143からの出力を使用して、マシン/コンピュータビジョン(たとえば、自動検査、ロボット案内、又は他のロボットアプリケーション用)の実装に使用される、デジタル画像及び/又は点群などの、パッケージ(複数可)の表現を生成することができる。視覚センサデバイス143の視野角(たとえば、30度、90度、120度、150度、180度、210度、270度の水平及び/又は垂直FOV)及び射程は、グリッパアセンブリ141の構成に基づいて選択することができる(図4では約90度の例示的な水平FOVを示している)。いくつかの実施形態では、視覚センサ145は、1つ又は複数の光源(たとえば、レーザー、赤外線レーザーなど)及び光検出器を有するライダーセンサである。光検出器は、光源によって発せられ、パッケージの表面によって反射した光を検出することができる。パッケージの存在及び/又はそこまで距離は、検出された光に基づいて決定することができる。いくつかの実施形態では、センサ145は、実質的に全ての真空把持ゾーン(たとえば、図4の真空把持ゾーン125)などのエリアをスキャンすることができる。たとえば、センサ154は、発せられた光を検出ゾーンにわたって偏向するように動く1つ又は複数の偏光器を含むことができる。いくつかの実施形態では、センサ154は、垂直及び/又は水平にスキャンすること、たとえば、10°ライダースキャン、30°ライダースキャン、50°ライダースキャンなどを行うことが可能なスキャニングレーザーベースのライダーセンサである。センサ145の構成、FOV、感度、及び出力は、所望の検出能力に基づいて選択することができる。いくつかの実施形態では、センサ145は、存在/距離検出器(たとえば、レーダーセンサ、ライダーセンサなど)と、1つ又は複数のカメラ、たとえば、3次元又は2次元カメラとの両方を含むことができる。センサとパッケージの1つ又は複数の面との間の距離又は深度は、たとえば、1つ又は複数の画像認識アルゴリズムを使用して決定され得る。表示ユニット147を使用して、画像データを見る、センサステータスを見る、較正ルーチンを実行する、ログ及び/又はレポート、あるいは他の情報又はデータ、たとえば、限定はしないが、パッケージ112の対象、非対象、登録済み、及び/又は未登録インスタンスを表すシンボロジーを見ることができる。
ロボットシステム100を制御するために、PU150はセンサ145及びセンサ161の一方又は両方からの出力を使用することができる。いくつかの実施形態では、センサ161からの画像出力を使用して、オブジェクトを輸送する順序を含む全体的な転置プランを決定する。センサ145からの画像出力ならびにセンサ205(たとえば、力検出器アセンブリ)を使用して、オブジェクトに対してマルチ把持アセンブリを位置決めし、オブジェクトピックアップを確認し、輸送ステップを監視することができる。
図6を引き続き参照すると、RDS170は、複数のパッケージ112の登録レコード172、真空式グリッパのデータ173を記憶するように構成される任意のデータベース及び/又はメモリ記憶デバイス(たとえば、非一時的コンピュータ可読媒体)を含むことができる。たとえば、RDS170は、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、ソリッドステートメモリ、セキュアデジタルカード、コンパクトフラッシュカード、及び/又はデータ記憶サーバもしくはリモート記憶デバイスを含むことができる。
いくつかの実施形態では、登録レコード172はそれぞれ、対応するパッケージ112の物理的な特性又は属性を含むことができる。たとえば、各登録レコード172は、1つ又は複数のテンプレートSI、視覚データ(たとえば、基準レーダーデータ、基準ライダーデータなど)、2−D又は3−Dサイズ測定値、重量、及び/又は重心(CoM)情報を含むことができるが、これらに限定されない。テンプレートSIは、パッケージのデザイン、マーキング、外見、外形/輪郭、又はそれらの組み合わせを含む、パッケージの既知の又は事前に決定された可視特性を表すことができる。2−D又は3−Dサイズ測定値は、既知の/想定されるパッケージの長さ、幅、高さ、又はそれらの組み合わせを含むことができる。
いくつかの実施形態では、RDS170は、以下で開示する実施形態に従って作成される登録レコード172の新たなインスタンス(たとえば、以前は未知のパッケージ、及び/又はパッケージの以前は未知の特徴のもの)を受信するように構成することができる。それに応じて、ロボットシステム100は、RDS170に記憶される登録レコード172の数を増やして、パッケージ112を登録するためのプロセスを自動化することができ、それにより、パッケージ112の未登録インスタンスを少なくして、デパレタイズ動作をより効率的にすることができる。ライブ/動作データを使用してRDS170内の登録レコード172を動的に(たとえば、動作/展開中に)更新することにより、ロボットシステム100は、以前は未知の又は想定外の状況(たとえば、照明条件、未知の向き、及び/又はスタッキングの不一致)、及び/又は新たに遭遇したパッケージを考慮することができるコンピュータ学習プロセスを効率的に実装することができる。それに応じて、ロボットシステム100は、「未知の」状況/パッケージから生じる失敗、関連する人間のオペレータの介入、及び/又は関連するタスクの失敗(たとえば、取り落としたパッケージ及び/又は衝突)を削減することができる。
RDS170は、アドレス指定可能真空領域の数、真空式グリッパデバイス(たとえば、マルチグリッパアセンブリ)の運搬能力、真空プロトコル(たとえば、真空レベル、気流速度など)、あるいはロボットアームシステム130及び/又はエンドエフェクタ140の制御に使用される他のデータを含むが、これらに限定されない特性又は属性を含む真空式グリッパデータ173を含むことができる。オペレータは、ロボットアームシステム130内に設置された真空式グリッパに関する情報を入力することができる。RDS170は次いで、動作させる真空式グリッパデバイスに対応する真空式グリッパデータ173を識別する。いくつかの実施形態では、真空式グリッパデバイス(たとえば、図3のグリッパアセンブリ141)は、ロボットアーム139によって自動的に検出され、RDS170を使用して、検出された真空式グリッパデバイスに関する情報を識別する。識別された情報を使用して、真空式グリッパデバイスの設定を決定することができる。それに応じて、異なる真空式グリッパデバイス又はマルチグリッパアセンブリを設置することができ、ロボットアームシステム130と共に使用される。
エンドエフェクタ
図7は、本技術の1つ又は複数の実施形態によるエンドエフェクタ140の一部分の前方上面等角図である。図8は、図7のエンドエフェクタ140の前方底面等角図である。ここで図7を参照すると、エンドエフェクタ140は、取付インターフェース又はブラケット209(「取付ブラケット209」)と、ブラケット209及びグリッパアセンブリ141に結合された力検出器アセンブリ205と、を含むことができる。流体ライン207は、加圧デバイス、たとえば、真空源221(図8には図示せず)、及びグリッパアセンブリ141に流体的に結合することができる。
視覚センサデバイス143のFOV(可変又は固定FOV)は、グリッパアセンブリ141のほぼ下に向けられて、グリッパアセンブリ141の下で運搬される任意のオブジェクトの検出を提供する。視覚センサデバイス143が、真空領域117(1つを識別)のうちの1つ又は複数の実質的に水平な面、より詳細には、把持接合部121(1つを識別)の把持面の下方になるように、視覚センサデバイス143をエンドエフェクタ140の外周に沿って位置決めすることができる。「実質的に水平」という用語は一般に、水平の±約2度内の、たとえば、水平の±約1度内の、たとえば、水平の±約0.7度内の角度を指す。一般に、エンドエフェクタ140は複数の真空領域117を含み、これらによりロボットシステム100は、真空領域117の単一のインスタンスでは本来把持できないであろう対象オブジェクトを把持できるようになる。しかしながら、真空領域117の単一のインスタンスを有するエンドエフェクタ140に比べてエンドエフェクタ140のサイズが大きくなるために、より大きいエリアが検出センサから見えなくなる。1つの利点として、把持接合部121の水平面の下方に位置する視覚センサデバイス143は、エンドエフェクタ140に取り付けられていないか、又はロボットシステム100の動作環境内の異なる場所に位置する視覚センサデバイス143の他のインスタンスには通常見えないはずの、対象オブジェクトを含むオブジェクトとの接触開始中の把持接合部121を含むFOVを視覚センサデバイス143に提供することができる。したがって、遮られないFOVによって、把持動作中のリアルタイムの撮像センサ情報をロボットシステムに提供することができ、これにより、エンドエフェクタ140の位置及びモーションのリアルタイム又はその場での調整を可能にすることができる。さらなる利点として、把持接合部121の水平面の下方に位置する視覚センサデバイス143と、オブジェクト(たとえば、図3の非対象オブジェクト112a、112b)とが近接していることにより、把持動作中の精度及び正確性が高まり、これにより、オブジェクトの押しつぶしなどによる、エンドエフェクタ140からの、対象オブジェクト112及び対象オブジェクトに隣接する非対象オブジェクト112a、112bへの損傷を保護又は防止することができる。
例示の目的で、視覚センサデバイス143は、エフェクタの幅に沿ったエンドエフェクタ140のコーナーに位置決めすることができるが、視覚センサデバイス143は異なって位置決めできることを理解されたい。たとえば、視覚センサデバイス143は、エンドエフェクタ140の幅又は長さの中心に位置決めすることができる。他の例として、視覚センサデバイス143は、他のコーナー又はエフェクタの長さに沿った他の位置に位置決めすることができる。
真空源221(図7)は、負圧を提供する、真空(部分真空を含む)に引く、もしくは圧力差を生成することが可能な1つ又は複数の加圧デバイス、ポンプ、弁、あるいは他のタイプのデバイスを限定なく含むことができる。いくつかの実施形態では、1つ又は複数のレギュレータ、たとえば、真空源221とグリッパアセンブリ141との間のレギュレータ、又はグリッパアセンブリ141内のレギュレータを用いて気圧を制御することができる。真空源221が真空に引く場合、グリッパアセンブリ141の底224に空気を吸い込むことができる(図8に矢印で示す)。圧力レベルは、運搬されるオブジェクトのサイズ及び重量に基づいて選択することができる。真空レベルが低すぎる場合、グリッパアセンブリ141は、対象オブジェクト(複数可)をピックアップできない場合がある。真空レベルが高すぎる場合、パッケージの外側を損傷する可能性がある(たとえば、真空レベルが高いことによって、外側のビニール袋を有するパッケージが破れる可能性がある)。いくつかの実施形態によれば、真空源221は、おおよそ100mBar、500mBar、1,000mBar、2,000mBar、4,000mBar、6,000mBar、8,000mBarなどの真空レベルを提供することができる。代替的な実施形態では、より高い又はより低い真空レベルが提供される。いくつかの実施形態では、真空レベルは、所望の把持力に基づいて選択することができる。各領域117の真空把持力は、ある真空レベル(たとえば、25%、50%、又は75%の最大真空レベル、すなわち、真空源221の最大真空レベル)において、約50N、100N、150N、200N、又は300N以上にすることができる。これらの把持力は、段ボール箱、ビニール袋、又は他の輸送に適したパッケージをピックアップする場合に実現することができる。同一のオブジェクト又は異なるオブジェクトを輸送する場合を含めて、異なる真空レベルを使用することができる。たとえば、最初にオブジェクトを把持するために、比較的高い真空を提供することができる。パッケージが把持されると、オブジェクトを保持し続けるのに必要な把持力(ひいては真空レベル)を低減することができるので、より低い真空レベルを提供することができる。特定のタスクを実行する場合に、把持真空を増加させて、しっかりとした把持を維持することができる。
力検出器アセンブリ205は、エンドエフェクタ140によって運搬される負荷を示す力を検出するように構成される1つ又は複数のセンサ203(1つを例示)を含むことができる。検出された測定値は、座標系の1つの軸及び/又は複数の軸に沿った直線力測定値、モーメント測定値、圧力測定値、又はそれらの組み合わせを含むことができる。いくつかの実施形態では、センサ203は、最大で3軸の力(たとえば、デカルト座標系のx軸、y軸、及びz軸に沿って検出される力)、及び/又は3軸モーメント(たとえば、デカルト座標系のx軸、y軸、及びz軸まわりで検出されるモーメント)を検出するように構成される6軸力センサを有するコンポーネントを含むF−Tセンサとすることができる。いくつかの実施形態では、センサ203は、内蔵の増幅器及び信号処理用のマイクロコンピュータ、静的及び動的測定を行う能力、及び/又はサンプリング間隔に基づく瞬時の変化を検出する能力、を含むことができる。デカルト座標系を参照するいくつかの実施形態では、1つ又は複数の軸に沿った力測定値(複数可)(すなわち、F(x軸)、F(y軸)、及び/又はF(z軸))、及び/又は1つ又は複数の軸まわりのモーメント測定値(複数可)(すなわち、M(x軸)、M(y軸)、及び/又はM(z軸))が、センサ203を介してキャプチャされ得る。CoM計算アルゴリズムを適用することにより、パッケージの重量、パッケージの位置、及び/又はパッケージの数を特定することができる。たとえば、パッケージの重量は、力測定値(複数可)に応じて計算され得、パッケージのCoMは、力測定値(複数可)及びモーメント測定値(複数可)に応じて計算され得る。いくつかの実施形態では、パッケージの重量は、力測定値(複数可)、視覚センサデバイス143からのパッケージ位置情報、及び/又は把持情報(たとえば、パッケージ(複数可)との封止が実現される位置)に応じて計算される。いくつかの実施形態では、センサ203は、有線及び/又は無線通信を介して処理ユニット(たとえば、図6のPU150)に通信可能に結合することができる。
いくつかの実施形態では、力検出器アセンブリ205及び視覚センサデバイス143の両方からの出力読取値を使用することができる。たとえば、視覚センサデバイス143からの出力に基づいてオブジェクトの相対位置を決定することができる。次いで、力検出器アセンブリ205からの出力を使用して、各オブジェクトに関する情報、たとえば、各オブジェクトの重量/質量を特定することができる。力検出器アセンブリ205は、複数の物理的な構造又は面の間の直接接触に関連する特性を測定するように構成される、接触センサ、圧力センサ、力センサ、ひずみゲージ、ピエゾ抵抗/圧電センサ、静電容量センサ、弾性抵抗センサ、トルクセンサ、直線力センサ、又は他の触覚センサを含むことができる。たとえば、力検出器アセンブリ205は、対象オブジェクトに対するエンドエフェクタの把持に対応する特性を測定するか、又は対象オブジェクトの重量を測定することができる。それに応じて、力検出器アセンブリ205は、グリッパ及び対象オブジェクトの間の接触又は付着の程度に対応する、測定された力又はトルクなどの定量化された度合いを表す接触度合いを出力することができる。たとえば、接触度合いは、エンドエフェクタによって対象オブジェクトに加えられた力に関連する1つ又は複数の力読取値又はトルク読取値を含むことができる。出力は、力検出器アセンブリ205、あるいはエンドエフェクタ140に一体化された又は取り付けられた他の検出器からの出力であってよい。たとえば、力トルクセンサ情報に基づく対象オブジェクトの重量又は重量分布などの接触センサからのセンサ情報を、対象オブジェクトの寸法などの撮像センサ情報と組み合わせて、ロボットシステムが使用することによって、自動登録又は自動化オブジェクト登録システムなどにより、対象オブジェクトを同定することができる。
図9は、本技術の1つ又は複数の実施形態によるグリッパアセンブリ141の分解等角図である。グリッパアセンブリ141は、ハウジング260及び内部アセンブリ263を含む。ハウジング260は内部コンポーネントを囲って保護することができ、力検出器アセンブリ205の少なくとも一部分を受けるように構成される開口270を画定することができる。内部アセンブリ263は、グリッパブラケットアセンブリ261(「ブラケットアセンブリ261」)、マニホールドアセンブリ262、及び複数のグリッパ264a、264b、264c(総称して「グリッパ264」)を含むことができる。ブラケットアセンブリ261は真空式グリッパ264のそれぞれを保持することができ、これらは、図10及び図11に関連して説明するように、マニホールドアセンブリ262を介して流体ライン(たとえば、図7の流体ライン207)に直列又は並列に流体的に結合することができる。いくつかの実施形態では、ブラケットアセンブリ261は、細長い支持体269と、グリッパ264を細長い支持体269に接続するブラケット267(1つを識別)とを含む。グリッパアセンブリ141は、吸引要素、封止部材(たとえば、封止パネル)、及び図13〜図15に関連して説明する他のコンポーネントを含むことができる。
図10及び図11は、それぞれ、本技術の1つ又は複数の実施形態によるグリッパアセンブリのコンポーネントの後方上面等角図及び平面図である。マニホールドアセンブリ262は、それぞれのグリッパ264a、264b、264cに結合されたグリッパマニホールド274a、274b、274c(総称して「マニホールド274」)を含むことができる。たとえば、マニホールド274aは、グリッパ264aに関連する気流を制御する。いくつかの実施形態では、マニホールド274は、図7の真空源221などの加圧源に並列又は直列に接続することができる。他の実施形態では、各マニホールド274は、個々の加圧デバイスに流動的に結合することができる。
マニホールド274は、グリッパ264のうちの1つ、一部、又は全部に真空を分配するように動作させることができる。たとえば、マニホールド274aを開状態にして、空気がグリッパ264aの底を流れるようにすることができる。空気はマニホールド274aを流れて、図7のライン207などのラインを介して真空式グリッパアセンブリから出る。他のマニホールド274b、274cを閉状態にして、マニホールド274b、274cにおける吸引を防ぐことができる。各マニホールド274aは、吸引要素のそれぞれに接続された1つ又は複数のラインを限定なく含むことができる。他の実施形態では、グリッパ264aの吸引要素が内部の真空室に接続される。グリッパマニホールド274は、1つ又は複数のライン又はパッセージ、弁(たとえば、逆止弁、球形弁、三方弁など)、空気圧シリンダ、レギュレータ、オリフィス、センサ、及び/又は流体の流れを制御することが可能な他のコンポーネントを限定なく含むことができる。各マニホールド274を使用して、吸引を均一に又は不均一に吸引要素又は吸引要素のグループに分配して、一様又は非一様な真空把持力を生成することができる。電子線はマニホールド274をコントローラに通信可能に結合して、モジュールのコンポーネント及びそれらのコンポーネントに電力を提供し、それらを制御することができる。一実施形態では、個々のマニホールド274は、共通のインターフェース及びプラグに用いる共通のインターフェース及びプラグを含むことができ、これにより、マニホールド274及びコンポーネントを迅速かつ簡単に追加及び除去して、システム再構成、保守、及び/又は修理を容易にすることが可能になり得る。
グリッパの数、配置、及び構成は、所望の数のアドレス指定可能真空領域に基づいて選択することができる。図12は、本技術の1つ又は複数の実施形態による、図1及び図2の環境及び図3〜図6の転置アセンブリ141での使用に適した真空式グリッパアセンブリ300(ハウジングは図示せず)の内部コンポーネントの等角図である。真空式グリッパアセンブリ300は、略長方形の配置の6つの真空式グリッパ302(1つを識別)を含むことができる。他の実施形態では、グリッパは円形配置、四角形配置、又は他の適切な配置にすることができ、同様の又は異なる構成を有することができる。グリッパは、楕円形状、非多角形形状などを限定なく含む他の形状を有することができる。グリッパは、吸引要素(たとえば、吸引チューブ、吸引カップ、封止部材など)、封止部材、弁板、グリッパ機構、及び把持能力を提供するための他の流体コンポーネントを含むことができる。
1つ又は複数のセンサ、視覚センサデバイス、及び図1〜図11に関連して説明した他のコンポーネントは、真空式グリッパアセンブリ300に組み込むか又はそれと共に使用することができる。吸引要素、封止部材、及び他のコンポーネントについては、図13〜図15に関連して説明する。
真空式グリッパは直列に配列することができる。たとえば、真空式グリッパは、1×3構成で隣り合わせて配列することができ、これにより2つの横の把持位置と、1つの中央の把持位置とが提供される。しかしながら、エンドエフェクタは、互いに異なる構成の異なる数の真空式グリッパ、吸引チャネルバンク、又は真空領域を含むことができることを理解されたい。たとえば、エンドエフェクタは、2×2構成で配置された4つの真空式グリッパ又は吸引チャネルバンクを含むことができる。真空領域は、長さ寸法と同一又は類似の幅寸法を有することで、対称な正方形形状を有することができる。他の例として、エンドエフェクタは、異なる数の真空領域、たとえば、互いに同一の又は異なる長さ寸法及び/又は幅寸法を有する2つの真空領域又は3つ以上の真空領域を含むことができる。さらに他の例では、真空式グリッパは様々な構成で、たとえば、4つの真空領域を有する2×2構成、5つの真空式グリッパを含む1:2:2構成、又は他の幾何学的配置及び/又は構成で配置することができる。
図13に、本技術のいくつかの実施形態による、ロボットシステム(たとえば、図1及び図2のロボットシステム100)での使用に適したマルチグリッパアセンブリ400(「グリッパアセンブリ400」)を示す。図14は、図13のグリッパアセンブリ400の分解図である。グリッパアセンブリ400は、静止位置(たとえば、図3の台110などのデパレタイズ台上の静止位置)からパッケージを把持するように構成される任意のグリッパ又はグリッパアセンブリとすることができる。グリッパアセンブリデバイス400は、グリッパ機構410と、接触又は封止部材412(「封止部材412」)と、を含むことができる。グリッパ機構410は、本体414と、部材412の開口418(図14では1つを識別)を通過するようにそれぞれが構成される複数の吸引要素416(図14では1つを識別)と、を含む。組み立てられると、吸引要素416のそれぞれは、対応する開口418を部分的に又は完全に通って伸びることができる。たとえば、吸引要素416は、封止部材412の第1の側419を通ってその第2の側421に向かって伸びることができる。
図15は、封止部材412及び吸引要素416の部分断面図である。吸引要素416は、真空室及び/又は内部導管430を介して、ライン(たとえば、図14のライン422)と流体連通することができる。弁437(たとえば、逆止弁、安全弁など)は、気流路436に沿って位置決めすることができる。センサ434は、真空レベルを検出するように位置決めすることができ、有線又は無線接続を介して、コントローラ(たとえば、図1のコントローラ109)又は処理ユニット(たとえば、図6の処理ユニット150)と通信することができる。吸引要素416の下端440は、吸引カップ、又はオブジェクトの面との間に所望の封止(たとえば、ほぼ気密の封止又は他の適切な封止)を形成するための他の適切な形状を限定なく含むことができる。下端440がオブジェクトに近接又は接触した場合、(矢印で示すように)吸引要素416のポート/吸気口432(「吸気口432」)へ空気が吸い込まれると、オブジェクトを封止部材412に対して引き寄せることができる。空気は流路426に沿って、吸引要素416の通路433を通って上に流れる。空気は弁437を通って導管430に流れることができる。いくつかの実施形態では、導管430を真空室439に接続することができる。たとえば、吸引要素416の一部又は全部を真空室439に接続することができる。他の実施形態では、異なるグループの吸引要素416を異なる真空室と流体連通することができる。吸引要素416は図示のように波状又は蛇腹の構成を有することができ、それによってその中の気流通路433を収縮させることなく軸方向の圧縮が可能になる。吸引要素416の構成、高さ、及び寸法は、所望の圧縮量に基づいて選択することができる。
封止部材412は、起伏の大きい面を含む、異なる幾何形状を有する面に適合するように変形するよう構成される圧縮性材料で全体的に又は部分的に作ることができる。封止部材412は、独立気泡フォーム(たとえば、フォームラバー)を含むフォームで全体的に又は部分的に作ることができる。封止部材412の材料を多孔質にして、少量の気流(すなわち、空気漏れ)を許容することにより、ビニール袋などのパッケージングを損傷などする可能性のある高い負圧を加えないようにすることができる。
動作フロー
図16は、本開示の1つ又は複数の実施形態によるロボットシステムを動作させるための方法490のフロー図である。一般に、輸送ロボットは、ピックアップ環境の少なくとも一部分を表す画像データを受信することができる。ロボットシステムは、受信した画像データに基づいて対象オブジェクトを識別することができる。ロボットシステムは真空式グリッパアセンブリを使用して、識別された対象オブジェクト(複数可)を保持しておくことができる。図1のロボットシステム100の異なるユニット、アセンブリ、及びサブアセンブリが、方法490を実行することができる。方法490の詳細については、以下で詳細に説明する。
ブロック500において、ロボットシステム100は、環境の少なくとも一部分を表す画像データを受信することができる。たとえば、受信された画像データは、図3のピックアップ環境163におけるスタック165の少なくとも一部分を表すことができる。画像データは、ビデオ、静止画、ライダーデータ、レーダーデータ、バーコードデータ、又はそれらの組み合わせを限定なく含むことができる。いくつかの実施形態では、たとえば、図3のセンサ161はビデオ又は静止画をキャプチャすることができ、これらはコンピュータ又はコントローラ、たとえば、図1及び図6のコントローラ109に(たとえば、有線又は無線接続を介して)送信される。
ブロック502において、コンピュータ109(図1)は、画像データを分析して、オブジェクトのグループ、オブジェクトのスタックなどの中の対象オブジェクトを識別することができる。たとえば、コントローラ109は、受信した画像データ、及びRDS170(図6)によって記憶される表面画像/データに基づいて、個々のオブジェクトを識別することができる。いくつかの実施形態では、降下位置からの情報を使用して、対象オブジェクトを選択する。たとえば、降下位置における利用可能なスペースの量、好ましいスタッキング配置などに基づいて、対象オブジェクトを選択することができる。ユーザはオブジェクトピックアップの順序を決定するための選択基準を入力することができる。いくつかの実施形態では、受信された画像データに基づいて、ピックアップ環境(たとえば、図3のピックアップ環境163)のマッピングを生成することができる。いくつかのマッピングプロトコルでは、エッジ検出アルゴリズムを使用して、オブジェクトのエッジ、面などを識別する。マッピングを分析して、ピックアップ領域のどのオブジェクトが一緒に輸送できるかを決定することができる。いくつかの実施形態では、真空式グリッパにより同時に持ち上げて運搬することが可能なオブジェクトのグループが、対象オブジェクトとして識別される。
図1のロボットシステム100は、ソースオブジェクトから、対象パッケージ又はオブジェクト112を、実行されるタスクの対象として選択することができる。たとえば、ロボットシステム100は、所定のシーケンス、ルールのセット、オブジェクト輪郭のテンプレート、又はそれらの組み合わせに従って、ピックアップされる対象オブジェクトを選択することができる。具体例として、ロボットシステム100は、画像デバイスの既知の場所に対する距離及び位置を表す点群/深度マップに応じて、ソースパッケージのスタックの上に配置されたソースパッケージ112のインスタンスなど、エンドエフェクタ140にアクセス可能なソースパッケージのインスタンスとして、対象パッケージを選択することができる。他の具体例では、ロボットシステム100は、コーナー又はエッジに配置された、エンドエフェクタ140に対して露出しているか又はそれがアクセス可能な2つ以上の面を有するソースパッケージ112のインスタンスとして、対象オブジェクトを選択することができる。さらなる具体例では、ロボットシステム100は、ソースパッケージの他のインスタンスを乱すこともずらすこともなく、又はそれらを最小限に抑えて、所定のパターンに従って、たとえば、基準位置に対して左から右へ、又は手前から奥へ、対象オブジェクトを選択することができる。
ブロック504において、コントローラ109は、対象オブジェクトを把持するための真空式グリッパ又は領域を選択することができる。たとえば、コントローラ109(図1)は、図3に示すパッケージ112を把持するために真空領域117a(図4)を選択することができ、その理由は、パッケージ112(すなわち、対象オブジェクト)の実質的に全体が真空領域117aの真下にあるためである。図4の真空領域117aの吸引要素151の実質的に全て(たとえば、吸引要素151の少なくとも90%、95%、98%)を通じて真空に引かれることができる。
ブロック506において、コントローラ109は、ロボットシステム100を制御するための1つ又は複数のコマンドを生成する。いくつかの動作モードでは、コマンドは、識別又は選択されたアドレス指定可能真空領域において、ロボットシステムに空気を吸い込ませることができる。たとえば、コントローラ109は、1つ又は複数のピックアップコマンドを生成して、真空源(たとえば、図7の真空源221)に、選択された真空レベルで真空を提供させることができる。真空レベルは、対象オブジェクト(複数可)の重量又は質量、実行されるタスクなどに基づいて選択することができる。コマンドをグリッパアセンブリ141に送って、マニホールド262に、選択された領域又はグリッパにおいて吸引を提供するように動作させることができる。視覚センサデバイス143(図7)からのフィードバックを使用して、ピックアップ及び転置プロセスを監視することができる。
ブロック508において、視覚センサデバイス143を使用して、図1のパッケージ112などのソースオブジェクト又は対象オブジェクトを含むオブジェクトに対するエンドエフェクタ140の位置を検証することができる。視覚センサデバイス143を使用して、オブジェクトピックアップの前及び間、オブジェクト輸送中、及び/又はオブジェクト降下の間及び後に、オブジェクトに対するエンドエフェクタ140の相対位置を継続的に又は定期的に監視することができる。視覚センサデバイス143からの出力を使用して、オブジェクトをカウントし(たとえば、対象オブジェクト又はソースオブジェクトの数をカウントし)、あるいは別の方法でオブジェクトを分析し、たとえば、オブジェクトのスタックを分析することもできる。視覚センサデバイス143を使用して、ロボットシステム100をナビゲートするのに使用される環境情報を取得することもできる。
ブロック510において、コントローラ109は、アクチュエーションデバイス(たとえば、アクチュエーションデバイス212)、モータ、サーボ、アクチュエータ、及びロボットアーム139の他のコンポーネントにグリッパアセンブリ141を移動させるためのコマンドを生成する。転置コマンドは、ロボットシステムによって生成され、ロボット式輸送アームが、ロボット制御でグリッパアセンブリ141を移動させて、位置間でオブジェクトを運搬させるようにすることができる。輸送コマンドは、オブジェクトを他のオブジェクトにぶつけることなく、オブジェクトを降下位置に届けるための輸送経路を含む輸送プランに基づいて、生成することができる。視覚センサデバイス143(図7)を使用して、衝突を回避することができる。
方法490は、複数の対象オブジェクトを把持するために使用することができる。エンドエフェクタ140は、ソースパッケージ又はオブジェクトの中から対象パッケージ又はオブジェクトの複数のインスタンスを把持するように構成することができる。たとえば、ロボットシステム100は、エンドエフェクタ140が真空領域117の複数のインスタンスを係合させて、把持動作を実行して、対象オブジェクトの複数のインスタンスを同時に把持する命令を生成することができる。具体例として、エンドエフェクタ140を使用して、対象オブジェクトの複数のインスタンスを個別に、かつ順番に次々に把持する把持動作の命令を実行することができる。たとえば、命令は、真空領域117の1つを使用して、ある姿勢又はある向きの対象オブジェクト112の第1のインスタンスを把持する把持動作を実行し、次いで、必要であれば、エンドエフェクタ140の位置を変更して、真空領域117の第2の又は異なるインスタンスを係合させて、対象オブジェクトの第2のインスタンスを把持すること、を含むことができる。他の具体例では、エンドエフェクタ140を使用して、対象オブジェクトの別々のインスタンスを同時に把持する把持動作のための命令を実行することができる。たとえば、エンドエフェクタ140を位置決めして、対象オブジェクトの2つ以上のインスタンスに同時に接触するようにし、真空領域117の対応するインスタンスのそれぞれを係合させて、対象オブジェクトの複数のインスタンスのそれぞれに把持動作を実行することができる。上記の実施形態では、真空領域117のそれぞれは、必要に応じて、異なる把持動作を実行するように独立して動作させることができる。
図17は、本技術の1つ又は複数の実施形態によるベースプランに従って図1のロボットシステム100を動作させるための方法700のフロー図である。方法700は、図16の方法490に組み込むことができるステップであって、図2のプロセッサ202のうちの1つ又は複数あるいは図6のコントローラ109を用いて、図2の記憶デバイス204のうちの1つ又は複数に記憶された命令を実行することに基づいて実施することができるステップを含む。視覚センサデバイスによってキャプチャされるデータ及びセンサ出力は、以下で詳述する方法700の様々なステップにおいて使用することができる。
ブロック702において、ロボットシステム100は、1つ又は複数の指定エリア、たとえば、ピックアップエリア及び/又は降下エリア(たとえば、ソース降下エリア、目的地降下エリア、及び/又は中継降下エリア)を調べる(たとえば、スキャンする)ことができる。いくつかの実施形態では、ロボットシステム100は、(たとえば、図2のプロセッサ202によって送られるコマンド/プロンプトを介して)図2の撮像デバイス222、図6のセンサ161及び/又は145、あるいは他のセンサのうちの1つ又は複数を使用して、1つ又は複数の指定エリアの撮像結果を生成することができる。撮像結果は、キャプチャされたデジタル画像及び/又は点群、オブジェクト位置データなどを限定なく含むことができる。
ブロック704において、ロボットシステム100は、図1の対象パッケージ112及び関連する位置(たとえば、図1の開始位置114及び/又は図1のタスク位置116)を識別することができる。いくつかの実施形態では、たとえば、ロボットシステム100は(たとえば、プロセッサ202を介して)、パターン認識メカニズム及び/又はルールのセットに従って撮像結果を分析して、オブジェクト輪郭(たとえば、周縁又は周面)を識別することができる。ロボットシステム100はさらに、オブジェクトの各固有のインスタンスに対応するオブジェクト輪郭のグルーピングを(たとえば、所定のルール及び/又は姿勢テンプレートに従って)識別することができる。たとえば、ロボットシステム100は、オブジェクト線にわたる色、明るさ、深度/位置、又はそれらの組み合わせのパターン(たとえば、同一の値又は既知のレート/パターンで変化するもの)に対応するオブジェクト輪郭のグルーピングを識別することができる。また、たとえば、ロボットシステム100は、マスターデータで定義される所定の形状/姿勢テンプレートに従ってオブジェクト輪郭のグルーピングを識別することができる。
ピックアップ位置において認識されたオブジェクトから、ロボットシステム100は、(たとえば、所定のシーケンス、もしくはルールのセット、及び/又はオブジェクト輪郭のテンプレートに従って)1つを対象パッケージ112として選択することができる。たとえば、ロボットシステム100は、センサの既知の場所に対する距離/位置を表す点群などに応じて、対象パッケージ(複数可)112を、一番上に配置されたオブジェクト(複数可)として選択することができる。また、たとえば、ロボットシステム100は、対象パッケージ112を、コーナー/エッジに配置された、撮像結果内で露出している/表示された2つ以上の面を有するオブジェクト(複数可)として選択することができる。利用可能な真空式グリッパ及び/又は領域を使用して、対象パッケージを選択することもできる。さらに、ロボットシステム100は、所定のパターン(たとえば、基準位置に対して左から右へ、手前から奥へ、など)に従って、対象パッケージ112を選択することができる。
いくつかの実施形態では、エンドエフェクタ140は、ソースパッケージの中から対象パッケージ112の複数のインスタンスを把持するように構成することができる。たとえば、ロボットシステム100は、エンドエフェクタ140が真空領域117の複数のインスタンスを係合させて、把持動作を実行して、対象パッケージ112の複数のインスタンスを同時に把持する命令を生成することができる。具体例として、エンドエフェクタ140を使用して、対象パッケージ112の複数のインスタンスを個別に、かつ順番に次々に把持する把持動作の命令を実行することができる。たとえば、命令は、真空領域117の1つを使用して、ある姿勢又はある向きの対象パッケージ112の第1のインスタンスを把持する把持動作を実行すること、次いで、必要であれば、エンドエフェクタ140の位置を変更して、真空領域117の第2の又は異なるインスタンスを係合させて、対象パッケージ112の第2のインスタンスを把持すること、を含むことができる。他の具体例では、エンドエフェクタ140を使用して、対象パッケージ112の別々のインスタンスを同時に把持する把持動作のための命令を実行することができる。たとえば、エンドエフェクタ140を位置決めして、対象パッケージ112の2つ以上のインスタンスに同時に接触するようにし、真空領域117の対応するインスタンスのそれぞれを係合させて、対象パッケージ112の複数のインスタンスのそれぞれに把持動作を実行することができる。上記の実施形態では、真空領域117のそれぞれは、必要に応じて、異なる把持動作を実行するように独立して動作させることができる。
選択された対象パッケージ112について、ロボットシステム100はさらに、撮像結果を処理して、開始位置114及び/又は初期姿勢を特定することができる。たとえば、ロボットシステム100は、複数の所定の姿勢テンプレート(たとえば、オブジェクトの対応する向きに応じたオブジェクト輪郭の異なる可能な配置)から、オブジェクト輪郭のグルーピングと比較して最も低い差分度合いに対応するものを選択することに基づいて、対象パッケージ112の初期姿勢を特定することができる。また、ロボットシステム100は、撮像結果内の対象パッケージ112の位置(たとえば、決定された姿勢の所定の基準点)を、ロボットシステム100によって使用されるグリッド内の位置に変換することによって、開始位置114を特定することができる。ロボットシステム100は、所定の較正マップに従って位置を変換することができる。
いくつかの実施形態では、ロボットシステム100は、降下エリアの撮像結果を処理して、オブジェクト間のオープンスペースを決定することができる。ロボットシステム100は、画像位置を現実世界の位置及び/又はシステムによって使用される座標に変換する所定の較正マップに従ってオブジェクト線をマッピングすることに基づいて、オープンスペースを決定することができる。ロボットシステム100は、オープンスペースを、異なるグルーピング/オブジェクトに属するオブジェクト線(ひいてはオブジェクト面)の間のスペースとして決定することができる。いくつかの実施形態では、ロボットシステム100は、オープンスペースの1つ又は複数の寸法を測定し、測定した寸法を対象パッケージ112の1つ又は複数の寸法(たとえば、マスターデータに記憶されたもの)と比較することに基づいて、対象パッケージ112に適したオープンスペースを決定することができる。ロボットシステム100は、所定のパターン(たとえば、基準位置に対して左から右へ、手前から奥へ、下から上へ、など)に従って、適切な/オープンスペースのうちの1つを、タスク位置116として選択することができる。
いくつかの実施形態では、ロボットシステム100は、撮像結果を処理することなく、又はそれに加えて、タスク位置116を決定することができる。たとえば、ロボットシステム100は、エリアを撮像することなく、所定のシーケンスのアクション及び位置に従って、オブジェクトを載置エリアに載置することができる。追加的には、真空式グリッパアセンブリ141に取り付けられたセンサ(たとえば、視覚センサデバイス143)は、エリアを定期的に撮像するために使用される画像データを出力することができる。追加の画像データに基づいて撮像結果を更新することができる。また、たとえば、ロボットシステム100は、撮像結果を処理して、複数のタスクを実行する(たとえば、スタックの共通のレイヤ/階層に配置されたオブジェクトなどの複数のオブジェクトを転置する)ことができる。
ブロック706において、ロボットシステム100は、対象パッケージ112用のベースプランを計算することができる。たとえば、ロボットシステム100は、図3のロボットシステム132及び/又はエンドエフェクタ(たとえば、図3〜図5のエンドエフェクタ140)を動作させる図2のアクチュエーションデバイス212に対するコマンドもしくは設定又はそれらの組み合わせのシーケンスを計算することに基づいて、ベースモーションプランを計算することができる。いくつかのタスクについて、ロボットシステム100は、対象パッケージ112を開始位置114からタスク位置116に転置するようにロボットシステム132及び/又はエンドエフェクタ140を操作するシーケンス及び設定値を計算することができる。ロボットシステム100は、1つ又は複数の制約、目標、及び/又はルールに従って空間内の経路を計算するように構成されるモーション計画メカニズム(たとえば、処理、関数、数式、アルゴリズム、コンピュータ生成/可読モデル、又はそれらの組み合わせ)を実装することができる。たとえば、ロボットシステム100は、所定のアルゴリズム及び/又は他のグリッドベースの検索を使用して、対象パッケージ112を開始位置114からタスク位置116に移動させるための空間を通る経路を計算することができる。モーション計画メカニズムは、さらなる処理、関数、もしくは数式、及び/又は変換テーブルを使用して、経路をアクチュエーションデバイス212のコマンドもしくは設定又はそれらの組み合わせのシーケンスに変換することができる。モーション計画メカニズムを使用する際に、ロボットシステム100は、ロボットアーム206(図3)及び/又はエンドエフェクタ140(図3)を動作させるシーケンスを計算し、対象パッケージ112に計算した経路をたどらせることができる。視覚センサデバイス143を使用して、任意の障害物を識別し、経路を再計算し、ベースプランを改良することができる。
ブロック708において、ロボットシステム100は、ベースプランの実行を開始することができる。ロボットシステム100は、コマンドもしくは設定又はそれらの組み合わせのシーケンスに従ってアクチュエーションデバイス212を動作させることに基づいて、ベースモーションプランの実行を開始することができる。ロボットシステム100は、ベースモーションプラン内の第1のアクションのセットを実行することができる。たとえば、ロボットシステム100は、ブロック752に示すように対象パッケージ112を把持するために計算した位置及び/又は開始位置114まわりの向きでエンドエフェクタ140を載置するように、アクチュエーションデバイス212を動作させることができる。
ブロック754において、ロボットシステム100は、把持動作の前及び/又は間に取得されたセンサ情報(たとえば、視覚センサデバイス143、センサ216、力検出器アセンブリ205からの情報)、たとえば、対象パッケージ112の重量、対象パッケージ112の重心、真空領域に対する対象パッケージ112の相対位置、又はそれらの組み合わせを使用して、オブジェクトの位置を分析することができる。ロボットシステム100は、エンドエフェクタ140に対象パッケージ112を係合させて把持させるように、アクチュエーションデバイス212及び真空源221(図7)を動作させることができる。視覚センサデバイス143からの画像データ、及び/又は力センサアセンブリ205からのデータを使用して、対象パッケージ112の位置及び数を分析することができる。ブロック755において、視覚センサデバイス143を使用して、対象パッケージ112又は他のオブジェクトに対するエンドエフェクタ140の位置を検証することができる。いくつかの実施形態では、ブロック756に示すように、ロボットシステム100は、エンドエフェクタを所定の距離だけ上昇させることによって、初期リフトを実行することができる。いくつかの実施形態では、ロボットシステム100は、把持アクションの回数を追跡するために使用される反復カウンタ「i」をリセット又は初期化することができる。
ブロック710において、ロボットシステム100は、確立された把持を測定することができる。ロボットシステム100は、図7の力検出器アセンブリ205、視覚センサデバイス143、又は他のセンサ、たとえば、圧力センサ434(図15)からの読取値に基づいて、確立された把持を測定することができる。たとえば、ロボットシステム100は、図3の力検出器アセンブリ205のうちの1つ又は複数を使用して、ロボットアーム139上の1つ又は複数の位置、エンドエフェクタ140上の1つ又は複数の位置、又はそれらの組み合わせにおける力、トルク、圧力、又はそれらの組み合わせを測定することによって、把持特性を決定することができる。いくつかの実施形態では、たとえば、アセンブリ141によって確立された把持について、接触測定値又は力測定値は、対象パッケージ112の面に接触し、その中の真空状態を保持する吸引要素(たとえば、図14の吸引要素416)の数量、位置、又はそれらの組み合わせに対応することができる。追加的又は代替的には、把持特性は、視覚センサデバイス143からの出力に基づいて決定することができる。たとえば、センサ検出器143からの画像データを使用して、オブジェクトが輸送中にエンドエフェクタ140に対して動くか否かを判定することができる。
判定ブロック712において、ロボットシステム100は、測定した把持を閾値(たとえば、初期把持閾値)と比較することができる。たとえば、ロボットシステム100は、接触測定値又は力測定値を所定の閾値と比較することができる。ロボットシステム100はまた、検出器143からの画像データを基準画像データ(たとえば、最初のオブジェクトピックアップ時にキャプチャされた画像データ)と比較して、把持しているオブジェクトが、たとえば、互いに対して、又はグリッパアセンブリ141に対して動いたか否かを判定することができる。それに応じて、ロボットシステム100は、接触/把持が、対象パッケージ(複数可)112の操作(たとえば、持ち上げ、転置、及び/又は向き変更)を継続するのに十分であるか否かを判定することができる。
測定した把持が閾値を満足できない場合、ロボットシステム100は、判定ブロック714に示すように、対象パッケージ(複数可)112の再把持の反復カウントが反復閾値に達したか否かを評価することができる。反復カウントが反復閾値未満である間、ロボットシステム100は、接触測定値又は力測定値が閾値を満たさない(たとえば、下回る)場合に、ベースモーションプランから外れることができる。それに応じて、ブロック720において、ロボットシステム100は、ベースモーションプランに含まれない再把持アクションを実行するように、ロボットアーム139及び/又はエンドエフェクタ140を動作させることができる。たとえば、再把持アクションは、ロボットアーム139に(たとえば、初期リフトを逆転させる際に)エンドエフェクタ140を下げさせる、及び/又はエンドエフェクタ140に対象パッケージ(複数可)112を解放させ、対象パッケージ(複数可)112を再把持させる、アクチュエーションデバイス212に対する所定のコマンドもしくは設定又はそれらの組み合わせのシーケンスを含むことができる。いくつかの実施形態では、所定のシーケンスはさらに、対象オブジェクトを解放した後、それを再把持するか又は真空に引かれるエリアを変える前に、グリッパの位置を調整するようにロボットアーム139を動作させることができる。再把持アクションを実行する際に、ロボットシステム100は、ベースモーションプランの実行を一時停止することができる。再把持アクションを実行した後、ロボットシステム100は、反復カウントをインクリメントすることができる。
再把持オブジェクトした後、ロボットシステム100は、ブロック710に関して上述したように確立された把持を測定し、ブロック712に関して上述したように確立された把持を評価することができる。ロボットシステム100は、反復カウントが反復閾値に達するまで、上述のように対象パッケージ112の再把持を試行することができる。反復カウントが反復閾値に達した場合、ロボットシステム100は、ブロック716に示すように、ベースモーションプランの実行を停止することができる。いくつかの実施形態では、ロボットシステム100は、ブロック718に示すようにオペレータ入力を求めることができる。たとえば、ロボットシステム100は、図2の通信デバイス206及び/又は図2の入出力デバイス208を介してオペレータ通知(たとえば、所定のメッセージ)を生成することができる。いくつかの実施形態では、ロボットシステム100は、ベースモーションプランをキャンセル又は削除するか、対応するタスクの所定のステータス(たとえば、エラーコード)を記録するか、又はそれらの組み合わせを実行することができる。いくつかの実施形態では、ロボットシステム100は、上述のように、ピックアップ/タスクエリアを撮像し(ブロック702)、及び/又はピックアップエリア内の他のアイテムを対象オブジェクトとして識別する(ブロック704)ことにより、プロセスを再開することができる。
測定した把持(たとえば、保持しているパッケージごとに測定した把持)が閾値を満たす場合、ロボットシステム100は、ブロック722に示すように、ベースモーションプランの残りの部分/アクションの実行を継続することができる。同様に、対象パッケージ112を再把持した後に接触度合いが閾値を満たす場合、ロボットシステム100は、一時停止したベースモーションプランの実行を再開することができる。それに応じて、ロボットシステム100は、残りのコマンド及び/又は設定のシーケンスに従って図2のアクチュエーションデバイス212及び/又は輸送モータ214を動作させることによって、ベースモーションプランにおける順序付けられたアクション(すなわち、把持及び/又は初期リフトに続くもの)の実行を継続することができる。たとえば、ロボットシステム100は、ベースモーションプランに従って対象パッケージ112を転置(たとえば、垂直及び/又は水平に)及び/又は向き変更することができる。
ベースモーションプランを実行している間に、ロボットシステム100は、対象パッケージ112の現在位置及び/又は現在の向きを追跡することができる。ロボットシステム100は、ロボットアーム及び/又はエンドエフェクタの1つ又は複数の部分の位置を特定するための図2の位置センサ224からの出力に応じて、現在位置を追跡することができる。いくつかの実施形態では、ロボットシステム100は、コンピュータ生成モデル、処理、数式、位置マップ、又はそれらの組み合わせを用いて位置センサ224の出力を処理することによって、現在位置を追跡することができる。それに応じて、ロボットシステム100は、関節及び構造部材の位置又は向きを組み合わせ、さらにそれらの位置をグリッドにマッピングして、現在位置424を計算及び追跡することができる。いくつかの実施形態では、ロボットシステム100は、複数のビーコンソースを含むことができる。ロボットシステム100は、ロボットアーム及び/又はエンドエフェクタの1つ又は複数の位置におけるビーコン信号を測定し、測定値(たとえば、信号強度、タイムスタンプもしくは伝播遅延、及び/又は位相ずれ)を使用して、信号源及び測定した位置の間の離間距離を計算することができる。ロボットシステム100は、離間距離を信号源の既知の位置にマッピングし、信号受信位置の現在位置を、マッピングされた離間距離が重なる位置として計算することができる。
判定ブロック724において、ロボットシステム100は、ベースプランが完全に最後まで実行されたか否かを判定することができる。たとえば、ロボットシステム100は、ベースモーションプラン422の全てのアクション(たとえば、コマンド及び/又は設定)が完了したか否かを判定することができる。また、ロボットシステム100は、現在位置がタスク位置116に一致する場合に、ベースモーションプランが終了したと判定することができる。ロボットシステム100がベースプランの実行を終了した場合、ロボットシステム100は、上述のように、ピックアップ/タスクエリアを撮像し(ブロック702)、及び/又はピックアップエリア内の他のアイテムを対象オブジェクトとして識別する(ブロック704)ことによって、プロセスを再開することができる。
そうでない場合、ブロック726において、ロボットシステム100は、対象パッケージ112の転置中の把持の測定を(すなわち、接触/力測定値を求めることによって)行うことができる。換言すれば、ロボットシステム100は、ベースモーションプランを実行しながら、接触/力測定値を決定することができる。いくつかの実施形態では、ロボットシステム100は、サンプリング周波数に従って、又は所定の時刻に、接触/力測定値を決定することができる。いくつかの実施形態では、ロボットシステム100は、アクチュエーションデバイス212を用いて所定の数のコマンド又は設定を実行する前及び/又は後に、接触/力測定値を決定することができる。たとえば、ロボットシステム100は、持ち上げ又は回転などのための特定のカテゴリの操作の後又は間に、接触センサ226をサンプリングすることができる。また、たとえば、ロボットシステム100は、加速度計出力の方向及び/又は大きさが、突然の又は速い動きを表す所定の閾値に一致するか又はそれを超える場合に、接触センサ226をサンプリングすることができる。ロボットシステム100は、上述の(たとえば、ブロック710の)1つ又は複数のプロセスを使用して、接触/力測定値を決定することができる。
いくつかの実施形態では、ロボットシステム100は、グリッパ及び/又は対象パッケージ112の向きを特定し、それに応じて接触度合いを調整することができる。ロボットシステム100は、接触センサの検知方向と、向きに応じて対象オブジェクトに加わる重力との間の方向関係を考慮して、向きに基づいて、接触度合いを調整することができる。たとえば、ロボットシステム100は、向きに応じて、検知方向と、基準方向(たとえば、「下向き」、すなわち重力の方向)との間の角度を計算することができる。ロボットシステム100は、計算した角度に対応する係数及び/又は符号に応じて、接触/力測定値をスケーリング又は乗算することができる。
判定ブロック728において、ロボットシステム100は、測定した把持を閾値(たとえば、転置把持閾値)と比較することができる。いくつかの実施形態では、転置把持閾値は、対象パッケージ112の最初の(たとえば、転置前の)把持の評価に関連する初期把持閾値以下にすることができる。それに応じて、ロボットシステム100は、対象パッケージ112の転置を開始する前に把持を評価するためのより厳格なルールを施行することができる。対象パッケージ112をピックアップするのに十分な接触が、対象パッケージ112を転置するのに十分である可能性が高いので、把持のための閾値要件を、最初はより高くすることができる。
測定した把持が閾値を満たし(たとえば、閾値未満でなく)、正しいパッケージが把持されている(たとえば、視覚センサデバイス143からの画像データに基づいて判定される)場合、ロボットシステム100は、ブロック722に示し、上述したように、ベースプランの実行を継続することができる。測定した把持が閾値を満たさない(たとえば、閾値未満である)か、又は正しいパッケージが把持されていない場合、ロボットシステム100は、ベースモーションプランから外れ、ブロック730に示すように、1つ又は複数の応答アクションを実行することができる。測定した把持が閾値に照らして不十分である場合、ロボットシステム100は、ベースモーションプランに含まれないコマンド及び/又は設定に従って、ロボットアーム139、エンドエフェクタ、又はそれらの組み合わせを動作させることができる。いくつかの実施形態では、ロボットシステム100は、現在位置に基づいて異なるコマンド及び/又は設定を実行することができる。
例示の目的で、制御された降下を使用した応答アクションについて説明する。しかしながら、ロボットシステム100は、たとえば、ブロック716に示すようにベースモーションプランの実行を停止し、及び/又はブロック718に示すようにオペレータ入力を求めることによって、他のアクションを実行できることを理解されたい。
制御された降下は、制御された方法で(すなわち、完全な把持の失敗の結果としてではなく、対象パッケージ112を下ろす及び/又は解放することに基づいて)、(たとえば、タスク位置116ではない)降下エリアの1つに対象パッケージ112を載置するための1つ又は複数のアクションを含む。制御された降下を実行する際に、ロボットシステム100は、現在位置に応じて、異なる位置、操作もしくは経路、及び/又はアクチュエーションデバイスコマンド又は設定を動的に(すなわち、リアルタイムに、及び/又はベースモーションプランを実行しながら)計算することができる。いくつかの実施形態では、エンドエフェクタ140は、対象パッケージ112の複数のインスタンスの把持解放動作用に構成することができる。たとえば、いくつかの実施形態では、エンドエフェクタ140は、必要に応じて真空領域117を選択的に係脱して、それに応じて対象パッケージ112の各インスタンスを解放することによって、把持解放動作を同時に又は順次的に実行するように構成することができる。ロボットシステム100は、保持しているオブジェクトの位置、降下エリアにおけるオブジェクト配置などに基づいて、オブジェクトを同時に解放するか順次的に解放するか、及び解放の順序を選択することができる。
ブロック762において、ロボットシステム100は、対象パッケージ112を載置するための調整済み降下位置及び/又は関連する姿勢を計算することができる。調整済み降下位置を計算する際に、ロボットシステム100は、現在位置に最も近い、及び/又はその先の(たとえば、現在位置とタスク位置との間の)降下エリア(たとえば、ソース降下エリア、目的地降下エリア、又は中継降下エリア)を識別することができる。また、現在位置が降下エリア間にある(すなわち、それらの中にない)場合、ロボットシステム100は、降下エリアまでの距離(たとえば、降下エリアの代表的な基準位置までの距離)を計算することができる。それに応じて、ロボットシステム100は、現在位置に最も近い降下エリア、及び/又は現在位置の先の降下エリアを識別することができる。識別した降下エリアに基づいて、ロボットシステム100は、その中の位置を調整済み降下位置として計算することができる。いくつかの実施形態では、ロボットシステム100は、所定の順序(たとえば、基準位置に対して左から右へ、下から上へ、及び/又は前から後へ)に従って位置を選択することに基づいて、調整済み降下位置を計算することができる。
いくつかの実施形態では、ロボットシステム100は、現在位置から、降下エリア内のオープンスペース(たとえば、ブロック704において識別され、及び/又はオブジェクトの進行中の載置に従って追跡されるもの)までの距離を計算することができる。ロボットシステム100は、現在位置の先の、及び/又は現在位置424に最も近いオープンスペースを調整済み降下位置として選択することができる。
いくつかの実施形態では、降下エリア及び/又はオープンスペースを選択する前に、ロボットシステム100は、所定の処理及び/又は数式を使用して、接触/力度合いを最大転置距離に変換することができる。たとえば、所定の処理及び/又は数式は、接触度合いの様々な値に基づいて、対応する最大転置距離及び/又は完全な把持の失敗の前の持続時間を推定することができる。それに応じて、ロボットシステム100は、現在位置から最大転置距離よりも遠い利用可能な降下エリア及び/又はオープンスペースを除外することができる。いくつかの実施形態では、ロボットシステム100が利用可能な降下エリア及び/又はオープンスペースを識別できない場合(たとえば、アクセス可能な降下エリアが満杯の場合)、ロボットシステム100は、ブロック716に示すようにベースモーションプランの実行を停止し、及び/又はブロック718に示すようにオペレータ入力を求めることができる。
ブロック766において、ロボットシステム100は、対象パッケージ112を現在位置から調整済み降下位置に転置するための調整済みモーションプランを計算することができる。ロボットシステム100は、ブロック506に関して上述した方法と同様の方法で、調整済みモーションプランを計算することができる。
ブロック768において、ロボットシステム100は、ベースモーションプランに加えて、及び/又はその代わりに、調整済みモーションプランを実行することができる。たとえば、ロボットシステム100は、コマンドもしくは設定又はそれらの組み合わせのシーケンスに従ってアクチュエーションデバイス212を動作させることによって、ロボットアーム139及び/又はエンドエフェクタを操作して、対象パッケージ112を経路に従って移動させることができる。
いくつかの実施形態では、ロボットシステム100は、ベースモーションプランの実行を一時停止し、調整済みモーションプランを実行することができる。調整済みモーションプランを実行することに基づいて、対象パッケージ112が調整済み降下位置に載置されると(すなわち、制御された降下の実行を完了すると)、いくつかの実施形態では、ロボットシステム100は、ブロック720に関して上述したように対象パッケージ112の再把持を試行し、次いでブロック710に関して上述したように確立された把持を測定することができる。いくつかの実施形態では、ロボットシステム100は、上述のように反復限度まで対象パッケージ112の再把持を試行することができる。接触度合いが初期把持閾値を満たす場合、ロボットシステム100は、調整済みモーションプランを逆転させ(たとえば、一時停止した点/位置まで戻り)、一時停止したベースモーションプランの残りの部分の実行を継続することができる。いくつかの実施形態では、ロボットシステム100は、現在位置424(再把持後)からタスク位置116までの調整済みモーションプランを更新及び再計算し、調整済みモーションプランを実行して、タスクの実行を終了することができる。
いくつかの実施形態では、ロボットシステム100は、アクセスした降下エリアのエリアログ(たとえば、オープンスペース及び/又は載置したオブジェクトのレコード)を更新して、載置した対象パッケージ112を反映することができる。たとえば、ロボットシステム100は、対応する降下エリアの撮像結果を再生成することができる。いくつかの実施形態では、ロボットシステム100は、制御された降下を実行し、対象パッケージ112を調整済み降下位置に載置した後に、ベースモーションプランの残りのアクションをキャンセルすることができる。1つ又は複数の実施形態では、中継降下エリアは、図1の輸送ユニット106のうちの1つの上に載置されるパレット又はビンを含むことができる。指定時刻に(たとえば、パレット/ビンが満杯の場合、及び/又は到着するパレット/ビンが遅れている場合)、対応する輸送ユニットは、降下エリアからピックアップエリアに行くことができる。それに応じて、ロボットシステム100は、方法500を再実施して、降下したアイテムを対象パッケージ112として再識別し、それらを対応するタスク位置116に転置することができる。
対象パッケージ112が調整済み降下位置に載置されると、ロボットシステム100は、新たな対象オブジェクトについて方法700を繰り返すことができる。たとえば、ロボットシステム100は、ピックアップエリア内の次のオブジェクトを対象パッケージ112として決定し、新たな対象オブジェクトを転置するなどための新たなベースモーションプランを計算することができる。
いくつかの実施形態では、ロボットシステム100は、接触度合い312に基づいて経路計算メカニズムを更新するフィードバックメカニズムを含むことができる。たとえば、ロボットシステム100が(たとえば、ブロック720に関して上述したように)調整された位置で対象パッケージ112を再把持するアクションを実施するときに、ロボットシステム100は、(たとえば、ブロック712に関して上述したように)閾値を満たした接触/力測定値を生成したエンドエフェクタの位置を記憶することができる。ロボットシステム100は、その位置を対象パッケージ112に関連付けて記憶することができる。ロボットシステム100は、把持の失敗及び/又は成功した再把持アクションの回数が閾値に達した場合、対象パッケージ112を把持するための記憶された位置の分析を(たとえば、最近のアクションのセットを分析するためのランニングウィンドウを使用して)行うことができる。特定のオブジェクトに対して所定の回数の再把持アクションが行われた場合、ロボットシステム100は、対象パッケージ112に対する新たな位置(たとえば、最大の成功回数に対応する位置)にグリッパを載置するようにモーション計画メカニズムを更新することができる。
ブロック710及び/又はブロック726に表した動作に基づいて、ロボットシステム100は(たとえば、プロセッサ202を介して)、ベースモーションプランの実行の進捗を追跡することができる。いくつかの実施形態では、ロボットシステム100は、対象パッケージ(複数可)112の水平転置に応じて進捗を追跡することができる。ロボットシステム100は、水平転置を開始する前に、確立された把持を測定すること(ブロック710)に基づいて、また、水平転置を開始した後に、転置中の把持を測定すること(ブロック726)に基づいて、進捗を追跡することができる。それに応じて、ロボットシステム100は、上述の進捗に基づいて、アクチュエータコマンド、アクチュエータ設定、又はそれらの組み合わせの新たなセット(すなわち、ベースモーションプランとは異なるもの)を選択的に生成することができる。
他の実施形態では、たとえば、ロボットシステム100は、アクチュエーションデバイス212に伝達された、及び/又はそれによって実施されたコマンド、設定、又はそれらの組み合わせを追跡することに基づいて、進捗を追跡することができる。進捗に基づいて、ロボットシステム100は、アクチュエータコマンド、アクチュエータ設定、又はそれらの組み合わせの新たなセットを選択的に生成して、再把持応答アクション及び/又は制御された降下の応答アクションを実行することができる。たとえば、進捗が対象パッケージ112のあらゆる水平転置の前である場合、ロボットシステム100は、初期把持閾値を選択し、(たとえば、関数呼び出し又はジャンプ命令を介して)ブロック712以降に表した動作を実行することができる。また、進捗が対象パッケージ112の水平転置後である場合、ロボットシステム100は、転置把持閾値を選択し、(たとえば、関数呼び出し又はジャンプ命令を介して)ブロック728以降に表した動作を実行することができる。
接触/力測定値と、視覚センサデバイス143からの撮像データを介した視覚ベースのモニタリングとに従って、対象パッケージ112の粒度の細かい制御/操作を実装すること(すなわち、ベースモーションプランを実施するか、又はそれから外れるかを選択すること)により、オブジェクトを転置する効率、速度、及び正確性が向上する。たとえば、接触度合いが初期把持閾値を下回るか、又はパッケージ112が不適切に位置決めされている場合に、対象パッケージ112を再把持することにより、転置中に把持の失敗が発生する可能性が減少し、それによって、転置中に取り落とす又は意図せずに落下するオブジェクトの数が減少する。所望の把持を維持するように真空領域及び真空レベルを調整することができ、それによってパッケージ112の取り扱いがさらに改善される。そのうえ、取り落とした各オブジェクトは、結果を修正するための人間のインタラクション(たとえば、取り落としたオブジェクトを後続のタスクのためにモーション経路からどかし、取り落としたオブジェクトの損傷を検査し、及び/又は取り落としたオブジェクトのタスクを完了すること)を必要とする。このように、取り落とすオブジェクトの数を削減することにより、タスク及び/又は全体動作を実施するのに必要な人的労力が削減される。
図18〜図21に、本開示の1つ又は複数の実施形態による、図16の方法490又は図17の方法700に従ってオブジェクトをロボットにより把持及び輸送する段階を示す。図18は、グリッパアセンブリ141がオブジェクトのスタックの上方に配置されていることを示している。ロボットアーム139は、グリッパアセンブリ141を対象オブジェクトの真上に位置決めすることができる。コントローラは、視覚センサデバイス143からの画像データを分析して、図17のブロック704で説明したように、例えば、対象オブジェクト812a、812bなどを識別することができる。収集された画像データに基づいて、プラン(たとえば、ピックアップ又はベースプラン)を生成することができる。プランは、(a)グリッパアセンブリ141の運搬能力、及び/又は(b)対象オブジェクトの構成に基づいて、生成することができる。
図19は、グリッパアセンブリ141の下面が、対象オブジェクト812a、812bと、大きい非対象オブジェクト818とに重なっていることを示している。視覚センサデバイス143からの出力を分析して、対象オブジェクトに対するグリッパアセンブリ141の位置を確認することができる。オブジェクト812a、812bの位置に基づいて、真空に引くための真空領域117a、117bが識別される。いくつかの実施形態では、力センサ203からの読取値を使用して、対象オブジェクト812a、812bを把持する前及び/又は後に、グリッパアセンブリ141がスタック814の上面に接触していることを確認する。
図20は、矢印で示すように真空領域117a、117bに空気が吸い込まれて、他の真空領域117cにおいて真空(又は実質的に真空)に引くことなく、対象オブジェクト812a、812bがグリッパアセンブリ141に対して保持されることを示している。真空レベルを増減させて、弾性パネル(複数可)412(1つを識別)の圧縮を増減させることができる。図17のブロック710に関連して説明したように、真空グリップを評価することができる。
図21は、上昇したグリッパアセンブリ141が対象オブジェクト812a、812bをしっかりと保持していることを示している。視覚センサデバイス143を使用して、対象オブジェクト812a、812bの位置を監視することができる。追加的又は代替的には、力検出器アセンブリ205を使用して、負荷に関する情報、たとえば、対象オブジェクト812a、812bの位置及び重量を特定することができる。真空領域117a、117bは、空気を吸い込んで、対象オブジェクト812a、812bをしっかりと保持し続けることができる。図17のブロック726で説明したように、転置中に真空グリップを監視することができる。加えられた真空を停止又は低減して、オブジェクト812a、812bを解放することができる。このプロセスを繰り返して、スタック内のオブジェクトのそれぞれを転置することができる。
掴持(grasp)セット
図22に、本技術の1つ又は複数の実施形態による掴持セット2200の例示的な態様を示す。掴持セット2200は、対象パッケージ112に対するエンドエフェクタ140の1つ又は複数の把持姿勢(たとえば、位置、場所、向きなど)を含むことができる。より詳細には、把持姿勢は、把持姿勢が対象パッケージ112を把持するのに使用できるか否かを判定する場合の対象パッケージ112及びエンドエフェクタ140の間の相対位置を表すことができる。
把持姿勢の説明用の例として、図22は、対象パッケージ112に対するエンドエフェクタ140の第1の姿勢2202及び第2の姿勢2204を示している。第1の姿勢2202は、対象パッケージ112を掴持するためのエンドエフェクタ140の第1の姿勢2202を表す第1の上面図2212及び第1の側面図2214によって示している。対象パッケージ112は、エンドエフェクタ140よりも小さいフットプリントを有し、第1の上面図2212ではエンドエフェクタ140によって隠され得る。したがって、第1の上面図2212では、対象パッケージ112は、エンドエフェクタ140に対する姿勢を示すために破線で示している。第1の姿勢2202と同様に、第2の姿勢2204は、対象パッケージ112を掴持するためのエンドエフェクタ140の第2の姿勢を表す第2の上面図2222及び第2の側面図2224によって示している。
第1の姿勢2202は、互いに平行なエンドエフェクタ140及び対象パッケージ112の長さを有することができる。第1の姿勢2202及び第2の姿勢2204は、垂直方向(たとえば、z軸、図22では図示せず)まわりに90度だけ回転/オフセットすることができる。それに応じて、第2の姿勢2204は、対象パッケージ112の幅に平行であって、対象パッケージ112の長さに直交するエンドエフェクタ140の長さを有することができる。
図1のロボットシステム100は、対象パッケージ112の把持姿勢を識別し、識別された把持姿勢の対象パッケージ112のモデルに対して、1つ又は複数の把持姿勢のエンドエフェクタ140のモデルを重ねる又は配置することによって、掴持セット2200を導出することができる。ロボットシステム100は、モデルを配置及び分析する際に、所定のパターン又はルーチンに従うことができる。いくつかの実施形態では、掴持セット2200は、1つ又は複数のエッジ/境界が、対象パッケージ112の1つ又は複数の対応する周縁と位置合わせされた、エンドエフェクタ140の通知された(notified)把持姿勢2206を含むことができる。たとえば、通知された把持姿勢2206は、図4の把持接合部121の1つ又は複数の周縁を有することができ、及び/又は図4の真空領域117は、対象パッケージ112の対応する周縁と位置合わせすることができる。換言すれば、対象パッケージ112の周縁、及び真空領域117の対応する周縁は、垂直線/面と一致することができる。1つ又は複数の実施形態では、掴持セット2200は、位置合わせされていないエンドエフェクタ把持姿勢のない、通知された把持姿勢2206を含む通知された掴持セットとすることができる。ロボットシステム100は、想定される又は既知のパッケージのコンピュータモデルを介して、オフラインで(たとえば、実際のパッケージを受け取る及び/又は処理する前に)掴持セット2200を導出することができる。代替的又は追加的には、ロボットシステム100は、掴持セット2200を動的に、たとえば、転置の対象となる実際のパッケージを描写するリアルタイム画像に基づいて、導出することができる。
掴持セット2200は、把持姿勢に関連する移動制御パラメータ2208をさらに含むことができる。移動制御パラメータ2208はそれぞれ、対応する把持姿勢のために対象オブジェクトを掴持するのに必要な真空領域117及び/又は吸引要素151を識別する表示を含むことができる。また、移動制御パラメータ2208は、対象パッケージ112を掴持及び転置する間の、エンドエフェクタ140の移動を制御するために使用される速度、加速度、力、レートなどを表す値を含むことができる。たとえば、移動制御パラメータ2208は、把持姿勢ごとの転置速度乗数(TSM)(たとえば、第1の姿勢2202に対する第1のTSM2218、及び第2の姿勢2040に対する第2のTSM2228)を含むことができる。TSMは範囲R∈[0,1]内の値を含むことができ、ここで「1」は全速力又は最高速度を表し、「0」は停止又は移動なしを表す。
ロボットシステム100は、対応する把持姿勢に従って移動制御パラメータ2208を(オフラインで及び/又は動的に)導出又は計算することができる。ロボットシステム100は、エンドエフェクタ140と対象パッケージ112との重なり、対象パッケージ112の物理的特徴に関する情報、及び/又は同一のタイプのパッケージの以前の転置からのレコードに基づいて、移動制御パラメータ2208を導出することができる。たとえば、ロボットシステム100は、重なったエリアと、対応する真空領域117及び/又は吸引要素151とを識別することができる。さらに、ロボットシステム100は、重なったエリアのサイズ、及び/又は対象パッケージ112上の吸引要素151の数を入力とする所定の関数を使用して、移動制御パラメータ2208を導出することができる。所定の関数は、対象パッケージ112に関する重量、CoM情報、1つ又は複数の寸法、表面タイプ、及び/又はマスターデータ内の他の情報をさらに使用し得る。いくつかの実施形態では、ロボットシステム100は、移動制御パラメータ2208(たとえば、TSM)を、最初の把持の失敗及び/又は転置中のパッケージの取り落としの発生(たとえば、パラメータを減少させる)又は長期の不在(たとえば、パラメータを増加させる)に基づいて、自動的に調整することができる。
パッケージを転置する場合、ロボットシステム100は、移動制御パラメータ2208の最大のインスタンス(たとえば、TSMの最高値)を有する掴持セット2200から把持姿勢を選択することができる。それに応じて、ロボットシステム100は、対応するパッケージの転置期間を短縮することができる。追加的には、ロボットシステム100は、複数のパッケージを同時に掴持及び転置することを検討及び分析することができる。ロボットシステム100は、同時転置の実現可能性を分析することができ、実現可能な場合、ロボットシステム100は、同時転置の効率(たとえば、総転置時間)を別々の個々の転置の効率と効果的に比較することができる。
図示した例として、第1の姿勢2202は第2の姿勢2204と比べて、エンドエフェクタ140と対象パッケージ112との間により大きい重なりを提供するので、第1のTSM2218は第2のTSM2228よりも大きくなり得る。換言すれば、第1のTSM2218を「X」とすることができ、第2のTSM2228は「Y」とすることができ、ここで「X>Y」である。それに応じて、同時掴持が利用できない又は検討しない場合、ロボットシステム100は、第2の姿勢2204よりも第1の姿勢2202を選択することができる。
図22に示す例では、ロボットシステム100は、エンドエフェクタ140が同時掴持対象2250に及んでいると判定することができる。同時掴持対象2250は、対象パッケージ112に隣接する、及び/又は対象パッケージ112と同一のレイヤに配置されたパッケージとすることができる。いくつかの実施形態では、ロボットシステム100は、隣接するパッケージが、対象パッケージ112の上面/上部の高さと同一の高さであるか又はそこから閾値範囲内にある上部又は上面を有する場合に、隣接するパッケージをさらなる処理のために同時掴持対象2250として有効性検証することができる。ロボットシステム100は、たとえば、全体的な移動制御パラメータを導出又は決定し、及び/又は解放シーケンスを分析することによって、対象パッケージ112を同時掴持対象2250と同時に掴持及び転置する実現可能性を分析することができる。分析結果が同時掴持/転置の実現可能性を示す場合、ロボットシステム100は、対応するモーションプランを導出し、及び/又は対応する効率を評価することができる。それに応じて、ロボットシステム100は、適用可能かつ有益な場合に、複数のパッケージを掴持及び転置することにより、パッケージのレイヤ/スタックの全体的な転置時間を短縮することができる。同時掴持及び転置に関する詳細については、以下で説明する。
複数のパッケージの同時掴持
図23A〜図23Fに、本技術の1つ又は複数の実施形態による複数のオブジェクトを同時に転置するための例示的なシナリオを示す。図示した例示的なシナリオでは、エンドエフェクタ140の真空領域117の動作状態と、対象パッケージ112及び同時掴持対象2250への対応する効果とを示している。それに応じて、図示した例示的なシナリオでは、同時掴持/転置に関連するエラー状態及び対応する解決策を示している。
説明用の例では、対象パッケージ112は、第1の真空領域117aの対応する寸法より長い寸法を有し得る。図23Aに示す通知された把持姿勢では、対象パッケージ112は、第2の真空領域117bに及び得る。同時掴持対象2250は、対象パッケージ112に隣接し得る。これら2つのパッケージは、ある距離だけ離され得る。選択された把持姿勢により、第2の真空領域117b及び第3の真空領域117cは共に、同時掴持対象2250に重なることができる。したがって、ロボットシステム100は、3つ全ての真空領域をアクティブ化して、同時掴持対象2250及び対象パッケージ112を同時に掴持及びピックアップすることができる。
図23B及び図23Cは、パッケージを解放するための起こり得るエラー状態を示している。図23Bに示すように、第1の真空領域117aのみを非アクティブ化しても、対象オブジェクト112が完全に解放されない場合がある。たとえば、比較的軽い重量、フレキシブルな構造、及び/又はよりスムーズな掴持面を有するパッケージは、重なりによって第2の真空領域117bにくっついたままになり、又はそれによって掴持されたままになり得る。結果として、対象オブジェクト112は、他のオブジェクトと衝突する、エンドエフェクタ140によって掴持されたままになる、及び/又は想定外の方法で落下し得る。代替的には、図23Cに示すように、対象オブジェクト112を解放するために第1の真空領域117a及び第2の真空領域117bの両方を非アクティブ化すると、同時掴持対象2250の想定外の解放が生じ得る。たとえば、同時掴持対象2250がより重い、硬い、及び/又は不規則な又は多孔質の掴持面を有する場合に、1つの真空領域では、それを掴持するのに十分でない場合がある。
図23D〜図23Fは、対象パッケージ112及び同時掴持対象2250を処理するための可能な解決策を示す。図23Dに示すように、ロボットシステム100は、代替的な解放シーケンスを分析することができる。ロボットシステム100は、対象パッケージ112の前に同時掴持対象2250を解放することを検討することができる。それに応じて、ロボットシステム100は、第2の真空領域117b及び第3の真空領域117cを非アクティブ化して同時掴持対象2250を解放することを検討することができる。ロボットシステム100は、対象パッケージ112へのそのような非アクティブ化の効果を分析することができる。上記で説明した例示的な状況では、第1の真空領域117aは、対象パッケージ112を掴持するのに十分であり得、代替的な解放シーケンスは実行可能な解決策であり得る。いくつかの実施形態では、ロボットシステム100は、同じパッケージのセットに対して、対象及び同時掴持の指定を置き換え(たとえば、図23Dの対象2を対象パッケージ112として指定し、対象1を同時に掴持されるパッケージ2250として指定し)、同時に掴持されるパッケージの前に対象パッケージ112が解放されるように維持することによって、代替的な解放シーケンスを処理することができる。
代替的又は追加的には、ロボットシステム100は、図23Eに示すような他の把持姿勢を検討することができる。たとえば、エンドエフェクタ140の最初に分析された把持姿勢は、第1の真空領域117aの外縁が、対象パッケージ112の第1の周縁と位置合わせされ得る。ロボットシステム100は、追加的又は代替的には、第1の真空領域117aの内側境界を、第1の周縁とは反対側の対象パッケージ112の第2の周縁と位置合わせした代替的な姿勢2402を処理及び分析することができる。実際上は、ロボットシステム100は、対象パッケージ112及び/又は同時に掴持されるパッケージ2250に対して、横方向に沿ってエンドエフェクタ140をシフトすることを検討することができる。上記で説明した例示的な状況では、対象パッケージ112には、第2の真空領域117bが重ならずに、第1の真空領域117aが重なって、これを掴持することができる。したがって、第2の真空領域117bは、同時に掴持されるパッケージ2250のみの掴持専用にすることができる。このようにして、第1の真空領域117aを非アクティブ化することにより、対象パッケージ112を解放することができ、それと独立して、第2の真空領域117b及び第3の真空領域117cを非アクティブ化することにより、同時に掴持されるパッケージ2250を解放することができる。
図23Fは、ロボットシステム100が対象パッケージ112のみを掴持することを示している。たとえば、ロボットシステム100は、同時掴持の分析が任意のルール又は閾値の違反を示す場合に、他のパッケージを同時に掴持することなく、対象パッケージ112の掴持及び転置に戻ることができる。
接触評価
図24に、本技術の1つ又は複数の実施形態による例示的なグリッパ載置状況を示す。いくつかの実施形態では、ロボットシステム100は、パッケージと対応する真空領域との間の重なり量を表す重なり度合いを導出することができる。図24に示す例では、エンドエフェクタ140は、第2の真空領域117bが対象パッケージ112に完全に重なるように位置決めすることができる。それに応じて、ロボットシステム100は、第2の真空領域117bの重なり度合いを「全部」として決定することができる。真空領域が対象パッケージ112と重ならない場合(図24には図示せず)、ロボットシステム100は、重なり度合いを「なし」として決定することができる。
ロボットシステム100は、真空領域及び対象パッケージ112の間の部分的な重なりを記述する1つ又は複数の値を有することができる。いくつかの実施形態では、ロボットシステム100は、真空領域のうちの1つ又は複数(すなわち、第1の真空領域117a、第2の真空領域117b、又は第3の真空領域117c)と、対象オブジェクト112との間の部分的な重なり度合いを、たとえば、真空センサ(すなわち、センサ216)からのセンサ読取値に応じて決定することができる。たとえば、把持のための掴持姿勢が対象オブジェクト112及び真空領域の重なり又はそれらの間の接触を示すとしても、対象オブジェクト112が真空領域のうちの1つ(すなわち、第1の真空領域117a)と接触していることを、真空センサが真空圧の変化で検出できない場合、ロボットシステム100は、図24に示すように、重なりを「接触」として分類することができる。いくつかの実施形態では、ロボットシステム100は、対応する閾値のセット又は範囲に応じて、部分的な重なり度合いを決定することができる。図24に示す例では、ロボットシステム100は、50%の重なりを、「接触」分類及び「一部」分類の間の分割閾値として使用することができる。それに応じて、ロボットシステム100は、第1の真空領域117aの重なり度合いを「接触」として決定することができ、その理由は、その領域の50%未満が対象パッケージ112と重なるためである。さらに、ロボットシステム100は、第3の真空領域117cの重なり度合いを「一部」として決定することができ、その理由は、重なり量が50%より大きく100%未満の値に対応するためである。いくつかの実施形態では、「一部」分類及び「全部」分類の間の区別は、50%及び100%の重なりの間の閾値に基づくことができる。
掴持されたパッケージのリアルタイム検証
図25に、本技術の1つ又は複数の実施形態による例示的なタスク位置を示す。いくつかの実施形態では、目的地センサ2502のセットは、パッケージ転置の進捗を追跡するように構成され得る。たとえば、目的地センサ2502は、光信号を送信し、及び/又は、転置されたパッケージ及び/又はロボットユニット(たとえば、エンドエフェクタ140)によって生じる光信号の変化を検出するラインセンサ(たとえば、光センサ)を含むことができる。いくつかの例示的なラインセンサは、交差又は進入イベントを示す対応するレーザー又は光信号の不在と、退出イベントを示すレーザー/光信号のその後の検出と、を検出することができる。
いくつかの実施形態では、目的地センサ2502は、図1のタスク位置116(たとえば、図3のコンベヤ120)の上方に配置することができる。目的地センサ2502は、減速センサ2504のセット及び/又は解放センサ2506のセットを含むことができる。減速センサ2504は、転置されるパッケージ(複数可)の下降中に、その解放に備えて、減速をトリガするように構成されるラインセンサを含むことができる。解放センサ2506は、掴持されたパッケージの解放のトリガを(たとえば、対応する真空領域117の非アクティブ化を介して)行って、そのパッケージを対応する対象位置116に載置するように構成されるラインセンサを含むことができる。
目的地センサ2502は、1つ又は複数の横平面に沿って配置及び配向することができる。いくつかの実施形態では、たとえば、目的地センサ2502は、横線に沿って(たとえば、x方向に沿って)及び/又は固定の離間距離に従って配置することができる。目的地センサ2502は、直交する横線に沿って(たとえば、y方向に沿って)交差を検出するように構成することができる。換言すれば、目的地センサ2502は、y方向に沿って進行する光信号の変化/乱れを検出するように構成することができる。また、減速センサ2504は、解放センサ2506に対応する他の横平面(たとえば、第2の水平面)の上方に配置された横平面(たとえば、水平面)に対応することができる。
ロボットシステム100は、目的地センサ2502を使用して、転置されるパッケージの他の物理的特徴を特定又は検証することができる。たとえば、ロボットシステム100は、交差イベントを使用して、転置されるパッケージの高さを求めることができる。目的地センサ2502の検出線/面は、既知の高さにすることができる。それに応じて、ロボットシステム100は、交差イベント時のエンドエフェクタ140の高さを識別し、識別した高さと、目的地センサ2502の既知の高さとの差を計算することによって、パッケージの高さを求めることができる。また、ロボットシステム100は、直線的に配置されたセンサのトリガされたインスタンスを識別して、転置されるパッケージの対応する横寸法を求めることができる。図25に示すように、ロボットシステム100は、センサD1a、D1b、及びD2aが交差イベントを検出しているが、センサD2b以降は乱れがないままであると判定することができる。それに応じて、ロボットシステム100は、同時掴持対象2250の幅又は長さを推定することができる。
ロボットシステム100は、導出された情報を使用して、転置されるパッケージと、対応するモーションプランの残りの部分とを検証することができる。たとえば、ロボットシステム100はさらに、最も高いパッケージを最初に解放するルールに従って、モーションプランを導出及び実施することができる。それに応じて、ロボットシステム100は、最初に解放されるように意図されたパッケージが、他の同時に転置されるパッケージ(複数可)の前に、検知線/面と交差することを検証することができる。さらに、ロボットシステム100は、センサベースの高さ及び/又は横寸法を、転置されるパッケージの既知の又は想定される寸法と比較して、その同一性/カテゴリを検証することができる。
図25に示す例では、ロボットシステム100は、対象パッケージ112及び同時掴持対象2250を同時に掴持及び転置するためのモーションプランを導出及び実施することができる。ロボットシステム100は、対象パッケージ112が同時掴持対象2250よりも高いことを示すデータ及び分析結果に従って、モーションプランを導出することができる。このようにして、モーションプランは、同時掴持対象2250の前に対象パッケージ112を解放することに対応することができる。しかしながら、利用される寸法は誤っている場合があり、対応する位置におけるパッケージの実際の寸法は異なっている場合がある。それに応じて、ロボットシステム100は、センサD3a及びD3b(たとえば、対象パッケージ112に対応するセンサ)が交差イベントを示す前に、センサD1a〜D2b(たとえば、同時掴持対象2250に対応するセンサ)が交差イベントを示す場合に、エラー状態を検出することができる。追加的又は代替的には、ロボットシステム100は、センサD1a〜D2bのトリガに基づいて、推定横寸法及び/又は想定外の寸法ステータスを導出することができる。換言すれば、トリガされたセンサの位置に基づいて、ロボットシステム100は、転置されるオブジェクトの横寸法が想定通りでないと判定することができる。以下で詳細に説明するように、ロボットシステム100は、検出されたエラー状態に応答し、モーションプランの残りの部分を評価することができる。評価に基づいて、ロボットシステム100は、残りの部分を継続するか、又は残りの部分を更新する/置き換えることができる。
複数のオブジェクトを同時に処理するための動作フロー
図26は、本技術の1つ又は複数の実施形態によるロボットシステム(たとえば、ロボットシステム100)を動作させるための例示的な方法2600の他のフロー図である。方法2600は、マルチグリッパアセンブリ(たとえば、図4のエンドエフェクタ140)を使用した2つ以上のオブジェクトの同時掴持を評価するためのものとすることができる。方法2600は、2つ以上のオブジェクトを同時に掴持及び転置することが実現可能及び/又は最適であるかを判定するためのものとすることができる。判定に基づいて、ロボットシステム100は(たとえば、図2のプロセッサ202を介して)、方法2600を実施して、パッケージを掴持及び転置するための1つ又は複数のモーションプランを導出及び実施することができる。方法2600は、図2のプロセッサ202の1つ又は複数を用いて図2の記憶デバイス204の1つ又は複数に記憶された命令を実行することに基づいて、実施することができる。モーションプラン及び/又は方法2600を実施する際に、プロセッサ202は、モーションプラン又は関連するコマンド/設定のセット/シーケンスを図3の転置アセンブリ104及び/又は図3のエンドエフェクタ140に送ることができる。それに応じて、転置アセンブリ104及び/又はエンドエフェクタ140は、パッケージを掴持及び転置するためのモーションプランを実行することができる。
ブロック500において、ロボットシステム100(たとえば、図1のコンピュータ109及び/又はプロセッサ202)は、上述の環境の少なくとも一部分を表す画像データを受信することができる。たとえば、ロボットシステム100は、図3の撮像システム160から、図3のピックアップ環境163における図3のスタック165の少なくとも一部分を表す画像データを受信することができる。ピックアップ環境163は、図1の対象パッケージ112及び図22の同時掴持対象2250を含むことができる。したがって、画像データは、対象パッケージ112、同時掴持対象2250、及び/又はスタック165内の他のパッケージ(たとえば、スタック165の一番上のレイヤを形成するパッケージ)を描写することができる。
ブロック502において、ロボットシステム100は、画像データを分析して、上述のようにオブジェクトのグループ、パッケージのスタックなどの中のパッケージを識別することができる。たとえば、ロボットシステム100は、対象パッケージ112及び同時掴持対象2250を含む、撮像システム160に対して露出している/それによって視認可能な、及び/又はエンドエフェクタ140にアクセス可能なパッケージ(たとえば、スタック165の一番上のレイヤを形成するパッケージ)などのパッケージのセットを識別することができる。ロボットシステム100は、個々のパッケージの境界及び/又は位置を推定することにより、パッケージのセットを識別することができる。いくつかの実施形態では、ロボットシステム100は、画像データの各部分を、パッケージの既知の面を表すマスターデータ内の画像と比較することができる。追加的又は代替的には、ロボットシステム100は、エッジ検出を(たとえば、Sobelフィルタを介して)実行してエッジを検出し、位置特定することができる。ロボットシステム100は、エッジを分析して、画像データに描写されたパッケージの境界を推定することができる。
いくつかの実施形態では、ロボットシステム100は、後続の処理/検討のために、識別されたパッケージの1つを対象パッケージ112として反復的に選択することができる。ロボットシステム100は、反復的な分析を介してセット内のパッケージを処理し、パッケージを転置するための掴持の組み合わせを選択することができる。代替的には、ロボットシステム100は、各反復の最後に、対象パッケージ112を単独で、あるいは1つ又は複数の同時に掴持されるパッケージ(たとえば、同時掴持対象2250)と共に転置することができる。
ブロック2602において、ロボットシステム100は、各パッケージの掴持セット(たとえば、図22の掴持セット2200)を分析することができる。ロボットシステム100は、ブロック2622などにおいて、利用可能なグリッパ位置のセットを決定することによって、掴持セット2200を分析することができる。掴持セット2200内の把持姿勢のそれぞれは、現実世界の及び/又は対象パッケージ112に対するエンドエフェクタ140の位置及び/又は向きを表すことができる。ロボットシステム100は、様々な異なる把持姿勢のエンドエフェクタ140のモデルを画像データ内の対象パッケージ112に重ねることにより、掴持セット2200を分析することができる。ロボットシステム100は、1つ又は複数の所定のルールに違反するあらゆる把持姿勢を排除することができる。たとえば、ロボットシステム100は、任意の障害物、たとえば、コンテナ壁、所定の固定物/構造などに重なる把持姿勢を排除することができる。
処理の複雑性/負担を低減するために、ロボットシステム100は、1つ又は複数の所定のパターン及び/又はルールに従って、掴持セット内の限られた数の把持姿勢を分析する又は含むことができる。ブロック2624などに示すいくつかの実施形態では、ロボットシステム100は、各パッケージについて通知された掴持セット(たとえば、図22の通知された把持姿勢2206のセット)を決定することができる。それに応じて、掴持セットは、それぞれが、マルチグリッパアセンブリの境界(たとえば、図4の真空領域117の周縁)を対象パッケージ112の周縁と位置合わせした、把持姿勢のセットを含むことができる。通知された掴持セットは、通知された把持姿勢2206のみを含むことができる。ロボットシステム100は、対応するエッジが垂直線又は面と交わる又は当接するように、構造又はそのモデルを位置合わせすることができる。
いくつかの実施形態では、ロボットシステム100は、画像データを受信した後に、把持姿勢を動的に導出及び生成することに基づいて、掴持セット2200を分析することができる。代替的には、ロボットシステム100は、既知のパッケージごとに、掴持セット2200の所定のインスタンスを有することができる。たとえば、既知の又は想定されるパッケージごとの掴持セット2200は、マスターデータに記憶することができる。ロボットシステム100は、識別された対象パッケージに対応する把持姿勢にマスターデータからアクセスすることに基づいて、掴持セット2200を分析することができる。
ブロック2626において、ロボットシステム100は、隣接するグループ化対象、たとえば、対象パッケージ112との同時掴持が検討される追加のパッケージ(たとえば、同時掴持対象2250などの第2のパッケージ)を識別することができる。ロボットシステム100は、識別されたパッケージセット内の他のパッケージと重なる把持姿勢を識別することができる。たとえば、ロボットシステム100は、横方向に沿って第2のパッケージに及ぶ把持姿勢を識別することができる。ロボットシステム100は、重なったパッケージ(複数可)を隣接するグループ化対象として識別することができる。ロボットシステム100は、追加のパッケージ(複数可)を対象パッケージ112と共に同時に掴持するための、識別された重なる把持姿勢を処理することができる。いくつかの実施形態では、ロボットシステム100は、たとえば、同時転置を最初に/単一の転置の前に評価するように、重なる把持姿勢を優先することができる。
上述のように、ロボットシステム100は、識別されたパッケージのセット(たとえば、スタック165及び/又はその一番上のレイヤ)の中のパッケージを反復的に選択及び分析することができる。ロボットシステム100は、分析されたパッケージの掴持セットを追跡し、識別されたパッケージごとに把持姿勢を組み合わせることができる。それに応じて、ロボットシステム100は、識別されたパッケージを掴持して開始位置114からタスク位置116に転置するための把持姿勢の組み合わせを決定することができる。把持姿勢の各組み合わせは、パッケージのセット内のオブジェクトを掴持するための一意の把持姿勢のセットを表すことができる。
ブロック2604において、ロボットシステム100は、計画された掴持について、統合された転置制御設定を導出することができる。ロボットシステム100は、重なる把持姿勢について、統合された転置制御設定を導出することができる。以下で詳細に説明するように、ロボットシステム100は、対象パッケージ112、同時掴持対象2250、又は他の任意の重なったパッケージについての図22の移動制御パラメータ2208を決定することができる。ロボットシステム100は、パッケージのセットについてのパラメータを、同時転置に対応する1つのパラメータに統合することができる。
ブロック2632において、ロボットシステム100は、エンドエフェクタ140のモデルと、同時掴持の対象となるパッケージ(たとえば、対象パッケージ112及び同時掴持対象2250)との間の重なり領域を識別することができる。把持姿勢のそれぞれについて、ロボットシステム100は、エンドエフェクタ140と、把持姿勢に対応するパッケージのそれぞれとの間の重なり量を計算することができる。いくつかの実施形態では、ロボットシステム100は、所定の閾値のセットに従って、図24に関して上述したような重なりをカテゴライズすることができる(たとえば、全部、一部、及び接触のカテゴリ)。代替的又は追加的には、ロボットシステム100は、パッケージに重なる吸引要素151の数をカウントすることができる。ロボットシステム100は、重なる吸引要素151の全体数、及び/又は真空領域117ごとの重なり領域を表す数をカウントすることができる。
ブロック2634において、ロボットシステム100は、制御パラメータ(たとえば、TSMなどの移動制御パラメータ2208)を決定することができる。制御パラメータは、把持姿勢に関連するパッケージごとに決定することができる。ロボットシステム100は、重なり領域に基づいて移動制御パラメータ2208を決定することができる。たとえば、エンドエフェクタ140の把持姿勢のそれぞれについて、ロボットシステム100は、対象パッケージ112を転置する力及び/又は関連の物理的特徴を表す対象制御パラメータを決定することができる。追加的には、把持姿勢のそれぞれについて、ロボットシステム100は、同時掴持対象2250を転置する力及び/又は関連の物理的特徴を表す第2の制御パラメータを決定することができる。
重なった領域に応じて、ロボットシステム100は、(1)対象パッケージ112を掴持するための第1の吸引要素のセット、(2)同時掴持パッケージ2250を掴持するための第2の吸引要素のセット、及び/又は(3)さらなるパッケージを掴持するための追加の吸引要素のセットを制御するための真空設定を表す制御パラメータを決定することができる。いくつかの実施形態では、ロボットシステム100は、パッケージに重なる真空領域117の個々のインスタンス(たとえば、吸引要素151のセット)をアクティブ化するための制御パラメータを決定することができる。個々の吸引要素を制御可能な実施形態では、制御パラメータは、重なり領域の境界内に配置された吸引要素151のセットを識別することができる。
追加的又は代替的には、ロボットシステム100は、把持強度の度合い(たとえば、真空力又は吸引要素を掴持する数)を表す制御パラメータを決定することができる。ロボットシステム100はさらに、たとえば、最高速度/加速度及び/又は推定転置時間など、把持強度の度合いに関連する転置の1つ又は複数の特徴を表す制御パラメータを決定することができる。いくつかの実施形態では、ロボットシステム100は、識別された重なり領域に基づいて、把持強度度合い及び/又は転置の特徴(たとえば、TSM)を(たとえば、画像データの受信後に)動的に計算することができる。代替的には、ロボットシステム100は、制御パラメータをオフラインで対応する把持姿勢と共に計算することができる。掴持セット2200は、移動制御パラメータ2208を対応する把持姿勢と共に含むことができ、ロボットシステム100は、所定のデータにアクセスすることに基づいてパラメータを決定することができる。
ブロック2636において、ロボットシステム100は、複数のパッケージを同時に掴持するように構成される掴持姿勢ごとに、グループ化転置パラメータ(たとえば、統合された移動制御パラメータ)を生成することができる。たとえば、ロボットシステム100は、重なったパッケージに対応する異なる吸引要素151のセットを1つのデータパラメータに統合することに基づいて、統合された移動制御パラメータを生成することができる。いくつかの実施形態では、統合されたデータパラメータは、各ビットが対応する真空領域/吸引要素のアクティブ化状態を表す16進ワードとすることができる。また、たとえば、統合された移動制御パラメータは、対象パッケージ112及び同時掴持対象2250を同時に操作する/動かす際に、転置アセンブリ104及び/又はエンドエフェクタ140を動作させるために使用される速度設定(たとえば、統合されたTSM)を表すことができる。いくつかの実施形態では、ロボットシステム100は、重なったパッケージのグループに対する転置速度又はTSMのうちの最小のもの(たとえば、対象制御パラメータ及び第2の制御パラメータの中の最低/最低速のインスタンス)を選択することにより、統合された移動制御パラメータを決定することができる。
ブロック2638において、ロボットシステム100は、パッケージのセットを転置するための総転置レートを評価することができる。評価のために、ロボットシステム100は、把持姿勢の組み合わせごとに、対応する制御パラメータに基づいて、総転置レート(たとえば、パッケージセットを転置するための推定速度又は時間)を推定することができる。換言すれば、ロボットシステム100は、識別されたパッケージのセットを転置するための掴持の解決策のセット(たとえば、把持姿勢の組み合わせ)を決定することができる。ロボットシステム100は、各掴持の解決策における把持姿勢についての重なり及び対応する制御パラメータ(たとえば、TSM)に基づいて、総転置レートを推定することができる。ロボットシステム100は、所定の処理又は数式に従ってTSMを組み合わせることに基づいて、総転置レートを推定することができる。たとえば、ロボットシステム100は、TSMを追加又は平均化することに基づいて、総転置レートを推定することができる。
ロボットシステム100は、異なる把持姿勢の組み合わせ又は掴持の解決策の総転置レートを比較することに基づいて、総転置レートを評価することができる。比較に基づいて、ロボットシステム100は、総転置レートに応じて把持姿勢の組み合わせを評価する、又はランク付けすることができる。それに応じて、ロボットシステム100は、パッケージのセットを同時に掴持することにより、識別されたパッケージのセット全体の転置が最適化されるか否かを評価することができる。
ブロック2606において、ロボットシステム100は、計画された掴持(たとえば、各把持姿勢)を有効性検証することができる。ロボットシステム100は、把持姿勢の組み合わせの1つ、たとえば、最も適した総転置レートを有する組み合わせを、有効性検証のために選択することができる。ロボットシステム100は、所定のルールのセットに従って把持姿勢の実現可能性を判定することなどによって、選択された組み合わせ内の把持姿勢を有効性検証することができる。
いくつかの実施形態では、ロボットシステム100は、たとえば、ブロック2642に示すように、同時に掴持されるパッケージの解放シーケンスを決定することに基づいて、計画された掴持の有効性検証をすることができる。所与の把持姿勢について、ロボットシステム100は、同時に掴持されたパッケージのセット(たとえば、対象パッケージ112及び同時掴持対象2250)をそれぞれの対象/目的地位置で解放するためのシーケンスを決定することができる。ロボットシステム100は、所定のルールのセット及び/又は所定のプロセスのセットに従って、解放シーケンスを決定することができる。解放シーケンスを決定するためのルールの一例は、より高いパッケージをより低いパッケージよりも早く解放するものとすることができる。それに応じて、ロボットシステム100は、解放されるパッケージの降下高さを最小限に抑えることにより、解放されたパッケージへの損傷を最小化又は排除しつつ、後で解放されるパッケージへの損傷(たとえば、押しつぶしイベント)を防ぐことができる。
説明用の例として、降下シーケンス決定プロセスは、ブロック2646に示すように、第1の手法に基づくことができる。第1の手法は、対象パッケージ112を同時掴持対象2250の前に解放できるか否かを検証することに基づくことができる。
第1の手法では、ロボットシステム100は、対応する把持姿勢について識別された重なり領域に応じて、対象接触セット(P1)及び残余セット(P2)を決定することができる。対象接触セットは、対応する把持姿勢について、対象パッケージ112に重なる吸引要素のセット(たとえば、1つ又は複数の真空領域117)を表すことができる。残余セットは、対象接触セットに含まれない第2の吸引要素のセット(たとえば、1つ又は複数の真空領域117)を表すことができる。したがって、第1の接触セット及び第2の接触セットは、相互排他的にすることができる。ロボットシステム100は、同時掴持対象2250の1つ又は複数の物理属性を表すデータにアクセスし、アクセスした結果を使用して、残余セットが同時掴持対象2250を掴持するのに十分であるか否かを判定することができる。残余セットが第2のパッケージを掴持するのに十分であると検証された場合、ロボットシステム100は、対象パッケージ112を同時掴持対象2250の前に解放できることを判定又は検証することができる。換言すれば、ロボットシステム100は、対象パッケージ112に重ならない吸引要素(複数可)151及び/又は真空領域(複数可)117が、同時掴持対象2250を掴持するのに十分である場合に、対象パッケージ112を最初に解放できることを検証することができる。検証に基づいて、ロボットシステム100は、対象パッケージ112を同時掴持対象2250の前に解放するための解放シーケンスを決定することができる。
また、説明用の例として、降下シーケンス決定プロセスは、ブロック2648に示すように、第2の手法に基づくことができる。第2の手法は、同時掴持対象2250を対象パッケージ112の前に解放できるか否かを検証することに基づくことができる。換言すれば、ロボットシステム100は、対象パッケージと、二次的な/重なったパッケージとの区別を変更することができる。いくつかの実施形態では、ロボットシステム100は、第1の手法が失敗した場合に(たとえば、残余セットが同時掴持対象2250を掴持するのに不十分な場合に)、第2の手法を実施することができる。
第2の手法について、ロボットシステム100は、対応する把持姿勢について識別された重なり領域に応じて、対象アクティブ化セット(A1)及び第2の接触セット(T2)を決定することができる。対象アクティブ化セットは、対象パッケージを掴持するためにアクティブ化されるように指定された吸引要素のセットを表すことができる。対象アクティブ化セットは、対象接触セット以下にすることができる。第2の接触セットは、同時掴持対象2250に重なる吸引要素のセットを表すことができる。ロボットシステム100は、対象アクティブ化セット及び第2の接触セットが相互排他的である場合に、同時掴持対象2250を対象パッケージ112の前に解放できることを検証することができる。それに応じて、ロボットシステム100は、第2の接触セット及び対象アクティブ化セットが相互排他的である場合に、同時掴持対象2250及び対象パッケージ112を解放するための解放シーケンスを決定することができる。
把持姿勢の組み合わせ内の同時掴持姿勢のうちの1つ又は複数が、解放シーケンスを提供できない(たとえば、第1の及び第2の手法の両方による有効性検証に失敗した)場合、ロボットシステム100は、図26内のフィードバックループで示すように、次の把持姿勢の組み合わせを選択して、評価することができる。ロボットシステム100は、選択された把持姿勢の組み合わせを、その中の把持姿勢のそれぞれが有効な降下シーケンスを提供する場合に、有効性検証することができる。それに応じて、ロボットシステム100は、パッケージのセットを掴持及び転置するための一意の把持姿勢のセット/解決策(たとえば、複数のパッケージを同時に掴持するための1つ又は複数の同時掴持姿勢を含む)を選択することができる。上述のように、ロボットシステム100は、(1)有効な掴持(たとえば、有効な解放シーケンス)を提供すると共に、(2)識別されたパッケージのセットの転置に関連する効率尺度(たとえば、転置レート及び/又は転置時間)を最大化する、同時掴持姿勢を選択することができる。
ブロック2608において、ロボットシステム100は、有効性検証された掴持に基づいて、モーションプランのセットを導出することができる。ロボットシステム100は、選択された姿勢の組み合わせにおけるグリッパ位置のそれぞれについて、モーションプランを導出することができる。組み合わせ内の同時掴持姿勢について、ロボットシステム100は、(1)対応する同時掴持姿勢に従ってエンドエフェクタ140を載置し、(2)導出された/有効性検証された吸引要素のセット(たとえば、P1、P2、A1、及び/又はT2)をアクティブ化して重なったパッケージを同時に掴持し、(3)掴持されたパッケージを転置し、(4)パッケージを対応する対象位置で解放する、モーションプランを導出することができる。
いくつかの実施形態では、ロボットシステム100は、逆運動学(IK)のメカニズムに基づいて各モーションプランを導出することができる。IKメカニズムに従って、ロボットシステム100は、掴持されたパッケージの対象位置(複数可)を特定することに基づいて、モーションプランを導出することができる。ロボットシステム100は、対象位置(複数可)、たとえば、最後に解放されるパッケージの対象位置から開始し、開始位置へ向かう逆行順序でのエンドエフェクタ140、ロボットアーム、及びパッケージの移動を(たとえば、モデルを重ねて)反復的にシミュレートすることができる。それに応じて、ロボットシステム100は、障害物/衝突を回避する転置経路を導出することができる。ロボットシステム100は、導出された転置経路、及び/又はエンドエフェクタ140及び転置アセンブリ104を動作させるための対応するコマンド及び/又は設定のセット/シーケンスとして、モーションプランを導出することができる。
ブロック2610において、ロボットシステム100は、モーションプランのセットを実施することができる。ロボットシステム100は、転置経路、対応するコマンド、及び/又は対応する設定をプロセッサ202から転置アセンブリ104に伝達することに基づいて、モーションプランを実施することができる。受信すると、転置アセンブリ104は、転置経路に従ってモーションプランを実施し、対応するコマンド及び/又は対応する設定を実行することができる。
いくつかの実施形態では、ロボットシステム100は、実施中に上述のモーションプラン及び/又は対応する導出物の正確性を検証することができる。たとえば、ブロック2652に示すように、ロボットシステム100は、モーションプランの実施中に、掴持パッケージ(複数可)を解放する前に、転置しているオブジェクト(複数可)の1つ又は複数の寸法をチェックすることができる。チェックのために、ロボットシステム100は、図25の目的地センサ2502の1つ又は複数からデータを取得することができる。取得されたデータは、モーションプランの実行中に、タスク位置(複数可)の上方の横方向の検知線/面と交差した掴持されたパッケージ(複数可)を表すことができる。取得されるデータのいくつかの例は、トリガイベント(たとえば、オブジェクト進入イベント)、トリガしたセンサの識別子及び/又は位置、及び/又はそれらのイベントに関連付けられたタイムスタンプを含むことができる。
取得したデータを使用して、ロボットシステム100は、どのパッケージが検知線/面と交差したか、及び/又は交差しているパッケージの1つ又は複数の寸法を推定することができる。たとえば、ロボットシステム100は、エンドエフェクタ140の追跡された位置及びパッケージの相対的な/追跡された位置をトリガしたセンサの横位置/座標と比較することに基づいて、対象パッケージ112及び同時掴持対象2250のいずれであるかを特定することができる。また、ロボットシステム100は、トリガしたセンサの高さ(既知の値)を、交差イベント時のエンドエフェクタ140の高さ(たとえば、その底部分の高さ)から減算することにより、交差しているパッケージの高さを計算することができる。さらに、ロボットシステム100は、トリガしたセンサの数と、トリガしたセンサの横位置及び/又は間隔とに基づいて、交差しているパッケージの横寸法を計算することができる。
ロボットシステム100は、動的に導出された値を想定値と比較することに基づいて、モーションプランを有効性検証することができる。たとえば、ロボットシステム100は、交差しているパッケージが、対象パッケージ112及び同時掴持対象2250(たとえば、同時に掴持されるパッケージの中で最大の高さを有するパッケージ)のうちの想定されたものであることを検証することができる。また、ロボットシステム100は、導出された寸法を対応するパッケージに関するマスターデータに記憶された情報と比較する。
ロボットシステム100は、導出された結果が想定値と一致する場合に、モーションプランの残りの部分を完了することができる。導出された結果が想定値と一致しない場合、たとえば、想定外のパッケージがセンサをトリガした、及び/又はトリガしたパッケージが想定外の寸法(複数可)を有する場合、ロボットシステム100は、モーションプランの残りの部分を再評価することができる。いくつかの実施形態では、ロボットシステム100は、置換モーションプラン、たとえば、解放シーケンス/位置を調整し、及び/又は解放高さを調整するためのものを導出することができる。たとえば、後で解放するように指定されたパッケージが、最初の/先の解放パッケージの前に検知線/面と交差した場合、ロボットシステム100は、最初の/先の解放パッケージをより高い高さで解放できるか否かを判定することができる。ロボットシステム100は、トリガイベント時のエンドエフェクタ140の高さに基づいて、より高い解放高さを求めることができる。ロボットシステム100は、先の解放パッケージ(たとえば、対象パッケージ112)の高さ及び/又は重量に基づいて、より高い解放高さの実現可能性を判定することができる。
いくつかの実施形態では、ロボットシステム100は、フィードバックループで示すように解放シーケンス/位置を調整することに基づいて、置換モーションプランを導出することができる。ロボットシステム100は、最も高いパッケージを最初に解放するための置換モーションプランを導出することができる。ロボットシステム100は、IKメカニズムなしの置換モーションプランを導出することができる。ロボットシステム100は、目的地センサ2502から取得されたデータに応じて、置換モーションプランを導出することができる。ロボットシステム100は、ブロック2610に示すように置換モーションプランを実施することができる。
方法2600は、所与のパッケージのセットについて、実用的な量の並べ替え(たとえば、通知された掴持セット)を提供及び分析することができる。実用的な量の並べ替えを使用して、ロボットシステム100は、複数のパッケージを同時に掴持及び転置する実現可能性と、それが所与のパッケージのセットの転置を実際に改善するか否かを評価することができる。それに応じて、ロボットシステム100は、複数のパッケージの同時掴持及び転置を効率的に可能にし、パッケージのセット(たとえば、パッケージのスタック又はそのレイヤ)の総転置時間を短縮することができる。
例
本技術の1つ又は複数の実施形態は、転置ロボットを動作させる方法に基づくか又はこれを含むことができ、この方法は、開始位置におけるパッケージを描写する画像データを受信することであって、画像データは、パッケージのうちの2つ以上の同時掴持を分析するためのものである、受信すること、画像データに基づいて対象パッケージを識別すること、対象パッケージに対する把持姿勢を表す掴持セットを決定すること、第2のパッケージに重なる掴持セット内の把持姿勢のセットを識別すること、対象パッケージ及び第2のパッケージを同時に操作するための統合された移動制御パラメータを導出すること、対象パッケージ及び第2のパッケージをそれぞれの対象位置に載置するための解放シーケンスを決定すること、統合された移動制御パラメータ及び解放シーケンスに基づいて掴持セットから同時掴持姿勢を選択することであって、同時掴持姿勢は、対象パッケージ及び第2のパッケージを同時に掴持及び転置するための輸送ロボットのマルチグリッパアセンブリの姿勢を表す、選択すること、同時掴持姿勢に基づいてモーションプランを導出することであって、モーションプランは、同時に対象パッケージ及び第2のパッケージをそれぞれの対象位置に転置するようにマルチグリッパアセンブリを操作するためのものである、導出すること、及び/又は、対象パッケージ及び第2のパッケージを同時に掴持及び転置するように輸送ロボットを動作させるためのモーションプランを実施すること、を含み得る。
例示的な方法では、掴持セットは通知された姿勢のセットとすることができ、各通知された姿勢は、マルチグリッパアセンブリの境界を対象パッケージの周縁と位置合わせするためのものとすることができる。追加的又は代替的には、統合された移動制御パラメータを導出することは、掴持セットに基づいて対象制御パラメータを決定することであって、対象制御パラメータは、マルチグリッパアセンブリの対象姿勢に従って対象パッケージを転置する力、及び/又は、速度に関係した関連の物理的特徴を表す、決定すること、マルチグリッパアセンブリと第2のパッケージとの間の重なりを推定することに基づいて第2の制御パラメータを決定することであって、第2の制御パラメータは、マルチグリッパアセンブリの対象姿勢に従って第2のパッケージを転置する力及び/又は速度に関係した関連の物理的特徴を表す、決定すること、及び/又は、統合された移動制御パラメータを、低い方の転置速度に対応する、対象制御パラメータ又は第2の制御パラメータとして選択すること、を含む。いくつかの実施形態では、統合された移動制御パラメータは、(1)対象パッケージ及び第2のパッケージを同時に操作するための輸送ロボット及び/又はマルチグリッパアセンブリの速度設定、及び/又は、(2)マルチグリッパアセンブリ内の第1の吸引要素のセット及び第2の吸引要素のセットを制御して、それぞれ対象パッケージ及び第2のパッケージを掴持するための真空設定、を表すことができる。さらに、同時掴持姿勢を選択することは、対象パッケージ及び第2のパッケージを含むパッケージのセットを転置することに関連する効率尺度を最大化する同時掴持姿勢を選択することを含むことができる。
いくつかの実施形態では、この方法は、画像データに基づいてパッケージのセットを識別することであって、パッケージのセットは、画像データに関連付けられた撮像デバイスに対して露出していると共に、対応する開始位置とタスク位置との間の転置の対象であるオブジェクトを表す、識別することと、掴持セットに少なくとも部分的に基づいて、パッケージのセット内のオブジェクトを掴持及び転置するための一意の把持姿勢のセットをそれぞれが表す姿勢の組み合わせを決定することと、姿勢の組み合わせのそれぞれについて、関連する移動制御パラメータに基づいて、総転置レートを推定することと、をさらに含むことができ、及び/又は、同時掴持姿勢は、総転置時間の最短のインスタンスを有する姿勢の組み合わせのうちの1つを選択することに基づいて選択される。加えて、パッケージのセットは、パッケージスタックの一番上のレイヤを形成するパッケージを表すことができる。
例示的な方法では、解放シーケンスを決定することは、対象パッケージに重なる吸引要素のセットを表す対象接触セットを決定することと、対象接触セットを除く第2の吸引要素のセットを表す残余セットを決定することと、第2のパッケージの1つ又は複数の物理的特徴に基づいて、残余セットが第2のパッケージを掴持するのに十分であるか否かを検証することと、残余セットが第2のパッケージを掴持するのに十分であることが検証された場合に、第2のパッケージよりも先に対象パッケージを解放するための解放シーケンスを決定することと、を含むことができる。追加的又は代替的には、解放シーケンスを決定することは、対象パッケージを掴持するように指定された吸引要素のセットを表す対象アクティブ化セットを決定すること、第2のパッケージに重なる第2の吸引要素のセットを表す第2の接触セットを決定すること、第2の接触セット及び対象アクティブ化セットが相互排他的であるか否かを検証すること、及び/又は、第2の接触セット及び対象アクティブ化セットが相互排他的である場合に、第1のパッケージよりも先に第2のパッケージを解放するための解放シーケンスを決定すること、を含むことができる。
いくつかの実施形態では、解放シーケンスは、掴持されたパッケージのうちの最も高いものを最初に解放するためのルールに基づいて決定することができる。この方法でのモーションプランを導出することは、解放シーケンスに従って対象パッケージ及び第2のパッケージの載置位置を導出すること、及び/又は、載置位置から対象パッケージ及び第2のパッケージの開始位置までの逆順での対象パッケージ及び第2のパッケージの移動を反復的にシミュレート及び検証することに基づいて、モーションプランを導出すること、を含むことができる。
いくつかの実施形態では、この方法は、1つ又は複数の目的地センサからデータを取得することであって、データは、モーションプランの実行中にタスク位置の上方の横線と交差している対象パッケージ及び/又は第2のパッケージを表す、取得すること、取得されたデータに基づいて位置のセットを識別することであって、位置のセットは、1つ又は複数の目的地センサの位置を特定する、識別すること、及び/又は、位置のセットに基づいてモーションプランの有効性を判定すること、をさらに含むことができる。位置のセットに基づいてモーションプランを検証することは、位置のセットに基づいて交差しているパッケージを識別することと、交差しているパッケージの少なくとも1つの推定寸法を導出することであって、少なくとも1つの推定寸法は、交差しているパッケージの推定高さ及び/又は推定横寸法を含む、導出することと、(1)交差しているパッケージが、より長い高さを有すると推定された対象パッケージ又は第2のパッケージと最初に一致する場合、及び/又は(2)少なくとも1つの推定寸法が、マスターデータに記憶された対象パッケージ又は第2のパッケージの1つ又は複数の対応する寸法と一致する場合に、モーションプランを検証することと、を含むことができる。追加的又は代替的には、この方法は、位置のセットに従って、モーションプランが無効であると判定された場合に、置換プランを導出することであって、(1)置換プランは、対象パッケージ及び第2のパッケージをそれぞれのタスク位置に載置するようにマルチグリッパアセンブリを操作するためのものであり、及び/又は、置換プランは、モーションプランの残りの部分を置き換えるために、1つ又は複数の目的地センサから取得されたデータに従って導出される、導出すること、及び/又は、無効判定に応答して、対象パッケージ及び第2のパッケージをそれぞれのタスク位置に載置するために、モーションプランの残りの部分の代わりに、置換プランを実施すること、をさらに含むことができる。
本技術の1つ又は複数の実施形態は、例示的な方法の1つ又は複数の態様に従って、輸送ロボットの動作を制御するように構成されるシステムに基づくか又はこれを含むことができる。一例として、このシステムは、センサのセット及び輸送ロボットを用いてデータ、コマンド、及び/又は設定を通信するように構成される通信回路であって、開始位置における対象パッケージ及び第2のパッケージを含むパッケージを描写する画像データを受信することと、対象パッケージ及び第2のパッケージを同時に掴持及び転置するように輸送ロボットを動作させるためのモーションプラン、あるいは対応するコマンド及び/又は設定のセットを送ることと、を行うように構成される、通信回路と、通信回路に結合される少なくとも1つのプロセッサであって、画像データに基づいて対象パッケージを識別すること、対象パッケージに対する把持姿勢を表す掴持セットを決定すること、第2のパッケージに重なる掴持セット内の把持姿勢のセットを識別すること、対象パッケージ及び第2のパッケージを同時に操作するための統合された移動制御パラメータを導出すること、対象パッケージ及び第2のパッケージをそれぞれの対象位置に載置するための解放シーケンスを決定すること、統合された移動制御パラメータ及び解放シーケンスに基づいて掴持セットから同時掴持姿勢を選択することであって、同時掴持姿勢は、対象パッケージ及び第2のパッケージを同時に掴持及び転置するためのマルチグリッパアセンブリの姿勢を表す、選択すること、及び/又は、同時掴持姿勢に基づいてモーションプランを導出することであって、モーションプランは、対象パッケージ及び第2のパッケージをそれぞれの対象位置に同時に転置するようにマルチグリッパアセンブリを操作するためのものである、導出すること、を行うように構成される、少なくとも1つのプロセッサと、を含み得る。追加的又は代替的には、プロセッサは、マルチグリッパアセンブリの第1の吸引要素のセットと、マルチグリッパアセンブリの第2の吸引要素のセットとを動作させるためのモーションプランを導出するように構成することができ、第1のセットは、対象パッケージを掴持するように構成され、第2のセットは、第2のパッケージを掴持するように構成される。
本技術の1つ又は複数の実施形態は、1つ又は複数のプロセッサにより実行された場合に、1つ又は複数のプロセッサに例示的な方法の1つ又は複数の態様を実施させるプロセッサ命令が記憶された有形非一時的コンピュータ可読媒体に基づくか又はこれを含むことができる。一例として、実施される方法は、開始位置におけるパッケージを描写する画像データを受信することであって、画像データは、パッケージのうちの2つ以上の同時掴持を分析するためのものである、受信すること、画像データに基づいて対象パッケージを識別すること、対象パッケージに対する把持姿勢を表す掴持セットを決定すること、第2のパッケージに重なる掴持セット内の把持姿勢のセットを識別すること、対象パッケージ及び第2のパッケージを同時に操作するための統合された移動制御パラメータを導出すること、対象パッケージ及び第2のパッケージをそれぞれの対象位置に載置するための解放シーケンスを決定すること、統合された移動制御パラメータ及び解放シーケンスに基づいて掴持セットから同時掴持姿勢を選択することであって、同時掴持姿勢は、対象パッケージ及び第2のパッケージを同時に掴持及び転置するためのマルチグリッパアセンブリの姿勢を表す、選択すること、同時掴持姿勢に基づいてモーションプランを導出することであって、モーションプランは、同時に対象パッケージ及び第2のパッケージをそれぞれの対象位置に転置するようにマルチグリッパアセンブリを操作するためのものである、導出すること、及び/又は、対象パッケージ及び第2のパッケージを同時に掴持及び転置するように輸送ロボットを動作させるためのモーションプランを実施すること、を含むことができる。実施される方法は、画像データに基づいてパッケージのセットを識別することであって、パッケージのセットは、対象パッケージ及び第2のパッケージを含み、パッケージのセットは、画像データに関連付けられた撮像デバイスに対して露出していると共に、対応する開始位置とタスク位置との間の転置の対象であるオブジェクトを表す、識別することと、掴持セットに少なくとも部分的に基づいて、パッケージのセット内のオブジェクトを掴持及び転置するための一意の把持姿勢のセットをそれぞれが表す姿勢の組み合わせを決定することと、姿勢の組み合わせのそれぞれについて、関連する移動制御パラメータに基づいて、総転置レートを推定することと、を追加的に含むことができ、及び/又は、同時掴持姿勢は、総転置時間の最短のインスタンスを有する姿勢の組み合わせのうちの1つを選択することに基づいて選択される。追加的又は代替的には、解放シーケンスを決定することは、対象パッケージに重なる吸引要素のセットを表す対象接触セットを決定すること、対象接触セットにない第2の吸引要素のセットを表す残余セットを決定すること、第2のパッケージの1つ又は複数の物理的特徴に基づいて、残余セットが第2のパッケージを掴持するのに十分であるか否かを検証すること、残余セットが第2のパッケージを掴持するのに不十分であることが検証された場合に、対象パッケージを掴持するように指定された吸引要素のセットを表す対象アクティブ化セットを決定することであって、対象アクティブ化セットは、対象接触セットよりも少ない要素を含む、決定すること、第2のパッケージに重なる第2の吸引要素のセットを表す第2の接触セットを決定すること、第2の接触セット及び対象アクティブ化セットが相互排他的であるか否かを検証すること、及び/又は、第2の接触セット及び対象アクティブ化セットが相互排他的である場合に、第1のパッケージよりも先に第2のパッケージを解放するための解放シーケンスを決定すること、を含むことができる。
結論
開示した技術の実施例の上記の詳細な説明は、網羅的なものではなく、開示した技術を上記で開示した厳密な形に限定するものでもない。開示した技術の具体例を例示の目的で上述しているが、当業者であれば理解するように、開示した技術の範囲内で様々な等価な修正が可能である。たとえば、処理又はブロックを所与の順序で提示しているが、代替的な実施態様は異なる順序のステップを有するルーチンを実行してもよく、又は異なる順序のブロックを有するシステムを採用してもよく、一部の処理又はブロックを削除、移動、追加、細分化、結合、及び/又は修正して、代替的な組み合わせ又は部分的な組み合わせを提供してもよい。これらの処理又はブロックのそれぞれは、種々の異なる方法で実施されてもよい。また、処理又はブロックは順番に実行されるように示している場合があるが、これらの処理又はブロックは代わりに並列に実行又は実施されてもよく、又は異なる時に実行されてもよい。さらに、本明細書に記載の任意の特定の数字は例にすぎず、代替的な実施態様は異なる値又は範囲を採用してもよい。
これら及び他の変更は、上記の詳細な説明に照らして、開示した技術に対して行うことができる。詳細な説明では、開示した技術の特定の例だけでなく、企図される最良の形態を説明しているが、上記の説明が文中でどれほど詳細に見えても、開示した技術は多くの方法で実践することができる。システムの詳細はその特定の実施態様において大幅に異なってもよく、本明細書で開示した技術によってなおも包含される。上述のように、開示した技術の特定の特徴又は態様を説明する際に使用される特定の用語は、その用語が関連する開示した技術の任意の特定の特性、特徴、又は態様に限定されるようにその用語が本明細書で再定義されることを意味するよう解釈されるべきではない。したがって、本発明は、添付の特許請求の範囲を除いて、限定されない。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明のセクションがそのような用語を明確に定義していない限り、開示した技術を本明細書で開示した具体例に限定するように解釈されるべきではない。
本発明の特定の態様を特定の請求項の形式で以下に提示するが、出願人は本発明の様々な態様を任意数の請求項の形式で企図している。したがって、出願人は、本出願又は継続出願において、そのような追加の請求項の形式を追求するために本出願を提出した後に追加の請求を追求する権利を留保している。