IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社MUJINの特許一覧

特表2025-503659複数位置配置制御機構を有するロボットシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-04
(54)【発明の名称】複数位置配置制御機構を有するロボットシステム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20250128BHJP
   B65G 57/03 20060101ALI20250128BHJP
【FI】
B25J13/08 A
B65G57/03 G
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024541643
(86)(22)【出願日】2023-11-27
(85)【翻訳文提出日】2024-07-18
(86)【国際出願番号】 JP2023042362
(87)【国際公開番号】W WO2024111672
(87)【国際公開日】2024-05-30
(31)【優先権主張番号】63/428,110
(32)【優先日】2022-11-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】カヌニコフ,デニス
(72)【発明者】
【氏名】デアンコウ,ロセン ニコラエフ
(72)【発明者】
【氏名】パブロフ,セルゲイ
【テーマコード(参考)】
3C707
3F029
【Fターム(参考)】
3C707AS02
3C707BS10
3C707DS01
3C707KS03
3C707KS04
3C707KS07
3C707KT03
3C707KT06
3C707LV06
3C707NS06
3C707NS19
3F029AA01
3F029CA51
(57)【要約】
システム及び方法は、所与の表面上の複数の配置位置の上に物体を配置するようにロボットシステムを操作するためのものである。ロボットシステムは、これらのような配置位置のシーケンスを使用して、配置位置上への物体の配置を制御し得る。
【選択図】図7
【特許請求の範囲】
【請求項1】
ロボットシステムを操作するための方法であって、
プラットフォーム上への配置に利用可能なパッケージを表すパッケージセットを識別することと、
前記パッケージセット内の1つ以上のパッケージの物体プロパティセットを取得することであって、前記物体プロパティは前記パッケージセット内の前記1つ以上のパッケージの物理的な寸法、形状、又はそれらの組み合わせを表すことと、
前記物体プロパティセットを使用して、前記プラットフォーム上の配置位置を決定することであって、前記配置位置は前記パッケージセット又はその一部の段積み位置を表すことと、
前記配置位置の距離セットを計算することであって、前記距離は前記配置位置のうちの対応する1つと、前記パッケージセットを前記プラットフォームに搬送するように構成されるロボットユニットとの間であることと、
前記対応する距離に基づいて前記配置位置ごとにシーケンス識別子を生成することと、
対象パッケージについて前記配置位置から対象配置位置を決定することと、
前記対象パッケージを前記プラットフォーム上の前記対象配置位置に配置するためのモーションプランを実行することと、
を含み、
前記対象配置位置は、
前記配置位置の現在の段積み高さを計算すること、ならびに
前記シーケンス識別子及び前記現在の段積み高さのセットを使用して、前記対象配置位置を選択することであって、前記選択された対象配置位置の得られる高さは段積み高さ制限内にあり、前記ベースロボットにより近い段積みの高さを、前記ベースからより遠い段積みの高さ以下に維持すること、
によって決定される、方法。
【請求項2】
前記現在の段積み高さを計算することは、
前記配置位置のそれぞれに現在配置されている段積みパッケージセットを識別すること、及び、
前記配置位置のそれぞれの合計高さを計算すること、
を含み、
前記合計高さは前記プラットフォームから前記配置位置の前記対応する1つに配置されたパッケージの上面までの垂直距離を表し、
前記対象配置位置を決定することは、
前記シーケンス識別子を使用して、前記対象物体が配置されるとき、(1)前記対応する得られる高さを前記段積み高さ制限内に維持する候補位置、及び(2)前記より近い段積みの高さを、前記より遠い段積みの高さ以下に維持する候補位置を識別することと、
前記候補位置ごとに、前記対応する得られる高さを残りの段積みの高さに加算することによって累積段積み高さを計算することと、
最高累積段積み高さを有する前記候補位置のうちの1つを、前記対象パッケージの前記対象配置位置として決定することと、
を含む、請求項1に記載の方法。
【請求項3】
前記生成されたシーケンス識別子は、前記ロボットユニットにより近い前記配置位置に対してより高く、前記ロボットユニットからより遠い前記配置位置に対してより低く、
前記対象配置位置は、i>jの場合にh≦hの高さに基づいた配置ルールに基づいて決定され、
式中、i及びjはシーケンス識別子を表し、h及びhは前記対応する配置位置での高さを表し、
前記高さに基づいた配置ルールは、前記より近い段積みの高さを、前記より遠い段積みの高さ以下に維持するように構成される、請求項1に記載の方法。
【請求項4】
前記対象配置位置は、前記高さに基づいた配置ルールの例外に基づいて決定され、
第一候補位置は、前記段積み高さ制限よりも高い段積み高さの組み合わせを有し、
第二候補位置は、前記段積み高さ制限より低く、前記第一候補位置の現在の段積み高さより高い段積み高さの組み合わせを有し、
前記第一候補位置に対応する第一シーケンス識別子は、前記第二候補位置に対応する第二シーケンス識別子の前にあり、
前記第二候補位置は、前記対象配置位置として選択される、請求項3に記載の方法。
【請求項5】
前記第二候補配置位置の現在の段積み高さと前記段積み高さ制限との間の高さの差が高さ閾値内であるとき、前記対象配置位置は、前記高さに基づいた配置ルールの前記例外に基づいて決定される、請求項4に記載の方法。
【請求項6】
前記配置位置を決定することは、前記プラットフォームの上の前記パッケージセットのプレプラン位置を記述するパッキングプランを取得することを含み、
前記対象配置位置は、前記対象パッケージがシーケンス外で受け入れられるとき、前記高さに基づいた配置ルールに基づいて決定される、請求項3に記載の方法。
【請求項7】
前記対象パッケージを含む、配置に利用可能な複数の物体を識別することと、
前記対象パッケージ以外の前記利用可能な物体に対応する配置位置を決定することと、
前記対象配置位置がその他の利用可能な物体に対応する前記配置位置よりも遠いとき、搬送用に前記対象パッケージを選択することと、
をさらに含む、請求項3に記載の方法。
【請求項8】
前記配置位置のそれぞれで残りの高さを計算することをさらに含み、
前記残りの高さは前記配置位置の前記対応する1つでの前記現在の段積み高さと、前記段積み高さ制限との間の差に対応し、
前記対象配置位置は、前記残りの高さが前記パッケージセットの前記物理的な寸法よりも小さいとき、前記高さに基づいた配置ルールの前記例外に基づいて決定される、請求項7に記載の方法。
【請求項9】
前記対象パッケージの前記対象配置位置を決定することは、
前記対象パッケージに関連する異常な物体プロパティを識別することと、
前記識別された異常な物体プロパティを使用して前記段積み高さ制限を調整することと、
を含み、
前記異常な物体プロパティは、変形、曲げ、ミスアライメント、及び/又は部分的に閉じていることを含む、前記対象パッケージの物理的な偏差に対応し、
前記異常な物体プロパティは、前記対象パッケージの上への追加の段積みを防止する、請求項1に記載の方法。
【請求項10】
前記物体プロパティセット内のプロパティサブセットは、前記パッケージセット内の前記1つ以上のパッケージにわたって固定されたままである1つ以上の横寸法を含む、請求項1に記載の方法。
【請求項11】
プロセッサによって実行されたとき、前記プロセッサに方法を実行させる命令が格納されている有形の非一時的なコンピュータ可読媒体であって、
前記方法は、
プラットフォーム上への配置に利用可能なパッケージを表すパッケージセットを識別することと、
前記パッケージセット内の1つ以上のパッケージの物体プロパティセットを取得することであって、前記物体プロパティは前記パッケージセット内の前記1つ以上のパッケージの物理的な寸法、形状、又はそれらの組み合わせを表すことと、
前記物体プロパティセットを使用して、前記プラットフォーム上の配置位置を決定することであって、前記配置位置は前記パッケージセット又はその一部の段積み位置を表すことと、
前記配置位置の距離セットを計算することであって、前記距離は前記配置位置のうちの対応する1つと、前記パッケージセットを前記プラットフォームに搬送するように構成されるロボットユニットとの間であることと、
前記対応する距離に基づいて前記配置位置ごとにシーケンス識別子を生成することと、
対象パッケージについて前記配置位置から対象配置位置を決定することと、
前記対象パッケージを前記プラットフォーム上の前記対象配置位置に配置するためのモーションプランを実行することと、
を含み、
前記対象配置位置は、
前記配置位置の現在の段積み高さを計算すること、ならびに
前記シーケンス識別子及び前記現在の段積み高さのセットを使用して、前記対象配置位置を選択することであって、前記選択された対象配置位置の得られる高さは段積み高さ制限内にあり、前記ベースロボットにより近い段積みの高さを、前記ベースからより遠い段積みの高さ以下に維持すること、
によって決定される、有形の非一時的なコンピュータ可読媒体。
【請求項12】
前記生成されたシーケンス識別子は、前記ロボットユニットにより近い前記配置位置に対してより高く、前記ロボットユニットからより遠い前記配置位置に対してより低く、
前記対象配置位置は、i>jの場合にh≦hの高さに基づいた配置ルールに基づいて決定され、
式中、i及びjはシーケンス識別子を表し、h及びhは前記対応する配置位置での高さを表し、
前記高さに基づいた配置ルールは、前記より近い段積みの高さを、前記より遠い段積みの高さ以下に維持するように構成される、請求項11に記載の有形の非一時的なコンピュータ可読媒体。
【請求項13】
前記対象配置位置は、前記高さに基づいた配置ルールの例外に基づいて決定され、
第一候補位置は、前記段積み高さ制限よりも高い段積み高さの組み合わせを有し、
第二候補位置は、前記段積み高さ制限より低く、前記第一候補位置の現在の段積み高さより高い段積み高さの組み合わせを有し、
前記第一候補位置に対応する第一シーケンス識別子は、前記第二候補位置に対応する第二シーケンス識別子の前にあり、
前記第二候補位置は、前記対象配置位置として選択される、請求項12に記載の有形の非一時的なコンピュータ可読媒体。
【請求項14】
前記配置位置を決定することは、前記プラットフォームの上の前記パッケージセットのプレプラン位置を記述するパッキングプランを取得することを含み、
前記対象配置位置は、前記対象パッケージがシーケンス外で受け入れられるとき、前記高さに基づいた配置ルールに基づいて決定される、請求項12に記載の有形の非一時的なコンピュータ可読媒体。
【請求項15】
前記方法は、
前記対象パッケージを含む、配置に利用可能な複数の物体を識別することと、
前記対象パッケージ以外の前記利用可能な物体に対応する配置位置を決定することと、
前記対象配置位置がその他の利用可能な物体に対応する前記配置位置よりも遠いとき、搬送用に前記対象パッケージを選択することと、
をさらに含む、請求項12に記載の有形の非一時的なコンピュータ可読媒体。
【請求項16】
少なくとも1つのプロセッサ、及び前記少なくとも1つのプロセッサに結合された少なくとも1つのメモリデバイスを含むロボットシステムであって、
前記少なくとも1つのメモリはその上に格納された命令を有し、前記命令は前記プロセッサによって実行されたとき、前記プロセッサに、
配置に利用可能なパッケージを表すパッケージセットを識別させることと、
前記パッケージセット内の1つ以上のパッケージの物体プロパティセットを取得させることと、
前記物体プロパティセットを使用して、プラットフォーム上の配置位置を決定させることであって、前記配置位置は前記パッケージセット又はその一部の段積み位置を表すことと、
前記配置位置の距離セットを計算させることであって、前記距離は前記配置位置のうちの対応する1つと、前記パッケージセットを前記プラットフォームに搬送するように構成されるロボットユニットとの間であることと、
前記対応する距離に基づいて前記配置位置ごとにシーケンス識別子を生成させることと、
対象パッケージについて前記配置位置から対象配置位置を決定させることと、
前記対象パッケージを前記プラットフォーム上の前記対象配置位置に配置するためのモーションプランを実行させることと、
を行わせる、ロボットシステム。
【請求項17】
前記生成されたシーケンス識別子は、前記ロボットユニットにより近い前記配置位置に対してより高く、前記ロボットユニットからより遠い前記配置位置に対してより低く、
前記対象配置位置は、i>jの場合にh≦hの高さに基づいた配置ルールに基づいて決定され、
式中、i及びjはシーケンス識別子を表し、h及びhは前記対応する配置位置での高さを表し、
前記高さに基づいた配置ルールは、前記より近い段積みの高さを、前記より遠い段積みの高さ以下に維持するように構成される、請求項16に記載のロボットシステム。
【請求項18】
前記対象配置位置は、前記高さに基づいた配置ルールの例外に基づいて決定され、
第一候補位置は、前記段積み高さ制限よりも高い段積み高さの組み合わせを有し、
第二候補位置は、前記段積み高さ制限より低く、前記第一候補位置の現在の段積み高さより高い段積み高さの組み合わせを有し、
前記第一候補位置に対応する第一シーケンス識別子は、前記第二候補位置に対応する第二シーケンス識別子の前にあり、
前記第二候補位置は、前記対象配置位置として選択される、請求項17に記載のロボットシステム。
【請求項19】
前記配置位置を決定することは、前記プラットフォームの上の前記パッケージセットのプレプラン位置を記述するパッキングプランを取得することを含み、
前記対象配置位置は、前記対象パッケージがシーケンス外で受け入れられるとき、前記高さに基づいた配置ルールに基づいて決定される、請求項17に記載のロボットシステム。
【請求項20】
前記少なくとも1つのメモリは、前記プロセッサによって実行可能な、
前記対象パッケージを含む、配置に利用可能な複数の物体を識別することと、
前記対象パッケージ以外の前記利用可能な物体に対応する配置位置を決定することと、
前記対象配置位置がその他の利用可能な物体に対応する前記配置位置よりも遠いとき、搬送用に前記対象パッケージを選択することと、
という命令を含む、請求項17に記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願(複数可)の相互参照
本出願は、2022年11月27日に出願された米国仮特許出願第63/428,110号の利益を主張するものであり、その全体が参照により本明細書に援用されている。
【0002】
本技術は、一般にロボットシステムを対象とし、より具体的には、物体の配置を管理するためのシステム、プロセス、及び技術を対象とする。
【背景技術】
【0003】
性能の向上及びコストの削減により、多くのロボット(例えば、物理的行動を自動的/自律的に実行するように構成されるマシン)が多くの分野で広く使用されるようになってきている。例えば、ロボットは、製造及び/又は組立、配置及び/又はパッキング、輸配送及び/又は出荷などで、様々なタスク(例えば、空間を通して物体を操作又は搬送する)を実行するために使用できる。タスクを実行する際、ロボットは人間の行動のいくつかの態様を再現することにより、本来であればタスクを実行するために必要とされる人間の介入を置き換えたり、減らしたりすることを目標とする。
【0004】
しかし、技術の進歩にもかかわらず、多くの場合、ロボットには、より複雑で難解なタスクの実施に必要とされる人間の鋭敏性及び/又は適応性を再現するのに欠かせない精巧さが不足している。例えば、ロボットは、利用可能なリソースを完全に利用するために、実行されるアクション中の制御及びフレキシビリティの粒度を欠くことが多い。また、様々な実世界条件下でタスクを成功裏に実行するために必要な人間の行動及び経験は、ロボット実装のために捕捉する、又はトランスレーションを行うことが困難であることが多い。したがって、様々な実世界要因にもかかわらずタスクを完了するようにロボットの様々な態様を制御して管理するための技術及びシステムの改善が依然として必要である。
【図面の簡単な説明】
【0005】
図1】複数位置配置制御機構を有するロボットシステムが動作し得る例示的な環境図である。
図2】本技術の1つ以上の実施形態によるロボットシステムを示すブロック図である。
図3A】本技術の1つ又は複数の実施形態によるロボットシステム図である。
図3B】本技術の1つ又は複数の実施形態によるロボットシステムの例示的なタスクステーション図である。
図4A】本技術の1つ以上の実施形態による配置位置の例示的なセグメント化図である。
図4B】本技術の1つ以上の実施形態による配置位置の例示的なセグメント化図である。
図5図5A~Eは本技術の1つ以上の実施形態による配置ルールの実装図である。
図6図6A~Bは本技術の1つ以上の実施形態による例示的な配置シーケンス図である。
図7】本技術の1つ又は複数の実施形態による、図1のロボットシステムを操作する例示的な第一方法のフロー図である。
【発明を実施するための形態】
【0006】
本明細書では、複数位置配置制御機構を備えたロボットシステムのためのシステム及び方法について説明する。ロボットシステム(例えば、1つ以上の指定されたタスクを実行するデバイスの統合システム)は、物体(例えば、パッケージ、ボックス、ケースなど)を配置プラットフォーム上に配置することによって、制御、ユーザビリティ、及びフレキシビリティを高めるように構成されることができる。例えば、ロボットシステムは、配置プラットフォームごとに割り当てられた段積み高さ制限530を遵守しながら、パレットなどの1つ又は複数の物体を配置プラットフォームのそれぞれに段積みすることができる。
【0007】
ロボットシステムは、タスク位置内の別個の配置領域を識別することに基づいて、配置プラットフォームに物体を配置し、段積みすることができる。例示的な例として、ロボットシステムは、タスク位置に位置している1つ以上のパレット(例えば、配置プラットフォーム)上に物体を配置するように、タスク位置でパレタイジングロボットを制御することができる。各パレットは、1つのパレット又は複数のパレットのそれぞれの上に物体の複数の別個の段積みを形成するためなどに、複数の別個の配置領域をその上に有することができる。
【0008】
別個の配置領域(例えば、段積み位置)は、物体の固定された寸法又は整合基本寸法(例えば、長さ及び幅)に基づいて計算されることができる。他の実施形態では、別個の配置領域のそれぞれは、1つ以上の物体に一意のフットプリント(例えば、物体の一意の形状、一意の横寸法セット、及び/又は対応する姿勢)に対応することができる。言い換えれば、別個の配置領域のそれぞれは、整合又はその他の方法で関連するフットプリントを有する物体の1つ又は複数のタイプを配置する、又は段積みするためのものであるように計算される、又は指定されることができる。いくつかの実施形態では、ロボットシステムは、別個の配置領域ごとに個々の段積み高さ制限を生成することができる。さらに、ロボットシステムは、別個の配置領域の段積み高さ制限530を動的に調整することができる。
【0009】
物体が搬送されると、ロボットシステムは、モーションプランの実行を動的に追跡して、別個の配置領域のそれぞれで配置済み物体(例えば、各段積み内の物体又は最上段物体)、物体の段積み高さ、及び/又は特性プロパティ(例えば、寸法)を追跡し、識別することができる。いくつかの実施形態では、ロボットシステムは、既知の寸法と、別個の配置領域のそれぞれで以前に配置された物体の追跡された向きとを使用して、現在の段積み高さを計算する/推定することができる。他の実施形態では、ロボットシステムは、センサデータを使用して、別個の配置領域での段積み高さをリアルタイムで決定することができる。ロボットシステムは、現在の段積み高さを使用して、対応する別個の配置領域での姿勢に従って対象物体を配置することの結果として得られる候補段積み高さを計算することができる。候補段積み高さを使用して、ロボットシステムは、対象物体を候補配置領域に配置することが、段積み高さ制限530及び対応するルールを遵守するかどうかを決定することができる。この決定に基づいて、ロボットシステムは、段積み効率を高め、複数の配置領域にわたる衝突尤度を低下させる、対象物体に最適な配置領域を導出することができる。
【0010】
段積みプロセスを単純化するために、ロボットシステムは、別個の配置領域のシーケンスを決定することができる。いくつかの実施形態では、ロボットシステムは、別個の配置領域と、別個の配置領域に物体を配置するように構成された操縦ロボット(例えば、アームを有するロボットなど、搬送ユニット)との間の距離に従って、別個の配置領域のシーケンスを決定することができる。例えば、ロボットシステムは、最も遠い別個の配置領域にシーケンス識別子として1を割り当て、より近い別個の配置領域にシーケンス識別子450としてより高い数(例えば、3つの配置領域のうち最も近い領域に3)を割り当てることができる。
【0011】
ロボットシステムは、このシーケンスを使用して、物体段積み操作をガイドすることができる単純化されたルールを生成することができる。上記の例示的なシーケンスを続けると、ロボットシステムは、より高いシーケンスが決定された配置領域よりも高い、より低いシーケンスが決定された配置領域での段積み高さを必要とする段積みルールを含むことができる。このルールは、i>jの場合にh≦hのように表現されることができる。パラメータi及びjは、別個の配置領域のインスタンスを表すことができ、h及びhは対応する別個の配置領域での現在及び/又は候補の段積み高さを表すことができる。シーケンス決定及び段積みルールに関する詳細については以下に説明される。
【0012】
操縦ロボットからの横方向の分離距離に従ってなど、配置領域のシーケンスを決定することにより、ロボットシステムは、段積みルールを単純化することができる。例えば、段積みルールは、複数の状況に基づいた比較と、コード、メモリ、及び実行時間の対応するラインとを除去することができる。この単純化に基づいて、ロボットシステムは、より関連性があり効率的な物体段積みを形成するために、実世界条件を動的に考慮し、説明することができる。例えば、単純化されたルールを使用して、ロボットシステムは、類似のフットプリントを有する物体を合わせて群化し、対象物体の代替の段積み姿勢を迅速に考慮し、物体の動的/プラン外の到着を考慮することなどができる。比較のために、従来のシステムは全ての物体を、結果として得られる段積みが制限に達するまで、1つの位置に段積みしてから、別の配置領域に移動させることを必要とし得る。そのような方法は、望ましくない段積み形成(例えば、下段の段積み物体が上段の物体よりも小さい横寸法を有する)を生成し得、動的条件(例えば、物体のプラン外の到着/シーケンス)を考慮できず、対象位置(例えば、1つのパレット内)の全体的な配置効率を低下させ得る。
【0013】
ロボットシステムは、モーションプラン、配置領域、及び/又は段積み高さ制限を動的に調整して、例えば予期しない条件(例えば、パッケージ異常)を考慮するように構成されることができる。例えば、物体を配置することは、変形する、曲がる、ミスアライメントされる、部分的に閉じている、及び/又はその他の所期の条件とは物理的に異なる上面を含み得る。それらのような予期しない条件は、配置領域に追加の物体を段積みする能力、及び/又は他の配置領域の段積み高さ制限に影響し得る。ロボットシステムは、それらのような予期しない条件を検出し、割り当てられた配置領域及び/又は段積み高さ制限を動的に調整することができる。また、動的な調整に基づいて、ロボットシステムは、予期しない条件を考慮するためにモーションプランを更新することができる。
【0014】
以下の説明では、現在開示されている技術の完全な理解を提供するために、多くの具体的な詳細が述べられている。他の実施形態では、本明細書で紹介される技術は、これらの特定の詳細なしで実施できる。他の場合、特定の機能又はルーチン等の周知の特徴は、本開示を不必要に曖昧にすることを回避するために詳細には説明されない。この発明を実施するための形態における「実施形態」、「一実施形態」などへの言及は、説明されている特定の特徴、構造、材料、又は特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の出現は、必ずしも全てが同じ実施形態を指すものではない。一方、そのような参照は必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料は、又は特性は、1つ又は複数の実施形態において任意の好適な様式で組み合わせることができる。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺通りに描かれていないことを理解されたい。
【0015】
周知であり、しばしばロボットシステム及びサブシステムに関連付けられるが、開示された技術のいくつかの重要な態様を不必要に不明瞭にする可能性がある構造又はプロセスを説明するいくつかの詳細は、明確にするために以下の説明には記載されていない。さらに、以下の開示では、本技術の異なる態様のいくつかの実施形態が示されているが、他のいくつかの実施形態は、本節で説明したものとは異なる構成又は異なる構成要素を有することができる。したがって、開示された技術は、追加の要素を有するか、又は以下で説明する要素のいくつかを有さない他の実施形態を有することができる。
【0016】
以下で説明する本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はプロセッサによって実行されるルーチンを含む、コンピュータ実行可能命令又はプロセッサ実行可能命令の形態をとることができる。当業者は、開示された技術が、以下で示され説明されるもの以外のコンピュータシステム又はプロセッサシステムで実施できることを理解するであろう。本明細書で説明される技術は、以下で説明されるコンピュータ実行可能命令の1つ又は複数を実行するように具体的にプログラムされ、構成され、又は構築される専用コンピュータ又はデータプロセッサで具体化することができる。したがって、本明細書で一般的に使用される「コンピュータ」及び「プロセッサ」という用語は、任意のデータプロセッサを指し、インターネット機器及びハンドヘルドデバイス(パームトップコンピュータ、ウェアラブルコンピュータ、移動電話又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラマブル家庭用電化製品、ネットワークコンピュータ、ミニコンピュータなどを含む)を含むことができる。これらのコンピュータ及びプロセッサによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の適切な表示媒体で表示することができる。コンピュータプロセッサ実行可能タスク又はプロセッサ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアの組み合わせを含む、任意の適切なコンピュータ可読媒体に格納することができる。命令は、例えば、フラッシュドライブ及び/又は他の適切な媒体を含む、任意の適切なメモリデバイスに含めることができる。
【0017】
「結合された」及び「接続された」という用語は、それらの派生語とともに、構成要素間の構造的関係を説明するために本明細書で使用することができる。これらの用語は、互いに同義語として意図されたものではないことを理解されたい。むしろ、特定の実施形態では、「接続された」は2つ以上の要素が互いに直接接触していることを示すために使用することができる。文脈で明らかにされていない限り、「結合された」という用語は、2つ以上の要素が直接もしくは間接的のいずれかで(それらの要素の間にある他の介在要素と)互いに接触していること、又は、2つ以上の要素が互いに(例えば、信号の送信/受信に関する、又は関数呼び出し等に関する因果関係のように)連携もしくは相互作用していること、あるいはそれら両方を示すために使用できる。
【0018】
適切な環境
図1は、複数位置配置制御機構を有するロボットシステム100が動作し得る例示的な環境図である。ロボットシステム100は、1つ又は複数のタスクを実行するように構成される1つ又は複数のユニット(例えば、ロボット)を含み、及び/又は通信することができる。複数位置配置制御機構の態様は、様々なユニットによって実行又は実装されることができる。
【0019】
図1に示す実施例では、ロボットシステム100は、倉庫又は流通/輸送ハブにおいて、荷下ろしユニット102、搬送ユニット104(例えば、パレタイジングロボット及び/又はピースピッカーロボット)、輸配送ユニット106、積載ユニット108、又はそれらの組み合わせを含むことができる。ロボットシステム100の各ユニットは、1つ又は複数のタスクを実行するように構成することができる。タスクは、トラックもしくはバンからオブジェクトを荷下ろしして倉庫に収納すること、又は収納地点から物体を荷下ろしして出荷の準備をすることなど、目標を達成する動作を実行するために順番に組み合わせることができる。別の例では、タスクは物体を目標地点(例えば、パレットの上及び/又はビン/ケージ/ボックス/ケースの内部)に配置することを含み得る。以下で説明するように、ロボットシステムは、物体を配置する及び/又は段積みするためのプラン(例えば、配置面積/配向、物体を搬送するためのシーケンス、及び/又は対応するモーションプラン)を導出することができる。ユニットのそれぞれは、タスクを実行するために、導出されたプランの1つ以上に従って、一連のアクションを(例えば、ユニットの1つ以上の構成要素を動作させることによって)実行するように構成され得る。
【0020】
いくつかの実施形態では、タスクは、開始位置114からタスク位置116への対象物体112(例えば、実行中のタスクに対応するパッケージ、ボックス、ケース、ケージ、パレットなどのうちの1つ)の操作(例えば、移動及び/又は再配向)を含むことができる。例えば、荷下ろしユニット102(例えば、デバンニングロボット)が、運搬車(例えば、トラック)内の位置からコンベヤベルト上の位置へ対象物体112を搬送するように構成され得る。また、搬送ユニット104は、対象物体112をある位置(例えば、コンベヤベルト、パレット、又は容器)から別の位置(例えば、パレット、容器など)に搬送するように構成することができる。別の実施例では、搬送ユニット104(例えば、パレタイジングロボット)は、対象物体112を供給位置(例えば、パレット、ピックアップエリア、及び/又はコンベヤ)から積み込み先パレットに搬送するように構成することができる。動作を完了させるとき、輸配送ユニット106は、対象物体112を搬送ユニット104に関連付けられる領域から荷積みユニット108に関連付けられる領域に搬送することができ、荷積みユニット108は、対象物体112を搬送ユニット104から保管位置(例えば、棚上の位置)へ(例えば、対象物体112を運搬するパレットを移動させることによって)搬送することができる。タスク及び関連する行動に関する詳細は以下で説明する。
【0021】
例示の目的のために、ロボットシステム100は、配送センタの文脈で説明されるが、ロボットシステム100は、他の環境でタスクを実行するように構成できること/製造、組立、パッケージング、ヘルスケア、及び/又は他のタイプの自動化などの他の目的のためにタスクを実行するように構成できることが理解されよう。ロボットシステム100は、図1には示されていない、マニピュレータ、サービスロボット、モジュール式ロボットなどの他のユニットを含むことができることも理解されよう。例えば、いくつかの実施形態では、ロボットシステム100は、物体をケージカート又はパレットからコンベヤ又は他のパレットに搬送するためのデパレタイズユニット、物体をあるパレットから別のパレットに搬送するためのパレット切り替えユニット、物体をラッピングするためのパッケージングユニット、物体の1つ又は複数の特性に従って物体をグループ化するための並べ替えユニット、物体の1つ又は複数の特性に従って物体を異なる方法で操作するため(例えば、並べ替え、グループ化、及び/又は搬送するため)のピースピッキングユニット、又はそれらの組み合わせを含むことができる。
【0022】
ロボットシステム100は、運動(例えば、回転変位及び/又は並進変位)のためにジョイントで接続された物理的又は構造的な部材(例えば、ロボットマニピュレータアーム)を含み得、及び/又はその部材に結合され得る。構造部材及びジョイントは、ロボットシステム100の使用/動作に応じて1つ以上のタスク(例えば、把持、スピン、溶接等)を実行するように構成されたエンドエフェクタ(例えば、グリッパ)を操作するように構成された運動連鎖を形成できる。ロボットシステム100は、対応するジョイントの周囲又は対応するジョイントで、構造部材を駆動又は操作(例えば、変位及び/又は再配向)するように構成される作動デバイス(例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマなど)を含み得る。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシを位置から位置へ輸配送するように構成される輸配送モータを含むことができる。
【0023】
ロボットシステム100は、構造部材を操作する及び/又はロボットユニット440を輸配送するなどのタスクの実施のために使用される情報を取得するように構成されるセンサを含むことができる。センサは、ロボットシステム100の1つ又は複数の物理的特性(例えば、1つ又は複数の構造部材/その関節の状況、状態、及び/又は場所)及び/又は周辺環境の1つ又は複数の物理的特性を検出又は測定するように構成されるデバイスを含むことができる。センサのいくつかの例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどがあり得る。
【0024】
いくつかの実施形態では、例えば、センサには、周囲環境を検出するように構成される1つ以上の撮像デバイス(例えば、視覚カメラ及び/又は赤外線カメラ、2D及び/又は3D撮像カメラ、ライダ又はレーダなどの距離測定デバイスなど)が含まれ得る。撮像デバイスは、(例えば、自動検査、ロボットガイダンス、又は他のロボットアプリケーションのために)マシン/コンピュータビジョンを介して処理され得る、デジタル画像及び/又は点群などの検出された環境の表現を生成することができる。以下でさらに詳細に説明するように、ロボットシステム100は、デジタル画像及び/又は点群を処理して、対象物体112、開始位置114、タスク位置116、対象物体112の姿勢、開始位置114及び/又は姿勢に関する信頼尺度、又はそれらの組み合わせを識別することができる。
【0025】
対象物体112を操作するために、ロボットシステム100は、指定された範囲(例えば、トラック内又はコンベヤベルト上などのピックアップ位置)の画像を取り込み及び分析して、対象物体112及びその開始位置114を識別することができる。同様に、ロボットシステム100は、別の指定エリア(例えば、コンベアに物体を置くための降下地点、パレット内に物体を置くための位置、又は段積みするためのパレット上の位置)の画像を取り込み解析して、タスク地点116を識別することができる。例えば、撮像デバイスは、ピックアップエリアの画像を生成するように構成される1つ以上のカメラ、及び/又はタスクエリア(例えば、降下エリア)の画像を生成するように構成される1つ以上のカメラを含み得る。取り込み画像に基づいて、後述するように、ロボットシステム100は、開始位置114、タスク位置116、関連する姿勢、配置プラン、搬送シーケンス、及び/又は他の処理結果を決定することができる。
【0026】
いくつかの実施形態では、例えば、センサは、構造部材(例えば、ロボットアーム及び/又はエンドエフェクタ)及び/又はロボットシステム100の対応する関節の位置を検出するように構成される位置センサ(例えば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサを使用して、タスクの実行中に構造部材及び/又は関節の位置及び/又は配向を追跡することができる。
【0027】
適切なシステム
図2は、本技術の1つ又は複数の実施形態による、ロボットシステム100を示すブロック図である。いくつかの実施形態では、例えば、ロボットシステム100(例えば、上述したユニット及び/又はロボットの1つ又は複数)は、1つ又は複数のプロセッサ202、1つ又は複数の記憶デバイス204、1つ又は複数の通信デバイス206、1つ又は複数の入力出力デバイス208、1つ又は複数の作動デバイス212、1つ又は複数の搬送モータ214、1つ又は複数のセンサ216、又はそれらの組み合わせなどの電子/電気デバイスを含むことができる。様々なデバイスは、有線接続及び/又は無線接続を介して互いに結合することができる。例えば、ロボットシステム100は、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス又はPCI-Expressバス、ハイパートランスポート又は業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインターフェイス(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、又はIEEE(Institute of Electrical and Electronics Engineers)標準1394バス(「ファイアワイア」とも呼ばれる)などのバスを含むことができる。また、例えば、ロボットシステム100は、デバイス間の有線接続を提供するために、ブリッジ、アダプタ、プロセッサ、又は他の信号関連デバイスを含むことができる。無線接続は、例えば、セルラ通信プロトコル(例えば、3G、4G、LTE、5Gなど)、無線ローカルエリアネットワーク(LAN)プロトコル(例えば、無線フィデリティ(WIFI))、ピアツーピア又はデバイス間通信プロトコル(例えば、Bluetooth、近距離無線通信(NFC)など)、モノのインターネット(IoT)プロトコル(例えば、NB-IoT、LTE-Mなど)、及び/又は他の無線通信プロトコルに基づくことができる。
【0028】
プロセッサ202は、ストレージデバイス204(例えば、コンピュータメモリ)に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたデータプロセッサ(例えば、中央処理装置(CPU)、専用コンピュータ、及び/又はオンボードサーバー)を含み得る。いくつかの実施形態では、プロセッサ202は、図2に示す他の電子/電気デバイス、及び/又は図1に示すロボットユニット440に動作可能に結合される別個の/スタンドアロンのコントローラに含まれ得る。プロセッサ202は、他のデバイスを制御するためのプログラム命令/他のデバイスとインタフェースをとるためのプログラム命令を実施することができ、それによりロボットシステム100に、アクション、タスク、及び/又は動作を実行させる。
【0029】
記憶装置204は、プログラム命令(例えば、ソフトウェア)が記憶された非一時的コンピュータ可読媒体を含むことができる。記憶装置204のいくつかの例として、揮発性メモリ(例えば、キャッシュ及び/又はランダムアクセスメモリ(RAM))及び/又は不揮発性メモリ(例えば、フラッシュメモリ及び/又は磁気ディスクドライブ)を挙げることができる。記憶デバイス204の他の実施例は、ポータブルメモリドライブ及び/又はクラウド記憶デバイスを含み得る。
【0030】
いくつかの実施形態では、記憶デバイス204を使用して、処理結果及び/又は所定のデータ/閾値をさらに格納し、それらへのアクセスを提供することができる。例えば、記憶デバイス204は、ロボットシステム100によって操作され得る物体(例えば、ボックス、ケース、及び/又は製品)の記述を含むマスタデータ252を格納することができる。1つ又は複数の実施形態では、マスタデータ252には、そのような物体ごとの登録データ254が含まれ得る。登録データ254には、ロボットシステム100によって操作されることが予想される物体の寸法、形状(例えば、可能性のある姿勢のためのテンプレート、及び/又は様々な姿勢の物体を認識するためのコンピュータ生成モデル)、配色、画像、識別情報(例えば、バーコード、クイック応答(QR)コード、ロゴなど、及び/又はそれらの予想される位置)、予想される重量、他の物理的/視覚的特性、又はそれらの組み合わせが含まれ得る。いくつかの実施形態では、マスタデータ252には、各物体の重心(CoM)位置もしくはその推定、1つもしくは複数のアクション/操作に対応する予想される(例えば、力、トルク、圧力、及び/又は密着性の)センサ測定結果、又はそれらの組み合わせなど、物体に関する操作関連情報が含まれ得る。
【0031】
通信デバイス206は、ネットワークを介して外部デバイス又はリモートデバイスと通信するように構成された回路を含み得る。例えば、通信デバイス206は、受信機、送信機、変調器/復調器(モデム)、信号検出器、信号エンコーダ/デコーダ、コネクタポート、ネットワークカードなどを含むことができる。通信デバイス206は、1つ又は複数の通信プロトコル(例えば、インターネットプロトコル(IP)、無線通信プロトコルなど)に従って電気信号を送信、受信、及び/又は処理するように構成することができる。いくつかの実施形態では、ロボットシステム100は、通信デバイス206を使用して、(例えば、報告、データ収集、分析、及び/又はトラブルシューティングの目的で)ロボットシステム100のユニット間で情報を交換する、及び/又はロボットシステム100の外部のシステム又はデバイスと情報を交換することができる。
【0032】
入出力デバイス208は、人間のオペレータと情報を通信し、及び/又は人間のオペレータから情報を受信するように構成されたユーザインタフェースデバイスを含むことができる。例えば、入出力デバイス208は、情報を人間のオペレータに通信するためのディスプレイ210及び/又は他の出力デバイス(例えば、スピーカ、ハプティック回路、又は触覚フィードバックデバイスなど)を含むことができる。また、入力出力デバイス208は、キーボード、マウス、タッチスクリーン、マイクロフォン、ユーザインターフェイス(UI)センサ(例えば、モーションコマンドを受信するためのカメラ)、ウェアラブル入力デバイスなどの制御デバイス又は受信デバイスを含むことができる。いくつかの実施形態では、ロボットシステム100は、入力出力デバイス208を使用して、行動、タスク、動作、又はそれらの組み合わせを実行する際に人間のオペレータと相互作用することができる。
【0033】
ロボットシステム100は、動作(例えば、回転及び/又は並進変位)のために関節で連結される物理的又は構造的部材(例えば、ロボットマニピュレータアーム)を含むことができる。構造部材及び関節は、ロボットシステム100の使用/動作に従って1つ又は複数のタスク(例えば、把持、紡績、溶接など)を実行するように構成されるエンドエフェクタ(例えば、グリッパ)を操作するように構成される運動連鎖を形成することができる。ロボットシステム100は、対応する関節の周りで、又は関節において構造部材を駆動又は操作(例えば、変位及び/又は再配向)するように構成された作動デバイス212(例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシを場所間で搬送するように構成された搬送モータ214を含み得る。
【0034】
ロボットシステム100は、構造部材を操作する及び/又はロボットユニット440を搬送するなどのタスクの実施のために使用される情報を取得するように構成されるセンサ216を含むことができる。センサ216は、ロボットシステム100の1つ又は複数の物理的特性(例えば、1つ又は複数の構造部材/その関節の状況、状態、及び/又は場所)及び/又は周辺環境の1つ又は複数の物理的特性を検出又は測定するように構成されるデバイスを含むことができる。センサ216のいくつかの実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどを含むことができる。
【0035】
いくつかの実施形態では、例えば、センサ216は、周辺環境を検出するように構成される1つ又は複数の撮像デバイス222(例えば、視覚カメラ及び/又は赤外線カメラ、2D及び/又は3D撮像カメラ、ライダ又はレーダなどの距離測定デバイスなど)を含むことができる。撮像デバイス222は、(例えば、自動検査、ロボットガイダンス、又は他のロボットアプリケーションのために)マシン/コンピュータビジョンを介して処理され得る、デジタル画像及び/又は点群などの検出された環境の表現を生成することができる。以下にさらに詳細に説明するように、ロボットシステム100(例えば、プロセッサ202を介して)は、デジタル画像及び/又は点群を処理して、図1の対象物体112、図1の開始位置114、図1のタスク位置116、対象物体112の姿勢、開始位置114及び/又は姿勢に関する信頼尺度、又はそれらの組み合わせを識別することができる。
【0036】
対象物体112を操作するために、ロボットシステム100は(例えば、上記の様々な回路/デバイスを介して)指定されたエリア(例えば、トラック内又はコンベヤベルト上などのピックアップ位置)の画像を取り込み分析して、対象物体112及びその開始位置114を識別することができる。同様に、ロボットシステム100は、別の指定エリア(例えば、コンベアに物体を置くための降下地点、パレット内に物体を置くための位置、又は段積みするためのパレット上の位置)の画像を取り込み解析して、タスク地点116を識別することができる。例えば、撮像デバイス222は、ピックアップエリアの画像を生成するように構成される1つ又は複数のカメラ、及び/又はタスクエリア(例えば、下降エリア)の画像を生成するように構成される1つ又は複数のカメラを含むことができる。取り込み画像に基づいて、後述するように、ロボットシステム100は、開始位置114、タスク位置116、関連する姿勢、配置領域、及び/又は他の処理結果を決定することができる。動的配置アルゴリズムに関する詳細は、以下に説明される。
【0037】
いくつかの実施形態では、例えば、センサ216は、ロボットシステム100の構造部材(例えば、ロボットアーム及び/又はエンドエフェクタ)及び/又は対応するジョイントの位置を検出するように構成される位置センサ224(例えば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサ224を使用して、タスクの実行中に構造部材及び/又はジョイントの位置及び/又は向きを追跡することができる。
【0038】
物体搬送及び配置の例
図3Aは、本技術の1つ又は複数の実施形態による、図1のロボットシステム100の図である。ロボットシステム100は、エンドエフェクタ304(例えば、グリッパ)を有するロボットアーム302を含むこと、又はそれに通信可能に結合されることができる。ロボットアーム302は、図1に示されるロボットユニット440のうちの1つ(例えば、図1の搬送ユニット104の例)のうちの1つ又はその1つの一部であることができる。例えば、ロボットアーム302は、パッケージ取り扱い用途を含む産業用途で使用される産業用ロボットシステムを含むことができる。ロボットアーム302には、例えば6軸産業用ロボットアーム構造体に、いくつかの軸に沿って、又はそれらの周りに関節で連結され得る。
【0039】
ロボットアーム302は、図1の開始位置114と図1のタスク位置116との間で対象物体112を搬送するように構成されることができる。図3Aに示されるように、開始位置114は、コンベヤ306(例えば、図1の輸配送ユニット106のインスタンス)上の位置(例えば、終了点/進入点)に対応することができる。ロボットアーム302のタスク位置116は、配置プラットフォーム308(例えば、パレット)又はその内の位置であることができる。例えば、ロボットアーム302は、物体112をコンベヤ306からピッキングし、それらを別の目的地/タスクへの輸配送のために配置プラットフォーム308内/上に配置するように構成されることができる。
【0040】
エンドエフェクタ304は、ロボットアーム302の遠位端部に結合された任意の1つ又は複数のコンポーネントを含むことができる。エンドエフェクタ304は、1つ以上の物体とインタラクトするように構成されることができる。いくつかの実施形態では、エンドエフェクタ304は、力覚-トルク(F-T)センサ(図示せず)、アームインタフェース、グリッパシステム、及び/又はグリッパインタフェースを含むことができる。例示目的で、エンドエフェクタ304がサクションカップのロウを有するように示されるが、エンドエフェクタ304が異なるコンフィグレーションを有することができることが理解される。例えば、エンドエフェクタ304は、一体型サクションチャネルを備えたサクションパッド、挟持体型把持装置、又は物体を掴持するための任意の他のタイプの把持システムを含むことができる。
【0041】
ロボットシステム100は、ロボットアーム302で搬送操作を実行する際に、図2のセンサ216のうちの1つ以上を使用することができる。ロボットシステム100は、開始位置114及び/又はタスク位置116では、又はその周りで、センサのセット(例えば、カメラ及び/又はデプスセンサなど、2D及び/又は3Dセンサ)を含むこと、又はそれに結合されることができる。一部の実施形態では、ロボットシステム100は、タスク位置116の上で、かつそれに向けられたトップビューセンサ310、及び/又はタスク位置116に隣接し、かつその方に横方向に向けられたサイドビューセンサを含むこと、又はそれに結合されることができる。ロボットシステム100は、同様に、開始位置114に向けられた1つ以上のソースセンサ314を含むことができる。センサは、対応する位置を撮像する、及び/又は解析するように構成されることができる。例えば、トップビューセンサ310は、配置プラットフォーム308及び/又はその上の物体のトップビューを描写する画像データを生成すること、及び/又は処理することができる。また、サイドビューセンサは、配置プラットフォーム308及び/又はその上の物体のサイドビューを描写する画像データを生成すること、及び/又は処理することができる。
【0042】
ロボットシステム100は、センサ216からの画像データを使用して、開始位置114からタスク位置116に物体を搬送するなどのタスクを実行することができる。従って、ロボットシステム100は、画像データを使用して、1つ以上の配置プラン(例えば、物体の量/アイデンティティの記述、及び/又は1つ以上のプラットフォーム上のそれらの姿勢及び物理的配置)及び/又はモーションプラン(例えば、対応する物体を搬送するためにロボットアームを物理的に移動させるという記述)を導出して実行し、タスクを実行することができる。以下にさらに詳細に説明されるように、ロボットシステム100は、配置プラットフォーム308上の多段積み内に物体を配置するための配置プランを導出すること、及び/又は動的に調整することができる。プランは、他の物体の上に配置されている(例えば、段積みされている)1つ以上の物体に対応することができる。
【0043】
図3Bは、本技術の1つ又は複数の実施形態による、図1のロボットシステム100の例示的なタスクステーション350の図である。例示的なタスクステーション350は、ロボットアーム302がタスク/動作を実行するように構成された位置であることができる。例示的なタスクステーション350は、別個のコンベヤなど、複数のソース352を有することができ、これら複数のソースは、別々に、及び/又は独立して、対象物体又はパッケージを提供するように構成される。タスクステーション350は、ソース352を介して対象物体を受け取ることができ、ロボットアーム302は、対象物体を1つ以上の目的地354(例えば、パレット)に搬送することができる。
【0044】
目的地354のそれぞれは、対象物体の複数の配置位置356(例えば、P1~P4、P1~P5など)を有することができる。以下にさらに詳細に説明されるように、配置位置356は、例えば対応する位置とロボットアーム302との間の分離距離に従って、シーケンスが決定されること、又は順序付けされることができる。図3Bに示される例では、パレットD1上の最も遠い配置位置に最低識別子P1を割り当て、最も近い配置位置に最高識別子P4を割り当てることができる。ロボットシステム100は、シーケンス及び対応する配置ルールを使用して、入荷する物体に適切な配置/段積み位置を選択することができる。
【0045】
いくつかの実施形態では、タスクステーション350が複数の配置面を含むとき、ロボットシステム100は、各配置面に好ましいアプローチ方向360を割り当て、利用することができる。図3Bに示される例では、パレットD1に好ましいアプローチ方向360は、時計回り方向に実質的に対応することができ、パレットD2に好ましいアプローチ方向360は、反時計回り方向に対応することができる。モーションプラン中、ロボットシステム100は、対応する配置面上に物体を配置するとき、好ましいアプローチ方向360に従うようにより高い重み付けを提供することができる。従って、ロボットシステム100は、その他の配置面上に段積みされた物体と衝突する尤度を低下させることができる。
【0046】
ロボットシステム100は、各配置面内の配置位置356のシーケンスを決定する際に、好ましいアプローチ方向360をさらに使用することができる。例えば、所与の配置面内の2つ以上の配置位置が互いの閾値範囲内の分離距離を有するとき、ロボットシステム100は、好ましいアプローチ方向360を使用して、それらのような配置位置のシーケンスを決定することができる。ロボットシステム100は、より低いシーケンス識別子450を、好ましいアプローチ方向360に沿ってより遠い配置位置に割り当てることができる。図3Bに示される例を使用して、ロボットシステム100は、パレットD1上の配置位置P2及びP3を閾値範囲内であると決定することができる。好ましいアプローチ方向360に時計回り方向が与えられると、ロボットシステム100は、より低い識別子P2を好ましいアプローチ方向360に沿ってより遠い位置に割り当てることができる。同様に、ロボットシステム100は、パレットD2にP2~P4のシーケンスを決定することができる。
【0047】
シーケンスが決定された配置位置356を使用して、ロボットシステム100は、例えば、パッキングプラン(例えば、配置面上で段積み内の物体の位置)を導出する際、どの対象物体上で操作する必要があるかを選択する際、対象物体の配置位置を選択する際、モーションプランを導出する際、モーションプランを実行する/実行する際、又はそれらの組み合わせの際、物体配置を制御することができる。例えば、(1)ソース352での対象の到着タイミング及び可用性が制御可能であり、(2)プラットフォームごとの対象コンテンツが利用可能であるとき、ロボットシステム100は、シーケンス配置位置356及び配置ルールを使用してパッキングプランを導出することができる。また、例えば、(1)到着タイミングが制御不能であり、(2)対象コンテンツが利用可能であるとき、ロボットシステム100は、シーケンス配置位置356及び配置ルールを使用して、配置位置を効率的に導出し、物体がソース352で受け取られる際にリアルタイムでパッキングプランを導出することができる。
【0048】
さらに、タスクステーション350が複数のソース352を含む場合、ロボットシステム100は、シーケンス配置位置356及び配置ルールを使用して、利用可能な物体のうちのどれを最初に搬送するかを選択することができる。図3Bに示される例では、ロボットシステム100は、ソース352に利用可能な対象物体T1~T3のシーケンスが決定された配置位置(例えば、配置プランが利用可能であるとき、又は配置位置の動的導出に従うときなど)を比較することができる。この比較に基づいて、ロボットシステム100は、ロボットアーム302から最も遠い配置位置を有する、及び/又は他の適用ルールに従う、対象物体のうちの1つを選択することができる。同様に、利用可能な対象物体が2つ以上の配置位置に配置されることができるとき、ロボットシステム100は、ロボットアーム302から最も遠い配置位置のうちの1つを選択することができる。
【0049】
配置領域のセグメント化の例
図4A図4Bは、本技術の1つ以上の実施形態による配置位置450の例示的なセグメント化図である。図4Aは、対象パッケージ410を配置プラットフォーム308の基面408上に配置するようにロボットアーム302を操作する例示的なロボットユニット440(例えば、パレタイジングロボット)を示す。図4Aに示すように、基面408を別個の配置位置430に分割することができる。図4Aはまた、ロボットシステム100と干渉する(例えば、パッケージの上面への追加の段積みを防止する)異常な物体プロパティ402(例えば、変形した上面)を有する異常なパッケージ420の例を示す。図4Aは、ロボットユニット440、ロボットアーム302、配置プラットフォーム308、対象パッケージ410、及び異常なパッケージ420を示す電子ディスプレイ401を示す。図4Aはまた、異常なパッケージ420の異常な物体プロパティ402(例えば、既知の対応する尺度から逸脱している検出された物体の1つ以上の物理的プロパティ)を識別するポップアップ表示を示す。図4Bは、例示的な配置アセンブリ400の側面図である。
【0050】
いくつかの実施形態では、図1のロボットシステム100は、ロボットユニット440を使用して、1つ以上の配置プラットフォーム308上に多段積みを形成するように構成されることができる。例えば、ロボットシステム100は、1つのパレタイジングロボット(例えば、1つのステーション)を使用して、1つのパレット又は複数のパレットの多段積みを形成することができる。これらのような多段積みコンフィグレーション及び実行を使用して、例えば複数の注文(例えば、各パレットが1つの注文を表している)を履行するための、及び/又は混合したストックキーピングユニット(SKU)のセット又はアイテムタイプをプラットフォームのうちの1つ以上の上に配置するための、複数のタスク及び/又は複雑なタスクを履行する。
【0051】
複数の及び/又は複雑なタスクを履行する際、ロボットシステム100は、1つ以上の配置プラットフォーム308のうちの1つ以上の上に複数の別個の段積みを形成することができる。従って、ロボットシステム100は、対応する配置プラットフォーム308の基面408を複数の配置領域に分割することができる。各配置領域は、対応する物体段積みのサイト又は位置を表すことができる。一部の実施形態では、ロボットシステム100は、基面408を動的に分割し、リアルタイムで入荷する、又はアクセスできる物体に従って配置領域を計算することができる。他の実施形態では、ロボットシステム100は、パッキングプランナ(例えば、専用プロセッサセット、エンジン、ソフトウェア、又はそれらの組み合わせ)を使用して、1つ以上の所定の目標(例えば、パッキング密度、パレット高さ制限、出荷マニフェスト、関連する閾値もしくはルール、又はそれらの組み合わせ)に従って基面408を分割することができる。ロボットユニット440は、1つ又は複数のソース(例えば、コンベヤ)から入荷する物体を受け取り、各対象パッケージを配置領域のうちの1つに搬送することによって、パレットのうちの1つ又は複数の上に物体の多段積みを形成することができる。
【0052】
多段積みを形成して管理する際、ロボットシステム100は、1つ以上のセンサデータを使用して物体を検出すること、又は認識することができる。例えば、ロボットシステム100は、図1の開始位置114(例えば、物体をステーションに提供する1つ以上のコンベヤ306)を示す図3Aのソースセンサ314又は図2の他の同様のセンサ216から画像データ(例えば、2D画像、3Dデプスマップ、又はそれらの組み合わせ)を受信することができる。ロボットシステム100は、画像データをリアルタイムで解析して、対象パッケージ410及び配置プラットフォーム308の寸法(例えば、長さ、幅、又は高さ)、形状、輪郭、テクスチャ(例えば、物体表面(複数可)の画像、書き込み、又は他の視覚特性)、物体の姿勢、及び/又は他の物理的プロパティのような、受け取った対象パッケージ410の1つ又は複数の物性を決定することができる。いくつかの実施形態では、例えば、ロボットシステム100は、図2の1つ以上の撮像デバイス222からの深度測定値(例えば、点群データ)を使用することができる。地面及び/又は配置プラットフォーム308の垂直位置(例えば、配置プラットフォームの上面の高さ)が既知であることから、ロボットシステム100は、深度測定値を使用して、プラットフォーム308及び対象パッケージ410の露出した上面(複数可)の高さ/輪郭を計算することができる。追加又は代替に、ロボットシステム100は、1つ又は複数の物性(例えば、物体テクスチャ又は寸法などのセンサデータ)をマスタデータと比較して、受信した物体を検出する、又は認識することができる。さらに、ロボットシステム100は、物体の位置、物体の物理的縁部/境界、又はそれらの組み合わせを決定することによって、物体を検出することができる。
【0053】
プラットフォームごとにパッキングプランを生成する、又は調整する際、ロボットシステム100は、所期のパッケージ又は利用可能なパッケージの横寸法(例えば、長さ、幅)を使用して、プラットフォームの基面を分割し、配置位置430を計算することができる。所期の又は意図したパッキング対象が(例えば、上流センサ情報、出荷マニフェストなどを介して)与えられると、ロボットシステム100は、段積み姿勢及び対応する基部領域(例えば、フットプリント)を決定することができる。パッキング対象の基部領域を使用して、ロボットシステム100は、配置プラットフォーム308の基面をパッキング対象の基部領域に関連する1つ以上の周囲長に分割することによって、配置プラットフォーム308上の1つ以上の配置位置430を決定することができる。配置位置430は、1つ以上のパッケージ物体を配置する、及び/又は段積みすることができる、配置プラットフォーム308上の位置を表すことができる。ロボットシステム100は、シーケンス識別子450を各配置位置に割り当てることもできる。いくつかの実施形態では、パッキング対象410の長さ412及び/又は幅414は、特定の距離に固定されることができる。従って、ロボットシステム100は、配置プラットフォームの基部領域を、各配置位置430に対応する等しいサイズの周囲長に分割することができる。ロボットシステム100は、三次元座標中心、既知の距離のセット(例えば、配置プラットフォーム308の縁部からのピクセル数)、周囲長ベクトルのセット(例えば、座標対)、又はそれらの何らかの組み合わせによって、配置位置430を決定することができる。
【0054】
一部の実施形態では、ロボットシステム100は、配置プラットフォーム308より上で異なる高さレベルの1セット以上の配置位置430を決定することができる。ロボットシステム100は、同じ横方向高さレベル上の別の配置位置430の周囲長に重ならない配置位置430を決定するように構成されることができる。
【0055】
ロボットシステム100は、配置位置430とロボットユニット440との間の横方向の距離を決定するように構成されることができる。いくつかの実施形態では、ロボットシステム100は、配置位置430の基準点(例えば、中心部分)から、配置位置430の中心点に対して横方向(例えば、x-y平面)のロボットユニット440の基準点(例えば、中心部分)までの距離を計算することができる。さらにロボットシステム100は、計算された距離に基づいて順序付けられたシーケンスに従って、シーケンス識別子450を配置位置430に配列して、又は割り当て、例えば、最も遠い配置位置に最も低い識別子を割り当て、より近い配置位置により高い識別子を割り当てるように構成されることができる。
【0056】
ロボットシステム100は、リアルタイムで入荷する又はアクセスできる物体に関連する異常な物体プロパティ402を識別するように構成されることができる。例えば、ロボットシステム100は、入荷する物体の上への追加の物体の段積みを防止する偏差を、入荷する物体の1つ以上の物理的トレイト(例えば、変形、曲げ、ミスアライメント、及び/又は部分的に閉じているなど)内で識別するように構成されることができる。ロボットシステム100は、画像データに示される1つ以上の部分(例えば、パッケージの上面の部分、又は横寸法)を使用して、入荷する物体を検出することができる。検出に続いて、ロボットシステム100は、1つ以上の寸法、中心/オーバラップ領域、上面の向き又は輪郭形状などのような1つ以上の物理的トレイトをマスタデータと比較することができる。一部の実施形態では、ロボットシステム100は、所定の1つ以上の物理的トレイト、及び既知の偏差に関連する対応する解析プロセスを含むことができる。一部の実施形態では、ロボットシステム100は、入荷する物体の識別された異常な物体プロパティに基づいて段積み高さ制限530を調整することができる。
【0057】
配置ルール
図5A図5Eは、本技術の1つ以上の実施形態による配置ルールの実装図である。図5A図5Eは、様々な配置ルールに対応する様々な段積みシナリオを示す。ロボットシステム100は、配置ルールを使用して、指定された配置プラットフォーム308内の物体の配置位置を導出し得る。例えば、ロボットシステム100は、1つ以上の配置ルールを満たすことができないポテンシャル配置位置430を廃棄しても、又は不適格にしてもよい。
【0058】
配置ルールのいくつかの例は、パッケージの1つ以上の層をパッケージの1つ以上の他の層(複数可)より上に段積み/配置するためなど、互いの上に物体を配置するためのものであることができる。ロボットシステム100は、段積みされた物体の安定性を改善/確保し、あらゆる物体が配置プラットフォーム308の移動中に滑り落ちる及び/又は傾くことを防止するために、配置ルールを使用することができる。さらに、ロボットシステム100は、配置ルールを使用して、物品などの配置中に衝突の可能性を低下させながら、パッキングされた物品の全体数を増加させることができる。図5Aは、第一物品を配置した後の最終状態と、第二物品を配置するための初期状態とを示す。例示目的で、図5B図5D、及び図5Fは、1つ以上の支持パッケージの真上にあり、それらによって支持される(例えば、直接接触している)最上部パッケージの複数のシナリオを示す。図5B図5Dは、異なるパッキング寸法に従って、図5Aに示される初期状態から第二物品を配置するための複数のパッキングシナリオを示す。図5Eは、配置位置での高さにおける差異を低減させる、最初の3つの物品の代替の段積みの可能性を示す。図5Fは、図5B図5Eに示されるパターンから逸脱する段積み可能性を示す。
【0059】
ロボットシステム100は、対象パッケージ410の対象配置位置を決定するように構成されることができる。ロボットシステム100は、対象配置位置を導出するために、配置位置430の現在の段積み高さ510を使用することができる。いくつかの実施形態では、ロボットシステム100は、配置位置430上に段積みされたパッケージの現在の段積み高さ510をリアルタイムで決定することができる。ロボットシステム100は、撮像デバイス222を使用して、段積みされたパッケージの上面と配置プラットフォーム308との間の深度測定値(例えば、点群データ)を解析することができる。一部の実施形態では、ロボットシステム100は、マスタデータ252から配置位置430上に段積みされたパッケージごとに記録された高さ情報にアクセスすることができる。従って、ロボットシステム100は、段積みされたパッケージごとに記録された高さ情報の総和によって、配置位置430の現在の段積み高さ510を決定することができる。
【0060】
対象パッケージ410に適切な配置位置を決定するとき、ロボットシステム100は、配置位置430の現在の段積み高さ510と対象パッケージ410の高さ416との間の総和として、配置位置430の段積み高さの組み合わせを決定することができる。言い換えれば、ロボットシステム100は、段積み高さの組み合わせを、対象パッケージ410が対応する配置位置に配置される(例えば、対応する位置に以前に配置されたパッケージの上に段積みされる)場合に得られる高さとして決定することができる。
【0061】
ロボットシステム100は、配置ルールを使用して、対象パッケージ410の対象配置位置430を導出することができる。配置ルールは、配置位置430間の現在の段積み高さ510を制御する、又は認定するための規則、要件、又はそれらの組み合わせを含むことができる。例えば、配置ルールは、高さ要件、シーケンス要件、又はそれらの組み合わせに基づいていることができる。
【0062】
高さ要件は、配置位置430の現在の段積み高さ510の最大段積み高さ制限530(例えば、配置プラットフォームの寸法に対する割合又は静的距離)を含むことができる。いくつかの実施形態では、高さ要件は、隣接する段積み間の相対的な高さを制御する要件であることができる。言い換えれば、高さ要件は、配置位置430の現在の段積み高さ510が、他の配置位置の現在の段積み高さ510から所定の範囲内にあることを要求することができる。
【0063】
シーケンス要件は、段積み高さが配置位置の所定のシーケンス又は順序に従うことを要求することができる。例えば、シーケンス要件は、第一配置位置の識別子が第二配置位置の識別子よりもシーケンス中で前である、又は下である場合、第二配置位置の段積み高さよりも高い第一配置位置の段積み高さを要求することができる。いくつかの実施形態では、シーケンス要件は、i>jの場合に関係h≦hによって示され得、式中、h及びhは第一及び第二配置位置の現在の段積み高さを表し、i及びjはそれぞれ第一及び第二配置位置のシーケンス識別子450を表す。上述のように、配置位置は、対応する配置位置とロボットユニット440との間の距離に従って、シーケンスが決定されること、又は順序付けされることができる。
【0064】
いくつかの実施形態では、ロボットシステム100は、段積み高さ制限530を使用して、パッケージ410の対象配置位置430を導出することができる。段積み高さ制限530は、配置位置430の現在の段積み高さ510を制限する所定の最大値であることができる。いくつかの実施形態では、ロボットシステム100は、配置ルールから逸脱し、例外ルールに従うことができる。例えば、ロボットシステム100は、第二配置位置430よりもロボットユニットに近い第一配置位置に対象パッケージ410を段積みすることができ、第二配置位置の合計高さが段積み高さ制限を超えるとき、第一配置位置の合計高さは、第二配置位置の現在の段積み高さよりも大きくなる。ロボットシステム100は、ユーザ入力(例えば、顧客指定の要件)、キャリヤ寸法、ロボット特徴(例えば、1つ以上の配置位置に対するロボットユニット440のアクセス可能な最大高さ)などに従って、段積み高さ制限530を決定することができる。
【0065】
対象パッケージ410の対象配置位置430を決定する際、ロボットシステム100は、配置位置430に対応する現在の段積み高さ及びシーケンス識別子450に基づいて、選択配置位置に対象パッケージ410を配置することができるかどうかを決定することができる。例えば、ロボットシステム100は、選択配置位置の段積み高さの組み合わせを決定して、配置プラットフォーム308上で利用可能な配置位置430の現在の段積み高さと比較することができる。さらに、ロボットシステム100は、選択配置位置のシーケンス識別子を決定して、配置位置430のシーケンス識別子450と比較することができる。段積み高さの組み合わせ、現在の段積み高さ、及びシーケンス識別子450を使用して、ロボットシステム100は、選択配置位置の段積み高さの組み合わせ及びシーケンス識別子を、配置位置430の現在の段積み高さ及びシーケンス識別子450と繰り返し比較して、選択配置位置が配置ルール又は例外ルールの少なくともいずれかに準拠しているかどうかを決定することができる。ロボットシステム100は、選択配置位置が配置ルール、例外ルール、又はその両方に準拠しているとき、対象パッケージ410が選択配置位置に配置されることができると決定することができる。ロボットシステム100は、その位置が1つ以上のルールを満たすことができないとき、その配置位置を除去することができる。
【0066】
いくつかの実施形態では、ロボットシステム100は、選択配置位置を、ロボットユニットに最も近い第一配置位置(例えば、最大値を有するシーケンス識別子)から開始し、ロボットユニットから最も遠い最後の配置位置で終了するまで、シーケンス識別子450の順序に順次従う配置位置430と繰り返し比較することができる。ロボットシステム100は、有効な第一選択配置位置を対象パッケージ410の対象配置位置430として選択し得る。他の実施形態では、ロボットシステム100は、配置ルールか例外ルールかいずれかに違反するまで、対象パッケージ410の対象配置位置の以前の選択の対象配置位置を繰り返し選択することができる。以前の選択の対象配置位置を繰り返し選択する際、ロボットシステム100は、選択配置位置と配置位置430との間の比較をスキップすることができる。
【0067】
例示的な例として、図5Aは、3つの配置位置を有する1つのパレット上に1つのパッケージが配置された時点を示す。パッケージを配置する前に、3つの配置位置での高さはゼロを有した。このように、ロボットシステム100は、パッケージを配置するために最も遠い配置位置(例えば、ロボットユニット440がパレットの左側の上に位置している識別子1)を選択することができる。対象を配置した後、識別子1での現在の高さ501は、配置されたパッケージ(例えば、パッケージ1)の高さ(例えば、h1)に対応することができる。
【0068】
図5Bは、第一パッケージ高さ501以上の高さ502を有する第二パッケージ(例えば、パッケージ2a)の配置を示す。第二パッケージの配置位置を考慮する際、ロボットシステム100は、配置位置1(例えば、h1+h2a)及び配置位置2(例えば、h2a)の段積み高さの組み合わせを計算することができる。ロボットシステム100は、候補位置の結果として得られる段積み高さの組み合わせを使用して、ルールと比較することができる。h2a≧h1であるため、第二パッケージを位置2に配置する結果として得られる高さの組み合わせは、位置1の現在の高さよりも大きくなることによって、配置ルールに違反する。代替に、位置1での高さの組み合わせは、より遠い段積みの高さがより近い位置より高くなるように維持し、高さの組み合わせが最大段積み高さよりも低くなるように維持し、配置ルールを遵守する。さらに、ロボットシステム100は、両方の候補位置の高さの組み合わせが最大段積み高さの下に留まるため、例外ルールを無視することができる。
【0069】
図5C及び図5Dは、第一パッケージ高さ501よりも低い高さ503を有する異なる第二パッケージ(例えば、パッケージ2b)の異なる配置の可能性を示す。図5Cは位置2に配置された第二パッケージ2bを示すことができ、図5Dは、第二パッケージ2bが位置1に配置され、第一パッケージ1の上に段積みされていることを示すことができる。ロボットシステム100は、両方の候補配置の高さの組み合わせを計算すること、及びルールに従って評価することができる。第二パッケージ2bの高さ2bが第一パッケージの高さh1より小さいため、高さ1から高さ2bを減算すると、正の数504が与えられることができる。従って、ロボットシステム100は、第二位置に第二パッケージ2bを配置することが配置ルールを満たすと決定することができる。さらに、ロボットシステム100は、第二パッケージ2bを第一位置に配置することも配置ルールを満たすと決定することができ、高さを最大閾値より低く維持することができる。ロボットシステム100が複数の有効な配置の可能性を識別するとき、ロボットシステム100は、有効な可能な位置の間で選択するために1つ以上の所定のプロセスを使用することができる。例えば、ロボットシステム100は、最初により遠い位置を選択し、最も高い段積み高さを増大させ、又は配置を広げ、段積み間の高さにおける差異を低減させるための所定のルールを有することができる。図5Eは、配置位置での高さにおける差異を低減させるためのプリファレンスに従って、第三パッケージ3aを配置する際の図5Cからの移行を示す。
【0070】
他の実施形態では、ロボットシステム100は、別個のサブシステム(例えば、プランナ)を使用してパッキングプランを生成することができる。注文又は出荷マニフェストに従ってなど、パレットの合計コンテンツが既知であるとき、ロボットシステム100は、パッケージの配置の前に、パッキングプラン(例えば、コンテンツ内のパッケージごとに指定された位置)を計算することができる。それらのような状況では、ロボットシステム100は、プラン段階中に異なる配置シナリオを考慮することができる。配置段階の間、ロボットシステム100は、異なる配置可能性を評価する代わりに、段積みプランに従うことができる。さらに配置段階の間、ロボットシステム100は、様々なルールを使用して、開始位置でのシーケンス外のパッケージ到着を考慮すること、又は段積み内に複数の配置位置を有するパッケージについて考慮することができる。追加又は代替に、ロボットシステム100は、配置ルールを使用して、パックプランニング段階中に段積みシーケンスを生成することができる。
【0071】
図5Fは、例外ルールを示す。図5Fは、図5Bに続く段積みシーケンスを表す。例えば、第二パッケージ(識別子2a)を位置1に段積みした後、ロボットシステム100は、第三パッケージ(識別子3)を位置1に段積みすると、最大段積み高さを超える高さの組み合わせが生成されることから、第三パッケージ3を位置2に配置することができる。さらに、ロボットシステム100は、対応する高さの組み合わせが位置2の現在の高さを超え、配置ルールに違反するため、第三パッケージの可能性として位置3を除去することができる。その後、第四パッケージ(識別子4)の配置位置を評価する際に、ロボットシステム100は、位置1での残りの高さ506(例えば、現在の高さと段積み高さ制限530との間の差)が既知の又は利用可能な物体の最小寸法よりも小さいと決定することができる。これに応じて、ロボットシステム100は、位置が埋まっていることを指示することによって、位置1を効率的に除去することができる。従って、ロボットシステム100は、例外ルールを呼び出し、位置2での高さの組み合わせが位置1の現在の高さを超えている位置2を選択することができる。そうでなければ、位置1での残りの高さが可能な又は予想されるパッケージの1つ又は複数の寸法より大きい場合などには、ロボットシステム100は、パッケージ4の配置位置として位置3を選択することができる。他の実施形態では、ロボットシステム100は、残りの高さ506が高さ閾値内にある場合に例外ルールを呼び出すことができる。
【0072】
配置シーケンスの例
図6A図6Bは、本技術の1つ以上の実施形態による例示的な第一配置シーケンス及び例示的な第二配置シーケンスの図である。ロボットシステム100は、配置ルール及び/又は例外ルールを使用して、第一配置シーケンス610及び第二配置シーケンス620を導出し、図3の配置プラットフォーム308(例えば、パレット)の導出された配置位置601~603上に物体セットを配置することができる。第一配置位置601はロボットユニットから最も遠くに位置していることができ、第三配置位置603はロボットユニットの最も近くに位置していることができる。第一配置シーケンス610及び第二配置シーケンス620は、配置プラットフォーム308上に配置された物体の垂直方向占有率を表す側面図に対応する。
【0073】
図6Aに示される例示的な第一配置シーケンス610では、第一セットの対象物体611~617は、配置位置601~603内の配置プラットフォーム308上に配置されるように指定される。従って、ロボットシステムは、配置ルールを使用して、配置シーケンス610を導出することができる。ロボットシステム100は、配置ルールに従って、第一対象物体611をロボットユニットから最も遠い第一配置位置601に配置することによって、配置シーケンス610を開始することができる。その後、第二対象物体612を第一対象物体611の直上の第一配置位置601上に配置することができる。他の実施形態では、ロボットシステム100は、第二対象物体612の垂直高さが第一対象物体611の垂直高さより低いため、第二対象物体612を第二配置位置602内に配置することができる。ロボットシステム100が複数の有効な配置の可能性を識別するとき、ロボットシステム100は、有効な可能な位置の間で選択するために1つ以上の所定のプロセスを使用することができる。例えば、シーケンス610は、ロボットシステム100が最初により遠い位置を選択するための所定のルールに従い、最も高い段積み高さを増大させることを示す。
【0074】
第三対象物体613は、3つの第一対象物体の垂直高さの組み合わせが段積み高さ制限630を超えるため、第二配置位置602上に配置されることができる。第四対象物体614は、第三対象物体613及び第四対象物体614の垂直高さの組み合わせが段積み高さ制限630内にあるため、第二配置位置602上に配置されることができる。他の実施形態では、ロボットシステム100は、第四対象物体の高さが配置位置602上の段積み高さより低いため、第四対象を第三配置位置603上に配置することができる。第二対象物体612の配置と同様に、ロボットシステム100は、最初により遠い位置を選択するための所定のルールに従い、最も高い段積み高さを増大させることができる。他の実施形態では、ロボットシステム100は、第四配置物体に有効な複数の可能な位置の間で選択するための1つ以上の代替の所定のプロセスを使用することができる。
【0075】
第五対象物体615が第一配置位置601か第二配置位置602かいずれかの上に配置されると、段積み高さの組み合わせが段積み高さ制限630を超えることにより、配置ルールに違反するため、第五対象物体615を第三配置位置603の上に配置することができる。同様に、第六対象物体616及び第七対象物体617は、それらの物体高さが段積み高さ制限630と配置位置602及び603での現在の段積み高さとの間の高さの差よりも大きくなるため、第三配置位置603内に配置されることができる。
【0076】
図6Bに示される例示的な第二配置シーケンス620では、第二セットの対象物体621~627は、配置プラットフォーム308上の配置位置601~603内に配置されるように指定される。従って、ロボットシステムは、配置ルール及び例外ルールを使用して、配置シーケンス620を導出することができる。ロボットシステム100は、第一対象物体621をロボットユニットから最も遠い第一配置位置601に配置することによって、配置シーケンス620を開始する。その後、第二対象物体622も第一対象物体621の直上の第一配置位置601上に配置する。他の実施形態では、ロボットシステム100は、第二対象物体622の垂直高さが第一対象物体621の垂直高さに等しいため、第二対象物体622を第二配置位置602内に配置することができる。
【0077】
第三対象物体623は、3つの第一対象物体の垂直高さの組み合わせが段積み高さ制限630を超えるため、第二配置位置602上に配置される必要がある。第四対象物体624は、第二配置位置602の上に配置される。他の実施形態では、ロボットシステム100は、第三対象物体623及び第四対象物体624の垂直高さが等しいため、第四対象物体624を第三配置位置603内に配置することができる。第五対象物体625は、第四対象物体624より上の第二配置位置602に配置される。従って、第二配置位置602の段積み高さの組み合わせは、第一配置位置601の段積み高さの組み合わせを超え、配置ルールに違反する。代わりに、ロボットシステム100は、第二配置位置602での第五対象625の配置を可能にするための例外ルールを使用することができる。続いて、第六対象物体616及び第七対象物体617は第三配置位置603内に配置される。
【0078】
システム操作例
図7は、本技術の1つ又は複数の実施形態による、図1のロボットシステムを操作する例示的な方法700のフロー図である。方法700は、対象パッケージ410を配置プラットフォーム308上に配置するための対象配置位置430を導出するためのものであることができる。方法700は、図2のプロセッサ202のうちの1つ以上によって、図2のストレージデバイス204のうちの1つ以上に格納された命令を実行することに基づいて実行されることができる。プロセッサ202は、図1の開始位置114から図1のタスク位置116でパレットに図1の対象物体112を搬送する際などに、図3Aのロボットアーム302及び/又は図3Aのエンドエフェクタ304を制御することができる。例えば、プロセッサ202は、ロボットユニット440を効率的に制御するコマンド、セッティング、及び/又は他の通信を送信して、コンポーネント/物体を操作し、それらをパレット上の対応する配置位置に配置することができる。
【0079】
ブロック702では、ロボットシステム100は、タスク位置116のパレット上への配置に指定された1つ以上の物体(例えば、図4Aの対象パッケージ410)を識別することができる。例えば、ロボットシステム100は、パッキングに利用可能である物体、インバウンド出荷内にある物体、指定された位置に到着する物体、ソースに位置している物体、配置のために指定されている物体、及び/又は注文/要求/マニフェストに列挙されている物体を識別することができる。
【0080】
また、ブロック702では、ロボットシステム100は、識別された物体を受け取り、段積みするために利用可能なパレットを識別することができる。例えば、ロボットシステム100は、識別された物体を受け取り、段積みするために利用可能な配置プラットフォーム308を識別することができる。また、ロボットシステム100は、識別された配置プラットフォーム308の特性/トレイト(例えば、カテゴリ、寸法、識別子など)を決定することができる。ロボットシステム100は、識別された物体を配置及び/又は段積みするための配置プラットフォーム308の基面を決定することもできる。ロボットシステム100は、別のシステム(例えば、輸配送ロボットシステム)とインタフェースして、図2のマスタデータ252から情報にアクセスして、及び/又は配置プラットフォーム308からリアルタイム情報を(例えば、所定の位置でセンサを介して)取得して、配置プラットフォーム308及び/又はそれらの特性を識別することができる。
【0081】
ブロック704では、ロボットシステム100は、識別された物体の物理的プロパティ(例えば、寸法、形状、異常)を(例えば、リアルタイムで生成すること、及び/又は図2のマスタデータ252からアクセスすることによって)取得することができる。例えば、ロボットシステム100は、図4Aの対象パッケージ410など、識別された物体のそれぞれの長さ、幅、及び/又は高さを表す物理的プロパティを取得することができる。ロボットシステム100は、同様の寸法(例えば、長さ及び/又は幅)に基づいて、識別された物体を1セット以上の識別された物体に群化することもできる。また、ロボットシステム100は、識別された物体のそれぞれの異常な物理的特徴に関する情報を取得することができる。一部の実施形態では、ロボットシステム100は、イメージセンサから受信した画像データ及び/又は深度測定値(例えば、クラウドポイント)に基づいて、識別された物体の物理的プロパティをリアルタイムで(例えば、注文を受信した後、及び/又は配置操作を開始する前、又はオフラインで)決定することができる。一部の実施形態では、ロボットシステム100は、異常な物体プロパティが対象パッケージ410の上への追加の段積みを妨げるかどうかを評価することができる。従って、ロボットシステム100は、この評価に基づいて段積み高さ制限530を調整することができる。
【0082】
ブロック706では、ロボットシステム100は、意図されたパッキング対象の段積み姿勢及び対応する横方向基部領域(例えば、フットプリント)を決定することができる。例えば、ロボットシステム100は、識別された物体から選択された対象パッケージ410の段積み姿勢を決定することができる。対象パッケージ410の記録された物理的寸法(例えば、長さ及び/又は幅)を使用して、ロボットシステム100は、対象パッケージ410の横方向基部領域を(例えば、意図されたパッキング対象の基面の周りに縁部の周囲長を形成することによって、及び/又はマスタデータ252に含まれる形状テンプレートを回転させることによって)形成することができる。一部の実施形態では、ロボットシステム100は、意図されたパッキング対象の横寸法(例えば、長さ及び幅)を一定値に固定することができる。従って、ロボットシステム100は、横方向基部領域を1回計算した後、意図されたパッキング対象ごとに固定された横方向基部領域を割り当てることができる。
【0083】
ブロック708では、ロボットシステム100は、意図されたパッキング物体を配置プラットフォーム308上に段積みするための配置位置430を決定することができる。例えば、ロボットシステム100は、横方向基部領域を使用して、配置プラットフォーム308の基面を1つ以上の別個の配置領域(例えば、パッケージを段積みするための配置プラットフォーム308の基面上の領域の境界)に分割し、別個の配置領域の周囲長の境界を規定することができる。別個の配置領域ごとに、ロボットシステム100は、新しい配置位置を規定し、新しい配置位置430の特性/トレイト(例えば、配置プラットフォーム308の基面に対する空間位置、寸法、高さ)を決定することができる。他の実施形態では、ロボットシステム100は、現在のタスクに対応する注文、パレット、物品セット、又はそれらの組み合わせの1つ又は複数の所定の配置位置にアクセスすることができる。
【0084】
対象パッキング物体の配置位置を決定する際に、ロボットシステム100は、距離測定値(例えば、位置及び/又は物体への近接)に基づいて各配置位置430にシーケンス識別子(例えば、識別番号)を割り当てることによって、配置位置430の候補シーケンス(例えば、段積み優先順序)を決定することができる。例えば、ロボットシステム100は、配置位置430の距離測定値を計算するための横方向(例えば、x-y平面)基準を識別することができる。いくつかの実施形態では、横方向基準は、配置プラットフォーム308及び/又は配置位置430の基面に対して横方向のロボットユニット440(例えば、ロボットアームの基部)の位置であることができる。
【0085】
ブロック722では、ロボットシステム100は、ロボットユニットからの配置位置430の距離を計算することができる。例えば、ロボットシステム100は、各配置位置430(例えば、配置領域周囲長の中心の座標)と、配置位置430及び/又は配置プラットフォーム308に対して横方向のロボットユニット440(例えば、ユニット中心座標)との間の距離を決定することができる。いくつかの実施形態では、ロボットシステム100は、ロボットユニットと配置位置430との間の分離距離を計算する際に、ロボットユニットの所定のコンフィグレーション(例えば、予め記録された位置データ)を使用することができる。
【0086】
ブロック724では、ロボットシステム100は、ロボットユニットからの配置位置430の距離に基づいて、配置位置430に対応するシーケンス識別子450を生成することができる。シーケンス識別子450(例えば、識別番号の順序)は、配置位置430の順序を表す。例えば、ロボットシステムは、大きさの降順での配置位置430の距離に基づいて、昇順でシーケンス識別子450を割り当てることができる。従って、最初の/最も低いシーケンス識別子はロボットユニットから最も遠い配置位置430に割り当てられ、最後の/最も高いシーケンス識別子はロボットユニットに最も近い配置位置430に割り当てられる。
【0087】
ブロック710では、ロボットシステム100は、意図されたパッキング対象から選択された対象パッケージ410の対象配置位置430を決定することができる。例えば、ロボットシステム100は、対象配置位置430に対応するシーケンス識別子に対象パッケージ410を割り当てることができる。ロボットシステム100は、配置プラットフォーム308上の配置位置430の特性情報/トレイト(例えば、位置、寸法、形状)を使用して、対象配置位置430を選択することができる。ロボットシステム100は、特性情報を使用して、配置位置430の現在の段積み高さと段積み高さの組み合わせとを決定することができる。現在の段積み高さ及び段積み高さの組み合わせを使用して、ロボットシステム100は、配置ルールか例外ルールかいずれかに従う配置位置430を含む候補位置を決定することができる。ロボットシステム100は、最良の候補位置のシーケンス識別子を対象パッケージ410に割り当てることによって、候補位置から最良の候補位置を対象配置位置430として選択することができる。
【0088】
ブロック726では、ロボットシステム100は、配置位置430の現在の段積み高さ(例えば、最も上に配置されたパッケージの高さ)を計算することができる。例えば、ロボットシステム100は、配置プラットフォーム308と配置位置430に配置された物体の上面との間の垂直距離を測定することによって、配置位置430の現在の段積み高さを計算することができる。ロボットシステム100は、リアルタイムでイメージセンサからの深度測定値(例えば、クラウドポイントデータ)を解析して、配置プラットフォーム308の基面と配置された物体の上面との間の垂直距離を決定するように構成されることができる。他の実施形態では、ロボットシステム100は、マスタデータ252から記録された垂直距離測定値を取得することによって、現在の段積み高さを決定することができる。追加又は代替に、ロボットシステム100は、配置位置430で識別された段積みパッケージセットの特性/トレイト(例えば、高さ測定値)を使用して、現在の段積み高さを計算することができる。
【0089】
ブロック732では、ロボットシステム100は、配置位置430で段積みパッケージセット(例えば、ロボットユニットによって以前に配置されたパッケージ)を識別して、段積みパッケージセット内の個々のパッケージの物理的寸法を決定することができる。例えば、ロボットシステム100は、追跡された履歴/ログから配置位置430の記録ログ(例えば、モーションプランシーケンス)を使用して、個々のパッケージを識別することができる。ロボットシステム100は、マスタデータ252から個々のパッケージのそれぞれの物理的プロパティ(例えば、高さ)を取得することができる。代替に、記録ログがない場合、ロボットシステム100は、イメージセンサからの深度測定値(例えば、クラウドポイント)を使用して、リアルタイムで個々のパッケージのそれぞれの高さを決定することができる。ロボットシステム100は、深度測定値を使用して、個々のパッケージのそれぞれの上面と底面との間の距離として高さを決定することができる。また、ロボットシステム100は、ロボットアーム302を使用して、個々のパッケージのそれぞれの上面及び底面を区別し、個々のパッケージを段積みパッケージセット内に置換することができる。
【0090】
ブロック734では、ロボットシステム100は、個々のパッケージの高さに基づいて合計高さ(例えば、配置位置430での段積みパッケージの現在の段積み高さ)を計算することができる。例えば、ロボットシステム100は、段積みパッケージの個々のパッケージの高さを組み合わせることによって、配置位置430の合計高さを計算することができる。配置位置430の合計高さは、配置プラットフォーム308から段積みパッケージの上面までの垂直距離を表すことができる。また、配置位置430の合計高さは、配置位置430の現在の段積み高さを表す。
【0091】
ブロック728では、ロボットシステムは、配置位置430の現在の段積み高さ及びシーケンス識別子450を使用して、対象配置位置430を選択することができる。例えば、ロボットシステム100は、現在の段積み高さ及びシーケンス識別子450を使用して、対象配置位置430として選択されることができる候補位置を識別することができる。ロボットシステム100は、配置プラットフォーム308上に対象パッケージ410を、及び又は候補位置に段積みパッケージを配置することを表す候補位置の段積み高さの組み合わせを計算することができる。候補位置の段積み高さの組み合わせと、残りの配置位置の現在の段積み高さとを使用して、ロボットシステム100は、最も高い累積段積み高さを有する候補位置を決定することができる。
【0092】
ブロック736では、ロボットシステム100は、対象配置位置430として選択されることができる配置位置430を含む候補位置を識別することができる。例えば、ロボットシステム100は、対象物体が配置されるとき、各候補位置が段積み高さ制限内の対応する結果の高さを維持する候補位置を識別することができる。追加又は代替に、結果として得られる候補位置の高さは、ロボットユニットからより遠い配置位置の現在の段積み高さ以下であるように、ロボットユニットの近くの配置位置の現在の段積み高さを維持する。他の実施形態では、ロボットシステム100は、配置ルールか例外ルールかいずれかに従う候補位置を識別することができる。
【0093】
ブロック738では、ロボットシステム100は、候補位置の段積み高さの組み合わせを計算することができる。例えば、ロボットシステム100は、対象パッケージ410の高さを候補位置の現在の段積み高さに加算することによって、候補位置の段積み高さの組み合わせを計算することができる。
【0094】
ブロック740では、ロボットシステム100は、候補位置の段積み高さの組み合わせと残りの配置位置の現在の段積み高さとを使用して対象配置位置430を決定することができる。例えば、ロボットシステム100は、対応する段積み高さの組み合わせを残りの配置位置の現在の段積み高さに加算することで、候補位置ごとに累積段積み高さを計算することによって、対象配置位置430を決定することができる。ロボットシステム100は、最も高い累積段積み高さを有する候補位置を、対象パッケージ410の対象配置位置430として選択することができる。他の実施形態では、ロボットシステム100は、候補位置の段積み高さの組み合わせを比較し、最も高い段積み高さの組み合わせを有する候補位置を選択することによって、対象配置位置430を決定することができる。ロボットシステム100は、対象配置位置430のシーケンス識別子を対象パッケージ410に割り当てることができる。
【0095】
ブロック712では、ロボットシステム100は、対象配置位置430を使用して、対象パッケージ410の段積みモーションプランを導出し、実行することができる。例えば、ロボットシステム100は、対象パッケージ410に割り当てられた対象配置位置430のシーケンス識別子を使用して、対象配置位置430の位置情報を取得することができる。いくつかの実施形態では、ロボットシステムは、位置情報を使用して、対象配置位置に対応する段積みモーションプランを導出することができる。各段積みモーションプランは、物体に対応することができ、段積みモーション経路、又は物体及び/又はロボットユニット440(例えば、ロボットアーム及び/又はエンドエフェクタ)の対応するコマンド/セッティングセットを含むことができる。段積みモーションプランは、その開始位置で物体に接近し、エンドエフェクタによって物体を把持し、物体を持ち上げてその配置位置まで搬送し、対象配置位置で物体を解放/配置するためのロボットユニット440の動作に対応することができる。一部の実施形態では、ロボットシステム100は、候補位置内の増分変化を使用して、対象物体の経路を繰り返し逆順に(例えば、配置位置から開始位置まで)導出することができる。ロボットシステム100は、衝突を回避し、走行距離、操作、リソース、及び/又は経路を導出するための他の消費パラメータを最小にする位置シーケンスを維持することができる。ロボットシステム100は、結果として得られる経路を使用して、モーションプランを導出することができる。
【0096】
ロボットシステム100は、段積みモーションプラン及び/又は対応するコマンド/セッティングのうちの1つ又は複数を対象ロボットユニット440に通信することなどによって、段積みモーションプランを実行することができる。ロボットシステムは、対象ロボットユニット440でコマンド/セッティングを実行することによって、モーションプランをさらに実行することができる。従って、ロボットシステムは、段積みモーションプランに従って開始位置からそれぞれの対象配置位置に物体を搬送するようにロボットユニット440を動作させることができる。
【0097】
ロボットシステム100は、新たな物体が開始位置で受け取られる、又は到着するたびに、上述のプロセスを繰り返すことができる。例えば、1つ又は複数のセンサ(例えば、交差点センサ、重量センサなど)は、タスクステーションへのインバウンドコンベヤのうちの1つでの新たな物体の存在を指示することができる。ロボットシステム100は、新たな物体に対応する画像データを取得し、新たな物体を検出し、又は識別し、次いで、新たな物体の対象配置位置を決定することができる。配置位置が決定されると、ロボットシステム100は、対応するモーションプランを導出し、実行して、物体を対象配置位置に搬送することができる。ロボットシステム100は、意図された物体セットがパッキングされるまで、及び/又は全ての配置位置が許容可能な最大高さに達するまで、プロセスを繰り返すことができる。
【0098】
結論
開示された技術の例の上記の発明を実施するための形態は、網羅的であること、又は開示された技術を上記に開示した正確な形態に限定することを意図するものではない。開示された技術の特定の例が例示の目的のために上記で説明されるが、当業者が認識するように、開示された技術の範囲内で様々な同等の修正が可能である。例えば、プロセス又はブロックが所与の順序で提示されているが、代替の実施態様は、異なる順序で、ステップを有するルーチンを行い得、又はブロックを有するシステムを使用し得、いくつかのプロセス又はブロックは、代替又は部分的な組み合わせを提供するために、削除、移動、追加、細分化、結合、及び/又は修正され得る。これらのプロセス又はブロックのそれぞれは、様々な方法で実施されてもよい。また、プロセス又はブロックは、時には直列に実行されるように示されているが、これらのプロセス又はブロックは、代わりに並列に実行又は実施されてもよく、又は異なる時間に実行されてもよい。さらにまた、本明細書に記載されている任意の特定の数は単なる実施例であり、代替的な実施態様では、異なる値又は範囲を使用してもよい。
【0099】
上記の発明を実施するための形態を踏まえて、開示された技術には、これらの変更及びその他の変更を加えることができる。詳細な説明は、開示された技術の特定の実施例ならびに考えられるベストモードを説明しているが、開示された技術は、上記の説明が本文にどのように詳細に記載されていても、多くの方法で実施することができる。システムの詳細は、本明細書に開示されている技術によって包含されながら、特定の実施態様ではかなり異なり得る。上述したように、開示された技術の特定の特徴又は態様を説明するときに使用される特定の用語は、その用語が関連付けられている開示された技術の特定の特性、特徴、又は態様に制限されるように、本明細書でその用語が再定義されていることを意味するものと解釈されるべきではない。したがって、本発明は、添付の特許請求の範囲によるものを除き、限定されない。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明の節でそのような用語を明示的に定義しない限り、開示された技術を本明細書で開示される特定の実施例に限定するように解釈されるべきではない。
【0100】
本発明の特定の態様は、下記の特定の特許請求の範囲の形態で提示されるが、出願人は、本発明の様々な態様を任意の数の請求項の形態において企図している。したがって、出願人は、本願又は継続出願のいずれかで、そのような追加の請求項の形態を追求するために、本願の出願後に追加の請求項を追求する権利を留保する。
図1
図2
図3A
図3B
図4A
図4B
図5A
図5B
図5C
図5D
図5E
図5F
図6A
図6B
図7
【手続補正書】
【提出日】2024-07-18
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0005
【補正方法】変更
【補正の内容】
【0005】
図1】複数位置配置制御機構を有するロボットシステムが動作し得る例示的な環境図である。
図2】本技術の1つ以上の実施形態によるロボットシステムを示すブロック図である。
図3A】本技術の1つ又は複数の実施形態によるロボットシステム図である。
図3B】本技術の1つ又は複数の実施形態によるロボットシステムの例示的なタスクステーション図である。
図4A】本技術の1つ以上の実施形態による配置位置の例示的なセグメント化図である。
図4B】本技術の1つ以上の実施形態による配置位置の例示的なセグメント化図である。
図5図5Aは本技術の1つ以上の実施形態による配置ルールの実装図である。
図6図6A~Bは本技術の1つ以上の実施形態による例示的な配置シーケンス図である。
図7】本技術の1つ又は複数の実施形態による、図1のロボットシステムを操作する例示的な第一方法のフロー図である。
【国際調査報告】