本明細書では、選択された物体をグリップするためのシステム及び方法について説明する。システムは、独立して、又は単一物体又は複数の物体をグリップして/解放するように連動して動作するように構成されたマルチグリッパアセンブリを備えた搬送ロボットを含むことができる。マルチグリッパアセンブリは、グリップパッド及び/又はインターフェースのセットを含むことができ、各パッド/インターフェースは、複数の表面を同時に把持するように構成されている。例えば、システムは、多面グリッパアセンブリ(例えば、L字型多面グリッパ)を使用して、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又はコンベヤに載せるように構成されることができる。別の例では、移送アセンブリ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の構成要素及びサブシステムは、異なるタイプのエンドエフェクタを含むことができる。例えば、アンローディングユニット102、搬送ユニット106、ローディングユニット108、及びロボットシステム100の他の構成要素はまた、ロボットマルチグリッパアセンブリを含むことができる。ロボットグリッパアセンブリの構成は、所望の運搬能力に基づいて選択することができる。例示の目的のために、ロボットシステム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(Institute of Electrical and Electronics Engineers)標準1394バス(「ファイアワイア」とも呼ばれる)などのバスを含むことができる。また、例えば、ロボットシステム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つ又は複数の構造部材/その関節の場所)を、及び/又は周囲環境を検出又は測定するように構成されたデバイスを含むことができる。センサ216のいくつかの例は、接触センサ、近接センサ、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、トルクセンサ、位置エンコーダ、圧力センサ、真空センサなどを含むことができる。
いくつかの実施形態では、例えば、センサ216は、周囲環境を検出するように構成された1つ又は複数の撮像デバイス222(例えば、二次元(2D)及び/又は三次元(3D)の撮像デバイス)を含むことができる。撮像デバイスは、カメラ(視覚カメラ及び/又は赤外線カメラを含む)、ライダデバイス、レーダデバイス、及び/又はその他の距離測定又は検出デバイスを含むことができる。撮像デバイス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の対応する関節の位置を検出するように構成された図2の位置センサ224(例えば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサ224を使用して、タスクの実行中に構造部材及び/又は関節の場所及び/又は配向を追跡することができる。本明細書に開示されるアンローディングユニット、移送ユニット、搬送ユニット/アセンブリ、及びローディングユニットは、センサ216を含むことができる。
いくつかの実施形態では、センサ216は、複数の物理的構造又は表面との間の直接接触に関連付けられた特性を測定するように構成された接触センサ226(例えば、力センサ、ひずみゲージ、ピエゾ抵抗/圧電センサ、静電容量センサ、弾性抵抗センサ、及び/又は他の触覚センサ)を含むことができる。接触センサ226は、対象パッケージ112上のエンドエフェクタ(例えば、グリッパ)のグリップに対応する特性を測定することができる。従って、接触センサ226は、物理的接触、グリッパと対象パッケージ112との間の接触もしくは付着の程度、又は他の接触特性に対応する定量化された測定値(例えば、測定された力、トルク、位置など)を表す接触測定値を出力することができる。例えば、接触測定値は、エンドエフェクタによる対象パッケージ112のグリップに関連付けられた力に関連付けられた1つ又は複数の力、圧力、又はトルクの読み取り値を含むことができる。いくつかの実施形態では、接触測定値は、(1)真空グリップに関連する圧力読み取り値と、(2)運搬物体(複数可)に関連する力読み取り値(例えば、モーメント読み取り値)と、の両方を含むことができる。
以下でさらに詳細に説明するように、ロボットシステム100(例えば、プロセッサ202を介して)は、接触測定値、画像データ、それらの組み合わせなどに基づいてタスクを達成するための異なるアクションを実行することができる。例えば、ロボットシステム100は、真空グリップが低い(例えば、吸引レベルが真空閾値を下回る)、又は、それらの組み合わせなど、初期接触測定値が閾値を下回る場合、対象パッケージ112を再グリップすることができる。同様に、ロボットシステム100は、1つ又は複数の搬送ルール(例えば、接触測定値又は吸引レベルが、タスクの実行中に閾値を下回る場合)ならびに接触測定値、画像データ、及び/又は他の読取り値もしくはデータに基づいて、対象パッケージ112を意図的に降下し、タスク場所116を調整し、アクションの速度又は加速度、もしくはそれらの組み合わせを調整することができる。
ロボット移送アセンブリ
図3は、本技術の1つ又は複数の実施形態による、移送アセンブリ104を示す。移送アセンブリ104は、撮像システム160及びロボットアームシステム132を含むことができる。撮像システム160は、この実施形態では、デパレタイズプラットフォーム110であり得る開始場所114を含む、対象環境から取り込んだ画像データを提供することができる。ロボットアームシステム132は、ロボットアームアセンブリ139と、多面グリッパアセンブリ141(「L字型グリッパアセンブリ141」とも呼ばれる)を含むエンドエフェクタ140と、を含むことができる。多面グリッパアセンブリ141は、図3に示されるサイドパッド141-1及びトップパッド141-2などの少なくとも2つのグリップ装置を含む。ロボットアームアセンブリ139は、ソース場所163に位置する物体スタック165内の物体のグループの上にエンドエフェクタ140を位置付け、物体スタック165からの物体をソース場所163からタスク場所116に移送することができる。
対象物体は、エンドエフェクタ140の底部に対して固定されることができる。いくつかの実施形態では、多面グリッパアセンブリ141は、真空グリップを提供するためにそれぞれが選択的に空気を引き込むことができるアドレス指定可能な領域を有することができる。動作のいくつかのモードでは、対象物体(複数可)に近接するアドレス指定可能な領域のみが空気を引き込み、真空グリッパデバイスと対象物体(複数可)との間に直接的に圧力差をもたらす。これにより、多面グリッパアセンブリ141の他のグリップ部分が、他のパッケージに隣接するか、又はそれらと接触している場合であっても、選択されたパッケージ(すなわち、対象パッケージ)のみが引かれ、そうでなければ、多面グリッパアセンブリ141に対して固定されることができる。
図3は、ケージカート120の上に位置付けられたパッケージ112(「パッケージ112」)を運搬する多面グリッパアセンブリ141を示している。ケージカート120は、底部プラットフォームと、物体を保持するためのカートを画定する1つ又は複数の垂直壁と、を含むことができる。例えば、ケージカート120は、ケージの3つの側を画定する3つの壁を含み、1つの側が開けられている間にエンドエフェクタ140がケージカート120に接近又は入ることを可能にしている。多面グリッパアセンブリ141は、ケージカート120又はコンベヤベルトに対応する場所か、又はその内部にある場所などのタスク場所116にパッケージ112を解放することができる。
引き続き図3を参照すると、デパレタイズプラットフォーム110(例えば、開始場所114)は、任意のプラットフォーム、表面、及び/又は構造を含むことができ、その上に複数の物体又はパッケージ112(単数で「パッケージ112」)が積み重ねられ、及び/又は段積みされることができ、搬送される準備が整う。撮像システム160は、デパレタイズプラットフォーム110上のパッケージ112の画像データを取り込むように構成された1つ又は複数のセンサ161(例えば、撮像デバイス)を含むことができる。センサ161は、距離データ、位置データ、ビデオ、静止画像、ライダデータ、レーダデータ、及び/又はソース場所163での動きを取り込むことができる。本明細書では「物体」及び「パッケージ」という用語が使用されているが、これらの用語は、限定されないが、「ケース」、「ボックス」、「カートン」又はそれらの組み合わせなどの、グリップされ、持ち上げられ、搬送され、及び送達されることが可能な他の任意のアイテムが含まれることに留意されたい。さらに、多角形ボックス(例えば、長方形ボックス)は、本明細書に開示される図面に示されているが、ボックス形状は、そのような形状に限定されず、以下で詳細に説明するように、グリップされ、持ち上げられ、搬送され、配達され得る任意の規則的又は不規則な形状を含む。
デパレタイズプラットフォーム110と同様に、受容ケージカート120は、さらなるタスク/操作のためにパッケージ112を受容するように指定された任意のプラットフォーム、表面、及び/又は構造を含むことができる。いくつかの実施形態では、受容ケージカート120は、ある場所(例えば、解放ポイント)からさらなる操作(例えば、仕分け及び/又は保管)のための別の場所にパッケージ112を搬送するためのコンベヤシステムを含むことができる。
物体の検出と分析
図4A及び図4Bは、図1のロボットシステム100によって処理される物体スタック404の一例を示している。図4Aは、パレット402上の物体スタック404の代表的な上面図であり、図4Bは、図4Aに示される基準線AA’沿ったパレット402上の物体スタック404の代表的な側面図であり、これらすべては、本技術の1つ又は複数の実施形態によるものである。物体スタック404は、図3に関して上記で説明した物体スタック404に対応することができる。図4A及び図4Bを合わせて参照すると、ロボットシステム100は、ソース場所(例えば、図3のソース場所163)にある物体スタック404内の物体を、上述のような、図3のケージカート120などの別の場所に移送するように構成されることができる。
一例として、図4A及び図4Bは、物体スタック404内の物体の最上層としての物体A~E(例えば、ボックス又はパッケージ)を示している。図4Aにおいて、図1に関して説明されたロボットシステム100は、取り込んだ2D及び3D画像データ及び/又は他のセンサデータに基づいて、3つの表面区間、Z1、Z2、及びZ3を識別することができる。表面区間とは、画像データに基づいて、均一な、又はほぼ均一な深度(例えば、近くのポイントの閾値範囲内)を有する領域を指す。物体A、B、C、及びDの上面に対応する区間Z1は、第1の深度を有することができ、物体Eの上面に対応する区間Z2は、第2の深度を有することができ、低いレベル又は層の表面に対応する区間Z3は、第3の深度を有することができる。第1の深度、第2の深度、及び第3の深度は、互いに区別されることができ、その結果、深度区間Z1は、最も高い表面に対応し、深度区間Z3は、物体スタック404の露出面の最も低い表面に対応するようになっている。深度区間Z2の表面は、深度区間Z3の表面よりも高く、深度区間Z1の表面よりも低くなり得る。深度区間Z3の表面は、パレット402の表面よりも高くなり得る。
表面識別とともに、又はそれに基づいて、ロボットシステム100は、物体の境界に対応し得るエッジ及び/又はコーナーを識別することができる。画像データ及び/又はセンサデータで表されるエッジ及び/又は連続表面は、深度測定値及び/又は画像特色の違い(例えば、線形パターン、影、又は明瞭さの違い)に基づいて識別されることができる。例えば、ロボットシステム100は、ソーベルフィルタを使用して、及び/又は、深度測定値の有意な変化に隣接するポイント(例えば、所定の許容閾値を超える)が、形状テンプレート(例えば、線形パターン)に従うときに、エッジを識別することができる。
さらに、ロボットシステム100は、開放エッジ及び/又は開放コーナー(それぞれ、露出したエッジ及び露出したコーナーとも呼ばれる)を識別することができる。ロボットシステム100は、2D及び/又は3D画像データを使用して、開放エッジ/コーナーを識別することができる。例えば、ロボットシステム100は、3D深度測定値を使用して、境界を接する開放エッジ/コーナーを識別することができるか、又はラインセグメントと併せて、深度測定値の変化に対応する2D画像データから導出された所定の閾値を超える深度測定値の変化を定義することができる。物体スタック163内の物体の開放エッジ及び開放コーナーを識別することは、図3に関して説明した多面グリッパアセンブリ141を使用して物体を把持するのに有用であり得る。例えば、開放エッジは、候補グリップ場所を決定するために使用され得、それは、開放エッジが、トップパッド141-2及びサイドパッド141-1が物体に接触することを可能にする高い尤度を有するからである。例えば、物体Dを把持する際に、ロボットシステム100は、開放コーナーC3を活用することができ、多面グリッパアセンブリ141が、物体Dの上面(水平)面、ならびに少なくとも1つの側面(垂直)面に接近して接触できるようになっている。
図4Aでは、画像又はセンサデータから導出された開放エッジは、ベクトル(例えば、ベクトル407及びベクトル408)で表され、検出結果のコーナー(例えば、コーナーC7)から延在することができる。開放コーナーは、開放コーナーで交差する2つの開放エッジを含んでいる。開放コーナーと、開放コーナーで交差する2つの露出したエッジとの組み合わせは、開放コーナーユニットと称されることができる(例えば、開放コーナーC7、ベクトル407及びベクトル408の組み合わせ)。開放コーナーユニットは、検出仮説の生成、及び検出プロセス中のロボットシステム100によるその後の処理(例えば、物体の位置の洗練化)のために使用され得る。他の物体/表面間のコーナー、又はそれらと当接するコーナーとは対照的に、開放コーナーは、1つの物体(例えば、物体D)の一部分を表すことができる。換言すれば、ロボットシステム100は、深度測定値における有意差を考慮して、開放コーナーが1つの対応する物体に属することを高い確実性で識別することができる。そうであるから、ロボットシステム100が検出結果を登録された物体と一致させることができないときなど、ロボットシステム100は、対応する物体の最小実行可能領域(MVR)を導出するために開放コーナーを使用することができる。MVRは、対応する物体に接触して持ち上げるのに必要な最小及び/又は最適な領域を表し得る。開放コーナー/エッジに基づいて、MVRは、開放エッジに対向するエッジ(例えば、2D及び/又は3Dエッジ)を識別することによって生成され得る。ロボットシステム100は、開放コーナーから開始し、対応する開放エッジを識別された反対側のエッジまでたどることによって、MVRを導出することができる。ロボットシステム100は、対応する閉じた/境界のある領域をMVRとして判定することができる。いくつかの実施形態では、ロボットシステム100は、境界領域を初期MVRとして使用することができ、これは、最終的MVRを生成するためにさらに調整及び/又は検証され得る。
一例として、図4Aでは、物体Aは、開放エッジ406-1及び開放エッジ406-2によって規定される開放コーナーC1を含み、これら開放エッジは両方とも、実質的に同じ高さで別の隣接する物体/表面に水平に当接していない。コーナーC1などの開放コーナーは、エッジ406-1と406-2などの2つの交差する開放エッジによって規定される頂点として識別できる。物体Aの開放エッジ406-2は、区間Z1と区間Z3との間の境界に位置している。エッジ406-2は、(1)深度区間Z1上の物体Aの上面と、(2)支持層に対応する深度区間Z3の上面と、に対応する深度値の間の境界又は移行部に関連付けられている。物体Aの上面に対応する領域は、露出したコーナーC1を原点として、2つの交差する露出したエッジ406-1と406-2によって境界が定められた象限であることができる。残りの部分は、物体スタック内の物体の後続層の上面に対応する深度値など、異なる深度値を有することができる。
図4Aは、開放性の程度/尺度(例えば、物体C及びDのコーナーC4、C5、及びC6に関連する弧)の図解をさらに含む。開放性の程度とは、開放エッジや開放コーナーなど、特徴部の周囲を遮るものがない空間の量を指す。いくつかの実施形態では、開放性の程度は、画像及び感知データから導出されることができるパラメータになり得、別の物体が、2D空間及び/又は3D空間の特徴部の距離内にあるかどうかを示す。一例として、図4Aでは、ロボットシステム100は、コーナーC4が水平方向に沿って、水平開放距離D1によって表される開放性の程度で開いているか(例えば、同じ高さで、又はほぼ同じ高さで、他の物体の隣接する特徴部を有していない)を判定することができる。また、物体CのコーナーC4の開放性の程度は、2つの隣接する円弧で示されており、これは、コーナーC4の周囲の水平(2D)領域の開放性の程度を示している。例えば、2つの円弧で示されている物体CのコーナーC4に関連付けられている開放性の程度は、物体Dに近接しているため、1つの円弧で示されている物体CのコーナーC5に関連付けられている開放性の程度よりも大きくなる。水平開放距離D1によって例示されるような水平距離はまた、開放エッジに対応する水平平面開放性の測定値又は程度に関連付けられることができる。例えば、水平開放距離D1に沿ったベクトルと、開放エッジ406-1又は406-2などの開放エッジは、開放エッジと任意の隣接する物体との間の水平方向での開放性の測定値又は程度を表すことができる水平平面を形成できる。いくつかの実施形態では、ロボットシステム100は、限度を設定することができ、その限度に対して水平開放距離D1が測定され、水平開放距離D1が、最大距離を有することができるようになり、それは、例えば、物体スタック内にあることができる最大の可能性のある物体サイズに対応する最大長さとして設定されることができる。
図4A及び図4Bはまた、閾値距離(例えば、距離D2、D3、及びD4)を示している。図4Aの閾値距離D2(「幅閾値距離」とも呼ばれる)は、物体をグリップするのに十分に大きな接触領域を形成するために、より具体的には、サイドパッド141-1の幅を収容するために、図3のサイドパッド141-1と接触するための物体(例えば、物体D)の側面に沿った幅を指す。図4Bの閾値距離D4(「高さ閾値」とも呼ばれる)は、物体をグリップするのに十分に大きな接触領域を形成するためにサイドパッド141-1と接触するための物体(例えば、物体D)の側面に沿った最小の高さを指す。例えば、物体Eに隣接する物体Dの側面は、サイドパッド141-1が物体Eの上部と衝突する可能性があるため、閾値距離D4を満たしていない。しかしながら、物体Eの反対側の物体Dの側面は、サイドパッド141-1と垂直方向で衝突する物体がないため、閾値距離D4を満たす。図4Aの閾値距離D3(「接近閾値」とも呼ばれる)は、物体(例えば、物体D)の側面に接近及び接触する際にグリップされたパッドによって必要とされるクリアランス距離を指す。閾値距離D3は、サイドパッド141-1が最も引っ込められているときのように、最もコンパクトな構成でサイドパッド141-1を収容するための最小量の空間に対応し得る。サイドパッド141-1が、水平、垂直、及び/又は対角線の接近軌道で物体Dの側面に接近するために十分な空間が利用可能であることを確認するために、閾値距離D3が使用され得る。ロボットシステム100は、開放性の程度と物体の閾値距離D2、D3、及びD4との組み合わせを使用して、物体のエッジ及びコーナーがある場合、それらのどれが多面グリッパアセンブリ141によって接近され、かつグリップされ得るかを判定することができる。
いくつかの実施形態において、垂直開放距離D5によって例示されるような垂直距離はまた、開放エッジに対応する垂直平面開放性の測定値又は程度に関連付けられることができる。例えば、垂直開放距離D5に沿ったベクトルと、開放エッジ406-3又は物体Bのなどの開放エッジは、開放エッジと任意の隣接する物体との間の垂直方向での開放性の測定値又は程度を表すことができる垂直面を形成できる。いくつかの実施形態では、ロボットシステム100は、限度を設定することができ、その限度に対して垂直開放距離D5が測定され、垂直開放距離D5が、最大距離を有することができるようになり、それは、例えば、物体スタック内にあることができる物体最大の可能な物体サイズに対応する最大長さとして設定されることができる。
図5は、物体に対する検出仮説及び仮説洗練化を示している。図1のロボットシステム100は、洗練化ユニットとして、1つ又は複数の開放コーナーユニットを選択することができる。図5に例示されるように、物体Dに対応する検出仮説に関して、洗練化ユニットは、C2、C3、C10、及びC11を含む4つの開放コーナーユニットに対応する。上述のように、ロボットシステム100は、物体を表す格納されたテンプレートに基づいて検出仮説を生成することができる。図5において、ロボットシステム100は、実線で示されたようなエッジ502を含む物体Dに対応する生成された検出仮説を有する。しかしながら、格納されているテンプレートは、実際の物体と若干異なり得る。従って、検出の精度を高めるために、ロボットシステム100は、物体の姿勢、場所、及び/又は寸法を洗練することができる仮説洗練化を生成することができる。破線で示された洗練されたエッジ504(センサ情報による物体Dの実際の位置、特に物体Dに対応する点群情報に対応する)によって示されるように、ロボットシステム100は、仮説洗練化を生成することができ、これは、物体Dに対する検出仮説の位置及び寸法を調整して、検出仮説のエッジ及びコーナーのうちの1つ又は複数を洗練されたエッジ504に位置合わせする。
いくつかの実施形態では、ロボットシステム100は、洗練化ユニットに従って、様々なアルゴリズムを適用することによって、仮説洗練化を生成することができる。例えば、ロボットシステム100は、2つの点群間の差を最小化することを試みる反復最接近点洗練化(ICP)、又は洗練化ユニット及び検出仮説に対する仮説洗練化を生成するための特異値分解(SVD)を使用して検出仮説の姿勢、配向、サイズ、及び/又は位置を洗練化することができる。仮説洗練化は、単一の開放コーナーユニットを含む洗練化ユニットを使用して生成され得る。しかしながら、仮説洗練化の精度は、2つ以上の開放コーナーユニットを含む洗練化ユニットにアルゴリズムを適用することによって改善されることができる。サイドパッド141-1の使用は、距離許容差を必要とし、これは、いくつかの実施形態では、対象物体に対して十分近くにサイドパッド141-1を位置付けて物体をサイドパッド141-1に対して固定するのに十分な吸引を提供するために1センチメートル以下であり得る。しかしながら、サイドパッド141-1が物体に近づき過ぎて位置付けられる場合、サイドパッド141-1は、物体の上部と衝突するか、又は物体を横方向にシフトする可能性がある(これにより、隣接する物体を変位させる可能性がある)。物体に対する検出仮説の姿勢洗練化は、物体に関連付けられた洗練化ユニットのうちの1つ又は複数を使用して、検出仮説を、物体が物体スタック内にあるような、物体の実際の位置、寸法、及び/又は配向により近づけて調整することによって、検出仮説の正確性と精度を増す恩恵をもたらす。例えば、姿勢洗練化は、サイドパッド141-1が対象物体と衝突することなく、対象物体から1センチメートル以下の距離内に位置付けられることを可能にする。従って、物体を掴むための軌道を計算するとき、ロボットシステム100は、サイドパッド141-1をより精密に位置付けるために姿勢洗練化を使用し、サイドパッド141-1が物体と衝突すること、又は物体の計画外の変位を防止しながら、物体を確実に把持することができる。
移送アセンブリ
図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は、複数の電子データ処理ユニットを含むこともできる。いくつかの実施形態では、PU150は、限定されないが、ロボットアームシステム132、エンドエフェクタ140、及び/又は撮像システム160を含むロボットシステム100の任意の他のシステムによって、又はそれと共に使用されるプロセッサ(複数可)とすることができる。図6のPU150及び図2のプロセッサ202は、同じ構成要素又は異なる構成要素とすることができる。
PU150は、入力データの受信を容易にするために、システム及び/又はソースに(例えば、有線接続、バス接続、及び/又は無線接続を介して)電子的に結合され得る。いくつかの実施形態では、動作可能に結合されたものは、電子的に結合されたものと交換可能であると考えられ得る。直接接続する必要はなく、代わりに、そのような入力データの受信及び出力データの提供は、バスを介して、無線ネットワークを介して、あるいは物理又は仮想コンピュータポートを介して、PU150によって受信及び/又は送信される信号として提供することができる。PU150は、本明細書で論じられる方法を実行するようにプログラム又は構成され得る。いくつかの実施形態では、PU150は、限定されないが、撮像システム160、及びエンドエフェクタ140などを含む様々なシステム及び/又はユニットからデータを受信するようにプログラム又は構成され得る。いくつかの実施形態では、PU150は、様々なシステム及び/又はユニットに出力データを提供するようにプログラム又は構成され得る。
撮像システム160は、パッケージ(例えば、図3のデパレタイズプラットフォーム110上に配置されたパッケージ112)を表す画像データを取り込むように構成される1つ又は複数のセンサ161を含むことができる。いくつかの実施形態では、画像データは、パッケージの登録状態の判定を行い得る1つ又は複数の表面に現れる視覚的デザイン及び/又はマーキングを表すことができる。いくつかの実施形態では、センサ161は、対象とされた(例えば、可視及び/又は赤外線)電磁スペクトル帯域幅内で作動するように構成されたカメラであり、対応するスペクトル内の光/エネルギーを検出するために使用される。いくつかのカメラ実施形態では、画像データは、1つ又は複数の3Dカメラ及び/又は1つ又は複数の2Dカメラから取り込まれた、点群、深度マップ、又はそれらの組み合わせを形成するデータ点のセットである。これらのカメラから、撮像システム160とパッケージ112の1つ又は複数の(例えば、撮像システム160の視野に対して)露出した表面との間の距離又は深度が判定され得る。いくつかの実施形態では、距離又は深度は、文脈画像分類アルゴリズム(複数可)及び/又はエッジ検出アルゴリズム(複数可)などの画像認識アルゴリズム(複数可)を使用することによって判定することができる。一旦判定されると、距離/深度の値は、ロボットアームシステムを介してパッケージを操作するために使用され得る。例えば、PU150及び/又はロボットアームシステムは、パッケージが持ち上げ及び/又はグリップされ得る位置を計算するために、距離/深度の値を使用することができる。画像データなどの本明細書に記載されたデータは、情報を含むか、又は情報を示すことができる、離散的又は連続的なアナログ又はデジタル信号のいずれかを含むことができることに留意されたい。
撮像システム160は、動作情報(例えば、状態情報、設定など)、センサ161によって取り込まれた対象パッケージ(複数可)112の画像、又は以下で詳細に論じるように、ロボットシステム100の1人又は複数人のオペレータによって閲覧され得る他の情報/出力を提示するように構成される少なくとも1つのディスプレイユニット164を含むことができる。さらに、ディスプレイユニット164は、限定されないが、対象パッケージ、非対象パッケージ、登録済みパッケージ、及び/又はパッケージの未登録インスタンスを表す記号などの、他の情報を提示するように構成されることができる。
視覚センサデバイス143は、有線接続及び/又は無線接続を介してPU150と通信することができる。視覚センサ145は、ビデオセンサ、CCDセンサ、ライダセンサ、レーダセンサ、距離測定デバイス又は距離検出デバイスなどとすることができる。視覚センサデバイス143からの出力は、マシン/コンピュータビジョンを実行するために(例えば、自動検査、ロボットガイダンス、又は他のロボットアプリケーションために)使用される、デジタル画像及び/又は点群などのパッケージ(複数可)の表現を生成するために使用することができる。視野(例えば、30度、90度、120度、150度、180度、210度、270度の水平及び/又は垂直の視野)及び視覚センサデバイス143の範囲能力は、多面グリッパアセンブリ141の構成に基づいて選択されることができる。(図4は、約90度の例示的な水平視野を示す。)いくつかの実施形態では、視覚センサ145は、1つ又は複数の光源(例えば、レーザ、赤外線レーザなど)及び光学検出器を有するライダセンサである。光検出器は、光源から放射され、パッケージの表面で反射した光を検出することができる。パッケージの存在及び/又はパッケージまでの距離は、検出された光に基づいて判定されることができる。いくつかの実施形態では、視覚センサ145は、実質的にすべての真空グリップ区間などの領域を走査することができる。例えば、視覚センサ145は、検出区間を横切って放射された光を偏向させるために移動する1つ又は複数の偏向器を含むことができる。いくつかの実施形態では、視覚センサ145は、10°のライダ走査、30°のライダ走査、50°のライダ走査など、垂直及び/又は水平に走査することが可能な走査レーザベースのライダセンサである。視覚センサ145の構成、視野、感度、及び出力は、所望の検出能力に基づいて選択することができる。いくつかの実施形態では、視覚センサ145は、存在検出器/距離検出器(例えば、レーダセンサ、ライダセンサなど)及び、3Dカメラ又は2Dカメラなどの1つ又は複数のカメラの両方を含むことができる。センサとパッケージの1つ又は複数の表面との間の距離又は深度は、例えば、1つ又は複数の画像認識アルゴリズムを使用して判定されることができる。ディスプレイ210は、画像データを見ること、センサの状態を見ること、較正ルーチンを実行すること、ログ及び/又はレポートを見ること、又は限定されないが、対象の、非対称の、登録済み、及び/又は未登録パッケージ112のインスタンスを表す記号などの、他の情報もしくはデータを見ることを行うために使用されることができる。
ロボットシステム100を制御するために、PU150は、視覚センサ145及びセンサ161の一方又は両方からの出力を使用することができる。いくつかの実施形態では、センサ161からの画像出力は、物体を搬送するための命令を含む、全体的な移送プランを決定するために使用される。視覚センサ145及びセンサ205(例えば、力検出器アセブリ)からの画像出力は、物体に対するマルチグリッパアセンブリの位置決め、物体の取り上げの確認、及び搬送ステップの監視を行うために使用することができる。
図6を引き続き参照すると、RDS170は、複数のパッケージ112の登録レコード172、真空グリッパ用のデータ173を記憶するように構成される任意のデータベース及び/又はメモリ記憶デバイス(例えば、非一時的コンピュータ可読媒体)を含むことができる。例えば、RDS170は、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、ソリッドステートメモリ、セキュアデジタルカード、コンパクトフラッシュカード、及び/又はデータ記憶サーバ又はリモート記憶デバイスを含むことができる。
いくつかの実施形態では、登録レコード172は、対応するパッケージ112の物理的特性又は属性をそれぞれに含むことができる。例えば、各登録レコード172は、限定されないが、1つ又は複数のテンプレートSI、視覚データ(例えば、基準レーダデータ、基準ライダデータなど)、2D又は3Dサイズ測定値、重量、及び/又は重心情報を含むことができる。テンプレートSIは、パッケージのデザイン、マーキング、外観、外形/輪郭、又はそれらの組み合わせを含む、パッケージの既知の、又は以前に判定された可視特性を表すことができる。2D又は3Dのサイズ測定値は、既知のパッケージ/予期されるパッケージの長さ、幅、高さ、又はそれらの組み合わせを含むことができる。
いくつかの実施形態では、RDS170は、以下に開示される実施形態に従って作成された(例えば、以前は未知であったパッケージのための、及び/又は以前は未知であったパッケージの態様のための)登録レコード172の新規インスタンスを受信するように構成することができる。従って、ロボットシステム100は、RDS170に記憶された登録レコード172の数を拡張することによってパッケージ112を登録するためのプロセスを自動化することができ、それによって、パッケージ112の未登録のインスタンスを少なくして、デパレタイズ動作をより効率的に行うことができる。ライブ/動作データを使用して動的に(例えば、動作中/展開中に)RDS170の登録レコード172を更新することにより、ロボットシステム100は、以前は未知であった状態、又は予想しない状態(例えば、照明状態、未知の配向、及び/又は積み重ねの不整合)及び/又は新たに接するパッケージを考慮することができるコンピュータ学習プロセスを効率的に実施することができる。従って、ロボットシステム100は、「未知の」状態/パッケージ、関連する人間のオペレータの介入、及び/又は関連するタスクの失敗(例えば、パッケージの紛失及び/又は衝突)に起因する失敗を低減することができる。
RDS170は、限定されないが、アドレス可能な真空領域の数、真空グリッパデバイス(例えば、マルチグリッパアセンブリ)の搬送能力、真空プロトコル(例えば、真空レベル、空気流量など)、又はロボットアームシステム130及び/又はエンドエフェクタ140を制御するために使用される他のデータを含む特性又は属性を含む真空グリッパデータ173を含むことができる。オペレータは、ロボットアームシステム130に設置された真空グリッパに関する情報を入力することができる。次いで、RDS170は、動作のための真空グリッパデバイスに対応する真空グリッパデータ173を識別する。いくつかの実施形態では、真空グリッパデバイス(例えば、図3の多面グリッパアセンブリ141)は、ロボットアームアセンブリ139によって自動的に検出され、RDS170は、検出された真空グリッパデバイスに関する情報を識別するために使用される。識別された情報は、真空グリッパデバイスの設定を決定するために使用されることができる。従って、異なる真空グリッパデバイス又はマルチグリッパアセンブリは、ロボットアームシステム130と共に設置され、かつ使用される。
多面グリッパアセンブリ
図7A~図7E、図8A~図8F、及び図9A~図9Fは、本技術の1つ又は複数の実施形態による例示的なエンドエフェクタ(例えば、多面グリッパアセンブリ700)を示す。図7Aは、正面図を示し、図7Cは、側面図を示し、図7Eは、多面グリッパアセンブリ700の背面図を示し、図7B及び7Dは、正面図と側面図の間の角度から、又は側面図と背面図の間の角度から見た図を示す。図8Aは、多面グリッパアセンブリ700の上面図を示し、図8B~図8Fは、図面間で視点を45度連続的に回転させることなどによって、多面グリッパアセンブリ700の周りを回転する(例えば、上からの)斜視図の第1のセットを示す。図9Aは、多面グリッパアセンブリ700の底面図を示し、図9B~9Fは、図面間で視点を45度連続的に回転させることなどによって、多面グリッパアセンブリ700の周りを(例えば、下から)回転する底面斜視図のセットを示す。
ここで図7A~図7E、図8A~図8F、及び図9A~図9Fを共に参照すると、エンドエフェクタは、ロボットアーム(例えば、図3に関して部分的に説明され、図7Bで部分的に示されるロボットアームアセンブリ139)に動作可能に結合可能な多面グリッパアセンブリ700を含み得る。いくつかの実施形態では、多面グリッパアセンブリ700は、図3~図5に関して上述したエンドエフェクタ140に対応する。多面グリッパアセンブリ700は、互いに非平行に位置付けられた少なくとも2つのグリップ装置(例えば、トップパッド702及びサイドパッド704)を含むことができる。多面グリッパアセンブリ700は、対象物体の複数の表面を同時に接触、それを把持、及び/又は支持することに基づいて、対象物体(「対象パッケージ」とも呼ばれる)を掴むように構成され得る。いくつかの実施形態では、2つのパッド702と704は、互いに実質的に垂直である。例えば、2つのパッドによって規定される角度は、70度~110度の間であり、対象物体の直交する表面(例えば、上面及び1つ又は複数の側面)に接触し、それを把持、及び/又は支持するように構成された「L」字型構造を形成することができる。
多面グリッパアセンブリ700は、対象物体の上面/横方向面に接触し、及び/又はそれを掴むように構成されたトップインターフェース(例えば、トップインターフェース702-1)を有するトップ接触パッド(トップパッド702)を含むことができる。多面グリッパアセンブリ700は、対象物体の側面/周面/垂直面に接触し、及び/又はそれを掴むように構成されたサイドインターフェース(例えば、サイドインターフェース704-1)を有するサイド接触パッド(サイドパッド704)をさらに含むことができる。パッド及び/又はインターフェースのうちの1つ又は複数は、上述のように、真空力を使用するなどして物体を把持し、及び/又は領域をグリップするように構成されることができる。いくつかの実施形態では、トップパッド702は、サイドパッド704よりも大きな表面積を有し、及び/又はトップパッド702の少なくとも1つの寸法は、サイドパッド704のいずれの寸法よりも大きい。例えば、トップパッド702の幅は、サイドパッド704の幅よりも大きくなり得、又はトップパッド702の長さは、サイドパッド704の長さよりも長くなり得る。代替的に、トップパッド702及びサイドパッド704は、対象物体に接触するための実質的に同じ表面積(すなわち、同様の長さ及び幅)を有し得る。
トップパッド702は、多面グリッパアセンブリ700のハウジング構造(例えば、ハウジング706)の底部に取り付けられることができる。トップインターフェース702-1は下向きであることができる。サイドパッド704は又はハウジング706に結合されることができる。サイドインターフェース704-1は、トップインターフェースの対向方向に直交する方向(例えば、横方向)に面することができる。トップインターフェース702-1とサイドインターフェース704-1は、互いに内側を向くことができ、トップインターフェース702-1は、物体(例えば、ボックス)の上面に接触することができ、サイドインターフェース704-1は物体の直交する側面に接触することができるようになっている。
サイドパッド704/サイドインターフェース704-1は、把持した物体とエンドエフェクタとの間の把持力又は接着を増大させることができる。さらに、ロボットシステムは、把持された物体の移送中に移動方向に面するサイドインターフェース704-1を備えた多面グリッパアセンブリ700を配向することができる。従って、サイドインターフェース704-1と把持された物体との間の接触及び/又は把持は、把持力を低減又は低下させる慣性又は他の剥離力などの1つ又は複数の力に対する追加の支持を提供することができる。増加した力が、増加した支持/グリップによって打ち消される可能性があるため、移送速度を増すために追加の支持/グリップが利用されることができる。移送速度を上げると、損失率を上げることなく移送期間を短縮できる。サイドインターフェース704-1によって提供される追加の把持により、把持されたパッケージへの損傷(例えば、梱包材/カバーの裂けや破れ)をさらに低減することができ、特に、より重い物体及び/又はより柔らかく/繊細なパッケージ面を有する物体を把持するときなどに、把持されたパッケージの上面への損傷をさらに減らすことができる。
いくつかの実施形態では、ロボットシステムは、所定の格納場所にサイドパッド704を含むことができる。例えば、ロボットシステムは、サイドパッド704の底部をトップインターフェース702-1と同一平面上にあるか、又はその上にして、サイドパッド704をトップパッド702に隣接して配置することができる。従って、ロボットシステムは、サイドパッド704を格納位置に保持し、サイドパッド704がトップインターフェースの下の物体又は構造に接触することを防ぐことができる。格納位置に基づいて、ロボットシステムは、サイドパッド704を選択的に展開して使用することができる。例えば、ロボットシステムは、対象空間の最適化又は要件(例えば、密なパッキング又は特別な物体配置)が、潜在的な衝突によるような、サイドパッド704の使用を妨げるとき、サイドパッド704を保持することができる。ロボットシステムは、サイドインターフェースを配置、及び/又は、それを把持するために必要な時間を対応する移送時間の短縮と比較することにより、潜在的な時間短縮を計算できる。いくつかの実施形態では、ロボットシステムは、移送期間の短縮が、対象物体をサイドインターフェースで配置及び/又は把持するために必要な時間を超えるとき、サイドパッド704/サイドインターフェース704-1を展開及び使用することができる。
いくつかの実施形態では、サイドパッド704は、トップパッド702に対して固定され得る。他の実施形態では、サイドパッド704は、サイドパッド704をトップパッド702及び/又は対象物体に対して選択的に位置付けるように構成されたサイド位置決め機構(例えば、図7C~図7Eに示されるサイド位置決め機構710)を介して結合されることができる。例えば、サイド位置決め機構710は、レールのセット(例えば、図7Cのレール712)及び/又は回転可能な関節(例えば、回転可能な関節714)を含むことができる。従って、サイド位置決め機構は、サイドパッド704を垂直方向に沿って(例えば、z軸に沿って)及び/又は破線矢印714-1及び714-2で示されているように、1つ又は複数の水平方向/横方向に沿って(例えば、x軸及び/又はy軸に沿って)移動させることができる。いくつかの実施形態では、サイド位置決め機構は、回転可能な関節を使用してサイドパッド704の配向(例えば、サイドインターフェースとトップインターフェースとの間の角度)を回転/調整することができ、サイドインターフェース704-1が、破線矢印714-3で示されるように、トップインターフェース702-1に向くように上向きに傾けられ得るか、トップインターフェース702-1から離れて向くように下向きに傾けられ得るようになっている。サイド位置決め機構は、トップパッド702に対するサイドパッド704の姿勢を調整するように構成された空気圧制御機構及び/又は電気制御機構(例えば、モータ、アクチュエータなど)を含むことができる。
トップインターフェース702-1及び/又はサイドインターフェース704-1は、基準ボード又は較正ボード(例えば、較正ボード708)に対して所定の姿勢で配置され得る。較正ボード708は、例えば、センサデバイス(例えば、図6に示される撮像システム160及び/又は視覚センサデバイス143)に対する多面グリッパアセンブリ700の位置を較正するために使用されることができる。いくつかの実施形態では、較正ボード147は、動作環境内のエンドエフェクタ140又はグリッパアセンブリ141の位置、ロボットアームアセンブリ139の位置、又はそれらの組み合わせを較正又は規定するために使用されるパターン又は設計を備えたプラカードであり得る。較正ボード708は、エンドエフェクタアセンブリを視覚的に識別又は位置特定するために使用され得る構造(例えば、パターン式に配置された複数の基準ドットを含む較正ボード708上の構造708-2)を含むことができる。いくつかの実施形態では、較正ボード708の底部又はエッジ(例えば、較正ボード708のエッジ708-1)は、垂直面に沿って、上部インターフェースの周辺エッジ又は表面と同一平面上にあり得る。また、サイドインターフェース704-1は、較正ボード708に対向して、又は反対方向を向いて配置された対象物体の表面に接触するように構成されることができる。
グリップインターフェース
図10A~図10Bは、本技術の1つ又は複数の実施形態による第1の例示的なグリップインターフェース1000を示している。いくつかの実施形態では、グリップインターフェース1000は、図7A~図9Fに関して説明した多面グリップアセンブリ700のトップインターフェース702-1及び/又はサイドインターフェース704-1に対応する。図10Aは、グリップインターフェース1000の正面図を示している。図10Bは、グリップインターフェース1000の実装例を示している。
いくつかの実施形態では、グリップインターフェース1000は、対象物体を把持するためのグリップ/付着力(例えば、真空力)を提供するように構成された吸引要素1004を含むことができる。例えば、吸引要素1004は、吸引チューブ、吸引カップ、及び/又は封止部材を含む。吸引要素1004は、グリップ区間1002を画定する領域又は区間(例えば、総称して真空領域1001と呼ばれる真空領域1001-1、1001-2、1001-3)にグループ化されることができる。各グループ化された真空領域1001は、独立して操作(例えば、係合又は解放)されることができる。図10Aに示される例については、グリップインターフェース1000は、隣接又は横並びに配置された(例えば、グリップ領域1001-2は、グリップ領域1001-1及び1001-3に隣接している)矩形の真空領域1001を有することができる。図10Bに示される例について、多面グリッパアセンブリ700は、区間1及び区間2が対象物体(物体1)と重なるように配置され得る。ロボットシステムは、重なった区間(例えば、区間1及び区間2)を作動させ(アクティブ化し)て、対象物体をグリップすることができる。ロボットシステムは、重なっていない区間、及び/又は非対象物体と重なっている任意の区間を非作動させる(非アクティブ化する)か、又は係合しないことができる。
図11A~図11Cは、本技術の1つ又は複数の実施形態によるグリップインターフェース1100の第2の例を示している。いくつかの実施形態では、グリップインターフェース1100は、図7A~図9Fに関して説明した多面グリップアセンブリ700のトップパッド702のトップインターフェース702-1及び/又はサイドパッド704のサイドインターフェース704-1に対応する。図11Aは、グリップインターフェース1100の正面図を示している。いくつかの実施形態では、グリップインターフェース1100は、同心の真空区間又は領域(例えば、真空領域1101-1及び1101-2)の中に配置された吸引要素1004を含む。外側真空領域(例えば、真空区間2)の吸引要素1004は、内側真空領域(例えば、真空区間1)を包囲するか、又は取り囲むことができる。図11Aに示されるように、真空領域1101-1は、真空領域1101-1のすべてのエッジから真空領域1101-2で包囲されている。
図11Bは、グリップパッド1110(例えば、トップパッド702及び/又はサイドパッド704)の平面図を示している。図11Aに関して説明したグリップインターフェース1100は、グリップパッド1110の表面に対応する。グリップパッド1110は、空気圧制御機構、電気制御機構(例えば、モータ、アクチュエータなど)、真空ラインポート、又は独立した区間のための真空ラインポートなどの、別個の真空領域コントローラ(例えば、真空領域コントローラ1102-1及び1102-2)を含むことができる。例えば、内部真空領域(例えば、真空領域1101-1)は、内部区間の吸引要素に動作可能に接続された空気圧コネクタを含む専用の真空領域コントローラ1102-1のセットを含むことができる。同様に、外側真空領域(例えば、真空領域1101-2)は、外側区間の吸引要素に動作可能に接続された空気圧コネクタを含む、別個の専用の真空領域コントローラ1102-2のセットを含むことができる。
図11Cは、グリップインターフェース1100の実装例を示している。多面グリッパアセンブリ700は、真空領域1101-1が対象物体(物体1)と完全に重なるように位置付けられ得る。ロボットシステムは、重なった真空領域(例えば、真空領域1101-1)を作動させて、対象物体をグリップすることができる。ロボットシステムは、対象物体及び/又は非対象物体と部分的に重なり得るいずれかの区間と完全に重ならない真空領域(例えば、真空領域1101-2)を非作動にするか、又は係合しないことができる。
いくつかの実施形態では、多面グリップアセンブリ700のトップインターフェース702-1及び/又はサイドインターフェース704-1は、真空領域に分割された吸引要素1004を含む。例えば、トップインターフェース702-1及びサイドインターフェース704-1は両方とも、グリップインターフェース1000又はグリップインターフェース1100に関して説明したように配置された吸引要素1004を含む。いくつかの実施形態では、トップインターフェース702-1及びサイドインターフェース704-1は、互いに異なっている。例えば、トップインターフェース702-1は、グリップインターフェース1000又はグリップインターフェース1100に関して説明したように配置された吸引要素1004を有することができ、一方でサイドインターフェース704-1は、吸引要素1004の単一の領域のみを含む。いくつかの実施形態では、サイドインターフェース704-1は、トップインターフェース702-1よりも小さな表面積を有し、それにより、単一の真空領域のみを必要とする。別の例として、トップインターフェース702-1は、グリップインターフェース1000に関して説明したように配置された吸引要素1004を有し得、704-1は、グリップインターフェース1100に関して説明したように配置された吸引要素1004を有し得るか、又はその逆であり得る。
把持セット
図12は、本技術の1つ又は複数の実施形態による把持セット(「物体把持セット」とも呼ばれる)の例示的な態様を示している。一般に、把持セットは、指定された物体と指定されたエンドエフェクタとの間で可能な把持の分類又はグループ化である。把持セットは、物体と、物体を把持するためのエンドエフェクタとの間の関係を説明する1つ又は複数の把持モデル(「物体把持モデル」とも呼ばれる)を含むことができる。より具体的には、把持モデルは、把持動作中の物体に対するエンドエフェクタの姿勢、位置、及び/又は配向などの、エンドエフェクタと物体との間の特定の把持構成、ならびにグリッパパラメータ、把持安定性、及び/又は運動制御パラメータなどの把持構成に関連付けられた情報を記述することができる。例えば、第1の把持モデル2202は、エンドエフェクタ140(例えば、図3の多面グリッパアセンブリ141及び図7の多面グリッパアセンブリ700)と第1の物体2230との間の特定の把持構成を示し、第2の把持モデル2204は、多面グリッパ141と第2の物体2232との間の特定の把持構成を示す。
把持モデルの例示的な例として、第1の把持モデル2202は、第1の物体2203を把持するためのエンドエフェクタ140の第1の把持モデル2202を表す第1の上面図2212及び第1の側面図2214を介して示されている。第1の物体2203は、エンドエフェクタ140よりも小さい又は大きいフットプリントを有し得、第1の上面図2212において、エンドエフェクタ140によって少なくとも部分的に隠され得る。従って、第1の上面図2212の場合、第1の物体2203は、エンドエフェクタ140に対する姿勢を示すために示されている。第1の把持モデル2202と同様に、第2の把持モデル2204は、第2の物体2232を把持するためのエンドエフェクタ140の第2の把持モデル2204を表す第2の上面図2222及び第2の側面図2224を介して示される。
いくつかの実施形態では、図1のロボットシステム100は、物体モデル(例えば、マスタデータ内の登録済み物体のうちの1つに対応するモデル物体)の可能なエンドエフェクタ140の姿勢、位置、及び/又は配向をエンドエフェクタ140のモデルを物体モデルに対して重ね合わせるか、又は配列することによって識別することによって、(例えば、物体移送動作の前に)把持セットのための1つ又は複数の把持モデルの各々をオフラインで導出することができる。ロボットシステム100は、物体モデルを配列及び分析する際に、所定のパターン又はルーチンに従うことができる。多面グリッパアセンブリ141の把持モデルは、サイドパッド141-1及びトップパッド141-2の両方の姿勢、位置、及び/又は向きの組み合わせ、ならびにグリッパパラメータ、把持安定性、及び/又は運動制御パラメータなど、把持構成に関連付けられた情報を定義することができる。一例として、トップパッド141-2の所与の姿勢、位置、及び/又は向きは、サイドパッド141-1の異なる垂直位置を含むことができ、組み合わせの各々は、単一の把持モデルに対応することができる。把持モデルを生成するとき、ロボットシステム100は、サイドパッド141-1のストローク長を明らかにすることができる。例えば、物体の上面に対する重心上のトップパッド141-2の把持場所は、物体の搬送中の安定性にとって最適であり得るが、ロボットシステム100は、サイドパッド141-1の位置に対応するためにトップパッド141-2の把持位置をオフセットすることができる。より具体的には、より大きな物体(例えば、サイドパッド141-1の最大ストローク長よりも大きい水平寸法を有するボックス)の場合、サイドパッド141-1が、物体の垂直側に沿っていることから、サイドパッド141-1の相対位置が水平距離を制限し得、トップパッド141-2は、物体の上面上に配置される可能性があり、このことが、トップパッド141-2のグリップ場所が、物体の重心からオフセットされることになることがある。
いくつかの実施形態では、ロボットシステム100は、高さ、重量、重心場所、失敗率/損失率、パッケージ表面材料などの物体の1つ又は複数の特性に基づいて、サイドパッド位置を含む把持モデルを生成することができる。例えば、ロボットシステム100は、サイドパッド141-1を重心場所に最も近く配置する所定の場所又は配置規則(例えば、上又は下に整列される)を選択することができる。また、ロボットシステム100は、物体の重量及び/又は高さの関数としてサイドパッドの位置を下げることができる。追加的又は代替的に、ロボットシステム100は、パッケージ表面材料に従って、異なる場所を導出するか、又は異なる導出規則を使用することができる。
いくつかの実施形態では、把持セットは、パッケージの1つ又は複数の対応する周囲エッジと位置合わせされた1つ又は複数のエッジ/境界を有するエンドエフェクタ140の通知されたグリップ姿勢を含むことができる。例えば、通知されたグリップ姿勢は、グリップ区間1002の1つ又は複数の周囲エッジを有することができ、及び/又は図10の真空領域1001-1、1001-2、1001-3は、対象パッケージ112の対応する周囲エッジと位置合わせされ得る。換言すれば、物体の周囲エッジと真空領域の対応する周囲エッジは、垂直線/垂直平面と一致したものであり得る。1つ又は複数の実施形態では、把持セットは、位置合わせされていないエンドエフェクタのグリップ姿勢を有さない通知された把持モデルを含む通知された把持セットであることができる。
他の実施形態では、ロボットシステム100は、ロボットシステム100が、図3の物体スタック165内の登録済み物体のいずれも検出しないとき(例えば、対象物体が登録済み物体に対応していないとき)など、把持セットを動的に導出することができる。ロボットシステム100が登録済み物体を検出しない場合、ロボットシステム100は、最小実行可能領域(MVR)に基づいてリアルタイムで把持セットを生成することができる。例えば、MVRの把持セットを生成する際に、ロボットシステム100は、物体のエッジ場所及びコーナー場所などの検出結果を使用して、物体の把持面(例えば、上面)に対するトップパッド141-2の把持場所を決定することができる。ロボットシステム100は、物体のトップエッジと整列されたデフォルトのサイドパッド位置(デフォルトのパッド位置とも呼ばれる)にあるサイドパッド141-1で、サイドパッド141-1の把持モデルを生成することができる。
把持セットは、把持モデルに関連付けられた運動制御パラメータ2208をさらに含むことができる。運動制御パラメータ2208はそれぞれ、対応する把持モデルに対する物体を把持するために使用される図10の真空領域1001-1、1001-2、1001-3及び/又は吸引要素1004を識別する表示を含むことができる。また、運動制御パラメータ2208は、物体(例えば、対象パッケージ112)を把持及び移送しながらエンドエフェクタ140の運動を制御するために使用されるスピード、加速度、力、速度、それらに対する調整などを表す値を含むことができる。例えば、運動制御パラメータ2208は、各把持モデル(例えば、第1の把持モデル2202の第1の移送速度乗数(TSM)2218、及び第2の把持モデル2204の第2のTSM2228)のTSMを含むことができる。TSMは、R∈[0,1]の範囲の値を含めることができ、ここで、「1」は全速度又は最大速度を表し、「0」は停止又は無運動を表す。
ロボットシステム100は、対応する把持モデルに従って、運動制御パラメータ2208を(オフラインで、及び/又は動的に)導出又は計算することができる。ロボットシステム100は、エンドエフェクタ140と物体(例えば、第1の物体2230又は第2の物体2232)との間の重なり、物体の物理的態様に関する情報、及び/又は、同じタイプの物体の以前の移送からの記録に基づいて、運動制御パラメータ2208を導出することができる。例えば、ロボットシステム100は、重なった領域、ならびに対応する真空領域1001-1、1001-2、1001-3、及び/又は吸引要素1004を識別することができる。さらに、ロボットシステム100は、物体上の重なった領域のサイズ又は量、及び/又は吸引要素1004の数量を入力として受け取る所定の関数を使用して、運動制御パラメータ2208を導出することができる。例えば、ロボットシステム100は、どの真空領域(例えば、図10Aの領域1001-1~1001-3又は図11Aの領域1101-1及び1101-2)が把持モデル用に作動されるかを決定することができる。所定の関数は、重量、重心情報、1つ又は複数の寸法、表面タイプ、及び/又は物体に関するマスタデータ内の他の情報をさらに使用することができる。いくつかの実施形態では、ロボットシステム100は、初期のグリップ失敗、及び/又は移送中のパッケージの損失の(例えば、パラメータを減少させるための)発生、又は(例えば、パラメータを増加させるための)長期の不在に基づいて、運動制御パラメータ2208(例えば、TSM)を自動的に調整することができる。
ロボットシステム100は、サイドパッド141-1の配置に従って、運動制御パラメータ2208を処理することができる。例えば、ロボットシステム100は、サイドパッド141-1のグリップ場所と物体の重心又は中心部分との間の距離及び/又はトルクベースの関係に基づいて、運動パラメータ2208を導出することができる。いくつかの実施形態では、ロボットシステム100は、サイドパッド141-1に対するグリップ場所の垂直位置が重心又は中央部分に近いときに、TSMを増加させることができ、これは、より高いグリップ安定性に対応する。他の実施形態では、ロボットシステム100は、重心より上にあるサイドパッド141-1のグリップ場所よりも、重心より下にあるサイドパッド141-1のグリップ場所に対してより高いTSM値を導出することができる。
例示した例として、第2の把持モデル2204と比較して、第1の把持モデル2202は、第1の物体2230の上面のより多くの量を覆うことから、第1のTSM2218は、第2のTSM2228よりも大きくなり得る。換言すると、第1のTSM2218は「X」であり得、第2のTSM2228は「Y」であり得、式中、「X>Y」になっている。
いくつかの実施形態では、オフラインで導出される把持セットについて、ロボットシステム100は、画像データを分析して、エンドエフェクタ140で対象パッケージ112を把持するために適用可能な把持セットを選択することができる。ロボットシステム100は、コーナー/エッジの開放性、閾値距離又は同様のものなどの上述の1つ又は複数のパラメータを使用して、グリップ姿勢を評価及び/又は選択することができる。いくつかの実施形態では、ロボットシステム100は、最小の移送時間、最小の推定失敗率、又は2つ以上の要因のバランスをとる組み合わせを生成するグリップ姿勢を選択するためにTSM及び/又は他のパラメータをさらに使用することができる。
エンドエフェクタ
図13は、本技術のいくつかの実施形態による、ロボットシステム(例えば、図1~図2のロボットシステム100)での使用に適したグリップ装置1300を示す。グリップ装置1300は、図3に関して上述した、多面グリッパアセンブリ141の一部分に対応することができる。グリップ装置1300は、例えば、図3に示したサイドパッド141-1及びトップパッド141-2に対応し得る。図14は、図13のグリップ装置1300の分解図である。グリップ装置1300は、静止位置(例えば、図3のプラットフォーム110などのデパレタイズプラットフォーム上の静止位置)からパッケージをグリップするように構成される任意のグリッパ又はグリッパアセンブリであることができる。グリップ装置1300は、グリッパ機構1310及び接触又は封止部材1312(「封止部材1312」)を含むことができる。グリッパ機構1310は、本体1314及び、それぞれが部材1312の開口部1318(図14で特定されているもの)を通過するように構成される複数の吸引要素1316(図14で図示されているもの)を含む。組み立てられると、吸引要素1316の各々は、部分的に、又は完全に、対応する開口部1318を通って延在することができる。例えば、吸引要素1316は、第1の側1319を通って封止部材1312の第2の側1321に向かって延在することができる。
多面グリッパアセンブリのための動作計画
図15は、本技術の1つ又は複数の実施形態による、例示的な配置プランを示す。配置プランは、対象コンテナ(例えば、三壁カートに対応する対象コンテナ1500)に基づくことができ、例えば、対象コンテナのタイプ、サイズ、物理的特性、リアルタイムの状態などに基づくことができる。配置プランは、物体を対象コンテナ内で下降及び/又は配置する間にサイドパッド704と衝突する可能性がある対象コンテナ1500の壁の存在及び/又は場所に基づいて導出されることができる。ロボットシステムは、サイドパッド704の場所の識別及び導出、ならびに対象コンテナ1500の壁又は以前に配置された/既存の物体などの障害物から離れる対象物体(例えば、物体1、物体2、及び/又は物体3)の対応する(例えば、接触する)周囲表面(図15のパターン付きエッジを用いて示される)に基づいて配置プランを導出することができる。また、ロボットシステムは、処理シーケンスに従って配置プランを導出することができ、配置プランは、対象コンテナのリアルタイム状態(例えば、物体の場所、表面の高さ、コンテナ壁の実際の形状/場所など)を追跡又は推定するために使用されることができる。
図15に示される例については、ロボットシステムは、三壁カートに対応する対象コンテナ1500の配置プランを導出することができる。処理シーケンスは、最初に物体1、次に物体2、次いで物体3の移送を識別できる。ロボットシステムは、特定の側面(例えば、サイドパッド704によって接触又は支持されるように指定された側面)を側壁及び既存の物体から離して配向するための所定のプロセス、ルールセット、テンプレートなどに基づいて、配置プランを導出することができる。図15において、サイドパッド704が接触するように指定された側面がパターンで示されている。例えば、物体1は、サイドパッド704が接触できる表面として指定された底面及び右側面を有し、物体3は、サイドパッド704が接触できる表面として指定された底面及び左側面を有する。さらに、各物体の配置場所は、コーナー、壁、以前に配置された物体、及び/又は他の配置ルール又は優先順位に近くなるように導出され得る。従って、物体1は、指定された側面(パターンで示されている)が、対象コンテナ1500の内側コーナー1500-1に対して配置されることができ、対応する内側コーナーを形成する壁から離れて、及び/又は壁に対向して配置されることができる。ロボットシステムは、内壁(例えば、壁1500-2)に対する、物体1に隣接する物体2の配置場所を導出することができる。物体2の指定された表面(パターン付きで示されている)は、内壁及び/又は物体1に対向して、又は離れて配向されることができる。
対象コンテナ1500内の残りの空間が1つのみの物体に対して十分であるとき、ロボットシステムは、対応するルールセット、プロセスなどを適用することができる。例えば、ロボットシステムは、指定された表面1502を内壁1500-2に対向して、残りの空間の外側で、及び/又は以前に配置された物体から離れて配向することに基づいて、対応する物体(例えば、物体3)の配置姿勢を導出することができる。また、ロボットシステムは、物体を残りの空間に降下及び/又は配置する前に、サイドパッド704を(例えば、表面1502-2から)解放及び/又は格納することに基づいて、配置姿勢を導出することができる。例えば、物体3は、トップパッド702及びサイドパッド704を使用することによって、開始場所から対象コンテナ1500における降下場所に移送される。サイドパッド704は、トップパッド702が物体3の上面と接触する間に、物体3の表面1502-2と接触することができる。しかしながら、対象コンテナ1500内の残りの空間は限られているので、ロボットシステムによって導出された配置プランに従って、物体3を対象コンテナ1500に降下する前にサイドパッド704が表面1502-2から解放及び/又は格納される。このようにして、サイドパッド704は、物体2の表面によって妨害されることがなくなる。代替的に、サイドパッド704は、トップパッド702が物体3の上面と接触する間に、物体3の表面1502-1と接触することができる。そのような場合、ロボットシステムによって導出された配置プランに従って、サイドパッド704は、物体3を対象コンテナ1500の中に降下する前に、表面1502-1から解放又は後退されない。配置プランは、物体を開始場所から降下場所に移送するのに必要とされる推定時間に基づいて、対象物体上のサイドパッド704の場所を最適化する。物体を移送するための時間の最適化は、図17B及び図17Cに関してさらに説明される。
いくつかの実施形態では、ロボットシステムは、コンテナ内のリアルタイム及び/又は推定された表面高さを、対応する対象のサイドパッド704の場所と比較することに基づいて、配置場所を導出することができる。例えば、サイドパッドが移送された物体の底部/エッジの上にあるとき、ロボットシステムは、移送された物体が候補場所に配置されたときのパッドの底部の高さを計算して、計算された高さを表面の高さと比較することができる。計算された高さが表面高さよりも高いときに、ロボットシステムは配置場所を検証できる。
多面グリッパアセンブリを使用した物体操作
図16は、本技術の1つ又は複数の実施形態による、ロボットシステムを操作するためのフロー図を示す。フロー図は、ロボットシステム(例えば、図1に関して説明したロボットシステム100)及び/又は多面グリッパ(例えば、図7A~図9Fに関して説明した多面グリッパアセンブリ700)を操作する方法1600に対応することができる。本方法は、処理シーケンス、配置プラン/場所、及び/又は対応するモーションプランを導出することを含むことができる。本方法は、物体を移送するためのモーションプランを実行すること(例えば、モーションプラン又は対応する情報をロボットユニットに通信することを介して)、及び/又は(例えば、ロボットユニットで)モーションプランを実行することをさらに含むことができる。
ブロック1602において、ロボットシステムは、開始場所(ソース場所とも呼ばれる)及び/又はタスク場所(移動先場所とも呼ばれる)に対応するセンサ情報を分析することができる。例えば、ロボットシステムは、開始場所及び/又はタスク場所を示すセンサ情報を取得することができる。センサ情報は、3D点群情報及び/又は2D情報などの画像センサ情報を含むことができる。いくつかの実施形態では、センサ情報を取得することは、図1に関して説明した撮像システム160で開始場所及び/又はタスク場所の画像をキャプチャすることを含むことができる。いくつかの実施形態では、センサ情報を取得することは、図4A及び図4Bに関して説明したように、画像データを受信して対象パッケージ又は物体を画像データに基づいて識別することを含むことができる。また、ロボットシステムは、物体を受け取るためのタスク場所に対応するコンテナのセット又はタイプ(例えば、パレット、ケージ、カート、ボックスなど)を識別できる。いくつかの実施形態では、ロボットシステムは、その後の処理及び分析のために、タスク場所に対応する識別されたコンテナのモデル又はテンプレートにアクセスすることができる。ロボットシステムはまた、センサ情報(例えば、2D画像及び/又は3D深度マップ)を分析して、開始場所及び/又はタスク場所に関連付けられた1つ又は複数のリアルタイム状態(例えば、表面の高さ、物体/障害物の場所、形状、タイプなど)を判定することができる。例えば、図15では、タスク場所は、三壁ケージに対応する対象コンテナ1500であることができる。いくつかの実施形態では、開始場所及びタスク場所は、画像センサ情報の異なるセットから描写されている。これは、例えば、開始場所とタスク場所が、単一画像では画像化できない距離で互いに分離されているためである可能性がある。例えば、1つ又は複数の画像の第1セットは、開始場所を描写することができ、1つ又は複数の画像の第2セットは、タスク場所を描写することができる。あるいは、開始場所とタスク場所は、1つ又は複数の画像の単一のセットから描写されることができる。
ブロック1603において、ロボットシステムは、ソース場所内の1つ又は複数の物体(例えば、図4A及び図4Bの物体)に対応する検出仮説を生成することができる。ロボットシステムは、物体のタイプ又は識別子、及び/又は画像センサ情報で描写された物体の実際の場所を識別することなどによって、物体を検出するための画像センサ情報の分析に基づいて、1つ又は複数の物体を識別するための検出仮説を生成することができる。いくつかの実施形態では、ロボットシステムは、コーナー及び/又はエッジを検出すること、表面を識別すること、表面寸法をマスタデータと比較すること、表面又はその一部の視覚的画像をマスタデータと比較すること、などに基づいて物体を識別することができる。マスタデータに対応するエントリがある物体は、登録済み物体と呼ばれる。マスタデータに対応するエントリがない物体は、未登録物体と呼ばれる。ロボットシステムは、登録済み物体の特性データにアクセスできる。ロボットシステムは、寸法、重量、重心場所などの他の説明にアクセスすることなどによって、登録済み物体に起因する追加の説明にアクセスできる。登録済み物体の場合、検出仮説は、ロボットシステム100によって検出された登録済み物体のアイデンティティ、追加の説明、配向、及び/又は相対位置を含むことができる。
いくつかの実施形態では、検出仮説を生成する一部として、ロボットシステム100は、画像データ(例えば、点群データ)に表されるように、物体スタック(例えば、図4A及び図4Bの物体スタック404)の露出した外側コーナーを識別することができる。例えば、ロボットシステム100は、様々な配向(例えば、様々な角度で延在する)を有する2つ以上の露出されたエッジ(例えば、3D画像で識別されたエッジ、3Dエッジとも称される)の間の交差部/接合部を検出することに基づいて、露出された外側コーナー(例えば、図4AのコーナーC1、C2、及びC3)を識別することができる。1つ又は複数の実施形態では、ロボットシステム100は、露出したエッジが、90度よりも大きい及び/又はそれ未満の閾値角度範囲の場合など、所定の範囲内の角度(角度範囲とも呼ばれる)を形成するときに、露出した外側コーナーを識別することができる。
例示的な例として、ロボットシステム100は、図4Aの深度区間Z1及び隣接する深度区間Z2及びZ3を識別することによって、開放コーナーC3を識別することができる。ロボットシステム100は、走査領域層内の隣接する水平場所のセットが、物体表面に対応する点群データを表す、互いからの閾値連続範囲内の深度値を有する場合に、深度区間Z1を識別することができる。ロボットシステム100は、深度区間Z1の深度値からの閾値連続範囲外の深度値を有する他の水平場所として隣接する深度区間Z2及びZ3を識別することができる。
いくつかの実施形態では、ロボットシステム100は、深度値が閾値連続範囲の外にあるように変化するとき、及び/又は深度値変化の場所が形状テンプレート(例えば、直線及び/又は物体間の最小分離幅)に一致するとき、深度区間Z1のエッジ及び/又は隣接する深度区間Z2とZ3の開始を識別することができる。より具体的には、隣接する深度区間Z2及びZ3は、物体スタック404の表面の深度値(例えば、深度区間Z1)よりも画像センサから遠い距離を表す深度値を有することができる。深度区間Z1と隣接する深度区間Z2及びZ3の間に生じるエッジは、露出したエッジに対応し得る。いくつかの実施形態では、コーナーC3などの開放3Dコーナーを識別することは、深度区間Z1が象限を形成することを検証することを含み得、一方で隣接する領域616a~cは、残りの象限及び/又は物体スタックの外側の場所などの空き空間に対応する。
いくつかの実施形態では、ロボットシステム100は、3次元(3D)点群を処理して、物体スタック内の物体の露出した外側のコーナー(例えば、図4Aの露出した外側のコーナーの1つ)を識別することができる。例えば、3D点群は、3次元カメラによって生成された物体スタック404の上面図に対応することができる。点群は、深度を示す複数の層を有する3次元の点群を含み得る。それぞれの層及び/又は表面は、互いに閾値の連続範囲内にある水平方向に隣接する深度値のセットに対応し得る。例えば、閾値の連続範囲は、互いに閾値距離内(例えば、1センチメートル未満)にあるか、又は勾配に応じた閾値距離内にある深度測定値を有するために水平方向に隣接する場所を要し得る。点群の層の深度は、対応する物体の表面に垂直な方向に沿った分離(例えば、垂直方向の分離)に対応し得る。
従って、ロボットシステムは、点群を分析及び処理して、層をセグメント化することができ、及び/又は開放3Dエッジ/コーナーを識別することができる。いくつかの実施形態では、ロボットシステム100(例えば、その中の1つ又は複数のプロセッサ)は、1つ又は複数の所定の連続性規則/閾値により、点群内のグループ化深度値に基づいて層を識別することができる。例えば、ロボットシステム100は、深度値が互いの閾値の連続範囲内にあるとき、及び/又は深度値が平坦で連続的な表面を表す一定の勾配に従うとき、水平に隣接する/接続された深度値のセットをグループ化することができる。ロボットシステム100は、露出されたエッジ(例えば、図4A及び図4Bの露出されたエッジ)を、識別された層の境界として識別することができる。換言すると、ロボットシステム100は、露出されたエッジを、適格な深度の変化が発生する層/表面の水平な周囲場所として識別することができる。一般に、物体スタック404の上層を形成する物体/エッジの深度測定値は、上層の下に下層を形成する物体/エッジよりも小さい大きさを有することができる。
いくつかの実施形態では、ロボットシステム100は、点群セグメンテーションに基づいて検出仮説を生成することができる。例えば、ロボットシステム100は、点群セグメンテーションの上層の表面を分析することができ、表面に対応するテクスチャ、パターン、又は他の視覚的特徴などの2D画像から抽出された特徴をマスタデータ内に登録済み物体のテクスチャ、パターン、及び/又は視覚的特徴と比較することができる。また、ロボットシステム100は、表面の形状及び/又は寸法をマスタデータと比較することができる。ロボットシステム100は、上層表面(複数可)の1つ又は複数の特性をマスタデータ内の対応する登録済み物体(複数可)に一致させることに基づいて、物体のための検出仮説を生成することができる。いくつかの実施形態では、ロボットシステム100は、点群セグメンテーション及び/又は抽出された特徴がマスタデータ内の登録済み物体と一致しないとき、上述のように、MVRとして検出仮説を生成することができる。他の実施形態では、物体スタック内の物体がマスタデータに含まれていないという情報、及びロボットシステム100は、MVRとして検出仮説を生成することができる。
いくつかの実施形態では、ロボットシステム100は、開放エッジ及び開放コーナーの開放性の程度に関する情報を含む検出仮説を生成することができる。例えば、検出処理中、ロボットシステム100は、検出仮説の開放エッジと、図4Aの水平開放距離D1などの水平開放距離に基づいて、水平平面開放性を計算することができ、及び/又は検出仮説の開放エッジと、図4Bの垂直開放距離D5などの垂直開放距離に基づいて、垂直平面開放性を計算することができる。
ブロック1604において、ロボットシステム100は、洗練化ユニットに基づいて、検出仮説のための仮説洗練化を生成することができる。いくつかの実施形態では、ロボットシステム100は、開放コーナーユニットのうちの1つ又は複数に基づいて洗練化ユニットを生成することができる。例えば、ロボットシステム100は、物体のための検出仮説を生成するために使用される開放コーナーユニットの各々をリンクすることによって、洗練化ユニットを生成することができる。上述のように、ロボットシステム100は、洗練化ユニットに従って、様々なアルゴリズムを適用することによって、仮説洗練化を生成することができる。例えば、ロボットシステム100は、2つの点群間の差を最小化することを試みる反復最接近点洗練化(ICP)、又は洗練化ユニット及び検出仮説に対する仮説洗練化を生成するための特異値分解(SVD)を使用して検出仮説の姿勢、配向、サイズ、及び/又は位置を洗練化することができる。
ブロック1605において、ロボットシステムは、物体のうちの1つ又は複数を開始場所からタスク場所に移送するためのモーションプランを導出することができる。一般に、モーションプランは、1つ又は複数の検出仮説に基づいた1つ又は複数の軌道及び/又は操作を含むことができる。例えば、モーションプランは、物体をグリップするための把持モデル、ロボットアームの軌道、及び物体を把持して解放するための操作を含むことができる。軌道の導出とモーションプランの操作については、以下で説明する。
いくつかの実施形態では、ロボットシステム100は、ブロック1606において検出仮説の把持セットを決定することができる。例えば、ロボットシステム100は、対象物体に対応する検出仮説のための物体把持セットを決定することができる。一般に、検出仮説のための物体把持セットは、検出仮説に対応する物体の物体特性(例えば、物体寸法、物体質量、及び/又は重心など)を物体把持セットの物体特性に一致させることに基づいて決定されることができる。上述のように、物体把持セットは、物体グリッパペアのための異なる把持構成のセットを記述する情報である。例えば、物体把持セットは、単一の物体に対応する把持構成に対応する物体把持モデルのうちの1つ又は複数であり得る。概して、主に吸引ベースのグリッパを利用するパレタイズ及びデパレタイズ操作の場合、(例えば、検討/分析されたパッケージの)所与の寸法のブロック1604で生成された把持モデル及び検出仮説の各々は、物体の表面に対すグリッパのグリップ表面(複数可)の配置、位置、及び/又は配向と、グリップモデルに対する把持強度又は把持安定性の対応する測定値と、グリッパが独立して、又は個別に吸引制御可能(つまり、吸引カップ又はマルチバンク吸引パッドが独立して制御可能)な場合に把持のために係合する吸引要素と、又はそれらの組み合わせと、を含むことができる。上述にように、決定された物体把持セットに従って、物体把持モデルは、トップパッド及びサイドパッドを含むエンドエフェクタに関連付けられたパラメータをさらに含むことができる。パラメータは、例えば、図3のロボットアームシステム132及びエンドエフェクタ140の動きに関連付けられたロボット関節値などの配向パラメータを含み得る。いくつかの実施形態では、物体把持セットは、全体的な処理時間を短縮するモーションプランを導出する前に(例えば、事前にプログラムされた、又はオフラインの導出を介して)生成されることができる。他の実施形態では、物体把持セットは、MVRを含む検出仮説などのために、リアルタイムで生成されることができる。ロボットシステム100は、検出仮説の寸法に対応する物体把持セット又は複数の物体把持セットを、検出結果の最小実行可能領域、及び/又は物体の開放性で選択又は生成することができる。ブロック1607において、ロボットシステム100は、物体把持セットの把持-配置の組み合わせ実現可能性に基づいて、1つ又は複数の検出仮説から対象物体を判定することができる。一般に、把持-配置の組み合わせ実現可能性は、エンドエフェクタ及び検出仮説の把持セットが、検出仮説に対応する物体を少なくとも把持、移送、及び配置することが可能な1つ又は複数の把持モデルを含むかどうかを判定する。ロボットシステム100は、把持-配置の組み合わせ実現可能性が存在しないとき、検出仮説のためのモーションプランのさらなる生成を見送ることができる。いくつかの実施形態では、把持-配置の組み合わせ実現可能性は、物体の把持実現可能性及び物体の配置実現可能性、又は、それらの組み合わせに基づいて判定されることができる。
把持実現可能性は、ロボットが、開始場所で物体にアクセスし、物体をグリップし、衝突することなく、又は意図せずに隣接する物体を妨害(つまり、環境内の他の物体との衝突、又は意図せずに隣接する物体をグリップする)することなく開始場所から物体を取り除くことが可能かどうかを記述する。配置実現可能性は、ロボットが、物体をグリップして配置場所に接近し、物体を配置場所に配置し、物体を配置した後に配置場所から離れることが可能かどうかを記述する。概して、ロボットシステム100は、物体のアクセス可能性(例えば、把持モデルが隣接する物体と重なり合うか)、潜在的な障害物、及び衝突(例えば、把持動作及び/又は解放動作の間に接近及び/又は出発するときに、グリッパ及び/又は物体が、物体と衝突する)、ロボット制限(例えば、ロボットが把持モデルの姿勢/方向を達成するためにロボットに存在するロボット関節値の組み合わせを行う)などの要因に基づいて、把持実現可能性、及び配置実現可能性を判定できる。いくつかの実施形態では、ロボットシステム100は、把持実現可能性及び配置実現可能性を並行して判定することができる。他の実施形態では、ロボットシステムは、把持実現可能性及び配置実現可能性を順番に判定することができ、ここでは、配置実現可能性は、把持実現可能性の判定に基づいて判定される。
いくつかの実施形態では、ロボットシステム100は、ブロック1608において、対象物体の開放エッジ又は開放コーナーが、(例えば、図4A及び図4Bに関して説明された閾値距離D2、D3、及びD4のうちの1つ又は複数に基づくことができる)エンドエフェクタが対象物体に接触できるようにする十分な程度の開放性を有さないとき、把持モデルの1つが非実現可能であることについて、把持実現可能性を判定することができる。多面グリッパが接近するのに十分なクリアランス空間、物体に接触して把持するのに十分な表面積があるかどうかを判定するために、閾値距離D2、D3、及びD4が使用されることができる。例えば、図4Aに示すように、コーナーC5の開放性の程度は、物体DのコーナーC6に近接しているために制限される。従って、多面グリッパアセンブリ(例えば、図3の多面グリッパアセンブリ141)がコーナーC5の付近で物体Cの表面と接触するには、コーナーC5及びC6は、互いに近過ぎることになり得る。これにより、物体DのコーナーC5にある把持場所の把持モデルは、非実行可能であると識別され、それにより、図4Aの物体DのコーナーC3の周りの把持場所を有する把持モデルが実行可能になる一方で、非実行可能であると判定される。
ブロック1609において、ロボットシステム100は、検出仮説の配置実現可能性を判定することができる。一般に、ロボットシステム100は、タスク場所での検出仮説に対応する物体の配置についての配置実現可能性を判定するときに、把持実現可能性を判定するのと同様の分析を効果的に実行することができる。換言すると、ロボットシステム100は、既存の障害物(例えば、コンテナ壁、以前に配置された物体など)と衝突することなく、対象パッケージをタスク場所に配置できるかどうか、又はどのように配置できるかを判定することができる。いくつかの実施形態では、ロボットシステム100は、タスク場所に対応するセンサデータを分析して、検出仮説の配置場所及び対応するクリアランス測定値を識別することができる。例えば、ロボットシステム100は、配置場所、及び把持モデルに対応するエンドエフェクタの対応する場所における、対象パッケージのモデルを効果的に分析することができる。いくつかの実施形態では、ロボットシステムは、把持モデルの異なる姿勢(例えば、180°回転)を考慮することができる。
ブロック1607に戻ると、ロボットシステム100は、把持-配置の組み合わせ実現可能性を判定することができる。いくつかの実施形態では、ロボットシステム100は、把持実現可能性と配置実現可能性の両方を満たす把持モデルを識別することによって、エンドエフェクタと物体のペアに対して把持-配置の組み合わせ実現可能性が存在するかどうかを判定することができる。いくつかの実施形態では、ロボットシステム100は、把持モデルを使用して、物体の開始場所とタスク場所との間の予備軌道が計算されることができるかどうかを判定することによって、把持-配置の組み合わせ実現可能性を判定することができる。完全な軌道の計算は、計算上リソースを大量に消費することから、ロボットシステム100は、ヒューリスティックな方法を実行して、軌道がロボットモーションについて計算できるかどうかを迅速に判定することができる。例えば、ロボットシステム100は、予備軌道を計算して、開始場所にある把持モデルをタスク場所にある把持モデルにリンクするための逆運動学的解(例えば、関節値)が存在するかどうかを決定することができる。ロボットシステム100が予備軌道を計算できないと判定した場合、ロボットシステムは、その把持-配置ペアの把持モデルを排除することができる。ロボットシステムは、残りのセットを、把持実現可能性及び配置実現可能性の両方を提供する把持モデルとして判定することができる。複数の把持モデルが実行可能であると判定されたとき、ロボットシステムは、対応する運動制御パラメータ2208(例えば、TSM)に従って実行可能モデルをランク付けすることができる。
ブロック1614において、ロボットシステム100は、モーションプランの軌道を計算することができる。より具体的には、ロボットシステム100は、把持-配置の組み合わせ実現可能性が存在する物体に対応する検出仮説の軌道を計算することができる。各軌道は、衝突を回避するために計算されることができ、軌道経路、軌道経路に沿った点に対応するロボット関節値、加速度、及び/又は軌道に沿った点の速度を含むことができる。一例として、ロボットシステム100は、逆運動学的アルゴリズムに基づいて軌道を計算することができる。モーションプランの軌道は、ソース接近軌道、把持接近軌道、把持出発軌道、物体移送軌道、目的地接近軌道、目的地出発軌道、又はそれらの組み合わせを含むことができる。ソース接近軌道は、以前の物体の配置後のロボットアームの最後の位置やロボットアームのデフォルト位置などの開始位置から(例えば、物体が把持される)対象物体の上の位置の間で計算された軌道であることができる。把持接近軌道は、物体に接近して把持するために計算された軌道であることができる。把持出発軌道は、一旦、物体が把持されると、把持位置から出発するように計算された軌道であることができる。物体移送軌道は、物体を把持場所の上からタスク場所にある配置場所の上に移送するように計算された軌道であることができる。目的地接近軌道は、配置場所に接近して物体を解放するために計算された軌道であることができる。把持出発軌道は、一旦、物体が把持されると、配置場所から出発するために計算された軌道であることができる。いくつかの実施形態では、把持接近、把持出発、目的地接近、及び目的地出発は、線形軌道として計算されることができる。
いくつかの実施形態では、ロボットシステム100は、運動方向に従ってサイドパッド及び/又はトップパッドを配向するための実行可能な回転操作に基づいて、物体移送軌道を計算することができる。例えば、ロボットシステム100は、サイドパッドのサイドインターフェース(例えば、図7のサイドインターフェース704-1)がその後の運動の水平方向を向くように、物体を回転させるための軌道を含むことができる。いくつかの実施形態では、ロボットシステム100は、閾値条件を超える(例えば、所定の場所にわたって、最小長さを有する、など)線形運動の前に、又はそれと組み合わせて、回転操作の軌道を計算することができる。いくつかの実施形態では、ロボットシステム100の動作は、任意選択で、サイドパッドの使用に関連付けられた費用便益分析を含み得る。費用について、ロボットシステムは、(例えば、以前の位置又は設定に従って)サイドパッドを位置決めするための、サイドパッド位置決め持続時間推定値(持続時間推定値、又は複数の持続時間推定値とも呼ばれる)を計算すること、及び/又はサイドパッドで物体をグリップすることができる。サイドパッド位置決め持続時間推定値は、サイドパッドが、格納状態、及び/又はサイドパッドの以前に計画された場所から開始することと、サイドパッドを横方向に外に移動することと、サイドパッドを位置まで上下することと、サイドパッドを対象物体表面に向けて横方向に移動することと、及び/又はグリップ力を接触する表面に係合させることと、を含む期間に対応し得る。いくつかの実施形態では、対応する持続時間の推定値は、そのような動作又は操作の1つ又は複数に対して事前決定されたものであり得る。便益分析のために、ロボットシステムは、サイドパッドを係合しない、及び/又は回転調整をしないベースライン移送持続時間を、サイドパッド支援モーションプランのための短縮された移送持続時間に比較することができる。ロボットシステムは、費用と便益(例えば、時間節約)を比較して、サイドパッドの展開と使用の全体的な費用/便益を判定できる。いくつかの実施形態では、ロボットシステムは、物体のグループに対して費用便益分析を実行することができる。
いくつかの実施形態では、ロボットシステム100は、ソース接近軌道を計算して、多面グリッパアセンブリのグリッパ構成操作のためのグリッパ構成パラメータの計算を含むことができる。多面グリッパアセンブリのグリッパ構成操作は、サイドパッド(例えば、サイドパッド141-1及び/又はサイドパッド704)の位置を、把持-配置の組み合わせ実現可能性に対応する把持モデルの位置に構成するプロセスである。グリッパ構成パラメータは、ソース接近軌道中に、いつグリッパ構成操作が実行されるかのタイミングを定義する。一般に、グリッパ構成操作は、ソース接近軌道中の3つの期間である実行前期間、ロボットモーション期間、及び実行後期間で発生することができる。実行前期間は、ソース接近軌道に沿ったロボットアームのモーションの直前に発生し、グリッパ構成操作が完了するとすぐにロボットアームが軌道の実行を開始するようになっている。ロボットモーション期間は、ソース接近軌道に沿ったロボットアームのモーション中に発生し、ロボットアームのモーション中にグリッパ構成操作は開始するが、グリッパ構成操作は、ロボットアームがソース接近軌道を完了する前に完了される必要がない。実行後期間は、ロボットアームが、グリッパ構成パラメータのソース接近軌道の実行を完了した後に発生し、ロボットアームがモーションを停止すると、グリッパ構成操作が開始する(例えば、ロボットシステム100は、次の軌道を実行する前にグリッパ構成操作が完了するまで待機するための命令を生成する)ようになっている。
いくつかの実施形態では、ロボットシステム100は、センサ情報に基づいて、グリッパ構成操作のためのグリッパ構成パラメータを計算することができる。例えば、多面グリッパは、グリッパ構成操作中に形状を変化させるので、ロボットシステム100は、軌道経路に沿った環境に対応するセンサ情報を分析して、環境内の物体との潜在的な衝突を識別することができる。一般に、ロボットモーション期間に対応するグリッパ構成パラメータは、グリッパ構成操作によるモーションプランの実行の遅延を低減するのに最適である。センサ情報の分析に基づいて、ロボットシステム100は、グリッパ構成パラメータを計算して、衝突を回避する軌道経路に沿った任意の点でグリッパ構成操作を開始することができる。例えば、多面グリッパアセンブリが三壁カートから離れた後にカートとの潜在的な衝突を回避するために、グリッパ構成パラメータが軌道経路に沿った点に設定されることができる。いくつかの実施形態では、ロボットシステム100は、ロボットモーション期間中のグリッパ構成操作が衝突をもたらす可能性があるときなど、グリッパ構成パラメータのデフォルトを実行後期間として設定することができる。
いくつかの実施形態では、ロボットシステム100は、対象物体をタスク場所に配置するための配置場所を導出することができる。例えば、ロボットシステム100は、配置場所を導出するために、プロセス、モデル、及び/又はルールの所定のセットを使用することができる。これにより、配置場所は、タスク場所にすでに位置付けられた物体の位置及び配向、ならびに物体間の距離に基づくことができる。さらに、配置場所は、タスク場所の形状及びサイズに基づき得る。例えば、タスク場所は、ケージカート(例えば、図3に関して説明されたケージカート120)又はコンベヤベルトであり得る。
ブロック1616において、ロボットシステム100は、実行のためのモーションプランを選択することができる。いくつかの実施形態では、ロボットシステム100は、実行優先度に基づいてモーションプランを選択することができる。一例では、実行優先度は、把持安定性に基づくことができ、ロボットシステム100は、把持安定性が低い物体よりも把持安定性が高い物体のモーションプランを選択することができる。別の例では、実行優先度は、物体移送軌道の軌道経路の経路長に基づくことができ、ロボットシステム100は、ソース場所とタスク場所との間の経路長がより長い物体よりも、経路長がより短い物体のモーションプランを選択することができる。いくつかの実施形態では、ロボットシステム100は、計算時間制限に基づいてモーションプランを選択することができる。計算時間制限は、ロボットシステム100がモーションプラン計算/コンピューテーションを実行することが可能な最大期間であり得る。一例として、計算時間制限は、1~1.5秒などの秒のオーダーであることができる。計算時間制限に達するとき、ロボットシステム100は、実行優先度が最も高いモーションプランを選択することができる。場合によっては、計算時間制限に達する前にモーションプランが完了しない場合は、ロボットシステム100が、完了した第1のモーションプランを選択して実行することができる。
ブロック1620において、ロボットシステムは、モーションプラン(複数可)を実施することができる。ロボットシステムは、モーションプラン、及び/又は対応するコマンド/セッティングをロボットユニットに通信することに基づいて、モーションプランを実施することができる。従って、ロボットユニットは、モーションプランを実行して対象物体を移送することができる。
いくつかの実施形態では、ロボットシステム100は、ブロック1622における接近軌道の計算中ではなく、接近軌道の実行中にグリッパ構成パラメータを計算し、グリッパ構成操作を実行することができる。例えば、グリッパ構成パラメータの計算は、バックグラウンドプロセスとして実行されることができ、その後、ソース接近軌道の実行中に続いて実行される。グリッパ構成パラメータの計算は、上述と同様に実行されることができる。
いくつかの実施形態では、ブロック1624に示されるように、ロボットシステムは、MVRに関連付けられた、認識されないか、又は登録されていない物体の、物体の高さ、物体の質量、及び/又は物体の重心などの物理的物体特性を判定することができるか、又は、登録された物体の1つに対応する検出仮説の物体の物理的特性を検証することができる。質量及び/又は重心判定の例として、ロボットシステム100は、エンドエフェクタ140が物体を掴みながら物体の質量及び/又は重心を計算するために、エンドエフェクタ140(例えば、多面グリッパアセンブリ)上の力トルクセンサからの測定値を使用することができる。
高さ判定の例として、ロボットシステム100は、対象物体の移送/除去の前と対象物体の移送/除去の後のソース場合における対象物体の場所のセンサ情報(3D画像データなど)を取得及び分析して、対象物体の高さを判定することができる。より具体的には、ロボットシステム100は、1)物体が開始場所にあるときに対象物体の上面の部分に対応する3D画像データからの深度情報(物体上面深度とも呼ばれる)と、2)対象物体がソースの場所から除去された後に対象物体が上に積み重ねられた表面(つまり、対象物体の下にあった物体の上面)の深度情報(物体支持表面深度とも呼ばれる)と、を比較することによって、対象物体の高さを判定することができる。換言すると、ロボットシステムは、対象物体の高さを物体上面深度と物体支持表面深度との差として判定することができる。別の例では、ロボットシステムは、(例えば、ラインセンサによって観察されたような)既知の高さに出入りする物体の底部に対応する横断イベント中のエンドエフェクタの位置に対応するセンサ情報に基づいて物体の高さを計算することができる。ロボットシステムは、移送された物体及び/又はその動的に判定された高さを、一致する物体のその後の処理のためにマスタデータに登録することができる。
いくつかの実施形態では、ロボットシステム100は、タスク場所における物体の配置を監視するように構成された目的地センサのセットに基づいて、物体の高さを判定することができる。例えば、目的地センサは、ラインセンサ(例えば、光学センサ)を含むことができ、これらは、光信号を送信し、及び/又は移送されたパッケージ及び/又はロボットユニット(例えば、エンドエフェクタ140)によって引き起こされる光信号の変化を検出する。いくつかの例示的なラインセンサは、横断又は入場イベントを示す対応するレーザ又は光信号の欠如、及びそれに続く出場イベントを示すレーザ/光信号の検出を検出することができる。
ロボットシステム100は、目的地センサを使用して、移送されたパッケージの他の物理的態様を判定又は検証することができる。例えば、ロボットシステム100は、横断イベントを使用して、パッケージの高さを判定することができる。目的地センサの検出ライン/平面は、既知の高さにあることができる。従って、ロボットシステム100は、横断イベント時にエンドエフェクタ140の高さを識別し、識別された高さと、目的地センサの既知の高さとの間の差を計算することによって、パッケージの高さを判定することができる。また、ロボットシステム100は、線形に配置されたセンサのトリガされたインスタンスを識別して、移送されたパッケージの対応する横方向寸法を判定することができる。
いくつかの実施形態では、ロボットシステム100は、ブロック1626で得られた情報(例えば、推定寸法、視覚画像データ、高さデータ、重量、質量、重心など)を使用して、移送された物体をマスタデータに自動的に登録することができる。新しく作成された物体登録が、最初に取得した情報と一致する後続の物体を移送するために使用されることができ、また、後続の移送のためにサイドパッドの場所(例えば、非デフォルト場所)を調整するために使用されることができる。
いくつかの実施形態では、ロボットシステム100は、以前に取得された画像及び/又は上述のプロセスを使用して、物体スタック165内の後続の物体を識別及び処理することができ、例えば、ロボットシステム100は、追加の検出仮説を生成し、開始場所及び/又はタスク場所のための新しいデータセット(例えば、画像データ)に基づいて検出仮説を処理し、ブロック1602へのフィードバックループによって表されるように上述のプロセスを繰り返すことができる。
例示的な実装の詳細
図17A~17Cは、本技術の1つ又は複数の実施形態による、ロボットシステムの動作の例示的な実施形態の詳細を示す。上述のように、サイドパッドは、対象物体を移送するための追加的支持及び/又はグリップを提供するように構成される。サイドパッドは、対向する側面を圧縮することによって物体をつまむ他のグリッパとは異なり得る。サイドパッド(例えば、図17Aのサイドパッド704)は、慣性力と反対の方向に沿って移動又は加速するときに、対象物体にもたらされる慣性に対する支持を提供することができる。図17Aに示される例については、対象物体1700は、矢印1704によって示される方向に移動するときに、矢印1702によって示される方向で慣性がもたらされ得る。さらに、対象物体1700にもたらされる慣性を低減することにより、ロボットシステムは、トップパッド702にもたらされるトルク(トップパッド702内の横方向に向いた矢印を使用して図17Aに示される)を低減することができる。従って、ロボットシステムは、サイドパッド704を使用して、もたらされたトルクに起因するトップパッド702の周囲エッジでのグリップ損失/失敗(例えば、剥離失敗)を低減することができる。
上述のように、ロボットシステムは、対象物体1700の1つ又は複数の特性に従って、サイドパッド704の場所を判定することができる。いくつかの実施形態では、ロボットシステムは、サイドパッドが対象物体1700の重心場所1706、又はその推定場所と少なくとも部分的に重なるか、又は少なくとも部分的に下になるように場所を判定することができる。
サイドパッドによって提供される慣性に対する支持は、対象物体1700が、トップパッドだけによる吸引では物体の移送を支持することができない軟弱な上面を有する場合に特に必要となり得る。換言すれば、トップパッド702によって上面に加えられる力(トップパッド内で上向きの矢印を使用して図17Aに示されている)は、対象物体1700の重量に対応することができる。ロボットシステムは、所定のインジケータを使用して、対象物体1700の上部又はパッケージングの構造的完全性が、加えられた力に耐えるのに不十分であり得るかを識別することができる。そのような場合、ロボットシステムは、サイドパッド704で対象物体1700を把持して追加的な支持を提供することができ、それにより、対象物体1700を持ち上げるためにトップパッド702によって加えられる力を低減する。同様に、ロボットシステムは、サイドパッド704を使用して、(例えば、トップパッド702のみを使用する場合と比較して)エンドエフェクタの最大グリップ重量を増加させることができる。
サイドパッドは、ロボットシステムが物体の移送に使用される力/加速度を増やすことを可能にする。図17Bにおいて、実線の曲線は、開始場所から降下場所に対象物体を移送するのに必要な時間(t)に対する対象物体の例示的な加速度を示す。実線の曲線は、トップパッドのみを使用して対象物体を把持したときの経時的な加速度を示し、破線は、トップパッドとサイドパッドを使用したときの経時的な加速度を示す。図示されているように、上述の増加した支持に基づいて、トップパッドとサイドパッドの両方を使用するときに開始場所から降下場所に対象物体を移送するために必要な時間が(例えば、tgainによって)短縮される。
ロボットシステムは、増加した力/加速によって提供される便益を、サイドパッドの配置及び/又は係合に関連付けられた追加の時間(tadditional)と比較して、全体的な効率向上を判定できる。図17Cは、サイドパッド704を対象物体1700と接触させて配置する方法を示す。図17Cの断面I)において、サイドパッド704はデフォルトの格納位置にある。図17Cの断面II)において、多面グリップアセンブリは、サイドパッド704を対象物体1700に近い位置に動かし、断面III)において、多面グリップアセンブリは、(例えば、対象物体1700の側面上の判定されたサイドパッド場所において)対象物体1700の側面と接触するようにサイドパッドを動かしている。図17Cに従って、サイドパッド704を対象の側面と接触するように格納位置から移動させるのに必要な時間(tadditional)は、対象物体を動かすためのトップパッドを使用することに加えて、サイドパッドを使用することによって短縮された時間(tgain)と比較される。従って、ロボットシステムは、得られた効率(tgain)を、サイドパッドの配置及び係合に関連付けられた費用と比較することができる。
例示的な実施形態
いくつかの実施形態によれば、多面グリッパ(例えば、図7A~図9Fの多面グリッパアセンブリ700)は、対象物体の第1の表面(例えば、側面)を把持するように構成された第1のパッド(例えば、サイドパッド704)、及び対象物体の第2の表面(例えば、上面)を把持するように構成された第2のパッド(例えば、トップパッド702)を含む。第1のパッドは、第1の複数の吸引要素(例えば、図10Aの吸引要素1004)を含み、第2のパッドは、第2の複数の吸引要素を含む。第1のパッド及び第2のパッドは、動作可能に結合され、互いに対して非平行に位置付けられ(例えば、図7Cに示されるように)、第1のパッドが、対象物体の第1の表面を把持するように構成され、第2のパッドが、対象物体の第2の表面に接触するように構成されている(例えば、図17Cに示されるように)。対象物体の第2の表面は、対象物体の第1の表面とは非平行である。
いくつかの実施形態では、第1のパッド及び第2のパッドは、互いに実質的に直交して位置付けられており、第1の複数の吸引要素が、第1のグリップインターフェースを画定し、第2の複数の吸引要素が、第2のグリップインターフェースを画定するようになっている。第2のグリップインターフェースは、第1のグリップインターフェースに実質的に直交している。いくつかの実施形態では、2つのパッドによって規定される角度は、90度~110度の範囲になっている。いくつかの実施形態では、2つのパッドによって規定される角度は、実質的に90度(例えば、90度±2度)である。
いくつかの実施形態では、第1のグリップインターフェースは、対象物体の垂直面を把持するように構成され、第2のグリップインターフェースは、対象物体の水平面を把持するように構成される。いくつかの実施形態では、対象物体は、立方体又は立方体形状を有する(例えば、対象物体1700は、立方体のボックスである)。
いくつかの実施形態では、第2のパッドは、第1のパッドに対して固定された位置及び/又は配向を有する。例えば、トップパッド702及びサイドパッド704は、それらの相対位置が維持されるように、互いに機械的に結合されている。いくつかの実施形態では、第2のパッドは、第1のパッドに動作可能に結合され、第2のパッドの位置及び/又は配向は、第1のパッドの位置及び/又は配向に対して変更可能であるようになっている。例えば、図7Cに示すように、サイド位置決め機構710は、サイドパッド704(例えば、第1のパッド)のトップパッド702(例えば、第2のパッド)に対する位置及び/又は配向を変更するためのアクチュエータを含むことができる。垂直モーション(破線矢印714-2で示されている)及び水平モーション(破線矢印714-1で示されている)のアクチュエータ機構は、互いに同じであるか、又は異なっていてもよい。いくつかの実施形態では、垂直モーション用のアクチュエータは、ピストン又はシリンダベースのアクチュエータであり得る。
いくつかの実施形態では、第1の複数の吸引要素は、吸引要素の第1の区間及び吸引要素の第2の区間を含む。例えば、グリップインターフェース1000は、図10Aの真空領域1001-1、1001-2、及び1001-3にグループ化された吸引要素1004を含む。吸引要素の第2の区間は、第1の区間に隣接している。いくつかの実施形態では、吸引要素の第1の区間及び吸引要素の第2の区間は、独立して作動可能である。例えば、図11Bは、区間1及び区間2が対象物体(物体1)と重なるように位置付けられた多面グリッパアセンブリ700を示している。ロボットシステムは、重なった区間(例えば、区間1及び区間2)を作動させて、対象物体をグリップすることができる。ロボットシステムは、重なっていない区間、及び/又は非対象物体と重なっている任意の区間を非作動にするか、又は係合しないことができる。
例示的な方法
ロボットシステムを操作する例示的な方法1は、開始場所にある物体を描写するセンサ情報に基づいて、対象物体に対応する検出仮説を生成することを含む。対象物体に対する検出仮説は、少なくとも、多面グリッパアセンブリを使用して対象物体を把持するための開放エッジを有していることに基づいて生成される。多面グリッパアセンブリは、対象物体の第1の表面を把持するように構成された第1のパッドと、対象物体の第2の表面を把持するように構成された第2のパッドと、を含む。本方法は、開放エッジのための水平平面開放性及び垂直平面開放性を判定することを含む。水平平面開放性と垂直平面開放性は、開放空間の尺度を表す。本方法は、対象物体を開始場所から配置場所に移送するための多面グリッパのモーションプランを導出することを含む。モーションプランを導出することは、水平平面開放性と垂直平面開放性に基づいて、対象物体の第1の表面上の第1のパッドの位置、及び対象物体の第2の表面に対する第2のパッドの位置を規定する把持モデルを決定することを含む。本方法は、モーションプランに従って、対象物体を開始場所から配置場所に移送するためのモーションプランを実行することを含む。
開放エッジを識別する例示的な方法1は、開放エッジと交差する開放エッジとの間の頂点として露出したコーナーを判定することを含む。本方法は、露出したコーナーの位置及び露出したコーナーから延在する2つの開放エッジに基づいて、検出仮説のための仮説洗練化を生成することを含む。
モーションプランを導出する例示的な方法1は、多面グリッパアセンブリを第1の位置から第2の位置に移動させるための軌道を含む接近軌道を計算することを含む。第2の位置は対象物体の上にあり、多面グリッパアセンブリが、第2の位置から対象物体の表面に接触するための把持接近を開始することができるようになっている。
第1のパッドの対象把持位置を決定する例示的な方法1は、対象物体が登録済み物体に対応しないときに、第1のパッドの開放コーナーにおいて、又はその周りのデフォルトのパッド位置を決定することを含む。
対象把持位置を決定する例示的な方法1は、多面グリッパと対象物体との組み合わせのための複数の把持構成を決定することを含む。複数の把持構成のそれぞれの把持構成は、第1のパッドの対象物体の開放エッジに対する位置及び配向を含む。対象把持位置を決定することはまた、水平平面開放性及び垂直平面開放性に基づいて複数の把持構成をフィルタリングし、第1のパッド及び/又は第2のパッドが、対象物体を把持するための高さ閾値及び/又は接近閾値を満たすことを把持構成が識別することも含む。
水平平面開放性を判定する例示的な方法1は、対象物体の上面と隣接する物体の上面との深度の差に基づいて、開放エッジから水平に延在する開放空間の距離を判定することを含む。本方法は、水平平面開放性が、第1のパッドが対象物体を把持するために必要とされる水平閾値開放性よりも大きいかどうかを判定することをさらに含む。
垂直平面開放性を判定する例示的な方法1は、開始場所において対象物体を描写する画像データに基づいて、開放エッジから垂直に延在する開放空間の距離を判定することを含む。本方法は、垂直平面開放性が、第1のパッドが対象物体を把持するために必要とされる垂直閾値開放性よりも大きいかどうかを判定することをさらに含む。
例示的な方法1は、対象物体を把持するための多面グリッパの固有の姿勢を表す1つ又は複数の把持モデルの把持セットを決定することをさらに含む。本方法は、対象物体の開放エッジの水平平面開放性及び垂直平面開放性に基づいて、把持セットから1つ又は複数の把持モデルの把持実現可能性を決定することを含む。本方法は、配置場所における、又はその周りでの1つ又は複数の条件に従って、1つ又は複数の把持モデルの配置実現可能性を決定することを含む。配置実現可能性は、多面グリッパアセンブリが対象物体に接近し、それをグリップし、配置できるようにする、多面グリッパアセンブリのグリップ場所と対応する姿勢を表す。モーションプランを導出することは、把持モデルの把持実現可能性及び配置実現可能性に従って、多面グリッパアセンブリの軌道を計算することを含む。モーションプランを導出することは、軌道を計算することを含み、これには、多面グリッパアセンブリと対象物体の衝突のない場所のシーケンスを繰り返し判定することと、軌道に基づいてモーションプランを導出することと、が含まれる。
結論
開示された技術の実施例の上記の詳細な説明は、網羅的であること、又は開示された技術を上記で開示された正確な形態に限定することを意図するものではない。開示された技術の特定の実施例が例示の目的で上記に説明されているが、当業者が認識するように、開示された技術の範囲内で様々な同等の修正が可能である。例えば、プロセス又はブロックが所与の順序で提示されているが、代替的な実施態様は、ステップを有するルーチンを実行してもよく、又はブロックを有するシステムを異なる順序で使用してもよく、いくつかのプロセス又はブロックは、代替又は部分的な組み合わせを提供するために、削除、移動、追加、細分、結合、及び/又は変更されてもよい。これらのプロセス又はブロックのそれぞれは、様々な方法で実施されてもよい。また、プロセス又はブロックは、時には直列に実行されるように示されているが、これらのプロセス又はブロックは、代わりに並列に実行又は実施されてもよく、又は異なる時間に実行されてもよい。さらに、本明細書に記載されている任意の特定の数は単なる実施例であり、代替的な実施態様では、異なる値又は範囲を使用してもよい。
これら及び他の変更は、上記の詳細な説明に照らして、開示された技術に対して行うことができる。詳細な説明は、開示された技術の特定の実施例ならびに考えられるベストモードを説明しているが、開示された技術は、上記の説明が本文にどのように詳細に記載されていても、多くの方法で実施することができる。システムの詳細は、本明細書に開示されている技術によって包含されながら、特定の実施態様ではかなり異なり得る。上述したように、開示された技術の特定の特徴又は態様を説明するときに使用される特定の用語は、その用語が関連付けられている開示された技術の特定の特性、特徴、又は態様に制限されるように、本明細書でその用語が再定義されていることを意味するものと解釈されるべきではない。したがって、本発明は、添付の特許請求の範囲によるものを除き、限定されない。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明の節でそのような用語を明示的に定義しない限り、開示された技術を本明細書で開示される特定の実施例に限定するように解釈されるべきではない。
本発明の特定の態様は、以下に特定の特許請求の範囲の形態で提示されるが、出願人は、本発明の様々な態様を任意の数の特許請求の範囲の形態で検討する。したがって、本出願人は、本願又は継続出願のいずれかで、そのような付加的な特許請求の範囲の形態を追求するために、本願を出願した後に付加的な特許請求の範囲を追求する権利を留保する。