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