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