JP2024525277A - 将来のシーケンスの限られた知識でパレット上に箱をプレースするための木検索ベースアプローチを用いるためのワークフロー - Google Patents
将来のシーケンスの限られた知識でパレット上に箱をプレースするための木検索ベースアプローチを用いるためのワークフロー Download PDFInfo
- Publication number
- JP2024525277A JP2024525277A JP2023571270A JP2023571270A JP2024525277A JP 2024525277 A JP2024525277 A JP 2024525277A JP 2023571270 A JP2023571270 A JP 2023571270A JP 2023571270 A JP2023571270 A JP 2023571270A JP 2024525277 A JP2024525277 A JP 2024525277A
- Authority
- JP
- Japan
- Prior art keywords
- items
- item
- pallet
- stack
- placement
- 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
- 238000013459 approach Methods 0.000 title description 2
- 238000004891 communication Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 99
- 238000004088 simulation Methods 0.000 claims description 29
- 238000013138 pruning Methods 0.000 claims description 27
- 238000012856 packing Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012876 topography Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 90
- 125000006850 spacer group Chemical group 0.000 description 86
- 230000004044 response Effects 0.000 description 76
- 230000000875 corresponding effect Effects 0.000 description 74
- 239000000463 material Substances 0.000 description 55
- 244000141353 Prunus domestica Species 0.000 description 31
- 230000004438 eyesight Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 21
- 238000010801 machine learning Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 15
- 239000012636 effector Substances 0.000 description 15
- 230000001276 controlling effect Effects 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 8
- 230000002411 adverse Effects 0.000 description 7
- 230000005484 gravity Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000002349 favourable effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 239000006260 foam Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000000053 physical method Methods 0.000 description 2
- 239000004033 plastic Substances 0.000 description 2
- 229920003023 plastic Polymers 0.000 description 2
- 239000002023 wood Substances 0.000 description 2
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 239000012705 liquid precursor Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 229920002635 polyurethane Polymers 0.000 description 1
- 239000004814 polyurethane Substances 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
- 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/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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- 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
-
- 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
- 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/40067—Stack irregular packages
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Stacking Of Articles And Auxiliary Devices (AREA)
- Manipulator (AREA)
- De-Stacking Of Articles (AREA)
Abstract
【解決手段】ロボットシステムが開示されている。システムは、作業空間に配備されている1または複数のセンサから、作業空間の現在の状態を示すセンサデータを受信する通信インターフェースを備える。システムは、センサデータを用いて、パレットまたはその他の容器と、容器の上または中に積み重ねられたゼロ以上のアイテムのセットとの一方または両方の状態を推定し、推定状態を用いて、パレットまたはその他の容器の上または中にアイテムの次のセットをプレースし、もしくは、パレットまたはその他の容器からアイテムの次のセットを取り出すよう、ロボットアームを制御するための計画を生成または更新する1または複数のプロセッサを備えており、その計画は、アイテムのプレースまたは取り出しの順序付けられたシーケンスを含む。計画は、少なくとも部分的には、可能な順序付けられたシーケンスのサブセットが探索される有界木探索を実行することによって生成または更新される。【選択図】図6
Description
本出願は、2021年6月16日出願の「WORKFLOW FOR USING TREE SEARCH BASED APPROACH FOR PLACING BOXES ON PALLET WITH LIMITED KNOWLEDGE OF FUTURE SEQUENCE」と題する米国仮特許出願第63/211,366号に基づく優先権主張し、その仮特許出願は、すべての目的のために参照により本明細書に組み込まれる。
出荷センターおよび流通センター、倉庫、荷役用ドック、航空貨物ターミナル、大規模小売店、および、不均質なアイテムセットを出荷および受け取るその他の活動は、箱、木箱、コンテナ、コンベヤベルト、および、パレット、などに異種のアイテムを梱包および開梱するなどの戦略を利用する。箱、木箱、パレットなどに異種のアイテムを梱包することで、結果として得られるアイテムセットを揚重機(フォークリフト、クレーンなど)によってハンドリングすることを可能にし、(例えば、倉庫内での)保管および/または(例えば、トラック、貨物倉などの中での)出荷に向けて、より効率的にアイテムを梱包することを可能にする。
いくつかの文脈において、アイテムは、サイズ、重量、密度、かさばり、剛性、パッケージ強度などがあまりに異なりうるので、任意の所与のアイテムまたはアイテムセットが、(例えば、箱、コンテナ、パレットなどに)梱包する必要がありうる所与の他のアイテムのサイズ、重量、重量分布などをサポートすることを可能にする属性を、それらのアイテムが持つ場合と持たない場合がある。異種のアイテムをパレットまたはその他のセットにまとめる際に、パレタイズされたスタックが、(例えば、フォークリフトなどの機械によってハンドリングすることができなくなるように)、崩れ、傾き、または、その他の形で不安定にならないことを保証するために、そして、アイテムの損傷を避けるために、注意深くアイテムを選択して積み重ねなければならない。
アイテムの多様性と、例えば所与のパレット上に梱包されるアイテムの順序、数、および、組み合わせのばらつきと、コンテナおよび/または供給メカニズム(アイテムをパレットまたは他のコンテナに置くために、そこからピックアップしなければならない)のタイプおよび位置の多様性とに起因して、ロボット工学の利用は、多くの環境において、より困難になっている。
以下の詳細な説明および添付の図面において、本発明の様々な実施形態を開示する。
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
本明細書で用いられている幾何学的モデルは、作業空間の状態(プログラム的に決定された状態など)のモデルを意味しうる。例えば、幾何学的モデルは、作業空間内のアイテムを移動させるための計画と、アイテムが計画に従って移動された場合に期待される結果とを生成することに関連して決定された幾何学的データを用いて生成される。例えば、幾何学的モデルは、作業空間内のアイテムをピック、移動、および/または、プレースするようロボットアームを制御することによって変化する作業空間の状態に対応し、アイテムのピック、移動、および、プレースは、(例えば、(i)作業空間におけるロボットアームまたは別の構成要素の誤構成またはミスアライメント、(ii)ロボットアームとの相互作用に基づくアイテムの変形、(iii)作業空間内の別のアイテム、作業空間内の別の物体、(iv)ロボットアームまたはロボットアームによって移動されているアイテムと、作業空間内の別の物体との間の衝突、に基づいて引き起こされうるエラー(エラーまたはノイズなど)なしに)計画に従って実行されると見なされる。
本明細書で用いられている「パレット」は、1または複数のアイテムが上または中に積み重ねられまたはプレースされうるプラットフォーム、容器、または、その他のコンテナを含む。さらに、本明細書で用いられているパレットは、1または複数のアイテムのセットをパッケージングして分配することに関連して用いられてよい。一例として、パレットという用語は、アイテムを支持し、フォークリフト、パレットジャック、クレーンなどによって移動可能である典型的な平らな運搬構造を含む。本明細書で用いられているパレットは、木材、金属、合金、ポリマなど、様々な材料で作られていてよい。
本明細書で用いられているアイテムまたは1セットのアイテムのパレチゼーションは、移動元位置(搬送構造など)からアイテムをピックして、パレット上(パレット上のアイテムのスタック上など)にアイテムをプレースすることを含む。
本明細書で用いられているデパレチゼーションは、パレットから(パレット上のアイテムのスタックから、など)アイテムをピックして、アイテムを移動させ、移動先位置(搬送構造など)にアイテムをプレースすることを含む。アイテムのセットをパレタイズ/デパレタイズするためのパレチゼーション/デパレチゼーションシステムおよび/または処理の例が、米国特許出願第17/343,609号でさらに記載されており、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。
本明細書で用いられているアイテムのシンギュレーションは、移動元の山/流れからアイテムをピックして、搬送構造(例えば、仕切り付きコンベヤまたは同様の搬送手段)にアイテムをプレースすることを含む。任意選択的に、シンギュレーションは、移動元の山/流れからコンベヤ上のスロットまたはトレイへアイテムを1つずつプレースするなど、搬送構造上の様々なアイテムの仕分けを含みうる。アイテムのセットをシンギュレートするためのシンギュレーションシステムおよび/または処理の例が、米国特許出願第17/246,356号でさらに記載されており、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。
本明細書で用いられているキッティングは、1または複数のアイテム/物体を対応する位置からピックして、1または複数のアイテムのセットがキットに対応するように1または複数のアイテムを所定の位置にプレースすることを含む。アイテムのセットをキッティングするためのキッティングシステムおよび/または処理の例が、米国特許出願第17/219,503号でさらに記載されており、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。
本明細書で用いられているビジョンシステムは、センサデータ(例えば、作業空間に関するセンサデータ)を取得する1または複数のセンサを備える。センサは、カメラ、高解像度カメラ、2Dカメラ、3D(例えば、RGBD)カメラ、赤外線(IR)センサ、作業空間(または、パレットおよびパレット上のアイテムのスタックなど、作業空間の一部)の三次元ビューを生成するためのその他のセンサ、上述したものの任意の組みあわせ、および/または、上述の複数のセンサを含むセンサアレイ、などの内の1または複数を含んでよい。ビジョンシステムの例が、米国特許出願第16/667,661号でさらに記載されており、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。
様々な実施形態が、アイテムをピックアンドプレースするためのシステム、方法、および/または、装置を含む。システムは、通信インターフェースと、通信インターフェースに接続された1または複数のプロセッサと、を備える。通信インターフェースは、作業空間に配備されている1または複数のセンサから、作業空間の現在の状態を示すセンサデータを受信するよう構成されており、作業空間は、パレットまたはその他の容器と、容器の上または中に積み重ねられている0以上のアイテムとを含む。1または複数のプロセッサは、通信インターフェースに接続されており、(i)センサデータを用いて、パレットまたはその他の容器と、容器の上または中に積み重ねられたゼロ以上のアイテムとの一方または両方の状態を推定し、(ii)推定状態を用いて、パレットまたはその他の容器の上または中にアイテムの次のセットをプレースし、もしくは、パレットまたはその他の容器からアイテムの次のセットを取り出すよう、ロボットアームを制御するための計画を生成または更新するよう構成され、その計画は、アイテムのプレースまたは取り出しの順序付けられたシーケンスを含む。計画は、少なくとも部分的には、可能な順序付けられたシーケンスのサブセットが探索される有界木探索を実行することによって生成または更新される。サブセットは、1または複数の選択基準を満たす探索木の枝を選択すること、もしくは、剪定基準を満たす1または複数の枝を考慮から省くことの一方または両方によって決定される。
様々な実施形態において、本明細書で開示されているロボットパレチゼーションシステムは、現在のアイテムだけではなく次のまたは将来のアイテム(または所定の数の次のアイテム)も考慮することによって現在のアイテムをプレースする位置を決定する。システムは、(i)パレットまたはアイテムのスタックの推定状態と、(ii)現在のアイテムおよび次のアイテム(または所定の数の次のアイテム)の配置の組みあわせ/順列とに基づいて、現在のアイテムをプレースする位置を決定する。いくつかの実施形態において、システムは、現在のアイテム(例えば、第1次のアイテム)の最良の配置を決定することに関連して、スコアリング関数(例えば、配置をスコアリングする関数であり、対応するコスト関数の逆数、すなわち、負の相関を有しうる)を用いる。
パレタイズされるアイテムの将来のシーケンスの知識を利用することから生じるいくつかの課題は、以下を含む。
・各アイテムは、アイテムのパレット/スタック上のいくつかの位置および/またはいくつかの向きの1つにプレースされてよい。何らかの最適化(例えば、パッキング密度、アイテムを移動させるための時間、など)に少なくとも部分的に基づいて特定の位置および/または特定の向きにアイテムをプレースするための計画を決定することは、異なる可能なシナリオの結果を決定/シミュレートすることを含みうる。異なる結果を決定/シミュレートすることは、計算的に手間がかかり/非効率でありうる。
・複数の位置の中から、現在および/または将来のアイテムがプレースされる位置を決定する時に、1または複数の将来のアイテムが考慮される場合、各可能な位置に各アイテムをプレースするための異なる可能なシナリオの結果を決定/シミュレートする際の計算負荷が、指数関数的に煩雑になる。一例として、システムが次の5つの箱(例えば、アイテム)のシーケンスを知っており、システムが4つの配置(例えば、位置および向きの異なる4つの異なる組みあわせ)で第1箱をプレースできると仮定する。システムは、すべての4つの配置をシミュレートしてよく、システムは、4つのさらなる配置で次の箱の探索を拡張する。2深さ探索の後、システムは、16の可能なシナリオに到達する。このシナリオ数は、指数関数的に増加し、より高い探索深さでは扱いにくくなる。
・各アイテムは、アイテムのパレット/スタック上のいくつかの位置および/またはいくつかの向きの1つにプレースされてよい。何らかの最適化(例えば、パッキング密度、アイテムを移動させるための時間、など)に少なくとも部分的に基づいて特定の位置および/または特定の向きにアイテムをプレースするための計画を決定することは、異なる可能なシナリオの結果を決定/シミュレートすることを含みうる。異なる結果を決定/シミュレートすることは、計算的に手間がかかり/非効率でありうる。
・複数の位置の中から、現在および/または将来のアイテムがプレースされる位置を決定する時に、1または複数の将来のアイテムが考慮される場合、各可能な位置に各アイテムをプレースするための異なる可能なシナリオの結果を決定/シミュレートする際の計算負荷が、指数関数的に煩雑になる。一例として、システムが次の5つの箱(例えば、アイテム)のシーケンスを知っており、システムが4つの配置(例えば、位置および向きの異なる4つの異なる組みあわせ)で第1箱をプレースできると仮定する。システムは、すべての4つの配置をシミュレートしてよく、システムは、4つのさらなる配置で次の箱の探索を拡張する。2深さ探索の後、システムは、16の可能なシナリオに到達する。このシナリオ数は、指数関数的に増加し、より高い探索深さでは扱いにくくなる。
様々な実施形態が、1または複数のアイテム(例えば、アイテムのシーケンスにおける現在のアイテムならびに/もしくは1または複数の将来のアイテム)をプレースする位置を決定することに関連して木探索を利用するシステムを含む。システムは、(例えば、1または複数のアイテムまたはパレットなどの最良または最適な配置を見出すために)、1または複数のアイテムをプレースする位置を決定することに関連して異なるシナリオに対応する木を探索する。異なるシナリオは、パレット/アイテムのスタック上の対応する位置での1または複数のアイテムの配列にそれぞれ対応しうる。いくつかの実施形態において、システムは、特定の深さまで木を探索する。システムが木を探索する深さは、予め定められていてもよいし、閾値(特定の枝/シナリオを探索する際の計算負荷に関する閾値など)に少なくとも部分的に基づいてもよい。
様々な実施形態によると、システムは、アイテムのセットの様々な配置に従った状態に対応する探索空間を決定する。探索空間全体の評価は、計算コストが高く、アイテムをピックアンドプレースするための計画の決定に望ましくない待ち時間を追加しうる。アイテムのセットに対する配置の様々な組み合わせ/順列を評価する計算の複雑さ(および、必要なリソース/時間)を削減するために、システムは、考慮される組み合わせ/順列の数を削減するために、剪定処理/技術を実装する。システムは、予測安定性が安定性条件を満たさない(例えば、予測安定性が安定性閾値より小さい、推定状態が不安定であると見なされることをヒューリスティックが示唆している、など)配置を取り除くために、探索空間を剪定することができる。探索空間っを剪定した後、システムは、最善の結果(例えば、予測安定性およびコスト関数の1または複数に基づいて決定された最良の配置、など)を生み出す配置を決定するために、配置の残りの組み合わせ/順列を評価する。システムは、最良の結果を生み出す配置を用いて、アイテム(例えば、アイテムのセットにおける次のアイテム)をピックアンドプレースするための計画を決定する。
様々な実施形態によると、システムは、(例えば、探索空間を表す木構造における各ノードで)配置の組み合わせ/順列の少なくともサブセットに対する配置のシミュレーションを実行し、システムは、各シミュレーションに対応する予測安定性を決定する。いくつかの実施形態において、システムは、(i)配置のサブセットをシミュレートし、結果として得られた予測安定性を評価すること、および、(ii)配置のサブセットについて、1または複数の所定のヒューリスティックに基づいて、配置が安定的なスタックを生み出すと予測されるか否かを決定すること、の組み合わせに基づいて、探索空間を抑制する。システムは、1または複数のヒューリスティックまたは配置のシミュレーションに基づいて、探索空間を抑制する。様々な実施形態において、システムは、探索空間を解析する(例えば、探索空間を抑制する/剪定する)ことに関連して、1または複数のルールまたはヒューリスティックを用いる。例えば、ドメインエキスパートが、配置または配置のシーケンスのどのソートが多かれ少なかれ考慮する価値がある可能性のあるのかについて、観察、判断などに基づいて、剪定するための1または複数のルールまたはヒューリスティックを定義してよい。
様々な実施形態が、安定的かつ空間効率の良いパレットを形成するようにアイテムのセットをピックアンドプレースするシステムを含む。いくつかの実施形態において、システムは、所定のスコアリング関数を最大化する(または、所定のコスト関数を最小化する)ために、アイテムのセットをプレースする位置(例えば、アイテムのセットがパレット上に配置される方法)を決定する。
図1は、様々な実施形態に従って、異質なアイテムをパレタイズおよび/またはデパレタイズするためのロボットシステムを示す図である。いくつかの実施形態において、システム100は、図2の処理200、図3の処理300、図5の処理500、図6の処理600、図7の処理700、および/または、図8の処理800の少なくとも一部を実行する。
図の例において、システム100は、ロボットアーム102を備える。この例において、ロボットアーム102は、固定されているが、様々な別の実施形態において、ロボットアーム102は、例えば、レール上に取り付けられている、モータ駆動シャーシ上で完全に移動可能である、など、完全にまたは部分的に移動可能であってもよい。図に示すように、ロボットアーム102は、コンベヤ(またはその他のソース)104から任意のおよび/または異種のアイテム(例えば、箱、パッケージ、など)をピックして、パレット(例えば、プラットフォームまたはその他の容器)106上に積み重ねるために用いられる。パレット(例えば、プラットフォームまたは容器)106は、四隅に車輪を備え、四方の側面の内の3つが少なくとも部分的に閉じているパレット、容器、または、ベースを備えており、三面の「ロールパレット」、「ロールケージ」、ならびに/もしくは、「ロール」または「ケージ」「トロリー」とも呼ばれる。他の実施形態において、より多い側面を備え、より少ない側面を備え、および/または、側面のないロールまたは車輪なしのパレットが用いられてもよい。いくつかの実施形態において、図1に示していない他のロボットが、積み下ろしのための所定位置ならびに/もしくは搬送されるためにトラックまたはその他の目的地、などに、容器106を押し込むために用いられてもよい。
いくつかの実施形態において、複数の容器106が、ロボットアーム102の周囲に(例えば、ロボットアームの閾値近傍の範囲内、または、その他のロボットアームのレンジ内に)配置されてもよい。ロボットアーム102は、同時に(例えば、並列しておよび/または同時期に)、1または複数のアイテムを複数のパレット上に積み重ねてよい。複数のパレットの各々は、マニフェストおよび/または注文に関係付けられていてよい。例えば、パレットの各々は、予め設定された宛先(例えば、顧客、住所、など)に関連付けられていてよい。いくつかの例において、複数のパレットの一部は、同じマニフェストおよび/または注文に関係付けられていてよい。しかしながら、複数のパレットの各々が、異なるマニフェストおよび/または注文に関係付けられてもよい。ロボットアーム102は、同じ注文にそれぞれ対応する複数のアイテムを複数のパレットにプレースしてよい。システム100は、複数のパレット上の配列(例えば、アイテムのスタック)を決定してよい(例えば、注文に対する複数のアイテムが複数のパレットの間にどのように分けられるのか、任意の1つのパレット上のアイテムがどのように積み重ねられるのか、など)。システム100は、1または複数の他のアイテムがパレットに積み重ねられる間、1または複数のアイテム(例えば、注文に対するアイテム)をバッファエリアまたはステージングエリアに保管してよい。一例として、1または複数のアイテムは、パレットへの(例えば、スタックへの)1または複数のアイテムのそれぞれの配置が閾値適合性または閾値安定性を満たす(例えば、超える)とシステム100が判定する時まで、バッファエリアまたはステージングエリアに保管されてよい。閾値適合性または閾値安定性は、所定の値であってもよいし、履歴情報に少なくとも部分的に基づいて経験的に決定された値であってもよい。スタック上のアイテムの配置が閾値適合性または閾値安定性を満たす(例えば、超える)と予期されるか否かを判定することに関連して、ならびに/もしくは、閾値適合性または閾値安定性(例えば、スタックにアイテムをプレースするか否かを評価するためにシミュレーションまたはモデルが比較される閾値)を決定することに関連して、機械学習アルゴリズムが実装されてよい。
図の例において、ロボットアーム102は、吸着タイプのエンドエフェクタ(例えば、エンドエフェクタ108)を備えている。エンドエフェクタ108は、複数の吸着カップ110を有する。ロボットアーム102は、図に示すように、ピックアップされるアイテムの上にエンドエフェクタ108の吸着カップ110を配置するために用いられ、真空源が、アイテムを把持し、アイテムをコンベヤ104から持ち上げ、アイテムを容器106上の移動先位置にプレースするための吸着力を提供する。様々なのタイプのエンドエフェクタが実装されてよい。
様々な実施形態において、システム100は、作業空間のモデル(例えば、作業空間の3Dモデル、および/または、幾何学的モデル)を生成するために用いられるビジョンシステムを備える。例えば、エンドエフェクタ108に取り付けられた3Dカメラまたはその他のカメラ112と、システム100が配備されている空間内に取り付けられたカメラ114、116と、の内の1または複数が、コンベヤ104上のアイテムを識別するため、および/または、アイテムを把持し、ピック/プレースし、容器106上に積み重ねる(または、該当する場合、アイテムをバッファエリアまたはステージングエリアにプレースする)ための計画を決定するために用いられる。様々な実施形態において、図示されていないさらなるセンサが、アイテムの属性を識別し(例えば、決定し)、アイテムを把持し、アイテムをピックアップし、決定された軌道を通してアイテムを移動させ、ならびに/もしくは、例えばシステム100によって、アイテムが配置および/または再配置されうるコンベヤ104および/または他のソースおよび/またはステージングエリア上の容器106のアイテムの上または中の移動先位置にアイテムをプレースするために用いられてよい。図示されていないかかるさらなるセンサの例は、コンベヤ104および/またはロボットアーム102に埋め込まれおよび/または隣接する重量センサまたは力センサ、吸着カップ110のx-y平面および/またはz方向(垂直方向)の力センサを含みうる。
図の例において、カメラ112は、エンドエフェクタ108の本体の側面に取り付けられているが、いくつかの実施形態において、カメラ112および/またはさらなるカメラが、他の位置に取り付けられてもよい(例えば、吸着カップ110の間の位置から下向きに、エンドエフェクタ108の本体の下面に取り付けられ、もしくは、ロボットアーム102のセグメントまたはその他の構造に取り付けられ、もしくは、その他の位置に取り付けられる、など)。様々な実施形態において、112、114、および、116などのカメラが、コンベヤ104上のアイテム上に見えるおよび/またはアイテムを構成する、テキスト、ロゴ、写真、図、画像、マーク、バーコード、QRコード(登録商標)、または、その他の符号化および/またはグラフィック情報またはコンテンツを読み取るために用いられてよい。
いくつかの実施形態において、システム100は、制御信号に応答してスペーサ材料の供給源から或る量のスペーサ材料を供給するよう構成されているディスペンサ装置(図示せず)を備える。ディスペンサ装置は、ロボットアーム102上に配置されてもよいし、作業空間の近傍(例えば、作業空間の閾値距離内)に配置されてもよい。例えば、ディスペンサ装置は、ディスペンサ装置が、容器106(例えば、パレット)の上または周囲、もしくは、ロボットアーム102のエンドエフェクタ108の所定の距離内に、スペーサ材料を供給するように、ロボットアーム102の作業空間内に開示されてよい。いくつかの実施形態において、ディスペンサ装置は、ディスペンサ装置をロボットアーム102のエンドエフェクタ108上にまたはエンドエフェクタ108に隣接して取り付けるよう構成されている取り付け具を備える。取り付け具は、ブラケット、ストラップ、1または複数の締め具、などの内の少なくとも1つである。一例として、ディスペンサ装置は、ディスペンサ装置から押し出され/供給されるようにディスペンサ装置内の供給材料を付勢する付勢装置/メカニズムを備えてよい。ディスペンサ装置は、スペーサ材料の供給を制御するために用いられるゲーティング構造を備えてよい(例えば、ゲーティング構造の作動がなければスペーサ材料の供給が防止され、作動に応じて、供給されるスペーサ材料の供給が可能になる)。
ディスペンサ装置は、制御信号を受信するよう構成されている通信インターフェースを備えてよい。例えば、ディスペンサ装置は、1または複数の端末(制御コンピュータ118など)と通信してよい。ディスペンサ装置は、1または複数の有線接続ならびに/もしくは1または複数の無線接続を介して、1または複数の端末と通信してよい。いくつかの実施形態において、ディスペンサ装置は、1または複数の端末へ情報を通信する。例えば、ディスペンサ装置は、ディスペンサ装置の状態の示唆(例えば、ディスペンサ装置が正常に動作しているか否かの示唆)、ディスペンサ装置内に備えられているスペーサ材料の種類の示唆、ディスペンサ装置内のスペーサ材料の供給レベルの示唆(例えば、ディスペンサ装置が満杯であるか、空であるか、半量であるか、などの示唆)、などを制御コンピュータ118へ送信してよい。制御コンピュータ118は、或る量のスペーサ材料を供給するようディスペンサ装置を制御することに関連して利用されてよい。例えば、制御コンピュータ118は、容器106の上/中のアイテムのスタックの予測安定性を改善するなどのために、1または複数のアイテムをパレタイズすることに関連してスペーサが利用されることを決定してよい。制御コンピュータ118は、1または複数のアイテムをパレタイズすることに関連して利用するスペーサ材料の量(例えば、スペーサの数、スペーサ材料の量、など)を決定してよい。例えば、1または複数のアイテムをパレタイズすることに関連して利用するスペーサ材料の量は、1または複数のアイテムをパレタイズするための計画を決定することに少なくとも部分的に基づいて決定されてよい。
いくつかの実施形態において、ディスペンサ装置は、制御信号に応答してスペーサ材料の供給源から或る量のスペーサ材料の量を供給するよう構成されているアクチュエータを備える。1または複数のアイテムをパレタイズすることに関連してスペーサ/スペーサ材料が利用されると決定したことに応じて、制御コンピュータ118は、アクチュエータに或る量のスペーサ材料を供給させるための制御信号を生成してよい。制御信号は、スペーサとして利用されるスペーサ材料の量の示唆を含んでよい。
様々な実施形態によると、スペーサまたはスペーサ材料は剛ブロックである。例えば、スペーサまたはスペーサ材料は、発泡体の剛ブロックであってよい。いくつかの実施形態において、スペーサまたはスペーサ材料は、ポリウレタンを含む。
いくつかの実施形態において、スペーサ材料の供給源は、複数の切断済みブロックを含む。複数の切断済みブロックは、複数の切断済みブロックを供給端へ付勢するバネ式カートリッジに予め装填されてよい。切断済みブロックがカートリッジから供給されたことに応じて、複数の切断済みブロックの内の別のブロックが、カートリッジから次に供給される位置に押し出される。
いくつかの実施形態において、スペーサ材料の供給源は、より大きいスペーサ材料ブロック、スペーサ材料のストリップ、および、スペーサ材料のロール、の内の1または複数を含む。ディスペンサ装置またはシステム100は、スペーサ材料の供給源から或る量のスペーサ材料を切断するよう構成されているカッターを備えてよい。制御信号がアクチュエータに供給されたことに応じて、アクチュエータは、カッターにスペーサ材料の供給源から或る量のスペーサ材料を切断させてよい。
いくつかの実施形態において、スペーサ材料の供給源は、液体前駆体を含む。制御信号がアクチュエータに供給されたことに応じて、アクチュエータは、パレットまたはパレット上のアイテムのスタックの表面上に或る量のスペーサ材料を供給させる。供給された前駆体は、パレットまたはパレット上のアイテムのスタックの表面上に供給された後に硬化しうる。
いくつかの実施形態において、スペーサ材料の供給源は、押し出し材料を含む。制御信号がアクチュエータに供給されたことに応じて、押し出し材料は、所望のサイズおよび所望の硬度の1または複数まで満たされる。押し出し材料は、押し出し材料が所望のサイズおよび所望の硬度の1または複数まで満たされたとの判定に応じて密封されてよい。いくつかの実施形態において、押し出し材料は、流体で満たされる。流体は、空気、水、などの内の1または複数であってよい。いくつかの実施形態において、押し出し材料は、ゲルで満たされる。
様々な実施形態において、ロボット制御されたディスペンサツーリングまたはマシンが、次の箱/層が配置されるための表面領域を準備するために、箱の間および/または箱に隣接する隙間を埋める。いくつかの実施形態において、システム100は、ロボットアーム102を用いて、所定の切断済み材料をピック/プレースしてよく、および/または、次のアイテムの表面領域が配置される必要性に合わせてスペーサ材料を動的にトリミングしてもよい。いくつかの実施形態において、ロボット制御されたディスペンサ装置、または、ロボット制御されたディスペンサ装置を備えたロボットパレチゼーションシステムは、パレット表面領域(例えば、前の層の上面)上に通常は収まらない可能性があるとシステムが判定した次の箱またはアイテムのための表面領域を準備することに関連して、長いチューブおよび/またはパッケージから直方体を形成するようにトリミングし、直方体を既存のパレット上にプレースするための装置を備える。スペーサは、発泡体、空気で膨らませたプラスチック袋、木材、金属、プラスチック、などを含みうるが、これらに限定されない。ディスペンサ装置は、直方体(例えば、スペーサ)をパレット上へ直接的にプレース(例えば、押し出し、供給、など)してよく、および/または、装置は、ロボットアームの近くに直方体(例えば、スペーサ)を供給してもよく、エンドエフェクタが、直方体(例えば、スペーサ)をパレット表面領域上に再配置/プレースしてよい。ディスペンサ装置は、次の箱またはアイテムのための表面領域を準備するために、層上(例えば、層の上面上)にある箱またはアイテムの間の表面領域の不一致を修正または改善するように、所定の量(例えば、正しい量または期待量)のスペーサ材料を供給してよい。
図1をさらに参照すると、図の例において、ロボットシステム100は、この例では無線通信を介して(ただし、様々な実施形態において、有線通信および無線通信の一方または両方で)、ロボットアーム102、コンベヤ104、エンドエフェクタ108、および、センサ(カメラ112、114、および、116、ならびに/もしくは、図1に示していない重量センサ、力センサ、および/または、その他のセンサなど)などの要素と通信するよう構成されている制御コンピュータ118を備える。様々な実施形態において、制御コンピュータ118は、センサ(カメラ112、114、および、116、ならびに/もしくは、図1に示していない重量センサ、力センサ、および/または、その他のセンサなど)からの入力を用いて、容器106へ荷積みおよび/または容器106から荷下ろしされるアイテムの1または複数の属性を観察、識別、および、決定するよう構成されている。様々な実施形態において、制御コンピュータ118は、例えば、画像および/またはその他のセンサデータに基づいて、制御コンピュータ118に格納されたライブラリ内および/または制御コンピュータ118にとってアクセス可能なライブラリ内のアイテムモデルデータを用いて、アイテムおよび/またはその属性を識別する。制御コンピュータ118は、アイテムに対応するモデルを用いて、移動先(容器106など)の中/上に、他のアイテムと共に、アイテムを積み重ねるための計画を決定および実施する。様々な実施形態において、アイテム属性および/またはモデルは、アイテムを把持、移動させて、移動先位置(例えば、容器106の中/上にアイテム積み重ねるための計画/再計画処理の一部として、アイテムがプレースされると決定された位置)にプレースするための戦略を決定するのに利用される。
図の例において、制御コンピュータ118は、「オンデマンド」遠隔操作装置122に接続されている。いくつかの実施形態において、制御コンピュータ118が、完全自動モードで続行できない場合、例えば、制御コンピュータ118が完全自動モードでアイテムのピックアンドプレースを完了するための戦略を持たなくなるように、アイテムを把持、移動、および、プレースするための戦略が、決定できなくなり、および/または、失敗した場合、制御コンピュータ118は、例えば、アイテムを把持、移動、および、プレースするために、遠隔操作装置122を用いて、ロボットアーム102および/またはエンドエフェクタ108を操作することによって介入するように人間ユーザ124に指示する。
システム100の操作に関するユーザインターフェースが、制御コンピュータ118および/または遠隔操作装置122によって提供されてよい。ユーザインターフェースは、パレット(または、それに関連付けられているアイテムのスタック)の現在の状態、パレタイズまたはデパレタイズされている現在の注文またはマニフェスト、システム100の性能(例えば、時間までにパレタイズ/デパレタイズされたアイテムの数)、などに関連付けられている情報を含む、システム100の現在の状態を提供してよい。ユーザは、システム100および/またはシステム100内の特定のロボットアームを作動または休止させるために、ユーザインターフェース上の1または複数の要素を選択し、もしくは、他の方法でユーザインターフェースに入力を提供してよい。
様々な実施形態によると、システム100は、パレット上のスタックのモデルを生成するなどのために、パレットの状態をモデル化するための機械学習処理を実行する。機械学習処理は、パレットの状態をモデル化するための適応的および/または動的な処理を含んでよい。機械学習処理は、システム100がパレットの状態のモデルを生成するための処理を規定および/または更新/改良してよい。モデルは、システム100内の1または複数のセンサ(ロボットアーム102の作業空間内の1または複数のセンサまたはセンサアレイなど)からの入力(例えば、センサから取得された情報)に少なくとも部分的に基づいて生成されてよい。モデルは、スタックの形状、ビジョン応答(例えば、作業空間内の1または複数のセンサによって取得された情報)、および、機械学習処理、などに少なくとも部分的に基づいて生成されてよい。システム100は、1または複数のアイテムをパレタイズ/デパレタイズするための効率的な(例えば、効率を最大化/最適化する)方法を決定することに関連してモデルを利用してよく、パレタイズ/デパレタイズするための方法は、最小閾値安定性値によって制限されうる。1または複数のアイテムをパレタイズ/デパレタイズするための処理は、ユーザ管理者によって設定可能であってよい。例えば、パレタイズ/デパレタイズするための処理が最大化される1または複数の指標は、設定可能であってよい(例えば、ユーザ/管理者によって設定されてよい)。
1または複数のアイテムをパレタイズする文脈において、システム100は、アイテムをパレット上(例えば、スタック上)にプレースするか否かを決定し、アイテムがプレースされる移動先位置、および、アイテムが移動元位置(例えば、コンベヤなど現在の目的地)から移動先位置へ移動させられる軌道など、アイテムをパレット上にプレースするための計画を選択することに関連して、パレットの状態のモデルを生成してよい。また、システム100は、アイテムを解放し、または、他の方法でアイテムをパレット上にプレースする(例えば、アイテムをスタック上にぴったり収めるためにアイテムに力を印加する)ための戦略を決定することに関連して、モデルを用いてよい。パレットの状態のモデル化は、パレット上の(例えば、スタック上の)異なる移動先位置へのアイテムのプレースをシミュレートし、異なる位置へのアイテムのプレースから生じると予測される対応する異なる予測適合性および/または予測安定性(例えば、安定性指標)を決定することを含んでよい。システム100は、予測適合性および/または予測安定性が、対応する閾値を満たす(例えば、超える)移動先位置を選択してよい。追加的または代替的に、システム100は、(例えば、スタック上のアイテムの)予測適合性および/または(例えば、スタックの)予測安定性を最適化する移動先位置を選択してもよい。
逆に、パレット(例えば、パレット上のスタック)から1または複数のアイテムをデパレタイズする文脈において、システム100(例えば、制御コンピュータ118)は、パレット上(例えば、スタック上)のアイテムを取り出すか否かを決定し、パレットからアイテムを取り出すための計画を選択することに関連して、パレットの状態のモデルを生成してよい。パレットの状態のモデルは、アイテムがパレットから取り出される順序を決定することに関連して利用されてよい。例えば、制御コンピュータ118は、アイテムを取り出すことがパレット(例えば、スタック)の状態の安定性を閾値安定性よりも低下させると予測されるか否かを判断するためにモデルを利用してよい。システム100(例えば、制御コンピュータ118)は、パレットからの1または複数のアイテムの取り出しをシミュレートし、パレット(例えば、スタック)の状態の安定性を最適化するパレットからアイテムを取り出すための順序を選択してよい。システム100は、モデルを用いて、パレットから取り出す次のアイテムを決定してよい。例えば、制御コンピュータ118は、アイテムの取り出し中および/または取り出し後のスタックの予測安定性が閾値安定性を超えるとの判定に少なくとも部分的に基づいて、パレットから取り出す次のアイテムとしてアイテムを選択してよい。モデルおよび/または機械学習処理は、スタックからアイテムをピックするための戦略を決定することに関連して利用されてよい。例えば、アイテムが、スタックから取り出される次のアイテムとして選択された後、システム100は、アイテムをピックするための戦略を決定してよい。アイテムをピックするための戦略は、パレットの状態(例えば、スタックの決定済みの安定性)、アイテムの属性(例えば、サイズ、形状、重量または予測重量、重心、パッケージのタイプ、など)、アイテムの位置(例えば、スタック内の1または複数の他のアイテムに対する位置)、スタック上の他のアイテムの属性(例えば、隣接するアイテムの属性など)などに少なくとも部分的に基づいてよい。
様々な実施形態によると、把持戦略(例えば、アイテムを把持するための戦略)を改善することに関連して、機械学習処理が実行される。システム100は、パレタイズ/デパレタイズされる1または複数のアイテムに関する属性情報を取得してよい。属性情報は、アイテムの向き、材料(パッケージタイプなど)、サイズ、重量(または予測重量)、または、重心、などの内の1または複数を含んでよい。また、システム100は、移動元位置(例えば、アイテムがピックされる入力コンベヤに関する情報)を取得してよく、アイテムがプレ-スされるパレット(または、アイテムが積み重ねられている注文に対応するパレットのセットなど、移動先パレットがそこから決定されるパレットのセット)に関する情報を取得してよい。アイテムをピックアンドプレースするための計画を決定することに関連して、システム100は、アイテムに関する情報(例えば、属性情報、移動先位置、など)を用いて、アイテムをピックするための戦略を決定してよい。ピック戦略は、ピック位置(例えば、ロボットアーム102がエンドエフェクタなどを介してアイテムに係合するアイテム上の位置)の示唆を含んでよい。ピック戦略は、アイテムをピックするために印加される力、および/または、ロボットアーム102がアイテムを移動元位置から移動先位置へ移動させる間にアイテムを把持するための保持力を含んでよい。システム100は、アイテムに関する情報(例えば、属性情報、移動先位置、など)と、アイテムをピックする性能(例えば、そのアイテムまたは類似したアイテム(1または複数の類似した属性を共有するアイテムなど)をピックアンドプレースした過去の反復に関連付けられている履歴情報)との間の関連性に少なくとも部分的に基づいてピック戦略を改善するために、機械学習処理を利用してよい。
様々な実施形態によると、システム100は、スペーサまたは或る量のスペーサ材料の利用がパレット上のアイテムの改善されたスタックの結果を改善する(例えば、アイテムのスタックの安定性を改善する)との判定に応じて、1または複数のアイテムをパレタイズすることに関連してスペーサまたは或る量のスペーサ材料を利用することを決定してよい。いくつかの実施形態において、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数のスペーサを配置することが、パレット上のアイテムのスタックを改善するとの判定は、パッキング密度、平らな上面、および、安定性、の内の1または複数に少なくとも部分的に基づく。いくつかの実施形態において、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数のスペーサを配置することが、パレット上のアイテムのスタックを改善するとの判定は、N個のアイテムのセットを含むアイテムのスタックのパッキング密度が、N個のアイテムのセットが1または複数のスペーサなしでパレット上にプレースされた場合のパッキング密度よりも高いとの判定に少なくとも部分的に基づく。いくつかの実施形態において、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数のスペーサを配置することが、パレット上のアイテムのスタックを改善するとの判定は、上面が、N個のアイテムのセットが1または複数のスペーサなしでパレット上にプレースされた場合の上面よりも平らであるとの判定に少なくとも部分的に基づく。いくつかの実施形態において、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数のスペーサを配置することが、パレット上のアイテムのスタックを改善するとの判定は、N個のアイテムのセットを含むアイテムのスタックの安定性が、N個のアイテムのセットが1または複数のスペーサなしでパレット上にプレースされた場合の安定性よりも高いとの判定に少なくとも部分的に基づく。Nは、正の整数であってよい(例えば、完成時のパレットにパレタイズされるアイテムの総数よりも小さい正の整数)。
一例として、Nは、パレタイズされるアイテムの総数よりも小さい場合があるため、システム100は、アイテムのスタックの最適化において制限されうる(例えば、ロボットシステム100は、一度にN個のアイテムのプレースのみを計画しうる)。したがって、1または複数のスペーサを利用することで、N個のアイテムをプレースすることに関連付けられている自由度数が増す。システム100は、N個のアイテムの積み重ねを最適化するために(または、最小安定性閾値を満たすスタックなど、N個のアイテムで「十分に良好な」スタックを達成するために)、1または複数のスペーサを利用してよい。システム100は、1または複数のスペーサを利用するか否か、利用するスペーサの数、スペーサの配置、などを決定することに関連して、コスト関数を利用してよい。例えば、コスト関数は、安定性値、1または複数のアイテムをプレースするための時間、アイテムのスタックのパッキング密度、アイテムのスタックの上面の上部の平坦値または変動率、ならびに、供給材料のコスト、などの内の1または複数を含んでよい。
様々な実施形態によると、制御コンピュータ118は、容器106上のアイテムのスタックの安定性を改善することに関連して、スペーサを容器106(例えば、パレット)またはアイテムのスタック上に配置するようシステム100を制御する。一例として、スペーサは、スペーサが利用された場合にアイテムのスタックの安定性が改善されると推定される(例えば、所定の可能性閾値を超える確率を有するなど、可能性が高い)との判定に応じて配置されてよい。別の例として、制御コンピュータ118は、アイテムのセット(例えば、N個のアイテムのセット、Nは整数)の配置に関連して、アイテムのスタックの安定性が閾値安定性値より小さい、および/または、アイテムのスタックの安定性が閾値安定性値よりも小さいと推定されるとの判定に応じて、スペーサを利用するようロボットシステム100を制御してもよい。
様々な実施形態によると、制御コンピュータ118は、アイテムのスタックのモデル、ならびに/もしくは、1または複数のアイテムのセットをプレースするシミュレーションに少なくとも部分的に基づいて、アイテムのスタックの安定性を決定してよい。コンピュータシステムは、アイテムのスタックの現在のモデルを取得(例えば、決定)し、アイテムのセットの配置をモデル化(例えば、シミュレート)してよい。アイテムのスタックをモデル化することに関連して、アイテムのスタックの予測安定性が決定されてよい。アイテムのスタックのモデル化は、アイテムのセットの配置のモデル化に関連してスペーサの配置をモデル化することを含んでよい。
いくつかの実施形態において、制御コンピュータ118は、アイテムのスタック(または、シミュレートされたアイテムのスタック)および/またはスペーサの上面の1または複数の属性に少なくとも部分的に基づいて、アイテムのスタック(または、シミュレートされたアイテムのスタック)の安定性を決定してよい。例えば、上面が平らである程度の測定が、アイテムのスタックの安定性を決定することに関連して利用されてよい。平らな面に箱をプレースすることは、アイテムの安定した配置および/またはスタックにつながりうる。別の例として、上面の上の平らな領域の表面積が、アイテムのスタック上のアイテムの配置の安定性または予測安定性を決定することに関連して利用されてもよい。アイテムのスタックの上面の上の平らな領域が、アイテムのスタック上に配置されるアイテムの底面に対して大きいほど、アイテムのスタックの安定性が閾値安定性値を満たす(例えば、超える)可能性が高くなる。
様々な実施形態によると、システム100は、パレットもしくはパレット上の1または複数のアイテムのスタックのモデルを生成し、スペーサまたはスペーサ材料は、パレットもしくはパレット上の1または複数のアイテムのスタックのモデルに少なくとも部分的に基づいて、1または複数のアイテムのパレチゼーションに関連して配置されるように決定される。システム100は、パレットもしくはパレット上の1または複数のアイテムのスタックの少なくとも上面のモデルを生成し、パレット上に次にプレースされるN個のアイテムのセットを決定し(例えば、Nは正の整数)、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数のスペーサを配置することが、スペーサなしでN個のアイテムのセットをプレースした結果のスタックと比較して、パレット上のアイテムのスタックを改善すると判定し、1または複数のスペーサに対応する量のスペーサ材料をアクチュエータに供給させるための1または複数の制御信号を生成し、N個のアイテムのセットをパレット上にプレースすることに関連して1または複数の制御信号をアクチュエータに提供してよい。
様々な実施形態によると、パレタイズされるアイテムの間のアイテム(例えば、アイテムのタイプ)のばらつきが、安定した方法での(例えば、アイテムのスタックの安定性が閾値安定性値を満たす方法での)アイテムのパレチゼーションを複雑にしうる。いくつかの実施形態において、制御コンピュータ118は、パレタイズされる或る数のアイテムしか予測できない場合がある。例えば、システムは、パレタイズされるN個のアイテムのキュー/バッファを有してよく、ここで、Nは、正の整数である。Nは、パレット上にスタックされるアイテムの総数の一部でありうる。例えば、Nは、パレットにスタックされるアイテムの総数に対して比較的小さい場合がある。したがって、システム100は、次のN個の既知のアイテムを利用してアイテムの積み重ねを最適化することしかできない場合がある。例えば、システム100は、アイテムのスタックの現在の状態(例えば、現在のモデル)と、次にスタックされるN個のアイテムに関連付けられている1または複数の属性とに従って、1または複数のアイテムを積み重ねるための計画を決定してよい。いくつかの実施形態において、1または複数のスペーサの利用は、次のN個のアイテムが積み重ねられる方法の柔軟性を提供し、および/または、アイテムのスタックの安定性を改善しうる。
様々な実施形態が、パレット上への比較的多数の混在した箱またはアイテムのパレチゼーションを含む。パレタイズされる様々な箱およびアイテムは、異なる属性(高さ、形状、サイズ、剛性、パッケージタイプ、など)を有しうる。様々な箱またはアイテムの1または複数の属性におけるばらつきは、アイテムを安定した方法でパレット上にプレースすることを困難しうる。いくつかの実施形態において、システム100(例えば、制御コンピュータ118)は、プレースされるアイテムの下にある箱または他のアイテムよりも大きい表面積(例えば、より大きい底面)を有するアイテムのための移動先位置(例えば、アイテムがプレースされる位置)を決定してよい。いくつかの実施形態において、異なる高さ(例えば、異なる箱の高さ)を有するアイテムが、パレットの比較的高い領域(例えば、最大パレット高さに0.5を乗じた値に等しい高さ閾値よりも高い高さ、最大パレット高さに2/3を乗じた値に等しい高さ閾値よりも高い高さ、最大パレット高さに0.75を乗じた値に等しい高さ閾値よりも高い高さ、最大パレット高さに別の所定の値を乗じた値に等しい高さ閾値よりも高い高さ)にプレースされてよい。
様々な実施形態によると、スペーサ材料の供給/利用戦略(例えば、1または複数のアイテムをパレタイズすることに関連してスペーサ材料を利用するための戦略)を改善することに関連して、機械学習処理が実行される。システム100は、パレタイズ/デパレタイズされる1または複数のアイテムに関する属性情報と、1または複数のアイテムをパレタイズ/デパレタイズすることに関連して利用される1または複数のスペーサに関する属性情報とを取得してよい。属性情報は、アイテムの向き、材料(例えば、スペーサ材料のタイプ)、サイズ、重量(または予測重量)、重心、剛性、寸法、などの内の1または複数を含んでよい。また、システム100は、移動元位置(例えば、アイテムがピックされる入力コンベヤに関する情報)を取得してよく、アイテムがプレ-スされるパレット(または、アイテムが積み重ねられている注文に対応するパレットのセットなど、移動先パレットがそこから決定されるパレットのセット)に関する情報を取得してよい。アイテムをピックアンドプレースするための計画を決定することに関連して、システム100は、アイテムに関する情報(例えば、属性情報、移動先位置、など)を用いて、アイテムをパレタイズ(例えば、アイテムをピックおよび/またはプレース)するための戦略を決定してよい。パレタイズ戦略は、ピック位置(例えば、ロボットアーム102がエンドエフェクタなどを介してアイテムに係合するアイテム上の位置)と、移動先位置(例えば、パレット/容器106またはアイテムのスタック上の位置)との示唆を含んでよい。パレタイズ戦略は、アイテムをピックするために印加される力、および/または、アイテムを移動元位置から移動先位置へ移動させる間にロボットアーム102がアイテムを把持するための保持力、ロボットアームがアイテムを移動先位置へ移動させる軌道、移動先位置にアイテムをプレースすることに関連して利用されるスペーサ材料の量(もしあれば)の示唆、ならびに、スペーサ材料を配置するための計画を含んでよい。システム100は、アイテムに関する情報(例えば、属性情報、移動先位置、など)と、(i)アイテムをピックおよび/またはプレースする性能(例えば、そのアイテムまたは類似したアイテム(1または複数の類似した属性を共有するアイテムなど)をピックアンドプレースした過去の反復に関連付けられている履歴情報)、(ii)アイテムのスタックのモデルを用いて生成された予測安定性などに対する、アイテムが移動先位置にプレースされた後のアイテムの安定性の性能(例えば、そのアイテムまたは類似したアイテム(1または複数の類似した属性を共有するアイテムなど)をパレタイズした過去の反復に関連付けられている履歴情報)、ならびに、(iii)アイテムのスタックのモデルを用いて生成された予測安定性などに対する、アイテムおよび/またはスペーサ材料が移動先位置にプレースされた後のアイテムのスタックの安定性の性能(そのアイテムもしくは類似したアイテムおよび/またはスペーサ(1または複数の類似した属性を共有するアイテム/スペーサなど)をパレタイズした過去の反復に関連付けられている履歴情報)、の内の1または複数との間の関係性に少なくとも部分的に基づいてパレタイズ戦略を改善するために、機械学習処理を利用してよい。いくつかの実施形態において、システム100は、スペーサならびに/もしくはパレタイズされる1または複数のアイテムに関連付けられている情報(例えば、パレタイズ戦略に関連して、スペーサおよび/またはパレタイズされる1または複数のアイテムに関する情報(例えば、属性情報、移動先位置、など)と、1または複数のスペーサを用いてアイテムのセットをパレタイズした場合の予測安定性(例えば、アイテムのスタックのモデルを用いたアイテムのパレタイズのシミュレーションに基づく予測安定性)に対する、1または複数のスペーサを用いてアイテムのセットをパレタイズした場合の安定性能との間の関係性に少なくとも部分的に基づいて、パレタイズ戦略に関連して1または複数のスペーサの利用を改善するために、機械学習処理を用いてよい。
システム100によって生成されるモデルは、幾何学的モデルに対応し、または、幾何学的モデルに少なくとも部分的に基づきうる。いくつかの実施形態において、システム100は、プレースされた1または複数のアイテム(例えば、システム100がロボットアーム102を制御してプレースさせたアイテム)、1または複数のアイテムの少なくとも一部にそれぞれ関連付けられている1または複数の属性、作業空間内の1または複数の物体(例えば、パレット、ロボットアーム、棚システム、シュート、または、作業空間内に備えられている他のインフラストラクチャなど、所定の物体)、などに少なくとも部分的に基づいて、幾何学的モデルを生成する。幾何学的モデルは、アイテムの積み重ねをモデル化する(例えば、アイテムのスタックの状態/安定性をモデル化する、など)ために制御コンピュータ118上で物理エンジンを実行することに少なくとも部分的に基づいて決定されてよい。幾何学的モデルは、作業空間の様々な構成要素の予測相互作用(アイテムと、別のアイテム、物体、または、(例えば、アイテムのスタックが位置するパレットまたはその他の容器を上昇/移動させるためのフォークリフトまたはその他の装置の利用をモデル化するために)スタックに印加されるシミュレート済みの力との相互作用など)に基づいて決定されてよい。
様々な実施形態によると、システムは、アイテムのスタックの推定状態を決定する。例えば、システム100は、次のアイテムがプレースされたこと、または、N個の次のアイテムがプレースされたこと、などに応じて、推定状態を決定する。推定状態は、アイテムのスタックの(または作業空間の)幾何学的モデルおよび/またはセンサデータ(例えば、システム100のビジョンシステムによって取得されたデータ)の内の1または複数に少なくとも部分的に基づいて決定されうる。
いくつかの実施形態において、システム100は、パレット上に1または複数のアイテムをプレースする位置を決定することに関連して(もしくは、パレットから1または複数のアイテムのデパレタイズすることに関連して)センサデータおよび幾何学的データ(例えば、幾何学的モデル)を利用する。システム100は、異なるデータソースを用いて、パレット(またはパレット上のアイテムのスタック)の状態をモデル化してよい。例えば、システム100は、パレット上の1または複数のアイテムの位置と、1または複数のアイテムに関連付けられている1または複数の特徴(または属性)(例えば、アイテムのサイズ)とを推定する。1または複数のアイテムに関連付けられている1または複数の特徴は、アイテムのサイズ(例えば、アイテムの寸法)、重心、アイテムの剛性、パッケージのタイプ、変形性、形状、識別子の位置、などを含んでよい。
様々な実施形態によると、システム100は、幾何学的データ(例えば、作業空間の幾何学的モデル)およびセンサデータ(例えば、作業空間に配備された1または複数のセンサによって取得されたデータ)に少なくとも部分的に基づいて、作業空間の状態(本明細書では推定状態とも呼ぶ)を推定する。作業空間の推定状態を取得したことに応じて、システム100は、作業空間内のアイテムを移動することに関連して推定状態を利用する。例えば、システム100は、推定状態を用いて、移動元位置からアイテムをピックし、目標位置(本明細書では移動先位置とも呼ぶ)にプレースするための計画および/または戦略を決定する。
様々な実施形態によると、幾何学的モデルは、作業空間内の1または複数のアイテムの1または複数の属性に少なくとも部分的に基づいて決定される。例えば、幾何学的モデルは、1セットのアイテム(例えば、パレタイズ/スタックされた第1セットの内の1または複数、ならびに、パレタイズ/スタックされる第2のセットのアイテム、など)のそれぞれの属性を反映する。アイテムの例は、アイテムのサイズ(例えば、アイテムの寸法)、重心、アイテムの剛性、パッケージのタイプ、識別子の位置、アイテムの変形性、アイテムの形状、などを含む。作業空間内のアイテムまたは物体の様々なその他の属性が実装されてもよい。別の例として、幾何学的モデルは、容器(例えば、パレット)の上または中にスタックされた1または複数のアイテムの予測安定性を含む。幾何学的モデルは、アイテムのセット(例えば、アイテムのスタック)の予測安定性、および/または、アイテムのスタックに含まれる個々のアイテムの予測安定性を含んでよい。いくつかの実施形態において、システム100は、(i)アイテムの1または複数の属性と、(ii)作業空間内のアイテムならびに別のアイテムまたは物体(例えば、パレット)に関する1または複数の予測相互作用とに少なくとも部分的に基づいて、アイテムの予測安定性を決定する。例えば、システム100は、予測安定性が計算されているアイテムと接触する別のアイテムまたは物体の属性の決定に基づいて、予測安定性を決定してよい。特定のアイテムの予測安定性に影響を与えうる他のアイテムの属性の例は、剛性、変形性、サイズ、などを含む。一例として、特定のアイテムが剛性の他のアイテムの上に載っている場合、特定のアイテムは、特定のアイテムが、剛性ではなくまたは剛性の低い他のアイテムの上に載っている場合と比較して、高い予測安定性を有する可能性がある。別の例として、特定のアイテムが、変形可能な別のアイテム(柔らかいパッケージで構成されているものなど)の上に載っている場合、特定のアイテムは、特定のアイテムが、変形可能でなくまたは変形性の低い別のアイテムの上に載っている場合と比較して、低い予測安定性を有する可能性がある。別の例として、特定のアイテムが、特定のアイテムの底部表面積よりも大きい上部表面積を有する別のアイテムの上に載っている場合、もしくは、特定のアイテムの底部表面の比較的高い割合が、別のアイテムの上面によって支持されている場合、アイテムの予測安定性は、特定のアイテムが、特定のアイテムの底部表面積よりも小さい上部表面積を有する場合、もしくは、特定のアイテムの底部表面の比較的高い割合が、別のアイテムの上面に支持されておらず/相互作用していない場合よりも、比較的高くまたは少なくとも高い。
いくつかの実施形態において、システム100は、ノイズ(例えば、センサノイス)を考慮するために、センサデータを調整する。システム100は、ビジョンシステムの実証分析に少なくとも部分的に基づいて、センサデータに含まれるノイズを推定できる。例えば、ビジョンシステムの性能の実証分析が、センサデータに含まれる(例えば、センサデータに内在する)ノイズを判断するために実行されうる。いくつかの実施形態において、システム100は、ビジョンシステムに関連付けられている所定のセンサノイズプロファイルを格納している。システム100は、ノイズを考慮するためにセンサデータを調整することに関連して、センサノイズプロファイルを利用できる。例えば、システム100は、センサプロファイルに少なくとも部分的に基づいて予測されたノイズを打ち消すために調整を適用できる。ビジョンシステムの性能の実証分析は、(i)手動で/物理的にアイテムまたは作業空間を測定し、(ii)ビジョンシステムを用いて同じものをキャプチャし、(iii)アイテム/作業空間の手動/物理的測定値と、センサデータを用いた同じものの測定値との間の差を(例えば、デジタル処理などを用いて)決定することを含みうる。システム100は、アイテム/作業空間の手動/物理的測定値とセンサデータを用いた同じものの測定値と間の差をノイズプロファイルと見なしてよい。一例として、システム100は、センサデータの変動を決定し、変動に少なくとも部分的に基づいてセンサノイズプロファイルを決定する。実証分析は、統計的に有意な実験/測定のセットに関して実行されうる。ノイズ(またはセンサデータの不正確さ)の例は、(i)ビジョンシステムの視野の端における画像の不正確さ、(ii)作業空間内のアイテムまたはその他の物体からのグレア/反射、などを含みうる。
いくつかの実施形態において、システム100は、ノイズ(例えば、ロボットアームを制御ことなどによって物理的な世界への幾何学的モデルの遷移から生じる幾何学的ノイズまたは不正確さ)を考慮するために幾何学的モデルを調整する。システム100は、ロボット制御の精度または作業空間内のその他の物体の実証分析(例えば、パレットの推定変形、幾何学的モデルで利用される位置に対するパレットの配置の逸脱、など)に少なくとも部分的に基づいて、幾何学的モデルに含まれるノイズを推定できる。例えば、(例えば、アイテムをプレースするなどのタスクを実行する際の)ロボットアームの制御の性能の実証分析が、幾何学的モデルに取り込まれた(例えば、内在する)ノイズを決定するために実行されうる。一例として、システム100は、幾何学的モデルの変動を決定し、変動に少なくとも部分的に基づいて幾何学的ノイズプロファイルを決定する。いくつかの実施形態において、システム100は、ビジョンシステムに関連付けられている所定の幾何学的ノイズプロファイルを格納している。システム100は、ノイズを考慮するために幾何学的モデルを調整することに関連して、幾何学的ノイズプロファイルを利用できる。例えば、システム100は、幾何学的モデルに含まれる予測ノイズ(例えば、幾何学的モデルに基づいて決定された計画に従ってロボット(ロボットアーム102など)を制御することに基づいて発生するノイズ)を打ち消すために調整を適用する。
いくつかの実施形態において、システム100は、各アイテムの移動(例えば、プレース)後に幾何学的モデルを更新する。例えば、システム100は、作業空間の状態(アイテムのスタックの状態/安定性、ならびに、アイテムのスタックの中の1または複数のアイテムの位置、など)に対応する幾何学的モデルを維持する(例えば、幾何学的モデルを格納する)。幾何学的モデルは、アイテムを移動させる計画を決定し、アイテムを移動させるようロボットアームを制御することに関連して、現在の幾何学的モデルを利用する。アイテムの動きに応じて、システム100は、アイテムの動きを反映するように、幾何学的モデルを更新する。例えば、アイテムのスタックをデパレタイズする場合、特定のアイテムがピックされ、アイテムのスタックから移動されたことに応じて、システム100は、特定のアイテムがもはやスタック上にあるものとして表されず、特定のアイテムのプレースされた移動先位置で幾何学的モデル内に含まれるように、幾何学的モデルを更新し、もしくは、移動先位置が作業空間の外にある場合、幾何学的モデルは、アイテムを除去するように更新される。さらに、幾何学的モデルは、特定のアイテムがスタックから除去された後のアイテムのスタックの安定性を反映するように更新される。別の例として、アイテムのセットをパレタイズする場合、システム100は、アイテムのスタックの上/中での特定のアイテムの配置を反映するように幾何学的モデルを更新する。システム100は、(例えば、特定のアイテムが他のアイテムとの間に有する相互作用、または、特定のアイテムの配置に基づく他のアイテムの間の相互作用、などを反映するために)アイテムのスタックの上/中でのアイテムの配置に少なくとも部分的に基づいて、アイテムのスタックの更新された安定性を含むように幾何学的モデルを更新できる。
いくつかの実施形態において、システム100は、(i)所定の数のアイテムの移動(例えば、プレース)の後、もしくは、(ii)所定の数のアイテムの移動、または、異常(1または複数の異常基準(例えば、異常の程度が異常閾値を超えること、など)を満たす異常など)の検出のいずれか早い方の後に、現在の状態を更新する(例えば、幾何学的モデルへの更新に基づいて更新する)。アイテムの所定の数(例えば、X個のアイテム、Xは正の整数)は、ユーザ選択、ロボット制御システムポリシーに基づいて設定され、または、アイテムの配置の実証分析に基づいて他の方法で決定されうる。一例として、アイテムの所定の数は、アイテムの数が所定のコスト関数(例えば、効率、安定性、安定性の予測変化、などを反映するコスト関数)に関して最適/最良の結果をもたらすとの判断に基づいて設定される。一例として、システム100は、現在の推定状態を決定し、現在の推定状態を用いて、次のX個のアイテムを移動させるための計画を決定し、X個のアイテムの移動(例えば、アイテムのスタッキングまたはデスタッキング)の後に、システム100は、更新された推定状態(例えば、X個のアイテムの配置を反映するための幾何的な更新/モデル)を決定する。システム100は、幾何学的モデルおよびセンサデータ(例えば、現在の幾何学的モデルおよび現在のセンサデータ、など)の組み合わせに少なくとも部分的に基づいて、更新された状態を決定する。次いで、システム100は、計画を決定し、計画に従って次のアイテムのセットをプレースするようロボットを制御することに関連して、更新された状態を利用する。
いくつかの実施形態において、システム100が推定状態を更新する頻度は、動的に決定される。例えば、システム100は、移動後にシステムが推定状態を更新するアイテムの数に対応する値Xを動的に決定する。いくつかの実施形態において、システム100は、アイテムの1または複数の属性(例えば、以前に移動/プレースされたアイテムの属性、および/または、移動されるアイテムの属性)に少なくとも部分的に基づいて、値X(例えば、推定状態の更新頻度に対応する)を動的に決定する。一例として、システム100は、現在の推定状態を用いてX個のアイテムのセットがプレースされる前(例えば、直前など)に、不規則にプレースされたアイテムまたは変形可能なアイテムがプレースされ、もしくは、X個のアイテムのセットが不規則形状のアイテムまたは変形可能なアイテムを含むとの判定に基づいて、値Xを動的に決定する。
アイテムのセットに対する配置(例えば、配置に対応する計画)を決定し、配置に従ってアイテムのセットをピックアンドプレースするようロボットアーム102を制御することに関連して、システム100は、状態空間、行動空間、および、探索空間を決定する。システム100は、アイテムのセットに対する様々なプレース位置および/または向きを決定することに少なくとも部分的に基づいて、探索空間を決定する。システム100は、さらに、システム100が1または複数のアイテムのバッファリングを可能にするよう構成されている場合、アイテムのセット内のアイテムのプレースの順序の変化に基づいて探索空間を決定できる。
アイテムのセットをピックアンドプレースする(例えば、アイテムのセットをパレタイズする)ための計画を決定することは、プレース位置(例えば、アイテムがプレースされる移動先位置)と、アイテムがプレースされる向きとを決定することを含む。いくつかの実施形態において、1または複数のアイテムのセットをピックアンドプレースするための計画を決定または更新することは、アイテムのセット内のアイテムに対する様々なプレース位置および向きを評価することを含む。システム100は、(i)アイテムのセットがプレースされるパレットまたはその他の位置の状態のための状態空間と、(ii)対応する移動先位置および向きへのアイテムのセット内のそれぞれのアイテムのプレースに対応する行動空間とに基づいて、探索空間を決定する。例えば、システム100は、アイテムのセットに含まれる各アイテムに対応する配置(例えば、プレース位置および向きなど)を決定することによって、アイテムのセットをパレタイズするための計画のセットを決定する。別の例として、システム100は、アイテムのセット内の各アイテム(または、アイテムのセットのN個のアイテム、Nは整数)について、配置(例えば、プレース位置および向きなど)の複数の組み合わせ/順列を決定する。計画を決定することは、さらに、対応する移動先位置および向きにプレースされたアイテムのセットの少なくとも一部を含むアイテムのスタックの予測安定性を決定することを含みうる。いくつかの実施形態において、システム100は、アイテムのセットをプレース/方向付けるための様々な組み合わせ/順列にそれぞれ対応する複数のシミュレーションを実行する。計画は、移動先位置および向きの最良の(例えば、最適な)組み合わせ/順列に少なくとも部分的に基づいて決定される。移動先位置および向きの最良の組み合わせ/順列は、最良の組み合わせ/順列のコストが、最低コストの組み合わせ/順列になり、または、コスト閾値(例えば、絶対閾値、異なる組み合わせ/順列に対する様々なコストの中のコストのパーセンタイル、など)より小さくなるように、コスト関数に基づいて選択されてよい。
いくつかの実施形態において、システム100は、N個の次のアイテムのセットの配置のための探索空間を決定し、ここで、Nは正の整数である。一例として、ロボットがピックして移動先位置にプレースするために、アイテムが作業スペースへ搬送された場合、システム100は、プレースされる次のM個のアイテムを決定可能になってよく、ここで、Mは正の整数である。Mは、N以上である(例えば、次のN個のアイテムは、次のM個のアイテムのサブセットであってよい)。システム100は、作業空間内の1または複数のセンサ(例えば、ビジョンシステム)によって取得されたセンサデータに基づいて、次のM個のアイテムを決定してよい。いくつかの実施形態において、システム100は、ピックアンドプレース(例えば、パレタイズ)されるアイテムのマニフェストまたはその他の所定のリストに基づいて、次のN個のアイテムを決定する。
いくつかの実施形態において、システム100は、各ノードがアイテムのセットに対する配置の異なる組み合わせに対応する木として探索空間を表現する。システム100は、状態空間および行動空間に少なくとも部分的に基づいて、探索空間を決定する。状態空間は、作業空間の現在の状態(例えば、パレットの現在の状態)に対応する。行動空間は、アイテムのセットの配置(例えば、プレース位置および向きなど)によって規定される空間に対応する。根ノードは、作業空間の現在の状態(例えば、パレットの現在の状態)である。根ノードの後の第1ステップは、第1次のアイテムのプレースのためのプレース位置および向きの様々な順列に対する枝/ノードに対応する。根ノードの後の第2ステップは、第2次のアイテムのプレース位置および向きの様々な順列に対する枝/ノードに対応する。
いくつかの実施形態において、システム100は、各ノードがアイテムのセットに対する配置の異なる組み合わせに対応するマルコフ決定過程として探索空間を表現する。例えば、システム100がピックアンドプレースされるアイテムのセット全体の知識を有していない場合、システム100は、ピックアンドプレースされる将来のアイテムに関して不確実性があるので、マルコフ決定過程を実施する。
アイテムのセットの配置(例えば、移動先位置および向き)は、探索空間内で探索を実行することによって選択される。例えば、システム100は、最良/最低コストソリューションまたは十分に良好なソリューション(所定のコスト閾値を満たすソリューションなど)を特定するために、探索空間内で探索を実行する。しかしながら、プレース位置および向きのすべての可能な組み合わせを含む探索空間全体を走査することは、極端に計算コストが高い場合があり、アイテムをプレースするための計画の決定に、著しい待ち時間を追加しうる。例えば、探索空間が木として表現される場合、木の様々な枝を走査することは、非効率でありうる。探索空間は、アイテムの数が増加し、パレットサイズが増大する、などに伴って、指数関数的に大きくなりうる。いくつかの実施形態において、システム100は、システム100が配置(例えば、プレース位置、向きなど)を選択する探索空間を抑制する。しかしながら、探索空間を抑制しすぎると、アイテムのセットに対する配置の組み合わせ/順列(ここから、次のアイテムの配置が決定される)の数が準最適になりうる。
様々な実施形態によると、システム100は、より計算上合理的な探索空間を得るために(例えば、プレースされるアイテムの最適な位置を決定する目的で、より計算上合理的な方法を見出すために)、探索空間を抑制する。探索空間が木として表現されている場合、システム100は、木を剪定するための方法を決定し、システム100は、その木を剪定する。一例として、木を剪定することは、システム100が、剪定された枝/ノードに対応する状態を、可能なプレース位置/向きとしての考慮から除外するように、木の探索空間を抑制することを含む。いくつかの実施形態において、システム100は、潜在的な配置(位置および向き)の解析を制限し、または、剪定されなかった探索空間におけるそれらの配置に対して、最良の配置(例えば、移動先位置および向きの最良の組み合わせ/順列、アイテムの次のセットの安定した配置につながるような次のアイテムの配置に対する最良の移動先位置および向き、など)を探索する。
いくつかの実施形態において、システム100は、探索空間の様々な部分に関するシミュレーションを実行することに少なくとも部分的に基づいて、探索空間(例えば、木)を剪定する。一例として、木における各ノードは、特定のプレース位置および向きにアイテムをプレースすることに対応する。いくつかの実施形態において、システム100は、木における特定のノードに対応するプレース位置および向きに従って、アイテムの配置をシミュレートする。一例として、シミュレーションを実行することは、シミュレーションサービスをクエリすることを含む。シミュレーションサービスは、トレーニングデータ(アイテムの積み重ねの反復的な物理/現実世界の試行によって得られた情報など)に基づいて、機械学習処理を用いてトレーニングされた物理エンジンまたはモデルであってよい。シミュレーションサービスは、システム100上でまたはシステム100が通信するリモートシステム上で実行するアプリケーションまたはその他のプロセスであってよい。シミュレーションを実行したことに応じて、システム100は、かかるノードで木を剪定するか否かを決定する。システム100は、アイテムの配置に応じたアイテムのスタックの予測安定性に少なくとも部分的に基づいて、かかるノードで木を剪定することを決定しうる(例えば、探索空間は、物理的に不安定であると見なされる配置を除去/除外するように剪定されてよい)。いくつかの実施形態において、システム100は、ノードに対応する配置に対するコスト関数値を取得(例えば、計算)する。例として、コスト関数は、(i)アイテムのスタックの予測安定性、(ii)アイテムのスタックが完成するための時間、(iii)アイテムのスタックが所定の基準またはヒューリスティックを満たすか否かの達成度(例えば、スタックの上部に向かってプレースされる変形可能な部材、スタックの下部に向かってプレースされる重いアイテム、スタックの上部に向かってプレースされる不規則形状のアイテム、など)、(iv)衝突回避または衝突予測(例えば、プレース位置への軌道がアイテムまたはロボットアームと別のものとの間の衝突につながるか否かの判定)、(v)アイテムの移動効率、ならびに、(vi)配置に向けてアイテムをピック、移動、または、プレースする時にロボットが不適切な姿勢に構成されると予測されるか否かの示唆、の内の1または複数に少なくとも部分的に基づきうる。
いくつかの実施形態において、木(またはマルコフ決定過程)の各ノードについて、システム100は、ノードにおける配置に従って、対応するアイテムをプレースすることをシミュレートする。対応するアイテムの配置をシミュレートしたことに応じて、システム100は、アイテムのスタックをモデル化する。例えば、システム100は、アイテムのスタック(例えば、アイテムのモデル化されたスタック)の予測安定性を決定する。予測安定性を決定したことに応じて、システム100は、ノード(および、そのノードの子であるノード/枝)を剪定するか否かを決定する。例えば、システム100は、予測安定性を所定の安定性閾値と比較することに少なくとも部分的に基づいて、ノードを剪定するか否かを決定する。予測安定性が安定性閾値よりも小さい場合、システム100は、ノードを剪定することを決定する。別の例として、システム100は、ノードに関連付けられている配置に対応するコスト関数の値(例えば、コスト)に基づいて、ノードを剪定するか否かを決定する。システム100は、コストを所定のコスト閾値と比較する。コストが所定のコスト閾値より高い場合、システム100は、ノードを剪定することを定する。
様々な実施形態によると、システム100は、次のアイテム(例えば、プレースされるアイテムのセットにおける第1次のアイテム)に対する配置のシミュレーションを実行する。配置のシミュレーションは、(アイテムのパレット/スタックの現在の状態に対応する)根ノードから枝分かれするノードの第1レベルを決定することに関連して用いられる。アイテムの配置のシミュレーションを実行することは、計算コストが高い。例えば、システム100は、シミュレーションを実行して結果(例えば、推定状態のモデル)を受信するために、物理エンジンにクエリする。シミュレーションの忠実性は非常に望ましいが、配置の高忠実度シミュレーション(例えば、かかる配置に基づいてアイテムのスタックのモデルを決定すること)は、コストが掛かる(例えば、計算コストが高い、時間的コストが高い、など)。
いくつかの実施形態において、次のレベルのノード(例えば、アイテムのセット内の第1次のアイテムの後のアイテムの配置)について、システム100は、推定状態の予測安定性(例えば、アイテムのスタック)を決定することに関連して、1または複数のヒューリスティックを用いる。1または複数のヒューリスティックは、予め規定されうる。例えば、1または複数のヒューリスティックは、積み重ねポリシーまたはシステムの選好性に基づいて規定されてよい。ヒューリスティックは、管理者によって経験的に決定され、それに応じて予め設定されてよい。いくつかの実施形態において、1または複数のヒューリスティックは、(例えば、ノードに対する配置に従って)論理的にプレースされる対応するアイテムまたはアイテムのスタック内のアイテムの属性に基づく。様々な実施形態によると、システム100は、根ノードから枝分かれする第1レベルのノードに対してのみアイテムの配置のシミュレーションを実行し、N-1個の次のアイテムについて、システム100は、1または複数のヒューリスティックを用いて、それぞれのノードに対するプレース位置および向きに従った対応するアイテムの配置によって、予測安定性、または、安定性への影響を決定する。
ヒューリスティックの例は、(i)アイテムのスタックの底部またはその近くにおける非剛性または変形可能なアイテムの配置に基づいた予測安定性、(ii)アイテムのスタックの上部またはその近くにおける大きいアイテムの配置に基づいた予測安定性、(iii)アイテムのスタックの底部またはその近くにおける重いアイテムの配置に基づいた予測安定性、(iv)アイテムのスタックの底部またはその近くにおける重いアイテムの配置に基づいた予測安定性、(v)スタックの底部またはその近くにおける不規則形状のアイテムの配置に基づいた予測安定性、および、(vi)スタックの上部またはその近くにおける不規則形状のアイテムの配置に基づいた予測安定性、を含みうる。様々なその他のヒューリスティックが実装されてもよい。一例として、ヒューリスティックは、非剛性または変形可能なアイテムがアイテムのスタックの底部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの上部またはその近くにプレースされた非剛性または変形可能なアイテムの配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。一例として、ヒューリスティックは、重いアイテムがアイテムのスタックの上部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの底部またはその近くにプレースされた重いアイテムの配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。一例として、ヒューリスティックは、不規則形状のアイテム(例えば、非長方形のアイテム、丸いアイテム、など)がアイテムのスタックの底部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの上部またはその近くにプレースされた不規則形状のアイテム(例えば、非長方形)の配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。
様々な実施形態によると、ヒューリスティックは、物理的シミュレーションの計算効率の良いバリエーションである。例えば、ヒューリスティックは、配置のシミュレーションを実行することと同様になるように規定される。
特定の配置に基づいてアイテムのスタックの予測安定性またはアイテムのスタックの安定性への影響を決定するために、ヒューリスティックを用いることは、特に、配置のシミュレーションを実行して、シミュレーションに基づいてアイテムのスタックのモデルを決定することと比べると、比較的効率的である。
第1次のアイテム(例えば、根ノードから枝分かれする第1レベルのノード)に対するシミュレートされた配置を用いて、かつ、第2以降の次のアイテム(例えば、第2レベルノードおよび第2レベルノードからそれぞれ枝分かれするノード)の配置にヒューリスティックを用いて、アイテムのスタックおよび予測安定性を決定することは、次のアイテムの配置に対する正確な推定状態と、木の残りを埋める(例えば、予測安定性に対する影響の予測安定性を決定する)コスト効率の高い方法とを提供する。
様々な実施形態が、木(またはマルコフ決定過程)からかかるノードを剪定するか否かに関連して、木のノードにおけるアイテムのスタックの予測安定性に関する情報を用いる。例えば、システム100は、根ノードから始まる木を走査し、システム100は、スタックが安定であると予測されるか否かを次のノードについて決定する(例えば、安定性閾値よりも大きい安定性、スタックが安定であると予測されることを示唆するヒューリスティック、スタックが不安定であると予測されることを示唆するヒューリスティックがない、など)。スタックが特定のノードで安定であると予測されると判定したことに応じて、システム100は、次のレベルのノード(例えば、特定のノードから枝分かれするノード)に進み、スタックが次のレベルのノードで安定であると予測されるか否かを判定できる。特定のノードが不安定である(安定性閾値より小さい予測安定性、スタックが不安定であると予測されることを示唆するヒューリスティック)と判定したことに応じて、システム100は、ノード(および特定のノードから枝分かれするすべての次のレベルのノード)を剪定する。
いくつかの実施形態において、システム100は、アイテムのバッファリングを許容し/可能にするよう構成されており、システム100は、閾値バッファ量までアイテムの配置の順序を変更することを含め、アイテムの配置の組み合わせ/順列に少なくとも部分的に基づいて探索空間を決定する。例えば、システム100は、2個までのアイテムのバッファリングを許容するよう構成されている場合、プレースされる次の3個のアイテムからのプレースする第1次のアイテムの選択に基づいて、探索空間を決定してよい。システム100は、各プレース順序ならびにプレース位置および向きの対応する組み合わせ/順列に対して探索空間内のノードを決定してよい。
いくつかの実施形態において、システム100は、アイテムのバッファリングを許容し/可能にしないよう構成されており、システム100は、アイテムのセットが作業空間へ(例えば、コンベアを介するなどしてロボットへ)提供される順序における各次のアイテムの配置に少なくとも部分的に基づいて、探索スペースを決定する。
様々な実施形態によると、システム100は、次のN個のアイテムの最良の配置(例えば、最高の予測安定性および/または最低コストを有する配置、など)の決定に少なくとも部分的に基づいて、第1次のアイテムをプレースするための計画(例えば、移動先位置および向き)を決定する。次いで、システム100は、計画に従って、第1次のアイテムをピックアンドプレースするようロボットを制御する。第1次のアイテムをプレースしたことに応じて、システム100は、第2次のアイテムおよび後続のアイテムをプレースするための探索空間を決定する。例えば、探索空間は、アイテムのスタックに対応する根ノードを有し、ここで、アイテムのスタックは、第1次のアイテムを含み、探索空間の第1レベルノードは、第2次のアイテムの配置に対応する。次いで、システム100は、探索空間内のノードに対するアイテムのスタックの予測安定性(または安定性への影響)を決定し、探索空間を剪定するか否か/剪定する方法を決定し、第2次のアイテムに対する最良の配置(例えば、最高の予測安定性、最低コスト、など)を選択する。様々な実施形態によると、システム100は、反復的に、探索空間を決定し、探索空間を剪定し、プレースされるアイテムのセット内のアイテムの各々に対するアイテムの配置を決定できる。
いくつかの実施形態において、システムは、パレットがそれぞれ配置されている複数のゾーンを備える。システムは、特定のアイテムがプレースされるアイテムのパレット/スタックを同時に決定し、選択されたパレットにアイテムをピックアンドプレースできる。
上述の例は、システムが1または複数のパレット上にアイテムのセットをパレタイズする文脈で論じられているが、ロボットシステムは、1または複数のパレットからアイテムのセットをデパレタイズすることに関連して利用されることが可能である。
図2は、様々な実施形態に従って、1または複数のアイテムをパレタイズするための処理を示すフローチャートである。いくつかの実施形態において、処理200は、少なくとも部分的には、図1のシステム100によって実施される。
工程210で、アイテムのセットが取得される。アイテムのセットは、1または複数のパレット上にまとめてパレタイズされるアイテムのセットに対応しうる。様々な実施形態によると、パレタイズされるアイテムのセットは、マニフェストまたは注文が遂行される指示に少なくとも部分的に基づいて決定される。例えば、注文を受信したことに応じて、注文のアイテムのリストが生成されてよい。別の例として、同じ受領者に送られる複数の注文に対応するアイテムのリストが生成されてもよい。
アイテムは、倉庫内の棚またはその他の位置に置かれていてよい。アイテムをパレタイズするために、アイテムは、アイテムをパレタイズするロボットシステムへ移動される。例えば、アイテムは、アイテムを1または複数のパレット上にパレタイズする1または複数のロボットアームのレンジ内へアイテムを移動させる1または複数のコンベヤ上に置かれてよい。アイテムのリストを取得したことに応じて、アイテムの少なくとも一部は、特定のロボットアーム、特定のロボットアームに対応する所定のゾーン、および/または、特定のパレット(例えば、パレット識別子、所定のゾーンに配置されたパレット)などに関連付けられる。
工程220で、アイテムのリストと、利用可能なセンサ情報とに基づいて、アイテムをピック/プレースする計画を生成するために、プランニング(または再プランニング)が実行される。計画は、アイテムのリスト上の1または複数のアイテムを取ってきて、アイテムをロボットアームへ運ぶための対応する1または複数のコンベヤ上にかかるアイテムをプレースするための1または複数の戦略を含んでよい。様々な実施形態によると、アイテムのリスト上のアイテムがパレタイズに向けて適切なロボットアームに提供される順序が、アイテムのリストに少なくとも部分的に基づいて決定される。
アイテムがコンベヤ上にプレースされる順序は、アイテムと、1または複数のパレット上のアイテムの予測スタック(例えば、モデル化された推定状態)とに少なくとも大まかに基づいてよい。例えば、アイテムをプレースする順序を決定するシステムは、(例えば、スタックのベース/底部を形成するアイテムを最初に搬送し、スタックの上に向かってアイテムを段階的に搬送するために)、アイテムの予測スタックのモデルを生成し、モデルに基づいて順序を決定してよい。アイテムのリスト上のアイテムが複数のパレット上にパレタイズされる場合、それぞれのスタックのベース/底部を形成する(または、そうでなければスタックの底部に比較的近い)と予期されるアイテムが、スタックの実質的に中央部または上部に積まれると予期されるアイテムの前にコンベヤ上に置かれてよい。複数のパレット上にパレタイズされる様々なアイテムが、互いに散在している場合があり、ロボットシステムは、ロボットアームへの到着時にアイテムをソートしてよい(例えば、ロボットアームは、アイテム(アイテムの識別子またはアイテムの属性など)に少なくとも基づいて、アイテムをピックして適切なパレット上にプレースしてよい)。したがって、対応するスタックのベース/底部に対応するアイテムは、互いに散在している場合があり、各パレット/スタックのための様々なアイテムは、対応するスタックが構築される時にコンベヤ上に置かれてよい。
コンピュータシステムは、アイテムのリストに属するアイテムについて、1または複数の予測スタックのモデルを生成してよい。モデルは、1または複数の閾値(適合性閾値または安定性閾値、その他のパッキング指標(例えば、密度)、など)に少なくとも部分的に基づいて生成されてよい。例えば、コンピュータシステムは、予測安定性値が安定性閾値を満たす(例えば、超える)スタックのモデルを生成できる。モデルは、機械学習処理を用いて生成されてよい。機械学習処理は、アイテムの以前のスタックなどの履歴情報(例えば、以前のスタック内のアイテムの属性、以前のスタックに関する性能指標(安定性、密度、適合性、など))に基づいて、繰り返し更新されてよい。いくつかの実施形態において、アイテムのリスト上のアイテムをパレタイズするためのスタックのモデルは、アイテムの1または複数の属性に少なくとも部分的に基づいて生成される。
アイテムの様々な属性が、計画を決定する前または間に取得されてよい。属性は、アイテムのサイズ、アイテムの形状、アイテムのパッケージのタイプ、アイテムの識別子、アイテムの重心、アイテムが壊れやすいか否かの表示、アイテムの上部または底部の表示、などを含んでよい。一例として、アイテムの少なくとも一部に関連付けられている1または複数の属性が、アイテムのリストに少なくとも部分的に基づいて取得されてよい。1または複数の属性は、1または複数のセンサによって取得された情報に少なくとも部分的に基づいて、ならびに/もしくは、アイテム(例えば、アイテムタイプ、アイテム識別子(シリアル番号、モデル番号、など))に対する属性のマッピングにおいてルックアップを実行することによって、取得されてよい。
いくつかの実施形態において、アイテムのリストに属するアイテムについて、1または複数の予測統計値のモデルを生成することは、作業空間(例えば、アイテムの1または複数のスタックを含む作業空間)について、推定状態を生成する(例えば、決定する)ことを含む。コンピュータシステムは、1または複数のアイテムのセットを移動(例えば、パレタイズまたはデパレタイズ、など)させるための計画を決定し、コンピュータシステムは、計画に従って、1または複数のアイテムのセットを移動させるようロボット(例えば、ロボットアーム)を制御する。計画に従って1または複数のアイテムのセットを移動したことに応じて、コンピュータシステムは、作業空間の推定状態を決定する。例えば、コンピュータシステムは、アイテムのセットの移動に少なくとも部分的に基づいて、推定状態を更新する。いくつかの実施形態において、推定状態は、幾何学的モデルおよびセンサデータが不一致である(例えば、幾何学的モデルとセンサデータとの間の差異が所定の差異閾値よりも大きい、または、異常を含んでいる、など)との判定に応じて、幾何学的モデルまたはセンサデータ、もしくは、幾何学的モデルおよびセンサデータの組み合わせに少なくとも部分的に基づいて決定される。更新された/現在の推定状態は、1または複数のアイテムのセットの移動を反映している(例えば、パレタイズの場合、更新された推定状態は、スタック上への1または複数のアイテムのセットのプレースに関する情報などを含む)。更新された/現在の推定状態を決定したことに応じて、コンピュータシステムは、1または複数のアイテムの別のセットを移動させるための計画を決定し、コンピュータシステムは、計画に従って、1または複数のアイテムの別のセットを移動させるようロボットを制御する。
いくつかの実施形態において、コンピュータシステムは、(i)所定の数のアイテムの移動(例えば、プレース)の後、もしくは、(ii)所定の数のアイテムの移動、または、異常(1または複数の異常基準(例えば、異常の程度が異常閾値を超えること、など)を満たす異常など)の検出のいずれか早い方の後に、現在の状態を更新する(例えば、幾何学的モデルへの更新に基づいて更新する)。アイテムの所定の数(例えば、X個のアイテム、Xは正の整数)は、ユーザ選択、ロボット制御システムポリシーに基づいて設定され、または、アイテムの配置の実証分析に基づいて他の方法で決定されうる。一例として、アイテムの所定の数は、アイテムの数が所定のコスト関数(例えば、効率、安定性、安定性の予測変化、などを反映するコスト関数)に関して最適/最良の結果をもたらすとの判断に基づいて設定される。一例として、コンピュータシステムは、現在の推定状態を決定し、現在の推定状態を用いて、次のX個のアイテムを移動させるための計画を決定し、X個のアイテムの移動(例えば、アイテムのスタッキングまたはデスタッキング)の後に、コンピュータシステムは、更新された推定状態(例えば、X個のアイテムの配置を反映するための幾何的な更新/モデル)を決定する。コンピュータシステムは、幾何学的モデルおよびセンサデータ(例えば、現在の幾何学的モデルおよび現在のセンサデータ、など)の組み合わせに少なくとも部分的に基づいて、更新された状態を決定する。次いで、コンピュータシステムは、計画を決定し、計画に従って次のアイテムのセットをプレースするようロボットを制御することに関連して、更新された状態を利用する。
様々な実施形態によると、コンピュータシステムは、幾何学的モデルとセンサデータとの間の補間を実行することに少なくとも部分的に基づいて、推定状態を決定する。例えば、システムは、幾何学的モデルの特定の部分とセンサデータの対応する部分とに対して補間を実行する(例えば、特定の部分は、差異閾値を超えまたは異常を含む幾何学的モデルとセンサデータとの間の差異に対応しうる)。
様々な補間技術が実施されてよい。幾何学的モデルの特定の部分は、幾何学的モデルのための点群における特定の点(または点のセット)に対応してよく、センサデータの対応する部分は、センサデータのための点群におけるその特定の点に対するセンサデータであってよい、などである。いくつかの実施形態において、システムは、幾何学的モデルとセンサデータとの間で適応補間を実行する。いくつかの実施形態において、システムは、幾何学的モデルとセンサデータとの間で非適応補間を実行する。適応補間処理の例は、最近傍補間、バイリニア補間、バイキュービック補間、スプライン補間、シンク補間、ランチョス補間、などを含む。様々な他の補間処理が、推定状態を決定することに関連して実行されてもよい。
いくつかの実施形態において、システムは、次の配置(例えば、プレースされるアイテムのセットの次のアイテムの配置)を決定したことに関連して、現在の推定状態を用いる。例えば、システムは、推定状態に少なくとも部分的に基づいて、次のアイテムに対する可能な配置の探索空間を決定する。いくつかの実施形態において、システムは、探索空間(例えば、探索空間を表す木構造、または、マルコフ決定過程、など)の根ノードとして推定状態を用い、システムは、次のアイテムまたはアイテムのセット(例えば、次にプレースされるN個のアイテムのセット)の様々な組み合わせ/順列を決定する。
探索空間を決定したことに応じて、システムは、サービスの質、もしくは、次のアイテムの配置のための計画を決定するために割り当てられるリソースの量または待ち時間のその他の基準などに基づいて、探索空間を剪定するか否かを決定する。システムは、準最適な配置(例えば、アイテムの不安定なスタックにつながると予測される配置、または、かかる配置のコストが所定のコスト閾値を超えること、など)に対応するアイテムのセットに対する配置の組み合わせ/順列を除去するために、探索空間を剪定する。探索空間を剪定したことに応じて、システムは、最良の配置(例えば、アイテムのセット(N個の次のアイテムのセットなど)に対する最良の配置を生み出すと予測される次のアイテムの配置)を特定するために、探索空間内の配置の残りの組み合わせ/順列を評価する。最良の配置は、スタックの予測安定性、次のアイテムの配置に対するコスト(またはアイテムのセットの配置に対するコスト)、などに少なくとも部分的に基づいて決定されてよい。
次のアイテムに対する配置を決定したことに応じて、システムは、対応する移動先位置および関連付けられている向きにアイテムをプレースするための計画を決定する。
工程230で、アイテムは、工程220で決定および/または更新された計画に従って、ピックされ、対応するコンベヤ上にアイテムがプレースされる場所の近くの位置へ(所定の/計画された)軌道を通して移動され、移動先位置にプレースされる。
図の例において、(再)プランニングおよび計画実施(工程220、230)は、アイテムのリスト上のアイテムを提供する高レベル目標が完了(工程240)するまで継続し、完了すると、処理200は終了する。様々な実施形態において、再プランニング(工程220)は、予期しないおよび/または識別できないアイテムの到着、属性を示すセンサ読み取り値が、アイテム識別および/または関連付けられているアイテムモデル情報に基づいて予測されたもの以外の値を有すること、などの条件によってトリガされてよい。予期されない条件の他の例は、予期されたアイテムが紛失していると判定すること、アイテム識別を再評価して、アイテムが元々識別されたもの以外であると判定すること、識別されたアイテムと一致しないアイテム重量またはその他の属性を検出すること、アイテムを落下させ、または、アイテムを把持しなおす必要があること、後に到着するアイテムが元々の計画および/または現在の計画によって予定されているように1または複数の他のアイテム上に積み重ねられるには重すぎると判定すること、ならびに、容器に積み重ねられたアイテムのセットにおける不安定性を検出することを含むが、これらに限定されない。
図3は、様々な実施形態に従って、アイテムを移動させるための計画を決定する処理を示すフローチャートである。いくつかの実施形態において、処理300は、少なくとも部分的には、図1のシステム100によって実施される。
工程305で、アイテムのセットが取得される。いくつかの実施形態において、アイテムのセットは、センサデータ(作業空間内のビジョンシステムによって取得された情報など)に少なくとも部分的に基づいて決定される。システムは、センサデータに少なくとも部分的に基づいて、プレースされる次のアイテムを決定する(例えば、システムは、パレチゼーションに向けて作業空間に搬送される次のN個のアイテムを決定する、など)。いくつかの実施形態において、アイテムのセットは、ピックアンドプレースされるアイテムの所定のマニフェストまたはリストに少なくとも部分的に基づいて決定される。
工程310で、アイテムのパレットまたはスタックの現在の状態が取得される。いくつかの実施形態において、システムは、アイテムのパレットまたはスタックの現在の推定状態を決定する。システムは、アイテムのスタックの幾何学的モデル、作業空間のセンサデータ、もしくは、幾何学的モデルおよびセンサデータの組み合わせを利用することに基づいて、推定状態を決定できる。例えば、システムは、推定状態を決定するために、幾何学的モデルおよびセンサデータに関する補間を実行する。
工程315で、システムは、アイテムのセットの少なくとも一部の配置のためのシナリオに対応する木を決定する。いくつかの実施形態において、システムは、次のN個のアイテムの配置の様々な組み合わせ/順列(例えば、プレース位置および向き)に対応する探索空間を決定する。
工程320で、木は、好ましくないシナリオに対応する枝および/またはノードを削除するために剪定される。いくつかの実施形態において、システムは、アイテムの不安定なスタックを生み出すと予測され(例えば、所定の安定性閾値よりも小さい予測安定性、アイテムのスタックが不安定であると予測されることを示唆するヒューリスティック、など)、もしくは、配置がコスト閾値を超える(例えば、所定のコスト関数に従った)コストを有すると予測される配置に対応する枝/ノードを決定する。アイテムの不安定なスタックを生じると予測される配置または閾値コストを超えるコストに対応する枝/ノードを決定したことに応じて、システムは、かかる配置を探索空間から剪定することを決定する。例えば、システムは、さらなる解析からかかる配置を除外する。いくつかの実施形態において、工程320は、工程350の後に実行される。
工程325で、残りの木におけるシナリオが選択される。いくつかの実施形態において、システムは、剪定された探索空間において配置の組み合わせ/順列を選択する。システムは、剪定された探索空間に残っているすべてのシナリオが解析されるまで、工程325~360を繰り返してよい。いくつかの実施形態において、シナリオは、探索空間を表す木構造におけるノードに対応する。いくつかの実施形態において、シナリオは、探索空間を表すマルコフ決定過程におけるノードに対応する。
工程330では、プレースするアイテムが決定される。いくつかの実施形態において、システムは、プレースする次のアイテムを決定する。いくつかの実装例において、システムは、アイテムのバッファリングを許容してよく、かかる実装例において、システムは、バッファ基準内に収まる次のアイテムのセットの中から次のアイテムを決定する。
工程335で、現在のシナリオに対してアイテムがプレースされうる配置が決定される。配置は、アイテムがプレースされうる様々なプレース位置および向きに対応しうる。
工程340で、シナリオに対してアイテムをプレースする位置および/または向きが選択される。一例として、システムは、アイテムの配置に対応する探索空間内のノードを選択し、選択されたノードに対応する位置および/または向きを決定する。
工程345で、アイテムのピックアンドプレースが、シミュレートされる。いくつかの実施形態において、アイテムの配置を選択したこと(例えば、探索空間内のノードに対応する配置を決定したこと)に応じて、システムは、アイテムのピックアンドプレースをシミュレートする。システムは、アイテムのピックアンドプレースをシミュレートすることに関連して、幾何学的モデルを利用できる。プレースされるアイテムが第1次のアイテムである場合、システムは、現在の推定状態に対応する幾何学的モデルを用いて、アイテムの既存のスタックの中にアイテムをプレースすることをモデル化する。プレースされるアイテムが第1次のアイテムの後続である場合、システムは、第1次のアイテムの論理的(例えば、理論的)配置を反映するように更新された現在の推定状態に対応する幾何学的モデルを利用することに基づいて、かかるアイテムの配置をシミュレートする。
工程350で、アイテムのスタックに対応する1または複数の特徴が決定される。例えば、システムは、アイテムの配置のシミュレーションに基づいて生成されたアイテムのスタックのモデルに少なくとも部分的に基づいて、シナリオに対応するアイテムのスタックの特徴を決定する。アイテムのスタックに関する特徴の例は、(i)予測安定性、(ii)コスト、(iii)シナリオに対する配置を実行するための時間、(iv)配置が実行された場合に衝突が起きると予測されるか否かの示唆、(v)ロボットがアイテムの配置中に不適切または非効率的な姿勢に配置されると予測されるか否かの示唆、などを含む。
工程355で、システムは、さらなるアイテムの配置のシミュレーションが実行されるか否かを判定する。例えば、システムは、シナリオに従ってプレースされるアイテムがアイテムのセット(または、次のN個のアイテムのセット)に残っているか否かを判定する。さらなるアイテムの配置のシミュレーションが実行されると判定したことに応じて、処理300は、工程330に戻り、処理300は、選択されたシナリオに対して実行されるアイテムの配置のさらなるシミュレーションがなくなるまで、工程330~355を繰り返す。さらなるアイテムが存在しないと判定したことに応じて、処理300は、工程360に進む。
工程360で、システムは、アイテムのセットの配置に対するさらなるシナリオが存在するか否かを判定する。例えば、システムは、アイテムを積み重ねるその他の順序または組み合わせ/順列が探索空間内に残っているか否かを判定する。さらなるシナリオが存在すると判定したことに応じて、処理300は、工程325に戻り、処理300は、さらなるシナリオが存在しなくなるまで工程325~360を繰り返す。さらなるシナリオが存在しないと判定したことに応じて、処理300は、工程365に進む。
工程365で、探索空間内の様々なシナリオが比較され、最良のシナリオが決定される。システムは、様々なシナリオに対するアイテムのスタックに対応する1または複数の特徴に少なくとも部分的に基づいて、最良のシナリオ(例えば、最良の結果を生み出すと予測されるアイテムのセットまたは次のアイテムの配置)を決定できる。例えば、システムは、最高の予測安定性を生み出す配置を決定する。別の例において、システムは、所定のコスト関数に従って、最低コストを生み出す配置を決定する。別の例として、システムは、予測安定性が安定性基準(例えば、安定性閾値を超える安定性、アイテムのスタックが不安定であることを示唆するヒューリスティックがないこと、など)を満たし、および/または、コスト基準を満たす探索で走査された第1の配置になるように、最良のシナリオを決定する。
工程370で、最良のシナリオに従ってアイテムのピックアンドプレースが実行される。いくつかの実施形態において、システムは、シナリオに対するプレース位置および向きに基づいて、アイテムをプレースするための計画を決定する。
図4Aは、様々な実施形態に従って、アイテムの異なる状態または配置に対応する木を示す。いくつかの実施形態において、図1のシステム100は、現在のアイテム(例えば、プレースされるアイテムのセットの中の次のアイテム)の配置を決定することに関連して、探索空間400を決定または利用する。
図4Aに示す例において、探索空間400は、木構造に表現されている。探索空間400は、複数のノードを含み、各ノードは、アイテムの配置のシナリオに対応してよく、各枝は、特定のアイテムおよび特定の向きでの現在のアイテムの配置に対応してよい。
探索空間400は、根ノード402を含む。根ノード402は、アイテムのパレット/スタックの現在の状態に対応する。例えば、システムは、推定状態を取得するために状態推定サービス/モジュールにクエリし、かかる推定状態を根ノード402における状態として用いる。
根ノードを決定したことに応じて、システムは、次のアイテムのセットに対する配置を繰り返し決定する。例えば、システムは、様々な次のアイテムの配置に基づいて、木の様々な順序を通して進む。ノード404、406、408、および、410は、第1次のアイテムの配置に対応する(例えば、システムが最良の配置を決定しているアイテム)。一例として、ノード404、406、408、および、410は、第1次のアイテムの異なる配置(例えば、異なる位置および/または異なる向き、もしくは、システムがいくつかのアイテムをバッファリングすることを許容されている場合の異なるアイテム)にそれぞれ対応する一次ノードである。図4Aおよび図4Bに示すように、ノード404、406、408、および、410の各々は、そこからそれぞれ枝分かれしている二次ノードを有する。例えば、ノード412、414、416、および、418は、ノード404から枝分かれしている。二次ノードの各々は、第2次のアイテムの異なる配置(例えば、異なる位置および/または異なる向き、もしくは、システムがいくつかのアイテムをバッファリングすることを許容されている場合の異なるアイテム)にそれぞれ対応している。システムは、各ノードに対応する配置を決定すると、シミュレートされる残りのアイテムの配置のためにノードから枝分かれしているノードを決定する。例えば、ノード412に対する配置を決定したことに応じて、システムは、ノード420、422、424、および、426を決定する(例えば、システムは、ノードについて推定状態および関連情報を決定する)。
システムが探索空間400における各ノードでの安定性を解析する場合、かかる解析は、計算コストが高くなりうるしたがって、図4Bに示すように、様々な実施形態が、アイテム(例えば、第1次のアイテム)の配置を決定することに関連して状態/安定性が決定されるノードの数を制限するために、探索空間を剪定する。
図4Bは、様々な実施形態に従って、アイテムの異なる状態または配置に対応する木を示す。いくつかの実施形態において、図1のシステム100は、現在のアイテム(例えば、プレースされるアイテムのセットの中の次のアイテム)の配置を決定することに関連して、探索空間430を決定または利用する。
システムは、剪定するか否かおよび/または探索空間400を剪定する方法を決定することに基づいて、探索空間430を決定する。仕切られた領域442、444、446、および、448は、好ましくないシナリオであるために探索空間400(例えば、木)から剪定されることをシステムが決定した木の領域に対応する。
いくつかの実施形態において、システムは、(i)ノードに関連付けられている配置に対するアイテムのスタックの状態のシミュレーション、および、(ii)1または複数のヒューリスティック、の内の1または複数に基づいて、ノードが好ましいシナリオに対応するのか好ましくないシナリオに対応するのかを判定する。いくつかの実施形態において、システムは、アイテムのスタックの予測安定性を決定することに関連して、一次ノード(例えば、404、406、408、および、410)に対するアイテムのスタックの状態をシミュレートする。いくつかの実施形態において、一次ノードより高次の順位を有するすべてのノード(例えば、412、414、416、418、420、422、424、426など)について、システムは、1または複数のヒューリスティックを用いて、対応する配置が好ましくないシナリオであると予測されるか否かを判定する(例えば、安定したスタックまたは不安定なスタックにつながると予測されるのか、かなりのコスト(コスト閾値よりも高いコストなど)を有すると予測されるのか、ロボットを不適切な姿勢に配置させると予測されるのか、など)。
様々な実施形態によると、状態、予測安定性、および/または、1または複数のヒューリスティックに基づいた配置の好ましさの解析結果を決定したことに応じて、システムは、対応するノードを剪定するか否かを決定する。システムは、ノードを剪定すると決定した場合、そのノードと、そのノードから枝分かれしているすべての潜在的なノードとを剪定する。例えば、ノード426が剪定される(例えば、ノードが好ましくないシナリオに対応する)と決定したことに応じて、システムは、それに対応して、ノード426から直接的または間接的に枝分かれしているかかるノードに基づいて、ノード432、434、436などを剪定することを決定する。いくつかの実施形態において、システムは、1または複数のヒューリスティックを用いたさらなる解析なしに、ノード432、434、436などを剪定することを決定する。例えば、システムは、ノード426を剪定するとの決定に基づいて、ノード432、434、436などを剪定することを決定する。
いくつかの実施形態において、探索空間430を決定した後(例えば、探索空間400を剪定した後)、システムは、次のアイテム(例えば、一次ノードに対するアイテム)のための最良の配置を決定する。システムは、予測安定性、配置のコスト、次のアイテムと次のアイテムの配置後のM個のアイテムをプレースするコスト、次のアイテムと次のアイテムの配置後のM個のアイテムの配置後のアイテムのスタックの予測安定性、配置の好ましさ、の内の1または複数に基づいて、最良の配置を決定できる。
いくつかの実施形態において、システムは、次のアイテムの最良の配置がノード408における配置に対応することを決定する。例えば、システムは、アイテムのスタックの状態がいくつかの配置順を通して好ましい(例えば、コスト効率が高い、安定的である、など)ままである(例えば、状態が、最多数の後続のアイテムの配置に対して好ましいままである)との判定に基づいて、ノード408における配置が最良であると決定する。いくつかの実施形態において、システムは、ノード438および440が、9個の異なるアイテム(例えば、次のアイテムおよび次のアイテム後のM個のアイテム、ここで、Mはこの例では8である)の配置を通して好ましいままであると判定する。いくつかの実施形態において、システムは、最良の配置を決定するために、探索空間430に関してビーム探索を実行する。
ノードを剪定するか否かを決定することに関連して、システムは、剪定基準を実装できる。剪定基準は、(i)状態が、状態安定性閾値より小さい安定性を有すると予測されること、(ii)状態がヒューリスティックに違反すること(例えば、変形可能なアイテムがアイテムのスタックの底部またはその近くにプレースされること、など)、(iii)対応する配置のコストがコスト閾値を超えると予測されること、(iv)ロボットが不適切な姿勢に配置されると予測されること、(v)アイテムのスタックの予測密度が所定の密度閾値より小さいこと、などの内の1または複数を含みうる。
図4Cは、様々な実施形態に従って、潜在的な配置と共にアイテムのスタックを示す図である。いくつかの実施形態において、図1のシステム100は、アイテムのスタックのモデル450を決定する。
いくつかの実施形態において、システムは、幾何学的モデルおよび/またはセンサデータに基づいて、モデル450を決定する。システムは、機械学習モデルを用いて、モデル450を取得できる。
図4Cに示すように、システムは、(例えば、幾何学的モデルおよび/またはセンサデータに基づいた)現在の推定状態を用いて、アイテムのスタック内の様々なアイテムならびに/もしくは潜在的な配置位置を規定する縁部および頂点を決定できる。例えば、システムは、縁部(縁部452、454、456、458、460、462、464、466、および、468など)および/またはエッジが交わっている場所の頂点などを識別するために、画像処理または機械学習解析を実行する。1または複数のエッジを識別したことに応じて、システムは、現在のアイテム(例えば、第1次のアイテム)の潜在的な配置を決定する。システムは、将来のアイテムのセット(例えば、N個の次のアイテムのセットなど)の潜在的な配置も決定してよい。
いくつかの実施形態において、システムは、アイテムの配置を決定することに関連して、1または複数のルールまたはヒューリスティックを利用できる。ルールまたはヒューリスティックの例は、(i)縁部でのアイテムの配置に対するバイアス/好ましさ、(ii)アイテムの隣へのアイテムの配置に対するバイアス/好ましさ、(iii)アイテムがプレースされうる表面の上部表面積が、プレースされるアイテムの底面よりも広いこと、(iv)アイテムがプレースされうる表面エリアの上部表面積が、プレースされるアイテムの底面表面積の閾値パーセントより広いこと、(v)パレット表面の閾値距離内などアイテムのスタックの底部または近くに大きいまたは重いアイテムをプレースするバイアス/好ましさ、(vi)最大スタック高さの閾値距離内などアイテムのスタックの上部またはその近くに非剛性/変形可能なものをプレースするバイアス/好ましさ、(vii)潜在的な位置内にアイテムが収まる旨の示唆、ならびに、(Viii)或る位置にプレースされた場合のアイテムの上面が、隣接するアイテムと実質的に水平になる(隣接するアイテムの閾値高さ内に収まる、など)か否かの示唆、などを含む。様々なその他のルール/ヒューリスティックが実装されてもよい。
図4Cに示すように、システムは、アイテム(例えば、現在のアイテム)が潜在的な配置470、474、および、476にプレースされうることを決定する。図に示す例において、識別された可能性な配置470、474、および、476は、アイテムのスタックの上面(例えば、露出面)によって規定された縁部に沿って配置されている。
いくつかの実施形態において、可能な配置470、474、および、476を決定したことに応じて、システムは、機械学習モデルを用いて、配置を評価する。例えば、システムは、機械学習モデルを用いて、スコアリング関数に基づいて配置のスコアを決定する。
図4Dは、様々な実施形態に従って、潜在的な配置と共にアイテムのスタックを示す図である。いくつかの実施形態において、図1のシステム100は、アイテムのスタックのモデル480を決定する。
いくつかの実施形態において、システムは、幾何学的モデルおよび/またはセンサデータに基づいて、モデル480を決定する。システムは、機械学習モデルを用いて、モデル480を取得できる。いくつかの実施形態において、システムは、かかる位置がアイテム486の可能な配置であるか否かを決定することに関連して、位置482および484を評価する。図4Dに示すように、アイテム486は、不規則形状の物体である。例えば、アイテム486は、変形可能な部材および/または非剛性なタイプのパッケージ(例えば、ポリバック)であってよい。不規則形のアイテム486上にアイテムを積み重ねると、アイテムのスタックにおける不安定性の原因となりうる。
位置482に関して、少なくとも、表面がアイテム486の幅よりも実質的に狭い(例えば、位置482に対応する上部表面積が、アイテム486の底部表面積の閾値パーセントより小さい)ことから、システムは、かかる位置が実現不可能であると決定してよい。位置の上面が、プレースされるアイテムの底部表面積の閾値パーセントより小さい場合、かかる位置へのアイテムの配置は、不安定性につながりうる。
図5は、様々な実施形態に従って、アイテムのセットの配置に対応する木を決定するための処理を示すフローチャートである。いくつかの実施形態において、処理500は、図1のシステム100によって実行される。いくつかの実施形態において、処理500は、アイテムのセットの配置のための探索空間を決定することに関連して呼び出される。例えば、処理500は、アイテムがパレットまたはアイテムのスタック上にプレースされると決定したことに応じて呼び出される。一例として、システムは、プレースされる各アイテムのための探索空間を決定できる(例えば、処理500は、プレースされるアイテムのセットの各アイテムに対して呼び出される)。
工程505で、推定状態が取得される。いくつかの実施形態において、システムは、作業空間(例えば、パレットまたはアイテムのスタック)の現在の推定状態を取得する。例えば、システムは、推定状態を状態推定サービス/モジュールにクエリできる。推定状態は、パレット/アイテムのスタックの幾何学的モデルを含みうる。
工程510で、探索空間におけるノードに対応する配置が投入されるアイテムが決定される。例えば、システムは、プレースされる次のアイテムを決定する。いくつかの実施形態において、次のアイテムは、(例えば、コンベアによって)作業空間へ搬送される第1次のアイテムに対応しうる。いくつかの実施形態において、次のアイテムは、アイテムバッファリングに関する条件に基づいて、アイテムのセット(例えば、N個のアイテムのセット)から選択される。アイテムバッファリングに関する条件は、(i)バッファリングがシステムにおいて許容されているか否かの判定、(ii)バッファ可能なアイテムの数、(iii)現在バッファにあるアイテムの決定、などを含みうる。いくつかの実施形態において、アイテムは、探索空間における(例えば、探索空間を表す木構造における)ノードに対応する配置の決定に基づいて決定される。例えば、探索空間における各ノードは、特定のアイテムの特定の配置(例えば、位置および向き)に対応しうる。
工程515で、アイテムがプレースされる移動先位置が決定される。プレースされるアイテムを決定したことに応じて、システムは、アイテムがプレースされうる可能な移動先位置のセットから移動先位置を選択する。一例として、システムは、探索空間における特定のノードに対する配置に対応する移動先位置を決定する。
工程520で、アイテムが移動先位置にプレースされる向きが決定される。いくつかの実施形態において、システムは、アイテムが移動先位置にプレースされうる可能な向きのセットから向きを選択する。一例として、システムは、探索空間における特定のノードに対する配置に対応する向きを決定する。
工程525で、ノードが、アイテムの配置のための移動先位置および向きに基づいて、探索空間内に作成される。いくつかの実施形態において、システムは、木表現で、または、マルコフ決定過程として、探索空間を表し、木は、アイテムの配置のための移動先位置および向きに対応するノードを含むよう構成される。
工程530で、アイテムがさらなる向きにプレースされうるか否かについて判定がなされる。システムは、配置が探索空間に含められるさらなる向き(例えば、アイテムが選択された移動先位置でプレースされうるその他のさらなる向き)が存在するか否かを判定する。工程530で、さらなる向きが存在すると判定したことに応じて、処理500は、別の向きが選択される工程520に戻り、処理500は、移動先位置でのアイテムの配置のためのさらなる向きが存在しなくなるまで、工程520~530を反復できる。
工程535で、アイテムがさらなる移動先位置にプレースされうるか否かについて判定がなされる。システムは、配置が探索空間に含められるかさらなる移動先位置が存在するか否かを判定する。工程535で、さらなる移動先位置が存在すると判定したことに応じて、処理500は、別の移動先位置が選択される工程515に戻り、処理500は、アイテムの配置のためのさらなる移動先位置が存在しなくなるまで、工程515~535を反復できる。
工程540で、さらなるアイテムに対する配置が評価されるか否かに関して判定がなされる。いくつかの実施形態において、システムは、プレースされるアイテムのセットが、配置のセットをまだ決定されていないアイテムを含んでいるかを判定する。いくつかの実施形態において、システムは、N個の次のアイテムのセットに対する配置を決定し、システムは、N個の次のアイテムのセットが、配置のセットをまだ決定されていないアイテムを含んでいるか否かを判定する。工程540で、さらなるアイテムに対する配置が評価されると判定したことに応じて、処理500は、別のアイテムが選択される工程505に戻り、アイテムに対して評価される配置がなくなるまで、工程505~540を反復できる。工程540において配置を評価されるさらなるアイテムがないと判定したことに応じて、処理500は、工程545に進む。
工程545で、探索空間は、アイテムの配置に対応するノードに少なくとも部分的に基づいて取得される。例えば、システムは、アイテムのセットの様々な配置(例えば、移動先位置および/または向き)に対応するノードを含む探索空間を決定する。システムは、現在のアイテムの配置を決定することに関連して、探索空間を利用できる。
図6は、様々な実施形態に従って、アイテムのセットの配置のための木のノードを剪定する処理を示すフローチャートである。いくつかの実施形態において、処理600は、図1のシステム100によって実行される。いくつかの実施形態において、処理600は、配置および/またはアイテムをプレースするための計画を決定することに関連して呼び出される。
工程605で、アイテムのセットをプレースする様々な状態のための探索空間が取得される。いくつかの実施形態において、システムは、アイテムのセットの配置の様々な組み合わせ/順列のための探索空間を決定する。一例として、探索空間は、図5の処理500を呼び出すことに基づいて取得される。いくつかの実施形態において、探索空間は、木構造またはマルコフ決定過程として表現される。
工程610で、現在のアイテムの配置のための探索空間のノードが選択される。いくつかの実施形態において、探索空間のノードは、特定のアイテムの配置に対応する。例えば、探索空間のノードは、特定の位置および特定の向きへの特定のアイテムの配置に対応する。別の例として、探索空間のノードは、特定の位置および特定の向きへの特定のアイテムの配置に応じたアイテムのスタックの状態に対応する。
工程615で、モデルが、ノードの状態に従って現在のアイテムの配置をシミュレートするために用いられる。特定のノードに関連付けられているプレース位置および向きを決定したことに応じて、システムは、位置および向きに従ってアイテムの配置をシミュレートする。モデルは、現在のアイテムの配置に基づいて更新される幾何学的モデルでありうる。いくつかの実施形態において、システムは、配置を考慮して更新された状態を状態推定サービス/モジュールにクエリする。
工程620で、アイテムのスタックの安定性が、現在のアイテムの配置に基づいて決定される。いくつかの実施形態において、システムは、配置をシミュレートすること(例えば、安定性をシミュレートするために物理エンジンを呼び出すこと)、ならびに/もしくは、1または複数のヒューリスティックに基づいて、アイテムのスタックの予測安定性を決定する。
工程625で、アイテムのスタックの安定性が安定性閾値より大きいか否かに関する判定がなされる。ノードに対するアイテムの配置をモデル化したことに応じて、システムは、アイテムのスタックの予測安定性を決定し、予測安定性を所定の安定性閾値と比較する。工程625で、アイテムのスタックの安定性(例えば、予測安定性)が所定の閾値より大きいと判定したことに応じて、処理600は、工程630に進む。逆に、工程625で、アイテムのスタックの安定性が所定の閾値より大きくないと判定したことに応じて、処理600は、工程650に進む。
工程630で、プレースされる次のアイテムに対応する下流ノードが選択される。いくつかの実施形態において、システムは、工程610で選択されたノードから枝分かれしているノードを選択する。工程610で選択されたノードが一次ノード(例えば、木/探索空間の根ノードから直接的に枝分かれしているノード)である場合、工程630で(少なくとも工程630の最初の反復で)選択されるノードは、二次ノードに対応しうるものであり、工程630の後の繰り返しでは、二次ノードから枝分かれしているノード(例えば、三次ノード、四次ノード、など)を含みうる。いくつかの実施形態において、工程630で選択されたノードは、現在のアイテム(例えば、プレースされるアイテムのセットの第1次のアイテム)の後にプレースされるアイテムの配置に対応する。
工程635で、ヒューリスティックが、ノードの状態に従って次のアイテムの配置を評価するために用いられる。いくつかの実施形態において、システムは、ヒューリスティックを用いて、次のアイテムの配置がアイテムのスタックの安定性に悪影響を与えると予測されるか否かを一般的に判定する。いくつかの実施形態において、システムは、1または複数のヒューリスティックを用いて、アイテムのスタックが次のアイテムの配置後に安定的である(例えば、安定したままである)と予測されるか否かを判定する。
いくつかの実施形態において、より高次のレベルのノード(例えば、アイテムのセット内の第1次のアイテムの後のアイテムの配置)について、システムは、推定状態の予測安定性(例えば、アイテムのスタック)を決定することに関連して、1または複数のヒューリスティックを用いる。1または複数のヒューリスティックは、予め規定されうる。例えば、1または複数のヒューリスティックは、積み重ねポリシーまたはシステムの選好性に基づいて規定されてよい。ヒューリスティックは、管理者によって経験的に決定され、それに応じて予め設定されてよい。
ヒューリスティックの例は、(i)アイテムのスタックの底部またはその近くにおける非剛性または変形可能なアイテムの配置に基づいた予測安定性、(ii)アイテムのスタックの上部またはその近くにおける大きいアイテムの配置に基づいた予測安定性、(iii)アイテムのスタックの底部またはその近くにおける重いアイテムの配置に基づいた予測安定性、(iv)アイテムのスタックの底部またはその近くにおける重いアイテムの配置に基づいた予測安定性、(v)スタックの底部またはその近くにおける不規則形状のアイテムの配置に基づいた予測安定性、および、(vi)スタックの上部またはその近くにおける不規則形状のアイテムの配置に基づいた予測安定性、を含みうる。様々なその他のヒューリスティックが実装されてもよい。一例として、ヒューリスティックは、非剛性または変形可能なアイテムがアイテムのスタックの底部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの上部またはその近くにプレースされた非剛性または変形可能なアイテムの配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。一例として、ヒューリスティックは、重いアイテムがアイテムのスタックの上部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの底部またはその近くにプレースされた重いアイテムの配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。一例として、ヒューリスティックは、不規則形状のアイテム(例えば、非長方形のアイテム、丸いアイテム、など)がアイテムのスタックの底部またはその近くにプレースされた場合に、アイテムのスタックが不安定になることを示唆する。一例として、ヒューリスティックは、アイテムのスタックの安定性が、アイテムのスタックの上部またはその近くにプレースされた不規則形状のアイテム(例えば、非長方形)の配置によって(例えば、少なくとも閾値安定性の量だけ)悪影響を受けないことを示唆する。
工程640で、次のアイテムのシミュレート済みの配置の安定性が決定される。いくつかの実施形態において、システムは、1または複数のヒューリスティックを用いて、次のアイテムの配置後のアイテムのスタックの予測安定性を決定する。一例として、システムは、1または複数のヒューリスティックを用いて、アイテムのスタックの予測安定性を定性的に決定する。システムは、1または複数のヒューリスティックを用いて、対応する移動先位置および向きへのアイテムの配置がアイテムのスタックを不安定にさせるか否か、アイテムの配置が安定性を改善するか否か、などを判定できる。
工程645で、アイテムのスタックの安定性が安定性閾値より大きいか否かに関する判定がなされる。ノードに対するアイテムの配置をモデル化したことに応じて、システムは、アイテムのスタックの予測安定性を決定し、予測安定性を所定の安定性閾値と比較する。工程645で、アイテムのスタックの安定性(例えば、予測安定性)が所定の閾値より大きいと判定したことに応じて、処理600は、工程655に進む。逆に、工程645で、アイテムのスタックの安定性が所定の閾値より大きくないと判定したことに応じて、処理600は、工程650に進む。
工程650で、対応するノードが剪定される。アイテムのスタックが十分に安定していない(例えば、予測安定性が安定性閾値より小さい、など)と判定したことに応じて、システムは、探索空間からノードを剪定することを決定する。いくつかの実施形態において、ノードの剪定は、(例えば、工程630で選択された次のアイテムの配置について、または、工程610で選択された現在のアイテムの配置について)現在のノードを剪定することを含む。いくつかの実施形態において、ノードの剪定は、現在のノードと、現在のノードから枝分かれしているノードとを剪定することを含む。システムは、アイテムのセットに対する潜在的な配置としてのかかるノードを除去するために、対応するノードを剪定する。
工程655で、さらなる下流ノードが存在するか否かについて判定がなされる。例えば、システムは、工程610で選択されたノードから直接的または間接的に枝分かれしているノードが存在するか否かを判定する。さらなる下流ノードが存在すると判定したことに応じて、処理600は、さらなる下流ノードが存在しなくなるまで工程630~655を繰り返す工程630に戻る。さらなる下流ノードが存在しないと判定したことに応じて、処理600は、現在のアイテムの配置に対応するさらなるノードが存在するか否かをシステムが判定する工程660に進む。例えば、システムは、探索空間(例えば、木)が、根ノードから直接的に枝分かれしているさらなるノードを有するか否かを判定する。現在のアイテムに対するその他のノードは、異なる配置(異なる配置位置および/または異なる向きなど)に対応しうる。
工程660において現在のアイテムの配置のためのさらなるノードが存在すると判定したことに応じて、処理600は、工程610に戻り、処理600は、現在のアイテムの配置のためのさらなるノードが存在しなくなくまで、工程610~660を反復する。
図7は、様々な実施形態に従って、アイテムのセットの配置のための木のノードを剪定する処理を示すフローチャートである。いくつかの実施形態において、処理700は、図1のシステム100によって実行される。いくつかの実施形態において、処理700は、配置および/またはアイテムをプレースするための計画を決定することに関連して呼び出される。
工程705で、アイテムのセットをプレースする様々な状態のための探索空間が取得される。いくつかの実施形態において、システムは、アイテムのセットを決定し、アイテムのセットの配置のための探索空間を決定する。例えば、システムは、アイテムのセット(またはプレースされるアイテムのセット内のN個の次のアイテムのサブセット)の配置のための様々な組み合わせ/順列を決定する。
工程710で、探索空間のノードが選択される。いくつかの実施形態において、探索空間は、木として表現され、システムは、根ノード(例えば、一次ノード)から枝分かれしているノードと、一次ノードから直接的または間接的にそれぞれ枝分かれしているノードとを逐次選択する。
工程715で、ノードに対応するアイテムの配置が、選択されたノードの状態に従ってシミュレートされる。選択されたノードは、アイテムの特定の配置(例えば、特定のプレース位置および/または向き)に対応する。システムは、アイテムのスタックの推定状態、もしくは、アイテムのスタックに関連付けられている1または複数の特徴(例えば、予測安定性、ヒューリスティックを用いた分析の結果、など)を決定するために、ノーノードに対する配置に従って、アイテムの配置をシミュレートする。
いくつかの実施形態において、アイテムの配置をシミュレートすることは、アイテムの配置を反映するアイテムのスタックの状態のモデルを提供するために状態評価サービス/モジュールにクエリすること、もしくは、1または複数のヒューリスティックに基づいてアイテムのスタックの状態の定性的に決定することを含む。
工程720で、システムは、アイテムの配置に基づいて(例えば、選択されたノードに対応するアイテムのスタックの状態に基づいて)アイテムのスタックの安定性を決定する。様々な実施形態によると、システムは、アイテムのスタックの予測安定性を決定する。別の例として、システムは、1または複数のヒューリスティックに少なくとも部分的に基づいて、安定性への影響を決定する。
工程725で、アイテムのスタックの安定性が安定性閾値より大きいか否かに関する判定がなされる。ノードに対するアイテムの配置をモデル化したことに応じて、システムは、アイテムのスタックの予測安定性を決定し、予測安定性を所定の安定性閾値と比較する。工程725で、アイテムのスタックの安定性(例えば、予測安定性)が所定の閾値より大きいと判定したことに応じて、処理700は、工程735に進む。逆に、工程725で、アイテムのスタックの安定性が所定の閾値より大きくないと判定したことに応じて、処理700は、工程730に進む。
工程730で、対応するノードが剪定される。アイテムのスタックが十分に安定していない(例えば、予測安定性が安定性閾値より小さい、など)と判定したことに応じて、システムは、探索空間からノードを剪定することを決定する。
工程735で、安定性が決定/回生されるさらなるノードが探索空間内に存在するか否かについて判定がなされる。さらなるノードが存在すると判定したことに応じて、処理700は、工程710に戻り、処理700は、システムがすべてのノード(剪定されていないノードなど、すべての残りノード)に対する安定性を決定/解析するまで工程710~735を反復できる。
いくつかの実施形態において、工程735でさらなるノードが存在しないと判定したことに応じて、システムは、最良または最適な結果(例えば、最良の配置)を生み出す配置を決定するために、探索空間を評価できる。例えば、システムは、最良の配置を選択するために、探索空間に残っているノード(例えば、剪定されていないノード)を解析する。最良の配置を決定したことに応じて、システムは、最良の配置に従って現在のアイテムをプレースするための計画を決定でき、システムは、さらに、計画に従ってアイテムをピックアンドプレースするようロボットを制御できる。
図8は、パレットおよび/またはアイテムのスタックの状態の推定を決定する一実施形態を示すフローチャートである。いくつかの実施形態において、処理800は、少なくとも部分的には、図1のシステム100によって実施される。
いくつかの実施形態において、処理800は、ロボットアームのための制御システム上で実行されるアプリ802、サーバ804、状態推定器806、ビジョンシステム808、および、配置決定器810、の内の1または複数によって実行される。
工程820で、アプリ802が、サーバ804へ要求を送信する。要求は、アイテムをプレースするための計画および/または戦略を求める配置要求に対応しうる。
配置要求を受信したことに応じて、工程822で、サーバ804が、状態判定を呼び出す。例えば、サーバ804は、推定状態を決定(および提供)するために、状態推定器806へ要求または命令を送信する。いくつかの実施形態において、状態推定器806は、サーバ804上で動作するモジュールである。いくつかの実施形態において、状態推定器806は、複数の異なるサーバ/ロボットシステムによってクエリされるサービスである。例えば、状態推定器806は、クラウドサービスであってよい。
状態決定を呼び出したことに応じて、状態推定器806は、ビジョン状態を取得する。いくつかの実施形態において、状態推定器806は、ビジョン状態の要求をビジョンシステム808へ送信する。
工程824においてビジョン状態の要求を受信したことに応じて、工程826で、ビジョンシステム808は、ビジョン状態を状態推定器806へ提供する。例えば、ビジョン状態の要求を受信したことに応じて、ビジョンシステムは、作業空間内の1または複数のセンサを用いて、作業空間のスナップショットをキャプチャする。
ビジョン状態を受信したことに応じて、状態推定器806は、パレット状態(例えば、パレットおよび/またはアイテムのスタックの推定状態)を決定する。状態推定器806は、幾何学的モデルおよびビジョン状態の内の1または複数に基づいて、推定状態を決定してよい。いくつかの実施形態において、状態推定器806は、(少なくともスタックの一部に関して)幾何学的モデルおよびビジョン状態を組み合わせる。
工程828で、状態推定器806は、パレット状態をサーバ804へ提供する。
工程830で、サーバ804は、パレット状態を含む配置要求を配置決定器810へ送信する。いくつかの実施形態において、配置決定器810は、サーバ804上で動作するモジュールである。いくつかの実施形態において、配置決定器810は、複数の異なるサーバ/ロボットシステムによってクエリされるサービスである。例えば、配置決定器810は、クラウドサービスであってよい。
工程832で、配置決定器810は、1または複数の潜在的配置のセットをサーバ804へ提供する。1または複数の潜在的配置のセットは、プレースされるアイテム(例えば、アイテムに関連付けられている属性)およびパレット状態(例えば、利用可能な位置、および、アイテムのスタック内のアイテムの属性)などに少なくとも部分的に基づいて決定されてよい。
いくつかの実施形態において、1または複数の潜在的配置のセットは、すべての可能な配置の一部である。例えば、配置決定器810は、コスト関数を用いて、サーバ804への提供に向けて1または複数の潜在的配置のセットを決定する。配置決定器810は、コスト関数に関してコスト基準を満たす(例えば、コスト閾値より小さいコストを有する)潜在的配置を決定してよい。
1または複数の潜在的配置のセットを受信したことに応じて、工程834で、サーバ804は、配置を選択し、選択された配置をアプリ802へ送信する。例えば、選択された配置は、工程820における最初の配置要求への応答として提供される。
工程836で、アプリ802は、アイテムをプレースするようロボットアームを制御する。いくつかの実施形態において、アプリ802は、(例えば、アイテムの属性、および、選択された配置に対応する位置(作業空間内の座標など)に基づいて)選択された配置へアイテムを移動させるための計画を決定する。
工程838で、アプリ802は、幾何学的状態に関する更新を実行するために指示をサーバ804へ提供する。例えば、アプリ802は、アイテムのプレースが工程836で実行されたことの確認を提供し、サーバ804は、かかる確認を、幾何学的状態(例えば、幾何学的モデル)への更新が呼び出されることの指示であると見なす。
工程840で、サーバ804は、幾何学的状態を更新する要求を状態推定器806へ送信する。例えば、サーバ804は、状態推定器806が、対応する計画に従ったアイテムの配置を反映するように幾何学的モデルを更新することを要求する。
幾何学的状態を更新する要求を受信したことに応じて、状態推定器806は、対応する更新を実行する。工程842で、状態推定器806は、幾何学的状態が成功裏に更新された旨の示唆をサーバ804へ提供する。
工程844で、サーバ804は、幾何学的状態がアイテムの配置を反映するよう成功裏に更新された旨の示唆をアプリ802へ提供する。
処理800は、積み重ねられるアイテムのセットに対して繰り返されてよい。
上述の例は、1セットのアイテムをパレタイズまたはデパレタイズする文脈で記載されているが、様々な実施形態が、1セットのアイテムをシンギュレートしおよび/または1セットのアイテムをキッティングすることに関連して実施されてよい。例えば、様々な実施形態は、幾何学的データおよびセンサデータ(例えば、幾何学的データとセンサデータとの間の補間など、幾何学的データとセンサデータとの組み合わせ)に少なくとも部分的に基づいて、作業空間(例えば、シュート、コンベヤ、容器、など)の状態を決定/推定するために実施される。
本明細書に記載されている実施形態の様々な例は、フローチャートに関連して記載されている。それらの例は、特定の順序で実行されるいくつかの工程を含みうるが、様々な実施形態に従って、様々な工程が、様々な順序で実行されてよく、および/または、様々な工程が、単一の工程に統合されまたは並行して実行されてよい。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
Claims (26)
- ロボットシステムであって、
作業空間に配備されている1または複数のセンサから、前記作業空間の現在の状態を示すセンサデータを受信するよう構成されている通信インターフェースと、前記作業空間は、パレットまたはその他の容器と、前記容器の上または中に積み重ねられている0以上のアイテムのセットとを含み、
前記通信インターフェースに接続されている1または複数のプロセッサと、
を備え、
前記1または複数のプロセッサは、
前記センサデータを用いて、前記パレットまたはその他の容器と、前記容器の上または中に積み重ねられている前記0以上のアイテムのセットとの一方または両方の状態を推定し、
前記推定された状態を用いて、前記パレットまたはその他の容器の上または中にアイテムの次のセットをプレースし、もしくは、前記パレットまたはその他の容器から前記アイテムの次のセットを取り出すよう、ロボットアームを制御するための計画を生成または更新し、
前記計画は、アイテムのプレースまたは除去の順序付けられたシーケンスを含む、よう構成されており、
前記1または複数のプロセッサは、少なくとも部分的には、可能な順序付けられたシーケンスのサブセットが探索される有界木探索を実行することによって、前記計画を生成または更新するよう構成されており、
前記サブセットは、1または複数の選択基準を満たす探索木の枝を選択すること、もしくは、剪定基準を満たす1または複数の枝を考慮から省くことの一方または両方によって決定される、ロボットシステム。 - 請求項1に記載のロボットシステムであって、アイテムの配置は、特定の位置への前記アイテムの配置を含む、ロボットシステム。
- 請求項1に記載のロボットシステムであって、アイテムの配置は、特定の向きへの前記アイテムの配置を含む、ロボットシステム。
- 請求項3に記載のロボットシステムであって、
前記アイテムは、箱であり、
前記アイテムの配置は、6つの向きの内の1つである、ロボットシステム。 - 請求項1に記載のロボットシステムであって、前記剪定基準は、前記容器の上または中に積み重ねられた1または複数のアイテムの不安定性に関連付けられている、ロボットシステム。
- 請求項5に記載のロボットシステムであって、前記不安定性は、1または複数の観察履歴に少なくとも部分的に基づいて決定される、ロボットシステム。
- 請求項5に記載のロボットシステムであって、前記不安定性は、前記容器の上または中に積み重ねられている前記0以上のアイテムの内の少なくとも1つを積み重ねまたは除去するシミュレーションに少なくとも部分的に基づいて決定される、ロボットシステム。
- 請求項5に記載のロボットシステムであって、前記不安定性は、1または複数の所定のヒューリスティックに少なくとも部分的に基づいて決定される、ロボットシステム。
- 請求項8に記載のロボットシステムであって、少なくとも1つのヒューリスティックは、変形可能なパッケージを有するアイテムの上部に、所定の重量閾値を超える重量を有するアイテムを積み重ねることの示唆を含む、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記剪定基準は、所定のパッキング密度閾値よりも小さいパッキング密度に関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記剪定基準は、可能な順序付けされたシーケンスの前記サブセットの特定のシーケンスに従ってアイテムを積み重ねることが衝突を引き起こすことが予測されるとの判定に関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記剪定基準は、可能な順序付けられたシーケンスの前記サブセットの特定のシーケンスに従ってアイテムを積み重ねることが、衝突を避けるために所定移動閾値を超える前記ロボットアームの移動を引き起こすことが予測されるとの判定に関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記剪定基準は、可能な順序付けられたシーケンスの前記サブセットの特定のシーケンスが、前記パレット上にすでにプレースされたアイテムの縁部または頂点に沿っていない配置を含むとの判定に関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記剪定基準は、枝が、好ましいシナリオに対応するノードを含んでいないとの判定に関連付けられている、ロボットシステム。
- 請求項14に記載のロボットシステムであって、前記好ましいシナリオは、価値関数の対応する値が所定の好ましさ閾値を超えている配置になるように決定される、ロボットシステム。
- 請求項15に記載のロボットシステムであって、前記価値関数は、パッキング密度、予測安定性、および、アイテムの配置の予測効率、の内の1または複数に少なくとも部分的に基づく、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記1または複数の選択基準は、予測パッキング密度が所定の密度閾値を超えていることに関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記1または複数の選択基準は、1または複数の所定のヒューリスティックに関連付けられている、ロボットシステム。
- 請求項18に記載のロボットシステムであって、前記1または複数の所定のヒューリスティックは、スタックの底部に重いまたは大きいアイテムをプレースするバイアスを含む、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記1または複数の選択基準は、予測安定性に関連付けられている、ロボットシステム。
- 請求項20に記載のロボットシステムであって、前記予測安定性は、スタック内の層、または、上層のトポグラフィに関連付けられている、ロボットシステム。
- 請求項1に記載のロボットシステムであって、前記1または複数の選択基準は、最初にロボットから離れた向こう側に1または複数のアイテムの第1サブセットを配置し、その後に、前記ロボットに近い位置に1または複数のアイテムの第2サブセットを配置することを含む枝を最初に探索することに関連付けられている、ロボットシステム。
- 請求項22に記載のロボットシステムであって、前記第1サブセットは、前記木の枝のビーム探索を実行することに少なくとも部分的に基づいて決定され、前記ビーム探索は、N個の可能な配置に制限され、Nは、正の整数である、ロボットシステム。
- 請求項1に記載のロボットシステムであって、
可能な順序付けられたシーケンスの前記木の各ノードは、前記順序付けられたシーケンスでのその時点までのアイテムの配置のシナリオに対応し、
可能な順序付けられたシーケンスの前記木の各枝は、特定の位置または特定の向きに次のアイテムをプレースする決定に対応する、ロボットシステム。 - ロボットを制御するための方法であって、
作業空間に配備されている1または複数のセンサから、前記作業空間の現在の状態を示すセンサデータを受信し、前記作業空間は、パレットまたはその他の容器と、前記容器の上または中に積み重ねられている0以上のアイテムのセットとを含み、
前記センサデータを用いて、前記パレットまたはその他の容器と、前記容器の上または中に積み重ねられている前記0以上のアイテムのセットとの一方または両方の状態を推定し、
前記推定された状態を用いて、前記パレットまたはその他の容器の上または中にアイテムの次のセットをプレースし、もしくは、前記パレットまたはその他の容器から前記アイテムの次のセットを取り出すよう、ロボットアームを制御するための計画を生成または更新すること、を備え前記計画は、アイテムのプレースまたは除去の順序付けられたシーケンスを含み、
前記計画を生成または更新することは、可能な順序付けられたシーケンスのサブセットが探索される有界木探索を実行することを含み、
前記サブセットは、1または複数の選択基準を満たす探索木の枝を選択すること、もしくは、剪定基準を満たす1または複数の枝を考慮から省くことの一方または両方によって決定される、方法。 - ロボットを制御するためのコンピュータプログラム製品であって、非一時的なコンピュータ読み取り可能媒体内に具現化され、
作業空間に配備されている1または複数のセンサから、前記作業空間の現在の状態を示すセンサデータを受信するためのコンピュータ命令と、前記作業空間は、パレットまたはその他の容器と、前記容器の上または中に積み重ねられている0以上のアイテムのセットとを含み、
前記センサデータを用いて、前記パレットまたはその他の容器と、前記容器の上または中に積み重ねられている前記0以上のアイテムのセットとの一方または両方の状態を推定するためのコンピュータ命令と、
前記推定された状態を用いて、前記パレットまたはその他の容器の上または中にアイテムの次のセットをプレースし、もしくは、前記パレットまたはその他の容器から前記アイテムの次のセットを取り出すよう、ロボットアームを制御するための計画を生成または更新するためのコンピュータ命令と、を備え、前記計画は、アイテムのプレースまたは除去の順序付けられたシーケンスを含み、
前記計画を生成または更新することは、可能な順序付けられたシーケンスのサブセットが探索される有界木探索を実行することを含み、
前記サブセットは、1または複数の選択基準を満たす探索木の枝を選択すること、もしくは、剪定基準を満たす1または複数の枝を考慮から省くことの一方または両方によって決定される、コンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163211366P | 2021-06-16 | 2021-06-16 | |
US63/211,366 | 2021-06-16 | ||
PCT/US2022/033100 WO2022265941A1 (en) | 2021-06-16 | 2022-06-10 | Workflow for using tree search-based approach for placing boxes on pallet with limited knowledge of future sequence |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024525277A true JP2024525277A (ja) | 2024-07-12 |
Family
ID=84489935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023571270A Pending JP2024525277A (ja) | 2021-06-16 | 2022-06-10 | 将来のシーケンスの限られた知識でパレット上に箱をプレースするための木検索ベースアプローチを用いるためのワークフロー |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220402133A1 (ja) |
EP (1) | EP4355672A1 (ja) |
JP (1) | JP2024525277A (ja) |
TW (1) | TW202306718A (ja) |
WO (1) | WO2022265941A1 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11020854B2 (en) * | 2019-11-05 | 2021-06-01 | Mujin, Inc. | Robotic system with wall-based packing mechanism and methods of operating same |
-
2022
- 2022-06-10 US US17/838,039 patent/US20220402133A1/en active Pending
- 2022-06-10 EP EP22825578.2A patent/EP4355672A1/en active Pending
- 2022-06-10 WO PCT/US2022/033100 patent/WO2022265941A1/en active Application Filing
- 2022-06-10 JP JP2023571270A patent/JP2024525277A/ja active Pending
- 2022-06-15 TW TW111122130A patent/TW202306718A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20220402133A1 (en) | 2022-12-22 |
WO2022265941A1 (en) | 2022-12-22 |
EP4355672A1 (en) | 2024-04-24 |
TW202306718A (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6852938B2 (ja) | 調整機構を備えたロボットシステム及びロボットシステムを動作させる方法 | |
KR102616626B1 (ko) | 실시간 배치 시뮬레이션을 사용하여 패키지를 팔레트화하기 위한 로봇 시스템 | |
JP7362755B2 (ja) | ロボットによる複数アイテムタイプのパレタイズおよびデパレタイズ | |
US20220402139A1 (en) | Workflow for using learning based approach for placing boxes on pallets | |
US20220402709A1 (en) | State estimation using geometric data and vision system for palletizing | |
US20230241777A1 (en) | Packing and planning for tight incollapsible loads | |
US20220402708A1 (en) | Collision avoidance based on vision data, geometric data and physics engine evaluation | |
US20220405439A1 (en) | Physics engine based evaluation of pallet stability | |
US20220402710A1 (en) | Simulated box placement for algorithm evaluation and refinement | |
US20220402134A1 (en) | Using simulated/generated noise to evaluate and refine state estimation | |
US20230245036A1 (en) | Optimization of package weight distribution | |
US20230241776A1 (en) | Object partitioner between heterogeneous transport containers | |
US20220297958A1 (en) | Robotic palletization system with variable conveyor height | |
JP2024525277A (ja) | 将来のシーケンスの限られた知識でパレット上に箱をプレースするための木検索ベースアプローチを用いるためのワークフロー | |
US20230278219A1 (en) | Object sequencer for container loading | |
US20220331989A1 (en) | Robotic foam dispenser | |
JP2024527225A (ja) | パレタイズのための幾何学的データおよびビジョンシステムを利用する状態推定 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231227 |