JP2023059988A - ロボットによるオブジェクト配置のシステム及び方法 - Google Patents
ロボットによるオブジェクト配置のシステム及び方法 Download PDFInfo
- Publication number
- JP2023059988A JP2023059988A JP2023028762A JP2023028762A JP2023059988A JP 2023059988 A JP2023059988 A JP 2023059988A JP 2023028762 A JP2023028762 A JP 2023028762A JP 2023028762 A JP2023028762 A JP 2023028762A JP 2023059988 A JP2023059988 A JP 2023059988A
- Authority
- JP
- Japan
- Prior art keywords
- pallet
- loading environment
- existing
- computing system
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65G—TRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
- B65G61/00—Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/25—Determination of region of interest [ROI] or a volume of interest [VOI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39001—Robot, manipulator control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40006—Placing, palletize, un palletize, paper roll placing, box stacking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/06—Recognition of objects for industrial automation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/10—Recognition assisted with metadata
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Manipulator (AREA)
Abstract
【課題】ローディング環境内のオブジェクトの取得及び配置の計画及び実行の速度及び精度を増大させるコンピューティングシステム。【解決手段】コンピューティングシステムは、オブジェクトキューからローディング環境へのオブジェクトの取得及び配置のために、取得された画像情報を動作計画操作で使用するように構成される。ローディング環境内に提供されるパレットは、対応オブジェクトタイプ識別子を有するオブジェクトを受容するように専用である。コンピューターシステムは、画像情報をさらに使用して、ローディング環境内に存在するパレットの充填状態、及び将来的な計画及び配置操作を考慮するために、新しいパレットをローディング環境内に持ち込むか、及び/又は既存のパレットと交換する必要があるかどうかを判定する。【選択図】図4
Description
関連出願の相互参照
本出願は、「A ROBOTIC SYSTEM FOR PLANNING OR FACILITATING OBJECT PICKING」と題し、2021年8月10日に出願された、米国仮出願番号第63/231,326号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
本出願は、「A ROBOTIC SYSTEM FOR PLANNING OR FACILITATING OBJECT PICKING」と題し、2021年8月10日に出願された、米国仮出願番号第63/231,326号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
本技術は、一般に、ロボットシステムを対象とし、より具体的には、ロボットの周囲の環境におけるオブジェクトのピッキング及び配置を決定及び促進するためのシステム、プロセス、及び技法を対象とする。
性能がますます向上し、コストが低減するにつれ、現在、多くのロボット(例えば、物理的アクションを自動/自律的に実行するように構成される機械)がさまざまな異なる分野で広く使用される。ロボットは、例えば、製造及び/又は組立、梱包及び/又は包装、輸送及び/又は出荷などにおけるさまざまなタスク(例えば、空間を通したオブジェクトの操作又は搬送)を実行するために使用され得る。タスクを実行する際に、ロボットは、人のアクションを再現することができ、それによって、そうでなければ危険又は反復的なタスクを実施するのに必要な人の関与を置き換えるか、又は低減することができる。
しかしながら、技術が進歩しているにもかかわらず、ロボットは多くの場合、より大きな及び/又はより複雑なタスクを実行するために要求される、人間の相互作用を複製するのに必要な精巧さを欠く。従って、ロボット間の動作及び/又は相互作用を管理するための改善された技術及びシステムに対するニーズが依然として存在する。
実施形態では、コンピューティングシステムが提供される。コンピューティングシステムは、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、かつ、ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムを含む。少なくとも一つの処理回路は、ロボットがローディング環境にあり、ローディング環境内に配置するためのオブジェクトのキューが提供されるとき、オブジェクトのキューからローディング環境へオブジェクトを移すために、以下のステップを実施するように構成される。ステップは、ローディング環境に提供されるオブジェクトのキューを検出することと、複数のオブジェクトタイプ識別子を受信することであって、複数のオブジェクトタイプ識別子のそれぞれがキューからのオブジェクトのそれぞれのオブジェクトと関連付けられていることと、カメラから受信したオブジェクトキュー画像情報に基づき、キュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、ローディング環境内の標的オブジェクトの計画配置位置を示す標的オブジェクトに対する標的オブジェクト配置を決定することと、オブジェクトキュー画像情報から生成される標的オブジェクト姿勢及び標的オブジェクト計画配置位置に従って、標的オブジェクトの取得及び配置のための動作計画操作を行うことと、動作計画操作に従って、標的オブジェクトをローディング環境内に配置するための配置コマンドを実行することと、ローディング環境での標的オブジェクト配置姿勢を含むローディング環境画像情報を生成することと、を含む。
別の実施形態では、コンピューティングシステムが提供される。コンピューティングシステムは、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、かつ、ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムを含む。少なくとも一つの処理回路は、ロボットが、複数のローディングエリア、緩衝ゾーン、既存のオブジェクト、及び進入オブジェクトのキューを含むローディング環境にあるとき、以下のステップを実施するように構成される。ステップは、カメラから受信したローディング環境画像情報を処理することと、処理済みローディング環境画像情報からローディング環境状態を識別することであって、ローディング環境状態がそれぞれの既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むことと、パレット検出操作を実行して、ローディング環境画像情報から、ローディング環境内の既存のパレットを検出し、既存のパレットのパレット充填状態を決定し、既存のパレットに関連付けられるパレット識別子を識別することと、複数の既存のオブジェクトタイプ識別子、複数の進入オブジェクトタイプ識別子、及びパレット識別子間の比較に基づき実行されるオブジェクト移動コマンドを決定することと、を含む。
別の実施形態では、ロボットと通信するように構成される制御システムによって実行されるように構成されるロボット制御方法が提供される。ロボットは、エンドエフェクター装置を含むか、又はエンドエフェクター装置に取り付けられるロボットアームを含む。カメラは、ロボットがローディング環境にあるとき、及びローディング環境内に配置するためのオブジェクトのキューが提供されるとき、ロボットアームに取り付けられる。方法は、ローディング環境に提供されるオブジェクトのキューを検出することと、複数のオブジェクトタイプ識別子を受信することであって、複数のオブジェクトタイプ識別子の各々が、キューからのオブジェクトのそれぞれのオブジェクトと関連付けられていることと、カメラから受信したオブジェクトキュー画像情報に基づき、キュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、ローディング環境内の標的オブジェクトの計画配置位置を示す標的オブジェクトに対する標的オブジェクト配置を決定することと、オブジェクトキュー画像情報から生成される標的オブジェクト姿勢に従って、標的オブジェクトの取得及び配置のための動作計画操作を行うことと、計画配置位置動作計画操作に従って、キューから標的オブジェクトを取得するための取得コマンドを実行することと、動作計画操作に従って、標的オブジェクトをローディング環境内に配置するための配置コマンドを実行することと、ローディング環境での標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成することと、を含む。
別の実施形態では、ロボット制御方法は、ロボットと通信するように構成される制御システムによって実行されるように構成される。ロボットは、エンドエフェクター装置を含むか、又はエンドエフェクター装置に取り付けられるロボットアームを含む。カメラは、ロボットがローディング環境にあるとき、及びローディング環境内に配置するためのオブジェクトのキューが提供されるとき、ロボットアームに取り付けられる。方法は、カメラから受信したローディング環境画像情報を処理することと、処理済みローディング環境画像情報からローディング環境状態を識別することであって、ローディング環境状態がそれぞれの既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むことと、パレット検出操作を実行して、ローディング環境画像情報から、ローディング環境内の既存のパレットを検出し、既存のパレットのパレット充填状態を決定し、既存のパレットに関連付けられるパレット識別子を識別することと、複数の既存のオブジェクトタイプ識別子、複数の進入オブジェクトタイプ識別子、及びパレット識別子間の比較に基づき実行されるオブジェクト移動コマンドを決定することと、を含む。
協調移動機構を有するロボットシステムのシステム及び方法が本明細書に説明される。実施形態に従って構成されるロボットシステム(例えば、各々が一つ又は複数の指定されたタスクを実行するデバイスの統合システム)は、複数のユニット(例えば、ロボット)の操作を協調させることによって、統合されたタスクを自律的に実行する。ロボットシステムは、本明細書に記載されるように、ロボット装置、センサー、並びに、そのようなロボット装置及びセンサーから情報を制御、指令を発行、及び受信するように構成されるコンピューティングシステムの任意の適切な組み合わせを含み得る。
本明細書に記載の技術は、ローディング環境で使用するために構成されるロボットシステムに技術的改良を提供する。本明細書に記載する技術的改善は、ローディング環境内のオブジェクトの取得及び配置の計画及び実行の速度及び精度を増大させる。ロボットシステムはさらに、ローディング環境内及びローディング環境に隣接するパレット積み又はパレットから降ろす作業の効率を改善する。
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書で論じるように、ロボットアクチュエーター構成要素(例えば、ロボットアーム、ロボットグリッパーなど)、さまざまなセンサー(例えば、カメラなど)、及びさまざまな計算又は制御システムを含み得る。本明細書で論じるように、コンピューティングシステム又は制御システムは、ロボットアーム、ロボットグリッパー、カメラなどのさまざまなロボット構成要素を「制御する」と呼んでもよい。こうした「制御」は、ロボット構成要素のさまざまなアクチュエーター、センサー、及びその他の機能的態様の直接的な制御及び相互作用を指し得る。例えば、コンピューティングシステムは、さまざまなモーター、アクチュエーター、及びセンサーにロボット動作を引き起こすために必要な信号の全てを発行又は提供することによって、ロボットアームを制御し得る。こうした「制御」はまた、こうしたコマンドをロボット動作を引き起こすために必要な信号に変換するさらなるロボット制御システムへの抽象的又は間接的なコマンドの発行を指すことができる。例えば、コンピューティングシステムは、ロボットアームが移動すべき軌道又は目的地の位置を記述するコマンドを発行することによってロボットアームを制御してもよく、ロボットアームに関連付けられるさらなるロボット制御システムは、こうしたコマンドを受信及び解釈し、その後、ロボットアームのさまざまなアクチュエーター及びセンサーに必要な直接信号を提供して、必要な移動を引き起こし得る。
特に、本明細書に記述された本技術は、ロボットシステムが、複数のオブジェクトの間で標的オブジェクトと相互作用するのを補助する。ローディング環境内の取得及び配置のために標的とされるオブジェクトは、以下に限定されないが、オブジェクトタイプ識別子、ローディング環境内のさまざまなローディングエリア/ゾーンの充填状態、及びパレットの対応を含む、さまざまな要因に依存する。例えば、進入した標的オブジェクト、例えば、ローディング環境に新しく到着した標的オブジェクトが、ローディング環境内に存在する、パレットに対応するオブジェクトタイプ識別子(すなわち、パレットが、進入標的オブジェクトのオブジェクトタイプ識別子を有するオブジェクトを受容するように指定される)を有する場合、ロボットシステムは、ロボットを制御して、その進入標的オブジェクトを取得し、それをパレット上に配置することができる。既存のオブジェクト(すなわち、ローディング環境内の緩衝ゾーンで利用可能なオブジェクト)がそのパレットに対応するオブジェクトタイプ識別子を有する場合、ロボットシステムは、ロボットをさらに制御して、既存のオブジェクトを取得してパレット上に配置し得る。さらなる実施形態では、本開示と一致するシステムは、特定のタイプの既存及び進入オブジェクトの存在に応答して、パレットをローディングエリア又はゾーンの出入りと交換するように構成され得る。
以下に、本開示技術の理解を提供するために、具体的な詳細が記載される。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含まずに実施され得る。他の実例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。本明細書における「実施形態」、「一実施形態」などへの参照は、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも一つの実施形態に含まれることを意味する。従って、本明細書におけるそのような語句の外観は、必ずしも全て同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料、又は特性は、一つ又は複数の実施形態で、任意の適切な様式で組み合わせられ得る。図に示されるさまざまな実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭にし得る、構造又はプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。さらに、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有し得る。従って、開示された技術は、追加の要素を有するか、又は以下に説明される要素のうちの数点を有しない、他の実施形態を有し得る。
以下に説明される本開示の多くの実施形態又は態様は、プログラム可能なコンピューター又はコントローラーによって実行されるルーチンを含む、コンピューター又はコントローラー実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され説明されるもの以外のコンピューター又はコントローラーシステム上で、もしくはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技術は、以下に説明されるコンピューター実行可能命令のうちの一つ又は複数を実行するように、特別にプログラム、構成、又は構築される、専用コンピューター又はデータプロセッサーで具現化され得る。従って、本明細書において一般的に使用される「コンピューター」及び「コントローラー」という用語は、任意のデータプロセッサーを指し、インターネット家電及び手持ち式デバイス(パームトップコンピューター、ウェアラブルコンピューター、セルラー又は携帯電話、マルチプロセッサーシステム、プロセッサーベース又はプログラム可能な家電、ネットワークコンピューター、ミニコンピューターなどを含む)を含み得る。これらのコンピューター及びコントローラーによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピューター又はコントローラー実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピューター可読媒体に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の適切なメモリーデバイスに含まれ得る。
「結合」及び「接続」という用語は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続」は、二つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合」という用語は、二つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にあるか、又は二つ以上の要素が互いに協働するか、もしくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)か、又はその両方を示すために使用され得る。
コンピューティングシステムによる画像分析に対する本明細書の任意の参照は、選択された点に対するさまざまな位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、オブジェクトを識別するか、又はオブジェクトが空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、オブジェクトの一つ又は複数の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
図1Aは、オブジェクト検出、すなわちより具体的には、オブジェクト認識を実施するためのシステム1000を示す。より詳細には、システム1000は、コンピューティングシステム1100及びカメラ1200を含み得る。この例では、カメラ1200は、カメラ1200が位置する環境を説明するか、もしくはそうでなければ表し、又はより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠、パレット、又は他の容器などの、こうした施設に位置するオブジェクトを表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々のオブジェクトを区別すること、画像情報に基づきオブジェクト認識又はオブジェクト登録を実施すること、及び/又は画像情報に基づきロボット相互作用計画を実施することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(用語「及び/又は」及び「又は」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他のオブジェクトとの間のロボット相互作用を容易にするように、施設でロボットを制御するために使用され得る。コンピューティングシステム1100及びカメラ1200が、同じ施設に位置してもよく、又は互いと遠隔に位置し得る。例えば、コンピューティングシステム1100は、倉庫又は小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、図1Bは、コンピューティングシステム1100、ならびにその両方がカメラ1200の実施形態であり得る、カメラ1200A及びカメラ1200Bを含む、システム1000の実施形態であり得るシステム1500Aを示す。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を説明する2D画像を含む、又は形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、又は形成する3D画像情報を生成するように構成される、3Dカメラ(空間構造感知カメラ又は空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野中にあるさまざまなオブジェクトの表面上の場所など、カメラ1200Bに対するさまざまな場所のそれぞれの奥行き値を説明する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野又はオブジェクトの表面上のこれらの場所を、物理的位置と称することもできる。この例の奥行き情報は、オブジェクトが三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野中にあるオブジェクトの一つ又は複数の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。より具体的には、空間構造情報が、オブジェクトの構造(オブジェクト構造とも呼ぶ)上のさまざまな位置を説明し得る。
実施形態では、システム1000が、カメラ1200の環境においてロボットとさまざまなオブジェクトとの間のロボット相互作用を容易にするための、ロボット操作システムであり得る。例えば、図1Cは、図1A及び図1Bのシステム1000/1500Aの実施形態であり得る、ロボット操作システム1500Bを示す。ロボット操作システム1500Bは、コンピューティングシステム1100、カメラ1200、及びロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある一つ又は複数のオブジェクト、例えば、箱、木枠、ビン、パレット、又はその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、一つの場所から容器を拾い上げ、それらを別の場所に移動するように構成され得る。一部の事例では、ロボット1300は、容器又は他のオブジェクトのグループが降ろされて、例えば、コンベヤーベルトに移動される、パレットから降ろす操作を実施するために使用され得る。一部の実装形態では、カメラ1200は、以下に論じる、ロボット1300又はロボット3300に取り付けられてもよい。これは、インハンドカメラ又はオンハンドカメラソリューションとしても公知である。カメラ1200は、ロボット1300のロボットアーム3320に取り付けられてもよい。次に、ロボットアーム3320は、さまざまなピッキング領域(キュー3160、ローディングエリア3110/3120/3130/3140又は緩衝ゾーン3150など)に移動して、それらの領域に関する画像情報を生成し得る。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫又は他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。一部の実装形態では、インハンドカメラ1200とともに使用されるロボット1300とは別個の複数のカメラ1200、及び/又はロボット1300とは別個のカメラ1200を含む、複数のカメラ1200が使用され得る。一部の実装形態では、一つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成される他の自動化システムなどのオブジェクト操作に使用されるロボット1300とは別個の専用のロボットシステムに装着されてもよく、又は固定され得る。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」について論じることができる。インハンドカメラソリューションについては、カメラ1200の制御は、カメラ1200が装着されるか、又は取り付けられるロボット1300の制御も含む。
実施形態では、図1A~図1Cのコンピューティングシステム1100は、ロボットコントローラーとも呼ばれ得るロボット1300を形成してもよく、又はロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器又は他のオブジェクトとの間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成される。こうした実施形態では、コンピューティングシステム1100は、例えば、カメラ1200によって生成された画像情報に基づき、このようなコマンドを生成するように構成され得る。例えば、コンピューティングシステム1100は、画像情報に基づき動作計画を決定するように構成されてもよく、動作計画は、例えば、オブジェクトを握るか、又は他の方法で拾い上げることを意図し得る。コンピューティングシステム1100は、動作計画を実行するために、一つ又は複数のロボット相互作用移動コマンドを生成し得る。
実施形態では、コンピューティングシステム1100は、視覚システムを形成し得るか、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は別の方法として、もしくは追加的に、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報が、上で考察された3D画像情報、及び/又は2D画像情報、あるいはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、コンピューティングシステム1100が、視覚システムを形成する場合、視覚システムは、上で考察されたロボット制御システムの一部であってもよく、又はロボット制御システムから分離し得る。視覚システムは、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する、情報を出力するように構成され得る。情報は、視覚システムからこうした情報を受信することができる、ロボット制御システムに出力されることができ、情報に基づき、動作計画を実施し、及び/又はロボット相互作用移動コマンドを生成する。視覚システムに関するさらなる情報は、以下に詳しく説明される。
実施形態では、コンピューティングシステム1100は、RS-232インターフェイス、ユニバーサルシリアルバス(USB)インターフェイスなどの専用有線通信インターフェイスを介して、及び/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピューターバスを介して提供される接続など、直接接続によってカメラ1200ならびに/又はロボット1300と通信し得る。実施形態では、コンピューティングシステム1100が、ネットワークを介してカメラ1200及び/又はロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意の種類及び/又は形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、asynchronous transfer mode(ATM)技術、synchronous optical networking (SONET)プロトコル、又はsynchronous digital hierarchy (SDH)プロトコルを含む、プロトコルの異なる技術、及び層又はスタックを利用し得る。
実施形態では、コンピューティングシステム1100は、カメラ1200及び/もしくはロボット1300と直接情報を伝達してもよく、又は中間記憶装置、もしくはより広くは、中間の非一時的コンピューター可読媒体を介して通信し得る。例えば、図1Dは、コンピューティングシステム1100の外部にあり得る非一時的コンピューター可読媒体1400を含む、システム1000/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は、サーバー(例えば、一つ又は複数のサーバーブレード、プロセッサーなどを有する)、パーソナルコンピューター(例えば、デスクトップコンピューター、ラップトップコンピューターなど)、スマートフォン、タブレットコンピューティングデバイス、及び/もしくは他の任意の他のコンピューティングシステムを含んでもよく、又はそれらとして構成され得る。実施形態では、コンピューティングシステム1100の機能性のいずれか又は全ては、クラウドコンピューティングプラットフォームの一部として行われてもよい。コンピューティングシステム1100は、単一のコンピューティングデバイス(例えば、デスクトップコンピューター)であってもよく、又は複数のコンピューティングデバイスを含んでもよい。
図2Aは、コンピューティングシステム1100の一実施形態を示す、ブロック図を提供する。本実施形態におけるコンピューティングシステム1100は、少なくとも一つの処理回路1110、及び非一時的コンピューター可読媒体(又は複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピューター可読媒体1120(例えば、コンピューターメモリー)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されるプロセッサー(例えば、中央処理ユニット(CPU)、専用コンピューター、及び/又はオンボードサーバー)を含み得る。一部の実施形態では、プロセッサーは、他の電子/電気装置に動作可能に結合された別個の/スタンドアローンコントローラーに含まれてもよい。プロセッサーは、プログラム命令を実装して、他の装置を制御/他の装置とインターフェイス接続し、それによって、コンピューティングシステム1100にアクション、タスク、及び/又は動作を実行させ得る。実施形態では、処理回路1110は、一つ又は複数のプロセッサー、一つ又は複数の処理コア、プログラマブルロジックコントローラー(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は任意の他の処理回路を含む。
実施形態では、コンピューティングシステム1100の一部である、非一時的コンピューター可読媒体1120が、上で考察された中間の非一時的コンピューター可読媒体1400の代替又は追加であり得る。非一時的コンピューター可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又は、例えば、コンピューターディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消却可能プログラム可能読み出し専用メモリー(EPROM又はフラッシュメモリー)、スタティックランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、メモリースティック、それらの任意の組み合わせ、又は任意の他の記憶装置など、それらの任意の好適な組み合わせなどの記憶装置であり得る。一部の実例では、非一時的コンピューター可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピューター可読媒体1120が、カメラ1200によって生成され、コンピューティングシステム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピューター可読媒体1120は、オブジェクト認識操作を実施するために使用される一つ又は複数のモデルテンプレートを記憶し得る。非一時的コンピューター可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される一つ又は複数の方法論を実施させるコンピューター可読プログラム命令を、代替的又は追加的に記憶し得る。
図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は、本明細書に論じられる一つ又は複数のデータオブジェクトを記憶するように構成される記憶空間1125を含み得る。例えば、記憶空間は、モデルテンプレート、ロボットアーム移動コマンド、及びコンピューティングシステム1100Bがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
実施形態では、処理回路1110が、非一時的コンピューター可読媒体1120に記憶される、一つ又は複数のコンピューター可読プログラム命令によってプログラムされ得る。例えば、図2Dは、コンピューティングシステム1100/1100A/1100Bの一実施形態である、コンピューティングシステム1100Cを示し、処理回路1110は、オブジェクト認識モジュール1121、動作計画モジュール1129、及びオブジェクト操作計画モジュール1126を含む、一つ又は複数のモジュールによってプログラムされる。動作計画モジュール1129(及びコンピューティングシステム1100Cに関連付けられる任意の他のモジュール)は、必要に応じて、軌道情報1128及びテンプレート情報1127にアクセスし得る。
実施形態では、オブジェクト認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、及び技術は、オブジェクト認識モジュール1121を使用し得る。オブジェクト認識モジュールは、本明細書で論じるように、オブジェクト認識及びリポジトリ認識の両方のために使用され得る。オブジェクト認識モジュールは、本明細書で論じるように、オブジェクト識別に関連するオブジェクト認識タスクのためにさらに構成され得る。
動作計画モジュール1129は、ロボットの移動を計画及び実行するように構成され得る。例えば、動作計画モジュール1129は、個々の配置位置/配向を導出し、対応する動作計画、又はオブジェクトを掴む及び/もしくは移動させるためのそれらの組み合わせを計算し得る。動作計画モジュール1129は、軌道情報1128にアクセスして更新し得る。軌道情報1128は、動作計画モジュール1129によってアクセス可能かつ更新可能である、事前に計画された初期軌道情報を含み得る。動作計画モジュールはまた、調整された軌道情報を記憶し得る。動作計画モジュール1129は、以下でより詳細に論じるように、オブジェクトテンプレート情報及びリポジトリテンプレート情報(ソース及び宛先の両方)を含む、テンプレート情報1127にアクセスして更新し得る。ロボットアームの移動及び軌道に関して本明細書で論じられる方法、システム、及び技術は、動作計画モジュール1129によって実施され得る。モデル及びテンプレートに関して本明細書で論じられる方法、システム、及び技術は、動作計画モジュール1129によって実施され得る。
オブジェクト操作計画モジュール1126は、例えば、オブジェクトを把持及び開放する、ならびにこうした把持及び開放を補助及び容易にするためロボットアームコマンドを実行する、ロボットアームのオブジェクト操作活動を計画及び実行するように構成され得る。
ローディング環境管理モジュール1122は、ローディング環境を管理するように構成され得る。従って、ローディング環境管理モジュール1122は、既存のオブジェクトと進入オブジェクトの両方の目的地位置を決定するように構成されてもよく、さらに、以下でさらに論じるように、パレット交換及び移動に関連するコマンドを策定し、提供するように構成され得る。
図2E、図2F及び図3Aを参照すると、画像分析のために実施され得るオブジェクト認識モジュール1121に関連する方法が説明される。図2E及び図2Fは、画像分析方法と関連付けられる例示的な画像情報を示す一方、図3Aは、画像分析方法と関連付けられる例示的なロボット環境を示す。コンピューティングシステムによる画像分析に関連する本明細書の参照は、選択された点に対するさまざまな場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、オブジェクトを識別するか、又はオブジェクトが空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、オブジェクトの一つ又は複数の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
実施形態では、コンピューティングシステム1100が、カメラ1200のカメラ視野(例えば、3200)内のオブジェクトを表す画像情報を取得し得る。いくつかの例では、オブジェクトは、カメラ1200のカメラ視野3200内の一つ又は複数のオブジェクト(例えば、図3C~3Dに示されるように、3510~3590)の第一のオブジェクト(例えば、3500)であり得る。画像情報2600、2700は、オブジェクト3410A/3410B/3410C/3410Dのグループがカメラ視野3200にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、個々のオブジェクトのうちの一つ又は複数を記述し得る。オブジェクトの外観は、カメラ1200の視点からのオブジェクト3410A/3410B/3410C/3410Dの外観を記述する。カメラ視野に複数のオブジェクトがある場合、カメラは、必要に応じて、複数のオブジェクト又は単一のオブジェクトを表す画像情報を生成し得る。画像情報は、オブジェクトのグループがカメラ視野にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、及び、例えば、2D画像情報及び/又は3D画像情報を含み得る。
一例として、図2Eは、画像情報の第一のセット、より具体的には、2D画像情報2600を図示し、これは、上述のように、カメラ1200によって生成され、図3Aのオブジェクト3410A/3410B/3410C/3410D/3401を表す。より具体的には、2D画像情報2600は、グレースケール、又はカラー画像であり得、カメラ1200の視点からのオブジェクト3410A/3410B/3410C/3410D/3401の外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のチャネル)に対応し得る。カメラ1200がオブジェクト3410A/3410B/3410C/3410D/3401の上方に配置される場合、2D画像情報2600は、オブジェクト3410A/3410B/3410C/3410D/3401のそれぞれの上部表面の外観を表し得る。図2Eの実施例では、2D画像情報2600は、オブジェクト3410A/3410B/341C/3410D/3401のそれぞれの表面を表す、画像部分とも呼ばれる、それぞれの部分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などの画像の全て又は一部分であり得る。例では、コンピューティングシステム1100は、対応オブジェクト3410Aと関連付けられる画像情報のみを取得するために、2D画像情報2600から画像部分2000Aを抽出するように構成され得る。例えば、コンピューティングシステム1100は、図2Fに示される2D画像情報2600及び/又は3D画像情報2700に基づき画像セグメンテーション操作を実施することによって、画像部分2000Aを抽出し得る。一部の実装形態では、画像セグメンテーション操作は、オブジェクトの物理的エッジ(例えば、箱のエッジ)が2D画像情報2600の中に現れる画像位置を検出すること、及びこうした画像位置を使用して、カメラ視野(例えば、3200)内の個々のオブジェクトを表すことに限定された画像部分(例えば、5610)を識別することを含み得る。
図2Fは、画像情報が3D画像情報2700である、例を図示す。より具体的には、3D画像情報2700は、例えば、オブジェクト3410A/3410B/3410C/3410D/3401の一つ又は複数の表面(例えば、上部表面、又は他の外側表面)上のさまざまな場所のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、オブジェクトの物理的エッジ(例えば、箱のエッジ)が3D画像情報2700の中に現れる画像位置を検出すること、及びこうした画像位置を使用して、カメラ視野(例えば、3410A)内の個々のオブジェクトを表すことに限定された画像部分(例えば、2730)を識別することを含み得る。
それぞれの奥行き値は、3D画像情報2700を生成するカメラ1200に対するものであってもよく、又はいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3200)の中にあるオブジェクトの構造上のさまざまな場所に対するそれぞれの座標を含む、点群を含み得る。図2Fの例では、点群は、オブジェクト3410A/3410B/3410C/3410D/3401のそれぞれの表面の場所を説明する、それぞれの座標セットを含み得る。座標は、[X, Y, Z]座標などの3D座標であってもよく、カメラ座標系、又は何らかの他の座標系に対する値を有し得る。例えば、3D画像情報2700は、オブジェクト3410Dの表面上の物理的位置とも呼ばれる、場所27101~2710nのセットに対するそれぞれの奥行き値を示す、画像部分とも呼ばれる第一の画像部分2710を含み得る。さらに、3D画像情報2700は、第二の部分、第三の部分、及び第四の部分2720、2730、及び2740をさらに含み得る。次に、これらの部分は、それぞれ、27201~2720n、27301~2730n、及び27401~2740nによって表され得る、場所のセットに対するそれぞれの奥行き値をさらに示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数のオブジェクトが使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第一のセットの一部分であり得る。図2Eの実施例では、取得された3D画像情報2700が図3Aの第一のオブジェクト3410Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。
実施形態では、画像正規化操作は、画像情報を取得する一部として、コンピューティングシステム1100によって実施され得る。画像正規化操作は、変換された画像又は変換された画像部分を生成するために、カメラ1200によって生成された画像又は画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、又は二つの組み合わせを含み得る画像情報が、視点、オブジェクト姿勢、及び視覚的記述情報と関連付けられる照明条件において画像情報を変更させるように試みるために、画像正規化操作を受け得る場合である。そのような正規化は、画像情報及びモデル(例えば、テンプレート)情報間のより正確な比較を容易にするために実施され得る。視点は、カメラ1200に対するオブジェクトの姿勢、及び/又はカメラ1200がオブジェクトを表す画像を生成するときに、カメラ1200がオブジェクトを見ている角度を指し得る。
例えば、画像情報は、標的オブジェクトがカメラ視野3200内にある、オブジェクト認識操作中に生成され得る。カメラ1200は、標的オブジェクトがカメラに対して特定の姿勢を有するときに、標的オブジェクトを表す画像情報を生成し得る。例えば、標的オブジェクトは、その上部表面をカメラ1200の光学軸に対して垂直にする姿勢を有し得る。こうした例では、カメラ1200によって生成される画像情報は、標的オブジェクトの上面図などの特定の視点を表し得る。一部の実例では、カメラ1200がオブジェクト認識操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
実施形態では、画像正規化動作は、画像又は画像部分を、モデルテンプレートの情報と関連付けられる視点及び/又は照明条件により良く一致させるように、カメラによって生成されるシーンの画像又は画像部分を調整することを伴い得る。調整は、画像又は画像部分を変換して、オブジェクト姿勢又はモデルテンプレートの視覚的記述情報に関連付けられる照明条件のうちの少なくとも一つに一致する変換された画像を生成することを伴い得る。
視点調整は、画像がモデルテンプレート内の視覚的記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、及び/又はシフトを伴い得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み、シーンのワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、向き、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、シーンの画像内のオブジェクトを、モデルテンプレートの視覚的記述情報に一致するか、又はそれにより良好に対応する向き及び/又はサイズを有するように変更し得る。モデルテンプレートが、一部のオブジェクトの正面視界(例えば、上面視界)を記述する場合、シーンの画像は、シーン内のオブジェクトの正面視界も表すようにワーピングされ得る。
本明細書に実施されるオブジェクト認識方法のさらなる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。
さまざまな実施形態では、「コンピューター可読命令」及び「コンピューター可読プログラム命令」という用語は、さまざまなタスク及び操作を遂行するように構成される、ソフトウェア命令又はコンピューターコードを記述するために使用される。さまざまな実施形態では、「モジュール」という用語は、処理回路1110に一つ又は複数の機能タスクを行わせるように構成される、ソフトウェア命令又はコードの集まりを広く指す。モジュール及びコンピューター可読命令は、処理回路又は他のハードウェアコンポーネントが、モジュールもしくはコンピューター可読命令を実行しているときに、さまざまな操作又はタスクを実施するものとして説明され得る。
図3A~3Dは、非一時的コンピューター可読媒体1120上に格納されるコンピューター可読プログラム命令が、本明細書に開示のロボットシステムを有する動作計画モジュール1129及びオブジェクト操作計画モジュール1126を使用した配置及びローディング操作の効率を最大化するために、コンピューティングシステム1100を介して利用される例示的な環境を示す。コンピューティングシステム1100によって取得され、図3Aに例示される画像情報は、図3C~3Dに示されるように、本明細書に開示されるローディング環境3100内に存在するロボット3300へのシステムの意思決定手順及びコマンド出力に影響を与える。ローディング環境3100は、オブジェクト(例えば、複数のオブジェクト3510~3590のいずれか)、及び/又は例えば、パレット3400を受容するための少なくとも一つのローディングエリア3110(又は図3Cに示す複数のローディングエリア3110、3120、3130、3140)を含む。緩衝ゾーン3150は、オーバーフローオブジェクト3550/3560/3570を受容するためのローディング環境内にさらに含まれてもよい。オブジェクトキュー3160は、ロボット3300を介して、ローディング環境内の他の場所へ取得及び配置するために、ローディング環境内に到着する、進入オブジェクト3510/3520/3530のキューを含み得る。実施形態では、複数のオブジェクトキュー3160が、進入オブジェクト3510/3520/3530をローディング環境に供給するために提供され得る。オブジェクトキュー3160は、例えば、コンベアベルト(図3Cに示す)、パレット、車両、棚、容器などを含む、オブジェクト搬送の適切な手段によって提供され得る。
また、ローディング環境3100内に配置され得るロボット3300は、オブジェクト3500を掴んでリリースするように設計されたエンドエフェクター装置3330を有するアーム3320を含む。エンドエフェクター装置3330は、例えば、吸引カップ、ロボットグリッパー、及び/又はオブジェクトの把握及びリリースに適した任意の他のロボットツールを含み得る。カメラ1200は、ロボットのエンドエフェクター装置3330上に配置されて、エンドエフェクター装置3330からのコンピューティングシステム1100からの視界など、ロボットからの動的「第一の人視界」を提供し得る。実施形態では、カメラ1200は、代替的に、ロボットのアーム3320上に配置され得る。カメラ1200はまた、ロボット3300に取り付けられる代わりに、ローディング環境内の静止位置に配置され得る。さらなる代替として、カメラ1200は、ロボット上に配置されてもよく、第二のカメラ1200は、ロボットとは別個のローディング環境内の静止位置に配置されて、ロボット3300を介して相互作用される環境及び/又はオブジェクト3500の複数の角度を有するコンピューティングシステム1100を提供することができる。ローディング環境3100内のロボットの3300配置は、ローディングエリア3110/3120/3130/3140、緩衝ゾーン3150、及びオブジェクトキュー3160に到達するロボットの能力に対して決定的である。実施形態では、ロボットはさらに、ローディング環境内の全ての領域への適切な到達を支援する動作能力を有し得る。
ローディング環境3100内に提供される、又は利用可能であるオブジェクト3510~3590(図3Bの実施例において総称して、オブジェクト3500と識別される)が、コンピューティングシステム1100を介した検出、識別、及び/又は認識のために、それぞれ、オブジェクトタイプ識別子3710、3720、3730(総称して、オブジェクトタイプ識別子3700と称する)と関連付けられる。オブジェクトタイプ識別子3700は、それが関連付けられているオブジェクトのタイプを示すデータオブジェクトである。例えば、識別されたオブジェクトタイプ3700は、箱のサイズ、形状、又は重量によって、内容物、起源、目的地、又は任意の他の適切な識別属性によって、オブジェクトタイプを識別し得る。実施形態では、オブジェクトタイプ識別子3700は、オブジェクト3500上に位置する、又はオブジェクト3500内に含まれる物理的識別子の識別又は読み取りを介して、コンピューティングシステム1100によって取得され得る。例えば、オブジェクトタイプ識別子3700は、固有の在庫管理ユニット(SKU)コード、ユニバーサル製品コード(UPC)、住所ラベル、無線周波識別(RFID)タグ、又は品目又は製品の追跡及び取引に使用される、任意の他のタイプのバーコード、印、及び/又は無線追跡装置もしくはシステムに記憶されてもよく、又はそれらによって識別され得る。さらなる実施形態では、オブジェクト認識技術を使用して、オブジェクトタイプを認識し(例えば、オブジェクトテンプレートマッチングによる)、それに応じてオブジェクトタイプ識別子3700をオブジェクト3500に割り当てることができる。特定のオブジェクトタイプ識別子3700に関連付けられるオブジェクト3500は、類似の又は同一のオブジェクトタイプ識別子を有する他のオブジェクトと分類又はグループ化され得る。そうすることで、コンピューティングシステム1100は、特に、ロボットのピッキング及び配置操作、パレット制御操作(例えば、パレット化又はパレットから降ろす操作)、及び緩衝ゾーン操作の実行を最も適切に決定することができる。オブジェクトタイプ識別子3700は、パレット3400のパレット識別子に対応するか、又はパレット識別子に非対応であり得る。オブジェクトタイプ識別子3700によって提供されるオブジェクト3500の対応する/非対応する状態は、コンピューティングシステム1100によって決定され得る。
パレット3400は、複数のオブジェクト3510~3590のうちの少なくとも一つを受容するために、提供されるローディングゾーン3110/3120/3130/3140の各々内に受けられてもよい。実施形態では、パレット3400は、例えば、パレット識別子によって、コンピューティングシステム1100を介して識別され、対応オブジェクトタイプ識別子3700を有する対応オブジェクト3500を受容する。従って、ローディングエリア3110/3120/3130/3140の少なくとも一つ内にある又は存在する任意のパレット3400は、パレット識別子に対応するオブジェクトタイプ識別子3700を有する、対応オブジェクト又はオブジェクト3510~3590を受容し得る。非対応オブジェクトタイプ識別子3700を有する非対応オブジェクト3500は、緩衝ゾーン3150内に配置されてもよく、又はパレット交換をトリガーし得る。パレット交換の決定は、さまざまなローディングエリア、緩衝エリア、及びローディング環境内のパレット(単数又は複数)の充填状態に依存してもよく、その方法は以下でより詳細に論じられる。
パレット交換などのパレット輸送操作には、自動機械又は自動車両(フォークリフト、又は自動誘導車両「AGV」などの他の車両)、追加又は外部ロボット(図示せず)、人的相互作用、機械システム(図示せず)、及びその他の適切な輸送手段によるパレットを輸送することが含まれ得る。これらは、パレットプロセスに遅延をもたらす可能性がある。例えば、ロボット3300は、AGV(又は他の搬送)が既存のパレット3400A/3400Bをローディング環境3100(又はその指定されたローディングエリア3110/3120/3130/3140)から駆動又は移動するために、また別のAGV(又は他の搬送)が新しいパレット3400Cをローディング環境3100(又は現在空のローディングエリア3110/3120/3130/3140)内に駆動又は移動するために、しばらくの間、操作を停止しなければならない場合がある。この作業の遅延は、パレット交換操作が必要となるたびに発生し得る。従って、緩衝ゾーン3150は、パレット交換の必要性を低減するために実装されてもよく、パレット交換の各事例から生じるダウンタイムの量を低減する。
緩衝ゾーン3150は、ローディング環境内の既存のパレットに対応するオブジェクトタイプ識別子3700(例えば、ローディングエリア3110~3140内)を欠く、キュー又はコンベヤ3160から提供される、進入オブジェクト3510/3520/3530の一時的な宛先又はリポジトリとしての役割を果たす。従って、非対応オブジェクトタイプ識別子3700を有する進入オブジェクト3510/3520/3530は、ロボットによってオブジェクトキュー3160から取得され、緩衝ゾーン3150内に配置されて、オブジェクトキュー3160が、進入オブジェクト3510/3520/3530の連続的なストリームを前進させ供給し続けることを可能にすることができる。非対応オブジェクト3500は、その特定のオブジェクトタイプ識別子3700を有する(例えば、対応するパレット識別子を有する)、オブジェクト3500を受け取る専用のパレットがローディング環境3100内に提供されるまで、緩衝ゾーン内に留まり得る。こうしたパレット交換コマンドが行われると、既存のパレット3400A/3400Bは、パレット3400Cがその定位置を取ることができるように、そのそれぞれのローディングエリア3110/3130から取り除かれる。次に、ロボット3300は、緩衝ゾーン内のオーバーフローオブジェクト又はオブジェクト3550~3570を取得し、それらを、対応オブジェクトタイプ識別子を有するオブジェクトを受容する専用パレット3400Cに移動させ得る。実施形態では、オブジェクトキュー3160を介して提供される、より大きなボリュームのオーバーフローオブジェクトを収容するために、複数の緩衝ゾーンを、ローディング環境内に提供することができる。
本開示は、複数の進入オブジェクト3510/3520/3530を、オブジェクトキュー3160(又は代替的には、複数のキュー又はコンベア)から、ローディング環境3100の指定された領域へ移動させる、促進する、及び/又は計画することに関する。図4は、複数のオブジェクトのキュー又はコンベアから、ローディング環境の指定された領域への移動を実行、促進、及び/又は計画するための方法4000の例のフロー図を示す。実施形態では、オブジェクト移動方法4000の動作は、以下でより詳細に説明するパレット管理方法5000の動作と併せて行われてもよい。オブジェクト移動方法4000の動作は、ローディング環境3100へのオブジェクトの移動を管理する。パレット管理方法5000の動作は、ローディング環境3100への移送又はパレットを管理する。方法4000及び方法5000のさまざまな動作は、ローディング環境内のパレットへのオブジェクト移送の効率を増大させる目標を達成するために、互いに合わせて又は組み合わせて行われてもよい。
実施形態では、方法4000は、例えば、図2A~2Dのコンピューティングシステム1100(又は1100A/1100B/1100C)、又は図3A~3Dのコンピューティングシステム1100、又はより具体的には、コンピューティングシステム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、コンピューティングシステム1100が、非一時的コンピューター可読媒体(例えば、1120)上に記憶された命令を実行することによって、方法4000を行ってもよい。例えば、命令によって、コンピューティングシステム1100に、方法4000を行い得る、図2Dに示されたモジュールのうちの一つ又は複数を実行させてもよい。例えば、実施形態では、オブジェクト認識に関連するステップ、例えば操作4001、操作4002、操作4003、操作4004、及びその他は、オブジェクト認識モジュール1121を介して実行され得る。例えば、実施形態では、例えば操作4006、操作4007、操作4008などの動作及び軌道計画に関連するステップは、動作計画モジュール1129を介して実行され得る。例えば、実施形態では、オブジェクト配置及び取り扱い、例えば、操作4004、操作4008、及びその他のものに関連するステップが、オブジェクト操作計画モジュール1126によって行われてもよい。ローディング環境管理及び理解に関連する操作、例えば、動作4005及び4009は、ローディング環境管理モジュール1122によって実行又は実施され得る。一部の実施形態では、動作計画モジュール1129及びオブジェクト操作計画モジュール1126は、動作及びオブジェクト操作の両方を含む軌道を画定及び/又は計画するために、協働して動作し得る。
方法4000のステップは、特定のタスクを実施するための特定の順次ロボット軌道を達成するために採用され得る。一般的概要として、方法4000は、コンピューティングシステム1100に、オブジェクトをオブジェクトキュー3160からローディングエリア3110~3140又は緩衝ゾーン3150に移送させるように動作し得る。こうした移送操作は、操作中に発生するさまざまな操作に従って更新及び/又は精密化される、事前に計画された軌道によるロボット3300の動作を含み得る。
方法4000では、コンピューティングシステム1100は、ロボット3300の動きを制御(例えば、制御するためのコマンドを提供する)して、進入オブジェクト3510/3520/3530をオブジェクトキュー3160から取得し、進入オブジェクト3510/3520/3530を、ローディング環境3100内の指定された領域(例えば、ローディングエリア3110~3140又は緩衝ゾーン3150)内に配置するように構成及び操作され得る。コンピューティングシステム1100は、それら全てがカメラを介して画像情報として収集され得る、オブジェクトを囲む多数の要因及びローディング環境の状態に基づき、その後のオブジェクトの取得及び配置手順を計画及び調整するよう構成され得る。コンピューティングシステム1100は、オブジェクト移動コマンドを決定して、進入オブジェクト3510/3520/3530をオブジェクトキュー3160から取得し、それを、ローディング環境3100内に設けられた標的ローディングエリア3110~3140内に配置し得る。実施形態では、コンピューティングシステム1100は、進入オブジェクト3510/3520/3530をオブジェクトキュー3160から取得し、それをローディング環境3100内の緩衝ゾーン3150内に配置することを決定し得る。別の実施形態では、コンピューティングシステム1100は、オーバーフローオブジェクト3550/3560/3570を緩衝ゾーン3150から取得し、それを、ローディング環境3100内に設けられた標的ローディングエリア3110~3140内に配置することを決定し得る。
方法4000の説明は、図5に示す、移動サイクルを指す。サイクルAの移動は、カメラ1200がローディング環境3100を表す画像情報を生成できるように、ローディング環境3100(又はより具体的には、オブジェクトキュー3160、ローディングエリア3110~3140、及び/又は緩衝ゾーン3150)の前のカメラ1200(例えば、ロボットアーム3320に取り付けられるカメラ、又はロボットから別個のローディング環境内、又はその両方に代替的に提供されるカメラ)の移動を含み得る。移動サイクルAは、オブジェクトキュー3160(軌道A1)から標的の進入オブジェクト3510に接近し、つかみ、又は持ち上げるためのロボットアーム3320の移動を含み得る。移動サイクルAは、標的進入オブジェクト3510を、ローディングエリア3110~3140又は緩衝ゾーン3150(軌道A2a、A2b、A2c、A2d)のうちの一つに輸送及び堆積させるためにロボットアーム3320の移動を含んでもよい。画像情報は、コンピューティングシステム1100によって使用され、ロボット3300に軌道A1、A2a、A2b、A2c、A2dを実行させために送信又は実行するコマンドを決定し得る。
図5に描写されるサイクルAと呼ばれる、あるタイプの移動サイクルでは、コンピューティングシステム1100は、ローディング環境3100内のロボット3300に、軌道A1のエンドエフェクター装置3330を使用して、オブジェクトキュー3160からオブジェクト3510/3520/3530の一方を移動させ、取得させるように構成されるコマンドを出力し得る。次に、コンピューティングシステム1100は、カメラ1200を介して収集された処理された画像情報に基づき、オブジェクトキュー3160から取得される進入オブジェクト3510/3520/3530が、ローディングエリア3110/3120/3130/3140に対応するオブジェクトタイプ識別子3700と関連付けられるかどうかを判定し得る。次いで、コンピューティングシステム1100は、ロボット3300を制御して、取得された進入オブジェクト3510/3520/3530のオブジェクトタイプ識別子3700が対応する場合、進入オブジェクト3510/3520/3530をローディングエリア3110/3120/3130/3140(例として、軌道A2a、A2b、A2d)に移動させ、配置し得る。別の方法として、コンピューティングシステム1100は、ロボット3300を指令又は制御して、取得された進入オブジェクト3510/3520/3530のオブジェクトタイプ識別子3700が、いずれのローディングエリア3110/3120/3130/3140のパレットのパレット識別子にも対応しない場合、進入オブジェクト3510/3520/3530を緩衝ゾーン3150(例として、軌道A2c)に移動させ、配置するようにし得る。コンピューティングシステム1100は、進入オブジェクト3510/3520/3530のサイズ、緩衝ゾーン3150内にすでに存在する他のオーバーフローオブジェクト3550/3560/3570の位置、及び緩衝ゾーン3150内にすでに存在する他のオブジェクトの配向を含む、複数の要因に基づき、進入オブジェクト3510/3520/3530を緩衝ゾーン3150内に移動し、配置する場所を決定する。コンピューティングシステム1100は、緩衝ゾーンから緩衝ゾーン内に置かれた、進入オブジェクト3510/3520/3530を移動及び取得するように構成される将来のコマンドが、カメラがオブジェクトに関連する画像情報を収集するとき、ロボットアーム3320の経路を遮断する、及び/又は進入オブジェクト3510/3520/3530の視界をカメラ1200から遮る他のオブジェクト(例えば、大きなオブジェクト3500が、進入オブジェクト3510/3520/3530の前に配置され、従ってカメラ視野を遮る)などの外部要因によって妨害されないように、これらのパラメーターを考慮する。
移動サイクルAは、例としてのみ提供される。ロボットアーム3320は、ソース又は宛先として機能する他のリポジトリ間でオブジェクトを移動することを含む、他の移動サイクルを有するように制御され得る。例えば、ロボットは、ローディング環境内のローディングエリア又は緩衝ゾーンから、オブジェクトをキュー又はコンベアに移動させ得る。別の実施例では、ロボットは、ローディング環境内のローディングエリアから、オブジェクトを緩衝ゾーンに移動させてもよい。
移動サイクルAの説明は、ローディング環境内及び/又はロボットの周りのオブジェクトの計画及び配置を伴う動作の説明として理解されるべきである。ソース及び宛先リポジトリの異なる組み合わせを必要とする移動サイクルは、本開示の範囲を逸脱することなく、本明細書に開示される異なる組み合わせ及び/又は動作の異なる順序を必要とし得る。
コンピューティングシステム1100は、オブジェクトキュー3160からローディング環境3100に、進入オブジェクト3510/3520/3530を移すための方法4000の特定のステップを実行し得る。方法4000は、コンピューティングシステム1100が、上述のように収集された画像情報を使用して、オブジェクトキュー3160に常駐し、ローディング環境3100に提供されるオブジェクト3510/3520/3530の進入キューを検出し得る、操作4001で始まるか、又はそうでなければ含んでもよい。特に、画像情報は、ロボット3300のエンドエフェクター装置3330上に配置されるカメラ1200によって、及び/又はロボット3300とは別個のローディング環境3100のどこかに提供される二次的一つ又は複数のカメラ1200を介して、又はカメラ1200と二次的一つ又は複数のカメラ1200の組み合わせを介して、捕捉され得る。画像情報は、例えば、オブジェクトキュー画像情報及びローディング環境画像情報を含み得る。オブジェクトキュー画像情報は、オブジェクトキュー3160の進入オブジェクト3510/3520/3530の画像情報を含む。ローディング環境画像情報は、既存のオブジェクト3540/3580/3590、パレット3400、及びローディング環境のその他の特徴の画像情報を含む。実施形態では、コンピューティングシステム1100は、オブジェクトキュー3160に関連する、又は記述する情報(画像情報を含む)をあらかじめ供給又はあらかじめロードされてもよく、操作4001の実行を容易にする。本明細書に記載されるオブジェクト認識技術を使用して、オブジェクトキュー3160内の個々のオブジェクト3510/3520/3530を認識又は識別し得る。
方法4000は、コンピューティングシステム1100が、オブジェクトキュー3160から、オブジェクト3500のそれぞれの進入オブジェクト3510/3520/3530に関連する、又は関連付けられている、複数のオブジェクトタイプ識別子3710/3720/3730を取得又は受信するように構成される、操作4002をさらに含み得る。複数のオブジェクトタイプ識別子3710/3720/3730は、上述のように収集された画像情報(例えば、オブジェクト認識、バーコード、SKU、又はQRコード(登録商標)読み取りなど)を介して、受信、取得、又は別の方法で決定され得る。あるいは、オブジェクトタイプ識別子3710/3720/3730は、コンピューティングシステムに事前供給又は事前ロードされ得る。実施形態では、オブジェクトタイプ識別子3710/3720/3730は、別個のプロセッサー/システムを介してロボットシステムに提供され得る。さらなる実施形態において、オブジェクトタイプ識別子3710/3720/3730は、進入オブジェクト3510/3520/3530に関連付けられる無線識別子(例えば、RFIDタグ)を読み取るように構成されるシステムから受信されてもよく、又は取得され得る。オブジェクトタイプは、コンピューティングシステム1100自体によって、又はコンピューティングシステム1100と通信する別のシステムによって決定され得る。
方法4000は、コンピューティングシステム1100がキュー3160内の標的オブジェクト(例えば、ロボット3300を介して取得されるロボットシステムによって識別される、次の進入オブジェクト3510)に関連する画像情報を、取得又は受信する、操作4003をさらに含み得る。コンピューティングシステム1100は、キュー3160を介して到着する一連の進入オブジェクト3510/3520/3530の中で、ロボットに最も近い進入オブジェクト3510が、ロボット3300によってピックアップされる隣であり、それによって標的進入オブジェクト3510になると判断するようにさらに構成され得る。コンピューティングシステム1100はさらに、ターゲット進入オブジェクト3510が、対応オブジェクトタイプ識別子3700を有する対応オブジェクト(例えば、ローディングエリア3110~3140のうちの一つ内のパレットに関連付けられたパレット識別子に対応する)、又は、非対応オブジェクトタイプ識別子3700を有する非対応オブジェクト(例えば、ローディングエリア3110~3140のうちの一つ内のパレットに関連付けられたパレット識別子に対応しない)であるかどうかを決定する際に、ターゲット進入オブジェクト3510に関連する以前に取得されたオブジェクトタイプ識別子3700を使用するように構成され得る。実施形態では、ロボットシステムは、標的オブジェクトに関連付けられるオブジェクトタイプ識別子3700を識別し、識別された印に基づき、オブジェクトタイプ識別子3700を標的進入オブジェクト3510に割り当てるようにさらに構成され得る。
方法4000は、カメラから受信したオブジェクトキュー3160の画像情報に基づき、キュー3160内の標的進入オブジェクト3510の標的オブジェクト姿勢を決定する、操作4004をさらに含み得る。標的オブジェクト姿勢は、上述の他の変数の中でも特に、オブジェクトキュー3160内の標的オブジェクトのサイズ、配向、及び位置を含み得る。標的オブジェクト姿勢は、後で取得コマンドを実行して、オブジェクトキュー3160からの標的進入オブジェクト3510の適切な取得を確実に達成する際に利用され得る。コンピューティングシステム1100は、ターゲット進入オブジェクト3510が、対応オブジェクトタイプ識別子を有する対応オブジェクトであるか、又は非対応オブジェクトタイプ識別子を有する非対応オブジェクトであるかを決定する際に、画像情報を使用するようにさらに構成され得る。
方法4000は、操作4005をさらに含んでもよく、コンピューティングシステム1100は、ローディング環境3100における標的進入オブジェクト3510の計画配置位置を示す、標的進入オブジェクト3510の標的オブジェクト配置を決定する。計画配置位置は、標的進入オブジェクト3510が対応オブジェクトとみなされる場合(すなわち、標的進入オブジェクト3510のオブジェクトタイプ識別子3700が、利用可能なローディングエリア3110~3140のうちの一つに配置されるパレットのパレット識別子と整列するか、又は対応する)、ローディングエリア3110/3120/3130/3140としてさらに決定され得る。標的進入オブジェクト3510が非対応オブジェクトとみなされる場合、計画配置位置は、代替的に、緩衝ゾーン3150であり得る(すなわち、標的進入オブジェクト3510のオブジェクトタイプ識別子3700は、利用可能なローディングエリア3110~3140のうちの一つに位置するパレットのパレット識別子と整列しないか、し対応しない)。標的オブジェクト配置を決定する際に、コンピューティングシステム1100は、例えば、本明細書に開示されるオブジェクト認識技術を使用して、ローディング環境画像情報を処理して、ローディングエリア内に設けられたパレットの姿勢を決定することによって、パレット検出操作を実行するようにさらに構成され得る。
方法4000はさらに、操作4006をさらに含んでもよく、コンピューティングシステム1100は、標的進入オブジェクト3510の取得及び配置のために、上述のように、動作計画モジュール1129を介して動作計画操作を実行し得る。動作計画操作は、ロボット3300の動作又は移動を引き起こすように構成される一連のコマンドを決定することを含み得る。実施形態では、この動作又は移動は、ロボットアーム3320の移動、及び/又はエンドエフェクター装置3330の移動を含み得る。動作計画操作は、操作4003で以前に収集された画像情報に基づき行われてもよい。例えば、コンピューティングシステム1100は、取得される標的オブジェクトに対するアーム3320の移動を制御する方向及び/又は角度を決定し得る。コンピューティングシステム1100は、取得される標的オブジェクトに対して、エンドエフェクター装置を制御する方向及び/又は角度をさらに決定し得る。実施形態では、操作4006は、オブジェクトキュー画像情報から生成される標的オブジェクト姿勢に向けられた、配向、重量、サイズ、及びその他の物理的データを考慮し得る。標的オブジェクト姿勢に関するこの情報は、標的オブジェクト計画配置位置にさらに統合され得る。
方法4000はさらに、操作4007をさらに含んでもよく、ロボットシステムは、動作計画操作に従って、オブジェクトキュー3160から標的の進入オブジェクト3510(図5の移動又はステップA1として示される)を取得するための取得コマンドを送信又は実行し得る。取得コマンドは、ロボット3300を、軌道A1内で標的進入オブジェクト3510に向かって移動させ、標的オブジェクトをつかむ際にエンドエフェクター装置3330を使用させるように構成され得る。操作4007は、ロボットに、オブジェクトキュー3160から、標的進入オブジェクト3510の目的地(例えば、ローディングエリア3110/3120/3130/3140、又は緩衝ゾーン3150)への動きA2a/A2b/A2c/A2dを開始させる開始コマンド構成を送信又は実行することをさらに含み得る。
方法4000はさらに、操作4008をさらに含んでもよく、コンピューティングシステム1100は、動作計画操作に従って、標的進入オブジェクト3510を標的ローディングエリア3110/3120/3130/3140に配置するための配置コマンドを送信又は実行する。
コンピューティングシステム1100は、ロボットアーム3320を制御して、パレット3400の対応する標的進入オブジェクト3510を、ローディング環境パレット管理方法(例えば、以下でより詳細に説明する方法5000)のさまざまな動作に関連して、ローディングエリア3110/3120/3130/3140に配置するように、さらに構成され得る。例えば、オブジェクト配置の前又は間に、コンピューティングシステム1100は、パレット管理方法5000の一つ又は複数の動作を実行し得る。例えば、パレット検出操作5003、パレットステータス操作5005、パレット識別操作5006、パレット交換操作5007などは、任意の組み合わせで、オブジェクト配置操作の前又はそれに連動して実施され得る。
例えば、オブジェクト配置は、パレット検出操作(例えば、以下でより詳細に説明するパレット検出操作5003)の結果に従って行われてもよい。パレット検出操作は、コンピューティングシステム1100によって起動されて、既存のパレットが、ローディング環境3100内(すなわち、指定されたローディングエリア3110/3120/3130/3140内)に存在するかを確認し得る。
例えば、オブジェクト配置は、ローディング環境3100内であることが確認された既存のパレット3400A/3400B(例えば、以下でより詳細に記載される操作5004)の充填状態を検出した結果に従って行われてもよい。実施形態では、パレット充填状態は、カメラ1200によって捕捉された画像情報を介して決定される。カメラ1200は、インハンドカメラソリューション(オンハンドカメラソリューションとしても知られる)であってもよく、カメラ1200はロボットアーム3320上に配置される。次に、ロボットアーム3320は、さまざまなピッキング領域(例えば、パレット3400、緩衝ゾーン3150、又はキュー3160など)に移動して、複数の異なる角度から画像情報を捕捉し得る。実施形態では、カメラ1200は、ロボット3300から遠隔に位置し得る。実施形態では、遠隔及び/又はインハンドの複数のカメラ1200を使用し得る。上述のように、及び図2E、2F及び3Aを参照して、コンピューティングシステム1100は、画像分析のために実施され得るオブジェクト認識モジュール1121に関連する方法を採用する。例えば、選択された点に対するさまざまな位置のそれぞれの奥行き値を記述する奥行き情報を含み得る3d画像情報2700(例えば、空間構造情報)は、パレット充填状態を判定するために使用され得る。奥行き情報は、パレット3400A/3400B上に存在する既存のオブジェクト3540/3580/3590を識別するために、及び/又は既存のオブジェクト3540/3580/3590がパレット3400A/3400B上に空間的にどのように配置されるかを推定するために使用され得る。いくつかの実施形態では、3d画像情報2700は、既存のオブジェクト3540/3580/3590の一つ又は複数の表面の位置を記述する点群を含んでもよく、又は点群を生成するために使用され得る。3d画像情報2700は、可能な画像分析及び他の形態の一形態であり、当業者によって知られている2d画像情報2600の分析など、他の形態が、本明細書に記載される方法に従って使用され得る。
例えば、オブジェクト配置は、ローディング環境3100の外側から、ローディング環境内の既存のパレット3400A/3400Bを新しいパレット3400Cで置き換えるように構成されるパレット交換操作(例えば、操作5007)の実行後に実施され得る。新しいパレット3400Cは、例えば、自動機械(フォークリフト又はAGVなどの他の車両)、外部ロボット(図示せず)、人的相互作用、機械システム(図示せず)、及び任意の他の適切な輸送によって、取得され、ローディング環境3100に移動され得る。実施形態では、コンピューティングシステム1100は、パレット交換操作が既存のパレット3400A/3400Bの不足(例えば、パレット識別子が、多数の進入3510/3520/3530、既存のオブジェクト3540/3580/3590、及び/又は移動されるオーバーフローオブジェクト3550/3560/3570に関連付けられるオブジェクトタイプ識別子3700に対応しない)のために、必要であることを発見し得る。従って、コンピューティングシステム1100は、パレット交換コマンドが要求されるという決定に応答して、パレット交換に既存のパレット3400A/3400Bを新しいパレット3400Cと交換させてもよい(図7Aの軌道B2a/B2bを参照されたい)。実施形態では、既存のパレット3400A/3400B及び新しいパレット3400Cは、例えば、自動機械(フォークリフト又は他の車両)、外部ロボット(図示せず)、人為的相互作用、機械システム(図示せず)などによって、外部力を介して交換され得る。実施形態では、既存のパレット3400A/3400B及び新しいパレット3400Cは、ロボット3300を介して交換され得る(すなわち、ロボット3300は、そのアーム3320及びエンドエフェクター装置3330を使用して交換を容易にする)。実施形態では、パレット交換操作はまた、既存のパレット3400A/3400Bのパレット充填状態が満杯を示す値を戻すために、必要に応じて決定され得る。例えば、ロボット3300が、インハンドカメラを有する場合(ロボットアーム3320上に取り付けられる)、ロボットシステムは、カメラ1200が既存のパレット3400A/3400B底部角に方向を向いている位置及び向きに配置されるロボットアーム3320を制御し得る。さらに別の実施形態では、パレット交換コマンドは、既存のオブジェクト3540/3580/3590及び/又はオーバーフローオブジェクト3550/3560/3570に関連付けられる既存のオブジェクトタイプ識別子3700がパレット識別子と対応しないという判定に応答して、必要に応じてさらに決定され得る。さらにさらなる実施形態では、パレット交換操作は、進入オブジェクト3510/3520/3530に関連付けられる進入オブジェクトタイプ識別子3700がパレット識別子と対応しないという判定に応答して、必要に応じてさらに決定され得る。
ロボットシステムは、パレット3400上に対応オブジェクト(別名、対応オブジェクトタイプ識別子3700を有する標的オブジェクト)を配置した後に、対応オブジェクト配置姿勢を記録するようにさらに構成され得る。実施形態では、ロボットシステムは、非対応オブジェクト(別名、非対応オブジェクトタイプ識別子3700を有する標的オブジェクト)を緩衝ゾーン3150内に配置するために、ロボットアーム3320を制御するように構成され得る。ロボットシステムは、さらに、非対応オブジェクトを緩衝ゾーン3150に配置した後、非対応オブジェクト配置姿勢を記録するように構成され得る。
方法4000は、操作4009をさらに含んでもよく、ロボットシステムは、ローディング環境3100における標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成する。一つ又は複数のオブジェクト3500が、ローディング環境3100内、中、又は外に移動した後、ローディング環境3100は変更されてもよく、従って、コンピューティングシステム1100が、ローディング環境3100の状態に関する正確で最新の情報を有することを保証するために、再撮像を必要とし得る。こうした更新はまた、以下でさらに論じるように、パレット交換又はその他のパレット輸送操作の後にも必要とされ得る。更新されたローディング環境画像情報を生成することは、カメラ1200を制御して、更新された画像情報を捕捉することを含み得る。実施形態では、コンピューティングシステム1100は、操作4008の実行後に、ローディングエリア3110/3120/3130/3140の少なくとも一つ及び少なくとも一つのローディングエリアの充填状態を表す画像情報を捕捉するために、カメラ1200を制御し得る。これは、操作4008の実行後に、少なくとも一つのローディングエリア3110/3120/3130/3140内に配置されるパレット3400A/3400Bの充填状態を表す画像情報を捕捉するために、カメラを制御することをさらに含み得る。これはさらに、操作4008の実行後に、ローディングエリア3110/3120/3130/3140内の標的オブジェクト配置姿勢(及び実施形態では、パレット3400A/3400B上の標的オブジェクト配置姿勢)を表す画像情報を捕捉するためにカメラを制御することをさらに含み得る。実施形態では、コンピューティングシステム1100は、カメラ1200(及び又はカメラ1200を位置付けるロボットアーム3300で)を制御して、緩衝ゾーン3150及び操作4008の実行後の緩衝ゾーン3150の充填状態を表す画像情報を捕捉し得る。これは、操作4008の実行後に、緩衝ゾーン3150内の標的オブジェクト配置姿勢を表す画像情報を捕捉するために、カメラ1200を制御することをさらに含んでもよい。更新されたローディング環境画像情報は、ロボットシステムを介して実施される将来の操作4001~4009の精密化を可能にし得る。ロボットシステムは、その後、方法4000の操作4001~4009に従って、キュー内の後続するオブジェクトをローディング環境内へ取得及び配置するために、新しい動作計画操作4006を実行するためにローディング環境画像情報を処理し得る。
上述したように、本発明の方法4000は、エンドエフェクター装置3330に取り付けられるか、又はこれを含むロボットアーム3320、及びアーム3320/エンドエフェクター装置3330上に配置されるか、ロボット3300とは別個のローディング環境3100内の他の場所に配置されるカメラ1200/1200を有するロボット3300と通信し、及びこれを制御するように構成されるコンピューターシステム1100を含む。ロボット3300は、ローディング環境3100内であってもよく、オブジェクトキュー3160は、ロボット3300を介した相互作用のために、ローディング環境3100に進入オブジェクト3510/3520/3530を提供する。方法4000は、少なくとも動作4001~4009の性能のために構成される少なくとも一つの処理回路1110を含む。方法4000の性能は、ローディング環境3100内のオブジェクト3500の取得及び配置の速度、効率、及び精度の増加を含む(がこれらに限定されない)、ロボットシステムに技術的改善を達成する。
本開示はさらに、複数の進入オブジェクト3510/3520/3530の、オブジェクトキュー3160から、ローディング環境3100内で利用可能なローディングエリア3110/3120/3130/3140及び/又は緩衝ゾーン3150における、パレットへの移動の実行、促進、及び/又は計画に関する。図6は、複数のオブジェクトの、キュー又はコンベアから、ローディング環境内で利用可能なパレット及び/又は緩衝ゾーンへの移動を実行、促進、及び/又は計画するための、パレット管理方法5000の例のフロー図を示す。
実施形態では、方法5000は、例えば、図2A~2Dのコンピューティングシステム1100、又は図3A~3Dのコンピューティングシステム1100によって、又はより具体的には、コンピューティングシステム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、コンピューティングシステム1100が、非一時的コンピューター可読媒体(例えば、1120)上に記憶された命令を実行することによって、方法5000を行ってもよい。例えば、命令によって、コンピューティングシステム1100に、方法5000を行い得る、図2Dに示されたモジュールのうちの一つ又は複数を実行させてもよい。例えば、実施形態では、オブジェクト認識に関連するステップ、例えば動作5001~5006及びその他は、オブジェクト認識モジュール1121を介して少なくとも部分的に実行され得る。例えば、実施形態では、動作及び軌道計画に関連するステップ、例えば操作5007及び5008及びその他は、動作計画モジュール1129を介して少なくとも部分的に実行され得る。例えば、実施形態では、オブジェクト配置及び処理に関連するステップ、例えば操作5008などは、オブジェクト操作計画モジュール1126によって少なくとも部分的に実行され得る。実施形態では、ローディング環境管理モジュール1122は、動作5002及び5007など、ローディング環境ロジスティクスに関連する動作を少なくとも部分的に実行し得る。いくつかの実施形態では、オブジェクト認識モジュール1121、動作計画モジュール1129、オブジェクト操作計画モジュール1126、及びローディング環境管理モジュール1122は、協調して動作して、運動及びオブジェクト操作の両方を含む軌道を定義及び/又は計画するために協働して動作し得る。
方法5000のステップは、特定のタスクを実施するための特定の順次ロボット軌道を達成するために採用され得る。一般的な概要として、方法5000は、コンピューティングシステム1100に、オブジェクトキュー3160から、ローディングエリア3110/3120/3130/3140内に配置される対応するパレット3400A/3400B、又は緩衝ゾーン3150へ、進入オブジェクト3510/3520/3530を移送させるように動作し得る。そのような移送操作は、方法5000中に発生するさまざまな操作に従って更新及び/又は精密化される、事前に計画された軌道に従うロボット3300の操作を含み得る。上述のように、方法5000の動作は、方法4000の動作のいずれか又は全てと併せて、又は組み合わせて行われてもよい。
方法5000は、ローディング環境3100内(すなわち、指定されたローディングエリア3110/3120/3130/3140内)の既存のパレット3400A/3400Bの存在を確認するために、コンピューティングシステム1100を介してパレット検出操作(例えば、操作5004)を起動し得る。パレット検出操作は、例えば、ローディング環境3100内であることが確認された既存のパレット3400A/3400Bの充填状態を検出することをさらに含み得る。パレット検出操作は、例えば、ローディング環境3100内であることが確認された既存のパレット3400A/3400Bに関連付けられるパレット識別子を識別することをさらに含み得る。
方法5000は、ローディング環境3100内の既存のパレット3400A/3400Bを、ローディング環境の外側から新しいパレット3400Cと交換させるように構成されるパレット交換操作を実行することをさらに含み得る。パレット交換操作は、さらに、新しいパレット3400Cをローディング環境3100の外側からローディング環境、及び実施形態では、ローディング環境内の指定されたローディングエリア3110/3120/3130/3140に持ち込むためのパレット交換を実行することをさらに含み得る。
方法5000では、コンピューティングシステム1100は、例えば、方法4000のさまざまな動作に従って、オブジェクトキュー3160から(例えば、進入オブジェクト3510/3520/3530の中から)標的進入オブジェクト3510を取得し、例えば、ローディング環境3100内の既存のパレット上に標的進入オブジェクト3510を配置するようにロボット3300の移動を引き起こすように構成及び操作され得る。ロボットシステムはさらに、標的進入オブジェクト3510及びローディング環境3100の状態に関連する多数の要因に基づき、その後のオブジェクトの取得及び配置手順を計画及び調整するように構成され得る。要因は、カメラ1200を介して捕捉された画像情報から決定され得る。コンピューティングシステム1100は、オブジェクトキュー3160から標的の進入オブジェクト3510を取得し、それを、ローディング環境3100内に設けられた特定のローディングエリア3110/3120/3130/3140内の既存のパレット上に配置することを決定するように構成され得る。実施形態では、コンピューティングシステム1100は、オブジェクトキュー3160から標的進入オブジェクト3510を取得し、それをローディング環境3100内の緩衝ゾーン3150内に配置することを決定し得る。別の実施形態では、コンピューティングシステム1100は、緩衝ゾーン3150から標的オーバーフローオブジェクト3550を取得し、それを、ローディング環境3100内に設けられた特定のローディングエリア3110/3120/3130/3140内の既存のパレット上に配置することを決定し得る。さらなる実施形態では、コンピューティングシステム1100は、既存のパレットの充填状態が、ほぼ又はフル容量を示すと決定し、こうした決定に応答して、パレット交換操作を求め、既存のパレットを、ローディング環境の外側に位置する新しいパレットと交換し得る。実施形態では、コンピューティングシステム1100は、標的オブジェクトが、ローディング環境3100内の既存のパレット3400A/3400Bのパレット識別子に非対応するオブジェクトタイプ識別子3700を含むことを決定し、既存のパレット3400A/3400Bを、ローディング環境3100の外側に位置する新しいパレット3400Cと交換するためパレット交換操作を求めてもよい。さらなる実施形態では、ロボットシステムは、パレット3400が、ローディング環境3100内(又はローディング環境3100の特定のローディングエリア3110/3120/3130/3140内)に存在しないことを決定し、対応オブジェクトタイプ識別子3700を有するオブジェクト3500を受容し、ローディング環境3100に持ち込むように専用の新しいパレット3400Cを求めてもよい。
方法5000の説明は、図7A~7Dに示される移動サイクルBを参照する。これらのサイクルの動きには、カメラ1200がローディング環境3100を表す画像情報(例えば、3D画像情報2700及び/又は2D画像情報2600)を生成できるように、ローディング環境3100(又は、より具体的には、オブジェクトキュー3160、ローディングエリア3110~3140、及び/又は緩衝ゾーン3150)の前で、カメラ1200(例えば、ロボットアーム3320に取り付けられたカメラ)の動きが含まれ得る。ここで、画像情報はコンピューティングシステム1100によって使用され、利用可能な手段(例えば、ロボット3300、外部ロボット、人間との相互作用、外部コンピューターシステム、及び/又は外部機械システムなど)によって軌道B1/B2a/B2b/B2c/B3a/B3b/B3c/B4/B5a/B5bを実行させるために実行又は送信する操作コマンドを決定する。
図7A~7Dに示される、サイクルBと呼ばれる一つのタイプの移動サイクルでは、ローディング環境3100内のロボット3300は、移動して、軌道B1に従ってオブジェクトキュー3160からターゲット進入オブジェクト3510~3530を取得することができる。次に、コンピューティングシステム1100は、カメラ1200を介して収集された処理された画像情報に基づき、オブジェクトキュー3160から取得される標的進入オブジェクト3510/3520/3530が、ローディングエリア3110/3130内に存在する既存のパレット3400A/3400Bに対応するオブジェクトタイプ識別子3710/3720/3730を有するかどうかを判定し得る。次いで、コンピューティングシステム1100は、取得された又はターゲットの進入オブジェクト3510/3520/3530のオブジェクトタイプ識別子3710/3720/3730が対応する場合、ターゲット進入オブジェクト3510/3520/3530をパレット3400A/3400B(それぞれ、軌道B3a及びB3b)上に移動して配置するように、ロボット3300を制御し得る。任意選択で、コンピューティングシステム1100は、取得された又は標的の進入オブジェクト3510/3520/3530のオブジェクトタイプ識別子3710/3720/3730が、既存のパレット3400A/3400Bのいずれのパレット識別子にも対応しない場合、標的進入オブジェクト3510/3520/3530を緩衝ゾーン3150(例としてステップB3c)に移動させて配置するようにロボットを制御し得る。コンピューティングシステム1100は、進入オブジェクト3510/3520/3530のサイズ、緩衝ゾーン3150内にすでに存在するオーバーフローオブジェクト3550/3560/3570の位置、及び緩衝ゾーン3150内にすでに存在する他のオブジェクトの配向を含む、複数の要因に基づき、オブジェクトを移動させ、緩衝ゾーン3150内に配置する場所を決定する。コンピューティングシステム1100は、オブジェクトに関連する画像情報を収集するとき、進入オブジェクト3510/3520/3530を緩衝ゾーンから移動及び取得するように構成される将来のコマンドが、ロボットアーム3320の経路を遮断する、及び/又は進入オブジェクト3510/3520/3530の視界をカメラ1200から遮る(例えば、より大きなオブジェクト3500が進入オブジェクト3510/3520/3530の前方に位置しカメラ視野を遮る)他のオブジェクトなどの外部要因によって妨げられないように、これらのパラメーターを考慮する。
実施形態では、コンピューティングシステム1100は、パレット検出操作を実行して、ローディング環境3100内のローディングエリア3110/3120/3130/3140におけるパレット(単数又は複数)3400A/3400Bの存在及び識別を決定し得る。ローディング環境内にパレットが存在しない場合、コンピューティングシステム1100は、新しいパレット3400Cをローディングエリア3110/3120/3130/3140(例えば、軌道B2c)のうちの一つ内のローディング環境に移動させるように構成されるパレット取得コマンドを送信し得る。新しいパレット3400Cは、例えば、自動機械(フォークリフト又は他の車両)、外部ロボット(図示せず)、人的相互作用、機械システム(図示せず)などによって、取得され、ローディング環境3100に移動され得る。実施形態では、既存のパレット3400A/3400Bのパレット識別子が、パレット3400上に配置されるロボット3300によって取得されるために、取得、又は標的化される、ターゲット進入オブジェクト3710~3730のオブジェクトタイプ識別子3510~3590に対応しない場合、コンピューティングシステム1100は、パレット交換操作を実施するためのコマンドを送信し得る。パレット交換操作において、既存のパレット3400A/3400Bは、それぞれのローディングエリア3110/3120/3130/3140から取り除かれ、新しいパレット3400C(軌道B2a又はB2b)と交換されてもよく、新しいパレット3400Cのパレット識別子は、ロボット3300によって現在取得されたか、又は取得されている、標的進入オブジェクト3510~3590のオブジェクトタイプ識別子3700に対応する。
移動サイクルBは、例としてのみ提供される。ロボット3300は、ソース又は宛先として機能する他のリポジトリ間でオブジェクト3500を移動することを含む、他の移動サイクルを有するように制御され得る。例えば、ロボット3300は、既存のオブジェクト3540/3580/3590を、ローディング環境3100内のローディングエリア3110/3120/3130/3140、パレット3400、及び/又は緩衝ゾーン3150からオブジェクトキュー3160に移動させ得る。別の実施例では、ロボット3300は、既存のオブジェクト3540/3580/3590を、ローディング環境3100内のローディングエリア3110/3120/3130/3140及び/又はパレット3400から緩衝ゾーン3150に移動させてもよい。ロボット3300はまた、ローディング環境3100内及びその全体にわたってパレット3400を移動させることを含む、他の移動サイクルを制御するか、又は実行させてもよい。
移動サイクルBの説明は、ローディング環境3100内及び/又はロボット3300の周りのオブジェクトの計画及び配置を伴う動作の説明として理解されるべきである。ソース及び宛先リポジトリの異なる組み合わせを必要とする移動サイクルは、本開示の範囲を逸脱することなく、本明細書に開示される異なる組み合わせ及び/又は動作の異なる順序を必要とし得る。
方法5000に関して記載されるステップ及び方法は、方法4000に関して記載されるステップ及び方法に限定されない。方法4000のステップを実行するように構成されるシステム及びデバイスは、さらに、方法5000のステップを実行するように構成され得る。方法4000及び5000のステップは、同じローディング環境3100内で、同時に、連続的に、かつ重複して行われてもよい。例えば、方法4000のステップは、オブジェクトキュー3160から進入オブジェクト3510/3520/3530を輸送するために実施されてもよく、その後、ローディング環境3100内でパレット3400を再配置させる、方法5000のステップが続き、さらに、方法4000に従って追加のオブジェクト配置ステップが続いてもよい。従って、方法4000の任意のステップ又は動作は、方法4000又は方法5000の適切なステップ又は動作によって成功し得る。方法5000の任意のステップ又は動作は、方法4000又は方法5000の適切なステップ又は動作によって成功し得る。
コンピューティングシステム1100は、進入オブジェクト3510/3520/3530をオブジェクト3160のキューからローディング環境3100に移動させ、さらに、方法5000の実行の効率を高める方法で、ローディング環境3100を変換するためのコマンドを送信又は実行する、方法5000の特定のステップを実行し得る。方法5000は、ロボットシステムが、上述のように収集されたローディング環境画像情報を処理して、ローディング環境画像情報を以下でより詳細に説明する通り、操作5002~5008の実行時、後でコンピューティングシステム1100によって使用され得るデータに変換し得る、操作5001で始まるか、又はそうでなければ操作5001を含んでもよい。特に、ローディング環境画像情報は、ロボット3300のアーム3320上に配置されるカメラ1200を制御することによって、ロボットとは別個のローディング環境内の別の場所に提供される二次的カメラ1200を制御することによって、又はカメラ1200と二次的カメラ1200の組み合わせを制御することによって、捕捉され得る。実施形態では、コンピューティングシステム1100は、カメラ1200/1200を制御して、ローディングエリア3110/3120/3130/3140の少なくとも一つ、及び少なくとも一つのローディングエリアの充填状態を表す画像情報を捕捉し得る。これは、少なくとも一つのローディングエリア3110/3120/3130/3140内に配置されるパレット3400A/3400Bの充填状態を表す画像情報を捕捉するために、カメラを制御することをさらに含み得る。これは、ローディングエリア内(例として3110/3130)及びパレット上(例として3400A/3400B)の既存のオブジェクト3540/3580/3590を表す画像情報を捕捉するためにカメラを制御することを含んでもよい。これは、ローディング環境3100の外側に配置されるパレット3400Cの充填状態を表す画像情報を捕捉するために、カメラ1200を制御することをさらに含み得る。実施形態では、コンピューティングシステム1100は、カメラ1200/1200を制御して、緩衝ゾーン3150、及び緩衝ゾーン3150の充填状態を表す画像情報を捕捉し得る。これは、緩衝ゾーン内のオブジェクト3550/3560/3570を表す画像情報を捕捉するためにカメラを制御することをさらに含み得る。カメラ1200及び/又は二次的カメラ1200による捕捉の後、ローディング環境画像情報は、コンピューティングシステム1100によって取得又は受信され、その後、前述したように処理され得る。実施形態では、コンピューティングシステム1100は、ローディング環境3100に関する情報が事前供給されるか、又は事前ロードされていてもよく、操作5001の実行を容易にする。
方法5000は、コンピューティングシステム1100が、処理済みローディング環境画像情報からローディング環境状態を識別する、操作5002をさらに含み得る。実施形態では、ローディング環境状態は、ローディングエリア3110~3140及び/又は緩衝ゾーン3150内に存在するそれぞれの既存のオブジェクト3550~3590に関連付けられる、複数のオブジェクトタイプ識別子3700を含み得る。ローディング環境状態は、オブジェクトキュー3160を介して進入するそれぞれの進入オブジェクト3510/3520/3530に関連付けられる複数のオブジェクトタイプ識別子3700をさらに含み得る。複数のオブジェクトタイプ識別子3700は、上述のように収集された画像情報(例えば、オブジェクト認識、バーコード、SKU、又はQRコード(登録商標)読み取りなど)を介して、受信、取得、又は別の方法で決定され得る。任意選択的又は追加的に、オブジェクトタイプ識別子3700は、コンピューティングシステム1100に事前供給又は事前ロードされ得る。実施形態では、オブジェクトタイプ識別子3700は、別個のプロセッサー/システムを介してロボットシステムに提供され得る。さらなる実施形態において、オブジェクトタイプ識別子3700は、オブジェクト3500に関連付けられる無線識別子(例えば、RFIDタグ)を読み取るように構成されるシステムから受信されてもよく、又は取得され得る。オブジェクトタイプは、コンピューティングシステム1100自体によって、又はコンピューティングシステム1100と通信する別のシステムによって決定され得る。
方法5000は、コンピューティングシステムがパレット検出操作を実行する操作5003をさらに含み得る。コンピューティングシステム1100は、ローディング環境3100内(より具体的には、ローディングエリア3110/3120/3130/3140内)のパレット3400A/3400Bの存在又は不在を判定するように構成される。操作5003を実行すると、ロボットシステムは、ローディング環境画像情報から、ローディング環境3100(又はより具体的には、それぞれ、ローディングエリア3110/3130)内の既存のパレット3400A/3400Bの存在を検出するために、操作5004を開始し得る。ローディング環境内で既存のパレットが検出されない実施形態では、コンピューティングシステム1100は、新しいパレット又は外部パレット3400Cをローディング環境3100に、より具体的には指定されたローディングエリア3110/3120/3130/3140に持ち込むように構成されたパレット取得コマンドをさらに出力することができる(例えば、図7Aの移動又はステップB2a/B2b/B2cとして示される)。一部の実施形態では、新しいパレット3400Cは、取得されローディング環境3100に移動されてもよく、既存のパレット(例えば、既存のパレット3400A/3400Bのうちの一つ)は、例えば、自動機械(フォークリフト、AGV、又は他の車両)、外部ロボット(図示せず)、人的相互作用、機械システム(図示せず)などによってローディング環境3100から、離れて輸送され得る。例えば、既存のパレット3400A/3400B及び新しいパレット3400Cは、AGV(図示せず)を介して、ローディング環境3100のローディングエリア3110/3120/3130/3140の一つ上に位置し、及びそれらに輸送及びそれらから輸送され得る。実施形態では、コンピューティングシステム1100は、ロボット3300に、エンドエフェクター装置3330を使用して、外側の新しいパレット3400Cを掴んで移動させるように構成され得る。
操作5003は、コンピューティングシステム1100が、(操作5004の出力に基づきローディング環境3100内で識別される場合、又は新しいパレット3400Cがパレット取得コマンドによって提供されるローディング環境3100に持ち込まれる場合)、既存のパレット3400A/3400Bのパレット充填状態を決定する、操作5005をさらに含み及び開始し得る。実施形態では、パレット充填状態は、カメラ1200によって捕捉された画像情報を介して決定される。上述のように、及び図2E、2F及び3Aを参照して、コンピューティングシステム1100は、画像分析のために実施され得るオブジェクト認識モジュール1121に関連する方法を採用する。選択された点に対するさまざまな位置のそれぞれの奥行き値を記述する奥行き情報を含み得る空間構造情報(例えば、3d画像情報2700)は、パレット充填状態を判定するために使用され得る。奥行き情報は、パレット3400A/3400B上に存在する既存のオブジェクト3540/3580/3590を識別するために、及び/又は既存のオブジェクト3540/3580/3590がパレット3400A/3400B上に空間的にどのように配置されるかを推定するために使用され得る。いくつかの実施形態では、空間構造情報は、既存のオブジェクト3540/3580/3590のオブジェクトの一つ又は複数の表面の位置を記述する点群を含むか、又はそれを生成するために使用され得る。空間構造情報は、可能な画像分析(例えば、2D画像情報2600を使用する)の単なる一つの形式であり、当業者に知られている他の形式を、本明細書に記載の方法に従って使用することができる。空間構造情報は、パレット上に配置されると、オブジェクト3500の損傷又は変位を引き起こす可能性のある不適切な配置を防止するために、オブジェクト3500のパレット3400A/3400Bへの配置を調整するために使用され得る。
実施形態では、操作5005は、パレット充填状態をコンピューティングシステム1100は、取得された画像情報を分析して、パレット3400A/3400B上にオブジェクトが存在しないと判定した空に戻し得る。実施形態では、操作5005は、パレット充填状態をコンピューティングシステム1100が、取得された画像情報を分析して、少なくとも一つの既存のオブジェクト3540/3580/3590がパレット3400A/3400B上に存在すると決定した、使用中に戻し得る。コンピューティングシステム1100は、パレット3400A/3400B上で識別された少なくとも一つの既存のオブジェクト3540/3580/3590の姿勢をさらに決定し得る。実施形態では、操作5005は、パレット充填状態を、コンピューティングシステム1100が、得られた画像情報を分析し、パレット3400A/3400Bの最終的な総重量(例えば、業界の重量制限に適合)、パレット3400A/3400Bに空きスペース/余裕がないことのために、又は既存のオブジェクト3540/3580/3590、後続のオブジェクト、パレット、又は全ての組み合わせに損傷を与えるリスクなしに、後続のオブジェクト3500を実際にはパレット3400A/3400B上に配置することができないよう、パレット3400A/3400B上に十分な既存のオブジェクト3540/3580/3590が存在することを決定した、満杯に戻し得る。
実施形態では、パレット検出操作は、パレット充填状態が出力を占有されていると戻すという判定に応答して、コンピューティングシステム1100に、いくつかの後続するステップのうちの少なくとも一つを実行させ得る。これは、更新されたローディング環境画像情報を生成し、更新されたローディング環境画像情報を(例えば、操作4009に従って)コンピューティングシステム1100に送信するか、又は他の方法で提供するように、カメラ1200を制御することを含み得る。次に、オブジェクト検出及び/又は障害物検出手順が、既存のパレット3400A/3400B上で実行されて、オブジェクト/障害物検出手順データを生成し得る。生成されると、オブジェクト/障害物検出手順データは、コンピューティングシステム1100に伝達されてもよく、その後実行されるオブジェクト移動コマンド(以下でさらに詳細に説明する)の生成又は実行に使用され得る。コンピューティングシステム1100は、オブジェクトの層を生成する方法で、パレット3400A/3400B上に後続する品目を配置するコマンドを出力し得る。オブジェクト3500の第一の層がパレット3400A/3400B上に形成されると、コンピューティングシステム1100は、第一の層の点群を使用して、第一の層を形成する各オブジェクト3500の高さを決定し得る。例えば、オブジェクト3580の高さは、オブジェクト3580に隣接して配置されるオブジェクト3590の高さ(図3Dを参照)と同等でなくてもよい。次に、コンピューティングシステム1100は、パレット3400A/3400B上に作成されたオブジェクトの第一の層のトップに形成されるオブジェクト3500の次の層を形成するために使用される将来の計画及び配置動作のために、この情報を考慮に入れ得る。
パレット充填状態が出力をパレット検出操作中に占有されたと戻す実施形態では、コンピューティングシステム1100はさらに、後続するステップを実行し得る。これらは、カメラ1200を制御して、更新されたローディング環境画像情報を生成することを含み得る。それは、既存のパレット3400A/3400Bの位置偏差を決定することをさらに含み、位置偏差データが既存のオブジェクト3540/3580/3590の姿勢、又はパレット3400A/3400B自体の姿勢の変化に向けられる。位置偏差データは、現在存在するパレット3400A/3400Bが、以前、ローディング環境3100内(又はより具体的には、ローディングエリア3110/3130内)に存在していたが、さまざまな理由のうちの一つのために、ローディング環境の外側で交換されたシナリオで生成され得る。そのパレット3400A/3400Bは、その後、ローディング環境に戻されたが、同じパレットがローディング環境に以前あったときの位置又は姿勢に厳密に合致しなかった位置、又は姿勢であった。例えば、パレット3400A/3400Bをローディング環境3100に運んだAGV(又は他の搬送)は、パレットが回転の角度を有する(例えば、約90°/180°/270°回転)結果をもたらす方法で、そうすることができる。また、AGV(又は他の搬送)は、パレット3400A/3400Bを、以前ローディング環境3100内にあった正確な横方向座標(例えば、X、Y座標)に戻すことに失敗し得る。別の例として、AGV(又は他の搬送)を介したパレットの急激な移動により、パレット上のオブジェクトが元の位置から移動した可能性がある。従って、位置偏差データは、古いローディング環境画像情報を更新されたローディング環境画像情報と比較することによって、及びローディング環境画像情報と更新されたローディング環境画像情報との間で提供される既存のパレット(及び実施形態では、既存のパレットの上に配置されるオブジェクト(複数可))の移動又は並進移動度を決定することによって生成され得る。従って、コンピューティングシステム1100は、次のオブジェクトを配置するときに必要な調整を行うために、この位置偏差データを、後で実行されるオブジェクト移動コマンド(以下でさらに詳細に説明する)に組み込む。そうすることで、コンピューティングシステム1100は、移動サイクルB1の記述で前述したように、既存のパレット3400A/3400B上に配置される複数のオブジェクトが、適切な方法で配置及び配向されることを保証する。この位置偏差データはまた、上述のように、パレット上のオブジェクトの層を適切に形成するように組み込まれる。
さらなる実施形態では、操作5005は、パレット充填状態値を空にし得る。コンピューティングシステム1100は、次に、空の既存のパレット3400A/3400Bにフィットし得る、オーバーフローオブジェクト3550/3560/3570及び/又は進入オブジェクト3510/3520/3530の数を決定し得る。出力されるオブジェクト移動コマンド(以下でさらに詳細に説明する)は、例えば、既存のパレット3400A/3400B上に既存のオブジェクト3540/3580/3590(例えば、緩衝ゾーン3150内に存在するオブジェクト)、及び/又は進入オブジェクト3510/3520/3530(例えば、オブジェクトキュー3160を介して提供されるオブジェクト)で第一の層を形成することによって、それに応じて、進入オブジェクト3510/3520/3530を既存のパレット3400A/3400Bに配置し得る。
操作5003は、コンピューティングシステム1100が、既存のパレットに関連付けられるパレット識別子を識別する(既存のパレットが、操作5004の出力からローディング環境内で識別される場合)、操作5006をさらに含んで及び開始し得る。コンピューティングシステム1100は、上述のように収集された画像情報を介して、パレット識別子を受信、取得、又はその他の方法で決定し得る。任意選択的又は追加的に、パレット識別子は、コンピューティングシステム1100に事前供給又は事前ロードされ得る。実施形態では、パレット識別子は、別個のプロセッサー/システムを介してコンピューティングシステム1100に提供され得る。別の実施形態では、既存のパレット3400A/3400B上に存在するオブジェクト3500のオブジェクトタイプ識別子3700を使用して、パレット識別子を決定し得る。例えば、既存のオブジェクト3580/3590のオブジェクトタイプ識別子3700は、コンピューティングシステム1100が、類似の又は合致するオブジェクトタイプ識別子3700を有する進入オブジェクト3510/3520/3530が、既存のパレット3400Aに対応すると決定することを可能にし得る。実施形態では、パレット識別子を識別することは、例えば、オブジェクトキュー3160で待機している進入オブジェクト3510/3520/3530に従って、空のパレットに新しいパレット識別子を割り当てることを含み得る。実施形態では、コンピューティングシステム1100は、既存のパレット3400A/3400Bの不足(例えば、パレット識別子は、移動する多数の進入、オーバーフロー、及び/又は既存のオブジェクト3510~3590に関連付けられるオブジェクトタイプ識別子3710/3720/3730に対応しない)のために、パレット交換コマンドが必要であることを発見し得る。従って、コンピューティングシステム1100は、パレット交換コマンドが要求されるという決定に応答して、既存のパレット3400A/3400Bを新しいパレット3400Cと交換するように構成されるパレット交換コマンドを送信し得る(図7Aの軌道B2a/B2bを参照されたい)。実施形態では、既存のパレット3400A/3400B及び新しいパレット3400Cは、例えば、自動機械(フォークリフト又は他の車両)、外部ロボット(図示せず)、人為的相互作用、機械システム(図示せず)などによって、外部力を介して交換され得る。さらなる実施形態では、既存のパレット3400A/3400B及び新しいパレット3400Cは、ロボット3300を介して交換され得る(すなわち、ロボット3300は、そのアーム3320及びエンドエフェクター装置3330を使用して交換を容易にする)。
方法5000は、パレット交換操作5007をさらに含み得る。パレット交換操作5007では、コンピューティングシステム1100は、パレット交換コマンドの必要性を決定し、実行し得る。コンピューティングシステム1100は、既存のパレット3400A/3400Bのパレット充填状態が満杯を示す値をもどすことにより、パレット交換コマンドが必要かどうかを判定し得る。実施形態では、パレット交換コマンドは、既存のオブジェクト3540/3580/3590に関連付けられる既存のオブジェクトタイプ識別子3700がパレット識別子と対応しないという判定に応答して、必要に応じてさらに決定され得る。別の実施形態では、パレット交換コマンドは、オーバーフローオブジェクト3550/3560/3570に関連付けられるオブジェクトタイプ識別子3700がパレット識別子と対応しないという判定に応答して、必要に応じてさらに決定され得る。実施形態では、パレット交換コマンドは、進入オブジェクト3510/3520/3530に関連付けられる進入オブジェクトタイプ識別子3710/3720/3730がパレット識別子と対応しないという判定に応答して、必要に応じてさらに決定され得る。さらにさらなる実施形態では、パレット交換コマンドは、緩衝ゾーンが不十分なスペースを有する(すなわち、より多くのオブジェクトを収容することができない)ことにより必要に応じて決定されてもよく、標的オブジェクトは、既存のパレット3400A/3400Bに対応しないオブジェクトタイプ識別子3700を有する。実施形態では、パレット交換コマンドが必要とみなされる場合、コンピューティングシステム1100によって、パレット交換コマンドが実行され、パレット交換が行われ得る。
方法5000は、コンピューティングシステム1100が、複数の既存のオブジェクト3540/3580/3590タイプの識別子、複数の進入オブジェクト3510/3520/3530タイプの識別子、複数のオーバーフローオブジェクト3550/3560/3570タイプの識別子、及びパレット識別子を示すパレット識別子の間の比較に基づき、実行されるオブジェクト移動コマンドを決定する、操作5008をさらに含み得る。例えば、オブジェクト移動コマンドは、方法4000の一つ又は複数の動作に従って行われてもよい。実施形態では、オブジェクト移動コマンドは、ロボットアーム3320に、既存のオブジェクトに関連付けられるオーバーフローオブジェクト3550/3560/3570のオブジェクトタイプ識別子3700が、既存のパレットのオブジェクトタイプに対応するという判定に応答して、緩衝ゾーン3150内のオーバーフローオブジェクト3550/3560/3570を取得させ、オーバーフローオブジェクト3550/3560/3570を既存のパレット3400A/3400B上に配置させるように実行され得る。代替的な実施形態では、オブジェクト移動コマンドは、進入オブジェクト3510/3520/3530に関連付けられるオブジェクトタイプ識別子3700がパレット識別子に対応するという判定に応答して、ロボットアーム3320に、進入オブジェクト3510/3520/3530を取得させ、進入オブジェクト3510/3520/3530を、既存のパレット3400A/3400B上に配置させるように実行される。さらにさらなる実施形態では、オブジェクト移動コマンドは、進入オブジェクト3510/3520/3530に関連付けられるオブジェクトタイプ識別子3700がパレット識別子に対応しないという判定に応答して、進入オブジェクト3510/3520/3530を取得し、進入オブジェクトを緩衝ゾーン3150内に配置するために実行される。
関連分野の当業者にとって、本明細書に記載する方法及び用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、例示的な例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示するさまざまな実施形態は、記載及び添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為又は事象は、異なるシーケンスで行われてもよく、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為又は事象が、方法又はプロセスを実施するのに必要でなくてもよい)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、又はユニットにより行われていると記載しているものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって行われてもよいことは理解されるべきである。従って、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、さまざまな変更及び修正を当業者が及ぼし得る。
さらなる実施形態は、以下の実施形態を含む。
実施形態1は、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、かつ、ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムと、少なくとも一つの処理回路と、を備え、少なくとも一つの処理回路は、ロボットがローディング環境にあり、ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、オブジェクトをオブジェクトのキューからローディング環境に移送するために、ローディング環境に提供されるオブジェクトのキューを検出することと、複数のオブジェクトタイプ識別子を受信することであって、複数のオブジェクトタイプ識別子の各々が、オブジェクトのキューのそれぞれのオブジェクトと関連付けられることと、カメラから受信したオブジェクトキュー画像情報に基づき、オブジェクトのキュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、ローディング環境内の標的オブジェクトの計画配置位置を示す標的オブジェクトに対する標的オブジェクト配置を決定することと、オブジェクトキュー画像情報から生成される標的オブジェクト姿勢及び標的オブジェクト計画配置位置に従って、標的オブジェクトの取得及び配置のための動作計画操作を行うことと、動作計画操作に従って、キューから標的オブジェクトを取得するための取得コマンドを実行することと、動作計画操作に従って、標的オブジェクトをローディング環境内に配置するための配置コマンドを実行することと、ローディング環境での標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成することと、を実行するように構成される、コンピューティングシステムである。
実施形態2は、更新されたローディング環境画像情報を処理して、キュー内の後続するオブジェクトをローディング環境内へ取得及び配置するための新しい動作計画操作を実行することをさらに含む、実施形態1のシステムである。
実施形態3は、実施形態1又は2のシステムであり、少なくとも一つの処理回路は、標的オブジェクトが、対応オブジェクトタイプ識別子を有する対応オブジェクトであるか、又は非対応オブジェクトタイプ識別子を有する非対応オブジェクトであるかを判定するようにさらに構成され、前記計画配置位置は、標的オブジェクトが対応オブジェクトである場合にはローディングエリアとして決定される一方、標的オブジェクトが非対応オブジェクトである場合には緩衝ゾーンとして決定される。
実施形態4は、実施形態3のシステムであり、少なくとも一つの処理回路は、更新されたローディング環境画像情報を処理して、ローディングエリアに提供されるパレットの姿勢を決定することによって、パレット検出操作を実行すること、及びパレット検出操作に従って、対応オブジェクトをパレット上にローディングエリアに配置するようにロボットアームを制御すること、を行うようにさらに構成される。
実施形態5は、実施形態4のシステムであり、少なくとも一つの処理回路は、対応オブジェクトをパレット上に配置した後に、対応オブジェクト配置姿勢を記録するようにさらに構成される。
実施形態6は、実施形態3~5のいずれかのシステムであり、少なくとも一つの処理回路は、ロボットアームを制御して、非対応オブジェクトを緩衝ゾーン内に配置するようにさらに構成される。
実施形態7は、実施形態6のシステムであり、非対応オブジェクトを緩衝ゾーンに配置した後、非対応オブジェクト配置姿勢を記録するステップをさらに含む。
実施形態8は、実施形態1~7のいずれかのシステムであり、少なくとも一つの処理回路は、標的オブジェクトに関連付けられる印を識別すること、識別された印に基づき、オブジェクトタイプ識別子を標的オブジェクトに割り当てること、及びオブジェクトタイプ識別子を制御システムに伝達すること、を行うようにさらに構成される。
実施形態9は、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、かつ、ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムと、少なくとも一つの処理回路と、を備え、少なくとも一つの処理回路は、ロボットが、複数のローディングエリア、緩衝ゾーン、既存のオブジェクト、及び進入オブジェクトのキューを含むローディング環境にあるときに、カメラから受信したローディング環境画像情報を処理すること、処理済みローディング環境画像情報からローディング環境状態を識別することであって、ローディング環境状態がそれぞれ既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むこと、パレット検出操作を実行し、ローディング環境画像情報から、ローディング環境内の既存のパレットを検出し、既存のパレットのパレット充填状態を決定し、既存のパレットに関連付けられるパレット識別子を識別すること、及び複数の既存のオブジェクトタイプ識別子、複数の進入オブジェクトタイプ識別子、及びパレット識別子の比較に基づき実行される、オブジェクト移動コマンドを決定すること、を実行するように構成される、コンピューティングシステムである。
実施形態10は、実施形態9のシステムであり、オブジェクト移動コマンドは、既存のオブジェクトに関連付けられる既存のオブジェクトタイプ識別子がパレット識別子に対応するという判定に応答して、ロボットアームに、既存のオブジェクトを取得させると共に、既存のオブジェクトを既存のパレット上に配置させるように実行される。
実施形態11は、実施形態9又は10のシステムであり、オブジェクト移動コマンドは、進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子がパレット識別子に対応するという判定に応答して、ロボットアームに、進入オブジェクトを取得させると共に、進入オブジェクトを既存のパレット上に配置させるように実行される。
実施形態12は、実施形態9~11のいずれかのシステムであり、オブジェクト移動コマンドは、進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子がパレット識別子と対応しないという判定に応答して、進入オブジェクトを取得すると共に、進入オブジェクトを緩衝ゾーン内に配置するように実行される。
実施形態13は、実施形態9~12のいずれかのシステムであり、パレット検出操作は、パレット充填状態が占有されるという判定に応答して、カメラを制御して、更新されたローディング環境画像情報を生成すること、既存のパレット上でオブジェクト検出手順及び/又は障害物検出手順を実行して、オブジェクト/障害物検出手順データを生成すること、オブジェクト/障害物検出手順データを制御システムに伝達すること、及びオブジェクト/障害物検出手順データを、実行されるオブジェクト移動コマンドに組み込むこと、をさらに含む。
実施形態14は、実施形態9~13のいずれかのシステムであり、パレット検出操作は、パレット充填状態が占有されるという判定に応答して、カメラを制御して、更新されたローディング環境画像情報を生成すること、既存のパレットの位置偏差を決定すること、及び実行されるオブジェクト移動コマンドとともに位置偏差データを組み込むこと、をさらに含む。
実施形態15は、実施形態10~14のいずれかのシステムであり、パレット検出操作は、パレット充填状態が空であるという判定に応答して、既存のオブジェクト及び/又は既存のパレットにフィットし得る進入オブジェクトの数を決定すること、及びオブジェクト移動コマンドを出力して、既存のパレット上の既存のオブジェクト及び/又は進入オブジェクトで第一の層を形成することをさらに含む。
実施形態16は、実施形態9~15のいずれかにのシステムであり、少なくとも一つの処理回路は、パレット交換コマンドが必要かどうかを決定すること、及びパレット交換コマンドが必要かどうかの判定に応答して、既存のパレットを新しいパレットと交換させるように構成されるパレット交換コマンドを送信すること、を行うようにさらに構成される。
実施形態17は、実施形態16のシステムであり、パレット交換コマンドは、既存のパレットのパレット充填状態が満杯のとき要求されるように決定される。
実施形態18は、実施形態16又は17のシステムであり、パレット交換コマンドは、既存のオブジェクトに関連付けられる既存のオブジェクトタイプ識別子がパレット識別子に対応していないという決定に応答して、要求されると決定される。
実施形態19は、実施形態16~18のいずれかのシステムであり、パレット交換コマンドは、進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子がパレット識別子に対応していないという決定に応答して、要求されると決定される。
実施形態20は、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有するロボットであって、当該ロボットがローディング環境にあり、ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、ロボットアームに取り付けられたカメラを有するロボットと通信するように構成される制御システムによって実行されるように構成されるロボット制御方法であって、ローディング環境に提供されるオブジェクトのキューを検出することと、複数のオブジェクトタイプ識別子を受信することであって、複数のオブジェクトタイプ識別子の各々が、オブジェクトのそれぞれのオブジェクトとキューから関連付けられていることと、カメラから受信したオブジェクトキュー画像情報に基づき、キュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、ローディング環境内の標的オブジェクトの計画配置位置を示す標的オブジェクトに対する標的オブジェクト配置を決定することと、オブジェクトキュー画像情報から生成される標的オブジェクト姿勢及び計画配置位置に従って、標的オブジェクトの取得及び配置のための動作計画操作を行うことと、動作計画操作に従って、キューから標的オブジェクトを取得するための取得コマンドを実行することと、動作計画操作に従って、標的オブジェクトをローディング環境内に配置するための配置コマンドを実行することと、ローディング環境での標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成することとを含む。
実施形態21は、エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有するロボットであって、当該ロボットがローディング環境にあり、ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、ロボットアームに取り付けられたカメラを有するロボットと通信するように構成される制御システムによって実行されるように構成されるロボット制御方法であって、カメラから受信したローディング環境画像情報を処理することと、処理済みローディング環境画像情報からローディング環境状態を識別することであって、ローディング環境状態が、それぞれの既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むことと、パレット検出操作を実行し、ローディング環境画像情報から、ローディング環境内の既存のパレットを検出し、既存のパレットのパレット充填状態を決定し、既存のパレットに関連付けられるパレット識別子を識別することと、複数の既存のオブジェクトタイプ識別子、複数の進入オブジェクトタイプ識別子、及びパレット識別子の比較に基づき実行される、オブジェクト移動コマンドを決定することとを含む。
Claims (20)
- コンピューティングシステムであって、
エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、かつ、前記ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムと、
少なくとも一つの処理回路と、を備え、
前記少なくとも一つの処理回路は、前記ロボットがローディング環境にあり、前記ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、前記オブジェクトを前記オブジェクトのキューから前記ローディング環境に移送するために、
前記ローディング環境に提供される前記オブジェクトのキューを検出することと、
複数のオブジェクトタイプ識別子を受信することであって、前記複数のオブジェクトタイプ識別子の各々が、前記オブジェクトのキューのそれぞれのオブジェクトと関連付けられることと、
前記カメラから受信したオブジェクトキュー画像情報に基づき、前記オブジェクトのキュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、
前記ローディング環境内の前記標的オブジェクトの計画配置位置を示す前記標的オブジェクトに対する標的オブジェクト配置を決定することと、
前記オブジェクトキュー画像情報から生成される前記標的オブジェクト姿勢及び前記計画配置位置に従って、前記標的オブジェクトの取得及び配置のための動作計画操作を行うことと、
前記動作計画操作に従って、前記キューから前記標的オブジェクトを取得するための取得コマンドを実行することと、
前記動作計画操作に従って、前記標的オブジェクトを前記ローディング環境内に配置するための配置コマンドを実行することと、
前記ローディング環境での標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成することと、
を実行するように構成される、コンピューティングシステム。 - 前記更新されたローディング環境画像情報を処理して、前記キュー内の後続のオブジェクトを前記ローディング環境内へ取得及び配置するための新しい動作計画操作を実行することをさらに含む、請求項1に記載のコンピューティングシステム。
- 前記少なくとも一つの処理回路は、
前記標的オブジェクトが、対応オブジェクトタイプ識別子を有する対応オブジェクトであるか、又は非対応オブジェクトタイプ識別子を有する非対応オブジェクトであるかを決定するようにさらに構成され、
前記計画配置位置は、前記標的オブジェクトが対応オブジェクトである場合にはローディングエリアとして決定され、前記標的オブジェクトが非対応オブジェクトである場合には、緩衝ゾーンとして決定される、請求項1に記載のコンピューティングシステム。 - 前記少なくとも一つの処理回路は、
前記更新されたローディング環境画像情報を処理して、パレット検出操作を実行して、前記ローディングエリア内に設けられたパレットの姿勢を決定すること、及び
前記ロボットアームを制御して、前記パレット検出操作に従って、前記パレット上の前記対応オブジェクトを前記ローディングエリアに配置すること、
を行うようにさらに構成される、請求項3に記載のコンピューティングシステム。 - 前記少なくとも一つの処理回路は、前記対応オブジェクトを前記パレット上に配置した後に、対応オブジェクト配置姿勢を記録するようにさらに構成される、請求項4に記載のコンピューティングシステム。
- 前記少なくとも一つの処理回路は、
前記ロボットアームを制御して、前記非対応オブジェクトを前記緩衝ゾーン内に配置するようにさらに構成される、請求項3に記載のコンピューティングシステム。 - 前記非対応オブジェクトを前記緩衝ゾーンに配置した後、非対応オブジェクト配置姿勢を記録することをさらに含む、請求項6に記載のコンピューティングシステム。
- 前記少なくとも一つの処理回路は、
前記標的オブジェクトに関連付けられる印を識別すること、
前記識別された印に基づき、前記オブジェクトタイプ識別子を前記標的オブジェクトに割り当てること、及び
前記オブジェクトタイプ識別子を前記制御システムに通信すること
を行うようにさらに構成される、請求項1に記載のコンピューティングシステム。 - コンピューティングシステムであって、
エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有し、前記ロボットアームに取り付けられるカメラを有するロボットと通信するように構成される制御システムと、
少なくとも一つの処理回路と、を備え、
前記少なくとも一つの処理回路は、前記ロボットが、一つ又は複数のローディングエリア、緩衝ゾーン、既存のオブジェクト、及び進入オブジェクトのキューを含むローディング環境にあるときに、
前記カメラから受信したローディング環境画像情報を処理することと、
前記処理済みローディング環境画像情報からローディング環境状態を識別することであって、前記ローディング環境状態がそれぞれ前記既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むことと、
パレット検出操作を実行し、
前記ローディング環境画像情報から、前記ローディング環境内の既存のパレットを検出し、
前記既存のパレットのパレット充填状態を決定し、
前記既存のパレットに関連付けられるパレット識別子を識別することと、
前記複数の既存のオブジェクトタイプ識別子、前記複数の進入オブジェクトタイプ識別子、及び前記パレット識別子の比較に基づき実行される、オブジェクト移動コマンドを決定することと、
を実行するように構成される、コンピューティングシステム。 - 前記オブジェクト移動コマンドは、既存のオブジェクト又はオーバーフローオブジェクトに関連付けられる既存のオブジェクトタイプ識別子が前記パレット識別子に対応するという判定に応答して、前記ロボットアームに、前記既存のオブジェクト又は前記オーバーフローオブジェクトを取得させると共に、前記既存のオブジェクト又は前記オーバーフローオブジェクトを前記既存のパレット上に配置させるように実行される、請求項9に記載のコンピューティングシステム。
- 前記オブジェクト移動コマンドが、進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子が前記パレット識別子に対応するという判定に応答して、前記ロボットアームに、前記進入オブジェクトを取得させると共に、前記進入オブジェクトを前記既存のパレット上に配置させるように実行される、請求項9に記載のコンピューティングシステム。
- 前記オブジェクト移動コマンドは、進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子が前記パレット識別子に対応しないという判定に応答して、前記進入オブジェクトを取得すると共に、前記進入オブジェクトを前記緩衝ゾーン内に配置するように実行される、請求項9に記載のコンピューティングシステム。
- 前記パレット検出操作は、前記パレット充填状態が占有されるという判定に応答して、
前記カメラを制御して、更新されたローディング環境画像情報を生成することと、
前記既存のパレット上でオブジェクト検出手順及び/又は障害物検出手順を実行して、オブジェクト/障害物検出手順データを生成することと、
オブジェクト/障害物検出手順データを前記制御システムに通信することと、
前記オブジェクト/障害物検出手順データを、実行される前記オブジェクト移動コマンドに組み込むことと、
をさらに含む、請求項9に記載のコンピューティングシステム。 - 前記パレット検出操作は、前記パレット充填状態が占有されるという判定に応答して、
前記カメラを制御して、更新されたローディング環境画像情報を生成することと、
前記既存のパレットの位置偏差を決定することと、
前記位置偏差を、実行される前記オブジェクト移動コマンドに組み込むことと、
をさらに含む、請求項9に記載のコンピューティングシステム。 - 前記パレット検出操作は、前記パレット充填状態が空であるという判定に応答して、
前記既存のパレットにフィットすることができる、オーバーフローオブジェクト及び/又は前記進入オブジェクトの数を決定することと、
前記オブジェクト移動コマンドを出力して、前記既存のパレット上の前記オーバーフローオブジェクト及び/又は前記進入オブジェクトで第一の層を形成することと、
をさらに含む、請求項10に記載のコンピューティングシステム。 - 前記少なくとも一つの処理回路は、
パレット交換コマンドが必要かどうかを決定すること、及び
パレット交換コマンドが要求されるという決定に応答して、前記既存のパレットを新しいパレットと交換させるように構成されるパレット交換コマンドを送信すること、
を行うようにさらに構成される、請求項9に記載のコンピューティングシステム。 - 前記パレット交換コマンドは、前記既存のパレットの前記パレット充填状態が満杯であるとき、要求されると決定される、請求項16に記載のコンピューティングシステム。
- 前記パレット交換コマンドは、既存のオブジェクトに関連付けられる既存のオブジェクトタイプ識別子が前記パレット識別子に対応しない、又は進入オブジェクトに関連付けられる進入オブジェクトタイプ識別子が前記パレット識別子に対応しないという決定に応答して、要求されると決定される、請求項16に記載のコンピューティングシステム。
- エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有するロボットであって、当該ロボットがローディング環境にあり、前記ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、前記ロボットアームに取り付けられたカメラを有するロボットと通信するように構成される制御システムによって実行されるように構成されるロボット制御方法であって、
前記ローディング環境に提供される前記オブジェクトのキューを検出することと、
複数のオブジェクトタイプ識別子を受信することであって、前記複数のオブジェクトタイプ識別子の各々が、キューからの前記オブジェクトのうちのそれぞれのオブジェクトと関連付けられることと、
前記カメラから受信したオブジェクトキュー画像情報に基づき、前記キュー内の標的オブジェクトの標的オブジェクト姿勢を決定することと、
前記ローディング環境内の前記標的オブジェクトの計画配置位置を示す前記標的オブジェクトに対する標的オブジェクト配置を決定することと、
前記オブジェクトキュー画像情報から生成される前記標的オブジェクト姿勢及び前記計画配置位置に従って、前記標的オブジェクトの取得及び配置のための動作計画操作を行うことと、
前記動作計画操作に従って、前記キューから前記標的オブジェクトを取得するための取得コマンドを実行することと、
前記動作計画操作に従って、前記標的オブジェクトを前記ローディング環境内に配置するための配置コマンドを実行することと、
前記ローディング環境での標的オブジェクト配置姿勢を含む、更新されたローディング環境画像情報を生成することと、
を含む、方法。 - エンドエフェクター装置を含む、又はそれに取り付けられるロボットアームを有するロボットであって、当該ロボットがローディング環境にあり、前記ローディング環境内に配置するためのオブジェクトのキューが提供されるときに、前記ロボットアームに取り付けられたカメラを有するロボットと通信するように構成される制御システムによって実行されるように構成されるロボット制御方法であって、
前記カメラから受信したローディング環境画像情報を処理することと、
前記処理済みローディング環境画像情報からローディング環境状態を識別することであって、前記ローディング環境状態が、それぞれの既存のオブジェクトに関連付けられる複数の既存のオブジェクトタイプ識別子、及びそれぞれの進入オブジェクトに関連付けられる複数の進入オブジェクトタイプ識別子を含むことと、
パレット検出操作を実行し、
前記ローディング環境画像情報から、前記ローディング環境内の既存のパレットを検出し、
前記既存のパレットのパレット充填状態を決定し、
前記既存のパレットに関連付けられるパレット識別子を識別することと、
前記複数の既存のオブジェクトタイプ識別子、前記複数の進入オブジェクトタイプ識別子、及び前記パレット識別子の比較に基づき実行される、オブジェクト移動コマンドを決定することと、
を含む、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163231326P | 2021-08-10 | 2021-08-10 | |
US63/231,326 | 2021-08-10 | ||
JP2022127481A JP7241374B2 (ja) | 2021-08-10 | 2022-08-09 | ロボットによるオブジェクト配置のシステム及び方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022127481A Division JP7241374B2 (ja) | 2021-08-10 | 2022-08-09 | ロボットによるオブジェクト配置のシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023059988A true JP2023059988A (ja) | 2023-04-27 |
Family
ID=85176925
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022127481A Active JP7241374B2 (ja) | 2021-08-10 | 2022-08-09 | ロボットによるオブジェクト配置のシステム及び方法 |
JP2023028762A Pending JP2023059988A (ja) | 2021-08-10 | 2023-02-27 | ロボットによるオブジェクト配置のシステム及び方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022127481A Active JP7241374B2 (ja) | 2021-08-10 | 2022-08-09 | ロボットによるオブジェクト配置のシステム及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230052515A1 (ja) |
JP (2) | JP7241374B2 (ja) |
CN (2) | CN115703238A (ja) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5366031B2 (ja) | 2011-10-17 | 2013-12-11 | 株式会社安川電機 | ロボット仕分けシステム、ロボット装置、及び仕分け済み物品の製造方法 |
JP6738112B2 (ja) | 2019-01-14 | 2020-08-12 | 株式会社Mujin | ロボットシステムの制御装置及び制御方法 |
US10696494B1 (en) | 2019-05-31 | 2020-06-30 | Mujin, Inc. | Robotic system for processing packages arriving out of sequence |
US10647528B1 (en) | 2019-05-31 | 2020-05-12 | Mujin, Inc. | Robotic system for palletizing packages using real-time placement simulation |
US10679379B1 (en) | 2019-05-31 | 2020-06-09 | Mujin, Inc. | Robotic system with dynamic packing mechanism |
US10800608B1 (en) | 2019-06-03 | 2020-10-13 | Amazon Technologies, Inc. | Optimized shipment transfer |
US20220355474A1 (en) | 2021-05-04 | 2022-11-10 | Mujin, Inc. | Method and computing system for performing robot motion planning and repository detection |
-
2022
- 2022-08-09 US US17/884,209 patent/US20230052515A1/en active Pending
- 2022-08-09 JP JP2022127481A patent/JP7241374B2/ja active Active
- 2022-08-10 CN CN202210955971.6A patent/CN115703238A/zh active Pending
- 2022-08-10 CN CN202310218571.1A patent/CN116160450A/zh active Pending
-
2023
- 2023-02-27 JP JP2023028762A patent/JP2023059988A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116160450A (zh) | 2023-05-26 |
US20230052515A1 (en) | 2023-02-16 |
JP7241374B2 (ja) | 2023-03-17 |
CN115703238A (zh) | 2023-02-17 |
JP2023027018A (ja) | 2023-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6738112B2 (ja) | ロボットシステムの制御装置及び制御方法 | |
US12002007B2 (en) | Robotic system with automated package scan and registration mechanism and methods of operating the same | |
US11905116B2 (en) | Controller and control method for robot system | |
US10518410B2 (en) | Object pickup strategies for a robotic device | |
KR102625214B1 (ko) | 상자들의 검출 | |
US11077554B2 (en) | Controller and control method for robotic system | |
JP2024032981A (ja) | インテリジェント倉庫保管システム及びインテリジェント倉庫保管方法 | |
CN112008713A (zh) | 机器人系统的控制装置以及控制方法 | |
Pavlichenko et al. | Kittingbot: A mobile manipulation robot for collaborative kitting in automotive logistics | |
JP2023024933A (ja) | 画像ベースのサイジングメカニズムを備えたロボットシステム及びロボットシステムを操作するための方法 | |
EP4323295A1 (en) | Robotic multi-surface gripper assemblies and methods for operating the same | |
US20230286140A1 (en) | Systems and methods for robotic system with object handling | |
JP7241374B2 (ja) | ロボットによるオブジェクト配置のシステム及び方法 | |
JP7272568B2 (ja) | ロボット運動計画およびリポジトリ検出を実行するための方法および計算システム | |
CN111421546B (zh) | 机器人系统的控制装置以及控制方法 | |
US20230182315A1 (en) | Systems and methods for object detection and pick order determination | |
WO2024053150A1 (ja) | ピッキングシステム | |
CN113409394A (zh) | 一种智能叉取方法及系统 |