(57)【特許請求の範囲】
【請求項１】
ロボットシステムを操作するための方法であって、
複数の検出可能な物体を有する環境を表す二次元（２Ｄ）画像及び三次元（３Ｄ）画像を取得することと、
前記２Ｄ画像内に描写された１つ又は複数の視覚的特徴に基づいて、前記環境内に位置する一つの物体の推定される識別及び／又は場所を表す初期物体推定を生成することと、
前記２Ｄ画像の分析に基づいて、エッジを検出することと、
前記検出されたエッジの少なくとも２つのグループ化を含むエッジクラスタを導出することと、
前記エッジクラスタに基づいて、平行配向を有する検出されたエッジのペアを含む平行エッジセットを検出することと、
第２の平行ペアの少なくとも１つのエッジと交差する第１の平行ペアの少なくとも１つのエッジを有する検出されたエッジの前記第１の平行ペア及び前記第２の平行ペアを含む物体エッジセットを識別することと、
前記物体エッジセットを前記３Ｄ画像の限定された領域に投影することであって、前記限定された領域は前記３Ｄ画像の一部であることと、
前記投影された物体エッジセットに基づいて、前記投影された物体エッジセットに対応する前記３Ｄ画像のコーナーの場所又は３Ｄエッジの場所を表す３Ｄ特徴場所を、前記限定された領域内で識別することであって、前記３Ｄ特徴場所は、前記３Ｄ画像の分析を前記限定された領域に制限することに基づいて識別されることと、
前記３Ｄ特徴場所と前記初期物体推定の対応する場所との間のオフセットを計算することと、
前記初期物体推定及び前記オフセットに基づいて、物体検出結果を生成することと、
を含む方法。
【請求項２】
前記検出されたエッジのエッジ配向を決定することを更に含み、
前記エッジクラスタを導出することが、前記検出されたエッジをエッジ配向に従ってグループ化することを含み、
前記各グループ化が、一致するエッジ配向を有する、又は互いに角度閾値内の前記エッジ配向を有する前記検出されたエッジの平行インスタンスを含む、
請求項１に記載の方法。
【請求項３】
前記検出されたエッジをグループ化することが、
前記検出された各エッジのベクトルを計算することと、
第１の検出されたエッジを表す第１のベクトル、及び、第２の検出されたエッジを表す第２のベクトルの内積の角度を計算することと、
前記内積の前記角度を角度閾値と比較することと、
前記内積の前記角度が前記角度閾値未満である場合に、前記第１の検出されたエッジ及び前記第２の検出されたエッジをグループ化することと、を含む、
請求項２に記載の方法。
【請求項４】
前記エッジクラスタを導出することが、
前記２Ｄ画像内の分析部分を決定することと、
前記分析部分内にある前記検出されたエッジを識別することと、を含む、
請求項１に記載の方法。
【請求項５】
前記分析部分が、前記初期物体推定の少なくとも一部を含む、
請求項４に記載の方法。
【請求項６】
前記初期物体推定を生成することが、
前記１つ又は複数の視覚的特徴を含む前記２Ｄ画像の少なくとも一部を、登録された物体の表面の表現を含むマスタデータと比較することと、
前記２Ｄ画像の前記１つ又は複数の視覚的特徴が前記マスタデータ内の前記画像の１つと一致するときに、前記一致する画像に関連付けられた登録された物体を表す推定される識別を決定することと、
前記１つ又は複数の視覚的特徴及び前記マスタデータ内の前記一致する画像に基づいて推定される物体の場所を決定することと、を含む、
請求項４に記載の方法。
【請求項７】
前記平行エッジセットを検出することが、
各前記エッジクラスタ内の前記検出されたエッジの各ペア間の検出可能なエッジ距離を計算することと、
結果として得られる検出可能なエッジ距離を、前記初期物体推定に関連付けられて登録された物体を表すマスタデータ内の寸法と比較することと、
前記マスタデータ内の前記寸法の１つと一致する前記検出可能なエッジ距離に対応する、平行エッジセットのエッジのペアを選択することと、を含む、
請求項１に記載の方法。
【請求項８】
検出された各エッジのエッジ評価を生成することを更に含み、
前記物体エッジセット内の前記検出されたエッジが、エッジ検出閾値を超える前記エッジ評価を有する、
請求項１に記載の方法。
【請求項９】
前記エッジ評価を生成することが、（１）前記エッジ評価によって表されるエッジの連続性の尺度、（２）前記表されるエッジの配向、（３）前記表されるエッジと前記物体エッジセット内の他のエッジとの間の類似性、（４）前記表されるエッジと前記３Ｄ画像内で表される前記３Ｄエッジとの間の重なりの尺度の何れかに基づいて前記エッジ評価を計算することを含む、
請求項８に記載の方法。
【請求項１０】
前記エッジ評価を生成することが、前記検出された平行エッジペアの間のアラインメント、並びに、前記３Ｄ画像内の検出されたコーナー及び３Ｄコーナーのアラインメントに基づいて前記エッジ評価を計算することを含む、
請求項８に記載の方法。
【請求項１１】
前記エッジを検出することが、前記エッジ検出閾値を下回る前記エッジ評価を有する検出可能なエッジを却下することを含む、
請求項８に記載の方法。
【請求項１２】
前記物体検出結果を生成することが、前記オフセットが閾値分離距離を超えたときに前記初期物体推定を更新することを含む、
請求項１に記載の方法。
【請求項１３】
前記初期物体推定を更新することが、前記オフセットに従って前記初期物体推定の推定される物体の場所を移動することを含む、
請求項１２に記載の方法。
【請求項１４】
前記物体検出結果を生成することが、前記オフセットが閾値分離距離未満である場合に、前記初期物体推定を検証することを含む、
請求項１に記載の方法。
【請求項１５】
プロセッサによって実行されるときに前記プロセッサに方法を実行させる命令が格納された有形の非一時的コンピュータ可読媒体であって、前記方法が、
複数の検出可能な物体を有する環境を表す二次元（２Ｄ）画像及び三次元（３Ｄ）画像を取得することと、
前記２Ｄ画像内に描写された１つ又は複数の視覚的特徴に基づいて、前記環境内に位置する一つの物体の推定される識別及び／又は推定される場所を表す初期物体推定を生成することと、
前記２Ｄ画像内のエッジを検出することと、
前記初期物体推定に対応する前記検出された２Ｄエッジの１つ又は複数のセットを検出することと、
前記検出されたエッジの前記セットを、前記３Ｄ画像内の分析範囲に投影することに基づいて、前記検出されたエッジの前記１つ又は複数のセット内のエッジ又はその一部を表す三次元（３Ｄ）場所を識別することであって、前記分析範囲は、前記３Ｄ画像内の一部であり、前記３Ｄ場所は、前記３Ｄ画像の分析を前記分析範囲に制限することに基づいて識別されることと、
前記初期物体推定及び前記３Ｄ場所に基づいて物体検出結果を生成することと、を含む、
有形の非一時的コンピュータ可読媒体。
【請求項１６】
前記方法が、
検出された各エッジのエッジ配向を決定することと、
平行なエッジ配向を有する少なくとも２つの前記検出されたエッジを含む、１つ又は複数のエッジクラスタを導出するために、前記検出されたエッジを前記エッジ配向に従ってグループ化することと、を更に含み、
前記検出されたエッジの１つ又は複数のセットのそれぞれを検出することが、適格条件に従って、前記エッジクラスタの１つの中で検出されたエッジのセットを選択することを含む、
請求項１５に記載の有形の非一時的コンピュータ可読媒体。
【請求項１７】
前記方法が、前記初期物体推定に従って前記２Ｄ画像内の分析部分を決定することを更に含み、
前記検出されたエッジの前記１つ又は複数のセットを検出することが、前記分析部分の外側の前記２Ｄ画像の部分を無視しながら、前記分析部分内の前記検出されたエッジを分析することを含む、
請求項１５に記載の有形の非一時的コンピュータ可読媒体。
【請求項１８】
前記エッジを検出することが、前記２Ｄ画像の分析に基づいて、前記２Ｄ表現内に描写された前記エッジを検出することを含み、
前記物体検出結果が、前記２Ｄ表現及び前記３Ｄ表現内の対応する特徴間のオフセットに基づいて生成され、
前記方法が、
前記検出されたエッジの前記１つ又は複数のセット内の前記エッジ又はその前記一部に対応する３Ｄエッジ若しくはその一部を識別することと、
前記２Ｄ表現から導出された前記３Ｄ場所と前記３Ｄ表現内に描写された前記３Ｄエッジの場所との間の前記オフセットを計算することと、を更に含む、
請求項１５に記載の有形の非一時的コンピュータ可読媒体。
【請求項１９】
前記物体検出結果を生成することが、前記オフセットが閾値分離距離を超えたときに、前記オフセットに従って前記推定される場所を移動することを含む、
請求項１８に記載の有形の非一時的なコンピュータ可読媒体。
【請求項２０】
二次元（２Ｄ）撮像センサ、三次元（３Ｄ）撮像センサ及び１つ又は複数のロボットユニットとの間でコンピュータ可読データを交換するように構成される通信回路と、
前記通信回路に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記プロセッサに、
複数の検出可能な物体を有する環境を表す２Ｄ画像を前記２Ｄ画像センサから取得させ、
前記環境を表す３Ｄ画像を前記３Ｄ画像センサから取得させ、
前記環境内に位置する一つの物体の推定される識別及び／又は場所を表す前記２Ｄ画像に基づいて初期物体推定を生成させ、
前記２Ｄ画像内のエッジを検出させ、
平行なエッジ配向を有し、前記初期物体推定に対応する前記検出された２Ｄエッジの１つ又は複数のペアリングを検出させ、
検出されたエッジの前記１つ又は複数のエッジペアリングを前記３Ｄ画像内の分析範囲に投影することによって三次元（３Ｄ）場所を識別させることであって、前記３Ｄ場所は、前記３Ｄ画像の分析を前記分析範囲に制限することに基づいて識別され、
前記初期物体推定の前記３Ｄ場所とコーナー場所との間のオフセットを計算させ、
前記初期物体推定及び前記オフセットに基づいて前記物体の場所を含む物体検出結果を生成させ、
前記環境内に位置する前記物体を操作するために前記１つ又は複数のロボットユニットを操作するための前記物体検出結果に従って計画を導出及び実装させる、命令が格納された、少なくとも１つのメモリと、を含む、
ロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願（複数可）の相互参照
本出願は、２０１９年５月２４日に出願された米国仮特許出願第６２／８５２，９６３号の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。本出願は、２０１９年３月１日に出願された米国特許出願第１６／２９０，７４１号、現在の米国特許第１０，３６９，７０１号にも関連しており、その全体が参照により組み込まれる。
【０００２】
本技術は、一般にロボットシステムを対象とし、より詳細には、検出結果を精緻化するためのシステム、プロセス、及び技術を対象とする。
【背景技術】
【０００３】
多くの場合、目的地への出荷のためにパレットに配置された（又は「パレタイズされた」）パッケージは、その後、目的地でデパレタイズされる。パッケージは人間の作業員によってデパレタイズされる可能性があり、これは資源集約的であり、人間の作業者の負傷のリスクを増大させる可能性がある。産業上の設定では、デパレタイズ操作は、パッケージを把持して持ち上げ、運搬し、解放点まで配送するロボットアーム等の産業用ロボットによって実行され得る。また、撮像デバイスを利用して、パレットに積載されたパッケージの積み重ねの画像を取り込み得る。システムは、取り込んだ画像を、登録データソースに格納された登録画像と比較すること等によって、パッケージがロボットアームによって効率的に処理されるように画像を処理し得る。
【０００４】
取り込んだパッケージの画像が登録済みの画像と一致し得る場合もある。その結果、画像化された物体の物理的特性（例えば、パッケージの寸法、重量、及び／又は重心の測定値）が誤って不明と表示されたり、所定のデータ又はテンプレートデータと一致しなかったりすることがあり得る。物理的特性を正しく識別できないと、様々な望ましくない結果が生じる可能性がある。例えば、そのような障害は、システムの停止を引き起こす可能性があり、パッケージの手動登録が必要になり得る。また、特にパッケージが比較的重い及び／又は偏っている場合は、そのような障害によりパッケージが誤って処理される可能性がある。
【０００５】
本技術の様々な特徴及び特性は、図面と併せて詳細な説明を検討することにより、当業者にはより明らかになるであろう。本技術の実施形態は、図面において限定ではなく例として示されており、同様の参照は同様の要素を示し得る。
【図面の簡単な説明】
【０００６】
【図１】検出後の精緻化登録メカニズムを備えたロボットシステムが動作し得る例示的な環境の図である。
【図２】本技術の１つ又は複数の実施形態によるロボットシステムの図である。
【図３】本技術のいくつかの実施形態による、複数の検出可能な物体を有するシーンの図である。
【図４】本技術のいくつかの実施形態による、物体を描写するシーンの一部の図である。
【図５】本技術のいくつかの実施形態による、エッジに基づいた物体検出の図である。
【図６】本技術のいくつかの実施形態による、検出されたエッジ及び初期物体推定を有するシーンの図である。
【図７】本技術のいくつかの実施形態による、更新された物体推定の図である。
【図８】本技術のいくつかの実施形態による、図１のロボットシステムを動作させる方法のブロック図である。
【図９】本明細書で説明される少なくともいくつかの動作を実装できる処理システムの実施例を示すブロック図である。
【発明を実施するための形態】
【０００７】
図面は、例示のみを目的として様々な実施形態を描写する。当業者は、本技術の原理から逸脱することなく、代替の実施形態が使用され得ることを認識するであろう。したがって、特定の実施形態が図面に示されているが、本技術は様々な修正を受け入れることができる。
【０００８】
本明細書では、検出後の精緻化メカニズムを備えたロボットシステムのためのシステム及び方法について説明する。いくつかの実施形態に従って構成されたロボットシステム（例えば、１つ又は複数の指定されたタスクを実行するデバイスの統合システム）は、エッジ又はコーナー等の二次元（２Ｄ）及び／又は三次元（３Ｄ）画像データで取り込まれた特性に基づいて物体検出結果を精緻化又は調整することにより、向上した使用性及び柔軟性を提供する。
【０００９】
物体が認識されているかどうかを判定するために、ロボットシステムは、開始場所にある物体に関する画像データ（例えば、物体の露出面の１つ又は複数の画像）を取得して、既知又は予想される物体の登録データと比較することができる。ロボットシステムは、比較されたデータ（例えば、比較された画像の一部）が物体の１つに対する登録データ（例えば、登録された表面画像の１つ）と一致するとき、物体が認識されたと判定することができる。ロボットシステムは、認識された物体が画像化された範囲内の特定の場所（ロケーション）に存在すると結論付けることによって、物体を検出することができる。したがって、ロボットシステムは、認識された物体及び／又は認識された物体の場所を表す検出結果を生成することができる。
【００１０】
多くの場合、物体（例えば、パレット上に配置されたボックス）の位置（ポジション）／配向を決定することは、表面マーキング／デザインを有する所定の／格納された物体テンプレート（例えば、物体表面の視覚画像）を使用することを含み得る。しかし、物体の識別のためにそのような所定の／格納された物体テンプレートに依存することは、現実世界での物体の実際の位置／場所について不正確な結果をもたらし得る。
【００１１】
例えば、物体／ボックスの実際の表面マーキング／デザインは、所定の／格納された物体テンプレート内のものに比べてオフセットされ得る、歪み得る、又は異なる配向であり得る。言い換えれば、取り込まれた画像は、コンピュータビジョン誤差のために表面のマーキング／デザインの不正確な表現を含み得る、及び／又は処理された物体は、製造上の誤差のため等により、意図された又はテンプレートの画像とはオフセットされる、又は異なる実際の表面のマーキング／デザインを有し得る。
【００１２】
取り込まれた表面の外観に関する様々なタイプの誤差により、物体が現実世界（例えば、保管場所／パレット上）での実際の位置／配向とは異なる位置／配向にあると判定される可能性がある。物体の不正確な位置／場所の判定は、物体を移動させる際に重心（ＣｏＭ）の場所から離れて物体を掴むこと等により、後続の動作における物体の操作の誤差又は失敗を更に引き起こす可能性がある。
【００１３】
したがって、本実施形態は、初期物体推定と物体の検出された特徴との間のオフセット／アライメント誤差を識別するために、ペアワイズエッジ分析を実装し得る。検出されたオフセット／アライメント誤差に基づいて、初期物体推定は、物体検出を完了する際に更新又は検証され得る。初期物体推定の検証及び／又は更新により、物体の位置／場所の正確度を向上し得る。
【００１４】
以下の説明では、現在開示されている技術の完全な理解を提供するために、多くの具体的な詳細が述べられている。他の実施形態では、本明細書で紹介される技術は、これらの特定の詳細なしで実施できる。他の実施例では、特定の関数又はルーチン等の周知の特徴は、本開示を不必要に曖昧にすることを回避するために詳細には説明されない。本明細書における「実施形態」、「一実施形態」等への言及は、説明されている特定の特徴、構造、材料、又は特性が本開示の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書における、そのような語句の出現は、必ずしもすべてが同じ実施形態を指すものではない。一方、そのような参照は必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料、又は特性は、１つ又は複数の実施形態において任意の適切な方法で組み合わせることができる。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺通りに描写されていないことを理解されたい。
【００１５】
周知であり、しばしばロボットシステム及びサブシステムに関連付けられるが、開示された技術のいくつかの重要な側面を不必要に不明瞭にする可能性がある構造又はプロセスを説明するいくつかの詳細は、明確にするために以下の説明には記載されていない。さらに、以下の開示では、本技術の異なる側面のいくつかの実施形態が示されているが、他のいくつかの実施形態は、本節で説明したものとは異なる構成又は異なる構成要素を有することができる。したがって、開示された技術は、追加の要素を有するか、又は以下で説明する要素のいくつかを有さない他の実施形態を有することができる。
【００１６】
以下で説明する本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はプロセッサによって実行されるルーチンを含む、コンピュータ実行可能命令又はプロセッサ実行可能命令の形態をとることができる。当業者は、開示された技術が、以下で示され説明されるもの以外のコンピュータシステム又はプロセッサシステムで実施できることを理解するであろう。本明細書で説明される技術は、以下で説明されるコンピュータ実行可能命令の１つ又は複数を実行するように具体的にプログラムされ、構成され、又は構築される専用コンピュータ又はデータプロセッサで具体化することができる。したがって、本明細書で一般的に使用される「コンピュータ」及び「プロセッサ」という用語は、任意のデータプロセッサを指し、インターネット機器及びハンドヘルドデバイス（パームトップコンピュータ、ウェアラブルコンピュータ、移動電話又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラマブル家庭用電化製品、ネットワークコンピュータ、ミニコンピュータ等を含む）を含むことができる。これらのコンピュータ及びプロセッサによって処理される情報は、液晶ディスプレイ（ＬＣＤ）を含む、任意の適切な表示媒体で表示することができる。コンピュータプロセッサ実行可能タスク又はプロセッサ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアの組み合わせを含む、任意の適切なコンピュータ可読媒体に格納することができる。命令は、例えば、フラッシュドライブ及び／又は他の適切な媒体を含む、任意の適切なメモリデバイスに含めることができる。
【００１７】
「結合された」及び「接続された」という用語は、それらの派生語とともに、構成要素間の構造的関係を説明するために本明細書で使用することができる。これらの用語は、互いに同義語として意図されたものではないことを理解されたい。むしろ、特定の実施形態では、「接続された」は２つ以上の要素が互いに直接接触していることを示すために使用することができる。文脈で明らかにされていない限り、「結合された」という用語は、２つ以上の要素が直接又は間接的に（それらの間にある他の介在要素と）互いに接触していること、２つ以上の要素が互いに（例えば、信号の送信／受信又は関数呼び出し等の因果関係のように）連携又は相互作用していること、又はその両方を示すために使用することができる。
適切な環境
【００１８】
図１は、検出後の精緻化メカニズムを備えたロボットシステム１００が動作し得る例示的な環境の図である。ロボットシステム１００は、１つ又は複数のタスクを実行するように構成される１つ又は複数のユニット（例えば、ロボット）を含むことができる、及び／又は通信することができる。検出後の精緻化メカニズムの態様は、様々なユニットによって実行又は実装することができる。
【００１９】
図１に示す実施例では、ロボットシステム１００は、倉庫又は流通／輸送ハブにおいて、荷下ろしユニット１０２、移送ユニット１０４（例えば、パレタイジングロボット及び／又はピースピッカーロボット）、搬送ユニット１０６、積載ユニット１０８、又はそれらの組み合わせを含むことができる。ロボットシステム１００の各ユニットは、１つ又は複数のタスクを実行するように構成することができる。タスクは、トラック又はバンから物体を荷下ろしして倉庫に保管したり、保管場所から物体を荷下ろしして出荷の準備をしたりする等、目標を達成する操作を実行するために順番に組み合わせることができる。別の実施例では、タスクは物体を目標場所（例えば、パレットの上及び／又は容器／ケージ／ボックス／ケースの内部）に配置することを含むことができる。以下で説明するように、ロボットシステムは、物体を配置及び／又は積み重ねるための計画（例えば、配置場所／配向、物体を搬送するための順序、及び／又は対応する動作計画）を導出することができる。各ユニットは、タスクを実行するために一連の動作を実行する（例えば、その中の１つ又は複数の構成要素を操作する）ように構成することができる。
【００２０】
いくつかの実施形態では、タスクは、開始場所１１４からタスク場所１１６への対象物体１１２（例えば、実行中のタスクに対応するパッケージ、ボックス、ケース、ケージ、パレット等のうちの１つ）の操作（例えば、移動及び／又は再配向）を含むことができる。例えば、荷下ろしユニット１０２（例えば、デバンニングロボット）は、対象物体１１２を運送車（例えば、トラック）内の場所からコンベヤベルト上の場所に移送するように構成することができる。また、移送ユニット１０４は、対象物体１１２をある場所（例えば、コンベヤベルト、パレット、又は容器）から別の場所（例えば、パレット、容器等）に移送するように構成することができる。別の実施例では、移送ユニット１０４（例えば、パレタイジングロボット）は、対象物体１１２を供給場所（例えば、パレット、ピックアップエリア、及び／又はコンベヤ）から積み込み先パレットに移送するように構成することができる。操作が終了すると、搬送ユニット１０６は、移送ユニット１０４に関連付けられた範囲から積載ユニット１０８に関連付けられた範囲に対象物体１１２を移送することができ、積載ユニット１０８は、（例えば、対象物体１１２を載せたパレットを移動させることによって）対象物体１１２を移送ユニット１０４から保管場所（例えば、棚の上の場所）に移送することができる。タスク及び関連するデータ処理に関する詳細は以下で説明する。
【００２１】
例示の目的のために、ロボットシステム１００は、配送センタの文脈で説明されるが、ロボットシステム１００は、他の環境でタスクを実行するように構成できること／製造、組立、パッケージング、ヘルスケア、及び／又は他のタイプの自動化等の他の目的のためにタスクを実行するように構成できることが理解されよう。ロボットシステム１００は、図１には示されていない、マニピュレータ、サービスロボット、モジュール式ロボット等の他のユニットを含むことができることも理解されよう。例えば、いくつかの実施形態では、ロボットシステム１００は、物体をケージカート又はパレットからコンベヤ又は他のパレットに移送するためのデパレタイズユニット、物体をあるコンテナから別のコンテナに移送するためのコンテナ切り替えユニット、物体をラッピングするためのパッケージングユニット、物体の１つ又は複数の特性に従って物体をグループ化するための並べ替えユニット、物体の１つ又は複数の特性に従って物体を異なる方法で操作するため（例えば、並べ替え、グループ化、及び／又は移送するため）のピースピッキングユニット、又はそれらの組み合わせを含むことができる。
【００２２】
ロボットシステム１００は、動作（例えば、回転及び／又は並進変位）のために関節で連結される物理的又は構造的部材（例えば、ロボットマニピュレータアーム）を含むことができる。構造部材及び関節は、ロボットシステム１００の使用／操作に従って１つ又は複数のタスク（例えば、把持、紡績、溶接等）を実行するように構成されるエンドエフェクタ（例えば、グリッパ）を操作するように構成される運動連鎖を形成することができる。ロボットシステム１００は、対応する関節の周囲又は対応する関節で、構造部材を駆動又は操作（例えば、変位及び／又は再配向）するように構成される作動デバイス（例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマ等）を含み得る。いくつかの実施形態では、ロボットシステム１００は、対応するユニット／シャーシを色々な場所に移送するように構成される移送モータを含むことができる。
【００２３】
ロボットシステム１００は、構造部材を操作する及び／又はロボットユニットを搬送する等のため、物体の検出及び／又はタスクの実施のために使用される情報を取得するように構成されるセンサを含むことができる。センサは、ロボットシステム１００の１つ又は複数の物理的特性（例えば、１つ又は複数の構造部材／その関節の状況、状態、及び／又は場所）及び／又は周辺環境の１つ又は複数の物理的特性を検出又は測定するように構成されるデバイスを含むことができる。センサのいくつかの実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダ等を含むことができる。
【００２４】
いくつかの実施形態では、例えば、センサは、周辺環境を検出するように構成される１つ又は複数の撮像デバイス（例えば、視覚カメラ及び／又は赤外線カメラ、２Ｄ及び／又は３Ｄ撮像カメラ、ライダ又はレーダ等の距離測定デバイス等）を含むことができる。撮像デバイスは、（例えば、自動検査、ロボットガイダンス、又は他のロボットアプリケーションのために）マシン／コンピュータビジョンを介して処理され得る、デジタル画像及び／又は点群等の検出された環境の表現を生成することができる。以下で更に詳細に説明するように、ロボットシステム１００は、デジタル画像及び／又は点群を処理して、対象物体１１２、開始場所１１４、タスク場所１１６、対象物体１１２の姿勢、開始場所１１４及び／又は姿勢に関する信頼尺度、又はそれらの組み合わせを識別することができる。
【００２５】
対象物体１１２を操作するために、ロボットシステム１００は、指定された範囲（例えば、トラック内又はコンベヤベルト上等のピックアップ場所）の画像を取り込み及び分析して、対象物体１１２及びその開始場所１１４を識別することができる。同様に、ロボットシステム１００は、別の指定された範囲（例えば、コンベヤに物体を置くための下降場所、コンテナ内に物体を置くための場所、又は積み重ね目的のためのパレット上の場所）の画像を取り込んで分析し、タスク場所１１６を識別することができる。例えば、撮像デバイスは、ピックアップ範囲の画像を生成するように構成される１つ又は複数のカメラ及び／又はタスク範囲（例えば、下降範囲）の画像を生成するように構成される１つ又は複数のカメラを含むことができる。以下で詳細に説明するように、取り込まれた画像に基づいて、ロボットシステム１００は、開始場所１１４及び／又はタスク場所１１６で物体を検出し、検出結果を精緻化することができる。
【００２６】
いくつかの実施形態では、例えば、センサは、構造部材（例えば、ロボットアーム及び／又はエンドエフェクタ）及び／又はロボットシステム１００の対応する関節の位置を検出するように構成される位置センサ（例えば、位置エンコーダ、電位差計等）を含むことができる。ロボットシステム１００は、位置センサを使用して、タスクの実行中に構造部材及び／又は関節の場所及び／又は配向を追跡することができる。
物体検出及び検出後の精緻化のための例示的なデバイス構成
【００２７】
図２は、本技術の１つ又は複数の実施形態による、図１のロボットシステム１００の図である。ロボットシステム１００は、エンドエフェクタ２０４（例えば、グリッパ）を含むロボットアーム２０２（例えば、図１の移送ユニット１０４のインスタンス）を含むことができる。ロボットアーム２０２は、図１の開始場所１１４と図１のタスク場所１１６との間で対象物体１１２を移送するように構成することができる。図２に示すように、開始場所１１４は、その上に対象スタック２１０（例えば、物体のグループ化）を有するパレット２０８を有することができる。ロボットアーム２０２のタスク場所１１６は、コンベヤ２０６（例えば、図１の搬送ユニット１０６のインスタンス）上の配置場所（例えば、開始／退出点）とすることができる。
【００２８】
ロボットシステム１００は、ロボットアーム２０２で移送操作を実行する際に、１つ又は複数のセンサを使用することができる。いくつかの実施形態では、ロボットシステム１００は、第１の撮像センサ２１２及び／又は第２の撮像センサ２１４を含むことができる。第１の撮像センサ２１２は、開始場所１１４を撮像及び／又は分析するように構成される、カメラセンサ及び／又は深度センサ等の１つ又は複数の２Ｄセンサ及び／又は３Ｄセンサを含むことができる。第２の撮像センサ２１４は、タスク場所１１６を撮像及び／又は分析するように構成される、カメラセンサ及び／又は深度センサ等の１つ又は複数の２Ｄセンサ及び／又は３Ｄセンサを含むことができる。例えば、第１の撮像センサ２１２は、開始場所１１４の上方で開始場所１１４に面した既知の位置に配置された１つ又は複数のカメラセンサ及び／又は深度センサを含むことができる。第１の撮像センサ２１２は、対象スタック２１０の上面図等の開始場所１１４の１つ又は複数の上面図に対応する撮像データ（例えば、３Ｄ点群及び／又は３Ｄ視界又は２Ｄ画像）を生成することができる。
【００２９】
ロボットシステム１００は、第１の撮像センサ２１２からの撮像データを使用して、対象スタック２１０内の物体を認識又は検出することができる。物体を検出する際に、ロボットシステム１００は、画像データの一部（例えば、２Ｄ画像）又はその一部をマスタデータ（例えば、予想される／登録された物体の所定の表面画像）と照合させることに基づいて、初期検出仮説を生成することができる。ロボットシステム１００は、画像データ（例えば、３Ｄ画像）を更に処理して、初期検出仮説を精緻化することができる。例えば、ロボットシステム１００は、平行なエッジペア及び対応する交点を識別して、物体の物理的な輪郭又は周囲を導出することができる。導出された輪郭を処理して、初期検出仮説を調整又は検証することができる。検出及び精緻化に関する詳細は以下で説明する。
物体のエッジ検出
【００３０】
上述したように、物体又は一連の物体の初期物体推定は、物体の追加的に決定された特徴と比較して、初期物体推定からの物体の場所／位置を検証及び／又は更新してもよい。図３は、本技術のいくつかの実施形態による、複数の検出可能な物体３０２、３０４を有するシーン３００を示す。
【００３１】
図３に示すように、シーン３００は、図２の第１の撮像センサ２１２からの撮像データ（例えば、２Ｄ視界画像）であり得る。シーン３００は、開始場所１１４における複数の検出可能な物体３０２及び３０４（例えば、パレタイズされたボックス）を描写することができる。図１のロボットシステム１００は、撮像データを分析して、物体３０２及び／又は３０４の初期物体推定を導出し得る。例えば、ロボットシステム１００は、シーン３００又はその一部を、マスタデータ内の登録された物体の表面画像と比較することができる。コンピュータビジョン及び／又は他の画像分析メカニズムを使用して、ロボットシステム１００は、物体３０２及び３０４に対応するシーン３００内の範囲がマスタデータ内の１つ又は複数の表面画像と一致することを決定することができる。
【００３２】
各一致について、ロボットシステム１００は、対応する登録された物体の識別子、検出された物体の場所、検出された物体のサイズ、検出された物体の姿勢、及び／又は検出された物体に関連付けられた他の物理的属性として、初期物体推定を導出することができる。例えば、ロボットシステム１００は、物体３０２及び３０４の登録された画像にそれぞれ一致する、シーン３００の第１及び第２の部分の十分な数の特徴（例えば、一致する特徴の信頼値及び／又は閾値数／サイズによって定義される）を決定することができる。したがって、ロボットシステム１００は、物体３０２及び３０４（例えば、候補物体）が開始場所１１２にあると推定することができる。一致に基づいて、ロボットシステム１００は、物体３０２及び３０４の登録された画像内の特徴に関連する所定の寸法及び／又はエッジ場所を識別することができる。ロボットシステム１００は、寸法及び／又は相対的なエッジ場所をシーン３００内の一致する特徴にマッピングして、物体３０２及び３０４の姿勢及び／又は場所を導出するか、又は推定することができる。さらに、ロボットシステム１００は、所定の座標系及び／又はマッピング処理に基づき画像内の場所（例えば、画素位置）を現実世界の場所に変換することに基づいて物体を位置決めすることができる。
【００３３】
以下でより詳細に説明するように、ペアワイズエッジ分析は、初期物体推定の検証／更新に利用され得る。いくつかの例では、検出された物体が類似の視覚的特徴及び／又は寸法を有する場合等、ペアワイズエッジ分析は、物体３０２、物体３０４の同一性を区別するため、及び／又は初期物体推定で表される物体の寸法を検証するために更に使用され得る。
【００３４】
図４は、本技術のいくつかの実施形態による、物体４０２を描写する撮像出力（例えば、２Ｄ／３Ｄ撮像データ）の一部の図である。撮像デバイス（例えば、第１の撮像センサ２１２、第２の撮像センサ２１４）は、物体（例えば、パレタイズされたボックス）の画像（複数可）を取り込み得る。撮像デバイスによって取り込まれた画像は、１つ又は複数の検出可能な物体を有する環境（又は「シーン」）を示すことができる。例えば、画像は、図１の開始場所１１４に配置された複数のパレタイズされたボックスの上面図を示すことができる。画像に取り込まれたシーンは、対象物体（例えば、物体４０２を含む）が位置する範囲をカバーする視野を提供し得る。
【００３５】
物体４０２のエッジ４０４ａ及び／又はエッジ４０４ｂは、物体４０２の取り込まれた画像（複数可）を検査することによって検出され得る。例えば、図１のロボットシステム１００は、ソーベルフィルタ等のエッジ検出メカニズム及び／又は他のエッジ検出メカニズムを使用して、描写されたエッジを検出することができる。以下でより詳細に説明するように、画像データ（例えば、３Ｄ点群）及び／又は検出されたエッジは、物体の決定された特徴と初期物体推定との間のオフセットを決定するために使用できる物体の３Ｄコーナーを決定するために使用され得る。
【００３６】
検出されたエッジのそれぞれについて、ロボットシステム１００は、エッジ配向４０８を導出することができる。エッジ配向４０８は、物体の検出可能なエッジの方向／配向を含み得る。例えば、エッジ配向４０８は、画像によって表されるシーンの基準座標系（例えば、ユークリッド空間の２Ｄ又は３Ｄ直交座標）に対するエッジの位置合わせ又は勾配を含むことができる。いくつかの実施形態では、エッジ配向４０８は、検出されたエッジの方向及び大きさの両方を含むエッジベクトルによって表すことができる。
【００３７】
物体４０２（例えば、ボックス）は、複数の平行なエッジを含み得る。例えば、取り込まれた画像は、エッジ４０４ａに平行なエッジ４０４ａ’を描写し得る。同様に、取り込まれた画像は、エッジ４０４ｂに平行なエッジ４０４ｂ’を描写し得る。
【００３８】
ロボットシステム１００は、一組のエッジが、配向４０８の計算及び比較に基づいて平行であることを決定し得る。例示的な実施例として、ロボットシステム１００は、検出されたエッジのクラスタを導出することに基づいて、平行なエッジを識別することができる。ロボットシステム１００は、Ｖ１及びＶ２の内積に従って検出されたエッジを比較することに基づいてエッジクラスタを導出し得て、ここで、Ｖ１及びＶ２は、固有のエッジのベクトル表現である。エッジの角度又は配向は、ベクトルの方向成分に対応することができる。ロボットシステム１００は、内積の角度が角度閾値未満である場合、２つのベクトルが平行であると決定することができる。
【００３９】
いくつかの実施形態では、ロボットシステム１００は、対象となるエッジからの閾値範囲／距離内で検出されたエッジを比較することに基づいて、エッジクラスタを導出することができる。例えば、閾値の範囲／距離は、最大の登録された物体の寸法に対応することができる。また、ロボットシステム１００は、初期物体推定のエッジからの閾値距離で又は閾値距離内の検出されたエッジに基づいて、エッジクラスタを導出し得る。例えば、ロボットシステム１００は、初期物体推定の境界を越えて延びる分析範囲を識別することができる。言い換えれば、ロボットシステム１００は、それぞれが初期物体推定のインスタンスを囲むか、又は含む分析範囲及びそれに隣接する領域を識別することができる。ロボットシステム１００は、それぞれの初期物体推定内のエッジクラスタを決定することができる。同様に、ロボットシステム１００はまた、物理的特徴（例えば、３Ｄコーナー又は３Ｄエッジ）、最小／最大物体サイズ、３Ｄ点群値に一致する範囲（例えば、連続した表面）、分析プラットフォーム内の範囲（例えば、パレット）、又はそれらの組み合わせに対応する範囲、又はこれらによって（例えば、所定のテンプレートに従って）定義される範囲に位置する検出されたエッジを比較することに基づいて、エッジクラスタを導出し得る。
【００４０】
ロボットシステム１００は、エッジクラスタを使用して、画像データ内の範囲を識別することができる。例えば、ロボットシステム１００は、異なる配向を有する検出されたエッジの交差（例えば、コーナー）を識別することができる。ロボットシステム１００は、クラスタ化されたエッジ又は平行なエッジのセット（例えば、第１のペア）が、クラスタ化されたエッジ又は平行なエッジの別のセット（第２のセット）と交差して、所定数のコーナー（例えば、４つのコーナー）を形成するときに、物体が存在することを検出することができる。ロボットシステム１００は、対応するエッジセット及びその中の境界範囲が検出された物体を表すことを決定することができる。したがって、ロボットシステム１００は、エッジに基づいて、初期物体推定とは別に物体を検出することができる。エッジに基づいた物体検出に関する詳細を以下で説明する。
【００４１】
ロボットシステム１００は、平行なエッジ（例えば、エッジ４０４ｂ、４０４ｂ’）間の検出可能なエッジ距離４０６を導出することができる。検出可能なエッジ距離４０６は、同一平面上にある、及び／又は互いからの閾値範囲／距離内に位置する平行エッジ（例えば、エッジ４０４ａ、４０４ａ’又はエッジ４０４ｂ、４０４ｂ’）間の距離を含み得る。検出可能なエッジ距離７０６は、物体４０２の長さ又は幅を表し得る。以下でより詳細に説明するように、検出可能なエッジ距離４０６は、物体の寸法が物体の初期物体推定に含まれる寸法に対応するかどうかを決定する際に利用され得る。
【００４２】
物体エッジの交点検出
物体の検出された平行エッジセットは、検出されたエッジの一連の交点（又は「３Ｄコーナー」）を識別する際に使用され得る。識別された交点は、検出されたエッジに従って物体を検出するために使用することができる。図５は、本技術のいくつかの実施形態による、エッジに基づいた物体検出の図である。図５に示すように、シーン５００（例えば、図２の第１の撮像センサ２１２からの２Ｄ撮像出力）は、第１の物体（Ａ）に対応する第１の検出されたエッジセット５０２及び第２の物体（Ｂ）に対応する第２の検出されたエッジセット５０４を示すことができる。
【００４３】
上述したように、ロボットシステム１００は、検出されたエッジセット５０２及び５０４に基づいて、エッジクラスタを導出することができる。例示的な実施例として、ロボットシステム１００は、第１の配向を有する第１のエッジ５１２に基づいて第１のクラスタを導出することができる。上述したように、ロボットシステム１００は、第１のエッジ５１２に対応する範囲内の検出されたエッジを分析することができる。分析に基づいて、ロボットシステム１００は、第１のエッジ５１２及び第１のエッジ５１２に対して平行であると決定された第１の対応するエッジ５２２を含むエッジクラスタ（例えば、平行なエッジのセット又はペア）を導出することができる。同様に、ロボットシステム１００は、第２の配向を有する及び／又は第１のエッジ５１２と交差する第２のエッジ５１４に基づいて第２のクラスタを導出することができる。第２のクラスタは、第２のエッジ５１４及び第２のエッジ５１４に平行であると決定された第２の対応するエッジ５２４を含み得る。
【００４４】
ロボットシステム１００は、エッジクラスタを更に処理して、異なる配向を有するエッジのセットが交差する検出されたコーナー５０６を識別することができる。ロボットシステム１００は、検出されたエッジを一端から他端に向かって追跡して、エッジが別のエッジと交差するかどうかを判定し得る。異なるクラスタからのエッジのセット又はペアが互いに交差するとき、ロボットシステム１００は、エッジが範囲を囲む境界を形成していると決定することができる。図５に示すように、ロボットシステム１００は、第１のペアの平行エッジ５１２及び５２２が、第２のペアの平行エッジ５１４及び５２４と交差することを決定することができる。したがって、ロボットシステム１００は、エッジ５１２、５１４、５２２、及び５２４が、検出された物体（例えば、物体Ａ）に対応するか、又は検出された物体を定義することを決定することができる。同様に、ロボットシステム１００は、シーン内で検出された他のエッジを分析して、シーン内に描写された他の交差及びその後の他の物体を決定することができる。
【００４５】
エッジ評価
検出されたエッジ、検出された平行エッジペア、及び／又はエッジ交点の正確度／精度を定量化するための測定基準を提供するエッジ評価を導出し得る。エッジ評価は、検出されたエッジの正確度の決定、及び検出後の精緻化及び検証（例えば、初期物体推定の更新／検証）に使用することができる。エッジ評価には、物体の検出された特徴の正確度を表す動的／累積値を含めることができる。場合によっては、エッジ評価は、初期物体推定に含まれる候補物体に対する検出された物体の正確度を示すことができる。
【００４６】
エッジ評価は、様々な要因に基づいて導出することができる。例えば、エッジ評価は、連続性の尺度（例えば、エッジが測定値／描写値の不連続性又は不規則な変化を含むかどうかを示す）に基づくことができる。別の実施例として、エッジ評価は、検出されたエッジの線形性のレベルに基づくことができる。ロボットシステム１００は、エッジ形状を所定のテンプレート又はパターンと比較して、線形性のレベルを決定し得る。
【００４７】
エッジ評価は、検出された平行エッジペア及び／又は初期物体推定に対応する候補物体間の類似性の尺度に基づいて計算又は調整することもできる。例えば、類似性の尺度は、各クラスタ及び／又は交差するクラスタ内の検出されたエッジの長さ、厚さ、色、及び／又は配向に従って計算され得る。エッジ評価は、２Ｄ画像内の識別された検出可能なエッジと、３Ｄ点群内のエッジ点との間の重なりの度合いに基づくこともできる。例えば、ロボットシステム１００は、所定のグリッド／座標系及び／又はマッピング関数（例えば、１つ又は複数の方程式及び／又はルックアップテーブル）に従って、２Ｄ画像内の点を３Ｄ画像内の点及び／又は現実世界の点にマッピングすることができる。共通の場所マッピングにより、ロボットシステム１００は、２Ｄ画像内の検出されたエッジを、３Ｄ画像内の検出されたエッジと比較することができる。ロボットシステム１００は、２Ｄ画像及び３Ｄ画像の対応するエッジ間の近接性に基づいて、エッジ評価を計算することができる。したがって、２Ｄ画像内及び３Ｄ画像内の両方で同じ場所で検出されるエッジは、より高いエッジ評価を有することができる。２Ｄ画像内及び３Ｄ画像内の対応するエッジが更に離れているときには、エッジ評価が低下する可能性がある。
【００４８】
いくつかの実施形態では、エッジ評価は、検出されたエッジ交点（例えば、コーナー）に基づくことができる。例えば、識別されたコーナー（例えば、２Ｄコーナー）の場所は、３Ｄコーナーの場所と比較することができる。コーナーを形成する検出されたエッジのエッジ評価は、エッジの比較について上述したように、重なりの度合い又はコロケーションに基づいて計算することができる。また、コーナーを形成する検出されたエッジのエッジ評価は、コーナー角度に基づいて計算することができる。いくつかの実施形態では、コーナーの角度が９０度に最も近いとき、エッジ評価は向上する可能性がある。
【００４９】
エッジ評価は、本明細書に記載されるように、検出可能なエッジの識別／抽出後又はエッジクラスタの識別後に、決定することができる。いくつかの実施形態では、エッジ評価は、平行エッジペアの識別、平行エッジセットの決定、検出された平行エッジペアの３Ｄエッジ投影への投影、及び／又はエッジ交点の識別の何れかの後に決定することができる。
【００５０】
いくつかの実施形態では、ロボットシステムは、エッジスコアに基づいて（例えば、エッジスコアがエッジ検出閾値を下回る場合）、検出されたエッジを却下することができる。別の実施例として、精緻化／検証プロセス中又はその前に、ロボットシステム１００は、検出されたエッジ交点を使用して初期物体推定を精緻化及び／又は検証するかどうかを決定することができる。
【００５１】
初期物体推定の精緻化／検証
図６は、本技術のいくつかの実施形態による、破線によって描写されるような検出されたエッジ６０２ａ及び６０２ｂ、ならびに実線によって描写されるような初期物体推定６０４ａ及び６０４ｂを有するシーン６００の図である。検出されたエッジ６０２ａは、第１の物体（例えば、図３の物体３０２）に対応することができ、検出されたエッジ６０２ｂは、第２の物体（例えば、図３の物体３０４）に対応することができる。同様に、初期物体推定６０４ａは、第１の物体に対応することができ、初期物体推定６０４ｂは、第２の物体に対応することができる。
【００５２】
図６に示すように、検出されたエッジは、初期物体推定の境界／エッジと一致しない場合がある。差異は、画像処理中及び初期物体推定の導出中等、ロボットシステム１００によって引き起こされ得る。差異はまた、物体の不一致が原因で引き起こされ得る。例えば、実際の物体は、製造、印刷、及び／又は包装の誤差により、登録された画像とは異なる、又は登録された画像に対して予想しない場所にある視覚的特徴（例えば、ロゴ、デザイン、及び／又はその他の目に見える印）を有し得る。
【００５３】
以下で詳細に説明するように、ロボットシステム１００は、検出されたエッジを使用して、初期物体推定を更新及び／又は検証できる。したがって、ロボットシステム１００は、不正確な物体検出によって引き起こされる障害を低減又は除去することができる。言い換えれば、ロボットシステム１００は、検出されたエッジを使用して、可視の特徴に基づいた物体検出を強化することができる。
【００５４】
上述したように、初期物体推定は、物体の検出された特徴に基づいて更新及び／又は検証され得る。図７は、本技術のいくつかの実施形態による、更新された物体推定の図である。上述したように、図１のロボットシステム１００は、シーン７０８又はその一部を物体テンプレート７００（例えば、所定の表面画像又は登録された物体に設定された特徴）と比較して、初期物体推定７２２を導出し得る。
【００５５】
ロボットシステム１００は、シーン７０８の一部が物体テンプレート７００と一致するとき、潜在的な一致を検出することができる。図７に示すように、物体テンプレート７００は、特徴７０２、７０４、７０６を含み得る。特徴７０２、７０４、７０６の実施例は、表面デザイン、文字、数字、記号、エッジ等の可視の特徴を含むことができる。照合シナリオの場合、シーン７０８の部分は、それぞれ特徴７０２、７０４、７０６と一致する特徴７１０、７１２、７１４を含み得る。したがって、ロボットシステム１００は、特徴７１０、７１２、及び７１４の周囲の輪郭を識別することに基づいて、初期物体推定７２２を導出することができる。輪郭は、１つ又は複数の一致する特徴に対する１つ又は複数の基準場所７１６（例えば、対応する所定の距離／方向によって分離された場所）に従って識別することができる。図７に示すように、基準場所７１６の１つは、特徴７０２と一致する、描写された特徴（例えば、特徴７１０）から所定の距離だけ離れている輪郭のコーナーとすることができる。ロボットシステム１００は、対応する物体の推定されたエッジとして輪郭を識別することができる。
【００５６】
いくつかの実施形態では、初期物体推定７２２を精緻化又は更新することは、検出されたエッジ及び／又は検出されたエッジ（例えば、コーナー）の交点を検出された２Ｄ／３Ｄコーナーと比較することを含み得る。例えば、ロボットシステム１００は、２Ｄ及び／又は３Ｄ画像から物体エッジセット７３２を識別することができる。物体エッジセット７３２は、上述したエッジに基づいた物体検出の結果とすることができ、少なくとも部分的に範囲を囲むように決定された交差する平行エッジのセットを含むことができる。いくつかの実施形態では、ロボットシステム１００は、初期物体推定７２２と少なくとも部分的に重複する範囲を囲んでいる検出されたエッジ７３２のセットを識別することができる。ロボットシステム１００は、初期物体推定７２２と２Ｄ／３Ｄ画像との間のエッジ／コーナーの対応する場所を比較することができる。比較されたエッジ／コーナーが一致しない場合、ロボットシステム１００は、初期物体推定７２２のエッジ／コーナーと検出されたエッジ７３２との間の１つ又は複数の移動距離７３４を計算することができる。ロボットシステム１００は、１つ又は複数の所定の方向に沿って（例えば、ｘ軸及びｙ軸に沿って）及び／又は一致する場所間のベクトルとして移動距離７３４を計算し得る。
【００５７】
移動距離７３４が所定の移動閾値より大きい場合、ロボットシステム１００は、初期物体推定７２２を更新し得る。例えば、ロボットシステム１００は、物体推定が一致する特徴（例えば、特徴７１０、７１２、及び７１４）を含む検出されたエッジ７３２と一致するように、移動距離７３４だけ初期物体推定７２２を移動することができる。いくつかの実施形態では、ロボットシステム１００は、初期物体推定７２２、２Ｄ物体認識結果、及び／又は３Ｄ物体認識結果の間の分離を組み合わせる（例えば、平均化する）ことにより、初期物体推定７２２を移動することができる。２Ｄ及び３Ｄ画像からの物体認識結果が一致しない場合、ロボットシステム１００は、２Ｄ撮像結果よりも３Ｄ撮像結果を（例えば、一方を選択し、他方を破棄することにより、又はより大きな処理に重点を置くことにより）優先し得る。同様に、ロボットシステム１００は、特徴照合から得られる初期物体推定７２２よりも２Ｄエッジ検出結果を優先させ得る。
【００５８】
いくつかの実施形態では、ロボットシステム１００は、２Ｄ特徴を使用して、初期物体推定７２２を生成し、２Ｄエッジ処理を使用して、物体推定７２２を最初に検証又は調整することができる。ロボットシステム１００は、３Ｄエッジ／コーナー又はその場所を更に使用して、物体推定を更に調整又は検証することができる。物体推定を検証することは、物体推定のエッジ／コーナーと３Ｄ深度マップの対応するエッジ／コーナーとの間に不一致が存在するかどうかを判定することを含み得る。言い換えれば、ロボットシステム１００は、３Ｄ深度マップが、物体推定に対応する場所にエッジ／コーナー（例えば、１つ又は複数の線を形成する、又は１つ又は複数の線に沿った深度測定値の減少又は変化）を含むかどうかを決定することができる。ロボットシステム１００が、比較されたデータの不一致を検出すると、ロボットシステム１００は、物体推定を却下し、及び／又は上述したように物体推定を更に調整することができる。
【００５９】
図８は、本技術のいくつかの実施形態による、図１のロボットシステム１００を動作させる方法８００のブロック図である。方法８００は、環境内に１つ又は複数の物体を有する環境を表す１つ又は複数の撮像結果（例えば、２Ｄ及び／又は３Ｄ画像データ）を取得することを含み得る（ブロック８０２）。画像は、両方とも図２に示すように、第１の画像センサ２１２又は第２の画像センサ２１４等の１つ又は複数の撮像デバイスによって取り込むことができる。例えば、２Ｄ及び／又は３Ｄ画像は、パレタイズされたボックスの上面図の描写であり得る。
【００６０】
方法８００は、２Ｄ画像に基づいて初期物体推定を生成することを含み得る（ブロック８０４）。初期物体推定は、環境内に位置する物体の推定された識別及び／又は推定された場所を含み得る。上述したように、ロボットシステム１００は、２Ｄ画像に描写された視覚的特徴を分析／マスタデータと比較することに基づいて、初期物体推定を生成することができる。例えば、ロボットシステム１００は、２Ｄ画像又はその一部を、登録された物体の表面を表すマスタデータ内の表面画像と比較することができる。ロボットシステム１００は、２Ｄ画像内の１つ又は複数の特徴が、登録された物体の１つの表面画像と一致するときに、初期物体推定を生成することができる。ロボットシステム１００は、一致する登録された物体の識別子（例えば、物体名及び／又は識別コード）を推定された識別として決定することができる。ロボットシステム１００は、照合機能を使用して、一致する画像を２Ｄ画像にマッピング又は投影することができる。ロボットシステム１００は、２Ｄ画像内の対応する場所を現実世界の場所（複数可）に更にマッピングすることができ、それにより、推定される物体の場所を決定する。例えば、ロボットシステム１００は、推定された物体のエッジ及び／又はコーナーの場所を推定することができる。
【００６１】
方法８００は、エッジに基づいた物体検出を実行することを含み得る（ブロック８０６）。エッジに基づいた物体検出は、２Ｄ画像内の検出されたエッジの複数の交差するセット／ペアを識別することを含むことができる。したがって、ロボットシステム１００は、２Ｄ画像内に描写されたエッジを検出するために２Ｄ画像を検査することによって、エッジに基づいた検出を開始し得る（ブロック８０８）。上述したように、対象物体の一連のエッジは、適切なエッジ検出技術（例えば、キャニーエッジ検出及びソーベルフィルタ）を使用して検出することができる。
【００６２】
エッジに基づいた物体検出は、それぞれが検出されたエッジのグループ化を含むエッジクラスタを導出することを含み得る（ブロック８１０）。例えば、エッジクラスタは、上述したように、所定の範囲内に少なくとも２つの検出されたエッジを含むことができる。ロボットシステム１００は、検出されたエッジの方向を示すエッジ配向を決定することができる。ロボットシステム１００は、検出されたエッジの決定されたエッジ配向に従って、検出されたエッジをグループ化し得る。
【００６３】
エッジに基づいた物体検出は、エッジクラスタに基づいて平行エッジセット／ペアを検出することを含み得る（ブロック８１２）。いくつかの実施形態では、平行エッジセットはそれぞれ、互いに平行であると決定された配向を有する２つの検出されたエッジを含み得る。上述したように、ロボットシステム１００は、分析範囲内のエッジの分析に基づいて平行エッジセットを検出することができる。いくつかの実施形態では、ロボットシステム１００は、エッジクラスタに含まれる検出可能なエッジのサブセットが閾値角度内の角度で交差することを決定することに基づいて、平行エッジセットを検出することができる。ロボットシステム１００は、図４の検出可能なエッジ距離４０６を、初期物体推定に関連付けられた登録された物体の所定の寸法と比較すること等によって、適格条件に基づいて平行エッジセットを検出し得る。ロボットシステム１００は、登録された寸法に一致する（例えば、分離閾値内にある）検出可能なエッジ距離４０６を有するエッジクラスタ内のエッジを選択することに基づいて、平行エッジセットを検出することができる。
【００６４】
方法８００は、複数の検出された交差する平行なエッジペアを含む物体エッジセットを識別することを含み得る（ブロック８１４）。物体エッジセットは、異なる配向を有する、及び／又は互いに交差する複数の平行なエッジペアを含み得る。例えば、ロボットシステム１００は、物体エッジセットを、第１の配向を有する第１の平行エッジペア及び第１の平行エッジペアと交差する第２の配向を有する第２の平行エッジペアとして識別することができる。したがって、ロボットシステム１００は、互いに接続して範囲を囲む４つのエッジとして物体エッジセットを識別することができる。
【００６５】
方法８００は、環境内に１つ又は複数の物体を有する環境を表す３Ｄ画像（例えば、点群）の領域上に物体のエッジセットを投影することを含み得る（ブロック８１６）。いくつかの実施形態では、ロボットシステム１００は、２Ｄ画像及び３Ｄ画像内の点を互いに及び／又は対応する現実世界の場所にマッピングすることができる。ロボットシステム１００は、撮像デバイスの固定／既知の場所及び配向に対応する所定のプロセス、座標系、ルックアップテーブル、及び／又は方程式を使用して点を投影することができる。したがって、ロボットシステム１００は、物体エッジセットのエッジに対応する３Ｄ画像内の部分／場所を決定することができる。
【００６６】
方法８００は、３Ｄ画像データ内の３Ｄコーナー場所を識別することを含み得る（ブロック８１８）。３Ｄコーナーは、ロボットシステム１００等によって、所定の形状／サイズを有し、物体エッジセットに関連付けられたコーナーの場所を含む範囲を分析するために使用され得る。３Ｄコーナーは、分析範囲内の３Ｄエッジ（例えば、深度測定値が変化する隣接場所のセット）間の交点を探索するために使用することができる。
【００６７】
方法８００は、３Ｄコーナー場所と初期物体推定の対応するコーナー場所との間のオフセットを計算することを含み得る（ブロック８２０）。オフセットは、投影された３Ｄ点群の３Ｄコーナー場所と初期物体推定のコーナー場所との間の距離及び／又は配向等による、位置の差異を表し得る。いくつかの実施形態では、ロボットシステム１００は、２Ｄエッジ及び３Ｄエッジを比較して、上述したようにオフセットを計算することができる。
【００６８】
方法８００は、オフセットを評価し得る（決定ブロック８２２）。言い換えれば、ロボットシステム１００は、３Ｄセンサデータに従って、初期物体推定（例えば、推定物体の場所）が正確であるかどうかを判定することができる。ロボットシステム１００は、計算されたオフセット（例えば、初期物体推定のコーナー／エッジと、２Ｄ／３Ｄコーナー／エッジ場所との間の距離）及び／又はエッジ評価を１つ又は複数の所定の閾値と比較することに基づいて評価することができる。いくつかの実施形態では、検出されたエッジ交点は、オフセット距離が閾値分離距離よりも大きいという判定に基づいて却下され得る。いくつかの実施形態では、検出可能なエッジは、エッジ評価が閾値レベルを下回っているとの判定に基づいて却下される。
【００６９】
方法８００は、オフセット及び初期物体推定に基づいて物体検出結果を生成することを含み得る（ブロック８２８）。物体検出結果を生成することは、オフセットに基づいて初期物体推定を更新することを含み得る（ブロック８２４）。例えば、計算されたオフセットが閾値分離距離よりも大きい場合、初期物体推定は、オフセットを考慮して更新され得る。言い換えれば、ロボットシステム１００は、計算されたオフセットの大きさに対応する距離だけ、移動の方向に沿って初期物体推定を移動することができる。いくつかの実施形態では、ロボットシステム１００は、初期物体推定を調整して２Ｄ／３Ｄコーナー又はエッジと一致させることにより、計算されたオフセットに従って初期物体推定を移動することができる。他の実施形態では、ロボットシステム１００は、計算されたオフセットの大きさのわずかな分だけ初期物体推定を移動することができる。
【００７０】
物体検出結果を生成することは、計算されたオフセットに基づいて初期物体推定を検証することを含み得る（ブロック８２６）。オフセットが閾値以下であり、初期物体推定が本質的に２Ｄ／３Ｄコーナー又はエッジと本質的に一致する場合、ロボットシステム１００は、初期物体推定を検証することができる。いくつかの実施形態では、ロボットシステム１００は、初期物体推定を２Ｄコーナー／エッジに従い、次いで、３Ｄコーナー／エッジに従って検証／更新することができる。例えば、ロボットシステム１００は、最初に、その１つ又は複数のエッジ／コーナーを２Ｄ画像から別々に検出されたエッジ／コーナーの場所と比較することに基づいて、初期物体推定を検証することができる。ロボットシステム１００は、それに応じて検証又は調整することができる。次いで、ロボットシステム１００は、検証／調整された結果のエッジ／コーナーを、３Ｄ画像内のエッジ／コーナーの場所と同様に比較することができる。
【００７１】
ロボットシステム１００は、生成された物体検出結果を使用して、検出された物体を操作することができる。例えば、ロボットシステム１００は、物体検出結果を使用して、検出された物体の場所を位置決めすることができる。場所に応じて、ロボットシステム１００は、物体を把持、持ち上げ、水平移動、下降、及び／又は解放するための動作計画（例えば、ロボットユニットを操作するためのコマンド及び／又は設定のセット）を導出し実装し得る。
【００７２】
いくつかの実施形態では、方法８００は、物体エッジセットの正確度を示すエッジ評価を生成することを含み得る。エッジ評価は、初期物体推定の検証又は更新に利用してもよい。一実施例として、エッジ評価を生成することは、物体エッジセットに含まれる検出されたエッジの連続性、物体エッジセットに含まれる検出されたエッジの配向、物体エッジセットに含まれる検出されたエッジのそれぞれと所定の物体寸法推定情報に対応するエッジとの間の類似性、及び画像内の検出可能なエッジと三次元点群との間の重なりの何れかに基づき得る。別の実施例では、エッジ評価を生成することは、平行エッジセット内の検出された平行エッジペア間のアライメント、及び初期物体推定における検出された三次元コーナーに対する検出されたエッジ交差のアライメントに基づき得る。いくつかの実施形態では、ロボットシステム１００は、エッジを検出するための１つ又は複数の画像の検査の一部として、エッジ評価を生成することができる。ロボットシステム１００は、候補のエッジのそれぞれのエッジ評価をエッジ検証閾値と比較すること等によって、エッジ評価に従って検出されたエッジを検証し得る。ロボットシステム１００は、検証された候補エッジを検出されたエッジとして使用し、エッジ検証閾値を満たさない検出されたエッジを破棄することができる。したがって、ロボットシステム１００は、結果として得られる物体検出の正確度を更に向上させることができる。
【００７３】
検出された２Ｄ／３Ｄエッジ又はコーナーを使用した初期の特徴に基づいた物体推定の検証及び／又は更新は、物体処理の失敗の低減をもたらすことができる。検証及び更新は、コンピュータビジョン又は画像処理エラー、センサエラー、及び／又は物体の表面の欠陥を考慮することができるため、物体の検出／場所の正確度を向上させることができる。物体検出／場所の正確度が向上することにより、ロボットシステム１００は、タスクのために物体を正確に操作することができるようになる。例えば、ロボットシステム１００は、ＣｏＭ又はその付近で物体を把持する可能性を向上させることができ、それにより、物体搬送中の重量不均衡によって引き起こされる衝突及び／又は把持失敗を低減することができる。
【００７４】
さらに、初期物体推定に関する分析範囲内のエッジを分析することは、処理効率の向上をもたらす。ロボットシステム１００は、分析範囲内で導出及び分析することにより、分析される特徴の数量を制限することができる。言い換えれば、ロボットシステム１００は、２Ｄ／３Ｄ画像全体を処理する代わりに、２Ｄ／３Ｄ画像の一部を分析して、エッジの検出、クラスタの導出、物体のエッジセットの識別等をすることができる。したがって、ロボットシステム１００は、処理時間及び／又はリソースを削減して、物体推定を検証及び／又は更新することができる。
【００７５】
さらに、エッジの検出、エッジクラスタの導出、平行エッジセットの検出、物体エッジセットの識別（例えば、エッジに基づいた物体検出）は、物体を検出するための正確で効率的な方法を提供する。例えば、ロボットシステム１００は、エッジペアリングのみに基づいて検出することから生じ得る誤検出（例えば、分離された物体の平行なエッジによって囲まれた空のスペースを物体として検出する）を除去又は低減することができる。さらに、３Ｄ検証構成要素により、ロボットシステム１００は、誤検出を更に除去又は低減することができる。また、クラスタを導出し、その中でペアを検出し、次いで、互いに接続されているエッジのセットを識別することにより、ロボットシステム１００は、各エッジについて複数の異なるシナリオをテストすることなく、エッジに基づいた物体検出を効率的に実行することができるようになる。
【００７６】
例示的な処理システム
図９は、本明細書で説明される少なくともいくつかの動作を実装できる処理システム９００の実施例を示すブロック図である。図９に示すように、処理システム９００は、１つ又は複数の中央処理装置（「プロセッサ」）９０２、メインメモリ９０６、不揮発性メモリ９１０、ネットワークアダプタ９１２（例えば、ネットワークインターフェイス）、ビデオディスプレイ９１８、入力／出力デバイス９２０、制御デバイス９２２（例えば、キーボード及びポインティングデバイス）、記憶媒体９２６を含むドライブユニット９２４、及びバス９１６に通信可能に接続されている信号生成デバイス９３０を含み得る。バス９１６は、適切なブリッジ、アダプタ、又はコントローラによって接続された任意の１つ又は複数の別個の物理バス、ポイントツーポイント接続、又はその両方を表す抽象概念として示されている。したがって、バス９１６は、例えば、システムバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス又はＰＣＩ−Ｅｘｐｒｅｓｓバス、ハイパートランスポート又は業界標準アーキテクチャ（ＩＳＡ）バス、小型コンピュータシステムインターフェイス（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、又はＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ ｏｆ Ｅｌｅｃｔｒｉｃａｌ ａｎｄ Ｅｌｅｃｔｒｏｎｉｃｓ Ｅｎｇｉｎｅｅｒｓ）標準１３９４バス（「ファイアワイア」とも呼ばれる）を含むことができる。
【００７７】
様々な実施形態では、処理システム９００は、ユーザデバイスの一部として動作するが、処理システム９００はまた、（例えば、有線又は無線で）ユーザデバイスに接続され得る。ネットワーク配備では、処理システム９００は、クライアント−サーバネットワーク環境におけるサーバ又はクライアントマシンの能力で動作し得るか、又はピアツーピア（又は分散）ネットワーク環境におけるピアマシンとして動作し得る。
【００７８】
処理システム９００は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ、タブレット、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、プロセッサ、ウェブアプライアンス、ネットワークルータ、スイッチ又はブリッジ、コンソール、ハンドヘルドコンソール、ゲームデバイス、音楽プレーヤ、ネットワーク接続（「スマート」）テレビ、テレビ接続デバイス、又は、処理システム９００によって実行される動作を指定する一連の命令を（順次又はその他の方法で）実行することが可能な任意のポータブルデバイス又はマシンであり得る。
【００７９】
メインメモリ９０６、不揮発性メモリ９１０、及び記憶媒体９２６（「機械可読媒体」とも呼ばれる）は、単一の媒体であるように示されているが、「機械可読媒体」及び「記憶媒体」という用語は、１つ又は複数の命令９２８のセットを格納する単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース、及び／又は関連するキャッシュ及びサーバ）を含むものと解釈されるべきである。「機械可読媒体」及び「記憶媒体」という用語はまた、コンピューティングシステムによる実行のための一連の命令を格納、符号化、又は搬送することが可能であり、コンピューティングシステムに現在開示されている実施形態の１つ又は複数の方法論を実行させる任意の媒体を含むものと解釈される。
【００８０】
一般に、本開示の実施形態を実装するために実行されるルーチンは、オペレーティングシステムの一部として、又は「コンピュータプログラム」と呼ばれる特定のアプリケーション、構成要素、プログラム、物体、モジュール、又は一連の命令の一部として実装され得る。コンピュータプログラムは、典型的には、コンピュータ内の様々なメモリ及び記憶デバイス内の様々な時間で設定された１つ又は複数の命令（例えば、命令９０４、９０８、９２８）を含み、１つ又は複数の処理ユニット又はプロセッサ９０２によって読み取られ実行されると、処理システム９００に、本開示の様々な態様を含む要素を実行する操作を実行させる。
【００８１】
さらに、実施形態は、完全に機能するコンピュータ及びコンピュータシステムの文脈で説明されてきたが、当業者は、様々な実施形態が様々な形態でプログラム製品として配布可能であり、本開示が実際に配布を行うために使用される特定のタイプの機械又はコンピュータ可読媒体に関係なく等しく適用されることを理解するであろう。例えば、本明細書に記載される技術は、仮想マシン又はクラウドコンピューティングサービスを使用して実装することができる。
【００８２】
機械可読記憶媒体、機械可読媒体、又はコンピュータ可読（記憶）媒体のさらなる実施例は、限定されないが、揮発性及び不揮発性メモリデバイス９１０、フロッピーディスク及び他のリムーバブルディスク、ハードディスクドライブ、光ディスク（例えば、コンパクトディスク読み取り専用メモリ（ＣＤ  ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）等の記録可能なタイプの媒体、ならびにデジタル及びアナログ通信リンク等の伝送タイプの媒体を含む。
【００８３】
ネットワークアダプタ９１２は、処理システム９００が、処理システム９００及び外部エンティティによってサポートされる任意の既知の及び／又は便利な通信プロトコルを介して、処理システム９００の外部にあるエンティティとネットワーク９１４内のデータを仲介することを可能にする。ネットワークアダプタ９１２は、ネットワークアダプタカード、無線ネットワークインターフェイスカード、ルータ、アクセスポイント、無線ルータ、スイッチ、マルチレイヤスイッチ、プロトコルコンバータ、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディアレシーバ、及び／又はリピータの１つ又は複数を含むことができる。
【００８４】
ネットワークアダプタ９１２は、いくつかの実施形態では、コンピュータネットワーク内のデータへのアクセス／プロキシの許可を制御及び／又は管理し、異なるマシン及び／又はアプリケーション間の様々なレベルの信頼を追跡することができるファイアウォールを含むことができる。ファイアウォールは、例えば、特定のマシンとアプリケーションのセット、マシンとマシン、及び／又はアプリケーションとアプリケーションとの間でアクセス権の所定のセットを実施できるハードウェア及び／又はソフトウェア構成要素の任意の組み合わせを有する任意の数のモジュールとすることができ、これらの様々なエンティティ間のトラフィック及びリソース共有の流れ制御することができる。ファイアウォールは、さらに、例えば、個人、マシン、及び／又はアプリケーションによる物体のアクセス権及び操作権、ならびに許可権が存在する状況を含む許可を詳細に記述したアクセス制御リストを管理、及び／又はアクセス制御リストにアクセスしてもよい。
【００８５】
上述したように、本明細書で紹介される技術は、例えば、ソフトウェア及び／又はファームウェアでプログラムされたプログラム可能な回路（例えば、１つ又は複数のマイクロプロセッサ）、完全に専用のハードワイヤード（すなわち、プログラム不可能な）回路で、又はそれらの組み合わせ、もしくはそのような形態で実装される。専用回路は、例えば、１つ又は複数の特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等の形態にすることができる。
【００８６】
上記のことから、本発明の特定の実施形態が例示の目的で本明細書に記載されているが、本発明の範囲から逸脱することなく様々な修正が行われ得ることが理解されるであろう。したがって、本発明は、添付の特許請求の範囲によるものを除き、限定されない。
【要約】
【課題】画像化された物体の物理的特性（パッケージの寸法等）を正しく識別できない場合、システムが停止したり、パッケージの手動登録が必要になってしまったりすることを防止する。
【解決手段】本開示は、物体の初期物体推定を検証することに関する。１つ又は複数の物体を含む環境を表す二次元（２Ｄ）画像を取得し得る。２Ｄ画像は、物体のエッジを検出するために検査され得る。エッジを処理して、初期物体推定を検証又は更新し、物体検出結果の正確度を向上させ得る。
【選択図】図８【図１】
0006749034.tif 000002
【図２】
0006749034.tif 000003
【図３】
0006749034.tif 000004
【図４】
0006749034.tif 000005
【図５】
0006749034.tif 000006
【図６】
0006749034.tif 000007
【図７】
0006749034.tif 000008
【図８】
0006749034.tif 000009
【図９】
0006749034.tif 000010