(57)【要約】【課題】自動物体検出／登録機構を備えたロボットシステムを提供する。【解決手段】認識されていない物体を登録するようにロボットシステムを動作させるためのシステムおよび方法を開示する。ロボットシステムは、スタート位置にある認識されていない物体を表す第１の画像データを使用して、最初の最小実行可能領域（ＭＶＲ）を導出し、認識されていない物体を最初に移動させるための動作を実施してよい。ロボットシステムは、最初の移動動作後の認識されていない物体を表す第２の画像データを分析して、最初のＭＶＲの精度を表す条件を検出してよい。ロボットシステムは、最初のＭＶＲと、そのＭＶＲの検出した条件に基づいた調整とを登録してよい。【選択図】図１５
2021503374.tif 000002
【特許請求の範囲】
【請求項１】
ロボットシステムを動作させる方法であって、
スタート位置にある認識されていない物体の１つまたは複数の表面を表す第１の画像データを取得することと、
前記認識されていない物体の前記表面のうちの１つの最初の推定値を表す最初の最小実行可能領域（ＭＶＲ）を、前記第１の画像データに基づいて、導出することと、
所定の方向および所定の距離に従って、前記認識されていない物体を最初に移動させるための動作を実施することと、
前記最初の移動の後、前記認識されていない物体を表す第２の画像データを取得することと、
前記第２の画像データに描かれており、且つ、前記第２の画像データに描かれた前記表面の推定された境界を表す露出した辺を識別することと、
前記第２の画像データの前記露出した辺に基づいて、前記最初のＭＶＲを評価することと、
前記最初のＭＶＲを評価することに基づいて、最終的なＭＶＲを生成することと、
前記最初の移動の後、前記認識されていない物体に関するタスクを行うための動作を実施することと、
前記タスクを実施しながら、前記認識されていない物体の新しい記録を表し、且つ、前記最終的なＭＶＲを含む新しい登録データを作成することと、
を含む、前記方法。
【請求項２】
前記最初のＭＶＲを評価することは、
前記第２の画像データの前記露出した辺のうち、前記認識されていない物体の移動に使用される１つまたは複数のロボット構成要素によって遮蔽されない物体の辺を表す明瞭な辺を識別することと、
遮蔽された領域とは別の前記第２の画像データの一部を表す分析領域を、前記明瞭な辺に基づいて、決定することと、
前記明瞭な辺と角度をなして交差する前記分析領域の補完的な辺を識別することと、
前記明瞭な辺および前記補完的な辺の長さの測定値を決定することと、
前記第２の画像データからの前記辺の長さの測定値を前記最初のＭＶＲの寸法と比較することと、
を含む、請求項１に記載の方法。
【請求項３】
前記最初の移動のための前記動作の実施に基づいて、且つ、前記タスクを行うための前記動作の実施に基づいて、前記認識されていない物体を把持するエンドエフェクタと、前記エンドエフェクタに動作可能に結合されたロボットアームとの現在の姿勢と、前記実施中の前記ロボットアームの位置決めを記述する実世界の構成要素の位置を追跡することをさらに含み、
前記明瞭な辺を識別することは、前記第２の画像データの前記露出した辺が前記追跡された構成要素の位置から閾距離の外側であると判断することを含む、
請求項２に記載の方法。
【請求項４】
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分に一致する時、予測した状態を検出することを含み、
前記最終的なＭＶＲを生成することは、前記予測した状態に基づいて、前記最初のＭＶＲを前記最終的なＭＶＲとして決定することを含む、
請求項１に記載の方法。
【請求項５】
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分に一致しない時、予期せぬ状態を検出することを含み、
前記最終的なＭＶＲを生成することは、前記第２の画像データの前記１つまたは複数の部分および／または前記露出した辺に従って、前記第１の画像データを用いて、前記最初のＭＶＲを調整することを含む、
請求項１に記載の方法。
【請求項６】
前記最初のＭＶＲを評価することは、前記第２の画像データの前記露出した辺のうちの１つの辺の長さの測定値を決定することを含み、
前記最終的なＭＶＲを生成することは、前記辺の長さの測定値が、前記最初のＭＶＲの対応する寸法に一致しない時、前記辺の長さの測定値に従って、前記最初のＭＶＲを調整することを含む、
請求項５に記載の方法。
【請求項７】
前記最初のＭＶＲを評価することは、
前記露出した辺を所定の形状パターンと比較することに基づいて、変形した物体の状態を含む前記予期せぬ状態を検出することと、
前記変形した物体の状態を検出することに基づいて、計算した物体寸法を決定することであって、      前記所定の形状パターンとの前記比較に基づいて、前記露出した辺のうちの１つを選択することと、
前記選択された露出した辺と一致する前記第２の画像データであって、その中に描かれた位置の深度測定値を有する三次元の（３Ｄ）点群である前記第２の画像データで、分析ストリップを導出することと、
前記分析ストリップ内の位置であり、且つ、前記選択された露出した辺と平行な方向に沿って一定の距離だけ離れた前記３Ｄ点群で描かれた位置である分析位置を導出することと、
それぞれ、前記分析位置に対応する隣り合う３Ｄ位置の対の間の直線距離を表す区分長を、前記分析位置に関連付けられた深度測定値に基づいて計算することと、
平らな表面に置いた時の前記認識されていない物体の辺の直線距離の推定値を表す計算した物体寸法を、前記区分長に基づいて、導出することと、
を含む、前記計算した物体寸法を決定することと、
を含み、
前記最終的なＭＶＲを生成することは、前記計算した物体寸法に従って、前記最初のＭＶＲを調整することを含む、
請求項５に記載の方法。
【請求項８】
前記最初のＭＶＲを評価することは、
かんだ状態を含む前記予期せぬ状態を、
前記露出した辺を所定の形状パターンと比較することと、
第１の辺と第２の辺の間の物体分離部分であって、前記第１の辺は、前記第２の辺と、決定された把持部位置との間にある、前記物体分離部分を識別することと、
に基づいて、検出することと、
前記かんだ状態が検出される時、前記第１の辺の長さの測定値を決定することと、
前記辺の長さの測定値に従って、前記最初のＭＶＲを、前記第２のＭＶＲの１つまたは複数の部分と比較することと、
を含む、請求項５に記載の方法。
【請求項９】
前記最初のＭＶＲを評価することは、
蓋が開いた状態を含む前記予測した状態を、
第１の辺と第２の辺を識別することであって、前記第１の辺は、前記第２の辺と決定された把持部の位置との間にあり、前記第２の辺と開放角を成す、前記第１の辺と前記第２の辺を識別することと、
前記第１の辺と前記第２の辺とを所定の形状パターンと比較することとに基づいて、
検出することと、
前記蓋が開いた状態を検出することに基づいて、計算した物体寸法を決定することであって、
前記第１の辺の長さを決定することと、
前記第２の辺の前記第１の辺を超えて延びる部分を表す残りの長さを測定することと、
を含む、前記計算した物体寸法を決定することと、
を含み、
前記最終的なＭＶＲを生成することは、前記残りの長さと前記第１の辺の前記長さとに従って、前記最初のＭＶＲを調整することを含む、
請求項５に記載の方法。
【請求項１０】
前記認識されていない物体を最初に移動させるための前記動作を実施することは、
前記最初のＭＶＲ内の把持位置の上にエンドエフェクタを配置する位置決め計画を生成することと、
前記位置決めのコマンドを生成した後、中間画像データを取得することと、
前記エンドエフェクタ、および／または、前記エンドエフェクタに取り付けられたロボットアームに関連付けられた追跡されていない付属品に対応する所定のパターンを描く中間画像データの部分を表す付属品遮蔽部分を識別することと、
前記エンドエフェクタを、前記把持位置から離れた１つまたは複数の位置に取り除き、次に、前記エンドエフェクタを前記把持位置の上に再配置するための調整計画を、前記付属品遮蔽部分の前記識別に基づいて生成することと、
を含む、請求項１に記載の方法。
【請求項１１】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続された少なくとも１つのメモリデバイスとを含むロボットシステムであって、前記メモリデバイスは、
スタート位置にある認識されていない物体の１つまたは複数の表面を表す第１の画像データを取得することと、
最初の最小実行可能領域（ＭＶＲ）であって、前記認識されていない物体の前記表面のうちの１つの最初の推定値を表す前記最初のＭＶＲを、前記第１の画像データに基づいて導出することと、
所定の方向および所定の距離に従って前記認識されていない物体を最初に移動させる動作を実施することと、
前記最初の移動の後、前記認識されていない物体を表す第２の画像データを取得することと、
前記第２の画像データに描かれており、且つ、前記第２の画像データに描かれた前記表面の推定された境界を表す露出した辺を識別することと、
前記第２の画像データの前記露出した辺に基づいて、前記最初のＭＶＲを評価すること
前記最初のＭＶＲを評価することに基づいて、最終的なＭＶＲを生成することと、
前記最初の移動の後、前記認識されていない物体のタスクを行うための動作を実施することと、
前記タスクを実施しながら、前記認識されていない物体に関する新しい記録を表し、且つ、前記最終的なＭＶＲを含む新しい登録データを作成することと、
のために、前記プロセッサによって実行可能な命令を記憶する、
ロボットシステム。
【請求項１２】
前記少なくとも１つのメモリデバイスは、
前記第２の画像データの前記露出した辺のうち、前記認識されていない物体を移動させるために使用される１つまたは複数のロボット構成要素によって遮蔽されていない物体の辺を表す明瞭な辺を識別することと、
遮蔽された領域とは別の前記第２の画像データの部分を表す分析領域を、前記明瞭な辺に基づいて決定することと、
前記明瞭な辺と角度をなして交差する前記分析領域の補完的な辺を識別することと、
前記明瞭な辺および前記補完的な辺の長さの測定値を決定することと、
前記第２の画像データからの前記辺の長さの測定値を前記最初のＭＶＲの寸法と比較すること、
の命令を含む、
請求項１１に記載のロボットシステム。
【請求項１３】
前記少なくとも１つのメモリデバイスは、前記最初のＭＶＲを評価すること、および、前記最終的なＭＶＲを生成することのための命令を含み、
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分と一致する時、予測した状態を検出することを含み、
前記最終的なＭＶＲを生成することは、前記予測した状態に基づいて、前記最初のＭＶＲを前記最終的なＭＶＲとして決定することを含む、
請求項１１に記載のロボットシステム。
【請求項１４】
前記少なくとも１つのメモリデバイスは、前記最初のＭＶＲを評価すること、および、前記最終的なＭＶＲを生成することのための命令を含み、
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分に一致しない時、予期せぬ状態を検出することを含み、
前記最終的なＭＶＲを生成することは、前記第２の画像データの前記１つまたは複数の部分および／または前記露出した辺に従って、前記第１の画像データを使用して前記最初のＭＶＲを調整することを含む、
請求項１１に記載のロボットシステム。
【請求項１５】
前記少なくとも１つのメモリデバイスは、
前記最初のＭＶＲ内の把持位置の上にエンドエフェクタを配置する位置決め計画を生成することと、
前記位置決めのコマンドを生成後、中間画像データを取得することと、
前記エンドエフェクタおよび／または前記エンドエフェクタに取り付けられたロボットアームに関連付けられた追跡されていない付属品に対応する所定のパターンを描く中間画像データの部分を表す付属品遮蔽部分を識別することと、
前記エンドエフェクタを前記把持位置から離れた１つまたは複数の位置に取り除いて、次に、前記エンドエフェクタを前記把持位置の上に再配置する調整計画を、前記付属品遮蔽部分の前記識別に基づいて生成することと、
のための命令を含む、
請求項１１に記載のロボットシステム。
【請求項１６】
プロセッサ命令を記憶した有形非一時的コンピュータ読取可能な記憶媒体であって、前記プロセッサ命令は、１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、方法を行わせ、前記方法は、
スタート位置にある認識されていない物体の１つまたは複数の表面を表す第１の画像データを取得することと、
前記認識されていない物体の前記表面のうちの１つの最初の推定値を表す最初の最小実行可能領域（ＭＶＲ）を、前記第１の画像データに基づいて導出することと、
所定の方向および所定の距離に従って、前記認識されていない物体を最初に移動させるための動作を実施することと、
前記最初の移動の後、前記認識されていない物体を表す第２の画像データを取得することと、
前記第２の画像データに描かれており、且つ、前記第２の画像データに描かれた前記表面の推定された境界を表す露出した辺を識別することと、
前記第２の画像データの前記露出した辺に基づいて、前記最初のＭＶＲを評価すること、
前記最初のＭＶＲを評価することに基づいて、最終的なＭＶＲを生成することと、
前記最初の移動の後、前記認識されていない物体のタスクを行うための動作を実施することと、
前記タスクを実施しながら、前記認識されていない物体の新しい記録を表し、且つ、前記最終的なＭＶＲを含む新しい登録データを作成することと、
を含む、
前記有形非一時的コンピュータ読取可能な記憶媒体。
【請求項１７】
前記方法は、
前記第２の画像データの前記露出した辺のうち、前記認識されていない物体を移動するのに使用される１つまたは複数のロボット構成要素によって遮蔽されていない物体の辺を表す明瞭な辺を識別することと、
遮蔽された領域とは別の前記第２の画像データの部分を表す分析領域を、前記明瞭な辺に基づいて決定することと、
前記明瞭な辺と角度をなして交差する前記分析領域の補完的な辺を識別することと、
前記明瞭な辺および前記補完的な辺の長さの測定値を決定することと、
前記第２の画像データからの前記辺の長さの測定値を前記最初のＭＶＲの寸法と比較することと、
をさらに含む、前記方法を行わせるプロセッサ命令を有する請求項１６に記載の有形非一時的コンピュータ読取可能な記憶媒体。
【請求項１８】
前記方法は、前記最初のＭＶＲを評価することと、前記最終的なＭＶＲを生成することをさらに含み、
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分に一致する時、予測した状態を検出することと、
前記最終的なＭＶＲを生成することは、前記予測した状態に基づいて、前記最初のＭＶＲを前記最終的なＭＶＲとして決定することを含む、
プロセッサ命令に前記方法を行わせる請求項１６に記載の有形非一時的コンピュータ読取可能な記憶媒体。
【請求項１９】
前記方法は、前記最初のＭＶＲを評価することと、前記最終的なＭＶＲを生成することとをさらに含み、
前記最初のＭＶＲを評価することは、前記第２の画像データの１つまたは複数の部分および／または前記露出した辺が前記最初のＭＶＲの対応する部分に一致しない時、予期せぬ状態を検出することを含み、
前記最終的なＭＶＲを生成することは、前記第２の画像データの前記１つまたは複数の部分および／または前記露出した辺に従って、前記第１の画像データを使用して、前記最初のＭＶＲを調整することを含む、
プロセッサ命令に前記方法を行わせる請求項１６に記載の有形非一時的コンピュータ読取可能な記憶媒体。
【請求項２０】
前記方法は、
前記最初のＭＶＲ内の把持位置の上にエンドエフェクタを配置する位置決め計画を生成することと、
前記位置決めのコマンドを生成後、中間画像データを取得することと、
前記エンドエフェクタおよび／または前記エンドエフェクタに取り付けられたロボットアームに関連付けられた追跡されていない付属品に対応する所定のパターンを描く中間画像データの部分を表す付属品遮蔽部分を識別することと、
前記エンドエフェクタを、前記把持位置から離れた１つまたは複数の位置に取り除き、次に、前記エンドエフェクタを前記把持位置の上に再配置する調整計画を、前記付属品遮蔽部分の前記識別に基づいて生成することと、
をさらに含む、プロセッサ命令に前記方法を行わせる請求項１６に記載の有形非一時的コンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年１０月３０日出願の米国仮特許出願番号第６２／７５２，７５６号の利益を主張し、さらに、２０１９年５月２４日出願の米国仮特許出願番号第６２／８５２，９６３号の利益を主張し、参照によりその両方の全体を本明細書に組み込む。本出願は、２０１９年３月１日出願の米国特許出願番号第１６／２９０，７４１号であり、現在、米国特許番号１０，３６９，７０１と、２０１９年８月１３日出願の米国特許出願番号第１６／５３９，７９０号にも関連し、参照によりその両方の全体を本明細書に組み込む。
【０００２】
本技術は、一般的に、ロボットシステムを対象とし、より具体的には、物体を検出するシステム、プロセス、および、技術を対象とする。
【背景技術】
【０００３】
パッケージは、目的地への出荷のためにパレットに載せられ、目的地で、パレットから降ろされることが多い。パッケージは、人間作業者によってパレットから降ろされる場合もあり、これは、費用が高くなり得るし、怪我をする危険もある。産業環境においては、パレットから降ろす動作は、パッケージを把持し、持ち上げ、運搬し、解放点まで運ぶロボットアーム等の産業用ロボットによって行われることが多い。また、撮像装置を採用して、パレットに積まれたパッケージのスタックの画像を撮影してよい。システムは、画像を処理して、登録データソースに記憶された登録画像と撮影画像を比較すること等によって、パッケージがロボットアームによって効率的に取り扱われることを保証してよい。
【０００４】
パッケージの撮影画像が、登録画像に一致する場合がある。結果として、撮影された物体の物理的特性（例えば、パッケージの寸法、重さ、および／または、質量中心の測定値）が分かり得る。物理的特性の正確な識別に失敗すると、様々な望ましくない結果につながり得る。例えば、このような失敗は停止の原因となることがあり、停止すると、パッケージを手動で登録することが必要となる場合がある。また、このような失敗は、特に、パッケージが比較的重いおよび／または傾いている場合、パッケージの取り扱いを誤ることにつながり得る。
【図面の簡単な説明】
【０００５】
【図１】物体検出機構を備えたロボットシステムが動作し得る環境の例を示す図である。
【図２】本技術の１つまたは複数の実施形態による、ロボットシステムを示すブロック図である。
【図３】本技術の１つまたは複数の実施形態による、ロボットシステムの図である。
【図４Ａ】本技術の１つまたは複数の実施形態による、ロボットシステムによって処理される物体のスタックの例の図である。
【図４Ｂ】本技術の１つまたは複数の実施形態による、スタックの例の上面の図である。
【図４Ｃ】本技術の１つまたは複数の実施形態による、上面に対応するセンサデータの図である。
【図５Ａ】本技術の１つまたは複数の実施形態による、最初の動作セットの後の上面に対応するセンサデータの図である。
【図５Ｂ】本技術の１つまたは複数の実施形態による、図５Ａに示すセンサデータの部分５Ｂの図である。
【図６】本技術の１つまたは複数の実施形態による、最初の持ち上げ操作の後の物体の図である。
【図７Ａ】本技術の１つまたは複数の実施形態による、比較データの図である。
【図７Ｂ】本技術の１つまたは複数の実施形態による、更新されたデータの図である。
【図８Ａ】本技術の１つまたは複数の実施形態による、直接登録状態の上面図データの図である。
【図８Ｂ】本技術の１つまたは複数の実施形態による、直接登録状態の側面の図である。
【図９Ａ】本技術の１つまたは複数の実施形態による、予測された状態の上面図データの図である。
【図９Ｂ】本技術の１つまたは複数の実施形態による、予測された状態の側面の図である。
【図９Ｃ】本技術の１つまたは複数の実施形態による、予測された状態の比較データの図である。
【図１０Ａ】本技術の１つまたは複数の実施形態による、予期せぬ状態の上面図データの図である。
【図１０Ｂ】本技術の１つまたは複数の実施形態による、予期せぬ状態の側面の図である。
【図１０Ｃ】本技術の１つまたは複数の実施形態による、予期せぬ状態の比較データの図である。
【図１１Ａ】本技術の１つまたは複数の実施形態による、変形した物体の状態の側面の一部分の図である。
【図１１Ｂ】本技術の１つまたは複数の実施形態による、比較データの一部分の図である。
【図１２】本技術の１つまたは複数の実施形態による、かんだ状態の側面の部分の図である。
【図１３】本技術の１つまたは複数の実施形態による、蓋が開いた状態の側面の部分の図である。
【図１４】本技術の１つまたは複数の実施形態による、中間画像データの一部分の図である。
【図１５】本技術の１つまたは複数の実施形態による、図１のロボットシステムを動作させる方法の流れ図である。
【図１６】本技術の１つまたは複数の実施形態による、最初の操作を実施した後の画像および／またはＭＶＲを処理する流れ図の例である。
【発明を実施するための形態】
【０００６】
自動物体検出／登録機構を備えたロボットシステムのためのシステムおよび方法を本明細書に記載する。ある実施形態に従って構成されたロボットシステム（例えば、１つまたは複数の指定されたタスクを実行するデバイスを統合したシステム）は、自律的／自動的に（例えば、人間オペレータによる入力が殆どまたは全く無く）以前は知られていなかった、または、認識されていなかった物体（例えば、パッケージ、箱、ケース等）を検出、登録することによって、使用性と柔軟性を向上させる。
【０００７】
物体が認識されたか否かを判断するために、ロボットシステムは、スタート位置の物体に関するデータ（例えば、物体の露出面の１つまたは複数の画像）を取得し、既知のまたは予測される物体の登録データと比較できる。ロボットシステムは、比較されたデータ（例えば、比較された画像の一部分）が、その中に表される対応する物体の１つに関して、登録データ（例えば、登録された表面画像の１つ）と一致する時、１つまたは複数の認識／登録された物体がスタート位置にあることを検出できる。ロボットシステムは、登録データと一致する部分を取り除くことに基づいて、画像データの１つまたは複数の一致しない部分（例えば、既知のまたは予測された物体の登録データと一致しない画像の部分）を決定できる。ロボットシステムは、説明のつかない領域は１つまたは複数の認識されていない物体を含むと判断できる。
【０００８】
以下に詳細に記載するように、ロボットシステムは、１つまたは複数の推定値に従って、認識されていない物体を操作し、認識されていない物体に関する追加の情報（例えば、表面画像、および／または、物理的寸法）を決定できる。例えば、ロボットシステムは、他の物体／表面とは離れた、または、隣り合わない認識されていない物体の露出した辺、および／または、露出した外側の角部を識別できる。１つまたは複数の実施形態において、ロボットシステムは、対象のスタックの角部に位置する、および／または、共通の層に位置する他の物体と比べて突き出た認識されていない物体（例えば、互いから閾値範囲内の高さを有する露出した表面を有する物体）の露出した辺、および／または、露出した外側の角部を識別できる。露出した辺、および／または、露出した外側の角部に基づいて、ロボットシステムは、露出した表面の最小実行可能領域（ＭＶＲ）を導出できる。ＭＶＲは、それぞれ、対応する物体に接触し、持ち上げるのに必要なエリア、および／または、認識されていない物体のうちの１つの物体の表面の推定値を表すことができる。ロボットシステムは、ＭＶＲに基づいて、認識されていない物体を把持し、最初の持ち上げを行うことによって、（例えば、垂直および／または水平に）以前は不明であった辺を、隣り合う物体／表面と分けることができる。
【０００９】
最初の持ち上げの後、ロボットシステムは、比較データ（例えば、最初の持ち上げの後、認識されていない物体を表すセンサデータ）を取得、処理して、認識されていない物体に関する新しい情報を識別できる。例えば、ロボットシステムは、比較データを処理して、認識されていない物体に関して、新しく発見された（例えば、以前は不確かだった）辺および／または角部、関連する測定値（例えば、物体の寸法）、更新された画像／デプスマップ、または、これらの組み合わせを識別できる。ロボットシステムは、新しい情報をマスタデータに記憶して、以前は認識されなかった物体を自律的／自動的に登録（「自動登録」）できる。従って、ロボットシステムは、自動登録データを使用して、同じ種類の物体を識別、処理、および／または、操作できる。
【００１０】
データを登録する時、ロボットシステムは、ＭＶＲを更新し、そのＭＶＲを、それぞれ、１つの認識されていない物体の表面を表すものとして記憶できる。ロボットシステムは、最初の（例えば、最初の持ち上げの前の）画像データから識別された部分のクロッピングに基づいて、および／または、比較データ（例えば、最初の持ち上げ後に撮られた画像）の処理結果に従って、複数の画像データの部分を組み合わせることに基づいて、ＭＶＲを更新できる。従って、ロボットシステムは、更新されたデータを生成、登録できる。処理結果のある例は、遮蔽推定値、および／または、辺の長さを含む。遮蔽推定値を用いて、ロボットシステムは、１つまたは複数の物体を持ち上げる／移動させることによって変更された、ロボットユニットの一部、および／または、画像データの一部等、物体以外の構造を描く画像データの部分を決定できる。辺の長さを用いて、ロボットシステムは、（例えば、物体の重み、把持位置と質量中心（ＣｏＭ）との間の分離、および／または、把持された表面への他の変化が原因の）物体の変形、および／または、他の隣接する物体の移動を補償できる。
【００１１】
従って、ロボットシステムは、以前は認識されなかった物体に関する様々なデータを取得し、そのデータを使用して、対応する登録データを自律的に生成し、且つ、マスタデータを更新できる。生成された登録データは、対応する物体の表面画像、寸法（物体の高さを含む）、および／または、他の物理的特性を含み得る。従って、ロボットシステムは、自律的に（例えば、人間オペレータの入力無く）、物体を登録し、登録したデータを使用して、同じ種類の物体のその後のインスタンスを認識、処理できる。
【００１２】
さらに、自律登録を使用して、ロボットシステムは、認識されていない物体を、オペレータの助けを借りずに、処理（例えば、移動、梱包、開梱等）できる。従って、ロボットシステムの全体としての動作は、物体が認識されていない物体である時でさえ、中断なく継続できる。また、ＭＶＲ処理は、各物体の表面を推定する精度を向上させ、これは、個々の物体の検出と、検出した認識されていない物体の表面画像の取得の精度を向上させる。
【００１３】
以下の記載において、本開示の技術の完全な理解を提供するために、多くの特定の詳細を記載する。他の実施形態においては、本明細書に含まれる技術は、これらの特定の詳細が無くても実践できる。他の例においては、特定の機能またはルーチン等の周知の特徴は、本開示を不必要に曖昧にしないように、詳細には記載しない。本明細書において、「ある実施形態」「一実施形態」等の言及は、記載している特定の特徴、構造、材料、または、特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書におけるこのような句の出現は、全て同じ実施形態を必ずしも指してはいない。他方、このような言及は、必ずしも互いに排他的なものではない。さらに、特定の特徴、構造、材料、または、特性は、１つまたは複数の実施形態において、任意の適切な方法で組み合わせることができる。図に示す様々な実施形態は、説明のための表現に過ぎず、必ずしも、縮尺通りに描いてはいないことは理解されたい。
【００１４】
ロボットシステムおよびサブシステムに関連付けられることが多いが、開示の技術の幾つかの重要な態様を不必要に曖昧にし得る構造またはプロセスを記載する周知の幾つかの詳細は、明確にするために、以下には記載していない。さらに、以下の開示は、本技術の異なる態様の幾つかの実施形態を記載するが、幾つかの他の実施形態は、この項に記載するのとは異なる構成または構成要素を有し得る。従って、開示の技術は、追加の要素を有する、または、以下に記載の要素の幾つかを含まない他の実施形態を有し得る。
【００１５】
以下に記載の本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはプロセッサによって実行されるルーチンを含む、コンピュータまたはプロセッサで実行可能な命令の形を取り得る。以下に示し、記載する以外のコンピュータまたはプロセッサシステムで開示の技術を実践できることを当業者は認識されよう。本明細書に記載の技術は、以下に記載のコンピュータ実行可能命令の１つまたは複数を実行するように詳細にプログラム、構成、または、構築された専用コンピュータまたはデータプロセッサで実現できる。従って、本明細書で一般的に使用される「コンピュータ」および「プロセッサ」という用語は、任意のデータプロセッサを指し、（パームトップコンピュータ、ウェアラブルコンピュータ、セルラーフォン、モバイルフォン、マルチプロセッサシステム、プロセッサベースもしくはプログラム可能家電製品、ネットワークコンピュータ、ミニコンピュータ等を含む）インターネット家電およびハンドヘルドデバイスを含み得る。これらのコンピュータおよびプロセッサが取り扱う情報は、液晶ディスプレイ（ＬＣＤ）を含む任意の適切な表示媒体に提示できる。コンピュータまたはプロセッサで実行可能なタスクを実行するための命令は、ハードウェア、ファームウェア、または、ハードウェアおよびファームウェアの組み合わせを含む、任意の適切なコンピュータ可読媒体に記憶できる。命令は、例えば、フラッシュドライブおよび／または他の適切な媒体を含む任意の適切なメモリデバイスに含まれてよい。
【００１６】
「結合された」および「接続された」という用語、並びに、これらの派生語は、構成要素間の構造的関係を記載するために本明細書では使用されてよい。これらの用語は、互いに同意語と意図されていないことを理解されたい。むしろ、特定の実施形態において、「接続された」を使用して、２つ以上の要素が互いに直接接触していることを示すことができる。文脈においてそうでないことが明らかでない限り、「結合された」という用語を使用して、２つ以上の要素が、互いに直接的または間接的に（要素と要素の間に他の介在する要素がある）接触していること、（例えば、信号送信／受信、または、関数呼び出し等の因果関係においてのように）２つ以上の要素が互いに協力または相互作用すること、または、その両方を示すことができる。
【００１７】
好適な環境
図１は、物体検出機構を備えたロボットシステム１００が動作し得る環境の例である。ロボットシステム１００は、１つまたは複数のタスクを実行するように構成された１つまたは複数のユニット（例えば、ロボット）を含むことができる、および／または、それらと通信できる。梱包機構の態様は、様々なユニットによって実践または実施できる。
【００１８】
図１に示す例に関しては、ロボットシステム１００は、倉庫または分配／出荷拠点において、荷降ろしユニット１０２、移動ユニット１０４（例えば、パレットに載せるロボット、および／または、ピースピッキングロボット）、運搬ユニット１０６、積み込みユニット１０８、または、これらの組み合わせを含み得る。ロボットシステム１００の各ユニットは、１つまたは複数のタスクを実行するように構成できる。タスクは、トラックまたはバンから物体を降ろし、物体を倉庫に保管する、または、保管場所から物体を降ろし、出荷の準備をする等、目的を達成する動作を行うように順次、組み合わせることができる。他の例に関しては、タスクは、目的の場所（例えば、パレットの上、および／または、大箱／ケージ／箱／ケース内）に物体を載置することを含み得る。以下に記載のように、ロボットシステムは、物体を載置するおよび／または積み重ねるための計画（例えば、置き場所／向き、物体を移動させる順番、および／または、対応する動作計画）を導出できる。各ユニットは、タスクを実行するために導出された計画の１つまたは複数に従って、（例えば、ユニットの１つまたは複数の構成要素を動作させることによって）一連のアクションを実行するように構成されてよい。
【００１９】
ある実施形態においては、タスクはスタート位置１１４からタスク位置１１６への対象物体１１２（例えば、実行するタスクに対応するパッケージ、箱、ケース、ケージ、パレット等の１つ）の操作（例えば、移動および／または向きの変更）を含み得る。例えば、荷降ろしユニット１０２（例えば、デバンニングロボット）は、運搬装置（例えば、トラック）内の位置から、コンベヤベルト上の位置に対象物体１１２を移動するように構成されてよい。また、移動ユニット１０４は、１つの位置（例えば、コンベヤベルト、パレット、または、大箱）から他の位置（例えば、パレット、大箱等）に対象物体１１２を移動するように構成されてよい。他の例に関しては、移動ユニット１０４（例えば、パレットに載せるロボット）は、対象物体１１２を元の位置（例えば、パレット、ピックアップエリア、および／または、コンベヤ）から目的パレットに移動するように構成されてよい。動作を完了する時、運搬ユニット１０６は、移動ユニット１０４に関連付けられたエリアから、積み込みユニット１０８に関連付けられたエリアに対象物体１１２を移動でき、積み込みユニット１０８は、移動ユニット１０４から保管場所（例えば、棚上の位置）に（例えば、対象物体１１２を載せたパレットを動かすことによって）対象物体１１２を移動できる。このタスクおよびそれに関連する動作に関する詳細を以下に記載する。
【００２０】
説明目的で、ロボットシステム１００を、出荷センタの文脈で記載するが、ロボットシステム１００は、製造、アセンブリ、梱包、ヘルスケア、および／または、他の種類の自動化等、他の環境において／他の目的のために、タスクを実行するように構成されてよいことは理解されたい。ロボットシステム１００は、図１に示されていない、マニピュレータ、サービスロボット、モジュール式ロボット等、他のユニットを含み得ることも理解されたい。例えば、ある実施形態においては、ロボットシステム１００は、ケージカートまたはパレットからコンベヤまたは他のパレットに物体を移動するデパレタイズユニット、１つのコンテナから別のコンテナに物体を移動するコンテナ切替ユニット、物体を梱包する梱包ユニット、物体の１つまたは複数の特性に従って物体をグループにする仕分けユニット、物体の１つまたは複数の特性に従って物体を異なるように操作（例えば、仕分け、グループ化、および／または、移動）するピースピッキングユニット、または、これらの組み合わせを含み得る。
【００２１】
ロボットシステム１００は、動き（例えば、回転変位および／または並進変位）のためにジョイントで接続された物理的または構造的な部材（例えば、ロボットマニピュレータアーム）を含み得る。構造部材およびジョイントは、ロボットシステム１００の使用／動作に応じて、１つまたは複数のタスク（例えば、把持、回転、溶接等）を実行するように構成されたエンドエフェクタ（例えば、把持部）を操作するように構成された運動連鎖を形成できる。ロボットシステム１００は、対応するジョイントを中心に、または、対応するジョイントで、構造部材を駆動または操作（例えば、変位、および／または、向き変更）するように構成された駆動装置（例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマー等）を含み得る。ある実施形態においては、ロボットシステム１００は、対応するユニット／シャシを場所から場所へと運搬するように構成された運搬モータを含み得る。
【００２２】
ロボットシステム１００は、構造部材を操作するため、および／または、ロボットユニットを運搬するため等、タスクの実施に使用される情報を取得するように構成されたセンサを含み得る。センサは、ロボットシステム１００の１つまたは複数の物理的特性（例えば、ロボットシステムの１つまたは複数の構造部材／ジョイントの状況、状態、および／または、位置）および／または周囲環境の１つまたは複数の物理的特性を検出または測定するように構成されたデバイスを含み得る。センサの幾つかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダ等を含み得る。
【００２３】
ある実施形態においては、例えば、センサは、周囲環境を検出するように構成された１つまたは複数の撮像装置（例えば、視覚および／または赤外線カメラ、２Ｄおよび／または３Ｄイメージングカメラ、ライダまたはレーダ等の距離測定装置等）を含み得る。撮像装置は、（例えば、自動検査、ロボット誘導、または、他のロボット用途のために）機械／コンピュータビジョンを介して処理され得る、デジタル画像および／または点群等、検出された環境の表現を生成し得る。以下にさらに詳細に記載するように、ロボットシステム１００は、デジタル画像および／または点群を処理して、対象物体１１２、スタート位置１１４、タスク位置１１６、対象物体１１２の姿勢、スタート位置１１４および／または姿勢に関する信頼基準、または、これらの組み合わせを識別できる。
【００２４】
対象物体１１２を操作するために、ロボットシステム１００は、指定エリア（例えば、トラック内またはコンベヤベルト等のピックアップ位置）の画像を撮影、分析して、対象物体１１２と対象物体１１２のスタート位置１１４とを識別できる。同様に、ロボットシステム１００は、別の指定エリア（例えば、コンベヤ上に物体を載置するための投下位置、コンテナ内の物体を置く位置、または、積み重ねるためのパレット上の位置）の画像を撮影、分析して、タスク位置１１６を識別できる。例えば、撮像装置は、ピックアップエリアの画像を生成するように構成された１つまたは複数のカメラ、および／または、タスクエリア（例えば、投下エリア）の画像を生成するように構成された１つまたは複数のカメラを含み得る。撮影画像に基づいて、以下に記載のように、ロボットシステム１００は、スタート位置１１４、タスク位置１１６、関連する姿勢、梱包／載置計画、運搬／梱包順序、および／または、他の処理結果を判断できる。
【００２５】
ある実施形態においては、例えば、センサは、構造部材（例えば、ロボットアームおよび／またはエンドエフェクタ）、および／または、ロボットシステム１００の対応するジョイントの位置を検出するように構成された位置センサ（例えば、位置エンコーダ、ポテンショメータ等）を含み得る。ロボットシステム１００は、タスク実行中に、位置センサを使用して、構造部材および／またはジョイントの位置および／または向きを追跡できる。
【００２６】
好適なシステム
図２は、本技術の１つまたは複数の実施形態による、ロボットシステム１００を示すブロック図である。ある実施形態においては、例えば、ロボットシステム１００（例えば、上記のユニットおよび／またはロボットの１つまたは複数において）１つまたは複数のプロセッサ２０２、１つまたは複数の記憶装置２０４、１つまたは複数の通信装置２０６、１つまたは複数の入出力装置２０８、１つまたは複数の駆動装置２１２、１つまたは複数の運搬モータ２１４、１つまたは複数のセンサ２１６、または、これらの組み合わせ等、電子／電気デバイスを含み得る。様々なデバイスは、有線接続および／または無線接続を介して互いに結合されてよい。例えば、ロボットシステム１００は、システムバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスもしくはＰＣＩエクスプレスバス、ハイパートランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ）もしくはインダストリスタンダートアーキテクチャ（ＩＳＡ：ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ  ａｒｃｈｉｔｅｃｔｕｒｅ）バス、小型コンピュータシステムインタフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、または、電気電子技術者協会（ＩＥＥＥ：Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）規格１３９４バス（「ファイヤワイヤ」とも言われる）等のバスを含み得る。また、例えば、ロボットシステム１００は、ブリッジ、アダプタ、プロセッサ、または、デバイス間に有線接続を提供するための他の信号に関連するデバイスを含み得る。無線接続は、例えば、セルラー通信プロトコル（例えば、３Ｇ、４Ｇ、ＬＴＥ、５Ｇ等）、無線ローカルエリアネットワーク（ＬＡＮ）プロトコル（例えば、ワイヤレスフィデリティ（ＷＩＦＩ））、ピアツーピアもしくはデバイスツーデバイス通信プロトコル（例えば、ブルートゥース（登録商標）、近距離無線通信（ＮＦＣ）等）、インターネットオブシングズ（ＩｏＴ）プロトコル（例えば、ＮＢ−ＩｏＴ、ＬＴＥ−Ｍ等）、および／または、他の無線通信プロトコルに基づいてよい。
【００２７】
プロセッサ２０２は、記憶装置２０４（例えば、コンピュータメモリ）に記憶された命令（例えば、ソフトウェア命令）を実行するように構成されたデータプロセッサ（例えば、中央処理装置（ＣＰＵ）、専用コンピュータ、および／または、オンボードサーバ）を含み得る。ある実施形態においては、プロセッサ２０２は、図２に示された他の電子／電気デバイス、および／または、図１に示されたロボットユニットに動作可能に結合された別個の／スタンドアロンコントローラに含まれてよい。プロセッサ２０２は、プログラム命令を実施して、他のデバイスを制御／他のデバイスとインタフェースすることによって、ロボットシステム１００に、アクション、タスク、および／または、動作を実行させることができる。
【００２８】
記憶装置２０４は、プログラム命令（例えば、ソフトウェア）を記憶した非一時的コンピュータ可読媒体を含み得る。記憶装置２０４の幾つかの例は、揮発性メモリ（例えば、キャッシュおよび／またはランダムアクセスメモリ（ＲＡＭ））、および／または、不揮発性メモリ（例えば、フラッシュメモリ、および／または、磁気ディスクドライブ）を含み得る。記憶装置２０４の他の例は、ポータブルメモリドライブ、および／または、クラウドストレージデバイスを含み得る。
【００２９】
ある実施形態においては、記憶装置２０４を使用して、処理結果、および／または、所定のデータ／閾値をさらに記憶し、それらにアクセスできる。例えば、記憶装置２０４は、ロボットシステム１００によって操作され得る物体（例えば、箱、ケース、および／または、製品）の記載を含むマスタデータ２５２を記憶できる。１つまたは複数の実施形態において、マスタデータ２５２は、このような各物体の登録データ２５４を含み得る。登録データ２５４は、ロボットシステム１００によって操作されることが予測される物体の、寸法、形状（例えば、異なる姿勢の物体を認識するための、可能な姿勢のテンプレート、および／または、コンピュータによって生成されたモデル）、カラースキーム、画像、ＩＤ情報（例えば、バーコード、クイックレスポンス（ＱＲ）コード、ロゴ等、および／または、これらの予測される位置）、予測重量、他の物理的／視覚的特性、または、これらの組み合わせを含み得る。ある実施形態においては、マスタデータ２５２は、質量中心（ＣｏＭ）の位置、または、各物体に対するＣｏＭの位置の推定、１つまたは複数のアクション／操作に対応する予測されるセンサ測定値（例えば、力、トルク、圧力、および／または、接触の測定値）、または、これらの組み合わせ等、物体の操作に関連する情報を含み得る。
【００３０】
通信装置２０６は、ネットワークを介して外部装置またはリモート装置と通信するように構成された回路を含み得る。例えば、通信装置２０６は、受信器、送信器、変調器／復調器（モデム）、信号検出器、信号エンコーダ／デコーダ、コネクタポート、ネットワークカード等を含み得る。通信装置２０６は、１つまたは複数の通信プロトコル（例えば、インターネットプロトコル（ＩＰ）、無線通信プロトコル等）に従って、電気信号を送信、受信、および／または、処理するように構成されてよい。ある実施形態においては、ロボットシステム１００は、通信装置２０６を使用して、ロボットシステム１００のユニット間で情報を交換できる、および／または、（例えば、報告、データ収集、分析、および／または、トラブルシューティングの目的で）ロボットシステム１００の外部にあるシステムまたはデバイスと情報を交換できる。
【００３１】
入出力装置２０８は、人間オペレータに情報を通信するように、および／または、人間オペレータから情報を受信するように構成されたユーザインタフェース装置を含み得る。例えば、入出力装置２０８は、人間オペレータに情報を通信するためのディスプレイ２１０、および／または、他の出力装置（例えば、スピーカ、触覚回路、または、触覚フィードバック装置等）を含み得る。また、入出力装置２０８は、キーボード、マウス、タッチスクリーン、マイクロフォン、ユーザインタフェース（ＵＩ）センサ（例えば、動作コマンドを受信するためのカメラ）、ウェアラブル入力装置等、制御装置または受信装置も含み得る。ある実施形態においては、ロボットシステム１００は、アクション、タスク、動作、または、これらの組み合わせを実行する時、入出力装置２０８を使用して、人間オペレータと対話できる。
【００３２】
ロボットシステム１００は、動き（例えば、回転変位および／または並進変位）のためにジョイントに接続された物理的または構造的な部材（例えば、ロボットマニピュレータアーム）を含み得る。構造部材およびジョイントは、ロボットシステム１００の使用／動作に応じて、１つまたは複数のタスク（例えば、把持、回転、溶接等）を実行するように構成されたエンドエフェクタ（例えば、把持部）を操作するように構成された運動連鎖を形成できる。ロボットシステム１００は、対応するジョイントを中心に、または、対応するジョイントで構造部材を駆動または操作（例えば、変位、および／または、向き変更）するように構成された駆動装置２１２（例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマー等）を含み得る。ある実施形態においては、ロボットシステム１００は、対応するユニット／シャシを場所から場所へと運搬するように構成された運搬モータ２１４を含み得る。
【００３３】
ロボットシステム１００は、構造部材を操作するため、および／または、ロボットユニットを運搬するため等、タスクの実施に使用される情報を取得するように構成されたセンサ２１６を含み得る。センサ２１６は、ロボットシステム１００の１つまたは複数の物理的特性（例えば、ロボットシステムの１つまたは複数の構造部材／ジョイントの状況、状態、および／または、位置）、および／または、周囲環境の１つまたは複数の物理的特性を検出または測定するように構成されたデバイスを含み得る。センサ２１６の幾つかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダ等を含み得る。
【００３４】
ある実施形態においては、例えば、センサ２１６は、周囲環境を検出するように構成された１つまたは複数の撮像装置２２２（例えば、視覚カメラ、および／または、赤外線カメラ、２Ｄおよび／または３Ｄイメージングカメラ、ライダまたはレーダ等の距離測定装置等）を含み得る。撮像装置２２２は、（例えば、自動検査、ロボット誘導、または、他のロボット用途のために）機械／コンピュータビジョンを介して処理され得る、デジタル画像および／または点群等、検出された環境の表現を生成し得る。以下にさらに詳細に記載するように、ロボットシステム１００は、（例えば、プロセッサ２０２を介して）デジタル画像および／または点群を処理して、図１の対象物体１１２、図１のスタート位置１１４、図１のタスク位置１１６、対象物体１１２の姿勢、スタート位置１１４および／または姿勢に関する信頼基準、または、これらの組み合わせを識別できる。
【００３５】
対象物体１１２を操作するために、ロボットシステム１００は、（例えば、上記の様々な回路／デバイスを介して）、指定エリア（例えば、トラック内またはコンベヤベルト等のピックアップ位置）の画像を撮影、分析して、対象物体１１２と対象物体１１２のスタート位置１１４とを識別できる。同様に、ロボットシステム１００は、別の指定エリア（例えば、コンベヤ上に物体を載置するための投下位置、コンテナ内の物体を置く位置、または、積み重ねるためのパレット上の位置）の画像を撮影、分析して、タスク位置１１６を識別できる。例えば、撮像装置２２２は、ピックアップエリアの画像を生成するように構成された１つまたは複数のカメラ、および／または、タスクエリア（例えば、投下エリア）の画像を生成するように構成された１つまたは複数のカメラを含み得る。撮影画像に基づいて、以下に記載のように、ロボットシステム１００は、スタート位置１１４、タスク位置１１６、関連する姿勢、梱包／載置計画、運搬／梱包順序、および／または、他の処理結果を判断できる。
【００３６】
ある実施形態においては、例えば、センサ２１６は、構造部材（例えば、ロボットアームおよび／またはエンドエフェクタ）、および／または、ロボットシステム１００の対応するジョイントの位置を検出するように構成された位置センサ２２４（例えば、位置エンコーダ、ポテンショメータ等）を含み得る。ロボットシステム１００は、タスク実行中に、位置センサ２２４を使用して、構造部材および／またはジョイントの位置および／または向きを追跡できる。
【００３７】
物体移動と登録の例
図３は、本技術の１つまたは複数の実施形態による、図１のロボットシステム１００の図である。ロボットシステム１００は、エンドエフェクタ３０４（例えば、把持部）を含むロボットアーム３０２（例えば、図１の移動ユニット１０４の例）を含み得る。ロボットアーム３０２は、図１のスタート位置１１４と図１のタスク位置１１６との間で対象物体１１２を移動するように構成されてよい。図３に示すように、スタート位置１１４は、対象スタック３１０（例えば、物体のグループ）を載せたパレット３０８を有し得る。ロボットアーム３０２のタスク位置１１６は、コンベヤ３０６（例えば、図１の運搬ユニット１０６の例）の載置位置（例えば、開始／放出点）であってよい。例えば、ロボットアーム３０２は、対象スタック３１０から物体を掴み取るように、且つ、物体を他の目的地／タスクに運搬するためにコンベヤ３０６に載せるように構成されてよい。
【００３８】
ロボットシステム１００は、ロボットアーム３０２を用いた移動動作を行う時、図２のセンサ２１６の１つまたは複数を使用できる。ある実施形態においては、ロボットシステム１００は、第１の画像センサ３１２および／または第２の画像センサ３１４を含み得る。第１の画像センサ３１２は、スタート位置１１４を撮影および／または分析するように構成された、カメラおよび／またはデプスセンサ等、１つまたは複数の２Ｄおよび／または３Ｄセンサを含み得る。第２の画像センサ３１４は、タスク位置１１６を撮影および／または分析するように構成された、カメラおよび／またはデプスセンサ等、１つまたは複数の２Ｄおよび／または３Ｄセンサを含み得る。例えば、第１の画像センサ３１２は、スタート位置１１４の上でスタート位置１１４の方を向く既知の位置に配置された１つまたは複数の上面センサ３１２ａ（例えば、カメラおよび／またはデプスセンサ）を含み得る。上面センサ３１２ａは、対象スタック３１０の上面図等、スタート位置１１４の１つまたは複数の上面図に対応する画像データを生成できる。任意選択で、第１の画像センサ３１２は、スタート位置１１４の横方向隣で、スタート位置１１４の方を向く既知の位置、および／または、その真上の空間に配置された１つまたは複数の側面センサ３１２ｂ（例えば、カメラおよび／またはデプスセンサ）をさらに含み得る。側面センサ３１２ｂは、対象スタック３１０の側面図／プロファイル図等、スタート位置１１４の１つまたは複数の側面図／プロファイル図に対応する画像データを生成する。また、第２の画像センサ３１４は、タスク位置１１６の上部／横でタスク位置１１６の方を向く１つまたは複数の既知の位置、または関連する空間に配置された１つまたは複数のカメラおよび／またはデプスセンサを含み得る。従って、第２の画像センサ３１４は、タスク位置１１６から閾距離に、または、閾距離内にある対象物体１１２の１つまたは複数の上面図および／または任意選択で側面図に対応する画像データを生成できる。
【００３９】
ロボットシステム１００は、第１の画像センサ３１２を使用して、スタート位置にある物体を識別できる。以下に詳細に記載するように、ロボットシステム１００は、第１の画像センサ３１２からの画像データを分析して、スタート位置／その周囲の各物体の存在、および／または、その物体の位置を識別できる。ロボットシステム１００は、さらに、画像データを分析して、その物体が、以前に登録された物体（例えば、図２の登録データ２５４、および／または、図２のマスタデータ２５２の他の態様に対応する物体）に一致するか否かを判断できる。ロボットシステム１００は、画像データを使用して、最小実行可能領域（ＭＶＲ）を導出する等によって、各物体の表面（例えば、上部水平面および／または周囲の垂直面）を推定できる。ロボットシステム１００は、ＭＶＲを使用して、（例えば、認識されていない物体を表現する登録データ２５４の新しいインスタンスに関して、ＭＶＲ、および／または、その処理結果を記憶することによって）認識されていない物体を登録できる。更新された登録データを使用して、認識されていない物体のその後のインスタンスを認識できる。
【００４０】
ロボットシステム１００は、第１の画像センサ３１２および／または第２の画像センサ３１４からの画像データを使用して、スタート位置１１４からタスク位置１１６に物体を移動する等のためのタスクを行うことができる。従って、ロボットシステム１００は、画像データを使用して、タスクを行うための１つまたは複数の動作計画を導出、実施できる。ロボットシステム１００は、移動中、さらに、第２の画像センサ３１４からの画像データを使用して、動作計画の調整もしくは動作計画からの逸脱を行ってよい、および／または、物体に関する追加データを取得できる。
【００４１】
物体認識
本技術の１つまたは複数の実施形態に従って、図４Ａは、図１のロボットシステム１００によって処理される物体のスタックの例（例えば、図３の対象スタック３１０）の図であり、図４Ｂは、スタックの例の上面の図（例えば、対象スタック３１０の実際の上面図４１０）であり、図４Ｃは、上面に対応するセンサデータ（例えば、上面図データ４２０）の図である。図４Ａ、４Ｂ、および４Ｃを一緒に参照すると、上面図データ４２０は、実際の上面図４１０を描写または表現する１つまたは複数の視覚画像、および／または、１つまたは複数の３Ｄデプスマップを含み得る。
【００４２】
ロボットシステム１００は、対象スタック３１０の上に配置された図３の第１の画像センサ３１２からの画像データ（例えば、上面図データ４２０）を様々な目的で使用できる。ロボットシステム１００は、上面図データ４２０を分析して、物体の境界に対応し得る辺を識別できる。例えば、ロボットシステム１００は、深度測定値および／または画像特性（例えば、異なる色、線形パターン、影、鮮明さの相違等）に基づいて、画像データで表現された辺および／または連続した表面を識別できる。また、ロボットシステム１００は、深度測定値の差等に基づいて、露出した辺４２２（例えば、ほぼ同じ高さの他の物体／表面と水平に接触していない物体の上面の辺）を識別できる。
【００４３】
対象スタック３１０は、図２のマスタデータ２５２に登録された物体、および／または、マスタデータ２５２に登録されていない予期せぬ物体を含み得る。従って、ロボットシステム１００は、物体表面４１６に対応する画像データを使用して、対象スタック３１０内にある物体を認識または識別できる。ある実施形態においては、ロボットシステム１００は、画像データ、または、画像データの１つまたは複数の部分を、マスタデータ２５２（例えば、物体表面４１６に対応するマスタデータ２５２内の図２の様々な登録データ２５４）と比較して、対象スタック３１０内の物体を認識できる。例えば、ロボットシステム１００は、上面図データ４２０の一部が登録データ２５４の物体表面４１６の１つまたは複数の画像／特徴に一致する時、対象スタック３１０内の既知の／認識された物体（例えば、認識された物体４１２）を識別できる。実際の上面図４１０の残りの部分（例えば、登録データ２５４と一致しない部分）は、認識されていない物体４１４に対応する一致しない部分４３０であってよい。認識されていない物体４１４の実際の辺は、画像データで検出可能な場合も可能でない場合もあり、図４Ｃに破線を用いて示される。
【００４４】
画像データの一致に基づいて、ロボットシステム１００は、上面図データ４２０内で認識された物体４１２の位置を突き止めることができ、これは、さらに、（例えば、ピクセル位置を座標系にマッピングするプレキャリブレーション表および／または方程式を介して）対象スタック３１０の実世界の位置に変換できる。さらに、ロボットシステム１００は、認識された物体４１２の露出していない辺の位置を、一致に基づいて推定できる。例えば、ロボットシステム１００は、認識された物体４１２の寸法をマスタデータ２５２から取得できる。ロボットシステム１００は、認識された物体４１２の露出した辺４２２から既知の寸法によって分けられる画像データの部分を測定できる。マッピングに従って、ロボットシステム１００は、認識された物体４１２の１つまたは複数の登録に基づいた辺４２４を決定できる、および／または、上記のように、登録に基づいた辺４２４を実世界の位置に同様にマッピングできる。
【００４５】
ある実施形態においては、ロボットシステム１００は、画像データに表現された対象スタック３１０の露出した外側角部４２６を識別できる。例えば、ロボットシステム１００は、異なる向きを有する（例えば、異なる角度で延びる）露出した辺４２２の２つ以上の間の交点／接合点に基づいて、露出した外側角部４２６を識別できる。１つまたは複数の実施形態において、露出した辺４２２が、閾値範囲約９０度等、所定の範囲内の角度を形成する時、ロボットシステム１００は、露出した外側角部４２６を識別できる。以下に詳細に記載するように、ロボットシステム１００は、露出した外側角部４２６と対応する露出した辺４２２を使用して、認識されていない物体４１４を処理および／または操作できる。
【００４６】
説明例のように、ロボットシステム１００は、上面図データ４２０（例えば、３Ｄデプスマップ）を分析して、層／表面を識別する等によって、セグメンテーションを行うことができる。ロボットシステム１００は、（例えば、平らな表面に関して）互いに閾値範囲内の深度測定値を有する横方向に隣り合う位置のグループ化として、層を識別できる。ロボットシステム１００は、さらに、１つまたは複数の水平方向の線形パターン／傾斜に従う深度測定値を有する横方向に隣り合う位置のグループ化として、角度のある表面を識別できる。ロボットシステム１００は、また、上面図データ４２０を分析して、３Ｄの辺／角部を識別できる。例えば、ロボットシステム１００は、層／表面の周囲の境界を３Ｄの辺として識別でき、３Ｄの辺の間の接合点を３Ｄの角部として識別できる。また、ロボットシステム１００は、色、明るさの変化、および／または、変化に関連付けられた視覚的パターンを検出することに基づいて、辺／角部を識別できる。ある実施形態においては、ロボットシステム１００は、ソーベルフィルタを使用して、辺／角部を識別できる。識別された層、表面、辺、および／または、角部を使用して、ロボットシステム１００は、上面図データ４２０に表現され得る各物体の存在位置および／または境界を推定できる。ある実施形態においては、ロボットシステム１００は、表面の推定値を導出、検証すること、検証された／登録された／確かな物体表面を取り除くこと、および／または、推定された物体を操作することに基づいて、上面図データ４２０を繰り返し、処理できる。
【００４７】
認識されていない物体の処理
ある実施形態においては、ロボットシステム１００は、対象スタック３１０内の物体の認識ステータスおよび／または相対的位置に従って、物体を処理（例えば、検出、および／または、移動）できる。例えば、ロボットシステム１００は、認識された物体を最初に掴み取り、移動し、次に、センサ（例えば、図３の第１の画像センサ３１２）から別の画像データセットを生成できる。図５Ａは、本技術の１つまたは複数の実施形態による、最初の動作セット（例えば、認識された物体４１２を掴むこと、および、移動すること）の後の上面に対応するセンサデータ５０１の図である。図５Ａの網掛部分は、図４Ｂ、４Ｃに示された認識された物体４１２の２つを取り除いた後の深度測定値の変化に対応する。
【００４８】
ロボットシステム１００が、画像データにおいて認識された物体４１２を検出しない時、ロボットシステム１００は、図４Ａの認識されていない物体４１４の位置を突き止めるために、任意の露出した外側角部４２６、および／または、露出した辺４２２を識別できる。例えば、ロボットシステム１００は、上記と同様に、センサデータ５０１を処理して、露出した外側角部４２６および／または露出した辺４２２を識別できる。従って、ロボットシステム１００は、認識された物体４１２を取り除いた後に露出された任意の角部／辺をさらに識別し、および／または、その位置を突き止めることができる。ある実施形態においては、ロボットシステム１００は、対応する閾値に従って、図４Ｂの露出した辺４２２の２つ以上の間の交点／接合点として、露出した内側角部５０２をさらに識別できる。例えば、ロボットシステム１００は、対応する連続した表面に対して１８０度を超える露出した辺４２２の２つ以上の間の接合点として、露出した内側角部５０２を識別できる。ある実施形態においては、ロボットシステム１００は、露出した辺４２２が約２７０度の閾値範囲内にある角度を形成する時、露出した内側角部５０２を識別できる。
【００４９】
ある実施形態においては、認識された物体４１２が何も残っていない時、ロボットシステム１００は、露出した角部および／または露出した辺に基づいて、（例えば、認識されていない物体４１４のうちから）対象スタック３１０の登録対象５０６を識別できる。例えば、ロボットシステム１００は、露出した外側角部４２６に関連付けられたセンサデータ５０１の領域と、対応する認識されていない物体４１４とを選択できる。言い換えると、認識された物体４１２を処理した後、ロボットシステム１００は、対象スタック３１０の露出した外側角部４２６を形成／構成する認識されていない物体４１４を処理できる。センサデータ５０１の対応する部分を分析することに基づいて、ロボットシステム１００は、認識されていない物体４１４を把持し、把持した物体を持ち上げ、および／または、水平に移動し、および／または、登録のために把持した物体を撮影できる。さらに、把持した物体を撮影した後、ロボットシステム１００は、把持した物体を目的地（例えば、図３のコンベヤ３０６）に移動できる。
【００５０】
センサデータ分析をさらに記載するために、図５Ｂは、本技術の１つまたは複数の実施形態による、図５Ａのセンサデータ５０１の部分５Ｂの詳細な図である。ロボットシステム１００は、ＭＶＲ５１２に従ってセンサデータ５０１を分析して、把持位置５２０を決定できる。ＭＶＲ５１２は、物体と接触、把持、および／または、持ち上げるのに必要な最小サイズのエリアを表し得る。言い換えると、ＭＶＲ５１２は、１つの物体の表面（例えば、上面）の推定値を表し得る。例えば、ＭＶＲ５１２は、エンドエフェクタ３０４（例えば、把持部の吸引カップ）が占めるエリア、または、取付面積を囲む追加の／緩衝領域を有するより大きいエリア等、図３のエンドエフェクタ３０４の取付面積に関連付けられてよい。ある実施形態においては、ＭＶＲ５１２は、最小および／または最大の候補サイズに対応してよく、最小および／または最大の候補サイズは、対象スタック３１０の物体の最小／最大の可能なインスタンスの物理的寸法（例えば、長さ、幅、高さ、直径、外周等）に対応し得る。言い換えると、対象スタック３１０内には、最小候補サイズより小さい寸法を有する物体、最大候補サイズより大きい寸法を有する物体は無い。最小／最大候補サイズは、所定の値（すなわち、対象スタック３１０を処理する前に与えられた値）であってよい。
【００５１】
ある実施形態においては、ロボットシステム１００は、対応する表面（例えば、互いから閾値範囲内にある高さ／深度の値を有するエリア）の上の露出した辺４２２から延びる２つ以上の交差する線に基づいて、ＭＶＲ５１２を導出できる。例えば、ロボットシステム１００は、露出した外側角部４２６の周囲の露出した辺４２２から延びる垂直な線に基づいて、ＭＶＲ５１２を導出できる。線は、露出した外側角部４２６からの分離距離に対応する露出した辺４２２上の部分（例えば、点）から延ばされてよい。分離距離は、所定の値、および／または、１つまたは複数の処理結果に従って計算された値（例えば、推定した辺５２４もしくは対応する信頼値、および／または、対応する物体の推定される識別もしくは対応する信頼値）であってよい。従って、ロボットシステム１００は、延長された線と露出した辺４２２とによって画定されるエリアとしてＭＶＲ５１２を導出できる。
【００５２】
他の実施形態においては、ロボットシステム１００は、露出した辺４２２に沿って移動でき、露出した辺の周囲（例えば、所定距離内）の領域を分析できる。分析に基づいて、ロボットシステム１００は、露出した辺４２２の周囲の他の２Ｄ／３Ｄの辺を識別できる。ロボットシステム１００は、識別した辺をテストすることに基づいて、識別した辺を推定した辺５２４と決定できる。例えば、ロボットシステム１００は、識別した辺が分析された露出した辺４２２と交わる時、および／または、補完的な露出した辺４２２と平行である時、推定した辺５２４を決定できる。
【００５３】
ある実施形態においては、ロボットシステム１００は、ＭＶＲ５１２を用いて、把持位置５２０を導出できる。把持位置５２０は、最初の操作のためにエンドエフェクタ３０４の真下にくる、および／または、エンドエフェクタ３０４に接触する物体／スタック上のエリアに対応し得る。言い換えると、ロボットシステム１００は、次の操作（例えば、持ち上げプロセス、水平移動プロセス、および／または、登録のためのデータ収集プロセス）のために、把持位置５２０の上に把持部を置いて、対応する物体を把持できる。ロボットシステム１００は、ＭＶＲ５１２の中心部分を占める把持位置５２０を導出してよい。また、ロボットシステム１００は、露出した辺４２２のうちの１つまたは複数と整列、当接する、および／または、露出した外側角部４２６のうちの１つと整列する把持位置５２０（例えば、エンドエフェクタ３０４の取付面積）を導出してよい。ロボットシステム１００は、推定した辺５２４または他の処理結果に関連付けられた信頼レベルが、所定の閾値未満になる時、中心をはずれた把持位置を導出する場合がある。
【００５４】
ロボットシステム１００は、導出した把持位置５２０を使用して、図３のロボットアーム３０２とエンドエフェクタ３０４とを操作できる。ロボットシステム１００は、把持位置５２０でスタックの角部にある物体（例えば、登録対象５０６）を把持できる。ある実施形態においては、ロボットシステム１００は、以前は露出していなかった辺を明瞭に区別するために、把持した物体を持ち上げ、および／または、水平に移動させることができる。例えば、ロボットシステム１００は、辺を正確に区別するために物体を持ち上げ、および／または、物体を所定の距離だけ水平に移動させることができる。また、例えば、ロボットシステム１００は、エンドエフェクタの高さの変化および／または傾きを監視および／または分析しながら、物体を持ち上げ、および／または水平に移動させることができ、それによって、露出した辺４２２の反対側の追加の辺が認識可能になる。ロボットシステム１００は、最初の持ち上げ中、および／または、最初の持ち上げ後、データを取得、処理して、認識されていない物体４１４をさらに記載することができる。
【００５５】
認識されていない物体の登録データの収集
図６は、本技術の１つまたは複数の実施形態による、最初の持ち上げ操作の後の物体の図である。ある実施形態においては、ロボットシステム１００は、外部の物体（例えば、把持した物体）、および／または、その物体の動きによって図３のロボットアーム３０２にかかる力を測定するように構成された１つまたは複数のセンサを含み得る。例えば、ロボットシステム１００は、エンドエフェクタ３０４に取り付けられた、および／または、エンドエフェクタ３０４と一体になった力センサ、トルクセンサ、または、これらの組み合わせ（例えば、力トルク（ＦＴ）センサ６０２）を含み得る。従って、ロボットシステム１００は、図５の把持位置５２０で把持された把持物体（例えば、登録対象５０６と判断された図４の認識されていない物体４１４の１つ）を持ち上げながら、下向きの力の測定値６０４、および／または、トルク測定値６０６を測定できる。
【００５６】
ある実施形態においては、ロボットシステム１００は、下向きの力の測定値６０４を使用して、登録対象５０６の重さを決定できる。ある実施形態においては、ロボットシステム１００は、下向きの力の測定値６０４および／またはトルク測定値６０６を使用して、登録対象５０６の推定トルク‐アームベクトル６０８および／または推定質量中心（ＣｏＭ）６１０を計算できる。推定トルク‐アームベクトル６０８は、ＦＴセンサ６０２によって提供された測定ベクトルの和に一致し得る。ロボットシステム１００は、推定トルク‐アームベクトル６０８、トルク測定値６０６、および／または、下向きの力の測定値６０４を入力として使用する所定のプロセスおよび／または方程式に従って、推定ＣｏＭ６１０を計算できる。
【００５７】
ある実施形態においては、ロボットシステム１００は、最初の持ち上げ操作を行うためのフィードバック信号として、センサ測定値を使用できる。例えば、ロボットシステム１００は、下向きの力の測定値６０４および／またはトルク測定値６０６が安定する（例えば、ある測定期間にわたって測定値が閾値範囲内にある）まで、最初の持ち上げ操作を行うことができる。従って、ロボットシステム１００は、把持した物体が下にある物体または構造から離れて持ち上げられ（すなわち、もはや支持されておらず）、ロボットアーム３０２だけによって支持されるようになった時を判断できる。ロボットシステム１００は、最初の持ち上げ操作の停止、および／または、把持した物体に関する追加データ（例えば、寸法、重さ、ＣｏＭ、および／または、表面画像）取得のトリガとして、安定の判断を使用できる。
【００５８】
把持した物体（例えば、図４Ｂの認識されていない物体４１４）に関して取得したデータをさらに記載するために、本技術の１つまたは複数の実施形態に従って、図７Ａは、比較データ７０２の図であり、図７Ｂは、更新されたデータ７４０の図である。上記のように、ロボットシステム１００は、図５ＢのＭＶＲ５１２に基づいて、認識されていない物体４１４を把持できる。把持に基づいて、ロボットシステム１００は、把持した物体を（例えば、最初の持ち上げ操作を介して）持ち上げ、および／または、水平に移動して、隣の当接している物体／表面から把持した物体を分離できる。ロボットシステム１００は、把持した物体を持ち上げ、および／または、水平に移動した後、比較データ７０２（例えば、視覚画像、デプスマップ、点群等の２Ｄ／３Ｄ測定データ）を取得できる。ある実施形態においては、比較データ７０２は、図３の第１の画像センサ３１２等、図２のセンサ２１６の１つまたは複数を介して取得できる。
【００５９】
ロボットシステム１００は、最初のセンサデータ（例えば、図４Ｃの上面図データ４２０、および／または、物体の持ち上げ前に取得した図５Ａのセンサデータ５０１）、および／または、比較データ７０２に基づいて、認識されていない物体４１４の更新された画像（例えば、更新されたデータ７４０）をさらに生成できる。ある実施形態においては、ロボットシステム１００は、最初の持ち上げ操作の前後の画像データを組み合わせることに基づいて、更新されたデータ７４０を生成できる。例えば、ロボットシステム１００は、上面図データ４２０、および／または、ＭＶＲ５１２および／または把持位置５２０に対応するセンサデータ５０１から、クロップされた部分７３４を導出できる。ロボットシステム１００は、ＭＶＲ５１２および／または把持位置５２０を最初のセンサデータにマッピングして、画素情報および／または深度測定値を対応するエリアにコピーすることに基づいて、クロップされた部分７３４を導出できる。ロボットシステム１００は、クロップされた部分７３４を比較データ７０２の上に重ね合わせることに基づいて、更新されたデータ７４０を生成できる。更新されたデータ７４０に対するクロップされた部分７３４の位置は、露出した外側角部４２６と露出した辺４２２とを基準として用いることによって決定できる。従って、ロボットシステム１００は、クロップされた部分７３４を使用して、図３のロボットアーム３０２および／または図３のエンドエフェクタ３０４を描く比較データ７０２内のエリアをカバーできる。
【００６０】
ある実施形態においては、ロボットシステム１００は、比較データ７０２に基づいて、持ち上げた物体の寸法を識別または導出できる。ロボットシステム１００は、その寸法を使用して、最初のセンサデータから対応する部分をクロップしてよい。ロボットシステム１００は、新しく発見された境界が最初の持ち上げ前にあった場所に対応する最初のセンサデータからのクロップされた部分として、更新されたデータ７４０を生成できる。
【００６１】
ある実施形態においては、ロボットシステム１００は、覆われていない部分７３２を比較データ７０２から導出できる。覆われていない部分７３２は、エンドエフェクタ３０４および／またはロボットアーム３０２によって覆われていない認識されていない物体４１４の上面に対応し得る。ロボットシステム１００は、エンドエフェクタ３０４および／またはロボットアーム３０２の１つまたは複数の所定のパターンを使用して、覆われていない部分７３２を導出できる。例えば、ロボットシステム１００は、所定の視覚的／画素パターンに一致する比較データ７０２の部分を認識、除去することに基づいて、覆われていない部分７３２を導出できる。ロボットシステム１００は、覆われていない部分７３２をクロップされた部分７３４と組み合わせて、更新されたデータ７４０を生成できる。
【００６２】
ロボットシステム１００は、比較データ７０２および／または更新されたデータ７４０を処理して、把持した物体の１つまたは複数の物理的特性に関する情報を取得できる。例えば、ロボットシステム１００は、発見された辺７２２、発見された角部７２６、辺の長さの測定値７２８、および／または、角部の角度の測定値７３０を含む、物体の輪郭／形状の比較データ７０２を処理できる。ロボットシステム１００は、上述した１つまたは複数の辺検出スキームを使用して、対応する露出した辺４２２の反対側の発見された辺７２２を決定できる。ＭＶＲ５１２に従った導出および把持に基づいて認識されていない物体４１４を上昇させることによって、持ち上げた物体の上面と周囲の物体／表面との間に高さの差ができる。高さの差を使用して、発見された辺７２２を明瞭に決定できる。ロボットシステム１００は、露出した辺４２２から延びる辺を検索することに基づいて、発見された辺７２２を決定できる。ある実施形態においては、ロボットシステム１００は、長方形の上面を有する長方形の箱／パッケージ等に関して、露出した辺４２２からほぼ直角に延びる辺を決定することに基づいて、発見された辺７２２を決定できる。
【００６３】
ロボットシステム１００は、異なる向きを有する発見された辺７２２の２つ以上が交差する接合点として、発見された角部７２６を決定することができる。ある実施形態においては、ロボットシステム１００は、所定の関数または方程式等に従って、発見された角部７２６の角度（例えば、角部の角度の測定値７３０）を決定できる。
【００６４】
発見された辺７２２を決定することに基づいて、ロボットシステム１００は、発見された辺７２２および／または露出した辺４２２の辺の長さの測定値７２８（例えば、物体の寸法）を計算できる。ロボットシステム１００は、撮影画像（例えば、比較データ７０２および／またはセンサデータ５０１）の辺の長さを決定することと、画像内のその長さを１つまたは複数の所定のマッピング関数／方程式等に従って実世界の長さに変換することとに基づいて、辺の長さの測定値７２８を計算できる。
【００６５】
ある実施形態においては、ロボットシステム１００は、比較データ７０２に基づいて、辺の長さの測定値７２８を決定でき、辺の長さの測定値７２８を使用して、持ち上げられた認識されていない物体の表面（例えば、上面）を描く画像として、更新されたデータ７４０を生成できる。例えば、上面図データ４２０および／またはセンサデータ５０１の一部分をクロップする時、ロボットシステム１００は、ＭＶＲ５１２の１つまたは複数の境界を越えて、対応する辺の長さの測定値７２８まで延びることができる。露出した辺／角部に従って幾つかの物体を持ち上げる時、ロボットアーム３０２は、露出した角部がロボットの土台の反対側に位置する時等、比較データ７０２において、持ち上げた物体の一部を遮蔽することになり得る。従って、ロボットシステム１００は、露出した角部／辺、および／または、辺の長さの測定値７２８と比べて、遮蔽された領域を判断し、上面図データ４２０および／またはセンサデータ５０１から対応する部分をクロップできる。上記のように、ロボットシステム１００は、露出した角部／辺、および／または、辺の長さの測定値７２８を基準として用いて、クロップされた部分を重ね合わせて、遮蔽された領域に置き換えることができる。ロボットシステム１００は、最初の画像（例えば、持ち上げ前に取得した第１の画像）からクロップした部分を比較データ７０２の遮蔽された部分に重ね合わせたまたは置き換えた複合画像として、更新されたデータ７４０を生成できる。
【００６６】
上記処理結果の１つまたは複数に基づいて、ロボットシステム１００は、対応する物体（例えば、認識されていない物体４１４）の登録データ２５４を生成できる。例えば、ロボットシステム１００が、対象スタック３１０、または、その一部分（例えば、最上層）が、１つまたは複数の認識されていない物体４１４を含むと判断すると、ロボットシステム１００は、上記のように、認識されていない物体４１４のうちの１つを登録対象５０６として選択し、登録対象５０６を操作し、および／または、登録対象５０６に関するデータを取得できる。さらに、ロボットシステム１００は、所定のプロトコル／フォーマットに従って、登録対象５０６に関して、登録データ２５４の新しいインスタンス（例えば、図２のマスタデータ２５２に新しいエントリまたは記録）を作成できる。従って、ロボットシステム１００は、取得したデータを登録データ２５４の新しいインスタンスに記憶できる。例えば、ロボットシステム１００は、登録対象５０６に関して、辺の長さの測定値７２８を水平寸法として、角部の角度の測定値７３０もしくはその派生値を水平方向の形状として、更新されたデータ７４０を表面画像として、または、これらの組み合わせを記憶できる。
【００６７】
比較データ７０２と最初のデータとに基づいて更新されたデータ７４０は、物体認識を向上させる。登録対象５０６を持ち上げた後に取得された比較データ７０２を、更新されたデータ７４０を生成するベースとして用いることは、物体の辺の正確な決定につながる。物体の辺の決定の精度が向上することは、さらに、表面画像と、上記様々な測定値の決定の精度を向上させる。取得したデータおよび表面画像の精度が向上すると、さらに、対応する登録データ２５４に基づいて、その後に同じ種類の物体を認識する可能性を向上させる。ある実施形態においては、比較データ７０２を取得、処理することは、最初のデータのみを処理すること、または、スタックの状態を処理することよりも測定値および表面画像の精度を向上させる。最初の持ち上げ、および／または、水平方向の移動は、登録対象５０６の周囲の物体の邪魔をしたり、その物体を動かしたりする場合があるので、最初の持ち上げおよび／または水平方向の移動の後、残りのスタックの代わりに、登録対象５０６を直接、分析することは、精度を向上させる。
【００６８】
物体検出および登録のシナリオの例
図８Ａは、上面図データ（例えば、図３の上面センサ３１２ａ等、図３の第１の画像センサ３１２からの上面図データ４２０）の図であり、図８Ｂは、（任意選択で、図３の側面センサ３１２ｂ等、側面図データとして表され得る）側面図８００の図である。両図とも、本技術の１つまたは複数の実施形態による直接登録状態であってよい、側面図データは、本発明の実施には必須ではなく、任意選択であってよい。側面図データ８００は、図８Ａの方向８Ｂによる対象スタック３１０を表し得る。図８Ａおよび図８Ｂを一緒に参照すると、ロボットシステム１００は、上面図データ４２０と、任意選択で、側面図データ８００とを分析して、対象スタック３１０に関連付けられた直接登録状態を識別、処理できる。
【００６９】
直接登録状態は、他の周囲の物体／表面と十分に分離される物体認識に関連付けられてよい。ある実施形態においては、直接登録状態は、分離閾値８１２に基づいてよい。分離閾値８１２は、隣り合う辺の間の閾距離に対応し得る。言い換えると、分離閾値８１２は、ある物体またはその推定値（例えば、図５ＢのＭＶＲ５１２）を囲む領域であり、その物体とは異なる（例えば、異なる視覚的特性、および／または、異なる深度測定値）である領域を識別するための要件に対応し得る。説明的な例として、ロボットシステム１００は、対応するＭＶＲを囲む領域の分析に基づいて、「１」というラベルの付いた物体を検出できる。物体は、分離閾値８１２を超える距離だけ、物体「３」および「４」から水平方向に分離されている。
【００７０】
また、説明的な例として、ロボットシステム１００は、同様に、分離閾値８１２に基づいて「２」というラベルの付いた物体を検出できる。隣り合う物体（例えば、物体２および３）が、両物体の上面間に閾値を超える高さの差８１４を有する時、ロボットシステム１００は、物体の表面は同じ高さではないと判断できる。従って、物体２を囲む部分は、開いていると考えられてよい。よって、囲む部分は、分離閾値８１２を満たしてよく、ロボットシステム１００は、上記と同様に、物体２を検出できる。
【００７１】
ある実施形態においては、ロボットシステム１００は、さらに、他の処理結果に従って、ＭＶＲを分析、分類できる。例えば、ロボットシステム１００は、ＭＶＲに含まれた、または、ＭＶＲに関連付けられた、開いた／３Ｄの角部の数に基づいて、確実または不確実として、ＭＶＲを分類し得る。説明的な例として、ロボットシステム１００は、３つ以上の開いた角部を含む、または、それらに関連付けられたＭＶＲを、確実なＭＶＲと判断できる。ロボットシステム１００は、１つまたは２つの開いた角部を含む、または、それらに関連付けられたＭＶＲを不確実なＭＶＲと判断できる。従って、ロボットシステム１００は、物体３に関連付けられたＭＶＲを、物体３に含まれた３つの露出した／３Ｄの角部に従って、確実なＭＶＲとして分類できる。
【００７２】
ロボットシステム１００は、ＭＶＲ寸法／サイズを、所定の閾値（例えば、最小閾値および／または最大閾値）と比較する等によって、ＭＶＲを検証できる。ロボットシステム１００は、所定の閾値を満たすＭＶＲを検証できる。直接登録状態の１つまたは複数を満たす検証されたＭＶＲに関して、ロボットシステム１００は、（例えば、物体が適格ＭＶＲに対応する位置に存在すると判断／結論付けること等によって）物体を検出できる。さらに、ロボットシステム１００は、検出した物体を直接、登録できる。例えば、ロボットシステム１００は、検出した認識されていない物体に関して、図２の登録データ２５４のインスタンスを作成し、対応する適格ＭＶＲをそこに記憶できる。ロボットシステム１００は、ＭＶＲに対してさらに調整／検証／テストすることなく、ＭＶＲを記憶することに基づいて、物体を直接、登録できる。
【００７３】
図９Ａ〜図９Ｃは、登録対象５０６の最初の動き（例えば、最初の持ち上げ）に続く予測した状態の様々な態様を示す。本技術の１つまたは複数の実施形態による予測した状態に関して、図９Ａは、上面図データ（例えば、上面図データ４２０）の図であり、図９Ｂは、（任意選択で、側面図データ９００として表される）対象スタックの側面図の例であり、図９Ｃは、比較データ７０２の図である。
【００７４】
図９Ａ〜図９Ｃを一緒に参照すると、予測した状態は、登録対象５０６に関して導出されたＭＶＲが、登録対象５０６の表面と、その境界とに正確に一致する時に対応し得る。最初の動きに関して、ロボットシステム１００は、ロボットアーム３０２および／またはエンドエフェクタ３０４を動作させて、登録対象５０６（例えば、物体「１」）のＭＶＲ５１２の中央部分にある把持位置５２０に従って、登録対象５０６を把持してよい。ロボットシステム１００は、最初の持ち上げ高さ９０４だけ、登録対象５０６を持ち上げることによって、登録対象５０６の上面をその最初の深度測定値／高さから、同じ量だけ移動させてよい。従って、ロボットシステム１００は、登録対象５０６の上面と、周囲の以前は当接していた表面との間の垂直方向の分離を引き起こし得る。
【００７５】
ロボットシステム１００は、最初の動きの後、比較データ７０２を取得し得る。比較データ７０２は、一致しない部分４３０によって囲まれた上面の表現を含み得る。比較データ７０２は、センサと物体（複数可）との間にロボットアーム３０２および／またはエンドエフェクタ３０４を描く遮蔽された領域９１２をさらに含み得る。最初の持ち上げは、また、センサと、以前は見えていた物体の部分との間に、登録対象５０６が移動／持ち上げられることによって引き起こされた持ち上げによる遮蔽を作り出す場合がある。従って、比較データ７０２は、最初の画像データ（例えば、上面図データ４２０）に描かれていた持ち上げによる遮蔽部分９１４（例えば、登録対象５０６に以前は隣接／当接していた部分）を描いていない場合がある。図９Ｃに示す例に関しては、第１の画像センサ３１２が対象スタック３１０の中心部分の上に位置する時、持ち上げによる遮蔽部分９１４は、登録対象５０６の右側になり得る。
【００７６】
ロボットシステム１００は、上記のように、比較データ７０２を分析して、層、辺、および／または、角部を識別できる。比較データ７０２を分析する時、ロボットシステム１００は、層／辺の識別のために、遮蔽された領域９１２および／または持ち上げによる遮蔽部分９１４を取り除くこと、または、無視すること等によって、様々な遮蔽を考慮できる。ロボットシステム１００は、ロボットアーム３０２および／またはエンドエフェクタ３０４の実世界の位置／姿勢を追跡または導出できるので、ロボットシステム１００は、比較データ７０２の時点で、このような位置／姿勢を決定できる。ロボットシステム１００は、実世界の姿勢を使用して、比較データ７０２の対応する部分にマッピング、決定できる。結果として生じる部分は、遮蔽された領域９１２であってよく、遮蔽された領域９１２は、分析（例えば、辺検出）から取り除かれるとして、マスクされてよい、または、フラグを付けられてよい。
【００７７】
ある実施形態においては、ロボットシステム１００は、比較データ７０２の一部分を分析領域９２２（例えば、図７Ｂの覆われていない部分７３２、または、その一部分）として、画定／指定するために使用される分析境界９１６を導出してよい。例えば、ロボットシステム１００は、図７Ａの露出した辺４２２および／または発見された辺７２２に対して、各分析境界９１６を導出できる。各分析境界９１６は、露出した辺４２２および／または発見された辺７２２の１つに対して平行な向きであってよく、エンドエフェクタ３０４の横方向の周囲の位置（例えば、最も近い補完される辺４２２または７２２に近い部分／点）と一致または交差してよい。ロボットシステム１００は、分析境界９１６と、対応する辺４２２／７２２との間の画像の部分を分析領域９２２として導出できる。分析領域９２２は、プラットフォーム（例えば、パレット３０８）の周囲の端部および／または対象スタック３１０の周囲の端部（例えば、一致しない部分４３０を画定する対応する露出した辺４２２）まで等、１つまたは複数の既知のまたは導出された位置まで外側に延びてよい。結果として生じる分析領域９２２は、それぞれ、遮蔽された領域とは別の（例えば、を除く）第２の画像データの一部を表し得る。従って、ロボットシステム１００は、辺、寸法等を識別する等のために、分析領域９２２を処理してよく、遮蔽された領域をマスク／無視してよい。
【００７８】
ロボットシステム１００は、分析境界９１６がロボットアーム３０２の既知の位置／姿勢を含むマスクされた領域９２４を画定するように、ロボットアーム３０２の既知の位置／姿勢に従って分析境界９１６をさらに導出できる。例えば、ロボットシステム１００は、ロボットアーム３０２が、動作計画および／またはロボットユニット（例えば、土台）と登録対象５０６との相対的位置に基づいて、ＭＶＲの特定の角部を通って延びて登録対象５０６にアクセスすることを判断できる。ロボットシステム１００は、マスクされた領域９２４を分析境界９１６によって区切られた領域として決定でき、特定の角部を含む。マスクされた領域９２４は、遮蔽された領域に一致し得る。従って、ロボットシステム１００は、辺の識別および／または長さの測定等、一定のプロセスに対しては、マスクされた領域９２４を無視してよい、または、処理しなくてよい。
【００７９】
ロボットシステム１００は、分析領域９２２を処理し、マスクされた領域９２４を無視して、発見された辺７２２を識別できる。言い換えると、ロボットアーム３０２および／またはエンドエフェクタ３０４の既知の位置／姿勢に従って、ロボットシステム１００は、比較データ７０２の露出した辺４２２と一致する比較的小さいストリップを、分析領域９２２として識別、処理できる。結果として生じる分析領域９２２は、遮蔽されない可能性が高いので、ロボットシステム１００は、（例えば、層検出、ソーベルフィルタ等を介して）上記のように、分析領域９２２を処理して、発見された辺７２２を識別できる。分析された領域において発見された辺７２２を識別した後、ロボットシステム１００は、テンプレートの形状（例えば、長方形）に従って、分析領域９２２を超える発見された辺７２２を追跡および／または外挿してよい。ロボットシステム１００は、発見された辺７２２がＭＶＲ５１２の図５の推定した辺５２４と一致する時、予測した状態と判断できる。言い換えると、ロボットシステム１００は、発見された辺７２２が図４Ｂの露出した辺４２２に対して推定した辺５２４と同じ位置（例えば、分離距離および／または向き）にある時、予測した状態と判断できる。
【００８０】
ロボットシステム１００は、最初の持ち上げによって引き起こされ得る位置／寸法の変化を調整できる。調整後、ロボットシステム１００は、上記のように、発見された辺７２２に基づいて、更新されたデータ７４０を生成できる。予測した状態に関して、ロボットシステム１００は、ＭＶＲ５１２、または、ＭＶＲ５１２内の画像データの一部を、更新されたデータ７４０（例えば、登録対象５０６の表面を表すもの）として使用できる。従って、ロボットシステム１００は、上記のように、登録対象５０６を検出、登録できる。ある実施形態においては、ロボットシステム１００は、（例えば、既知の持ち上げ高さ、センサ位置に対する辺の位置、対応する角度等に基づいて）持ち上げによる遮蔽部分９１４を識別し、それに従って、更新されたデータ７４０を調整できる。
【００８１】
図１０Ａ〜図１０Ｃは、登録対象５０６の最初の動き（例えば、最初の持ち上げ）の後の予期せぬ状態の様々な態様を示す。本技術の１つまたは複数の実施形態による予測した状態に関する、図１０Ａは、上面図データ（例えば、上面図データ４２０）の図であり、図１０Ｂは、（任意選択で、側面図データ１０００として表される）物体スタック３１０の側面図であり、図１０Ｃは、比較データ７０２の図である。
【００８２】
図１０Ａ〜図１０Ｃを一緒に参照すると、ロボットシステム１００は、登録対象５０６の上面と、周りの以前は当接していた表面との間を、上記のように垂直に分離し得る。予期せぬ状態は、登録対象５０６の導出したＭＶＲが、最初の動きの後、登録対象５０６の表面とその境界に一致しない場合に対応し得る。
【００８３】
説明のための例として、ロボットシステム１００は、対象スタック３１０の最上層を形成する５つの推定物体に対応する５つのＭＶＲを導出してよい。ロボットシステム１００は、「１」とラベル付けされた推定物体に対応する登録対象５０６を選択、操作（例えば、把持、最初の持ち上げ）を行うことができる。しかしながら、物体推定に誤りがある時、導出されたＭＶＲは、表面の一部のみに対応する場合がある、または、他の物体推定の誤りに関して２つ以上の物体の表面に対応する場合がある。
【００８４】
導出されたＭＶＲ５１２が、図１０Ｂに示す実際の物体全体をカバーしない時、最初の持ち上げは、比較データ７０２の予期せぬ部分１００２の移動（例えば、深度測定値の変化）を起こし得る。予期せぬ部分１００２は、１つまたは複数の予測された辺の位置１００４（例えば、図５Ｂの推定した辺５２４に対応する位置）を含むおよび／または超える比較データ７０２の部分等の、ＭＶＲ５１２の外側の部分に対応し得る。従って、ロボットシステム１００が、上記のように、比較データ７０２を分析する（例えば、層分離、辺／角部の識別等）時、識別された表面は、ＭＶＲ５１２より大きいエリアに対応し、予期せぬ部分１００２を占める場合がある。
【００８５】
ロボットシステム１００は、比較データ７０２において発見された辺７２２、および／または、新しく露出した辺４２２の長さを測定することによって、図７Ａの辺の長さの測定値７２８を生成してよい。ロボットシステム１００は、測定された長さがＭＶＲ５１２の寸法と一致しない時、予期せぬ状態を検出し得る。例えば、第２の画像データ（例えば、図７Ａの比較データ７０２）の１つまたは複数の部分および／または露出した辺が、最初のＭＶＲの対応する部分に一致しない時、最初のＭＶＲを評価することは、予期せぬ状態を検出することを含む。
【００８６】
ある実施形態においては、ロボットシステム１００は、予測した辺の位置１００４を超えて延びる辺の部分の補償長さ１００６をさらに計算できる。ロボットシステム１００は、上記のように、物体の移動／持ち上げによって引き起こされる描かれた物体のサイズ／長さの変化を考慮するために測定された長さを調整できる。調整された長さ（例えば、実世界の長さ）に基づいて、ロボットシステム１００は、ＭＶＲ５１２を調整し、図７Ｂの更新されたデータ７４０を生成できる。図１０Ｃに示した例に関して、ロボットシステム１００は、平行な露出された辺から離れる水平方向（例えば、左）に沿って、調整された補償長さ１００６だけＭＶＲ５１２を延ばすことによって更新されたデータ７４０を生成できる。
【００８７】
予期せぬ状態を検出することに基づいて、ロボットシステム１００は、登録対象５０６を下げて、解放／投下し、更新されたＭＶＲ５１２に従って、物体を再把持してよい。ロボットシステム１００は、解放／投下後、物体の任意のシフトを考慮した更新された画像（例えば、上面図データの新しいインスタンス）を取得してよい。更新された画像に基づいて、ロボットシステム１００は、辺の長さの測定値７２８に従って、ＭＶＲ５１２を再導出できる。再導出されたＭＶＲ５１２を使用して、ロボットシステム１００は、更新されたＭＶＲの中心部分の上等、把持位置を再決定できる。ある実施形態においては、補償長さ１００６が閾値長さを超える時、図６の下向きの力の測定値６０４が閾値重量を超える時、および／または、図６の推定トルク‐アームベクトル６０８が所定の限度を超える時、再把持プロセスがトリガされてよい。
【００８８】
図１１Ａ〜図１１Ｂは、登録対象５０６の最初の動き（例えば、最初の持ち上げ）の後の別の予期せぬ状態の様々な態様を示す。本技術の１つまたは複数の実施形態による変形した物体の状態に関する、図１１Ａは、（図３の側面センサ３１２ｂからの図７Ａの比較データ７０２のインスタンス等、任意選択で側面図データ１１０２として表すことができる）登録対象５０６の側面の一部の図であり、図１１Ｂは、上面図データ１１０４（例えば、図３の上面センサ３１２ａからの比較データ７０２のインスタンス）の一部の図である。
【００８９】
図１１Ａ〜図１１Ｂを一緒に参照すると、ロボットシステム１００は、上記のように、登録対象５０６の上面と、周囲の以前は当接していた表面との間を垂直に分離できる。物体推定は、図１０Ａ〜図１０Ｃに関して上述したように、誤りがある場合があり、図５の把持位置５２０は、図５Ａの登録対象５０６にとって最適でない場合がある。あるインスタンスにおいては、物体は、準最適な把持位置を考慮して、その重量、柔軟性、もしくは、構造的剛性の欠如、または、これらの組み合わせが原因で変形し得る。図１１Ａに示す例に関しては、登録対象５０６は、下方に曲がることがある。
【００９０】
ロボットシステム１００は、（例えば、任意選択の側面図データ１１０２として）比較データ７０２を分析することに基づいて、変形した物体の状態を検出できる。例えば、予期せぬ状態を検出することは、露出した辺を所定の形状パターンと比較することに基づいて、変形した物体の状態を検出することを含み得る。具体的な例として、ロボットシステム１００は、露出した辺の形状、および／または、辺の傾斜の変化／ずれのパターンを識別することに基づいて、変形した物体の状態を検出できる。
【００９１】
変形した物体の状態を検出することに基づいて、ロボットシステム１００は、異なるプロセスを実施して、図７Ａの辺の長さの測定値７２８を生成してよい。ある実施形態においては、ロボットシステム１００は、上記の１つまたは複数のプロセス例から生じる図９Ｃの分析領域９２２をセグメント化することによって、変形した表面／辺に関連付けられた長さを推定できる。例えば、ロボットシステム１００は、分析領域９２２をセグメント化して、対応する分析領域９２２に関連付けられた露出した辺４２２と平行な／一致する分析ストリップ１１１２を形成できる。ロボットシステム１００は、所定の幅に従って分析ストリップ１１１２を決定でき、分析ストリップ１１１２は、分析領域９２２の端部の方に外側に延びてよい。ロボットシステム１００は、さらに、各分析ストリップ１１１２を分割して、分析区分１１１４を形成できる。分析区分１１１４の境界は、対応する分析領域９２２に関連付けられた露出した辺４２２に対して垂直であってよく、所定の水平距離だけ間隔をおいてよい。
【００９２】
ロボットシステム１００は、各分析区分１１１４の区分長１１１６（例えば、隣り合う境界間の直線距離）を計算できる。ロボットシステム１００は、各分析ストリップ１１１２の区分長１１１６を足して、および／または、分析ストリップ１１１２の合計の長さを平均して、計算された物体寸法１１１８を導出してよい。従って、ロボットシステム１００は、変形した辺／表面の長さ（例えば、弧長１１２０）の推定値として、計算された物体寸法１１１８を導出できる。
【００９３】
図１２は、本技術の１つまたは複数の実施形態による、かんだ状態の（図３の側面センサ３１２ｂからの図７Ａの比較データ７０２のインスタンス等、側面図データ１２００として任意選択で表すことができる）登録対象５０６の側面の部分の図である。かんだ状態は、登録対象５０６の隣の物体１２０２、または、その一部も、登録対象５０６の最初の動き（例えば、最初の持ち上げ）によって移動されたさらなる予期せぬ状態に対応し得る。例えば、隣の物体１２０２の周囲の部分または突き出た部分が、登録対象５０６の一部に接触し、登録対象５０６の一部によって支持され得る。従って、隣の物体１２０２の支持されている部分は、最初の持ち上げ中、登録対象５０６が上昇すると、上昇し得る。
【００９４】
かんだ状態に関して、ロボットシステム１００は、比較データ７０２（例えば、上面図および／または側面図）が図５ＢのＭＶＲ５１２の外側の変化（例えば、変化した深度測定値）を含むと、上記のように予期せぬ状態を検出し得る。ロボットシステム１００は、予期せぬ状態を検出後、比較データ７０２をさらに調べてよい。例えば、ロボットシステム１００は、物体分離部分１２０４および／または接触点１２０６を検索できる。物体分離部分１２０４は、水平の隣り合う位置の色、明るさ、深度測定値等の差等、画像データの連続した／パターンになった部分（例えば、表面）間の変化に対応し得る。比較データ７０２が、図３のエンドエフェクタ３０４の周囲／下の、物体分離部分１２０４に横方向で当接した表面（例えば、横向きの、または、把持された表面）を含み、それが、さらに、横方向で他の表面（例えば、角度のある表面、または、凹面）と当接する時、ロボットシステム１００は、かんだ状態を検出できる。ロボットシステム１００は、対応する線形パターンまたは凹型パターンに従って、横方向に隣り合う位置で変化する画像値（例えば、深度測定値）を有する辺および／または水平位置を識別することに基づいて、角度のある表面または凹面を識別してよい。
【００９５】
あるいは、または、さらに、ロボットシステム１００は、１つまたは複数の接触点１２０６を識別することによって、かんだ状態を検出できる。接触点１２０６は、隣の物体１２０２が下にある１つまたは複数の物体と接触している所を表し得る。例えば、登録対象５０６が、対象スタック３１０の最上層の周囲の部分にある時、側面図は、隣の物体１２０２の登録対象５０６から遠い方の傾斜した周囲の辺を示す／表す。また、側面図は、１つまたは複数の横向きの表面の上に傾斜した底辺を描いてよい。ロボットシステム１００は、傾斜した周囲の辺および／または傾斜した底辺が、その下の１つまたは横向きの表面に接触する画像データの部分／位置として接触点１２０６を識別できる。
【００９６】
かんだ状態を検出することに基づいて、ロボットシステム１００は、エンドエフェクタ３０４の真下および／またはエンドエフェクタ３０４を囲む辺／表面を処理し、他の部分を無視／マスクできる。言い換えると、ロボットシステム１００は、エンドエフェクタ３０４が把持する表面を分析し、物体分離部分１２０４、および／または、隣の物体１２０２の上面／角度のある表面を、ＭＶＲ５１２に対応しない一致しない部分４３０として、分類できる。予期せぬ状態は、ＭＶＲ５１２の誤りを直接、示さない場合もある。従って、ロボットシステム１００は、上記のように、登録対象５０６の図７Ａの辺の長さの測定値７２８を取得し、ＭＶＲ５１２を評価し、表面画像（例えば、図７Ｂの更新されたデータ７４０）を取得し、物体を検出し、および／または、物体を登録できる。
【００９７】
かんだ状態に関しては、登録対象５０６を移動させることによって、隣の物体１２０２の姿勢の変化１２０８を起こす場合がある。言い換えると、タスク実施等のために登録対象５０６を動かすと、隣の物体１２０２を、最初の画像（例えば、図４Ｃの第１の上面図データ４２０）とは異なる位置／向きで停止させる場合がある。従って、ロボットシステム１００は、姿勢の変化１２０８を撮影、考慮した新しい画像データを取得してよい。
【００９８】
ある実施形態においては、ロボットシステム１００は、最初の持ち上げの一部として、登録対象５０６の水平方向のシフトおよび／または回転運動を実施できる。所定のコマンド／設定に従って、登録対象５０６を最初の持ち上げ高さ９０４に持ち上げている間、または、持ち上げた後、水平方向のシフトおよび／または回転運動が、ロボットアーム３０２および／またはエンドエフェクタ３０４によって実行されてよい。水平方向のシフトおよび／または回転運動を含む最初の持ち上げは、かんだ状態の発生を低減して、システム全体の効率およびリソース消費（例えば、処理時間、メモリ等のコンピュータリソース）をさらに改善させることができる。
【００９９】
図１３は、本技術の１つまたは複数の実施形態による、蓋が開いた状態の登録対象の（図３の側面センサ３１２ｂからの図７Ａの比較データ７０２のインスタンス等、側面図データ１３００として任意選択で表すことができる）側面図を示す。蓋が開いた状態は、物体表面の誤った推定と、登録対象５０６の構造的不具合／変化とによって一般に起こる別の予期せぬ状態に対応し得る。例えば、ロボットシステム１００は、物体（例えば、箱）の上部の蓋の１つを占める図５ＢのＭＶＲ５１２を最初に導出できる。蓋が開いた状態は、ロボットシステム１００が、最初に導出されたＭＶＲ５１２に従って、物体を把持、持ち上げた、把持した蓋の接着機構（例えば、テープまたは接着剤）が取れた時に、生じ得る。結果として、把持した蓋は、エンドエフェクタ３０４に固定されたままになり、物体の他の部分は、下になる、および／または、エンドエフェクタ３０４から離れるように／下方に回転される。
【０１００】
蓋が開いた状態に関して、比較データ７０２（例えば、上面図および／または側面図）が、図５ＢのＭＶＲ５１２の外側の変化（例えば、変化した深度測定値）を含む時、ロボットシステム１００は、上記のように、予期せぬ状態を検出し得る。ロボットシステム１００は、予期せぬ状態を検出した後、比較データ７０２をさらに調べてよい。例えば、ロボットシステム１００は、上記のように、物体分離部分１２０４および／または接触点１２０６を検索してよい。ロボットシステム１００は、蓋が開いた状態を、物体分離部分１２０４の水平方向の構成要素に基づいて、上記のかんだ状態と区別できる。ロボットシステム１００は、物体分離部分１２０４の水平方向の構成要素（例えば、x軸方向長さおよび／またはｙ軸方向長さ）を１つまたは複数の閾値と比較して、蓋が開いた状態を検出できる。
【０１０１】
ロボットシステム１００は、登録対象５０６の１つまたは複数の角度のある部分（例えば、第１の角度のある部分１３０６および／または第２の角度のある部分１３０８）を識別、テストすることに基づいて、蓋が開いた状態をさらに検出できる。第１の角度のある部分１３０６は、登録対象５０６の上面、または、対応する辺に対応し得る。第２の角度のある部分１３０８は、登録対象５０６の底面または対応する辺に対応し得る。角度のある部分が、直線および／または凹んだ線もしくは表面等の１つまたは複数の所定のパターンに従って連続している時、ロボットシステム１００は、蓋が開いた状態を検出できる。また、上面または関連する辺が、登録対象５０６の最初の深度９０２より上の部分と、最初の深度９０２より下の他の／反対の部分を有する時、ロボットシステム１００は、蓋が開いた状態を検出してよい。ある実施形態においては、把持した蓋と角度を成し、把持した蓋に接続され、且つ、把持した蓋から離れる方向に延びる周囲の辺／表面の１つを識別することに基づいて、ロボットシステム１００は、蓋が開いた状態を検出できる。
【０１０２】
蓋が開いた状態を検出することに基づいて、ロボットシステム１００は、予期せぬ状態に従って、物体の実際の長さを計算できる。例えば、ロボットシステム１００は、把持した表面の把持した長さ１３０２（例えば、寸法）を測定できる。ロボットシステム１００は、角度のある部分（例えば、第１の角度のある部分／辺１３０６、および／または、第２の角度のある部分／辺１３０８）に対応する長さ（例えば、図７の辺の長さの測定値７２８）をさらに測定できる。ロボットシステム１００は、また、角度のある部分を使用して、物体の投下される部分（例えば、第１の角度のある部分１３０６）と把持した蓋および／またはエンドエフェクタ３０４との間の開放角１３０４を測定できる。ロボットシステム１００は、開放角１３０４に従って、把持した長さ１３０２を角度のある部分の１つまたは複数にマッピングし、マッピングされた角度のある部分の残りの区分に関して残りの長さ１３１０を計算できる。かんだ状態とは異なり、蓋が開いた状態は、ＭＶＲ５１２の誤りを直接、示し得る。従って、ロボットシステム１００は、角度のある部分の把持した長さ１３０２、残りの長さ１３１０、開放角１３０４、および／または、辺の長さの測定値７２８を使用して、ＭＶＲ５１２を調整し、および／または、更新されたデータ７４０を生成できる。ロボットシステム１００は、調整したＭＶＲに基づいて、登録対象５０６を下げ、解放／投下し、および／または、再把持できる。例えば、ロボットシステム１００は、図５の把持位置５２０を更新して、２つの蓋を占めるまたは２つの蓋にわたるように延びてよい。
【０１０３】
図１４は、本技術の１つまたは複数の実施形態による、（例えば、図３の上面センサ３１２ａから出力された）中間画像データ１４００の一部の図である。ロボットシステム１００は、５Ｂの把持位置５２０の上に図３のエンドエフェクタ３０４を配置する（位置コマンドおよび／または設定等のコマンドを生成／送信することによって）動作を実施した後、中間画像データ１４００を上面センサ３１２ａから取得できる。
【０１０４】
ロボットシステム１００は、中間画像データ１４００を分析して、その中の付属品遮蔽部分１４０２を検出／識別できる。付属品遮蔽部分１４０２は、図３のエンドエフェクタ３０４および／またはロボットアーム３０２の付属の構成要素（例えば、ケーブル、ワイヤ、コンジット、および／または、他の付属品）がセンサと登録対象５０６の間にある中間画像データ１４００の部分を表してよい。言い換えると、付属品遮蔽部分１４０２は、エンドエフェクタ３０４および／またはエンドエフェクタ３０４に取り付けられたロボットアーム３０２に関連付けられた追跡されていない付属品に対応する所定のパターンを描く中間画像データ１４００の部分／位置を表し得る。例えば、ロボットシステム１００が、エンドエフェクタ３０４および／またはロボットアーム３０２の構造的構成要素の位置を追跡し得る間、ロボットシステム１００は、同様の精度で付属の構成要素を追跡することはできない場合がある。従って、ロボットシステム１００は、中間画像データ１４００を分析して、付属の構成要素を表す所定のパターンに一致する任意の辺または表面を識別してよい。例えば、ロボットシステム１００は、所定の幅／形状を有し、エンドエフェクタ３０４および／またはロボットアーム３０２の追跡された位置に（例えば、同じ高さで、および／または、横方向に重なって）取り付けられた連続した表面を識別できる。ロボットシステム１００は、連続した表面を識別することに基づいて、付属品遮蔽部分１４０２を検出できる。
【０１０５】
ある実施形態においては、ロボットシステム１００は、付属品遮蔽部分１４０２を検出することに基づいて、エンドエフェクタ３０４を（例えば、所定の位置に動かし、その後、再配置することによって）把持位置５２０の上に再配置する動作を実施できる。ロボットシステム１００は、中間画像データ１４００に付属品遮蔽部分１４０２が無くなる（すなわち、含まれなくなる）まで、エンドエフェクタ３０４の（再）配置と、中間画像データ１４００の取得とを繰り返すことができる。ある実施形態においては、付属品遮蔽部分１４０２の決定された位置が、（例えば、図４Ｃの露出した辺４２２および／または図５Ｂの推定した辺５２４から閾距離内）の図１１の分析区分１１１４の予測位置と横方向に重なる時、ロボットシステム１００は、再配置を実施できる。従って、ロボットシステム１００は、図７Ａの比較データ７０２（例えば、最初の移動後、取得された画像）に、付属品遮蔽部分１４０２が生じるのを防ぐ可能性を増加させることができる。
【０１０６】
図１５は、本技術の１つまたは複数の実施形態による、図１のロボットシステムを動作させる方法１５００の流れ図である。方法１５００は、ＭＶＲを導出、検証し、それに従って、未知の物体（例えば、図４Ｂの認識されていない物体４１４）を登録するためであってよい。ある実施形態においては、方法１５００は、認識されていない物体４１４を図１のスタート位置１１４（例えば、図３の対象スタック３１０）から図１のタスク位置１１６（例えば、図３のコンベヤ３０６）に移動させる間に、または、移動させる一部として、認識されていない物体４１４を登録することを含み得る。方法１５００は、図２の記憶装置２０４の１つまたは複数に記憶された命令を図２のプロセッサ２０２の１つまたは複数を用いて実行することに基づいて、実施されてよい。従って、１つまたは複数のプロセッサ２０２は、１つまたは複数のユニット（例えば、図３のロボットアーム３０２、図３のエンドエフェクタ３０４、図２のセンサ２１６等）、および／または、それらの構成要素を制御する動作を（コマンド、設定、および／または、計画を、例えば、生成／送信することによって）実施してよい。
【０１０７】
ブロック１５０２において、ロボットシステム１００は、最初のソースデータ（例えば、第１の画像データ）を取得できる。ロボットシステム１００は、２Ｄ／３Ｄ画像データを含む第１の画像データを、図３の上面センサ３１２ａから、および／または、任意選択で、図３の側面センサ３１２ｂから受信できる。取得された第１の画像データは、スタート位置１１４の１つまたは複数の物体（例えば、図４Ｂの認識された物体４１２、および／または、図４Ｂの認識されていない物体４１４）を描写または表現できる。
【０１０８】
ブロック１５０４において、ロボットシステム１００は、最初のソースデータで一致しない部分を識別できる。ある実施形態においては、ロボットシステム１００は、登録された物体の検出に基づいて、最初のソースデータで一致しない部分を識別できる。例えば、ロボットシステム１００は、第１の画像データを分析することに基づいて、スタート位置１１４の登録された物体を検出できる。具体的な例として、ロボットシステム１００は、第１の画像データまたは第１の画像データの一部を図２のマスタデータ２５２と比較できる。マスタデータ２５２は、図２の対応する登録データ２５４の登録された物体の既知の表面を表す画像、または、画像に対応するデータを含み得る。従って、ロボットシステム１００は、第１の画像データの一部が、図２の登録データ２５４の画像と一致する時、認識された物体４１２を検出できる。ロボットシステム１００は、第１の画像データの残りの部分を、認識されていない物体４１４の１つまたは複数を表す図４Ｂの一致しない部分４３０として、識別できる。
【０１０９】
ブロック１５０６において、ロボットシステム１００は、最初のＭＶＲ（複数可）を導出し、および／または、対応する把持位置（複数可）を決定できる。ロボットシステム１００は、第１の画像データの表面セグメントおよび／または辺を識別し、識別した表面セグメント／辺／角部を使用して、上記のように、最初のＭＶＲの１つまたは複数（例えば、図５ＢのＭＶＲ５１２）を導出できる。最初のＭＶＲは、それぞれ、１つの認識されていない物体の１つの表面の最初の推定値を表すことができる。ある実施形態においては、ロボットシステム１００は、下記のブロック１５０６〜１５２４に対応するプロセスの各繰り返しに対して、１つの最初のＭＶＲを導出できる。他の実施形態においては、ロボットシステム１００は、最初のＭＶＲの全ての利用可能なインスタンスを導出し、下記のブロック１５１０〜１５２４に対応するプロセスを繰り返すことができる。
【０１１０】
ロボットシステム１００は、最初のＭＶＲを使用して、最初の把持位置（例えば、図５Ｂの把持位置５２０）を導出できる。例えば、ロボットシステム１００は、最初の把持位置を最初のＭＶＲの中央部分として導出できる。
【０１１１】
決定ブロック１５０８において、ロボットシステム１００は、最初のＭＶＲを分析して、直接登録状態が存在するか否かを検出できる。直接登録状態が存在する時、ロボットシステム１００は、最初のＭＶＲを最終的なＭＶＲと決定できる。このような状態において、ロボットシステム１００は、ブロック１５２６に関して以下に記載するように、最初のＭＶＲを用いて（すなわち、最初のＭＶＲに何の調整も行わずに）新しい登録データを作成することによって、物体を直接、登録できる。直接登録状態が検出される時、ロボットシステム１００は、（例えば、ブロック１５１２〜１５２２に対応するプロセスを実施することなく）タスクを実施、完了できる。
【０１１２】
最初のＭＶＲを分析するために、ロボットシステム１００は、上記のように、比較画像データ（例えば、第２の画像データ）にも描かれた表面の推定された境界を表す第１の画像データに描かれた露出した辺（例えば、図４Ｃの露出した辺４２２）を識別できる。ロボットシステム１００は、上記のように、露出した角部（例えば、露出した辺の対が交わる図４Ｃの露出した外側角部４２６）をさらに識別できる。
【０１１３】
ロボットシステム１００は、最初のＭＶＲのサイズおよび／または形状を検証することによって、直接登録状態を検出してよい。ロボットシステム１００は、コンピュータビジョンプロセスを用いて、最初のＭＶＲの寸法および／または形状を決定できる。形状が（例えば、人間オペレータおよび／または物体のサプライヤから）ロボットシステム１００に与えられた予測した物体の形状と一致する時、ロボットシステム１００は、最初のＭＶＲを検証できる。また、ロボットシステム１００は、最初のＭＶＲを、その寸法が（例えば、人間オペレータおよび／または物体のサプライヤから）ロボットシステム１００に与えられた最小物体寸法より大きく、最大物体寸法より小さい時、検証できる。
【０１１４】
検証したＭＶＲに関して、ロボットシステム１００は、（例えば、図８Ａの分離閾値８１２に従って）推定した表面の周囲の隣り合う位置が、異なる画像特性を有する時、直接登録状態を検出してよい。例えば、ロボットシステム１００は、隣り合う位置の３Ｄ深度測定値が、少なくとも推定した表面未満の閾距離に位置する時、直接登録状態を検出できる。ロボットシステム１００は、また、検証したＭＶＲが、閾値（例えば、２）を超える露出した角部の数を含む、または、用いて導出される時、直接登録状態を検出してよい。
【０１１５】
直接登録状態が最初のＭＶＲに存在しない時、ロボットシステム１００は、ＭＶＲを検証する動作／プロセスを実施できる。ブロック１５１０において、ロボットシステム１００は、中間画像データを用いて、明瞭な手法を確立することができる。例えば、ロボットシステム１００は、最初のＭＶＲ内の最初の把持位置の上にエンドエフェクタ３０４を配置する位置決め計画（例えば、動作計画）を生成できる。ロボットシステム１００は、位置決め計画、および／または、位置決め計画に対応するコマンド／設定をロボットアーム３０２に通信でき、ロボットアーム３０２は、それに従って、コマンド、設定、および／または、位置決め計画を実行して、エンドエフェクタ３０４を配置してよい。次に、ロボットシステム１００は、対応するコマンドを送信する等によって、図３の第１の画像センサ３１２（例えば、上面センサ３１２ａ）を動作させて、中間画像（例えば、図１４の中間画像データ１４００）を取得できる。ロボットシステム１００は、中間画像データを分析して、その中の図１４の付属品遮蔽部分１４０２を識別できる。付属品遮蔽部分１４０２のいずれかが識別される場合、ロボットシステム１００は、最初の把持位置から離れた１つまたは複数の位置にエンドエフェクタ３０４を動かし、その後、エンドエフェクタ３０４を把持位置の上に再配置する調整計画（例えば、所定の動作計画）を生成、実施できる。ロボットシステム１００は、エンドエフェクタ３０４の位置の周りの部分等、付属品遮蔽部分１４０２が中間画像データで識別されなくなるまで、上記分析および調整を反復して繰り返してよい。例えば、調整計画は、付属品遮蔽部分１４０２の識別に基づいて生成されてよく、ここで、調整計画は、把持位置５２０から１つまたは複数の位置にエンドエフェクタ３０４を取り除き、その後、エンドエフェクタ３０４を把持位置５２０の上に再配置するためであってよい。
【０１１６】
ブロック１５１２において、ロボットシステム１００は、登録対象（例えば、図４Ｂの一致しない部分４３０に表された認識されていない物体４１４の１つ等、登録対象５０６）を最初に移動することができる。ロボットシステム１００は、所定の方向、所定の距離、および／または、操作のセットに従って、登録対象５０６を最初に持ち上げる動作、および／または、横方向に移動する動作を実施できる。例えば、ロボットシステム１００は、所定の計画、または、対応するコマンド／設定のセットをロボットアーム３０２および／またはエンドエフェクタ３０４に送信して、動作を実施できる。従って、エンドエフェクタ３０４は、把持位置で、登録対象５０６に接触、把持することができ、ロボットアーム３０２は、図９Ｂの最初の持ち上げ高さ９０４に従って、エンドエフェクタ３０４を上昇させることができる。
【０１１７】
ある実施形態においては、ロボットシステム１００は、ブロック１５１４に示すように、登録対象（例えば、認識されていない物体４１４）を最初に移動する一部としてクリアリング動作を実施してよい。例えば、把持した登録対象５０６を持ち上げながら、および／または、持ち上げた後、ロボットシステム１００は、エンドエフェクタ３０４を横方向に移動する動作、および／または、垂直軸を中心にエンドエフェクタ３０４を回転させる動作を実施できる。クリアリング動作は、上記のかんだ状態の発生を低減する。
【０１１８】
ブロック１５１６において、ロボットシステム１００は、登録対象の最初の移動の後、比較画像（例えば、図７Ａの比較データ７０２等の第２の画像データ）を取得できる。例えば、ロボットシステム１００は、最初の移動動作後、登録対象５０６の１つまたは複数の描写を撮影するように第１の画像センサ３１２に命令することができる。第１の画像センサ３１２は、結果として生じる第２の画像データをコンピュータビジョン分析のために１つまたは複数のプロセッサ２０２に送信できる。上記のように、第２の画像データは、２Ｄおよび／または３Ｄの描写、上面描写、および／または、側面描写、または、これらの組み合わせを含み得る。
【０１１９】
ブロック１５１８において、ロボットシステム１００は、第２の画像データおよび／または最初のＭＶＲを処理できる。ロボットシステム１００は、露出した辺等、辺を識別し、その形状／長さを決定し、および／または、辺を所定のパターンと比較することによって、第２の画像データを分析できる。例えば、ロボットシステム１００は、第２の画像データの露出した辺の１つに関して、辺の長さの測定値７２８を決定できる。従って、ロボットシステム１００は、最初のＭＶＲに関連付けられた精度を表す状態を検出できる。ロボットシステム１００は、検出された状態に従って、最初のＭＶＲを評価できる。評価に基づいて、ロボットシステム１００は、最終的なＭＶＲを生成できる。最終的なＭＶＲは、１つまたは複数の状態に関して最初のＭＶＲであってよい。言い換えると、ロボットシステム１００は、予測した状態に基づいて、最初のＭＶＲを最終的なＭＶＲと決定することによって、最終的なＭＶＲを生成できる。他の条件に関しては、最終的なＭＶＲは、最初のＭＶＲから一部分を除いて生じる、または、第１の画像データからの追加の部分を含むように最初のＭＶＲの境界を延ばすことから生じる、調整したＭＶＲ（例えば、図７Ｂの更新されたデータ７４０）であってよい。第２の画像データおよび／または最初のＭＶＲの処理に関する詳細を以下に記載する。
【０１２０】
決定ブロック１５２０において、ロボットシステム１００は、第２の画像の処理結果に基づいて、再把持状態が存在するか否かを検出できる。ロボットシステム１００は、最初のＭＶＲを評価することに少なくとも部分的に基づいて、再把持状態を検出できる。例えば、ロボットシステム１００は、予測した状態（すなわち、エンドエフェクタ３０４が、最初のＭＶＲの正確な導出に従って、中心にある）の検出後、再把持状態が存在しないことを検出してよい。また、ロボットシステム１００は、かんだ状態の把持した表面、および／または、変形した物体の状態に関する図１１の計算された物体寸法１１１８を評価することに基づいて、再把持状態が存在しないことを検出し得る。
【０１２１】
ロボットシステム１００は、第２の画像データの１つまたは複数の辺の長さが、所定の限度だけ、最初のＭＶＲの対応する寸法を超える時、再把持状態を検出し得る。言い換えると、持ち上げた物体が最初のＭＶＲより十分に大きい表面を有する時、ロボットシステム１００は、登録対象５０６を再把持できる。ある実施形態においては、ロボットシステム１００は、さらに、図６の下向きの力の測定値６０４、および／または、推定トルク‐アームベクトル６０８を取得し、所定の限度／条件と比較して、再把持状態を取得できる。
【０１２２】
ブロック１５２２において、再把持状態が検出されると、ロボットシステム１００は、登録対象５０６を再把持する動作を実施してよい。ロボットシステム１００は、調整したＭＶＲに基づいて、更新された把持位置（例えば、把持位置５２０の追加のインスタンス）を導出できる。例えば、ロボットシステム１００は、調整したＭＶＲの中心部分を含む更新された把持位置を導出できる。従って、ロボットシステム１００は、最初の持ち上げ動作を（例えば、クリアリング動作無しに）逆にして、エンドエフェクタ３０４を下げ、横方向に移動させること等によって、登録対象５０６を元の位置に再配置する動作を実施できる。元の位置に戻った後、ロボットシステム１００は、登録対象５０６を解放するようにエンドエフェクタ３０４に命じることができる。ロボットシステム１００は、現在位置から更新された把持位置の上にエンドエフェクタ３０４を動かし、下げ／登録対象５０６に接触させ、その後、登録対象５０６を把持する再把持計画を導出できる。ロボットシステム１００は、再把持計画の動作を実施して、再把持動作を完了できる。ロボットシステム１００は、再把持状態が検出されない時、再把持動作をスキップできる。
【０１２３】
ブロック１５２４において、ロボットシステム１００は、登録対象に関連付けられたタスクを実施できる。例えば、ロボットシステム１００は、図１のスタート位置１１４からタスク位置１１６に登録対象５０６を移動することによって、タスクを実施できる。ロボットシステム１００は、タスクを行う動作計画を導出し、その後、タスク動作計画に対応する動作を実施できる。ロボットシステム１００は、タスク動作計画、および／または、関連するコマンド／設定を１つまたは複数のロボットユニット（例えば、ロボットアーム３０２および／またはエンドエフェクタ３０４）に送信して、動作を実施できる。ロボットユニットは、受信した計画／コマンド／設定を実行して、タスクを行うことができる。
【０１２４】
ブロック１５２６において、ロボットシステム１００は、移動された物体を登録できる。ある実施形態においては、ロボットシステム１００は、タスクを実施しながら（例えば、並行して）、移動された物体を登録できる。例えば、ロボットシステム１００は、登録対象５０６の新しい記録を表す登録データ２５４（例えば、新しい登録データ）の新しいインスタンスを作成できる。ロボットシステム１００は、新しい登録データを含む、登録データ２５４の一部として、最終的なＭＶＲ、および／または、関連する処理結果（例えば、寸法および／または画像）を記憶できる。
【０１２５】
ロボットシステム１００は、上記様々な動作中、実世界の構成要素の位置（例えば、ロボットアーム３０２、エンドエフェクタ３０４、および／または、それらの一部の位置／姿勢）を追跡できる。実世界の構成要素の位置の例は、上記のように、認識されていない物体４１４を把持するエンドエフェクタ３０４と、エンドエフェクタ３０４に動作可能に結合されたロボットアーム３０２との現在の姿勢と、実施中のロボットアーム３０２の位置決めの記述を含んでよい。実世界の構成要素の位置を追跡することは、例えば、最初の移動のための動作を実施中、および／または、タスクを行うための動作を実施中、追跡することを含み得る。従って、ロボットシステム１００は、様々な画像（例えば、第１の画像データ、第２の画像データ等）を取得する時にエンドエフェクタ３０４および／またはロボットアーム３０２の位置／姿勢を決定できる。例えば、ロボットシステム１００は、追跡した位置を使用して、下記のように画像を処理できる。
【０１２６】
図１６は、本技術の１つまたは複数の実施形態による、最初の操作を実施した後の画像および／またはＭＶＲを処理する流れ図の例である。図１６は、図１５のブロック１５１８に関して記載したプロセスの詳細な例を示す。
【０１２７】
ブロック１６０２において、ロボットシステム１００は、第２の画像データ（例えば、図７Ａの比較データ７０２）の層および／または辺を識別できる。ロボットシステム１００は、２Ｄ画像、３Ｄ画像、側面描写、上面描写、または、これらの組み合わせを処理して、上記のように、辺（例えば、露出した辺４２２）を決定できる。ロボットシステム１００は、互いに閾値範囲内に描かれた値（例えば、深度測定値、明るさ、色等）を有し、および／または、所定のパターン（例えば、線形の傾斜、または、凹型の曲線）に従う処理された画像の横方向に隣り合う位置のセットとして、各層を決定できる。層は、検出された辺によって区切られてよい。言い換えると、識別した辺は、第２の画像データに描かれた１つまたは複数の表面の推定された境界を表してよい。ロボットシステム１００は、識別した辺の図７Ａの辺の長さの測定値７２８を決定してよい。
【０１２８】
ある実施形態においては、ロボットシステム１００は、エンドエフェクタおよび／または最初の持ち上げ動作の追跡した位置と比較した辺の位置／向きに従って、辺を分類できる。例えば、ロボットシステム１００は、最初の持ち上げ動作に一致する平行移動に基づいて、第１の画像データの図４Ｃの露出した辺４２２に対応する辺を認識できる。また、ロボットシステム１００は、第１の画像データから描写、識別されないことのある図７Ａの発見された辺７２２を識別できる。ある実施形態においては、ロボットシステム１００は、追跡されたエンドエフェクタ位置から所定の距離内（例えば、すぐ下および横方向に外側に延びた）線形パターンを有する把持した表面をさらに識別できる。
【０１２９】
層／辺を識別する時、ロボットシステム１００は、図９Ｃの遮蔽された領域９１２を除く特定の領域を決定、分析できる。ブロック１６３２において、ロボットシステム１００は、第２の画像データの分析領域（例えば、図９Ｃの分析領域９２２）を決定できる。例えば、ロボットシステム１００は、ロボットアーム３０２および／またはエンドエフェクタ３０４の追跡した位置をマッピングして、遮蔽された領域９１２の位置を決定または推定できる。ロボットシステム１００は、追跡した位置を比較して、ロボットアーム３０２および／またはエンドエフェクタ３０４によって遮蔽されていない（例えば、その下で横方向に重なっていない）明瞭な辺／角部を識別できる。ロボットシステム１００は、追跡された構成要素の位置から横方向の閾距離の外側にある明瞭な辺／角部も識別できる。一実施態様においては、ロボットシステム１００は、第２の画像データの露出した辺のうちから明瞭な辺を識別できる。例えば、明瞭な辺を識別することは、第２の画像データの露出した辺４２２が追跡された構成要素の位置から横方向の閾距離の外側にあると決定することを含み得る。
【０１３０】
上記のように、ロボットシステム１００は、明瞭な辺に従って、図９Ｃの分析境界９１６を導出することによって分析領域９２２を決定できる。分析領域９２２は、一方の側を明瞭な辺によって区切られ、反対側を分析境界９１６によって区切られた第２の画像データの部分に対応し得る。ロボットシステム１００は、対応する明瞭な辺に平行な分析境界を導出できる。ロボットシステム１００は、追跡された構成要素の位置、および／または、対応する明瞭な辺からの所定の分離に従って、分析境界９１６を導出できる。ある実施形態においては、ロボットシステム１００は、互いに直交し、明瞭な辺の対が交差する明瞭な角部から延びる分析境界９１６の対を導出できる。ロボットシステム１００は、分析境界９１６によって区切られた、分析領域９２２の外側の第２の画像データのエリアを図９Ｃのマスクされた領域９２４と判断できる。ロボットシステム１００は、辺の識別、長さの決定等のために、マスクされた領域９２４を無視し、分析領域９２２を処理してよい。
【０１３１】
ブロック１６３４において、ロボットシステム１００は、分析領域９２２内の辺を識別できる。分析領域９２２を処理する例として、ロボットシステム１００は、分析領域の第１の辺から開始し、明瞭な辺に沿って繰り返し移動して、分析領域９２２で角をなして明瞭な辺と交差する補完的な辺を識別できる。ロボットシステム１００は、交差する辺を、表面を区切る／画定するとして識別できる。ロボットシステム１００は、第１の辺と、識別された補完的な辺との間の距離として、明瞭な辺の長さの測定値を決定できる。
【０１３２】
ブロック１６０４において、ロボットシステム１００は、最初の移動の前後に取得された画像を比較できる。言い換えると、ロボットシステム１００は、第１の画像データと第２の画像データ、および／または、それらの処理結果を比較できる。例えば、ロボットシステム１００は、分析領域９２２の視覚画像パターンを最初のＭＶＲ（例えば、図５ＢのＭＶＲ５１２）の対応する部分と比較できる。また、ロボットシステム１００は、明瞭な辺の長さの測定値７２８を最初のＭＶＲの寸法と比較できる。２組の長さを比較する時、ロボットシステム１００は、所定のプロセス／方程式を使用して、最初の移動によって引き起こされたサイズの変化を補償できる。例えば、ロボットシステム１００は、辺の長さの測定値７２８を、第１の画像データの物体の高さにマッピングできる。また、ロボットシステム１００は、決定された長さの全てを実世界の距離にマッピングできる。
【０１３３】
ロボットシステム１００は、比較に少なくとも部分的に基づいて、最初のＭＶＲの精度を表す状態を検出できる。言い換えると、ロボットシステム１００は、第２の画像データの露出した辺に基づいて、最初のＭＶＲを評価してよい。
【０１３４】
決定ブロック１６０６において、ロボットシステム１００は、予測した状態が存在するか否かを決定できる。ロボットシステム１００は、上記のように、第２の画像データの１つまたは複数の部分および／または露出した辺が対応する部分に一致する（例えば、一致する視覚的外見、および／または、一致する寸法）時、予測した状態を検出できる。予測した状態が検出される時、図１５の方法１５００は、上記のように、図１５のブロック１５２４に進み、タスクを実施／物体を登録できる。予測した状態が検出されない時、ロボットシステム１００は、第２の画像データの１つまたは複数の部分および／または露出した辺が最初のＭＶＲの対応する部分に一致しないことによる、予期せぬ状態を検出できる。
【０１３５】
予期せぬ状態を検出することに基づいて、ロボットシステム１００は、露出した辺の組の間の図１２の物体分離部分１２０４を検索／識別してよい。例えば、ロボットシステム１００は、他の辺／表面が識別されるまで、分析領域９２２の補完的な辺を越えて移動できる。識別した辺の間にあり、辺、および、辺に関連する表面と比較して、不連続な画像値を有する描かれた位置の組として、ロボットシステム１００は、物体分離部分１２０４を識別できる。ある状況においては、物体分離部分１２０４は、２つの表面が異なる高さで互いに当接する幅の無い辺であってよい。他の状況においては、物体分離部分１２０４は、２つの表面間の横方向の分離に対応してよい。ロボットシステム１００は、物体分離部分１２０４を使用して、異なる種類の予期せぬ状態を検出してよい。
【０１３６】
決定ブロック１６０８において、ロボットシステム１００は、かんだ状態が存在するか否かを判断できる。ロボットシステム１００は、露出した辺および／または把持した表面を、所定の形状パターンおよび／または１つまたは複数の対応する規則と比較することに基づいて、かんだ状態を検出できる。例えば、ロボットシステム１００は、把持した表面が線形／横の傾斜から外れている時、かんだ状態を検出できる。ロボットシステム１００は、さらに、把持した表面の隣の／に当接する物体分離部分１２０４、および／または、物体分離部分１２０４の横方向の分離構成要素を識別することに基づいて、かんだ状態を検出できる。ロボットシステム１００は、把持した表面の反対側の物体分離部分１２０４の隣の／に当接する他の表面（例えば、角度のある面、または、凹面）を識別することに基づいて、かんだ状態をさらに検出できる。言い換えると、ロボットシステム１００は、把持した表面の辺（例えば、第１の辺）が、処理された画像で他の識別された表面の辺（例えば、第２の辺）と決定された把持部の位置との間にあり、物体分離部分１２０４が、２つの辺の間にある、または、２つの辺と一致する時、かんだ状態を検出できる。
【０１３７】
ある実施形態においては、ロボットシステム１００は、任意選択で第２の画像データの３Ｄ側面図描写等で、把持した辺と、把持した辺の真下の底辺とを識別できる。ロボットシステム１００は、把持した辺の下で、且つ、物体分離部分１２０４を横方向に超える他の底辺を検索できる。ロボットシステム１００は、第２の底辺に従い、さらに、第２の底辺がその下に位置する他の辺と交差する図１２の接触点１２０６を検索できる。第２の底辺は、図１２の隣の物体１２０２に対応してよい。従って、ロボットシステム１００は、（１）接触点１２０６が存在する時、および／または、（２）把持した辺と第２の底辺とが横方向に重ならない時、かんだ状態を検出できる。重ならない辺同士は、さらに、異なる傾斜を有する２つの別個の底辺を識別することに対応し得る。
【０１３８】
かんだ状態が検出される時、ブロック１６１０に示すように、ロボットシステム１００は、（例えば、物体分離部分１２０４、および、それを超える）把持した表面の外側の部分をマスクしてよい。ロボットシステム１００は、決定ブロック１６１２に示すように、比較プロセスを繰り返して、最初のＭＶＲが把持した表面に一致するか否かを判断できる。ロボットシステム１００は、ブロック１６０６に関して記載したのと同様に、第２の画像データのマスクされていない部分を最初のＭＶＲと比較してよい。マスクされていない部分が上記のように最初のＭＶＲと一致する時、方法１５００は、ブロック１５２４および１５２６に関して前述したプロセスに進んで、タスクを行い、物体を登録できる。マスクされていない部分が、最初のＭＶＲと一致しない時、方法は、ブロック１６２０に進み、対象物体の寸法が最初のＭＶＲと一致しないと結論付けることができる。ロボットシステム１００は、そうすると、ＭＶＲを調整できる、これについて、以下にさらに詳細に記載する。
【０１３９】
そうでない場合（例えば、かんだ状態が検出されない時）、ロボットシステム１００は、決定ブロック１６１４等で示したように、変形した物体の状態が存在するか否かを判断できる。ロボットシステム１００は、上記のように、変形した物体の状態を検出できる。例えば、ロボットシステム１００は、露出した辺が線形形状パターンから外れる、および／または、凹型／凸型パターンに一致する時、変形した物体の状態を検出できる。また、任意選択で、ロボットシステム１００は、３Ｄ側面図描写において、底辺が、連続したままで、追跡したエンドエフェクタ位置から離れるように上方／下方に曲がっている時、変形した物体の状態を検出できる。
【０１４０】
変形した物体の状態が検出される時、ロボットシステム１００は、ブロック１６１８等に示すように、変形した辺の長さを計算できる。ロボットシステム１００は、上記のように、図１１Ａの計算された物体寸法１１１８を決定してよい。例えば、ロボットシステム１００は、変形した辺を選択し、選択した辺に平行な／と一致する第２の画像データ（例えば、３Ｄ上面図描写）の図１１Ｂの分析ストリップ１１１２の１つまたは複数を導出できる。ロボットシステム１００は、各分析ストリップ１１１２内に対応する分析位置（例えば、図１１Ｂの分析区分１１１４の辺）をさらに導出できる。分析位置は、選択された露出した辺と平行な方向に沿って一定の距離だけ分離された３Ｄ点群で描写された（例えば、ｘ−ｙ座標対によって規定される）位置であってよい。分析位置の深度測定値を用いて、ロボットシステム１００は、分析位置に対応する３Ｄ位置の隣り合う対の間の直線距離に対応する図１１Ａの区分長１１１６を計算できる。ロボットシステム１００は、区分長１１１６（例えば、その合計）に基づいて、計算された物体寸法１１１８を導出できる。例えば、計算された物体寸法１１１８は、認識されていない物体を平らな表面に置いた時の辺（すなわち、上面の辺）の直線距離を表し得る。複数の分析ストリップ１１１２が利用できる時、ロボットシステム１００は、分析ストリップ１１１２の合計の長さの平均として、計算された物体寸法１１１８を導出してよい。
【０１４１】
決定ブロック１６１２において、ロボットシステム１００は、計算された物体寸法１１１８を使用して、変形した把持した表面が最初のＭＶＲに一致するか否かをチェックできる。例えば、ロボットシステム１００は、計算された物体寸法１１１８（例えば、第２の画像データからの辺の長さの測定値）を最初のＭＶＲの対応する寸法と比較できる。把持した表面の変形していない寸法および／または計算された物体寸法１１１８が、最初のＭＶＲの対応する寸法に一致する時、方法１５００は、上記のように、ブロック１５２４および１５２６のプロセスに進むことができる。そうでない場合、方法１５００は、ブロック１６２０に関して以下に記載するプロセスに進むことができる。
【０１４２】
決定ブロック１６１６において、ロボットシステム１００は、蓋が開いた状態が存在するか否かを判断できる。ロボットシステム１００は、上記のように、蓋が開いた状態を検出できる。例えば、ロボットシステム１００は、把持した辺と底辺との間の他の辺が図１３の開放角１３０４で、把持した辺と交差する時、蓋が開いた状態を検出できる。また、ロボットシステム１００は、３Ｄ側面図描写で、底辺が、把持した辺と平行でない時、開放角１３０４で延びる時、および／または、把持した辺の横の端部を超えて延びる時、蓋が開いた状態を検出できる。さらに、ロボットシステム１００は、決定された把持部の位置、底辺（すなわち、第２の辺）、および／または、２つの辺の間の追加の辺（すなわち、第１の辺）に従って、把持した辺を所定の形状パターンと比較することに基づいて、蓋が開いた状態を検出できる。例えば、蓋が開いた状態を検出することは、第２の辺と決定された把持部の位置との間にあり、第２の辺と開放角を形成する第１の辺を識別することと、第１の辺および第２の辺を所定の形状パターンと比較することを含み得る。さらに、ロボットシステム１００は、追跡された把持部位置を超えて延びる部分が推定トルク‐アームベクトル６０８の方向に一致しない時等、図１３の物体分離部分１２０４に横方向に不連続な部分が存在しないことを識別することに基づいて、および／または、図６の推定トルク‐アームベクトル６０８に従って、蓋が開いた状態を検出できる。
【０１４３】
蓋が開いた状態が検出される時、ロボットシステム１００は、ブロック１６１８等に示される、外挿された辺の長さを計算できる。ロボットシステム１００は、上記のように、対象物体の全長に対応する計算した物体寸法を決定してよい。例えば、ロボットシステム１００は、把持した辺（例えば、第１の辺）の図１３の把持した長さ１３０２を決定できる。ロボットシステム１００は、さらに、開放角１３０４に従って、図１３の残りの長さ１３１０を測定できる。残りの長さ１３１０は、把持した辺、または、そのマッピングを超えて延びる角度のある辺（例えば、第１の辺と開放角を形成する第２の辺）の一部分の長さを表し得る。ロボットシステム１００は、把持した長さ１３０２と残りの長さ１３１０とに従って、計算した物体寸法を決定できる。ある実施形態においては、ロボットシステム１００は、把持した辺と底辺との間にある追加の辺に対応する辺の長さの測定値７２８に基づいて、計算した物体寸法を決定または検証できる。
【０１４４】
ある実施形態においては、ロボットシステム１００は、計算した物体寸法を使用して一致を決定できる。他の実施形態においては、方法１５００は、ブロック１６２２に対応するプロセスに進むことができるが、このプロセスについては以下に詳細に記載する。ロボットシステム１００が、特定の状態（例えば、かんだ状態、変形した物体の状態、および／または、蓋が開いた状態）を検出しない時、ロボットシステム１００は、予期せぬ状態は、実際の物体と最初のＭＶＲの間のサイズの不一致によって引き起こされたと判断して／結論付けてよい。
【０１４５】
ブロック１６２２において、ロボットシステム１００は、上記分析結果（すなわち、予測した状態および／または予期せぬ状態を検出すること）に従って、最終的なＭＶＲ（例えば、図７Ｂの更新されたデータ７２０）を生成すること等によって、ＭＶＲを調整できる。例えば、ロボットシステム１００は、最初のＭＶＲを調整して、その一部を取り除くこと、または、その隣に追加の部分を追加することによって、最終的なＭＶＲを生成できる。ロボットシステム１００は、第２の画像データの１つまたは複数の部分および／または露出した辺に従って、第１の画像データを使用することによって、最初のＭＶＲを調整してよい。ロボットシステム１００は、最初のＭＶＲと、最初のＭＶＲに隣り合う第１の画像データの追加の部分とを含む最終的なＭＶＲを生成してよい。ロボットシステム１００は、最終的なＭＶＲを、その中の取り除いた部分を含まずに生成してよい。ロボットシステム１００は、寸法が不一致の状態（例えば、辺の長さの測定値７２８が最初のＭＶＲの対応する寸法に一致しない時）の辺の長さの測定値７２８、かんだ状態の把持した長さ１３０２、蓋が開いた状態の計算した物体寸法もしくは残りの長さ１３１０、および、第１の辺の長さ、および／または、変形した物体の状態の計算された物体寸法１１１８に従って、最初のＭＶＲを調整してよい。
【０１４６】
第１の画像データと第２の画像データの比較に基づいて、上記のように様々な状態を検出するロボットシステム１００は、物体の検出、登録の精度を向上させる。検出された状態を通して、ロボットシステム１００は、登録対象５０６の最初のＭＶＲと実際の描写との不一致の原因／根拠を識別できる。従って、ロボットシステム１００は、登録対象５０６を正確に表すように最初のＭＶＲを調整できる。さらに、図９Ｃの分析領域９２２、図１１Ｂの分析ストリップ１１１２、および／または、図１１Ｂの分析区分１１１４を使用して辺を分析するロボットシステム１００は、処理効率を向上させる。上記様々な態様は、コンピュータビジョン機構（例えば、図９Ｃの遮蔽された領域９１２を完全に識別／位置を突き止めるのに必要な画像分析ルーチン）を実施するのに必要なリソースを低減または取り除く近似を提供できる。
【実施例】
【０１４７】
ある実施形態においては、ロボットシステムを動作させる方法は、スタート位置にある認識されていない物体の１つまたは複数の表面を表す第１の画像データを取得することと、最初の最小実行可能領域（ＭＶＲ）であって、認識されていない物体の表面のうちの１つの最初の推定値を表す最初のＭＶＲを、第１の画像データに基づいて、導出することと、所定の方向および所定の距離に従って、認識されていない物体を最初に移動させるための動作を実施することと、最初の移動の後、認識されていない物体を表す第２の画像データを取得することと、第２の画像データに描かれた露出した辺であって、第２の画像データに描かれた表面の推定される境界を表す露出した辺を識別することと、第２の画像データの露出した辺に基づいて、最初のＭＶＲを評価することと、ＭＶＲを評価することに基づいて、最終的なＭＶＲを生成することと、最初の移動の後、認識されていない物体に関するタスクを行うための動作を実施することと、タスクを実施しながら、新しい登録データであって、認識されていない物体の新しい記録を表し、且つ、最終的なＭＶＲを含む新しい登録データを作成することを含んでよい。最初のＭＶＲを評価することは、第２の画像データの露出した辺のうちの明瞭な辺であって、認識されていない物体の移動に使用された１つまたは複数のロボット構成要素によって遮蔽されていない物体の辺を表す明瞭な辺を識別することと、分析領域であって、遮蔽された領域とは別の第２の画像データの部分を表す分析領域を、明瞭な辺に基づいて決定することと、分析領域の補完的な辺であって、明瞭な辺と角度をなして交差する補完的な辺を識別することと、明瞭な辺および補完的な辺との長さの測定値を決定することと、第２の画像データからの辺の長さの測定値を最初のＭＶＲの寸法と比較することとを含んでよい。方法は、最初の移動のための動作の実施に基づいて、且つ、タスクを行うための動作の実施に基づいて、実世界の構成要素の位置を追跡することをさらに含んでよく、ここで、実世界の構成要素の位置は、認識されていない物体を把持するエンドエフェクタと、エンドエフェクタに動作可能に結合されたロボットアームとの現在の姿勢と、実施中のロボットアームの位置決めを記載し、明瞭な辺を識別することは、第２の画像データの露出した辺は、追跡された構成要素の位置から閾距離の外側にあると判断することを含んでよい。
【０１４８】
ある実施形態においては、最初のＭＶＲを評価することは、第２の画像データの１つまたは複数の部分および／または露出した辺が最初のＭＶＲの対応する部分に一致する時、予測した状態を検出することを含んでよく、最終的なＭＶＲを生成することは、予測した状態に基づいて、最初のＭＶＲを最終的なＭＶＲとして決定することを含んでよい。最初のＭＶＲを評価することは、第２の画像データの１つまたは複数の部分および／または露出した辺が最初のＭＶＲの対応する部分と一致しない場合、予期せぬ状態を検出することを含んでよく、最終的なＭＶＲを生成することは、第２の画像データの１つまたは複数の部分および／または露出した辺に従って、第１の画像データを使用して、最初のＭＶＲを調整することを含んでよい。最初のＭＶＲを評価することは、第２の画像データの露出した辺のうちの１つの辺の長さの測定値を決定することをさらに含んでよく、最終的なＭＶＲを生成することは、辺の長さの測定値が最初のＭＶＲの対応する寸法に一致しない時、辺の長さの測定値に従って、最初のＭＶＲを調整することを含む。
【０１４９】
あるいは、または、追加で、最初のＭＶＲを評価することは、露出した辺を所定の形状パターンと比較することに基づいて、変形した物体の状態を含む予期せぬ状態を検出することと、変形した物体の状態を検出することに基づいて、計算した物体寸法を決定することを含んでよく、計算した物体寸法を決定することは、所定の形状パターンとの比較に基づいて、露出した辺の１つを選択することと、選択された露出した辺に一致する第２の画像データであって、その中に描かれた位置の深度測定値を有する三次元（３Ｄ）点群である第２の画像データで分析ストリップを導出することと、分析ストリップ内の分析位置であって、選択された露出した辺に平行な方向に沿って一定の距離だけ離れた３Ｄ点群で描かれた位置である分析位置を導出することと、区分長であって、それぞれ、分析位置に対応する隣り合う３Ｄ位置の対の間の直線距離を表す区分長を、分析位置に関連付けられた深度測定値に基づいて、計算することと、計算した物体寸法であって、平らな表面に置かれた時の認識されていない物体の辺の直線距離の推定値を表す計算した物体寸法を、区分長に基づいて、導出することと、を含んでよく、最終的なＭＶＲを生成することは、計算した物体寸法に従って、最初のＭＶＲを調整することを含んでよい。最初のＭＶＲを評価することは、露出した辺を所定の形状パターンと比較することと、第１の辺と第２の辺の間の物体分離部分を識別することであって、第１の辺は、第２の辺と決定された把持部の位置との間にある、物体分離部分を識別することとに基づいて、かんだ状態を含む予期せぬ状態を検出することと、かんだ状態が検出された時、第１の辺の長さの測定値を決定することと、辺の長さの測定値に従って、最初のＭＶＲを第２のＭＶＲの１つまたは複数の部分と比較することを含んでよい。最初のＭＶＲを評価することは、また、第１の辺と第２の辺を識別することであって、第１の辺は、第２の辺と決定された把持部の位置との間にあり、第２の辺と開放角を形成する、第１の辺と第２の辺を識別することと、第１の辺と第２の辺とを所定の形状パターンと比較することとに基づいて、蓋が開いた状態を含む予測した状態を検出することと、蓋が開いた状態を検出することに基づいて、計算した物体寸法を決定することとを含んでよく、計算した物体寸法を決定することは、第１の辺の長さを決定することと、第２の辺の第１の辺を超えて延びる部分を表す残りの長さを測定することと、を含んでよく、最終的なＭＶＲを生成することは、残りの長さと第１の辺の長さとに従って、最初のＭＶＲを調整することを含んでよい。ある実施形態においては、認識されていない物体を最初に移動させるための動作を実施することは、最初のＭＶＲ内の把持位置の上部にエンドエフェクタを配置する位置決め計画を生成することと、位置決めのコマンドを生成した後、中間画像データを取得することと、中間画像データの付属品遮蔽部分であって、エンドエフェクタおよび／またはエンドエフェクタに取り付けられたロボットアームに関連付けられた追跡されていない付属品に対応する所定のパターンを描く中間画像データの部分を表す付属品遮蔽部分を識別することと、調整計画であって、エンドエフェクタを、把持位置から離れた１つまたは複数の位置にエンドエフェクタを取り除き、次に、把持位置の上にエンドエフェクタを再配置する調整計画を、付属品遮蔽部分の識別に基づいて生成することと、を含んでよい。
【０１５０】
ある実施形態においては、ロボットシステムは、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに接続された、少なくとも１つのメモリデバイスとを含んでよく、メモリデバイスは、スタート位置にある認識されていない物体を表す第１の画像データを取得することと、最初の最小実行可能領域（ＭＶＲ）であって、認識されていない物体の表面の最初の推定値を表す最初のＭＶＲを、第１の画像データに基づいて導出することと、最初の移動の後、認識されていない物体を表す第２の画像データを取得することと、第２の画像データに基づいて最初のＭＶＲを評価することと、認識されていない物体の新しい記録を表す新しい登録データであって、最初のＭＶＲまたはその導出を含む新しい登録データを、評価に従って作成することのための、プロセッサによって実行可能な命令を記憶する。最初のＭＶＲを評価することは、第２の画像データに描かれた露出した辺であって、第２の画像データに描かれた表面の推定された境界を表す露出した辺を識別することと、露出した辺の長さの測定値を決定することと、辺の長さの測定値が最初のＭＶＲの寸法に一致しない時、調整したＭＶＲであって、辺の長さの測定値に従って、画像データを用いて導出される調整したＭＶＲを導出することとに基づいてよい。新しい登録データは、辺の長さの測定値が最初のＭＶＲの寸法に一致しない時、調整したＭＶＲを含むように作成されてよい。最初のＭＶＲを評価することは、第１の画像データに描かれた露出した辺であって、第２の画像データに描かれた表面の推定された境界を表す露出した辺を識別することと、露出した辺の対が交差する露出した角部を識別することと、露出した角部の数が所定の閾値を超える時、直接登録状態を検出することとに基づき、新しい登録データは、直接登録状態を検出することに基づいて、最初のＭＶＲを含むように作成されてよい。さらに、命令は、上記のように、少なくとも１つのプロセッサを介して、方法の１つまたは複数の態様を実施するためであってよい。
【０１５１】
ある実施形態においては、有形非一時的コンピュータ可読媒体は、プロセッサ命令を記憶してよく、プロセッサ命令は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに方法を行わせる。方法は、スタート位置にある認識されていない物体を表す第１の画像データを取得することと、最初の最小実行可能領域（ＭＶＲ）であって、認識されていない物体の表面の最初の推定値を表す最初のＭＶＲを第１の画像データに基づいて導出することと、所定の方向および所定の距離に従って認識されていない物体を最初に移動させる動作を実施することと、最初の移動動作の後、認識されていない物体を表す第２の画像データを取得することと、第２の画像データに基づいて最初のＭＶＲを評価することと、認識されていない物体の新しい記録を表す新しい登録データであって、最初のＭＶＲまたはその導出を含む新しい登録データを、評価に従って作成することと、を含んでよい。認識されていない物体を最初に移動させる動作を実施することは、エンドエフェクタを所定の高さに持ち上げながら、または、持ち上げた後、エンドエフェクタを横方向に移動させる動作、および／または、エンドエフェクタを垂直軸を中心に回転させる動作とを実施することを含んでよい。命令は、実施されると、最初のＭＶＲを評価することに少なくとも部分的に基づいて、再把持状態を検出することと、再把持状態を検出することに基づいて、認識されていない物体を再把持する動作を実施することとをさらに含む方法を行ってよい。１つまたは複数の実施形態において、最初のＭＶＲを評価することは、第２の画像データに描かれた露出した辺の長さの測定値を決定することを含んでよく、再把持状態を検出することは、辺の長さの測定値が最初のＭＶＲの寸法を所定の限度だけ超える時、再把持状態を検出することを含んでよく、方法は、最初のＭＶＲの中央部分を含む最初の把持位置であって、最初の持ち上げ動作に対応する最初の把持位置を導出することと、辺の長さの測定値が最初のＭＶＲの寸法を超える時、調整したＭＶＲを導出することと、調整したＭＶＲの中央部分を含む調整した把持位置であって、再把持動作に対応する調整した把持位置を導出することと、をさらに含んでよい。さらに、プロセッサ命令は、上記１つまたは複数の実施形態に記載した方法の１つまたは複数の態様を実施するためであってよい。
【０１５２】
結論
開示の技術の実施例の上記の詳細な説明は、網羅的なものではなく、また、開示の技術を上記特定の形態に制限することを意図してはいない。開示の技術の具体的な例を説明の目的で上述したが、当業者であれば認識するように、様々な同等の修正が、開示の技術の範囲内で可能である。例えば、プロセスまたはブロックを所与の順序で提示したが、代替の実施態様は、異なる順序で、ステップを有するルーチンを行ってよい、または、ブロックを有するシステムを採用してよい、また、一部のプロセスもしくはブロックは、削除、移動、追加、さらに分割、組み合わせ、および／または、修正されて、代替またはサブコンビネーションを提供してよい。これらのプロセスまたはブロックは、それぞれ、様々な異なる方法で実施されてよい。また、プロセスまたはブロックは、順次行われるとして示されている場合があるが、これらのプロセスまたはブロックは、代わりに、並行に実行もしくは実施されてよい、または、異なる時に行われてよい。さらに、本明細書に記載する具体的な数はいずれも、例に過ぎず、代替実施態様は、異なる値または範囲を採用してよい。
【０１５３】
これらの変更および他の変更は、上記発明を実施するための形態を考慮して、開示の技術に対して行われてよい。発明を実施するための形態が、開示の技術と、企図したベストモードとの一定の例を記載したが、開示の技術は、上記記載で本文にどんなに詳細に書かれていても、多くの方法で実践できる。システムの詳細は、特定の実施態様で大きく変わり得るが、それでも、本明細書に開示の技術に含まれる。上記のように、開示の技術の一定の特徴または態様を記載する時に使用される特定の用語は、その用語が、その用語が関連付けられた開示の技術のいずれの具体的な特性、特徴、または、態様に制限されるとして本明細書で再定義されていることを示唆しているととらえるべきではない。従って、発明は、添付の請求項によって以外は制限されない。一般に、以下の請求項で使用される用語は、上記発明を実施するための形態の項が明示的にその用語を定義していない限り、開示の技術を明細書に開示の具体的な例に制限するとみなすべきではない。
【０１５４】
発明の一定の態様を一定の請求項の形で以下に記載するが、出願者は、発明の様々な態様を任意の数の請求項の形態で企図する。従って、出願者は、本出願または継続出願のいずれにおいても、本出願を提出後、追加の請求項を追求する権利を保持して、このような追加の請求項の形を追求する。
【図１】
2021503374.tif 000003
【図２】
2021503374.tif 000004
【図３】
2021503374.tif 000005
【図４Ａ】
2021503374.tif 000006
【図４Ｂ】
2021503374.tif 000007
【図４Ｃ】
2021503374.tif 000008
【図５Ａ】
2021503374.tif 000009
【図５Ｂ】
2021503374.tif 000010
【図６】
2021503374.tif 000011
【図７Ａ】
2021503374.tif 000012
【図７Ｂ】
2021503374.tif 000013
【図８Ａ】
2021503374.tif 000014
【図８Ｂ】
2021503374.tif 000015
【図９Ａ】
2021503374.tif 000016
【図９Ｂ】
2021503374.tif 000017
【図９Ｃ】
2021503374.tif 000018
【図１０Ａ】
2021503374.tif 000019
【図１０Ｂ】
2021503374.tif 000020
【図１０Ｃ】
2021503374.tif 000021
【図１１Ａ】
2021503374.tif 000022
【図１１Ｂ】
2021503374.tif 000023
【図１２】
2021503374.tif 000024
【図１３】
2021503374.tif 000025
【図１４】
2021503374.tif 000026
【図１５】
2021503374.tif 000027
【図１６】
2021503374.tif 000028
【手続補正書】
【提出日】令和2年11月4日(2020.11.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
前記最初のＭＶＲを評価することは、
かんだ状態を含む前記予期せぬ状態を、
前記露出した辺を所定の形状パターンと比較することと、
第１の辺と第２の辺の間の物体分離部分であって、前記第１の辺は、前記第２の辺と、決定された把持部位置との間にある、前記物体分離部分を識別することと、
に基づいて、検出することと、
前記かんだ状態が検出される時、前記第１の辺の長さの測定値を決定することと、
前記辺の長さの測定値に従って、前記最初のＭＶＲを、前記第２の画像データの１つまたは複数の部分と比較することと、
を含む、請求項５に記載の方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
前記最初のＭＶＲを評価することは、
蓋が開いた状態を含む予測した状態を、
第１の辺と第２の辺を識別することであって、前記第１の辺は、前記第２の辺と決定された把持部の位置との間にあり、前記第２の辺と開放角を成す、前記第１の辺と前記第２の辺を識別することと、
前記第１の辺と前記第２の辺とを所定の形状パターンと比較することとに基づいて、
検出することと、
前記蓋が開いた状態を検出することに基づいて、計算した物体寸法を決定することであって、
前記第１の辺の長さを決定することと、
前記第２の辺の前記第１の辺を超えて延びる部分を表す残りの長さを測定することと、
を含む、前記計算した物体寸法を決定することと、
を含み、
前記最終的なＭＶＲを生成することは、前記残りの長さと前記第１の辺の前記長さとに従って、前記最初のＭＶＲを調整することを含む、
請求項５に記載の方法。
【国際調査報告】
2021503374.tif 000029
2021503374.tif 000030