(57)【特許請求の範囲】
【請求項１】
ロボットシステムを動作させる方法であって、
１つまたは複数の認識されていない物体を含む対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを受信することと、 
前記２Ｄ画像データおよび／または前記３Ｄ画像データの未解明の領域を、登録された物体の１つまたは複数の物理的態様を表す物体セットとの比較に基づいて、識別することと、
各層が前記３Ｄ画像データにおいて、互いから閾値範囲内の深度測定値を有する横方向に隣り合う点のセットを含む、前記２Ｄ画像データおよび／または前記３Ｄ画像データの前記未解明の領域内の１つまたは複数の層を識別することと、
前記深度測定値が水平方向の隣り合う位置にわたって閾値範囲外に逸脱する前記１つまたは複数の層の境界を表す露出した辺を識別することと、
それぞれ、前記露出した辺のセット間の接合点に対応する１つまたは複数の露出した角部を、前記露出した辺に基づいて、識別することと、
前記未解明の領域に表された登録されていない物体の表面の推定を表す最小実行可能領域（ＭＶＲ）を、前記識別された露出した辺および前記露出した角部に基づいて、導出することと、
前記導出したＭＶＲに関連付けられた前記露出した角部の数を決定することと、
前記ＭＶＲと、前記露出した角部の前記数とにしたがって、認識されていない物体を検出することと、
前記ＭＶＲおよび／または前記ＭＶＲの処理結果を、前記認識されていない物体の表現として含むように前記物体セットを更新することに基づいて、前記認識されていない物体を登録することと、
を含む、前記方法。
【請求項２】
前記未解明の領域を前記更新した物体セットと比較することと、
前記物体セットの更新に使用された前記ＭＶＲおよび／または前記ＭＶＲの前記処理結果に一致する前記未解明の領域内の部分を識別することと、
前記ＭＶＲおよび／または前記ＭＶＲの前記処理結果に一致する前記部分にしたがって物体を検出することと、
前記ＭＶＲおよび／または前記ＭＶＲの前記処理結果に一致する前記部分を取り除くことによって、前記未解明の領域を更新することと、
に基づいて、前記更新した物体セットにしたがって、前記未解明の領域を反復して更新および分析することをさらに含む、請求項１に記載の方法。
【請求項３】
前記物体セットは、登録データを含まず、かつ、最初の反復のための空のセットであり、
前記未解明の領域は、前記最初の反復のために、前記２Ｄ画像データ、前記３Ｄ画像データ、それらの一部、または、それらの組み合わせを含み、
前記認識されていない物体を登録することは、前記対象スタックにある前記認識されていない物体を伴うタスクを実施しながら、前記物体セットを自律的に更新することを含む、
請求項２に記載の方法。
【請求項４】
前記認識されていない物体を検出することは、前記露出した角部の前記数が所定の閾値を超える場合に、前記認識されていない物体を直接、検出することを含み、
前記認識された物体を登録することは、前記露出した角部が前記所定の閾値を超える場合に、前記ＭＶＲを前記物体セットに直接、記憶することを含む、
請求項１に記載の方法。
【請求項５】
前記所定の閾値は、２である、請求項４に記載の方法。
【請求項６】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記プロセッサによって実行可能な命令を記憶した少なくとも１つのメモリデバイスと、
を含む、ロボットシステムであって、前記命令は、
スタート位置の１つまたは複数の認識されていない物体を表す１つまたは複数の画像データを受信する命令と、
それぞれ、他の表面または物体と水平方向に隣り合わない露出した辺との間の接合部を表す、前記１つまたは複数の画像データの１つまたは複数の露出した角部を識別することに基づいて、最小実行可能領域（ＭＶＲ）を導出する命令と、
前記ＭＶＲに関連付けられた前記露出した角部の数に基づいて、前記スタート位置の前記認識されていない物体のうちの１つの１つまたは複数の物理的属性を表す前記ＭＶＲおよび／または前記ＭＶＲの処理結果で、以前、登録された物体の１つまたは複数の物理的態様を表す物体セットを更新する命令と、
前記スタート位置の他の物体を前記更新した物体セットに基づいて認識する命令と、
である、前記ロボットシステム。
【請求項７】
前記少なくとも１つのメモリデバイスは、前記露出した角部の前記数を所定の閾値と比較することに基づいて、前記ＭＶＲを確かなＭＶＲとして決定する命令を含む、請求項６に記載のロボットシステム。
【請求項８】
前記少なくとも１つのメモリデバイスは、前記ＭＶＲが前記露出した角部の３つ以上に関連付けられる場合に、前記ＭＶＲを前記確かなＭＶＲとして決定する命令を含む、請求項７に記載のロボットシステム。
【請求項９】
前記少なくとも１つのメモリデバイスは、前記ＭＶＲを前記確かなＭＶＲとして前記決定したことに基づいて、前記ＭＶＲをさらに更新または調整することなく、前記物体セットを前記ＭＶＲおよび／または前記ＭＶＲの処理結果で直接、更新する命令を含む、請求項８に記載のロボットシステム。
【請求項１０】
前記少なくとも１つのメモリデバイスは、
前記物体セットに表された物体との一致を返信しない前記画像データの未解明の領域を識別する命令と、
前記確かなＭＶＲが未解明の領域内にあり、前記ＭＶＲを、該未解明の領域に基づいて導出する命令と、
さらなる物体認識および／または操作のために、前記確かなＭＶＲと一致する前記未解明の領域の部分を取り除く命令と、
を含む、請求項９に記載のロボットシステム。
【請求項１１】
前記少なくとも１つのメモリデバイスは、
前記確かなＭＶＲに対応する認識されていない物体を、前記スタート位置から離れるように移動する動作を実施する命令と、
前記認識されていない物体を移動する前記動作を実施した後、前記スタート位置のさらなる認識されていない物体を表し、且つ、更新された未解明の領域に表された次のＭＶＲを、前記更新された未解明の領域に基づいて導出する命令と、
前記次のＭＶＲおよび／または前記次のＭＶＲの処理結果で前記物体セットを更新する命令と、
を含む、請求項１０に記載のロボットシステム。
【請求項１２】
前記少なくとも１つのメモリデバイスは、
前記ＭＶＲが前記露出した角部の２つ以下と関連付けられる場合に、前記ＭＶＲを不確かなＭＶＲとして決定する命令と、
前記不確かなＭＶＲをさらに分析すること、および／または、前記スタート位置にある前記認識されていない物体の１つまたは複数を操作することに基づいて、前記ＭＶＲおよび／または前記ＭＶＲの処理結果で前記物体セットを更新する命令と、
を含む、請求項６に記載のロボットシステム。
【請求項１３】
前記少なくとも１つのメモリデバイスは、
前記画像データを前記物体セットと比較することに基づいて、１つまたは複数の認識された物体を検出する命令と、
前記物体セットとの一致を返信しない前記画像データの未解明の領域を識別する命令と、
前記画像データの前記未解明の領域の前記１つまたは複数の露出した角部を識別することに基づいて、前記未解明の領域内の前記ＭＶＲを導出する命令と、
を含み、
前記ＭＶＲは、前記スタート位置にある前記認識されていない物体のうちの前記１つの表面の推定を表す、
請求項６に記載のロボットシステム。
【請求項１４】
前記少なくとも１つのメモリデバイスは、
前記１つまたは複数の認識された物体を前記スタート位置から離すように移動する動作を実施する命令と、
前記１つまたは複数の認識された物体を移動する前記動作を実施した後、前記ＭＶＲを更新する命令と、
前記更新されたＭＶＲおよび／または前記更新されたＭＶＲの処理結果で前記物体セットを更新する命令と、
を含む、請求項１３に記載のロボットシステム。
【請求項１５】
プロセッサ命令を記憶した有形で非一時的なコンピュータ読み取り可能媒体であって、前記プロセッサ命令は、プロセッサによって実行されると、前記プロセッサに、スタート位置にある登録されたおよび／または認識されていない物体を表す１つまたは複数の受信した画像データを反復して分析することを含む方法を実施させ、
前記分析は、
それぞれ、他の表面または物体と水平方向に隣り合わない露出した辺との間の接合部を表す、前記受信した画像データの１つまたは複数の露出した角部を識別することに基づいて、１つまたは複数の最小実行可能領域（ＭＶＲ）を導出することと、
前記ＭＶＲのそれぞれに関連付けられた前記露出した角部の数に基づいて、前記ＭＶＲのそれぞれの分類を決定することと、
前記ＭＶＲのそれぞれの分類にしたがって、それぞれ、前記スタート位置にある前記認識されていない物体のうちの１つの１つまたは複数の物理的属性を表す前記ＭＶＲおよび／または前記ＭＶＲの処理結果で、以前、登録された物体の１つまたは複数の物理的態様を表す物体セットを更新することと、
前記物体セットを更新することと、
前記スタート位置にある他の物体を前記更新した物体セットを用いて認識することと、
による、有形で非一時的なコンピュータ読み取り可能媒体。
【請求項１６】
前記１つまたは複数の受信した画像データは、両方とも、１つの撮像位置からの対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを含み、
前記方法は、
前記２Ｄ画像データを前記物体セットと比較することに基づいて、検出推定を生成することと、
前記検出推定を前記３Ｄ画像データに基づいて検証することと、
をさらに含む、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１７】
前記検出推定を生成することは、前記２Ｄ画像データの一部分を前記物体セットに表された物体の表面画像と照合することに基づいて、前記検出推定を生成することを含み、
前記検出推定を検証することは、
検出推定値に対応する前記３Ｄ画像データの部分を識別することと、
前記３Ｄ画像データの前記識別された部分の３Ｄの辺の長さを計算することと、
前記３Ｄの辺の前記長さが前記物体セットに表された前記物体の辺の長さと一致する場合に、前記検出推定を検証することと、
に基づいて、前記検出推定を検証することを含む、
請求項１６に記載の非一時的なコンピュータ読み取り可能媒体非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
前記１つまたは複数の受信した画像データは、両方とも、１つの撮像位置からの対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを含み、
前記方法は、
前記３Ｄ画像データを前記物体セットと比較することに基づいて、検出推定を生成することと、
前記２Ｄ画像データに基づいて、前記検出推定を検証することと、
をさらに含む、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１９】
前記検出推定を生成することは、
互いの閾値範囲内の深度測定値を有する水平方向の隣り合う位置のセットを含む、前記３Ｄ画像データ内の層を識別することと、
前記深度測定値が水平方向の隣り合う位置にわたって前記閾値範囲の外に逸脱する位置を表す、前記層の辺を識別することと、
前記辺の長さを計算することと、
前記辺の長さを前記物体セットに表された物体の寸法と照合することと、
に基づいて、前記検出推定を生成することを含み、
前記検出推定を検証することは、
前記検出推定に対応する前記２Ｄ画像データの部分を識別することと、
前記２Ｄ画像データの前記識別された部分の２Ｄ特性を識別することと、
前記２Ｄ特性が前記物体セットに表された前記登録された物体のうちの１つの画像の対応する特性に一致する場合に、前記検出推定を検証することと、
に基づいて、前記検出推定を検証することを含む、
請求項１８に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２０】
前記方法は、前記１つまたは複数の受信した画像データを分析することに基づいて、登録データを含まない空のセットから前記物体セットを反復して構築することをさらに含み、前記画像データを分析することは、
前記物体セットがいずれの物体の登録データも含まない場合に、前記１つまたは複数の受信した画像データまたはその画像データの一部分を未解明の領域として識別することと、
前記１つまたは複数のＭＶＲを前記未解明の領域から導出することと、
前記１つまたは複数のＭＶＲの分類にしたがって、前記１つまたは複数のＭＶＲの少なくともサブセットを前記物体セットに記憶することと、
前記物体セットに記憶された前記１つまたは複数のＭＶＲに一致する前記受信した画像データの部分に基づいて、前記受信した画像データに表された物体の第１のセットを検出することと、
前記一致した部分を取り除くことによって、前記未解明の領域を更新することと、
前記受信した画像データに表された物体の第２のセットを登録するために、前記更新された未解明の領域に基づいて、ＭＶＲの新しいセットを導出することと、
による、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１８年１０月３０日出願の米国仮特許出願番号第６２／７５２，７５６号の利益を主張し、参照によりその全体が本明細書に組み込まれる。本出願は、２０１９年５月２４日出願の米国仮特許出願番号第６２／８５２，９６３号の利益をさらに主張し、参照によりその全体が本明細書に組み込まれる。本出願は、２０１９年３月１日出願の米国特許出願番号第１６／２９０，７４１号であり、現在、米国特許番号第１０，３６９，７０１号にも関連し、参照によりその全体が本明細書に組み込まれる。
【０００２】
本出願は、Ｊｉｎｚｅ  Ｙｕ，Ｊｏｓｅ  Ｊｅｒｏｎｉｍｏ  Ｍｏｒｅｉｒａ  Ｒｏｄｒｉｇｕｅｓ、および、Ｒｏｓｅ  Ｎｉｋｏｌａｅｖ  Ｄｉａｎｋｏｖによる同時出願の米国特許出願「Ａ  ＲＯＢＯＴＩＣ  ＳＹＳＴＥＭ  ＷＩＴＨ  ＡＵＴＯＭＡＴＥＤ  ＰＡＣＫＡＧＥ  ＲＥＧＩＳＴＲＡＴＩＯＮ  ＭＥＣＨＡＮＩＳＭ  ＡＮＤ  ＭＩＮＩＭＵＭ  ＶＩＡＢＬＥ  ＲＥＧＩＯＮ  ＤＥＴＥＣＴＩＯＮ」に関連する主題を含む。関連出願は、Ｍｕｊｉｎ社に譲渡され、整理番号１３１８３７−８００３．ＵＳ４０で識別される。その主題は、参照により本明細書に組み込まれる。
【０００３】
本技術は、一般的に、ロボットシステムを対象とし、より具体的には、物体を登録するシステム、プロセス、および、技術を対象とする。
【背景技術】
【０００４】
多くの場合、パッケージは、目的地への出荷のためにパレットに配置され（または、「パレタイズされ」）、その後、目的地で、デパレタイズされる。パッケージは、資源集約的になったり、怪我の危険性を高めたりする人間作業者によってデパレタイズされる場合がある。産業環境においては、デパレタイズ作業は、パッケージを把持し、持ち上げ、運搬し、解放点まで運ぶロボットアーム等の産業用ロボットによって行われる。また、撮像装置を利用して、パレットに積まれたパッケージのスタックの画像が撮影される。システムは、画像を処理して、登録データソースに記憶された登録画像と撮影画像を比較する等によって、パッケージがロボットアームによって効率的に取り扱われることが保証されてもよい。
【０００５】
パッケージの撮影画像が、登録画像に一致する場合がある。また、結果として、撮影された物体の物理的特性（例えば、パッケージの寸法、重量、および／または、質量中心の測定値）が未知の場合がある。物理的特性の正確な識別に失敗すると、様々な望ましくない結果につながり得る。例えば、このような失敗は停止の原因となることがあり、停止すると、パッケージを手動で登録することが必要となり得る。また、このような失敗に起因して、特に、パッケージが比較的重いおよび／または傾いている場合、パッケージの取り扱いを誤る結果となり得る。
【０００６】
技術の様々な特徴および特性は、発明を実施するための形態を図面と共に検討すると、当業者には明らかになろう。技術の実施形態を、図面に例として示すが、図面に制限されるものではない。図面中、類似の参照番号は類似の要素を示してよい。
【図面の簡単な説明】
【０００７】
【図１】ロボットシステムが動作し得る環境の例を示す。
【図２】本技術の１つまたは複数の実施形態による、ロボットシステムを示す。
【図３Ａ】本技術の１つまたは複数の実施形態による、ロボットシステムが処理する物体のスタックの例を示す。
【図３Ｂ】本技術の１つまたは複数の実施形態による、スタックの例の上面を示す。
【図３Ｃ】本技術の１つまたは複数の実施形態による、上面に対応するセンサデータを示す。
【図４Ａ】本技術の１つまたは複数の実施形態による、最初の動作セットの後の上面に対応するセンサデータを示す。
【図４Ｂ】本技術の１つまたは複数の実施形態による、図４Ａに示されたセンサデータの一部を示す。
【図５】本技術のある実施形態による、パレタイズされたパッケージのセットの上面図を示す。
【図６】本技術のある実施形態による、露出した外側角部のグラフィック表現を示す。
【図７】本技術のある実施形態による、パレタイズされたパッケージのセットのブロック図である。
【図８】本技術のある実施形態による、マージされたＭＶＲ領域の例を示す。
【図９】本技術のある実施形態による、物体認識プロセスのフロー図である。
【図１０】本技術のある実施形態による、図１のロボットシステムを動作させる方法のブロック図である。
【図１１】本明細書に記載の少なくとも幾つかの動作を実施できる処理システムの例を示すブロック図である。
【発明を実施するための形態】
【０００８】
図面は、説明のためだけに様々な実施形態を示す。本技術の趣旨を逸脱することなく、代替実施形態を採用してよいことを当業者は認識されよう。したがって、特定の実施形態を図面に示すが、技術は、様々な修正を受け入れてよい。
【０００９】
自動パッケージ登録機構を備えたロボットシステムのためのシステムおよび方法を本明細書に記載する。ある実施形態にしたがって構成されたロボットシステム（例えば、１つまたは複数の指定されたタスクを実行するデバイスを統合したシステム）は、未知の、または、認識されていない物体（例えば、パッケージ、箱、ケース等）を操作し、（例えば、人間オペレータによる入力が殆どまたは全く無しに）自律的／自動的に登録することによって、使用性と柔軟性を向上させる。
【００１０】
物体が認識されたか否かを判断するために、ロボットシステムは、スタート位置の物体に関するデータ（例えば、物体の露出面の１つまたは複数の画像）を取得し、既知のまたは予測される物体の登録データと比較できる。ロボットシステムは、比較されたデータ（例えば、比較された画像の一部）が、物体の１つの登録データ（例えば、登録された表面画像の１つ）と一致する場合に、その物体は認識されていると判断できる。ロボットシステムは、比較されたデータが既知または予測される物体の登録データと一致しない場合に、物体は認識されていないと判断できる。
【００１１】
ロボットシステムは、１つまたは複数の推定にしたがって、認識されていない物体を操作でき、認識されていない物体に関する追加情報（例えば、表面画像および／または物理的寸法）を決定できる。例えば、ロボットシステムは、他の物体とは離れたまたは隣り合わない認識されていない物体の露出した辺（エッジ、縁）および／または露出した外側角部を識別できる。
【００１２】
推定は、対応する認識されていない物体と接触および持ち上げるのに必要な最小限および／または最適なエリアを表す最小実行可能領域（ＭＶＲ）を生成することを含み得る。各ＭＶＲは、１つの認識されていない物体の表面の推定（例えば、表面の周囲の境界）をさらに表すことができる。ＭＶＲ生成時に、露出した外側角部および露出した辺は、二次元（２Ｄ）および／または三次元（３Ｄ）の画像データを検査することによって識別されてよい。識別された露出した外側角部および露出した辺に基づいて、最初のＭＶＲが、露出した辺に対向する辺を識別することによって生成されてよい。最初のＭＶＲは、拡大および／または縮小された領域を決定することおよびテストすること等によって、さらに処理されて、検証されたＭＶＲを生成してよい。最初のＭＶＲは、ＭＶＲ決定の確実性（例えば、最初のＭＶＲの精度を表すステータスまたはレベル）にしたがって処理されてもよい。例えば、ロボットシステムは、最初のＭＶＲが、３つ以上の露出した角部を含む場合、および／または、３つ以上の露出した角部を用いて導出される場合に、最初のＭＶＲを確かなＭＶＲ（例えば正確である可能性が高い、検証されたＭＶＲのインスタンス）として識別できる。そうでない場合（例えば、最初のＭＶＲが、２つ以下の露出した角部を含む場合、および／または、２つ以下の露出した角部を用いて導出される場合）、ロボットシステムは、最初のＭＶＲを不確かなＭＶＲ（例えば、正確である可能性が低い、検証されたＭＶＲのインスタンス）として識別できる。
【００１３】
ロボットシステムは、検証されたＭＶＲを用いて、検証されたＭＶＲ、および／または、検証されたＭＶＲを用いて導出された他の処理結果を記憶すること等によって、認識されていない物体を登録できる。例えば、ロボットシステムは、確かなＭＶＲを用いて、対応する認識されていない物体の登録を開始できる。ロボットシステムは、確かなＭＶＲ物体を（例えば、把持して、タスクを行うために移動することによって）さらに操作し、それによって、スタート位置に残っている物体の追加の角部を露出させる可能性を高めることができる。ロボットシステムは、物体を移動した後、検出および分析を繰り返して、新しく露出した角部に基づいて、以前は不確かであったＭＶＲを、確かなＭＶＲとして識別することが増加し得る。
【００１４】
したがって、本明細書に記載した実施形態は、認識されていない物体のＭＶＲを正確に生成する可能性を高める。精度の向上は、移動された物体に関する不正確なデータによって生じるパッケージの落下および／または衝突等のエラーの低減につながり得る。さらに、ＭＶＲの精度の向上は、正確な登録データにつながり得る。これは、同じ種類の物体のその後の処理を確実に識別することから生じる効率の向上を提供し得る。さらに、本明細書に記載した実施形態を使用して、最初のデータが無くても、マスタデータ（例えば、登録データの収集）を自律的に開始、ポピュレートできる。換言すると、ロボットシステムは、既存の登録データが無く、人間オペレータのインタラクション／入力が無くても、自律的に物体を登録できる。
【００１５】
以下の記載において、本開示の技術の完全な理解を提供するために、多くの特定の詳細を記載する。他の実施形態においては、本明細書で紹介される技術は、これらの特定の詳細が無くても実践できる。他の例においては、特定の機能またはルーチン等の周知の特徴は、本開示を不必要に曖昧にしないように、詳細には記載しない。本明細書において、「ある実施形態」、「一実施形態」等の言及は、記載している特定の特徴、構造、材料、または、特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書におけるこのような句の出現は、全て同じ実施形態を必ずしも指してはいない。他方、このような言及は、必ずしも互いに排他的なものではない。さらに、特定の特徴、構造、材料、または、特性は、１つまたは複数の実施形態において、任意の適切な方法で組み合わせることができる。図に示す様々な実施形態は、説明のための表現に過ぎず、必ずしも、縮尺通りに描いてはいないことを理解されたい。
【００１６】
ロボットシステムおよびサブシステムに関連付けられることが多いが、開示の技術の幾つかの重要な態様を不必要に曖昧にし得る構造またはプロセスを記載する周知の幾つかの詳細は、明確にするために、以下には記載していない。さらに、以下の開示は、本技術の異なる態様の幾つかの実施形態を記載するが、幾つかの他の実施形態は、この項に記載するのとは異なる構成または構成要素を有し得る。したがって、開示の技術は、追加の要素を有する、または、以下に記載の要素の幾つかを含まない他の実施形態を有し得る。
【００１７】
以下に記載の本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはプロセッサによって実行されるルーチンを含む、コンピュータまたはプロセッサで実行可能な命令の形を取り得る。以下に示し、記載する以外のコンピュータまたはプロセッサシステムで開示の技術を実践できることを当業者は理解されよう。本明細書に記載の技術は、以下に記載のコンピュータ実行可能命令の１つまたは複数を実行するように特別にプログラム、構成、または、構築された専用コンピュータまたはデータプロセッサで実現できる。したがって、本明細書で一般的に使用される「コンピュータ」および「プロセッサ」という用語は、任意のデータプロセッサを指し、（パームトップコンピュータ、ウェアラブルコンピュータ、セルラーフォン、モバイルフォン、マルチプロセッサシステム、プロセッサベースもしくはプログラム可能家電製品、ネットワークコンピュータ、ミニコンピュータ等を含む）インターネット家電およびハンドヘルドデバイスを含み得る。これらのコンピュータおよびプロセッサが取り扱う情報は、液晶ディスプレイ（ＬＣＤ）を含む任意の適切な表示媒体に提示できる。コンピュータまたはプロセッサで実行可能なタスクを実行するための命令は、ハードウェア、ファームウェア、または、ハードウェアおよびファームウェアの組み合わせを含む、任意の適切なコンピュータ可読媒体に記憶できる。命令は、例えば、フラッシュドライブおよび／または他の適切な媒体を含む任意の適切なメモリデバイスに含まれてよい。
【００１８】
「結合された」および「接続された」という用語、並びに、これらの派生語は、構成要素間の構造的関係を記載するために本明細書では使用されてよい。これらの用語は、互いに同意語と意図されていないことを理解されたい。むしろ、特定の実施形態において、「接続された」を使用して、２つ以上の要素が互いに直接接触していることを示すことができる。文脈においてそうでないことが明らかでない限り、「結合された」という用語を使用して、２つ以上の要素が、互いに直接的または間接的に（要素と要素の間に他の介在する要素がある）接触していること、（例えば、信号送信／受信、または、関数呼び出し等の因果関係においてのように）２つ以上の要素が互いに協力または相互作用すること、または、その両方を示すことができる。
【００１９】
好適な環境
図１は、ロボットシステム１００が動作し得る環境の例である。ロボットシステム１００は、１つまたは複数のタスクを実行するように構成された１つまたは複数のユニット（例えば、ロボット）を含むことができる、および／または、それらと通信できる。梱包機構の態様は、様々なユニットによって実践または実施できる。
【００２０】
図１に示す例に関しては、ロボットシステム１００は、倉庫または分配／出荷拠点において、荷降ろしユニット１０２、移動ユニット１０４（例えば、パレタイズロボット、および／または、ピースピッキングロボット）、運搬ユニット１０６、積み込みユニット１０８、または、これらの組み合わせを含み得る。ロボットシステム１００の各ユニットは、１つまたは複数のタスクを実行するように構成できる。タスクは、トラックまたはバンから物体を降ろし、物体を倉庫に保管する、または、保管場所から物体を降ろし、出荷の準備をする等、目的を達成する動作を行うように順次、組み合わせることができる。他の例に関しては、タスクは、対象位置（例えば、パレットの上、および／または、大箱／ケージ／箱／ケース内）に物体を載置することを含み得る。以下に記載のように、ロボットシステムは、物体を載置するおよび／または積み重ねるための計画（例えば、載置位置／向き、物体を移動させる順番、および／または、対応する動作計画）を導出できる。各ユニットは、導出された計画の１つまたは複数にしたがって（例えば、ユニットの１つまたは複数の構成要素を動作させることによって）一連のアクションを実行してタスクを実行するように構成されてよい。
【００２１】
ある実施形態においては、タスクはスタート位置１１４からタスク位置１１６への対象物体１１２（例えば、実行するタスクに対応するパッケージ、箱、ケース、ケージ、パレット等の１つ）の操作（例えば、移動および／または向きの変更）を含み得る。例えば、荷降ろしユニット１０２（例えば、デバンニングロボット）は、運搬装置（例えば、トラック）内の位置から、コンベヤベルト上の位置に対象物体１１２を移動するように構成されてよい。また、移動ユニット１０４は、１つの位置（例えば、コンベヤベルト、パレット、または、大箱）から他の位置（例えば、パレット、大箱等）に対象物体１１２を移動するように構成されてよい。他の例に関しては、移動ユニット１０４（例えば、パレタイズロボット）は、対象物体１１２を元の位置（例えば、パレット、ピックアップエリア、および／または、コンベヤ）から目的パレットに移動するように構成されてよい。動作を完了する時、運搬ユニット１０６は、移動ユニット１０４に関連付けられたエリアから、積み込みユニット１０８に関連付けられたエリアに対象物体１１２を移動でき、積み込みユニット１０８は、移動ユニット１０４から保管場所（例えば、棚上の位置）に（例えば、対象物体１１２を載せたパレットを動かすことによって）対象物体１１２を移動できる。このタスクおよびそれに関連する動作に関する詳細を以下に記載する。
【００２２】
説明目的で、ロボットシステム１００を、出荷センタの文脈で記載するが、ロボットシステム１００は、製造、アセンブリ、梱包、ヘルスケア、および／または、他の種類の自動化等、他の環境において／他の目的のために、タスクを実行するように構成されてよいことは理解されたい。ロボットシステム１００は、図１に示されていない、マニピュレータ、サービスロボット、モジュール式ロボット等、他のユニットを含み得ることも理解されたい。例えば、ある実施形態においては、ロボットシステム１００は、ケージカートまたはパレットからコンベヤまたは他のパレット上に物体を移動するデパレタイズユニット、１つのコンテナから別のコンテナに物体を移動するコンテナ切替ユニット、物体を梱包する梱包ユニット、物体の１つまたは複数の特性にしたがって物体をグループにする仕分けユニット、物体の１つまたは複数の特性にしたがって物体を異なるように操作（例えば、仕分け、グループ化、および／または、移動）するピースピッキングユニット、または、これらの組み合わせを含み得る。
【００２３】
ロボットシステム１００は、動き（例えば、回転変位および／または並進変位）のためにジョイントに接続された物理的または構造的な部材（例えば、ロボットマニピュレータアーム）を含み得る。構造部材およびジョイントは、ロボットシステム１００の使用／動作に応じて、１つまたは複数のタスク（例えば、把持、回転、溶接等）を実行するように構成されたエンドエフェクタ（例えば、把持部）を操作するように構成された運動連鎖を形成できる。ロボットシステム１００は、対応するジョイントを中心に、または、対応するジョイントで構造部材を駆動または操作（例えば、変位、および／または、向き変更）するように構成された駆動装置（例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマー等）を含み得る。ある実施形態においては、ロボットシステム１００は、対応するユニット／シャシを場所から場所へと運搬するように構成された運搬モータを含み得る。
【００２４】
ロボットシステム１００は、構造部材を操作するため、および／または、ロボットユニットを運搬するため等、タスクの実施に使用される情報を取得するように構成されたセンサを含み得る。センサは、ロボットシステム１００の１つまたは複数の物理的特性（例えば、ロボットシステムの１つまたは複数の構造部材／ジョイントの状況、状態、および／または、位置）、および／または、周囲環境の１つまたは複数の物理的特性を検出または測定するように構成されたデバイスを含み得る。センサの幾つかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダ等を含み得る。
【００２５】
ある実施形態においては、例えば、センサは、周囲環境を検出するように構成された１つまたは複数の撮像装置（例えば、視覚および／または赤外線カメラ、二次元（２Ｄ）および／または三次元（３Ｄ）イメージングカメラ、ライダまたはレーダ等の距離測定装置等）を含み得る。撮像装置は、（例えば、自動検査、ロボット誘導、または、他のロボット用途のために）機械／コンピュータビジョンを介して処理され得る、デジタル画像および／または点群等、検出された環境の表現を生成し得る。以下にさらに詳細に記載するように、ロボットシステム１００は、デジタル画像および／または点群を処理して、対象物体１１２、スタート位置１１４、タスク位置１１６、対象物体１１２の姿勢、スタート位置１１４および／または姿勢に関する信頼基準、または、これらの組み合わせを識別できる。
【００２６】
対象物体１１２を操作するために、ロボットシステム１００は、指定エリア（例えば、トラック内またはコンベヤベルト等のピックアップ位置）の画像を撮影、分析して、対象物体１１２と対象物体１１２のスタート位置１１４とを識別できる。同様に、ロボットシステム１００は、別の指定エリア（例えば、コンベヤ上に物体を載置するための投下位置、コンテナ内の物体を置く位置、または、積み重ねるためのパレット上の位置）の画像を撮影、分析して、タスク位置１１６を識別できる。例えば、撮像装置は、ピックアップエリアの画像を生成するように構成された１つまたは複数のカメラ、および／または、タスクエリア（例えば、投下エリア）の画像を生成するように構成された１つまたは複数のカメラを含み得る。撮影画像に基づいて、以下に記載のように、ロボットシステム１００は、スタート位置１１４、タスク位置１１６、関連する姿勢、梱包／載置計画、運搬／梱包順序、および／または、他の処理結果を判断できる。
【００２７】
ある実施形態においては、例えば、センサは、構造部材（例えば、ロボットアームおよび／またはエンドエフェクタ）、および／または、ロボットシステム１００の対応するジョイントの位置を検出するように構成された位置センサ（例えば、位置エンコーダ、ポテンショメータ等）を含み得る。ロボットシステム１００は、タスク実行中に、位置センサを使用して、構造部材および／またはジョイントの位置および／または向きを追跡できる。
【００２８】
目的地ベースのセンサを用いた物体の移動および登録
図２は、本技術の１つまたは複数の実施形態による、図１のロボットシステム１００の図である。ロボットシステム１００は、エンドエフェクタ２０４（例えば、把持部）を含むロボットアーム２０２（例えば、図１の移動ユニット１０４のインスタンス）を含み得る。ロボットアーム２０２は、図１のスタート位置１１４と図１のタスク位置１１６との間で対象物体１１２を移動するように構成されてよい。図２に示すように、スタート位置１１４は、対象スタック２１０（例えば、物体のグループ）を載せたパレット２０８を有し得る。ロボットアーム２０２のタスク位置１１６は、コンベヤ２０６（例えば、図１の運搬ユニット１０６のインスタンス）の載置位置（例えば、開始／放出点）であってよい。例えば、ロボットアーム２０２は、対象スタック２１０から物体を掴み取るように、且つ、物体を他の目的地／タスクに運搬するためにコンベヤ２０６に載せるように構成されてよい。
【００２９】
ロボットシステム１００は、ロボットアーム２０２を用いた移動動作を行う時、１つまたは複数のセンサを使用できる。ある実施形態においては、ロボットシステム１００は、第１の画像センサ２１２および／または第２の画像センサ２１４を含み得る。第１の画像センサ２１２は、スタート位置１１４を撮影および／または分析するように構成された、カメラおよび／またはデプスセンサ等、１つまたは複数の２Ｄおよび／または３Ｄセンサを含み得る。第２の画像センサ２１４は、タスク位置１１６を撮影および／または分析するように構成された、カメラおよび／またはデプスセンサ等、１つまたは複数の２Ｄおよび／または３Ｄセンサを含み得る。例えば、第１の画像センサ２１２は、スタート位置１１４より上でスタート位置１１４の方を向く既知の位置に配置された１つまたは複数のカメラおよび／またはデプスセンサを含み得る。第１の画像センサ２１２は、対象スタック２１０の上面図等、スタート位置１１４の１つまたは複数の上面図に対応する画像データ（例えば、３Ｄ点群、および／または、視覚もしくは２Ｄ画像）を生成できる。以下にさらに詳細に記載するように、ロボットシステム１００は、第１の画像センサ２１２からの画像データを使用して、対象スタック２１０の認識されていない（例えば、登録されていない）物体の最小実行可能領域（ＭＶＲ）を導出できる。ロボットシステム１００は、認識されていない物体をスタート位置１１４からタスク位置１１６に移動させる時等、ＭＶＲを使用して、認識されていない物体を（例えば、エンドエフェクタ２０４を介して）把持し、（例えば、ロボットアーム２０２を介して）操作できる。また、第２の画像センサ２１４は、タスク位置１１６の上／横でタスク位置１１６の方を向く１つまたは複数の既知の位置、または関連する空間に配置された１つまたは複数のカメラおよび／またはデプスセンサを含み得る。したがって、第２の画像センサ２１４は、タスク位置１１６に、または、タスク位置１１６から閾値距離内にある対象物体１１２の１つまたは複数の上面図および／または側面図に対応する画像データを生成できる。
【００３０】
物体認識
本技術の１つまたは複数の実施形態にしたがって、図３Ａは、図１のロボットシステム１００によって処理される物体のスタックの例（例えば、図２の対象スタック２１０）の図であり、図３Ｂは、スタックの例の上面の図（例えば、対象スタック２１０の実際の上面図３１０）であり、図３Ｃは、上面に対応するセンサデータ（例えば、上面図データ３２０）の図である。図３Ａ、３Ｂ、および３Ｃを一緒に参照すると、ロボットシステム１００は、前述のように、対象スタック２１０内の物体を、図１のタスク位置１１６（例えば、図２のコンベヤ２０６）等、他の位置に移動させるように構成されてよい。物体の移動に関しては、ロボットシステム１００は、対象スタック２１０の上に配置された図２の第１の画像センサ２１２からの画像データ（例えば、上面図データ３２０）を使用できる。例えば、上面図データ３２０は、実際の上面図３１０を示すまたは表す１つまたは複数の視覚画像および／または１つまたは複数のデプスマップを含み得る。さらに、ロボットシステム１００は、上面図データ３２０を分析して、物体の境界に対応し得る辺を識別できる。例えば、ロボットシステム１００は、深度測定値および／または画像特性の差（例えば、異なる色、線形パターン、影、明瞭さの差等）に基づいて、画像データで表現された辺および／または連続した表面を識別できる。ロボットシステム１００は、深度測定値の差等に基づいて等、露出した辺３２２（例えば、ほぼ同じ高さの他の物体／表面と水平に当接していない物体の上面の辺）を識別できる。
【００３１】
対象スタック２１０は、予測された、または、以前のプロセスの物体の登録記録を含むマスタデータに登録された物体、および／または、マスタデータに登録されていない予測されていない物体を含んでよい。したがって、ロボットシステム１００は、物体表面３１６の画像データを使用して、対象スタック２１０内にある物体を認識または識別できる。ある実施形態においては、ロボットシステム１００は、画像データ、または、画像データの１つまたは複数の部分を、マスタデータと比較して、対象スタック２１０内の物体を認識できる。例えば、ロボットシステム１００は、上面図データ３２０の一部が登録データの物体表面３１６の１つまたは複数の画像に一致する場合に、対象スタック２１０内の既知の物体（例えば、認識された物体３１２）を識別できる。実際の上面図３１０の残りの部分（例えば、登録データと一致しない部分）は、認識されていない物体３１４に対応し得る。認識されていない物体３１４の辺は、図３Ｃに破線を用いて示される。
【００３２】
画像データの一致に基づいて、ロボットシステム１００は、対応する画像データ内で認識された物体３１２の位置を突き止めることができ、この位置は、さらに、（例えば、画素位置を座標系にマッピングするプレキャリブレーション表および／または方程式を介して）対象スタック２１０の実世界の位置に変換されてよい。さらに、ロボットシステム１００は、認識された物体３１２の露出していない辺の位置を、一致に基づいて推定できる。例えば、ロボットシステム１００は、認識された物体３１２の寸法をマスタデータから取得できる。ロボットシステム１００は、認識された物体３１２の露出した辺３２２から既知の寸法によって分けられる画像データの部分を測定できる。マッピングにしたがって、ロボットシステム１００は、認識された物体３１２の１つまたは複数の登録に基づいた辺３２４を決定できる、および／または、上記のように、登録に基づいた辺３２４を実世界の位置に同様にマッピングできる。
【００３３】
ある実施形態においては、ロボットシステム１００は、画像データ（例えば、点群データ）に表現された対象スタック２１０の露出した外側角部３２６を識別できる。例えば、ロボットシステム１００は、異なる向きを有する（例えば、異なる角度で延びる）露出した辺３２２（例えば、３Ｄの辺とも呼ばれる、３Ｄ画像データで識別される辺）の２つ以上のセットの間の交点／接合点を検出することに基づいて、露出した外側角部３２６を識別できる。１つまたは複数の実施形態において、ロボットシステム１００は、９０度より大きい、および／または、９０度未満の閾値角部角度範囲等、所定範囲内にある角度（角度範囲とも呼ばれる）を露出した辺３２２が形成する場合に、露出した外側角部３２６を識別できる。以下に詳細に記載するように、ロボットシステム１００は、露出した外側角部３２６と対応する露出した辺３２２とを使用して、認識されていない物体３１４を処理および／または操作できる。
【００３４】
認識されていない物体の処理
ある実施形態においては、図１のロボットシステム１００は、図２の対象スタック２１０内の物体の認識ステータスおよび／または相対的位置にしたがって、物体を処理（例えば、識別、および／または、移動）できる。例えば、ロボットシステム１００は、認識された物体を最初に掴み、移動し、次に、センサ（例えば、図２の第１の画像センサ２１２）から別の画像データセットを生成できる。図４Ａは、本技術の１つまたは複数の実施形態による、最初の動作セット（例えば、認識された物体３１２を掴むこと、および、移動すること）の後の上面に対応するセンサデータ４０１の図である。図４Ａの網掛部分は、図３Ｂおよび図３Ｃに示された認識された物体３１２を取り除いた後の深度測定値の変化に対応する。
【００３５】
ロボットシステム１００が、画像データ（例えば、２Ｄ画像および／または３Ｄ点群）の認識された物体３１２のいずれも識別しない場合に、ロボットシステム１００は、図３Ａの認識されていない物体３１４を突き止めるために、画像データを処理して、いずれかの露出した角部３２６および／または露出した辺３２２を識別できる。例えば、ロボットシステム１００は、上記と同様に、センサデータ４０１（例えば、３Ｄ点群）を処理して、露出した外側角部３２６および／または露出した辺３２２を識別できる。したがって、ロボットシステム１００は、認識された物体３１２を取り除いた後に露出された角部／辺をさらに識別し、および／または、突き止めることができる。ある実施形態においては、ロボットシステム１００は、対応する閾値にしたがって、露出した辺３２２の２つ以上の間の交点／接合点として、露出した内側角部４０２をさらに識別できる。例えば、ロボットシステム１００は、対応する連続した表面に対して１８０度を超える露出した辺３２２の２つ以上の間の接合点として、露出した内側角部４０２を識別できる。ある実施形態においては、ロボットシステム１００は、露出した辺３２２が、２７０度より大きい、および／または、２７０度未満の閾値角度範囲内にある角度を形成する場合に、露出した内側角部４０２を識別できる。
【００３６】
ある実施形態においては、認識された物体３１２が何も残っていない場合に、ロボットシステム１００は、露出した角部および／または露出した辺に基づいて、（例えば、認識されていない物体３１４のうちから）対象スタック２１０の登録対象４０６を識別できる。例えば、ロボットシステム１００は、プリファレンスのセット、および／または、スコア機構にしたがって、露出した角部／辺を評価できる。ある実施形態においては、ロボットシステム１００は、図２のロボットアーム２０２に最も近い露出した外側角部３２６を選択するように構成されてよい。ロボットシステム１００は、センサデータ４０１の対応する領域と、選択された露出した外側角部３２６に関連付けられた対応する認識されていない物体３１４とを選択できる。換言すると、認識された物体３１２を処理した後、ロボットシステム１００は、対象スタック２１０の露出した外側角部３２６を形成／構成する認識されていない物体３１４を処理できる。センサデータ４０１の対応する部分を（例えば、ＭＶＲを導出することによって）分析することに基づいて、ロボットシステム１００は、認識されていない物体３１４を把持し、把持した物体を持ち上げ、および／または、水平に移動し、および／または、登録のために把持した物体を撮影できる。さらに、把持した物体を撮影した後、ロボットシステム１００は、把持した物体を目的地（例えば、図２のコンベヤ２０６）に移動できる。
【００３７】
センサデータの分析をさらに記載するために、図４Ｂは、本技術の１つまたは複数の実施形態による、図４Ａのセンサデータ４０１の一部分の詳細な図４Ｂである。ロボットシステム１００は、センサデータ４０１を分析して、ＭＶＲ４１２を導出できる。ＭＶＲ４１２は、物体と接触、物体を把持、および／または、物体を持ち上げるのに使用される最小サイズのエリアを表すことができる。また、ＭＶＲ４１２は、１つの認識されていない物体の表面および／または周囲の境界の推定を表すことができる。例えば、ＭＶＲ４１２は、エンドエフェクタ２０４の取付面積、または、取付面積を囲む追加の／緩衝領域を有するより大きいエリアに関連付けられてよい。また、例えば、ＭＶＲ４１２は、認識されていない物体（例えば、選択された登録対象）の水平方向の境界／辺の推定された位置に関連付けられてよい。ある実施形態においては、ＭＶＲ４１２は、最小および／または最大候補サイズに対応してよく、それぞれ、対象スタック２１０の予測される物体の最小／最大の可能なインスタンスの物理的寸法（例えば、長さ、幅、高さ、直径、外周等）に対応し得る。換言すると、ロボットシステム１００は、対象スタック２１０内には、最小候補サイズより小さい寸法を有する物体も最大候補サイズより大きい寸法を有する物体も無いことを判断できる。最小候補サイズおよび最大候補サイズは、所定の値（すなわち、対象スタック２１０を処理する前に与えられたまたは既知の値）であってよい。ＭＶＲ４１２の導出に関する詳細を以下に記載する。
【００３８】
ロボットシステム１００は、ＭＶＲ４１２を用いて、把持位置４２０を決定できる。把持位置４２０は、最初の操作のためにエンドエフェクタ２０４の真下にくる、および／または、エンドエフェクタ２０４に接触する物体／スタック上のエリアに対応し得る。換言すると、ロボットシステム１００は、次の操作（例えば、持ち上げプロセス、水平移動プロセス、および／または、登録のためのデータ収集プロセス）のために、把持位置４２０の上に把持部を置いて、対応する物体を把持できる。ある実施形態においては、ロボットシステム１００は、可能な把持位置のセットから把持位置４２０を選択できる。例えば、ロボットシステム１００は、（例えば、ロボットアームが露出した辺３２２にわたって延び、他の部分に重ならないことを優先して）アームの相対的向きにしたがって、把持位置のセットから選択できる。
【００３９】
ある実施形態においては、ロボットシステム１００は、推定された辺４２４に基づいて、ＭＶＲ４１２を導出できる。例えば、ロボットシステム１００は、対象スタック２１０の上層の露出した外側角部３２６の例（例えば、３Ｄ角部）を選択または識別できる。ロボットシステム１００は、関連付けられた露出した辺３２２（例えば、３Ｄで選択された角部で出会う／を形成する）に沿って、選択された露出した外側角部３２６から離れるように移動し得る。辺に沿って動きながら、ロボットシステム１００は、センサデータ４０１の３Ｄ深度測定値、および／または、２Ｄ画像特性（例えば、明るさ、色等）の差に基づいて、推定された辺４２４を識別できる。ロボットシステム１００は、横断された辺と交差する、および／または、横断された辺から閾値分離距離内にある２Ｄ／３Ｄ画像データの辺または線を識別できる。ロボットシステム１００は、推定された辺４２４を決定する時に、識別された辺をテストできる。ロボットシステム１００は、識別された辺の向きを露出した辺３２２の向きと比較することに基づいて、推定された辺４２４をテスト／検証してよい。例えば、ロボットシステム１００は、識別された辺が露出した辺３２２の１つと平行である場合に、識別された辺を推定された辺４２４として検証できる。ある実施形態においては、ロボットシステム１００は、テストされた対の辺（例えば、識別された辺と、露出した辺３２２の横断されないインスタンス）上の２つ以上の対応する点の間の距離が等しいことを検証することに基づいて、平行な向きであることをテストできる。ある実施形態においては、両辺および／またはそれらの延長線が、露出した辺３２２を横断したインスタンスと、角度８０度〜１００度の間で交差する場合等、テストされた対の辺および／またはそれらの辺の延長線が、同じ角度で共通の辺と交差する場合に、ロボットシステム１００は、平行な向きを識別できる。
【００４０】
したがって、ロボットシステム１００は、検出した線（例えば、２Ｄの辺および／または不完全な辺）および／または推定された辺４２４と重ならない把持位置４２０を導出できる。ロボットシステム１００は、ＭＶＲ４１２の辺と、最も近くの検出した線および／または推定された辺４２４との間の距離間の比率を釣り合わせることに基づいて、把持位置４２０を導出できる。ロボットシステム１００は、ＭＶＲ４１２に基づいた角部で、または、角部の近くで物体を把持するので、ロボットシステム１００は、その比率を釣り合わせることに基づいて、任意の１つの特定の方向に沿った最大の潜在的トルクを低減する把持位置４２０を導出できる。また、ロボットシステム１００は、さらに、推定された辺４２４と一致するまたは、推定された辺４２４から外に延びるように、ＭＶＲ４１２を導出または調整してよい。
【００４１】
ロボットシステム１００は、導出した把持位置４２０を使用して、図２のロボットアーム２０２とエンドエフェクタ２０４とを操作できる。ロボットシステム１００は、把持位置４２０でスタックの角部にある物体（例えば、登録対象４０６）を把持できる。ある実施形態においては、ロボットシステム１００は、以前は露出していなかった辺を明瞭に区別するために、把持した物体を持ち上げ、および／または、水平に移動させることができる。例えば、ロボットシステム１００は、辺を正確に区別するために、最小距離に対応する所定の高さだけ、物体を持ち上げ、および／または、物体を水平に移動させることができる。また、例えば、ロボットシステム１００は、エンドエフェクタの高さの変化および／または傾きを監視および／または分析しながら、物体を持ち上げ、および／または水平に移動させることができ、それによって、露出した辺３２２の反対側の追加の辺が認識可能になる。ロボットシステム１００は、最初の持ち上げ中、および／または、最初の持ち上げ後、データを取得および処理して、認識されていない物体３１４をさらに記述することができる。
【００４２】
ＭＶＲ検出の概要
本実施形態は、物体の正確な最小実行可能領域（ＭＶＲ）を生成することに関連してよい。露出した外側角部および露出した辺は、２Ｄおよび／または３Ｄ画像データ（例えば、点群データ）を検査することによって識別されてよい。識別された露出した外側角部および露出した辺に基づいて、最初のＭＶＲが、露出した辺に対向する辺を識別することによって生成されてよい。ある実施形態においては、ロボットシステム１００は、露出した辺に対応する（例えば、に平行な）対向する辺（例えば、図４Ｂの推定された辺４２４）を識別することに基づいて、ＭＶＲを生成できる。最初のＭＶＲは、露出した外側角部から露出した辺に沿って対向する辺にまで延びてよい。
【００４３】
最初のＭＶＲを決定した後、点群によって規定された最初のＭＶＲから表面または層の端部まで延びる可能なＭＶＲ領域（例えば、互いの閾値範囲内の深度測定値を有する横方向に隣り合う位置のセット）が、識別されてよい。物体のマージされたＭＶＲは、最初のＭＶＲと可能なＭＶＲとを含んでよい。検証されたＭＶＲは、マージされたＭＶＲを検査／テストすることによって生成されてよい。検証されたＭＶＲは、認識されていない物体を含む正確な領域を表してよい。検証されたＭＶＲに基づいて、本明細書に記載のロボットシステム１００は、物体を登録してよく、物体の把持および／または移動等、物体に関するタスクを行ってよい。
【００４４】
多くの場合、物体の辺（例えば、外側のまたは露出した辺）が、識別され得る。例えば、図２の対象スタック２１０の周囲に沿って配置された物体の外側の辺（例えば、図３Ｃの露出した辺３２２）は、取り囲んでいる物体が無くてよい、および／または、取り囲んでいるいずれの物体からも離れていてよい。したがって、撮像結果（例えば、３Ｄ点群）は、外側の辺を表す示された値（例えば、高さ測定値、および／または、色または明るさ等の画像値）の突然の変化を含み得る。しかしながら、多くの場合、他の辺は、見えない場合がある、または、（例えば、閾値信頼値に基づいて）正確に規定するのが困難な場合がある。例えば、箱の表面の設計／画像は、物体で識別された不正確な辺につながる場合がある。したがって、不正確な辺が原因で、２Ｄ／３Ｄ画像データの部分を正確に分離するのが困難な場合がある。
【００４５】
ロボットシステム１００は、画像データ（例えば、点群および／または２Ｄ画像）を検査し、１つまたは複数の層を決定することによって、物体の露出した外側角部３２６および／または露出した辺３２２を識別してよい。例えば、ロボットシステム１００は、撮像結果に基づいて、対象スタック２１０の物体（複数可）の上層（例えば、図３Ｂの認識されていない物体３１４）を識別できる。上層内で、ロボットシステム１００は、ＭＶＲ導出のために、物体および／または表面の一部分（例えば、互いに閾値連続範囲内にある高さの値を有する領域）を選択できる。ロボットシステム１００は、表面（例えば、層の１つまたは、その中の一部分）を形成／規定する露出した辺が、表面および／または対応する物体の横方向の／周囲の境界に対応することを推定できる。最初のＭＶＲは、露出した辺に向かい合う対向する辺を識別することによって生成されてよく、ここで、最初のＭＶＲは、露出した外側角部（例えば、露出した辺のセットおよび／または周囲の境界によって形成される交点）から露出した辺に沿って対向する辺まで延びてよい。
【００４６】
ロボットシステム１００は、画像データのマーカ（例えば、不完全な辺）に基づいて、最初の推定を拡大および／または縮小することによって、最初のＭＶＲをさらに処理（例えば、調整）できる。調整されたＭＶＲを検査して、把持位置４２０の決定および／または認識されていない物体の登録に使用される最終的なＭＶＲを決定できる。
【００４７】
図５は、本技術のある実施形態による、パレタイズされたパッケージのセット５００（例えば、図２の対象スタック２１０）の上面図を示す。図５に示すように、第１の物体５１０は、辺５１２ａ〜５１２ｄを含み得る。辺は、所与の図（例えば、上面図）から見た物体の境界を表してよい。一定の状況においては、辺５１２ａ〜５１２ｄの少なくとも一部（例えば、辺５１２ｃ〜５１２ｄ）は、閉ざされており、他の隣り合う物体／辺に当接してよい。逆に、辺の一部（例えば、辺５１２ａ〜５１２ｂ）は、開かれており、図３Ｃの露出した辺３２２に対応してよい。
【００４８】
第１の箱５１０は、水平方向に隣り合う物体から離れた、または、水平方向に隣り合う物体が無い１つまたは複数の露出した外側角部５１４を含み得る。露出した外側角部５１４は、スタックの図３の露出した外側角部３２６に対応してよい。以下に記載のように、画像データ（例えば、点群および／または２Ｄ画像）を検査して、パッケージの露出した辺および露出した外側角部を識別してよい。
【００４９】
点群のセグメント化
図６は、本技術のある実施形態による、露出した外側角部のグラフィック表現６００を示す。図６に示すように、点群（例えば、グラフィック表現６００）を処理して、露出した外側角部６１４（例えば、図３の露出した外側角部３２６の１つ）を識別してよい。例えば、点群は、図５の第１の物体５１０、または、その一部の３Ｄカメラによって生成された上面図に対応し得る。点群は、深度を示す複数の層を有する三次元点群を含んでよい。各層および／または表面は、互いから閾値連続範囲内にある水平方向に隣り合う深度値のセットに対応し得る。例えば、閾値連続範囲は、水平方向の隣り合う位置が、互いから閾値距離（例えば、１センチメートル未満）内、または、傾斜にしたがって閾値距離内にある深度測定値を有することを必要とし得る。また、閾値連続範囲は、基準高さ（例えば、対象スタック３１０の最も高い／最も近い点）に対して床および／または傾斜を画定できる。閾値連続範囲は、同様に、水平方向の隣り合う位置のセットの連続性を識別するために、２Ｄ画像特性（例えば、色および／または明るさ）の限界を画定できる。点群の層の深度は、対応する物体の表面に垂直な方向に沿った分離（例えば、垂直分離）に対応し得る。
【００５０】
したがって、点群を分析、処理して、層を分離し、および／または、開かれた３Ｄの辺／角部を識別してよい。ある実施形態においては、ロボットシステム１００（例えば、ロボットシステム１００内の１つまたは複数のプロセッサ）は、１つまたは複数の所定の連続性の規則／閾値にしたがって、点群の深度値をグループ化することに基づいて、層を識別できる。例えば、ロボットシステム１００は、深度値が互いの閾値連続範囲内にある場合、および／または、深度値が平坦なまたは連続した表面を表す一定の傾斜にしたがう場合に、水平方向の隣り合う／接続された深度値のセットをグループ化できる。ロボットシステム１００は、露出した辺（例えば、図５の露出した辺５１２ａおよび５１２ｂ）を識別した層の境界として識別できる。換言すると、ロボットシステム１００は、適格な深度変化が生じる層／表面の水平方向の周辺位置として、露出した辺５１２ａおよび５１２ｂを識別できる。一般的に、対象スタック２１０の上層を形成する物体／辺の深度測定値は、上層の下の層を形成する物体／辺より小さい（例えば、第１の画像装置３１２により近い距離を表す）大きさを有してよい。
【００５１】
ある実施形態においては、ロボットシステム１００は、２Ｄ視覚画像の目に見える線を識別することに基づいて、露出した辺を決定できる。例えば、パレットおよび／または床は、既知の色、明るさ等に対応してよい。したがって、ロボットシステム１００は、このような既知のパターンを区切る線を物体（複数可）の露出した辺として識別できる。また、ロボットシステム１００は、２Ｄ分析を使用して、露出した辺の３Ｄ識別を検証できる。
【００５２】
露出した辺に基づいて、ロボットシステム１００は、開かれた３Ｄ角部（例えば、露出した外側角部５１４）を識別できる。例えば、ロボットシステム１００は、露出した辺に関連付けられた形状／角度を識別できる。ロボットシステム１００は、露出した辺（例えば、辺５１２ａ〜５１２ｂ）が閾値角度範囲内の角度（例えば、８０度〜１００度）で交差する／を形成する点群の位置として露出した外側角部５１４を決定するように構成されてよい。
【００５３】
説明のための例として、ロボットシステム１００は、第１の領域６１２と隣接する領域６１６ａ〜６１６ｃとを識別することによって、開かれた３Ｄ角部６１４を識別できる。ロボットシステム１００は、スキャンされた領域層の隣り合う水平方向位置のセットが互いから閾値連続範囲内にある深度値を有する場合に、第１の領域６１２を識別できる。ロボットシステム１００は、第１の領域６１２の深度値から閾値連続範囲の外にある深度値を有する他の水平方向位置として、隣接する領域６１６ａ〜６１６ｃを識別できる。ある実施形態においては、ロボットシステム１００は、深度値が変化して閾値連続範囲の外になる場合、および／または、深度値変化の位置が形状テンプレート（例えば、物体間の直線および／または最小の分離幅）に一致する場合に、第１の領域６１２の辺、および／または、隣接する領域６１６ａ〜６１６ｃの始まりを識別できる。より具体的には、隣接する領域６１６ａ〜６１６ｃは、対象スタック２１０の表面（すなわち、第１の領域６１２）の深度値より第１の画像センサ２１２から離れた距離を表す深度値を有し得る。第１の領域６１２と隣接する領域６１６ａおよび６１６ｃとの間に結果として生じる辺は、露出した辺と対応し得る。ある実施形態においては、開かれた３Ｄ角部６１４を識別することは、第１の領域６１２がある象限を形成し、隣接する領域６１６ａ〜６１６ｃが、物体のスタックの外側の位置等の残りの象限および／または空の空間に対応することを検証することを含んでよい。空の空間は、点群ノイズとして考慮されてよい非常に疎な点群を有して検出された空間を示してよい。
【００５４】
他の３Ｄ角部が、３Ｄ点群を用いて決定されてよい。ある実施形態においては、露出した外側角部は、輪郭形状であってよく、「Ｌ」形状の角部は、有効な角部を含まない場合がある。したがって、ロボットシステム１００は、要件の１つ（例えば、最小の連続直線長さ）を満たす辺のセグメントを、このような辺のセグメントを所定の長さによって延ばすことに基づいて、識別できる。延ばされた辺のセグメントが、他のセグメントまたは延ばされたセグメントと、ある角度で交差する場合に、ロボットシステム１００は、輪郭形状上の点（例えば、交差している辺のセグメント間にある弧の中点）を露出した外側角部として識別できる。
【００５５】
ある実施形態においては、３Ｄ角部は、ランク付けされてよい。例えば、（例えば、スタックの上層の角部にある物体の）空の空間に囲まれた３Ｄ角部は、他の物体より高くランク付けされてよい。開かれた３Ｄ角部６１４は、第１の領域６１２のサイズ、第１の領域６１２の形状に対する開かれた３Ｄ角部６１４の位置、囲んでいる領域間の（例えば、第１の領域６１２と隣接する領域６１６ａおよび６１６ｃとの間の）深度値の差、および／または、第１の領域６１６ａの深度値から閾値連続範囲内の深度値を有する他の領域（例えば、他の表面／物体）と第１の領域６１２との間の水平方向の距離等、他の要因に基づいて、ランク付けされてよい。
【００５６】
ある実施形態においては、ロボットシステム１００は、不完全な辺を識別してよい。不完全な辺は、実際の辺であることも実際の辺でないこともある２Ｄおよび／または３Ｄ分析で識別された辺であってよい。不完全な辺の一部は、他の物体のノイズの存在および／または、撮像装置（例えば、カメラ）の能力／位置のために識別されない場合がある箱の実際の辺／箱と箱の間の隙間に対応してよい。不完全な辺は、表面の絵もしくはマーク、または、一緒にテープで止められた箱のフラップ間の仕切り／継ぎ目等、２Ｄ画像分析から検出された物体表面上の視覚的パターンまたはマークであってもよい。逆に、パターンの無い箱は、不完全な辺として識別できる２Ｄの線を１つも有さない場合がある。ロボットシステム１００は、ノイズ分散を超えるが、辺識別のための規則／閾値を完全には満たさないセンサ出力の位置の不完全な辺を識別できる。ある実施形態においては、ロボットシステム１００は、３Ｄセンサ出力を用いて、露出した外側の辺（例えば、第１の領域６１２の周囲の辺）を識別でき、２Ｄセンサ出力を用いて、不完全な辺を識別できる。また、ロボットシステム１００は、角度閾値範囲内にある角度で他の辺と交差しない２Ｄまたは３Ｄの辺として、不完全な辺を識別してよい。不完全な辺に関する詳細を以下に詳しく記載する。
【００５７】
最初のＭＶＲの生成
図７は、本技術のある実施形態による、パレタイズされたパッケージのセットの上面図を示す。図７は、上面図（例えば、図２の対象スタック２１０の３Ｄおよび／または２Ｄセンサ画像）に関連する最初のＭＶＲ７１０をさらに示す。最初のＭＶＲ７１０は、ＭＶＲの境界および／または対応する物体の辺の最初の推定を表してよい。換言すると、最初のＭＶＲ７１０は、１つの認識されていない物体の表面の最初の推定を表し得る。ロボットシステム１００は、開かれた３Ｄ角部および／または露出した辺を使用して、最初のＭＶＲ７１０を導出できる。最初のＭＶＲ７１０を導出することは、点群から識別された層のそれぞれを検査して、物体、辺、角部等を識別することを含んでよい。例えば、ロボットシステム１００は、互いから閾値連続範囲内の深度値を有する点群データ（例えば、３Ｄセンサ出力）の領域（例えば、図６の第１の領域６１２）として、最初のＭＶＲ７１０を導出できる。換言すると、ロボットシステム１００は、連続した表面に対応する十分に一致したまたは線形にパターン化された深度値を有する水平方向の隣り合う位置のグループとして最初のＭＶＲを導出できる。したがって、ロボットシステム１００は、露出した外側角部５１４（例えば、第１の角部７１４ａおよび／または第２の角部７１４ｂ）と対応する露出した辺とによって少なくとも部分的に区切られるエリアとして最初のＭＶＲを導出できる。例えば、最初のＭＶＲ７１０は、第１の角部７１４ａから露出した辺７２２および７２６に沿って対向する辺７２４および７２８まで延びてよい。ある実施形態においては、ロボットシステム１００は、開かれた３Ｄ角部（例えば、第１の角部７１４ａ）から開始して、（例えば、開かれた３Ｄ角部から離れる方に）露出した辺をたどることによって、最初のＭＶＲ７１０を導出してよい。最初のＭＶＲ７１０は、たどられた露出した辺が他の露出した辺（例えば、対向する辺７２４および／または７２８等、たどられていない辺に対向する辺、および／または、たどられていない辺と平行な辺）と交差または直面するまで、延ばされてよい。
【００５８】
ある場合には、最初のＭＶＲ７１０は、様々な理由（例えば、物体間の空間、センサ粒度等）のために、複数の物体の表面に対応してよい。したがって、ロボットシステム１００は、導出された最初のＭＶＲ７１０の１つまたは複数の寸法を検証してよい。ロボットシステム１００は、ＭＶＲ７１０の１つまたは複数の寸法が最小候補サイズより大きく、最大候補サイズより小さいことを検証できる。閾値寸法は、ロボットシステム１００にとって受信可能な／予測された物体の最小および／または最大の寸法を表してよい。また、閾値寸法は、把持／接触エリアの最小サイズを表すため等、図２のエンドエフェクタ２０４の水平方向の取付面積を表してよい。
【００５９】
最初のＭＶＲ７１０の１つまたは複数の寸法が、（例えば、最大寸法を超えることによって、または、最小寸法未満になることによって）、閾値外になると、ロボットシステム１００は、不完全な辺７１２（例えば、１つまたは複数の端部の他の辺に一致しない、または、交差しない２Ｄ／３Ｄの辺）にしたがって、最初のＭＶＲ７１０（例えば、最上層）をさらにセグメント化すること等によって、最初のＭＶＲ７１０を調整できる。換言すると、ロボットシステム１００は、不完全な辺７１２にしたがって最初のＭＶＲを調整／縮小でき、対応する結果をテストできる。ある実施形態においては、ロボットシステム１００は、１つまたは複数の端部の露出した辺と交差しない２Ｄの辺および／または３Ｄの辺として不完全な辺７１２を決定できる。また、ロボットシステム１００は、露出した辺の１つと平行な２Ｄおよび／または３Ｄの辺として、不完全な辺７１２を決定できる。ある実施形態においては、ロボットシステム１００は、不完全な辺７１２に関連付けられた信頼値を計算できる。信頼値は、不完全な辺７１２が表面の辺および／または隣り合う物体間の分離に対応する可能性を表してよい。例として、ロボットシステム１００は、不完全な辺７１２の全長、不完全な辺７１２の形状、および／または、不完全な辺７１２と不完全な辺７１２を囲む部分との間の（例えば、深度、色、明るさ等の）差に基づいて、信頼値を計算できる。
【００６０】
以下に詳細に記載するように、ロボットシステム１００は、不完全な辺７１２にしたがって、または、不完全な辺７１２まで最初のＭＶＲ７１０を縮小することに基づいて、検証されたＭＶＲ７２０を導出してよい。換言すると、ロボットシステム１００は、対向する平行な辺７２４および／または７２８の代わりに、不完全な辺７１２の１つまたは複数によって区切られた最初のＭＶＲ７１０内のエリアとして、縮小された候補ＭＶＲを識別できる。ロボットシステム１００は、不完全な辺７１２に到達するまで、対応する露出した辺（例えば、それぞれ、対応する露出した辺７２２、７２６）の方に対向する平行な辺（例えば、図４Ｂの推定された辺４２４等、２Ｄおよび／または３Ｄの辺であってよい対向する平行な辺７２４、７２８）をたどることによって、最初のＭＶＲ７１０を縮小することができる。換言すると、ロボットシステム１００は、最初のＭＶＲ７１０に関連付けられた第２の角部７１４ｂを識別し、次に、他の辺（例えば、不完全な辺７１２等、交差するおよび／または平行な辺）を検索しながら、関連付けられた辺（例えば、対向する平行な辺７２４および／または７２８）に沿って第２の角部７１４から離れるように移動することができる。ロボットシステム１００は、上記のように、識別された辺の向きをテストできる。例えば、ロボットシステム１００は、横断された辺と識別された辺との間の角度が、閾値角度範囲（例えば、８０度から１００度、および／または、直角に対応する他の範囲）内にある場合に、識別された辺を検証してよい。また、ロボットシステム１００は、識別された、横断されていない露出した辺に沿った対応する点の複数のセット間の距離のセットが互いから閾値範囲内にある場合等に、識別された辺が対応する露出した辺に平行であることを検証してよい。これは、反復的または増分的に行われてよい。ＭＶＲをそれ以上縮小できない場合、ロボットシステム１００は、結果として生じるエリアを検証されたＭＶＲ領域７２０と結論付けてよい。
【００６１】
ロボットシステム１００は、上記のように縮小された寸法を閾値と比較することに基づいて、縮小された候補ＭＶＲを検証できる。例えば、ロボットシステム１００は、不完全な辺７１２によって画定された縮小されたエリアが、最小／最大閾値を満たす場合に、縮小された候補ＭＶＲを検証されたＭＶＲ７２０として導出できる。また、ロボットシステム１００は、不完全な辺７１２が所定の閾値を超える信頼値に対応する場合に、縮小された候補ＭＶＲを検証できる。さらに、ロボットシステム１００は、１つまたは複数の方向に閾値距離だけ不完全な辺７１２を延ばすことができる。例えば、ロボットシステム１００は、延ばされた不完全な辺が、他の辺と交差して、閾値角度範囲を満たす角度を形成する場合に、縮小された候補ＭＶＲを検証してよい。
【００６２】
最初のＭＶＲ７１０を拡大する例として、図８は、本技術のある実施形態による、マージされたＭＶＲ領域の例を示す。ある場合には、複数の隣り合う表面は、基本的に同じ高さを有してよく、表面と表面の間に辺／水平方向の分離を有してよい。説明のための例として、点群で表された物体は、１片のテープで接続された２つの分離された長方形のフラップ／セグメントを有する箱の上面であってよい。上記１つまたは複数の制限のために、ロボットシステム１００は、１つのフラップを含み、フラップ／セグメント間のテープまたは分離に対応する辺まで延びるように、最初のＭＶＲ７１０を導出してよい。このような例に関して、ロボットシステム１００は、検証されたＭＶＲ８２０の導出時に、追加の領域を導出し、その領域を最初のＭＶＲ７１０とマージ／テストできる。
【００６３】
図８に示すように、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂは、最初のＭＶＲ７１０に基づいて、決定されてよい。追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂは、最初のＭＶＲ７１０に相関する領域を含んでよい。例えば、ロボットシステム１００は、２Ｄおよび／または３Ｄ画像の部分を分析することに基づいて、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂを決定できる。ロボットシステム１００は、一致する視覚的特性（例えば、色、明るさ、および／または、画像パターン）、および／または、最初のＭＶＲ７１０に対して閾値連続範囲内にある一致する深度値を有する位置として、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂを決定できる。ロボットシステム１００は、最初のＭＶＲ７１０と関連付けられていると決定された画像の部分として、候補エリアを導出できる。
【００６４】
説明のための例として、ロボットシステム１００は、露出した外側角部７１４ａから離れる方に第１の露出した辺７２２および第２の露出した辺７２６（例えば、３Ｄ画像データに描かれた辺）をたどることに基づいて、ＭＶＲ（例えば、最初のＭＶＲおよび拡大されたＭＶＲ）を処理できる。ロボットシステム１００は、第１の最初の対向する辺８２２と第２の最初の対向する辺８２６とを含む対向する辺の最初のセットを識別できる。ロボットシステム１００は、第１の露出した辺７２２が第１の最初の対向する辺８２２に平行な場合、および／または、第２の露出した辺７２６が第２の対向する辺８２６に平行な場合に、対向する辺の最初のセットを検証できる。ロボットシステム１００は、検証された対向する辺を使用して、最初のＭＶＲ７１０を導出できる。
【００６５】
ロボットシステム１００は、（例えば、露出した外側角部７１４ａから離れる方に）対向する辺の最初のセットを超えて第１の露出した辺７２２および第２の露出した辺７２６をたどることに基づいて、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂをさらに決定できる。ロボットシステム１００は、たどられた辺（例えば、第１の露出した辺７２２および／または第２の露出した辺７２６）と交差する、または、たどられた辺から閾値分離距離内にある１つまたは複数のさらなる対向する辺（例えば、第１の辺８３２および／または第２の辺８３６）を識別できる。ロボットシステム１００は、第１の辺８３２が第１の露出した辺７２２および／または第１の最初の対向する辺８２２に平行な場合、および／または、第２の辺８３６が、第２の露出した辺７２６および／または第２の最初の対向する辺８２６に平行な場合等に、さらなる対向する辺を上記と同様に検証できる。
【００６６】
１つまたは複数のさらなる対向する辺が検証されると、ロボットシステム１００は、追加の妥当なＭＶＲ領域を識別できる。例えば、ロボットシステム１００は、第１の最初の対向する辺８２２と、さらなる対向する辺の第１（例えば、第１の辺８３２）との間のエリアとして、第１の追加の妥当なＭＶＲ領域８１２ａを識別できる。また、ロボットシステム１００は、第２の最初の対向する辺８２６と、さらなる対向する辺の第２（例えば、第２の辺８３６）との間のエリアとして、第２の追加の妥当なＭＶＲ領域８１２ｂを識別できる。
【００６７】
ロボットシステム１００は、候補エリア（例えば、最初のＭＶＲ７１０と、第１の追加の妥当なＭＶＲ領域８１２ａおよび／または第２の追加の妥当なＭＶＲ領域８１２ｂとの組み合わせ）を検証／テストすることに基づいて、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂを決定できる。例えば、ロボットシステム１００は、候補エリア（例えば、最初のＭＶＲ７１０に関連付けられていると決定された画像の部分）と最初のＭＶＲ７１０との間の分離距離が所定の閾値未満であることを検証できる。ロボットシステム１００は、候補エリアの１つまたは複数の寸法を上記の最小／最大寸法閾値と比較することによって、候補エリアをさらにテストできる。ロボットシステム１００は、候補エリアが最小閾値（例えば、最小候補サイズの寸法）未満の場合に、候補エリアを追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂとして決定できる。ある実施形態においては、ロボットシステム１００は、サイズ比較、分離距離、および／または、候補エリアと最初のＭＶＲ７１０との間の関連性／類似性を使用して、信頼レベルを計算できる。信頼レベルは、候補エリアが最初のＭＶＲ７１０に対応する部分と同じ物体に対応する可能性を表してよい。ロボットシステム１００は、信頼レベルを所定の閾値と比較して、候補エリアを、追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂとして分類されるべきか、または、（例えば、別の物体に対応する）最初のＭＶＲ７１０の新しいインスタンスとして分類されるべきかを決定できる。
【００６８】
検証されたＭＶＲの生成
ロボットシステム１００は、最初のＭＶＲ７１０と追加の妥当なＭＶＲ８１２ａ〜８１２ｂとを組み合わせることに基づいて、検証されたＭＶＲ８２０を導出できる。したがって、ロボットシステム１００は、最初のＭＶＲ７１０を拡大して、他の近くの領域を含めることによって、候補ＭＶＲを導出できる。したがって、ロボットシステム１００は、登録されていない物体の完全な表面を検証されたＭＶＲ８２０を介して正確に推定する可能性を高めることができる。
【００６９】
ある実施形態においては、ロボットシステム１００は、検証されたＭＶＲ８２０と検証されたＭＶＲ７２０（例えば、最初のＭＶＲ７１０を縮小した結果）との両方を導出できる。１つまたは複数の所定のプロセス／方程式にしたがって、ロボットシステム１００は、上記の処理パラメータの１つまたは複数を用いて、検証したＭＶＲのそれぞれの信頼値を計算できる。ロボットシステム１００は、より大きい信頼値を有する検証したＭＶＲを最終的なＭＶＲとして選択できる。
【００７０】
あるいは、ロボットシステム１００は、より小さい候補エリアおよび／またはより大きい候補エリアのテストが不成功な場合に、最初のＭＶＲ７１０を最終的なＭＶＲとして導出できる。例えば、マージされたＭＶＲが最大候補サイズより大きい場合、マージされたＭＶＲは拒絶されてよく、検証されたＭＶＲ８２０は、追加の妥当なＭＶＲのいずれも有さずに、最初のＭＶＲ７１０を含んでよい。また、図７に記載の縮小されたＭＶＲが、最小候補サイズより小さい場合、検証されたＭＶＲ７１０は、最初のＭＶＲ７１０を含んでよい。ある実施形態においては、ロボットシステム１００は、まず、最初のＭＶＲ７１０を拡大することによって、大きくなったＭＶＲを導出できる。ロボットシステム１００は、次に、上記の拡大されたＭＶＲを反復して縮小して、最終的なＭＶＲを導出できる。ロボットシステム１００は、最終的な検証されたＭＶＲを使用して、上記の登録されていない物体を登録および／または操作できる。
【００７１】
最小実行可能領域（ＭＶＲ）自動登録パイプラインの生成
図９は、本技術のある実施形態による、物体を認識する物体認識プロセス９００のフロー図を示す。プロセスは、図１のロボットシステム１００で利用可能なおよび／または受信された情報に基づいてよい。例えば、ロボットシステム１００は、図２の対象スタック２１０および／またはその中の物体（例えば、登録された物体および／または認識されていない物体）を表す２Ｄおよび／または３Ｄ画像データを（例えば、図２の第１の画像センサ２１２を介して）受信／にアクセスしてよい。ロボットシステム１００は、図１のパッケージ１１２の最小可能寸法（最小候補サイズとも呼ばれる）、パッケージ１１２の最大可能寸法（最大候補サイズとも呼ばれる）、または、それらの組み合わせ等、所定のおよび記憶されたデータにアクセスしてもよい。ロボットシステム１００は、受信可能なまたは予測した物体に関する既知のまたは所定のデータ／記述を含むマスタデータ（物体セットとも呼ばれる）にさらにアクセスおよび利用できる。例えば、物体セットは、物体寸法、表面画像／外見、パターン、色等、様々な物体に関連する特性の記述を含み得る。比較する際に、対象スタック２１０の個々の物体（すなわち、パッケージ１１２等）の寸法を、ロボットシステム１００は、知っていてもいなくてもよい。
【００７２】
物体認識プロセス９００は、記述子ベースの検出プロセス（ブロック９０２）を含んでよい。ある実施形態においては、記述子ベースの検出プロセスは、２Ｄ画像データの視覚分析またはコンピュータビジョン分析を含み得る。視覚分析に基づいて、検出推定が物体セットに基づいて生成されてよい（ブロック９０４）。検出推定は、画像データ（例えば、２Ｄ画像データ）の一部分が、物体セットに表された物体に一致、または対応するという仮説を含み得る。例として、ロボットシステム１００は、物体セットと２Ｄ画像データ間の一致する画像部分／特徴、記述子、および／または、他の外見に関連するデータに基づいて、検出推定を生成できる。
【００７３】
記述子ベースの検出プロセスは、仮説を検証することを含んでよい（ブロック９０６）。換言すると、ロボットシステム１００は、物体セットおよび／または他のセンサデータ（例えば、点群データ等、３Ｄ画像データ）の登録された物体の特性に基づいて等、検出推定を検証できる。ロボットシステム１００は、他の特徴、ローカルな特徴記述子、および／または、３Ｄデプスセンサからの３Ｄ画像データを検査／照合することによって、仮説を検証できる。例えば、ロボットシステム１００は、重要な視覚的特徴（例えば、ロゴ、名前、最大の／最も明るい特徴等）のセットを物体セットと照合することに基づいて、仮説を生成でき、他の残りの視覚的特徴を物体セットと比較することに基づいて、仮説を検証できる。また、ロボットシステム１００は、仮説に対応する表面に対応する２Ｄ画像データ（すなわち、その境界／辺）の位置を識別することに基づいて、仮説を検証できる。例えば、ロボットシステム１００は、２Ｄ画像データの識別された部分に対応する関連する２Ｄの辺の特性（例えば、辺の寸法および位置）を計算できる。ロボットシステム１００は、２Ｄ画像データの仮定された部分の２Ｄの辺の位置／長さを３Ｄ画像データ（例えば、点群）に表された辺の位置／長さと比較することに基づいて、仮説を検証できる。ロボットシステム１００は、仮定されたエリアに対応する３Ｄの辺の特性（例えば、長さ）が、物体セットに表された仮定された物体の辺の特性と一致する場合に、仮説を検証できる。換言すると、ロボットシステム１００は、仮定された部分の対応する３Ｄの辺の位置／長さ等の追加の態様が、物体セットに表された物体の追加の態様と一致する場合に、２Ｄ画像データの仮定された部分が、物体セットに表された物体に一致すると検証できる。
【００７４】
物体登録プロセス９００は、点群検出（ブロック９０８）を含み得る。ある実施形態においては、点群検出プロセスは、３Ｄデプスセンサからの３Ｄ画像データの３Ｄ分析を含み得る。点群検出は、点群データを分けて辺および／または個々の層の特徴を識別することを含んでよい（ブロック９１０）。例えば、ロボットシステム１００は、深度測定値にしたがって、点群データを分けることができる。上記のように、ロボットシステム１００は、互いから閾値範囲内の深度測定値を有する隣り合う位置のグループを識別できる。したがって、ロボットシステム１００は、対象スタック２１０の層および／または表面に対応するグループを識別できる。ある実施形態においては、ロボットシステム１００は、辺／境界、表面の向き、および／または、不連続性を３Ｄ画像データから識別できる。ロボットシステム１００は、識別された辺／境界、表面の向き、および／または、不連続性を使用して、辺によって区切られ、同じ表面の向きを有し、および／または、不連続の対向する側にある層を識別できる。追加的に、または、代替的に、ロボットシステム１００は、２Ｄ画像データで識別された辺を使用して、辺を識別、および／または、３Ｄの辺を認証できる。
【００７５】
検出推定は、測定された寸法に基づいて生成されてよい（ブロック９１２）。検出推定は、３Ｄ画像データの一部分が物体セットに表された物体に一致、または、属するという仮説を含み得る。例えば、ロボットシステム１００は、個々の層それぞれの測定された寸法に基づいて、検出推定を生成できる。ロボットシステム１００は、層／表面の識別された辺／境界が物体セットに表された１つまたは複数の物体の周囲の辺に対応すると仮定できる。例えば、ロボットシステム１００は、上記のように辺の長さを測定または計算する。ロボットシステム１００は、物体セットの既知の／登録された物体に対応するまたは一致する画像の部分および／または対象スタック２１０の対応する領域を含む検出推定を生成できる。
【００７６】
ロボットシステム１００は、検出推定を検証してよい（ブロック９１４）。ロボットシステム１００は、仮定されたエリアの他の特性を物体セットの登録された物体の他の特性と比較することによって、仮説を検証できる。例えば、層を形成する辺の測定された寸法が、登録された物体の１つの対応する寸法に一致する場合に、ロボットシステム１００は、比較された辺によって区切られた物体が、一致する登録された物体である可能性が高いことを検証できる。代替的に、または、追加的に、ロボットシステム１００は、３Ｄ画像データの仮定された部分に対応する２Ｄ画像データの部分を分析することに基づいて、仮説を検証できる。例えば、ロボットシステム１００は、長さ比較のために使用された識別された３Ｄの辺の点の座標／位置を決定できる。ロボットシステム１００は、対象スタック２１０の２Ｄ画像データ内の対応する位置／部分を識別できる。ロボットシステム１００は、２Ｄ画像データの識別された部分を物体セットに記憶された（表面画像を含み得る）表面の対応する表現と比較することによって、仮説を検証できる。２Ｄ画像の識別された部分の２Ｄの特性（例えば、明るさ、色のパターン等の外見）が、仮定された登録された物体の表面の表現に一致する場合に、ロボットシステム１００は、仮説を検証でき、対応する物体が対象スタック２１０の位置に存在することを検出できる。したがって、ロボットシステム１００は、対象スタック２１０の既知の物体（例えば、図３Ｂの認識された物体３１２）を識別できる。
【００７７】
物体認識プロセス９００は、空でない物体セットを用いて開始されてよい。ある実施形態においては、物体認識プロセス９００は、上記図９に関して記載したように、記述子ベースの検出および／または点群ベースの検出のいずれかを用いて開始してよい。代替的に、または、追加的に、物体認識プロセス９００は、他の検出方法も異なる検出方法をマージすることもなく、記述子ベースの検出または点群検出を実施してよい。
【００７８】
図１０は、本技術のある実施形態による、図１のロボットシステム１００を動作させる方法１０００のブロック図である。ロボットシステム１００は、方法１０００を実施して、図２の第１の画像センサ２１２によって生成されたおよび／または画像センサ２１２から受信した２Ｄ／３Ｄ画像データを処理できる。例えば、ロボットシステム１００は、メモリデバイスに記憶されたプロセッサ命令を１つまたは複数のプロセッサを用いて実行することによって、方法１０００を実施できる。したがって、１つまたは複数のプロセッサは、本明細書に記載のプロセス（複数可）を実施できる。１つまたは複数のプロセッサは、データを受信、データを分析、結果／コマンド／設定を生成、および／または、コマンド／設定を通信して、１つまたは複数のロボットユニットを動作させることができる。
【００７９】
方法１０００は、図２の対象スタック２１０の既知の／登録された物体（例えば、図３Ｂの認識された物体３１２）を認識することを含み得る。方法１０００によると、ロボットシステム１００は、画像データの未解明の領域に対応する図３Ｂの認識されていない物体３１４をさらに処理、登録できる。したがって、方法１０００は、図９の物体認識プロセス９００を含み得る。
【００８０】
ロボットシステム１００は、物体認識プロセス９００の後、１つまたは複数の未解明の領域が画像データに残っていることを識別できる（ブロック１００２）。ロボットシステム１００は、物体セット（例えば、マスタデータ内の登録データ）に表された物体との一致を返信（または、対応）しない（例えば、パレット、カート、コンテナ等の水平方向の境界内の）図１のスタート位置１１２の画像データの任意の部分として、未解明の領域を識別できる。ロボットシステム１００は、未解明の領域（複数可）が図３Ｂの１つまたは複数の認識されていない物体３１４に対応すると判断できる。
【００８１】
ロボットシステム１００は、未解明の領域（複数可）をテストできる（ブロック１００４）。ロボットシステム１００は、未解明の領域を、その形状および／またはその寸法にしたがってテストできる。したがって、ロボットシステム１００は、画像データ（例えば、２Ｄ視覚画像および／または３Ｄ点群）の辺を識別できる（ブロック１０２０）。例えば、ロボットシステム１００は、互いから閾値範囲内にある深度測定値を有する隣り合う位置を識別することに基づいて、画像データ（例えば、２Ｄ画像および／または３Ｄ点群）の未解明の領域（複数可）の層／表面を識別できる。ロボットシステム１００は、深度測定値が水平方向の隣り合う位置にわたって閾値範囲の外に逸脱する識別した層の境界として、露出した辺を識別できる。また、ロボットシステム１００は、明るさ、色等の変化にしたがって２Ｄ画像を分析することに基づいて、辺を識別できる。ある実施形態においては、ロボットシステム１００は、ソーベルフィルタを使用して、辺を識別できる。
【００８２】
ロボットシステム１００は、未解明の領域（複数可）の識別された辺を所定の形状テンプレートおよび／または長さと比較することによって、未解明の領域をテストできる。例えば、ロボットシステム１００は、（すなわち、接続された辺のセットによって画定された）未解明の領域の形状を予測された物体を表す形状テンプレート（例えば、箱、および／または、円筒形状）と比較できる。ロボットシステム１００は、未解明の領域の形状をテストするために、形状テンプレートの寸法を調整してよい。追加的に、または、代替的に、ロボットシステム１００は、識別された辺（例えば、２Ｄおよび／または３Ｄ画像データに示された辺）の長さを計算し、その長さを所定の最小／最大閾値と比較できる。
【００８３】
形状および／または長さが、所定の閾値／条件を満たす場合に、ロボットシステム１００は、上記のようにＭＶＲ分析を用いて物体検出を行ってよく、ＭＶＲを生成してよい（ブロック１００６）。ロボットシステム１００は、識別された辺／角部を用いて、最初のＭＶＲを導出してよい（ブロック１０２２）。例えば、ロボットシステム１００は、開かれた角部の１つを選択でき、対応する開かれた辺をたどって、他の適格な２Ｄ／３Ｄの辺（例えば、図４Ｂの推定された辺４２４、および／または、図７の対向する平行な辺７２４、７２８）を見つけることができる。ロボットシステム１００は、開かれた辺と他の適格な辺とが所定の条件／閾値（例えば、最小／最大サイズ要件）を満たす場合に、最初のＭＶＲを導出できる。
【００８４】
ある実施形態においては、ロボットシステム１００は、最初のＭＶＲを拡大すること（ブロック１０２４）によって、および／または、最初のＭＶＲを縮小すること（ブロック１０２６）によって等、最初のＭＶＲをさらに処理できる。ロボットシステム１００は、上記のように図８の追加の妥当なＭＶＲ領域８１２ａ〜８１２ｂを決定することに基づいて、最初のＭＶＲを拡大できる。ロボットシステム１００は、異なる角部（例えば、最初に選択した角部と対角線上に向かい合う角部）から開始して辺を見つけることに基づいて、ＭＶＲ（例えば、最初のＭＶＲおよび／または拡大されたＭＶＲ）を縮小できる。例えば、ロボットシステム１００は、ＭＶＲを縮小するために他の辺（例えば、図７の不完全な辺７１２、および／または、他の２Ｄ／３Ｄの辺）を考慮できる。
【００８５】
ロボットシステム１００は、調整されたおよび／または最初のＭＶＲを検証できる（ブロック１０２８）。ロボットシステム１００は、妥当なＭＶＲ領域および／または組み合わせが、所定の条件／閾値（例えば、対応する最小／最大サイズ要件）を満たす場合に、図８の検証されたＭＶＲ８２０を、最初のＭＶＲと妥当なＭＶＲ領域との組み合わせとして導出できる。ロボットシステム１００は、考慮された辺（複数可）によって区切られたエリアが、所定の条件／閾値（例えば、対応する最小／最大サイズ要件）を満たす場合に、図７の検証されたＭＶＲ７２０を導出できる。考慮された辺が、所定の条件／閾値を満たさない場合に、ロボットシステム１００は、最後の有効な結果に基づいて、検証されたＭＶＲを導出できる。例えば、ロボットシステム１００は、拡大された結果および縮小された結果がテスト条件に合わない場合に、最初のＭＶＲを検証されたＭＶＲとして設定できる。また、ロボットシステム１００は、その後の縮小がテスト条件に合わない場合に、検証されたＭＶＲ８２０を生成できる。ある実施形態においては、ロボットシステム１００は、ＭＶＲを最初に縮小し、その後、拡大できる。したがって、ロボットシステム１００は、その後の拡大がテスト条件に合わない場合に、検証されたＭＶＲ７２０を生成できる。
【００８６】
検証されたＭＶＲは、それぞれ、未解明の領域の認識されていない物体３１４の１つの表面の推定（例えば、上面）を表すことができる。換言すると、検証されたＭＶＲは、それぞれ、未解明の領域内の１つの物体を表す推定された検出を表すことができる。
【００８７】
ロボットシステム１００は、ＭＶＲをさらに分析して、ＭＶＲが確かか不確かかを決定できる（ブロック１００８）。例えば、ロボットシステム１００は、ＭＶＲに含まれる、および／または、ＭＶＲの導出に利用される開かれた角部（例えば、３Ｄ角部）の数を決定し、それにしたがって、ＭＶＲを分類できる。ロボットシステム１００は、関連付けられた開かれた角部の数を所定の閾値と比較することに基づいて、ＭＶＲを分類できる／の分類を決定できる。説明のための例として、ロボットシステム１００は、２つ以下の開かれた３Ｄ角部を含む、または、２つ以下の開かれた３Ｄ角部を用いて導出される最初のおよび／または検証されたＭＶＲを、不確かなＭＶＲと決定できる。また、ロボットシステム１００は、３つ以上の開かれた３Ｄ角部を含む、または、３つ以上の開かれた３Ｄ角部用いて導出される最初のおよび／または検証されたＭＶＲを、確かなＭＶＲと決定できる。
【００８８】
ある実施形態においては、ロボットシステム１００は、（例えば、ブロック１０２４〜１０２８の前に）最初のＭＶＲの確実性を判断できる。最初のＭＶＲが確かなＭＶＲである場合に、ロボットシステム１００は、ブロック１０２４〜１０２８の上記動作を迂回してよい。ロボットシステム１００は、最初のＭＶＲが不確かなＭＶＲである場合に、ブロック１０２４〜１０２８の上記プロセスを実施してよい。他の実施形態においては、ロボットシステム１００は、処理されたＭＶＲを拡大、縮小、および／または、検証した後、検証されたＭＶＲの確実性を判断できる。
【００８９】
ロボットシステム１００は、ＭＶＲが確かな場合に、物体セットを更新できる（ブロック１０３０）。ある実施形態においては、ロボットシステムは、ＭＶＲの分類にしたがって、ＭＶＲで物体セットを更新できる。例えば、確かなＭＶＲを用いて、ロボットシステム１００は、確かなＭＶＲが、それぞれ、１つの検出された物体（例えば、認識されていない物体３１４の１つのインスタンス）に対応することを決定する／結論付けること等によって、物体を検出してよい。したがって、ロボットシステム１００は、確かなＭＶＲ（例えば、視覚的画像、および／または、対応する寸法）を物体セットに記憶する等によって、（例えば、ＭＶＲをさらに調整、テスト、および／または、検証することなく）確かなＭＶＲを検出および／または直接、登録できる。更新された物体セット（すなわち、確かなＭＶＲで更新された物体セット）を用いて、ロボットシステム１００は、フィードバックループによって表されるように、物体認識プロセス９００を再度、実施してよい。
【００９０】
ＭＶＲが不確かな場合に、ロボットシステム１００は、検証されたＭＶＲにしたがってタスクを行ってよい（ブロック１０１０）。ロボットシステム１００は、検証されたＭＶＲを使用して、図４Ｂの把持位置４２０を導出できる。例えば、ロボットシステム１００は、検証されたＭＶＲの露出した角部と整列したまたは当接した把持位置４２０を導出できる。また、ロボットシステム１００は、検証されたＭＶＲの中間部分に重なる把持位置４２０を導出できる。把持位置４２０に基づいて、ロボットシステム１００は、図２のロボットアーム２０２および／または図２のエンドエフェクタ２０４を動作させて、物体を把持、移動するコマンド、設定、および／または、動作計画を導出できる。タスクに関しては、ロボットシステム１００は、図１のタスク位置１１６に物体を移動できる。また、ロボットシステム１００は、移動中、物体を１つまたは複数のセンサに提示する、および／または、１つまたは複数の線／平面に対して物体を配置する等、１つまたは複数の特定の位置に物体をさらに配置できる。
【００９１】
ロボットシステム１００は、物体の移動中、物体に関する追加データを取得してよい（ブロック１０３２）。例えば、ロボットシステム１００は、物体を把持し、最初の移動を行う（例えば、所定の距離だけ上昇させる、および／または、水平方向に移動させる）ことができる。ロボットシステム１００は、最初の移動後、（例えば、第１の画像センサ２１２を介して）１つまたは複数の更新された２Ｄ／３Ｄ画像データを生成できる。把持した物体と周りの物体との間の分離が増加することに基づいて、ロボットシステム１００は、更新された２Ｄ／３Ｄ画像データを分析して、辺、ＭＶＲ、および／または、物体寸法を再導出できる。また、ロボットシステム１００は、１つまたは複数の交差センサ（図示せず）にしたがって、物体の高さを計算できる。ロボットシステム１００は、移動される物体の底部が、交差センサ（例えば、光信号の中断を検出するように構成されたセンサ）に関連付けられた横方向に向いた検出線／平面に入る／を出る時、エンドエフェクタ２０４の高さを決定できる。ロボットシステム１００は、エンドエフェクタの高さと、検出線／平面の既知の高さとに基づいて、高さを計算できる。また、ロボットシステム１００は、移動中の物体の周囲の画像、識別子の値／位置、重量、および／または、他の物理的記述を取得できる。
【００９２】
ロボットシステム１００は、移動された認識されていない物体を登録できる（ブロック１０３４）。ロボットシステム１００は、追加データおよび／または検証されたＭＶＲを、上記のように物体セットに記憶することに基づいて、物体を登録できる。ロボットシステム１００は、物体認識プロセス９００へのフィードバックループによって示されるように、更新された物体セットを用いて、他の物体をさらに認識できる。
【００９３】
ブロック１０１０に対応するプロセスを実施する時、ロボットシステム１００は、（例えば、物体認識プロセス９００から生じる）検出された物体、および／または、新しく登録された検出された物体（例えば、確かなＭＶＲ）と共に、不確かなＭＶＲを計画モジュール（図示せず）に返信してよい。計画モジュールは、認識された物体、検出された物体（例えば、確かなＭＶＲに対応する認識されていない物体）、および／または、他の認識されていない物体を操作／移動する動作計画を導出できる。ロボットシステム１００は、認識されていない物体の移動中、追加情報（例えば、物体高さ、識別子データ、プロファイル画像等）をさらに取得でき、取得された追加情報を使用して、物体セットの登録データを更新できる。ロボットシステム１００は、取得された追加情報を使用して、認識されていない物体を登録でき、および／または、最終的な検証されたＭＶＲを導出できる。
【００９４】
ある実施形態においては、ロボットシステム１００は、未解明の領域を処理し、その領域の全ての最初の／検証されたＭＶＲを生成できる。方法１０００の反復した実施にしたがって、ロボットシステム１００は、未解明の領域を物体セットと比較して、最初に、生成されたＭＶＲのうち、確かなＭＶＲを決定、登録できる。更新された物体セット（例えば、確かなＭＶＲ）を用いて、ロボットシステム１００は、物体認識プロセス９００を再度、実施して、確かなＭＶＲに対応する未解明の領域の物体を検出できる。ロボットシステム１００は、未解明の領域内の物体セットの更新に使用される確かなＭＶＲに一致する領域を識別することによって、未解明の領域を更新し、それによって、対応する物体を検出できる。ロボットシステム１００は、確かなＭＶＲに対応／一致する部分を未解明の領域から取り除くことによって、未解明の領域を更新することを終えてよい。ロボットシステム１００は、結果として生じる未解明の領域が確かなＭＶＲを含まなくなるまで、この反復プロセスを繰り返すことができる。不確かなＭＶＲに関して、ロボットシステム１００は、対応する検証されたＭＶＲを未解明の領域から導出／使用して、その領域内の認識されていない物体を操作できる。ロボットシステム１００は、上記のように、認識されていない物体を操作しながら、追加情報をさらに取得してよい。ロボットシステム１００は、検証されたＭＶＲおよび／または追加情報で物体セットを更新してよく、物体認識プロセス９００を続けて、移動された物体に一致する他の物体を認識し、反復プロセスを繰り返してよい。ロボットシステム１００は、未解明の領域内の移動された物体の検証されたＭＶＲに一致する領域を識別することによって、未解明の領域を更新し、それによって、対応する物体を検出できる。ロボットシステム１００は、移動された物体の検証されたＭＶＲに一致する部分を未解明の領域から取り除くことによって、未解明の領域を更新することを終えてよい。ロボットシステム１００は、更新された未解明の領域を処理して、認識されていない物体の次の種類／インスタンスに対応する次のＭＶＲを導出、検証できる。
【００９５】
追加的に、または、代替的に、ロボットシステム１００は、認識された物体を決定し、全てのＭＶＲを導出し、次に、物体の移動を計画してよい。他の実施形態においては、ロボットシステム１００は、認識された物体、および／または、確かなＭＶＲに対応する物体を最初に移動させることに基づいて、ＭＶＲを導出または更新できる。したがって、ロボットシステム１００は、認識されていない物体の追加の３Ｄの辺／角部を露出させる可能性を増加させ得る。追加の３Ｄの辺／角部を露出させる可能性の増加は、確かなＭＶＲを識別する可能性を増加させることができ、これは、物体と導出したＭＶＲとを検出する精度を向上させることができる。さらに、精度の向上は、処理ステップを減らす／除くことによって、および／または、不正確な物体検出による物体の損失および／または衝突を低減することによって、効率を向上させることができる。
【００９６】
ロボットシステム１００は、本明細書に記載した実施形態を使用して、自律的に物体セットをポピュレートできる。換言すると、ロボットシステム１００は、登録データを含まない物体セットの空のセットから開始できる。このような条件の下では、ロボットシステム１００は、ブロック１００２で開始する方法１０００を実施し、受信した画像データ全体を未解明の領域として識別できる。登録データが存在しないので、ロボットシステム１００は、物体が処理される（例えば、開始位置１１４からタスク位置１１６に移動される）と、人間オペレータの入力が殆どまたは全く無く、物体を登録できる。したがって、ロボットシステム１００は、物体認識プロセス９００を実施することなく、ＭＶＲの導出を開始でき、導出されたＭＶＲのサブセット（例えば、確かなＭＶＲ）を物体セットに記憶できる。ロボットシステム１００は、上記のように方法１０００を反復して実施して、物体を登録できる。例えば、ロボットシステム１００は、未解明の領域内の対応する部分を物体セットに記憶された導出されたＭＶＲのサブセットと照合することに基づいて、未解明の領域に表された物体の第１のセットを検出できる。ロボットシステム１００は、物体の第１のセットの検出にしたがって、未解明の領域から一致する部分を取り除くことによって、未解明の領域を更新することができる。ロボットシステム１００は、更新された未解明の領域の他の物体を登録するために、前記更新された未解明の領域を処理して、ＭＶＲの新しい／次のセット（例えば、確かなＭＶＲおよび／または他の検証されたＭＶＲの他のセット）を導出できる。
【００９７】
処理システム例
図１１は、本明細書に記載の少なくとも一部の動作を実施し得る処理システム１１００の例を示すブロック図である。図１１に示すように、処理システム１１００は、１つまたは複数の中央処理ユニット（「プロセッサ」）１１０２、メインメモリ１１０６、不揮発メモリ１１１０、ネットワークアダプタ１１１２（例えば、ネットワークインタフェース）、ビデオディスプレイ１１１８、入力／出力装置１１２０、制御装置１１２２（例えば、キーボードおよびポインティングデバイス）、記憶媒体１１２６を含む駆動ユニット１１２４、および、信号生成装置１１３０を含んでよく、これらは、バス１１１６に通信可能に接続される。バス１１１６は、適切なブリッジ、アダプタ、もしくは、コントローラによって接続された、任意の１つまたは複数の別個の物理的バス、ポイントツーポイント接続、または、両方を表す抽象化されたものとして示される。バス１１１６は、よって、例えば、システムバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、または、ＰＣＩ−エクスプレスバス、ハイパートランスポートまたは業界標準アーキテクチャ（ＩＳＡ）バス、小型コンピュータシステムインタフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、または、「ファイヤワイヤ」とも呼ばれる電気電子技術者協会（ＩＥＥＥ）規格１３９４バスを含み得る。
【００９８】
様々な実施形態において、処理システム１１００は、ユーザデバイスの一部として動作するが、処理システム１１００は、（例えば、有線または無線で）ユーザデバイスに接続されてもよい。ネットワーク配置においては、処理システム１１００は、クライアント−サーバネットワーク環境において、サーバまたはクライアントマシンとして動作してよく、または、ピアツーピア（または、分散）ネットワーク環境において、ピアマシンとして動作してよい。
【００９９】
処理システム１１００は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ、タブレット、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、セルラーフォン、プロセッサ、ウェブ機器、ネットワークルータ、スイッチもしくはブリッジ、コンソール、ハンドヘルドコンソール、ゲーム機、ミュージックプレイヤ、ネットワーク接続された（「スマート」）テレビ、テレビ接続装置、または、処理システム１１００が行うべきアクションを特定する命令のセットを（順次、または、他の方法で）実行できる任意のポータブルデバイスもしくはマシンであってよい。
【０１００】
メインメモリ１１０６、不揮発メモリ１１１０、および、記憶媒体１１２６（「機械可読媒体」とも呼ばれる）は、１つの媒体として示されるが、「機械可読媒体」および「記憶媒体」という用語は、１つまたは複数の命令セット１１２８を記憶する１つの媒体または複数の媒体（例えば、集中型または分散データベース、および／または、関連するキャッシュおよびサーバ）を含むと捉えるべきである。「機械可読媒体」および「記憶媒体」という用語は、コンピュータシステムによる実行のための命令セットを記憶、エンコード、または、伝えることができ、本開示の実施形態の方法論のいずれか１つまたは複数をコンピュータシステムに行わせる任意の媒体を含むと捉えるものとする。
【０１０１】
一般的に、開示の実施形態の実施に実行されるルーチンは、オペレーティングシステムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、モジュール、または、「コンピュータプログラム」と呼ばれる命令のシーケンスとして実施されてよい。コンピュータプログラムは、典型的に、コンピュータの様々なメモリおよび記憶装置に様々な時に設定された１つまたは複数の命令（例えば、命令１１０４、１１０８、１１２８）を含み、命令は、１つまたは複数の処理ユニットまたはプロセッサ１１０２によって読み取られ、実行されると、処理システム１１００に、開示の様々な態様を伴う要素を実行する動作を行わせる。
【０１０２】
さらに、完全に機能するコンピュータおよびコンピュータシステムの文脈で実施形態を記載したが、様々な実施形態が、様々な形態でプログラム製品として分散されてよいこと、また、分散を実際に達成するのに使用される特定の種類のマシンまたはコンピュータ可読媒体に関わらず、開示は等しく適用されることを、当業者は理解されよう。例えば、本明細書に記載の技術は、仮想マシンまたはクラウドコンピューティングサービスを用いて実施されてよい。
【０１０３】
機械可読記憶媒体、機械可読媒体、または、コンピュータ可読（記憶）媒体のさらなる例は、揮発性および不揮発性のメモリデバイス１１１０等の記録可能タイプの媒体、フロッピ―および他のリムーバブルディスク、ハードディスクドライブ、光ディスク（例えば、コンパクトディスクリードオンリメモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、並びに、デジタル通信リンクおよびアナログ通信リンク等の伝送媒体を含むが、これらに限らない。
【０１０４】
ネットワークアダプタ１１１２は、処理システム１１００が、ネットワーク１１１４のデータを処理システム１１００の外部にあるエンティティに、処理システム１１００および外部のエンティティがサポートする任意の既知のおよび／または便利な通信プロトコルを通して、仲介するのを可能にする。ネットワークアダプタ１１１２は、ネットワークアダプタカード、無線ネットワークインタフェースカード、ルータ、アクセスポイント、無線ルータ、スイッチ、マルチレイヤスイッチ、プロトコル変換器、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディアレシーバ、および／または、リピータのうちの１つまたは複数を含み得る。
【０１０５】
ネットワークアダプタ１１１２は、ファイヤウォールを含んでよく、ファイヤウォールは、ある実施形態においては、コンピュータネットワークのデータにアクセス／プロキシする許可を統治および／または管理し、異なるマシン間および／またはアプリケーション間の変化する信用レベルを追跡する。ファイヤウォールは、例えば、これらの様々なエンティティ間でトラフィックフローとリソース共有とを調節するために、マシンとアプリケーション、マシンとマシン、および／または、アプリケーションとアプリケーションの特定のセットの間に所定のアクセス権のセットを行使することができるハードウェアコンポーネントおよび／またはソフトウェアコンポーネントの任意の組み合わせを有する任意の数のモジュールであってよい。ファイヤウォールは、さらに、例えば、個人、マシン、および／または、アプリケーションによる物体にアクセスおよび動作する権利と、許可権が有効な環境とを含む、許可を詳述するアクセス制御リストを管理してよい、および／または、アクセス制御リストへのアクセスを有してよい。
【０１０６】
ある実施形態においては、ロボットシステムを動作させる方法は、１つまたは複数の認識されていない物体を含む対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを受信することと、登録された物体の１つまたは複数の物理的態様を表す物体セットとの比較に基づいて、２Ｄおよび／または３Ｄ画像データの未解明の領域を識別することと、各層が、３Ｄ画像データにおいて、互いから閾値範囲内の深度測定値を有する横方向に隣り合う点のセットを含む、２Ｄ画像データおよび／または前記３Ｄ画像データの前記未解明の領域内の１つまたは複数の層を識別することと、水平方向の隣り合う位置にわたって深度測定値が閾値範囲の外に逸脱する１つまたは複数の層の境界を表す、未解明の領域の露出した辺を識別することと、それぞれ、露出した辺のセット間の接合部に対応する１つまたは複数の露出した角部を、露出した辺に基づいて、識別することと、未解明の領域に表された登録されていない物体の表面の推定を表す最小実行可能領域（ＭＶＲ）を、識別された露出した辺と露出した角部とに基づいて、導出することと、導出されたＭＶＲに関連付けられた露出した角部の数を決定することと、ＭＶＲと露出した角部の数とにしたがって、認識されていない物体を検出することと、認識されていない物体の表現としてＭＶＲおよび／またはＭＶＲの処理結果とを含むように物体セットを更新することに基づいて、認識されていない物体を登録することとを含んでよい。方法は、未解明の領域と更新された物体セットとを比較することと、未解明の領域内の、物体セットの更新に使用されるＭＶＲおよび／またはＭＶＲの処理結果に一致する部分を識別することと、ＭＶＲおよび／またはＭＶＲの処理結果に一致する部分にしたがって物体を検出することと、ＭＶＲおよび／またはＭＶＲの処理結果に一致する部分を取り除くことによって、未解明の領域を更新することとに基づいて、更新された物体セットにしたがって、未解明の領域を反復的に更新および分析することをさらに含んでよい。物体セットは、最初の反復のための空のセットであってよく、未解明の領域は、最初の反復のために、２Ｄ画像データ、３Ｄ画像データ、それらの一部、または、それらに組み合わせを含んでよい。最初の反復に関して、認識されていない物体を登録することは、対象スタックにある認識されていない物体を伴うタスクを実施しながら、物体セットを自律的にポピュレートすることを含んでよい。
【０１０７】
ある実施形態においては、認識されていない物体を検出することは、露出した角部の数が所定の閾値を超える場合に、認識されていない物体を直接、検出することを含んでよく、認識された物体を登録することは、露出した角部が所定の閾値を超える場合に、ＭＶＲを物体セットに直接、記憶することと含んでよい。ある実施形態においては、所定の閾値は２であってよい。
【０１０８】
ある実施形態においては、ロボットシステムは、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに接続され、プロセッサによって実行可能な命令を記憶した少なくとも１つのメモリデバイスとを含んでよく、命令は、スタート位置の１つまたは複数の認識されていない物体を表す１つまたは複数の画像データを受信する命令と、それぞれ、他の表面または物体と水平方向に隣り合わない露出した辺との間の接合部を表す、１つまたは複数の画像データの１つまたは複数の露出した角部を識別することに基づいて、最小実行可能領域（ＭＶＲ）を導出する命令と、ＭＶＲに関連付けられた露出した角部の数に基づいて、スタート位置の前記認識されていない物体のうちの１つの１つまたは複数の物理的属性を表すＭＶＲおよび／またはＭＶＲの処理結果で、以前、登録された物体の１つまたは複数の物理的態様を表す物体セットを更新する命令と、スタート位置の他の物体を更新された物体セットに基づいて認識する命令とである。少なくとも１つのメモリデバイスは、ＭＶＲが露出した角部の３つ以上に関連付けられる場合等、露出した角部の数を所定の閾値と比較することに基づいて、ＭＶＲを確かなＭＶＲと決定する命令、および／または、ＭＶＲを確かなＭＶＲと決定することに基づいて、ＭＶＲをさらに更新も調整もせずに、ＭＶＲおよび／またはＭＶＲの処理結果で直接、物体セットを更新する命令を含んでよい。少なくとも１つのメモリデバイスは、物体セットに表された物体との一致を返信しない画像データの未解明の領域を識別する命令と、確かなＭＶＲが未解明の領域内にあり、ＭＶＲを、該未解明の領域に基づいて導出する命令と、さらなる物体認識および／または操作のために、確かなＭＶＲに一致する未解明の領域の部分を取り除く命令とをさらに含んでよい。１つまたは複数の実施形態において、少なくとも１つのメモリデバイスは、確かなＭＶＲに対応する認識されていない物体をスタート位置から離れるように移動する動作を実施する命令と、認識されていない物体を移動する動作を実施した後、スタート位置のさらなる認識されていない物体を表し、更新された未解明の領域に表される次のＭＶＲを、更新された未解明の領域に基づいて、導出する命令と、第２のＭＶＲおよび／または第２のＭＶＲの処理結果で物体セットを更新する命令とをさらに含んでよい。
【０１０９】
ある実施形態においては、ロボットシステムは、ＭＶＲが露出した角部の２つ以下に関連付けられる場合に、ＭＶＲを不確かなＭＶＲと決定する命令と、不確かなＭＶＲをさらに分析すること、および／または、スタート位置の認識されていない物体の１つまたは複数を操作することに基づいて、ＭＶＲおよび／またはＭＶＲの処理結果で物体セットを更新する命令とを有する少なくとも１つのメモリデバイスを含んでよい。少なくとも１つのメモリデバイスは、画像データを物体セットと比較することに基づいて、１つまたは複数の認識された物体を検出する命令と、物体セットとの一致を返信しない画像データの未解明の領域を識別する命令と、画像データの未解明の領域の１つまたは複数の露出した角部を識別することに基づいて、スタート位置の認識されていない物体のうちの１つの表面の推定を表す、未解明の領域内のＭＶＲを導出する命令とを含んでよい。少なくとも１つのメモリデバイスは、１つまたは複数の認識された物体をスタート位置から離れるように移動する動作を実施する命令と、１つまたは複数の認識された物体を移動させる動作を実施した後、ＭＶＲを更新する命令と、更新されたＭＶＲおよび／またはＭＶＲの処理結果で物体セットを更新する命令とをさらに含んでよい。
【０１１０】
ある実施形態においては、プロセッサ命令を記憶した有形で非一時的なコンピュータ読み取り可能媒体は、プロセッサ命令が、プロセッサによって実行されると、プロセッサに、それぞれ、他の表面または物体と水平方向に隣り合わない露出した辺との間の接合部を表す、受信した画像データの１つまたは複数の露出した角部を識別することに基づいて、１つまたは複数の最小実行可能領域（ＭＶＲ）を導出することによって、スタート位置の登録されたおよび／または認識されていない物体を表す１つまたは複数の受信した画像データを反復して分析することと、対応するＭＶＲに関連付けられた露出した角部の数に基づいて、各ＭＶＲの分類を決定することと、対応する分類にしたがって、それぞれ、スタート位置の認識されていない物体のうちの１つの１つまたは複数の物理的属性を表すＭＶＲおよび／またはＭＶＲの処理結果で、以前、登録された物体の１つまたは複数の物理的態様を表す物体セットを更新することと、、更新された物体セットを用いて、スタート位置の他の物体を認識することと、を含む方法を実施させる。ある実施形態においては、１つまたは複数の受信した画像データは、両方とも、１つの撮像位置からの対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを含み、方法は、２Ｄ画像データを物体セットと比較することに基づいて、検出推定を生成することと、３Ｄ画像データに基づいて、検出推定を検証することとをさらに含んでよい。検出推定を生成することは、２Ｄ画像データの一部分を物体セットに表された物体の表面画像と照合することに基づいて、検出推定を生成することをさらに含んでよく、検出推定を検証することは、検出推定に対応する３Ｄ画像データの部分を識別することと、３Ｄ画像データの識別された部分の３Ｄの辺の長さを計算することと、３Ｄの辺の長さが、物体セットに表された物体の辺の長さと一致する場合に、検出推定を検証することとに基づいて、検出推定を検証することをさらに含んでよい。
【０１１１】
ある実施形態においては、非一時的なコンピュータ読み取り可能媒体は、１つまたは複数の受信した画像データが、両方とも、１つの撮像位置からの対象スタックを表す二次元（２Ｄ）画像データおよび三次元（３Ｄ）画像データを含む、方法を含んでよく、方法は、３Ｄ画像データを物体セットと比較することに基づいて、検出推定を生成することと、２Ｄ画像データに基づいて、検出推定を検証することとをさらに含んでよい。検出推定を生成することは、互いの閾値範囲内に深度測定値を有する水平方向の隣り合う位置のセットを含む、３Ｄ画像データ内の層を識別することと、水平方向の隣り合う位置にわたって、深度測定値が閾値範囲の外に逸脱する位置を表す層の辺を識別することと、辺の長さを計算することと、辺の長さを物体セットに表された物体の寸法と照合することとに基づいて、検出推定を生成することを含んでよく、検出推定を検証することは、検出推定に対応する２Ｄ画像データの部分を識別することと、２Ｄ画像データの識別された部分の２Ｄ特性を識別することと、２Ｄ特性が物体セットに表された登録された物体のうちの１つの画像の対応する特性と一致する場合に、検出推定を検証することとに基づいて、検出推定を検証することを含んでよい。ある実施形態においては、非一時的なコンピュータ読み取り可能媒体は、１つまたは複数の受信した画像データを分析することに基づいて、空のセットから物体セットを反復的に構築することをさらに含む方法を含んでよく、１つまたは複数の受信した画像データの分析は、物体セットが、いずれの物体の登録データも含まない場合に、１つまたは複数の受信した画像データまたはその一部分を、未解明の領域として識別することと、未解明の領域から１つまたは複数のＭＶＲを導出することと、対応する分類にしたがって、１つまたは複数のＭＶＲの少なくともサブセットを物体セットに記憶することと、受信した画像データの一部分を物体セットに記憶された１つまたは複数のＭＶＲと照合することに基づいて、受信した画像データに表された物体の第１のセットを検出することと、一致した部分を取り除くことによって、未解明の領域を更新することと、受信した画像データに表された物体の第２のセットを登録するために、更新された未解明の領域に基づいて、ＭＶＲの新しいセットを導出することとによる。
【０１１２】
上記のように、本明細書で紹介した技術は、例えば、ソフトウェアおよび／またはファームウェアを用いてプログラムされたプログラム可能回路（例えば、１つまたは複数のマイクロプロセッサ）で、全て専用の配線で接続された（すなわち、プログラムできない）回路で、または、このような形態の組み合わせで、実施される。専用回路は、例えば、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理回路（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の形態であってよい。
【０１１３】
上記から、発明の特定の実施形態を説明のために本明細書に記載したが、発明の範囲を逸脱することなく、様々な修正を行ってよいことは理解されよう。したがって、発明は、添付の請求項によって以外は制限されない。
【図１】
0006820634.tif 000002
【図２】
0006820634.tif 000003
【図３Ａ】
0006820634.tif 000004
【図３Ｂ】
0006820634.tif 000005
【図３Ｃ】
0006820634.tif 000006
【図４Ａ】
0006820634.tif 000007
【図４Ｂ】
0006820634.tif 000008
【図５】
0006820634.tif 000009
【図６】
0006820634.tif 000010
【図７】
0006820634.tif 000011
【図８】
0006820634.tif 000012
【図９】
0006820634.tif 000013
【図１０】
0006820634.tif 000014
【図１１】
0006820634.tif 000015