協調搬送機構を有するロボットシステムのシステムおよび方法が本明細書に説明されている。いくつかの実施形態に従って構成されたロボットシステム(例えば、各々が1つ以上の指定されたタスクを実行するデバイスの統合されたシステム)は、複数のユニット(例えば、ロボット)の操作を協調させることによって、統合されたタスクを自律的に実行する。
本明細書に記載される本技術は、既存のコンピュータベースの画像認識およびロボット制御分野に技術的改善をもたらす。技術的改善は、物体とのロボットの相互作用の効率および信頼性を向上させるために、物体の握る部分を識別する全体的な速度および信頼性の向上を提供する。画像情報を使用して、カメラの視野内に存在する物体を決定および区別することで、本明細書に説明されるプロセスは、1つの標的物体の潜在的な握る部分の識別を調整および支援するための物体の移動の使用を通して、既存の画像認識をさらに改善する。
特に、本明細書に説明される本技術は、各物体の寸法および位置の識別が未知であるか、または不完全な正確さで既知であるとき、ロボットシステムが、複数の物体のうちの特定の物体と相互作用するのを支援する。例えば、複数の物体が互いに同一平面に位置決めされる場合、既存のコンピュータベースの画像認識は、各物体を識別することが困難であり、物体とどのように相互作用するかについて、ロボットシステムに確実かつ正確に指示することが困難であり得る。特に、それは、物体の寸法が正確に識別されない場合、1つの物体が終了し、別の物体が開始するロボットシステムにとって明確ではない場合がある。したがって、システムは、物体が他の物体と交差する場所で物体を把持することを試みるリスクがある。そのような場合、システムは、いずれの物体も把持することに失敗する場合がある。物体の正確な寸法が、完全な正確さで知られていなくてもよいが、本明細書に提供されるシステムおよび方法は、物体の正しいエッジを識別または決定することを必要とせず、ロボットアームによって把持され得る物体の少なくとも一部分、例えば、最小実行可能領域を迅速かつ確実に識別する能力を提供する。さらに、システムは、物体を掴む場所を調整するように構成され得る。物体を特定の場所(例えば、中心から外れた場所)で掴む場合、物体を輸送することが困難である場合がある。本明細書に提供されるシステムおよび方法は、ロボットアームによる初期の把持後の物体の移動を使用して、物体の正しい寸法を決定し、更新された寸法に基づいて、ロボットが物体とどのように相互作用するかを調整または変更し得る。
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含まずに実施されてもよい。他の実例では、特定の機能またはルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。本明細書における「実施形態」、「一実施形態」などへの参照は、説明される特定の特徴、構造、材料、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしもすべて同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料、または特性は、1つ以上の実施形態で、任意の好適な様式で組み合わせられ得る。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
周知であり、かつ多くの場合にロボットシステムおよびサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭にし得る、構造またはプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。さらに、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成または異なる構成要素を有してもよい。したがって、開示された技術は、追加の要素を有するか、または以下に説明される要素のうちの数点を有しない、他の実施形態を有してもよい。
以下に説明される本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはコントローラによって実行されるルーチンを含む、コンピュータまたはコントローラ実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され説明されるもの以外のコンピュータまたはコントローラシステム上で、またはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技術は、以下に説明されるコンピュータ実行可能命令のうちの1つ以上を実行するように、特別にプログラム、構成、または構築されている、専用コンピュータまたはデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される「コンピュータ」および「コントローラ」という用語は、任意のデータプロセッサを指し、インターネット家電およびハンドヘルドデバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラーまたはモバイルフォン、マルチプロセッサシステム、プロセッサベースまたはプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータおよびコントローラによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータまたはコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体に、またはその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、および/または他の好適な媒体を含む、任意の適切なメモリデバイスに含まれ得る。
「結合」および「接続」という用語は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続」は、2つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合」という用語は、2つ以上の要素が、互いに直接的または間接的(それらの間の他の介在要素との)接触にあるか、または2つ以上の要素が互いに協働するか、もしくは相互作用する(例えば、信号送信/受信のための、または関数呼び出しのためのなどの、因果関係にあるような)か、またはその両方を示すために使用され得る。
計算システムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の場所を説明する点群を含んでもよく、または該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
図1Aは、物体検出、すなわちより具体的には、物体認識を実施するためのシステム1500を示している。より詳細には、システム1500は、計算システム1100およびカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を描写するか、もしくはそうでなければ表し、またはより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、または他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠または他の容器などの、こうした施設に位置する物体を表し得る。システム1500は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて物体認識または物体登録を実施すること、および/または画像情報に基づいてロボット相互作用計画を実施することなど、画像情報を生成、受信、および/または処理するよう構成され得る(「および/または」および「または」という用語は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器または他の物体との間のロボット相互作用を促進するように、施設でロボットを制御するために使用され得る。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置し得る。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラおよび/または3Dカメラであり得る。例えば、図1Bは、計算システム1100、ならびにカメラ1200Aおよびカメラ1200B(その両方がカメラ1200の実施形態であり得る)を含む、システム1500A(システム1500の実施形態であり得る)を示している。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を記述する2D画像を含むまたは形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含むまたは形成する3D画像情報を生成するように構成される3Dカメラ(空間構造感知カメラまたは空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の場所など、カメラ1200Bに対する様々な場所のそれぞれの奥行き値を説明する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野または物体の表面上のこれらの場所を、物理的な場所と称することもできる。この実施例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野中にある物体の1つ以上の表面上の場所を説明する点群を含んでもよく、または該点群を生成するために使用され得る。より具体的には、空間構造情報は、物体の構造(物体構造とも呼ぶ)上の様々な場所を説明し得る。
実施形態では、システム1500が、カメラ1200の環境でロボットと様々な物体との間のロボット相互作用を促進するためのロボット操作システムであり得る。例えば、図1Cは、図1Aおよび図1Bのシステム1500/1500Aの実施形態であり得る、ロボット操作システム1500Bを示している。ロボット操作システム1500Bは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある1つ以上の物体、例えば、箱、木枠、ビン、またはその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、1つの場所から容器を拾い上げ、それらを別の場所に移動するように構成され得る。一部の事例では、ロボット1300は、容器または他の物体のグループが降ろされて、例えば、ベルトコンベヤーに移動されるといった、パレットから降ろす操作を実施するために使用され得る。一部の実装形態では、カメラ1200は、ロボット1300のロボットアーム3320など、ロボット1300に取り付けられてもよい。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫または他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。
一実施形態では、図1A~図1Cの計算システム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、またはロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器または他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成されてもよい。例えば、計算システム1100は、画像情報に基づいて運動計画を決定するように構成されてもよく、運動計画は、例えば、物体を握るか、または他の方法で拾い上げることを意図し得る。計算システム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成し得る。
実施形態では、計算システム1100は、視覚システムを形成しても、またはその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を記述する、または別の方法として、もしくは追加的に、カメラ1200が位置する環境を記述する、視覚情報を生成するシステムであり得る。視覚情報が、上で考察された3D画像情報、および/または2D画像情報、またはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、計算システム1100が、視覚システムを形成する場合、視覚システムは、上で考察されたロボット制御システムの一部であってもよく、またはロボット制御システムから分離し得る。視覚システムは、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を記述する、情報を出力するように構成され得る。情報は、視覚システムからこうした情報を受信し、情報に基づいて、運動計画を実施し、および/またはロボット相互作用移動コマンドを生成することができる、ロボット制御システムに出力され得る。視覚システムに関する詳細情報は、以下に詳しく説明されている。
実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、および/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続によってカメラ1200ならびに/またはロボット1300と通信し得る。実施形態では、計算システム1100が、ネットワークを介してカメラ1200および/またはロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、またはインターネットなど、いかなるタイプおよび/または形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、またはSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用し得る。
実施形態では、計算システム1100は、カメラ1200および/もしくはロボット1300と直接情報を伝達してもよく、または中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、図1Dは、計算システム1100の外部にあり得る非一時的コンピュータ可読媒体1400を含む、システム1500/1500A/1500Bの実施形態であってもよく、例えば、カメラ1200によって生成される画像情報を記憶するための外部バッファまたはリポジトリとして作用し得る、システム1500Cを示している。こうした一実施例では、計算システム1100は、非一時的コンピュータ可読媒体1400から、画像情報を検索するか、さもなければ受信することができる。非一時的コンピュータ可読媒体1400の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックを形成し得る。
上述のように、カメラ1200は、3Dカメラおよび/または2Dカメラであり得る。2Dカメラは、カラー画像またはグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、またはいかなる他のタイプの3Dカメラであり得る。一部の事例では、2Dカメラおよび/または3Dカメラは、電荷結合素子(CCD)センサおよび/または相補型金属酸化膜半導体(CMOS)センサなど、イメージセンサを含み得る。実施形態では、3Dカメラは、レーザー、LIDARデバイス、赤外線デバイス、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダー検出器、または奥行き情報、または空間構造情報を取り込むように構成される任意の他のデバイスを含み得る。
上述のように、画像情報が、計算システム1100によって処理され得る。実施形態では、計算システム1100は、サーバー(例えば、1つ以上のサーバーブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピュータ装置、および/もしくは他の任意の他の計算システムを含んでもよく、またはそれらとして構成され得る。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一のコンピュータ装置(例えば、デスクトップコンピュータ)であってもよく、または複数のコンピュータ装置を含んでもよい。
図2Aは、計算システム1100の実施形態を示すブロック図を提供する。この実施形態における計算システム1100は、少なくとも1つの処理回路1110、および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、および/またはオンボードサーバー)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に操作可能に結合された別個の/スタンドアロンコントローラに含まれてもよい。プロセッサは、プログラム命令を実装して、他の装置を制御/インターフェースし、それによって、計算システム1100にアクション、タスク、および/または操作を実行させ得る。実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、または任意の他の処理回路を含む。
実施形態では、計算システム1100の一部である非一時的コンピュータ可読媒体1120が、上で考察された中間の非一時的コンピュータ可読媒体1400の代替または追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせなどの記憶装置であってもよく、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、または任意の他の記憶装置などであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120は、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、物体認識操作を実施するために使用される1つ以上のモデルテンプレートを記憶し得る。非一時的コンピュータ可読媒体1120は、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的または追加的に記憶し得る。
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む計算システム1100Aを描写する。通信インターフェース1130は、例えば、図1A~図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1130は、図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1130が、ロボット制御システムと通信するように構成され得る。通信インターフェース1130はまた、通信構成要素または通信回路と呼ばれる場合があり例えば、有線または無線プロトコルによって通信を実施するように構成される通信回路を含んでもよい。実施例として、通信回路が、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、またはそれらの組み合わせを含んでもよい。
一実施形態では、図2Cに図示されるように、非一時的コンピュータ可読媒体1120は、本明細書に論じられる1つ以上のデータオブジェクトを記憶するように構成された記憶空間1128を含み得る。例えば、記憶空間は、モデルテンプレート、ロボットアーム移動コマンド、および計算システム1100Bがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、図2Dは、計算システム1100/1100A/1100Bの実施形態である計算システム1100Cを示し、その中の処理回路1110は、物体認識モジュール1121、最小実行可能領域(MVR)モジュール1122、および運動計画モジュール1129を含む1つ以上のモジュールによってプログラムされる。
実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得および分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、および技術は、物体認識モジュールを使用し得る。
MVR決定モジュール1122は、物体認識モジュール1121によって実施または取得された画像情報および分析に従って、最小実行可能領域を算出、決定、および/または識別するように構成され得る。MVR決定に関して本明細書で論じられる方法、システム、および技術は、MVR決定モジュール1122によって実施され得る。
運動計画モジュール1129は、ロボットの移動を計画するように構成され得る。例えば、運動計画モジュール1129は、個々の設置場所/向きを導出し、対応する運動計画、または物体を掴むおよび/もしくは移動させるためのそれらの組み合わせを算出してもよい。ロボットアームの移動に関して本明細書で論じられる方法、システム、および技術は、運動計画モジュール1129によって実施され得る。
図2E、図2Fおよび図3Aを参照すると、画像分析のために実施され得る物体認識モジュール1121に関連する方法が説明される。図2Eおよび図2Fは、画像分析方法と関連付けられた例示的な画像情報を示すが、図3Aは、画像分析方法と関連付けられた例示的なロボット環境を示す。計算システムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の場所を説明する点群を含んでもよく、または該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
実施形態では、計算システム1100は、カメラ(例えば、1200/3200)のカメラ視野(例えば、3210)内の物体を表す画像情報を取得し得る。一部の実例では、物体は、カメラ1200/3200のカメラ視野3210における1つ以上の物体(例えば、3510~3540)の第1の物体(例えば、3510)であってもよい。画像情報2600、2700は、物体3000A/3000B/3000C/3000Dのグループがカメラ視野3210にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、個々の物体のうちの1つ以上を記述してもよい。物体の外観は、カメラ1200/3200の視点からの物体3000A/3000B/3000C/3000Dの外観を記述する。カメラ視野に複数の物体がある場合、カメラは、必要に応じて、複数の物体または単一の物体を表す画像情報を生成し得る。画像情報は、物体のグループがカメラ視野にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、および、例えば、2D画像情報および/または3D画像情報を含み得る。
一例として、図2Eは、画像情報の第1のセット、より具体的には、2D画像情報2600を図示し、これは、上述のように、カメラ3200によって生成され、図3Aの物体3000A/3000B/3000C/3000D/3550を表す。より具体的には、2D画像情報2600は、グレースケール、またはカラー画像であり得、カメラ3200の視点からの物体3000A/3000B/3000C/3000D/3550の外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、または青のチャネル)に対応し得る。カメラ3200が物体3000A/3000B/3000C/3000D/3550の上方に配設される場合、2D画像情報2600は、物体3000A/3000B/3000C/3000D/3550のそれぞれの上部表面の外観を表し得る。図2Eの実施例では、2D画像情報2600は、物体3000A/3000B/3000C/3000D/3550のそれぞれの表面を表す、画像部分とも呼ばれる、それぞれの部分2000A/2000B/2000C/2000D/2550を含み得る。図2Eでは、2D画像情報2600の各画像部分2000A/2000B/2000C/2000D/2550は、画像領域、すなわち、より具体的には、ピクセル領域(画像がピクセルによって形成される場合)であり得る。2D画像情報2600のピクセル領域内の各ピクセルは、座標[U、V]のセットによって記述される位置を有するものとして特徴付けられ得、図2Eおよび図2Fに示されるように、カメラ座標系または他の何らかの座標系に相対的な値を有し得る。ピクセルの各々はまた、0~255または0~1023の値などの、強度値を有してもよい。さらなる実施形態では、ピクセルの各々は、様々なフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)のピクセルに関連付けられた任意の追加情報を含んでもよい。
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像のすべてまたは一部分であってもよい。実施例では、計算システム3100は、対応する物体3000Aと関連付けられた画像情報のみを取得するように、2D画像情報2600から画像部分2000Aを抽出するように構成されてもよい。例えば、計算システム3100は、図2Fに示される2D画像情報2600および/または3D画像情報2700に基づいて画像セグメンテーション操作を実施することによって、画像部分2000Aを抽出し得る。一部の実装形態では、画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が2D画像情報2600の中に現れる画像の場所を検出すること、およびこうした画像の場所を使用して、カメラ視野(例えば、3210)内の個々の物体を表すことに限定された画像部分(例えば、5610)を識別することを含み得る。
図2Fは、画像情報が3D画像情報2700である、実施例を図示している。より具体的には、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550の1つ以上の表面(例えば、上部表面、または他の外部表面)上の様々な場所のそれぞれの奥行き値を示す、例えば、奥行きマップまたは点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報2700の中に現れる画像の場所を検出すること、およびこうした画像の場所を使用して、カメラ視野(例えば、3000A)内の個々の物体を表すことに限定された画像部分(例えば、2730)を識別することを含み得る。
それぞれの奥行き値は、3D画像情報2700を生成するカメラ3200に対するものであってもよく、またはいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3210)の中にある物体の構造上の様々な場所に対するそれぞれの座標を含む、点群を含み得る。図2Fの実施例では、点群は、物体3000A/3000B/3000C/3000D/3550のそれぞれの表面上の場所を説明する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、または何らかの他の座標系に対する値を有してもよい。例えば、3D画像情報2700は、物体3000Dの表面上の物理的な場所とも呼ばれる、場所27101~2710nのセットのそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の部分2710を含み得る。さらに、3D画像情報2700は、第2の部分、第3の部分、および第4の部分2720、2730、および2740をさらに含み得る。次に、これらの部分は、それぞれ、物体27201~2720n、27301~2730n、および27401~2740nによって表され得る、場所のセットに対するそれぞれの奥行き値をさらに示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第1のセットの一部分であってもよい。図2Eの実施例では、取得された3D画像情報2700が図3Aの第1の物体3000Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。
実施形態では、画像正規化操作は、画像情報を取得する一部として、計算システム1100によって実施され得る。画像正規化操作は、変換された画像または変換された画像部分を生成するために、カメラ3200によって生成された画像または画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、または2つの組み合わせを含み得る画像情報が、視点、物体姿勢、および視覚的記述情報と関連付けられた照明条件において画像情報を変更させるように試みるために、画像正規化操作を受け得る場合である。そのような正規化は、画像情報およびモデル(例えば、テンプレート)情報間のより正確な比較を容易にするために実施され得る。視点は、カメラ3200に対する物体の姿勢、および/またはカメラ3200が物体を表す画像を生成するときに、カメラ3200が物体を見ている角度を指し得る。
例えば、画像情報は、標的物体がカメラ視野3210内にある物体認識操作中に生成され得る。カメラ3200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上面をカメラ3200の光学軸に対して垂直にする姿勢を有してもよい。こうした実施例では、カメラ3200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の実例では、カメラ3200が物体認識操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、または他の照明条件を表し得る。
実施形態では、画像正規化操作は、画像または画像部分を、モデルテンプレートの情報と関連付けられた視点および/または照明条件により良く一致させるように、カメラによって生成されるシーンの画像または画像部分を調整することを伴い得る。調整は、画像または画像部分を変換して、物体姿勢またはモデルテンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも1つに一致する変換された画像を生成することを伴い得る。
視点調整は、画像がモデルテンプレート内の視覚的記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、および/またはシフトを伴い得る。処理は、例えば、画像の色、コントラスト、または照明を変更することを含み、シーンのワーピングは、画像のサイズ、寸法、または比率を変更することを含み得、画像のシフトは、画像の位置、向き、または回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、および/またはシフトを使用して、シーンの画像内の物体を、モデルテンプレートの視覚的記述情報に一致するか、またはそれにより良好に対応する向きおよび/またはサイズを有するように変更してもよい。モデルテンプレートが、一部の物体の正面視界(例えば、上面視界)を記述する場合、シーンの画像は、シーン内の物体の正面視界も表すようにワーピングされ得る。
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを実施するものとして説明され得る。
本開示の一態様は、物体検出(物体認識とも呼ばれる)、物体サイズ測定、および/または最小実行可能領域検出を実施することができる、ロボットシステムまたは任意の他の計算システムに関する。物体検出またはサイズ測定は、シーン内の個々の物体の寸法を決定すること、または個々の物体の境界を決定することを伴い得る。物体は、物体のグループの一部である箱などの、物体のグループの一部であってもよい。例えば、ロボットシステムは、パレットの各層が互いに近くに設置された物体を有する、物体のパレットを有するシーンを取り込むカメラデータをロボットシステムが受信する、パレットから降ろす操作の一部として物体検出操作を実施し得る。
このシナリオにおける物体検出は、1つの個々の物体を層上の他の物体と区別できるように、パレットの特定の層上の個々の物体を区別するためのカメラデータ(画像情報)の処理または分析を伴い得る。問題は、物体のパレットがすべて互いに同一平面に位置決めされるときに起こり、ロボットシステムが物体を互いに検出または分離することが困難になる。本明細書に説明されるプロセスは、パレットから個々の物体を拾い上げ、それを他の場所に移動させるための計画を生成するために、ロボットシステムが物体のサイズおよび/または境界を識別することを可能にし得る。一部の実装形態では、ロボットシステムは、シーンにおける物体に対する少なくとも1つの最小実行可能領域を識別し得る。最小実行可能領域は、特定の物体の潜在的な輪郭または寸法の推定である。そのため、ロボットシステムは、物体の正しい寸法を知らずに、エンドエフェクター装置(例えば、グリッパ)を用いて、最小実行可能領域で個々の物体を掴むことができる。物体の最小実行可能領域は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。したがって、この領域内の物体を把持する試みは、エンドエフェクター装置が、物体のエッジ上に延在せずに、単一の物体のみに接触することを確保する。本明細書で論じられるように、最小実行可能領域の決定は、物体移動ロボットアームの正確性および速度を向上させ得る。
上記の例では、物体は、例えば、パレットまたは他のプラットフォーム上の他の物体の隣に設置された箱または他の物体であってもよい。カメラが、複数の物体を有するシーンを取り込む画像を生成する場合、画像自体は、異なる物体を区別する目的で完全には信頼性がない場合がある。例えば、一部のカメラは、シーン内の様々な場所の奥行き値を示す画像を生成することができ得るが、複数の物体が、同じ高さを有するか、または別様にカメラから同じ距離である場合、画像は、特に、複数の物体が一緒に密に詰め込まれている場合、複数の物体の上部表面を覆う領域に対する実質的に均一な奥行き値を示し得る。したがって、そのような画像は、複数の物体の中から個々の物体を識別する目的で、限定された情報を提供し得る。一部のカメラは、物体の上部表面などの、物体の視覚的な外観を取り込む画像を生成することができ得るが、これらの上部表面は、それらの上に印刷された線または他の視覚的マーキングを有し得る。したがって、そのような画像は、線を含み得るが、線の各々は、物体のうちの1つの境界(例えば、第1または第2のエッジ)と関連付けられ得るか、または単に視覚的マーキングであり得る(例えば、擬似エッジであり得る)。そのため、本明細書に提供するシステムおよび方法は、物体表面の最小実行可能領域を決定するために使用され得る。最小実行可能領域は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。最小実行可能領域は、物体の実際の物理的エッジおよび/または物体の擬似エッジによって境界付けられ得る。システムが擬似エッジと物理的エッジとの間を容易に区別することができない場合、この不能性は、以下で論じられるように、最小実行可能領域を規定する方法を通して説明され得る。
図3A~図3Hは、本明細書に説明されるプロセスおよび方法が実施され得る例示的な環境を例示する。図3Aは、計算システム3100(例えば、計算システム1100の実施形態)、ロボット3300、およびカメラ3200を含むシステム3500(図1A~図1Dのシステム1500/1500A/1500B/1500Cの実施形態であり得る)を有する環境を図示する。カメラ3200は、カメラ1200の実施形態であってもよく、カメラ3200のカメラ視野3210内のシーンを表す、または、より具体的には、物体3000A、3000B、3000C、および3000Dなどの、カメラ視野3210内の物体(箱など)を表す画像情報を生成するように構成され得る。一実施例では、物体3000A~3000Dの各々は、例えば、箱または木枠などの容器であってもよく、一方で、物体3550は、例えば、上に容器が配設されるパレットであり得る。
実施形態では、図3Aのシステム3500は、光源3600などの1つ以上の光源を含み得る。光源3600は、例えば、発光ダイオード(LED)、ハロゲンランプ、または任意の他の光源であってもよく、可視光、赤外線、または物体3000A~3000Dの表面に向かって任意の他の形態の光を放射するように構成され得る。一部の実施形態では、計算システム3100は、光源3600と通信して、光源3600が起動されたときを制御するように構成され得る。他の実装形態では、光源3600は、計算システム3100とは独立して動作し得る。
一実施形態では、システム3500は、カメラ3200、または2D画像情報2600を生成するように構成される2Dカメラと、3D画像情報2700を生成するように構成される3Dカメラと、を含む、複数のカメラ3200を含み得る。2D画像情報2600(例えば、カラー画像またはグレースケール画像)は、カメラ視野3210における、物体3000A/3000B/3000C/3000Dなどの1つ以上の物体の外観を記述し得る。例えば、2D画像情報2600は、物体3000A/3000B/3000C/3000Dの外部表面(例えば、上部表面)上に配設される視覚的詳細、および/またはそれらの外部表面の輪郭を取り込むか、または別様に表し得る。実施形態では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550のうちの1つ以上の構造を記述してもよく、物体の構造は、物体の構造または物体の物理的構造とも呼ばれ得る。例えば、3D画像情報2700は、奥行きマップを含んでもよく、より全般的には、カメラ3200に対する、または何らかの他の基準点に対する、カメラ視野3210の様々な場所のそれぞれの奥行き値を説明し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する場所は、物体3000A/3000B/3000C/3000D/3550のそれぞれの上部表面上の場所などの、カメラ視野3210の様々な表面上の場所(物理的な場所とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550、またはカメラ視野3210内のいくつかの他の物体の1つ以上の外側表面上の様々な場所を説明する、複数の3D座標を含み得る、点群を含み得る。点群が図2Fに示される。
図3Aの実施例では、ロボット3300(ロボット1300の実施形態であり得る)は、ロボット基部3310に取り付けられる一端を有し、かつロボットグリッパなどのエンドエフェクター装置3330に取り付けられるか、またはそれらによって形成される別の端を有する、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用されうるが、ロボットアーム3320、より具体的には、エンドエフェクター装置3330は、ロボット3300の環境で1つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3000A~3000Dのうちの少なくとも1つを握るか、または他の方法で拾い上げることを含み得る。例えば、ロボット相互作用は、ロボット3300が、パレットから物体3000A~3000Dを拾い上げ、かつ物体3000A~3000Dを目的の場所まで移動するために使用される、パレットから降ろす操作の一部であり得る。エンドエフェクター装置3330は、物体を把持するか、または掴むための吸引カップまたは他の構成要素を有し得る。エンドエフェクター装置3330は、吸引カップまたは他の把持構成要素を使用して、例えば、上面を介して、物体の単一の面または表面との接触を通して、物体を把持するか、または掴むように構成され得る。
ロボット3300は、構造部材を操作するため、および/またはロボットユニットを輸送するためになど、作業を実装するために使用される情報を取得するように構成された追加のセンサをさらに含み得る。センサは、ロボット3300および/または周囲の環境の1つ以上の物理的特性(例えば、その状態、条件、および/または1つ以上の構造部材/関節の場所)を検出または測定するよう構成された装置を含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
図3Bは、図3Aの物体3000A、3000B、3000C、および3000Dの上面図を図示する。各物体3000A~3000Dは、表面3001、複数の角3002、およびこの実施例では、開放角3004を含む。本明細書で使用される場合、「開放角」は、別の物体3000に隣接していない複数の角3002の任意の角を指す。開放角は、それ自体が別の物体と境界を接するものではない物体の上部表面の2つのエッジによって形成され得る。一実施例では、2つのエッジは、2つの水平エッジを含み得る。2つのエッジの全体が、開放されたとみなされる角に対して隣接する物体を含まないことは、要求されない。物体3000A~3000Dのクローズアップ上面図を図示する図3Cを参照すると、各物体3000A~3000Dの追加の特徴が図示されている。二次元描写では、物体3000Aは、4つのエッジ、長さ方向の物理的エッジ3013、幅方向の物理的エッジ3015、幅方向の物理的エッジ3017、および長さ方向の物理的エッジ3019によって規定される表面を有し得る。示される例示的な実施形態では、幅方向の物理的エッジ3015および長さ方向の物理的エッジ3013は、いかなる隣接する物体のエッジにも隣接していないか、またはそれらと同一平面ではなく、したがって、開放エッジと呼ばれ得る。示される例示的な実施形態では、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019は、隣接する物体3000Bおよび3000Dのエッジに隣接しており、かつそれらと同一平面であり、したがって、閉鎖エッジと呼ばれ得る。上記に説明されたエッジを指す「長さ方向」および「幅方向」という用語の使用は、物体および/またはエッジの特定の向きが要求されることを暗示するものではない。一般に、略長方形の物体について、長さ方向のエッジは、幅方向のエッジに隣接している(および略垂直である)。長さ方向および幅方向は、本明細書で使用される場合、物体または物体のグループの文脈内の特定の方向のみを指し、特定の絶対方向を指さない。物体3000A、3000B、および3000Dの位置決めは、計算システム3100が各物体の特徴を区別することをより困難にし得る。
決定するための方法4000、および開放角3004に対する最小実行可能領域が図4に図示されている。方法4000は、非一時的コンピュータ可読媒体に記憶され得、かつ少なくとも1つの処理回路が、視野を有するカメラと通信している状態で、少なくとも1つの処理回路によって実行され得る。
操作において、方法4000は、1つ以上の物体3000、例えば、物体3000A~3000Dの物理的特性を表す画像情報を取得する操作4002を含む。画像情報は、カメラ3200によって生成され、1つ以上の物体に関連付けられた少なくとも物体の外観を説明し、各物体は、複数のエッジを含む。図3Aは、画像情報の取得または生成を図示する。実施形態では、画像情報は、三次元または斜視図で取得され、方法の正確性を向上するために、視点は、二次元ビューにシフトされる。視点調整は、画像情報の処理、ワーピング、および/またはシフトを伴い得る。処理は、画像情報の色、コントラスト、または照明を変更することを含み得、シーンのワーピングは、画像情報のサイズ、寸法、または比率を変更することを含み得、画像情報のシフトは、画像情報の位置、向き、または回転を変更することを含み得る。ワーピングは、三次元で物体を図示することから、二次元、例えば、上面図で物体を図示することに画像情報を変換する、ワーピング変換を規定するホモグラフィを決定することを伴い得る。一部の実例では、ワーピングは、画像情報を、所望の二次元ビューの対応する点、例えば、角と合致させる、回転および/または並進運動を記述し得る。
実施形態では、以下に説明される計算および方法は、カメラが物体(複数可)をもはや撮像していない後、または物体(複数可)が視野を離れた後に実施され得る。
操作において、方法4000は、画像情報に基づいて、複数の物体3000の複数の角3002を検出するための操作4004を含む。存在する任意の角を検出するために、計算システム1100/3100は、様々な方法を使用し得る。例えば、角検出は、エッジ検出およびエッジ交点のその後の決定を伴い得る。エッジ検出は、2Dおよび3D画像情報、例えば、点群情報の分析に基づいて実施され得る。エッジ検出は、例えば、(i)物体間の境界を表し得る2D画像内の線またはエッジを識別するための2D画像分析、(ii)層セグメンテーションおよびエッジを検出するための異なる高さ/奥行きの検出を伴う点群分析、または(iii)開放エッジを識別するための2Dまたは3D画像分析を含み得る。本明細書に説明される実施例は、単に例としてのものであり、エッジ検出は、必要に応じて代替的な技術をさらに含んでもよい。
エッジ検出は、例えば、物体間の境界を表し得る2D画像内の線またはエッジを識別するための2D画像分析を含み得る。そのような分析は、エッジを表し得る2D画像内の視覚的不連続性を識別し得る。例えば、そのような分析は、例えば、ピクセル強度の不連続性条件またはスパイクピクセル強度条件の分析を含み得る。規定されたピクセル強度不連続性条件を満たすことは、ピクセル強度値の変化、すなわち、より具体的には、変化するピクセル強度を有する領域間のピクセル強度値の微分または勾配を使用することを含み得る。次いで、勾配または微分が、特に、エッジに対して垂直に移動しているときに、エッジまたは角に存在するピクセル強度のスパイクを検出するために使用され得る。さらに、計算システム1100/3100は、隣接するピクセル間にスパイクまたは不連続性を規定して、エッジおよび角を識別するために、ピクセル強度の差異を識別するようにバイナリ閾値を適用し得る。
エッジ検出は、例えば、層セグメンテーション、およびエッジを検出するための異なる高さ/奥行きの検出を伴う点群分析を含み得る。隣接する物体は、異なる高さを有し得る。したがって、点群(3D画像情報)内の異なる高さ(または奥行き)の検出が、物体間のエッジを検出するために使用され得る。したがって、計算システム1100/3100は、規定された奥行き不連続性条件を満たす点群の一部分に従って、エッジを検出し得る。
さらなる実施例では、エッジ検出は、隣接する物体を欠く物理的エッジを検出することによって実施され得る。物体が隣接する物体を欠く場合、例えば、物体が物体のグループの外周に位置する場合、物体のグループのエッジは、関連付けられた個々の物体の物理的エッジとして検出され得る。
実施形態では、エッジ検出のための上述の方法のいずれかは、エッジ検出の正確性または信頼性を向上させるために、各または他のエッジ検出方法と組み合わせられ得る。
操作において、方法4000は、複数の角3002から開放角3004を識別する操作4005を含む。上記に論じられたように、「開放角」は、別の物体3000に隣接していない複数の角3002の角を指す。実施形態では、システムは、複数の角を識別し、角3002が識別されると、角3002のうちの開放角から、標的開放角3004Aなどの、開放角を選択するように構成され得る。実施形態では、複数の角3002の各々は、角検出操作4004が隣接する物体の欠如によって識別された物理的エッジに基づいて角を検出し得るため、開放角であってもよい。さらに、標的開放角を識別するとき、システムは、開放角が別の物体に隣接していないことを認識し得る。標的開放角3004Aは、単一の標的開放角であってもよい。
開放角(凸角または外角とも呼ばれる)は、上記に論じられたように、例えば、点群の形態で、3D画像情報の分析を通して識別され得る。開放角は、例えば、点群内の頂点を識別し(例えば、エッジ交点または他の手段に基づいて)、次いで、識別された頂点を1つ以上の基準(例えば、長さ、奥行き、幅、直交性基準)に供して、それらが開放角を表すか否かを決定することによって識別され得る。角および潜在的なエッジを識別するための画像情報の使用に関する詳細は、2020年4月7日発行の米国特許第10,614,340号に見出されており、参照によりその全体が組み込まれている。
上記のように、および物体3000A~3000Dの拡大上面図を図示する図3Cを参照すると、各物体3000A~3000Dの追加の特徴が図示されている。二次元描写では、物体3000Aは、4つのエッジ、長さ方向の物理的エッジ3013、幅方向の物理的エッジ3015、幅方向の物理的エッジ3017、および長さ方向の物理的エッジ3019によって規定される表面を有し得る。示される例示的な実施形態では、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019は、隣接する物体3000Bおよび3000Dのエッジに隣接しており、かつそれらと同一平面である。上述のように、物体3000A、3000B、および3000Dのそのような位置決めは、計算システム3100が各物体の特徴を区別することをより困難にし得る。
操作において、方法4000は、標的開放角3004Aに対する、図3Eおよび図3Gに例示される、最小実行可能領域3006を規定する操作4006を含む。最小実行可能領域3006は、物体3000を移動するようにロボットアーム3320のエンドエフェクター装置3330が掴むことができる、標的開放角3004Aに関連付けられた物体3000の表面3001上の領域を表す。上述のように、ロボットアーム3320は、例えば、エンドエフェクター装置3330の吸引グリップを使用して、上部表面によって、標的開放角3004Aを含む標的物体などの物体を把持することができる。物体の最小実行可能領域3006は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。したがって、最小実行可能領域3006によって規定される領域内の標的物体を把持する試みは、エンドエフェクター装置3330が、標的物体を把持するときに、隣接する物体も把持しないように、標的物体のエッジの上に延在することなく、標的物体(例えば、単一の物体)のみに接触することを確保し得る。物体3000のエッジが他の物体に隣接しているか、またはそれらと接触している状況では、計算システム1100/3100は、物体の正しい寸法を識別するのが困難であるか、またはより長い時間が掛かる場合がある。そのため、ロボットアーム3320が、物体3000のエッジの上に延在することなく、および/または別の別個の物体に接触することなく、物体3000を堅固に掴み得る領域を正確に規定することは、困難であり得る。したがって、最小実行可能領域3006は、ロボットアーム3320が、物体3000の正しい寸法を知らずに物体3000を掴み得る、推定されたか、または潜在的な寸法に基づく領域を規定する。最小実行可能領域3006は、ロボットアーム3320が物体3000を掴み得る領域を規定することが意図される。最小実行可能領域3006のサイズは、それが見つかる物体3000のサイズとは異なる場合があり、時には顕著に異なる場合がある。操作4008~4016は、最小実行可能領域3006がどのように算出および検証され得るかを図示する。
操作において、方法4000は、複数の候補エッジセグメントを生成するための操作4008を含む。複数の候補エッジセグメントは、複数の幅方向の候補エッジセグメントおよび複数の長さ方向の候補エッジセグメントを含み得る。複数の幅方向の候補エッジセグメントおよび複数の長さ方向の候補エッジセグメントは、標的開放角3004Aに関連付けられた物体3000の、それぞれ、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019に対応するための候補である、エッジまたはエッジの一部分を表す。標的開放角3004Aに関連付けられた物体3000は、他の物体3000に隣接して、またはそれらと同一平面に位置決めされ得、物体3000Aが終了し、他の物体(3000B、3000C、300Dなど)が開始する場所を区別する際に計算システム1100/3100が課題に直面する状況を作り出す。
計算システム1100/3100は、まず、2D画像情報内の複数の潜在的なエッジセグメントを識別し得る。潜在的なエッジセグメントは、物体の物理的エッジを表すものとして認識される可能性をもたらす特性を有する、任意のタイプの検出可能な視覚的マーキングから識別され得る。例えば、視覚的マーキングは、エッジ、しわ、ギャップ、着色の変化、および他の不連続性を含み得る。次いで、潜在的なエッジセグメントは、例えば、クラスタリング技術を介して、複数の候補エッジセグメントを識別するようにさらに処理され得る。適切なクラスタリング技術は、例えば、2020年2月14日出願の米国特許出願第16/791,024号に説明されており、参照によりその全体が本明細書に組み込まれる。一実施形態では、候補エッジセグメントは、幅方向の物理的エッジ3017(長さ方向の候補エッジセグメントに対して)、または長さ方向の物理的エッジ3013(幅方向の候補エッジセグメントに対して)のいずれかに対して、実質的に垂直(例えば、垂直の5度以内)であることに基づいて、潜在的なエッジセグメントから識別され得る。図3Cは、例示的な目的のために、複数の幅方向の候補エッジセグメントの個々の幅方向の候補エッジセグメント3009、および複数の長さ方向候補エッジセグメントの個々の長さ方向候補エッジセグメント3011を例示する。
実施形態では、複数の候補エッジセグメントの検出は、最小および最大候補サイズに従って制限され得る。計算システム1100/3100は、予想される物体サイズに基づいて、最小および最大候補サイズを決定し得る。予想される物体は、長さ、幅、および高さ寸法を有し得る。最小候補サイズは、予想される物体に見出される最小面に従って(例えば、3つの寸法のうちの2つに従って)規定され得る。いくつかの実施形態では、最小候補サイズは、長さおよび幅寸法によって、ならびに/または対角寸法によって規定され得る。最小候補サイズは、予想される物体に見出される最大面に従って(例えば、3つの寸法のうちの2つに従って)規定され得る。最小候補サイズ3016および最大候補サイズ3018が、例として、図3Dに例示されている。したがって、最小候補サイズ3016は、最小の可能性がある物体面と関連付けられ得、したがって、最大候補サイズ3018は、最大の可能性がある物体面と関連付けられ得る。最小候補サイズ3016は、最小の可能性がある物体面の寸法を表す幅方向の寸法3016Aおよび長さ方向の寸法3016Bを含み得るが、最大候補サイズ3018は、最大の可能性がある物体面の寸法を表す幅方向の寸法3018Aおよび長さ方向の寸法3018Bを含み得る。一部の実施形態では、最小候補サイズ3016と最大候補サイズ3018との間の領域のみが、潜在的なエッジセグメントの生成について分析される。
実施形態では、操作4008は、整列された候補エッジセグメントを組み合わせるように操作し得る。例えば、1つ以上の候補エッジセグメントが整列されている場合、それらは、さらなる分析のために計算システム1100/3100によって組み合わせられ得る。整列された候補エッジセグメントは、実質的な共直線性(また実質的に類似アライメントとも呼ばれる)を有し得、これは、事前に規定された角度閾値および/または所定のオフセット閾値に従って規定され得る。2つの候補エッジセグメントに対する角度閾値は、例えば、2つの候補エッジ間の角度が、角度閾値(例えば、5°、4°、3°、2°、または1°などの、特定の度数)内であること、または2つの候補エッジの各々によって形成されるそれぞれの角度が、角度閾値内であることを要求し得る。2つの候補エッジセグメントに対するオフセット閾値は、例えば、候補エッジがオフセット閾値よりも小さいオフセットを有することを要求し得る。一実施形態では、2つの候補エッジ間のオフセットは、候補エッジから延在する、または別様に外挿される、それぞれの線間の最短距離によって規定され得る。整列された候補エッジセグメントは、より大きい候補エッジセグメントを作り出すために組み合わせられ得る。
操作において、方法4000は、複数の候補エッジセグメントから複数の候補エッジを決定する操作4010を含む。ここで図3Cおよび図3Dを参照すると、複数の候補エッジセグメントから候補エッジを選択する操作が説明されている。一連の閾値またはフィルタは、分析中の物体の物理的エッジを表す可能性が低いか、表さない可能性が高いか、または表すことが不可能である、候補エッジセグメントを排除するために適用され得る。操作4010は、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019の推定として、複数の幅方向の候補エッジ(個々の幅方向の候補エッジ3008によって図3Cで表される)および複数の長さ方向の候補エッジ(個々の長さ方向の候補エッジ3010によって図3Cで表される)を含む、複数の候補エッジを決定し得る。操作4010は、1つ以上の基準の適用に従って、候補エッジを選択し得る。
第1の閾値または基準は、位置基準または物理的エッジからセグメントまでの閾値であってもよい。位置基準は、候補エッジセグメントが、既知の開放物理的エッジ、より具体的には、候補エッジセグメントに対して実質的に垂直に向けられた既知の開放物理的エッジの閾値距離内に収まるか否かの評価を表す。図3Cは、近位終点3009Aおよび遠位終点3009Bを有し、かつ開放物理的エッジのうちの1つである長さ方向の物理的エッジ3013に対応する長さ方向の物理的エッジベクトル3012に対して実質的に垂直に位置決めされた、幅方向の候補エッジセグメント3009を例示する。近位終点3009Aは、長さ方向の物理的エッジ3013に対して幅方向の候補エッジセグメント3009の近位端に位置決めされ、遠位終点3009Bは、長さ方向の物理的エッジ3013に対して幅方向の候補エッジセグメント3009の遠位端に位置決めされる。位置基準は、近位終点3009Aと長さ方向の物理的エッジ3013との間のエッジ距離3030Aまでのセグメントが、規定された最小値内にあるか否かの評価を表す。規定された最小値は、倍率δ1によって加重された最小候補サイズ3016の最小寸法(Min)の長さとして設定され得る。したがって、位置基準は、0≦距離3030A≦δ1*Minとして表現され得る。倍率δ1は、0.4~0.6、または0.4~0.5の値として設定され得る。位置基準は、幅方向の候補エッジセグメント3009の近位終点3009Aが、最小候補サイズ3016の最小寸法(Min)の長さの半分を超えて、長さ方向の物理的エッジ3013から離間されないことを保証する。位置基準を満たさない任意の候補エッジセグメントは、複数の候補エッジの考えられるメンバーとして排除され得る。位置基準はまた、近位終点3011Aおよび遠位終点3011Bを有する長さ方向の候補エッジセグメント3011などの、複数の長さ方向の候補エッジセグメントに適用され得る。近位終点3011Aは、セグメントからエッジまでの距離3032Aに基づいて、幅方向の物理的エッジ3015への近接度に対する位置基準に従って評価され得る。
さらなる実施形態では、幅方向の候補エッジセグメント3009の遠位終点3009Bは、セグメントからエッジまでの距離3030Bに基づいて、最大候補サイズ3018の長さ方向の寸法3018Bへの近接度に対する位置基準に従って評価され得る。長さ方向の候補エッジセグメントの遠位終点3011Bは、セグメントからエッジまでの距離3032Bに基づいて、最大候補サイズ3018の長さ方向の寸法3018Aへの近接度に対する位置基準に従って評価され得る。遠位端3009Bおよび3011Bに適用される位置基準は、近位終点3009Aおよび3011Aに適用される位置基準の代わりに、またはそれに加えて使用され得る。
位置基準は、幅方向の候補エッジセグメント3009または長さ方向の候補エッジセグメント3011が、幅方向の物理的エッジ3017または長さ方向の物理的エッジ3019のいずれかに対応する場合、近位終点3009A/3009Bまたは遠位終点3011A/3011Bのいずれかが、物理的エッジの閾値距離または物体の最大候補サイズ内に位置決めされることになることを予想する。したがって、位置基準は、潜在的な候補エッジセグメントが、分析される物体の既知の物理的エッジまたは予想される物理的エッジ(最大候補サイズによって表される)に近い終点を有するか否かを評価する。倍率δ1は、エッジセグメントを識別する際のノイズ、センサの矛盾、または他の誤差源を考慮するか、または対処するように選択され得る。
セグメント長さ基準またはセグメント長さ閾値とも呼ばれる第2の基準は、候補エッジセグメントの長さが閾値を超えるか否かを評価する。実施形態では、閾値は、倍率δ2によって加重された最小候補サイズ3016の最小寸法(Min)の長さとして設定され得る。したがって、長さ基準は、近位終点3009A/3011Aと遠位終点3009B/3011Bとの間のエッジセグメント長さ3051を、最小候補サイズ3016と比較し得る。幅方向の候補エッジセグメント3009または長さ方向の候補エッジセグメント3011のエッジセグメント長さ3051が、最小候補サイズ3016の最小寸法の長さの割合よりも小さい場合、計算システム1100/3100は、候補エッジセグメント3009/3011を候補エッジとしての考慮から排除し得る。長さ基準はまた、δ2*Min≦エッジセグメント長さ3051として記述され得る。倍率δ2は、0.6~0.8、0.65~0.75、0.69~0.71の範囲の値、またはおよそ0.7の値を有し得る。
第2の基準は、候補エッジセグメントが物理的エッジと対応し、そのため、候補エッジとみなされるために、候補エッジセグメントが、最小候補サイズの最小寸法の一部分を超過するのに十分な長さであるべきであると予想する。したがって、セグメント長さ閾値を満たさない候補エッジセグメントは、物理的エッジを潜在的に表す候補として考慮されない可能性がある。倍率δ2は、エッジセグメントを識別する際のノイズ、センサの矛盾、または他の誤差源を考慮するか、または対処するように選択され得る。
直交性基準またはセグメント直交性閾値とも呼ばれる第3の基準は、候補線セグメントが、長さ方向の物理的エッジ3013または幅方向の物理的エッジ3015のいずれかに対して実質的に垂直であるか否かを評価する。本明細書で使用される場合、実質的に垂直という用語は、正確に垂直の5度以内を意味する。例えば、幅方向の候補エッジセグメント3009は、実質的な垂直性または実質的な直交性を決定するために、長さ方向の物理的エッジ3013と比較され、長さ方向の候補エッジセグメント3011は、実質的な垂直性または実質的な直交性を決定するために、幅方向の物理的エッジ3015と比較される。第3の基準は、幅方向の候補エッジセグメント3009または長さ方向の候補エッジセグメント3011が、それぞれ、幅方向の物理的エッジ3017または長さ方向の物理的エッジ3015のいずれかと対応する場合、潜在的なエッジは、物理的エッジであって、そこから潜在的なエッジが延在する、物理的エッジと実質的に垂直であるべきであると予想する。直交性基準を満たさない候補エッジセグメントは、潜在的な候補エッジとして排除され得る。
候補エッジは、位置基準、長さ基準、および直交性基準の3つの基準の各々を満たす複数の候補エッジセグメントから選択または決定され得る。複数の候補エッジは、複数の幅方向の候補エッジおよび複数の長さ方向の候補エッジを含み得る。図3Cは、個々の幅方向の候補エッジ3008および個々の長さ方向の候補エッジ3010を例示する。幅方向の候補エッジ3008は、関連付けられた幅方向の候補エッジセグメント3009と整列され、長さ方向の物理的エッジ3013から実質的に垂直に延在する。長さ方向の候補エッジ3010は、関連付けられた長さ方向の候補エッジセグメント3011と整列され、幅方向の物理的エッジ3015から実質的に垂直に延在する。
操作において、方法4000は、複数の幅方向の候補エッジおよび複数の長さ方向の候補エッジのそれぞれの間に複数の交点3024を生成するための操作4012を含む。交点3024は、複数の幅方向の候補エッジまたはその突出部のうちのいずれかのうちの1つが、複数の長さ方向の候補エッジまたはその突出部のうちのいずれかのうちの1つと交差する位置として規定される。突出部は、識別された候補エッジが、垂直に向けられた候補エッジのうちの1つと交差するほど十分には延在しない状況で使用され得る。幅方向の候補エッジセグメント3009と長さ方向の候補エッジセグメント3011との間の個々の交点3024が図3Cに図示される。図3Eに図示されるように、各幅方向の候補エッジ3008A、3008B、3008Cおよび長さ方向の候補エッジ3010A、3010B、3010Cは、複数の交点3024A~3024Iと関連付けられ得る。例えば、幅方向の候補エッジ3008Aは、長さ方向の候補エッジ3010A、3010B、および3010Cと交差して、3つの別個の交点3024A、3024D、および3024Gを作り出す。これらの交点3024A~3024Iの各々は、標的開放角3004Aに対向する標的物体の潜在的な角を表す。
操作において、方法4000は、標的開放角3004Aと相関する候補最小実行可能領域を生成する操作4014を含む。上述のように、最小実行可能領域3006(図3Cに示される)が、物体3000を移動させるためにロボットアーム3320によって掴まれるか、もしくは把持され得る、またはそのために利用可能であり得る、標的開放角3004Aと関連付けられた物体3000の表面3001上の領域を表す。標的開放角3004Aに関連付けられた物体3000が他の物体に隣接しているか、またはそれと接触している用途では、計算システム3100は、物体3000の寸法を正確および/または精密に推定しない場合があり、そのため、ロボットアーム3320が物体3000を堅固に掴み得る領域を正確に規定するのは困難である。そのため、最小実行可能領域3006は、ロボットアーム3320が、正しい寸法を知らずに物体3000を掴み得る、推定されたか、または潜在的な寸法に基づく領域を規定する。最小実行可能領域3006は、標的開放角3004Aによって規定される物体3000の表面3001上の面積、複数の幅方向の候補エッジの幅方向の候補エッジ3008、複数の長さ方向の候補エッジの長さ方向の候補エッジ3010、および交点3024である。
上記のように、複数の幅方向の候補エッジ3008A、3008B、3008C、複数の長さ方向の候補エッジ3010A、3010B、3010C、および複数の交点3024A~3024Iは、以前の操作で識別される。合わせて、複数の幅方向の候補エッジ3008A、3008B、3008C、複数の長さ方向の候補エッジ3010A、3010B、3010C、および複数の交点3024A~3024Iは、潜在的な最小実行可能領域候補3066のセットを規定し得、その個々の候補(例えば、潜在的な最小実行可能領域候補3006A~3006G)が図3Eに例示される。実施形態では、各交点3024は、それが形成される幅方向の候補エッジ3008および長さ方向の候補エッジ3010をさらに指定するため、標的開放角3004Aに関連付けられた最小実行可能領域候補が、交点3024に従って識別され得る。図3Eに図示されるように、多数の潜在的な最小実行可能領域3006が、単一の幅方向の候補エッジ3008A、3008B、3008C、または単一の長さ方向の候補エッジ3010A、3010B、3010Cと関連付けられ得る。加えて、潜在的な最小実行可能領域候補3066のセットの各々は、単一の交点3024と関連付けられる。上記に論じられたように、潜在的な最小実行可能領域候補3066のセットの各々は、最小の可能性がある物体と関連付けられる最小候補サイズ3016、および最大の可能性がある物体と関連付けられた最大候補サイズ3018内に収まる。
図3Eの潜在的な最小実行可能領域候補3066は、幅方向の候補エッジ3008A、3008B、3008Cおよび長さ方向の候補エッジ3010A、3010B、3010Cの組み合わせとして、以下の表1に提示される。
候補最小実行可能領域3067は、標的開放角3004Aと、関連付けられた交点3024との間に最小対角距離を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づいて、潜在的な最小実行可能領域候補3066のセットから選択され得る。最小距離は、候補最小実行可能領域3067の決定における主因として使用され得る。長さ基準に対する倍率δ2の使用に起因して、候補最小実行可能領域3067は、最小候補サイズ3016よりも小さくてもよい。さらなる実施形態では、最小候補サイズ3016は、候補最小実行可能領域3067として選択される潜在的な最小実行可能領域候補3066の最小サイズとして設定され得る。
候補最小実行可能領域3067に対して最小対角距離を選択することによって、システムは、候補最小実行可能領域3067が、それが位置する実際の物体3000より大きくないと決定する。候補最小実行可能領域3067を形成する識別されたエッジは、標的物体3000Aの実際の寸法を表し得るが、それらは、標的物体3000Aの考えられるエッジを表す。標的開放角3004Aと、関連付けられた交点3024との間の最小対角距離を選択することによって、計算システム1100/3100は、標的物体3000Aのみに存在する増大した可能性を有する、面積、候補最小実行可能領域3067を決定する。実施形態では、システムは、候補最小実行可能領域3067が1つ以上の物体と交差しないと決定し得る。したがって、候補最小実行可能領域3067内で標的物体3000Aを把持することは、ロボットアームが一度に1つよりも多い物体3000を把持しようと試みる可能性を低減することによって、把持操作の信頼性を向上させる。
潜在的な最小実行可能領域候補3066のセットから最小実行可能領域候補を決定する様々な他の方法が使用されてもよい。例えば、潜在的な最小実行可能領域候補が、以前に識別された開放角3004でもある交点3024を含む事象において、その潜在的な最小実行可能領域候補は、物体3000の表面3001の全体と相関すると想定され得るため、選択され得る。あるいは、潜在的な最小実行可能領域候補が、例えば、特定の割合閾値内の、最小候補サイズ3016または最大候補サイズ3018のいずれかと実質的に同様の寸法を有する場合、物体3000は、それぞれ、最小候補サイズ3016または最大候補サイズ3018のいずれかであり、潜在的な最小実行可能領域候補が選択され得ることが想定され得る。一部の実施形態では、潜在的な最小実行可能領域候補3066のセットから選択される候補最小実行可能領域3067は、潜在的な最小実行可能領域候補3066のセットの最大面積または中央面積を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づき得る。一部の実施形態では、潜在的な最小実行可能領域候補3066のセットから選択される候補最小実行可能領域3067は、最短候補エッジと関連付けられた交点3024を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づき得る。
操作において、方法4000は、最小実行可能領域候補3067を検証または調整して、最小実行可能領域3006を生成する操作4016を含む。最小実行可能領域候補3067の検証は、以下で論じられるように、1つ以上の技術を含み得る。したがって、検証および/または調整された最小実行可能領域候補3067は、最小実行可能領域3006として規定され得、物体を識別するための検出仮説として、または検出仮説を増強するために、計算システム1100/3100によって使用され得る。本明細書で使用される場合、検出仮説という用語は、計算システム1100/3100によって決定される物体のサイズまたは形状に関する仮説を指す。実施形態では、検出仮説は、さらなる分析(例えば、追加の画像分析技術を使用する)を介して、ロボット操作を通じて、および/または追加の手段を通じて、確認され得る。
最小実行可能領域候補3067は、操作4004で識別された(操作4006~4014による)各開放角3004に対して発見され得、そのように検出された最小実行可能領域候補3067は、他の最小実行可能領域候補3067に対する比較によって検証され得る。例えば、計算システム1100/3100は、重複検証または遮蔽検証を実施し得る。計算システム1100/3100は、標的開放角3004Aの最小実行可能領域候補3067の一部分が、異なる開放角3004と関連付けられた最小実行可能領域候補3067と交差するか否かを決定し得る。そのような場合、標的開放角3004Aの最小実行可能領域候補3067と、異なる開放角3004の最小実行可能領域候補3067との間の比較は、開放角3004/3004Aが、同じ物体3000Aに属すること(遮蔽検証)、または開放角3004/3004Aが、異なる物体3000に属すること(重複検証)を決定し得る。
共有物体の場合、計算システム1100/3100は、遮蔽検証を実施し得る。同じ標的物体3000Aに属する2つの最小実行可能領域候補3067は、互いに遮蔽し得る。計算システム1100/3100は、両方の最小実行可能領域候補3067の情報を組み合わせて、最小実行可能領域3006を生成することができるか、または標的開放角3004Aの最小実行可能領域候補3067を調整して、異なる開放角3004の最小実行可能領域候補3067の情報を組み込み、物体3000Aに対してより正確な最小実行可能領域3006を作り出すことができる。
あるいは、角が同じ物体3000に属していない事象において、計算システム1100/3100は、2つの重複する最小実行可能領域候補3067と関連付けられた信頼レベルを減少させ得る。どの最小実行可能領域候補3067をさらなる処理のための最小実行可能領域3006として指定するかを決定する際、計算システム1100/3100は、最も高い信頼レベルを有する最小実行可能領域候補3067(例えば、他の最小実行可能領域候補3067との重複がより少ないか、または全くない)を選択し得る。
実施形態では、最小実行可能領域候補3067の正確性は、追加因子を使用してさらに向上し得る。例えば、パレットが一様なタイプの物体(例えば、単一のSKUを有する物体)を収容することが知られている事象において、物体の各々に対する最小実行可能領域(特に、物体の寸法と合致する最小実行可能領域)は、実質的に一様であると予想され得る。そのような場合、数個の異なる技術が、潜在的な最小実行可能領域候補3066から最小実行可能領域候補3067を識別および検証するために用いられ得る。単一のSKUまたは一様な物体の方法は、テンプレート検証操作、包装検証操作、および角分類操作のうちの1つ以上を含み得る。
ここで図3Fを参照すると、実施形態では、一様なタイプの物体を収容する物体リポジトリ(例えば、パレット、容器、または他の物体リポジトリ)について、最小実行可能領域候補3067は、テンプレート検証操作に基づいて、潜在的な最小実行可能領域候補3066から識別および/または検証され得る。本明細書に実施される物体認識方法の態様は、2020年8月12日出願の米国特許出願第16/991,510号、および2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。テンプレート検証操作は、一様な物体が同様の寸法および視覚的特徴を有するという仮定に基づいて進行する。潜在的な最小実行可能領域候補3066によって規定される画像情報の一部分は、潜在的な最小実行可能領域候補3066の各々に対応するテンプレート3068を生成するように分析され得る。各テンプレート3068は、少なくともテクスチャ値、色値、および寸法値を含む、関連付けられた画像部分から生成された情報を含み得る。テクスチャ値は、潜在的な最小実行可能領域候補3066の画像部分が、テクスチャありまたはテクスチャなしの表面を識別するか否かを規定し得る。色値は、潜在的な最小実行可能領域候補3066を表す画像部分の色を規定し得る。寸法値は、潜在的な最小実行可能領域候補3066のエッジ寸法および/または面積を表し得る。テンプレート3068は、互いに比較されて、テクスチャ値、色値、および寸法値のうちの1つ以上で合致するテンプレート3068を識別し得る。これらの値のうちの1つ以上で合致することは、合致するテンプレート3068と関連付けられた、潜在的な最小実行可能領域候補3066が、真の物理的物体3000を表すことを示し得る。物体3000が一様なタイプである場合、合致するテンプレート3068を有することが予想され得る。したがって、合致するテンプレート3068を識別することによって、1つ以上の最小実行可能領域候補3067が、潜在的な最小実行可能領域候補3066から識別され得る。実施形態では、識別された1つ以上の最小実行可能領域候補3067は、テンプレート検証操作に基づいて、最小実行可能領域3006としてさらに検証され得る。
ここで図3Gおよび図3Hを参照すると、実施形態では、一様なタイプの物体3091を収容する物体リポジトリ3090(例えば、パレット、容器、または他の物体リポジトリ)について、最小実行可能領域候補3067(ここでは図示せず)は、包装検証操作に基づいて、潜在的な最小実行可能領域候補3066から識別および/または検証され得る。物体リポジトリ3090が完全に包装されている(例えば、物体によって完全に占有された層を有する)ことが知られているか、または物体リポジトリがエッジの周囲で包装されていることが知られている場合、この情報は、いくつかの方法で、潜在的な最小実行可能領域候補3066からの最小実行可能領域候補3067の識別および検証を支援または増強するために使用され得る。
まず、包装検証操作は、最小実行可能領域候補3067の識別および検証を支援するために、包装された物体リポジトリ3090の総面積を使用し得る。物体リポジトリ3090が完全に包装されている場合、その上に位置する物体3091の総表面積は、単一の物体3091の表面積によって均等に分割可能になる。図3Gに示される例では、単一の物体3091の表面積によって除算された物体3091の総表面積は、8である。潜在的な最小実行可能領域候補3066の面積は、物体3091の総表面積と比較されて、最小実行可能領域候補3067を、総表面積に均等に分割する面積を用いて識別し得る。閾値係数(例えば、95%、98%、99%など)が、ノイズおよび測定誤差の他の発生源を考慮するように、分割操作に適用されてもよい。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
第2に、包装検証操作は、最小実行可能領域候補3067の識別および検証を支援するために、包装された物体リポジトリ3090の寸法を使用し得る。物体3091が行および列の等数で配置される特定の配置では、潜在的な最小実行可能領域候補3066の寸法が、物体リポジトリ3090の寸法と比較されて、最小実行可能領域候補3067を識別および/または検証し得る。例えば、物体リポジトリ3090の幅方向の寸法X1および長さ方向の寸法X2は、物体3091の寸法に合致する、潜在的な最小実行可能領域候補3066の寸法によって均等に分割されることになる。潜在的な最小実行可能領域候補3066が、寸法D1およびD2を有する、暗い境界を用いて図3Gに示される。X1=m*D1であり、式中、mが整数(図3Gの例では、m=2)であり、かつX2=n*D2であり、式中、nが整数(図3Gの例では、n=4)である場合、潜在的な最小実行可能領域候補3066が、物体リポジトリ3090上の物体3091の真の寸法を表し、最小実行可能領域候補3067として識別され得ることを示し得る。潜在的な最小実行可能領域候補3066の寸法がこれらの条件を満たさない場合、物体リポジトリ3090上の物体3091の真の寸法を表す可能性は低い。実施形態では、割合閾値(例えば、95%、98%、99%)は、ノイズおよび他の因子に起因する、測定における潜在的な誤差を考慮するために、X1およびX2の方程式において使用され得る。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
第3に、包装検証操作は、より一般的な配置に対する最小実行可能領域候補3067の識別および検証を支援するために、物体リポジトリ3090の寸法を使用し得る。物体3091が、物体リポジトリ3090のエッジを完全に包装する、不等数の行および列(ピンホイールパターンとも呼ばれる)で配置される、図3Hに示される、一般的な配置では、物体リポジトリ3090の各側面の長さは、物体3091の幅方向の寸法の整数に、物体3091の長さ方向の寸法の整数を加えたものに等しくなければならない。一般的な配置の包装操作は、物体リポジトリ3090が完全に包装されているか否かにかかわらず、エッジが完全に包装されている限り、使用され得る。潜在的な最小実行可能領域候補3066の寸法は、物体3091の幅および長さの両方を考慮する一対の方程式を使用して、最小実行可能領域候補3067を識別および/または検証するために、物体リポジトリ3090の寸法と比較され得る。潜在的な最小実行可能領域候補3066が、寸法D1およびD2を有する、暗い境界を用いて図3Hに示される。一般的な配置では、満たされるべき方程式は、次のとおりである。X1=m1*D1+n1*D2、式中、m1およびn1が両方とも整数であり(図3Hの例では、m1=1およびn1=3)、かつX2=m2*D1+n2*D2、式中、m2およびn2が両方とも整数である(図3Hの例では、m2=1およびn2=3)である。両方の方程式が、潜在的な最小実行可能領域候補3066の寸法によって満たされ得る場合、それは、潜在的な最小実行可能領域候補3066が、物体リポジトリ3090上の物体3091の真の寸法を表し、最小実行可能領域候補3067として識別され得ることを示し得る。潜在的な最小実行可能領域候補3066の寸法がこれらの条件を満たさない場合、物体リポジトリ3090上の物体3091の真の寸法を表す可能性は低い。実施形態では、割合閾値(例えば、95%、98%、99%)は、ノイズおよび他の因子に起因する、測定における潜在的な誤差を考慮するために、X1およびX2の方程式において使用され得る。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
実施形態では、角分類操作は、一様なタイプの物体3091を有する物体リポジトリ3090上で、計算システム1100/3100によって実施され得る。物体3091が一様であるため、開放角で識別可能な物体3091は、いくつかの特徴を共通に有し得ることが予想されることになる。例えば、角タイプの物体3091は、物体リポジトリ3090の角間で比較され得る。角タイプは、例えば、長方形、八角形、および丸み付きを含み得る。一部の状況では、測定誤差に起因して、物体リポジトリ3090の角にある異なるタイプの物体角を区別することは困難であり得る。例えば、物体の角が八角形であるか、または丸み付きであるかを決定することは、困難であり得る。そのような場合、物体リポジトリ3090の各角の物体角が比較され得、最も頻繁に識別される物体角は、物体リポジトリ3090における物体3091の物体角タイプとして決定され得る。同様の技術が、物体リポジトリ3090の角に位置する物体3000のテクスチャありまたはテクスチャなしの分類を決定するために使用され得る。
以下に詳述する方法5000は、標的物体の寸法を推定するための方法を説明する。実施形態では、方法5000は、方法4000で規定される最小実行可能領域を使用し得る。実施形態では、方法5000は、ロボットアームが物体と相互作用し始めると、標的物体の寸法を推定し得る。特に、方法4000で規定される最小実行可能領域は、ノイズ、偽エッジ、または他の不正確さに起因して、正しくないサイズである場合がある。したがって、ロボットアームが、固定されていない位置で物体を把持するように命令され、物体または環境への損傷のリスクが増加する場合がある。例えば、中心から外れた位置で物体を把持すると、持ち上げようとしたときに、把持点で許容できないレベルのトルクをもたらす場合がある。より正確に物体寸法を推定するために、ロボットアームは、把持した物体を移動させて、物体と、隣接する物体との間のギャップを露出させ、決定される物体の寸法のより正確な近似を可能にすることができる。次いで、規定された最小実行可能領域と新たに識別された標的物体寸法とを比較して、規定された最小実行可能領域の正確さを決定することができ、差が大きい場合、ロボットアームは、規定された寸法に基づいて、物体を解放および再把持することができる。
物体の寸法を推定するための方法5000を図5に示す。方法5000は、標的物体を、物体の物理的寸法の良好な視界を可能にするように移動または再位置決めすることに基づく。方法5000では、標的物体の標的開放角の最小実行可能領域が最初に決定される。標的物体の最小実行可能領域は、標的物体の推定寸法を表す。最小実行可能領域は、例えば、上述の方法4000によって推定され得る。次いで、標的物体は、最小実行可能領域に基づいて把持される。標的物体の寸法推定の正確さを増加させるために、方法5000は、周囲の物体に対して標的物体を移動するか、または引きずって、物体間のギャップを露出させることを含み得る。次いで、ギャップは、標的物体の寸法を決定するために使用され得、かつ(例えば、(例えば、方法4000で生成された)最小実行可能領域を調節することによって)計算システムによって使用され得る。方法5000は、非一時的コンピュータ可読媒体に記憶することができ、かつ少なくとも1つの処理回路が、視野を有するカメラと通信している状態で、少なくとも1つの処理回路によって実行され得る。方法5000によって生成された標的物体の推定寸法を、例えば、方法4000によって決定された最小実行可能領域と比較し、それにより、ロボットのアームが、物体を持ち上げて移動する前に、標的物体を確実に把持することを確保することができる。
上で論じたように、方法4000によって実施される最小実行可能領域の算出は、最小実行可能領域が単一の物体上にのみ存在することを確保するが、偽エッジまたはその他のエラーソースが潜在的に含まれるため、最小実行可能領域の中心は、標的物体の中心の近くにはない場合がある。したがって、最小実行可能領域の中心で物体を把持することは、中心から外れ、物体を持ち上げることが困難になることをもたらす場合がある。方法の調整された最小実行可能領域が標的物体の寸法を十分に推定していない場合、方法5000は、新たに生成された標的物体の寸法に基づいて、ロボットのアームに標的物体を再把持するように命令することができる。
実施形態では、方法5000は、最小実行可能領域を識別するための方法4000に続いて、および/または方法4000とともに、実施され得る。かかる実施形態では、方法5000の操作は、方法4000の操作と同じであってもよい。例えば、操作4002および5002、操作4004および5004、ならびに操作4005および5005は、一致していてもよく、かつ/または同じ操作であってもよい。方法5000の操作5006は、操作4008~4016を含む、操作4006のすべてまたは一部を組み込み得る。
方法5000は、図3の1つ以上の物体3000、例えば、物体3000A~3000Dの物理的特性を表す初期画像情報を取得する操作5002を含む。初期画像情報は、カメラ3200によって生成され、1つ以上の物体に関連付けられた少なくとも物体の外観を説明し、各物体は、複数のエッジを含む。初期画像情報を取得するための操作5002は、操作4002に関して上で論じた方法および技術のいずれかまたはすべてを含み得る。初期画像情報は、方法4000で収集されたものと同じ初期画像情報であってもよく、または新たに収集された初期画像情報であってもよい。明確にするために、操作5002で取得された初期画像情報のいずれかのソースが初期画像情報と称される場合がある。本明細書に記載の方法5000は、計算システムの少なくとも1つの処理回路によって実行され得る。
操作において、方法5000は、複数の角3002を検出するための操作5004を含む。存在する任意の角を検出するために、計算システム3100は、操作4004に関して上で論じた任意のおよびすべての方法および技術を含む、様々な方法を使用することができる。本明細書に記載の操作5004は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、複数の角3002から標的開放角3004Aを識別するための操作5005を含む。操作5005は、操作4005に関して上述した方法および技術のいずれかおよびすべてを含み得る。本明細書に記載の操作5005は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、標的開放角3004Aの最小実行可能領域3006を規定するための操作5006を含む。操作5006は、方法4000の1つ以上の部分、特に、操作4006~4016を実施して、標的開放角3004Aの最小実行可能領域3006を決定することを含み得る。最小実行可能領域3006は、物体3000を移動するようにロボットアーム3320が掴むことができる、標的開放角3004Aに関連付けられた物体3000の表面3001上の領域を表す。
操作5006で規定される最小実行可能領域3006は、方法4000によって(例えば、操作4006~4016のうちの1つ以上によって)規定される検証済み最小実行可能領域3006であってもよい。さらなる実施形態では、操作4014によって決定される候補最小実行可能領域が、方法5000での継続使用のために選択され得る。上述のように、標的開放角3004Aの最小実行可能領域を規定することは、交差角3024を規定することを含み、交差角は、標的開放角3004Aに対向する。本明細書で使用される場合、標的開放角3004Aおよび交差角3024に関して「対向する」という用語は、これらの角の、標的物体の表面(例えば、頂部表面)の対向する角における位置を指し、対向する角は、該位置から延在する共通のエッジを有しない。上で論じたように、各最小実行可能領域3006は、標的開放角3004A、長さ方向の物理的エッジ3013の一部分、幅方向の物理的エッジ3015の一部分、幅方向の候補エッジ3008、長さ方向の候補エッジ3010、ならびに幅方向の候補エッジ3008および長さ方向の候補エッジ3010に関連付けられた交点3024によって規定される。図3Eに描かれるように、多数の最小実行可能領域3006A、3006B、3006Cなどが、単一の幅方向の候補エッジ3008A、3008B、3008C、または単一の長さ方向の候補エッジ3010A、3010B、3010Cに関連付けられ得る。さらに、各最小実行可能領域3006は、単一の交点3024にのみ関連付けられている。本明細書に記載の操作5006は、計算システムの少なくとも1つの処理回路によって完了され得る。
ここで図6Aを参照すると、操作において、方法5000は、最小実行可能領域3006に基づいて非遮蔽面積3027を規定するための操作5008を含む。方法5000の実行中に、ロボットアーム3320は、カメラ3200の視野3210と、開放角3004Aに関連付けられた物体3000との間で空間を移動し得る。この移動の間、ロボットアーム3320は、カメラ3200の視野3210内の標的物体の検出に使用される特徴を遮断または遮蔽し得る。以下で論じるように、方法5000は、例えば、操作5016で、後続の画像情報の取り込みを伴う。標的物体3000Aの寸法および最小実行可能領域3006を説明する後続の画像情報を正確に取り込むためには、物体3000Aの特定の部分、または特徴が、カメラ3200によって視認可能であるように非遮蔽状態のままであり、かつ位置決めされることが望ましい。
非遮蔽面積3027は、以下で論じる補足的な画像情報の収集操作中に画像が取得されることが望ましい、物体のグループの表面の二次元領域である。非遮蔽面積3027とカメラ3200との間は、非遮蔽ゾーンであり、ロボットアーム3320の位置決めが、非遮蔽面積3027の補足的な画像情報を取得するカメラ3200の形態を遮断または遮蔽しないように、撮像操作中に回避されるべき三次元空間である。本明細書で参照されるように、非遮蔽面積3027を遮断するということは、非遮蔽面積3027をカメラ3200による観察から遮断することを指す。
非遮蔽面積3027の特徴は、最小実行可能領域3006に従って規定され得る。したがって、最小実行可能領域3006の1つ以上のエッジは、非遮蔽面積3027を規定する基礎として機能し得る。非遮蔽面積3027内に含めるための特徴は、交点3024から延在する幅方向の候補エッジ3008と、幅方向の候補エッジ3008と実質的に垂直である、交点3024から延在する長さ方向の候補エッジ3010と、を含み得る。非遮蔽面積3027のさらなる部分は、最小実行可能領域3006を規定する物理的エッジ3013/3015の延長部を含み得る。非遮蔽面積3027内に含まれる物理的エッジ延長部は、最小実行可能領域3006の境界を越えて延在する物体スタックの物理的エッジ3013/3015の部分である。物理的エッジ延長部とは、物理的エッジ3013/3015と候補エッジ3008/3010との交差部を越えて延在する、物理的エッジ3013/3015の部分である。
非遮蔽面積3027の例を図6Aに示す。例示の目的で、非遮蔽面積3027は、4つの別個のストリップ3028A~3028Dを含むように示されている。各ストリップ3028は、標的物体の既知の物理的エッジまたは候補エッジと平行に走り、かつこれらのエッジに対応する、領域である。例えば、標的物体3000Aに対して、ストリップ3028は、幅方向の候補エッジ3008、長さ方向の候補エッジ3010、長さ方向の物理的エッジ3013、または幅方向の物理的エッジ3015と平行に走り、かつこれらのエッジに対応する。例えば、図6Aに示されるように、ストリップ3028Aは、長さ方向の物理的エッジ3013に対応し、ストリップ3028Bは、幅方向の候補エッジ3008に対応し、ストリップ3028Cは、長さ方向の候補エッジ3010に対応し、ストリップ3028Dは、幅方向の物理的エッジ3015に対応する。各ストリップ3028は、長さおよび幅を有し、対応する(物理的または候補)エッジの少なくとも一部分がストリップ3028の面積内に含まれるように位置する。
各ストリップ3028の長さは、固定された距離であってもよく、または最大候補サイズに基づいていてもよい。例えば、図6Aを参照すると、ストリップ3028Aは、幅方向の候補エッジ3008に対応するように位置決めされており、ストリップ3028Aが最大候補サイズ3018の境界と交わるまで、幅方向の候補エッジ3008を超えて延在する。ストリップ3028は、用途に応じて選択される、5mm、4mm、3mmなどの様々な幅を有し得る。ストリップ3028の幅が大きいほど、物体3000Aが移動または引きずられたときにギャップ3026が検出され得る機会が大きくなる。しかしながら、幅を大きくすると、ノイズまたは信号のエラーの可能性が増加するという犠牲をもたらし得る。ストリップ3028の面積が小さいほど、ロボットアーム3320は、ロボットアーム3320が回避すべき面積がより小さくなるため、より多くの移動の自由度を有し得る。さらに、より小さい遮蔽面積は、計算負荷を低減し得る。本明細書に記載の操作5008は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、ロボット3300のロボットアーム3320を位置決めするための位置決めコマンドを送信するための操作5010を含む。位置決めコマンドを、計算システム1100/3100によって送信して、標的物体3000Aを把持する位置にロボットアーム3320を位置決めし、標的物体3000Aを移動させることができる。位置決めコマンドにより、ロボットアーム3320を非遮蔽ゾーンの外側に位置決めすることができ、そのため、ロボットアーム3320および/またはエンドエフェクター装置3330は、カメラによる非遮蔽面積3027の視界を遮断しない。位置決めコマンドは、計算システムの少なくとも1つの処理回路によって送信され得る。
操作において、方法5000は、標的物体3000Aの最低実行可能領域3006内の場所から標的物体3000Aを掴む、拾い上げる、把持するなどのための最小実行可能領域(MVR)把持コマンドを送信するための操作5012を含む。例えば、標的物体3000Aを把持するために、最小実行可能領域3006の中心またはおよそ中心が計算システム1100/3100によって選択され得る。上で論じたように、エンドエフェクター装置3330は、物体の表面を介した接触を通じて物体を把持または固設することができる、吸引カップまたは他の把持ツールを用いることができる。実施形態では、把持コマンドは、把持する操作中に、ロボットアーム3320およびエンドエフェクター装置3330を非遮蔽ゾーンの外側に留まらせるように構成され得る。
操作において、方法5000は、標的物体3000Aを移動させるための移動コマンドを送信するための操作5014を含む。上で論じたように、標的物体3000Aを移動して、標的物体3000Aと、隣接する物体との間の1つ以上のギャップを開放し、それによって、計算システム1100/3100が、標的物体3000Aの寸法をより正確に推定することを可能にすることができる。移動コマンドは、3つの態様(移動距離、移動方向、および移動タイプ)を含み得る。以下でより詳細に論じる移動距離および移動方向は、以下で論じるように、隣接する物体に関連する情報に従って決定され得る。移動タイプには、持ち上げ運動または引きずり運動が含まれ得る。
実施形態では、移動コマンドの生成は、移動コマンドに対する移動タイプの決定を含み得る。移動タイプの決定には、ロボットアーム3320に持ち上げ運動または把持運動を使用させるかどうかを決定することが含まれ得る。どの移動タイプを使用するかを決定するために、計算システム1100/3100は、(例えば、操作5006で取得したときの)最小実行可能領域3006を最大候補サイズ3018と比較し得る。最大候補サイズ3018と比較したときに最小実行可能領域3006が小さい場合、操作5006で決定された最小実行可能領域3006が、小さい角のみを表すことによって、標的物体3000Aの寸法を誤って推定するリスクが増加する。ロボットアーム3320が、標的物体3000Aの小さい角のみを表す最小実行可能領域3006から標的物体3000Aを持ち上げた場合、標的物体3000Aまたは環境が、エンドエフェクター装置3330上に設置された増加したトルクによって損傷する可能性がある。代替的に、最小実行可能領域3006が最大候補サイズ3018に匹敵する場合、最小実行可能領域3006が標的物体3000Aを正確に描写するというより高い信頼性がある。したがって、最小実行可能領域3006と最大候補サイズ3018との間の領域候補比を使用して、移動コマンドに対して持ち上げ運動または把持運動を選択するかどうかを決定することができる。領域候補比が特定の閾値以上である場合、計算システムは、持ち上げ運動を選択し得る。例示的な閾値の値としては、50%以上、60%以上、70%以上、80%以上、および90%以上が挙げられる。計算システム1100/3100は、領域候補比が閾値を超えると、持ち上げ運動を選択することができる。これは、最小実行可能領域3006と最大候補サイズ3018との間の匹敵する相対的なサイズ決めが、トルクの増加により、標的物体3000Aまたは環境に対する損傷の高いリスクを伴わずに、ロボットアーム3032が標的物体3000Aを確実に把持することができることになるという信頼性を増加させるためである。かかる状況で移動タイプとして持ち上げ運動を選択することによりさらに、計算システム3100は、以下に説明するように、標的物体3000Aのサイズ、および標的物体3000Aの重量を測定することができる場合がある。
領域候補比が閾値の値よりも小さい場合、引きずり運動は、移動コマンドに対する移動タイプとして選択され得る。計算システム1100/3100は、引きずり運動を選択する場合がある。これは、閾値を超えていない場合に、最小実行可能領域が標的物体3000Aの寸法を正確に表しているという確実性がより低く、標的物体3000Aまたは環境のいずれかに対する損傷のリスクが増加するためである。実施形態では、移動コマンドは、摩擦を低減するように引きずり運動を実施している間に、ロボットアーム3320に小さい持ち上げ力を提供させるように構成され得る。引きずり運動を選択することにより、計算システム1100/3100は、以下に説明するように、標的物体3000Aのサイズを測定することができるが、標的物体3000Aの重量を測定しない場合がある。
移動コマンドの移動距離および移動方向は、標的物体3000Aを、周囲のまたは隣接する物体3000B~3000Dに対して移動させて、物体3000のエッジ間のギャップ3026を露出させることを許容するように決定され得る。実施形態では、標的物体3000Aの移動距離および移動方向は、標的開放角3004Aの移動距離および方向に基づく。移動距離は、ギャップを露出させるのに必要な移動の量に従って決定され得る。移動方向は、ギャップを露出させる可能性および標的物体3000Aに隣接する物体3000との衝突を回避する可能性に基づいて決定され得る。
移動距離の決定は、ギャップを露出させるのに必要な移動の量に従って決定され得る。ギャップ3026を露出させるために、標的物体3000Aは、ギャップ幅の閾値を超えるギャップ3026を露出させるのに十分な移動距離を選択し得る(さらなる詳細については以下を参照)。実施形態では、移動距離は、物体のサイズに従って選択され得る(例えば、より大きい物体は、識別可能なギャップ3026を作り出すためにより大きい移動距離を必要とし得る)。ギャップ3026が移動コマンドの実行中に視認されるいくつかの実施形態では、予め設定された移動距離は存在しない場合がある。移動距離は、十分なギャップサイズ(ギャップ幅の閾値を超える)が検出されたという決定に基づいて動的に決定され得る。
移動方向は、標的物体3000Aを隣接する物体3000から離れる方向に移動させて、潜在的な衝突を回避しながらギャップ3026を露出させるように選択され得る。実施形態では、移動方向は、ベクトルの組み合わせとして選択され得、ベクトルの各々は、隣接する物体から離れる方向を表す。したがって、物体3000Aは、対角方向3029に移動され得る。対角方向3029は、幅方向の物理的エッジのベクトル3014に対向する方向の水平ベクトルと、長さ方向の物理的エッジのベクトル3012に対向する方向の垂直ベクトルとの組み合わせを表す。ギャップ3026は、露出されると、以下でより詳細に説明するように、標的物体3000Aの寸法を推定するために計算システム1100/3100によって使用され得る。本明細書に記載の操作5014は、計算システムの少なくとも1つの処理回路によって完了され得る。
実施形態では、計算システム1100/3100は、移動コマンドの実行中に移動コマンドを調整し得る。移動コマンドの調整には、移動コマンドを決定する際に、物体3000Aを引きずることが障害物、例えば、重い物体によって妨害されているかどうかを考慮に入れることができる。ロボットアーム3320または物体3000Aのいずれかに対する損傷を回避するために、システムは、例えば、引きずり力または抵抗力が規定された閾値を超えたときを検出する力センサを含み得る。規定された閾値は、ロボット3300、ロボットアーム3320、および/またはエンドエフェクター装置3330に関連する安全因子に従って選択され得る。規定された閾値はまた、物体3000Aおよび/または移動する物体のタイプに関連する安全因子に従って選択され得る。規定された閾値を超えた場合、ロボットアーム3320は、元の移動方向および移動距離とは異なる方向および距離で、引きずることを実施しようと試みるように指令され得、かつ/または物体3000Aが把持される場所を変更するよう指令され得る。高い量の引きずり力または抵抗力が検出された実施形態では、ロボットアーム3320は、力が静まるまで物体3000Aを把持し続け、それにより、物体3000Aが、力の結果として、偶発的に、かつ予期せずに移動するリスクを低減することができる。例えば、標的物体3000Aが複数の物体の上に積み重ねられている状況では、過剰な引きずり力または抵抗力が、標的物体3000Aの下に位置決めされた物体3000間の不安定性を引き起こし得る。
処理回路は、ロボット3300のロボットアーム3320を制御し、それにより、操作5010、5012、および5014(以下で論じる)中に非遮蔽面積3027を遮断または遮蔽することを回避するように構成され得、その結果、カメラ3200は、非遮蔽面積3027の視認性を維持することができる。計算システム3100は、非遮蔽面積3027、例えば、ストリップ3028A~3028Dをカメラ3320の視界から遮断することを回避するように、ロボット3300のエンドエフェクター装置3330および/またはロボットアーム3320に対する位置決めコマンド、把持コマンド、および移動コマンドを生成し得る。実施形態では、位置決めコマンド、把持コマンド、および移動コマンドは、位置決めコマンドおよび把持コマンドの間、ならびに移動コマンドの少なくとも一部分の間に、非遮蔽面積の遮断を許容するように構成され得る。例えば、ロボットアーム3320のエンドエフェクター装置3330は、標的物体3000Aを把持するように位置決めされ得、標的物体3000Aは、ロボットアーム3320の少なくとも一部分が非遮蔽面積を遮断している間に把持され得る。標的物体3000Aを把持した後、ロボットアーム3320は、非遮蔽面積3027を遮断することを回避するように、さらに位置決めされ得る。さらなる実施形態では、移動コマンドは、ロボットアーム3320が非遮蔽面積3027を遮断している間に開始され得、移動コマンドの実行により、ロボットアーム3320を、非遮蔽面積3027を遮断することを回避する位置へとさらに移動させる。さらなる実施形態では、ロボットアーム3320部分の位置は、これらが、操作5016で補足的な画像情報が取り込まれたときに非遮蔽面積を遮断しないことを確保するように、移動コマンドの実行中に調整され得る。
実施形態では、ロボット3300のロボットアーム3320が、カメラの視野3210から非遮蔽面積3027を部分的または完全に遮断することなく、位置決めコマンド、把持コマンド、および移動コマンドを実行することが不可能または実現不可能である状況が存在する場合がある。かかる事例では、計算システム1100/3100は、ロボット3300のロボットアーム3320に対する移動コマンドまたは命令を生成し、これにより、ロボットアーム3320は、非遮蔽面積3027の特定の態様が妨害されないままである限り、計算システム1100/3100が標的物体3000の寸法を正確に推定することができるため、非遮蔽面積3027を部分的に遮断することができる。特に、カメラ3200の視野3210内に位置決めされた、交点3024、幅方向の候補エッジ3008の少なくとも一部分、および長さ方向の候補エッジ3010の少なくとも一部分は、計算システム1100/3100が標的物体3000Aの寸法を推定することを許容し得る。部分的に遮蔽された状況では、以下でより詳細に論じられるように、計算システム1100/3100は、カメラ3200の視野3210内にある、交点3024、幅方向の候補エッジ3008の部分、および長さ方向の候補エッジ3010の部分から標的物体3000Aの推定された物体寸法を推論または投影するように構成され得る。したがって、計算システム1100/3100は、部分的な遮蔽を許容し、それにもかかわらず、交点3024、幅方向の候補エッジ3008の少なくとも一部分、および長さ方向の候補エッジ3010の少なくとも一部分を、カメラ3200による視認から遮断されずに残すように、位置決めコマンド、把持コマンド、および移動コマンドの実行を引き起こすように構成され得る。
操作において、方法5000は、1つ以上の物体3000の後続の画像情報を取得するための操作5016を含む。後続の画像情報は、1つ以上の物体3000、具体的には、標的物体3000Aの(操作5014で生じる)移動を識別するために取得される。後続の画像情報は、操作5014の後の1つ以上の物体の変更された位置を表す情報を含む。操作5002と同様に、後続の画像情報は、図3Aに示されるように、カメラ3200によって収集されるか、または取り込まれる。操作5016は、補足的な画像情報を取り込む際に、操作4002および5002に関して上で論じた方法および技術のいずれかまたはすべてを含み得る。さらに、上で論じられるように、以前に実行されたロボットの移動コマンド(位置決め、把持、移動)が、上に記載のように、非遮蔽面積を遮断されずに、または少なくとも部分的に遮断されずに残すように実行され得る。
さらに、補足的な画像情報の取り込みは、上述のロボットの移動コマンドの実行後または実行中に実施され得る。例えば、補足的な画像情報は、運動コマンドの実行後に取り込まれ得る。別の実施例では、補足的な画像情報は、運動コマンドの実行中に取り込まれ得る。運動コマンドの完了後に取り込まれた補足的な画像情報は、補足的な静止画像情報と称され得る一方、運動コマンドの実行中に取り込まれた補足的な画像情報は、補足的な運動画像情報と称され得る。本明細書に記載の操作5016は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、補足的な画像情報に基づいて、標的物体3000Aの寸法を推定するための操作5018を含む。図6Bは、操作5014に従って標的物体3000Aが引きずられた後の後続の画像情報を描いている。標的物体3000Aの寸法を推定するための操作5018は、補足的な静止画像情報、補足的な運動画像情報、またはこれらの両方を使用することができる。
補足的な静止画像情報に従って標的物体3000Aの寸法を推定することは、移動コマンドに関連付けられたロボットの移動が完了した後に、後続の画像情報内に描かれた標的物体3000Aと任意の隣接する物体3000との間のギャップ3026の存在を検出することを含む。後続の画像情報は、ギャップ3026の存在について、非遮蔽面積3027で、または図6Aおよび図6Bに示されるようにストリップ3028A~3028Dで分析される。ギャップ3026は、本明細書に記載の画像分析技術(例えば、エッジ検出、点群分析など)のいずれかに従って、補足的な画像情報から検出され得る。ギャップ3026は、近隣の物体の境界またはエッジから分離されている、標的物体3000Aの境界またはエッジを示す。図6Bでは、標的物体3000Aは、物体3000Bおよび3000Dから分離され、ギャップ3026Aおよび3026Bをそれぞれ作り出しているものとして示されている。
各ギャップ3026A、3026Bは、識別後に、該ギャップの幅を測定し、ギャップ幅がギャップ幅の閾値を超えるかどうかを決定するために、さらに分析することができる。ギャップ幅の閾値は、1cm~3cm、1.5cm~2.5cm、またはおよそ2cmに設定され得る。必要に応じて、その他のギャップ幅の閾値を使用することができる。実施形態では、ギャップ幅の閾値は、分析される物体(より大きい閾値を有するより大きい物体)のサイズに応じて、またはシステム内に伴われたカメラおよびその他のセンサ(より小さい閾値を許容するより正確なカメラおよびセンサ)の能力に応じて選択され得る。例えば、ギャップ幅の閾値を超える幅を有するギャップ3026は、物体3000のエッジに対応するように決定され得る一方、ギャップ幅の閾値を超えないギャップ3026は、撮像ノイズ、振動、または他の不正確さによって引き起こされたものとして無視され得る。この実施例では、非遮蔽面積3027のストリップ3028A~3028Dは、ギャップ幅の閾値を超えるギャップ3026が存在するかどうかを示すか、または検出するように、計算システム3100によって分析され得る。図6Bを参照すると、ストリップ3028Aおよび3028Cはギャップ3026Aを包含し、一方、ストリップ3028Bおよび3028Dはギャップ3026Bを包含する。ギャップ幅の閾値を超えるギャップ3026が検出された後、ギャップ3026を使用して、標的物体3000Aおよび近隣の物体3000の両方の物理的エッジを規定することができる。ギャップ3026に基づいて識別された物理的エッジを追加で使用して、物体3000を互いに区別または識別すること、ならびに標的物体3000Aの寸法を推定することができる。
ギャップ3026の識別により、計算システム1100/3100は、標的物体3000Aの真の物理的エッジを決定することができる。標的物体3000Aの真の物理的エッジに基づいて、計算システム1100/3100は、標的物体3000Aの寸法を推定することができる。
実施形態では、標的物体3000Aの寸法を推定するための操作5018は、ギャップ3026、および移動コマンドの実行によって引き起こされたロボットの運動の間の物体3000の移動を検出および分析するように操作され得る。本明細書に記載の操作5018は、計算システムの少なくとも1つの処理回路によって完了され得る。かかる分析は、操作5016中に取り込まれた補足的な運動画像情報に基づく場合がある。補足的な運動画像情報によるギャップ検出を使用して、上に記載の補足的な静止画像情報によるギャップ検出を補足するか、または置き換えることができる。計算システム1100/3100は、ストリップ3028A~3028D内に位置決めされた点のクラスタを識別することに基づいて、かかるギャップおよび物体運動の検出を実施し得る。計算システム1100/3100は、移動コマンドによって引き起こされたロボットの運動の間に、ストリップ3028A~3028Dに沿って検索して、点、例えば、点群内の点が、物体3000Aの引きずり運動または持ち上げ運動のいずれかに関連して移動しているかどうかを検出することができる。
追跡される点は、物体3000のいずれかの表面3001上の場所と一致し得る。計算システム3100は、同じ方向に、同じ量だけクラスタ内に移動している、識別された点をグループ化し得る。クラスタを使用して、物体を識別し、クラスタの移動に基づいて隣接する物体間を区別することができる。各クラスタの移動を、他のクラスタの各々の移動と比較することができる。2つ以上のクラスタが、匹敵する移動を表示する場合、クラスタの各々は、同じ物体に関連付けられ得る。例えば、点の第1のクラスタは、標的物体3000Aの物理的エッジ3013に関連付けられ得、点の第2のクラスタは、標的物体3000Aの幅方向の物理的エッジ3015に関連付けられ得る。かかる実施例では、第1のクラスタおよび第2のクラスタの両方の移動が匹敵することになり、それゆえ、計算システム3100は、クラスタを同じ標的物体3000Aに関連付け得る。
上述のクラスタ追跡の間に収集される情報は、2つの方法で使用され得る。第1に、クラスタ追跡は、物体間のギャップ3026を識別し、物体の真の物理的エッジを識別するために、スタンドアロン方式で使用され得る。例えば、同様の運動を示す4つの垂直のエッジは、物体の真の物理的エッジとして理解され得る。第2に、クラスタ追跡は、補足的な静止画像情報に基づいて、ギャップ検出方法によって取得された情報を補足するために使用され得る。例えば、物体の一部分が、ギャップと同様の視覚的特徴を有する場合がある。したがって、物体のその部分が、補足的な静止画像情報に従って、ギャップとして誤って識別される場合がある。しかしながら、物体のその部分が、移動コマンドの実行中に撮像および監視されるストリップ3028A~3028Dのうちの1つと一致する場合、偽のギャップに関連付けられたすべての点クラスタが、同様の方式で移動すると決定され得る。したがって、偽のギャップは、実際のギャップであったため、偽として識別され得、ギャップに関連付けられたクラスタのうちのいくつかは、これらのクラスタが隣接する、移動していない物体の表面上の点となることになるため、移動を示さないことになる。
操作において、方法5000は、ロボット3300のエンドエフェクター装置3330に標的物体3000Aを解放させるための解放コマンドを送信するための操作5020を含み得る。操作5020は、任意の操作であり、この操作は、標的物体3000Aの推定寸法が、最小実行可能領域3006と比較して、許容誤差の閾値を超える場合に実行され得る。操作5012では、上で論じたように、ロボットアーム3320は、操作5006で規定された最小実行可能領域3006に基づいて、標的物体3000Aを掴むように指令される。上述のように、操作5006で規定された最小実行可能領域3006は、最も小さい面積を有する潜在的な候補の最小実行可能領域に基づいて選択され得る。操作5014に関して上述したように、最小実行可能領域3006が標的物体3000Aの寸法を過小評価する事例が存在する。かかる事例では、ロボット3300のロボットアーム3320が、不安定な方法で、例えば、エッジのあまりにも近くで、または中心から外れて、物体3000を握る場合があり、これにより、標的物体3000A、環境、またはロボット3300自体が損傷する場合がある。
例えば、標的物体3000Aは、一片のテープを使用して一緒に連結された2つのフラップを有し得る。操作5006の間、計算システム1100/3100が、単一の標的物体3000Aの2つのフラップ間のギャップを標的物体3000Aのエッジとして不適切に考慮し、ロボット3300のロボットアーム3320によって確実に把持することができない最小実行可能領域3006をもたらす場合がある。かかる事例では、中心から外れて握ることにより、ロボット3300のロボットアーム3320が、偶発的にフラップを引き裂いて開ける可能性がある。サイズの不一致に基づいて、操作5014に関して上で論じられるように、計算システム1100/3100は、ロボット3300のロボットアーム3320に、物体を持ち上げるのではなく引きずるように命令し、損傷のリスクを低減したであろう。
標的物体3000Aの寸法をより正確に推定した後、計算システム1100/3100は、物体を解放および再把持するかどうかを決定し得る。最小実行可能領域3006は、標的物体3000Aの推定寸法と比較され得る。最小実行可能領域3006と標的物体3000Aの推定寸法との間の差が許容誤差の閾値を超える場合、ロボット3300のロボットアーム3320は、標的物体3000Aを解放するように指令され得る。許容誤差の閾値は、標的物体3000Aの推定寸法および/または標的物体3000Aの重量に対する最小実行可能領域3006の比に基づいて選択され得る。特に、許容誤差の閾値は、標的物体3000Aの推定寸法が最小実行可能領域3006よりも大幅に大きい場合に超えるように設定され得る。許容誤差の閾値のいくつかの例には、標的物体3000Aの推定寸法が、最小実行可能領域3006のサイズの1.25倍、1.5倍、2倍、2.5倍、または3倍超であることが含まれる。比較により、許容誤差の閾値外の結果がもたらされ、解放コマンドが送信された場合、以下に記載されるように、標的物体3000Aを再把持するための操作5022が実施される。比較により、許容誤差の閾値内の結果がもたらされた場合、解放コマンドが送信されず、操作5022はスキップされ、以下に記載される操作5024が実施される。本明細書に記載の操作5020は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、ロボット3300のロボットアーム3320の再把持コマンドを送信して、標的物体3000Aの推定寸法内の標的物体3000Aを再把持するための操作5022を含む。再把持コマンドは、ロボット3300のロボットアーム3320が標的物体3000Aを解放した後に実行され得る。操作5022は、許容誤差の閾値を超えたと操作5020が決定し、かつ続いて、ロボット3300のロボットアーム3320が物体3000Aを解放したときに行われ得る。標的物体3000Aが解放されると、ロボット3300のロボットアーム3320は、標的物体3000Aの推定寸法に基づいて、標的物体3000Aを掴むように再び位置決めされ、命令される。例えば、ロボットアーム3320は、標的物体3000Aの推定される中心で、または中心の近くで、標的物体3000Aを掴むように命令され得る。標的物体3000Aを再把持する追加のステップにより、標的物体3000Aを持ち上げる前に、より安定したグリップを確保する。本明細書に記載の操作5022は、計算システムの少なくとも1つの処理回路によって完了され得る。
操作において、方法5000は、ロボットアーム3320に搬送コマンドを送信するための操作5024を含む。搬送コマンドは、2つの状況で送信され得る。第1に、操作5018で、解放コマンドが必要である(例えば、標的物体の推定寸法が最小実行可能領域に対する閾値を超える)と決定された場合、操作5022の結果としてロボットアーム3320が標的物体3000Aを確実に把持していると決定された後、搬送コマンドが送信される。第2に、操作5018で、解放コマンドは必要ない(例えば、標的物体の推定寸法が最小実行可能領域に対する閾値を超えていない)と決定された場合、解放コマンドの送信を伴わずに、搬送コマンドが送信され得る。計算システム1100/3100は、ロボットアーム3320に搬送コマンドを送信して、標的物体3000Aを持ち上げ、標的物体を目的地まで搬送するように構成されている。物体3000Aを持ち上げることによって、標的物体3000Aの重量および寸法に関する追加情報を確かめることができる。標的物体3000Aの重量を使用して、さらなる操作において計算システム1100/3100によってロボット3300に提供される命令を変更することができ、重量を使用して、標的物体3000Aの分類および識別を支援することができる。本明細書に記載の操作5024は、計算システムの少なくとも1つの処理回路によって完了され得る。
実施形態では、システムは、方法4000および5000に基づいて、パレットから降ろす操作を実施することができる。パレットから降ろす操作は、パレットから降ろす操作を安全かつ確実に実施するように、パレット上にある物体の寸法を識別および推定するために、方法4000および5000を繰り返し実行することを伴い得る。各物体は、本明細書に記載のMVRおよび寸法推定技術に従って識別および評価され、その結果、物体の輸送を、物体、環境、および/またはロボットアームへの損傷を伴わずに達成することができる。本明細書に記載の方法は、パレットから降ろされるときに、パレットの物体のサイズ、形状、および重量を識別する必要がある状況で特に有用な場合がある。
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なるシーケンスで行われてもよく、追加、統合、または完全に省略し得ることも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。したがって、添付の特許請求の範囲で規定される、本発明の趣旨または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼし得る。
実施形態1は、計算システムであって、非一時的コンピュータ可読媒体と、少なくとも1つの処理回路と、を備える。少なくとも1つの処理回路が、視野を有するカメラと通信し、視野内に1つ以上の物体がある、またはあったときに、非一時的コンピュータ可読媒体に記憶されている命令を実行して、カメラによって生成される1つ以上の物体の初期画像情報を取得することと、初期画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的物体の標的開放角を識別することと、標的物体の最小実行可能領域(MVR)を規定することと、最小実行可能領域に基づいて、非遮蔽面積を規定することと、ロボットのアームを位置決めするための位置決めコマンドを送信することと、最小実行可能領域内の標的物体を掴むための把持コマンドを送信することと、移動方向、移動距離、および移動タイプに基づいて、ロボットのアームを使用して標的物体を移動させるための移動コマンドを送信することと、1つ以上の物体の補足的な画像情報を取得することと、補足的な画像情報に基づいて、標的物体の推定寸法を算出することと、を行うように構成されており、位置決めコマンド、把持コマンド、および移動コマンドのうちの少なくとも1つが、ロボットのアームが1つ以上の物体の非遮蔽面積を遮断するのを防止するように構成されている。
実施形態2は、推定寸法によって規定された面積が最小実行可能領域と比較して許容誤差の閾値を超える場合に、少なくとも1つの処理回路が、ロボットのエンドエフェクターに標的物体を解放させるための解放コマンドを送信するようにさらに構成されている、実施形態1に記載の計算システムである。
実施形態3は、少なくとも1つの処理回路が、ロボットのエンドエフェクターが推定寸法内の標的物体を掴むための再把持コマンドを送信するようにさらに構成されている、実施形態2に記載の計算システムである。
実施形態4は、推定寸法が最小実行可能領域と比較して許容誤差の閾値内にある場合に、少なくとも1つの処理回路が、標的物体を搬送するために、ロボットのアームに搬送コマンドを送信するようにさらに構成されている、実施形態1~3のいずれか1つに記載の計算システムである。
実施形態5は、標的開放角の最小実行可能領域を規定することが、標的開放角に対向する交差角を規定することを含む、実施形態1~4のいずれか1つに記載の計算システムである。
実施形態6は、最小実行可能領域を規定することが、標的物体の物理的エッジを識別することをさらに含む、実施形態1~5のいずれか1つに記載の計算システムである。
実施形態7は、標的開放角の最小実行可能領域を規定することが、交差角から第1の方向に延在する第1の候補エッジを規定することと、交差角から、第1の方向と実質的に垂直である第2の方向に延在する第2の候補エッジを規定することと、を含む、実施形態1~6のいずれか1つに記載の計算システムである。
実施形態8は、非遮蔽面積が、交差角、ならびに第1の候補エッジおよび第2の候補エッジの少なくとも一部分を含む、実施形態1~7のいずれか1つに記載の計算システムである。
実施形態9は、少なくとも1つの処理回路が、位置決めコマンド、把持コマンド、および移動コマンドを送信するようにさらに構成されており、そのため、補足的な画像情報が取得されている間、ロボットのアームが非遮蔽面積を遮断しない、実施形態1~8のいずれか1つに記載の計算システムである。
実施形態10は、少なくとも1つの処理回路が、補足的な画像情報に基づいて、標的物体と標的物体に隣接する物体との間の少なくとも1つのギャップを検出するようにさらに構成されている、実施形態1~9のいずれか1つに記載の計算システムである。
実施形態11は、初期情報から標的物体の第1の物理的エッジを識別することと、少なくとも1つのギャップに基づいて、標的物体の第2の物理的エッジを識別することと、をさらに含み、標的物体の推定寸法を算出することは、第1の物理的エッジおよび第2の物理的エッジに従って行われる、実施形態1~10のいずれか1つに記載の計算システムである。
実施形態12は、移動距離および移動方向が、標的物体に隣接する物体との衝突を回避することに基づいて決定される、実施形態1~11のいずれか1つに記載の計算システムである。
実施形態13は、補足的な画像情報を取得することが、移動コマンドの実行によって引き起こされたロボットアームの移動中に実施される、実施形態1~12のいずれか1つに記載の計算システムである。
実施形態14は、少なくとも1つの処理回路が、移動コマンドの実行によって引き起こされたロボットアームの移動中の匹敵する移動に従って、標的物体の物理的エッジを識別するようにさらに構成されている、実施形態1~13のいずれか1つに記載の計算システムである。
実施形態15は、少なくとも1つの処理回路が、MVRと標的物体の最大候補サイズとの比較に基づいて、持ち上げ移動または引きずり移動として移動タイプを決定するようにさらに構成されている、実施形態1~14のいずれか1つに記載の計算システムである。
実施形態16は、非一時的コンピュータ可読媒体と、視野を有するカメラと通信し、命令を実行するように構成されている、少なくとも1つの処理回路と、を備える、ロボットシステムを制御する方法である。方法は、カメラによって生成される1つ以上の物体の初期画像情報を取得することと、初期画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的物体の標的開放角を識別することと、標的物体の最小実行可能領域(MVR)を規定することと、最小実行可能領域に基づいて、非遮蔽面積を規定することと、ロボットのアームを位置決めするための位置決めコマンドを送信することと、最小実行可能領域内の標的物体を掴むための把持コマンドを送信することと、移動方向、移動距離、および移動タイプに基づいて、ロボットのアームを使用して標的物体を移動させるための移動コマンドを送信することと、1つ以上の物体の補足的な画像情報を取得することと、補足的な画像情報に基づいて、標的物体の推定寸法を算出することと、を含み、位置決めコマンド、把持コマンド、および移動コマンドのうちの少なくとも1つが、ロボットのアームが1つ以上の物体の非遮蔽面積を遮断するのを防止するように構成されている。
実施形態17は、標的開放角の最小実行可能領域を規定することが、標的開放角に対向する交差角を規定することと、標的物体の物理的エッジを識別することと、交差角から第1の方向に延在する第1の候補エッジを規定することと、交差角から、第1の方向と実質的に垂直である第2の方向に延在する第2の候補エッジを規定することと、を含む、実施形態16に記載の方法システムである。
実施形態18は、補足的な画像情報に基づいて、標的物体と標的物体に隣接する物体との間の少なくとも1つのギャップを検出することと、初期情報から標的物体の第1の物理的エッジを識別することと、少なくとも1つのギャップに基づいて、標的物体の第2の物理的エッジを識別することと、をさらに含み、標的物体の推定寸法を算出することは、第1の物理的エッジおよび第2の物理的エッジに従って行われる、実施形態16に記載の方法である。
実施形態19は、補足的な画像情報を取得することが、移動コマンドの実行によって引き起こされたロボットアームの移動中に実施され、方法が、移動コマンドの実行によって引き起こされたロボットアームの移動中の匹敵する移動に従って、標的物体の物理的エッジを識別することをさらに含む、実施形態16に記載の方法である。
実施形態20は、少なくとも1つの処理回路による実行のための命令を含む非一時的コンピュータ可読媒体である。少なくとも1つの処理回路が、視野を有するカメラと通信し、かつ1つ以上の物体が視野内にある、またはあったときに、命令を行うように構成されており、命令が、1つ以上の物体の初期画像情報を取得することであって、初期画像情報が、カメラによって生成されることと、初期画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的物体の標的開放角を識別することと、標的物体の最小実行可能領域(MVR)を規定することと、最小実行可能領域に基づいて、非遮蔽面積を規定することと、ロボットのアームを位置決めするための位置決めコマンドを送信することと、最小実行可能領域内の標的物体を掴むための把持コマンドを送信することと、移動方向、移動距離、および移動タイプに基づいて、ロボットのアームを使用して標的物体を移動させるための移動コマンドを送信することと、1つ以上の物体の補足的な画像情報を取得することと、補足的な画像情報に基づいて、標的物体の推定寸法を算出することと、を行うように構成されており、位置決めコマンド、把持コマンド、および移動コマンドのうちの少なくとも1つが、ロボットのアームが1つ以上の物体の非遮蔽面積を遮断するのを防止するように構成されている。