JP6683333B1 - 順序通りでなく到着するパッケージを処理するためのロボットシステム - Google Patents

順序通りでなく到着するパッケージを処理するためのロボットシステム Download PDF

Info

Publication number
JP6683333B1
JP6683333B1 JP2019169842A JP2019169842A JP6683333B1 JP 6683333 B1 JP6683333 B1 JP 6683333B1 JP 2019169842 A JP2019169842 A JP 2019169842A JP 2019169842 A JP2019169842 A JP 2019169842A JP 6683333 B1 JP6683333 B1 JP 6683333B1
Authority
JP
Japan
Prior art keywords
package
plan
packages
sequence
stacking
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.)
Active
Application number
JP2019169842A
Other languages
English (en)
Other versions
JP2020196612A (ja
Inventor
ニコラエフ デアンコウ,ロセン
ニコラエフ デアンコウ,ロセン
カヌニコフ,デニス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mujin Inc filed Critical Mujin Inc
Priority to JP2020041743A priority Critical patent/JP7429386B2/ja
Application granted granted Critical
Publication of JP6683333B1 publication Critical patent/JP6683333B1/ja
Publication of JP2020196612A publication Critical patent/JP2020196612A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • B65B57/10Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged
    • B65B57/14Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged and operating to control, or stop, the feed of articles or material to be packaged
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G1/00Storing articles, individually or in orderly arrangement, in warehouses or magazines
    • B65G1/02Storage devices
    • B65G1/04Storage devices mechanical
    • B65G1/0485Check-in, check-out devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G47/00Article or material-handling devices associated with conveyors; Methods employing such devices
    • B65G47/74Feeding, transfer, or discharging devices of particular kinds or types
    • B65G47/90Devices for picking-up and depositing articles or materials
    • B65G47/905Control arrangements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0093Programme-controlled manipulators co-operating with conveyor means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/03Stacking of articles by adding to the top of the stack from above
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G57/00Stacking of articles
    • B65G57/02Stacking of articles by adding to the top of the stack
    • B65G57/16Stacking of articles of particular shape
    • B65G57/20Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical
    • B65G57/22Stacking of articles of particular shape three-dimensional, e.g. cubiform, cylindrical in layers each of predetermined arrangement
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G61/00Use of pick-up or transfer devices or of manipulators for stacking or de-stacking articles not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B35/00Supplying, feeding, arranging or orientating articles to be packaged
    • B65B35/30Arranging and feeding articles in groups
    • B65B35/50Stacking one article, or group of articles, upon another before packaging
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65GTRANSPORT OR STORAGE DEVICES, e.g. CONVEYORS FOR LOADING OR TIPPING, SHOP CONVEYOR SYSTEMS OR PNEUMATIC TUBE CONVEYORS
    • B65G2814/00Indexing codes relating to loading or unloading articles or bulk materials
    • B65G2814/03Loading or unloading means
    • B65G2814/0301General arrangements
    • B65G2814/0304Stacking devices
    • B65G2814/0305Adding to the top

Abstract

【課題】受け取ったパッケージのばらつき、予期しないエラー、リアルタイムのパッキング要求等に適応するロボットシステムの提供。【解決手段】スタッキングシーケンスに従ってパッケージを目的地に配置するためのロボットシステムは、保管エリアを使用して、順序通りでなく到着するパッケージを、目的地への載置シーケンスにおいて一時的に保管し、到来パッケージを処理し、目的地への載置シーケンスにおいて次であるか否かを判定する。次である場合、パッケージを目的地に載置する。一方、次でない場合、パッケージを保管エリアに保管する。保管エリア内のパッケージは、目的地への載置シーケンスにおいて次となった場合に、目的地に転置される。これにより、パッケージをスタッキングシーケンスで受け取る必要性を排除し、これは配列マシンの必要性も排除する。【選択図】図5

Description

関連出願の相互参照
本出願は、Rosen N.DiankovおよびDenys Kanunikovによる、「A ROBOTIC SYSTEM WITH PACKING MECHANISM」と題された、同時出願された米国特許出願に関する主題を含み、これはMujin,Incに譲渡され、代理人整理番号131837−8005.US01によって識別され、その全体が引用により本明細書に組み込まれている。
本出願は、Rosen N.DiankovおよびDenys Kanunikovによる、「A ROBOTIC SYSTEM WITH DYNAMIC PACKING MECHANISM」と題された、同時出願された米国特許出願に関する主題を含み、これはMujin,Incに譲渡され、代理人整理番号131837−8006.US01によって識別され、その全体が引用により本明細書に組み込まれている。
本出願は、Rosen N.DiankovおよびDenys Kanunikovによる、「A ROBOTIC SYSTEM WITH ERROR DETECTION AND DYNAMIC PACKING MECHANISM」と題された、同時出願された米国特許出願に関する主題を含み、これはMujin,Incに譲渡され、代理人整理番号131837−8007.US01によって識別され、その全体が引用により本明細書に組み込まれている。
本出願は、Rosen N.DiankovおよびDenys Kanunikovによる、「ROBOTIC SYSTEM FOR PALLETIZING PACKAGES USING REAL−TIME PLACEMENT SIMULATION」と題された、同時出願された米国特許出願に関する主題を含み、これはMujin,Incに譲渡され、代理人整理番号131837−8009.US01によって識別され、その全体が引用により本明細書に組み込まれている。
本技術は、一般にはロボットシステムを対象とし、より詳細には、オブジェクトをパッキングするためのシステム、処理、および技術を対象とする。
向上し続ける性能および低下するコストによって、多くのロボット(たとえば、物理的なアクションを自動的/自律的に実行するように構成される機械)が、現在多くの分野において広く使用されている。ロボットは、たとえば、製造および/または組み立て、パッキングおよび/またはパッケージング、輸送および/または出荷などにおける様々なタスク(たとえば、オブジェクトを操作するまたは空間を通して転置する)を実行するために使用することができる。タスクを実行する際に、ロボットは人間のアクションを再現することによって、危険または反復的なタスクを実行するのに本来必要とされる人間の関与を置き換えるまたは減らすことができる。
しかしながら、技術的進歩にもかかわらず、ロボットはより複雑なタスクを実行するのに必要とされる人間の敏感性および/または順応性を複製するのに必要な精巧さを欠いていることが多い。たとえば、ロボットは、様々な実世界の要因から生じ得るばらつきまたは不確実性を考慮するための、実行されるアクションにおける制御の粒度および柔軟性を欠いていることが多い。したがって、様々な実世界の要因によらずタスクを完了するようにロボットの様々な側面を制御し管理するための改良された技術およびシステムへの必要性が残っている。
パッケージング産業では、従来のシステムは、オフラインパッキングシミュレータを使用して、パッキングシーケンス/配置を事前に決定する。従来のパッキングシミュレータは、オブジェクト情報(たとえば、ケースの形状/サイズ)を処理してパッキングプランを生成する。パッキングプランは、目的地(たとえば、パレット、ビン、ケージ、ボックスなど)におけるオブジェクトの具体的な載置位置/姿勢、事前定義された載置のシーケンス、および/または所定のモーションプランを規定および/または要求することができる。従来のパッキングシミュレータは、生成されたパッキングプランから、そのパッキングプランに合致するまたは可能にするソース要件(たとえば、オブジェクトについてのシーケンスおよび/または載置)を導出する。パッキングプランは従来のシステムではオフラインで開発されるので、プランは実際のパッキング動作/条件、オブジェクトの到着、および/または他のシステムの実装とは独立している。したがって、全体的な動作/実装では、(たとえば、開始/拾得位置において)受け取ったパッケージが、所定のパッキングプランに合致する固定のシーケンスに従うことが必要になる。したがって、従来のシステムは、受け取ったパッケージのばらつき(たとえば、異なるシーケンス、位置、および/または向き)、予期しないエラー(たとえば、衝突および/または紛失)、リアルタイムのパッキング要求(たとえば、受注)、および/または他のリアルタイム要因に適応することができない。
従来のシステムは、厳格な所定のプランに従ってオブジェクトをグループ化し、パッキングし得る。たとえば、従来のシステムは、所定のモーションプランに従ってオブジェクト(たとえば、ボックスまたはケース)をパレット上に転置し載置する。その際、従来のシステムでは、ソース位置にある全てのオブジェクトが同一の寸法/タイプを有すること、および/または既知のシーケンスに従ってアクセスされることが必要である。たとえば、従来のシステムでは、オブジェクトが固定のシーケンスに従って(コンベヤなどを介して)拾得位置に到着することが必要となる。また、たとえば、従来のシステムでは、拾得位置にあるオブジェクトが所定の姿勢に従って指定位置に載置されることが必要となる。したがって、従来のシステムでは、所定のシーケンス/配置に従ってオブジェクトをソースに(すなわち、パッキング動作の前に)並べるまたは載置するための1つまたは複数の動作が必要である。パッケージを特定のシーケンスでロボットに提供することは、人間にとって骨の折れるタスクであり得る。パッケージをロボットに渡す前に配列して再配置を行うシャトルシーケンシングバッファなどのいくつかの機械が存在する。しかしながら、これらの機械は非常に高価であり、メンテナンスを必要とし、かなりのリソース、たとえば、スペースおよび電力を消費し得る。
3次元パッキング機構を有するロボットシステムが動作し得る例示的な環境の図である。 本技術の1つまたは複数の実施形態によるロボットシステムを示すブロック図である。 本技術の1つまたは複数の実施形態による離散化オブジェクトの図である。 本技術の1つまたは複数の実施形態による離散化パッキング台の図である。 本技術の1つまたは複数の実施形態による載置計画処理の図である。 A〜4Cは、本技術の1つまたは複数の実施形態によるスタッキングルールの図である。 Aは、本技術の1つまたは複数の実施形態による例示的なスタッキングプランの図である。Bは、本技術の1つまたは複数の実施形態によるスタッキングシーケンスの図である。 本技術の1つまたは複数の実施形態による図1のロボットシステムを動作させるための流れ図である。 ロボットシステムが順序通りでなく到着するパッケージを処理するように動作し得る例示的な環境の図である。 様々な実施形態と整合する、利用可能パッケージをタスク位置に載置する際の様々なステージの一例を示すブロック図である。 様々な実施形態と整合する、利用可能パッケージをタスク位置に載置する際の様々なステージの一例を示すブロック図である。 様々な実施形態と整合する、利用可能パッケージをタスク位置に載置する際の様々なステージの一例を示すブロック図である。 様々な実施形態と整合する、利用可能パッケージをタスク位置に載置する際の様々なステージの一例を示すブロック図である。 様々な実施形態と整合する、一時的な保管エリアを使用して利用可能パッケージをタスク位置に載置するための処理の流れ図である。 様々な実施形態と整合する、一時的な保管エリアを使用して利用可能パッケージをタスク位置に載置するための他の処理の流れ図である。 様々な実施形態と整合する、一時的な保管エリアを使用して利用可能パッケージをタスク位置に載置するための他の処理の流れ図である。
パッキング機構を有するロボットシステムのためのシステムおよび方法を本明細書において説明する。いくつかの実施形態に従って構成されるロボットシステム(たとえば、1つまたは複数の指定タスクを実行するデバイスの統合システム)は、オブジェクト(たとえば、パッケージ)に対して最適な保管位置を導出し、それに従ってスタッキングすることによって、パッキングおよび保管効率を高める。一例では、ロボットシステムは、パッケージがロボットに提供される順序とは無関係に、スタッキングプランに基づいてパッケージを目的地(たとえば、パレット、ビン、ケージ、ボックスなど)において積み重ねることができる。スタッキングプランは、典型的には、たとえば、後述するパレット上のパッケージの具体的な載置位置/姿勢、および/または所定のモーションプランなどの詳細の中でも特に、パッケージがパレットに載置されるシーケンスまたは順序を含む。ロボットシステムは、パッケージを事前定義されたシーケンスで提供する必要なく、パッケージをパレットに指定された配置で載置するためのスタッキングプランを実施することができる。たとえばコンベヤベルト上でパッケージが次々に到着すると、ロボットシステムは、パッケージ上のバーコードなどに基づいてパッケージを識別し、パッケージのスタッキングシーケンスを決定し、パッケージがパレットへの載置シーケンスにおいて次である場合にスタッキングプランに従ってパッケージをパレットに載置し、そうでなければ、パッケージを保管エリア内に、たとえば、複数の保管ラックのうちの1つに保管して、後でパレットに載置できるようにする。保管エリアに保管されているパッケージがパレットへの載置シーケンスにおいて次である場合、ロボットシステムは、スタッキングプランに従って保管エリアからパッケージを取り出し、パッケージをパレットに載置する。順序通りでないパッケージなどのパッケージを保管するための一時的な保管エリアを使用し、後で処理してパレットにスタッキングシーケンスで載置することによって、ロボットシステムは、スタッキングシーケンスでパッケージを受け取る必要性を排除することができ、これは配列マシンの必要性も排除する。そのため、リソースの消費を最小限にすることによって、開示した実施形態は改良されたロボットシステムをもたらす。
本明細書に記載のロボットシステムは、システム動作中にパッキングプランを生成することができる。ロボットシステムは、様々なリアルタイム条件に基づいてシステム動作中にリアルタイムのおよび/または動的なパッキングプランを生成することができる。リアルタイム条件は、現在存在するまたは進行中の条件、たとえば、オブジェクトの実際のソースシーケンス/位置/姿勢、オブジェクト条件および/または要件、載置要件、および/または他のリアルタイム要因を含むことができる。ロボットシステムは、パッキングプランの処理時の現在の/進行中の条件および要因に従って、たとえば、トリガイベント(たとえば、受注/要求、出荷スケジュール、および/またはオペレータの入力)に応答して、パッキングプランをリアルタイムに生成することができる。いくつかの実施形態では、パッキングプランは、たとえば、対応するイベント(たとえば、再評価タイミング、パッキング/操作エラー、たとえば、衝突または紛失、および/または他の動的な条件の発生)に応答して、動的に(たとえば、最初に1つまたは複数の動作を開始した後に、たとえば、実際のパッキング動作が開始した後に)生成および/または調整することができる。
従来のシステムとは異なり、本明細書に記載のロボットシステムは、現在の/ライブの条件(たとえば、オブジェクトのソースシーケンス/位置/姿勢、オブジェクト条件および/または要件など)に従ってリアルタイムに載置プランを生成することができる。いくつかの実施形態では、ロボットシステムは、離散化メカニズム(たとえば、処理、回路、関数、および/またはルーチン)に基づいてパッキングプランを生成することができる。たとえば、ロボットシステムは離散化メカニズムを使用して、離散化単位(すなわち、1つの離散エリア/スペース)に従って、オブジェクトおよび/または目標場所の物理的なサイズ/形状を記述することができる。ロボットシステムは、離散化単位を使用して想定オブジェクトを記述する離散化オブジェクトのプロフィール、および/または目標場所(たとえば、パレットの上面および/またはビン/ケース/ボックス内の空間/底面)を記述する離散化された目的地のプロフィールを生成することができる。したがって、ロボットシステムは、連続的な実世界の空間/エリアをコンピュータ読み取り可能なデジタル情報に変換することができる。さらに、離散化データによって、パッケージフットプリントを記述し、様々なパッケージ載置を比較するための計算複雑性を削減することが可能になり得る。たとえば、パッケージ寸法は、実世界の10進数ではなく、離散化単位の整数に対応することができ、これにより数学的計算が容易になる。
いくつかの実施形態では、ロボットシステムは、オブジェクトグループを決定することに基づいてパッキングプランを生成することができる。オブジェクトグループはオブジェクトの記述、たとえば、顧客指定の優先度、オブジェクトの脆性限度(たとえば、支持重量制限)、オブジェクト重量、オブジェクトの高さ、オブジェクトタイプ、および/またはオブジェクトの他の側面に基づくことができる。ロボットシステムはオブジェクトグループを使用して、1つまたは複数のオブジェクトグループを含む2次元(2D)載置プランを生成し評価することができる。ロボットシステムは、1つまたは複数の条件/ルールを満たす2D載置プランを選択し、選択した2D載置プランを3次元(3D)マッピング結果に変換することができる。3Dマッピング結果は、たとえば、2D載置プランに含まれるオブジェクトの高さ測定値と、レイヤ内のそれらの相対位置とに応じて、2D載置プランの高さを記述することができる。ロボットシステムは、垂直順序/シーケンスへの3Dマッピング結果を評価して、2D載置プランについての垂直シーケンスを含む3D載置プランを生成することができる。いくつかの実施形態では、ロボットシステムは、初期状態の(たとえば、あらゆるオブジェクトが目的地ゾーンに載置される前の)オブジェクトについて、および/またはパッキングされていない状態のままの(たとえば、1つまたは複数のオブジェクトが目的地ゾーンに載置された後の)オブジェクトについて、2D/3D載置プランを生成することができる。オブジェクトのグループ化および載置プランに関する詳細については後述する。
以下に説明するロボットシステムは、リアルタイムの実装のための簡素化され合理化された処理アーキテクチャ/シーケンスを利用することができる。たとえば、ロボットシステムは(たとえば、デスクトップ、サーバなどのコンシューマコンピューティングデバイスを介して)、従来のシーケンサおよびシミュレータを利用することなく、リアルタイムのニーズ(たとえば、受注)、および/またはリアルタイムの利用可能性(たとえば、到来オブジェクトおよび/または現在アクセス可能なオブジェクトの出荷目録)に基づいて、パッキングプランを生成することができる。オフラインの状況で利用される場合、たとえば、従来のシーケンサおよびシミュレータを置き換えるために、ロボットシステムは、よりシンプルかつ安価なソリューションを使用してオフラインパッキングプランを提供することができる。
したがって、ロボットシステムは、リアルタイム条件への適応に基づいて、オブジェクトをパッキングする効率、速度、および精度を向上させることができる。たとえば、本明細書に記載のシステムは、現在のニーズ(たとえば、受注)、パッケージの現在のステータス(たとえば、位置、向き、および/または数量/利用可能性)、および/またはスタック済み/載置済みのパッケージのリアルタイムステータスに合致する/対処する載置プランを生成することができる。したがって、ロボットシステムは、様々な、異なる/想定外の数量、位置、向き、および/またはシーケンスのパッケージを受け取り、パッキングすることができる。
さらに、ロボットシステムは、従来のシステムにおいてオブジェクトをソースに並べるまたは載置するためにおよび/またはパッキング動作のために(たとえば、エラー処理のために)必要なはずの1つまたは複数の動作、機械(たとえば、シーケンスバッファ)、および/または人間の支援を無くすことによって、全体のコストを削減することができる。現在のパッケージの状態(たとえば、数量、位置、および/または向き)に応じてパッキングプランを生成することによって、ロボットシステムは、従来のシステムの要件に合致するようにパッケージを再編成または配列する必要性を、関連する機械/人間の動作と共に排除する。
以下の説明では、本開示技術の完全な理解を提供するために、多数の具体的な詳細を記載している。他の実施形態では、本明細書で紹介する技術は、これらの具体的な詳細がなくとも実践することができる。他の例では、よく知られている特徴、たとえば、特定の関数またはルーチンについては、本開示を不必要に不明瞭にしないように、詳細には説明していない。本明細書における「実施形態」、「一実施形態」などへの言及は、説明している特定の特徴、構造、材料、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような文言の出現は、必ずしも全てが同一の実施形態を指すものではない。一方、そのような言及は、必ずしも相互に排他的ではない。さらに、特定の特徴、構造、材料、または特性は、1つまたは複数の実施形態において任意の好適な方法で組み合わせることができる。図面に示す様々な実施形態は説明のための表現にすぎず、必ずしも縮尺通りに描いていないことを理解されたい。
よく知られており、ロボットシステムおよびサブシステムに関連付けられることが多いが、開示した技術のいくつかの重要な側面を不必要に不明瞭にし得る、構造または処理を説明する一部の詳細については、明瞭にするために以下の説明には記載していない。また、以下の開示では本技術の異なる態様のいくつかの実施形態を記載しているが、いくつかの他の実施形態は、このセクションに記載したものとは異なる構成または異なるコンポーネントを有し得る。したがって、開示した技術は、追加の要素を有し、後述の要素の一部を有さない他の実施形態を有し得る。
以下で説明する本開示の多くの実施形態または態様は、プログラム可能コンピュータまたはプロセッサによって実行されるルーチンを含むコンピュータ実行可能命令またはプロセッサ実行可能命令の形態をとり得る。当業者であれば、開示した技術が以下に図示および説明した以外のコンピュータまたはプロセッサシステム上で実践され得ることを理解するであろう。本明細書に記載の技術は、後述のコンピュータ実行可能命令のうちの1つまたは複数を実行するように特別にプログラムされ、構成され、または構築された専用コンピュータまたはデータプロセッサにおいて実施することができる。したがって、本明細書で一般的に使用される「コンピュータ」および「プロセッサ」という用語は、任意のデータプロセッサを指し、インターネット機器およびハンドヘルドデバイス(たとえば、パームトップコンピュータ、ウェアラブルコンピュータ、セルラーまたはモバイル電話、マルチプロセッサシステム、プロセッサベースまたはプログラム可能コンシューマ電子機器、ネットワークコンピュータ、ミニコンピュータなど)を含むことができる。これらのコンピュータおよびプロセッサによって扱われる情報は、任意の好適な表示媒体、たとえば、液晶ディスプレイ(LCD)に提示することができる。コンピュータ実行可能タスクまたはプロセッサ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、またはハードウェアおよびファームウェアの組合せを含む、任意の好適なコンピュータ読取可能な媒体内に、またはその媒体上に記憶することができる。命令は、たとえば、フラッシュドライブおよび/または他の好適な媒体を含む任意の好適なメモリデバイスに含めることができる。
「結合される」および「接続される」という用語、ならびにこれらの派生形は、本明細書においてコンポーネント間の構造関係を記述するために使用され得る。これらの用語が互いに同義語であることが意図されていないことを理解されたい。むしろ、特定の実施形態では、「接続される」は、2つ以上の要素が互いに直接接していることを示すために使用され得る。文脈において別途明記していない限り、「結合される」という用語は、2つ以上の要素が互いに直接的にもしくは間接的に(間に他の介在要素を介して)接していること、または2つ以上の要素が(たとえば、信号の送受信もしくは関数呼び出しなどのための因果関係のように)互いに協力または相互作用すること、あるいはその両方を示すために使用され得る。
好適な環境
図1は、パッキング機構を有するロボットシステム100が動作し得る例示的な環境の図である。ロボットシステム100は、1つまたは複数のタスクを実行するように構成される1つまたは複数のユニット(たとえば、ロボット)を含むおよび/または通信することができる。パッキング機構の態様は、様々なユニットによって実践または実装することができる。
図1に示す例では、ロボットシステム100は、倉庫または流通/出荷拠点における、荷下ろしユニット102、転置ユニット104(たとえば、パレタイズロボットおよび/またはピースピッカーロボット)、輸送ユニット106、積載ユニット108、またはこれらの組合せを含むことができる。ロボットシステム100内の各ユニットは、1つまたは複数のタスクを実行するように構成することができる。タスクを順番に組み合わせて目標を達成する動作を行うことができ、たとえば、トラックもしくはバンからオブジェクトを荷下ろしし、倉庫に保管する、または保管位置からオブジェクトを荷下ろしし、出荷準備することができる。他の例では、タスクは、オブジェクトを目標場所に(たとえば、パレットの上、および/またはビン/ケージ/ボックス/ケースの中に)載置することを含むことができる。後述のように、ロボットシステムは、オブジェクトを載置および/またはスタックするためのプラン(たとえば、載置位置/向き、オブジェクトを転置するためのシーケンス、および/または対応するモーションプラン)を導出することができる。各ユニットは、アクションのシーケンスを実行して(たとえば、その中の1つまたは複数のコンポーネントを動作させて)タスクを実行するように構成することができる。
いくつかの実施形態では、タスクは、開始位置114からタスク位置116までの対象オブジェクト112(たとえば、実行しているタスクに対応するパッケージ、ボックス、ケース、ケージ、パレットなどのうちの1つ)の操作(たとえば、移動および/または向き変更)を含むことができる。たとえば、荷下ろしユニット102(たとえば、デバンニングロボット)は、対象オブジェクト112をキャリア(たとえば、トラック)内の位置からコンベヤベルト上の位置に転置するように構成することができる。また、転置ユニット104は、対象オブジェクト112をある位置(たとえば、コンベヤベルト、パレット、またはビン)から他の位置(たとえば、パレット、ビンなど)に転置するように構成することができる。他の例では、転置ユニット104(たとえば、パレタイズロボット)は、対象オブジェクト112をソース位置(たとえば、パレット、拾得エリア、および/またはコンベヤ)から目的地パレットに転置するように構成することができる。動作を完了する際に、輸送ユニット106は、対象オブジェクト112を転置ユニット104に関連付けられたエリアから積載ユニット108に関連付けられたエリアに転置することができ、積載ユニット108は、対象オブジェクト112を(たとえば、対象オブジェクト112を運ぶパレットを移動させることによって)転置ユニット104から保管位置(たとえば、棚上の位置)に転置することができる。タスクおよび関連するアクションに関する詳細については後述する。
例示の目的で、ロボットシステム100は出荷センターの状況で説明しているが、ロボットシステム100は、他の環境/他の目的での、たとえば、製造、組み立て、パッケージング、ヘルスケア、および/または他のタイプの自動化のためのタスクを実行するように構成できることを理解されたい。また、ロボットシステム100は、図1に示していない他のユニット、たとえば、マニピュレータ、サービスロボット、モジュール式ロボットなどを含むことができることも理解されたい。たとえば、いくつかの実施形態では、ロボットシステム100は、オブジェクトをケージカートまたはパレットからコンベヤまたは他のパレット上に転置するためのデパレタイズユニット、あるコンテナから他のコンテナにオブジェクトを転置するためのコンテナ切替ユニット、オブジェクトを包装するためのパッケージングユニット、オブジェクトをそれらの1つまたは複数の特性に応じてグループ化するためのソーティングユニット、オブジェクトをそれらの1つまたは複数の特性に応じて異なって操作するための(たとえば、ソートする、グループ化する、および/または転置するための)ピースピッキングユニット、あるいはこれらの組合せを含むことができる。
好適なシステム
図2は、本技術の1つまたは複数の実施形態によるロボットシステム100を示すブロック図である。いくつかの実施形態では、たとえば、ロボットシステム100は(たとえば、上述のユニットおよび/またはロボットのうちの1つまたは複数において)、電子/電気デバイス、たとえば、1つまたは複数のプロセッサ202、1つまたは複数の記憶デバイス204、1つまたは複数の通信デバイス206、1つまたは複数の入出力デバイス208、1つまたは複数のアクチュエーションデバイス212、1つまたは複数の輸送モータ214、1つまたは複数のセンサ216、あるいはこれらの組合せを含むことができる。様々なデバイスは、有線接続および/または無線接続を介して互いに結合することができる。たとえば、ロボットシステム100は、たとえば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バスもしくはPCI−Expressバス、ハイパートランスポートもしくは業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、または電気電子技術者協会(IEEE)標準1394バス(「Firewire」とも呼ばれる)などのバスを含むことができる。また、たとえば、ロボットシステム100は、ブリッジ、アダプタ、プロセッサ、またはデバイス間に有線接続を提供するための他の信号関連デバイスを含むことができる。無線接続は、たとえば、セルラー通信プロトコル(たとえば、3G、4G、LTE、5Gなど)、無線ローカルエリアネットワーク(LAN)プロトコル(たとえば、ワイヤレスフィディリティ(WIFI))、ピアツーピアもしくはデバイスツーデバイス通信プロトコル(たとえば、Bluetooth(登録商標)、近距離無線通信(NFC)など)、モノのインターネット(IoT)プロトコル(たとえば、NB−IoT、LTE−Mなど)、および/または他の無線通信プロトコルに基づくことができる。
プロセッサ202は、記憶デバイス204(たとえば、コンピュータメモリ)に記憶された命令(たとえばソフトウェア命令)を実行するように構成されるデータプロセッサ(たとえば、中央処理装置(CPU)、専用コンピュータ、および/またはオンボードサーバ)を含むことができる。いくつかの実施形態では、プロセッサ202は、図2に示す他の電子/電気デバイスおよび/または図1に示すロボットユニットに動作可能に結合される独立した/スタンドアローンのコントローラに含めることができる。プロセッサ202は、他のデバイスを制御して/インターフェースをとって、ロボットシステム100にアクション、タスク、および/または動作を実行させるプログラム命令を実施することができる。
記憶デバイス204は、プログラム命令(たとえば、ソフトウェア)が記憶された非一時的コンピュータ読取可能な媒体を含むことができる。記憶デバイス204のいくつかの例は、揮発性メモリ(たとえば、キャッシュおよび/またはランダムアクセスメモリ(RAM))、および/または不揮発性メモリ(たとえば、フラッシュメモリおよび/または磁気ディスクドライブ)を含むことができる。記憶デバイス204の他の例は、ポータブルメモリドライブおよび/またはクラウド記憶デバイスを含むことができる。
いくつかの実施形態では、記憶デバイス204を使用して、さらに処理結果および/または所定のデータ/閾値を記憶し、これらへのアクセスを提供することができる。たとえば、記憶デバイス204は、ロボットシステム100によって操作され得るオブジェクト(たとえば、ボックス、ケース、および/または製品)の説明を含むマスターデータ252を記憶することができる。1つまたは複数の実施形態では、マスターデータ252は、ロボットシステム100によって操作されると想定されるオブジェクトについての寸法、形状(たとえば、可能な姿勢についてのテンプレートおよび/または異なる姿勢のオブジェクトを認識するためのコンピュータ生成モデル)、色彩設計、画像、識別情報(たとえば、バーコード、クイックレスポンス(QR)コード、ロゴなど、および/またはその想定位置)、想定重量、他の物理的/視覚的特性、あるいはこれらの組合せを含むことができる。いくつかの実施形態では、マスターデータ252は、オブジェクトに関する操作関連情報、たとえば、各オブジェクトの重心(CoM)位置、1つまたは複数のアクション/手順に対応する想定されるセンサ測定値(たとえば、力、トルク、圧力、および/または接触測定値に関するもの)、あるいはこれらの組合せを含むことができる。また、たとえば、記憶デバイス204はオブジェクト追跡データ254を記憶することができる。いくつかの実施形態では、オブジェクト追跡データ254は、スキャンまたは操作されるオブジェクトのログを含むことができる。いくつかの実施形態では、オブジェクト追跡データ254は、1つまたは複数の位置(たとえば、指定された拾得位置または降下位置および/またはコンベヤベルト)におけるオブジェクトの撮像データ(たとえば、写真、点群、ライブビデオフィードなど)を含むことができる。いくつかの実施形態では、オブジェクト追跡データ254は、1つまたは複数の位置におけるオブジェクトの位置および/または向きを含むことができる。
通信デバイス206は、ネットワークを介して外部または遠隔のデバイスと通信するように構成される回路を含むことができる。たとえば、通信デバイス206は、受信器、送信器、変調器/復調器(モデム)、信号検出器、信号符号化器/復号器、コネクタポート、ネットワークカードなどを含むことができる。通信デバイス206は、1つまたは複数の通信プロトコル(たとえば、インターネットプロトコロル(IP)、無線通信プロトコルなど)に従って電気信号を送信、受信、および/または処理するように構成することができる。いくつかの実施形態では、ロボットシステム100は通信デバイス206を使用して、ロボットシステム100のユニット間で情報を交換する、および/または(たとえば、報告、データ収集、分析、および/またはトラブルシューティングの目的で)ロボットシステム100の外部のシステムまたはデバイスと情報を交換することができる。
入出力デバイス208は、人間のオペレータとの間で情報を伝達および/または受信するように構成されるユーザインターフェースデバイスを含むことができる。たとえば、入出力デバイス208は、情報を人間のオペレータに伝達するためのディスプレイ210および/または他の出力デバイス(たとえば、スピーカー、ハプティックス回路、または触覚フィードバックデバイスなど)を含むことができる。また、入出力デバイス208は、制御デバイスまたは受信デバイス、たとえば、キーボード、マウス、タッチスクリーン、マイクロフォン、ユーザインターフェース(UI)センサ(たとえば、モーションコマンドを受信するためのカメラ)、ウェアラブル入力デバイスなどを含むことができる。いくつかの実施形態では、ロボットシステム100は、入出力デバイス208を使用して、アクション、タスク、動作、またはこれらの組合せを実行する際に人間のオペレータと対話することができる。
ロボットシステム100は、動き(たとえば、回転変位および/または並進変位)のために関節において接続された物理的な部材または構造部材(たとえば、ロボット式マニピュレータアーム)を含むことができる。構造部材および関節は、ロボットシステム100の用途/動作に応じて1つまたは複数のタスク(たとえば、把持、回転、接合など)を実行するように構成されるエンドエフェクタ(たとえば、グリッパ)を操作するように構成される運動連鎖を形成することができる。ロボットシステム100は、対応する関節周りでまたはその位置で構造部材を駆動または操作する(たとえば、変位させるおよび/または向き変更する)ように構成されるアクチュエーションデバイス212(たとえば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシをある場所から他の場所へ輸送するように構成される輸送モータ214を含むことができる。
ロボットシステム100は、たとえば、構造部材を操作するおよび/またはロボットユニットを輸送するためのタスクを実施するために使用される情報を取得するように構成されるセンサ216を含むことができる。センサ216は、ロボットシステム100の1つまたは複数の物理的な特性(たとえば、1つまたは複数の構造部材/その関節の状態、条件、および/または位置)、および/または周辺環境を検出または測定するように構成されるデバイスを含むことができる。センサ216のいくつかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダなどを含むことができる。
いくつかの実施形態では、たとえば、センサ216は、周辺環境を検出するように構成される1つまたは複数の撮像デバイス222(たとえば、視覚および/または赤外線カメラ、2Dおよび/または3D撮像カメラ、距離測定デバイス、たとえば、ライダーまたはレーダーなど)を含むことができる。撮像デバイス222は、マシン/コンピュータビジョン(たとえば、自動検査、ロボット案内、または他のロボットアプリケーションのためのもの)を介して処理され得るデジタル画像および/または点群などの、検出された環境の表現を生成することができる。以下でより詳細に説明するように、ロボットシステム100は(たとえば、プロセッサ202を介して)デジタル画像および/または点群を処理して、図1の対象オブジェクト112、図1の開始位置114、図1のタスク位置116、対象オブジェクト112の姿勢、開始位置114および/または姿勢に関する信頼基準、あるいはこれらの組合せを識別することができる。
対象オブジェクト112を操作するために、ロボットシステム100は(たとえば、上述の様々な回路/デバイスを介して)、指定領域(たとえば、トラック内またはコンベヤベルト上などの拾得位置)の画像を撮影し分析して、対象オブジェクト112およびその開始位置114を識別することができる。同様に、ロボットシステム100は、他の指定領域(たとえば、オブジェクトをコンベヤ上に載置するための降下位置、オブジェクトをコンテナ内に載置するための位置、またはスタッキング目的のパレット上の位置)の画像を撮影し分析して、タスク位置116を識別することができる。たとえば、撮像デバイス222は、拾得エリアの画像を生成するように構成される1つまたは複数のカメラ、および/またはタスクエリア(たとえば、降下エリア)の画像を生成するように構成される1つまたは複数のカメラを含むことができる。撮影画像に基づいて、後述のように、ロボットシステム100は、開始位置114、タスク位置116、関連する姿勢、パッキング/載置プラン、転置/パッキングシーケンス、および/または他の処理結果を決定することができる。パッキングアルゴリズムに関する詳細については後述する。
いくつかの実施形態では、たとえば、センサ216は、構造部材(たとえば、ロボットアームおよび/またはエンドエフェクタ)および/またはロボットシステム100の対応する関節の位置を検出するように構成される位置センサ224(たとえば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサ224を使用して、タスクの実行中に構造部材および/または関節の位置および/または向きを追跡することができる。
離散化モデル処理
図3Aおよび図3Bは、本技術の1つまたは複数の実施形態による、オブジェクトについて計画し、パッキングするのに使用される離散化データの図である。図3Aは離散化オブジェクトを示し、図3Bはオブジェクトのパッキングおよびその計画のための離散化パッキング台を示す。たとえば、図1のロボットシステム100は(たとえば、図2のプロセッサ202を介して)、実世界のオブジェクト(たとえば、パッケージ、パレット、および/またはタスクに関連する他のオブジェクト)の連続面/エッジを離散的な対応物(たとえば、単位長さおよび/または単位面積)にマッピングすることができる。また、ロボットシステム100は、図2のマスターデータ252に記憶された想定オブジェクトの離散化モデル/表現を含むことができる。
いくつかの実施形態では、図3Aに示すように、ロボットシステム100は離散化オブジェクトモデル302を使用して、オブジェクトのスタッキング載置を計画する/導出することができる。離散化オブジェクトモデル302(点線で図示)は、離散化単位(たとえば、単位長さ)に従って、既知のおよび/または想定オブジェクト(たとえば、パッケージ、ボックス、ケースなど)についての外観の物理的な寸法、形状、エッジ、面、またはこれらの組合せ(実線で図示)を表現することができる。いくつかの実施形態では、図3Bに示すように、ロボットシステム100は、1つまたは複数の離散化台モデル304を使用して、オブジェクトのスタッキング載置を計画する/導出することができる。離散化台モデル304は、離散化単位に従って載置面(たとえば、パレットの上面)を表現することができる。いくつかの実施形態では、離散化単位は、システムオペレータ、システム設計者、所定の入力/設定、またはこれらの組合せによって事前設定された長さを含むことができる。
いくつかの実施形態では、離散化台モデル304は、1つまたは複数の標準サイズのパレット(たとえば、1.1m×1.1mのパレット)の上面視を含むことができる。したがって、離散化台モデル304は、ロボットシステム100よって利用されるグリッド方式に従う、水平面(たとえば、x−y平面)に沿ったパレット上面のピクセル化された2D表現に対応することができる。いくつかの実施形態では、離散化オブジェクトモデル302は、ロボットシステム100によって想定される/既知のオブジェクトについての上面視(たとえば、図3Aの左側に示すx−y平面)、および/または水平視/側面視(たとえば、右側に示すx−z平面)を含むことができる。したがって、離散化オブジェクトモデル302は、オブジェクトのピクセル化された2D/3D表現に対応することができる。
説明用の例として、ロボットシステム100は、単位ピクセル310(たとえば、離散化単位に従う1つまたは複数の次元を有するポリゴン、たとえば、四角形)を使用して、対象オブジェクトのエリア/面を(たとえば、離散化オブジェクトモデル302を介して)記述し、荷台を(たとえば、離散化台モデル304を介して)記述することができる。したがって、ロボットシステム100は、x−y軸に沿ってオブジェクトおよび荷台をピクセル化することができる。いくつかの実施形態では、単位ピクセル310(たとえば、離散化単位)のサイズは、オブジェクトの寸法および/または荷台の寸法に応じて変化することができる。また、単位ピクセル310のサイズを(たとえば、事前設定されたルール/式、および/またはオペレータ選択を介して)調整して、必要とされるリソース(たとえば、計算時間、必要メモリなど)をパッキング精度とバランスさせることができる。たとえば、サイズが減少すると、計算時間およびパッキング精度が増加することができる。したがって、調整可能な単位ピクセル310を使用してパッキングタスク(たとえば、対象パッケージおよびパッキング台)を離散化することによって、パッケージをパレタイズするための柔軟性が向上する。ロボットシステム100は、独特のシナリオ、パターン、および/または環境に応じて、計算資源/時間とパッキング精度とのバランスを制御することができる。
図3Aおよび図3Bに示す例では、ロボットシステム100は、第1のパッケージタイプ321、第2のパッケージタイプ322、第3のパッケージタイプ323、第4のパッケージタイプ324、および/または第5のパッケージタイプ325に対応するオブジェクトを想定/処理することができる。ロボットシステム100は、パッケージについて計画し、図1のタスク位置116に対応する載置パレット340上に載置/スタックすることができる。載置計画のために、ロボットシステム100は、単位ピクセル310を使用して対応するパッケージをそれぞれ表現する第1のオブジェクトモデル331、第2のオブジェクトモデル332、第3のオブジェクトモデル333、第4のオブジェクトモデル334、および/または第5のオブジェクトモデル335を含む離散化オブジェクトモデル302を生成および/または利用することができる。同様に、ロボットシステム100は、単位ピクセル310を使用して載置パレット340についての離散化台モデル304を生成および/または利用することができる。
いくつかの実施形態では、ロボットシステム100は、(たとえば、第3のオブジェクトモデル333および/または第4のオブジェクトモデル334などの離散化オブジェクトモデル302のために)オブジェクトの実際の寸法を端数切り上げして、単位ピクセル310がオブジェクトの実際の周縁を超えて広がるようにすることができる。いくつかの実施形態では、ロボットシステム100は、(たとえば、離散化台モデル304のために)台表面の実際の寸法を端数切り捨てして、単位ピクセル310がオブジェクトの実際の周縁に覆われるおよび/または内側に含まれるようにすることができる。
離散化データ/表現に基づいて、ロボットシステム100は、パッケージを載置パレット340上に載置/パッキングするための載置プラン350を生成することができる。載置プラン350は、対象パッケージについての載置パレット340上の計画された位置を含むことができる。ロボットシステム100は、積載/パレタイズに指定された利用可能パッケージのうちの1つまたは複数を載置するための載置プラン350を生成することができる。たとえば、ロボットシステム100は、利用可能パッケージ(たとえば、受け取ったパッケージおよび/または持ち帰り用の注文のパッケージ)からパッケージのセットをスタックするための載置プラン350を生成することができる。
ロボットシステム100は、載置ルール、載置条件、パラメータ、要件などのセットに従って載置プラン350を生成することができる。いくつかの実施形態では、ロボットシステム100は、そのセットに従って、たとえば、パッケージタイプ(たとえば、パッケージタイプ321−325)、パッケージの高さ、顧客指定の優先度、脆性(たとえば、その上にスタックされるパッケージなどについての最大支持重量)、重量範囲、またはこれらの組合せに応じてグループ化されたパッケージに基づいて、載置プラン350を生成することができる。いくつかの実施形態では、ロボットシステム100は、たとえば、より高いパッケージをデパレタイズユニットからより遠くにスタックするなどのスタッキング条件に従って載置プラン350を生成することができる。載置ルール、条件、パラメータ、要件などの他の例は、パッケージ寸法、無衝突要件、スタック安定性、グループ化条件(たとえば、パッケージタイプ、パッケージ高、優先度など)、パッケージ離間要件もしくはその欠如、総積載パッケージの最大化、またはこれらの組合せを含むことができる。載置計画に関する詳細については後述する。
図3Bに示す例では、ロボットシステム100は、パッケージタイプ321−325に対応するパッケージのセットについての2D載置プラン(たとえば、載置プラン350)を生成することができる。ロボットシステム100は、第1のパッケージタイプ321の3つのパッケージ、第2のパッケージタイプ322の4つのパッケージ、第3のパッケージタイプ323の4つのパッケージ、第4のパッケージタイプ324の5つのパッケージ、および第5のパッケージタイプ325の4つのパッケージを載置する載置プラン350を生成することができる。載置プラン350は、類似の高さ(たとえば、等しい、または互いから限界値以内)を有するパッケージの隣接するグループを最大化するようにパッケージをグループ化することができる。したがって、ロボットシステム100は、載置パレット340の左下コーナーに位置する2×2配置の第2のパッケージタイプ322の4つをグループ化することができる。パッケージの第2のグループ(たとえば、第1のパッケージタイプ321、第4のパッケージタイプ324、および第5のパッケージタイプ325のパッケージ)は、最初に載置されたグループの周辺に載置することができる。したがって、(たとえば、4単位ピクセル310の高さの)第1のグループについての連続した表面積、および(たとえば、2単位ピクセル310の高さの)第2のグループについての表面積を最大化することができる。また、ロボットシステム100は、1つまたは複数の要件、たとえば、脆性要件(たとえば、支持されるアイテム数の制限)および/または離間要件に基づいて、第3のパッケージタイプ323のパッケージを離間させることができる。同様に、ロボットシステム100は、境界要件(たとえば、載置パレット340のエッジから1つまたは複数の単位ピクセル310)に従って2D載置プランを生成することができる。
いくつかの実施形態では、ロボットシステム100は、2D計画(たとえば、上面視などのx−yフットプリント)、および/または3D計画(たとえば、側面視などのx−zまたはy−zフットプリント)に基づいて載置プラン350を生成することができる。たとえば、ロボットシステム100は、x−y平面に沿って可能な2D載置を反復的に導出すること、載置ルール、条件などに従って可能な載置をテストすること、載置スコアを計算すること、またはこれらの組合せに基づいて、載置プラン350を生成することができる。ロボットシステム100は、載置スコアを最適化(たとえば、最大化または最小化)する2D載置プランを選択することに基づいて、載置プラン350を生成することができる。いくつかの実施形態では、ロボットシステム100は2D載置プランを使用して、3Dプラン(たとえば、図3Bには図示しないスタッキングプラン)をさらに生成することができる。たとえば、ロボットシステム100は、2D載置プランをスタック内のレイヤとして使用することに基づいて、3D載置プランを生成することができる。換言すれば、ロボットシステム100は、生成された2D載置を1つまたは複数のレイヤ(たとえば、他の2D載置プラン)の上方/上に、および/または1つまたは複数の他のレイヤの下/下方に載置することができる。
説明用の例として、ロボットシステム1002Dプランを導出する際に、載置されたオブジェクトの高さを推定し考慮することができる。たとえば、ロボットシステム100は、図3Dに示すように、(たとえば、マスターデータに記憶された)オブジェクトの高さをピクセル化することができる。また、ロボットシステム100は、載置されたオブジェクトの所定の高さデータを、オブジェクトによって占有される各単位ピクセルにマッピングすることができる。高さが各ピクセルにマッピングされた状態で、ロボットシステム100は、得られた2D載置プラン350の載置面を導出する。各載置面は、たとえば、導出された表面を形成するオブジェクトの高さが同一または類似しているために、上にオブジェクトを載置し支持することが可能な導出された表面/平面に対応することができる。
ロボットシステム100は、互いから閾値範囲内にある高さ値を有する単位ピクセルのグループを識別することに基づいて、載置面を導出することができる。いくつかの実施形態では、ロボットシステム100は、載置プラン350についての最大の高さを識別することに基づいて、載置面を導出することができる。最大の高さに基づいて、ロボットシステム100は、最大の高さに一致するまたは最大の高さから閾値範囲内にある高さを有する載置プラン350における単位ピクセルを識別することができる。ロボットシステム100は、条件を満たす高さを有する最も外側の/外周の単位ピクセルのコーナーを接続し、および/またはエッジを伸ばして載置面を導出することに基づいて、輪郭を導出することができる。ロボットシステム100は、より低い高さを使用して載置エリアの外側の領域に対して処理を再帰的に反復することができる。図3Bに示す例では、ロボットシステム100は、第1の載置面352、第2の載置面354、および第3の載置面356を導出することができる。第1の載置面352は、最大の4単位ピクセルの高さを有する載置プラン350の左下コーナーに示す長方形のエリアに対応することができる。第2の載置面354は、2単位ピクセルの高さを有する周囲のエリア(破線で図示)に対応することができる。第3の載置面356は、1単位ピクセルの高さを有する載置プラン350の右側にある独立したエリアに対応することができる。2Dおよび3D載置計画についての詳細は後述する。
図3Cは、本技術の1つまたは複数の実施形態による載置計画処理の図である。ロボットシステム100は(たとえば、図2の1つまたは複数のプロセッサ202を介して)、利用可能パッケージ362のセットについて図3Bの載置プラン350を導出することができる。利用可能パッケージ362は、エグレス(egress)出荷および/または保管のためにパッキングされる必要があるオブジェクトに対応することができる。たとえば、利用可能パッケージ362は、イングレス(ingress)出荷を介して受け取られた到来オブジェクト、および/またはエグレス出荷のために注文された保管されたオブジェクトに対応することができる。いくつかの実施形態では、ロボットシステム100は出荷目録、注文リストなどを使用して、リアルタイムに、たとえば、目録、リストなどの受け取りにすぐに(すなわち、閾値期間内に)応答して、利用可能パッケージ362を識別することができる。したがって、ロボットシステム100は、識別された利用可能パッケージ362を使用して、載置プラン350をリアルタイムに導出することができる。したがって、パッケージの仮の数/セット/組み合わせを利用してリアルタイム条件とは無関係に適用されるプランを導出するオフラインパッキングシミュレータの代わりに、ロボットシステム100は、リアルタイム条件、利用可能性、および/または需要を使用して載置プラン350を導出することができる。いくつかの実施形態では、ロボットシステム100は、たとえば、出荷拠点および/または倉庫など、オブジェクトを受け取り、保管し、および/または送る場所にあるデバイス(たとえば、プロセッサ202のうちの1つまたは複数)を使用することができる。
いくつかの実施形態では、以下に詳述するように、ロボットシステム100は、利用可能パッケージ362をグループ化するおよび/または配列することができる。ロボットシステム100は、利用可能パッケージ362の順序付きセットを使用して載置プラン350を導出することができる。ロボットシステム100は、利用可能パッケージ362に対して一意の載置位置/組み合わせを決定し評価して、載置プラン350を導出することができる。換言すれば、ロボットシステム100は、可能な載置組み合わせ364のセットを決定し、所定の要件、条件、重量、コスト、その後の影響、またはこれらの組合せのセットに従って、それらを評価する(たとえば、スコア付けする)ことができる。評価に基づいて、ロボットシステム100は、載置組み合わせを選択して載置プラン350を導出することができる。
少なくとも1つの実施形態では、ロボットシステム100は、配列されたパッケージの載置を反復的に評価するアルゴリズムを使用して載置プラン350を導出することができる。図3Cに示すように、たとえば、ロボットシステム100は、利用可能パッケージ362の中の最初のパッケージについての初期載置を決定することによって、導出を開始することができる。したがって、ロボットシステム100は、図3Aの対応する離散化オブジェクトモデル302を図3Bの離散化台モデル304上の初期位置(たとえば、コーナー、中央位置、および/または他の事前設定位置)に重ねることができる。ロボットシステム100は、利用可能パッケージ362から載置済みのパッケージ(たとえば、最初のパッケージ)を除去することに基づいて、残余パッケージ372を追跡することができる。
初期載置に基づいて、ロボットシステム100は、利用可能パッケージ362の中の2番目のパッケージについての可能な載置のセットを決定することができる。ロボットシステム100は、所定のルール、パターン、またはこれらの組合せに従って可能な載置のセットを決定することができる。たとえば、ロボットシステム100は、載置済みのパッケージに対する(たとえば、載置済みのパッケージ(複数可)に対する)位置のパターンに従って、載置位置を決定することができる。また、ロボットシステム100は、パッケージのうちの1つまたは複数の間で必要とされる最小/最大の離間距離またはその欠如に基づいて、載置位置を決定することができる。さらに、ロボットシステム100は、90度などの所定の量に従ってパッケージ(すなわち、対応する離散化オブジェクトモデル302)を回転させることに基づいて、載置位置を決定することができる。いくつかの実施形態では、ロボットシステム100は、所定の閾値および/またはパターンに従って載置候補を限定することができる。さらに、ロボットシステム100は、それに従って残余パッケージ372を更新することができる。
ロボットシステム100は、停止条件に達するまで、上述の処理を反復し、利用可能パッケージ362を反復的に処理することができる。停止条件のいくつかの例は、全てのパッケージが載置された(すなわち、残余パッケージ372が空である)こと、載置を改善できない(たとえば、前の階層/反復と同じ評価スコアである)こと、これ以上パッケージを離散化台モデル304上に載置できないこと、またはこれらの組合せを表すことができる。
いくつかの実施形態では、ロボットシステム100は探索木374を使用して、可能な載置と、対応する可能な載置組み合わせ364とを追跡することができる。探索木374の根は初期載置に対応することができ、各レベルまたは階層は利用可能パッケージ362の中の後続のパッケージの可能な載置を含むことができる。異なる階層を接続して、パッケージのセットについての一意の載置組み合わせに対応する枝を形成することができる。
各パッケージの可能な載置について、ロボットシステム100は、(たとえば、図3Cにおいて「X」で表される)冗長なフットプリントを識別し排除することができる。たとえば、探索木374の各階層において、ロボットシステム100は、可能な載置位置/組み合わせの得られたフットプリントを比較する(たとえば、重ねる)ことができる。比較に基づいて、ロボットシステム100は、得られたフットプリントの重複を排除することができる。いくつかの実施形態では、ロボットシステム100はさらに、得られたフットプリントの転置、回転、および/または反転バージョンを比較して、関連する重複を排除することができる。たとえば、ロボットシステム100は、1つのフットプリントを90度回転させ、および/または1つまたは複数の反転ライン(たとえば、対角に伸びる対角線、x方向および/またはy方向に伸びる二等分線、またはこれらの組合せ)にわたってフットプリントを転置し、これを他のフットプリントと比較することができる。
また、各パッケージの可能な載置について、ロボットシステム100は、1つまたは複数の要件/制約に違反する載置を識別し排除することができる。要件/制約の一例は、衝突確率に基づくことができる。ロボットシステム100は、既存のフットプリント、パッケージの1つまたは複数の寸法、転置ロボットの位置、前のイベントまたは履歴、あるいはこれらの組合せに応じて、各載置位置についての進入路と、対応する衝突確率とを計算することができる。ロボットシステム100は、衝突確率が所定の閾値を超える載置を排除することができる。要件/制約の他の例は、パッケージをスタックする(すなわち、1つまたは複数の支持パッケージのすぐ上に/上を覆って載置する)ための支持重量とすることができる。載置位置の下のパッケージのうちの1つまたは複数について、ロボットシステム100は、載置されたパッケージの重量に基づいて、支持重量(すなわち、すぐ上を覆うパッケージまたはその一部の合計重量)を計算することができる。ロボットシステム100は、載置位置の下のパッケージのうちの1つまたは複数について、支持重量が脆性要件(たとえば、最大支持可能重量)に違反する(たとえば、要件を超えるまたは要件から閾値範囲内である)載置を排除することができる。
いくつかの実施形態では、ロボットシステム100は、優先度キュー376(たとえば、ヒープ構造など)を使用して、載置組み合わせ364を追跡および/または評価することができる。優先度キュー376は、一連の設定に従って載置組み合わせ364を並べることができる。ロボットシステム100は、1つまたは複数の所定の基準に従って各載置組み合わせ364を評価またはスコア付けすることができる。基準は、載置済みのアイテムに関連する1つまたは複数のコスト、および/または現在の載置が今後の載置または候補にどのように影響するかに関連する1つまたは複数のヒューリスティックスコアを含むことができる。
基準の一例は、フットプリント密度の最大化を含むことができる。ロボットシステム100は、パッケージのグループの外周382について、フットプリント密度を計算することができる。いくつかの実施形態では、外周382は、パッケージのグループの露出した/外周のエッジに基づいて決定することができる。ロボットシステム100はさらに、2つ以上のエッジを伸ばして交点を発見することによって、および/またはフットプリントの1つまたは複数のコーナーを結ぶ線を描くことによって、周囲の/関連するエリアを囲むことができる。ロボットシステム100は、実際の占有面積384(たとえば、影付きエリアに対応する単位ピクセル310の数)と、空き面積386(たとえば、囲まれた/関連するエリアに対応する単位ピクセル310の数)との比として、フットプリント密度を計算することができる。ロボットシステム100は、空き面積386を最小化する載置プランを(たとえば、より高い/より低いスコアを割り当てることによって)優先するように構成することができる。
スタッキングルール
図4A〜図4Cは、本技術の1つまたは複数の実施形態によるスタッキングルールの図である。ロボットシステム100はスタッキングルールを使用して、パッケージを互いの上に載置することができ、たとえば、1つまたは複数のパッケージのレイヤ(複数可)を、1つまたは複数の他のパッケージのレイヤの上にスタック/載置することができる。ロボットシステム100は、スタッキングルールを使用してスタックされたパッケージの安定性を向上させることができ、パレットの移動中に任意のパッケージが滑るおよび/または傾くことを防ぐことができる。例示の目的で、図4A〜図4Cに、上のパッケージ452が1つまたは複数の支持パッケージ454のすぐ上にあり、これによって支持される(たとえば、直接接する)ことを示す。
図4Aに、3D載置(たとえば、3D載置プラン350)を生成するために使用される水平オフセットルール402を示す。水平オフセットルール402は、スタックされたアイテム間の垂直エッジ/面の水平オフセットを制限するための規制、要件、またはこれらの組合せを含むことができる。たとえば、水平オフセットルール402は、重なり要件422、突出要件424、またはこれらの組合せに基づくことができる。重なり要件422は、スタックされたパッケージの間の最小量(たとえば、長さ、幅、および/または表面積の割合または比)の重なりを含むことができる。いくつかの実施形態では、重なり要件422は、上のパッケージ452の水平寸法/表面積の最小量が支持パッケージ454のそれと重なることを要求することができる。突出要件424は、支持パッケージ454の周辺エッジ/面を超えて水平に伸びる上のパッケージ452の一部など、最大量(たとえば、長さ、幅、および/または表面積の割合または比)の突出を含むことができる。
いくつかの実施形態では、水平オフセットルール402は、重量、寸法、および/または重心(CoM)位置412に基づくことができる。たとえば、重なり要件422および/または突出要件424は、CoM位置412に基づくことができ、たとえば、上のCoM位置と支持パッケージ454の水平エッジ/面との距離、および/または突出距離(たとえば、支持パッケージ454の周縁(複数可)を超えて伸びる上のパッケージ452の一部の水平方向に沿った度合い)に対する、上のパッケージ452および支持パッケージ454のCoM位置412間の距離を評価するようにする。いくつかの実施形態では、水平オフセットルール402は、上のパッケージ452および支持パッケージ454のCoM位置412が閾値内であることを要求するCoMオフセット要件426に基づくことができる。閾値は、所定の距離、水平寸法に対するCoM位置412間のオフセット距離の比の限界値、突出距離、重なり距離、またはこれらの組合せを含むことができる。
図4Bに、3D載置(たとえば、スタッキングプラン)を生成するために使用される支持物離間ルール404を示す。支持物離間ルール404は、支持パッケージ454間の水平離間距離414を制限するための規制、要件、またはこれらの組合せを含むことができる。水平離間距離414は、隣接する支持パッケージ454の周面/周縁間の水平距離に対応することができる。いくつかの実施形態では、支持物離間ルール404は、上のパッケージ452と支持パッケージ454との重なった面の位置および/または量にさらに基づくことができる。たとえば、支持物離間ルール404は、水平離間距離414が任意の突出距離よりも所定の割合だけ長いことを要求することができる。また、支持物離間ルール404は、水平離間距離414が上のパッケージ452のCoM位置412の下に伸びることを要求することができる。
図4Cに、3D載置(たとえば、3D載置プラン350)を生成するために使用される垂直オフセットルール406を示す。垂直オフセットルール406は、支持パッケージ454の垂直位置間の支持高低差416を制限するための規制、要件、またはこれらの組合せを含むことができる。支持高低差416は、対応する支持パッケージ454の頂部間の、たとえば、対応する支持パッケージ454上に載置された上のパッケージ452に接する可能性が高い部分同士の間の垂直距離に対応することができる。いくつかの実施形態では、垂直オフセットルール406は、支持高低差416が、1つまたは複数のパッケージを支持パッケージ454の上にスタックするための所定の閾値要件を下回ることを必要とすることができる。いくつかの実施形態では、支持物離間ルール404は、レイヤの高さに基づいて異なることができる。たとえば、上のパッケージ452(たとえば、支持されるパッケージ)が最上位レイヤの一部である場合、支持高低差416の限度は下位レイヤよりも大きくすることができる。
ロボットシステム100は、スタッキングルールに従ってスタッキングプラン(たとえば、複数の2D載置プランの3Dの組み合わせ)を生成することができる。たとえば、ロボットシステム100は、高さ要件(たとえば、パッケージグループの高さを閾値距離内に維持するためのもの)に従って、2D載置プラン(たとえば、図3Bの載置プラン350)を生成することができる。続いて、ロボットシステム100は、2D載置プランを垂直に重ねる(たとえば、スタックする)ことに基づいて、スタッキングプランを生成することができる。
スタッキングシーケンス
図5Aは、本技術の1つまたは複数の実施形態によるスタッキングプラン502の一例の図である(たとえば、利用可能パッケージの3Dマッピングを表すプラン、および/または載置プラン350は、3Dマッピング内のレイヤに対応する)。例示の目的で、第1のパッケージのスタック520(たとえば、少なくともパッケージ1−1〜1−4、2−1〜2−2、および3−1〜3−3など)についての第1のレイヤ512、第2のレイヤ514、および第3のレイヤ516を使用するスタッキングプラン502を示す。第1のレイヤ512、第2のレイヤ514、および第3のレイヤ516のそれぞれは、載置プラン350のインスタンスとすることができる。第1のレイヤ512を底部に位置させて、その中のパッケージ(たとえば、少なくともパッケージ1−1、1−2、1−3、および1−4)が載置パレット340に直接接するようにすることができる。第2のレイヤ514内のパッケージ(たとえば、少なくともパッケージ2−1および2−2)は、第1のレイヤ512のすぐ上(すなわち、直接接する)および上方に置くことができる。同様に、第3のレイヤ516のパッケージ(たとえば、少なくともパッケージ3−1および3−2)は、第2のレイヤ514のすぐ上にあり、接することができる。
以下に詳述するように、ロボットシステム100は、垂直パラメータ(たとえば、支持重量、レイヤの高さなど)を考慮しながら、各レイヤを別々に計画することができる。スタッキングプラン502を生成する際に、ロボットシステム100は、垂直パラメータおよび/またはスタッキングルールに従って別々のレイヤを垂直に組み合わせるおよび/または配列することができる。いくつかの実施形態では、ロボットシステム100は、パッケージの垂直載置に応じてレイヤを計画することができる。たとえば、ロボットシステム100は、第1のレイヤ512を、たとえば、第2のスタック522内の下の2つのパッケージを含む、載置パレット340に直接接する全てのパッケージを含むものとして、生成することができる。また、ロボットシステム100は、「3−3」とラベル付けされたパッケージを第2のレイヤ514の一部として計画することができる。いくつかの実施形態では、ロボットシステム100は、スタッキングプラン502を生成する際に、レイヤ(たとえば、載置プラン350)を再計画および/または調整することができる。たとえば、ロボットシステム100は、スタッキング/載置シーケンスを容易にするように、レイヤを調整することができる。図5Aに示すように、ロボットシステム100は、第2のスタック522が独立したスタック(すなわち、第1、第2、および第3のレイヤ512−516とは独立したもの)とみなされるように、レイヤを調整することができる。したがって、ロボットシステム100は、第1のスタック520のレイヤとは独立して/異なって、第2のスタック522のパッケージを自由に計画し、および/またはスタックすることができる。
また、いくつかの実施形態では、ロボットシステム100は、図1の転置ユニット104(たとえば、パレタイズロボット)に最も近いより大きいパッケージをより上位のレイヤに移動させて、スタッキングシーケンスを容易にすることができる。転置ユニット104が図5Aに示す載置パレット340の右にあると仮定すると、「3−3」パッケージは、「3−1」および「3−2」とラベル付けされたパッケージより前に載置される場合、障害物となり得る(すなわち、高さが原因)。したがって、ロボットシステム100は、「3−3」パッケージがより上位のレイヤ(たとえば、第2のレイヤ512ではなく第3のレイヤ516)の一部となるように、レイヤを調整することができる。結果として、ロボットシステム100がレイヤに従ってパッケージを載置する場合、「3−3」パッケージは「3−1」および「3−2」パッケージの後に載置することができる。
他の代替的実施形態では、ロボットシステム100は、レイヤに縛られずに、スタッキングプラン502を分析することに基づいて、スタッキングまたは載置シーケンスを独立して計算することができる。議論の目的で、図5Bは、本技術の1つまたは複数の実施形態による、レイヤに応じたパッケージのスタッキングに縛られないスタッキングシーケンス530(たとえば、利用可能パッケージについての載置順序の特定)の図である。スタッキングシーケンス530は、スタックされるパッケージ532を支持パッケージの上に、かつ2つの端のパッケージ間に水平に載置するためのものとすることができる。スタッキングシーケンス530は、転置ユニット104(図5Bに図示せず、載置パレット340の右に位置すると仮定する)から最も遠いパッケージ(「1」とラベル付けされたもの)を最初に載置することができ、その後に第2のパッケージ(「2」とラベル付けされたもの)が載置パレット340に載置されるようなものとすることができる。ロボットシステム100は、端のパッケージ534(「4」とラベル付けされたもの)のうちの1つ(たとえば、3つ目)より前に、スタックされるパッケージ532(「3」とラベル付けされたもの)が載置されるように、スタッキングシーケンス530を計算することができる。上述のように、ロボットシステム100は、端のパッケージ534の1つを、スタックされたパッケージ532と共に第2のレイヤに属するように調整することに基づいて、またはスタッキングプラン502とは独立してスタッキング順序を計算することに基づいて、スタッキングシーケンス530を計算することができる。
動作フロー
図6は、本技術の1つまたは複数の実施形態による、図1のロボットシステム100を動作させる方法600についての流れ図である。方法600は、パッケージ(たとえば、ケースおよび/またはボックス)を台(たとえば、パレット)に載置するための、および/またはそれに従ってパッケージを載置するための2D/3Dパッキングプランを生成するためのものとすることができる。方法600は、図2の記憶デバイス204のうちの1つまたは複数に記憶された命令を、図2のプロセッサ202のうちの1つまたは複数によって実行することに基づいて、実施することができる。
ブロック602において、ロボットシステム100は、パッケージセット(たとえば、図3Cの利用可能パッケージ362)と、目的地(たとえば、パッケージを受け取るためのパレットおよび/またはコンテナなどの、図1のタスク位置116)とを識別することができる。たとえば、ロボットシステム100は、パッキングに利用可能な、ソースに位置する、載置するために指定された、および/または注文/要求/目録内にリスト化されたパッケージを含む利用可能パッケージ362を表すパッケージセットを識別することができる。また、ロボットシステム100は、パッケージを載置可能なタスク位置116のエリア(たとえば、図3の載置パレット340などのパレットの一番上の積載面)のサイズまたは寸法を特定する。いくつかの実施形態では、ロボットシステム100は、パレットのサイズ、寸法、タイプ、またはこれらの組合せを特定することができる。
ブロック604において、ロボットシステム100は、利用可能パッケージ362および/またはタスク位置116を表す、パッケージセットに対応する離散化モデル(たとえば、図3Aの離散化オブジェクトモデル302および/または図3Bの離散化台モデル304)を生成および/またはアクセスすることができる。いくつかの実施形態では、ロボットシステム100は、オブジェクトおよび/または台エリア(たとえば、図3Bの単位ピクセル310に従うパレット上面)の物理的な寸法を分割することに基づいて、(たとえば、リアルタイムに、すなわち、たとえば、注文を受けた後および/またはパッキング動作を開始する前に、あるいはオフラインで)離散化モデルを生成することができる。単位ピクセル310は、(たとえば、製造業者、注文した顧客、および/またはオペレータによって)、たとえば、1ミリメートル(mm)もしくは1/16インチ(in)またはそれ以上(たとえば、5mmもしくは20mm)など、事前に決定することができる。いくつかの実施形態では、単位ピクセル310は、パッケージのうちの1つまたは複数および/または台の寸法またはサイズに基づくことができる(たとえば、割合または分数)。
いくつかの実施形態では、ロボットシステム100は、記憶デバイス204および/または他のデバイス(たとえば、図2の通信デバイス206を介してアクセスされるパッケージ供給元の記憶デバイス、データベース、および/またはサーバ)に記憶された離散化モデルにアクセスすることができる。ロボットシステム100は、利用可能パッケージ362および/またはタスク位置116を表す所定の離散化モデルにアクセスすることができる。たとえば、ロボットシステム100は、図2のマスターデータ252(たとえば、所定のテーブルまたはルックアップテーブル)において利用可能パッケージおよびそれらに対応するモデルを検索することによって、利用可能パッケージ362に対応する離散化オブジェクトモデル302にアクセスすることができる。同様に、ロボットシステム100は、利用可能パッケージが載置されることになる識別されたパレットなどの台を表す離散化台モデル304にアクセスすることができる。
ブロック606において、ロボットシステム100は、パッケージグループ(たとえば、利用可能パッケージのサブグループ)を決定することができる。ロボットシステム100は、識別された台(たとえば、載置パレット340)に載置するために、利用可能パッケージ362に基づいてパッケージグループを決定することができる。ロボットシステム100は、利用可能パッケージ362の1つまたは複数の特性における類似性および/またはパターンに応じて、パッケージグループを決定することができる。いくつかの実施形態では、ブロック621に示すように、ロボットシステム100は、グループ化条件/要件に従って利用可能パッケージ362をグループ化することによって、パッケージグループを決定することができる。グループ化条件/要件のいくつかの例は、パッケージ優先度(たとえば、1つまたは複数の顧客によって指定されるもの)、脆性レーティング(たとえば、パッケージによって支持可能な最大重量)、重量、パッケージ寸法(たとえば、パッケージ高)、パッケージタイプ、またはこれらの組合せを含むことができる。利用可能パッケージ362をグループ化する際に、ロボットシステム100は、グループ化条件/要件に合致する利用可能パッケージ362の様々な特性をマスターデータ252において検索することができる。
ブロック608において、ロボットシステム100は、利用可能パッケージ362および/またはそのグループ(すなわち、パッケージグループ)に対する処理順序(たとえば、載置位置を検討/導出するシーケンス)を計算することができる。いくつかの実施形態では、ブロック622に示すように、ロボットシステム100は、1つまたは複数の配列条件/要件に従って処理順序を計算することができる。たとえば、ロボットシステム100は、たとえば、パッケージ数が多いパッケージグループを載置計画において早く処理するために、各グループ内のパッケージ数に応じて、パッケージグループの載置計画を優先することができる。いくつかの実施形態では、配列条件は、たとえば、重量範囲、脆性レーティングなどについて、グループ化条件と重複することができる。たとえば、ロボットシステム100は、より重いおよび/またはより脆弱でないパッケージの処理を優先して、より早く処理し、および/またはより下位レイヤに載置するようにすることができる。
いくつかの実施形態では、ロボットシステム100は、合計水平面積に応じて載置計画を優先することができる。ロボットシステム100は、マスターデータ252において指定された情報を使用して、グループ内のパッケージの上面の表面積を(たとえば、対応する幅と長さとを乗算することによって)計算するまたはアクセスすることができる。合計水平面積を計算する際に、ロボットシステム100は、同一のタイプであるおよび/または閾値範囲内の高さを有するパッケージの表面積を加算することができる。いくつかの実施形態では、ロボットシステム100は、より大きい合計水平面積を有するグループの載置計画を優先して、より早く処理し、および/またはより下位レイヤに載置するようにすることができる。
1つまたは複数の実施形態について、ロボットシステム100は、利用可能パッケージ362の識別子および/または数量をバッファにロードすることができる。ロボットシステム100は、グループに従ってバッファ内の識別子を配列することができる。さらに、ロボットシステム100は、処理順序に応じてバッファ内の識別子を配列することができる。したがって、バッファ内の配列された値は、図3Cに示す利用可能パッケージ362および/または残余パッケージ372に対応することができる。
ブロック624に示すように、たとえば、ロボットシステム100は、図5の対応するスタッキングプラン502を実施する前に、たとえば、パッケージセット内のパッケージのいずれかが台に載置される前に、利用可能パッケージ362の初期セット(たとえば、パッケージセット)に対する処理順序を計算することができる。いくつかの実施形態では、ブロック626に示すように、ロボットシステム100は、対応するスタッキングプラン502の開始後または実施中に、利用可能パッケージ362の残余セットに対する処理順序を計算することができる。たとえば、ブロック616からのフィードバックループによって示すように、ロボットシステム100は、1つまたは複数のトリガ条件に従って、残余セット(たとえば、台に転置されていないおよび/またはソース位置に残っている利用可能パッケージ362の一部)に対する処理順序を計算することができる。例示的なトリガ条件は、スタッキングエラー(たとえば、パッケージの紛失または落下)、衝突イベント、所定の再トリガタイミング、またはこれらの組合せを含むことができる。
ブロック610において、ロボットシステム100は、利用可能パッケージ362を水平面に沿って載置するための2Dプラン(たとえば、図3Bの載置プラン350)を生成することができる。たとえば、ロボットシステム100は、載置プラン350を生成して、水平面に沿った利用可能パッケージ362の2Dマッピングを表現することができる。ロボットシステム100は、離散化モデルに基づいて2つ以上の載置プランを生成することができる。たとえば、ロボットシステム100は、離散化オブジェクトモデル302を離散化台モデル304と比較することに基づいて、載置プラン350を生成することができる。ロボットシステム100は、離散化オブジェクトモデル302の異なる載置/配置を決定し、離散化台モデル304に重ね/比較し、重なった場合、離散化台モデル304の境界線内にある配置を検証/保持することができる。ロボットシステム100は、離散化台モデル304の境界線内に載置することができないパッケージに、他のレイヤ(たとえば、載置プラン350の他のインスタンス)を指定することができる。したがって、ロボットシステム100は、パッケージセット内の各パッケージに載置プラン350内の位置が割り当てられるまで、スタッキングプラン502の2Dレイヤを表す載置プラン350についての載置位置を反復的に導出することができる。
いくつかの実施形態では、ロボットシステム100は、パッケージグループに基づいて載置プラン350を生成することができる。たとえば、ロボットシステム100は、あるパッケージグループ内のパッケージの配置を、他のグループ内のパッケージの載置を検討する前に、決定することができる。パッケージグループ内のパッケージがレイヤから溢れる場合(すなわち、離散化台モデル304の1つのレイヤまたは1つのインスタンスに収まらない場合)、および/または1つのグループの全てのパッケージを載置した後、ロボットシステム100は、次のグループ内のパッケージについての位置を、離散化台モデル304内の任意の残っている/占有されていないエリアに割り当てることができる。ロボットシステム100は、離散化台モデル304の残余スペースに収まらない未割り当てパッケージがなくなるまで、割り当てを反復的に繰り返すことができる。
同様に、ロボットシステム100は、処理順序に基づいて(たとえば、処理順序に応じたパッケージグループに基づいて)載置プラン350を生成することができる。たとえば、ロボットシステム100は、処理順序に応じてパッケージおよび/またはグループを割り当てることに基づいて、テスト配置を決定することができる。ロボットシステム100は、最も早く配列されたパッケージ/グループにテスト配置の最初の載置を割り当て、次いで、処理順序に応じて後続のパッケージ/グループをテストする/割り当てることができる。いくつかの実施形態では、ロボットシステム100は、レイヤにわたって(たとえば、載置プラン350のインスタンスにわたって)パッケージ/グループに対する処理順序を保持することができる。いくつかの実施形態では、ロボットシステム100は、各レイヤが充填された後、処理順序を再計算し更新することができる(図6に破線のフィードバック線で図示)。
いくつかの実施形態では、上述の処理の説明用の例として、ロボットシステム100は、パッケージセット内の異なるパッケージタイプ(たとえば、図3Aの第1、第2、第3、第4、および/または第5のそれぞれのパッケージタイプ321−325)を識別することによって、2Dプランを生成することができる。換言すれば、ブロック632において、ロボットシステム100は、各パッケージグループおよび/またはパッケージセット内の(たとえば、パッケージタイプによって表される)独特のパッケージを識別することができる。
ブロック634において、ロボットシステム100は、各利用可能パッケージ362について載置位置を(たとえば、反復的に)導出することができる。ブロック636において、ロボットシステム100は、処理順序に応じてシーケンスの最初の独特のパッケージについての初期載置位置を決定することができる。ロボットシステム100は、上述のように所定のパターンに従って初期載置位置を決定することができる。いくつかの実施形態では、ロボットシステム100は、独特のパッケージごとに初期載置を計算することができる。得られた初期載置はそれぞれ、たとえば、反復にわたって載置プラン350を追跡することによって、一意の載置組み合わせ(たとえば、図3Cの探索木374のインスタンス)に発展させることができる。ブロック638において、ロボットシステム100は、処理順序および/または上述の残余パッケージ372に応じて、後続のパッケージについての載置位置候補を導出し追跡することができる。したがって、ロボットシステム100は、図3Cの載置組み合わせ364を反復的に導出することができる。
載置組み合わせ364(たとえば、載置位置候補)を導出する際に、ロボットシステム100は、スタッキングシナリオ候補(たとえば、利用可能パッケージについての一意の載置位置の可能な組み合わせ)を反復的に導出し評価することに基づいて、対応するパッケージの離散化オブジェクトモデル302の位置をテスト/評価することができる。各スタッキングシナリオ候補は、上述のシーケンスに従ってパッケージについての一意の可能な位置を(たとえば、載置位置についての所定のシーケンス/ルールに従って)識別することに基づいて、導出することができる。スタッキングシナリオ候補および/または一意の載置位置は、1つまたは複数の載置基準(たとえば、要件、制約、載置コスト、および/またはヒューリスティックスコア)に従って評価することができる。たとえば、載置基準は、選択された位置に載置される場合、離散化オブジェクトモデル302が離散化台モデル304の水平境界線内に完全に収まることを要求することができる。また、載置基準は、離散化オブジェクトモデル302の載置が、隣接載置または離間要件などのために、(たとえば、水平方向などに沿った)初期載置位置および/または前の載置位置に対して閾値距離内または閾値距離を超えることを要求することができる。載置基準の他の例は、1つまたは複数のパッケージ寸法(たとえば、高さ)、脆性レーティング、パッケージ重量範囲、またはこれらの組合せの差が最小であるパッケージを隣接して載置するための設定を含むことができる。いくつかの実施形態では、載置基準は、基準位置(たとえば、パレタイズロボットの位置)に対するレイヤ内の割り当て済みのパッケージの位置および/または特性(たとえば、高さ)に対応し得る衝突確率を含むことができる。したがって、ロボットシステム100は、パッケージ載置位置の複数の一意の載置組み合わせ(すなわち、各レイヤについての載置プラン候補、および/または各レイヤが複数のレイヤ含むスタッキングシナリオ候補)を生成することができる。いくつかの実施形態では、ロボットシステム100は、載置反復にわたって探索木374を生成し更新することに基づいて、組み合わせの載置を追跡することができる。
ブロック640において、ロボットシステム100は、各組み合わせ/パッケージ載置についての載置スコアを計算/更新することができる。ロボットシステム100は、載置条件/設定(たとえば、パッケージ寸法、衝突確率、脆性レーティング、パッケージ重量範囲、離間要件、パッケージ数量条件)のうちの1つまたは複数に従って載置スコアを計算することができる。たとえば、ロボットシステム100は、選好係数(たとえば、乗数の重み)および/または式を使用して、パッケージ間の離間距離、隣接パッケージについてのパッケージ寸法/脆性レーティング/パッケージ重量の差、衝突確率、同じ高さの連続面/隣接面、その統計結果(たとえば、平均、最大、最小、標準偏差など)、またはこれらの組合せについての選好を記述することができる。各組み合わせは、システム製造業者、注文、および/またはシステムオペレータによって事前定義され得る選好係数および/または式に従ってスコア付けすることができる。いくつかの実施形態では、ロボットシステム100は、載置反復全体の最後に載置スコアを計算することができる。
いくつかの実施形態では、ロボットシステム100は、各載置反復後に、図3Cの優先度キュー376内の載置組み合わせ364のシーケンスを更新することができる。ロボットシステム100は、載置スコアに基づいてシーケンスを更新することができる。
ロボットシステム100は、たとえば、1つの載置プラン候補が終了した場合に、空きソースステータス、満杯レイヤステータス、または不変スコアステータスを判定することに基づいて、載置反復を停止することができる。空きソースステータスは、全ての利用可能パッケージが載置されたことを表すことができる。満杯レイヤステータスは、他のパッケージを検討中の離散化台モデル304の残余エリア内に載置できないことを表すことができる。不変スコアステータスは、組み合わせについての載置スコアが、1つまたは複数の連続した載置反復にわたって一定のままであることを表すことができる。いくつかの実施形態では、ロボットシステム100は、(たとえば、配列条件に関連する配列値/スコアが同一であるグループを並べ直すために)異なる初期載置位置および/または異なる処理順序を使用して載置反復を繰り返すことによって、スタッキングシナリオ候補の他のインスタンスを導出することができる。換言すれば、ロボットシステム100は複数の2D載置プランを生成することができ、ここで、各2D載置プランは、(たとえば、スタッキングシナリオ候補のインスタンスなどの)3Dスタック内のレイヤを表すことができる。他の実施形態では、ロボットシステム100は、2D載置プランが導出された場合に3D効果を反復的に検討し、2D載置プランが満杯になった場合に、次のレイヤを次の反復として導出することを開始することができる。
ブロック612において、ロボットシステム100は、スタッキングプラン(たとえば、スタッキングプラン502)を生成することができる。いくつかの実施形態では、ロボットシステム100は、処理されるパッケージの載置位置が1つまたは複数の載置/処理済みのパッケージと重なる場合に、スタッキングプラン502の生成を開始することができる。
スタッキングプラン502を生成し、および/または2Dプランを査定する際に、ロボットシステム100は、ブロック652に示すように、載置組み合わせ364および/または載置プランのそれぞれを3D状態に変換することができる。たとえば、ロボットシステム100は、パッケージについての高さ値を載置組み合わせ364に割り当てることができる。換言すれば、ロボットシステム100は、パッケージ高を載置組み合わせ364に追加することに基づいて、等高線図(深度マップの推定)を生成することができる。
3D状態によって、ロボットシステム100は、1つまたは複数のスタッキングルール(たとえば、図4Aの水平オフセットルール402、図4Bの支持物離間ルール404、および/または図4Cの垂直オフセットルール406)に従って、載置組み合わせ364を評価することができる。説明用の例として、載置されるパッケージが1つまたは複数の処理済みのパッケージの上に/上を覆ってスタックされる場合、ロボットシステム100は、上述の図2の重なり要件422、図4Aの突出要件424、垂直オフセットルール406、図4AのCoMオフセット要件426、またはこれらの組合せに違反する載置組み合わせ364のいずれかを排除することができる。1つまたは複数の実施形態では、ロボットシステム100は、たとえば、重なったパッケージにおける支持重量を推定し、対応する脆性レーティングと比較することによって、処理済みのパッケージの下の1つまたは複数のパッケージの脆性レーティングに違反する載置組み合わせ364のいずれかを排除することができる。
残余の載置組み合わせ364について、ロボットシステム100は、たとえば、ブロック654に示すように、3D載置スコアを計算するまたは載置スコアを更新することができる。ロボットシステム100は、3D載置についての載置コストおよび/またはヒューリスティック値に関連する所定の設定(たとえば、重みおよび/または式)を使用することができる。所定の3D設定は、2D設定、グループ設定、配列条件、またはこれらの組合せに類似することができる。たとえば、3D設定は、3D状態に基づいて衝突確率を計算し、衝突確率がより低い載置組み合わせを優先するスコアを計算するように構成することができる。また、ロボットシステム100は、残余パッケージ372、共通の高さを有する支持エリアのサイズ、3D状態のパッキングされたアイテムの数、処理済みパッケージの高さの差、またはこれらの組合せに基づいて、スコアを計算することができる。いくつかの実施形態では、ロボットシステム100は、スコアに応じて優先度キュー376内の載置組み合わせ364のシーケンスを更新することができる。
3D状態が処理された後、ロボットシステム100は、ブロック610などにおいて、残余パッケージ372内の次のパッケージについての載置を導出することによって、2Dプランを更新することができる。ロボットシステム100は、たとえば、利用可能パッケージ362が全て処理された(すなわち、残余パッケージ372についての空の値/セット)場合、および/または載置組み合わせ364を改善できない(改善されない組み合わせとも呼ばれる)場合など、停止条件まで上述の処理を反復することができる。改善されない組み合わせのいくつかの例は、現在処理されている載置が、違反のうちの1つまたは複数によって優先度キュー376内の載置組み合わせ364の最後のものを排除する場合、および/または載置スコアが優先される組み合わせについて閾値数の反復にわたって一定のままである場合を含むことができる。
停止条件が検出された場合、たとえば、ブロック656において、ロボットシステム100は、載置スコア(たとえば、2Dおよび/または3D関連スコア)に応じて、導出された載置組み合わせ364のうちの1つを選択することができる。したがって、ロボットシステム100は、選択された載置組み合わせをスタッキングプラン502(たとえば、載置プラン350のセット)として指定することができる。
いくつかの実施形態では、説明用の例として、ロボットシステム100は、ブロック610および612の機能を異なって実施することができる。たとえば、ブロック610において、ロボットシステム100は、上述のように最下位レイヤについての2Dプラン(たとえば、載置プラン350のインスタンス)を生成することができる。その際、ロボットシステム100は、載置および/または処理順序を検討する際に、一致するパッケージ高、より重いパッケージ重量、および/またはパッケージについてのより大きい支持可能重量に対してより重い設定(たとえば、より大きいパラメータの重み)を与えるように構成することができる。ロボットシステム100は、ブロック610について上述したように、ベースレイヤについて第1の2Dプランを導出することができる。
第1の2Dレイヤが上述のように完全/満杯となってベースレイヤが形成されると、ロボットシステム100は、ブロック612/652について説明したように載置プランを3D状態に変換することができる。3D情報を使用して、ロボットシステム100は、上述のようにベースレイヤの1つまたは複数の平面セクション/エリア(たとえば、図3Bの載置面352−356)を特定することができる。平面セクションを使用して、ロボットシステム100は、ベースレイヤの上の次のレイヤについてのパッケージ載置を反復的に/再帰的に導出することができる。ロボットシステム100は、各平面セクションを離散化台モデル304の新たなインスタンスとみなし、ブロック610について上述したように異なる載置をテスト/評価することができる。いくつかの実施形態では、ロボットシステム100は、載置面を使用して2D載置を導出することができるが、載置パレット340全体にわたってスコアを計算することができる。したがって、ロボットシステム100は、先行する載置エリアに制限されることなく、後続のレイヤに対してより大きい載置エリアを優先するように構成することができる。
反復的載置処理が第2のレイヤについて停止すると、ロボットシステム100は、導出されたレイヤについての平面セクション(たとえば、閾値範囲内の高さを有する上面)を計算して、次の上のレイヤについての残余パッケージ/グループの2D載置を生成することができる。反復的レイヤ化処理は、上述のように停止条件が満たされるまで継続することができる。
いくつかの実施形態では、ロボットシステム100は、ブロック612において2Dプラン(たとえば、載置プラン350のうちの2つ以上)を独立して生成することができる。ロボットシステム100は、2Dプランを垂直に組み合わせる(たとえば、垂直方向に沿って2D載置プランを配置する/重ねる)ことに基づいてスタッキングプラン502を生成することができる。
ブロック614において、ロボットシステム100は、スタッキングプラン502に基づいてパッキングシーケンス(たとえば、図5Bのスタッキングシーケンス530)を計算することができる。一例として、パッキングシーケンスは、利用可能パッケージ362の載置順序を特定するためのものとすることができる。いくつかの実施形態では、ブロック662に示すように、ロボットシステム100は、パッキングシーケンスをレイヤごとに計算することができる。換言すれば、ロボットシステム100は、各レイヤについてパッキングシーケンスを計算し、次いで、レイヤの順序/位置に従ってシーケンスを下から上へ接続することができる。パッキングシーケンスを計算する際に、いくつかの実施形態では、ロボットシステム100は、ブロック672に示すように載置プランを調整することができる。たとえば、ロボットシステム100は、下位レイヤの載置プランから上位レイヤの載置プランまでパッケージ(たとえば、後続の操作/転置について衝突確率を増加させる高さを有するパッケージ)のうちの1つまたは複数を再割り当てすることによって、載置プランを調整することができる。再割り当てされたパッケージによって支持される任意のパッケージは、さらなる上位レイヤに再割り当てすることもできる。換言すれば、再割り当てされたパッケージは、同じ水平載置のままとし、上位レイヤに関連付けて、パッケージを図5Bに示すように後で載置できるようにすることができる。ブロック674において、ロボットシステム100は、たとえば、下位レイヤに割り当てられたオブジェクトの後に、上位レイヤに割り当てられたオブジェクトをパッキング/操作することによって、調整された載置プランに基づいてパッキングシーケンス(たとえば、スタッキングシーケンス530)を計算することができる。
他の実施形態では、ブロック664に示すように、ロボットシステム100は、レイヤ割り当てとは無関係に/独立してパッキングシーケンスを計算することができる。換言すれば、ロボットシステム100は、下位レイヤに割り当てられたパッケージが上位レイヤに割り当てられたパッケージの後に載置されるように、パッキングシーケンスを計算することができる。
パッキングシーケンスを計算する際に、レイヤ内またはレイヤ間の両方で、ロボットシステム100は、1つまたは複数のパッケージ寸法(たとえば、高さ)、相対的な載置位置、またはこれらの組合せに応じて、スタッキングプラン502内のパッケージの位置を分析することができる。たとえば、ロボットシステム100は、ユニット/基準位置(たとえば、パレタイズロボットの位置)から遠いボックスの載置を、近くに割り当てられたパッケージよりも前に配列することができる。また、ロボットシステム100は、割り当てられた位置が載置プランの外周に沿っており、ユニット位置から離れている場合、より高い/より重いパッケージをより早く載置することができる。
ブロック616において、ロボットシステム100は、利用可能パッケージ362を台に載置するためにスタッキングプラン502を実施することができる。ロボットシステム100は、スタッキングプラン502に従って、1つまたは複数のモーションプラン、アクチュエータコマンド/設定、またはこれらの組合せを、対応するデバイス/ユニット(たとえば、図1の転置ユニット104、図2のアクチュエーションデバイス212、図2のセンサ216など)に伝達することに基づいて、スタッキングプラン502を実施することができる。ロボットシステム100はさらに、デバイス/ユニットにおいて伝達された情報を実行して、利用可能パッケージ362をソース位置から目的地の台に転置することに基づいて、スタッキングプラン502を実施することができる。したがって、ロボットシステム100は、3Dマッピングに従って利用可能パッケージ362を載置することができ、ここで、利用可能パッケージ362のうちの1つまたは複数は他のパッケージの上に載置/スタックされ、たとえば、利用可能パッケージ362がレイヤごとに載置される。さらに、ロボットシステム100は、パッキングシーケンスに従ってパッケージを操作/転置することができる。したがって、ロボットシステム100は、上述のように、パッケージをレイヤごとに、またはそのような制約なしで載置することができる。
いくつかの実施形態では、スタッキングプラン502を実施することは、ロボットシステム100に順序通りでなく到着する利用可能パッケージ362をロボットシステム100が処理することを含むことができる(ブロック680)。いくつかの実施形態では、パッケージは、目的地に載置すべきシーケンス(たとえば、決定済みのスタッキングシーケンス)以外のシーケンスで開始位置114に到着する場合に、順序通りでないと言われる。ロボットシステム100が順序通りでなく到着する利用可能パッケージ362を処理することに関するさらなる詳細については、少なくとも図7〜図11を参照して後述する。
上述のタスクの離散化および2D/3Dレイヤ化によって、オブジェクトをパッキングする効率、速度、および精度が向上する。したがって、オペレータ入力の削減および精度の向上によって、自動化パッキング処理に関する人間の労力をさらに減少させることができる。一部の環境では、上述のロボットシステム100は、約100万USドルまたはそれ以上のコストがかかり得る配列バッファの必要性を排除することができる。
順序通りでないパッケージの処理
図7は、ロボットシステム100が順序通りでなく到着するパッケージを処理するように動作し得る例示的な環境である。ロボットシステム100は、順序通りでなく到着するパッケージを処理して、特定の目的地に(たとえば、倉庫またはキャリアに、スタッキングシーケンスで)載置するために使用することができる。いくつかの実施形態では、パッケージは、目的地に載置すべきシーケンス以外のシーケンスで開始位置114に到着する場合に、順序通りでないと言われる。たとえば、パッケージは、図5Bのパッキングシーケンス530と一致しない場合に、順序通りでないとみなすことができる。図7の例におけるロボットシステム100は、パッケージを処理してキャリアから倉庫に載置するものとして示している。しかしながら、ロボットシステム100は、倉庫からトラックなどのキャリア内にパッケージを載置するように実装することもできる。
ロボットシステム100の転置ユニット104は、パレットまたは台などのタスク位置116に載置すべき対象オブジェクト112として、利用可能パッケージ362を開始位置114において受け取る。転置ユニット104は、順序通りでない利用可能パッケージ362を受け取り得る。スタッキングプランによって定義されるスタッキングシーケンス720でパッケージをタスク位置116に載置することができるまで、転置ユニット104は保管エリア705を利用して、利用可能パッケージ362(たとえば、順序通りでなく到着するもの)のうちの1つまたは複数を一時的に保管することができる。たとえば、転置ユニット104は、順序通りでないパッケージを保管エリア705に保管し、タスク位置116(台とも呼ぶ)に載置するためのスタッキングシーケンス530において次である場合に、保管エリア705から取り出す。このように、ロボットシステム100は、利用可能パッケージ362を(たとえば、荷下ろしユニット102から)スタッキングシーケンスで受け取る必要性を排除し得る。すなわち、ロボットシステム100が利用可能パッケージ362を受け取る実際のシーケンスとは無関係に、ロボットシステム100は、スタッキングプランにおいて定義されたスタッキングシーケンス720に従って、利用可能パッケージ362を台上に配置することができる。いくつかの実施形態では、スタッキングシーケンス720は、パッケージのパッケージID721をパッケージのシーケンスID722と関連付ける。特定のパッケージのシーケンスID722は、その特定のパッケージのスタッキングシーケンスを表す。さらに、いくつかの実施形態では、スタッキングシーケンス720は、図5Bのスタッキングシーケンス530と同様であり、スタッキングプラン502の一部とすることができる。
たとえば、パッケージ「A」〜「I」などの利用可能パッケージ362は、コンベヤベルト110などの輸送機構を介して転置ユニット104に到着する。コンベヤベルト110は、各利用可能パッケージ362に関連付けられたコードを読み取ることが可能なバーコードリーダなどのスキャナ715を具備することができる。いくつかの実施形態では、バーコードなどのパッケージに関連付けられたコードは、パッケージ識別情報、たとえば、パッケージ識別情報(ID)721、出荷情報(たとえば、配達先住所)、パッケージ寸法、パッケージ向き詳細、重量範囲、脆性レーティング、パッケージがその一部であるスタッキングプランのプランIDのうちの1つまたは複数を有することができる。スキャナ715およびパッケージ上のコードの配置は事前に設定することができる。たとえば、スキャナ715がコンベヤベルト110の下方にある場合、コードはパッケージの底部に貼り付けることができ、または荷下ろしユニット102は、スキャナ715によってコードが読み取り可能になるように、パッケージをコンベヤベルト110に載置するよう構成することができる。利用可能パッケージ362が次々に順番にスキャナ715を通過するときに、ロボットシステム100は、各利用可能パッケージ362に関連付けられたコードを読み取るようにスキャナ715を(たとえば、プロセッサ202のうちの1つまたは複数からの命令を介して)動作させることによって、パッケージIDを介してパッケージを識別することができる。たとえば、ロボットシステム100は、利用可能パッケージ362に関連付けられたコードから利用可能パッケージ362のパッケージIDを識別することができる。次いで、ロボットシステム100は、図2の記憶デバイス204から図5のスタッキングプラン502などの利用可能パッケージ362のスタッキングプランにアクセスすることができる。また、ロボットシステム100は、利用可能パッケージ362がタスク位置116に載置される順序を表すスタッキングシーケンス530などの、利用可能パッケージ362のスタッキングシーケンスをスタッキングプランから取得することができる。たとえば、ロボットシステム100は、スタッキングシーケンス720を参照して、利用可能パッケージ362のシーケンスID722を取得することができる。いくつかの実施形態では、パッケージのシーケンスIDは、タスク位置116上のパッケージのスタッキングシーケンスを表す。上述のように、スタッキングプランは、各2D載置プランが、パッケージをパレット上に指定された配置で特定のレイヤ内に載置するためのプランであるスタッキングルールに従う、複数の2D載置プランの3Dの組み合わせ(たとえば、2D載置プランを垂直方向に重ねたもの)とすることができる。
利用可能パッケージ362が開始位置114に、たとえば、次々に到着し、対象オブジェクト112になると(たとえば、転置ユニット104によって実行されるタスクの対象のオブジェクトになると)、ロボットシステム100は、図2のプロセッサ202のうちの1つまたは複数によって、パッケージがパレットなどのタスク位置116への載置シーケンスにおいて次であるか否かを判定することができ、パッケージがシーケンスにおいて次である場合、パッケージをタスク位置116に載置し、そうでなければ、パッケージを保管エリア705に、たとえば、保管ラックのうちの1つに、たとえば、保管ラック710に載置して、後でタスク位置116に載置できるようにする。転置ユニット104は、順序通りのパッケージ(たとえば、タスク位置116に載置するためのスタッキングシーケンス530において次である、開始位置114に到着したパッケージ)をタスク位置116に載置し、または順序通りでないパッケージ(たとえば、タスク位置116に載置するためのスタッキングシーケンス530において次でない、開始位置114に到着したパッケージ)を保管エリア705に一時的に保管し、その後、やがてタスク位置116への載置シーケンスにおいて次になった場合に、一時的に保管されている順序通りでないパッケージをタスク位置116に載置することによって、タスク位置116へのパッケージ362の載置を完了することができる。
図8は、様々な実施形態と整合する、図3の利用可能パッケージ362を図1または図7のタスク位置116に載置する際の様々なステージの一例800を示すブロック図である。いくつかの実施形態では、例800は、図7の環境において実施することができる。上述のように、利用可能パッケージ362が開始位置114へ向かう途中にある図7のスキャナ715を通過するので、ロボットシステム100は、開始位置114に到着するまでにパッケージのパッケージIDおよびシーケンスIDの知識を有することになり、これはロボットシステム100が(たとえば、転置ユニット104を介して)パッケージを処理してタスク位置116に載置するのに役立つことになる。たとえば、第1のステージ805において、利用可能パッケージ362のうちの第1のパッケージがスキャナ715を通過した場合、転置ユニット104はスキャナ715から第1のパッケージ(たとえば、「A」)のパッケージIDを取得し、スタッキングシーケンス720からパッケージ「A」のシーケンスIDを取得する。パッケージ「A」が図1または図7の開始位置114に到達した場合、転置ユニット104は、シーケンスID「2」を有するパッケージ「A」がタスク位置116への載置シーケンスにおいて次でないと判定し(タスク位置116に載置済みのパッケージがないので)、そのため、第1の載置805に示すように、パッケージ「A」を保管エリア705の保管ラック710に載置する。パッケージ「A」を保管ラック710に載置した後、転置ユニット104はまた、パッケージ「A」の保管位置情報を、たとえば、図2の追跡データ254に記録する。保管位置情報は、保管エリア705内のパッケージ「A」の3D位置情報とすることができる。パッケージの保管位置情報を転置ユニット104が使用して、保管エリア705内のパッケージを位置特定し、必要に応じて保管エリア705からパッケージを取り出すことができる。いくつかの実施形態では、転置ユニット104は、保管エリア705に一時的に保管されている各パッケージのパッケージID、シーケンスIDおよび保管位置情報を記憶するデータ構造(「保管マップ」と呼ぶ)を生成することができる。
利用可能パッケージの処理を再度参照すると、パッケージ「B」が開始位置114に到着した場合、転置ユニット104は、シーケンスID「1」を有するパッケージ「B」がタスク位置116への載置シーケンスにおいて次であると判定し、そのため、第2の載置806に示すように、パッケージ「B」をタスク位置116に載置する。いくつかの実施形態では、転置ユニット104は、スタッキングプランに従ってパッケージ「B」を載置することになる。転置ユニット104は、タスク位置116に載置されたパッケージのシーケンスIDを記録することができる。たとえば、パッケージ「B」をタスク位置116に載置した後、転置ユニット104は、タスク位置116に最も最近載置されたパッケージのシーケンスIDを示す、タスク位置116に関連付けられたシーケンスカウンタを「1」に更新することができる。
ロボットシステム100は、タスク位置116への載置シーケンスにおける次のパッケージが、シーケンスID「2」を有するパッケージであって、これは保管エリア705に保管されているパッケージ「A」であると判定する。したがって、転置ユニット104は、保管マップからパッケージ「A」の保管位置情報を決定し、保管位置情報に基づいて保管ラック710からパッケージを取り出し、第3の載置807に示すように、スタッキングプランに従ってパッケージ「A」をタスク位置116に載置する。転置ユニット104は、パッケージ「A」をタスク位置116に載置した後に、シーケンスカウンタを「2」に更新する。さらに、転置ユニット104はまた、パッケージ「A」がタスク位置116に載置されたことを示すように保管マップを更新する。たとえば、保管マップは、パッケージがタスク位置116に載置されたか否かを示すインジケータを有してもよい。いくつかの実施形態では、転置ユニット104は、保管エリア705のパッケージがタスク位置116に載置された場合に、保管マップからエントリを削除すらしてもよい。
パッケージ「A」をタスク位置116に載置した後、転置ユニット104は、次の順番の利用可能パッケージを処理し、これはシーケンスID「3」を有するパッケージ「C」である。転置ユニット104は、パッケージ「C」がタスク位置116への載置シーケンスにおいて次であると判定し、第4の載置808に示すように、スタッキングプランに従ってパッケージ「C」をタスク位置116に載置する。また、転置ユニット104は、パッケージ「C」をタスク位置116に載置した後、シーケンスカウンタを「3」に更新する。同様に、転置ユニット104は、第5の載置809に示すように、スタッキングプランに従ってシーケンスID「4」を有するパッケージ「D」をタスク位置116に載置し、シーケンスカウンタを「4」に更新する。
次の順番で到着するパッケージ、たとえば、パッケージ「E」について、転置ユニット104は、シーケンスID「12」を有するパッケージ「E」がタスク位置116への載置シーケンスにおいて次でないと判定し、そのため、第6の載置810に示すように、パッケージ「E」を保管ラック710などの保管エリア705に載置する。同様に、転置ユニット104は、パッケージ「F」〜「I」を次々に開始位置114から処理し、載置811〜814に示すように、パッケージを保管エリア705内の1つまたは複数の保管ラックに載置する。転置ユニット104は保管マップを更新して、パッケージ「E」〜「I」のパッケージID、シーケンスIDおよび保管位置情報を記録する。いくつかの実施形態では、保管エリア705に保管されている1つまたは複数のパッケージをパッケージセットと呼ぶ。
パッケージ「J」が開始位置114に到着した場合、転置ユニット104は、シーケンスID「5」を有するパッケージ「J」がタスク位置116への載置シーケンスにおいて次であると判定し、第11の載置815に示すように、スタッキングプランに従ってパッケージ「J」をタスク位置116に載置する。また、転置ユニット104はシーケンスカウンタを「5」に更新する。
転置ユニット104は、タスク位置116への載置シーケンスにおける次のパッケージが、シーケンスID「6」を有するパッケージであって、これは保管エリア705に保管されているパッケージセットのうちのパッケージ「G」であると判定する。したがって、転置ユニット104は、パッケージ「G」の保管位置情報を保管マップから決定し、保管位置情報に基づいて保管エリア705からパッケージを取り出し、第12の載置816に示すように、スタッキングプランに従ってパッケージ「G」をタスク位置116に載置する。転置ユニット104は、シーケンスカウンタを「6」に更新し、パッケージ「G」がタスク位置116に載置されたことを示すように保管マップを更新する。
次に、転置ユニット104は、保管エリア705内のパッケージセットが、タスク位置116への載置シーケンスにおける次のパッケージを有さないと判定し、そのため、次の順番で到着する利用可能パッケージ、たとえば、シーケンスID「7」を有するパッケージ「K」の処理に進む。転置ユニット104は、パッケージ「K」がタスク位置116への載置シーケンスにおいて次であると判定し、第13の載置817に示すように、スタッキングプランに従ってタスク位置116に載置する。また、転置ユニット104はシーケンスカウンタを「7」に更新する。
次に、転置ユニット104は、載置818および819に示すように、パッケージ「I」および「H」を保管エリア705からタスク位置116へ次々に載置することに進む。転置ユニット104は、停止条件が満たされるまで、たとえば、全ての利用可能パッケージ362がタスク位置116に載置されるまで、上述のようにパッケージの処理を継続する。シーケンスカウンタおよび/または保管マップは、必要に応じて(たとえば、パッケージがタスク位置116上または保管エリア内に載置された、またはタスク位置116に載置するために保管エリアから持ち去られた場合に)、パッケージの配置の状態を示すように更新される。
なお、パッケージはタスク位置116上の複数のレイヤに、たとえば、パッケージ「D」、「C」、「A」、および「B」は第1レイヤに、「I」、「K」、「J」、および「G」は第2のレイヤに、「H」は第3のレイヤになど、配置/スタックされる。そのような配置は、少なくとも図4A〜図5Bを参照して上述したように、スタッキングプランによって定義される。
保管エリア705は、転置ユニット104がパッケージを載置するおよび/またはパッケージを取り出すのに好適な多くの構成のうちの1つで設計することができる。たとえば、保管エリア705は半円形の多層構造、たとえば、円形劇場の構成、または階段形式で構成された複数の保管ラック710として構成することができる。他の例では、保管ラック710は、複数の行および列として構成することができる。
転置ユニット104は、パッケージセットを保管エリア705に様々な配置で載置することができる。たとえば、転置ユニット104は、パッケージセットのパッケージをある保管ラック710上に横方向に隣同士に載置した後、他の保管ラック710上に移動させることができる。他の例では、転置ユニット104は、パッケージを保管エリア705にランダムに載置することができる。さらに他の例では、転置ユニット104は、パッケージを保管エリア705に載置するための載置プラン、たとえば、少なくとも図3A〜図3Cを参照して説明した載置プランを生成することができる。載置プランは、パッケージを保管エリア705に載置するための保管ラックの数、保管ラックの寸法、保管ラックの重量支持力などを考慮してもよい。ともかく、転置ユニット104が、保管場所705内の利用可能な保管スペースを効率的に利用して、利用可能パッケージ362のうちの1つまたは複数を保管することができ、最大の効率でパッケージを保管エリア705に載置し、保管エリア705から取り出すことができるように、パッケージが保管エリア705に載置される。
利用可能パッケージ362のうちの1つまたは複数を保管エリア705に一時的に保管し、次いでタスク位置116に移動させる処理は、様々な方法で実装することができる。第1の例では、転置ユニット104は、各利用可能パッケージ362を(たとえば、次々に)保管エリア705に保管し、次いで、保管エリア705からのパッケージを処理して、スタッキングプランに従ってタスク位置116に載置することができる。第2の例では、転置ユニット104は、少なくとも図8を参照して説明したように、到着したパッケージのシーケンスIDに基づいて、利用可能パッケージ362を保管エリア705またはタスク位置116に載置することができる。しかしながら、第2の例では、コンベヤベルト110の操作、たとえば、コンベヤベルト110の停止、開始、または減速もしくは加速が必要になり得る。たとえば、タスク位置116への載置シーケンスにおける次のパッケージが保管エリア705に保管されていると転置ユニット104が判定した場合(たとえば、第2の載置806に示すパッケージ「A」)、ロボットシステム100は、コンベヤベルト110を停止または減速させて、保管エリア705のパッケージがタスク位置116に載置されるまで、コンベヤベルト110が次の順番の利用可能パッケージを供給するのを阻止する(たとえば、第2の載置806に示すように、パッケージ「A」がタスク位置116に載置されるまで、パッケージ「C」の供給を停止する)ためのプランを実施する必要があり得る。次いで、ロボットシステム100は、コンベヤベルト110を開始または加速して、次の順番の利用可能パッケージを開始位置114に供給してもよい。いくつかの実施形態では、ロボットシステム100は、コンベヤベルト110を制御する、たとえば、開始、停止、または速度調整する命令を生成することによって、コンベヤベルト110の速度を調節するためのプランを実施することができる。
いくつかの実施形態では、第1の例は第2の例よりも多くのリソース、たとえば、処理時間、記憶リソースを消費し得、その理由は、全ての利用可能パッケージ362が最初に保管エリア705に保管され、その後タスク位置116に載置されるためである。しかしながら、いくつかの実施形態では、パッケージがタスク位置116に載置されるシーケンスとは逆順で利用可能パッケージ362が開始位置114において受け取られる場合、第2の例は第1の例と同じリソースを消費し得、その理由は、全てのパッケージが保管エリア705に保管され、その後保管エリア705から処理されてタスク位置116に載置される必要があるためである。
図9〜図11に、保管エリアを使用して順序通りでないパッケージを台に載置するための3つの異なる処理を示す。3つの処理は全て、スタッキングプランに従って図3の利用可能パッケージ362を台に載置するという同一の最終結果を実現するが、パッケージを処理する方法は異なる。たとえば、図9の処理900はパッケージを「配列優先」の原則で処理し、図10の処理1000は「配列および保管」の原則で処理し、図11の処理1100は「保管優先」の原則で処理する。さらに、上記の処理は、図6のブロック680の方法の異なる実施形態とすることができる。
処理900の「配列優先」の実施形態では、残りの利用可能パッケージを処理する前に、先にパッケージを順序通りに載置することを優先する。すなわち、図7の保管エリア705に、台への載置シーケンスにおける次のパッケージがある場合、そのパッケージを、次に到来する利用可能パッケージ362を処理する前に、台に載置する。
処理1000の「配列および保管」の実施形態では、到来した利用可能パッケージは、順序通りである場合に台に載置され、そうでなければ、そのパッケージは保管エリア705に保管される。全ての利用可能パッケージが受け取られ、保管エリア705または台に載置された後、保管エリア705内の全ての残りのパッケージが処理されて台に載置される。
処理1100の「保管優先」の実施形態では、全ての到来した利用可能パッケージは最初に保管エリア705に保管される。全ての利用可能パッケージが受け取られ、保管エリア705に保管された後、保管エリア705内のパッケージが処理されて台に載置される。
ここで図9を参照し、図9は、様々な実施形態と整合する、一時的な保管エリア(たとえば、図7の705)を使用して利用可能パッケージ(たとえば、図3の362)をタスク位置(たとえば、図1の116)に載置するための処理900の流れ図である。いくつかの実施形態では、処理900は、図1および図7の環境において実施することができ、図6のブロック680の一部として実施することができる。さらに、いくつかの実施形態では、少なくとも図8を参照して説明したパッケージ載置は、処理900の説明用の例である。処理900は、図2の記憶デバイス204のうちの1つまたは複数に記憶された命令を図2のプロセッサ202のうちの1つまたは複数によって実行することに基づいて、実施することができる。ブロック901において、ロボットシステム100は、利用可能パッケージ362についてのスタッキングプランにアクセスすることができる。図5のスタッキングプラン502などのスタッキングプランは、タスク位置116(たとえば、台)上のパッケージの配置に関する詳細を含む。また、スタッキングプラン502は、図7のスタッキングシーケンス720などの、パッケージがタスク位置116に載置されるスタッキングシーケンスに関する情報を含む。いくつかの実施形態では、スタッキングプラン502は、少なくとも図6のブロック612を参照して説明したように生成される。転置ユニット104は、記憶デバイス204などの、ロボットシステム100の記憶デバイスに記憶されたスタッキングプラン502にアクセスすることができる。いくつかの実施形態では、スタッキングプラン502は、図2の追跡データ254に記憶することができる。
ブロック902において、ロボットシステム100は、利用可能パッケージ362を順番に受け取るためのプランを実施することができる。たとえば、ロボットシステム100は、図1または図7のコンベヤベルト110を介して輸送された利用可能パッケージ362を転置ユニット104が受け取る命令を生成することができる。
ブロック903において、ロボットシステム100は、利用可能パッケージ362を識別するためのプランを実施することができる。たとえば、ロボットシステム100は、図7のスキャナ715が利用可能パッケージ362を転置ユニット104へ向かう途中でスキャンして利用可能パッケージ362を識別する命令を生成することができる。たとえば、利用可能パッケージ362がコンベヤベルト110上で転置ユニット104まで輸送されるときに、利用可能パッケージ362がスキャナ715を横切る際に、スキャナ715は利用可能パッケージ362を次々にスキャンする。利用可能パッケージ362は、パッケージに貼り付けられたまたはパッケージ上に印刷されたコード、たとえば、バーコードを有してもよい。スキャナ715はコードをスキャンして、パッケージの識別情報、たとえば、パッケージIDを取得する。
判定ブロック904において、スキャンされたパッケージを受け取ると、ロボットシステム100は、スキャンされたパッケージが、台116に載置するためのスタッキングシーケンス530において次であるか否かを判定することができる。ロボットシステム100は、パッケージIDに基づいてシーケンスマップ720からパッケージのシーケンスIDを決定することができる。
パッケージが台への載置シーケンスにおいて次である場合、ブロック905において、ロボットシステム100は、スタッキングプランに従ってパッケージを台に載置するためのプランを実施することができる。たとえば、ロボットシステム100は、転置ユニット104がスタッキングプランに従ってパッケージを台に載置する命令を生成することができる。なお、スタッキングプランは、台上のパッケージの配置、たとえば、パッケージを載置すべき台上の場所、台上のパッケージの向き、台上に載せるべきパッケージの面などを定義し、これらは全て、少なくとも図3A〜図6を参照して説明していることに留意されたい。パッケージが台に載置された後、ロボットシステム100は、台に載置されたパッケージのシーケンスIDを(たとえば、図2のプロセッサ202のうちの1つまたは複数によって)追跡の目的で記録することができる。たとえば、ロボットシステム100は、最も最近台に載置されたパッケージのシーケンスIDを示すシーケンスカウンタを維持することができる。
判定ブロック904を再度参照すると、パッケージが台への載置シーケンスにおいて次でない場合、ブロック906において、ロボットシステム100は、保管エリア705などの保管エリアにパッケージを保管するためのプランを実施することができる。たとえば、ロボットシステム100は、転置ユニット104がパッケージを保管エリア705に保管する命令を生成することができる。いくつかの実施形態では、保管エリア705に保管されている利用可能パッケージ362のうちの1つまたは複数を、パッケージセットと呼ぶ場合がある。
ブロック907において、ロボットシステム100は、パッケージが保管されている保管エリア705内の保管位置の保管位置情報を記録することができる。いくつかの実施形態では、保管位置情報は、保管位置の3D情報とすることができる。パッケージの保管位置情報は、少なくとも図7を参照して説明したように、パッケージのパッケージIDと共に、また、任意選択によりパッケージのシーケンスIDと共に、保管マップに記憶することができる。
パッケージが台上または保管エリア705内に載置された後、判定ブロック908において、ロボットシステム100は、(たとえば、図2のプロセッサ202のうちの1つまたは複数によって)台への載置シーケンスにおける次のパッケージが保管エリア705内にあるか否かを判定することができる。たとえば、ロボットシステム100は、シーケンスカウンタを参照して、台に載置すべきパッケージの次のシーケンスIDを決定し、保管マップを参照して、次のシーケンスIDを有するパッケージがあるか否かを判定し、ある場合、その保管位置を決定することができる。
台への載置シーケンスにおける次のパッケージが保管エリア705にある場合、ブロック909において、ロボットシステム100は、識別されたパッケージを保管エリア705内の保管位置から取り出すためのプランを実施することができる。たとえば、ロボットシステム100は、転置ユニット104が識別されたパッケージを保管エリア705内の保管位置から取り出す命令を生成することができる。
ブロック910において、ロボットシステム100は、スタッキングプランに従ってパッケージを台に載置するためのプランを実施することができる。たとえば、ロボットシステム100は、転置ユニット104がスタッキングプランに従ってパッケージを台に載置する命令を生成することができる。台への載置シーケンスにおける次のパッケージが保管エリア705からなくなるまで、ブロック908から910までの処理は反復される。
台への載置シーケンスにおける次のパッケージが保管エリア705内にもはやない場合、判定ブロック911において、ロボットシステム100は、載置すべき利用可能パッケージ362がまだあるか否かを判定することができる。たとえば、ロボットシステム100は、台に載置するためにまだ処理されていないパッケージがコンベヤベルト110上にまだあるか否かを判定する。受け取るべきパッケージがまだある場合、処理はブロック903に進んで、次にスキャンされたパッケージが処理される。全ての利用可能パッケージ362が受け取られた場合、すなわち、台に載置するために処理すべきパッケージはもはやない。
なお、たとえば、ブロック909および910において、ロボットシステム100がパッケージを保管エリア705から台に転置している間に、コンベヤベルト110上に処理すべき利用可能パッケージ362がまだある場合、パッケージを保管エリア705から台に移動する時間を転置ユニット104に与えるために、コンベヤベルト110を停止する必要があり得、またはコンベヤベルト110を減速する必要があり得ることに留意されたい。たとえば、開始位置114にあるパッケージが指定期間を超えて転置ユニット104により収集されない場合、コンベヤベルト110は自動的に停止してもよく、またはいくつかの実施形態では、プロセッサ202のうちの1つまたは複数によって生成される命令に基づいて停止または減速してもよい。
図10は、様々な実施形態と整合する、一時的な保管エリアを使用して利用可能パッケージをタスク位置に載置するための処理1000の流れ図である。いくつかの実施形態では、処理1000は、図1および図7の環境において、図6のブロック680の一部として実施することができる。処理1000は、図2の記憶デバイス204のうちの1つまたは複数に記憶された命令を、図2のプロセッサ202のうちの1つまたは複数によって実行することに基づいて実施することができる。なお、一部の詳細は、処理900において説明したものと同様であるので、この処理では省略していることに留意されたい。ブロック1001において、ロボットシステム100は、利用可能パッケージ362についてのスタッキングプランにアクセスすることができる。
ブロック1002において、ロボットシステム100は、たとえばコンベヤベルト110を介して利用可能パッケージ362を順番に受け取るためのプランを実施することができる。
ブロック1003において、ロボットシステム100は、利用可能パッケージ362を識別するためのプランを実施することができる。
判定ブロック1004において、スキャンされたパッケージを受け取ると、ロボットシステム100は、パッケージが台への載置シーケンスにおいて次であるか否かを判定する。ロボットシステム100は、パッケージIDに基づいてシーケンスマップからパッケージのシーケンスIDを決定することができる。
パッケージが台への載置シーケンスにおいて次である場合、ブロック1005において、ロボットシステム100は、スタッキングプランに従ってパッケージを台に載置するためのプランを実施することができる。
判定ブロック1004を再度参照すると、パッケージが台への載置シーケンスにおいて次でない場合、ブロック1006において、ロボットシステム100は、パッケージを保管エリア705などの保管エリアに保管するためのプランを実施することができる。
ブロック1007において、ロボットシステム100は、パッケージが保管されている保管エリア705内の保管位置の保管位置情報を記録することができる。
パッケージが台上または保管エリア705内に載置された後、判定ブロック1008において、ロボットシステム100は、全ての利用可能パッケージ362が受け取られたか否かを判定することができる。たとえば、ロボットシステム100は、台に載置するなどのためにまだ処理されていないパッケージがコンベヤベルト110上にまだあるか否かを判定する。受け取るべきパッケージがまだある場合、処理はブロック1003に進んで、次にスキャンされたパッケージが処理される。
全ての利用可能パッケージ362が受け取られた場合、判定ブロック1009において、ロボットシステム100は、保管エリア705に保管されているパッケージがあるか否かを判定することができる。保管エリア705内にパッケージがない場合、処理1000は戻る。保管エリア705に残っているパッケージがある場合、ブロック1010において、ロボットシステム100は、台への載置シーケンスにおける次のパッケージを決定する。たとえば、ロボットシステム100は、シーケンスカウンタを参照して、載置すべきパッケージIDの次のシーケンスIDを決定し、保管マップを参照して、次のシーケンスIDを有するパッケージと、保管エリア705内の対応する保管位置とを決定することができる。
ブロック1011において、ロボットシステム100は、保管エリア705内の決定された保管位置から識別されたパッケージを取り出すためのプランを実施することができる。
ブロック1012において、ロボットシステム100は、スタッキングプランに従ってパッケージを台に載置するためのプランを実施することができる。保管エリア705内の全てのパッケージが台に載置されるまで、ブロック1010から1012までの処理は反復される。
図11は、様々な実施形態と整合する、一時的な保管エリアを使用して利用可能パッケージをタスク位置に載置するための処理1100の流れ図である。いくつかの実施形態では、処理1100は、図1および図7の環境において、図6のブロック680の一部として実施することができる。処理1100は、図2の記憶デバイス204のうちの1つまたは複数に記憶された命令を、図2のプロセッサ202のうちの1つまたは複数によって実行することに基づいて実施することができる。一部の詳細は、処理900において説明したものと同様であるので、この処理では省略していることに留意されたい。ブロック1101において、ロボットシステム100は、(たとえば、少なくとも図9の901を参照して説明したように)利用可能パッケージ362についてのスタッキングプランにアクセスすることができる。
ブロック1102において、ロボットシステム100は、コンベヤベルト110などを介して利用可能パッケージ362を順番に受け取るためのプランを実施することができる。
ブロック1103において、ロボットシステム100は、利用可能パッケージ362を識別するためのプランを実施することができる。
ブロック1104において、ロボットシステム100は、保管エリア705などの保管エリアにパッケージを保管するためのプランを実施することができる。
ブロック1105において、ロボットシステム100は、パッケージが保管エリア705に保管されている保管位置の保管位置情報を記録することができる。
判定ブロック1106において、ロボットシステム100は、全ての利用可能パッケージ362が受け取られたか否かを判定することができる。たとえば、ロボットシステム100は、保管エリア705内または台上に載置するなどのためにまだ処理されていないパッケージがコンベヤベルト110上にまだあるか否かを判定する。受け取るべきパッケージがまだある場合、処理はブロック1103に進んで、次にスキャンされたパッケージが処理される。
全ての利用可能パッケージ362が受け取られた場合、判定ブロック1107において、ロボットシステム100は、保管エリア795に保管されているパッケージがあるか否かを判定することができる。保管エリア705内にパッケージがない場合、処理1100は戻る。保管エリア705に残っているパッケージがある場合、ブロック1108において、ロボットシステム100は、台への載置シーケンスにおける次のパッケージを決定する。たとえば、ロボットシステム100は、シーケンスカウンタを参照して、載置すべきパッケージIDの次のシーケンスIDを決定し、保管マップを参照して、次のシーケンスIDを有するパッケージと、保管エリア705内のその保管位置とを決定することができる。
ブロック1109において、ロボットシステム100は、保管エリア705内の決定された保管位置から識別されたパッケージを取り出すためのプランを実施することができる。
ブロック1110において、ロボットシステム100は、スタッキングプランに従ってパッケージを台に載置するためのプランを実施することができる。保管エリア705内の全てのパッケージが台に載置されるまで、ブロック1108から1110までの処理は反復される。
結論
開示した技術の実施例の上記の詳細な説明は、網羅的なものではなく、開示した技術を上記で開示した厳密な形に限定するものでもない。開示した技術の具体例を例示の目的で上述しているが、当業者であれば理解するように、開示した技術の範囲内で様々な等価な修正が可能である。たとえば、処理またはブロックを所与の順序で提示しているが、代替的な実施態様は異なる順序のステップを有するルーチンを実行してもよく、または異なる順序のブロックを有するシステムを採用してもよく、一部の処理またはブロックを削除、移動、追加、細分化、結合、および/または修正して、代替的な組み合わせまたは部分的な組み合わせを提供してもよい。これらの処理またはブロックのそれぞれは、種々の異なる方法で実施されてもよい。また、処理またはブロックは順番に実行されるように示している場合があるが、これらの処理またはブロックは代わりに並列に実行または実施されてもよく、または異なる時刻に実行されてもよい。さらに、本明細書に記載の任意の特定の数字は例にすぎず、代替的な実施態様は異なる値または範囲を採用してもよい。
これらのおよび他の変更は、上記の詳細な説明に照らして、開示した技術に対して行うことができる。詳細な説明では、開示した技術の特定の例だけでなく、企図される最良の形態を説明しているが、上記の説明が文中でどれほど詳細に見えても、開示した技術は多くの方法で実践することができる。システムの詳細はその特定の実施態様において大幅に異なってもよく、本明細書で開示した技術によってなおも包含される。上述のように、開示した技術の特定の特徴または態様を説明する際に使用される特定の用語は、その用語が関連する開示した技術の任意の特定の特性、特徴、または態様に限定されるようにその用語が本明細書で再定義されることを意味するよう解釈されるべきではない。したがって、本発明は、添付の特許請求の範囲を除いて、限定されない。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明のセクションがそのような用語を明確に定義していない限り、開示した技術を本明細書で開示した具体例に限定するように解釈されるべきではない。
本発明の特定の態様を特定の請求項の形式で以下に提示するが、出願人は本発明の様々な態様を任意数の請求項の形式で企図している。したがって、出願人は、本出願または継続出願において、そのような追加の請求項の形式を追求するために本出願を提出した後に追加の請求を追求する権利を留保している。

Claims (18)

  1. ロボットシステムを動作させる方法であって、
    パッケージを台に載置するスタッキングプランにアクセスすることであって、前記スタッキングプランは、前記台の水平面に沿った、前記台上の複数のレイヤ内の前記パッケージの3次元(3D)マッピングを表し、前記スタッキングプランは、前記パッケージが前記台に載置されるスタッキングシーケンスを含む、前記アクセスすることと、
    前記パッケージを次々にある順番で受け取るプランを実施することと、
    前記順番の各パッケージを反復的に処理することであって、
    前記順番における次のパッケージのパッケージ識別情報(ID)を判定することと、
    前記スタッキングプランおよび前記パッケージIDに基づいて、前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次であるか否かを判定することと、
    前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次でないとの判定に応答して、前記台とは異なる保管エリアに前記パッケージを載置するためのプランを実施することと、
    前記パッケージIDと、前記保管エリア内の前記パッケージの保管位置とを記録することと、
    を含む、前記処理することと、
    前記保管エリアに保管されている前記パッケージのうちのパッケージを表すパッケージセットの各パッケージを反復的に処理することであって、
    前記パッケージセットの第1のパッケージを識別することであって、前記第1のパッケージは、前記台に載置する前記スタッキングシーケンスにおいて次である、前記識別することと、
    前記第1のパッケージの保管位置の3D情報に基づいて、前記保管エリアから前記第1のパッケージを取り出すためのプランを実施することと、
    前記スタッキングプランに従って前記第1のパッケージを前記台に載置するためのプランを実施することであって
    パッケージグループに基づいて載置プランを生成することであって、前記載置プランは、前記台の水平面に沿った前記パッケージの2次元(2D)マッピングを表す、前記生成することと、
    複数の載置プランの前記2Dマッピングを前記パッケージの前記3Dマッピングに変換することによって、前記スタッキングプランを生成することであって、前記3Dマッピングは、前記台上の前記複数のレイヤ内の前記パッケージの配置を表し、各レイヤは、他のレイヤの上方にあって、対応する載置プランを有する、前記生成することと、
    を含む、前記実施することと、
    を含む、前記処理することと、
    を含む前記方法。
  2. 前記パッケージIDを取得することは、
    前記パッケージが前記台に載置する前記ロボットシステムの積載ユニットへ向かう途中で前記ロボットシステムのスキャンユニットを通過するときに、前記パッケージに関連付けられたコードを判定することであって、前記コードは前記パッケージの前記パッケージIDを含み、前記パッケージはスキャンシステムを前記順番で通過する、前記判定すること、
    を含む請求項1に記載の方法。
  3. 前記パッケージIDおよび前記スタッキングプランを使用して前記パッケージのシーケンスIDを決定することと、
    前記シーケンスIDに基づいて、前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次であるか否かを判定することと、
    をさらに含む請求項2に記載の方法。
  4. 前記順番の各パッケージを処理することは、
    載置プランに基づいて前記パッケージセットを前記保管エリアに載置するプランを実施すること、
    を含む請求項1に記載の方法。
  5. 前記載置プランに基づいて前記パッケージセットを載置する前記プランを実施することは、前記保管エリアに載置すべき前記パッケージセットのパッケージのグループを、前記パッケージセットの前記パッケージについての脆性レーティング、パッケージ重量範囲、高さ、パッケージタイプ、またはこれらの組み合わせに応じて決定すること、
    を含む請求項4に記載の方法。
  6. 前記載置プランに基づいて前記パッケージセットを載置する前記プランを実施することは、
    前記保管エリアの構成に基づいて前記パッケージセットのパッケージのグループを決定することであって、前記構成は前記保管エリアの1つまたは複数の特性を含み、前記特性は、前記保管エリア内の保管ラックの数、前記保管ラックのそれぞれの高さ、幅、奥行き、または推定耐荷力を含む、前記決定すること、
    を含む請求項4に記載の方法。
  7. 前記パッケージセットを前記保管エリアに載置するための前記プランを実施することは、
    前記パッケージセットの少なくともいくつかのパッケージを前記保管エリアの保管ラックに横方向に隣接するように保管するプランを実施すること、
    を含む請求項4に記載の方法。
  8. 前記順番の各パッケージを処理することは、
    前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次であるとの判定に応答して、前記パッケージを前記保管エリアに転置せずに、前記パッケージを前記台に載置するプランを実施すること、
    を含む請求項1に記載の方法。
  9. 前記パッケージが前記台に載置された後に、前記保管エリア内の前記パッケージセットの任意のパッケージが、前記台に載置する前記スタッキングシーケンスにおいて次であるか否かを判定することと、
    前記パッケージセットから指定されたパッケージが前記スタッキングシーケンスにおいて次であるとの判定に応答して、前記指定されたパッケージを前記台に載置するプランを実施することと、
    をさらに含む請求項8に記載の方法。
  10. 前記指定されたパッケージを前記台に載置する前記プランを実施することは、
    前記順番における次のパッケージを処理する前に、前記指定されたパッケージを前記台に載置するプランを実施すること、
    を含む請求項9に記載の方法。
  11. 前記指定されたパッケージを前記台に載置する前記プランを実施することは、
    コンベヤユニットの速度を調節して、前記順番における次のパッケージの受け取りを遅らせるプランを実施することであって、前記コンベヤユニットは、前記台に載置するために前記パッケージを次々に輸送し、前記速度は、前記指定されたパッケージを前記台に載置する前に調節される、前記実施すること、
    を含む請求項9に記載の方法。
  12. 前記順番の各パッケージを処理することは、
    前記順番の前記パッケージが全て受け取られるまで、前記順番で受け取られた前記パッケージのそれぞれを前記保管エリアに保管するプランを実施すること、
    を含む請求項1に記載の方法。
  13. 前記パッケージを受け取る命令を生成することは、
    前記スタッキングシーケンスとは異なるシーケンスで前記パッケージを受け取るプランを実施すること、
    を含む請求項1に記載の方法。
  14. 前記スタッキングプランに基づいて前記スタッキングシーケンスを計算することであって、前記スタッキングシーケンスは、前記パッケージの前記台への載置順序を特定するためのものである、前記計算することと、
    前記スタッキングシーケンスに従って前記パッケージを前記台に載置する命令を生成することと、
    をさらに含む請求項に記載の方法。
  15. 台に載置するように指定された利用可能パッケージを受け取る命令であって、前記利用可能パッケージは、次々にある順番で受け取られる、前記受け取る命令と、
    シーケンス識別情報(ID)を取得するために前記利用可能パッケージを識別する命令であって、前記シーケンスIDは、前記利用可能パッケージが前記台に載置されるシーケンスに対応する、前記識別する命令と、
    前記利用可能パッケージのうちの第1の利用可能パッケージが、前記台に載置する前記シーケンスにおいて次であるか否かを、前記第1の利用可能パッケージの第1のシーケンスIDに基づいて判定する命令と、
    前記第1の利用可能パッケージが、前記台に載置する前記シーケンスにおいて次でないとの判定に応答して、前記第1の利用可能パッケージを前記台とは異なる保管エリアに保管する命令と、
    前記第1の利用可能パッケージの保管位置を記録する命令と、
    前記利用可能パッケージのうちの第2の利用可能パッケージが、前記台に載置する前記シーケンスにおいて次であると判定する命令であって、前記第2の利用可能パッケージは、前記順番において前記第1の利用可能パッケージの次である、前記判定する命令と、
    前記第2の利用可能パッケージを前記台に載置する命令であって
    前記第2の利用可能パッケージを前記台に載置するスタッキングプランを分析することであって、前記スタッキングプランは、前記台上の複数のレイヤ内の前記パッケージの配置を表す3次元(3D)マッピングを含み、各レイヤは、他のレイヤの上方にあって、前記パッケージの対応する載置プランを、前記対応するレイヤに対する2次元(2D)マッピングとして有する、前記分析することと、
    前記スタッキングプランに基づいて前記第2の利用可能パッケージを前記台に載置することと、
    に基づく前記載置する命令と、
    前記第1の利用可能パッケージが、前記台に載置する前記シーケンスにおいて次であると判定する命令と、
    前記台に載置するために前記第1の利用可能パッケージを保管エリアから移動させる命令と、
    を含むコンピュータ読取可能な命令を記憶するコンピュータ読取可能な記憶媒体。
  16. 前記利用可能パッケージを識別する前記命令は、
    前記利用可能パッケージのうちの各パッケージに関連付けられたコードをスキャンする命令であって、前記コードは前記対応するパッケージのパッケージ識別情報(ID)を含み、前記スキャンは、前記パッケージが受け取られると、前記利用可能パッケージに対して次々に行われる、前記スキャンする命令と、
    前記利用可能パッケージの前記パッケージIDを使用して、前記利用可能パッケージの前記シーケンスIDを取得する命令と、
    を含む請求項15に記載のコンピュータ読取可能な記憶媒体。
  17. 前記第1の利用可能パッケージを保管エリアから移動させる前記命令は、
    前記第1の利用可能パッケージを移動させる前に、前記台に載置するための前記利用可能パッケージのうちの第3の利用可能パッケージの処理を遅らせる命令であって、前記第3の利用可能パッケージは、前記順番において前記第2の利用可能パッケージの次である、前記遅らせる命令、
    を含む請求項15に記載のコンピュータ読取可能な記憶媒体。
  18. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに接続され、前記プロセッサによって実行可能な命令が記憶される、少なくとも1つのメモリデバイスであって、前記命令は、
    パッケージを台に載置するスタッキングプランにアクセスすることであって、前記スタッキングプランは、前記台の水平面に沿った、前記台上の複数のレイヤ内の前記パッケージの3次元(3D)マッピングを表し、前記スタッキングプランは、前記パッケージが前記台に載置されるスタッキングシーケンスを含む、前記アクセスすることと、
    前記パッケージを次々にある順番で受け取ることと、
    前記順番の各パッケージを反復的に処理することであって、
    前記順番における次のパッケージのシーケンスIDを取得することと、
    前記スタッキングプランおよび前記シーケンスIDに基づいて、前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次であるか否かを判定することと、
    前記パッケージが前記台に載置する前記スタッキングシーケンスにおいて次でないとの判定に応答して、前記台とは異なる保管エリアに前記パッケージを載置するプランを実施することと、
    前記パッケージIDと、前記保管エリア内の前記パッケージの保管位置とを記録することと、
    を含む、前記処理することと、
    前記保管エリアに保管されている前記パッケージのうちのパッケージを表すパッケージセットの各パッケージを反復的に処理することであって、
    前記パッケージセットの第1のパッケージを識別することであって、前記第1のパッケージは、前記台に載置するための前記スタッキングシーケンスにおいて次である、前記識別することと、
    前記第1のパッケージの保管位置の3D情報に基づいて、前記保管エリアから前記第1のパッケージを取り出すプランを実施することと、
    前記スタッキングプランに従って前記第1のパッケージを前記台に載置するプランを実施することであって
    パッケージグループに基づいて載置プランを生成することであって、前記載置プランは、前記台の水平面に沿った前記パッケージの2次元(2D)マッピングを表す、前記生成することと、
    複数の載置プランの前記2Dマッピングを前記パッケージの前記3Dマッピングに変換することによって、前記スタッキングプランを生成することであって、前記3Dマッピングは、前記台上の前記複数のレイヤ内の前記パッケージの配置を表し、各レイヤは、他のレイヤの上方にあって、対応する載置プランを有する、前記生成することと、
    に基づく前記実施することと、
    を含む、前記処理することと、
    を行わせる、前記少なくとも1つのメモリデバイスと、
    を備えるロボットシステム。
JP2019169842A 2019-05-31 2019-09-18 順序通りでなく到着するパッケージを処理するためのロボットシステム Active JP6683333B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020041743A JP7429386B2 (ja) 2019-05-31 2020-03-11 順序通りでなく到着するパッケージを処理するためのロボットシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/428,843 US10696494B1 (en) 2019-05-31 2019-05-31 Robotic system for processing packages arriving out of sequence
US16/428,843 2019-05-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020041743A Division JP7429386B2 (ja) 2019-05-31 2020-03-11 順序通りでなく到着するパッケージを処理するためのロボットシステム

Publications (2)

Publication Number Publication Date
JP6683333B1 true JP6683333B1 (ja) 2020-04-15
JP2020196612A JP2020196612A (ja) 2020-12-10

Family

ID=70166369

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019169842A Active JP6683333B1 (ja) 2019-05-31 2019-09-18 順序通りでなく到着するパッケージを処理するためのロボットシステム
JP2020041743A Active JP7429386B2 (ja) 2019-05-31 2020-03-11 順序通りでなく到着するパッケージを処理するためのロボットシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020041743A Active JP7429386B2 (ja) 2019-05-31 2020-03-11 順序通りでなく到着するパッケージを処理するためのロボットシステム

Country Status (5)

Country Link
US (3) US10696494B1 (ja)
JP (2) JP6683333B1 (ja)
KR (2) KR102400028B1 (ja)
CN (1) CN112009811A (ja)
DE (1) DE102019130639B4 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9102055B1 (en) * 2013-03-15 2015-08-11 Industrial Perception, Inc. Detection and reconstruction of an environment to facilitate robotic interaction with the environment
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US10679379B1 (en) 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism
US11511417B1 (en) * 2020-05-18 2022-11-29 Amazon Technologies, Inc. Conveyance modulation based on fragility ratings
CN112180860B (zh) * 2020-09-24 2022-05-31 深圳市海柔创新科技有限公司 任务处理方法、控制终端、机器人、仓储系统及存储介质
US20230002090A1 (en) * 2021-04-12 2023-01-05 Sojo Industries, Inc. Mobile automated modular variety and multi pack production line system and method
CN113255113B (zh) * 2021-05-07 2023-01-31 广东省科学院智能制造研究所 板材码垛的仿真方法、系统、终端设备及可读存储介质
JP7241374B2 (ja) * 2021-08-10 2023-03-17 株式会社Mujin ロボットによるオブジェクト配置のシステム及び方法

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3586176A (en) 1969-04-09 1971-06-22 George C Devol Palletizing apparatus
US4641271A (en) 1983-11-09 1987-02-03 Hitachi, Ltd. Piling planning method and piling system of cargoes by palletizing robot
JPH062528B2 (ja) * 1984-07-19 1994-01-12 株式会社日立製作所 貨物の自動積付システム
DE3406858A1 (de) 1984-02-25 1985-10-03 OSTMA Maschinenbau GmbH, 5352 Zülpich Verfahren u. vorrichtung zum transportieren von mit riesel- oder fliessfaehigem gut gefuellten flachbeuteln zu einer stapelstelle, insbes. einem verpackungsbehaelter
US4692876A (en) 1984-10-12 1987-09-08 Hitachi, Ltd. Automatic freight stacking system
JPS6219963A (ja) 1985-07-19 1987-01-28 Hitachi Ltd 貨物自動積付装置の異常予報方式
US5079699A (en) 1987-11-27 1992-01-07 Picker International, Inc. Quick three-dimensional display
US5175692A (en) 1989-04-14 1992-12-29 University Of Cincinnati Method and apparatus for palletizing randomly arriving mixed size and content parcels
JPH03158322A (ja) * 1989-11-15 1991-07-08 Mitsubishi Electric Corp パレタイズ装置
JPH03162320A (ja) 1989-11-21 1991-07-12 Mitsubishi Electric Corp パレタイズ装置
JP2508410B2 (ja) 1990-11-30 1996-06-19 三菱電機株式会社 パレタイズ装置
NL9100483A (nl) 1991-03-19 1992-10-16 Nederland Ptt Werkwijze voor het bepalen van vrije deelvlakken op een gedeeltelijk met rechthoekige voorwerpen bedekt vlak alsmede een werkwijze voor het bepalen van vrije ruimten in een gedeeltelijk met voorwerpen in de vorm van een rechthoekig parallelepipedum gevulde ruimte.
US5501571A (en) 1993-01-21 1996-03-26 International Business Machines Corporation Automated palletizing system
JPH07291451A (ja) * 1994-04-25 1995-11-07 Toyota Motor Corp 箱物の段積み方法及びその装置
JPH08118274A (ja) 1994-10-26 1996-05-14 Mitsubishi Electric Corp 産業用ロボット装置
US5908283A (en) 1996-11-26 1999-06-01 United Parcel Service Of Americia, Inc. Method and apparatus for palletizing packages of random size and weight
JPH11116056A (ja) 1997-10-14 1999-04-27 Okura Yusoki Co Ltd 積付パターン生成装置および積付装置
JPH11130263A (ja) 1997-10-27 1999-05-18 Yaskawa Electric Corp 積載パターン作成方法
US6332098B2 (en) * 1998-08-07 2001-12-18 Fedex Corporation Methods for shipping freight
JP3589880B2 (ja) 1998-12-08 2004-11-17 日本政策投資銀行 全自動混載積付方法及びそのシステム
JP4356822B2 (ja) 2000-04-25 2009-11-04 株式会社イトーキ 搬送装置
US7062093B2 (en) 2000-09-27 2006-06-13 Mvtech Software Gmbh System and method for object recognition
JP3586639B2 (ja) 2000-11-20 2004-11-10 村田機械株式会社 配送センター
JP2002154616A (ja) 2000-11-20 2002-05-28 Murata Mach Ltd デパレタイズシステム
US20030110102A1 (en) 2001-05-29 2003-06-12 Chen-Fu Chien Method for goods arrangement and its system
JP2003104563A (ja) 2001-09-28 2003-04-09 Maki Mfg Co Ltd 入荷設備
JP4036681B2 (ja) 2002-05-22 2008-01-23 ダイハツ工業株式会社 車両走行制御装置および方法
KR100484163B1 (ko) 2002-09-14 2005-04-19 삼성전자주식회사 디지털 화질 개선 방법 및 장치
JP3969334B2 (ja) 2003-04-04 2007-09-05 株式会社ダイフク 物品の積付方法
JP4359108B2 (ja) 2003-09-17 2009-11-04 村田機械株式会社 ピッキング物品積上げ指示システム
DE10352279A1 (de) 2003-11-08 2005-06-09 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Handhaben von Objekten
US7266422B1 (en) 2004-04-09 2007-09-04 Fanuc Robotics America, Inc. Automated palletizing cases having mixed sizes and shapes
AU2004201709A1 (en) 2004-04-23 2005-11-10 Foodmach Pty Ltd Materials handling system
US20080030497A1 (en) 2005-12-08 2008-02-07 Yangqiu Hu Three dimensional modeling of objects
JP4687980B2 (ja) 2006-03-16 2011-05-25 株式会社ダイフク 物品搬送設備
JP2007254078A (ja) 2006-03-22 2007-10-04 Daifuku Co Ltd 物品積み付け装置
JP4838627B2 (ja) 2006-04-25 2011-12-14 株式会社神戸製鋼所 表面性状に優れた高Si含有鋼板およびその製造方法ならびにその製造用の素材の高Si含有鋼材
US20080131255A1 (en) 2006-11-30 2008-06-05 Transbotics Corporation Palletizing systems and methods
US7773811B2 (en) 2006-12-06 2010-08-10 D & S Consultants, Inc. Method and system for searching a database of graphical data
DE102007001263B4 (de) 2007-01-08 2015-07-23 Kuka Roboter Gmbh Robotersystem zur Beladung von Lademitteln mit Stückguteinheiten
DE102007016727B4 (de) 2007-04-07 2010-06-10 Dematic Gmbh & Co. Kg Verfahren zum mehrlagigen Bestapeln eines Trägers
JP4302160B2 (ja) 2007-09-12 2009-07-22 ファナック株式会社 ロボットによるパレタイジング作業のためのロボットプログラミング装置
CN101145051A (zh) 2007-09-20 2008-03-19 广东韶钢松山股份有限公司 板材生产线堆垛过程自动化控制技术
US8264697B2 (en) 2007-11-27 2012-09-11 Intelligrated Headquarters, Llc Object detection device
DE102009011296B4 (de) 2009-03-02 2021-11-25 Kuka Roboter Gmbh Beladung eines Lademittels mit Paketen
DE102009011294B4 (de) 2009-03-02 2020-12-24 Kuka Roboter Gmbh Palletieren von Paketen mittels eines Manipulators
DE102009011300B4 (de) 2009-03-02 2022-08-11 Kuka Roboter Gmbh Beladung von Lademitteln mit Paketen mittels Manipulator
JP2011022784A (ja) 2009-07-15 2011-02-03 Sony Corp 情報処理装置、ブロック検出方法およびプログラム
JP5402697B2 (ja) 2009-10-26 2014-01-29 株式会社安川電機 ロボット装置及びワーク取り出しシステム並びにワーク取り出し方法
JP5257335B2 (ja) 2009-11-24 2013-08-07 オムロン株式会社 3次元視覚センサにおける計測有効領域の表示方法および3次元視覚センサ
US8447423B2 (en) 2009-11-30 2013-05-21 Exxonmobil Research And Engineering Company Method and apparatus for optimizing a performance index of a bulk product blending and packaging plant
WO2012029058A1 (en) 2010-08-30 2012-03-08 Bk-Imaging Ltd. Method and system for extracting three-dimensional information
CN201804260U (zh) 2010-09-01 2011-04-20 江苏天奇物流系统工程股份有限公司 座椅托盘堆垛机构的自动控制系统
JP2012140139A (ja) 2010-12-28 2012-07-26 Asahi Glass Co Ltd ガラス板梱包容器及び該ガラス板梱包容器を用いた運搬方法
US9132546B2 (en) 2011-04-14 2015-09-15 Mitsubishi Electric Corporation Robot control apparatus
KR102004533B1 (ko) 2011-10-17 2019-07-26 심보틱 엘엘씨 팔레트 구축 시스템
US10216865B1 (en) 2012-03-06 2019-02-26 Vecna Robotics, Inc. Monitoring one or more articles on a support surface
US8996175B2 (en) 2012-06-21 2015-03-31 Rethink Robotics, Inc. Training and operating industrial robots
US9315344B1 (en) 2012-07-20 2016-04-19 Amazon Technologies, Inc. Container stacking configurations
US20140180479A1 (en) 2012-12-20 2014-06-26 Wal-Mart Stores, Inc. Bagging With Robotic Arm
US9102055B1 (en) 2013-03-15 2015-08-11 Industrial Perception, Inc. Detection and reconstruction of an environment to facilitate robotic interaction with the environment
JP5616478B1 (ja) 2013-04-18 2014-10-29 ファナック株式会社 ワークを搬送するロボットを備えるロボットシステム
CN103350908A (zh) 2013-06-13 2013-10-16 周怡 自动包装码垛控制系统及码垛系统
US9682826B2 (en) * 2013-06-23 2017-06-20 Top Tier, Llc Item infeed apparatus and method for a palletizer system
AU2014315755A1 (en) * 2013-09-03 2016-04-28 Sodium Limited Container handling system and method of operating container handling equipment
US9663309B2 (en) 2013-09-06 2017-05-30 Liquor Control Board Of Ontario (Lcbo) Automated palletization method, system and software
CN103640729B (zh) 2013-11-25 2015-08-26 天津中财型材有限责任公司 一种塑钢异型材自动包装系统
US9393693B1 (en) 2014-07-10 2016-07-19 Google Inc. Methods and systems for determining and modeling admissible gripper forces for robotic devices
US9272417B2 (en) 2014-07-16 2016-03-01 Google Inc. Real-time determination of object metrics for trajectory planning
US9205558B1 (en) 2014-07-16 2015-12-08 Google Inc. Multiple suction cup control
CN104154878B (zh) 2014-07-29 2016-09-28 暨南大学 一种使用单像素探测器的光学成像方法
US9424470B1 (en) 2014-08-22 2016-08-23 Google Inc. Systems and methods for scale invariant 3D object detection leveraging processor architecture
US9457477B1 (en) 2014-08-25 2016-10-04 Google Inc. Variable stiffness suction gripper
US9205562B1 (en) * 2014-08-29 2015-12-08 Google Inc. Integration of depth points into a height map
US9507995B2 (en) 2014-08-29 2016-11-29 X Development Llc Combination of stereo and structured-light processing
US9866815B2 (en) 2015-01-05 2018-01-09 Qualcomm Incorporated 3D object segmentation
US9457970B1 (en) 2015-03-30 2016-10-04 Google Inc. Modular cross-docking system
US9688489B1 (en) 2015-03-30 2017-06-27 X Development Llc Modular dock for facilities integration
US9694498B2 (en) 2015-03-30 2017-07-04 X Development Llc Imager for detecting visual light and projected patterns
US9715639B2 (en) 2015-06-18 2017-07-25 The Boeing Company Method and apparatus for detecting targets
WO2017018113A1 (ja) 2015-07-29 2017-02-02 株式会社オートネットワーク技術研究所 対象物のハンドリングシミュレーション装置、対象物のハンドリングシミュレーションシステム、対象物のハンドリングをシミュレーションする方法、対象物の製造方法及び対象物のハンドリングシミュレーションプログラム
US9718188B2 (en) 2015-09-21 2017-08-01 Amazon Technologies, Inc. Networked robotic manipulators
US9926138B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Determination of removal strategies
JP6267175B2 (ja) 2015-11-20 2018-01-24 ファナック株式会社 物品を積む位置を設定する積み付けパターン計算装置
US11097904B2 (en) 2015-11-30 2021-08-24 Sidel Canada Inc. Distribution conveying device
US10124489B2 (en) 2016-02-26 2018-11-13 Kinema Systems Inc. Locating, separating, and picking boxes with a sensor-guided robot
JP6637346B2 (ja) 2016-03-14 2020-01-29 日本コンベヤ株式会社 物流システムおよび仮保管システム
JP6378232B2 (ja) 2016-03-17 2018-08-22 ファナック株式会社 複数の種類の物品を積み付けるための積み付けパターン計算装置および積み付け装置
CN105691717A (zh) 2016-03-25 2016-06-22 云南昆船电子设备有限公司 一种机器人抓取散状辅料包装置及寻包方法
US9965730B2 (en) 2016-08-23 2018-05-08 X Development Llc Autonomous condensing of pallets of items in a warehouse
JP6614075B2 (ja) 2016-09-07 2019-12-04 株式会社ダイフク 物品積載設備
JP6469061B2 (ja) 2016-09-29 2019-02-13 ファナック株式会社 積み付けパターン計算装置及び積み付けシステム
CN108064197B (zh) 2016-12-30 2021-04-06 深圳配天智能技术研究院有限公司 确定码垛点位置信息的方法、装置及机器人
JP2018136896A (ja) 2017-02-24 2018-08-30 キヤノン株式会社 情報処理装置、システム、情報処理方法、および物品の製造方法
JP7001354B2 (ja) 2017-03-29 2022-01-19 トーヨーカネツ株式会社 自動物流システム
US10328578B2 (en) 2017-04-21 2019-06-25 X Development Llc Methods and systems for detecting, recognizing, and localizing pallets
US10894676B2 (en) * 2017-07-17 2021-01-19 Symbolic Llc Apparatus and method for building a pallet load
JP7116901B2 (ja) 2017-08-01 2022-08-12 オムロン株式会社 ロボット制御装置、ロボット制御方法及びロボット制御プログラム
JP6549654B2 (ja) 2017-08-03 2019-07-24 ファナック株式会社 ロボットシステムのシミュレーション装置およびシミュレーション方法
JP6680732B2 (ja) 2017-08-23 2020-04-15 ファナック株式会社 物品積み付け装置及び機械学習装置
CN207374734U (zh) 2017-09-11 2018-05-18 宁波德克尔运输设备有限公司 一种打包码垛一体化装置
US10713547B2 (en) 2017-10-17 2020-07-14 Kyocera Document Solutions Inc. Systems, processes, interfaces, and computer program products for verification of image content in software development systems
JP6647266B2 (ja) 2017-11-06 2020-02-14 西部電機株式会社 出庫処理システム及び出庫処理方法
JP6613288B2 (ja) 2017-11-14 2019-11-27 ファナック株式会社 積み付けパターン計算装置及びロボット制御装置
US20190193956A1 (en) * 2017-12-21 2019-06-27 Walmart Apollo, Llc System for dynamic pallet-build
JP2019117547A (ja) 2017-12-27 2019-07-18 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
CN108748136A (zh) 2018-04-10 2018-11-06 上海新时达机器人有限公司 机器人码垛程序生成方法、存储介质及示教器
GB201809020D0 (en) * 2018-06-01 2018-07-18 Ocado Innovation Ltd Control device and method for item verification
CN108776879B (zh) 2018-06-04 2022-06-14 江苏楚门机器人科技有限公司 一种基于权重学习的垛形规划方法
CN109359739A (zh) 2018-09-13 2019-02-19 深圳市递四方信息科技有限公司 基于遗传算法的堆叠组合方法、装置、设备和存储介质
CN109132313A (zh) 2018-10-26 2019-01-04 北京旷视科技有限公司 物品移动系统、取货机器人、搬运机器人及方法
CN109353833B (zh) 2018-11-27 2021-06-29 深圳市汇川技术股份有限公司 机器人码垛点位生成方法、设备及计算机可读存储器
US10335947B1 (en) 2019-01-18 2019-07-02 Mujin, Inc. Robotic system with piece-loss management mechanism
US10549928B1 (en) 2019-02-22 2020-02-04 Dexterity, Inc. Robotic multi-item type palletizing and depalletizing
US10696493B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system with packing mechanism
US10696494B1 (en) 2019-05-31 2020-06-30 Mujin, Inc. Robotic system for processing packages arriving out of sequence
US10618172B1 (en) 2019-05-31 2020-04-14 Mujin, Inc. Robotic system with error detection and dynamic packing mechanism
US10647528B1 (en) 2019-05-31 2020-05-12 Mujin, Inc. Robotic system for palletizing packages using real-time placement simulation
US11077554B2 (en) 2019-05-31 2021-08-03 Mujin, Inc. Controller and control method for robotic system
US10679379B1 (en) 2019-05-31 2020-06-09 Mujin, Inc. Robotic system with dynamic packing mechanism

Also Published As

Publication number Publication date
CN112009811A (zh) 2020-12-01
JP2020196625A (ja) 2020-12-10
KR20200138073A (ko) 2020-12-09
DE102019130639A1 (de) 2020-12-03
KR102400028B1 (ko) 2022-05-19
JP7429386B2 (ja) 2024-02-08
US20200377312A1 (en) 2020-12-03
US20230278811A1 (en) 2023-09-07
KR20220068971A (ko) 2022-05-26
JP2020196612A (ja) 2020-12-10
US10696494B1 (en) 2020-06-30
US11591168B2 (en) 2023-02-28
DE102019130639B4 (de) 2023-07-06

Similar Documents

Publication Publication Date Title
JP6684404B1 (ja) リアルタイム載置シミュレーションを使用してパッケージをパレタイズするためのロボットシステム
JP6683333B1 (ja) 順序通りでなく到着するパッケージを処理するためのロボットシステム
JP6710400B1 (ja) パッキング機構を有するロボットシステム
JP6729953B1 (ja) エラー検出および動的パッキング機構を有するロボットシステム
JP6704157B1 (ja) 動的パッキング機構を有するロボットシステム
CN111605938B (zh) 用于使用实时放置模拟来码垛包裹的机器人系统
CN111498212B (zh) 用于处理失序到达的包裹的机器人系统
CN111498214B (zh) 具有打包机制的机器人系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191225

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191225

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200311

R150 Certificate of patent or registration of utility model

Ref document number: 6683333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350