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

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

▶ 株式会社MUJINの特許一覧

特開2025-10048物体検出を伴うロボットシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025010048
(43)【公開日】2025-01-20
(54)【発明の名称】物体検出を伴うロボットシステム及び方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250109BHJP
   G06T 7/13 20170101ALI20250109BHJP
   G06V 20/64 20220101ALI20250109BHJP
   B25J 13/08 20060101ALI20250109BHJP
【FI】
G06T7/00 C
G06T7/13
G06V20/64
B25J13/08 A
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024105493
(22)【出願日】2024-06-28
(31)【優先権主張番号】63/524,668
(32)【優先日】2023-07-02
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ガイザー,フロリス
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS01
3C707BS09
3C707DS01
3C707JS03
3C707KS07
3C707KS10
3C707KS16
3C707KS31
3C707KS33
3C707KS35
3C707KT01
3C707KT02
3C707KT03
3C707KT05
3C707KT06
3C707KV04
3C707KV06
3C707KV11
3C707KW01
3C707KW03
3C707KW05
3C707LT12
3C707LW15
3C707NS02
3C707NS06
5L096BA05
5L096CA02
5L096DA05
5L096FA06
5L096FA42
5L096GA51
(57)【要約】
【課題】荷積み又は輸送プラットフォーム上に配設された物体の層の間に配置された層セパレータの識別及び検出を可能にする計算システム。
【解決手段】計算システムの処理回路は、取得された3D画像情報に基づいて、積み重ねられた物体の輪郭を識別し、積み重ねられた物体の輪郭に基づいて、積み重ねられた物体の上部表面を識別し、積み重ねられた物体の上部表面の2D画像情報に基づいて、周囲から上部表面の中心に向かって延びる、物体のエッジ又は物体間のギャップにそれぞれが対応する延長線を検出し、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出し、延長線の終端点に対応する上部表面上の点に従って、層仕切りの輪郭を識別し、輪郭に基づいてロボットの動きを制御するための軌道を決定する。
【選択図】図4A
【特許請求の範囲】
【請求項1】
積み重ねられた物体の間の層仕切りを検出するための計算システムであって、
少なくとも一つのカメラと、
エンドエフェクタ装置を含むロボットアームを有するロボットと通信するように構成された制御システムと、
処理回路と、を備え、
前記処理回路は、
前記少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、前記積み重ねられた物体の輪郭を識別し、
前記積み重ねられた物体の前記輪郭に基づいて、前記積み重ねられた物体の上部表面を識別し、
前記積み重ねられた物体の前記上部表面の2D画像情報に基づいて、前記上部表面の周囲から前記上部表面の中心に向かって延びる、物体のエッジ又は前記積み重ねられた物体の間のギャップのうちの少なくとも一つにそれぞれが対応する延長線を検出し、
前記延長線の各々の長さが線長閾値未満であることに基づいて、前記層仕切りの存在を検出し、
前記延長線の終端点に対応する前記上部表面上の点に従って、前記層仕切りの輪郭を識別し、
前記層仕切りの前記輪郭に基づいて、前記ロボットアームの動きを制御するための軌道を決定するように構成されている、計算システム。
【請求項2】
前記終端点は、前記上部表面の前記周囲より遠位にある、請求項1に記載のシステム。
【請求項3】
前記処理回路は、前記3D画像情報中で検出された前記物体間の深度勾配に基づいて、前記上部表面上の前記延長線を検出するようにさらに構成されている、請求項1に記載のシステム。
【請求項4】
前記処理回路は、前記延長線が前記上部表面の前記周囲から前記上部表面の前記中心まで延びていないことに基づいて、前記層仕切りの前記存在を検出するようにさらに構成されている、請求項1に記載のシステム。
【請求項5】
前記処理回路は、前記周囲から前記延長線の各々の前記終端点までの、前記積み重ねられた物体の前記上部表面の画像情報の部分を除去することに基づいて、前記層仕切りの輪郭を識別するようにさらに構成されている、請求項1に記載のシステム。
【請求項6】
前記処理回路は、
前記層仕切りの前記存在が検出されることに応答して、前記層仕切りの表面積を決定し、
前記表面積が表面積最小閾値よりも大きいことに応答して、前記層仕切りの前記存在を検証するようにさらに構成されている、請求項1に記載のシステム。
【請求項7】
前記処理回路は、
前記層仕切りの前記存在が検出されることに応答して、前記層仕切りの表面積を決定し、
前記表面積が表面積最大閾値よりも小さいことに応答して、前記層仕切りの前記存在を検証するようにさらに構成されている、請求項1に記載のシステム。
【請求項8】
前記処理回路は、
前記層仕切りの前記存在が検出されることに応答して、前記層仕切りの上部表面に対応する前記3D画像情報中の隣接する画素の深度情報の変化に基づいて、前記層仕切りの平滑度を決定し、
前記平滑度が平滑度閾値よりも大きいことに応答して、前記層仕切りの前記存在を検証するようにさらに構成されている、請求項1に記載のシステム。
【請求項9】
前記処理回路は、
前記層仕切りの上部表面に対応する前記2D画像情報及び前記3D画像情報に基づいて、画像特徴を生成し、
前記画像特徴に基づいてテクスチャアーチファクトを識別し、
前記テクスチャアーチファクトが識別されることに応答して、前記層仕切りの前記存在が誤検知であると決定するようにさらに構成されている、請求項1に記載のシステム。
【請求項10】
前記軌道によって、前記ロボットが前記層仕切りを把持して除去するように設定される、請求項1に記載のシステム。
【請求項11】
命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、制御回路によって実行されるとき、前記制御回路が、
少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、前記積み重ねられた物体の輪郭を識別し、
前記積み重ねられた物体の前記輪郭に基づいて、前記積み重ねられた物体の上部表面を識別し、
前記積み重ねられた物体の前記上部表面の2D画像情報に基づいて、前記上部表面の周囲から前記上部表面の中心に向かって延びる、物体のエッジ又は前記積み重ねられた物体の間のギャップのうちの少なくとも一つにそれぞれが対応する延長線を検出し、
前記延長線の各々の長さが線長閾値未満であることに基づいて、前記層仕切りの存在を検出し、
前記延長線の終端点に対応する前記上部表面上の点に従って、前記層仕切りの輪郭を識別し、
前記層仕切りの前記輪郭に基づいて、ロボットのロボットアームの動きを制御するための軌道を決定するように構成される、非一時的コンピュータ可読媒体。
【請求項12】
前記終端点は、前記上部表面の前記周囲より遠位にある、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記制御回路は、前記3D画像情報中で検出された前記物体間の深度勾配に基づいて、前記上部表面上の前記延長線を検出するようにさらに構成されている、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記制御回路は、前記延長線が前記上部表面の前記周囲から前記上部表面の前記中心まで延びていないことに基づいて、前記層仕切りの前記存在を検出するようにさらに構成されている、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記制御回路は、前記周囲から前記延長線の各々の前記終端点までの、前記積み重ねられた物体の前記上部表面の画像情報の部分を除去することに基づいて、前記層仕切りの輪郭を識別するようにさらに構成されている、請求項11に記載の非一時的コンピュータ可読媒体。
【請求項16】
積み重ねられた物体の間の層仕切りを検出するためのプロセッサ実装方法であって、
少なくとも一つの画像から取得された3D画像情報に基づいて、前記積み重ねられた物体の輪郭を識別することと、
前記積み重ねられた物体の前記輪郭に基づいて、前記積み重ねられた物体の上部表面を識別することと、
前記積み重ねられた物体の前記上部表面の2D画像情報に基づいて、前記上部表面の周囲から前記上部表面の中心に向かって延びる、物体のエッジ又は前記積み重ねられた物体の間のギャップのうちの少なくとも一つにそれぞれが対応する延長線を検出することと、
前記延長線の各々の長さが線長閾値未満であることに基づいて、前記層仕切りの存在を検出することと、
前記延長線の終端点に対応する前記上部表面上の点に従って、前記層仕切りの輪郭を識別することと、
前記層仕切りの前記輪郭に基づいて、ロボットのロボットアームの動きを制御するための軌道を決定することと、を含む、方法。
【請求項17】
前記終端点は、前記上部表面の前記周囲より遠位にある、請求項16に記載の方法。
【請求項18】
前記3D画像情報中で検出された前記物体間の深度勾配に基づいて、前記上部表面上の前記延長線を検出することをさらに含む、請求項16に記載の方法。
【請求項19】
前記延長線が前記上部表面の前記周囲から前記上部表面の前記中心まで延びていないことに基づいて、前記層仕切りの前記存在を検出することをさらに含む、請求項16に記載の方法。
【請求項20】
前記層仕切りの前記輪郭を前記特定することは、前記周囲から前記延長線の各々の前記終端点までの、前記積み重ねられた物体の前記上部表面の画像情報の部分を除去することに基づいて、前記層仕切りの前記輪郭を識別することを含む、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、「A ROBOTIC SYSTEM WITH OBJECT DETECTION」と題する、2023年7月2日出願の米国仮特許出願第63/524,668号の利益を請求し、その全体の内容は参照により本明細書に組み込まれる。
【0002】
本技術は、概して、ロボットシステム、より詳細には、物体を識別及び検出するためのシステム、プロセス、及び技術を対象とする。より具体的には、本技術は、荷積み又は輸送プラットフォーム上に配設された物体の層の間に配置された層セパレータの識別及び検出を可能にする。
【背景技術】
【0003】
現在、多くのロボット(例えば、物理的動作を自動的/自律的に実行するように構成される機械)は、性能向上及びコスト低減が常に進む中、さまざまな異なる分野で広範囲に使用される。ロボットは、例えば、製造及び/又は組立、包装及び/又は梱包、輸送及び/又は出荷などにおけるさまざまなタスク(例えば、空間を通した物体の操作又は搬送)を実行するために使用され得る。ロボットは、タスクを実行する際に、人間の動作を再現可能であり、それによって、危険又は反復的なタスクを実行するために、通常であれば必要とされる人間の関与を置き換え又は低減することができる。
【0004】
技術が進歩しているにもかかわらず、ロボットは多くの場合、より大きな及び/又はより複雑なタスクを実行するために、人間の相互作用を複製する精巧さを欠く。従って、ロボット間の操作及び/又は相互作用を管理するための技術及びシステムの改善に対するニーズは、依然として存在する。
【発明の概要】
【0005】
一部の態様では、少なくとも一つのカメラと、エンドエフェクタ装置を含むロボットアームとを有するロボットと通信するように構成された制御システムと、少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の少なくとも一つのエッジ及び輪郭を識別し、積み重ねられた物体の輪郭及び少なくとも一つのエッジに基づいて、積み重ねられた物体の上部表面を識別し、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する延長線を検出し、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出し、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別し、層仕切りの輪郭に基づいて、ロボットアームの動きを制御するための軌道を決定するように構成された処理回路と、を含む、積み重ねられた物体の間の層仕切りを検出するための計算システムが提供されている。
【0006】
一部の態様では、少なくとも一つのカメラと、エンドエフェクタ装置を含むロボットアームとを有するロボットと通信するように構成された制御システムと、少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の少なくとも一つのエッジ及び輪郭を識別し、積み重ねられた物体の輪郭及び少なくとも一つのエッジに基づいて、積み重ねられた物体の上部表面を識別し、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する延長線を検出し、延長線の各々の長さが線長閾値未満であることに応答して、層仕切りの存在を検出するように構成された処理回路と、を含む、積み重ねられた物体の間の層仕切りを検出するための計算システムが提供されている。
【0007】
一部の態様では、少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の少なくとも一つのエッジ及び輪郭を識別することと、積み重ねられた物体の輪郭及び少なくとも一つのエッジに基づいて、積み重ねられた物体の上部表面を識別することと、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する、延長線を検出することと、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出することと、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別することと、層仕切りの輪郭に基づいて、ロボットのロボットアームの動きを制御するための軌道を特定することと、を含む、積み重ねられた物体の間の層仕切りを検出するためのコンピュータプロセッサ実装方法が提供されている。
【0008】
他の特徴及び態様は、以下の詳細な説明、図面、及び特許請求の範囲から明らかであろう。
【0009】
本概要は、選択された概念を簡略化された形態で紹介するために提供され、これは発明を実施するための形態において以下にさらに説明される。本概要は、特許請求される主題の主な特徴又は本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を決定する際の助けとして使用されることも意図していない。
【図面の簡単な説明】
【0010】
図1A】一つ以上の実施形態による、物体の検出、識別、及び取得のためのシステムの一例を示す。
図1B】一つ以上の実施形態による、物体の検出、識別、及び取得のためのシステムの一例を示す。
図1C】一つ以上の実施形態による、物体の検出、識別、及び取得のためのシステムの一例を示す。
図1D】一つ以上の実施形態による、物体の検出、識別、及び取得のためのシステムの一例を示す。
図2A】一つ以上の実施形態による、物体を検出、識別、及び取得するように構成された計算システムの一例を示す。
図2B】一つ以上の実施形態による、物体を検出、識別、及び取得するように構成された計算システムの一例を示す。
図2C】一つ以上の実施形態による、物体を検出、識別、及び取得するように構成された計算システムの一例を示す。
図2D】一つ以上の実施形態による、物体を検出、識別、及び取得するように構成された計算システムの一例を示す。
図2E】一つ以上の実施形態による、本明細書に開示されるシステム及び方法によって処理される画像情報の一例を示す。
図2F】一つ以上の実施形態による、本明細書に開示されるシステム及び方法によって処理される画像情報の一例である。
図3A】一つ以上の実施形態による、ロボットシステムを動作させるための環境の一例を示す。
図3B】一つ以上の実施形態による、ロボットシステムによる物体の検出、識別、及び取得のための環境の一例を示す。
図4A】一つ以上の実施形態による、ロボットシステムによる層仕切りの検出、識別、及び取得のための方法の一例を示す。
図4B】一つ以上の実施形態による、ロボットシステムによって積み重ねられた物体の上部表面を決定するための方法の一例を示す。
図5A】一つ以上の実施形態による、積み重ねられた物体及び層仕切りの画像の一例を示す。
図5B】一つ以上の実施形態による、積み重ねられた物体及び層仕切りの画像の一例を示す。
図5C】一つ以上の実施形態による、積み重ねられた物体及び層仕切りの画像の一例を示す。
図6A】一つ以上の実施形態による、積み重ねられた物体中の層仕切りの輪郭を決定するための方法の一例を示す。
図6B】一つ以上の実施形態による、層仕切りを決定するための画像の一例を示す。
図7】一つ以上の実施形態による、層仕切りの存在を検証するための方法の一例を示す。
図8】一つ以上の実施形態による、物体の二つの層がパレット上に積み重ねられている環境の一例を示す。
【発明を実施するための形態】
【0011】
図面及び詳細な説明全体を通して、別段の記載又は提供がない限り、同じ図面参照番号は、同じ要素、特徴、及び構造を指すと理解されるであろう。図面は正確な縮尺ではない場合があり、図面の要素の相対的サイズ、比率、及び描写は、明瞭さ、例示、及び利便性のために誇張されている場合がある。
【0012】
物体の検出、識別、及び取得に関連するシステム及び方法が、本明細書に記載されている。一部の例では、開示されるシステム及び方法は、荷積み又は輸送プラットフォーム上に配設された物体の層の間に配置された層仕切りの検出、識別、及び取得を容易にし得る。本明細書で記載されるように、物体は、箱、ビン、クレートなどであってもよく、これは、例えば、スキッド又はパレットなどの荷積み又は輸送プラットフォーム上に配設される。以下の詳細な説明では、荷積み又は輸送プラットフォーム及びパレットという用語は、互換的に使用されてもよく、これらの用語は、保管又は輸送のために物体が積み重ねられ得る任意のプラットフォームを指し得る。
【0013】
一部の例では、物体の形状及びサイズは変化してもよい。一部の例では、物体の形状は、概して直方体又は立方体であってもよい。物体は、整理された、整理されていない、又は不規則な様式で、荷積み又は輸送プラットフォーム上に配設され得る。例えば、荷積み又は輸送プラットフォーム上に配設される物体は、例えば、直方体、四角錐、又は立方体などの形状で配設されてもよい。他の例では、物体は、荷積み又は輸送プラットフォーム上に層状に配設されてもよく、層の各々は、類似又は等しい数又は物体を有してもよく、又は有しなくてもよい。
【0014】
層内の物体は、スプリッタシート、層セパレータ、又は層仕切りによって別の層内の物体から分離されてもよい。層セパレータ又は層仕切りは、荷積み又は輸送プラットフォーム上の物体の層を分離してもよく、重量を分散させ、製品をほこり及び汚れから保護し、一つ以上の物体へのストラッピング及びフォークリフトの損傷から保護するのに役立つ場合がある。一部の例では、層仕切りは、例えば、スリップシート、スプリッタシート、厚紙シート、段ボール、板紙(ソリッドシート)、波形シート、カード紙、紙シート、プラスチックシート、又は物体の層の間に置かれ得る層パッドなどの、物体の間に配置される薄い層であってもよい。一部の例では、層仕切りの厚さは、最小限、例えば、物体のいずれかの寸法、又は層仕切りの長さもしくは幅と比較して、10%未満、5%未満、2%未満、又は1%未満であってもよい。層仕切りの厚さの一部の例は、段ボールが単一壁であるか、二重壁であるか、又は三重壁であるかに応じて、段ボールの厚さが、3mmから15mmまで変化してもよく、板紙の厚さが0.2mmから1mmまで変化してもよく、カード紙の厚さが0.25mmから0.8mmまで変化してもよい。
【0015】
一部の例では、層仕切りは、荷積み又は輸送プラットフォーム上の物体の層の一部又はすべての間に配置され得る。一部の例では、層仕切りは、物体の層の上部表面のすべて、ほぼすべて、又は実質的にすべて(例えば、50%超、80%超、90%超、95%超、又は98%超)を覆うようにサイズ設定され得る。一部の例では、層仕切りの長さ及び幅は、その上に配置される物体の層の上部表面の対応する長さ及び幅よりも小さくてもよい。一部の例では、層仕切りは、長方形の形状又は正方形の形状など、形状が実質的に四角形であってもよい。一部の例では、層仕切りの形状は、層仕切りの一つ以上のエッジ又は側面の折り畳み、曲げ、又は引き裂きに起因して歪んでいる場合がある。
【0016】
こうした状況での層仕切りの検出及び識別は、層仕切りの不規則な配設及び形状に起因して困難である場合がある。本明細書で記載されるシステム及び方法は、異なる形状でもたらされ、規則的又は半規則的な様式で配設される層仕切りの物体検出、識別、及び取得を改善する。したがって、本明細書に記載のシステム及び方法は、層仕切りの存在を検出し、層仕切りの輪郭を識別するように設計される。本明細書に記載するシステム及び方法は、ロボットシステムを含み得る。本明細書の実施形態にしたがって構成されたロボットシステムは、複数のロボットの操作を調整することによって、統合されたタスクを自律的に実行し得る。ロボットシステムは、本明細書に記載されるように、制御し、コマンドを発行し、ロボット装置及びセンサからの情報を受信し、ロボット装置、センサ及びカメラによって生成されたデータにアクセスし、分析し、及び処理し、ロボットシステムの制御に使用可能なデータ又は情報を生成し、ロボット装置、センサ、及びカメラの動作を計画するように構成されたロボット装置、アクチュエータ、センサ、カメラ、及び計算システムの任意の適切な組み合わせを含み得る。本明細書で使用するロボットシステムは、ロボットアクチュエータ、センサ、又はその他の装置を直ちにアクセス又は制御する必要はない。ロボットシステムは、本明細書に記載するように、情報の受信、分析、及び処理を通して、そのようなロボットアクチュエータ、センサ、及び他のデバイスの性能を改善するように構成された計算システムであり得る。
【0017】
本明細書に記載される技術は、物体の識別、検出、及び取り出しで使用するために構成されたロボットシステムに技術的改善を提供する。本明細書に記載する技術的改善は、これらのタスクの速度、精度、及び正確さを増加させ、荷積み又は輸送プラットフォーム上の物体の層の間に配置された層セパレータの検出、識別、及び取得をさらに容易にする。本明細書に記載のロボットシステム及び計算システムは、荷積み又は輸送プラットフォーム上の物体の層の間に配置された層セパレータを識別、検出、及び取り出しすることの技術的問題に対処する。この技術的問題に対処することにより、物体の識別、検出、及び取り出しの技術が改善される。
【0018】
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書に記載するように、ロボットアクチュエータ構成要素(例えば、ロボットアーム、ロボットグリッパーなど)、さまざまなセンサ(例えば、カメラなど)、及びさまざまな計算又は制御システムを含み得る。本明細書に記載するように、計算システム又は制御システムは、ロボットアーム、ロボットグリッパー、カメラなどの「制御する」さまざまなロボット構成要素と称され得る。このような「制御」は、ロボット構成要素のさまざまなアクチュエータ、センサ、及びその他の機能的態様の直接的な制御及びそれらとの相互作用を指し得る。例えば、計算システムは、さまざまなモーター、アクチュエータ、及びセンサにロボット移動を生じさせるために必要な信号の全てを発行又は提供することによって、ロボットアームを制御し得る。このような「制御」はまた、このようなコマンドを、ロボット移動を生じるために必要な信号にその後変換する、さらなるロボット制御システムへの抽象的又は間接的なコマンドの発行を指し得る。例えば、計算システムは、ロボットアームが移動すべき軌道又は目的地位置を記述するコマンドを発行することによってロボットアームを制御し得、ロボットアームに関連付けられるさらなるロボット制御システムは、このようなコマンドを受信及び解釈し、その後、ロボットアームのさまざまなアクチュエータ及びセンサに必要な直接信号を提供して、必要な移動を生じ得る。
【0019】
特に、本明細書に記載の本技術は、ロボットシステムが、荷積み又は輸送プラットフォーム上に配設された物体の層の間に配置される層セパレータを検出、識別、相互作用するのを支援する。物体の層の間からの、層セパレータの検出、識別、取り出しには、いくつかの工程が必要であり、荷積み又は輸送プラットフォーム上に配置された積み重ねられた物体のエッジ及び輪郭を識別することと、積み重ねられた物体の輪郭及びエッジに基づいて、積み重ねられた物体の上部表面を識別することと、物体のエッジ又は積み重ねられた物体の物体間のギャップに対応する延長線を検出することであって、延長線が、積み重ねられた物体の上部表面の周囲から上部表面の中心に向かって延びる、検出することと、延長線の各々の長さが閾値未満であることに基づいて、層仕切りの存在を検出することと、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別することと、を含む。例えば、層仕切りの不規則な配設及び形状の可能性のために、層仕切りの輪郭を認識及び識別する必要がある場合がある。
【0020】
以下の説明では、本開示技術を理解させるために、具体的な詳細を記載する。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含めずに、実施され得る。他の事例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために、詳細に説明されない。本明細書において「ある例」、「ある実施形態」、「一つの実施形態」などへの言及は、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも一つの実施形態に含まれることを意味する。従って、本明細書にこのような語句が記載されても、必ずしも全てが、同一の実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、任意の一つの実施形態に関して記載される特定の特徴、構造、材料、又は特性は、このような品目が相互に排他的でない限り、他の任意の実施形態のものと任意の適切な様式で組み合わせることができる。図に示す様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0021】
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭し得る、構造又はプロセスを記載するいくつかの詳細は、明示目的で、以下の説明には記載されない。さらに、以下の開示が、本技術の異なる態様のいくつかの実施形態を説明しているものの、他のいくつかの実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有し得る。従って、開示された技術は、追加の要素を有するか、又は以下に記載の要素のうちの一部を有しない、他の実施形態を有し得る。
【0022】
以下に記載の本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はコントローラによって実行されるルーチンを含む、コンピュータ又はコントローラによる実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され記載されるもの以外のコンピュータ又はコントローラシステム上で、もしくはそれらを用いて実践され得ることを理解するであろう。本明細書に記載される技術は、以下に記載のコンピュータ実行可能命令のうちの一つ以上を実行するように、特別にプログラム、構成、又は構築される、専用コンピュータ又はデータプロセッサで具体化され得る。従って、本明細書において一般的に使用するプロセッサ、処理ユニット、コンピュータ及びコントローラという用語は、任意のデータプロセッサを指し、インターネット家電及び手持ち式デバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラー又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。説明を容易にするために、単数用語のプロセッサ、コントローラ、もしくはコンピュータが、本出願に記載される実施例の説明に使用され得るが、他の実施例では、複数のプロセッサもしくはコンピュータが使用されてもよく、又はプロセッサもしくはコンピュータは、複数の処理要素、又は複数のタイプの処理要素、又はその両方を含んでもよい。例えば、単一のハードウェア構成要素又は二つ以上のハードウェア構成要素は、単一のプロセッサ、又は二つ以上のプロセッサ、又はプロセッサ及びコントローラによって実装されてもよい。一つ以上のプロセッサ、又は一つのプロセッサ、又は一つのコントローラは、単一のハードウェア構成要素又は二つ以上のハードウェア構成要素を実装し得る。これらのコンピュータ及びコントローラによって取り扱われる情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータ又はコントローラによる実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の適切なメモリーデバイスに含まれ得る。
【0023】
「結合される」及び「接続される」という用語は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語が、互いの同義語として意図されないことは理解されるべきである。むしろ、特定の実施形態では、「接続される」は、二つ以上の要素が、互いに直接接触することを示すために使用され得る。文脈において別途明白にされない限り、「結合される」という用語は、二つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にある、又は二つ以上の要素が互いに協働する、もしくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)、又はその両方を示すために使用され得る。
【0024】
計算システムによる画像分析に対する本明細書での任意の言及は、選択された点に対するさまざまな位置のそれぞれの深度値を記載する深度情報を含み得る空間構造情報に従って、又はそれを使用して、実施され得る。深度情報は、物体を識別する、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、物体の一つ以上の表面の位置を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に周知の他の形態は、本明細書に記載される方法に従って使用され得る。
【0025】
図1Aは、物体検出、又はより詳細には、物体認識を実施するためのシステム1000を示す。システム1000は、より詳細には、計算システム1100及びカメラ1200を含み得る。この例では、カメラ1200は、カメラ1200が位置する環境を説明する、もしくはそうでなければ表し、又はより詳細には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠、パレット、又は他の容器ならびに本明細書で論じた層仕切りなどの、こうした施設に位置する物体を表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づき物体認識又は物体登録を実施すること、及び/又は画像情報に基づきロボット相互作用計画を実施することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(「及び/又は」ならびに「又は」という用語は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他の物体との間のロボット相互作用を容易にするために、ロボットを施設で制御するために使用され得る。計算システム1100及びカメラ1200は、同一施設に位置し得、又は互いに遠隔に位置し得る。例えば、計算システム1100は、倉庫又は小売空間から遠隔のデータセンターでホストされる、クラウド計算プラットフォームの一部であり得、ネットワーク接続を介して、カメラ1200と通信し得る。
【0026】
ある実施形態では、カメラ1200(画像感知装置とも称され得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、図1Bは、計算システム1100、ならびにその両方がカメラ1200の実施形態であり得る、カメラ1200A及びカメラ1200Bを含む、(システム1000の実施形態であり得る)システム1500Aを示す。本例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を示す2D画像を含む、又はそれを形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、又はそれを形成する3D画像情報を生成するように構成される、3Dカメラ(空間構造検出カメラ又は空間構造検出装置とも称される)であり得る。空間構造情報は、カメラ1200Bの視野中にあるさまざまな物体の表面上の位置など、カメラ1200Bに対するさまざまな位置のそれぞれの深度値を説明する、深度情報(例えば、深度マップ)を含み得る。カメラの視野又は物体の表面上のこれらの位置を、物理的位置と称することもできる。この例の深度情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、カメラ1200Bの視野内の物体の一つ以上の表面上の位置を説明する点群を含むことができ、又はこの点群を生成するために使用することができる。より具体的には、空間構造情報は、物体の構造(物体構造とも呼ぶ)上のさまざまな位置を説明することができる。
【0027】
ある実施形態では、システム1000は、カメラ1200の環境におけるロボットと様々な物体との間のロボット相互作用を容易にするための、ロボットオペレーティングシステムであり得る。例えば、図1Cは、図1A及び図1Bのシステム1000/1500Aの実施形態であり得る、ロボットオペレーティングシステム1500Bを図示する。ロボットオペレーティングシステム1500Bは、計算システム1100、カメラ1200、及びロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境内の一つ以上の物体、例えば、箱、木枠、ビン、ケース、パレット、その他の容器及び/又は本明細書で論じる層仕切りなどと相互作用するために使用することができる。例えば、ロボット1300は、一つの位置から容器をピックアップし、それらを別の位置に移動するように構成することができる。一部の事例では、ロボット1300は、一群の容器又は他の物体が下ろされ、例えば、ベルトコンベヤに移動されるパレット荷下ろしを実施するために使用されるか、又は容器がパレット上に積み重ねられて輸送の準備をする、パレット積載動作を実施するために使用されてもよい。一部の例では、パレット荷下ろし動作中、ロボット1300は、パレット上に配設された物体の層の間に配置された層セパレータを識別してピックアップし、それらを保管するか、又はそれらをベルトコンベヤから離れた位置に移動させてもよい。一部の例では、カメラ1200は、以下に記載する、ロボット1300又はロボット3300に取り付けられ得る。これは、インハンドカメラ又はオンハンドカメラとしても知られる。カメラ1200は、ロボット1300のロボットアーム3320に取り付けることができる。ロボットアーム3320は、様々なピッキング領域に移動して、それらの領域に関する画像情報を生成し得る。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫又は他の構造体の天井に取り付けられてもよく、ロボット1300に対して静止したままでもよい。一部の実装形態では、インハンドカメラ1200とともに使用されるロボット1300とは別個の複数のカメラ1200、及び/又はロボット1300とは別個のカメラ1200を含む、複数のカメラ1200が使用され得る。一部の実装形態では、一つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成される他の自動化システムなどのオブジェクト操作に使用されるロボット1300とは別個の専用のロボットシステムに装着されてもよく、又は固定され得る。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」について論じることができる。カメラ手持ちの対応策については、カメラ1200の制御はまた、カメラ1200が装着される、又は取り付けられるロボット1300の制御を含む。
【0028】
ある実施形態では、図1A図1Cの計算システム1100は、ロボット制御装置とも称され得るロボット1300を形成してもよく、又はそれに組み込まれ得る。ロボット制御システムは、ロボットオペレーティングシステム1500Bに含まれてもよく、例えば、ロボット1300と容器、層セパレータ又は他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成される。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づき、そのようなコマンドを生成するように構成され得る。一部の例では、計算システム1100は、画像情報に基づいて、動作計画を決定するように構成されてもよく、動作計画は、例えば、物体を把持する、又は他の方法で拾い上げるように意図されてもよい。計算システム1100は、動作計画を実行するために、一つ以上のロボット相互作用移動コマンドを生成し得る。
【0029】
ある実施形態では、計算システム1100は、視覚システムを形成し得る、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は追加的に、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報は、上述された3D画像情報及び/又は2D画像情報、あるいは他のいくつかの画像情報を含み得る。一部の状況では、計算システム1100が、視覚システムを形成する場合、視覚システムは、上述されたロボット制御システムの一部であり得、又はロボット制御システムから分離し得る。視覚システムが、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する情報を出力するように構成され得る。該情報は、視覚システムからこのような情報を受信し得る、ロボット制御システムに出力され得、情報に基づいて、動作計画を実施し、及び/又はロボット相互作用移動コマンドを生成する。視覚システムに関するさらなる情報は、以下に詳細に説明される。
【0030】
ある実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、及び/又は周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続部など、直接接続部によってカメラ1200及び/又はロボット1300と通信し得る。ある実施形態では、計算システム1100は、ネットワークを介して、カメラ1200及び/又はロボット1300と通信し得る。該ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットなどのローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意の種類及び/又は形態のネットワークであり得る。該ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、非同期転送モード(ATM)技術、同期型光ネットワーク形成(SONET)プロトコル、又は同期デジタル階層(SDH)プロトコルを含む、プロトコルの異なる技術、及び層又はスタックを利用し得る。
【0031】
ある実施形態では、計算システム1100は、カメラ1200及び/又はロボット1300と直接情報を通信し得、又は中間記憶装置、もしくはより一般的には、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、図1Dは、計算システム1100の外部にあり得る、非一時的コンピュータ可読媒体1400を含む、システム1000/1500A/1500Bの実施形態であり得、例えば、カメラ1200によって生成された画像情報を記憶するための外部バッファ又は保管場所として作用し得る、システム1500Cを示す。このような例では、計算システム1100は、画像情報を検索し得、それ以外では非一時的コンピュータ可読媒体1400から受信し得る。非一時的コンピュータ可読媒体1400の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又はそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消去可能プログラム可能読み出し専用メモリー(EPROM又はフラッシュメモリー)、静的ランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、及び/又はメモリースティックを形成し得る。
【0032】
上述のように、カメラ1200は、3Dカメラ及び/又は2Dカメラであり得る。2Dカメラは、カラー画像又はグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラ又は構造化光カメラなどの深度検出カメラ、又は他の任意の種類の3Dカメラであり得る。一部の事例では、2Dカメラ及び/又は3Dカメラは、電荷結合デバイス(CCD)センサ及び/又は相補型金属酸化膜半導体(CMOS)センサなど、画像センサを含み得る。ある実施形態では、3Dカメラは、レーザ、LIDAR装置、赤外線装置、明/暗センサ、動作センサ、マイクロ波検出器、超音波検出器、レーダ探知機、又は深度情報もしくは他の空間構造情報を捕捉するように構成された他の任意の装置を含み得る。
【0033】
上述のように、画像情報は、計算システム1100によって処理され得る。ある実施形態では、計算システム1100は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレット計算デバイス、及び/又は他の任意の計算システムを含み得、又はそれらとして構成され得る。ある実施形態では、計算システム1100の機能性のいずれか又は全ては、クラウド計算プラットフォームの一部として行われ得る。計算システム1100は、単一の計算デバイス(例えば、デスクトップコンピュータ)であり得、又は複数の計算デバイスを含み得る。
【0034】
図2Aは、計算システム1100の例を示す。本実施形態における計算システム1100は、処理回路1110、及び非一時的コンピュータ可読媒体(又は複数の媒体)1120を含む。一部の事例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリー)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されるプロセッサ(例えば、中央処理装置(CPU)、専用コンピュータ、及び/又は車載サーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に動作可能に結合される別個の/スタンドアローンのコントローラに含まれ得る。プロセッサは、プログラム命令を実行して、他の装置を制御/他の装置とインターフェース接続し、それによって、計算システム1100に動作、タスク、及び/又は操作を実行させ得る。ある実施形態では、処理回路1110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジック制御装置(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は他の任意の処理回路を含む。
【0035】
ある実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120は、上述された中間の非一時的コンピュータ可読媒体1400の代替又は追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消去可能プログラム可能読み出し専用メモリー(EPROM又はフラッシュメモリー)、静的ランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、メモリースティック、それらの任意の組み合わせ、任意の他の記憶装置、ならびに命令又はソフトウェア及び任意の関連データ、データファイル、及びデータ構造を非一時的様式で格納し、一つ以上のプロセッサ又はコンピュータが命令を実行できるように、命令又はソフトウェア及び任意の関連データ、データファイル、及びデータ構造を、一つ以上のプロセッサ又はコンピュータに提供するように構成された任意の他の装置などの記憶装置であり得る。一部の事例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。一例では、命令又はソフトウェア、ならびに任意の関連データ、データファイル、及びデータ構造は、命令及びソフトウェア、ならびに任意の関連データ、データファイル、及びデータ構造が、一つ以上のプロセッサ又はコンピュータによって分散された様式で保存、アクセス、及び実行されるように、ネットワーク結合コンピュータシステムを介して分散される。特定の実装形態では、非一時的コンピュータ可読媒体1120は、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の事例では、非一時的コンピュータ可読媒体1120は、本明細書に記載する方法及び動作を実施するために使用される一つ以上の物体認識テンプレートを記憶し得る。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的又は追加的に記憶し得る。
【0036】
図2Bは、計算システム1100の一実施形態であり、通信インターフェース1131を含む、計算システム1100Aを描写している。通信インターフェース1131は、例えば、図1A図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、又はカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。一実施形態では、通信インターフェース1131は、図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1131が、ロボット制御システムと通信するように構成され得る。通信インターフェース1131はまた、通信構成要素又は通信回路と呼ばれる場合があり、例えば、有線又は無線プロトコル上で通信を実施するように構成された通信回路を含んでもよい。例として、通信回路が、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、又はそれらの組み合わせを含んでもよい。
【0037】
ある実施形態では、図2Cに示すように、非一時的コンピュータ可読媒体1120は、本明細書に記載される一つ以上のデータオブジェクトを記憶するように構成された記憶空間1125を含み得る。例えば、記憶空間は、物体認識テンプレート、画像情報、物体画像情報、閾値、ロボットアーム移動コマンド、及び本明細書に記載した計算システムがアクセスを必要とし得る任意の追加のデータ物体を記憶し得る。
【0038】
ある実施形態では、処理回路1110は、非一時的コンピュータ可読媒体1120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、図2Dは、計算システム1100/1100A/1100Bの実施形態である、計算システム1100Cを示し、処理回路1110は、物体認識モジュール1121、動作計画モジュール1129、及び物体操作計画モジュール1126を含む、一つ以上のモジュールによってプログラムされる。処理回路1110は、物体登録モジュール1130、特徴抽出モジュール1134、及び検証モジュール1138でさらにプログラムされてもよい。上記モジュールの各々は、本明細書に記載されるプロセッサ、処理回路、計算システムなどのうちの一つ以上でインスタンス化される場合、特定のタスクを実行するように構成される、コンピュータ可読プログラム命令を表し得る。上記のモジュールの各々は、本明細書に記載される機能を達成するために、互いに協働して動作し得る。本明細書に記載される機能性のさまざまな態様は、上述のソフトウェアモジュールのうちの一つ以上によって実行され得、ソフトウェアモジュール及びそれらの説明は、本明細書に開示されるシステムの計算構造を限定するものとして理解されない。例えば、特定のタスク又は機能が、特定のモジュールに関して記載され得るが、そのタスク又は機能はまた、必要に応じて異なるモジュールによって実施され得る。さらに、本明細書に記載のシステム機能は、機能の異なる内訳又は割り当てにより構成される異なる組のソフトウェアモジュールによって実行され得る。
【0039】
ある実施形態では、物体認識モジュール1121は、本開示全体を通して記載するように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書に記載する方法、システム、及び技術は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書に記載するように、物体識別に関連する物体認識タスクのためにさらに構成され得る。
【0040】
動作計画モジュール1129は、ロボットの移動を計画及び実行するように構成され得る。例えば、動作計画モジュール1129は、本明細書に記載される他のモジュールと相互作用し得、物体回収操作及びカメラ配置操作のためのロボット3300の動作を計画する。ロボットアームの移動及び軌道に関して本明細書に記載する方法、システム、及び技術は、動作計画モジュール1129によって実行され得る。
【0041】
物体操作計画モジュール1126は、例えば、物体を把持及び開放する、ならびにこのような把持及び開放を補助及び容易にするために、ロボットアームコマンドを実行するなどの、ロボットアームの物体操作活動を計画及び実行するように構成され得る。
【0042】
物体登録モジュール1130は、本明細書で論じる様々なタスクに必要とされ得る物体登録情報を取得、記憶、生成、及び別様で処理するよう構成されてもよい。物体登録モジュール1130は、ロボットシステムによって検出、識別、及び取り出され得る様々な物体に関連する寸法及び閾値を保存し得る。物体登録モジュール1130は、必要に応じて、他の任意のモジュールと相互作用又は通信するように構成され得る。
【0043】
特徴抽出モジュール1134は、例えば、図4A~5Cに関連して、本明細書で論じる特徴抽出及び生成タスクを完了するように構成され得る。特徴抽出モジュール1134は、物体登録モジュール1130、及び必要に応じて任意の他のモジュールと相互作用するように構成され得る。
【0044】
検証モジュール1138は、例えば、図4A及び図7に関連して、本明細書で論じるように検証タスクを完了するように構成され得る。検証モジュール1138は、物体登録モジュール1130、特徴抽出モジュール1134、及び必要に応じて任意の他のモジュールと相互作用するように構成され得る。
【0045】
図2E図2F図3A及び図3Bを参照して、画像分析のために実施され得る物体認識モジュール1121に関連する方法を説明する。図2E及び図2Fは、画像分析方法と関連付けられる例示的な画像情報を図示するが、図3A及び図3Bは、画像分析方法と関連付けられる例示的なロボット環境を図示する。計算システムによる画像分析に関連する本明細書での言及は、選択された点に対するさまざまな位置のそれぞれの深度値を説明する、深度情報を含み得る空間構造情報に従って、又はそれを使用して、実行され得る。深度情報は、物体を識別する、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、物体の一つ以上の表面の位置を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、画像分析の一形態に過ぎず、当業者に周知の他の形態は、本明細書に記載される方法に従って使用され得る。
【0046】
実施形態では、計算システム1100は、カメラ1200のカメラ視野(例えば、3200)内の物体を表す画像情報を取得し得る。一部の例では、物体は、カメラ1200の視野3200中のパレット3400上の物体3100A/3100B/3100C/3100D/3600の上部表面3120上に配置された層仕切り3600であり得る。図2E及び図2Fに示すように、画像情報2600、2700は、層仕切り3600がカメラ視野3200中にある(又はあった)とき、カメラ(例えば、1200)によって生成されてもよく、層仕切り3600、パレット3400、個々の物体3100A/3100B/3100C/3100Dのうちの一つ以上、及び/又は情景3800を記述し得る。物体の外観は、カメラ1200の視点からの層仕切り3600及び周囲の物体3100A/3100B/3100C/3100D、ならびにパレット3400の外観を記述する。カメラ視野に複数の物体がある場合、カメラは、必要に応じて、複数の物体又は単一の物体を表す画像情報(単一の物体に関するこのような画像情報は、物体画像情報と呼ばれ得る)を生成し得る。画像情報は、一群の物体がカメラ視野にある(又はあった)場合、カメラ(例えば、1200)によって生成され得、例えば、2D画像情報及び/又は3D画像情報を含み得る。
【0047】
一例として、図2Eは、第一のセットの画像情報、より具体的には、2D画像情報2600を描写しており、これは、上述のように、カメラ1200によって生成され、図3Aの物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400を表す。一部の例では、2D画像情報2600は、グレースケール又はカラー画像であり得、カメラ1200の視点からの物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400の外観を記述し得る。ある実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のチャネル)に対応し得る。カメラ1200が物体3100A/3100B/3100C/3100Dの上方に配置される場合、2D画像情報2600は、物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400のそれぞれの上部表面の外観を表し得る。図2Eの例では、2D画像情報2600は、物体3100A/3100B/3100C/3100Dのそれぞれの上部表面を表す、画像部分又は物体画像情報とも呼ばれる、それぞれの部分2000A/2000B/2000C/2000Dを含み得る。図2Eの例では、2D画像情報2600は、物体3100A/3100B/3100C/3100D上に配置された層仕切り3600の上部表面を表す画像部分とも呼ばれる、画像部分2100を含み得る。図2Eの例では、2D画像情報2600は、その上に物体3100A/3100B/3100C/3100Dが配置される、パレット3400のそれぞれの表面を表す、画像部分又は物体画像情報とも呼ばれる2550を含み得る。
【0048】
図2Eでは、2D画像情報2600の各画像部分2000A/2000B/2000C/2000D/2100/2550は、画像領域、又は、より詳細には、画素領域(画像が画素によって形成されている場合)であり得る。2D画像情報2600の画素領域内の各画素は、一組の座標[U、V]によって示される位置を有するものとして特徴付けられ得、図2E及び図2Fに示すように、カメラ座標系又は他の何らかの座標系に対する値を有し得る。画素の各々はまた、0~255又は0~1023の値などの、強度値を有し得る。さらなる実施形態では、画素の各々は、さまざまなフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)の画素に関連付けられる任意の追加情報を含み得る。
【0049】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像の全て又は一部分であり得る。例では、計算システム1100は、対応する物体、すなわち、層仕切り3600と関連付けられた画像情報のみを取得するように、2D画像情報2600から画像部分2100を抽出するように構成されてもよい。画像部分(画像部分2000Aなど)が単一の物体を対象とする場合、それは物体画像情報と呼ばれ得る。物体画像情報は、それが向けられる物体についての情報のみを含む必要はない。例えば、それが向けられる物体は、一つ以上の他の物体の近く、その下、その上、又はそれ以外では、その近傍に位置し得る。このような場合、物体画像情報は、それが向けられる物体、ならびに一つ以上の隣接する物体についての情報を含み得る。計算システム1100は、図2Fに示す2D画像情報2600及び/又は3D画像情報2700に基づき、画像セグメンテーション又は他の分析又は処理動作を実行することによって、画像部分2000Aを抽出し得る。一部の実装形態では、画像セグメンテーション又は他の動作は、2D画像情報2600内の物体の物理的エッジが現れる(例えば、画像中の物体のエッジ又は物体間のギャップ)画像場所を検出することと、そのような画像場所を使用して、カメラ視野(例えば、3200)内の個々の物体を表し、かつ他の物体を実質的に除外することに限定される、物体画像情報を識別することとを含み得る。「実質的に除外する」とは、画像セグメンテーション又はその他の処理技術が、非標的物体を物体画像情報から除外するように設計及び構成されるが、エラーが生じる可能性がありノイズが存在する可能性がありさまざまな他の要因が他の物体の部分の包含をもたらす可能性があることが理解されることを意味する。
【0050】
図2Fは、画像情報が3D画像情報2700である例を描写している。一部の例では、3D画像情報2700は、例えば、物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400の一つ以上の表面(例えば、上部表面、又は他の外表面)上のさまざまな位置のそれぞれの深度値を示す、深度マップ又は点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション動作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報2700内に現れる画像位置を検出すること、及びそのような画像位置を使用して、カメラ視野(例えば、3100A)内の個々の物体を表すことに限定される画像部分(例えば、2730)を識別することを含み得る。
【0051】
それぞれの深度値は、3D画像情報2700を生成するカメラ1200に対するものであってもよく、又はいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3200)内にある物体の構造上の様々な場所についてのそれぞれの座標を含む、点群を含み得る。図2Fの例では、点群は、物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400のそれぞれの表面の位置を記述する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、又は何らかの他の座標系に対する値を有し得る。例えば、3D画像情報2700は、物体3100Dの表面上の物理的位置とも呼ばれる、位置2710~2710のセットに対するそれぞれの深度値を示す、画像部分とも呼ばれる第一の画像部分2710を含み得る。別の例では、3D画像情報2700は、第二の部分、第三の部分、第四の部分、及び第五の部分2720、2730、2740、2750、及び2760をさらに含み得る。次に、これらの部分は、それぞれ、2720~2720、2730~2730、2740~2740、2750~2750、及び2760~2760によって表され得る、一組の位置に対するそれぞれの深度値をさらに示し得る。これらの図は単に例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述と同様に、取得された3D画像情報2700は、一部の事例では、カメラによって生成された第一の組の3D画像情報2700の一部分であり得る。図2Fの例では、取得された3D画像情報2700が図3Aの物体3100Aを表す場合、3D画像情報2700は、第一の画像部分2710のみを参照するように狭められ得る。2D画像情報2600の考察と同様に、第一、第二、第三、第四及び第五の画像部分2730の各々は、個々の物体に関連してもよく、物体画像情報と呼ばれてもよい。従って、本明細書で使用する物体画像情報は、2D及び/又は3D画像情報を含み得る。
【0052】
ある実施形態では、画像正規化動作は、画像情報を取得する一部として、計算システム1100によって実行され得る。画像正規化動作は、カメラ1200によって生成された画像又は画像部分を変換することを含み得、その結果、変換された画像又は変換された画像部分を生成する。例えば、2D画像情報2600、3D画像情報2700、又はこれら二つの組み合わせを含み得る画像情報は、画像正規化処理を施されて、視点、物体の姿勢、及び視覚的記述情報と関連付けられる照明条件において画像情報を変更させることを試みてもよい。このような正規化は、画像情報及びモデル(例えば、テンプレート)情報との間でより正確な比較を容易にするために実行され得る。視点は、カメラ1200に対する物体の姿勢、及び/又はカメラ1200が物体を表す画像を生成するときに、カメラ1200が物体を見ている角度を指し得る。
【0053】
例えば、画像情報は、標的物体がカメラ視野3200内にある、物体認識動作中に生成され得る。カメラ1200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上部表面をカメラ1200の光学軸に対して垂直にする姿勢を有し得る。このような例では、カメラ1200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の事例では、カメラ1200が物体認識動作中に画像情報を生成している場合、画像情報は、照明強度などの特定の照明条件により生成され得る。このような事例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
【0054】
ある実施形態では、画像正規化動作は、カメラによって生成された状況の画像又は画像部分を調整することを含み得、その結果、画像又は画像部分を、物体認識テンプレートの情報と関連付けられる視点及び/又は照明条件により良く合致させる。該調整は、物体姿勢又は物体認識テンプレートの視覚的記述情報に関連付けられる照明条件のうちの少なくとも一方に合致する変換された画像を生成するために、画像又は画像部分を変換することを含み得る。
【0055】
視点の調整は、画像が、物体認識テンプレート内に含まれ得る視覚的記述情報と同一の視点を表すように、状況の画像の処理、ワーピング、及び/又はシフトを含み得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み得、状況のワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、配向、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、状況の画像内の物体を、物体認識テンプレートの視覚的記述情報に合致する、又はそれにより良好に対応する配向及び/又はサイズを有するように変更し得る。物体認識テンプレートが、ある物体の正面図(例えば、上面図)を示す場合、状況の画像は、状況内の物体の正面図も表すようにワーピングされ得る。
【0056】
本明細書で実施される物体認識方法の更なる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。
【0057】
様々な実施形態では、「コンピュータ可読命令」及び「コンピュータ可読プログラム命令」という用語は、様々なタスク及び操作を遂行するように構成されたソフトウェア命令又はコンピュータコードを記述するために使用される。さまざまな実施形態では、「モジュール」という用語は、処理回路1110に一つ以上の機能タスクを実行させるように構成されるソフトウェア命令又はコードの集まりを広義に指す。モジュール及びコンピュータ可読命令は、処理回路又は他のハードウェア構成要素が、モジュールもしくはコンピュータ可読命令を実行しているときに、さまざまな認識動作又はタスクを実施するものとして説明され得る。
【0058】
図3A及び図3Bは、非一時的コンピュータ可読媒体1120上に記憶されたコンピュータ可読プログラム命令を、計算システム1100を介して利用して、物体識別、検出、ならびに取得の動作及び方法の効率を増大させる、例示的な環境を図示する。計算システム1100によって取得され、図3Aにおいて例証される画像情報は、物体環境内に存在するロボット3300へのシステムの意思決定手順及びコマンド出力に影響を与える。
【0059】
図3A図3Bは、本明細書に説明されるプロセス及び方法が実施され得る例示的な環境を示す。図3Aは、少なくとも計算システム1100、ロボット3300、及びカメラ1200を含む、システム3000(図1A図1Dのシステム1000/1500A/1500B/1500Cの実施形態であり得る)を有する環境を示す。カメラ1200は、カメラ1200の実施形態であってもよく、カメラ1200のカメラ視野3200内のシーン3800を表す、又は、より具体的には、物体3100A、3100B、3100C、3100Dなどの、カメラ視野3200内の積み重ねられた物体3700(箱など)を表す、画像情報を生成するように構成され得る。一例では、物体3100A~3100Dの各々は、例えば、箱又は木枠などの容器であってもよく、これは、パレット3400などの物体上配置される。層仕切り3600は、物体3100A/3100B/3100C/3100Dの上部表面3120上に配置されてもよい。層仕切りは、積み重ねられた物体3700の中の物体の二つの層を分割し得る。一部の例では、積み重ねられた物体3700は、物体3100A/3100B/3100C/3100D、層仕切り3600、及びパレット3400を集合的に指し得る。例示及び説明を容易にするために、層仕切り3600を有する物体3100A/3100B/3100C/3100Dの一つの層のみが、図3A及び図3Bの例に示されている。しかしながら、積み重ねられた物体3700は、物体の複数の層を含む場合があり、層仕切り3600は、物体の二つの層の間に配置されてもよく、又は配置されなくてもよいことが理解されよう。層仕切り3600が第二の層の上部表面上に配置されている、パレット3400上の物体3100A/3100B/3100C/3100D/3100E/3100F/3100G/3100Hの二つの層の例を、図8に示す。
【0060】
図3Aは、ロボット3300に取り付けられたカメラ1200を使用してカメラ視野(例えば、3200)が捕捉される、複数の物体3100A~3100Dを含む実施形態を示す。図3Bは、ロボット3300とは別個に配置されたカメラ1200を使用してカメラ視野(例えば、3200)が捕捉される実施形態を示す。物体3100A/3100B/3100C/3100Dの各々は、例えば、箱、クレート、ケース、ビン、又は他の容器であってもよい。物体、すなわち、物体3100A/3100B/3100C/3100Dは、これもカメラ視野3200内に少なくとも部分的に配置され得る、パレット3400などの別の物体上に配置されてもよい。一部のシナリオでは、パレット3400は、多種多様のサイズ(例えば、幅広い種類の長さ、幅、及び高さの値)を有してもよい、容器もしくは他の物体を積み重ねるか、又はそうでなければ配置するように、多種多様の積み重ね又は配置構成と共に使用されてもよい。層仕切り3600は、パレット3400上の物体の層の間に配置されてもよく、又は配置されなくてもよい。
【0061】
一実施形態では、図3Aのシステム3000は、一つ以上の光源を含み得る。光源は、例えば、発光ダイオード(LED)、ハロゲンランプ、又は任意の他の光源であってもよく、可視光、赤外線、又は物体3100A~3100D、層仕切り3600、及びパレット3400の表面に向かって任意の他の形態の光を発するように構成され得る。一部の実装形態では、計算システム1100は、光源と通信して、光源が起動されるときを制御するように構成され得る。他の実装形態では、光源は、計算システム1100とは独立して動作し得る。
【0062】
一実施形態では、システム3000は、カメラ1200、又は2D画像情報2600を生成するように構成される2Dカメラと、3D画像情報2700を生成するように構成される3Dカメラと、を含む、複数のカメラ1200を含み得る。カメラ1200又は複数のカメラ1200は、ロボット3300に装着されるか、又はロボット3300に取り付けられてもよく、環境内に静止していてもよく、及び/又はロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット3300から分離された専用のロボットシステムに固定されてもよい。
【0063】
図3Aは、静止カメラ1200及び手持ちカメラ1200を有する例を示し、一方、図3Bは、静止カメラ1200のみを有する例を示す。2D画像情報2600(例えば、カラー画像又はグレースケール画像)は、カメラ視野3200における、物体3100A/3100B/3100C/3100D又は層仕切り3600などの一つ以上の物体の外観を記述し得る。例えば、2D画像情報2600は、物体3100A/3100B/3100C/3100D及び層仕切り3600の外表面(例えば、上部表面)上に配置される視覚的詳細、及び/又はそれらの外表面の輪郭を取り込むか、又はその他の方法で表し得る。一実施形態では、3D画像情報2700は、物体3100A/3100B/3100C/3100D及び層仕切り3600のうちの一つ以上の構造を記述してもよく、物体に対する構造は、物体の構造又は物体の物理的構造とも呼ばれ得る。一部の例では、3D画像情報2700は、パレット3400上に配設された物体3100A/3100B/3100C/3100D及び層仕切り3600の輪郭を記述し得る。例えば、3D画像情報2700は、深度マップを含んでもよく、より一般的には、カメラ1200に対する、又は何らかの他の基準点に対する、カメラ視野3200内の様々な場所のそれぞれの深度値を説明し得る、深度情報を含んでもよい。それぞれの深度値に対応する位置は、物体3100A/3100B/3100C/3100D及び層仕切り3600のそれぞれの上部表面上の位置などの、カメラ視野3200のさまざまな表面上の位置(物理的位置とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体3100A/3100B/3100C/3100D及び層仕切り3600、又はカメラ視野3200内のいくつかの他の物体の一つ以上の外表面上の様々な場所を説明する複数の3D座標を含み得る、点群を含み得る。図2Fは、点群の例を示す。
【0064】
図3A及び図3Bの例では、(ロボット1300の実施形態であり得る)ロボット3300は、一端がロボット基部3310に取り付けられ、かつ他端がロボットグリッパーなどのエンドエフェクタ装置3330に取り付けられるか、又はそれによって形成される、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクタ装置3330は、ロボット3300の環境で一つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3100A~3100D及び3600のうちの少なくとも一つを握るか、又は他の方法で拾い上げることを含み得る。例えば、ロボット相互作用は、物体3100A/3100B/3100C/3100Dの層の上部表面3120から層仕切り3600を、識別、検出、及び取り出すための物体ピッキング動作の一部であってもよい。エンドエフェクタ装置3330は、層仕切り3600を把持するか、又は握るための吸引カップ又は他の構成要素を有し得る。エンドエフェクタ装置3330は、吸引カップ又は他の把持構成要素を使用して、例えば、上部表面を介して、物体の単一の面又は表面との接触を通して、物体を把持するか、又は掴むように構成され得る。
【0065】
ロボット3300は、構造部材を操作するため、及び/又はロボットユニットを輸送するためになど、タスクを実装するために使用される情報を取得するように構成される追加のセンサをさらに含み得る。該センサは、ロボット3300及び/又は周囲環境の一つ以上の物理特性(例えば、その状態、条件、及び/又は一つ以上の構造部材/ジョイントの位置)を検出又は測定するよう構成される装置を含み得る。センサの一部の例には、加速度計、ジャイロスコープ、力センサ、歪ゲージ、触覚センサ、トルクセンサー、位置符号器などが含まれ得る。
【0066】
図4Aは、一つ以上の実施形態による、ロボットシステムによる層仕切りの検出、識別、及び取得のための方法400の一例を示す。図4Aの動作は、示されるような順序及び様式で実施され得る。しかしながら、一部の動作の順序は変更されてもよく、又は動作の一部は、示される例の趣旨及び範囲から逸脱することなく省略されてもよい。加えて、図4Aに示す動作は、並行して又は同時に実施されてもよい。図4Aの一つ以上のブロック、及びブロックの組み合わせは、指定された機能を実行する特殊用途ハードウェアベースのコンピュータ、又は特殊用途ハードウェア及び命令、例えば、コンピュータもしくはプロセッサ命令の組み合わせによって実装され得る。以下の図4Aの説明に加えて、図1~3Bの説明も図4Aに適用され、本明細書に組み込まれる。
【0067】
画像捕捉動作410では、カメラ1200は、パレット上に配置された積み重ねられた物体の画像を捕捉する。実施形態では、計算システム1100は、カメラ1200の視野3200(カメラ視野とも呼ぶ)の中にある物体に関連付けられた物体構造の少なくとも第一の部分を表す画像情報(画像情報の第一のセットとも呼ばれ得る)を(例えば、物体認識モジュール1121を介して)受信する。例えば、図3Aは、積み重ねられた物体3700が、カメラ1200のカメラ視野3200の中にあるシナリオを描写する。
【0068】
一部の例では、計算システム1100によって受信される画像情報は、カメラ(例えば、1200)が、図3Aに示すカメラ姿勢など、第一のカメラ姿勢にあるか、又は第一のカメラ姿勢を有するときに、カメラによって生成されてもよい。カメラ姿勢は、カメラ(例えば、1200)の位置及び配向を指し得る。一部のシナリオでは、カメラ姿勢がカメラ(例えば、3200)の眺望又は視点に影響を与えうる。例えば、図3Aに描写する第一のカメラ姿勢は、カメラ1200が、物体3700の上方にある位置を有し、カメラ1200が第一の部分、又はより具体的には、物体3100A/3100B/3100C/3100Dの頂部(例えば、頂部表面)を向く配向を有することを伴いうる。一部の例では、第一のカメラ姿勢の配向は、カメラ1200が物体の上面図を有することに関連付けられ得る。例えば、第一のカメラ姿勢は、カメラ1200の画像センサが、物体3100A/3100B/3100C/3100Dの上部に直接面している配向、及び/又はカメラ1200の一つ以上のレンズの焦点軸が、垂直もしくは実質的に垂直である配向を、カメラ1200が有することを伴い得る。
【0069】
輪郭動作420では、計算システム1100は、カメラによって捕捉された画像から取得された情報に基づいて、積み重ねられた物体3700の輪郭を識別する。積み重ねられた物体3700のエッジは、画像輝度又は画像色の急激な変化を有する画像の境界を表し得る。この変化は、画像強度の不連続性、又は画像内の異なる領域間の移行に起因し得る。エッジは、物体の境界、物体間の境界、物体内の反射率変化、物体間の反射率変化、物体内の表面配向の変化、及び照明変化(例えば、投影境界)のうちの一つ以上によって生成され得る。画像のエッジは、例えば、Sobelオペレーター、Cannyオペレーター、Prewittオペレーター、Robertsオペレーター、及びGaborエネルギーフィルターなどの一つ以上の方法によって検出され得る。
【0070】
物体の輪郭は、同じ色又は強度を有する境界に沿ったすべての連続的な点を結合する曲線を指し得る。輪郭検出方法は、画像内で識別されたエッジに従って、物体境界を線で描く、連続的であり得る曲線を見つけ得る。画像中の高いコントラストの領域に主に関連するエッジとは異なり、輪郭は、画像内の物体の形状及び構造を輪郭化することに焦点を当てる。画像に描写された輪郭は、計算システム1100が、積み重ねられた物体3700の画像をバイナリ画像に変換し、バイナリ画像を前処理してエッジ特徴を強化し、輪郭を抽出することによって決定され得る。
【0071】
画像に描写された輪郭を決定するための例示的なプロセスでは、計算システム1100は、画像を滑らかにするためにフィルターを適用し得る。この目的のためにガウスぼかしを使用して、エッジをぼやけさせることなく画像ノイズを低減し得る。次に、計算システム1100は、画像の勾配を決定して、エッジに対応し得る、高い空間周波数を有する領域を強調し得る。Sobel、Prewitt、又はCannyエッジ検出器などの上述の技術のいずれかを使用して、各画素での勾配の大きさ及び方向を計算することができる。計算システム1100は、エッジを薄くするために、非極大値抑制をさらに実行し得る。ここで、高い空間周波数の領域上にない画素は抑制され、高い勾配を有する画素の細い線を残す場合がある。高い空間周波数の領域は、異なる物体間の、又は物体と背景との間のエッジなど、画像強度が、小さな空間距離にわたって急激に変化する領域であり得る。次に、計算システム1100は、エッジを識別するために、勾配画像に閾値を適用し得る。閾値は、単純なバイナリ閾値、適応閾値、又は二つの閾値に基づいて、強いエッジと弱いエッジとを区別する、Cannyエッジ検出器で使用されるヒステリシス閾値であってもよい。閾値は、物体登録モジュール1130に保存され得る。エッジが識別されると、計算システム1100は、エッジ画素を一緒にリンクして、連続的であり得る輪郭を形成し得る。例えば、cv2.findContours関数及びcv2.drawContours関数などの輪郭追跡アルゴリズムを用いて、エッジに従い、積み重ねられた物体3700の輪郭を描いてもよい。
【0072】
一部の実例では、計算システム1100による追加の処理は、検出された輪郭を単純化し、複雑さを低減するために実行され得る。例えば、計算システム1100は、Douglas-Peuckerアルゴリズムなどの方法を適用して、元の輪郭からのわずかな偏差を有する曲線内の点の数を低減し得る。積み重ねられた物体3700の輪郭が抽出された後、特徴抽出モジュール1134は、形状、サイズ、配向などの特徴を抽出するか、又は物体認識を実施してもよい。計算システム1100は、輪郭を分析して、形状、サイズ、配向などの特徴を抽出するか、又は輪郭を物体登録モジュール1130に保存された既知の形状と比較することによって、物体認識を実施してもよい。輪郭抽出及び分析のための工程のうちの一つ以上は、入力画像からのエッジ検出及び/又は輪郭抽出のために訓練されたニューラルネットワークを配備することによって、強化されるか、又はバイパスされ得る。ニューラルネットワークは、U-Net畳み込みニューラルネットワーク(CNN)アーキテクチャであってもよい。
【0073】
一部の例では、上述のように、計算システム1100は、特徴抽出モジュール1134によって画像から抽出された特徴に基づいて、積み重ねられた物体3700のエッジ及び輪郭を識別する。画像は、3D画像であってもよく(画像情報は、3D画像情報であってもよい)、他の例では、画像は2D画像であってもよい(画像情報は、2D画像情報であってもよい)。計算システム1100は(例えば、物体認識モジュール1121を介して)、画像情報に基づいて、カメラ視野(例えば、3200)内のパレット3400上に配置された物体(例えば、3100A/3100B/31000C/3100D)及び層仕切り3600の輪郭を生成し得る。計算システム1100は、積み重ねられた物体3700の輪郭を分析して、積み重ねられた物体3700の輪郭の形状、サイズ、及び配向などの構造情報を決定し得る。輪郭は、カメラ視野(例えば、3200)の中の一つ以上の物体の上面図をすべて表す、画像情報の複数セットに基づいて生成され得る。画像情報の複数セットが、カメラ(例えば、1200)によって、(カメラが横方向に移動していく間に)異なるそれぞれの位置で生成されもよいが、カメラの画像センサが、例えば、一つ以上の物体(例えば、3100A/3100B/31000C/3100D)の上部上にあるそれぞれの領域に直接面する配向など、カメラに対して同じ又は類似の配向を持つ。この例では、画像情報は、画像情報の複数セットのうちの一つであってもよい。画像情報は、点群又は深度マップを含んでもよく、これは物体認識モジュール1121によって使用されて、計算システム1100の他のモジュールと併せて、積み重ねられた物体3700の輪郭を識別し得る。
【0074】
計算システム1100は、積み重ねられた物体3700の輪郭を分析して、積み重ねられた物体3700の輪郭に関連付けられたエッジを識別し得る。例えば、エッジは、図3Aの積み重ねられた物体3700の外側コーナーであり得る。一部の実装形態では、計算システム1100は、感知された構造情報に基づいて、物体コーナーを識別し得る。例えば、計算システム1100は、感知された構造情報によって記述される複数の外部エッジ、又は感知された構造情報によって記述される複数のエッジ領域を識別しうる。こうした例では、計算システム1100は、複数の外部エッジが交差する位置、もしくはその近くにある位置として、及び/又は複数のエッジ領域が交差する領域の中にある位置として、エッジを識別し得る。積み重ねられた物体のエッジ及び輪郭の識別は、米国特許第11,883,966B2号でより詳細に論じられ、その内容全体が参照により本明細書に組み込まれる。
【0075】
表面識別動作430では、計算システム1100は、物体の輪郭に基づいて、積み重ねられた物体の上部表面を識別し得る。物体認識モジュール1121は、特徴抽出モジュール1134によって画像から抽出された特徴に基づいて、物体の層の上部表面を識別し得る。物体認識モジュール1121は、積み重ねられた物体3700の輪郭を分析して、上部表面を表す輪郭の最も上の境界を決定することに基づいて、物体の層3700の上部表面を識別し得る。輪郭の最も上の境界は、積み重ねられた物体3700の最も高い表面を表す水平面の限界を示す線又は表面を指し得る。
【0076】
図4Bは、一つ以上の実施形態による、ロボットシステムによって積み重ねられた物体の上部表面を決定するための表面識別動作430をより詳細に示す。図4Bの動作は、示されるような順序及び様式で実施され得る。しかしながら、一部の動作の順序は変更されてもよく、又は動作の一部は、示される例の趣旨及び範囲から逸脱することなく省略されてもよい。加えて、図4Bに示す動作は、並行して又は同時に実施されてもよい。図4Bの一つ以上のブロック、及びブロックの組み合わせは、指定された機能を実行する特殊用途ハードウェアベースのコンピュータ、又は特殊用途ハードウェア及び命令、例えば、コンピュータもしくはプロセッサ命令の組み合わせによって実装され得る。以下の図4Bの説明に加えて、図1~4Aの説明も図4Bに適用され、本明細書に組み込まれる。
【0077】
位置決め動作431では、計算システム1100は、カメラ1200を積み重ねられた物体3700に向かって位置決めする命令を生成し得る。計算システム1100は、(例えば、一つ以上のカメラ配置動作コマンドを介して)、カメラ(例えば、1200)が、輪郭動作420で識別された積み重ねられた物体3700の上面図の画像を捕捉するように構成されている、第二のカメラ姿勢を有するように、カメラ1200を位置決めさせる。物体認識モジュール1121は、積み重ねられた物体3700の輪郭を分析して、上部表面を表す輪郭の最も上の境界を決定することに基づいて、物体の層3700の上部表面を識別し得る。
【0078】
一部の例では、第二のカメラ姿勢は、動作410において、積み重ねられた物体3700の画像を捕捉するために使用されるカメラの姿勢と同じであってもよい。一部の例では、動作431の第二のカメラ姿勢は、動作410に関連付けられるカメラ姿勢とは異なっていてもよい。上述のように、カメラ姿勢は、カメラ(例えば、1200)の位置及び配向の組み合わせであってもよい。
【0079】
捕捉動作432では、カメラ(例えば、1200)は、積み重ねられた物体3700の上面図の2D画像を捕捉し得る。カメラ1200が第二のカメラ姿勢を有するとき、積み重ねられた物体3700の上部表面は、カメラ1200のカメラ視野3200内に来てもよく、カメラ1200の画像センサの視線内にあってもよい。図5Aは、積み重ねられた物体の上部表面の2D画像5000Aの例を示し、これは以下でさらに説明される。他の実施形態では、捕捉動作432において、カメラ(例えば、1200)はまた、積み重ねられた物体3700の上面図の3D画像を捕捉し得る。
【0080】
上部表面決定動作433では、計算システム1100は、動作432で捕捉された2D画像に基づいて、積み重ねられた物体3700の上部表面を決定し得る。積み重ねられた物体3700の上部表面は、積み重ねられた物体3700の最も高い表面を表す水平面を表し得る。積み重ねられた物体3700の上部表面は、上述のように、捕捉動作432で捕捉された画像の画像セグメンテーション又はエッジ検出によって決定又は識別され得る。積み重ねられた物体3700の上部表面の周囲は、図5Aに示される物体5100A~5100Iの上面図の境界5200Aによって画定され得る。計算システム1100は、上述のように、エッジ検出方法に基づいて、積み重ねられた物体の外側境界を示す積み重ねられた物体3700の上部表面の周囲を決定し得る。一部の実施形態では、パレット3400からの積み重ねられた物体3700の上部表面の垂直高さは、上述のように、センサ又は画像セグメンテーション又はエッジ検出によって決定され得る。
【0081】
ここで図4Aに戻ると、延長線検出動作440において、計算システム1100は、積み重ねられた物体の上部表面の画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる延長線を検出し得る。延長線の各々は、画像中の物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応し得る。図5Aに示すように、延長線5500Aはエッジに対応してもよく、エッジは積み重ねられた物体3700の上部表面の画像の画像情報中で検出され、画像情報の物体5100Aと物体5100Bとの間のギャップを表す。以下に記載されるように、積み重ねられた物体3700の周囲から上部表面の中心に向かう延長線の進行は、物体5100A~5100I上に配置された層仕切り5600Aによって制限される(又はカメラ1200の画像センサの視線から隠される)。物体間の延長線の検出に関するさらなる詳細は、図5A~5Cを参照して以下に提供される。別の実施形態では、物体の層の間に層仕切りが存在しない場合、延長線は、積み重ねられた物体の上部表面上に配置されたすべての物体の表面の輪郭をたどり得る。言い換えれば、物体の層の間に層仕切りが存在しない場合、延長線は終結しない場合があるが、物体5100A~5100Iの上部表面の形状を画定し得る。
【0082】
図5Aは、パレット5400上に配設されている物体5100A~5100Iなどの、積み重ねられた物体の上部表面の2D画像5000Aの例を示す。層仕切り5600Aは、物体5100A~5100Iの上部表面上に配置されてもよい。層仕切り5600Aは、物体5100A~5100Iの上部表面のすべて又は一部分を覆ってもよい。上述のように、画像セグメンテーション、エッジ検出、又は他の処理動作を実施して、物体5100A~5100I、物体5100A~5100Iの上部表面の境界5200A、及びそれぞれの境界から内向きに(かつ、例えばそれぞれの境界と垂直であることの10%以内、5%以内、2%以内、又は1%以内など、それぞれの境界に対して実質的に垂直に)2D画像5000Aの中心部分に向かって延びる(画像5000A中の物体間のギャップを示す)延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hを識別し得る。境界5200Aは、パレット5400上に配置されている、物体5100A~5100Iの外側エッジの境界を画定する。図5Aに示すように、延長線5500A及び5500Bは、2D画像5000Aの右側境界5200Aから内向きに延び、延長線5500C、5500D、及び5500Eは、2D画像5000Aの底部側境界5200Aから内向きに延び、延長線5500F、5500G、及び5500Hは、2D画像5000Aの上側境界5200Aから内向きに延びる。
【0083】
計算システム1100は、上述のように、画像セグメンテーション、エッジ検出、又は他の処理操作に基づいて、境界5200Aから始まり、2D画像5000Aの中央部分に向かって進行する、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hを決定し得る。境界5200Aは、物体5100A~5100I、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500H、及び層仕切り5600Aを含む、画像の検出領域5700を取り囲んでもよい。
【0084】
図5Bは、積み重ねられた物体の上部表面の3D画像5000Bの例を示す。図5Bは、パレット上に配置されている物体5100A~5100Iなどの物体の上面図の例を示す。層仕切り5600Aは、物体5100A~5100Iの上部表面上に配置されてもよい。上記を参照して説明したように、画像セグメンテーション、エッジ控除、又は他の処理動作を深度マップ又は点群データ上で実施して、物体5100A~5100I、物体5100A~5100Iの上面図の境界5200A、それぞれの境界から(かつ、例えばそれぞれの境界と垂直であることの10%以内、5%以内、2%以内、又は1%以内など、それぞれの境界に対して実質的に垂直に)3D画像5000Bの中心部分に向かって延びる(画像5000B中の物体5100A~5100I間のギャップを示す)延長線5500C/5500D/5500E、及び画像の検出領域5700を識別し得る。例えば、計算システム1100は、境界5200Aから始まり、3D画像5000Bの中央部分に向かって進行する、延長線5500C/5500D/5500Eを決定し得る。境界5200Aは、パレット5400上に配置されている、物体5100A~5100Iの外側エッジの境界を画定する。延長線5500C/5500D/5500E及び境界5200Aは、3D画像中の隣接する3D点の深度情報の変化又は深度勾配の変化に基づいて決定され得る。上述のように、3D画像中の空間深度情報を分析して、深度の不連続性又は有意な変化に基づいてエッジを検出し得る。検出されるこれらのエッジを分析して、(画像5000A中の物体間のギャップを表す)延長線5500C/5500D/5500Eを決定し得る。
【0085】
ここで図4に戻ると、層仕切り検出動作450では、計算システム1100は、延長線検出動作440で検出された延長線の長さを測定し得る。計算システム1100は、延長線の各々の長さが第一の閾値、すなわち線長閾値未満であることに基づいて(例えば、これに応答して)、物体の層の上部表面3120上に配置された層仕切り3600の存在を検出し得る。一部の例では、積み重ねられた物体中の物体の寸法及び閾値は、物体登録モジュール1130に保存されてもよい。一部の例では、線長閾値は、物体5100A~5100Iのいずれかの最小側面の長さに対応し得る。線長閾値は、計算システム1100によって取得され、測定された長さと比較され得る。延長線の各々の長さが線長閾値未満である場合、計算システム1100は、層仕切りの存在を検出し得る。画像5000A中の物体5100A~5100Iの間のギャップを表す延長線の各々の長さが、物体5100A~5100Iの最小側面の長さ未満である場合、物体の画像の一部が、層仕切り5600Aであり得る別の物体の存在によって遮られていることを示し得る。線長測定プロセスは、図5Cを参照してさらに理解され得る。
【0086】
図5Cは、図5Aに示す2D画像及び方法、又は図5Bに示す3D画像及び方法に基づいて識別される延長線及び検出領域のエッジの例を示す。図5Cは、画像5000Cの検出領域5700中の境界5200A、及び図5Aの2D画像又は図5Bの3D画像もしくは点群データのいずれかを使用して決定された延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hを示す。計算システム1100は、画像セグメンテーション、エッジ検出、又は上記で論じた他の処理動作に基づいて、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの各々の終端点がそれぞれ5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8であると決定し得る。終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8は、境界5200Aによって画定される上部表面の周囲より遠位にある。延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8は、ある物体、すなわち、層仕切り5600Aが、それぞれの境界5200Aから延びる延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hを遮っていることを示す。よって、終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8は、層仕切りが物体5100A~5100Iの上に配置されていることを示す場合があり、終端点を追跡することは、層仕切り5600Aの輪郭を提供し得る。
【0087】
計算システム1100は、画像セグメンテーション、エッジ検出、又は上記で論じた他の処理動作に基づいて、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの各々の長さを決定し得る。一部の例では、各それぞれの線の長さは、線の終端点から、そこからそれぞれの線が延びる検出領域5700の境界5200Aまでの最も短い線の長さに基づいて決定され得る。
【0088】
一部の例では、計算システム1100は、延長線のいずれも、上部表面3120の周囲から積み重ねられた物体3700の上部表面3120の中心に延びないことに基づいて、層仕切り3600の存在を検出するようにさらに構成されてもよい。延長線のいずれも、積み重ねられた物体3700の上部表面3120の周囲から上部表面3120の中心に延びない時、物体5100A~5100Iの画像の一部が、層仕切り5600Aであり得る別の物体の存在によって遮られていることを示し得る。一部の例では、線長閾値は、積み重ねられた物体3700の上部表面3120を画定する四角形の最小側面の長さの半分未満であってもよい。一部の例では、線長閾値は、積み重ねられた物体3700の上部表面3120を画定する四角形の最小側面の長さの四分の一未満であってもよい。一部の例では、線長閾値は、積み重ねられた物体3700の上部表面3120を画定する四角形の側面の長さの半分であってもよい。一部の例では、線長閾値は、物体登録モジュール1130に保存される、予め定義された数であってもよい。予め定義された数は、ロボットシステムを動作させるための環境、及びロボットシステムが取り扱うように構成されている物体に基づいてもよい。予め定義された線長閾値は、ロボットシステムが取り扱うか又は処理し得る物体のサイズの変化に基づいて、選択的に調整され得る。
【0089】
検証動作460では、計算システム1100は、層仕切りの表面積、層仕切りの厚さ、層仕切りの重量、層仕切りの平滑度、又はテクスチャアーチファクトのうちの一つ以上に基づいて、層仕切りの存在を検証し得る。一部の例では、動作460は選択的に実施されてもよい。一部の例では、層仕切りの輪郭は、層仕切りの存在が検証された後に識別されてもよい。一部の例では、検証は、層仕切りの輪郭が識別された後に実施されてもよい。
【0090】
図7は、物体の層の間又は物体の層の上に配置された層仕切りの存在を検証するための方法の例を示す。図7の一つ以上のブロック、及びブロックの組み合わせは、指定された機能を実行する特殊用途ハードウェアベースのコンピュータ、又は特殊用途ハードウェア及び命令、例えば、コンピュータもしくはプロセッサ命令の組み合わせによって実装され得る。例えば、図7の動作のうちの一つ以上は、計算システム1100Cの検証モジュール1138によって実施され得る。図4Aの動作の順序は変更されてもよく、又は動作の一部は、示される例の趣旨及び範囲から逸脱することなく省略されてもよい。以下の図7の説明に加えて、図1~6Bの説明も図7に適用され、本明細書に組み込まれる。
【0091】
表面積最小閾値動作461では、計算システム1100Cの検証モジュール1138は、層仕切りの存在が検出されたとき(例えば、これに応答して)、層仕切りの輪郭の表面積を決定し得る。計算システム1100Cは、層仕切り5600Aの境界を画定する輪郭によって囲まれた面積を計算することによって、層仕切り5600Aの輪郭の表面積を決定し得る。層仕切り5600Aの輪郭が標準的な幾何学的形状(長方形、円、又は三角形など)を画定する場合、表面積は、長方形/正方形については長さに幅を乗じる、式πr(式中、rは円の半径である)を適用する、1/2×底辺×高さを乗じることに基づいて三角形の面積を決定する、又は三角形の全ての辺が既知である場合はヘロンの公式を適用するなど、標準的な幾何学公式を適用することによって決定され得る。
【0092】
層仕切り5600Aの非標準的形状については、表面積は、形状をより小さい管理可能なセグメント(三角形など)に分解することによって、又は数値計算法を使用することによって決定され得る。例えば、計算システム1100Cは、層仕切り5600Aの輪郭の内側(又は外側)の点を基準として選択し、それを輪郭の頂点に接続することによって、層仕切り5600Aの輪郭によって囲まれた領域を三角形に分割し、層仕切り5600Aの輪郭の内部を効果的に三角測量し得る。計算システム1100Cは、上述の式によって各三角形の面積を計算してもよく、これらの面積を合計して、層仕切り5600の輪郭の面積を得てもよい。別の例では、計算システム1100Cは、靴紐の公式(ガウス面積公式としても知られる)を使用して、多角形として表され得る層仕切り5600Aの輪郭の表面積を決定し得る。
【0093】
他の例では、表面積計算システム1100Cは、輪郭によって囲まれた面積を直接計算し得る、contourArea関数などの機能を提供する、OpenCVなどのライブラリを使用して、デジタル画像から抽出され得る。
【0094】
計算システム1100Cは、層セパレータの輪郭の表面積を、物体登録モジュール1130に保存される表面積最小閾値と比較し得る。計算システム1100Cは、層仕切りの輪郭の表面積が表面積最小閾値よりも大きいかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。潜在的に検出された層仕切りの輪郭の表面積が十分に大きい場合、それは正確な検出、例えば、検証されるべきとみなされ得る。
【0095】
一部の例では、表面積最小閾値は、動作環境で取り扱われる最小の物体の最小側面の表面積以上であってもよい。表面積最小閾値は、積み重ねられた物体中の最小の物体の最小側面の表面積以上であってもよい。表面積最小閾値は、積み重ねられた物体中の最大の物体の表面積と等しくてもよい。一部の例では、表面積最小閾値は、積み重ねられた物体中の最大の物体の最大側面の表面積と等しくてもよい。一部の例では、表面積最小閾値は、物体登録モジュール1130に保存される、予め定義された数である。予め定義された数は、ロボットシステムを動作させるための環境、及びロボットシステムが取り扱うように構成されている物体に基づいてもよい。一部の例では、予め定義された数は、物体のタイプ及びサイズ、又は物体に含まれる品目のタイプ又はサイズに基づいて変化し得る。
【0096】
表面積最大閾値動作462では、計算システム1100Cの検証モジュール1138は、層仕切りの存在が検出された後に(例えば、これに応答して)、層仕切りの輪郭の表面積を決定し得る。層仕切りの輪郭の表面積は、表面積最小閾値動作461の表面積の決定を参照して、上述のように決定され得る。表面積は、物体登録モジュール1130に保存される表面積最大閾値と比較され得る。計算システム1100Cは、層仕切りの輪郭の表面積が表面積最大閾値よりも小さいかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。潜在的に検出された層仕切りの輪郭の表面積が十分に小さい場合、それは正確な検出、例えば、検証されるべきとみなされ得る。
【0097】
一部の例では、表面積最大閾値は、積み重ねられた物体が配置されるパレットの表面積と等しくてもよい。一部の例では、表面積最大閾値は、物体登録モジュール1130に保存される、予め定義された数である。一部の例では、予め定義された数は、物体が保存されるか又は位置する環境に基づいて変化し得る。ロボットシステムを動作させるための環境、及びロボットシステムが取り扱うように構成されている物体に基づいて、予め定義された表面積最大閾値は、パレットの側面のサイズを乗算することによって取得され得る。一部の例では、パレットのサイズは、45.9”×45.9”、48”×40”、47.2”×31.5”、47.2”×39.4”、47.2”×31.5”、44.9”×44.9”、43.3”×43.3”、39.4”×47.2”、31.5”×23.6”、24”×20”、20”×24”のうちのいずれか一つ、又はロボットシステムを動作させるための環境での使用に適した任意の他のサイズであってもよい。
【0098】
層仕切り厚さ動作463では、計算システム1100Cの検証モジュール1138は、層仕切りの存在が検出された時に、3D画像情報に基づいて層仕切りの厚さを決定し得る。一部の例では、層仕切りの輪郭は、層仕切り厚さ動作463に基づいて、層仕切りの存在が検証された後に識別されてもよい。他の例では、層仕切り厚さ動作463は、層仕切りの輪郭が識別された後に、層仕切りの存在を検証してもよい。一部の例では、計算システム1100Cは、3D画像の隣接する3D点の深度情報の変化、又は層仕切りの輪郭によって示される層仕切りと積み重ねられた物体の上部表面との間の深度勾配の変化に基づいて、層仕切りの厚さを決定し得る。計算システム1100Cは、層仕切りの輪郭によって示される層仕切りの厚さが厚さ閾値未満であるかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。一部の例では、厚さ閾値は、物体登録モジュール1130に保存される、予め定義された数である。上述のように、層仕切りは、例えば、段ボール、波形シート、及びカード紙などの多くの異なる材料で作製されてもよい。予め定義された厚さ閾値は、層仕切りの材料に基づいて変化し得る。例えば、層仕切りが段ボールで作製される場合、予め定義された厚さ閾値は、段ボールが単一壁であるか、二重壁であるか、又は三重壁であるかに応じて、3mmから15mmまで変化し得る。層仕切りが板紙で作製される場合、予め定義された厚さ閾値は、0.2mmから1mmまで変化してもよく、層仕切りがカード紙で作製される場合、予め定義された厚さ閾値は、0.25mmから0.8mmまで変化してもよい。
【0099】
層仕切り重量動作464では、計算システム1100Cの検証モジュール1138は、層仕切りの存在が検出された時に、センサー情報に基づいて層仕切りの重量を決定し得る。一部の例では、層仕切りの輪郭は、層仕切り重量動作464に基づいて、層仕切りの存在が検証された後に識別されてもよい。他の例では、層仕切り重量動作464は、層仕切りの輪郭が識別された後に、層仕切りの存在を検証してもよい。計算システム1100Cは、層仕切りの重量が重量閾値未満であるかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。一部の例では、重量閾値は、物体登録モジュール1130に保存される、予め定義された数である。予め定義された重量閾値は、層仕切りの材料及び層仕切りの予想されるサイズに基づいて変化し得る。例えば、予め定義された重量閾値は、二重壁三重壁よりも三重壁段ボールに対して大きくてもよく、予め定義された重量閾値は、板紙又はカード紙のいずれよりも単一壁段ボールに対して大きくてもよい。層仕切りの予想されるサイズは、ロボットシステムが取り扱うように構成されている物体のサイズに依存し得る。一部の例では、重量閾値は、およそ2.5キログラムであってもよい。他の例では、重量閾値は、ロボットシステムを動作させるための環境、及びロボットシステムが取り扱うように構成されている物体に基づいて、100グラムから2500グラムまで変化し得る。
【0100】
層仕切り平滑度動作465では、計算システム1100Cの検証モジュール1138は、層仕切りの平滑度を測定し、測定された平滑度を平滑度閾値と比較して、識別された層仕切りを検証し得る。測定された平滑度が平滑度閾値よりも小さい、すなわち、層仕切りが平滑度閾値よりも粗い場合、識別された物体は層仕切りではないと判定される場合があり、例えば、それは無効化され得る。
【0101】
一例では、層仕切り5600Aを表す点群中の点間のz値を分析することによって測定される平滑度は、z値平滑度閾値と比較され得る。z値平滑度閾値に対する検証は、複数の方法で実施され得る。検証モジュール1138は、点のz座標(高さ)を抽出し得る。z値は、カメラ1200などの撮像装置からの点群中の点の高さ又は深度を表し得る。次に、検証モジュール1138は、KDTreeなどのデータ構造を使用して、各点の最も近い隣近所を識別し得る。検証モジュール1138は、各点のz値とその隣近所のz値と間の差の標準偏差を計算することによって、局所z変動を決定し得る。検証モジュール1138は、これらの局所z変動の平均及び標準偏差を分析して、表面平滑度を定量化してもよく、より低い標準偏差は、層仕切り5600Aのより滑らかな表面を示す。表面平滑度は、z値平滑度閾値と比較されて、識別された層仕切りを検証又は無効化し得る。
【0102】
一例では、検証モジュール1138は、深度値、すなわち、値の範囲及び分布を分析して、変動を識別し得る。変動は、値平滑度閾値と比較されて、識別された層仕切りを検証又は無効化し得る。
【0103】
別の例では、計算システム1100Cは、点とその隣接する点との間の深度変動がz値平滑度閾値よりも大きいとき(すなわち、それに応答して)、物体が層仕切りではないと決定し得る。
【0104】
別の例では、計算システム1100Cは、点群を類似の深度を有するクラスタにセグメント化して、これらのクラスタ内及びこれらのクラスタ間の深度変動を調べてもよい。計算システム1100Cは、深度変動がz値平滑度閾値よりも大きいとき(すなわち、それに応答して)、物体が層仕切りではないと決定し得る。
【0105】
一例では、およそ5mm、6mm又はそれより大きいz値平滑度閾値を超えることは、物体を潜在的な層仕切りとして無効化するとみなされ得る。別の実施形態では、計算システム1100Cは、深度変動が、点群を表す(例えば、潜在的な層仕切りとして識別される)物体の表面積の5%~12%、7%~9%、又は約8%についてz値平滑度閾値よりも大きいとき(すなわち、これに応答して)、物体が層仕切りではないと決定し得る。
【0106】
他の例では、計算システム1100Cは、例えば、光を使用して表面トポグラフィーを測定する光学式粗さ計などのセンサーに基づいて、層仕切りの平滑度を測定し得る。これらの光学式粗さ計は、層仕切りの表面上に光のビームを投影し、反射光を分析して表面特徴を決定し、層仕切りの平滑度を決定し得る。層仕切りの平滑度は、材料の平均表面粗さの測定値である、算術平均粗さ(Ra)で表され得る。Raは、指定された長さにわたって測定される、平均線からの表面ピーク及び谷の平均偏差である。計算システム1100Cは、平滑度が平滑度閾値よりも大きいかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。一部の例では、平滑度閾値は、物体登録モジュール1130に保存される、予め定義された数である。予め定義された平滑度閾値は、段ボール、板紙、及びカード紙などの層仕切りの材料に基づいて変化し得る。
【0107】
一部の例では、計算システム1100Cは、測定された平滑度閾値及びz値平滑度閾値(これらは異なる閾値であり得る)のいずれか又は両方との比較に基づいて、物体が層仕切りであると決定し得る。計算システム1100Cは、それぞれの閾値の両方が満たされるとき(すなわち、これに応答して)、物体が層仕切りであると決定し得る。
【0108】
一部の例では、層仕切りの輪郭は、層仕切り平滑度動作465に基づいて、層仕切りの存在が検証された後に識別されてもよい。一部の例では、層仕切りの輪郭は、層仕切り平滑度動作465が層の存在を検証した後に識別され得る。他の例では、層仕切り平滑度動作465は、層仕切りの輪郭が識別された後に、層仕切りの存在を検証してもよい。
【0109】
層仕切りテクスチャ動作466では、計算システム1100Cの特徴抽出モジュール1134は、層仕切りの上側表面に対応する2D画像情報及び3D画像情報に基づいて、画像特徴を生成し得る。一部の例では、層仕切りの輪郭は、層仕切りテクスチャ動作466に基づいて、層仕切りの存在が検証された後に識別されてもよい。他の例では、層仕切りテクスチャ動作466は、層仕切りの輪郭が識別された後に、層仕切りの存在を検証してもよい。一部の例では、検証モジュール1138は、特徴抽出モジュール1134と相互作用して、画像特徴に基づいてテクスチャアーチファクトを識別し得る。計算システム1100Cは、テクスチャアーチファクトが画像情報中で識別されるかどうかに基づいて(例えば、これに応答して)、層仕切りの存在を検証し得る。計算システム1100Cは、テクスチャアーチファクトが画像情報中で識別されるとき(例えば、これに応答して)、層仕切りの存在が誤検知であると決定し得る。一部の例では、テクスチャアーチファクトは、ロゴ、グラフィック、タグ、ラベル、マーキング、スキャンコード、統一商品コード(UPC)、包装テープ、視覚的パターン、及び画像情報中の高空間周波数領域のうちのいずれか一つ又は任意の組み合わせを含む。高空間周波数領域は、画像強度が、物体と背景の間、又は包装ボックスの無地の背景とテキストもしくは画像アーチファクトの間など、小さな空間距離にわたって急激に変化する領域であり得る。計算システム1100Cは、テクスチャアーチファクトが画像情報中で識別されないとき(例えば、これに応答して)、層仕切りの存在を検証し得る。
【0110】
ここで図4Aに戻ると、輪郭識別動作470において、計算システム1100は、延長線の終端点に対応する上部表面上の点に従って、層仕切りの輪郭を識別し得る。
【0111】
図6Aは、一つ以上の実施形態による、層仕切りの輪郭を決定するための方法670の一例を示す。図6Aの動作は、示されるような順序及び様式で実施され得る。しかしながら、一部の動作の順序は変更されてもよく、又は動作の一部は、示される例の趣旨及び範囲から逸脱することなく省略されてもよい。加えて、図6Aに示す動作は、並行して又は同時に実施されてもよい。図6Aの一つ以上のブロック、及びブロックの組み合わせは、指定された機能を実行する特殊用途ハードウェアベースのコンピュータ、又は特殊用途ハードウェア及び命令、例えば、コンピュータもしくはプロセッサ命令の組み合わせによって実装され得る。以下の図6Aの説明に加えて、図1~5Cの説明も図6Aに適用され、本明細書に組み込まれる。
【0112】
終端点決定動作671では、計算システム1100は、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの各々の終端点がそれぞれ5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7であると決定し得る。終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7は図5Cに示され、図5C参照しながら上記に説明される。延長線の終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8は、ある物体、すなわち、層仕切り5600Aが、それらのそれぞれの境界5200Aから延びる延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hを遮っていることを示す。よって、終端点5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7/5500T8は、層仕切りが物体5100A~5100Iの上に配置されていることを示す場合があり、終端点を追跡することは、層仕切り5600Aの輪郭を提供し得る。
【0113】
上部表面対応動作672で、計算システム1100は、延長線5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7の終端点に対応する上部表面上の点に基づいて、層仕切りの輪郭を決定し得る。一例では、層仕切りの輪郭は、延長線5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7の終端点を接続することに基づいてもよい。
【0114】
別の例では、層仕切りの輪郭は、延長線5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7の終端点、及びパレット上に配設されている物体5100A~5100Iなどの物体の上面図の2D画像の画像セグメンテーション又は他の処理動作に基づいてもよい。画像セグメンテーション中、計算システム1100は、画像の色、強度、又はテクスチャなどの基準に基づいて、上面図の2D画像内で、物体5100A~5100I、層仕切り5600A、境界5200Aなどの物体を識別し得る。計算システム1100は、終端点及び画像セグメンテーション動作からの物体に基づいて、層仕切りの輪郭をたどり得る。計算システム1100が、輪郭をたどっている時に境界5200A要素に遭遇した場合、計算システム1100は、検出領域5700の境界に達したことを認識し、検出領域5700の境界5200に向かって輪郭をたどることをやめるように促し得る。別の例では、層仕切りの輪郭は、延長線5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7の終端点に基づいてもよく、3D画像中の隣接する3D点の深度情報の変化、又はパレット上に配設されている物体5100A~5100Iなどの物体の上面図の深度勾配の変化に基づいてもよい。画像セグメンテーションについて記載した例と同様に、深度情報の変化は、画像中の物体を識別する場合があり、これは次に、計算システム1100が層仕切りの輪郭をたどるのを支援し得る。
【0115】
検出領域部分除去動作673で、計算システム1100は、上述のように決定され得る、それぞれの延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの長さに対応する検出領域5700の部分をフィルターで取り除くことによって、層仕切りの輪郭を決定し得る。一例では、計算システム1100は、延長線5500T1/5500T2/5500T3/5500T4/5500T5/5500T6/5500T7の各々の周囲から終端点までの、積み重ねられた物体の上部表面の2D画像情報の部分を除去することに基づいて、層仕切りの輪郭を識別し得る。それぞれの延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの長さに対応する検出領域の一部分を除去する動作を、図6Bに示す。
【0116】
検出領域部分除去動作674で、計算システム1100は、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hのうちの最長延長線(Ext Linelong)を決定し得る。計算システム1100は、最長延長線(Ext Linelong)の長さに対応する検出領域5700の部分をフィルターで取り除くことによって、層仕切りの輪郭を決定し得る。計算システム1100は、検出領域5700の周囲から、検出領域5700を形成する四角形の各側面上の最長延長線(Ext Linelong)の長さに対応する距離まで、積み重ねられた物体の上部表面の2D画像情報の部分を除去する(又はフィルターで取り除く)ことに基づいて、層仕切りの輪郭を識別し得る。
【0117】
検出領域部分除去動作675では、計算システム1100は、検出領域5700を形成する四角形の各側面に対する最長延長線(Ext Linelong)を決定し得る。図5Cの例では、計算システム1100は5C、検出領域5700を形成する四角形の右側の延長線5500A/5500Bの中から、第一の最長延長線(第一のExt Linelong)を決定し得る。計算システム1100は、検出領域5700を形成する四角形の底部側の延長線5500C/5500D/5500Eの中から、第二の最長延長線(第二のExt Linelong)を決定し得る。計算システム1100は、検出領域5700を形成する四角形の上側の延長線5500F/5500G/5500Hの中から、第三の最長延長線(第三のExt Linelong)を決定し得る。検出領域5700を形成する四角形の左側には延長線がないため、こうした動作は四角形の第四の側面上では実施されない場合がある。一部の例では、層仕切り5600Aは第四の側面の周囲までずっと延び得るため、四角形の第四の側面上に延長線は存在しないことになる。
【0118】
計算システム1100は、それぞれの側面上の最長延長線の長さに対応する検出領域5700を形成する四角形の各側面上の検出領域5700の部分を除去する(又はフィルターで取り除く)ことによって、層仕切りの輪郭を決定し得る。例えば、計算システム1100は、検出領域5700を形成する四角形の右側から、第一の最長延長線(第一のExt Linelong)の長さと等しい検出領域5700の部分を除去し(又はフィルターで取り除き)、検出領域5700を形成する四角形の底部側から、第二の最長延長線(第二のExt Linelong)の長さと等しい検出領域5700の部分をフィルターで取り除き、検出領域5700を形成する四辺形の上側から、第三の最長延長線(第三のExt Linelong)の長さと等しい検出領域5700の部分をフィルターで取り除くことによって、層仕切りの輪郭を決定し得る。延長線は、検出領域5700を形成する四角形の左側では検出されないため、計算システム1100は、検出領域5700が検出領域5700を形成する四角形の周囲まで延び、除去(又はフィルターで取り除くこと)を必要としないと決定し得る。
【0119】
別の例では、検出領域5700を形成する四角形の左側に延長線が検出されない場合、計算システム1100は、第一のExt Linelong、第二のExt Linelong、及び第三のExt Linelongのうちの最も長い延長線を選択して、画像処理失敗のリスクから守り得る。画像処理が、検出領域5700を形成する四角形の左側の延長線を検出することに失敗した場合、層仕切りの輪郭は、実際の層仕切りよりも大きいと判定される場合があり、ロボットが積み重ねられた物体から層仕切りを拾い上げるか又は除去しようとするとき、潜在的な事故につながる。したがって、十分な注意を払い、事故を避けるために、検出領域5700を形成する四角形の左側に延長線が検出されない場合、計算システム1100は、検出領域5700を形成する四角形の左側から、最も長い延長線の長さに対応する検出領域5700の部分を除去し(又はフィルターで取り除き)得る。これは、層仕切りの輪郭が実際の層仕切りよりも大きいと判定された場合、ロボットが積み重ねられた物体から層仕切りを拾い上げる又は除去しようと試みた時に、事故が起こり得るためである。計算システム1100は、検出領域5700を形成する四角形の左側から、最長延長線の長さに対応する検出領域5700の部分を除去し(又はフィルターで取り除き)得る。
【0120】
図6Bは、境界5200Aによって境界付けられた検出領域5700と、境界5200Aから始まり2D画像6000Aの中心に向かって進行する、検出領域5700中に配置された延長線5500A/5500B/5500C/5500D/5500Eとを示す。図6Bの下部は、動作674について上述した通り、検出領域5700を形成する四角形の各側面から、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500Gの最長延長線(Ext Linelong)の長さに対応する検出領域5700の部分を除去することによって得られる、層仕切り5600Aの輪郭を図示する。
【0121】
層仕切りの輪郭が決定された後、輪郭鮮明化動作676において、計算システム1100は、モフォロジー処理を実施して、層仕切りの識別された輪郭を鮮明化し得る。一部の例では、モフォロジー処理は、延長線5500A/5500B/5500C/5500D/5500E/5500F/5500G/5500Hの最大延長線の長さに等しい側面の長さを有する正方形構造要素に基づく。モフォロジー処理は、構造化要素を層仕切りの上でスライドさせ、構造化要素によって覆われる最小画素値を保持することに基づいた収縮処理を含み得る。収縮は、画像中の物体境界上の画素を除去し、物体を効果的に収縮させるモフォロジー処理である。これは、構造化要素を画像の上でスライドさせ、構造化要素の下のすべての画素が要素と一致する場合にのみ、その起源に画素を保持することによって機能し、より細い物体及び小さな突出部の除去をもたらす。収縮は、画像中の前景(典型的には白色)物体の境界を侵食する。
【0122】
モフォロジー処理は、構造化要素を層仕切りの上でスライドさせ、構造化要素によって覆われる最大画素値を保持することに基づいた膨張処理を含み得る。膨張は、画像中の物体の境界に画素を追加する。構造化要素は、画像の上でスライドされ、構造化要素の下の任意のピクセルが1である場合、起源の画素は1に設定される。膨張は、特徴を強調し、物体の小さな穴又はギャップを閉じるために使用される。
【0123】
一部の例では、モフォロジー処理は、収縮処理に続いて膨張処理を含み得る。一部の例では、モフォロジー処理は、膨張処理に続いて収縮処理を実施することを含み得る。
【0124】
軌道決定動作480では、計算システム1100が層仕切りの輪郭を決定するとき(例えば、これに応答して)、計算システム1100の物体操作計画モジュール1126は、層仕切りの輪郭に基づいて、ロボット1300又はロボット3300のロボットアームの動きを制御するために軌道を決定し得る。例えば、物体操作計画モジュール1126は、軌道に基づいて、物体3100A/3100B/3100C/3100Dの上部表面3120から、層仕切り3600を把持して除去するように、ロボット3300を構成し得る。一部の例では、軌道は、エンドエフェクタ装置3330を使用して、積み重ねられた物体3700の上方から層仕切り3600を把持して除去するように、ロボットアーム330を設定する。一部の例では、軌道は、層仕切り3600を把持するように、エンドエフェクタ装置3330のグリッパを設定する。
【0125】
図8は、パレット3400上の物体3100A/3100B/3100C/3100D/3100E/3100F/3100G/3100Hの二つの層3710及び3720が、層仕切り3600が第二の層の上部表面上に配置されている環境の例を示す。第一の層3710は、物体3100A/3100B/3100C/3100Dを含み、第二の層3720は、物体3100E/3100F/3100G/3100Hを含む。層仕切り3600は、第二の層3720の上部表面上に配置されている。図8の層仕切り3600の存在は、上述の方法及びシステムに基づいて決定され得る。
【0126】
開示技術の例の上記詳細な説明は、網羅的であること、又は開示技術を上記に開示された正確な形態に限定することを意図するものではない。開示技術の具体的な例は、例示の目的で上述されるが、関連技術の当業者が認識するであろうように、本開示の技術の範囲内でさまざまな同等の修正が可能である。例えば、プロセス又はブロックが所与の順序で提示される一方で、代替的な実装は、異なる順序で、ステップを有するルーチンを実施するか、又はブロックを有するシステムを採用してもよく、一部のプロセス又はブロックは、代替的又は部分的な組み合わせを提供するために、削除、移動、追加、細分、組み合わせ、及び/又は修正され得る。これらのプロセス又はブロックの各々は、さまざまな異なる方法で実装され得る。さらに、プロセス又はブロックは、直列に実施されるものとして時として示されるが、これらのプロセス又はブロックは、代わりに並列に実施もしくは実装されてもよく、又は異なる時間に実施され得る。さらに、本明細書に記述される任意の特定の数は、例にすぎず、代替的な実装は、異なる値又は範囲を採用し得る。
【0127】
これら及びその他の変更は、上記発明を実施するための形態を考慮して、開示技術に対して行われてもよい。発明を実施するための形態は、開示技術の特定の例、ならびに企図される最良のモードを説明するが、開示技術は、上記の説明がテキストでどの程度詳細に現れるかにかかわらず、多くの方法で実践され得る。システムの詳細は、その特定の実装においてかなり変化し得るが、依然として本明細書に開示される技術によって包含される。上述のように、開示技術の特定の特徴又は態様を説明する際に使用される特定の用語は、その用語が関連付けられる開示技術の任意の特定の特性、特徴、又は態様に限定されるように用語が本明細書で再定義されることを意味するために解釈されるべきではない。従って、本発明は、添付の特許請求の範囲による場合を除き、限定されない。一般に、以下の特許請求の範囲で使用される用語は、上記の発明を実施するための形態のセクションがかかる用語を明示的に定義しない限り、開示技術を本明細書に開示された特定の例に限定すると解釈されるべきではない。
【0128】
関連分野の当業者にとって、本明細書に記載する方法及び用途への、他の好適な修正ならびに適応が、実施形態のうちのいずれの範囲から逸脱することなく成され得ることは明らかであろう。上述の実施形態は、例示的な例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示するさまざまな実施形態が、明細書及び添付図面に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせられ得ることは理解されるべきである。例に応じて、本明細書に記載するプロセス又は方法のいずれの特定の行為又は事象は、異なる順序で行われ得、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為又は事象は、方法又はプロセスを実行するのに必要でない場合がある)。加えて、本明細書の実施形態の特定の特徴を、明示目的に、単一の構成要素、モジュール、又はユニットにより行われていると記載するものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって実行され得ることは理解されるべきである。したがって、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、様々な変更及び修正を当業者が及ぼし得る。
【0129】
更なる実施形態は、以下の実施形態を含む。
【0130】
実施形態1
少なくとも一つのカメラと、エンドエフェクタ装置を含むロボットアームを有するロボットと通信するように構成された制御システムと、少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の輪郭を識別し、積み重ねられた物体の輪郭に基づいて、積み重ねられた物体の上部表面を識別し、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する、延長線を検出し、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出し、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別し、層仕切りの輪郭に基づいて、ロボットアームの動きを制御するための軌道を決定するように構成された処理回路と、を含む、積み重ねられた物体の間の層仕切りを検出するための計算システム。
【0131】
実施形態2
終端点が、上部表面の周囲より遠位にある、実施形態1に記載のシステム。
【0132】
実施形態3
処理回路が、3D画像情報中で検出された物体間の深度勾配に基づいて、上部表面上の延長線を検出するようにさらに構成されている、実施形態1に記載のシステム。
【0133】
実施形態4
処理回路が、延長線が上部表面の周囲から上部表面の中心まで延びていないことに基づいて、層仕切りの存在を検出するようにさらに構成されている、実施形態1に記載のシステム。
【0134】
実施形態5
処理回路が、周囲から延長線の各々の終端点までの、積み重ねられた物体の上部表面の画像情報の部分を除去することに基づいて、層仕切りの輪郭を識別するようにさらに構成されている、実施形態1に記載のシステム。
【0135】
実施形態6
処理回路が、層仕切りの存在が検出されるのに応答して、層仕切りの表面積を決定し、表面積が表面積最小閾値よりも大きいことに応答して、層仕切りの存在を検証するようにさらに構成されている、実施形態1に記載のシステム。
【0136】
実施形態7
処理回路が、層仕切りの存在が検出されることに応答して、層仕切りの表面積を決定し、表面積が表面積最大閾値よりも小さいことに応答して、層仕切りの存在を検証するようにさらに構成されている、実施形態1に記載のシステム。
【0137】
実施形態8
処理回路が、層仕切りの存在が検出されることに応答して、層仕切りの上部表面に対応する3D画像情報中の隣接する画素の深度情報の変化に基づいて、層仕切りの平滑度を決定し、平滑度が平滑度閾値よりも大きいことに応答して、層仕切りの存在を検証するようにさらに構成されている、実施形態1に記載のシステム。
【0138】
実施形態9
処理回路が、層仕切りの上部表面に対応する2D画像情報及び3D画像情報に基づいて画像特徴を生成し、画像特徴に基づいてテクスチャアーチファクトを識別し、テクスチャアーチファクトが識別されることに応答して、層仕切りの存在が誤検知であると決定するようにさらに構成されている、実施形態1に記載のシステム。
【0139】
実施形態10
軌道によって、ロボットが層仕切りを把持して除去するように設定される、実施形態1に記載のシステム。
【0140】
実施形態11
線長閾値が、上部表面を画定する四角形の最小側面の長さの半分未満である、実施形態1に記載のシステム。
【0141】
実施形態12
線長閾値が、上部表面を画定する四角形の最小側面の長さの四分の一未満である、実施形態1に記載のシステム。
【0142】
実施形態13
表面積最小閾値が、積み重ねられた物体中の最大の物体の表面積と等しい、実施形態6に記載のシステム。
【0143】
実施形態14
表面積最小閾値が、積み重ねられた物体中の最大の物体の最大側面の表面積と等しい、実施形態6に記載のシステム。
【0144】
実施形態15
表面積最大閾値が、積み重ねられた物体が配置されているパレットの表面積と等しい、実施形態7に記載のシステム。
【0145】
実施形態16
処理回路が、層仕切りの存在が検出されることに応答して、3D画像情報に基づいて層仕切りの厚さを決定し、厚さが厚さ閾値よりも小さいことに応答して、層仕切りの存在を検証するようにさらに構成されている、実施形態1に記載のシステム。
【0146】
実施形態17
処理回路が、層仕切りの存在が検出されることに応答して、層仕切りの重量を決定し、厚さが重量閾値よりも小さいことに応答して、層仕切りの存在を検証するようにさらに構成されている、実施形態1に記載のシステム。
【0147】
実施形態18
テクスチャアーチファクトが、ロゴ、グラフィック、タグ、ラベル、マーキング、スキャンコード、統一商品コード(UPC)、包装テープ、視覚的パターン、及び強度の変化のうちのいずれか一つ又は任意の組み合わせを含む、実施形態9に記載のシステム。
【0148】
実施形態19
処理回路が、層仕切りの輪郭を鮮明にするためにモフォロジー処理を実施するようにさらに構成されていて、モフォロジー処理が、延長線のうちの最大の延長線の長さと等しい側面の長さを有する正方形の構造化要素に基づく、実施形態1に記載のシステム。
【0149】
実施形態20
モフォロジー処理が、構造化要素を層仕切りの上でスライドさせ、構造化要素によって覆われる最大画素値を保持することに基づいた膨張処理を含む、実施形態1に記載のシステム。
【0150】
実施形態21
モフォロジー処理が、構造化要素を層仕切りの上でスライドさせ、構造化要素によって覆われる最小画素値を保持することに基づいた収縮処理を含む、実施形態1に記載のシステム。
【0151】
実施形態22
モフォロジー処理が、膨張処理に続いて収縮処理を実施することを含む、実施形態1に記載のシステム。
【0152】
実施形態23
軌道によって、ロボットアームが、エンドエフェクタ装置を使用して、積み重ねられた物体の上方から層仕切りを把持して除去するように設定される、実施形態1に記載のシステム。
【0153】
実施形態24
軌道によって、複数の把持モデルのうちの少なくとも一つに従って、エンドエフェクタ装置のグリッパが層仕切りを把持するように設定される、実施形態1に記載のシステム。
【0154】
実施形態25
積み重ねられた物体の上部表面を識別することが、少なくとも一つのカメラを積み重ねられた物体に向かって位置付けることと、積み重ねられた物体の輪郭に基づいて、積み重ねられた物体の上部表面の2D画像を捕捉することと、2D画像に基づいて、積み重ねられた物体の上部表面を決定することと、を含む、実施形態1に記載のシステム。
【0155】
実施形態26
制御回路によって実行されるとき、少なくとも一つのカメラによって捕捉された少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の輪郭を識別し、積み重ねられた物体の輪郭に基づいて、積み重ねられた物体の上部表面を識別し、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する、延長線を検出し、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出し、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別し、層仕切りの輪郭に基づいて、ロボットのロボットアームの動きを制御するための軌道を決定するように、処理回路を設定する命令をその上に有する非一時的コンピュータ可読媒体。
【0156】
実施形態27
終端点が、上部表面の周囲より遠位にある、実施形態26に記載の非一時的コンピュータ可読媒体。
【0157】
実施形態28
制御回路が、3D画像情報中で検出された物体間の深度勾配に基づいて、上部表面上の延長線を検出するようにさらに構成されている、実施形態26に記載の非一時的コンピュータ可読媒体。
【0158】
実施形態29
制御回路が、延長線が上部表面の周囲から上部表面の中心まで延びていないことに基づいて、層仕切りの存在を検出するようにさらに構成されている、実施形態26に記載の非一時的コンピュータ可読媒体。
【0159】
実施形態30
制御回路が、周囲から延長線の各々の終端点までの、積み重ねられた物体の上部表面の画像情報の部分を除去することに基づいて、層仕切りの輪郭を識別するようにさらに構成されている、実施形態26に記載の非一時的コンピュータ可読媒体。
【0160】
実施形態31
少なくとも一つの画像から取得された3D画像情報に基づいて、積み重ねられた物体の輪郭を識別することと、積み重ねられた物体の輪郭に基づいて、積み重ねられた物体の上部表面を識別することと、積み重ねられた物体の上部表面の2D画像情報に基づいて、上部表面の周囲から上部表面の中心に向かって延びる、各々が物体のエッジ又は積み重ねられた物体の物体間のギャップのうちの少なくとも一つに対応する、延長線を検出することと、延長線の各々の長さが線長閾値未満であることに基づいて、層仕切りの存在を検出することと、延長線の終端点に対応する上部表面上の点に従って層仕切りの輪郭を識別することと、層仕切りの輪郭に基づいて、ロボットのロボットアームの動きを制御するための軌道を決定することと、を含む、積み重ねられた物体の間の層仕切りを検出するためのプロセッサ実装方法。
【0161】
実施形態32
終端点が、上部表面の周囲より遠位にある、実施形態31に記載の方法。
【0162】
実施形態33
3D画像情報中で検出された物体間の深度勾配に基づいて、上部表面上の延長線を検出することをさらに含む、実施形態31に記載の方法。
【0163】
実施形態34
延長線が上部表面の周囲から上部表面の中心まで延びていないことに基づいて、層仕切りの存在を検出することをさらに含む、実施形態31に記載の方法。
【0164】
実施形態35
層仕切りの輪郭を特定することが、周囲から延長線の各々の終端点までの、積み重ねられた物体の上部表面の画像情報の部分を除去することに基づいて、層仕切りの輪郭を識別することを含む、実施形態31に記載の方法。
図1A
図1B
図1C
図1D
図2A
図2B
図2C
図2D
図2E
図2F
図3A
図3B
図4A
図4B
図5A
図5B
図5C
図6A
図6B
図7
図8
【外国語明細書】