IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社MUJINの特許一覧

特許7571951自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム
<>
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図1
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図2
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図3A
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図3B
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図3C
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図4A
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図4B
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図5
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図6
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図7
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図8
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図9
  • 特許-自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】自動パッケージ登録機構および最小実行可能領域検出を備えたロボットシステム
(51)【国際特許分類】
   B65G 59/02 20060101AFI20241016BHJP
   G06T 7/00 20170101ALI20241016BHJP
   B25J 13/08 20060101ALI20241016BHJP
【FI】
B65G59/02 Z
G06T7/00 C
B25J13/08 A
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2020212616
(22)【出願日】2020-12-22
(62)【分割の表示】P 2020514759の分割
【原出願日】2019-10-29
(65)【公開番号】P2021050100
(43)【公開日】2021-04-01
【審査請求日】2022-10-27
(31)【優先権主張番号】62/852,963
(32)【優先日】2019-05-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/752,756
(32)【優先日】2018-10-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ユ,ジンズ
(72)【発明者】
【氏名】ロドリゲス,ジョセ ジェロニモ モレイラ
(72)【発明者】
【氏名】デアンコウ,ロセン ニコラエフ
(72)【発明者】
【氏名】ヨウ,シュタオ
【審査官】大塚 多佳子
(56)【参考文献】
【文献】特開平07-299782(JP,A)
【文献】特開平11-333770(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B65G 59/02
G06T 7/00
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
プロセッサ命令を記憶した有形で非一時的なコンピュータ読み取り可能な媒体であって、前記プロセッサ命令は、プロセッサによって実行されると、前記プロセッサに、
1つまたは複数の物体を含む対象スタックを表す1つまたは複数の画像データを受信させ、
それに関連付けられた1つまたは複数の露出した辺を、前記1つまたは複数の画像データに基づいて識別させ、
前記露出した辺に対向する1つまたは複数の補完的な辺を識別させ、
前記露出した辺および前記補完的な辺に基づいて、最初の最小実行可能領域(MVR)を生成させ、
前記1つまたは複数の補完的な辺の側で、前記1つまたは複数の露出した辺に対向する1つまたは複数の対向する辺の識別に基づいて、前記最初のMVRを調整するかどうかを決定させる、
前記有形で非一時的なコンピュータ読み取り可能媒体。
【請求項2】
前記露出した辺は、登録されていない物体を表す、請求項1に記載の媒体。
【請求項3】
前記補完的な辺は、前記露出した辺と交差する1つまたは複数の他の辺を識別することに基づいて識別される、請求項1に記載の媒体。
【請求項4】
前記最初のMVRは、前記1つまたは複数の物体の推定された周囲の辺の間のエリアを表すように調整される、請求項1に記載の媒体。
【請求項5】
前記露出した辺は、露出した外側角部を画定する第1の露出した辺および第2の露出した辺を含み、
前記補完的な辺は、第1の最初の補完的な辺および第2の最初の補完的な辺を含む最初の補完的な辺のセットであり、前記第1の最初の補完的な辺と前記第2の最初の補完的な辺は、それぞれ、前記第1の露出した辺と前記第2の露出した辺に平行であると決定され、
前記最初のMVRを調整するかどうかを決定することは、
前記第1の露出した辺と交差し、前記第2の最初の補完的な辺および前記第2の露出した辺と平行であると決定された、さらなる補完的な辺として、前記1つまたは複数の対向する辺を識別することと、
前記補完的な辺と前記さらなる補完的な辺との間のエリアを含む追加の妥当なMVR領域を識別することと、
前記追加の妥当なMVR領域と前記最初のMVRとを組み合わせた候補MVRをテストすることと、
を含む、請求項1に記載の媒体。
【請求項6】
テストすることは、前記候補MVRの1つまたは複数の寸法がMVRの最大および/または最小寸法閾値を満たすか否かを検証することを含む、請求項5に記載の媒体。
【請求項7】
テストすることは、前記追加の妥当なMVR領域と前記最初のMVRとに対応する前記1つまたは複数の画像データの部分の深度測定値、色、明るさ、または、それらの組み合わせが、互いから閾値連続範囲にあるか否かを検証することを含む、請求項5に記載の媒体。
【請求項8】
前記候補MVRが1つまたは複数の所定の閾値を満たさない時、前記追加の妥当なMVR領域を有さずに、前記最初のMVRを調整するかどうかを決定することを含む、請求項5に記載の媒体。
【請求項9】
前記露出した辺は、露出した外側角部を画定する第1の露出した辺および第2の露出した辺を含み、
前記補完的な辺は、第1の最初の補完的な辺および第2の最初の補完的な辺を含む最初の補完的な辺のセットであり、前記第1の最初の補完的な辺と前記第2の最初の補完的な辺は、それぞれ、前記第1の露出した辺と前記第2の露出した辺に平行であると決定され、
前記最初のMVRを調整するかどうかを決定することは、
前記第2の最初の補完的な辺と前記露出した外側角部との間にあり、且つ、前記第2の最初の補完的な辺および前記第2の露出した辺に平行であると決定された、さらなる補完的な辺として、前記1つまたは複数の対向する辺を識別することと、
前記第2の最初の補完的な辺の代わりに、前記さらなる補完的な辺によって区切られた前記最初のMVR内のエリアとして縮小された候補MVRを識別することと、
前記縮小された候補MVRをテストすることと、
を含む、請求項1に記載の媒体。
【請求項10】
前記最初のMVRを調整するかどうかを決定することは、前記縮小された候補MVRの1つまたは複数の寸法がMVRの最大および/または最小寸法閾値を満たすかどうかを決定することを含む、請求項9に記載の媒体。
【請求項11】
前記さらなる補完的な辺を識別することは、
前記最初の補完的な辺のセットに関連付けられた第2の角部を識別することと、
前記第2の角部から離れる方に前記第1の最初の補完的な辺に沿って移動しながら、前記さらなる補完的な辺との交点を検索することと、
(1)前記さらなる補完的な辺と前記第1の最初の補完的な辺との間の角度が、直角を表す閾値範囲内にあること、および/または、(2)前記さらなる補完的な辺と前記第2の露出した辺に沿った、対応する点の複数のセット間の距離のセットが、互いから閾値範囲内にあることを検証することに基づいて、前記さらなる補完的な辺の向きをテストすることと、
を含む、請求項9に記載の媒体。
【請求項12】
前記1つまたは複数の画像データは、(1)水平面に沿った位置の深度測定値を含む3D画像出力と、(2)前記水平面に沿った前記物体のうちの1つまたは複数を視覚的に表す2D画像出力とを含み、
前記露出した辺を識別することは、
互いから閾値範囲内の前記深度測定値を有する前記3D画像出力の前記水平面に沿った隣り合う位置の各セットとして、分離した層を識別することと、
前記分離した層の周囲の境界を3Dの辺として識別することと、
を含み、
前記プロセッサはさらに、前記露出した辺である3Dの辺のセットによって形成された交点を選択することによって前記露出した外側角部を識別させられ、
前記さらなる補完的な辺を識別することは、前記3D画像出力、前記2D画像出力、または、これらの組み合わせを分析することに基づいて、不完全な辺および/または検出された線を識別することを含む、
請求項9に記載の媒体。
【請求項13】
前記最初のMVRを調整するかどうかを決定することは、
前記3D画像出力を分析することに基づいて、(1)前記第1の露出した辺に沿って前記第2の最初の補完的な辺より前記露出した外側角部の方に近く、且つ、(2)前記第2の最初の補完的な辺および前記第2の露出した辺と平行である、3Dの辺を識別することと、
前記第2の最初の補完的な辺と前記3Dの辺との間のエリアをさらに含むように前記最初のMVRを調整することと、
を含み、
前記さらなる補完的な辺は、前記調整された最初のMVRに対応する前記2D画像出力の部分を分析した結果であり、
前記縮小された候補MVRは、前記調整された最初のMVR内の前記エリアを含む、
請求項12に記載の媒体。
【請求項14】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに接続され、前記プロセッサにより実行可能な命令を記憶した少なくとも1つのメモリデバイスと、
を含むロボットシステムであって、前記命令は、
1つまたは複数の物体を表す1つまたは複数の画像データを受信する命令と、
1つまたは複数の露出した辺を、前記1つまたは複数の画像データに基づいて識別する命令と、
前記1つまたは複数の露出した辺に基づいて、最初の最小実行可能領域(MVR)を生成する命令と、
前記1つまたは複数の露出した辺に対向する1つまたは複数の補完的な辺の識別に基づいて、前記最初のMVRを調整するかどうかを決定する命令と、
である、前記ロボットシステム。
【請求項15】
前記少なくとも1つのメモリデバイスは、
3D深度測定値を含む前記1つまたは複数の画像データを受信する命令と、
それぞれ、閾値連続範囲内の前記3D深度測定値を有する隣り合う位置のセットを含む1つまたは複数の表面を、前記3D深度測定値に基づいて識別することと、
前記表面の横方向の境界に対応する3Dの辺を、前記識別された表面に基づいて、識別することと、
前記露出した辺に対応する、前記表面の1つを区切る第1の3Dの辺と第2の3Dの辺とを含む一対の3Dの辺の間の接合点として、露出した外側角部を識別することと、
に基づいて、前記露出した外側角部を識別する命令と、
前記第1の3Dの辺に対向する、前記1つまたは複数の補完的な辺の第1の補完的な辺を識別することと、
前記第2の3Dの辺に対向する、前記1つまたは複数の補完的な辺の第2の補完的な辺を識別することと、
に基づいて、前記露出した辺と前記第1の補完的な辺および前記第2の補完的な辺とによって区切られたエリアを含む前記最初のMVRを生成する命令と、
を含む、請求項14に記載のロボットシステム。
【請求項16】
前記少なくとも1つのメモリデバイスは、
前記第2の補完的な辺から前記第1の3Dの辺に沿って前記露出した外側角部から離れる方に移動しながら、さらなる補完的な辺、前記第2の3Dの辺、および、前記第2の補完的な辺が、互いに平行であると決定される、さらなる補完的な辺として、1つまたは複数の対向する辺を識別することと、
前記最初のMVRと、さらなる補完的な辺と前記第2の補完的な辺との間のエリアとを組み合わせた候補MVRを、最大および/または最小寸法閾値にしたがってテストすることと、
に基づいて、前記最初のMVRを調整するかどうかを決定する命令を含む、
請求項15に記載のロボットシステム。
【請求項17】
前記少なくとも1つのメモリデバイスは、前記候補MVRが前記最大および/または前記最小寸法閾値を満たさない時、さらなる補完的な辺と前記第2の補完的な辺との間の前記エリアを有さずに、前記最初のMVRを調整するかどうかを決定する命令を含む、請求項16に記載のロボットシステム。
【請求項18】
前記少なくとも1つのメモリデバイスは、前記候補MVRが前記最大および/または前記最小寸法閾値を満たす時、前記最初のMVRを調整するかどうかを決定する命令を含む、請求項16に記載のロボットシステム。
【請求項19】
1つまたは複数の物体を表す1つまたは複数の画像データを受信することと、
1つまたは複数の露出した辺を、前記1つまたは複数の画像データに基づいて識別することと、
前記1つまたは複数の露出した辺に基づいて最初の最小実行可能領域(MVR)を生成することと、
前記1つまたは複数の露出した辺に対向する1つまたは複数の補完的な辺の識別に基づいて、前記最初のMVRを調整するかどうかを決定することと、
を含む、方法。
【請求項20】
3D深度測定値を含む前記1つまたは複数の画像データを受信することと、
3D深度測定値にしたがって、前記1つまたは複数の画像データを分析することに基づいて、露出した外側角部を識別することと、
前記1つまたは複数の露出した辺の第1の露出した辺に対向する辺である第1の補完的な辺と、前記1つまたは複数の露出した辺の第2の露出した辺に対向する辺である第2の補完的な辺とを識別することに基づいて、前記第1の露出した辺および前記第2の露出した辺と、前記第1の補完的な辺および前記第2の補完的な辺とによって区切られたエリアを含む前記最初のMVRを生成することと、
を含み、
前記第1の露出した辺および前記第2の露出した辺は、前記露出した外側角部を画定する、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2018年10月30日出願の米国仮特許出願番号第62/752,756号の利益を主張し、参照によりその全体を本明細書に組み込む。本出願は、さらに、2019年5月24日出願の米国仮特許出願番号第62/852,963号の利益を主張し、参照によりその全体が本明細書に組み込まれる。本出願は、2019年3月1日出願の米国特許出願番号第16/290,741号であり、現在、米国特許番号第10,369,701号にも関連し、参照によりその全体が本明細書に組み込まれる。
【0002】
本出願は、Jinze Yu、Jose Jeronimo Moreira Rodrigues、および、Rose Nikolaev Diankovによる同時出願の米国特許出願「A ROBOTIC SYSTEM WITH AUTOMATED PACKAGE REGISTRATION MECHANISM AND AUTO-DETECTION PIPELINE」に関連する主題も含む。関連出願は、Mujin社に譲渡され、整理番号131837-8003.US50で識別され、その主題は、参照により本明細書に組み込まれる。
【0003】
本技術は、一般的に、ロボットシステムを対象とし、より具体的には、物体を登録するシステム、プロセス、および、技術を対象とする。
【背景技術】
【0004】
多くの場合、パッケージは、目的地への出荷のためにパレットに配置され(または、「パレタイズされ」)、その後、目的地で、デパレタイズされる。パッケージは、資源集約的になったり、怪我の危険性を高めたりする人間作業者によってデパレタイズされる場合がある。産業環境においては、デパレタイズ作業は、パッケージを把持し、持ち上げ、運搬し、解放点に届けるロボットアーム等の産業用ロボットによって行われる。また、撮像装置を利用して、パレットに積まれたパッケージのスタックの画像が撮影される。システムは、画像を処理して、登録データソースに記憶された登録画像と撮影画像を比較する等によって、パッケージがロボットアームによって効率的に取り扱われることが保証され得る。
【0005】
また、パッケージの撮影画像が、登録画像に一致する場合がある。また、結果として、撮影された物体の物理的特性(例えば、パッケージの寸法、重量、および/または、質量中心の測定値)が未知の場合がある。物理的特性の正確な識別に失敗すると、様々な望ましくない結果につながり得る。例えば、このような失敗は停止の原因となることがあり、停止すると、パッケージを手動で登録することが必要となり得る。また、このような失敗に起因して、特に、パッケージが比較的重いおよび/または傾いている場合、パッケージの取り扱いを誤る結果となり得る。
【0006】
技術の様々な特徴および特性は、発明を実施するための形態を図面と共に検討すると、当業者には明らかになろう。技術の実施形態を、図面に例として示すが、図面に制限されるものではない。図面中、類似の参照番号は類似の要素を示してよい。
【図面の簡単な説明】
【0007】
図1】ロボットシステムが動作し得る環境の例を示す。
図2】本技術の1つまたは複数の実施形態による、ロボットシステムを示す。
図3A】本技術の1つまたは複数の実施形態による、ロボットシステムが処理する物体のスタックの例を示す。
図3B】本技術の1つまたは複数の実施形態による、スタックの例の上面を示す。
図3C】本技術の1つまたは複数の実施形態による、上面に対応するセンサデータを示す。
図4A】本技術の1つまたは複数の実施形態による、最初の動作セットの後の上面に対応するセンサデータを示す。
図4B】本技術の1つまたは複数の実施形態による、図4Aに示されたセンサデータの一部を示す。
図5】本技術のある実施形態による、パレタイズされたパッケージのセットの上面図を示す。
図6】本技術のある実施形態による、露出した外側角部のグラフィック表現を示す。
図7】本技術のある実施形態による、パレタイズされたパッケージのセットの上面図を示す。
図8】本技術のある実施形態による、マージされたMVR領域の例を示す。
図9】本技術のある実施形態による、図1のロボットシステムを動作させる方法のブロック図である。
図10】本明細書に記載の少なくとも幾つかの動作を実施できる処理システムの例を示すブロック図である。
【発明を実施するための形態】
【0008】
図面は、説明のためだけに様々な実施形態を示す。本技術の趣旨を逸脱することなく、代替実施形態を採用してよいことを当業者は認識されよう。したがって、特定の実施形態を図面に示すが、技術は、様々な修正を受け入れてよい。
【0009】
自動パッケージ登録機構を備えたロボットシステムのためのシステムおよび方法を本明細書に記載する。ある実施形態にしたがって構成されたロボットシステム(例えば、1つまたは複数の指定されたタスクを実行するデバイスを統合したシステム)は、未知の、または、認識されていない物体(例えば、パッケージ、箱、ケース等)、(例えば、人間オペレータによる入力が殆どまたは全く無しに)操作し、自律的/自動的に登録することによって、使用性と柔軟性を向上させる。
【0010】
物体が認識されたか否かを判断するために、ロボットシステムは、スタート位置の物体に関するデータ(例えば、物体の露出した表面の1つまたは複数の画像)を取得し、既知のまたは予測される物体の登録データと比較できる。ロボットシステムは、比較されたデータ(例えば、比較された画像の一部)が、物体の1つの登録データ(例えば、登録された表面画像の1つ)と一致する時、その物体は認識されていると判断できる。ロボットシステムは、比較されたデータが既知または予測される物体の登録データと一致しない時、物体は認識されていないと判断できる。
【0011】
ロボットシステムは、1つまたは複数の推定にしたがって、認識されていない物体を操作でき、認識されていない物体に関する追加情報(例えば、表面画像および/または物理的寸法)を決定できる。例えば、ロボットシステムは、他の物体とは離れたまたは隣り合わない認識されていない物体の露出した辺(エッジ、縁)および/または露出した外側角部を識別できる。
【0012】
推定は、対応する認識されていない物体と接触および持ち上げるのに必要な最小限および/または最適なエリアを表す最小実行可能領域(MVR)を生成することを含み得る。MVR生成時に、露出した外側角部および露出した辺は、点群データを検査することによって識別されてよい。識別された露出した外側角部および露出した辺に基づいて、最初のMVRが、露出した辺の反対側の対向する辺を識別することによって生成されてよい。説明のための例として、対の露出した辺は、互いに直交して、露出した外側角部を形成してよい。このような物体の最初のMVRは、露出した外側角部から露出した辺に沿って識別された対向する辺に延びてよい。
【0013】
ある実施形態においては、最初のMVRは、最初のMVRから点群によって画定される領域の端まで拡大することによって、潜在的MVR領域をテストすること等によって、さらに処理されてよい。物体のマージされたMVRは、最初のMVRと潜在的MVRとを含んでよい。マージされたMVRが1つまたは複数の所定の条件を満たす時、検証されたMVRが生成されてよい。検証されたMVRは、認識されていない物体を含む正確な領域を表してよい。検証されたMVRに基づいて、本明細書に記載のシステムは、物体を登録してよく、物体を把持および/または移動する等によって、物体に対するタスクを行ってよい。
【0014】
以下の記載において、本開示の技術の完全な理解を提供するために、多くの特定の詳細を記載する。他の実施形態においては、本明細書で紹介される技術は、これらの特定の詳細が無くても実践され得る。他の例においては、特定の機能またはルーチン等の周知の特徴は、本開示を不必要に曖昧にしないように、詳細には記載しない。本明細書において、「ある実施形態」、「一実施形態」等の言及は、記載している特定の特徴、構造、材料、または、特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるこのような句の出現は、全て同じ実施形態を必ずしも指してはいない。他方、このような言及は、必ずしも互いに排他的なものではない。さらに、特定の特徴、構造、材料、または、特性は、1つまたは複数の実施形態において、任意の適切な方法で組み合わせることができる。図に示す様々な実施形態は、説明のための表現に過ぎず、必ずしも、縮尺通りに描いてはいないことを理解されたい。
【0015】
ロボットシステムおよびサブシステムに関連付けられることが多いが、開示の技術の幾つかの重要な態様を不必要に曖昧にし得る構造またはプロセスを記載する周知の幾つかの詳細は、明確にするために、以下には記載していない。さらに、以下の開示は、本技術の異なる態様の幾つかの実施形態を記載するが、幾つかの他の実施形態は、この項に記載するのとは異なる構成または構成要素を有し得る。したがって、開示の技術は、追加の要素を有する、または、以下に記載の要素の幾つかを含まない他の実施形態を有し得る。
【0016】
以下に記載の本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはプロセッサによって実行されるルーチンを含む、コンピュータまたはプロセッサで実行可能な命令の形を取り得る。以下に示し、記載する以外のコンピュータまたはプロセッサシステムで開示の技術を実践できることを当業者は理解されよう。本明細書に記載の技術は、以下に記載のコンピュータ実行可能命令の1つまたは複数を実行するように特別にプログラム、構成、または、構築された専用コンピュータまたはデータプロセッサで実現できる。したがって、本明細書で一般的に使用される「コンピュータ」および「プロセッサ」という用語は、任意のデータプロセッサを指し、(パームトップコンピュータ、ウェアラブルコンピュータ、セルラーフォン、モバイルフォン、マルチプロセッサシステム、プロセッサベースもしくはプログラム可能家電製品、ネットワークコンピュータ、ミニコンピュータ等を含む)インターネット家電およびハンドヘルドデバイスを含み得る。これらのコンピュータおよびプロセッサが取り扱う情報は、液晶ディスプレイ(LCD)を含む任意の適切な表示媒体に提示できる。コンピュータまたはプロセッサで実行可能なタスクを実行するための命令は、ハードウェア、ファームウェア、または、ハードウェアおよびファームウェアの組み合わせを含む、任意の適切なコンピュータ読み取り可能媒体に記憶できる。命令は、例えば、フラッシュドライブおよび/または他の適切な媒体を含む任意の適切なメモリデバイスに含まれてよい。
【0017】
「結合された」および「接続された」という用語、並びに、これらの派生語は、構成要素間の構造的関係を記載するために本明細書では使用されてよい。これらの用語は、互いに同意語と意図されていないことを理解されたい。むしろ、特定の実施形態において、「接続された」を使用して、2つ以上の要素が互いに直接接触していることを示すことができる。文脈においてそうでないことが明らかでない限り、「結合された」という用語を使用して、2つ以上の要素が、互いに直接的または間接的に(要素と要素の間に他の介在する要素がある)接触していること、(例えば、信号送信/受信、または、関数呼び出し等の因果関係においてのように)2つ以上の要素が互いに協力または相互作用すること、または、その両方を示すことができる。
【0018】
好適な環境
図1は、ロボットシステム100が動作し得る環境の例である。ロボットシステム100は、1つまたは複数のタスクを実行するように構成された1つまたは複数のユニット(例えば、ロボット)を含むことができる、および/または、それらと通信できる。梱包機構の態様は、様々なユニットによって実践または実施できる。
【0019】
図1に示す例に関しては、ロボットシステム100は、倉庫または分配/出荷拠点において、荷降ろしユニット102、移動ユニット104(例えば、パレタイズロボット、および/または、ピースピッキングロボット)、運搬ユニット106、積み込みユニット108、または、これらの組み合わせを含み得る。ロボットシステム100の各ユニットは、1つまたは複数のタスクを実行するように構成できる。タスクは、トラックまたはバンから物体を降ろし、物体を倉庫に保管する、または、保管場所から物体を降ろし、出荷の準備をする等、目的を達成する動作を行うように順次、組み合わせることができる。他の例に関しては、タスクは、対象位置(例えば、パレットの上、および/または、大箱/ケージ/箱/ケース内)に物体を載置することを含み得る。以下に記載のように、ロボットシステムは、物体を載置するおよび/または積み重ねるための計画(例えば、載置位置/向き、物体を移動させる順番、および/または、対応する動作計画)を導出できる。各ユニットは、導出された計画の1つまたは複数にしたがって(例えば、ユニットの1つまたは複数の構成要素を動作させることによって)一連のアクションを実行してタスクを実行するように構成されてよい。
【0020】
ある実施形態においては、タスクはスタート位置114からタスク位置116への対象物体112(例えば、実行するタスクに対応するパッケージ、箱、ケース、ケージ、パレット等の1つ)の操作(例えば、移動および/または向きの変更)を含み得る。例えば、荷降ろしユニット102(例えば、デバンニングロボット)は、運搬装置(例えば、トラック)内の位置から、コンベヤベルト上の位置に対象物体112を移動するように構成されてよい。また、移動ユニット104は、1つの位置(例えば、コンベヤベルト、パレット、または、大箱)から他の位置(例えば、パレット、大箱等)に対象物体112を移動するように構成されてよい。他の例に関しては、移動ユニット104(例えば、パレタイズロボット)は、対象物体112を元の位置(例えば、パレット、ピックアップエリア、および/または、コンベヤ)から目的パレットに移動するように構成されてよい。動作を完了する時、運搬ユニット106は、移動ユニット104に関連付けられたエリアから、積み込みユニット108に関連付けられたエリアに対象物体112を移動でき、積み込みユニット108は、移動ユニット104から保管場所(例えば、棚上の位置)に(例えば、対象物体112を載せたパレットを動かすことによって)対象物体112を移動できる。このタスクおよびそれに関連する動作に関する詳細を以下に記載する。
【0021】
説明目的で、ロボットシステム100を、出荷センタの文脈で記載するが、ロボットシステム100は、製造、アセンブリ、梱包、ヘルスケア、および/または、他の種類の自動化等、他の環境において/他の目的のために、タスクを実行するように構成されてよいことは理解されたい。ロボットシステム100は、図1に示されていない、マニピュレータ、サービスロボット、モジュール式ロボット等、他のユニットを含み得ることも理解されたい。例えば、ある実施形態においては、ロボットシステム100は、ケージカートまたはパレットからコンベヤまたは他のパレット上に物体を移動するデパレタイズユニット、1つのコンテナから別のコンテナに物体を移動するコンテナ切替ユニット、物体を梱包する梱包ユニット、物体の1つまたは複数の特性にしたがって物体をグループにする仕分けユニット、物体の1つまたは複数の特性にしたがって物体を異なるように操作(例えば、仕分け、グループ化、および/または、移動)するピースピッキングユニット、または、これらの組み合わせを含み得る。
【0022】
ロボットシステム100は、動き(例えば、回転変位および/または並進変位)のためにジョイントに接続された物理的または構造的な部材(例えば、ロボットマニピュレータアーム)を含み得る。構造部材およびジョイントは、ロボットシステム100の使用/動作に応じて、1つまたは複数のタスク(例えば、把持、回転、溶接等)を実行するように構成されたエンドエフェクタ(例えば、把持部)を操作するように構成された運動連鎖を形成できる。ロボットシステム100は、対応するジョイントを中心に、または、対応するジョイントで構造部材を駆動または操作(例えば、変位、および/または、向き変更)するように構成された駆動装置(例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマー等)を含み得る。ある実施形態においては、ロボットシステム100は、対応するユニット/シャシを場所から場所へと運搬するように構成された運搬モータを含み得る。
【0023】
ロボットシステム100は、構造部材を操作するため、および/または、ロボットユニットを運搬するため等、タスクの実施に使用される情報を取得するように構成されたセンサを含み得る。センサは、ロボットシステム100の1つまたは複数の物理的特性(例えば、ロボットシステムの1つまたは複数の構造部材/ジョイントの状況、条件、および/または、位置)、および/または、周囲環境の1つまたは複数の物理的特性を検出または測定するように構成されたデバイスを含み得る。センサの幾つかの例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、位置エンコーダ等を含み得る。
【0024】
ある実施形態においては、例えば、センサは、周囲環境を検出するように構成された1つまたは複数の撮像装置(例えば、視覚および/または赤外線カメラ、二次元(2D)および/または三次元(3D)イメージングカメラ、ライダまたはレーダ等の距離測定装置等)を含み得る。撮像装置は、(例えば、自動検査、ロボット誘導、または、他のロボット用途のために)機械/コンピュータビジョンを介して処理され得る、デジタル画像および/または点群等、検出された環境の表現を生成し得る。以下にさらに詳細に記載するように、ロボットシステム100は、デジタル画像および/または点群を処理して、対象物体112、スタート位置114、タスク位置116、対象物体112の姿勢、スタート位置114および/または姿勢に関する信頼基準、または、これらの組み合わせを識別できる。
【0025】
対象物体112を操作するために、ロボットシステム100は、指定エリア(例えば、トラック内またはコンベヤベルト上等のピックアップ位置)の画像を撮影、分析して、対象物体112と対象物体112のスタート位置114とを識別できる。同様に、ロボットシステム100は、別の指定エリア(例えば、コンベヤ上に物体を載置するための投下位置、コンテナ内の物体を置く位置、または、積み重ねるためのパレット上の位置)の画像を撮影、分析して、タスク位置116を識別できる。例えば、撮像装置は、ピックアップエリアの画像を生成するように構成された1つまたは複数のカメラ、および/または、タスクエリア(例えば、投下エリア)の画像を生成するように構成された1つまたは複数のカメラを含み得る。撮影画像に基づいて、以下に記載のように、ロボットシステム100は、スタート位置114、タスク位置116、関連する姿勢、梱包/載置計画、運搬/梱包順序、および/または、他の処理結果を決定できる。
【0026】
ある実施形態においては、例えば、センサは、構造部材(例えば、ロボットアームおよび/またはエンドエフェクタ)、および/または、ロボットシステム100の対応するジョイントの位置を検出するように構成された位置センサ(例えば、位置エンコーダ、ポテンショメータ等)を含み得る。ロボットシステム100は、タスク実行中に、位置センサを使用して、構造部材および/またはジョイントの位置および/または向きを追跡できる。
【0027】
目的地ベースのセンサを用いた物体の移動および登録
図2は、本技術の1つまたは複数の実施形態による、図1のロボットシステム100の図である。ロボットシステム100は、エンドエフェクタ204(例えば、把持部)を含むロボットアーム202(例えば、図1の移動ユニット104のインスタンス)を含み得る。ロボットアーム202は、図1のスタート位置114と図1のタスク位置116との間で対象物体112を移動するように構成されてよい。図2に示すように、スタート位置114は、対象スタック210(例えば、物体のグループ)を載せたパレット208を有し得る。ロボットアーム202のタスク位置116は、コンベヤ206(例えば、図1の運搬ユニット106のインスタンス)の載置位置(例えば、開始/放出点)であってよい。例えば、ロボットアーム202は、対象スタック210から物体を掴み取るように、且つ、物体を他の目的地/タスクに運搬するためにコンベヤ206に載せるように構成されてよい。
【0028】
ロボットシステム100は、ロボットアーム202を用いた移動動作を行う時、1つまたは複数のセンサを使用できる。ある実施形態においては、ロボットシステム100は、第1の画像センサ212および/または第2の画像センサ214を含み得る。第1の画像センサ212は、スタート位置114を撮影および/または分析するように構成された、カメラおよび/またはデプスセンサ等、1つまたは複数の2Dおよび/または3Dセンサを含み得る。第2の画像センサ214は、タスク位置116を撮影および/または分析するように構成された、カメラおよび/またはデプスセンサ等、1つまたは複数の2Dおよび/または3Dセンサを含み得る。例えば、第1の画像センサ212は、スタート位置114より上でスタート位置114の方を向く既知の位置に配置された1つまたは複数のカメラおよび/またはデプスセンサを含み得る。第1の画像センサ212は、対象スタック210の上面図等、スタート位置114の1つまたは複数の上面図に対応する画像データ(例えば、3D点群、および/または、視覚もしくは2D画像)を生成できる。以下にさらに詳細に記載するように、ロボットシステム100は、第1の画像センサ212からの画像データを使用して、対象スタック210の認識されていない(例えば、登録されていない)物体の最小実行可能領域(MVR)を導出できる。ロボットシステム100は、認識されていない物体をスタート位置114からタスク位置116に移動させる時等、MVRを使用して、認識されていない物体を(例えば、エンドエフェクタ204を介して)把持し、(例えば、ロボットアーム202を介して)操作できる。また、第2の画像センサ214は、タスク位置116の上/横でタスク位置116の方を向く1つまたは複数の既知の位置、または関連する空間に配置された1つまたは複数のカメラおよび/またはデプスセンサを含み得る。したがって、第2の画像センサ214は、タスク位置116に、または、タスク位置116から閾値距離内にある対象物体112の1つまたは複数の上面図および/または側面図に対応する画像データを生成できる。
【0029】
物体認識
本技術の1つまたは複数の実施形態にしたがって、図3Aは、図1のロボットシステム100によって処理される物体のスタックの例(例えば、図2の対象スタック210)の図であり、図3Bは、スタックの例の上面の図(例えば、対象スタック210の実際の上面図310)であり、図3Cは、上面に対応するセンサデータ(例えば、上面図データ320)の図である。図3A、3B、および3Cを一緒に参照すると、ロボットシステム100は、前述のように、対象スタック210内の物体を、図1のタスク位置116(例えば、図2のコンベヤ206)等、他の位置に移動させるように構成されてよい。物体の移動に関しては、ロボットシステム100は、対象スタック210の上に配置された図2の第1の画像センサ212からの画像データ(例えば、上面図データ320)を使用できる。例えば、上面図データ320は、実際の上面図310を示すまたは表す1つまたは複数の視覚画像および/または1つまたは複数のデプスマップを含み得る。さらに、ロボットシステム100は、上面図データ320を分析して、物体の境界に対応し得る辺を識別できる。例えば、ロボットシステム100は、深度測定値および/または画像特性の差(例えば、異なる色、線形パターン、影、明瞭さの差等)に基づいて、画像データで表現された辺および/または連続した表面を識別できる。ロボットシステム100は、深度測定値の差等に基づいて等、露出した辺322(例えば、ほぼ同じ高さの他の物体/表面と水平に当接していない物体の上面の辺)を識別できる。
【0030】
対象スタック210は、予測された、または、以前のプロセスの物体の登録記録を含むマスタデータに登録された物体、および/または、マスタデータに登録されていない予測されていない物体を含んでよい。したがって、ロボットシステム100は、物体表面316の画像データを使用して、対象スタック210内にある物体を認識または識別できる。ある実施形態においては、ロボットシステム100は、画像データ、または、画像データの1つまたは複数の部分を、マスタデータと比較して、対象スタック210内の物体を認識できる。例えば、ロボットシステム100は、上面図データ320の一部が登録データの物体表面316の1つまたは複数の画像に一致する時、対象スタック210内の既知の物体(例えば、認識された物体312)を識別できる。実際の上面図310の残りの部分(例えば、登録データと一致しない部分)は、認識されていない物体314に対応し得る。認識されていない物体314の辺は、図3Cに破線を用いて示される。
【0031】
画像データの一致に基づいて、ロボットシステム100は、対応する画像データ内で認識された物体312の位置を突き止めることができ、この位置は、さらに、(例えば、画素位置を座標系にマッピングするプレキャリブレーション表および/または方程式を介して)対象スタック210の実世界の位置に変換されてよい。さらに、ロボットシステム100は、認識された物体312の露出していない辺の位置を、一致に基づいて推定できる。例えば、ロボットシステム100は、認識された物体312の寸法をマスタデータから取得できる。ロボットシステム100は、認識された物体312の露出した辺322から既知の寸法によって分けられる画像データの部分を測定できる。マッピングにしたがって、ロボットシステム100は、認識された物体312の1つまたは複数の登録に基づいた辺324を決定できる、および/または、上記のように、登録に基づいた辺324を実世界の位置に同様にマッピングできる。
【0032】
ある実施形態においては、ロボットシステム100は、画像データ(例えば、点群データ)に表現された対象スタック210の露出した外側角部326を識別できる。例えば、ロボットシステム100は、異なる向きを有する(例えば、異なる角度で延びる)露出した辺322(例えば、3Dの辺とも呼ばれる、3D画像データで識別される辺)の2つ以上の間の交点/接合点を検出することに基づいて、露出した外側角部326を識別できる。1つまたは複数の実施形態において、ロボットシステム100は、90度より大きい、および/または、90度未満の閾値角度範囲等、所定範囲内にある角度(角度範囲とも呼ばれる)を露出した辺322が形成する時、露出した外側角部326を識別できる。以下に詳細に記載するように、ロボットシステム100は、露出した外側角部326と対応する露出した辺322とを使用して、認識されていない物体314を処理および/または操作できる。
【0033】
認識されていない物体の処理
ある実施形態においては、図1のロボットシステム100は、図2の対象スタック210内の物体の認識ステータスおよび/または相対的位置にしたがって、物体を処理(例えば、識別、および/または、移動)できる。例えば、ロボットシステム100は、認識された物体を最初に掴み、移動し、次に、センサ(例えば、図2の第1の画像センサ212)から別の画像データセットを生成できる。図4Aは、本技術の1つまたは複数の実施形態による、最初の動作セット(例えば、認識された物体312を掴むこと、および、移動すること)の後の上面に対応するセンサデータ401の図である。図4Aの網掛部分は、図3Bおよび図3Cに示された認識された物体312を取り除いた後の深度測定値の変化に対応する。
【0034】
ロボットシステム100が、画像データ(例えば、2D画像および/または3D点群)の認識された物体312のいずれも識別しない時、ロボットシステム100は、図3Aの認識されていない物体314を突き止めるために、画像データを処理して、いずれかの露出した角部326および/または露出した辺322を識別できる。例えば、ロボットシステム100は、上記と同様に、センサデータ401(例えば、3D点群)を処理して、露出した外側角部326および/または露出した辺322を識別できる。したがって、ロボットシステム100は、認識された物体312を取り除いた後に露出された角部/辺をさらに識別し、および/または、突き止めることができる。ある実施形態においては、ロボットシステム100は、対応する閾値角度範囲にしたがって、露出した辺322の2つ以上の間の交点/接合点として、露出した内側角部402をさらに識別できる。例えば、ロボットシステム100は、対応する連続した表面に対して180度を超える露出した辺322の2つ以上の間の接合点として、露出した内側角部402を識別できる。ある実施形態においては、ロボットシステム100は、露出した辺322が、270度より大きい、および/または、270度未満の閾値角度範囲内にある角度を形成する時、露出した内側角部402を識別できる。
【0035】
ある実施形態においては、認識された物体312が何も残っていない時、ロボットシステム100は、露出した角部および/または露出した辺に基づいて、(例えば、認識されていない物体314のうちから)対象スタック210の登録対象406を識別できる。例えば、ロボットシステム100は、プリファレンスのセット、および/または、スコア機構にしたがって、露出した角部/辺を評価できる。ある実施形態においては、ロボットシステム100は、図2のロボットアーム202に最も近い露出した外側角部326を選択するように構成されてよい。ロボットシステム100は、センサデータ401の対応する領域と、選択された露出した外側角部326に関連付けられた対応する認識されていない物体314とを選択できる。換言すると、認識された物体312を処理した後、ロボットシステム100は、対象スタック210の露出した外側角部326を形成/構成する認識されていない物体314を処理できる。センサデータ401の対応する部分を(例えば、MVRを導出することによって)分析することに基づいて、ロボットシステム100は、認識されていない物体314を把持し、把持した物体を持ち上げ、および/または、水平に移動し、および/または、登録のために把持した物体を撮影できる。さらに、把持した物体を撮影した後、ロボットシステム100は、把持した物体を目的地(例えば、図2のコンベヤ206)に移動できる。
【0036】
センサデータの分析をさらに記載するために、図4Bは、本技術の1つまたは複数の実施形態による、図4Aのセンサデータ401の一部分の詳細な図4Bである。ロボットシステム100は、センサデータ401を分析して、把持位置420の決定に使用できるMVR412を導出できる。MVR412は、物体と接触、物体を把持、および/または、物体を持ち上げるのに使用される最小サイズのエリアを表すことができる。したがって、ある実施形態においては、MVR412は、図2のエンドエフェクタ204に基づいてよい。例えば、MVR412は、エンドエフェクタ204が占めるx-y平面に沿ったエリア等、エンドエフェクタ204の取付面積(例えば、把持部の吸引カップ)、または、取付面積を囲む追加の/緩衝領域を有するより大きいエリアに関連付けられてよい。また、例えば、MVR412は、認識されていない物体(例えば、選択された登録対象)の水平方向の境界/辺の推定された位置に関連付けられてよい。ある実施形態においては、MVR412は、最小および/または最大候補サイズに対応してよく、それぞれ、対象スタック210の物体の最小または最大の可能なインスタンスの物理的寸法(例えば、長さ、幅、高さ、直径、外周等)に対応し得る。換言すると、ロボットシステム100は、対象スタック210内には、最小候補サイズより小さい寸法を有する物体も最大候補サイズより大きい寸法を有する物体も無いと判断できる。最小候補サイズおよび最大候補サイズは、所定の値(すなわち、対象スタック210を処理する前に与えられたまたは既知の値)であってよい。MVR412の導出に関する詳細を以下に記載する。
【0037】
ある実施形態においては、ロボットシステム100は、MVR412を使用して、潜在的な把持位置のセットを導出できる。例えば、ロボットシステム100は、第1の露出した辺と一直線になったMVR412の寸法を用いて第1の把持位置を導出でき、第2の露出した辺と一直線になった寸法を用いて第2の把持位置を導出できる。ある実施形態においては、ロボットシステム100は、露出した辺の1つと一直線になったMVR412を用いて2つ以上の把持位置を導出できる。また、ロボットシステム100は、MVR412内の、または、MVR412の一部と重なる第1の把持位置を導出できる。
【0038】
ロボットシステム100は、MVR412を用いて、把持位置420を決定できる。把持位置420は、最初の操作のためにエンドエフェクタ204の真下にくる、および/または、エンドエフェクタ204に接触する物体/スタック上のエリアに対応し得る。換言すると、ロボットシステム100は、次の操作(例えば、持ち上げプロセス、水平移動プロセス、および/または、登録のためのデータ収集プロセス)のために、把持位置420の上に把持部を置いて、対応する物体を把持できる。ある実施形態においては、ロボットシステム100は、可能な把持位置のセットから把持位置420を選択できる。例えば、ロボットシステム100は、(例えば、ロボットアームが露出した辺322にわたって延び、他の部分に重ならないことを優先して)アームの相対的向きにしたがって、把持位置のセットから選択できる。
【0039】
ある実施形態においては、ロボットシステム100は、検出された線422および/または推定された辺424に基づいて、把持位置420および/またはMVR412を導出できる。例えば、ロボットシステム100は、センサデータ401の深度測定値および/または画像特性の差に基づいて、検出された線422および/または推定された辺424を識別できる。ロボットシステム100は、露出した辺322と交際しない辺/線を、検出された線422として識別でき、検出された線422は、物体の表面のマーク内の線または物体の辺に対応し得る。ロボットシステム100は、少なくとも1つの露出した辺322と交差する結果を推定された辺424として識別できる。ロボットシステム100は、識別された辺/線の向きを露出した辺322の向きと比較することに基づいて、推定された辺424を識別/検証してよい。例えば、ロボットシステム100は、識別された辺/線が露出した辺322の1つと平行である時、識別された辺/線を推定された辺424として検証できる。ある実施形態においては、ロボットシステム100は、テストされた対の辺(例えば、識別された辺と、露出した辺322の1つ)上の2つ以上の対応する点の間の距離が等しいことを検証することに基づいて、平行な向きであることをテストできる。ある実施形態においては、テストされた対の辺が他の露出した辺と角度80度~100度の間で交差する時等、両辺が、同じ角度で共通の辺と交差する時、ロボットシステム100は、平行な向きを識別できる。
【0040】
したがって、ロボットシステム100は、検出された線422および/または推定された辺424と重ならない把持位置420を導出できる。ロボットシステム100は、MVR412の辺と、最も近くの検出された線422および/または推定された辺424との間の距離間の比率を釣り合わせることに基づいて、把持位置420を導出できる。ロボットシステム100は、MVR412に基づいた角部で、または、角部の近くで物体を把持するので、ロボットシステム100は、その比率を釣り合わせることに基づいて、任意の1つの特定の方向に沿った最大の潜在的トルクを低減する把持位置420を導出できる。また、ロボットシステム100は、推定された辺424および/または検出された線422と一致する、または、推定された辺424および/または検出された線422から外に延びるように、MVR412をさらに導出または調整してよい。
【0041】
ロボットシステム100は、導出した把持位置420を使用して、図2のロボットアーム202とエンドエフェクタ204とを操作できる。ロボットシステム100は、把持位置420でスタックの角部にある物体(例えば、登録対象406)を把持できる。ある実施形態においては、ロボットシステム100は、以前は露出していなかった辺を明瞭に区別するために、把持した物体を持ち上げ、および/または、水平に移動させることができる。例えば、ロボットシステム100は、辺を正確に区別するために、最小距離に対応する所定の高さだけ、物体を持ち上げ、および/または、物体を水平に移動させることができる。また、例えば、ロボットシステム100は、エンドエフェクタの高さの変化および/または傾きを監視および/または分析しながら、物体を持ち上げ、および/または水平に移動させることができ、それによって、露出した辺322の反対側の追加の辺が認識可能になる。ロボットシステム100は、最初の持ち上げ中、および/または、最初の持ち上げ後、データを取得および処理して、認識されていない物体314をさらに記述することができる。
【0042】
MVR検出の概要
本実施形態は、物体の正確な最小実行可能領域(MVR)を生成することに関連してよい。露出した外側角部および露出した辺は、2Dおよび/または3D画像データ(例えば、点群データ)を検査することによって識別されてよい。識別された露出した外側角部および露出した辺に基づいて、最初のMVRが、露出した辺に対向する辺を識別することによって生成されてよい。ある実施形態においては、ロボットシステム100は、露出した辺に対応する(例えば、に平行な)対向する辺(例えば、図4Bの推定された辺424)を識別することに基づいて、MVRを生成できる。最初のMVRは、露出した外側角部から露出した辺に沿って対向する辺にまで延びてよい。
【0043】
最初のMVRを決定した後、点群によって画定された最初のMVRから表面または層の端部まで延びる潜在的MVR領域(例えば、互いの閾値連続範囲内の深度測定値を有する横方向に隣り合う位置のセット)が、識別されてよい。物体のマージされたMVRは、最初のMVRと潜在的MVRとを含んでよい。検証されたMVRは、マージされたMVRを検査/テストすることによって生成されてよい。検証されたMVRは、認識されていない物体を含む正確な領域を表してよい。検証されたMVRに基づいて、本明細書に記載のロボットシステム100は、物体を登録してよく、物体の把持および/または移動等、物体に関するタスクを行ってよい。
【0044】
多くの場合、物体の辺(例えば、外側のまたは露出した辺)が、識別され得る。例えば、図2の対象スタック210の周囲に沿って配置された物体の外側の辺(例えば、図3Cの露出した辺322)は、取り囲んでいる物体が無くてよい、および/または、取り囲んでいるいずれの物体からも離れていてよい。したがって、撮像結果(例えば、3D点群)は、外側の辺を表す示された値(例えば、高さ測定値、および/または、色または明るさ等の画像値)の突然の変化を含み得る。しかしながら、多くの場合、他の辺は、見えない場合がある、または、(例えば、閾値信頼値に基づいて)正確に画定するのが困難な場合がある。例えば、箱の表面の設計/画像は、物体で識別された不正確な辺につながる場合がある。したがって、不完全な辺が原因で、2D/3D画像データの部分を正確に分離するのが困難な場合がある。
【0045】
ロボットシステム100は、画像データ(例えば、点群および/または2D画像)を検査し、1つまたは複数の層を決定することによって、物体の露出した外側角部326および/または露出した辺322を識別してよい。例えば、ロボットシステム100は、撮像結果に基づいて、対象スタック210の物体(複数可)の上層(例えば、図3Bの認識されていない物体314)を識別できる。上層内で、ロボットシステム100は、MVR導出のために、物体および/または表面の一部分(例えば、互いに閾値連続範囲内にある高さの値を有する領域)を選択できる。ロボットシステム100は、表面(例えば、層の1つまたは、その中の一部分)を形成/画定する露出した辺が、表面および/または対応する物体の横方向の/周囲の境界に対応することを推定できる。最初のMVRは、露出した辺に向かい合う対向する辺を識別することによって生成されてよく、最初のMVRは、露出した外側角部(例えば、露出した辺のセットおよび/または周囲の境界によって形成される交点)から露出した辺に沿って対向する辺まで延びてよい。
【0046】
ロボットシステム100は、画像データのマーカ(例えば、不完全な辺)に基づいて、最初の推定を拡大および/または縮小することによって、最初のMVRをさらに処理(例えば、調整)できる。調整されたMVRを検査して、把持位置420の決定および/または認識されていない物体の登録に使用される最終的なMVRを決定できる。
【0047】
図5は、本技術のある実施形態による、パレタイズされたパッケージのセット500(例えば、図2の対象スタック210)の上面図を示す。図5に示すように、第1の物体510は、辺512a~512dを含み得る。辺は、所与の図(例えば、上面図)から見た物体の境界を表してよい。一定の状況においては、辺512a~512dの少なくとも一部(例えば、辺512c~512d)は、閉ざされており、他の隣り合う物体/辺に当接してよい。逆に、辺の一部(例えば、辺512a~512b)は、開かれており、図3Cの露出した辺322に対応してよい。
【0048】
第1の箱510は、水平方向に隣り合う物体から離れた、または、水平方向に隣り合う物体が無い1つまたは複数の露出した外側角部514を含み得る。露出した外側角部514は、スタックの図3の露出した外側角部326に対応してよい。以下に記載のように、画像データ(例えば、点群および/または2D画像)を検査して、パッケージの露出した辺および露出した外側角部を識別してよい。
【0049】
点群のセグメント化
図6は、本技術のある実施形態による、露出した外側角部のグラフィック表現600を示す。図6に示すように、点群(例えば、グラフィック表現600)を処理して、露出した外側角部614(例えば、図3の露出した外側角部326の1つ)を識別してよい。例えば、点群は、図5の第1の物体510、または、その一部の3Dカメラによって生成された上面図に対応し得る。点群は、深度を示す複数の層を有する三次元点群を含んでよい。各層および/または表面は、互いから閾値連続範囲内にある水平方向に隣り合う深度値のセットに対応し得る。例えば、閾値連続範囲は、水平方向の隣り合う位置が、互いから閾値距離(例えば、1センチメートル未満)内、または、傾斜にしたがって閾値距離内にある深度測定値を有することを必要とし得る。また、閾値連続範囲は、基準高さ(例えば、対象スタック310の最も高い/最も近い点)に対して床および/または傾斜を画定できる。閾値連続範囲は、同様に、水平方向の隣り合う位置のセットの連続性を識別するために、2D画像特性(例えば、色および/または明るさ)の限界を画定できる。点群の層の深度は、対応する物体の表面に垂直な方向に沿った分離(例えば、垂直分離)に対応し得る。
【0050】
したがって、点群を分析、処理して、層を分離し、および/または、開かれた3Dの辺/角部を識別してよい。ある実施形態においては、ロボットシステム100(例えば、ロボットシステム100内の1つまたは複数のプロセッサ)は、1つまたは複数の所定の連続性の規則/閾値にしたがって、点群の深度値をグループ化することに基づいて、層を識別できる。例えば、ロボットシステム100は、深度値が互いの閾値連続範囲内にある時、および/または、深度値が平坦なまたは連続した表面を表す一定の傾斜に従う時、水平方向の隣り合う/接続された深度値のセットをグループ化できる。ロボットシステム100は、露出した辺(例えば、図5の露出した辺512aおよび512b)を識別した層の境界として識別できる。換言すると、ロボットシステム100は、適格な深度変化が生じる層/表面の水平方向の周辺位置として、露出した辺512aおよび512bを識別できる。一般的に、対象スタック210の上層を形成する物体/辺の深度測定値は、上層の下の層を形成する物体/辺より小さい(例えば、第1の画像装置312により近い距離を表す)大きさを有してよい。
【0051】
ある実施形態においては、ロボットシステム100は、2D視覚画像の目に見える線を識別することに基づいて、露出した辺を決定できる。例えば、パレットおよび/または床は、既知の色、明るさ等に対応してよい。したがって、ロボットシステム100は、このような既知のパターンを区切る線を物体(複数可)の露出した辺として識別できる。また、ロボットシステム100は、2D分析を使用して、露出した辺の3D識別を検証できる。
【0052】
露出した辺に基づいて、ロボットシステム100は、開かれた3D角部(例えば、露出した外側角部514)を識別できる。例えば、ロボットシステム100は、露出した辺に関連付けられた形状/角度を識別できる。ロボットシステム100は、露出した辺(例えば、辺512a~512b)が閾値角度範囲内の角度(例えば、80度~100度)で交差する/を形成する点群の位置として露出した外側角部514を決定するように構成されてよい。
【0053】
説明のための例として、ロボットシステム100は、第1の領域612と隣接する領域616a~616cとを識別することによって、開かれた3D角部614を識別できる。ロボットシステム100は、スキャンされた領域層の隣り合う水平方向位置のセットが互いから閾値連続範囲内にある深度値を有する時、第1の領域612を識別できる。ロボットシステム100は、第1の領域612の深度値から閾値連続範囲の外にある深度値を有する他の水平方向位置として、隣接する領域616a~616cを識別できる。ある実施形態においては、ロボットシステム100は、深度値が変化して閾値連続範囲の外になる時、および/または、深度値変化の位置が形状テンプレート(例えば、物体間の直線および/または最小の分離幅)に一致する時、第1の領域612の辺、および/または、隣接する領域616a~616cの始まりを識別できる。より具体的には、隣接する領域616a~616cは、対象スタック210の表面(すなわち、第1の領域612)の深度値より第1の画像センサ212から離れた距離を表す深度値を有し得る。第1の領域612と隣接する領域616aおよび616cとの間に結果として生じる辺は、露出した辺と対応し得る。ある実施形態においては、開かれた3D角部614を識別することは、第1の領域612がある象限を形成し、隣接する領域616a~616cが、物体のスタックの外側の位置等の残りの象限および/または空の空間に対応することを検証することを含んでよい。空の空間は、点群ノイズとして考慮されてよい非常に疎な点群を有して検出された空間を示してよい。
【0054】
他の3D角部が、3D点群を用いて決定されてよい。ある実施形態においては、露出した外側角部は、輪郭形状であってよく、『L』形状の角部は、有効な角部を含まない場合がある。したがって、ロボットシステム100は、要件の1つ(例えば、最小の連続直線長さ)を満たす辺のセグメントを、このような辺のセグメントを所定の長さによって延ばすことに基づいて、識別できる。延ばされた辺のセグメントが、他のセグメントまたは延ばされたセグメントと、ある角度で交差する時、ロボットシステム100は、輪郭形状上の点(例えば、交差している辺のセグメント間にある弧の中点)を露出した外側角部として識別できる。
【0055】
ある実施形態においては、3D角部は、ランク付けされてよい。例えば、(例えば、スタックの上層の角部にある物体の)空の空間に囲まれた3D角部は、他の物体より高くランク付けされてよい。開かれた3D角部614は、第1の領域612のサイズ、第1の領域612の形状に対する開かれた3D角部614の位置、囲んでいる領域間の(例えば、第1の領域612と隣接する領域616aおよび616cとの間の)深度値の差、および/または、第1の領域616aの深度値から閾値連続範囲内の深度値を有する他の領域(例えば、他の表面/物体)と第1の領域612との間の水平方向の距離等、他の要因に基づいて、ランク付けされてよい。
【0056】
ある実施形態においては、ロボットシステム100は、不完全な辺を識別してよい。不完全な辺は、実際の辺であることも実際の辺でないこともある2Dおよび/または3D分析で識別された辺であってよい。不完全な辺の一部は、他の物体のノイズの存在および/または、撮像装置(例えば、カメラ)の能力/位置のために識別されない場合がある箱の実際の辺/箱と箱の間の隙間に対応してよい。不完全な辺は、表面の絵もしくはマーク、または、一緒にテープで止められた箱のフラップ間の仕切り/継ぎ目等、2D画像分析から検出された物体表面上の視覚的パターンまたはマークであってもよい。逆に、パターンの無い箱は、不完全な辺として識別できる2Dの線を1つも有さない場合がある。ロボットシステム100は、ノイズ分散を超えるが、辺識別のための規則/閾値を完全には満たさないセンサ出力の位置の不完全な辺を識別できる。ある実施形態においては、ロボットシステム100は、3Dセンサ出力を用いて、露出した外側の辺(例えば、第1の領域612の周囲の辺)を識別でき、2Dセンサ出力を用いて、不完全な辺を識別できる。また、ロボットシステム100は、角度閾値範囲内にある角度で他の辺と交差しない2Dまたは3Dの辺として、不完全な辺を識別してよい。不完全な辺に関する詳細を以下に詳しく記載する。
【0057】
最初のMVRの生成
図7は、本技術のある実施形態による、パレタイズされたパッケージのセットの上面図を示す。図7は、上面図(例えば、図2の対象スタック210の3Dおよび/または2Dセンサ画像)に関連する最初のMVR710をさらに示す。最初のMVR710は、MVRの境界および/または対応する物体の辺の最初の推定を表してよい。換言すると、最初のMVR710は、1つの認識されていない物体の表面の最初の推定を表し得る。ロボットシステム100は、開かれた3D角部および/または露出した辺を使用して、最初のMVR710を導出できる。最初のMVR710を導出することは、点群から識別された層のそれぞれを検査して、物体、辺、角部等を識別することを含んでよい。例えば、ロボットシステム100は、互いから閾値連続範囲内の深度値を有する点群データ(例えば、3Dセンサ出力)の領域(例えば、図6の第1の領域612)として、最初のMVR710を導出できる。換言すると、ロボットシステム100は、連続した表面に対応する十分に一致したまたは線形にパターン化された深度値を有する水平方向の隣り合う位置のグループとして最初のMVRを導出できる。したがって、ロボットシステム100は、露出した外側角部514(例えば、第1の角部714aおよび/または第2の角部714b)と対応する露出した辺とによって少なくとも部分的に区切られるエリアとして最初のMVRを導出できる。例えば、最初のMVR710は、第1の角部714aから露出した辺722および726に沿って対向する辺724および728まで延びてよい。ある実施形態においては、ロボットシステム100は、開かれた3D角部(例えば、第1の角部714a)から開始して、(例えば、第1の角部714aから離れる方に)露出した辺をたどることによって、最初のMVR710を導出してよい。最初のMVR710は、たどられた露出した辺が他の露出した辺(例えば、対向する辺724および/または728等、たどられていない辺に対向する辺、および/または、たどられていない辺と平行な辺)と交差または直面するまで、延ばされてよい。
【0058】
ある場合には、最初のMVR710は、様々な理由(例えば、物体間の空間、センサ粒度等)のために、複数の物体の表面に対応してよい。したがって、ロボットシステム100は、導出された最初のMVR710の1つまたは複数の寸法を検証してよい。ロボットシステム100は、MVR710の1つまたは複数の寸法が最小候補サイズより大きく、最大候補サイズより小さいことを検証できる。閾値寸法は、ロボットシステム100にとって受信可能な/予測された物体の最小および/または最大の寸法を表してよい。また、閾値寸法は、把持/接触エリアの最小サイズを表すため等、図2のエンドエフェクタ204の水平方向の取付面積を表してよい。
【0059】
最初のMVR710の1つまたは複数の寸法が、(例えば、最大寸法を超えることによって、または、最小寸法未満になることによって)、閾値外になると、ロボットシステム100は、不完全な辺712(例えば、1つまたは複数の端部の他の辺に一致しない、または、交差しない検出された線422および/または他の2D/3Dの辺)にしたがって、最初のMVR710(例えば、最上層)をさらにセグメント化すること等によって、最初のMVR710を調整できる。換言すると、ロボットシステム100は、不完全な辺712にしたがって最初のMVRを調整/縮小でき、対応する結果をテストできる。ある実施形態においては、ロボットシステム100は、1つまたは複数の端部の露出した辺と交差しない2Dの辺および/または3Dの辺として不完全な辺712を決定できる。また、ロボットシステム100は、露出した辺の1つと平行な2Dおよび/または3Dの辺として、不完全な辺712を決定できる。ある実施形態においては、ロボットシステム100は、不完全な辺712に関連付けられた信頼値を計算できる。信頼値は、不完全な辺712が表面の辺および/または隣り合う物体間の分離に対応する可能性を表してよい。例として、ロボットシステム100は、不完全な辺712の全長、不完全な辺712の形状、および/または、不完全な辺712と不完全な辺712を囲む部分との間の(例えば、深度、色、明るさ等の)差に基づいて、信頼値を計算できる。
【0060】
以下に詳細に記載するように、ロボットシステム100は、不完全な辺712にしたがって、または、不完全な辺712まで最初のMVR710を縮小することに基づいて、検証されたMVR720を導出してよい。換言すると、ロボットシステム100は、対向する平行な辺724および/または728の代わりに、不完全な辺712の1つまたは複数によって区切られた最初のMVR710内のエリアとして、縮小された候補MVRを識別できる。ロボットシステム100は、不完全な辺712に到達するまで、対応する露出した辺(例えば、それぞれ、対応する露出した辺722、726)の方に対向する平行な辺(例えば、図4Bの推定された辺424等、2Dおよび/または3Dの辺であってよい対向する平行な辺724、728)をたどることによって、最初のMVR710を縮小することができる。換言すると、ロボットシステム100は、最初のMVR710に関連付けられた第2の角部714bを識別し、次に、他の辺(例えば、不完全な辺712等、交差するおよび/または平行な辺)を検索しながら、関連付けられた辺(例えば、対向する平行な辺724および/または728)に沿って第2の角部714から離れるように移動することができる。ロボットシステム100は、上記のように、識別された辺の向きをテストできる。例えば、ロボットシステム100は、横断された辺と識別された辺との間の角度が、閾値角度範囲(例えば、80度から100度、および/または、直角に対応する他の範囲)内にある時、識別された辺を検証してよい。また、ロボットシステム100は、識別された、横断されていない露出した辺に沿った対応する点の複数のセット間の距離のセットが互いから閾値範囲内にある時等、識別された辺が対応する露出した辺に平行であることを検証してよい。これは、反復的または増分的に行われてよい。MVRをそれ以上縮小できない場合、ロボットシステム100は、結果として生じるエリアを検証されたMVR領域720と結論付けてよい。
【0061】
ロボットシステム100は、上記のように縮小された寸法を閾値と比較することに基づいて、縮小された候補MVRを検証できる。例えば、ロボットシステム100は、不完全な辺712によって画定された縮小されたエリアが、最小/最大閾値を満たす時、縮小された候補MVRを検証されたMVR720として導出できる。また、ロボットシステム100は、不完全な辺712が所定の閾値を超える信頼値に対応する時、縮小された候補MVRを検証できる。さらに、ロボットシステム100は、1つまたは複数の方向に閾値距離だけ不完全な辺712を延ばすことができる。例えば、ロボットシステム100は、延ばされた不完全な辺が、他の辺と交差して、閾値角度範囲を満たす角度を形成する時、縮小された候補MVRを検証してよい。
【0062】
最初のMVR710を拡大する例として、図8は、本技術のある実施形態による、マージされたMVR領域の例を示す。ある場合には、複数の隣り合う表面は、基本的に同じ高さを有してよく、表面と表面の間に辺/水平方向の分離を有してよい。説明のための例として、点群で表された物体は、1片のテープで接続された2つの分離された長方形のフラップ/セグメントを有する箱の上面であってよい。上記1つまたは複数の制限のために、ロボットシステム100は、1つのフラップを含み、フラップ/セグメント間のテープまたは分離に対応する辺まで延びるように、最初のMVR710を導出してよい。このような例に関して、ロボットシステム100は、検証されたMVR820の導出時に、追加の領域を導出し、その領域を最初のMVR710とマージ/テストできる。
【0063】
図8に示すように、追加の妥当なMVR領域812a~812bは、最初のMVR710に基づいて、決定されてよい。追加の妥当なMVR領域812a~812bは、最初のMVR710に相関する領域を含んでよい。例えば、ロボットシステム100は、2Dおよび/または3D画像の部分を分析することに基づいて、追加の妥当なMVR領域812a~812bを決定できる。ロボットシステム100は、一致する視覚的特性(例えば、色、明るさ、および/または、画像パターン)、および/または、最初のMVR710に対して閾値連続範囲内にある一致する深度値を有する位置として、追加の妥当なMVR領域812a~812bを決定できる。ロボットシステム100は、最初のMVR710と関連付けられていると決定された画像の部分として、候補エリアを導出できる。
【0064】
説明のための例として、ロボットシステム100は、露出した外側角部714aから離れる方に第1の露出した辺722および第2の露出した辺726(例えば、3D画像データに描かれた辺)をたどることに基づいて、MVR(例えば、最初のMVRおよび拡大されたMVR)を処理できる。ロボットシステム100は、第1の最初の対向する辺822と第2の最初の対向する辺826とを含む最初の対向する辺のセットを識別できる。ロボットシステム100は、第1の露出した辺722が第1の最初の対向する辺822に平行な時、および/または、第2の露出した辺726が第2の対向する辺826に平行な時、最初の対向する辺のセットを検証できる。ロボットシステム100は、検証された対向する辺を使用して、最初のMVR710を導出できる。
【0065】
ロボットシステム100は、(例えば、露出した外側角部714aから離れる方に)最初の対向する辺のセットを越えて第1の露出した辺722および第2の露出した辺726をたどることに基づいて、追加の妥当なMVR領域812a~812bをさらに決定できる。ロボットシステム100は、たどられた辺(例えば、第1の露出した辺722および/または第2の露出した辺726)と交差する、または、たどられた辺から閾値分離距離内にある1つまたは複数のさらなる対向する辺(例えば、第1の辺832および/または第2の辺836)を識別できる。ロボットシステム100は、第1の辺832が第1の露出した辺722および/または第1の最初の対向する辺822に平行な時、および/または、第2の辺836が、第2の露出した辺726および/または第2の最初の対向する辺826に平行な時等、さらなる対向する辺を上記と同様に検証できる。
【0066】
1つまたは複数のさらなる対向する辺が検証されると、ロボットシステム100は、追加の妥当なMVR領域を識別できる。例えば、ロボットシステム100は、第1の最初の対向する辺822と、さらなる対向する辺の第1(例えば、第1の辺832)との間のエリアとして、第1の追加の妥当なMVR領域812aを識別できる。また、ロボットシステム100は、第2の最初の対向する辺826と、さらなる対向する辺の第2(例えば、第2の辺836)との間のエリアとして、第2の追加の妥当なMVR領域812bを識別できる。
【0067】
ロボットシステム100は、候補エリア(例えば、最初のMVR710と、第1の追加の妥当なMVR領域812aおよび/または第2の追加の妥当なMVR領域812bとの組み合わせ)を検証/テストすることに基づいて、追加の妥当なMVR領域812a~812bを決定できる。例えば、ロボットシステム100は、候補エリア(例えば、最初のMVR710に関連付けられていると決定された画像の部分)と最初のMVR710との間の分離距離が所定の閾値未満であることを検証できる。ロボットシステム100は、候補エリアの1つまたは複数の寸法を上記の最小/最大寸法閾値と比較することによって、候補エリアをさらにテストできる。ロボットシステム100は、候補エリアが最小閾値(例えば、最小候補サイズの寸法)未満の時、候補エリアを追加の妥当なMVR領域812a~812bとして決定できる。ある実施形態においては、ロボットシステム100は、サイズ比較、分離距離、および/または、候補エリアと最初のMVR710との間の関連性/類似性を使用して、信頼レベルを計算できる。信頼レベルは、候補エリアが最初のMVR710に対応する部分と同じ物体に対応する可能性を表してよい。ロボットシステム100は、信頼レベルを所定の閾値と比較して、候補エリアを、追加の妥当なMVR領域812a~812bとして分類されるべきか、または、(例えば、別の物体に対応する)最初のMVR710の新しいインスタンスとして分類されるべきかを決定できる。
【0068】
検証されたMVRの生成
ロボットシステム100は、最初のMVR710と追加の妥当なMVR812a~812bとを組み合わせることに基づいて、検証されたMVR820を導出できる。したがって、ロボットシステム100は、最初のMVR710を拡大して、他の近くの領域を含めることによって、候補MVRを導出できる。したがって、ロボットシステム100は、登録されていない物体の完全な表面を検証されたMVR820を介して正確に推定する可能性を高めることができる。
【0069】
ある実施形態においては、ロボットシステム100は、検証されたMVR820と検証されたMVR720(例えば、最初のMVR710を縮小した結果)との両方を導出できる。1つまたは複数の所定のプロセス/方程式にしたがって、ロボットシステム100は、上記の処理パラメータの1つまたは複数を用いて、検証したMVRのそれぞれの信頼値を計算できる。ロボットシステム100は、より大きい信頼値を有する検証したMVRを最終的なMVRとして選択できる。
【0070】
代替的に、ロボットシステム100は、より小さい候補エリアおよび/またはより大きい候補エリアのテストが不成功な時、最初のMVR710を最終的なMVRとして導出できる。例えば、マージされたMVRが最大候補サイズより大きい場合、マージされたMVRは拒絶されてよく、検証されたMVR820は、追加の妥当なMVRのいずれも有さずに、最初のMVR710を含んでよい。また、図7に記載の縮小されたMVRが、最小候補サイズより小さい場合、検証されたMVR720は、最初のMVR710を含んでよい。ある実施形態においては、ロボットシステム100は、まず、最初のMVR710を拡大することによって、大きくなったMVRを導出できる。ロボットシステム100は、次に、上記の拡大されたMVRを反復して縮小して、最終的なMVRを導出できる。ロボットシステム100は、検証されたMVRを使用して、上記の登録されていない物体を登録および/または操作できる。
【0071】
図9は、本技術のある実施形態による、図1のロボットシステム100を動作させる方法900のブロック図を示す。方法900は、登録されていない物体を把持、操作、および/または、登録するためのMVR(例えば、検証されたMVR)を生成する方法であってよい。方法900は、1つまたは複数の記憶装置に記憶された対応する命令を1つまたは複数のプロセッサを用いて実行することに基づいて実施されてよい。
【0072】
方法900は、点群のセグメント化(ブロック902)を含んでよい。点群のセグメント化は、層(例えば、物体表面)を高さにしたがって有効に分離できる。ロボットシステム100は、1つまたは複数の画像センサ(例えば、図2の第1の画像センサ212)からの画像データ(例えば、3D点群および/または2D視覚画像)を分析することによって、点群のセグメント化を実施できる。ある実施形態においては、画像データは、図1の対象物体112および/または図2の対象スタック210の上面を表したものを含み得る。画像データの分析時、ロボットシステム100は、様々な撮影した特性にしたがって、画像データ/画像出力の隣り合う位置/部分を識別、グループ化できる。例えば、ロボットシステム100は、上記のように、深度測定値、色/明るさ、および/または、他の撮影された特性に基づいて、連続した表面を識別できる。
【0073】
ある実施形態においては、例えば、方法900は、深度の不連続および/または垂直方向の分離を用いて、点群の分離した層の物体を識別することを含んでよい(ブロック904)。例えば、ロボットシステム100は、画像データを分析して、対象スタック210の上面に対して1つまたは複数の水平方向にわたる深度の不連続を識別できる。深度の不連続は、識別された領域/表面に垂直な方向に沿って、領域/表面の分離(例えば、深度値の変化)に基づいて、判断されてよい。したがって、ロボットシステム100は、連続した表面/層と対応する物体とを識別できる。
【0074】
方法900は、分離した層を処理して、角部および辺を検出することを含んでよい(ブロック906)。ロボットシステム100は、画像データおよび/または決定された表面/層を処理して、露出した3D角部(例えば、図3Cの露出した外側角部326)および/または露出した辺(例えば、図3Cの露出した辺322)を検出できる。ある実施形態においては、例えば、ロボットシステム100は、深度の差に対応する位置として、露出した辺322を識別できる。したがって、露出した辺322(例えば、開かれた辺)は、異なる深度値を有する2つの側面を区切ることができる、または、規定できる。
【0075】
上記のように、ロボットシステム100は、1つまたは複数の所定の角部閾値を満たす角度で露出した辺322が交差する位置を識別することに基づいて、露出した外側角部326をさらに導出できる。したがって、結果として生じる露出した外側角部326は、一定のまたは類似した深度測定値を有する角部を中心とする象限の1つを有してよく、一方、残りの3つの象限は、異なる深度測定値を有する。スタックの外側角部を形成する物体に関して等、ある例においては、周りの3つの象限の深度測定値は、空の空間に対応してよく、疎な点群(例えば、既知の深度測定値)および/または点群のノイズを有してよい。
【0076】
ある実施形態においては、ロボットシステム100は、露出した外側角部326をさらにランク付けできる。例えば、他の層/表面からさらに分離される外側角部は、把持または移動動作のためによりアクセスしやすく、および/または、隣の物体を把持または妨げる可能性が低いので、他の表面に水平方向により近い角部より高くランク/スコア付けされてよい。また、露出した外側角部が、スタック/パレットの中央部分からさらに離れる時、周囲の空間が、より空いている時、もしくは、ノイズパターンに近い時、および/または、地面からの高さがより高い表面である時(例えば、上面センサにより近い時)、ロボットシステム100は、露出した外側角部を、露出した外側角部の他のインスタンスに比べて、より高くランク付けまたはスコア付けできる。
【0077】
ロボットシステム100は、追加的に、または、代替的に、2D/視覚画像分析に基づいて、2Dの辺を決定できる。ある実施形態においては、ロボットシステム100は、2Dの辺を用いて、露出した辺322を識別および/または検証できる。
【0078】
ロボットシステム100は、図7の不完全な辺712(例えば、検出された線422)をさらに識別できる。不完全な辺712は、2Dおよび/または3D分析を用いて識別されてよい。上記のように、ロボットシステム100は、80度~100度の間等、所定の角度閾値を満たす角度で、他の辺と交差しない2Dおよび/または3Dの辺として、不完全な辺712を識別できる。不完全な辺712は、物体表面上のパターン、物体の実際の辺、物体表面上の間隙、および/または、物体間の間隙に対応し得る。したがって、ロボットシステム100は、検証されたMVRを導出するために以下に記載のように不完全な辺712をさらに処理できる。
【0079】
方法900は、最初のMVRを生成することを含んでよい(ブロック908)。ロボットシステム100は、露出した外側角部326に基づいて、最初のMVR710を生成できる。ある実施形態においては、ロボットシステム100は、地面からの高さが最も高い位置にある、および/または、中心から最も離れた位置にある露出した外側角部326を、他より先に選択/処理できる。露出した3D角部と露出した辺は共に、最初のMVR710を生成する基礎を提供し得る。最初のMVR710を生成することは、点群の分離した層を処理することと、画像から検出された辺を用いて、各層(すなわち、最上層)のさらなるセグメント化を行うことを含んでよい。換言すると、ロボットシステム100は、3Dセグメント化から生じる異なる層/エリアを、2Dの辺の位置と組み合わせることができる。2D/視覚的な辺の位置を用いて、ロボットシステム100は、3Dの層をさらにセグメント化できる。ロボットシステム100は、3Dの層の結果として生じるセグメントまたはエリアを分析して、セグメントが少なくとも1つの露出した外側角部326を含むか否か、および/または、セグメントの寸法が、最小/最大閾値を満たすか否かを判断できる。ロボットシステム100は、これらの条件の1つまたは両方を満たすセグメントを最初のMVR710として決定できる。
【0080】
追加的に、または、代替的に、ロボットシステム100は、選択された露出した外側角部326(例えば、図6の露出した外側角部614)から露出した辺322に沿って延長することによって、または、露出した辺322をたどることによって、最初のMVR710を導出できる。辺をたどりながら、ロボットシステム100は、対向する辺を検出できる(ブロック910)。例えば、ロボットシステム100は、露出した辺322に沿って異なる位置を徐々にチェックして、たどられたセグメントが、曲がる、または、他の2D/3Dセグメントによって交差されて、角度を形成するか否かを検証できる。ある実施形態においては、ロボットシステム100は、識別した角度を閾値角度範囲と比較することによって、識別した角度をテストできる。例として、閾値角度範囲は、長方形の表面および/または箱を処理するために直角(例えば、70度~110度)に対応し得る。したがって、ロボットシステム100は、露出した辺322の1つまたは複数と対向する、または、さもなければ、対応する(例えば、平行な)辺を検出できる。また、ある実施形態においては、ロボットシステム100は、不完全な辺712との交点を無視できる。したがって、ロボットシステム100は、露出した外側角部614から露出した辺322をたどって、対向する辺を識別できる。
【0081】
最初のMVRを生成することは、開かれた辺と対向する辺との対向する対に関連付けられた1つまたは複数の距離を計算することを含んでよい(ブロック912)。換言すると、ロボットシステム100は、露出した辺322と対向する辺とによって画定されるエリアの1つまたは複数の寸法を計算できる。ロボットシステム100は、画像の部分と実世界の位置との間の所定のマッピングにしたがって寸法を計算できる。また、ロボットシステム100は、識別した辺の深度測定値、および/または、2D/3D画像の辺の間の水平方向の距離に基づいて、実世界の寸法を計算する所定の方程式を使用できる。
【0082】
ある実施形態においては、例として、ロボットシステム100は、1つまたは複数の寸法を最初に計算でき、次に、交差している辺をさらにテストできる。ロボットシステム100は、交差する辺の2つの反対側の端部、および/または、辺に沿って所定の距離だけ分離された他の2つの点等、2つの異なる位置で、露出した辺322と対向/交差する対の辺との間の分離を計算できる。ロボットシステム100は、平行線等、2つの距離が、互いの閾値範囲内にある時、交差する辺を対向する辺として識別または検証できる。
【0083】
ロボットシステム100は、さらなるプロセスを制御する辺をテストしてよい(決定ブロック914)。例えば、ロボットシステム100は、交差する辺が、露出した辺によって規定される領域内に位置するか否かをテストできる。ある実施形態においては、ロボットシステム100は、露出した辺と対応する対向/交差する辺の候補との間で、深度測定値、色、明るさ等を比較することに基づいて、テストできる。また、例えば、ロボットシステム100は、対の辺(例えば、露出した辺と対応する対向/交差する辺の候補)の間の距離が1つまたは複数の閾値(例えば、最小MVR寸法および/または最大MVR寸法)を満たすか否かをテストできる。交差する辺の候補が、テストに失敗すると、ロボットシステム100は、対向する平行な辺を検出するために、露出した辺に沿って移動を続けることができる(ブロック910にループバック)。反復プロセスは、テスト条件が満たされるまで、または、露出した辺に沿って最大MVR寸法に到達するまで、行われてよい。
【0084】
対向する平行な辺(例えば、図7の対向する平行な辺724/728)が、必要な条件(複数可)を満たす場合、方法900は、追加のMVR領域を識別することを含む(ブロック916)。これは、最初のMVR(例えば、最初のMVR710)からXおよびY方向に外方向に拡大して、層/エリアの残りの部分をカバーすることを含んでよい。例えば、ロボットシステム100は、視覚的特性/深度値を照合することによって、また、上記のように候補エリアを検証/テストすることによって等、2Dおよび/または3D画像の部分を分析することに基づいて、追加の妥当なMVR領域812a~812bを識別できる。
【0085】
方法900は、マージされたMVRを生成することを含んでよい(ブロック918)。ロボットシステム100は、拡大された領域(例えば、図8の追加の妥当なMVR領域812a~812b)と最初のMVR710とを組み合わせることによって、マージされたMVRを生成してよい。
【0086】
方法900は、マージされたMVRを検証することを含んでよい(ブロック920)。マージされたMVRを検証することは、マージされたMVRが所定の最大閾値より大きいか否かを判断することを含んでよい(ブロック922)。例えば、マージされたMVRが(すなわち、最大候補サイズの寸法に対応する)最大閾値より大きい場合、ロボットシステム100は、マージされたMVRを拒絶でき、追加の妥当なMVR領域を有さない最初のMVR710を含む検証されたMVRを生成できる(ブロック928)。
【0087】
マージされたMVRが最大閾値より小さい場合、方法900は、不完全な辺に到達するまで、露出した辺をたどることを含んでよい(ブロック924)。例えば、ロボットシステム100は、3D画像データにしたがって、基準/スタートの開かれた3D角部に対角線上に対向する第2の3D角部(例えば、露出した外側角部326の別個のインスタンス)を識別できる。ロボットシステム100は、露出した外側角部326の位置を露出した辺および/または対向する辺に対して比較することに基づいて、第2の3D角部を識別できる。ある実施形態においては、ロボットシステム100は、対向する辺の接合点、および/または、マージされたMVRの角部として、第2の3D角部を識別できる。ロボットシステム100は、第2の3D角部から開始して、最初のMVRの基準として機能する第1の/最初の3D角部の方に対応する辺(例えば、対向する辺)をたどることができる。対応する辺をたどりながら、ロボットシステム100は、識別された開かれた/対向する辺のいずれかと交差する、および/または、平行に配置された他の辺(例えば、検出された線422および/または不完全な辺712)を識別できる。このような他の辺が見つかると、ロボットシステム100は、マージされたMVRより小さい、および/または、最初のMVR710より小さい候補MVRを導出できる。
【0088】
ロボットシステム100は、反復的に、第2の3D角部に対応する辺をたどり、第2の候補MVRを調整/縮小できる(ブロック926)。ある実施形態においては、ロボットシステム100は、(1)第2の候補MVRの1つまたは複数の寸法が、最小閾値および/または最大閾値に違反する時、および/または、(2)不完全および/または平行な辺が第2の候補MVR内に存在しない時、反復プロセスを停止できる。第2の候補MVRをそれ以上、縮小できない時、ロボットシステム100は、最大/最小閾値(複数可)を満たした第2の候補MVRの最後/最小のインスタンスとして、検証されたMVRを生成できる(ブロック928)。これは、最初のMVRと、最小候補サイズの長さを有する辺によって画定された領域との間の領域内に残る不完全な辺がそれ以上無いということを示してよい。
【0089】
3Dの辺および2Dの辺を反復的に識別、検証するロボットシステム100は、MVRの精度を向上させる。2D/3D画像の辺の大半は、完全(例えば、識別可能、互いに対して平行な向き/配置および/または垂直、および/または、他の辺と交差)であってよい。したがって、ロボットシステム100は、完全な辺を使用して、上記のように画像データの部分をエリアまたは層に分離できる。ロボットシステム100は、実際の辺が画像データで完全に/正確に撮影されていない場合があるので、他の辺(例えば、2Dの辺、不完全な辺等)をさらに分析してよい。MVRの精度の向上は、登録されていない物体の操作および/または登録の効率を向上させることができる。MVRに関する精度の向上は、認識されていない物体の1つのインスタンスを把持する可能性、および/または、質量中心(CoM)の位置により近い認識されていない物体を把持する可能性を高めることができる。したがって、ロボットシステム100は、登録されていない物体を不正確に把持することに関連する失敗を低減できる。
【0090】
処理システム例
図10は、本明細書に記載の少なくとも一部の動作を実施し得る処理システム1000の例を示すブロック図である。図10に示すように、処理システム1000は、1つまたは複数の中央処理ユニット(「プロセッサ」)1002、メインメモリ1006、不揮発メモリ1010、ネットワークアダプタ1012(例えば、ネットワークインタフェース)、ビデオディスプレイ1018、入力/出力装置1020、制御装置1022(例えば、キーボードおよびポインティングデバイス)、記憶媒体1026を含む駆動ユニット1024、および、信号生成装置1030を含んでよく、これらは、バス1016に通信可能に接続される。バス1016は、適切なブリッジ、アダプタ、もしくは、コントローラによって接続された、任意の1つまたは複数の別個の物理的バス、ポイントツーポイント接続、または、両方を表す抽象化されたものとして示される。バス1016は、よって、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、または、PCI-エクスプレスバス、ハイパートランスポートまたは業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、または、「ファイヤワイヤ」とも呼ばれる電気電子技術者協会(IEEE)規格13104バスを含み得る。
【0091】
様々な実施形態において、処理システム1000は、ユーザデバイスの一部として動作するが、処理システム1000は、(例えば、有線または無線で)ユーザデバイスに接続されてもよい。ネットワーク配置においては、処理システム1000は、クライアント-サーバネットワーク環境において、サーバまたはクライアントマシンとして動作してよく、または、ピアツーピア(または、分散)ネットワーク環境において、ピアマシンとして動作してよい。
【0092】
処理システム1000は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ、タブレット、ラップトップコンピュータ、パーソナルデジタルアシスタント(PDA)、セルラーフォン、プロセッサ、ウェブ機器、ネットワークルータ、スイッチもしくはブリッジ、コンソール、ハンドヘルドコンソール、ゲーム機、ミュージックプレイヤ、ネットワーク接続された(「スマート」)テレビ、テレビ接続装置、または、処理システム1000が行うべきアクションを特定する命令のセットを(順次、または、他の方法で)実行できる任意のポータブルデバイスもしくはマシンであってよい。
【0093】
メインメモリ1006、不揮発メモリ1010、および、記憶媒体1026(「機械読み取り可能媒体」とも呼ばれる)は、1つの媒体として示されるが、「機械読み取り可能媒体」および「記憶媒体」という用語は、1つまたは複数の命令セット1028を記憶する1つの媒体または複数の媒体(例えば、集中型または分散データベース、および/または、関連するキャッシュおよびサーバ)を含むと捉えるべきである。「機械読み取り可能媒体」および「記憶媒体」という用語は、コンピュータシステムによる実行のための命令セットを記憶、エンコード、または、伝えることができ、本開示の実施形態の方法論のいずれか1つまたは複数をコンピュータシステムに行わせる任意の媒体を含むと捉えるものとする。
【0094】
一般的に、開示の実施形態の実施に実行されるルーチンは、オペレーティングシステムもしくは特定のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、モジュール、または、「コンピュータプログラム」と呼ばれる命令のシーケンスとして実施されてよい。コンピュータプログラムは、典型的に、コンピュータの様々なメモリおよび記憶装置に様々な時に設定された1つまたは複数の命令(例えば、命令1004、1008、1028)を含み、命令は、1つまたは複数の処理ユニットまたはプロセッサ1002によって読み取られ、実行されると、処理システム1000に、開示の様々な態様を伴う要素を実行する動作を行わせる。
【0095】
さらに、完全に機能するコンピュータおよびコンピュータシステムの文脈で実施形態を記載したが、様々な実施形態が、様々な形態でプログラム製品として分散されてよいこと、また、分散を実際に達成するのに使用される特定の種類のマシンまたはコンピュータ読み取り可能媒体に拘わらず、開示は等しく適用されることを、当業者は理解されよう。例えば、本明細書に記載の技術は、仮想マシンまたはクラウドコンピューティングサービスを用いて実施されてよい。
【0096】
機械読み取り可能記憶媒体、機械読み取り可能媒体、または、コンピュータ読み取り可能(記憶)媒体のさらなる例は、揮発性および不揮発性のメモリデバイス1010等の記録可能タイプの媒体、フロッピ―および他のリムーバブルディスク、ハードディスクドライブ、光ディスク(例えば、コンパクトディスクリードオンリメモリ(CD ROMS)、デジタル多用途ディスク(DVD))、並びに、デジタル通信リンクおよびアナログ通信リンク等の伝送媒体を含むが、これらに限らない。
【0097】
ネットワークアダプタ1012は、処理システム1000が、ネットワーク1014のデータを処理システム1000の外部にあるエンティティに、処理システム1000および外部のエンティティがサポートする任意の既知のおよび/または便利な通信プロトコルを通して、仲介するのを可能にする。ネットワークアダプタ1012は、ネットワークアダプタカード、無線ネットワークインタフェースカード、ルータ、アクセスポイント、無線ルータ、スイッチ、マルチレイヤスイッチ、プロトコル変換器、ゲートウェイ、ブリッジ、ブリッジルータ、ハブ、デジタルメディアレシーバ、および/または、リピータのうちの1つまたは複数を含み得る。
【0098】
ネットワークアダプタ1012は、ファイヤウォールを含んでよく、ファイヤウォールは、ある実施形態においては、コンピュータネットワークのデータにアクセス/プロキシする許可を統治および/または管理し、異なるマシン間および/またはアプリケーション間の変化する信用レベルを追跡する。ファイヤウォールは、例えば、これらの様々なエンティティ間でトラフィックフローとリソース共有とを調節するために、マシンとアプリケーション、マシンとマシン、および/または、アプリケーションとアプリケーションの特定のセットの間に所定のアクセス権のセットを行使することができるハードウェアコンポーネントおよび/またはソフトウェアコンポーネントの任意の組み合わせを有する任意の数のモジュールであってよい。ファイヤウォールは、さらに、例えば、個人、マシン、および/または、アプリケーションによる物体にアクセスおよび動作する権利と、許可権が有効な環境とを含む、許可を詳述するアクセス制御リストを管理してよい、および/または、アクセス制御リストへのアクセスを有してよい。
【0099】
ある実施形態においては、ロボットシステムを動作させる方法は、1つまたは複数の登録されていない物体を含む対象スタックを表す1つまたは複数の画像データを受信することと、登録されていない物体を表す露出した外側角部と、露出した外側角部に関連付けられ、且つ、登録されていない物体を表す露出した辺とを、1つまたは複数の画像データの分離した層を識別することによって識別することと、露出した辺に対応する対向する辺を露出した辺と交差する1つまたは複数の他の辺を識別することに基づいて、識別することと、対向する辺の向きを露出した辺の向きと比較することに基づいて、対向する辺を検証することと、露出した外側角部から露出した辺に沿って検証された対向する辺に延びるエリアを表す最初の最小実行可能領域(MVR)を生成することと、登録されていない物体のうちの1つの推定された表面またはその一部を表す検証されたMVRを、最初のMVRを調整し、対応する結果をテストすることに基づいて、生成することと、を含んでよい。露出した辺は、露出した外側角部を画定する第1の露出した辺および第2の露出した辺を含んでよく、対向する辺は、第1の最初の対向する辺および第2の最初の対向する辺を含む最初の対向する辺のセットであってよく、第1の最初の対向する辺と第2の最初の対向する辺は、それぞれ、第1の露出した辺と第2の露出した辺に平行であると決定され、検証されたMVRを生成することは、露出した外側角部に対して第2の最初の対向する辺を越えた位置で、第1の露出した辺と交差し、且つ、第2の最初の対向する辺と第2の露出した辺と平行であると決定されたさらなる対向する辺を識別することと、対向する辺とさらなる対向する辺との間のエリアを含む追加の妥当なMVR領域を識別することと、潜在的MVRセグメントと最初のMVRとを組み合わせた候補MVRをテストすることとを含んでよい。テストすることは、候補MVRの1つまたは複数の寸法がMVRの最大および/または最小寸法閾値を満たすか否かを検証すること、および/または、潜在的MVRセグメントと最初のMVRとに対応する1つまたは複数の画像データの部分の深度測定値、色、明るさ、または、それらの組み合わせが、互いから閾値連続範囲内にあるか否かを検証することを含んでよい。検証されたMVRは、候補MVRが1つまたは複数の所定の閾値を満たさない時、潜在的MVRセグメントを有さない最初のMVRを含んでよい。
【0100】
ある実施形態においては、露出した辺は、露出した外側角部を画定する第1の露出した辺および第2の露出した辺を含み、対向する辺は、第1の最初の対向する辺および第2の最初の対向する辺を含む最初の対向する辺のセットであり、第1の最初の対向する辺と第2の最初の対向する辺は、それぞれ、第1の露出した辺と第2の露出した辺に平行であると決定され、検証されたMVRを生成することは、第2の最初の対向する辺と露出した外側角部との間にあり、且つ、第2の最初の対向する辺と第2の露出した辺とに平行であると決定されたさらなる対向する辺を識別することと、第2の最初の対向する辺の代わりに、さらなる対向する辺によって区切られた最初のMVR内のエリアとして、縮小された候補MVRを識別することと、縮小された候補MVRをテストすることとを含んでよい。検証されたMVRを生成することは、候補MVRの1つまたは複数の寸法が、MVRの最大および/または最小寸法閾値を満たす時、縮小された候補MVRを検証されたMVRとして設定することをさらに含んでよい。
【0101】
ある実施形態においては、さらなる対向する辺を識別することは、最初の対向する辺のセットに関連付けられた第2の角部を識別することと、第2の角部から第1の最初の対向する辺に沿って離れる方に移動する間、さらなる対向する辺との交点を検索することと、(1)さらなる対向する辺と第1の最初の対向する辺との間の角度が直角を表す閾値範囲内であること、および/または、(2)さらなる対向する辺と第2の露出した辺との対応する点の複数のセット間の距離のセットが互いから閾値範囲内にあることを検証することに基づいて、さらなる対向する辺の向きをテストすることをさらに含んでよい。ある実施形態においては、1つまたは複数の画像データは、(1)水平面に沿った位置の深度測定値を含む3D画像出力と、(2)水平面に沿った対象スタックを視覚的に表す2D画像出力を含んでよく、露出した辺を識別することは、互いから閾値範囲内に深度測定値を有する3D画像出力の水平面に沿った隣り合う位置のセットとして、分離した層のそれぞれを識別することと、分離した層の周囲の境界を3Dの辺として識別することとを含んでよい。露出した外側角部を識別することは、露出した辺である3Dの辺のセットによって形成された交点を選択することを含んでよく、さらなる対向する辺を識別することは、3D画像出力、2D画像出力、または、それらの組み合わせを分析することに基づいて、不完全な辺および/または検出された線を識別することを含んでよい。検証されたMVRを生成することは、3D画像出力を分析することに基づいて、(1)第1の露出した辺に沿って、第2の最初の対向する辺より露出した外側角部の方に近く、(2)第2の最初の対向する辺と第2の露出した辺と平行である3Dの辺を識別することと、第2の最初の対向する辺と3Dの辺との間のエリアを追加で含むように最初のMVRを調整することとをさらに含んでよく、さらなる対向する辺は、調整された最初のMVRに対応する2D画像出力の部分を分析した結果であり、縮小された候補MVRは、調整された最初のMVR内のエリアを含む。
【0102】
ある実施形態においては、ロボットシステムは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに接続され、プロセッサによって実行可能な命令を記憶した少なくとも1つのメモリデバイスとを含んでよく、命令は、1つまたは複数の登録されていない物体を含む対象スタックを表す1つまたは複数の画像データを受信する命令と、登録されていない物体を表す露出した外側角部と、露出した外側角部に関連付けられ、且つ、登録されていない物体を表す露出した辺とを、1つまたは複数の画像データを分析することに基づいて、識別する命令と、露出した外側角部から露出した辺に沿って対向する辺に延びるエリアを表す最初の最小実行可能領域(MVR)を生成する命令と、最初のMVRを調整し、対応する結果をテストすることに基づいて、検証されたMVRを生成する命令とである。少なくとも1つのメモリデバイスは、3D深度測定値を含む1つまたは複数の画像データを受信する命令と、それぞれ、閾値連続範囲内の3D深度測定値を有する隣り合う位置のセットを含む表面を3D深度測定値に基づいて識別することと、表面の横方向の境界に対応する3Dの辺を識別された表面に基づいて識別することと、露出した辺に対応する表面の1つを区切る第1の3Dの辺と第2の3Dの辺との間の接合点として露出した外側角部を識別する命令と、第2の3Dの辺に沿って露出した外側角部から離れる方に移動しながら、第1の3Dの辺に関連付けられた3Dの辺のインスタンスである第1の対向する辺を識別することと、第1の3Dの辺に沿って露出した外側角部から離れる方に移動しながら、第2の3Dの辺に関連付けられた3Dの辺のインスタンスである第2の対向する辺を識別することとに基づいて、露出した辺と第1および第2の対向する辺とによって区切られたエリアを含む最初のMVRを生成する命令を含んでよい。検証されたMVRを生成する命令は、第2の対向する辺から第1の3Dの辺に沿って露出した外側角部から離れる方に移動しながら、さらなる対向する辺、第2の3Dの辺、および、第2の対向する辺が互いに平行であると決定されたさらなる対向する辺を識別することと、最大および/または最小寸法閾値にしたがって、最初のMVRとさらなる対向する辺と第2の対向する辺との間のエリアとを組み合わせた候補MVRをテストすることとに基づいてよい。検証されたMVRを生成する命令は、候補MVRが最大および/または最小寸法閾値を満たさない時、さらなる対向する辺と第2の対向する辺との間のエリアを有さない等、最初のMVRを含む検証されたMVRを生成することを含んでよい。検証されたMVRを生成する命令は、候補MVRが最大および/または最小寸法閾値を満たす時、候補MVRを含む検証されたMVRを生成することも含んでよい。
【0103】
ある実施形態においては、有形非で一時的なコンピュータ読み取り可能媒体は、プロセッサ命令を記憶してよく、プロセッサ命令は、プロセッサによって実行されると、プロセッサに、1つまたは複数の登録されていない物体を含む対象スタックを表す1つまたは複数の画像データを受信させ、登録されていない物体を表す露出した外側角部と、露出した外側角部に関連付けられ、且つ、登録されていない物体を表す露出した辺とを、1つまたは複数の画像データを分析することに基づいて識別させ、露出した外側角部から露出した辺に沿って対向する辺に延びるエリアを表す最初の最小実行可能領域(MVR)を生成させ、且つ、最初のMVRを調整することと、対応する結果をテストすることと基づいて、検証されたMVRを生成させる。プロセッサ命令は、さらに、プロセッサに、3D深度測定値を含む1つまたは複数の画像データを受信させてよく、3D深度測定値にしたがって、1つまたは複数の画像データを分析することに基づいて、露出した外側角部と露出した辺とを識別させてよく、且つ、露出した辺のうちの第1の露出した辺に関連付けられた3Dの辺のインスタンスである第1の対向する辺と、露出した辺のうちの第2の露出した辺に関連付けられた第2の対向する辺とを識別することに基づいて、露出した辺と第1および第2の対向する辺によって区切られたエリアを含む最初のMVRを生成させてよい。プロセッサ命令は、第2の最初の対向する辺と露出した外側角部との間のさらなる対向する辺であって、さらなる対向する辺、第2の露出した辺、および、第2の最初の対向する辺は互いに平行であると決定されたさらなる対向する辺を識別することと、第2の最初の対向する辺の代わりに、さらなる対向する辺によって区切られた最初のMVR内のエリアとして縮小された候補MVRを識別することとに基づいて、プロセッサに検証されたMVRをさらに生成させてよい。プロセッサ命令は、さらに、露出した外側角部に対角線上に対向する第2の角部を識別することと、第2の角部から離れる方に第1の最初の対向する辺に沿って移動しながら、さらなる対向する辺を検索することと、さらなる対向する辺と第1の最初の対向する辺との間の角度、および/または、さらなる対向する辺と第2の露出した辺との対応する点の複数のセット間の距離のセットに基づいて、さらなる対向する辺が第2の露出した辺と平行か否かを判断することとに基づいて、プロセッサにさらなる対向する辺を識別させてよい。ある実施形態においては、プロセッサ命令は、さらに、露出した外側角部から露出した辺の1つを越え、且つ、、露出した外側角部に対向する第2の角部を含む第1の追加の辺にしたがって、最初のMVRを拡大することと、第2の角部から露出した外側角部への画像データ内の1つまたは複数の部分を評価することに基づいて、さらなる対向する辺を識別することとに基づいて、検証されたMVRをプロセッサに生成させてよく、第2の最初の対向する辺の代わりに、さらなる対向する辺によって区切られた最初のMVR内のエリアとして検証されたMVRをプロセッサに生成させてよい。
【0104】
上記のように、本明細書で紹介した技術は、例えば、ソフトウェアおよび/またはファームウェアを用いてプログラムされたプログラム可能回路(例えば、1つまたは複数のマイクロプロセッサ)で、全て専用の配線で接続された(すなわち、プログラムできない)回路で、または、このような形態の組み合わせで、実施される。専用回路は、例えば、1つまたは複数の特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、フィールドプログラマブルゲートアレイ(FPGA)等の形態であってよい。
【0105】
上記から、発明の特定の実施形態を説明のために本明細書に記載したが、発明の範囲を逸脱することなく、様々な修正を行ってよいことは理解されよう。したがって、発明は、添付の請求項によって以外は制限されない。
図1
図2
図3A
図3B
図3C
図4A
図4B
図5
図6
図7
図8
図9
図10