図面 (/)

技術 壁に基づくパッキング機構を有するロボットシステム及びその動作方法

出願人 株式会社MUJIN
発明者 カヌニコフ,デニスデアンコウ,ロセンニコラエフ
出願日 2020年9月23日 (11ヶ月経過) 出願番号 2020-158291
公開日 2021年5月20日 (3ヶ月経過) 公開番号 2021-075395
状態 未査定
技術分野 マニプレータ イメージ分析 車両への荷積み又は車両からの荷おろし
主要キーワード 産業用アプリケーション 残余スペース 空き面積 支持エッジ 平面セクション 事前設定位置 リアルタイム動作中 配備場所
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2021年5月20日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

様々な実世界の要因によらずタスクを完了するようにロボットの様々な側面を制御し管理するための改良された技術及びシステムへの必要性が残っている。

解決手段

ロボットシステムは、オブジェクトを互いの上にスタッキングするためのパッキングプラン導出する。ロボットシステムは、下の1つまたは複数の支持オブジェクトから張り出す1つまたは複数のオブジェクトの載置位置を導出する。導出された載置位置は、支持壁のうちの1つまたは複数を利用して載置されたオブジェクトを固定することに基づく。

概要

背景

向上し続ける性能及び低下するコストによって、多くのロボット(たとえば、物理的なアクションを自動的/自律的に実行するように構成される機械)が、現在多くの分野において広く使用されている。ロボットは、たとえば、製造及び/または組み立て、パッキング及び/またはパッケージング輸送及び/または出荷などにおける様々なタスク(たとえば、オブジェクトを操作するまたは空間を通して転置する)を実行するために使用することができる。タスクを実行する際に、ロボットは人間のアクションを再現することによって、危険または反復的なタスクを実行するのに本来必要とされる人間の関与を置き換えるまたは減らすことができる。

しかしながら、技術的進歩にもかかわらず、ロボットはより複雑な及び入り組んだタスクを実行するのに必要とされる人間の敏感性及び/または順応性を複製するのに必要な精巧さを欠いていることが多い。たとえば、ロボットは、利用可能なリソースを完全に利用するための、実行されるアクションにおける制御の粒度及び柔軟性を欠いていることが多い。また、ロボットは、様々な実世界の要因から生じ得るばらつきまたは不確実性を考慮することができない場合が多い。したがって、様々な実世界の要因によらずタスクを完了するようにロボットの様々な側面を制御し管理するための改良された技術及びシステムへの必要性が残っている。

概要

様々な実世界の要因によらずタスクを完了するようにロボットの様々な側面を制御し管理するための改良された技術及びシステムへの必要性が残っている。ロボットシステムは、オブジェクトを互いの上にスタッキングするためのパッキングプラン導出する。ロボットシステムは、下の1つまたは複数の支持オブジェクトから張り出す1つまたは複数のオブジェクトの載置位置を導出する。導出された載置位置は、支持壁のうちの1つまたは複数を利用して載置されたオブジェクトを固定することに基づく。

目的

また、たとえば、ロボットシステム100は、ブリッジアダプタプロセッサ、またはデバイス間に有線接続を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ロボットシステムを動作させるための方法であって、第1のオブジェクトモデル及び第2のオブジェクトモデルを取得することであって、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、離散化単位に従う第1のオブジェクト及び第2のオブジェクトの物理的な寸法、形状、またはそれらの組み合わせの離散化表現であり、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、タスク位置にある1つまたは複数のコンテナに載置されるように指定される前記第1のオブジェクト及び前記第2のオブジェクトを表すことと、コンテナ底部の上に延在する支持壁を有するコンテナを表すコンテナモデルアクセスすることであって、前記コンテナモデルは、前記離散化単位に従う前記コンテナの離散化表現であることと、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルを前記離散化コンテナモデルに重ねることに基づいてパッキングプラン導出することであって、前記パッキングプランは、前記第1のオブジェクトを載置するための第1の載置位置と、前記第2のオブジェクトを載置するための第2の載置位置とを含み、前記第1の載置位置は、前記支持壁に直接隣接する前記コンテナ内の位置を表し、前記第2の載置位置は、前記第1の載置位置の上の、前記コンテナ内の位置を表し、前記第2のオブジェクトの一部は、前記第1のオブジェクトの周縁を越えて前記支持壁に向かって横方向に突出し、前記第2の載置位置は、前記支持壁を利用して、前記第1のオブジェクトの上に載置された前記第2のオブジェクトを支持するためのものであることと、ロボットアーム及びエンドエフェクタを使用して、前記第1のオブジェクト及び前記第2のオブジェクトを前記コンテナ内に載置するための前記パッキングプランを実施することと、を含む、方法。

請求項2

前記第1の載置位置は、前記第1のオブジェクトを前記支持壁からオブジェクト−壁離間距離だけ離れた位置に載置するためのものであり、前記第2の載置位置は、前記第2のオブジェクトを前記第1のオブジェクトから張り出して載置するためのものである、請求項1に記載の方法。

請求項3

前記パッキングプランを導出することは、前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記候補位置に載置することに基づいて、前記候補位置に関連する1つまたは複数の属性推定することと、前記推定された属性が、オブジェクトを垂直な向きのコンテナ部分寄りかからせて、直接接触させて載置するための1つまたは複数の要件を表す壁支持ルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項1に記載の方法。

請求項4

前記1つまたは複数の属性を推定することは、前記第1のオブジェクトモデルに重なる前記第2のオブジェクトモデルの部分に基づいて実効支持を計算することを含み、前記候補位置を有効化することは、前記実効支持が重なり要件を満たすと判定することを含む、請求項3に記載の方法。

請求項5

前記1つまたは複数の属性を推定することは、前記第1のオブジェクトモデルから張り出している前記第2のオブジェクトモデルの部分の張り出し寸法を推定することを含み、前記候補位置を有効化することは、前記張り出し寸法が張り出し要件を満たすと判定することを含む、請求項3に記載の方法。

請求項6

前記1つまたは複数の属性を推定することは、前記第2のオブジェクトの重心(CoM)に対応するCoM位置を推定することを含み、前記候補位置を有効化することは、前記CoM位置がCoMオフセット要件を満たすと判定することを含む、請求項3に記載の方法。

請求項7

前記パッキングプランを導出することは、前記支持壁から離れて前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記候補位置に載置することに基づいて、前記候補位置に関連するピボット位置を推定することであって、前記ピボット位置は前記第1のオブジェクトの周縁または最高部を表すことと、前記第2のオブジェクトモデルを前記支持壁に向かってずらし、及び/または前記ピボット位置を中心に前記第2のオブジェクトモデルを回転させることに基づいて、1つまたは複数のずれた姿勢を導出することであって、前記1つまたは複数のずれた姿勢は、前記第2のオブジェクトが、前記候補位置からずれており、前記支持壁に直接接触していることを表すことと、前記1つまたは複数のずれた姿勢が、垂直な向きのコンテナ部分から横方向に離れてオブジェクトを載置するための1つまたは複数の要件を表す傾き支持ルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項1に記載の方法。

請求項8

前記パッキングプランを導出することは、前記第1のオブジェクトから張り出している中間オブジェクトから張り出して前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記中間オブジェクトの位置の上の前記候補位置に載置することに基づいて、前記候補位置に関連する1つまたは複数の属性を推定することと、前記推定された属性が、一番下の支持オブジェクトから張り出して複数のオブジェクトを載置するための1つまたは複数の要件を表す複数張り出しルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項1に記載の方法。

請求項9

前記1つまたは複数の属性を推定することは、前記第1のオブジェクトモデルに重なる前記第2のオブジェクトモデルの部分に基づいて実効支持を計算することを含み、前記候補位置を有効化することは、前記実効支持が重なり要件を満たすと判定することを含む、請求項8に記載の方法。

請求項10

前記1つまたは複数の属性を推定することは、前記第2のオブジェクト及び前記中間オブジェクトを1つのオブジェクトとして表す結合オブジェクト推定を導出することと、前記結合オブジェクト推定の前記1つまたは複数の属性を推定することと、を含み、前記候補位置を有効化することは、前記1つまたは複数の属性が壁支持ルールまたは傾き支持ルールを満たすと判定することを含む、請求項8に記載の方法。

請求項11

前記タスク位置にあるコンテナ内に載置されるように指定されるオブジェクトに対してオブジェクトグループを決定することと、前記オブジェクトグループの処理順序を導出することと、をさらに含み、前記パッキングプランを導出することは、前記処理順序及び前記オブジェクトグループに基づいて前記パッキングプランを導出することを含む、請求項1に記載の方法。

請求項12

前記パッキングプランが、パッキング動作の間または直前に動的に導出される、請求項1に記載の方法。

請求項13

前記タスク位置にある前記コンテナを表す画像データを取得することと、前記画像データを分析することに基づいて想定外の特徴を検出することであって、前記想定外の特徴は、想定される状況から外れた前記支持壁の実際の物理的特質を表すことと、をさらに含み、前記パッキングプランを導出することは、前記想定外の特徴に基づいて前記パッキングプランを動的に導出することを含み、前記パッキングプランは、前記想定される状況に従って前記第1のオブジェクト及び前記第2のオブジェクトを前記コンテナ内に載置するための先行プランを置き換えるためのものである、請求項12に記載の方法。

請求項14

前記エンドエフェクタを表すグリッパモデルを取得することと、前記第2のオブジェクトを載置するための1つまたは複数の潜在的な障害物識別することであって、前記1つまたは複数の潜在的な障害物は前記コンテナの垂直な向きの部分を含むことと、をさらに含み、前記パッキングプランを導出することは、前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記グリッパモデルと前記第2のオブジェクトモデルとの組み合わせを前記コンテナモデルに重ねることに基づいて進入路を導出することであって、前記進入路は、前記エンドエフェクタが前記第2のオブジェクトを開始位置から前記候補位置に転置するための位置のシーケンスを表すことと、前記グリッパモデルと前記第2のオブジェクトモデルとの前記組み合わせが、前記進入路に沿って、前記1つまたは複数の潜在的な障害物を回避する場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項1に記載の方法。

請求項15

前記進入路を導出することは、前記エンドエフェクタが前記第2のオブジェクトを把持していることを表す係合状態インターフェース高に応じて、前記グリッパモデルと前記第2のオブジェクトモデルとの前記組み合わせを調整することと、初期高さの横方向延レーンを識別することであって、前記横方向延在レーンは、前記グリッパモデルと前記第2のオブジェクトモデルとの前記調整された組み合わせを横方向に移動させることに対応することと、前記横方向延在レーンが、先行オブジェクト及び/または前記垂直な向きの部分を含む前記1つまたは複数の潜在的な障害物と重なるか否かを判定することと、前記進入路に沿った前記第2のオブジェクトの転置を逆順シミュレートするために、前記横方向延在レーンが前記1つまたは複数の潜在的な障害物をクリアするまで、進入増分に従って前記横方向延在レーンの高さを反復的に増加させることと、を含む、請求項14に記載の方法。

請求項16

回路によってデータを通信するように構成される通信デバイスと、前記通信デバイスに結合される少なくとも1つのプロセッサと、を備えるロボットシステムであって、前記少なくとも1つのプロセッサは、前記通信されるデータに少なくとも部分的に基づいて、第1のオブジェクトモデル及び第2のオブジェクトモデルを取得することであって、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、離散化単位に従う第1のオブジェクト及び第2のオブジェクトの物理的な寸法、形状、またはそれらの組み合わせの離散化表現であり、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、タスク位置にある1つまたは複数のコンテナに載置されるように指定される前記第1のオブジェクト及び前記第2のオブジェクトを表すことと、コンテナ底部の上に延在する支持壁を有するコンテナを表すコンテナモデルにアクセスすることであって、前記コンテナモデルは、前記離散化単位に従う前記コンテナの離散化表現であることと、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルを前記離散化コンテナモデルに重ねることに基づいてパッキングプランを導出することであって、前記パッキングプランは、前記第1のオブジェクトを載置するための第1の載置位置と、前記第2のオブジェクトを載置するための第2の載置位置とを含み、前記第1の載置位置は、前記支持壁に直接隣接する前記コンテナ内の位置を表し、前記第2の載置位置は、前記第1の載置位置の上の、前記コンテナ内の位置を表し、前記第2のオブジェクトの一部は、前記第1のオブジェクトの周縁を越えて前記支持壁に向かって横方向に突出し、前記第2の載置位置は、前記支持壁を利用して、前記第1のオブジェクトの上に載置された前記第2のオブジェクトを支持するためのものであることと、ロボットアーム及びエンドエフェクタを使用して、前記第1のオブジェクト及び前記第2のオブジェクトを前記コンテナ内に載置するための前記パッキングプランを実施することと、を行うためのものである、ロボットシステム。

請求項17

1つまたは複数のプロセッサによって実行された場合に、前記1つまたは複数のプロセッサに方法を実施させるプロセッサ命令が記憶された有形非一時的コンピュータ可読媒体であって、前記方法は、第1のオブジェクトモデル及び第2のオブジェクトモデルを取得することであって、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、離散化単位に従う第1のオブジェクト及び第2のオブジェクトの物理的な寸法、形状、またはそれらの組み合わせの離散化表現であり、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルはそれぞれ、タスク位置にある1つまたは複数のコンテナに載置されるように指定される前記第1のオブジェクト及び前記第2のオブジェクトを表すことと、コンテナ底部の上に延在する支持壁を有するコンテナを表すコンテナモデルにアクセスすることであって、前記コンテナモデルは、前記離散化単位に従う前記コンテナの離散化表現であることと、前記第1のオブジェクトモデル及び前記第2のオブジェクトモデルを前記離散化コンテナモデルに重ねることに基づいてパッキングプランを導出することであって、前記パッキングプランは、前記第1のオブジェクトを載置するための第1の載置位置と、前記第2のオブジェクトを載置するための第2の載置位置とを含み、前記第1の載置位置は、前記支持壁に直接隣接する前記コンテナ内の位置を表し、前記第2の載置位置は、前記第1の載置位置の上の、前記コンテナ内の位置を表し、前記第2のオブジェクトの一部は、前記第1のオブジェクトの周縁を越えて前記支持壁に向かって横方向に突出し、前記第2の載置位置は、前記支持壁を利用して、前記第1のオブジェクトの上に載置された前記第2のオブジェクトを支持するためのものであることと、ロボットアーム及びエンドエフェクタを使用して、前記第1のオブジェクト及び前記第2のオブジェクトを前記コンテナ内に載置するための前記パッキングプランを実施することと、を含む、有形非一時的コンピュータ可読媒体。

請求項18

前記パッキングプランを導出することは、前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記候補位置に載置することに基づいて、前記候補位置に関連する1つまたは複数の属性を推定することと、前記推定された属性が、オブジェクトを垂直な向きのコンテナ部分に寄りかからせて、直接接触させて載置するための1つまたは複数の要件を表す壁支持ルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項16に記載の有形非一時的コンピュータ可読媒体。

請求項19

前記パッキングプランを導出することは、前記支持壁から離れて前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記候補位置に載置することに基づいて、前記候補位置に関連するピボット位置を推定することであって、前記ピボット位置は前記第1のオブジェクトの周縁または最高部を表すことと、前記第2のモデルを前記支持壁に向かってずらし、及び/または前記ピボット位置を中心に前記第2のモデルを回転させることに基づいて、1つまたは複数のずれた姿勢を導出することであって、前記1つまたは複数のずれた姿勢は、前記第2のオブジェクトが、前記候補位置からずれており、前記支持壁に直接接触していることを表すことと、前記1つまたは複数のずれた姿勢が、垂直な向きのコンテナ部分から横方向に離れてオブジェクトを載置するための1つまたは複数の要件を表す傾き支持ルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項17に記載の有形非一時的コンピュータ可読媒体。

請求項20

前記パッキングプランを導出することは、前記第1のオブジェクトから張り出している中間オブジェクトから張り出して前記第2のオブジェクトを載置するための前記離散化コンテナモデル内の候補位置を導出することと、前記第1のオブジェクトモデルを前記第1の載置位置に載置し、前記第2のオブジェクトモデルを前記中間オブジェクトの位置の上の前記候補位置に載置することに基づいて、前記候補位置に関連する1つまたは複数の属性を推定することと、前記推定された属性が、一番下の支持オブジェクトから張り出して複数のオブジェクトを載置するための1つまたは複数の要件を表す複数張り出しルールを満たす場合に、前記候補位置を前記第2の載置位置として有効化することと、を含む、請求項17の有形非一時的コンピュータ可読媒体。

技術分野

0001

関連出願の相互参照
本出願は、2019年11月19日に出願された米国仮特許出願第62/931,161号の利益を主張し、その全体が引用により本明細書に組み込まれている。

0002

本技術は、一般にはロボットシステムを対象とし、より詳細には、オブジェクトコンテナ内にパッキングするためのシステム、処理及び技術を対象とする。

背景技術

0003

向上し続ける性能及び低下するコストによって、多くのロボット(たとえば、物理的なアクションを自動的/自律的に実行するように構成される機械)が、現在多くの分野において広く使用されている。ロボットは、たとえば、製造及び/または組み立て、パッキング及び/またはパッケージング輸送及び/または出荷などにおける様々なタスク(たとえば、オブジェクトを操作するまたは空間を通して転置する)を実行するために使用することができる。タスクを実行する際に、ロボットは人間のアクションを再現することによって、危険または反復的なタスクを実行するのに本来必要とされる人間の関与を置き換えるまたは減らすことができる。

0004

しかしながら、技術的進歩にもかかわらず、ロボットはより複雑な及び入り組んだタスクを実行するのに必要とされる人間の敏感性及び/または順応性を複製するのに必要な精巧さを欠いていることが多い。たとえば、ロボットは、利用可能なリソースを完全に利用するための、実行されるアクションにおける制御の粒度及び柔軟性を欠いていることが多い。また、ロボットは、様々な実世界の要因から生じ得るばらつきまたは不確実性を考慮することができない場合が多い。したがって、様々な実世界の要因によらずタスクを完了するようにロボットの様々な側面を制御し管理するための改良された技術及びシステムへの必要性が残っている。

図面の簡単な説明

0005

壁に基づくパッキング機構を有するロボットシステムが動作し得る例示的な環境の図である。
本技術の1つまたは複数の実施形態によるロボットシステムを示すブロック図である。
本技術の1つまたは複数の実施形態によるロボットシステムの図である。
本技術の1つまたは複数の実施形態による例示的なオブジェクトコンテナの図である。
本技術の1つまたは複数の実施形態による例示的なオブジェクトコンテナの図である。
本技術の1つまたは複数の実施形態による例示的なオブジェクトコンテナの図である。
本技術の1つまたは複数の実施形態による例示的なオブジェクトコンテナの図である。
本技術の1つまたは複数の実施形態による例示的なエンドエフェクタの図である。
本技術の1つまたは複数の実施形態による例示的なエンドエフェクタの図である。
本技術の1つまたは複数の実施形態による例示的なエンドエフェクタの図である。
本技術の1つまたは複数の実施形態によるパッキングコンポーネントの例示的な離散化モデルの図である。
本技術の1つまたは複数の実施形態による例示的なパッキングプランの図である。
本技術の1つまたは複数の実施形態による載置計画処理の図である。
本技術の1つまたは複数の実施形態による載置ルールの図である。
本技術の1つまたは複数の実施形態による支持の計算の様々な態様の図である。
本技術の1つまたは複数の実施形態による支持の計算の様々な態様の図である。
本技術の1つまたは複数の実施形態による例示的なモーションプラン計算の例示した態様の図である。
本技術の1つまたは複数の実施形態による例示的なモーションプラン計算の例示した態様の図である。
本技術の1つまたは複数の実施形態による例示的なモーションプラン計算の例示した態様の図である。
本技術の1つまたは複数の実施形態による例示的なリアルタイムセンサデータの図である。
本技術の1つまたは複数の実施形態による、図1のロボットシステムを動作させる第1の例示的な方法の流れ図である。
本技術の1つまたは複数の実施形態による、図1のロボットシステムを動作させる第2の例示的な方法の流れ図である。

実施例

0006

本明細書では、壁に基づくパッキング機構を有するロボットシステムのためのシステム及び方法を説明する。いくつかの実施形態に従って構成されるロボットシステム(たとえば、1つまたは複数の指定タスクを実行するデバイス統合システム)は、コンテナ壁に関してオブジェクト(たとえば、パッケージボックスケースなど)をパッキングすることによって、制御、有用性、及び柔軟性を向上させる。たとえば、ロボットシステムは、オブジェクトをレイヤ状にスタックして、ベースレイヤの上の1つまたは複数のオブジェクトが、(1)1つまたは複数のコンテナ壁に接触するかまたは寄りかかる、及び/または(2)コンテナ壁に最も近い1つまたは複数のベースレイヤオブジェクト(複数可から張り出す(たとえば、それらの周縁(複数可)から横方向に突出する)ようにすることができる。

0007

ロボットシステムは、様々なパッキングコンポーネントを離散化することに基づいて、コンテナ壁(たとえば、カートケージビン、ボックスなどの垂直な向きの壁または仕切り)に関してオブジェクトをパッキングすることができる。パッキングコンポーネントのいくつかの例は、オブジェクト(たとえば、登録されたまたは想定されるオブジェクト及び/または認識されないオブジェクト)、オブジェクトを受け取るように構成されるコンテナまたはパッキング台、及び/またはロボット式マニピュレータ(たとえば、エンドエフェクタ、ロボットアーム、それらの一部、またはそれらの組み合わせ)を含むことができる。ロボットシステムは、パッキングコンポーネントの離散化モデルを生成することができる。

0008

離散化モデルを使用して、ロボットシステムは、コンテナ内のオブジェクトの載置位置を決めるパッキングプランを導出することができる。パッキングプランは、オブジェクトを互いの上に(たとえば、レイヤ状に)スタックする載置位置を含むことができる。ロボットシステムは、オブジェクト間及び/またはオブジェクトとコンテナ壁との間の離間距離張り出し距離またはその一部、他のオブジェクト−オブジェクト間の測定値、及び/または他のオブジェクト−コンテナ間の測定値を計算/推定することができる。計算に基づいて、ロボットシステムは、載置されたオブジェクトがコンテナ壁に接触する/寄りかかる、及び/または下の1つまたは複数のオブジェクトから張り出す載置位置を有するパッキングプランを導出することができる。いくつかの実施形態では、ロボットシステムは、オブジェクトの重心(CoM)位置、回転点、質量/重量、寸法、及び/または他の物理的特質を導出及び利用して、パッキングプランを導出することができる。

0009

いくつかの実施形態では、ロボットシステムは、パッキングプランに対応するモーションプランを導出することができる。各モーションプランはオブジェクトに対応し、モーション経路、あるいはオブジェクト及び/またはロボットユニット(たとえば、ロボットアーム及び/またはエンドエフェクタ)に対する対応するコマンド/設定のセットを含むことができる。モーションプランは、開始位置にあるオブジェクトに近づき、オブジェクトをエンドエフェクタで把持し、オブジェクトを持ち上げてその載置位置まで移動させ、オブジェクトを載置位置で放す/載置するためのロボットユニットの動作に対応することができる。

0010

ロボットシステムは、モーションプラン及び/または対応するコマンド/設定のうちの1つまたは複数を対象ロボットユニットに伝達することなどにより、パッキングプランを実施することができる。ロボットシステムはさらに、対象ロボットユニットにおいてコマンド/設定を実行することにより、パッキングプランを実施することができる。したがって、ロボットシステムは、パッキングプランに従ってオブジェクトを開始位置からそれぞれの載置位置まで転置するようにロボットユニットを動作させることができる。

0011

ロボットシステムは、たとえば、想定外の状況(たとえば、コンテナ異常)を考慮して、パッキングプランを動的に調整するように構成することができる。たとえば、コンテナ(たとえば、壁が2つのカート及び/または壁が3つのケージ)は垂直な向きの壁を含み得、これは変形し、曲がり、位置ずれし、部分的に閉じられ、及び/または想定される状況とは別の方法で物理的に異なり得る。そのような想定外の状況は、コンテナ内の載置エリア、及び/または載置エリアへの進入路に影響し得る。ロボットシステムは、そのような想定外の状況を検出し、パッキングプランを動的に調整することができる。以下で詳細に説明するように、ロボットシステムは、離散化モデルを使用して、軸平行バウンディングボックス(AABB:axis aligned bounding box)を決定し、AABBをオフセットし、及び/またはオフセットされたAABBを有効性確認することができる。また、動的な調整に基づいて、ロボットシステムは、想定外の状況を考慮するようにモーションプランを更新することができる。いくつかの実施形態では、ロボットシステムは、調整されたオブジェクト載置位置から開始し、開始位置まで段階的に後退して、モーションプランを決定することができる。ロボットシステムは、逆トレース経路に沿ってエンドエフェクタの離散化モデルを載置して、モーションプランを更新及び/または有効性確認することができる。

0012

以下の説明では、本開示技術の完全な理解を提供するために、多数の具体的な詳細を記載している。他の実施形態では、本明細書で紹介する技術は、これらの具体的な詳細がなくとも実践することができる。他の例では、よく知られている特徴、たとえば、特定の関数またはルーチンについては、本開示を不必要に不明瞭にしないように、詳細には説明していない。本明細書における「実施形態」、「一実施形態」などへの言及は、説明している特定の特徴、構造、材料、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような文言出現は、必ずしも全てが同一の実施形態を指すものではない。一方、そのような言及は、必ずしも相互に排他的ではない。さらに、特定の特徴、構造、材料、または特性は、1つまたは複数の実施形態において任意の好適な方法で組み合わせることができる。図面に示す様々な実施形態は説明のための表現にすぎず、必ずしも縮尺通りに描いていないことを理解されたい。

0013

よく知られており、ロボットシステム及びサブシステムに関連付けられることが多いが、開示した技術のいくつかの重要な側面を不必要に不明瞭にし得る、構造または処理を説明する一部の詳細については、明瞭にするために以下の説明には記載していない。また、以下の開示では本技術の異なる態様のいくつかの実施形態を記載しているが、いくつかの他の実施形態は、このセクションに記載したものとは異なる構成または異なるコンポーネントを有し得る。したがって、開示した技術は、追加の要素を有し、後述の要素の一部を有さない他の実施形態を有し得る。

0014

以下で説明する本開示の多くの実施形態または態様は、プログラム可能コンピュータまたはプロセッサによって実行されるルーチンを含むコンピュータ実行可能命令またはプロセッサ実行可能命令の形態をとり得る。当業者であれば、開示した技術が以下に図示及び説明した以外のコンピュータまたはプロセッサシステム上で実践され得ることを理解するであろう。本明細書に記載の技術は、後述のコンピュータ実行可能命令のうちの1つまたは複数を実行するように特別にプログラムされ、構成され、または構築された専用コンピュータまたはデータプロセッサにおいて実施することができる。したがって、本明細書で一般的に使用される「コンピュータ」及び「プロセッサ」という用語は、任意のデータプロセッサを指し、インターネット機器及びハンドヘルドデバイス(たとえば、パームトップコンピュータウェアラブルコンピュータセルラーまたはモバイル電話マルチプロセッサシステムプロセッサベースまたはプログラム可能コンシューマ電子機器ネットワークコンピュータミニコンピュータなど)を含むことができる。これらのコンピュータ及びプロセッサによって扱われる情報は、任意の好適な表示媒体、たとえば、液晶ディスプレイ(LCD)に提示することができる。コンピュータ実行可能タスクまたはプロセッサ実行可能タスクを実行するための命令は、ハードウェアファームウェア、またはハードウェア及びファームウェアの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、またはその媒体上に記憶することができる。命令は、たとえば、フラッシュドライブ及び/または他の好適な媒体を含む任意の好適なメモリデバイスに含めることができる。

0015

「結合される」及び「接続される」という用語、ならびにこれらの派生形は、本明細書においてコンポーネント間構造関係記述するために使用され得る。これらの用語が互いに同義語であることが意図されていないことを理解されたい。むしろ、特定の実施形態では、「接続される」は、2つ以上の要素が互いに直接接していることを示すために使用され得る。文脈において別途明記していない限り、「結合される」という用語は、2つ以上の要素が互いに直接的にもしくは間接的に(間に他の介在要素を介して)接していること、または2つ以上の要素が(たとえば、信号の送受信もしくは関数呼び出しなどのための因果関係のように)互いに協力または相互作用すること、あるいはその両方を示すために使用され得る。

0016

好適な環境
図1は、壁に基づくパッキング機構を有するロボットシステム100が動作し得る例示的な環境の図である。ロボットシステム100は、1つまたは複数のタスクを実行するように構成される1つまたは複数のユニット(たとえば、ロボット)を含む及び/またはこれらと通信することができる。壁に基づくパッキング機構の態様は、様々なユニットによって実践または実装することができる。

0017

図1に示す例では、ロボットシステム100は、倉庫または流通出荷拠点における、荷下ろしユニット102、転置ユニット104(たとえば、パレタイズロボット及び/またはピースピッカーロボット)、輸送ユニット106、積載ユニット108、またはそれらの組み合わせを含むことができる。ロボットシステム100内の各ユニットは、1つまたは複数のタスクを実行するように構成することができる。タスクを順番に組み合わせて目標を達成する動作を行うことができ、たとえば、トラックもしくはバンからオブジェクトを荷下ろしし、倉庫に保管する、または保管位置からオブジェクトを荷下ろしし、出荷準備することができる。他の例では、タスクは、オブジェクトを目標場所に(たとえば、パレットの上、及び/またはビン/ケージ/ボックス/ケースの中に)載置することを含むことができる。後述のように、ロボットシステムは、オブジェクトを載置及び/またはスタックするためのプラン(たとえば、載置位置/向き、オブジェクトを転置するためのシーケンス、及び/または対応するモーションプラン)を導出することができる。各ユニットは、導出されたプランのうちの1つまたは複数に従ってアクションのシーケンスを実行して(たとえば、その中の1つまたは複数のコンポーネントを動作させることによって)タスクを実行するように構成することができる。

0018

いくつかの実施形態では、タスクは、開始位置114からタスク位置116までの対象オブジェクト112(たとえば、実行しているタスクに対応するパッケージ、ボックス、ケース、ケージ、パレットなどのうちの1つ)の操作(たとえば、移動及び/または向き変更)を含むことができる。たとえば、荷下ろしユニット102(たとえば、デバンニングロボット)は、対象オブジェクト112をキャリア(たとえば、トラック)内の位置からコンベヤベルト上の位置に転置するように構成することができる。また、転置ユニット104は、対象オブジェクト112をある位置(たとえば、コンベヤベルト、パレット、またはビン)から他の位置(たとえば、パレット、ビンなど)に転置するように構成することができる。他の例では、転置ユニット104(たとえば、パレタイズロボット)は、対象オブジェクト112をソース位置(たとえば、パレット、拾得エリア、及び/またはコンベヤ)から目的地パレットに転置するように構成することができる。動作を完了する際に、輸送ユニット106は、対象オブジェクト112を転置ユニット104に関連付けられたエリアから積載ユニット108に関連付けられたエリアに転置することができ、積載ユニット108は、対象オブジェクト112を(たとえば、対象オブジェクト112を運ぶパレットを移動させることによって)転置ユニット104から保管位置(たとえば、上の位置)に転置することができる。タスク及び関連するアクションに関する詳細については後述する。

0019

例示の目的で、ロボットシステム100は出荷センターの状況で説明しているが、ロボットシステム100は、他の環境/他の目的での、たとえば、製造、組み立て、パッケージング、ヘルスケア、及び/または他のタイプの自動化のためのタスクを実行するように構成できることを理解されたい。また、ロボットシステム100は、図1に示していない他のユニット、たとえば、マニピュレータ、サービスロボットモジュール式ロボットなどを含むことができることも理解されたい。たとえば、いくつかの実施形態では、ロボットシステム100は、オブジェクトをケージカートまたはパレットからコンベヤまたは他のパレット上に転置するためのデパレタイズユニット、あるコンテナから他のコンテナにオブジェクトを転置するためのコンテナ切替ユニット、オブジェクトを包装するためのパッケージングユニット、オブジェクトをそれらの1つまたは複数の特性に応じてグループ化するためのソーティングユニット、オブジェクトをそれらの1つまたは複数の特性に応じて異なって操作するための(たとえば、ソートする、グループ化する、及び/または転置するための)ピースピッキングユニット、あるいはそれらの組み合わせを含むことができる。

0020

ロボットシステム100は、動き(たとえば、回転変位及び/または並進変位)のために関節において接続された物理的な部材または構造部材(たとえば、ロボット式マニピュレータアーム)を含み、及び/またはこれらに結合することができる。構造部材及び関節は、ロボットシステム100の用途/動作に応じて1つまたは複数のタスク(たとえば、把持、回転、接合など)を実行するように構成されるエンドエフェクタ(たとえば、グリッパ)を操作するように構成される運動連鎖を形成することができる。ロボットシステム100は、対応する関節周りでまたはその位置で構造部材を駆動または操作する(たとえば、変位させる及び/または向き変更する)ように構成されるアクチュエーションデバイス(たとえば、モータアクチュエータワイヤ人工筋肉電気活性ポリマーなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシをある場所から他の場所へ輸送するように構成される輸送モータを含むことができる。

0021

ロボットシステム100は、たとえば、構造部材を操作する及び/またはロボットユニットを輸送するためのタスクを実施するために使用される情報を取得するように構成されるセンサを含むことができる。センサは、ロボットシステム100の1つまたは複数の物理的な特性(たとえば、1つまたは複数の構造部材/その関節の状態、状況、及び/または位置)、及び/または周辺環境を検出または測定するように構成されるデバイスを含むことができる。センサのいくつかの例は、加速度計ジャイロスコープ力センサひずみゲージ触覚センサトルクセンサ位置エンコーダなどを含むことができる。

0022

いくつかの実施形態では、たとえば、センサは、周辺環境を検出するように構成される1つまたは複数の撮像デバイス(たとえば、視覚及び/または赤外線カメラ、2D及び/または3D撮像カメラ距離測定デバイス、たとえば、ライダーまたはレーダーなど)を含むことができる。撮像デバイスは、マシンコンピュータビジョン(たとえば、自動検査、ロボット案内、または他のロボットアプリケーションのためのもの)を介して処理され得るデジタル画像及び/または点群などの、検出された環境の表現を生成することができる。以下でより詳細に説明するように、ロボットシステム100は、デジタル画像及び/または点群を処理して、対象オブジェクト112、開始位置114、タスク位置116、対象オブジェクト112の姿勢、開始位置114及び/または姿勢に関する信頼基準、あるいはそれらの組み合わせを識別することができる。

0023

対象オブジェクト112を操作するために、ロボットシステム100は、指定領域(たとえば、トラック内またはコンベヤベルト上などの拾得位置)の画像を撮影分析して、対象オブジェクト112及びその開始位置114を識別することができる。同様に、ロボットシステム100は、他の指定領域(たとえば、オブジェクトをコンベヤ上に載置するための降下位置、オブジェクトをコンテナ内に載置するための位置、またはスタッキング目的のパレット上の位置)の画像を撮影し分析して、タスク位置116を識別することができる。たとえば、撮像デバイスは、拾得エリアの画像を生成するように構成される1つまたは複数のカメラ、及び/またはタスクエリア(たとえば、降下エリア)の画像を生成するように構成される1つまたは複数のカメラを含むことができる。撮影画像に基づいて、後述のように、ロボットシステム100は、開始位置114、タスク位置116、関連する姿勢、パッキング/載置プラン、転置/パッキングシーケンス、及び/または他の処理結果を決定することができる。

0024

いくつかの実施形態では、たとえば、センサは、ロボットシステム100の構造部材(たとえば、ロボットアーム及び/またはエンドエフェクタ)及び/または対応する関節の位置を検出するように構成される位置センサ(たとえば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサを使用して、タスクの実行中に構造部材及び/または関節の位置及び/または向きを追跡することができる。

0025

好適なシステム
図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など)、及び/または他の無線通信プロトコルに基づくことができる。

0026

プロセッサ202は、記憶デバイス204(たとえば、コンピュータメモリ)に記憶された命令(たとえばソフトウェア命令)を実行するように構成されるデータプロセッサ(たとえば、中央処理装置(CPU)、専用コンピュータ、及び/またはオンボードサーバ)を含むことができる。いくつかの実施形態では、プロセッサ202は、図2に示す他の電子/電気デバイス及び/または図1に示すロボットユニットに動作可能に結合される独立した/スタンドアローンコントローラに含めることができる。プロセッサ202は、他のデバイスを制御して/インターフェースをとって、ロボットシステム100にアクション、タスク、及び/または動作を実行させるプログラム命令を実施することができる。

0027

記憶デバイス204は、プログラム命令(たとえば、ソフトウェア)が記憶された非一時的コンピュータ可読媒体を含むことができる。記憶デバイス204のいくつかの例は、揮発性メモリ(たとえば、キャッシュ及び/またはランダムアクセスメモリ(RAM))、及び/または不揮発性メモリ(たとえば、フラッシュメモリ及び/または磁気ディスクドライブ)を含むことができる。記憶デバイス204の他の例は、ポータブルメモリドライブ及び/またはクラウドストレージデバイスを含むことができる。

0028

いくつかの実施形態では、記憶デバイス204を使用して、さらに処理結果及び/または所定のデータ/閾値を記憶し、これらへのアクセスを提供することができる。たとえば、記憶デバイス204は、ロボットシステム100によって操作され得るオブジェクト(たとえば、ボックス、ケース、及び/または製品)の説明を含むマスターデータ252を記憶することができる。1つまたは複数の実施形態では、マスターデータ252は、そのようなオブジェクトごとに登録データ254を含むことができる。登録データ254は、ロボットシステム100によって操作されると想定されるオブジェクトについての寸法、形状(たとえば、可能な姿勢についてのテンプレート及び/または異なる姿勢のオブジェクトを認識するためのコンピュータ生成モデル)、色彩設計、画像、識別情報(たとえば、バーコードクイックレスポンス(QR)コード(登録商標)、ロゴなど、及び/またはその想定位置)、想定重量、他の物理的/視覚的特性、あるいはそれらの組み合わせを含むことができる。いくつかの実施形態では、マスターデータ252は、オブジェクトに関する操作関連情報、たとえば、各オブジェクトの重心(CoM)位置またはその推定値、1つまたは複数のアクション/手順に対応する想定されるセンサ測定値(たとえば、力、トルク、圧力、及び/または接触測定値に関するもの)、あるいはそれらの組み合わせを含むことができる。

0029

通信デバイス206は、ネットワークを介して外部または遠隔のデバイスと通信するように構成される回路を含むことができる。たとえば、通信デバイス206は、受信器送信器変調器復調器モデム)、信号検出器信号符号化器/復号器コネクタポートネットワークカードなどを含むことができる。通信デバイス206は、1つまたは複数の通信プロトコル(たとえば、インターネットプロトコロル(IP)、無線通信プロトコルなど)に従って電気信号を送信、受信、及び/または処理するように構成することができる。いくつかの実施形態では、ロボットシステム100は通信デバイス206を使用して、ロボットシステム100のユニット間で情報を交換する、及び/または(たとえば、報告データ収集、分析、及び/またはトラブルシューティングの目的で)ロボットシステム100の外部のシステムまたはデバイスと情報を交換することができる。

0030

入出力デバイス208は、人間のオペレータとの間で情報を伝達及び/または受信するように構成されるユーザインターフェースデバイスを含むことができる。たとえば、入出力デバイス208は、情報を人間のオペレータに伝達するためのディスプレイ210及び/または他の出力デバイス(たとえば、スピーカーハプティックス回路、または触覚フィードバックデバイスなど)を含むことができる。また、入出力デバイス208は、制御デバイスまたは受信デバイス、たとえば、キーボードマウスタッチスクリーンマイクロフォンユーザインターフェース(UI)センサ(たとえば、モーションコマンドを受信するためのカメラ)、ウェアラブル入力デバイスなどを含むことができる。いくつかの実施形態では、ロボットシステム100は、入出力デバイス208を使用して、アクション、タスク、動作、またはそれらの組み合わせを実行する際に人間のオペレータと対話することができる。

0031

ロボットシステム100は、動き(たとえば、回転変位及び/または並進変位)のために関節において接続された物理的な部材または構造部材(たとえば、ロボット式マニピュレータアーム)を含むことができる。構造部材及び関節は、ロボットシステム100の用途/動作に応じて1つまたは複数のタスク(たとえば、把持、回転、接合など)を実行するように構成されるエンドエフェクタ(たとえば、グリッパ)を操作するように構成される運動連鎖を形成することができる。ロボットシステム100は、対応する関節周りでまたはその位置で構造部材を駆動または操作する(たとえば、変位させる及び/または向き変更する)ように構成されるアクチュエーションデバイス212(たとえば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど)を含むことができる。いくつかの実施形態では、ロボットシステム100は、対応するユニット/シャーシをある場所から他の場所へ輸送するように構成される輸送モータ214を含むことができる。

0032

ロボットシステム100は、たとえば、構造部材を操作する及び/またはロボットユニットを輸送するためのタスクを実施するために使用される情報を取得するように構成されるセンサ216を含むことができる。センサ216は、ロボットシステム100の1つまたは複数の物理的な特性(たとえば、1つまたは複数の構造部材/その関節の状態、条件、及び/または位置)、及び/または周辺環境を検出または測定するように構成されるデバイスを含むことができる。センサ216のいくつかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダなどを含むことができる。

0033

いくつかの実施形態では、たとえば、センサ216は、周辺環境を検出するように構成される1つまたは複数の撮像デバイス222(たとえば、視覚及び/または赤外線カメラ、2D及び/または3D撮像カメラ、距離測定デバイス、たとえば、ライダーまたはレーダーなど)を含むことができる。撮像デバイス222は、マシン/コンピュータビジョン(たとえば、自動検査、ロボット案内、または他のロボットアプリケーションのためのもの)を介して処理され得るデジタル画像及び/または点群などの、検出された環境の表現を生成することができる。以下でより詳細に説明するように、ロボットシステム100は(たとえば、プロセッサ202を介して)デジタル画像及び/または点群を処理して、図1の対象オブジェクト112、図1の開始位置114、図1のタスク位置116、対象オブジェクト112の姿勢、開始位置114及び/または姿勢に関する信頼基準、あるいはそれらの組み合わせを識別することができる。

0034

対象オブジェクト112を操作するために、ロボットシステム100は(たとえば、上述の様々な回路/デバイスを介して)、指定領域(たとえば、トラック内またはコンベヤベルト上などの拾得位置)の画像を撮影し分析して、対象オブジェクト112及びその開始位置114を識別することができる。同様に、ロボットシステム100は、他の指定領域(たとえば、オブジェクトをコンベヤ上に載置するための降下位置、オブジェクトをコンテナ内に載置するための位置、またはスタッキング目的のパレット上の位置)の画像を撮影し分析して、タスク位置116を識別することができる。たとえば、撮像デバイス222は、拾得エリアの画像を生成するように構成される1つまたは複数のカメラ、及び/またはタスクエリア(たとえば、降下エリア)の画像を生成するように構成される1つまたは複数のカメラを含むことができる。撮影画像に基づいて、後述のように、ロボットシステム100は、開始位置114、タスク位置116、関連する姿勢、パッキング/載置プラン、転置/パッキングシーケンス、及び/または他の処理結果を決定することができる。

0035

いくつかの実施形態では、たとえば、センサ216は、構造部材(たとえば、ロボットアーム及び/またはエンドエフェクタ)及び/またはロボットシステム100の対応する関節の位置を検出するように構成される位置センサ224(たとえば、位置エンコーダ、電位差計など)を含むことができる。ロボットシステム100は、位置センサ224を使用して、タスクの実行中に構造部材及び/または関節の位置及び/または向きを追跡することができる。

0036

例示的なオブジェクト転置及びパッキング
図3は、本技術の1つまたは複数の実施形態による図1のロボットシステム100の図である。ロボットシステム100は、エンドエフェクタ304(たとえば、グリッパ)を含むロボットアーム302を含むか、またはこれに通信可能に結合することができる。ロボットアーム302は、図1に示すロボットユニットのうちの1つまたはその一部(たとえば、図1の転置ユニット104のインスタンス)とすることができる。たとえば、ロボットアーム302は、パッケージハンドリングアプリケーションを含む産業用アプリケーションで採用される産業用ロボットシステムを含むことができる。ロボットアーム302は、いくつかの軸に沿った、またはそれらを中心とする関節があり、たとえば、6軸産業用ロボットアーム構造であり得る。

0037

ロボットアーム302は、図1の開始位置114と図1のタスク位置116との間で対象オブジェクト112を転置するように構成することができる。図3に示すように、開始位置114は、コンベヤ306(たとえば、図1の輸送ユニット106のインスタンス)上の位置(たとえば、終点/入口(ingress)点)に対応することができる。ロボットアーム302のタスク位置116は、載置台308(たとえば、カートもしくはケージなどのコンテナ)またはその内部の位置とすることができる。たとえば、ロボットアーム302は、コンベヤ306からオブジェクト112を拾得し、他の目的地への輸送/タスクのために載置台308内/上に載置することができる。

0038

エンドエフェクタ304は、ロボットアーム302の遠位端に結合される任意の1つまたは複数のコンポーネントを含むことができる。エンドエフェクタ304は、1つまたは複数のオブジェクトと相互作用するように構成することができる。いくつかの実施形態では、エンドエフェクタ304は、フォーストルク(F−T)センサ(図示せず)、アームインターフェース、グリッパシステム、及び/またはグリッパインターフェースを含むことができる。例示の目的で、エンドエフェクタ304は吸引カップの列を有するように図示しているが、エンドエフェクタ304が異なる構成を有することができることは理解されたい。たとえば、エンドエフェクタ304は、統合吸引チャネルを有する吸引パッドピンチャー把持デバイス、またはオブジェクトを掴むための他の任意のタイプの把持システムを有することができる。

0039

ロボットシステム100は、ロボットアーム302による転置動作を行う際に、図2のセンサ216のうちの1つまたは複数を使用することができる。ロボットシステム100は、開始位置114及び/またはタスク位置116の、またはその付近のセンサのセット(たとえば、2D及び/または3Dセンサ、たとえば、カメラ及び/または深度センサ)を含むか、またはこれらに結合することができる。いくつかの実施形態では、ロボットシステム100は、タスク位置116の上にあり、タスク位置116に向けられた上面視センサ310、及び/またはタスク位置116に隣接し、タスク位置116へ横方向に向けられた側面視センサ312を含むか、またはこれらに結合することができる。ロボットシステム100は、開始位置114に向けられた1つまたは複数のソースセンサ314を同様に含むことができる。センサは、対応する位置を撮像及び/または分析するように構成することができる。たとえば、上面視センサ310は、載置台308及び/またはその上のオブジェクトの上面視を描いた画像データを生成及び/または処理することができる。また、側面視センサ312は、載置台308及び/またはその上のオブジェクトの側面視を描いた画像データを生成及び/または処理することができる。

0040

ロボットシステム100は、センサ216からの画像データを使用して、たとえば、開始位置114からタスク位置116までオブジェクトを転置するためのタスクを実行することができる。したがって、ロボットシステム100は、画像データを使用して、タスクを実行するための1つまたは複数のパッキングプラン及び/またはモーションプランを導出及び実施することができる。以下でより詳細に説明するように、ロボットシステム100は、載置台308の上または中にオブジェクトを載置するためのパッキングプラン及び対応するモーションプランを導出し、及び/または動的に調整することができる。プランは、1つまたは複数のオブジェクトが他のオブジェクトの上に載置されること(たとえば、スタッキング)に対応することができる。ロボットシステム100は、オブジェクトの周辺部(複数可)が、下のオブジェクトの周辺部(複数可)を横方向に越えて延在するように、スタックされたオブジェクト(たとえば、下のオブジェクトの上に載置されたオブジェクト)が載置されるよう、様々なプランを導出及び/または調整し得る。いくつかの例では、ロボットシステム100は、突出しているスタックされたオブジェクトが、載置台308の垂直な向きの壁または仕切りに接触する、及び/またはこれらに寄りかかるように、プランを導出及び/または調整し得る。したがって、ロボットシステム100は、載置台308内の載置ゾーンを効果的に増やし、垂直な向きの壁または仕切りを使用してその中のオブジェクトを支持するように、パッキングプラン及びモーションプランを導出することができる。

0041

同様に以下で詳細に説明するように、ロボットシステム100は、載置台308に関連する異常を検出したことに基づいて、パッキングプラン及び/またはモーションプランを動的に調整することができる。たとえば、ロボットシステム100は、実際の載置台(たとえば、カート及び/またはケージ)のリアルタイム画像を、ロボットシステム100の動作中にそれらが載置されたときに取得することができる。ロボットシステム100は、リアルタイム画像を分析して、半開、位置ずれ、及び/または垂直な壁の反りによる(たとえば、所定のまたは想定されるスペースと比較した)載置ゾーンの減少など、載置台における異常を検出することができる。リアルタイムに異常を検出したことに基づいて、ロボットシステム100は、(たとえば、配備場所において、及び/または最初に導出されたプランを実施/トリガする直前に)プランを動的に更新することができる。いくつかの実施形態では、ロボットシステム100は、様々なずらされた載置位置をテスト及び検証することができる。ロボットシステム100はさらに、リアルタイムの状況に応じて載置位置に対応する更新されたモーションプランをテストすることができる。

0042

ロボットシステム100は同様に、センサ216のうちの1つまたは複数を使用して、ロボットアーム302、エンドエフェクタ304、及び/または対象オブジェクト112を位置特定し、追跡することができる。いくつかの実施形態では、ロボットシステム100は、位置センサからの読取値に基づいて、位置(図3座標セット(x,y,z)として図示)を追跡することができる。また、ロボットシステム100は、伝達または実行されたコマンド/設定に基づいて、位置を計算し、追跡することができる。ロボットシステムは、所定の座標系またはグリッドに従う位置を決定し、追跡することができる。

0043

例示的な載置台
図4A図4Dは、本技術の1つまたは複数の実施形態による例示的なオブジェクトコンテナ(たとえば、図3の載置台308)の図である。図4Aは例示的なカート410の側面視であり、図4Bはカート410の上面視である。カート410は、カート底面412と、1対の対向するカート側壁414とを有するオブジェクトコンテナとすることができる。たとえば、カート底面412は、長方形形状のフットプリント(たとえば、上面視または底面視からの外周形状またはシルエット)を有することができる。カート側壁414は、カート底面412の1対の対向する周縁に/周縁の上に取り付けるか、または周縁と一体化することができる。カート底面412の残りの周縁の上のスペースは、開いたまま、または遮られていないままにすることができる。

0044

図4Cは例示的なケージ420の側面視であり、図4Dはケージ420の上面視である。ケージ420は、ケージ底面422及び3つの垂直な向きの壁(たとえば、1対の対向するケージ側壁424及びケージ後壁426)を有するオブジェクトコンテナとすることができる。たとえば、ケージ底面422は、長方形形状のフットプリントを有することができる。ケージ側壁424は、ケージ底面422の1対の対向する周縁に/周縁の上に取り付けるか、または周縁と一体化することができる。ケージ後壁426は、ケージ底面422の残りの周縁のうちの1つに/その上に取り付けるか、またはそれと一体化することができる。ケージ後壁426の反対側のスペースは、開いたまま、または遮られていないままにすることができる。

0045

各載置台308は、運ばれる/積載されたオブジェクトによって占有することができる想定載置ゾーン430を含むことができる。換言すれば、想定載置ゾーン430は、対応する載置台308の意図されたまたは所定の貨物スペースを表すことができる。図4A図4D一緒に参照すると、カート410及びケージ420の想定載置ゾーン430は、垂直な向きの壁(たとえば、カート側壁414、ケージ側壁424、及び/またはケージ後壁426)まで広がることができ、及び/またはそれらによって囲むことができる。したがって、ロボットシステム100は、オブジェクトが垂直な向きの壁に接触する、及び/またはこれらによって支持されるように、カート410及び/またはケージ420内にオブジェクトを載置するためのプランを導出、実施、及び/または実行し得る。載置ゾーン430は、カート底面412及び/またはケージ底面422の開いた/遮られていないエッジまで(たとえば、その手前または同一平面上/一致)あるいはそれを越えて、横方向に(たとえば、y軸に沿って)延在し得る。同様に、載置ゾーン430は、垂直な向きの壁の上端まで、またはそれを越えて、垂直方向に(たとえば、z軸に沿って)延在し得る。換言すれば、いくつかの例では、ロボットシステム100は、載置されたオブジェクトの少なくとも一部が、対応する載置台308の垂直な向きの壁の上端を越えるように、オブジェクトを載置するためのプランを導出、実施、及び/または実行し得る。

0046

例示的なエンドエフェクタ
図5A図5Cは、本技術の1つまたは複数の実施形態による例示的なエンドエフェクタ(たとえば、図3のエンドエフェクタ304)の図である。図5A及び図5Bはそれぞれ、例示的なグリッパアセンブリ502及びロボットアーム302の一部の側面視及び上面視である。いくつかの実施形態では、グリッパアセンブリ502は、グリッパアセンブリ502とオブジェクトとの間に真空を生成して、オブジェクトをグリッパアセンブリ502に付着させる(たとえば、オブジェクトを把持する)ように構成される真空式グリッパに対応することができる。

0047

グリッパアセンブリ502は、ロボットアーム302をグリッパ514に構造的に結合する構造部材512(たとえば、回転関節延長アームなど)を含み得る。グリッパ514は、1つまたは複数の対象オブジェクトをグリッパ514に接触及び付着させるように把持インターフェース516を動作させるよう構成される回路、モータ、及び/または他の機械部品を含むことができる。いくつかの実施形態では、把持インターフェース516は、アクチュエータ及び/またはグリッパ514の他の機械部品によって制御される吸引カップを含むことができる。グリッパ514は、各吸引カップ及び接触面によって囲まれるスペース内に真空を形成して制御することによって、対象オブジェクトを付着させて把持するように構成することができる。

0048

グリッパアセンブリ502は、他のコンポーネントを含み得る。いくつかの実施形態では、グリッパアセンブリ502は、グリッパアセンブリ502及び/またはその1つまたは複数の部分の位置を特定するために使用される機能を提供するように構成される較正ボード518を含み得る。較正ボード518は、取得された画像内の基準として使用し、及び/または較正処理用に詳細な位置情報を提供することができる。較正ボード518は、グリッパ514の周縁に取り付けられるかまたは一体化され、周縁から離れる方向に延在し得る。いくつかの実施形態では、較正ボード518は、グリッパ514の上面から離れるように垂直方向に延在することができる。較正ボード518はまた、構造部材512及び/またはグリッパ514の中心部に向かって、またはこれらから離れて横方向に延在し得る。

0049

グリッパアセンブリ502は、所定の、またはロボットシステム100に既知の寸法を有することができる。たとえば、グリッパアセンブリ502は、アセンブリ高522、ベース長524、及び/またはベース幅526を有することができる。アセンブリ高522は、構造部材の最外部(たとえば、最上部またはロボットアーム302に接続された部分)と、最外部の反対側の把持インターフェース516の部分との間の(たとえば、z軸に沿った)距離に対応することができる。ベース長524及びベース幅526は、直交する方向(たとえば、x軸及びy軸)に沿って測定されるグリッパ514の横方向の寸法に対応することができる。寸法は、対象オブジェクトの係合または把持に関連するグリッパアセンブリ502の所定の姿勢/配置に対応することができる。

0050

いくつかの実施形態では、グリッパアセンブリ502の1つまたは複数の寸法は、オブジェクトを把持している間に変化し得る。図5Cは、本技術の1つまたは複数の実施形態による、対象オブジェクト112を把持して持ち上げた後のグリッパアセンブリ502の例示的な側面視である。真空式グリッパの場合、延伸状態のインターフェース高532は、初期非係合状態での吸引カップの高さに対応し得る。吸引カップに接触し、その中に真空を生成し、維持する際に、吸引カップの形状は変形及び/または圧縮し得る。したがって、グリッパ514が対象オブジェクト112を係合及び把持する場合、把持インターフェース516は、延伸状態のインターフェース高532未満の係合状態のインターフェース高534に対応し得る。したがって、アセンブリ高522は、対象オブジェクト112を係合/把持する場合に減少し得る。ロボットシステム100は、高さの変化(たとえば、係合状態のインターフェース高534)を特定または識別して、グリッパ514、対象オブジェクト112、及び/またはそれらの一部の位置を正確に特定及び追跡することができる。いくつかの実施形態では、ロボットシステム100は、所定の、図2の記憶デバイス204に記憶された、係合状態のインターフェース高534を有することができる。いくつかの実施形態では、ロボットシステム100は、対象オブジェクト112を把持してグリッパ514を所定の高さだけ持ち上げた後に、図3の側面視センサ312からの画像データをキャプチャして分析することに基づいて、係合状態のインターフェース高534をリアルタイムに(たとえば、配備/動作中に)特定することができる。

0051

例示的な離散化モデル
図6は、本技術の1つまたは複数の実施形態によるパッキングコンポーネントの例示的な離散化モデル600の図である。離散化モデル600は、操作/パッキングされるオブジェクト(たとえば、登録済みオブジェクト)、ロボットユニットもしくはその一部、及び/またはオブジェクト容器(たとえば、図3の載置台308)などのパッキングコンポーネントのピクセル化表現を含むことができる。たとえば、離散化モデル600は、離散化単位602に従ってパッキングコンポーネントの物理的なサイズ/形状を記述することができる(すなわち、1つの離散エリア/スペースは所定の寸法に対応する)。換言すれば、離散化単位602は、離散化長さに対応する1つまたは複数の寸法を有するポリゴン(たとえば、四角形または立方体)などの単位ピクセルに対応することができる。

0052

離散化単位602の寸法は、システムオペレータシステム設計者、所定の入力/設定、またはそれらの組み合わせによって事前設定される長さを含むことができる。いくつかの実施形態では、離散化単位602の寸法は、ロボットシステム100の動作中に動的に調整することができる。いくつかの実施形態では、離散化単位602(たとえば、離散化単位)のサイズは、オブジェクトの寸法及び/または荷台の寸法に応じて変化することができる。また、離散化単位602(たとえば、ピクセル)のサイズを(たとえば、事前設定されたルール/式、及び/またはオペレータ選択を介して)調整して、必要とされるリソース(たとえば、計算時間、必要メモリなど)をパッキング精度とバランスさせることができる。サイズが減少すると、その結果得られる増加したデータに基づいて、計算時間及びパッキング精度が増加し得る。したがって、調整可能な離散化単位602を使用してパッキングタスク(たとえば、対象パッケージエンドエフェクタアセンブリ、及びパッキング台)を離散化することによって、パッケージをパレタイズするための柔軟性が向上する。ロボットシステム100は、特有シナリオパターン、及び/または環境に応じて、計算リソース/時間とパッキング精度とのバランスを制御することができる。

0053

ロボットシステム100は、図3のロボットアーム302、図3のエンドエフェクタ304、図1の対象オブジェクト112、載置台308(たとえば、図4Aのカート410及び/または図4Bのケージ420)、載置済みオブジェクト、及び/またはそれらの一部を、既知または所定の単位を介して記述または表現することができる。このようにして、ロボットシステムは、連続的な実世界の空間/エリアをコンピュータ読み取り可能なデジタル情報に変換することができる。さらに、離散化データによって、パッケージングコンポーネントにより占有されるスペースを記述する際の、様々なパッケージ載置位置を比較するための計算複雑性を削減することが可能になる。たとえば、パッケージ寸法は、実世界の小数ではなく整数個の離散化単位に対応することができ、これにより関連する数学的計算の複雑性を削減することができる。

0054

ロボットシステム100は、離散化メカニズム(たとえば、処理、回路、関数、及び/またはルーチン)によって生成される離散化モデル600を利用することができる。いくつかの例では、離散化モデル600は、外部ソース(たとえば、製造業者販売業者、顧客など)によって提供され得る。また、ロボットシステム100は、パッキングコンポーネントを表す対象データ(たとえば、画像データ、形状テンプレート、及び/または他のデジタル化された物理的表現)をセグメント化することに基づいて、離散化モデル600を生成し得る。ロボットシステム100は、たとえば、エッジ検出メカニズム(たとえば、Sobelフィルタ)を使用してセグメント化対象データ内の実際の特徴606(たとえば、エッジ及び/またはコーナー)を識別することができる。識別された実際の特徴606(実線で図示)に基づいて、ロボットシステム100は、セグメント化対象データ内の基準点/エッジ604(たとえば、コーナー、中心部、中央部、目印、及び/または位置特定デバイス)を決定することができる。ロボットシステム100は、基準位置604を原点として使用し、それに従って、離散化単位602(点線で図示)に対応する所定の寸法及び/または方向を使用してセグメント化対象データを分割することができる。結果として得られるセグメントは、撮像されたコンポーネントの離散化/ピクセル化された単位とすることができる。このようにして、ロボットシステム100は(たとえば、図2のプロセッサ202を介して)、実世界のオブジェクト(たとえば、パッケージ、ロボットアーム、グリッパ、それらの1つまたは複数の部分、及び/またはタスクに関連する他のオブジェクト)の連続面/エッジを離散的対応物(たとえば、単位長さ及び/または単位面積)にマッピングすることができる。

0055

いくつかの例では、実際の特徴606は、離散化単位602と一致しなくてもよい。換言すれば、パッキングコンポーネントは、小数/分数成分の離散化単位(たとえば、1.2単位または3/4単位)を有する寸法を有し得る。ロボットシステム100は、状況に応じて切り上げるかまたは切り下げることに基づいて離散化モデル600を生成することができる。たとえば、離散化モデル600は、モデルオブジェクト(たとえば、図1の対象オブジェクト112)、図3の載置台308、図3のロボットアーム302、及び/または図3のエンドエフェクタ304とすることができ、またはこれらを含むことができる。オブジェクト容器に入るコンポーネント(たとえば、ロボットアーム302、エンドエフェクタ304、及び/またはオブジェクト)について、ロボットシステム100は、寸法を離散化単位602の数量に切り上げることにより、対応する離散化モデル600を生成し得る。換言すれば、ロボットシステム100は、図4のカート410及び/または図4のケージ420に入るモデル化されるコンポーネントの実際の特徴606を越えるモデル境界608(破線で図示)を有する離散化モデル600を生成することができる。オブジェクト容器(たとえば、カート410及び/またはケージ420などの載置台308)について、ロボットシステム100は、寸法を離散化単位602の数量に切り下げることにより、対応する離散化モデル600を生成し得る。換言すれば、ロボットシステム100は、モデル化されるコンポーネントの実際の特徴606の前または間で離散化モデル600を生成することができる。

0056

ロボットシステム100は、離間距離610だけ実際の特徴606を越えた(たとえば、離れた)モデル境界608を有する離散化モデル600を生成し得る。たとえば、離間距離610は、ロボットシステム100が、たとえば、エンドエフェクタ304などについて、実際のコンポーネントよりも広いスペースをモデル化するかまたは考慮するような、追加されたバッファに対応することができる。したがって、ロボットシステム100は、モデル化されたコンポーネントが、動作中に(たとえば、コンポーネントの移動中に)他のオブジェクト/構造に接触も衝突もしないようにすることができる。このようにして、ロボットシステム100は、離間距離610に応じて生成された離散化モデル600を使用して衝突率を低下させることができる。また、いくつかの実施形態では、ロボットシステム100は、モデル化されるコンポーネントの最外部に一致するかまたはこれに基づくモデル境界608を有する長方形の断面形状を有する離散化モデル600を生成することができる。したがって、ロボットシステム100は、モデル化されたコンポーネントの位置/モーションをテストするために、より複雑でないかまたは簡単な処理(すなわち、全てのエッジ/コーナー/特徴を考慮するものと比較して)を提供することができる。

0057

いくつかの実施形態では、離散化モデル600は、事前に決定されるかまたはオフラインで(たとえば、対応する動作/実施とは独立に、その前に)生成され、マスターデータ252に記憶されて、ロボットシステム100の配備または動作中にアクセスできるようになり得る。他の実施形態では、離散化モデル600は、開始位置114及び/またはタスク位置116を表す画像データを取得したこと基づいて、リアルタイムで(たとえば、動作中に)生成され得る。

0058

離散化モデル600は、パッケージングコンポーネントの形状、寸法などを2D及び/または3Dで表現することができる。たとえば、離散化モデル600は、登録済みのまたは撮像されたオブジェクトのインスタンスまたはタイプごとに、オブジェクトモデル(たとえば、オブジェクトフットプリントモデル612及び/またはオブジェクト側面モデル614)を含むことができる。また、離散化モデル600は、載置台308のインスタンスまたはタイプごとに、コンテナモデル(たとえば、コンテナフットプリントモデル622及び/またはコンテナ側面モデル624)を含むことができる。コンテナモデル622及び624は、離散化単位602に従って、載置面(たとえば、図4A図4Dに示す横方向の囲いを有するオブジェクト容器の内側の底面)を表現することができる。コンテナモデル622及び624は、既知のまたは標準サイズのオブジェクト容器に基づくことができる。さらに、離散化モデル600は、載置台308上/内へのオブジェクト(たとえば、対象オブジェクト112)の載置に関連するタスクを実行するために使用されるロボットユニットの部分を表すグリッパフットプリントモデル632及び/またはグリッパ側面モデル634を含むことができる。たとえば、グリッパモデル632及び/または634は、エンドエフェクタ304、ロボットアーム302、及び/またはそれらの一部を表すことができる。

0059

フットプリントモデルは、横方向の平面(たとえば、x−y平面)に沿った、モデル化されるコンポーネントの外周に対応することができる。側面モデルは、垂直平面(たとえば、x−z及び/またはy−z平面)に沿った、モデル化されるコンポーネントの外周に対応することができる。いくつかの実施形態では、離散化モデル600は、3−Dモデルを含むことができる。

0060

例示的な載置計算
図7Aは、本技術の1つまたは複数の実施形態による例示的なパッキングプラン700の図である。ロボットシステム100は、図6の離散化モデル600を使用して、図3の載置台308(たとえば、コンテナ)内またはその上のオブジェクトのセットに対して導出された載置位置を含むパッキングプラン700を導出することができる。パッキングプラン700は、載置位置及び/または載置されたオブジェクトを2D及び/または3Dで表現することができる。いくつかの実施形態では、パッキングプラン700は、3Dモデルとすることができる。パッキングプラン700は、図4Aの想定載置ゾーン430内に載置されたオブジェクトの横方向占有状態及び/または垂直方向占有状態を表す上面視702及び/または側面視704に対応することができる。

0061

図7Aに示す例では、対象オブジェクトは、カート410のインスタンス内にパッキングされるように指定された第1、第2、及び第3のタイプのオブジェクトを含むことができる。したがって、ロボットシステム100は、第1、第2、及び第3のオブジェクトタイプにそれぞれ対応する第1のオブジェクトモデル706、第2のオブジェクトモデル708、及び第3のオブジェクトモデル710と、コンテナモデル(たとえば、コンテナフットプリントモデル622及び/またはコンテナ側面モデル624)とを使用して、パッキングプラン700を導出することができる。ロボットシステム100は、コンテナモデル上に重ねられたオブジェクトモデルの様々な位置を導出し、テストし、評価することに基づいて、パッキングプラン700を導出することができる。以下で詳細に説明するルール及び/または条件に従って、ロボットシステム100は、第1及び第2のタイプのオブジェクトを下位レイヤ712(たとえば、図4Aのカート底面412に接触する最下位レイヤ)に載置し、第3のタイプのオブジェクトをスタックされたレイヤ722に載置するパッキングプラン700を導出し得る。

0062

ロボットシステム100は、対象オブジェクトを指定された/割り当てられた載置台308に載置/パッキングするためのパッキングプラン700を導出することができる。ロボットシステム100は、対象オブジェクトのオブジェクトモデル(たとえば、図6のオブジェクトフットプリントモデル612及び/または図6のオブジェクト側面モデル614のインスタンス)を、指定された載置台308のコンテナモデル(たとえば、図6のコンテナフットプリントモデル622及び/または図6のコンテナ側面モデル624)上に重ねることに基づいて、パッキングプラン700を導出することができる。ロボットシステム100は、所定のルール及び/または条件のセットに従って、対応する載置位置を導出及び/またはテストすることができる。ロボットシステム100は、対象オブジェクトの載置位置を反復的に導出して、パッキングプラン700を導出することができる。ロボットシステム100はさらに、リソース消費(たとえば、手順の数、対応する期間など)を最小化し、パッキングされるオブジェクトの数を最大化し、及び/またはエラー/失敗(たとえば、紛失、衝突など)を最小化することに基づいて、パッキングプラン700及び/または対応するモーションプランのセットを導出することができる。

0063

さらに、ロボットシステム100は、オブジェクトを互いの上に、たとえば、レイヤ状(たとえば、下位レイヤ712及びスタックされたレイヤ722)にスタッキングするためのパッキングプラン700を導出することができる。また、ロボットシステム100は、オブジェクトがコンテナの垂直な向きの壁(たとえば、図4Aのカート側壁414及び/または図4Cのケージ側壁424)に接触する及び/または寄りかかるパッキングプラン700を導出することができる。たとえば、下位レイヤ712は、支持壁725(たとえば、オブジェクトに接触する/これを支持するために使用/指定され得る想定載置ゾーン430を画定するかまたはその内部にあるコンテナの垂直な向きの構造)に最も近く、オブジェクト−壁間隔726(たとえば、支持壁725と、対応する直接隣接するオブジェクトの最も近い周縁/点との間の距離及び/またはピクセル数)だけ離れた、下位の最外部のオブジェクト714を含むことができる。オブジェクト/壁は、たとえば横方向に沿った対応する1対のオブジェクト間のスペースを占有する他のオブジェクトが存在しない場合に、直接隣接し得る。上位のスタックされたレイヤ722は、下位の最外部のオブジェクト714上に少なくとも部分的に載置され、それによって支持される、スタックされたオブジェクト724を含むことができる。スタックされたオブジェクト724の周辺部は、下位の最外部のオブジェクト714の周縁を横方向に越えて突出することができる。スタックされたオブジェクト724の周縁/周面(たとえば、垂直な向きの面/エッジ及び/または上のコーナー/エッジ)は、支持壁725により近いか、またはこれに接触することができる。ロボットシステム100は、オブジェクト−壁間隔726に基づいて、スタックされるオブジェクト724(たとえば、下位の最外部のオブジェクト714を越えて張り出し/突出し、及び/また支持壁725に接触するもの)の載置位置を有するパッキングプラン700を導出することができる。いくつかの実施形態では、最も近いオブジェクトのエッジ/面が支持壁725と平行でない場合、ロボットシステム100は、オブジェクト−壁間隔726を対応する距離の平均値として計算することができる。ロボットシステム100はさらに、対象オブジェクトのオブジェクト基準位置728、たとえば、CoM位置及び/または中心部に従って、パッキングプラン700を導出することができる。導出に関する詳細については後述する。

0064

いくつかの実施形態では、ロボットシステム100は、コンテナ内に載置されるように指定されたオブジェクトのセットに対して、軸平行バウンディングボックス(AABB)730を導出し、利用することができる。換言すれば、AABB730は、導出された載置プランに従って、オブジェクトの最外部を包含する及び/またはこれと一致する指定された平面形状(たとえば、長方形)とすることができる。図7Aに示す例では、AABB730は、パッキングプラン700内のオブジェクトの最外点と一致する所定の軸のセット(たとえば、x、y、及びz軸)に従って位置調整された長方形のセットとすることができる。AABB730は、パッキングプラン700の全体のサイズ(たとえば、パックサイズ)を表すことができる。ロボットシステム100は、AABB730を導出及び使用して、パッキングプラン700を調整し、想定外の実世界の状況(たとえば、半開のコンテナ及び/または反ったコンテナ壁)を考慮し得る。以下で詳細に説明するように、ロボットシステム100は、オブジェクトの載置または位置(たとえば、パッキングプラン700)を変更するかまたはずらす際に、AABB730を導出及び使用し得る。いくつかの実施形態では、AABB730を使用して、ロボットシステム100は、パッキングプラン700のオブジェクトのスタック全体を単一のオブジェクトとみなすことができる。AABB730は、上述の離散化単位に従って導出することができる。

0065

図7Bは、本技術の1つまたは複数の実施形態による載置計画処理の図である。図1のロボットシステム100は(たとえば、図2の1つまたは複数のプロセッサ202を介して)、利用可能パッケージ742のセットについて図7Aのパッキングプラン700を導出することができる。利用可能パッケージ742は、出荷及び/または保管のためにパッキングされる必要があるかまたはその対象となるオブジェクトに対応することができる。たとえば、利用可能パッケージ742は、入荷を介して受け取られた到着オブジェクト、及び/または出荷のために注文された保管されたオブジェクトに対応することができる。いくつかの実施形態では、ロボットシステム100は出荷目録注文リストなどを使用して、リアルタイムに、たとえば、目録、リストなどの受け取りにすぐに(すなわち、閾値期間内に)応答して、利用可能パッケージ742を識別することができる。したがって、ロボットシステム100は、識別された利用可能パッケージ742を使用して、パッキングプラン700をリアルタイムに導出し得る。したがって、パッケージの仮の数/セット/組み合わせを利用してリアルタイム条件とは無関係に適用されるプランを導出するオフラインパッキングシミュレータの代わりに、ロボットシステム100は、リアルタイム条件、利用可能性、及び/または需要を使用してパッキングプラン700を導出することができる。いくつかの実施形態では、ロボットシステム100は、たとえば、出荷拠点及び/または倉庫など、オブジェクトを受け取り、保管し、及び/または送る場所にあるデバイス(たとえば、プロセッサ202のうちの1つまたは複数)を使用することができる。他の実施形態では、ロボットシステム100は、想定される状況を使用して、パッキング導出をオフラインで実施することができる。

0066

パッキングプランを導出する際に、ロボットシステム100は、利用可能パッケージ742をグループ化する及び/または配列することができる。ロボットシステム100は、利用可能パッケージ742の順序付きセットを使用してパッキングプラン700を導出することができる。ロボットシステム100は、利用可能パッケージ742に対して一意の載置位置/組み合わせを決定し評価して、パッキングプラン700を導出することができる。換言すれば、ロボットシステム100は、可能な載置組み合わせ744のセットを決定し、所定の要件、条件、重量、コスト、その後の影響、またはそれらの組み合わせのセットに従って、それらを評価する(たとえば、スコア付けする)ことができる。評価に基づいて、ロボットシステム100は、載置組み合わせを選択してパッキングプラン700を導出することができる。

0067

少なくとも1つの実施形態では、ロボットシステム100は、配列されたパッケージの載置を反復的に評価するアルゴリズムを使用してパッキングプラン700を導出することができる。図7Bに示すように、たとえば、ロボットシステム100は、利用可能パッケージ742の中の最初のパッケージについての初期載置を決定することによって、導出を開始することができる。したがって、ロボットシステム100は、対応する離散化オブジェクトモデル(たとえば、図7Aに示す第1のオブジェクトモデル706、第2のオブジェクトモデル708、及び/または第3のオブジェクトモデル710)を離散化台モデル(たとえば、図6のコンテナモデル622及び/または624)上の初期位置(たとえば、コーナー、中央位置、及び/または他の事前設定位置)に重ねることができる。ロボットシステム100は、利用可能パッケージ742から載置済みのパッケージ(たとえば、最初のパッケージ)を除去することに基づいて、残余パッケージ752を追跡することができる。

0068

初期載置に基づいて、ロボットシステム100は、利用可能パッケージ742の中の2番目のパッケージについての可能な載置のセットを決定することができる。ロボットシステム100は、所定のルール、パターン、またはそれらの組み合わせに従って可能な載置のセットを決定することができる。たとえば、ロボットシステム100は、載置済みのパッケージ(複数可)に対する(たとえば、載置済みのパッケージ(複数可)に対する)位置のパターンに従って、載置位置を決定することができる。また、ロボットシステム100は、パッケージのうちの1つまたは複数の間で必要とされる最小/最大の離間距離またはその欠如に基づいて、載置位置を決定することができる。さらに、ロボットシステム100は、90度などの所定の量に従ってパッケージ(すなわち、対応する離散化オブジェクトモデル)を回転させることに基づいて、載置位置を決定することができる。いくつかの実施形態では、ロボットシステム100は、所定の閾値及び/またはパターンに従って載置候補を限定することができる。さらに、ロボットシステム100は、それに応じて残余パッケージ752を更新することができる。

0069

ロボットシステム100は、停止条件に達するまで、上述の処理を反復し、利用可能パッケージ742を反復的に処理することができる。停止条件のいくつかの例は、全てのパッケージが載置された(すなわち、残余パッケージ752が空である)こと、載置を改善できない(たとえば、前の階層/反復と同じ評価スコアである)こと、これ以上パッケージを離散化台モデル上に載置できないこと、またはそれらの組み合わせを表すことができる。

0070

いくつかの実施形態では、ロボットシステム100は探索木754を使用して、可能な載置と、対応する可能な載置組み合わせ744とを追跡することができる。探索木754の根は初期載置に対応することができ、各レベルまたは階層は利用可能パッケージ742の中の後続のパッケージの可能な載置を含むことができる。異なる階層を接続して、パッケージのセットについての一意の載置組み合わせに対応する枝を形成することができる。

0071

各パッケージの可能な載置について、ロボットシステム100は、(たとえば、図7Bにおいて「×」で表す)冗長なフットプリントを識別し排除することができる。たとえば、探索木754の各階層において、ロボットシステム100は、可能な載置位置/組み合わせの得られたフットプリントを比較する(たとえば、重ねる)ことができる。比較に基づいて、ロボットシステム100は、得られたフットプリントの重複を排除することができる。いくつかの実施形態では、ロボットシステム100はさらに、得られたフットプリントの転置、回転、及び/または反転バージョンを比較して、関連する重複を排除することができる。たとえば、ロボットシステム100は、1つのフットプリントを±90度回転させ、及び/または1つまたは複数の反転ライン(たとえば、対角に伸び対角線、x方向及び/またはy方向に伸びる二等分線(複数可)、またはそれらの組み合わせ)にわたってフットプリントを転置し、これを他のフットプリントと比較することができる。

0072

また、各パッケージの可能な載置について、ロボットシステム100は、1つまたは複数の要件/制約違反する載置を識別し排除することができる。要件/制約の一例は、衝突確率に基づくことができる。ロボットシステム100は、既存のフットプリント、パッケージの1つまたは複数の寸法、転置ロボットの位置、前のイベントまたは履歴、あるいはそれらの組み合わせに応じて、各載置位置についての進入路と、対応する衝突確率とを計算することができる。ロボットシステム100は、衝突確率が所定の閾値を超える載置を排除することができる。要件/制約の他の例は、パッケージをスタックする(すなわち、1つまたは複数の支持パッケージのすぐ上に/上を覆って載置する)ための支持重量とすることができる。載置位置の下のパッケージのうちの1つまたは複数について、ロボットシステム100は、載置されたパッケージの重量に基づいて、支持重量(すなわち、すぐ上を覆うパッケージまたはその一部の合計重量)を計算することができる。ロボットシステム100は、載置位置の下のパッケージのうちの1つまたは複数について、支持重量が脆性要件(たとえば、最大支持可能重量)に違反する(たとえば、要件を超えるまたは要件から閾値範囲内である)載置を排除することができる。

0073

いくつかの実施形態では、ロボットシステム100は、優先度キュー756(たとえば、ヒープ構造など)を使用して、載置組み合わせ744を追跡及び/または評価することができる。優先度キュー756は、一連の設定に従って載置組み合わせ744を並べることができる。ロボットシステム100は、1つまたは複数の所定の基準に従って各載置組み合わせ744を評価またはスコア付けすることができる。基準は、載置済みのアイテムに関連する1つまたは複数のコスト、及び/または現在の載置が今後の載置または候補にどのように影響するかに関連する1つまたは複数のヒューリスティックスコアを含むことができる。

0074

基準の一例は、フットプリント密度の最大化を含むことができる。ロボットシステム100は、パッケージのグループの外周762について、フットプリント密度を計算することができる。いくつかの実施形態では、外周762は、パッケージのグループの露出した/外周のエッジに基づいて決定することができる。ロボットシステム100はさらに、2つ以上のエッジを伸ばして交点発見することによって、及び/またはフットプリントの1つまたは複数のコーナーを結ぶ線を描くことによって、周囲の/関連するエリアを囲むことができる。ロボットシステム100は、実際の占有面積764(たとえば、図6の離散化単位602または影付きエリアに対応する単位ピクセルの数)と、空き面積766(たとえば、囲まれた/関連するエリアに対応する離散化単位602の数)との比として、フットプリント密度を計算することができる。ロボットシステム100は、空き面積766を最小化する載置プランを(たとえば、より高い/より低いスコアを割り当てることによって)優先するように構成することができる。

0075

図7Cは、本技術の1つまたは複数の実施形態による例示的な載置ルールの図である。ロボットシステム100は、載置ルールを使用して、指定されたコンテナ内のオブジェクトの載置位置を導出し得る。たとえば、ロボットシステム100は、1つまたは複数の載置ルールを満たすことができない可能な載置位置を破棄するかまたは不適格とみなし得る。

0076

載置ルールのいくつかの例は、オブジェクトを互いの上に載置するためのものであり、たとえば、1つまたは複数のパッケージのレイヤを、1つまたは複数の他のパッケージのレイヤ(複数可)の上にスタック/載置するためのものとすることができる。ロボットシステム100は、スタックされたオブジェクトの安定性を向上/確保するための載置ルールを使用することができ、コンテナの移動中に任意のオブジェクトが滑る及び/または傾くのを防ぐことができる。例示の目的で、図7Cに、上のパッケージ772が1つまたは複数の支持パッケージ774のすぐ上にあり、これによって支持される(たとえば、直接接触する)複数のシナリオを示す。

0077

ロボットシステム100は、3D載置位置(たとえば、図7Aの3Dパッキングプラン700)を導出するための水平オフセットルール776を使用し得る。水平オフセットルール776は、スタックされたアイテム間垂直エッジ/面の水平オフセットを制御するための規制、要件、またはそれらの組み合わせを含むことができる。たとえば、水平オフセットルール776は、重なり要件778、張り出し要件780、またはそれらの組み合わせに基づくことができる。重なり要件778は、スタックされたパッケージの間の最小量(たとえば、長さ、幅、及び/または表面積の割合または比)の重なりを含むことができる。いくつかの実施形態では、重なり要件778は、上のパッケージ772の最小量の水平寸法/表面積が支持パッケージ774のそれと重なる、及び/または接触することを要求することができる。張り出し要件780は、支持パッケージ774の周辺エッジ/面を越えて水平に伸びる上のパッケージ772の一部など、最大量(たとえば、長さ、幅、及び/または表面積の割合または比)の突出を含むことができる。

0078

いくつかの実施形態では、水平オフセットルール776は、重量、寸法、及び/または重心(CoM)位置782に基づくことができる。たとえば、重なり要件778及び/または張り出し要件780は、CoM位置782に基づくことができ、たとえば、上のCoM位置と支持パッケージ774の水平エッジ/面との距離に対する、上のパッケージ772及び支持パッケージ774のCoM位置782間の距離を評価するためのものとすることができる。また、重なり要件778及び/または張り出し要件780は、張り出し距離(たとえば、支持パッケージ774の周縁(複数可)を超えて伸びる上のパッケージ772の一部の水平方向に沿った度合い)に対する上のパッケージ772及び支持パッケージ774のCoM位置782間の距離の評価に対応することができる。いくつかの実施形態では、水平オフセットルール776は、上のパッケージ772及び支持パッケージ774のCoM位置782がCoM支持閾値内であることを要求するCoMオフセット要件784に基づくことができる。CoM支持閾値は、所定の距離、水平寸法に対するCoM位置782間のオフセット距離の比の限界値、張り出し距離、重なり距離、またはそれらの組み合わせを含むことができる。

0079

ロボットシステム100はまた、支持物離間ルール786を使用して、3D載置位置を導出し得る。支持物離間ルール786は、支持パッケージ774間の横方向離間距離788を制御するための規制、要件、またはそれらの組み合わせを含むことができる。横方向離間距離788は、直接隣接する支持パッケージ774の周面/周縁間の水平距離に対応することができる。いくつかの実施形態では、支持物離間ルール786は、上のパッケージ772と支持パッケージ774との重なった面の位置及び/または量にさらに基づくことができる。たとえば、支持物離間ルール786は、横方向離間距離788が任意の張り出し距離よりも所定の割合だけ長いことを要求することができる。また、支持物離間ルール786は、横方向離間距離788が上のパッケージ772のCoM位置782の下に伸びることを要求することができる。いくつかの実施形態では、上のパッケージ772の載置位置が支持物離間ルール786を満たす場合、ロボットシステム100は、支持パッケージ774間の上のパッケージ772の部分(たとえば、横方向離間距離788上の部分)を、最下位レイヤのオブジェクトによって支持され、及び/またはこれに接触するものとみなし得る。

0080

ロボットシステム100はまた、垂直オフセットルール790を使用して、3D載置位置を導出し得る。垂直オフセットルール790は、支持パッケージ774の垂直位置間の支持高低差792を制御するための規制、要件、またはそれらの組み合わせを含むことができる。支持高低差792は、対応する支持パッケージ774の頂部間の、たとえば、対応する支持パッケージ774上に載置された上のパッケージ772に接する可能性が高い部分同士の間の垂直距離に対応することができる。いくつかの実施形態では、垂直オフセットルール790は、支持高低差792が、1つまたは複数のパッケージを支持パッケージ774の上にスタックするための所定の閾値要件を下回ることを必要とすることができる。

0081

いくつかの実施形態では、垂直オフセットルール790は、レイヤの高さに基づいて異なることができる。たとえば、上のパッケージ772(たとえば、支持されるパッケージ)が最上位レイヤの一部である場合、支持高低差792の限度は下位レイヤよりも大きくすることができる。いくつかの実施形態では、垂直オフセットルール790は、指定されたコンテナの垂直な向きの壁/仕切りへの近接性に基づいて変化することができる。たとえば、高さがより低い支持パッケージ774が垂直な壁に最も近い(たとえば、支持パッケージ774と壁との間に他のオブジェクトがない)場合、支持が失敗した及び/または上のパッケージ772がずれた場合であっても、上のパッケージ772は垂直な壁によって支持され得るので、支持高低差792の限度をより大きくすることができる。

0082

ロボットシステム100は、上のパッケージ772の向き(たとえば、横方向/水平基準平面の下への傾き)に関連するピボット位置793を導出/推定し得る。ピボット位置793は、より高い支持パッケージの最上部(すなわち、最も高い支持位置)とすることができる。ロボットシステム100は、ピボット位置793を、より低い支持パッケージに最も近い支持パッケージの周縁及び/または最高部として導出することができる。ロボットシステム100はさらに、CoM位置782、上のパッケージ772の横方向の寸法、及び/または上のパッケージ772の重量に基づいて、ピボット位置793を導出することができる。同様に、ロボットシステム100は、ピボット位置793を中心とする上のパッケージ772の回転を推定することができる。ロボットシステム100は、オブジェクト基準位置728(たとえば、CoM位置782)、上のパッケージ772の横方向の寸法、及び/または上のパッケージ772の重量に従って、回転を推定し得る。

0083

ロボットシステム100は、載置ルールに従ってパッキングプラン(たとえば、複数の2D載置プラン/位置の3Dの組み合わせ)を生成することができる。たとえば、ロボットシステム100は、高さ要件(たとえば、オブジェクトグループの高さを閾値距離内に維持するためのもの)に従って、2D載置プラン(たとえば、横方向のレイヤ/平面に沿った載置位置)を生成することができる。続いて、ロボットシステム100は、2D載置プランを垂直に重ねる(たとえば、スタックする)ことに基づいて、スタッキングプランを生成することができる。

0084

ロボットシステム100は、オブジェクトを支持壁725に寄りかからせるための載置ルールに従ってパッキングプランを生成することができる。いくつかの実施形態では、載置ルールは、壁支持ルール794、傾き支持ルール796、及び/または複数張り出しルール798を含むことができる。壁支持ルール794は、垂直な向きのコンテナ構造に対する/接触するオブジェクトの載置を制御するための規制、要件、またはそれらの組み合わせを含むことができる。1つまたは複数の実施形態では、壁支持ルール794が最初に分析され得、提案/分析された載置位置が壁支持ルール794を満たす場合に、他のルール(たとえば、傾き支持ルール796及び/または複数張り出しルール798)が分析またはチェックされ得る。

0085

壁支持ルール794は、上のパッケージ772が支持パッケージ774上に載置された場合に、支持パッケージ774に接触する及び/またはこれによって支持される上のパッケージ772の一部(たとえば、その底面の一部)に対応する実効支持795に基づき得る。換言すれば、実効支持795は、支持パッケージ774と上のパッケージ772との重なり部分、及び/または上のパッケージ772の、その張り出し部分を除外した/残りの部分に対応し得る。いくつかの実施形態では、壁支持ルール794は、最小量(たとえば、51%以上などの最小割合閾値)の実効支持795を要求し得る。換言すれば、壁支持ルール794は、張り出し距離が実効支持795よりも所定量だけ短くなることを要求することができる。1つまたは複数の実施形態では、壁支持ルール794は、最小数のコーナー(たとえば、ボックスタイプ構造の8つのコーナーのうち4つ〜6つのコーナー)が支持パッケージ774の上にある/それによって支持されることを要求し得る。

0086

壁支持ルール794はまた、支持壁725と支持パッケージ774との間で測定されるオブジェクト−壁間隔726、上のパッケージ772の1つまたは複数の寸法、及び/または上のパッケージ772のCoM位置782に基づき得る。たとえば、壁支持ルール794は、CoM位置782が支持パッケージ774の上にある及び/またはそれによって支持されるように、CoM位置782が実効支持795の周縁の上または内部にあることを要求し得る。また、壁支持ルール794は、オブジェクト−壁間隔726が実効支持795の横方向の寸法(たとえば、上のパッケージ772の残りの/重なった部分)未満になることを要求し得る。壁支持ルール794は、水平オフセットルール776と類似の態様であるが、上のパッケージ772の支持壁725との接触及び/またはそれによって提供される支持に基づく下げられた支持要件を有する態様を検討し得る。換言すれば、ロボットシステム100は、水平オフセットルール776に違反するが、壁支持ルール794を満たす可能な載置位置を導出、分析、及び/または有効化することができる。たとえば、壁支持ルール794は、水平オフセットルール776によって許容されるよりも横方向にさらに張り出す可能な載置位置を導出し、有効化することができる。載置位置に載置されたオブジェクトは、支持壁725に接触し、コンテナからの構造的支持/安定性を導くので、オブジェクトは本来水平オフセットルール776に違反する位置に載置され得る。

0087

傾き支持ルール796は、上のパッケージ772と支持壁725との接触に関する上のパッケージ772の傾きまたは姿勢の変化に応じてオブジェクトの載置を制御するための規制、要件、またはそれらの組み合わせを含むことができる。いくつかの実施形態では、傾き支持ルール796は、上のパッケージ772が支持壁725に接触せずに隣接する(たとえば、上のパッケージ772の最外部のエッジと支持壁725との間の横方向に沿った離間距離がゼロでない)場合に、適用/テストすることができる。傾き支持ルール796を使用して、輸送中に生じ得る上のパッケージ772のずれ及び/または回転と、その結果生じるコンテナ内の他のオブジェクトへの影響とを考慮することができる。

0088

いくつかの実施形態では、傾き支持ルール796は、上のパッケージ772に関連する傾き角度797に制限(たとえば、最大閾値)を加え得る。傾き角度797は、意図した姿勢であるかまたは候補載置位置にあり回転した姿勢である上のパッケージ772の基準面(たとえば、上面)の角度とすることができる。ロボットシステム100は、ピボット位置793(たとえば、支持壁725に最も近い支持パッケージ774の周縁)を中心として上のパッケージ772の対応する離散化モデルを回転させることに基づいて、傾き角度797を計算することができる。傾き角度797は、支持壁725に接触する上のパッケージ772の周辺部(たとえば、支持壁725に最も近い最上部)に対応することができる。したがって、傾き支持ルール796を使用して、上のパッケージ772の過度な回転(すなわち、支持パッケージ774の位置がずれる、及び/または上のパッケージ772がオブジェクト−壁間隔726に倒れる/落下する回転量)なしで、上のパッケージ772が支持壁725に接触する及び/またはそれによって支持される載置位置を有効化し得る。ロボットシステム100は、傾き支持ルール796を使用して、水平オフセットルール776及び/または壁支持ルール794などの他のルールに違反し得る可能な載置位置を導出、分析、及び/または有効化することができる。換言すれば、傾き支持ルール796に基づいて、ロボットシステム100は、オブジェクトが水平オフセットルール776によって許可されるよりもさらに延在する/張り出す位置を有効化することができ、その理由は、オブジェクトが輸送中にずれた場合でも、オブジェクトが支持/固定されたままとなるためである。

0089

1つまたは複数の実施形態では、傾き支持ルール796は、上のパッケージ772の重量、及び/またはピボット位置793に対する上のパッケージ772のCoM位置782にさらに基づき得る。たとえば、ロボットシステム100は、上のパッケージ772のオブジェクトずれの可能性(たとえば、転置中の横方向の変位の可能性)を、その重量に基づいて計算することができる。また、ロボットシステム100は、上のパッケージ772のオブジェクト回転の可能性を、重量と、ピボット位置793に対する上のパッケージ772のCoM位置782とに基づいて計算することができる。ロボットシステム100は、転置中にオブジェクトが遭遇した力、載置されたオブジェクト及び/またはコンテナの間の摩擦力、及び/または他の関連する物理的なパラメータを考慮した1つまたは複数の所定の式/処理に従って、様々な可能性を計算し得る。ロボットシステム100は、様々な可能性に対する適格な閾値(複数可)を含み得る。換言すれば、ロボットシステム100は、傾き角度797の考慮の有無にかかわらず、計算されたずれ/回転の可能性が適格な閾値を下回る場合に、対象載置位置が傾き支持ルール796を満たすと結論付け得る。

0090

複数張り出しルール798は、複数の/連続した張り出しオブジェクトの載置を制御するための規制、要件、またはそれらの組み合わせを含むことができる。換言すれば、複数張り出しルール798を使用して、支持パッケージ774の上にありそれによって支持される中間オブジェクト799の上にありそれによって支持される候補載置位置を評価することができる。ロボットシステム100は、候補載置位置が中間オブジェクト799の上にあり、中間オブジェクト799が下の1つまたは複数のオブジェクトから張り出しており、中間オブジェクト799の周辺部が、下の1つまたは複数のオブジェクトの周辺部を越えて横方向に延在している場合に、複数張り出しルール798を検討し得る。他の例では(たとえば、中間オブジェクト799の周辺部が、下のオブジェクトの周辺部まで、それを越えずに横方向に延在している場合)、ロボットシステム100は、たとえば、中間オブジェクト799を支持オブジェクトとみなすことによって、中間オブジェクト799に対する候補載置位置を検討し得る。

0091

複数張り出しルール798を処理する際に、ロボットシステム100は、中間の張り出しているオブジェクト799の下の1つまたは複数のパッケージに対する上のパッケージ772の実効支持795を導出することができる。たとえば、ロボットシステム100は、上のパッケージ772及び一番下のパッケージ及び/または支持壁725から横方向に最も遠いパッケージの間の重なりに基づいて、実効支持795を導出することができる。換言すれば、ロボットシステム100は、一番下のオブジェクトまたは支持壁725から横方向に最も遠いオブジェクトを、上のパッケージ772を含む上のオブジェクトの支持パッケージ774として指定し得る。いくつかの実施形態では、複数張り出しルール798の処理の一部として、ロボットシステム100は、上のパッケージ772の得られた実効支持795を使用して、水平オフセットルール776及び/または壁支持ルール794をテストすることができる。ロボットシステム100は、上のパッケージ772の調整された実効支持795が、上述の水平オフセットルール776及び/または壁支持ルール794を満たす場合に、候補載置位置を有効化し、複数張り出しルール798が満たされていると判定することができる。

0092

代替的または追加的には、ロボットシステム100は、上のパッケージ772の候補載置位置を含む、指定された支持パッケージ774(たとえば、一番下のオブジェクト、及び/または候補載置位置の下の、支持壁725から横方向に最も遠いオブジェクト)の上のオブジェクトについての結合基準位置734を有する結合オブジェクト推定(estimation)732を導出することができる。ロボットシステム100は、結合オブジェクト推定732を、結合されたオブジェクト(たとえば、指定された支持パッケージ774の上の、及び/またはそれによって支持されるオブジェクト)の最外部を包含する及び/またはこれと一致する指定された平面形状(たとえば、長方形)として導出することができる。換言すれば、ロボットシステム100は、AABB730に類似しているが、結合されたオブジェクトに関するものである、結合オブジェクト推定732を導出することができる。ロボットシステム100は、結合されたオブジェクトの基準位置(たとえば、CoM位置)を結合することに基づいて、結合基準位置734を導出することができる。たとえば、ロボットシステム100は、対応するパッケージ重量をCoM位置782に対するパラメータ重みとして、(たとえば、空間平均によって)CoM位置782を結合することに基づいて、結合基準位置734を導出することができる。したがって、ロボットシステム100は、結合されたオブジェクトのセットのCoM位置を推定し、処理することができる。

0093

複数張り出しルール798の順守をテストするために、ロボットシステム100は、上のパッケージ772及び/または対応するCoM位置782の代わりに、結合オブジェクト推定732及び/または結合基準位置734を処理/テストすることができる。たとえば、ロボットシステム100は、対応する結合オブジェクト推定732及び/または結合基準位置734が、水平オフセットルール776、壁支持ルール794、傾き支持ルール796、及び/または他の任意の載置ルールを満たす場合に、候補載置位置を有効化することができる。

0094

いくつかの実施形態では、ロボットシステム100は、オブジェクト−壁間隔726を、上のパッケージ772を支持するための限度を表す支持閾値距離と比較し得る。支持閾値距離は、上のパッケージ772の1つまたは複数の物理的な側面(たとえば、パッケージの高さ)に基づき得る。たとえば、支持閾値距離は、オブジェクト−壁間隔726が、上のパッケージ772が横方向にずれて支持壁725と支持パッケージ774との間に落下するほど大きいか否かを判定するためのものとすることができる。したがって、水平オフセットルール776、壁支持ルール794、傾き支持ルール796、及び/または他の載置ルールは、オブジェクト−壁間隔726が支持閾値距離(たとえば、上のパッケージの寸法の分数)を下回ることを要求し得る。1つまたは複数の実施形態では、ロボットシステム100は、オブジェクト−壁間隔726と支持閾値距離との間の関係に基づいて、実効支持795の閾値要件を調整し得る。たとえば、ロボットシステム100は、オブジェクト−壁間隔726が支持閾値距離より大きい場合に、実効支持795の閾値要件を(たとえば、51%〜60%から75%以上まで)増加させ得る。

0095

いくつかの実施形態では、ロボットシステム100は、上のパッケージ772が支持壁725の上端の上に延在する候補載置位置を検討し、有効性確認することができる。ロボットシステム100は、たとえば、(1)支持壁725と上のパッケージ772との重なり量、(2)上端の上に突出している上のパッケージ772の部分の突出量、(3)(1)と(2)との比、(4)上のパッケージ772のCoM位置782(たとえば、壁のエッジに対するCoMの垂直位置)、(5)上のパッケージ772と支持壁725との間の横方向の距離、(6)ピボット位置、(7)載置されたオブジェクトの推定されたまたは所定の摩擦係数、(8)オブジェクトの重量、(9)ずれている/倒れているオブジェクトに関連する最大加速度力閾値、及び/または他の類似の物理的なパラメータに基づいて、そのような載置位置を有効性確認し得る。

0096

ロボットシステム100は、1つまたは複数の所定のシーケンス及び/または相互作用パターンに従って、様々な載置ルールを処理し得る。たとえば、ロボットシステム100は、載置ルールに関連する所定のシーケンス及び/またはフロー(たとえば、if−thenタイプの処理)に従って、候補載置位置をテストし得る。また、ロボットシステム100は、各載置ルールに対応するスコアを処理し、得られたスコアを合計し、合計スコアを載置スコア閾値と比較して、候補載置位置を有効性確認し得る。

0097

例示的な3D計算
図8A及び図8Bは、本技術の1つまたは複数の実施形態による支持の計算の様々な態様の図である。上述のように、図1のロボットシステム100は、図1の対象オブジェクト112の候補載置位置を導出し、テストすることに基づいて、図7Aのパッキングプラン700を導出することができる。候補載置位置は、図7Bの探索木754内のノードを表すことができる。図8A及び図8Bは、オブジェクト(たとえば、スタッキングオブジェクト)の3D載置を計算するための例示的なメカニズムを示し得、これは少なくとも部分的にオフラインで(たとえば、想定されるまたは既知のパラメータを使用して)、及び/または少なくとも部分的にリアルタイムで(たとえば、リアルタイムセンサデータに基づいて)実行され得る。

0098

いくつかの実施形態では、ロボットシステム100は、指定された載置コンテナの離散化モデル(たとえば、図6のコンテナフットプリントモデル622)の至るところに対象オブジェクトの離散化モデル(たとえば、図6のオブジェクトフットプリントモデル612)を反復的に移動させて、候補位置を生成することができる。たとえば、ロボットシステム100は、1つまたは複数の向きに従って離散化台モデルの所定の初期位置(たとえば、コーナー)に対応する離散化オブジェクトモデルを載置することによって、候補位置801の最初のインスタンスを生成することができる。候補位置801の次のインスタンスについて、ロボットシステム100は、離散化オブジェクトモデルを、所定の方向/パターンに従って所定の距離(たとえば、1つまたは複数の単位ピクセル)だけ移動させることができる。

0099

候補位置801が、計画された位置において1つまたは複数のオブジェクトまたは既存のオブジェクト/構造(たとえば、リアルタイム載置計算用)に重なる場合、ロボットシステム100は、載置済みオブジェクトによって提供される支持(たとえば、図7Cの実効支持795)の度合いを計算し、評価することができる。支持の度合いを計算し、評価するために、ロボットシステム100は、載置エリアについての高さ/輪郭を決定し、追跡することができる。たとえば、ロボットシステム100は、処理されたオブジェクト(たとえば、確定または有効化された載置位置を有するオブジェクト)の既知の/想定される高さに応じて、単位面積(たとえば、図6の離散化単位602)あたりの高さ寸法802を更新することができる。リアルタイム処理のために、ロボットシステム100は、図1のタスク位置116に向けられた図2の撮像デバイス222のうちの1つまたは複数からの深度寸法(たとえば、点群値)を使用することができる。地面及び/または台表面の垂直位置は既知であるので(たとえば、施設地面上方のカート/ケージ底面の高さ)、ロボットシステム100は、深度寸法を使用して、台、載置されたオブジェクト、またはそれらの組み合わせの露出した上面(複数可)の高さ/輪郭を計算することができる。

0100

ロボットシステム100は、反復的な載置の導出中に高さ寸法802を含むように離散化台モデルを更新することができる。ロボットシステム100は、離散化台モデル内の各離散化ピクセルに従って高さ寸法802を決定することができる。たとえば、ロボットシステム100は、コンテナ底部及び/または対応する単位ピクセル内の載置/処理済みオブジェクトの表面部分の最大高さとして、高さ寸法802を決定することができる。

0101

載置済みオブジェクトのうちの1つまたは複数に重なる各候補位置801について、ロボットシステム100は、高さ寸法802に基づいて載置確率を評価することができる。いくつかの実施形態では、ロボットシステム100は、各候補位置801において重なる高さ寸法802の最大値を特定することに基づいて、載置確率を評価することができる。ロボットシステム100はさらに、高さ寸法802のうちの最大寸法に対して差分閾値の限度内の高さ寸法802を有する各候補位置801に位置する他の高さ寸法802を特定することができる。適格なセル/ピクセルは、スタックされたオブジェクトが基本的に平坦/水平(すなわち、コンテナ底部の載置面に対して平行)になるように、スタックされたオブジェクトに対して支持を提供することができる位置を表すことができる。

0102

図8Aに示すように、候補位置801の1つ目(たとえば、コンテナフットプリントモデル622の左上角)について、最大の高さ寸法は0.3(すなわち、300ミリメートル(mm)の高さ)とすることができる。0.02(たとえば、20mmを表す)として事前決定された差分閾値では、ロボットシステム100は、上の4つの離散化セル/ピクセルを、差分閾値を満たすものとして識別することができる。ロボットシステム100は、識別された/適格なセル/ピクセルを使用して、支持の度合いを評価/表現することができる。

0103

図8Bに、支持の計算のさらなる例を示す。図8Bに、コンテナフットプリントモデル622(実線の太い輪郭で図示)が候補位置801の左上角に重ねられた、候補位置801のうちの1つを示す。ロボットシステム100は、候補位置801を評価するのに使用されるパラメータである様々な支持パラメータ804を計算/利用することができる。たとえば、支持パラメータ804は、離散化寸法806、重なり面積808、高低差閾値810、支持閾値812、最大高さ814、高さ下限816、適格数818、支持エリア輪郭820のセット、支持エリアサイズ822、支持比率824、CoM位置782、またはそれらの組み合わせを含むことができる。

0104

離散化寸法806は、図6の離散化単位602に応じた図1の対象オブジェクト112の物理的な寸法(たとえば、長さ、幅、高さ、外周など)を記述することができる。たとえば、離散化寸法806は、離散化オブジェクトモデル612/614の周縁を形成する離散化単位602の数量を含むことができる。重なり面積808は、対象オブジェクト112によって占有される面積(たとえば、水平面に沿ったフットプリントサイズ)を記述することができ、これは離散化単位602に従って同様に表現することができる。換言すれば、重なり面積808は、離散化オブジェクトモデル内の離散化単位602の数量に対応することができる。図8Bに示す例では、対象オブジェクト112は、6ピクセル×7ピクセルの離散化寸法806を有することができ、これは42ピクセルの重なり面積808に対応する。

0105

高低差閾値810及び支持閾値812は、候補位置801を処理及び/または有効性確認するために使用される限度に対応することができる。高低差閾値810は、オペレータ及び/または注文によって事前決定及び/または調整できるものであるが、上に載置されたパッケージに接触する及び/またはこれを支持するために、他の基準高さ(たとえば、離散化オブジェクトモデルが重なるエリア内の高さ寸法802のうちの最大のインスタンスに対応する最大高さ814)から許容できる偏差を表すことができる。換言すれば、高低差閾値810は、上に載置されたパッケージに接触する及び/またはこれを支持することができる面の高さの範囲を定義するために使用することができる。したがって、最大高さ814に対して、高さ下限816は、スタックされたパッケージに対して支持を提供できる重なり面積808内の高さの下限に対応することができる。図8Bに示す例では、高低差閾値810は0.02とすることができる。最大高さ814が0.2である場合、高さ下限816は0.18とすることができる。したがって、対象オブジェクト112を候補位置801に載置する際、ロボットシステム100は、0.18より大きい高さを有する面/ピクセルが対象オブジェクト112に接触する及び/またはこれに支持を提供すると推定することができる。

0106

したがって、1つまたは複数の実施形態では、ロボットシステム100は、高低差閾値810に応じて重なり面積808内の離散化単位602をカテゴリ化することができる。たとえば、ロボットシステム100は、高低差閾値810を満たす高さ(すなわち、高さ下限816以上の値)を有する離散化単位602を、支持位置828(たとえば、図4Bに影付きのピクセルで表した、オブジェクトを上にスタックすることが可能な面を表す離散化単位602のグループ)としてカテゴリ化することができる。ロボットシステム100は、他の離散化単位602を、不適格位置830(たとえば、高さ下限816未満の高さを有するピクセル)としてカテゴリ化することができる。

0107

支持閾値812は、支持位置828の十分性に基づいて候補位置801を評価するための限度を表すことができる。たとえば、支持閾値812は、支持位置828に関連する量、比、面積、位置、またはそれらの組み合わせを評価するためのものとすることができる。いくつかの実施形態では、支持閾値812は、候補位置801についての適格数818(たとえば、支持位置828の総数)が対象オブジェクト112を支持するのに十分であるか否かを判定するために使用することができる。

0108

1つまたは複数の実施形態では、支持閾値812は、支持位置828に関連する支持エリア(たとえば、高さ閾値によって決定することができる、上にスタックされたオブジェクトに支持を提供できる離散化単位602)を評価するために使用することができる。たとえば、ロボットシステム100は、不適格位置830をまたぐまたはその周囲に伸びるエッジを伸ばす及び/または線を決定することによって、支持位置828の最も外側の/外周のインスタンスのコーナーをつなぐことに基づいて、支持エリア輪郭820を決定することができる。このようにして、支持エリア輪郭820は、不適格位置830を除外することができる。したがって、支持エリア輪郭820は、支持位置828の外周インスタンスに基づいて支持エリアの外周を画定することができる。支持エリア輪郭820は不適格位置830をまたぐ及び/または含むことができるので、支持エリアサイズ822(たとえば、支持エリア内の離散化単位602の数量)は、適格数818より大きくすることができる。したがって、支持エリアサイズ822は実質的に、支持が提供される最も外側のエッジ/コーナー間の間隔を表す。より広い支持が好ましいので(たとえば、張り出しを減らす及び/または安定性を向上させるために、支持エリア輪郭820の部分がオブジェクトの重なり面積808より大きい場合)、支持閾値812は、(たとえば、支持エリア輪郭820を評価するために)支持エリア内の離散化単位602の最小数に対応することができ、それによって、支持が提供される最も外側のエッジ/コーナー間の間隔を効果的に評価することができる。

0109

いくつかの実施形態では、支持閾値812は支持比率824を評価するためのものとすることができ、支持比率824は、適格数818及び/または支持エリアサイズ822を重なり面積808と比較することに基づいて計算することができる。たとえば、支持比率824は、水平安定性、支持重量の集中度、またはそれらの組み合わせを表現するために、適格数818と重なり面積808との比率を含むことができる。また、支持比率824は、対象オブジェクト112の下の支持エッジ/コーナー間の相対幅を表すために、支持エリアサイズ822と重なり面積808との比を含むことができる。

0110

さらに、ロボットシステム100は、対象オブジェクト112のCoM位置782に基づいて候補位置801をさらに評価することができる。いくつかの実施形態では、ロボットシステム100は、図2のマスターデータ252から対象オブジェクト112のCoM位置782にアクセスする、及び/または対象オブジェクト112を把持する及び/または持ち上げることに基づいてCoM位置782を動的に推定することができる。アクセス/推定されると、ロボットシステム100は、CoM位置782を支持エリア輪郭820と比較することができる。ロボットシステム100は、候補位置801がCoM位置782を支持エリア輪郭820内に含むように要求し、そのような要求を満たすことができない候補位置801を排除する/不適格とみなすことができる。1つまたは複数の実施形態では、ロボットシステム100は、CoM位置782と支持エリア輪郭820との間の(たとえば、x軸及び/またはy軸に沿った)離間距離に基づいて、載置スコアを計算し、評価することができる。

0111

ロボットシステム100は、支持パラメータ804を使用して制約/要件を評価することができる。たとえば、ロボットシステム100は、支持閾値812、CoM位置閾値(たとえば、CoM位置782を支持エリア輪郭820内に含める要求)、及び/または他のスタッキングルールを満たさない候補位置を排除する/不適格とみなすことができる。また、ロボットシステム100は、支持パラメータ804を使用して、所定の重み及び/または式に従って、候補位置801(たとえば、制約を満たす位置)についての載置スコアを計算することができる。以下で詳細に説明するように、ロボットシステム100は、計算された載置スコアを使用して、所定の設定(たとえば、重み/式によって反映されるもの)に従って候補位置801をランク付けすることができる。

0112

いくつかの実施形態では、ロボットシステム100は、対象オブジェクト112を載置するように図3のエンドエフェクタ304を位置付けることができるか否かを判定することができる。たとえば、ロボットシステム100は、導出された候補位置801に応じて、離散化エンドエフェクタモデル(たとえば、図6のグリッパフットプリントモデル632及び/または図6のグリッパ側面モデル634)を、図1のタスク位置116の離散化台モデル(たとえば、コンテナフットプリントモデル622及び/またはコンテナ側面モデル624)上に重ねることができる。ロボットシステム100は、離散化エンドエフェクタモデルが図7Cの支持壁725または対応する離散化部分の間に(たとえば、重ならずに)存在する場合に、候補位置801を検証し得る。

0113

説明用の例として、ロボットシステム100は、候補位置801のうちの1つまたは複数(たとえば、各々)について、エンドエフェクタ304の利用可能な把持構成のセット(たとえば、中心部の上の、周縁に対して位置合わせされた、オブジェクトに対して1〜359度回転されたものなど)を検証することができる。各把持構成について、ロボットシステム100は、把持構成に従って離散化エンドエフェクタモデルを調整し、調整されたモデルを離散化台モデルに重ねることができる。重ねられたモデルを使用して、ロボットシステム100は、対象オブジェクト112の載置位置における(すなわち、対象オブジェクト112が候補位置801において載置面に置かれている状態での)エンドエフェクタ304の深度値を計算することができる。候補位置801における対象オブジェクト112の上面の深度値(複数可)は、離散化台モデルに応じた載置面の深度値、コンテナフロアと候補位置801との間に載置されたまたは載置するように計画された1つまたは複数のオブジェクトの高さ、及び/または対象オブジェクト112の高さの合計として計算することができる。エンドエフェクタの対応する深度値(複数可)は、候補位置801における対象オブジェクトの上面の計算された深度値と、離散化エンドエフェクタモデルに対応する深度値(複数可)との合計として計算することができる。

0114

各把持構成について、ロボットシステム100は、離散化エンドエフェクタモデルの深度値を、候補位置801において対象オブジェクト112を囲む深度値(たとえば、他のオブジェクト及び/または支持壁725の高さ)と比較することができる。ロボットシステム100は、離散化エンドエフェクタモデルの2Dメッシュが、コンテナの一部(たとえば、支持壁725)またはその中にスタックされたオブジェクトと衝突することを、離散化台及び/またはその上のオブジェクトの深度値が示している場合に、把持構成を却下することができる。ロボットシステム100は、離散化台モデルと離散化エンドエフェクタモデルとの間で深度値が同じであるかまたは閾値範囲内である場合、起こりそうな衝突を検出することができる。ロボットシステム100はまた、離散化エンドエフェクタが離散化台モデルの対応する/重なる部分より低いことを深度値が示している場合に、起こりそうな衝突を検出し得る。同様に、ロボットシステム100は、エンドエフェクタ及びロボットアームの取り付けられた部分を表す2Dメッシュが離散化台モデルの境界に接触するかまたはこれを越えて延在する場合に、潜在的な衝突を決定することができる。

0115

ロボットシステム100は、衝突分析合格した把持構成を承認または有効化することができる。換言すれば、ロボットシステム100は、いかなる潜在的な衝突にも対応しない残りの把持構成を有効化することができる。ロボットシステム100はさらに、把持構成を有効化することに基づいて、対応する候補位置801を有効化することができる。このようにして、ロボットシステム100は、対象オブジェクト112の載置を導出する際に、エンドエフェクタ304を考慮することができる。ロボットシステム100はさらに上述の処理を使用して、想定外の状況(たとえば、支持壁725の想定外の位置及び/または形状)に応じて調整するように載置プランをリアルタイムに更新する場合に、エンドエフェクタ304を考慮することができる。

0116

例示的なモーション計画
図9A図9Cは、本技術の1つまたは複数の実施形態による例示的なモーションプラン計算の例示した態様である。図9A及び図9Bは、図1の対象オブジェクト112を載置するための例示的な進入を示す側面視である。図6A及び図6Bはそれぞれ、対象オブジェクト112をコンテナ内の1つまたは複数の先行オブジェクト508(たとえば、載置済みの、または先に載置するように計画されたオブジェクト)の上の図8Aの対応する候補位置801に載置するための進入路901を示す。

0117

図1のロボットシステム100は、F−1からF−5までの破線のボックスで図示した進入増分903に基づいて、進入路901を導出することができる。進入増分903は、対応する進入路901に沿った3D空間における対象オブジェクト112、図3のロボットアーム302(もしくはその一部)、図3のエンドエフェクタ304、またはそれらの組み合わせの順次位置に対応するサンプリング刻みを表すことができる。いくつかの実施形態では、進入増分903は、モデルに使用される図6の離散化単位602の1つまたは複数の寸法に一致することができる。進入路901は、直線セグメント/方向に対応する経路セグメント904を含むことができる。経路セグメント904は、対象オブジェクト112を図8Aの対応する候補位置801に載置するための最終セグメント906を含み得る。いくつかの実施形態では、最終セグメント906は、垂直(たとえば、下向き)方向または移動を含むことができる。他の実施形態では、最終セグメント906は、垂直な下向きの進入増分に続く、候補位置801への角度がついた下向きの軌道であって、たとえば、オブジェクトを張り出しの下に及び/または横方向に延在して載置するためのものを含むことができる。

0118

進入路901を導出するために、ロボットシステム100は、対象オブジェクト112を候補位置801に載置する場合に、対象オブジェクト112、ロボットアーム302、及び/またはエンドエフェクタ304の障害物になり得る先行オブジェクト902及び/または支持壁725のいずれかを識別することができる。1つまたは複数の実施形態では、ロボットシステム100は、潜在的な障害物(複数可)910を、開始位置114の上の位置と対応する候補位置801との間で延在する水平線(たとえば、x−y平面に沿った直線)及び/または2D平面に重なる先行オブジェクト902のインスタンス(複数可)として識別することができる。ロボットシステム100はさらに、潜在的な障害物(複数可)910を、たとえば、水平線と平行でありこれに重なるレーン912であって、対象オブジェクト112の1つまたは複数の寸法(たとえば、幅、長さ、及び/または高さ)に基づく幅を有するレーン912を導出することに基づいて、水平線付近に導出されたレーン912(図9Cに図示)と重なる先行オブジェクト902のインスタンス(複数可)として識別することができる。図9A及び図9Bに示すように、開始位置114は、候補位置801の右側とすることができる。同様に、ロボットシステム100はさらに、潜在的な障害物(複数可)910をコンテナの支持壁725として識別することができる。

0119

いくつかの実施形態では、ロボットシステム100は、上述の深度寸法に基づいて潜在的な障害物910を有効性確認することができる。たとえば、ロボットシステム100は、上面深度寸法のうちの1つまたは複数が候補位置801の上面深度寸法以上である潜在的な障害物910を有効性確認/識別することができる。ロボットシステム100は、候補位置801の上面深度寸法未満の上面深度寸法を有する先行オブジェクト902を潜在的な障害物910から排除することができる。1つまたは複数の実施形態では、ロボットシステム100は、候補位置801の高さ及び/または潜在的な障害物910の高さに関連する曖昧さに基づいて、潜在的な障害物910を識別/排除することができる。

0120

いくつかの実施形態では、ロボットシステム100は、進入路901を逆順で導出することができ、たとえば、候補位置801から開始して開始位置114で終了することができる。したがって、ロボットシステム100は、潜在的な障害物910を回避するように、最終セグメント906を最初に(たとえば、他のセグメントより前に)を導出することができる。たとえば、ロボットシステム100は、オブジェクト及びエンドエフェクタ(たとえば、図5Cの係合状態のインターフェース高534に応じたグリッパモデル及びオブジェクトモデルの組み合わせ)の寸法に応じてレーン912のセットを決定することができる。いくつかの実施形態では、レーンのセットは、対象オブジェクトの高さ及び/または幅に対応する1つまたは複数の横方向延在レーンを含むことができる。レーンのセットはまた、対象オブジェクトの長さ及び/または幅に対応する1つまたは複数の垂直方向延在レーンを含み得る。

0121

ロボットシステム100は、候補位置801から上に延在する垂直方向延在レーンを最初に導出することができる。ロボットシステム100は、垂直方向延在レーンが任意の先行オブジェクト902及び/または支持壁725に重なる/接触するか否かを評価することができる。ロボットシステム100は、重なり/接触を検出したことに基づいて候補位置801を不適格とみなし、及び/または横方向の移動を評価することができる。垂直方向延在レーンが、いずれの潜在的な障害物910(たとえば、先行オブジェクト902及び/または支持壁725)にも重ならない/接触しない場合、ロボットシステム100は、垂直方向延在レーンから開始位置114の上の位置までの横方向延在レーンを導出することができる。ロボットシステム100は、所定の最小の高さ(たとえば、最小/最大の降下高さ及び/またはコンテナ壁の高さ)の横方向延在レーンを導出することができる。

0122

ロボットシステム100は同様に、横方向延在レーンが任意の潜在的な障害物910に重なる/接触するか否かを評価することができる。ロボットシステム100は、潜在的な障害物の検出に基づいて、横方向延在レーンの高さを(たとえば、1つまたは複数の進入増分903だけ)反復的に増加させることができる。このようにして、ロボットシステム100は、邪魔のない進入レーンが決定され、及び/または最大評価高さに達するまで、増加する高さの横方向レーンを評価することができる。邪魔のないレーンなしで最大評価高さに達した場合、ロボットシステム100は、候補位置801を否認することができる。そうでなければ、ロボットシステム100は、横方向延在レーンを有効性確認することができる。

0123

ロボットシステム100は、有効性確認された垂直レーン(たとえば、最終セグメント906に対応するもの)と、有効性確認された横方向レーン(たとえば、経路セグメント904に対応するもの)とに応じて、進入路901を導出することができる。いくつかの実施形態では、ロボットシステム100は同様に、進入路901に対して、斜めに延在するレーン(たとえば、上向きにある角度で伸びるレーン)及び/または複数のレーンセグメント(たとえば、ステップパターンに従うように反復的に、上昇した後に横移動するもの)を評価することができる。

0124

説明用の例として、ロボットシステム100は、底面/レーンエッジが潜在的な障害物910の上方にあり、及び/または最も近い潜在的な障害物を間隙閾値914(たとえば、対象オブジェクト112と潜在的な障害物910との間の接触または衝突を回避するための、潜在的な障害物910の最高点の上方の対象オブジェクト112に対する最小垂直間隔に関する要件)だけ離れて飛び越えるまで、横方向延在レーンの高さを増加させ続けることができる。レーンが間隙閾値914を満たす場合、ロボットシステム100は、対応する進入増分を水平方向に沿って(たとえば、開始位置114へ向けて)所定の距離だけ調整し得る。したがって、ロボットシステム100は、候補位置801及び進入路901に基づいて最終セグメント906及び/または後続の経路セグメント904を導出することができる。

0125

導出されると、ロボットシステム100は、進入路901を使用して、対応する候補位置801を評価することができる。いくつかの実施形態では、ロボットシステム100は、進入路901に応じて載置スコアを計算することができる。たとえば、ロボットシステム100は、最終/垂直セグメントについてのより短い長さ/距離のための設定(たとえば、所定の載置設定に対応する1つまたは複数の重みに応じたもの)に応じて、載置スコアを計算することができる。1つまたは複数の実施形態では、ロボットシステム100は、候補位置801を排除するかまたは不適格とみなすために使用される進入路901に関連する上限などの制約(たとえば、最終/垂直セグメント906についてのもの)を含むことができる。

0126

いくつかの実施形態では、ロボットシステム100はさらに、他の衝突/障害関連パラメータに従って対応する候補位置801を評価することができる。たとえば、ロボットシステム100は、候補位置360と、先行オブジェクト902のうちの1つまたは複数との間の水平間隔916に応じて候補位置801を評価することができる。各水平間隔916は、対応する候補位置360と、先行オブジェクト902の隣接するインスタンスとの間の、水平方向(たとえば、x−y平面)に沿った距離(たとえば、最短距離)とすることができる。ロボットシステム100は、進入路901について上述したのと同様に、水平間隔916に基づいて候補位置360についての載置スコアを計算することができる。また、ロボットシステム100は、水平間隔916が最小要件を満たさない場合などに、水平間隔916に基づいて候補位置360を排除するかまたは不適格とみなすことができる。最終セグメント906は一般的にはオブジェクト載置に関して最も難しいので、最終セグメント906から開始する進入路901の有効性確認によって、進入路901を有効性確認するための処理時間が短縮される。

0127

想定外の状況のための例示的な調整
図10に、本技術の1つまたは複数の実施形態による例示的なリアルタイムセンサデータ(たとえば、センサ出力1000)を示す。図1のロボットシステム100は、対応するセンサを介してセンサ出力1000を取得することができる。たとえば、センサ出力1000は、図3の上面視センサ310からの上面視画像1052、及び/または図3の側面視センサ312からの側面視画像1054を含み得る。上面視画像1052及び/または側面視画像1054は、図1のタスク位置116にあるコンテナ(たとえば、図4Aのカート410及び/または図4Cのケージ420)及び/またはコンテナ内のオブジェクトを描くことができる。

0128

図1のロボットシステム100は、コンテナに関連する想定外の特徴1002についてセンサ出力1000を分析することができる。たとえば、ロボットシステム100は、(たとえば、Sobelフィルタなどのエッジ検出メカニズムを介して)実際の特徴606を検出し、それらをコンテナの所定の/想定される特徴(たとえば、エッジ)と比較することに基づいて、センサ出力1000を分析することができる。ロボットシステム100は、センサ出力1000内に描かれた実際の特徴606が、コンテナの想定される特徴(たとえば、対応するテンプレートによって表されるもの)及び/または所定のエラー条件用のテンプレートパターンから偏位している場合に、想定外の特徴1002を検出することができる。想定外の特徴1002のいくつかの例は、図7Cの支持壁725のエラー条件、たとえば、半開のカート壁(左の壁で図示)及び/または反った壁(右の壁で図示)などに対応することができる。

0129

想定外の特徴1002は、想定載置面から偏位した載置面に対応し得る。たとえば、半開のカート壁及び/または反った壁によって、コンテナ底面の減少した部分が露出され得る。したがって、想定される状況に基づいて導出された図7Aのパッキングプラン700は、想定外の特徴1002を有する実際のコンテナには適用できない場合がある(たとえば、調整なしで適合しない場合がある)。また、想定外の特徴1002は、パッキングプラン700に関連するモーションプラン(たとえば、図9Aの進入路901)についての想定外の障害物/妨害物を示し得る。

0130

したがって、想定外の特徴1002を検出したことに応答して、ロボットシステム100は、想定外の特徴1002を考慮するようにパッキングプラン700を動的に調整し得る。換言すれば、ロボットシステム100は、想定外の特徴1002によらず、またはこれを考慮して、計画されたオブジェクトをコンテナ内に載置するようにパッキングプラン700を動的に(たとえば、パッキング/積載動作中に)生成または更新することができる。パッキングプラン700を動的に調整する際に、ロボットシステム100は、センサ出力1000を使用して、想定外の特徴1002を含むかまたは表現する1つまたは複数の実際のコンテナモデルを動的に生成することができる。たとえば、ロボットシステム100は動的に、上面視画像1052に基づいて調整されたフットプリントモデル1022を生成し、及び/または側面視画像1054に基づいて調整された側面モデル1024を生成することができる。ロボットシステム100は、図6の離散化単位602及び/または図9Aの進入増分903に従って、センサ出力1000をピクセル化及び/または離散化することに基づいて、調整されたモデルを生成することができる。たとえば、ロボットシステム100は、深度、色、形状、及び/または他のパラメータに関連する所定のパターンに基づいて、支持壁725(たとえば、その1つまたは複数の内側の上端)及び/またはコンテナ底部に対応する検出されたエッジを識別することができる。ロボットシステム100は、識別されたエッジの1つまたは複数の所定のインスタンスを開始/基準エッジ(たとえば、モデル境界608の一部)として選択することができる。ロボットシステム100は、選択されたエッジを使用し、ピクセル化処理のために支持壁725の間のエリア/スペースの分割を開始することができる。ロボットシステム100は、支持壁725に対応するエッジ及び/または関連する位置/高さを超えることも、それらを越えて延在することもなく、エリア/スペースをピクセル化することができる。このようにして、ロボットシステム100は、モデル境界608の残りの部分を決定することができる。したがって、ロボットシステム100は、オブジェクトが格納され得る調整済み載置ゾーン1026を表す調整されたモデルを動的に生成することができる。

0131

上述のように、ロボットシステム100は、図4Aの想定載置ゾーン430とは異なり得る調整済み載置ゾーン1026を動的に決定することができる。想定外の特徴1002が検出された場合、ロボットシステム100は、調整済み載置ゾーン1026を想定載置ゾーン430及び/またはオブジェクトをコンテナ内に載置するためのパッキングプラン700と比較することができる。たとえば、ロボットシステム100は、コンテナモデル及び/またはパッキングプラン700を調整されたモデルに重ねることができる。したがって、ロボットシステム100は、想定載置ゾーン430が調整済み載置ゾーン1026と異なるか否か、及び/またはパッキングプラン700が調整済み載置ゾーン1026を越えて延在するか否かを判定することができる。

0132

ロボットシステム100は、想定載置ゾーン430が調整済み載置ゾーン1026と異なる場合、及び/またはパッキングプラン700またはその一部が調整済み載置ゾーン1026を越えて延在する場合、パック再配置を開始することができる。ロボットシステム100は、調整済み載置ゾーン1026内でパッキングプラン700を動かすことに基づいて、パック再配置を実施することができる。たとえば、ロボットシステム100は、最初に図7AのAABB730を調整済み載置ゾーン1026の所定のコーナー/エッジに位置合わせし、AABB730が調整済み載置ゾーン1026内に含まれるか否かを評価することができる。AABB730の最初の位置合わせが調整済み載置ゾーン1026の境界内に含まれない場合、ロボットシステム100は、所定のパターンに従って調整済み載置ゾーン1026内でAABB730を反復的にずらし、AABB730が調整済み載置ゾーン1026内に含まれるか否かを評価することができる。このようにして、ロボットシステム100は、パッキングプラン700内の全てのオブジェクトの載置位置をグループ/ユニットとして調整し得る。

0133

AABB730の載置が調整済み載置ゾーン1026内に収まる場合、ロボットシステム100は、パッキングプラン700の調整された位置を有効性確認することができる。いくつかの実施形態では、ロボットシステム100は、図9Aの進入路901が、パッキングプラン700のずらされたまたは調整されたインスタンス内の1つまたは複数のオブジェクトについて、検出されたコンテナエッジと重なるか否かを評価することに基づいて、パッキングプラン700の調整された位置を有効性確認することができる。たとえば、ロボットシステム100は、調整載置位置を考慮するように、第1のオブジェクトの進入路901、第1のレイヤ、AABB730の周辺位置のオブジェクト、及び/または他のオブジェクトを更新することができる。ずらされた進入路901をセンサ出力1000に重ねて比較することによって、ずらされた進入路901がコンテナ壁及び/または先行オブジェクトと重なるか/衝突するかを判定することができる。評価された進入路が、想定外の特徴に関して図9Aの潜在的な障害物910を回避する場合、ロボットシステム100は、ずらされた位置に従ってパッキングプラン700を有効化し、実施することができる。このようにして、ロボットシステム100は、たとえば、パッキングプラン700及び/または進入路901を再導出することなく、想定外の特徴1002を踏まえてパッキングプラン700を実施することができる。全てのオブジェクトが調整済み載置ゾーン1026内に含まれるAABB730の代替的位置をロボットシステム100が決定できない場合、ロボットシステム100は、パッキングプラン700を再導出し、及び/またはコンテナの交換を開始/実施し得る。想定外の特徴1002に対する動的な調整に関する詳細については後述する。

0134

図11は、本技術の1つまたは複数の実施形態による、図1のロボットシステム100を動作させる第1の例示的な方法1100の流れ図である。方法1100は、オブジェクト(たとえば、パッケージ、ケース、及び/またはボックス)をコンテナ(たとえば、図4Aのカート410及び/または図4Cのケージ420)内に載置するための図7Aのパッキングプラン700を導出するためのものとすることができる。方法1100は、図2の記憶デバイス204のうちの1つまたは複数に記憶された命令を、図2のプロセッサ202のうちの1つまたは複数によって実行することに基づいて、実施することができる。プロセッサ202は、たとえば、図1の対象オブジェクト112を図1の開始位置114から図1のタスク位置116にあるコンテナまで転置することによって、パッキングプラン700に従って図3のロボットアーム302及び/または図3のエンドエフェクタ304を制御することができる。たとえば、プロセッサ202は、図9Aの進入路901に沿ってコンポーネント/オブジェクトを操作し、それらをコンテナ内の対応する載置位置に載置するようにロボットユニットを制御することができる。

0135

ブロック1102において、ロボットシステム100は、タスク位置116にあるコンテナ内に載置されるように指定されたオブジェクトのセット(たとえば、図7Bのスタックされたオブジェクト724、図7Cの上のパッケージ772、図7Cの支持パッケージ774、図7Cの中間オブジェクト799などと判定されるオブジェクト)を識別することができる。たとえば、ロボットシステム100は、パッキングに利用可能な、入荷内の、指定された位置に到着した、ソースに配置された、載置されるように指定された、及び/または注文/要求/目録内にリスト化されたオブジェクト(たとえば、図7Bの利用可能パッケージ742のセット)を識別することができる。

0136

また、ブロック1102において、ロボットシステム100は、識別されたオブジェクトを受け取るために利用可能なコンテナを識別することができる。たとえば、ロボットシステム100は、空きまたは部分的に満たされたステータスを有する及び/またはアクセス可能(たとえば、現在使用中でなく、ブロックもされていない)カート410及び/またはケージ420を識別することができる。また、ロボットシステム100は、キューなどから利用可能になるコンテナを識別することができる。ロボットシステム100は、識別されたコンテナの特性/特質(たとえば、カテゴリ、寸法、識別子など)をさらに特定し得る。ロボットシステム100は、他のシステム(たとえば、輸送ロボットシステム)とインターフェースをとり、図2のマスターデータ252から情報にアクセスし、及び/またはコンテナから(たとえば、所定の位置のセンサを介して)リアルタイム情報を取得して、コンテナ及び/またはそれらの特性を特定することができる。

0137

ブロック1104において、ロボットシステム100は、1つまたは複数の離散化モデルを(たとえば、リアルタイムに生成する及び/またマスターデータ252からアクセスすることにより)取得することができる。たとえば、ロボットシステム100は、たとえば、図7Aのオブジェクトモデル706〜710、図6の対応するフットプリントモデル612、及び/または図6の対応する側面モデル614などの識別されたオブジェクトを表す離散化モデルを取得することができる。また、ロボットシステム100は、たとえば、図6のコンテナフットプリントモデル622及び/または図6のコンテナ側面モデル624などの識別されたコンテナを表す離散化モデルを取得することができる。

0138

いくつかの実施形態では、ロボットシステム100は、図6の離散化単位602(たとえば、設定された寸法を有するピクセル)に従ってオブジェクト/コンテナの物理的な寸法または画像をピクセル化または分割することに基づいて、リアルタイムに(たとえば、注文を受けた後及び/またはパッキング動作を開始する前に、あるいはオフラインで)離散化モデルを生成することができる。離散化単位602の寸法は、製造業者、注文した顧客、及び/またはオペレータによって、事前に決定するかまたは動的に設定することができる。たとえば、離散化単位602は、1ミリメートル(mm)もしくは1/16インチ(in)またはそれ以上(たとえば、5mmもしくは20mm)であり得る。いくつかの実施形態では、離散化単位602は、オブジェクトのうちの1つまたは複数及び/またはコンテナの寸法またはサイズに基づくことができる(たとえば、割合または分数)。

0139

いくつかの実施形態では、ロボットシステム100は、記憶デバイス204及び/または他のデバイス(たとえば、図2の通信デバイス206を介してアクセスされるパッケージ供給元の記憶デバイス、データベース、輸送ロボットを制御するためのシステム、及び/またはサーバ)に記憶された離散化モデルにアクセスすることができる。ロボットシステム100は、識別されたオブジェクト及び/または識別されたコンテナを表す所定の離散化モデルにアクセスすることができる。たとえば、ロボットシステム100は、マスターデータ252(たとえば、所定のテーブルまたはルックアップテーブル)において利用可能オブジェクト及びそれらに対応するモデルを検索することによって、識別されたオブジェクトに対応する離散化オブジェクトモデルにアクセスすることができる。同様に、ロボットシステム100は、利用可能オブジェクトが載置されることになる識別されたカートまたはケージなどのタスク位置116を表す離散化コンテナモデルにアクセスすることができる。

0140

ブロック1106において、ロボットシステム100は、オブジェクトグループ(たとえば、識別されたオブジェクトのサブグループ)を決定することができる。ロボットシステム100は、識別されたオブジェクトの1つまたは複数の特性における類似性及び/またはパターンに応じて、オブジェクトグループを決定することができる。いくつかの実施形態では、ロボットシステム100は、所定のグループ化条件/要件、たとえば、オブジェクト優先度(たとえば、1つまたは複数の顧客によって指定されるもの)、脆性レーティング(たとえば、オブジェクトによって支持可能な最大重量)、重量、寸法(たとえば、高さ)、タイプ、またはそれらの組み合わせに従ってオブジェクトグループを決定することができる。オブジェクトをグループ化する際に、ロボットシステム100は、グループ化条件/要件に合致する識別されたオブジェクトの様々な特性をマスターデータ252において検索することができる。

0141

ブロック1108において、ロボットシステム100は、識別されたオブジェクト及び/またはオブジェクトグループに対する処理順序(たとえば、載置位置を検討/導出するシーケンス)を導出することができる。いくつかの実施形態では、ロボットシステム100は、1つまたは複数の配列条件/要件に従って処理順序を導出することができる。たとえば、ロボットシステム100は、たとえば、オブジェクト数が多いグループを載置計画においてより早く処理するために、各グループ内のオブジェクト数に応じて、オブジェクトグループの処理を優先することができる。いくつかの実施形態では、配列条件は、たとえば、重量範囲、脆性レーティングなどについて、グループ化条件と重複することができる。たとえば、ロボットシステム100は、より重い及び/またはより脆弱でないオブジェクトの処理を優先して、より早く処理し、及び/またはより下位のレイヤに載置するようにすることができる。

0142

いくつかの実施形態では、ロボットシステム100は、合計水平面積に応じて載置計画を優先することができる。ロボットシステム100は、マスターデータ252において指定された情報を使用して、グループ内のオブジェクトの上面の表面積を(たとえば、対応する幅と長さとを乗算することなどによって)計算するまたはアクセスすることができる。合計水平面積を計算する際に、ロボットシステム100は、同一のタイプである及び/または閾値範囲内の高さを有するオブジェクトの表面積を加算することができる。いくつかの実施形態では、ロボットシステム100は、より大きい合計水平面積を有するグループの載置計画を優先して、より早く処理し、及び/またはより下位のレイヤに載置するようにすることができる。

0143

1つまたは複数の実施形態について、ロボットシステム100は、識別されたオブジェクトの識別子及び/または数量をバッファ(たとえば、記憶デバイス204)にロードすることができる。ロボットシステム100は、グループに従ってバッファ内の識別子を配列することができる。さらに、ロボットシステム100は、処理順序に応じてバッファ内の識別子を配列することができる。したがって、バッファ内の配列された値は、図7Bに示す利用可能パッケージ742及び/または残余パッケージ752に対応することができる。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ