(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】物体取り扱いを伴うロボットシステムのためのシステム及び方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20231225BHJP
G06T 7/00 20170101ALI20231225BHJP
G06T 7/136 20170101ALI20231225BHJP
G06T 7/50 20170101ALI20231225BHJP
G06T 7/60 20170101ALI20231225BHJP
G06V 20/64 20220101ALI20231225BHJP
G06T 7/11 20170101ALI20231225BHJP
【FI】
B25J13/08 A
G06T7/00 C
G06T7/136
G06T7/50
G06T7/60 300Z
G06V20/64
G06T7/11
【外国語出願】
(21)【出願番号】P 2023035588
(22)【出願日】2023-03-08
【審査請求日】2023-05-30
(32)【優先日】2022-03-08
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ガイザー,フロリス
【審査官】神山 貴行
(56)【参考文献】
【文献】国際公開第2021/001882(WO,A1)
【文献】特開2021-088011(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G06T 7/00- 7/90
(57)【特許請求の範囲】
【請求項1】
エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムと、
少なくとも一つの処理回路と、を備え、
前記少なくとも一つの処理回路は、前記ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む前記物体取り扱い環境内にあるとき、
前記カメラによって生成された、前記物体の画像情報を取得すること、
前記物体から、一つ以上の物体のための選択可能な領域を識別することであって、当該識別が、前記画像情報に従って、前記物体の平滑性を表す表面コストマップを生成することと、前記一つ以上の物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために前記表面コストマップをセグメント化することと、少なくとも前記一つ以上の選択可能な領域を含む選択可能な領域検出結果を生成することと、によってなされること、及び
ロボットシステムが前記物体の少なくとも一つを移送するための動作計画を生成すること、
を実行するように構成され、
前記セグメント化することは、
物体部分を有する閾値付きマスクを生成するために、コスト閾値を前記表面コストマップに適用すること、
侵食されたマスクを生成するために、前記閾値付きマスクの前記物体部分の境界を減らすことによって前記閾値付きマスクを侵食すること、及び
前記侵食されたマスクに基づいて、前記一つ以上の画像セグメントの第一の画像セグメントを識別すること、を含み、
前記動作計画は、前記選択可能な領域検出結果に対応している、計算システム。
【請求項2】
前記画像情報は、三次元情報を含み、
前記処理回路は、前記画像情報の画定されたセル間の高さ勾配及び法線差に従って、前記表面コストマップを生成するようにさらに構成される、請求項1に記載の計算システム。
【請求項3】
前記少なくとも一つの処理回路は、核サイズ、ストライドサイズ、距離閾値、法線閾値、及び法線重みの一つ以上を含むコストマップパラメータに従って、前記表面コストマップを生成するようにさらに構成される、請求項2に記載の計算システム。
【請求項4】
前記少なくとも一つの処理回路は、
一つ以上の物体認識テンプレートを作成するために、前記画像情報に基づいて、前記一つ以上の物体を登録すること、及び
前記一つ以上の物体認識テンプレートに従って、前記コストマップパラメータを決定すること、
を実行するようにさらに構成される、請求項3に記載の計算システム。
【請求項5】
前記少なくとも一つの処理回路は、前記一つ以上の画像セグメント内の前記一つ以上の選択可能な領域に対応する、検出された領域を示す検出マスク情報を生成するようにさらに構成される、請求項1に記載の計算システム。
【請求項6】
前記表面コストマップをセグメント化することは、
前記第一の画像セグメントを前記表面コストマップから削除すること、
第二の閾値付きマスクを生成するために、第二のコスト閾値を前記表面コストマップの残りの部分に適用することであって、前記残りの部分は、前記第一の画像セグメントが削除された後に残っている前記表面コストマップの部分であること、
第二の侵食されたマスクを生成するために、前記第二の閾値付きマスクを侵食すること、及び
前記第二の侵食されたマスクに基づいて、前記一つ以上の画像セグメントの第二の画像セグメントを識別すること、をさらに含む、請求項1に記載の計算システム。
【請求項7】
前記選択可能な領域検出結果を生成することは、
前記一つ以上の選択可能な領域の周りに安全容積を生成することをさらに含み、
前記安全容積は、前記一つ以上の物体の寸法における誤差のマージンを示す、請求項1に記載の計算システム。
【請求項8】
少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される物体移送の方法であって、
前記カメラによって生成された、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、
前記一つ以上の物体のための選択可能な領域を識別することであって、当該識別が、前記画像情報に従って、前記物体の平滑性を表す表面コストマップを生成することと、前記一つ以上の物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために前記表面コストマップをセグメント化することと、少なくとも前記一つ以上の選択可能な領域を含む選択可能な領域検出結果を生成することと、によってなされること、及び
ロボットシステムが前記物体の少なくとも一つを移送するための動作計画を生成すること、
を含み、
前記セグメント化することは、
物体部分を有する閾値付きマスクを生成するために、コスト閾値を前記表面コストマップに適用すること、
侵食されたマスクを生成するために、前記閾値付きマスクの前記物体部分の境界を減らすことによって前記閾値付きマスクを侵食すること、及び
前記侵食されたマスクに基づいて、前記一つ以上の画像セグメントの第一の画像セグメントを識別すること、を含み、
前記動作計画は、前記選択可能な領域検出結果に対応している、方法。
【請求項9】
前記画像情報は、三次元情報を含み、
前記方法は、前記画像情報の画定されたセル間の高さ勾配及び法線差に従って、前記表面コストマップを生成することをさらに含む、請求項8に記載の方法。
【請求項10】
核サイズ、ストライドサイズ、距離閾値、法線閾値、及び法線重みの一つ以上を含むコストマップパラメータに従って、前記表面コストマップを生成することをさらに含む、請求項9に記載の方法。
【請求項11】
一つ以上の物体認識テンプレートを作成するために、前記画像情報に基づいて、前記一つ以上の物体を登録すること、及び
前記一つ以上の物体認識テンプレートに従って、前記コストマップパラメータを決定すること、
をさらに含む、請求項10に記載の方法。
【請求項12】
前記一つ以上の画像セグメント内の前記一つ以上の選択可能な領域に対応する、検出された領域を示す検出マスク情報を生成することをさらに含む、
請求項8に記載の方法。
【請求項13】
前記表面コストマップをセグメント化することは、
前記第一の画像セグメントを前記表面コストマップから削除すること、
第二の閾値付きマスクを生成するために、第二のコスト閾値を前記表面コストマップの残りの部分に適用することであって、前記残りの部分は、前記第一の画像セグメントが削除された後に残っている前記表面コストマップの部分であること、
第二の侵食されたマスクを生成するために、前記第二の閾値付きマスクを侵食すること、及び
前記第二の侵食されたマスクに基づいて、第二の画像セグメントを識別すること、をさらに含む、請求項8に記載の方法。
【請求項14】
前記選択可能な領域検出結果を生成することは、
前記一つ以上の選択可能な領域の周りに安全容積を生成することをさらに含み、
前記安全容積は、前記一つ以上の物体の寸法における誤差のマージンを示す、請求項8に記載の方法。
【請求項15】
少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される、物体移送のための実行可能な命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、
前記カメラによって生成された、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、
前記一つ以上の物体のための選択可能な領域を識別することであって、当該識別が、前記画像情報に従って、前記物体の平滑性を表す表面コストマップを生成することと、前記一つ以上の物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために前記表面コストマップをセグメント化することと、少なくとも前記一つ以上の選択可能な領域を含む選択可能な領域検出結果を生成することと、によってなされること、及び
ロボットシステムが前記物体の少なくとも一つを移送するための動作計画を生成すること、
を行うように構成され、
前記セグメント化することは、
物体部分を有する閾値付きマスクを生成するために、コスト閾値を前記表面コストマップに適用すること、
侵食されたマスクを生成するために、前記閾値付きマスクの前記物体部分の境界を減らすことによって前記閾値付きマスクを侵食すること、及び
前記侵食されたマスクに基づいて、前記一つ以上の画像セグメントの第一の画像セグメントを識別すること、を含み、
前記動作計画は、前記選択可能な領域検出結果に対応している、非一時的コンピュータ可読媒体。
【請求項16】
前記画像情報は、三次元情報を含み、
前記命令は、前記画像情報の画定されたセル間の高さ勾配及び法線差に従って、前記表面コストマップを生成するようにさらに構成される、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記コスト閾値を前記表面コストマップに適用することは、前記コスト閾値に基づいて、物体部分間の閾値境界を生成することを含む、請求項1に記載の計算システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年3月8日出願の「ROBOTIC SYSTEM WITH OBJECT DETECTION」と題された米国仮特許願第 63/317,877号の利益を主張し、その内容全体は、参照により本明細書に組み込まれる。
【0002】
本技術は、一般的に、ロボットシステムであって、より詳細には、物体を検出及び取り扱うためのシステム、プロセス、及び技術を対象とする。本技術は、より詳細には、容器中の物体の選択可能な領域を識別するために使用され得る。
【背景技術】
【0003】
現在、多くのロボット(例えば、物理的動作を自動的/自律的に実行するように構成される機械)は、性能向上及びコスト低減が常に進む中、様々な異なる分野で広範囲に使用されている。ロボットは、例えば、製造及び/又は組立、梱包及び/又は包装、輸送及び/又は出荷などにおける様々なタスク(例えば、空間を通した物体の操作又は移動)を実行するために使用され得る。ロボットは、タスクを実行する際に、人間の動作を再現可能であり、それによって、危険又は反復的なタスクを実行するために、通常であれば必要とされる人間の関与を置き換え又は低減することができる。
【0004】
しかしながら、ロボットは、技術の進歩にもかかわらず、より大規模及び/又はより複雑なタスクの実行を要する、人間の相互作用を再現するために必要な高度な機能が欠けている場合が多い。従って、ロボット間の操作及び/又は相互作用を管理するための技術及びシステムの改善に対するニーズは、依然存在する。
【発明の概要】
【0005】
ある実施形態では、計算システムが提供される。計算システムは、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムと、少なくとも一つの処理回路と、を備え、ロボットが、物体取り扱い環境内であって、該物体取り扱い環境内の目的地に移送するための物体の供給源を含む、物体取り扱い環境内にあるとき、少なくとも一つの処理回路は、物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を実行するように構成され、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている。
【0006】
ある実施形態では、少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される物体移送の方法が提供される。該方法は、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を含み、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている。
【0007】
ある実施形態では、少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される物体移送のための実行可能な命令を有する非一時的コンピュータ可読媒体が提供される。該命令は、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を含み、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている。
【図面の簡単な説明】
【0008】
【
図1A】本明細書の実施形態に係る、物体の検出、識別、及び取り出しを実施する、又は容易にするためのシステムを示す。
【0009】
【
図1B】本明細書の実施形態に係る、物体の検出、識別、及び取り出しを実施する、又は容易にするためのシステムの実施形態を示す。
【0010】
【
図1C】本明細書の実施形態に係る、物体の検出、識別、及び取り出しを実施する、又は容易にするためのシステムの別の実施形態を示す。
【0011】
【
図1D】本明細書の実施形態に係る、物体の検出、識別、及び取り出しを実施する、又は容易にするためのシステムのさらに別の実施形態を示す。
【0012】
【
図2A】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施する、又は容易にするように構成された計算システムを示すブロック図である。
【0013】
【
図2B】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施する、又は容易にするように構成された計算システムの実施形態を示すブロック図である。
【0014】
【
図2C】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施する、又は容易にするように構成された計算システムの別の実施形態を示すブロック図である。
【0015】
【
図2D】図本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施する、又は容易にするように構成された計算システムのさらに別の実施形態を示すブロック図である。
【0016】
【
図2E】システムによって処理され、本明細書の実施形態と一致する、画像情報の例である。
【0017】
【
図2F】システムによって処理され、本明細書の実施形態と一致する、画像情報の別の例である。
【0018】
【
図3A】本明細書の実施形態に係る、ロボットシステムを操作するための例示的な物体取り扱い環境を示す。
【0019】
【
図3B】本明細書の実施形態に係る、ロボットシステムを操作するための例示的な物体取り扱い環境を示す。
【0020】
【
図3C】本明細書の実施形態に係る、ロボットシステムを操作するための例示的な物体取り扱い環境を示す。
【0021】
【
図4】検出された物体を取り扱うための例示的な手順を示すフローチャートである。
【0022】
【
図5A】本明細書の実施形態と一致する、状況の2D画像情報の例を示す。
【0023】
【
図5B】本明細書の実施形態と一致する、状況の3D画像情報の例を示す。
【0024】
【
図6A】本明細書の実施形態と一致する、表面コストマップ生成方法用の例示的なフローチャートを提供する。
【0025】
【
図6B】本明細書の実施形態と一致する、表面コストマップ生成方法の態様の実施例を提供する。
【
図6C】本明細書の実施形態と一致する、表面コストマップ生成方法の態様の実施例を提供する。
【
図6D】本明細書の実施形態と一致する、表面コストマップ生成方法の態様の実施例を提供する。
【
図6E】本明細書の実施形態と一致する、表面コストマップ生成方法の態様の実施例を提供する。
【0026】
【
図6F】本明細書の実施形態と一致する、高さ勾配コストマップの実施例を提供する。
【0027】
【
図6G】本明細書の実施形態と一致する、法線差コストマップの実施例を提供する。
【0028】
【
図6H】本明細書の実施形態と一致する、表面コストマップの実施例を提供する。
【
図6I】
本明細書の実施形態と一致する、箱様の物体及びパウチ様の物体の実施例を提供する。
【0029】
【
図7A】本明細書の実施形態と一致する、セグメンテーション方法の実施例を提供する。
【0030】
【
図7B】本明細書の実施形態と一致する、セグメンテーション方法の態様の実施例を提供する。
【
図7C】本明細書の実施形態と一致する、セグメンテーション方法の態様の実施例を提供する。
【
図7D】本明細書の実施形態と一致する、セグメンテーション方法の態様の実施例を提供する。
【
図7E】本明細書の実施形態と一致する、セグメンテーション方法の態様の実施例を提供する。
【0031】
【
図8A】本明細書の実施形態と一致する、検出マスク情報生成の態様の実施例を提供する。
【
図8B】本明細書の実施形態と一致する、検出マスク情報生成の態様の実施例を提供する。
【0032】
【
図9A】本明細書の実施形態と一致する、安全容積生成の態様の実施例を提供する。
【
図9B】本明細書の実施形態と一致する、安全容積生成の態様の実施例を提供する。
【発明を実施するための形態】
【0033】
物体の検出、識別、及び取り出しに関連するシステム及び方法が、本明細書に記載されている。具体的には、本開示のシステム及び方法は、物体が容器内に位置する場合、物体の検出、選択可能な領域の識別、及び物体の取り出しを容易にし得る。本明細書に記載するように、物体は、箱、パウチ、袋などを含み得る。このような状況での物体取り扱いは、物体の不規則な配置、及び例えば、吸引把持装置により、ピッキングに適した物体領域又は部分の識別が困難であるため、多くの課題があり得る。したがって、本明細書に記載のシステム及び方法は、一群の物体の中から物体の選択可能な領域を識別するように設計され、個々の物体は、異なる位置に異なる角度などで配置され得る。本明細書に記載するシステム及び方法は、ロボットシステムを含み得る。本明細書の実施形態にしたがって構成されたロボットシステムは、複数のロボットの操作を調整することによって、統合されたタスクを自律的に実行し得る。ロボットシステムは、本明細書に記載されるように、制御し、コマンドを発行し、ロボット装置及びセンサからの情報を受信し、ロボット装置、センサ及びカメラによって生成されたデータにアクセスし、分析し、及び処理し、ロボットシステムの制御に使用可能なデータ又は情報を生成し、ロボット装置、センサ、及びカメラの動作を計画するように構成されたロボット装置、アクチュエータ、センサ、カメラ、及び計算システムの任意の適切な組み合わせを含み得る。本明細書で使用するロボットシステムは、ロボットアクチュエータ、センサ、又はその他の装置を直ちにアクセス又は制御する必要はない。ロボットシステムは、本明細書に記載するように、情報の受信、分析、及び処理を通して、このようなロボットアクチュエータ、センサ、及び他の装置の性能を改善するように構成された計算システムであり得る。
【0034】
本明細書に記載される技術は、物体の識別、選択可能な領域の識別、及び物体の移送で使用するために構成されたロボットシステムに技術的改善を提供する。本明細書に記載する技術的改善により、これらのタスクの速度、精度、及び正確さが増加し得、物体の検出、選択可能な領域の識別、及び供給源の容器又は保管場所から目的地までの物体の移送がさらに容易になり得る。本明細書に記載されるロボットシステム及び計算システムは、容器からの物体を識別、選択可能な領域の検出、及び取り出す技術的問題に対処するものであり、物体は、不規則に配置され得る。この技術的問題に対処することにより、物体の識別、選択可能な領域の検出、及び物体取り出しの技術が改善される。
【0035】
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書に記載するように、ロボットアクチュエータ構成要素(例えば、ロボットアーム、ロボットグリッパーなど)、様々なセンサ(例えば、カメラなど)、及び様々な計算又は制御システムを含み得る。本明細書に記載するように、計算システム又は制御システムは、ロボットアーム、ロボットグリッパー、カメラなどの「制御する」様々なロボット構成要素と称され得る。このような「制御」は、ロボット構成要素の様々なアクチュエータ、センサ、及びその他の機能的態様の直接的な制御及びそれらとの相互作用を指し得る。例えば、計算システムは、様々なモーター、アクチュエータ、及びセンサにロボット動作を生じさせるために必要な信号の全てを発行又は提供することによって、ロボットアームを制御し得る。このような「制御」はまた、このようなコマンドを、ロボット動作を生じるために必要な信号にその後変換する、さらなるロボット制御システムへの抽象的又は間接的なコマンドの発行を指し得る。例えば、計算システムは、ロボットアームが移動すべき軌道又は目的地の位置を記述するコマンドを発行することによってロボットアームを制御し得、ロボットアームに関連付けられたさらなるロボット制御システムは、このようなコマンドを受信及び解釈し、その後、ロボットアームの様々なアクチュエータ及びセンサに必要な直接信号を提供して、必要な動作を生じ得る。
【0036】
具体的には、本明細書に記載の本技術は、ロボットシステムが、容器内の複数の物体の間で標的物体と相互作用するのを支援する。本明細書に記載の方法及びシステムは、一群の物体の中から選択された物体の選択可能な領域を識別し得る。本明細書に記載するように、ロボット移送機構(例えば、ロボットアーム)は、物体を把持、ピッキング、又は掴むのに使用するためのエンドエフェクタ装置の一部として、吸引カップ又は吸引グリッパーを含み得る。このような吸引ベースの把持装置は、物体の平滑な表面、例えば、物体を持ち上げて移送するために、吸引カップが物体の表面に係合し、かつ物体の表面と吸引カップとの間にシールを形成するのに十分平滑な表面輪郭を有する物体部分に適用される場合、より良好に機能し得る。吸引把持装置との適切な係合に十分平滑で、ロボット移送システム内に一つ以上の吸引把持装置を収容するのに十分な大きさの表面は、「選択可能な領域」と称され得る。本明細書に記載されるシステム及び方法は、物体が、供給源の保管場所又は容器内に緩く構造化される場合、物体の選択可能な領域を識別するために利用され得る。
【0037】
具体的な詳細を以下に記載し、本開示技術を理解させる。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含めずに、実施され得る。他の事例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために、詳細に説明されない。本明細書において「ある実施形態」、「一つの実施形態」などと言及すると、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも一つの実施形態に含まれることを意味する。従って、本明細書にこのような語句が記載されても、必ずしも全てが、同一の実施形態を指すわけではない。一方で、このような言及があっても、必ずしも相互に排他的ではない。さらに、任意の一つの実施形態に関して記載される特定の特徴、構造、材料、又は特性は、このような品目が相互に排他的でない限り、他の任意の実施形態のものと任意の適切な様式で組み合わせることができる。図に示す様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0038】
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭し得る、構造又はプロセスを記載するいくつかの詳細は、明示目的で、以下の説明には記載されない。さらに、以下の開示が、本技術の異なる態様のいくつかの実施形態を説明しているものの、他のいくつかの実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有し得る。従って、開示された技術は、追加の要素を有するか、又は以下に記載の要素のうちの一部を有しない、他の実施形態を有し得る。
【0039】
以下に記載の本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又は制御装置によって実行されるルーチンを含む、コンピュータ又は制御装置による実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され記載されるもの以外のコンピュータ又は制御装置システム上で、もしくはそれらを用いて実践され得ることを理解するであろう。本明細書に記載される技術は、以下に記載のコンピュータによる実行可能命令のうちの一つ以上を実行するように、特別にプログラム、構成、又は構築される、専用コンピュータ又はデータプロセッサで具体化され得る。従って、本明細書において一般的に使用する用語「コンピュータ」及び「制御装置」は、任意のデータプロセッサを指し、インターネット家電及び手持ち式デバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラー又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータ及び制御装置によって取り扱われる情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータ又は制御装置による実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の適切なメモリーデバイスに含まれ得る。
【0040】
用語「結合される」及び「接続される」は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語が、互いの同義語として意図されないことは理解されるべきである。むしろ、特定の実施形態では、「接続される」は、二つ以上の要素が、互いに直接接触することを示すために使用され得る。文脈において別途明白にされない限り、用語「結合される」は、二つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にある、又は二つ以上の要素が互いに協働する、もしくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)、又はその両方を示すために使用され得る。
【0041】
計算システムによる画像分析に対する本明細書での任意の言及は、選択された点に対する様々な位置のそれぞれの深度値を記載する深度情報を含み得る空間構造情報に従って、又はそれを使用して、実施され得る。深度情報は、物体を識別する、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、物体の一つ以上の表面の位置を示す点群を含み得、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に周知の他の形態は、本明細書に記載される方法に従って使用され得る。
【0042】
図1Aは、物体検出、又はより詳細には、物体認識を実施するためのシステム1000を示す。システム1000は、より詳細には、計算システム1100及びカメラ1200を含み得る。この例では、カメラ1200は、カメラ1200が位置する環境を説明する、もしくはそうでなければ表し、又はより詳細には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。該環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。本明細書に記載される特定の実施形態では、環境は、一つ以上の供給源の保管場所及び一つ以上の目的地の保管場所を含む、物体取り扱い環境であり得る。このような事例では、画像情報は、箱、パウチ、袋、ビン、ケースなどの、このような施設に位置する物体の画像を表し得る。このような物体は、供給源及び目的地の保管場所内に配置され得る。システム1000は、以下でより詳細に記載するように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて、物体認識又は物体登録を実施すること、及び/又は画像情報に基づいて、ロボット相互作用計画を実施することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(用語「及び/又は」及び「又は」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他の物体との間のロボット相互作用を容易にするために、ロボットを施設で制御するために使用され得る。計算システム1100及びカメラ1200は、同一施設に位置し得、又は互いに遠隔に位置し得る。例えば、計算システム1100は、倉庫又は小売空間から遠隔のデータセンターでホストされる、クラウド計算プラットフォームの一部であり得、ネットワーク接続を介して、カメラ1200と通信し得る。
【0043】
ある実施形態では、カメラ1200(画像感知装置とも称され得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、
図1Bは、計算システム1100、ならびにその両方がカメラ1200の実施形態であり得る、カメラ1200A及びカメラ1200Bを含む、(システム1000の実施形態であり得る)システム1500Aを示す。本実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を示す2D画像を含む、又はそれを形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、又はそれを形成する3D画像情報を生成するように構成される、3Dカメラ(空間構造感知カメラ又は空間構造感知装置とも称される)であり得る。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の位置など、カメラ1200Bに対する様々な位置のそれぞれの深度値を説明する、深度情報(例えば、深度マップ)を含み得る。カメラの視野又は物体の表面上のこれらの位置を、物理的位置と称することもできる。本実施例の深度情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、カメラ1200Bの視野中にある物体の一つ以上の表面上の位置を示す点群(3D点群とも称される)を含み得、又は該点群を生成するために使用され得る。より詳細には、空間構造情報は、一つ以上の物体の構造(物体構造とも称する)上の様々な位置を示し得る。
【0044】
ある実施形態では、システム1000は、カメラ1200の環境におけるロボットと様々な物体との間のロボット相互作用を容易にするための、ロボット操作システムであり得る。例えば、
図1Cは、
図1A及び
図1Bのシステム1000/1500Aの実施形態であり得る、ロボット操作システム1500Bを示す。ロボット操作システム1500Bは、計算システム1100と、カメラ1200と、ロボット1300と、を含み得る。上述のように、ロボット1300は、カメラ1200の環境中にある一つ以上の物体、例えば、箱、パウチ、袋、木枠、ビン、パレット、又はその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、物体を一つの位置からピックアップし、それらを別の位置に移送するように構成され得る。一部の事例では、ロボット1300は、一群の容器又は他の物体が降ろされて、例えば、コンベヤーベルトに移送される、パレットからの荷降ろし操作を実施するために使用され得る。一部の実装形態では、カメラ1200は、以下に記載する、ロボット1300又はロボット3300に取り付けられ得る。これは、カメラ手持ち又はカメラ手上の対応策としても知られる。カメラ1200は、ロボット1300のロボットアーム3320に取り付けられ得る。その後、ロボットアーム3320は、様々なピッキング領域に移動して、それらの領域に関する画像情報を生成し得る。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫又は他の構造体の天井に装着され得、構造体に対して静止したままであり得る。一部の実装形態では、ロボット1300とは別個の複数のカメラ1200及び/又は手持ちカメラ1200と共に使用されるロボット1300とは別個のカメラ1200を含む、複数のカメラ1200が使用され得る。一部の実装形態では、一つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット1300とは別個に、専用のロボットシステムに装着され得、又はそれに固定され得る。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」と記載することができる。カメラ手持ちの対応策については、カメラ1200の制御はまた、カメラ1200が装着される、又は取り付けられるロボット1300の制御を含む。
【0045】
ある実施形態では、
図1A~
図1Cの計算システム1100は、ロボット制御装置とも称され得るロボット1300を形成してもよく、又はそれに組み込まれ得る。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器又は他の物体との間のロボット相互作用を制御するためのロボット相互作用動作コマンドなどの、ロボット1300用のコマンドを生成するように構成される。このような実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成され得る。例えば、計算システム1100は、画像情報に基づいて、動作計画を決定するように構成され得、動作計画は、例えば、物体を把持、又は他の方法でピックアップするように意図し得る。計算システム1100は、動作計画を実行するために、一つ以上のロボット相互作用動作コマンドを生成し得る。
【0046】
ある実施形態では、計算システム1100は、視覚システムを形成し得る、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は別の方法として、もしくは追加的に、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報は、上述された3D画像情報及び/又は2D画像情報、あるいは他のいくつかの画像情報を含み得る。一部の状況では、計算システム1100が、視覚システムを形成する場合、視覚システムは、上述されたロボット制御システムの一部であり得、又はロボット制御システムから分離し得る。視覚システムが、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する情報を出力するように構成され得る。該情報は、視覚システムからこのような情報を受信し得る、ロボット制御システムに出力され得、情報に基づいて、動作計画を実施し、及び/又はロボット相互作用動作コマンドを生成する。視覚システムに関するさらなる情報は、以下に詳細に説明される。
【0047】
ある実施形態では、計算システム1100は、RS-232インターフェイス、ユニバーサルシリアルバス(USB)インターフェイスなどの専用有線通信インターフェイスを介して、及び/又は周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続部など、直接接続部によってカメラ1200及び/又はロボット1300と通信し得る。ある実施形態では、計算システム1100は、ネットワークを介して、カメラ1200及び/又はロボット1300と通信し得る。該ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットなどのローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意の種類及び/又は形態のネットワークであり得る。該ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、非同期転送モード(ATM)技術、同期型光ネットワーク形成 (SONET)プロトコル、又は同期デジタル階層 (SDH)プロトコルを含む、プロトコルの異なる技術、及び層又はスタックを利用し得る。
【0048】
ある実施形態では、計算システム1100は、カメラ1200及び/又はロボット1300と直接情報を通信し得、又は中間記憶装置、もしくはより一般的には、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、
図1Dは、計算システム1100の外部にあり得る、非一時的コンピュータ可読媒体1400を含む、システム1000/1500A/1500Bの実施形態であり得、例えば、カメラ1200によって生成された画像情報を記憶するための外部バッファ又は保管場所として作用し得る、システム1500Cを示す。このような実施例では、計算システム1100は、画像情報を取り出し得、それ以外では非一時的コンピュータ可読媒体1400から受信し得る。非一時的コンピュータ可読媒体1400の実施例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又はそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消却可能プログラム可能読み出し専用メモリー(EPROM又はフラッシュメモリー)、スタティックランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、及び/又はメモリースティックを形成し得る。
【0049】
上述のように、カメラ1200は、3Dカメラ及び/又は2Dカメラであり得る。2Dカメラは、カラー画像又はグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラ又は構造化光カメラなどの深度感知カメラ、又は他の任意の種類の3Dカメラであり得る。一部の事例では、2Dカメラ及び/又は3Dカメラは、電荷結合デバイス(CCD)センサ及び/又は相補型金属酸化膜半導体(CMOS)センサなど、画像センサを含み得る。ある実施形態では、3Dカメラは、レーザ、LIDAR装置、赤外線装置、明/暗センサ、動作センサ、マイクロ波検出器、超音波検出器、レーダ探知機、又は深度情報もしくは他の空間構造情報を捕捉するように構成された他の任意の装置を含み得る。
【0050】
上述のように、画像情報は、計算システム1100によって処理され得る。ある実施形態では、計算システム1100は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレット計算デバイス、及び/又は他の任意の計算システムを含み得、又はそれらとして構成され得る。ある実施形態では、計算システム1100の機能性のいずれか又は全ては、クラウド計算プラットフォームの一部として行われ得る。計算システム1100は、単一の計算デバイス(例えば、デスクトップコンピュータ)であり得、又は複数の計算デバイスを含み得る。
【0051】
図2Aは、計算システム1100の実施形態を示すブロック図を提供する。本実施形態における計算システム1100は、少なくとも一つの処理回路1110、及び非一時的コンピュータ可読媒体(又は複数の媒体)1120を含む。一部の事例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリー)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、及び/又は車載サーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に動作可能に結合される別個の/スタンドアローンの制御装置に含まれ得る。プロセッサは、プログラム命令を実行して、他の装置を制御/他の装置とインターフェイス接続し、それによって、計算システム1100に動作、タスク、及び/又は操作を実行させ得る。ある実施形態では、処理回路1110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジック制御装置(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は他の任意の処理回路を含む。
【0052】
ある実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120は、上述された中間の非一時的コンピュータ可読媒体1400の代替又は追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消却可能プログラム可能読み出し専用メモリー(EPROM又はフラッシュメモリー)、スタティックランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、メモリースティック、それらの任意の組み合わせ、又は他の任意の記憶装置など、それらの任意の好適な組み合わせなどの記憶装置であり得る。一部の事例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120は、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の事例では、非一時的コンピュータ可読媒体1120は、本明細書に記載する方法及び操作を実施するために使用される一つ以上の物体認識テンプレートを記憶し得る。非一時的コンピュータ可読媒体1120は、処理回路1110によって実行される場合、処理回路1110に、本明細書に記載される一つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的又は追加的に記憶し得る。
【0053】
図2Bは、計算システム1100の実施形態であり、通信インターフェイス1130を含む、計算システム1100Aを示す。通信インターフェイス1130は、例えば、
図1A~
図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上述された中間の非一時的コンピュータ可読媒体1400又はネットワークを介して、もしくはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続部を介して受信され得る。ある実施形態では、通信インターフェイス1130は、
図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェイス1130は、ロボット制御システムと通信するように構成され得る。通信インターフェイス1130はまた、通信構成要素又は通信回路と称される場合があり、例えば、有線又は無線プロトコルによって通信を実行するように構成された通信回路を含み得る。例として、通信回路は、RS-232ポート制御装置、USB制御装置、イーサネット制御装置、Bluetooth(登録商標)制御装置、PCIバス制御装置、他の任意の通信回路、又はそれらの組み合わせを含み得る。
【0054】
ある実施形態では、
図2Cに示すように、非一時的コンピュータ可読媒体1120は、本明細書に記載される一つ以上のデータオブジェクトを記憶するように構成された記憶空間1125を含み得る。例えば、記憶空間は、物体認識テンプレート、検出仮説、画像情報、物体画像情報、ロボットアーム移動コマンド、及び本明細書に記載した計算システムがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
【0055】
ある実施形態では、処理回路1110は、非一時的コンピュータ可読媒体1120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、
図2Dは、計算システム1100/1100A/1100Bの実施形態である、計算システム1100Cを示し、処理回路1110は、物体認識モジュール1121、動作計画モジュール1129、及び物体操作計画モジュール1126を含む、一つ以上のモジュールによってプログラムされる。処理回路1110は、物体登録モジュール1130及び選択可能な領域検出モジュール1132によりさらにプログラムされ得る。上記モジュールの各々は、本明細書に記載されるプロセッサ、処理回路、計算システムなどのうちの一つ以上でインスタンス化される場合、特定のタスクを実行するように構成された、コンピュータ可読プログラム命令を表し得る。上記のモジュールの各々は、本明細書に記載される機能を達成するために、互いに協働して動作し得る。本明細書に記載される機能性の様々な態様は、上述のソフトウェアモジュールのうちの一つ以上によって実行され得、ソフトウェアモジュール及びそれらの説明は、本明細書に開示されるシステムの計算構造を限定するものとして理解されない。例えば、特定のタスク又は機能が、特定のモジュールに関して記載され得るが、そのタスク又は機能はまた、必要に応じて異なるモジュールによって実施され得る。さらに、本明細書に記載のシステム機能は、機能の異なる内訳又は割り当てにより構成された異なる組のソフトウェアモジュールによって実行され得る。
【0056】
ある実施形態では、物体認識モジュール1121は、本開示全体を通して記載するように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書に記載する方法、システム、及び技術は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書に記載するように、物体識別に関連する物体認識タスクのためにさらに構成され得る。
【0057】
動作計画モジュール1129は、ロボットの動作を計画及び実行するように構成され得る。例えば、動作計画モジュール1129は、本明細書に記載される他のモジュールと相互作用し得、物体回収操作及びカメラ配置操作のためのロボット3300の動作を計画する。ロボットアームの動作及び軌道に関して本明細書に記載する方法、システム、及び技術は、動作計画モジュール1129によって実行され得る。
【0058】
物体操作計画モジュール1126は、例えば、物体を把持及び開放する、ならびにこのような把持及び開放を補助及び容易にするために、ロボットアームコマンドを実行するなどの、ロボットアームの物体操作活動を計画及び実行するように構成され得る。
【0059】
物体登録モジュール1130は、本明細書に記載する様々なタスクに必要とされ得る物体登録及び検出情報を取得、記憶、生成、及びそうでなければ処理するよう構成され得る。物体登録モジュール1130は、他の任意の必要なモジュールと相互作用又は通信するように構成され得る。
【0060】
選択可能な領域検出モジュール1132は、例えば、
図4に関して記載するように、一つ以上の物体の表面上で選択可能な領域を識別するように構成され得る。選択可能な領域検出モジュール1132は、他の任意の必要なモジュールと相互作用又は通信するように構成され得る。
【0061】
図2E、
図2F、
図3A、
図3B、及び
図3Cを参照すると、画像分析のために実行され得る物体認識モジュール1121及び物体登録モジュール1130に関連する方法が、説明されている。
図2E及び
図2Fが、画像分析方法と関連付けられた例示的な画像情報を示す一方、
図3A~3Cは、画像分析方法と関連付けられた例示的なロボット環境を示す。計算システムによる画像分析に関連する本明細書での言及は、選択された点に対する様々な位置のそれぞれの深度値を説明する、深度情報を含み得る空間構造情報に従って、又はそれを使用して、実行され得る。深度情報は、物体を識別する、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の事例では、空間構造情報は、物体の一つ以上の表面の位置を示す点群を含み得、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に周知の他の形態は、本明細書に記載される方法に従って使用され得る。
【0062】
実施形態では、計算システム1100は、カメラ1200のカメラ視野(例えば、3210)内の物体を表す画像情報を取得し得る。画像情報を取得するための以下に記載するステップ及び技術は、画像情報捕捉操作であり得る。一部の事例では、物体は、カメラ1200の視野3210内の供給源容器3510中の複数の物体3520からの一つの物体3520であり得る。画像情報2600、2700は、物体3520がカメラ視野3210にある(又はあった)場合、カメラ(例えば、1200)によって生成され得、個々の物体3520のうちの一つ以上を記載し得る。物体の外観とは、カメラ1200の視点からの物体3520の外観を示す。カメラ視野に複数の物体3520がある場合、カメラは、必要に応じて、複数の物体又は単一の物体を表す画像情報(単一の物体に関するこのような画像情報は、物体画像情報と呼ばれ得る)を生成し得る。画像情報は、一群の物体がカメラ視野にある(又はあった)場合、カメラ(例えば、1200)によって生成され得、例えば、2D画像情報及び/又は3D画像情報を含み得る。
【0063】
一例として、
図2Eは、第一の組の画像情報、より詳細には、2D画像情報2600を示し、これは、上述のように、カメラ1200によって生成され、
図3A~3Cに示すものなどの物体3520を表す。より詳細には、2D画像情報2600は、グレースケール、又はカラー画像であり得、カメラ1200の視点からの物体3520の外観を示し得る。ある実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のチャネル)に対応し得る。カメラ1200が物体3520の上方に配置される場合、2D画像情報2600は、物体3520のそれぞれの上部表面の外観を表し得る。
図2Eの実施例では、2D画像情報2600は、物体3520のそれぞれの表面を表す、画像部分又は物体画像情報とも称される、それぞれの部分2000A/2000B/2000C/2000D/2550を含み得る。
図2Eでは、2D画像情報2600の各画像部分2000A/2000B/2000C/2000D/2550は、画像領域、又は、より詳細には、画素領域(画像が画素によって形成されれば)であり得る。2D画像情報2600の画素領域内の各画素は、一組の座標[U、V]によって示される位置を有するものとして特徴付けられ得、
図2E及び
図2Fに示すように、カメラ座標系又は他の何らかの座標系に対する値を有し得る。画素の各々はまた、0~255又は0~1023の値などの、強度値を有し得る。さらなる実施形態では、画素の各々は、様々なフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)の画素に関連付けられる任意の追加情報を含み得る。
【0064】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像の全て又は一部分であり得る。実施例では、計算システム1100は、対応物体3520と関連付けられる画像情報のみを取得するために、画像部分2000Aを2D画像情報2600から抽出するように構成され得る。画像部分(画像部分2000Aなど)が単一の物体に向けられる場合、それは、物体画像情報と称され得る。物体画像情報は、それが向けられる物体についての情報のみを含む必要はない。例えば、それが向けられる物体は、一つ以上の他の物体の近く、その下、その上、又はそれ以外では、その近傍に位置し得る。このような場合、物体画像情報は、それが向けられる物体、ならびに一つ以上の隣接する物体についての情報を含み得る。計算システム1100は、
図2Fに示す2D画像情報2600及び/又は3D画像情報2700に基づいて、画像セグメンテーション又は他の分析又は処理操作を実行することによって、画像部分2000Aを抽出し得る。一部の実装形態では、セグメンテーション又は他の処理操作は、物体の物理的エッジ(例えば、物体のエッジ)が2D画像情報2600の中に現れる画像の位置を検出すること、カメラ視野(例えば、3210)内の個々の物体を表すことに限定される物体画像情報を識別するために、このような画像の位置を使用すること、及び他の物体を実質的に削除することを含み得る。「実質的に削除する」とは、画像セグメンテーション又はその他の処理技術が、非標的物体を物体画像情報から削除するように設計及び構成されるが、エラーが生じてもよく、ノイズが存在してもよく、他の様々な要因により、他の物体の一部分が包含され得ることが理解されることを意味する。
【0065】
図2Fは、画像情報が3D画像情報2700である、実施例を示す。より詳細には、3D画像情報2700は、物体3520の一つ以上の表面(例えば、上部表面、又は他の外側表面)上の様々な位置のそれぞれの深度値を示す、例えば、深度マップ又は点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報2700の中に現れる画像位置を検出すること、及びカメラ視野(例えば、3520)内の個々の物体を表すことに限定される画像部分(例えば、2730)を識別するために、このような画像位置を使用することを含み得る。
【0066】
それぞれの深度値は、3D画像情報2700を生成するカメラ1200に対するものであり得、又は別の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3210)中にある物体の構造体上の様々な位置に対するそれぞれの座標を含む、点群(3D点群)を含み得る。
図2Fの実施例では、点群は、物体3520のそれぞれの表面上の位置を示す、それぞれの組の座標を含み得る。座標は、[X, Y, Z]座標などの3D座標であり得、カメラ座標系、又は他の何らかの座標系に対する値を有し得る。例えば、3D画像情報2700は、画像部分とも称される第一の画像部分2710を含み得、これは、物体3520の表面上の物理的位置とも称される、一組の位置2710
1~2710
nに対するそれぞれの深度値を示す。さらに、3D画像情報2700は、第二の部分2720と、第三の部分2730と、第四の部分2740と、第五の部分2750と、をさらに含み得る。その後、これらの部分は、それぞれ、2720
1~2720
n、2730
1~2730
n、2740
1~2740
n、及び2750
1~2750
nによって表され得る、一組の位置に対するそれぞれの深度値をさらに示し得る。これらの図は、実施例に過ぎず、対応する画像部分を有する任意の数の物体が使用され得る。上述と同様に、取得された3D画像情報2700は、一部の事例では、カメラによって生成された第一の組の3D画像情報2700の一部分であり得る。
図2Eの実施例では、取得された3D画像情報2700が、
図3Aの個々の物体3520を表す場合、3D画像情報2700は、画像部分2710のみを言及するように狭められ得る。2D画像情報2600の考察と同様に、識別された画像部分2710は、個々の物体に関連し得、物体画像情報と称され得る。したがって、本明細書で使用する物体画像情報は、2D及び/又は3D画像情報を含み得る。
【0067】
ある実施形態では、画像正規化操作は、画像情報を取得する一部として、計算システム1100によって実行され得る。画像正規化操作は、カメラ1200によって生成された画像又は画像部分を変換することを含み得、その結果、変換された画像又は変換された画像部分を生成する。例えば、取得された、2D画像情報2600、3D画像情報2700、又はこれら二つの組み合わせを含み得る画像情報が、視点、物体の姿勢、及び視覚的記述情報と関連付けられる照明条件において画像情報を変更させるよう試みるために、画像正規化操作を施され得る場合である。このような正規化操作は、画像情報及びモデル(例えば、テンプレート)情報との間でより正確な比較を容易にするために実行され得る。該視点は、カメラ1200に対する物体の姿勢、及び/又はカメラ1200が物体を表す画像を生成する場合、カメラ1200が物体を見ている角度を指し得る。
【0068】
例えば、画像情報は、標的物体がカメラ視野3210内にある、物体認識操作中に生成され得る。カメラ1200は、標的物体がカメラに対して特定の姿勢を有する場合、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上部表面をカメラ1200の光学軸に対して垂直にする姿勢を有し得る。このような実施例では、カメラ1200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の事例では、カメラ1200が物体認識操作中に画像情報を生成している場合、画像情報は、照明強度などの特定の照明条件により生成され得る。このような事例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
【0069】
ある実施形態では、画像正規化操作は、カメラによって生成された状況の画像又は画像部分を調整することを含み得、その結果、画像又は画像部分を、物体認識テンプレートの情報と関連付けられた視点及び/又は照明条件により良く合致させる。該調整は、物体姿勢又は物体認識テンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも一方に合致する変換された画像を生成するために、画像又は画像部分を変換することを含み得る。
【0070】
視点の調整は、画像が、物体認識テンプレート内に含まれ得る視覚的記述情報と同一の視点を表すように、状況の画像の処理、ワーピング、及び/又はシフトを含み得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み得、状況のワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、配向、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、状況の画像内の物体を、物体認識テンプレートの視覚的記述情報に合致する、又はそれにより良好に対応する配向及び/又はサイズを有するように変更し得る。物体認識テンプレートが、ある物体の正面図(例えば、上面図)を示す場合、状況の画像は、状況内の物体の正面図も表すようにワーピングされ得る。
【0071】
本明細書で実行される物体認識方法のさらなる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に記載され、その各々は、参照により本明細書に組み込まれる。
【0072】
様々な実施形態では、用語「コンピュータ可読命令」及び「コンピュータ可読プログラム命令」は、様々なタスク及び操作を遂行するように構成されたソフトウェア命令又はコンピュータコードを記述するために使用される。様々な実施形態では、用語「モジュール」は、処理回路1110に一つ以上の機能タスクを実行させるように構成されたソフトウェア命令又はコードの集まりを広義に指す。モジュール及びコンピュータ可読命令は、処理回路又は他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行している場合、様々な操作又はタスクを実行するものとして記載され得る。
【0073】
図3A~
図3Cは、選択可能な領域(又はグリップ領域)検出操作及び/又は動作計画操作を実行され得る例示的な環境を示す。より詳細には、
図3Aは、計算システム1100、ロボット3300、及びカメラ1200を含む、システム3000(
図1A~
図1Dのシステム1000/1000A/1000B/1000Cの実施形態であり得る)を示す。カメラ1200は、カメラ1200の実施形態であり得、カメラ1200のカメラ視野3210内の状況を表す、又はより詳細には、例えば、物体3520
1、3520
2、3520
3、3520
4、3520
5..3520
nを含み得る、物体3520
1~3520
nなどのカメラ視野3210内の物体又はそれらの構造体を表す、画像情報を生成するように構成され得る。
図3A~
図3Cの実施形態では、ロボット3300は、例えば、物体3520
1~3520
nのうちの一つをピックアップ、又は別の方法で把持する、物体を物体の現在位置から持ち上げる、及び物体を目的地位置に動かすなどによって、物体3520
1~3520
nのうちの一つ以上の各々を操作する、又はそうでなければ、それらと相互作用するように構成され得る。
【0074】
一部の事例では、物体3520
1~3520
nの一部又はすべては、可撓性の物体であり得る。例えば、物体3520
1~3520
nの各々は、一着の衣服(例えば、シャツ又はズボン一着)又は他の布地もしくは織物を有するパッケージであり得、一着の衣服又は他の布地は、プラスチックのシートなどの包装材料のシートに包まれ得る。一部の状況では、プラスチック又は他の包装材料のシートは、空気又は他の流体に対して、一般的に不浸透性であり得る。
図3Aの実施例では、物体3520
1~3520
nは、3520
1~3520
nを、衣料品メーカー又は小売業者に関連付けられた倉庫などの施設内に保持するために使用されるビン又は箱などの容器3510内に配置され得る。一部の事例では、物体3520
1~3520
nの一部又はすべては、箱、袋、パウチ、及びその他の品目などの品目を含み得る。
【0075】
一部の状況では、本明細書の実施形態の可撓性の物体(例えば、35201)は、ロボット3300によって移動又は他の方法で操作されている場合又は容器3510内で横になる場合、可撓性の物体を変形可能にさせる、十分に高レベルの可撓性を有し得る。十分に高レベルの可撓性は、ロボット3300によって移動又は別の方法で操作されている場合、物体がその形状を維持するのを妨げるように、十分に低レベルの剛性又は剛直性と一致し得る。一部の事例では、可撓性の物体は、可撓性の物体がロボット3300によって持ち上げられている場合、可撓性の物体の重量が、それ自体の形状の変形を生じることを可能にするほど十分に高レベルの可撓性を有し得る。該変形は、例えば、ロボット3300によって持ち上げられている場合、それ自体の重量により、可撓性の物体の曲げ、又はより詳細には、弛みを含み得る。可撓性の物体の可撓性は、例えば、可撓性の物体の寸法及び/又は可撓性の物体の材料から生じ得る。一つの実施例では、可撓性の物体は、可撓性(柔軟性とも呼ばれる)を可撓性の物体に導入し得る、薄い輪郭を有し得る。より詳細には、可撓性の物体は、横方向寸法(例えば、長さ寸法又は幅寸法)のサイズに対して、かなり小さいサイズの厚さ寸法を有し得る。一つの実施例では、可撓性の物体は、可撓性を可撓性の物体に導入するのに十分に軟質である材料から作製され得る。一部の状況では、可撓性の物体の材料は、物体がロボット3300によって持ち上げられている場合、材料自体の重量により弛むほど十分に軟質な場合がある。例えば、可撓性の物体が、一着の衣服を有するパッケージである場合、該物体は、ロボット3300によって持ち上げられている場合、その材料が自体の重量により弛むのを防ぐのに十分な剛性を欠く、綿織物又はウール織物などの材料から形成され得る。
【0076】
ある実施形態では、ロボット3300(ロボット1300の実施形態であり得る)は、ロボット基部3310に取り付けられた一端部を有し、エンドエフェクタ装置3330に取り付けられる、又はそれによって形成される別の端部を有する、ロボットアーム3320を含み得る。ロボット基部3310が、ロボットアーム3320の一方の端部を装着するために使用され得る一方、ロボットアーム3320の他方の端部、より詳細には、エンドエフェクタ装置3330は、ロボット3300の環境で一つ以上の物体(例えば、35201、35202など)と相互作用するために使用され得る。相互作用は、例えば、一つ以上の物体を把持し持ち上げること、及び/又は一つ以上の物体を現在位置から目的地の位置まで移動することを含み得る。
【0077】
ある実施形態では、エンドエフェクタ装置3330は、物体35201~3520nのうちの一つなどの物体をピックアップ又はその他の方法で持ち上げるために使用される一つ以上の吸引カップ33321~3332n(本明細書では、吸引グリッパー及び吸引把持装置とも称される)を含み得る。一部の実装形態では、吸引カップ33321~3332n(エンドエフェクタ吸引カップとも称される)の各々は、物体(例えば、35201)の表面に接触して押圧される場合、吸引カップと物体の表面(物体表面とも称される)との間の空間における流体圧力(例えば、空気圧)を減少させるように構成される、機械装置であり得る。ある実施例では、物体表面は、流体に対して一般的に不透過性である材料によって形成され得、又はより一般的には、一着の衣服を包むために使用されるプラスチック包装材料のシートなど、非多孔性である。部分的又は完全な真空などの流体圧力が低下すれば、空間の外側の流体圧力と空間内の流体圧力との間に圧力差がもたらされ得る。より詳細には、空間内の流体圧力は、空間の外側の流体圧力よりも低くなり得、これにより、より高い流体圧力に、吸引カップを物体表面に貼り付ける正味の力を作用させる負の流体圧力が生じ得る。正味の力は、吸引カップが、物体表面に接着可能になり、物体表面を把持する接着力として作用し得る。ある実施形態では、吸引カップ(例えば、33321又は3332n)の各々は、様々な形状(例えば、円形状)及びサイズを有し得、プラスチック、シリコーン、ニトリル、ビトン、ビニル、ウレタン、ゴム、又は他の何らかの可撓性材料などの様々な材料を有し得る。吸引カップは、「Robotic system with a robot arm suction control mechanism and method of operation thereof」と題する、米国特許第10,576,630号においてより詳細に記載され、その全容は、参照により本明細書に組み込まれる。ある実施形態では、吸引カップと物体表面との間の接着力の強度は、吸引カップが、それ自体と物体表面との間の空間をどれだけ密に封止可能に依存し得る。例えば、密着シールが、圧力差を維持可能で、したがって、接着力を維持し得る一方、緩いシールは、圧力差が維持されるのを妨げ得、したがって、吸引カップが物体表面を把持する能力に干渉し得る。ある実施形態では、吸引カップの密着シールを形成する能力は、吸引カップが物体表面を把持しようとする物体表面の領域(表面領域とも称される)での平滑性のレベルに依存し得る。したがって、以下でより詳細に記載するように、計算システム1100は、吸引カップが物体表面に確実に付着し、それゆえに物体表面を把持できる、把持領域として使用されるのに十分に平滑である表面領域を識別する、又はそれを検索するように構成され得る。
【0078】
実施形態では、カメラ1200は、物体35201~3520n及び容器3510、又はカメラ視野3210内の他の任意の物体(複数可)を表す、画像情報を生成するように構成され得る。カメラ1200は、3D画像情報を生成するように構成される3Dカメラ、及び/又は2D画像情報を生成するように構成される2Dカメラであり得る。ある実施形態では、3D画像情報は、物体3520の集合物体表面を表し得、又はより詳細には、物体表面の物理的構造を記述し得る。例えば、3D画像情報は、深度マップを含み得、より一般的には、カメラ1200に対する、又は他の何らかの基準点に対する、カメラ視野3210内の様々な位置のそれぞれの深度値を記述し得る、深度情報を含み得る。それぞれの深度値に対応する位置は、物体35201~3520nのそれぞれの物体表面上の位置などの、カメラ視野3210内の様々な表面上の位置であり得る。一部の事例では、3D画像情報は、カメラ視野3210内の物体35201~3520nのそれぞれの物体表面上の様々な位置を示す、複数の3D座標を含み得る、点群を含み得る。
【0079】
ある実施形態では、物体(例えば、35201)の物体表面は、物体の外表面(例えば、上部表面)を指し得る。このような実施形態では、3D画像情報は、外表面を表す情報を含み得、又はより詳細には、外表面の物理的構造を記載し得る。例えば、カメラ1200が、光(例えば、レーザー又は構造化光)、又は外表面から反射する他の信号を感知することによって、3D画像情報を生成する場合、3D情報は、例えば、外表面の表面輪郭を表し得る。外表面が、包装材料として使用される可撓性のプラスチックの薄いシートなどの透明材料によって形成される場合、3D情報は、依然として物体の外表面を表し得る。より詳細には、このような状況におけるカメラ1200は、透明材料の下にある、又はそうでなければそれで覆われる、一着の衣服織物などの非透明材料から反射した光又は他の信号を感知し得る。反射光又は信号は、透明材料を通過し得、カメラ1200によって検出され得、3D情報を生成する。この状況では、透明材料(例えば、プラスチックシート)は、外表面と非透明材料の表面との間の距離が無視できるとみなされるように、十分に薄くあり得る。したがって、ある実施形態では、3D情報は、物体の外表面上の様々な位置の深度情報を記述しているとみなされ得る。さらに、透明材料が外表面を形成する場合、透明材料は、透明材料のすべて又は多くの部分が、基になる非透明材料の表面輪郭を採用するように、十分に可撓性であり得る。したがって、この状況での3D画像情報は、物体の外表面、より詳細には、外表面の物理的構造又は表面輪郭を記載するとみなされ得る。
【0080】
ある実施形態では、2D画像情報は、例えば、カメラ視野3210内の一つ以上の物体の外観を表す、カラー画像又はグレースケール画像を含み得る。例えば、物体表面が、視覚的マーキング(例えば、ロゴ)又はそれらに印刷された他の視覚的詳細を有する場合、2D画像情報は、視覚的詳細を記載し得、又は他の方法で表し得る。上述のように、物体表面は、一部の状況では、透明材料から形成され得る、物体の外表面であり得る。このような状況では、2D画像情報は、基になる非透明材料(例えば、シャツ)の表面から反射し、外表面を形成する透明材料を通過した光(例えば、可視光)又は他の信号を表し得る。このような状況における2D画像情報が、外表面を通過する光又は他の信号に基づくため、2D画像情報は、外表面を表すものと依然としてみなされ得る。さらに、外表面を形成する透明材料は、一部の事例では、物体の外観にほとんど又は無視できる影響を与えるほど十分に薄く、十分に透明であり得、その結果、物体の外観又は物体の外表面の外観は、基になる非透明材料(例えば、衣服材料)の外観を指すものとみなされ得る。
【0081】
ある実施形態において、システム3000は、複数のカメラを含み得る。例えば、
図3Bは、カメラ視野3210Aを有するカメラ1200Aを含み、カメラ視野3210Bを有するカメラ1200Bを含む、システム3000A(システム3000の実施形態であり得る)を示す。カメラ1200A(カメラ1200Aの実施形態であり得る)が、例えば、2D画像又は他の2D画像情報を生成するように構成される、2Dカメラであり得る一方、カメラ1200B(カメラ1200Bの実施形態であり得る)は、例えば、3D画像情報を生成するように構成される、3Dカメラであり得る。
【0082】
ある実施形態では、カメラ1200/1200A/1200Bは、容器3510が配置される床などの基準点に対して、あるいはロボット基部3310に対して静止し得る。例えば、
図3Aのカメラ1200は、倉庫の天井などの天井、又は床に対して、ロボット基部3310に対して、もしくは他の何らかの基準点に対して静止したままである装着フレームに装着され得る。ある実施形態では、カメラ1200は、ロボットアーム3320上に装着され得る。例えば、
図3Cは、カメラ1200が、ロボットアーム3320の遠位端を形成する、エンドエフェクタ装置3330上に取り付けられる、又はそれ以外では装着される、システム3000B(システム1000の実施形態であり得る)を示す。このような実施形態は、ロボットアーム3320の移動を介して、カメラ1200を異なる姿勢に移動する能力をロボット3300に提供し得る。
【0083】
計算システム1100は、供給源容器3510で一つ以上の物体3520の選択可能な領域検出結果を生成するように構成され得る。例えば、供給源容器3510は、ランダムに配向され、姿勢付けられ、かつ位置付けられた物体3520を備えた容器を含み得る。選択可能な領域に加えて、選択可能な領域検出結果は、検出マスク情報、安全容積、又はそれらの組み合わせなどの追加情報を含み得、それら各々は、以下に詳細に記載される。
【0084】
ロボット3300は、構造部材を操作するため、及び/又はロボットユニットを輸送するなどのために、タスクを実行するために使用される情報を取得するように構成された追加のセンサをさらに含み得る。該センサは、ロボット3300及び/又は周囲の環境の一つ以上の物理的特性(例えば、その状態、条件、及び/又は一つ以上の構造部材/ジョイントの位置)を検出又は測定するよう構成された装置を含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
【0085】
図4は、容器内の物体の一つ以上の選択された物体の選択可能な領域の識別のための方法及び操作の全体的な流れを示す流れ図を提供する。選択可能な領域の識別方法4000は、本明細書に記載のサブ方法及び操作の特徴の任意の組み合わせを含み得る。該方法4000は、本明細書に記載の好適なシステム及び装置のいずれかによって実施又は実行され得る。
【0086】
操作4002では、方法4000は、画像情報を取得することを含む。供給源容器内に含まれる一群又は複数の物体の画像情報は、計算システムによって取得され得る。画像情報は、例えば、カメラの制御を介して取得され得、及び/又は画像情報が保存されたデータ記憶装置から取得され得る。状況内の物体の画像情報は、例えば、本明細書に記載するように、3D画像情報2700を含み得る。
図5A及び
図5Bは、2D画像情報5600(
図5A)によって表される複数の物体を含む状況及び該状況を表す3D画像情報5700(
図5B)の代表的な実施例を提供する。
【0087】
図5Aは、2D画像情報、又はより詳細には、カメラ1200/1200Aによって生成され、
図3A~
図3Cの物体3520
1~3520
n、及び容器3510を表す、2D画像情報5600を示す。より詳細には、2D画像情報5600は、物体3520
1~3520
n及び物体3520
1~3520
nが配置される容器3510の外観を記載し得る。より詳細には、2D画像情報5600は、それぞれ、物体3520
1、3520
2、3520
3、...、3520
nの視覚的詳細を表す、画像部分5610
1、5620
2、5620
3、5620
4、5620
5、...、5620
n-3、5620
n-2、5620
n-1、5620
n(例えば、画素領域)を含み得る。ある実施形態では、2D画像情報は、物体(例えば、3520
1)の物体表面を表し得る。上述のように、物体表面は、物体の外表面(例えば、上部表面)であり得、透明材料、非透明材料(例えば、半透明又は不透明材料)、又はそれらの組み合わせによって形成され得る。さらに上述したように、外表面が、基となる非透明材料を覆う透明材料によって形成される場合、透明材料は、物体の外観に無視できる影響を及ぼすとみなされるほど十分に薄く、かつ透明であり得る。このような事例では、基になる非透明材料の外観は、2D画像情報が、物体の外表面の外観を表すとみなされるように、物体の外表面の外観でもあるとみなされ得る。
【0088】
図5Bは、3D画像情報5700の実施例を示す。より詳細には、3D画像情報5700は、例えば、行と列に編成された格子位置であり得る、位置5700
1、5700
2、...5700
nなどの、カメラ視野(例えば、3210/3210A)内の様々な位置のそれぞれの深度値を示す、深度マップ又は他の深度情報を含み得る。 一部の実装形態では、深度マップは、位置5700
1~5700
nのそれぞれの深度値を示す、画素を含み得る。ある実施形態では、位置5700
1~5700
nの少なくとも一部は、物体3520
1~3520
nの物体表面などの、一つ以上の物体表面上の位置である。例えば、3D画像情報5700は、画像部分5720
1、5720
2、5720
3、5720
4、5720
5、...5720
n-3、5720
n-2、5720
n-1、5720
nを含み得、画像部分の各々は、それぞれの物体(例えば、3520
1、3520
2、3520
3、...、又は3520
n)の物体表面上のそれぞれの組の位置の深度値を含み得る。一部の状況では、3D画像情報は、それぞれ、位置5700
1~5700
nを示す一組の座標を含み得る、点群を含み得る。該座標は、[X Y Z]デカルト座標などの3D座標であり得、カメラ座標系、又は他の何らかの座標系に対する値を有し得る。本実施例では、特定の位置(例えば、5700
1)に対する[X Y Z]座標は、その位置の深度値と等しい、又はそれに基づくZ成分を有し得る。深度値は、3D画像情報を生成したカメラ(例えば、1200/1200A)に対するものであり得、又は他の何らかの基準点に対するものであり得る。
【0089】
ある実施形態では、3D画像情報は、物体表面の表面輪郭を示し得る。例えば、
図5Aにおける3D画像情報5700は、物体表面3520
1の物体表面の表面輪郭を示す、少なくとも画像部分5720
1を有し得る。物体表面の表面輪郭は、物体表面の物理的構造を示し得る。一部の事例では、物体表面の物理的構造は、完全に又は実質的に平滑であり得る。一部の事例では、物体表面の物理的構造は、物体表面の一つ以上の非平滑な部分を形成し得る、しわ、隆起、畝、折り目、又は陥凹などの物理的特徴を含み得る。
【0090】
上述のように、物体表面は、物体の外表面(例えば、上部表面)であり得、透明材料、非透明材料(例えば、半透明又は不透明材料)、又はそれらの組み合わせによって形成され得る。さらに上述したように、外表面が、基となる非透明材料を覆う透明材料によって形成される場合、透明材料は、物体の物理的構造又は表面輪郭に無視できる影響を及ぼすとみなされるほど十分に薄く可撓性であり得る。このような事例では、基となる非透明材料の物理的構造又は表面輪郭を表す3D画像情報は、物体の外表面の物理的構造又は表面輪郭も表すものとみなされ得る。さらに、透明材料が十分に薄い場合、その厚さは、カメラ(例えば、1200)による深度測定に無視できる影響を及ぼすとみなされ得る。このような状況では、画像部分57201の位置などの3D画像情報に表される深度値を有する様々な位置は、対応する物体(例えば、35201)の外表面上の位置であるとみなされ得る。
【0091】
ある実施形態では、物体検出及び物体登録を含み得る、画像情報の取得は、任意の好適な手段によって行われ得る。実施形態では、複数の物体3520を識別又は検出することは、例えば、物体登録モジュール1130によって実施される、物体登録、テンプレート生成、特徴抽出、仮説生成、仮説精密化、及び仮説検証を含むプロセスを含み得る。これらのプロセスは、2022年8月9日出願の米国特許出願第17/884,081号に詳細に記載されており、その内容全体は、本明細書に組み込まれる。
【0092】
物体登録は、物理的状況において類似の物体を識別及び認識する際に使用するための物体認識テンプレートを生成するために、例えば、物体3520に関連する既知で、以前に記憶された情報などの物体登録データを取得・使用することを含むプロセスである。テンプレート生成は、物体ピッキングに関連するさらなる操作のために物体3520を識別する際に使用する、計算システム用の複数の組の物体認識テンプレートを生成することを含むプロセスである。特徴抽出(特徴生成とも称される)は、物体認識テンプレート生成で使用するための物体画像情報からの特徴の抽出又は生成を含むプロセスである。仮説生成は、例えば、物体画像情報と一つ以上の物体認識テンプレートとの比較に基づいて、一つ以上の物体検出仮説を生成することを含むプロセスである。仮説精密化は、物体認識テンプレートが物体画像情報と正確に合致しない状況でも、物体認識テンプレートと物体画像情報との合致を精密化するプロセスである。仮説検証は、複数の仮説からの単一の仮説が、物体3520に対する最良の適合又は最良の選択として選択されるプロセスである。
【0093】
操作4004では、方法4000は、状況3520中の複数の物体3520の表面コストマップを生成することを含む。表面コストマップは、収集された複数の物体3520の表面又は物体3520の一部分の平滑性を示す画像マップであり得る。表面コストマップは、収集された複数の物体3520の表面又は物体3520の一部分の表面の凹凸又は不連続性を識別する画像マップであり得る。表面コストマップは、収集された複数の物体3520又はその一部の表面又は上層を表す各点又は画素の表面コストマップ値を含み得る。したがって、表面コストマップは、複数の物体3520又はその一部を表す点群の各点に表面コストマップ値を割り当て得る。上述したように、点群の各点/画素は、三つの座標(x、y、z)によって表され得る。表面コストマップ値は、本明細書では核又はセルと称される点の集合体と隣接する核との差を表す。したがって、任意の点又は核に割り当てられた表面コストマップ値は、その点又は核と隣接する点又は核との間の差を表し得る。
【0094】
画像情報5700に従って生成される表面コストマップは、核又はセルと隣接する核又はセルとの間の高さ及び角度の差を表し得る。表面コストマップは、高さ勾配マップ及び法線差マップを含み得、又は高さ勾配マップと法線差マップの組み合わせから計算され得る。表面コストマップは、状況内の複数の物体を表す3D画像情報5700の隣接する部分間の高さ及び角度の差を表すために、様々な手段から計算又は決定され得る。ある実施形態では、表面コストマップの計算は、
図6A~6Iを参照して、以下のように実行され得る。
【0095】
図6Aは、表面コストマップ生成方法6000の例示的なフローチャートを提供する。方法6000は、本明細書に記載の任意の好適なプロセッサ又は計算装置によって実行され得る。
図6Aのステップは、例としてのみ提供される。
図6Aのステップは、任意の好適な順序又は組み合わせで実行され得、及び/又は必要に応じて追加のステップと組み込まれ得る。さらに、表面コストマップを生成する代替的な方法は、本開示の範囲から逸脱することなく採用され得る。
【0096】
表面コストマップは、3D画像情報5700から生成され得、いくつかのコストマップパラメータに基づいて、高さ勾配マップ及び法線差マップの組み合わせを含む、又はそれらとして提供される。以下でより詳細に説明するこのようなコストマップパラメータには、核、ストライド、距離閾値、法線閾値、及び法線重み係数が含まれ得る。コストマップパラメータは、以下でさらに記載するように、手動で決定され得、及び/又は自動的に決定され得る。
【0097】
表面コストマップ生成方法6000の操作6002では、3D画像情報5700は、セル6101の格子6100と重ね合わせられ得る。
図6B及び
図6Cは、表面コストマップ生成方法の格子化操作を示す。セル6101は、長方形又は正方形であり得、核に従って、サイズ設定され得る。核は、2x2、4x4、6x6、8x8、10x10、15x15、20x20のように3D画像情報5700によって表される点群の点又は画素で、寸法6105によって示すように、各セル6101のサイズ、又は他の任意の適切なサイズを表し得る。セル6101は、表面コストマップ計算を実行し得る格子を形成する。実施形態では、3D画像情報5700は、
図6Bに示すように、単一の重複しない組のセル6101により格子形成され得る。セル中心6102は各々、核サイズと等しい長さ(寸法6106)を有するストライドによって互いに分離され、それによって、重複しない格子が生成される。
【0098】
さらなる実施形態において、3D画像情報5700を重ね合わせる格子6100は、一組の重複セル6101を含み得る。各セル6101は、複数の追加のセル6101と重複し得、セル中心6102は、核サイズよりも小さいストライドにより分離される。したがって、例えば、
図6Cに示すように、セル6101は、核サイズの半分のストライドサイズにより分離されたセル中心6102を有し得る。
図6Cでは、格子6100は、各々ストライドサイズによって分離されるセル中心6102と、ストライドサイズの二倍に等しい幅及び長さの寸法を有するセル6101と、を含む。
図6Cでは、単一のセル6101のサイズは、斜線部分で示される。各セル6101は、四つの他のセル6101と重複する。
【0099】
表面コストマップ計算の以下の考察において、表面コストマップ値をセル中心6102に割り当て、計算を実行する場合、各セル6101をその重複しない隣接するセル6101と比較する。したがって、明示目的で、
図6Bの重複しない配置を参照する。
【0100】
操作6004では、表面コストマップ生成方法6000は、平面を各セル6101に嵌めこむステップを含み得る。
図6Dは、格子6100に対応する一組の平面6220を示す。各セル6101について、平面6201は、セル6101によって包含される3D画像情報5700内の点のx、y、及びz座標に従って、決定され得る。したがって、20x20の核サイズについては、3D画像情報5700の400個の点を使用し得、平面6201を決定する。平面6201は、例えば、最小二乗法を含む、任意の好適な方法に従って、決定され得る。別の実施例では、平面6201は、各セル6101内の3D画像情報5700内の各点における法線ベクトルの平均値に従って、決定され得る。各平面6201は、セントロイド6202及び法線6203を含む。セントロイド6202は、平面6201の幾何学的中心に位置し、法線6203は、セントロイド6202から平面6201に直交して延伸する。各平面6201の高さは、そのセントロイド6202の高さとして定義され得る。
【0101】
操作6006では、表面コストマップ生成方法6000は、その隣接する平面6201に対する各平面6201の高さ勾配を計算又は決定することを含み得る。
図6Fは、物体3520を含む供給源容器3510の表示上に重ね合わせられた高さ勾配コストマップ6200を示す。各平面6201の高さ勾配は、平面6201とその八つの隣接する平面6201との間の個々の高さ勾配の数学的組み合わせであり得る。各平面6201の高さ勾配は、いくつかの異なる方法で決定され得る。
図6Fに示すように、白丸は、低い高さ勾配の部分を示し、黒丸は、より高い高さ勾配の部分を示し、×印は、例えば、供給源容器3510の信頼性が低い検出又は検出のために、物体として識別され得ない部分を示す。例示目的で、値が、実際に潜在的な値の範囲に及び得る場合、値は、高い及び低いものとして示される。物体3520の境界における高さ勾配が、物体3520の中央部分にわたる高さ勾配よりも大きいことは、理解され得る。
【0102】
ある実施形態では、平面6201と隣接する平面6201との間のコストマップ高さ勾配は、
図6Eを参照すると、以下のように決定され得る。最初に、二つの平面(6201A及び6201B)間の高さ差を決定し得る。ある実施形態では、隣接する平面の高さ差は、一つの平面6201Bの他の平面6201Aにわたる延長部分(例えば、延長平面6201BA)に基づいてもよい。高さ差は、例えば、第一の延長平面6201BAと第二の平面6201Aのセントロイド6202Aとの間の高さ差として決定され得、いずれかの平面の法線ベクトルの長さに従って、又は3D点群のz方向のベクトルに従ってのいずれかで、計算され得る。高さ差は、例えば、第一の拡張平面6201BAと第二の平面6201A上の対応する点との間の平均高さ差として決定され得、対応する点は、3D画像情報5700の点群内の格子点に対応する。実施形態では、二つの平面6201Aと6201Bとの間の高さ差は、平面6201Bを平面6201Aの上に(又はその下に)延在させることによって決定される高さ差と、平面6201Aを平面6201Bの上に(又はその下に)延在させることによって決定される高さ差との間の最大又は平均高さ差として決定され得る。この高さ差の決定方法により、二つの平面のどちらかが「第一の」平面として選択され、どちらが「第二の」平面として選択されるかにかかわらず、同一の高さ差がもたらされ得る。
【0103】
二つの平面6201間の高さ差は、二つの平面6201に対応するセル6101間の直接の位置に割り当てられ得る。例えば、セル6101D及び6101Eに対応する平面6201間の高さ差(図 6Bを参照)は、点DEの位置に割り当てられ得る。したがって、セル6101D及び6101Eに対応する平面6201間の高さ差は、セル6101Eに対応する平面6201のセントロイドに対応していないため、セル6101E及び6101Dに対応する平面6201間の高さ差に対応するセル6101Eに割り当てる高さ差を決定するための補正が適用され得る。ある実施形態では、該補正は、点EFに割り当てられた高さ差により、点DEに割り当てられた高さ差の平均をとることによって適用され得る(例えば、セル6101E及び6101Fに対応する平面6201間の高さ差に基づく)。各セル6101の合計高さ勾配は、隣接するセルとの八つの高さ差の平均値として決定され得る。各セル6101の合計高さ勾配は、高さ勾配コストマップ6200のセルの中心の点に関連付けられた値として割り当てられ得る。
【0104】
さらなる実施形態において、高さ差は、異なる方法に従って、決定され得る。高さ差は、例えば、平面6201A/6201Bのセントロイド6202A/6202B間の高さ差、又は平面6201に対応するセル6101の境界に沿った平面間の高さ差(又は平均高さ差)に基づき得る。他の高さ差の計算及び定義は、本開示の範囲から逸脱することなく、使用され得る。
【0105】
上記の考察は、
図6Bの格子6100に関して、格子6100中の各セル6101の中心点での高さ勾配の計算を表す。ストライドサイズが、核サイズよりも小さくなり得るため、高さ勾配が計算される点の数は、格子6100に嵌めこまれ得る核の数よりも大きく(さらに有意に大きく)なり得る。例えば、ストライドサイズが1の場合、3D点群内の任意の特定の点は、関連する高さ勾配を有し、各々が、核サイズセル6101の格子に基づいて決定され、特定の点は、核サイズ形成されたセル6101のうちの一つの中心である。ストライドサイズが2の場合、他のすべての点は、関連する高さ勾配を有するであろう。
【0106】
したがって、高さ勾配コストマップ6200は、3D点群内の隣接する点に関して、3D点群内の点(一部の実施形態では、すべての点)の高さ勾配を表す一連の値を含み得る。上述したように、高さ勾配コストマップ6200内の点は、ストライドによって分離される3D点群画像情報5700内の当該点であり得る。値が割り当てられる高さ勾配コストマップ6200の各点について、その値は、核のサイズである2D投影を有する平面6201及び隣接する平面6201とのその平面の関係に基づいて、計算される。
【0107】
実施形態では、高さ勾配コストマップ6200の計算は、二つの平面6201間の高さ差の値を再利用することによって、容易又は最適化され得る。例えば、一部の実施形態では、上述のように、第一の平面6201から第二の平面6201までの高さ差の計算は、第二の平面6201と第一の平面6201との間の高さ差の計算と同一の値をもたらし得る。したがって、二つの平面6201間の高さ差を一回計算するだけでよく、高さ勾配計算の総数を約50%減少させることができる。
【0108】
実施形態では、距離閾値パラメータは、高さ差を決定するのに使用され得る。距離閾値パラメータは、それを超えて任意の高さ差に最大値が割り当てられる閾値であり得る。二つの平面間の高さ差が距離閾値を超える場合、その高さ差は、所定の値(例えば、一部の実施形態では、距離閾値)として設定され得る。距離閾値を使用することで、合計高さ勾配を計算する際に、二つの平面間で大きな高さ差の重みが低減され得る。実施形態では、距離閾値パラメータをまた使用し得、セル6101に割り当てられた高さ勾配の閾値を設定する。隣接するセルとの高さ差の平均をとった後、距離閾値は、決定された高さ勾配が距離閾値を超える場合、決定された高さ勾配を所定の値に変更するように適用され得る。
【0109】
表面コストマップ生成方法6000の操作6008では、法線差が計算され得る。
図6Gは、物体3520を含む供給源容器3510の表示上に重ね合わせられた法線差コストマップ6300を示す。ここで
図6Dを参照すると、各平面6201の法線6203とその隣接する平面6201との間の差が決定され得る。法線差は、一つの平面6201の法線6203の、隣接する平面6201の法線6203とのドット積として決定され得る。したがって、各平面6201は、八つの異なる計算された法線差を有し得る。これらの法線差の平均は、平面6201に関連付けられたセル6101(例えば、セル6101の中心にある点)に取り込まれ、割り当てられ得る。このようにして、法線差コストマップ6300が生成され得、表面コストマップ内の各点は、点に中心を置いた平面6201と隣接する平面6201との間の角度差を示す法線差が割り当てられる。
図6Gに示すように、白丸は、低い法線差の部分を示し、黒丸は、より大きな法線差の部分を示し、×印は、例えば、供給源容器3510の信頼性が低い検出又は検出のために、物体として識別され得ない部分を示す。例示目的で、値が、実際に潜在的な値の範囲に及び得る場合、値は、高い及び低いものとして示される。物体3520の境界での法線差が、物体3520の中央部分にわたる法線差よりも大きいことは理解され得る。
【0110】
実施形態では、法線閾値パラメータは、法線差を決定する際に使用され得る。法線閾値パラメータは、それを超えて任意の高さ差に最大値が割り当てられる閾値であり得る。二つの平面間の法線差が法線閾値を超える場合、その法線差は、所定の値(例えば、一部の実施形態では、法線閾値)として設定され得る。法線閾値を使用すると、平均法線差を計算する場合、二つの平面間の大きな法線差の重みが低減され得る。
【0111】
表面コストマップ生成方法6000の操作6010では、表面コストマップが生成され得る。
図6Hは、物体3520を含む供給源容器3510の表示上に重ね合わせられた表面コストマップ6400を示す。表面コストマップ6400は、高さ勾配コストマップ6200と法線差コストマップ6300の数学的組み合わせとして生成され得る。実施形態では、コンピュータシステムは、平均フィルタ又はソベルフィルタなどのフィルタリング操作に従って、高さ差の値と法線差の値を組み合わせ得る。実施形態では、高さ勾配コストマップ6200及び法線差コストマップ6300内の値は、正規化され、組み合わせられ得る。実施形態では、重み付け係数を、高さ差の値又は法線差の値のいずれかに適用し得、表面コストマップがそれぞれの差の値にどの程度強く依存するかを制御する。重み付け係数は、法線重み係数であり得、例えば、正規化された法線差で乗じられ、どの程度厳密に最終表面コストマップ6400を法線差によって決定すべきか、又はどの程度厳密に最終表面コストマップ6400を高さ差によって決定すべきかを決定する因子であり得る。法線重み係数の選択は、例えば、以下に記載するように、予想される物体の種類に従って、行われ得る。
図6Hに示すように、白丸は、低い表面コストマップ値の部分を示し、黒丸は、より大きな表面コストマップ値の部分を示し、×印は、例えば、供給源容器3510の信頼できない検出又は検出のために、物体として識別され得ない部分を示す。例示目的で、値が、実際に潜在的な値の範囲に及び得る場合、値は、高い及び低いものとして示される。物体3520の境界における表面コストマップ値が、物体3520の中央部分にわたる表面コストマップ値よりも大きいことは理解され得る。
【0112】
上述のように、表面コストマップの生成は、核サイズ、ストライドサイズ、距離閾値、法線閾値、及び法線重みを含む、一つ以上のパラメータに基づいて、行われ得る。
【0113】
核サイズ及びストライドサイズは、様々な結果を達成するために、様々な因子に従って、選択又は決定され得る。実施形態では、3D点群の小さな変化に対してより敏感な結果を提供するよう、核サイズをより小さく選択し得るが、核サイズがより小さければ、ノイズに対してより敏感であり得る。実施形態では、より大きな核サイズが選択されることで、ノイズによるか、又は撮像される実際の物体の変化によるかにかかわらず、3D点群のより小さな変化が平滑化される。実施形態では、小さなストライドサイズが、高分解能で詳細な表面コストマップを提供するために選択され得るが、このような小さなストライドサイズは、増大する計算能力及び/又は増大する処理時間を必要とし得る。実施形態では、ストライドサイズがより大きければ、3D点群のダウンサンプリングがもたらされ得、ある程度の詳細を犠牲にすることで、より迅速な結果及び/又は計算資源のより少ない使用が提供され得る。実施形態では、核サイズを0.5未満、0.4未満、及び/又は0.3未満に選択されたストライドサイズは、適切な詳細量を提供する一方、なおより迅速な結果を提供し得る。実施形態では、核サイズの半分又はおよそ半分のストライドサイズにより、解像度、速度、及び詳細レベルの低減の間にバランスが提供され得る。核及びストライドサイズの選択が、処理能力又は計算能力の可用性に影響され得ることは理解されよう。計算資源の増加により、処理時間が不利に増加することなく、より詳細な表面コストマップの生成が可能となり得る。
【0114】
実施形態では、物体の供給源内の物体の組成は、核サイズ及びストライドサイズに対する最適な値に影響を与え得る。例えば、小さくて鋭い不連続性を有する物体の集合体は、より微細な詳細を捕捉するために、より小さいストライドサイズから利益を得ることができる。別の実施例では、粗いが変形可能な表面を有する物体の集合体は、より大きな核サイズから利益を得ることができ、より大きな平滑化を提供する。別の実施例では、核サイズが、物体サイズと比較して大きい場合(例えば、物体サイズは、核サイズのわずか2、3又は4倍)、表面コストマップは、物体を覆う多くの核もまた、不連続点がある物体のエッジに重複するため、少数の平滑な領域を含み得る。別の実施例では、小さい半径の平滑な曲面を有する物体は、核サイズ及びストライドサイズが大きすぎる場合、誤って高いコストをもたらし得る。
【0115】
実施形態では、物体源内の物体の組成はまた、距離閾値、法線閾値、及び法線重み係数の最適値にも影響を与え得る。例えば、
図6Iを参照すると、箱様の物体6500及びパウチ様の物体6501(物体3520の実施例である)が、考慮され得る。物体6500/6501の中心部分が、物体6500/6501の一般的又はバルクの平滑性を示す平滑性特性を有する一方、物体6500/6501のエッジは、物体6500/6501間の遷移を示す。したがって、これを利用し得るパラメータを選択することは、有利である。
【0116】
例えば、距離閾値は、物体サイズに従って、選択され得る。距離閾値以上である任意の検出された高さ差は、高さ差の最大値にまで設定され得る。したがって、物体6500/6501のエッジでの高さ差は、物体が複数の物体の積み重ねの頂上にある、又はただ一つの物体の頂上にあるかに関わらず、表面コストマップ6400に対して同じ影響を及ぼし得る。物体6500/6501のエッジでのより大きな高さのドロップオフ(例えば、物体6500/6501が、他の物体6500/6501上に積み重ねられるため)は、物体移動を識別するためのいかなる追加情報も提供しない。
【0117】
別の実施例では、法線閾値は、物体形状に従って、選択され得る。例えば、箱様の物体6500については、法線の変動が小さいことが予想される。このような場合、法線閾値は、ノイズによる予想される変動よりも大きい値として選択され得る。したがって、ノイズ差による予想される法線差よりも大きいと識別される任意の法線差は、法線差コストマップの最大値にまで設定される。箱様の物体6500では、物体表面のすべてが平面である可能性が高いため、実物として識別され得る法線の任意の変動は、(ノイズ値を超えるため)物体6500間の不連続性を表し得る。このような物体6500については、法線重み係数はまた、法線差及び高さ差とほぼ等しい重みを提供するように、選択され得る。別の実施例では、物体6501などのパウチ様の物体は、物体の不連続性を表すことなく、角度の著しい変化を有する部分を有し得る。このような状況では、法線差が、物体の不連続性に関して提供する情報がより少ないため、法線重み係数は、より大きな重みを高さ差に提供するように選択され得る。さらに別の実施例では、変形可能な袋は、法線に大きな変化を有することが予想され得、法線重み係数は、法線差が、物体の不連続性に関して提供する情報が非常に少ないため、はるかに大きな重みを高さ差に提供するように選択され得る。
【0118】
上述したように、異なるパラメータは、供給源容器内の物体の種類及び物体のサイズに従って、表面コストマップの生成において、より良い又はより悪い結果を提供し得る。実施形態では、表面コストマップ生成パラメータは、例えば、供給源容器内の物体の予想される種類及びサイズに従って、手動で選択され得る。さらなる実施形態において、パラメータの選択は自動化され得、例えば、取得された2D画像情報2600及び/又は取得された3D画像情報5700に基づいて、実行され得る。上述のように、物体検出(例えば、物体登録を含む)は、取得された2D画像情報2600及び/又は取得された3D画像情報5700上で実行され得、供給源容器内の物体のサイズ、形状、及び/又は種類を識別する。物体検出(例えば、物体登録)によれば、核サイズ、ストライドサイズ、距離閾値、法線閾値、及び法線重み係数を含む、表面コストマップ生成パラメータは、自動的に選択され得る。
【0119】
複数の異なる種類の物体を有する供給源容器を含む実施形態では、距離閾値、法線閾値、及び法線重み係数は、異なる種類の登録物体に関連付けられた領域の表面コストマップ内で調整され得る。
【0120】
ここで
図4に戻ると、操作4006では、方法4000は、画像情報(例えば、2D画像情報2600及び/又は3D画像情報5700)のセグメンテーションを含む。セグメンテーションは、上述の方法に従って、又は任意の好適な方法によって生成された表面コストマップ6400に従って、実行され得る。画像情報をセグメント化することは、表面コストマップ6400の値を使用して、状況内の個々の物体を識別する、複数の画像セグメントを提供し得る。本明細書の実施形態に係る画像セグメンテーションプロセスは、図 7A~7Eに関して記載される。
【0121】
操作7002では、画像セグメンテーション方法7000は、表面コストマップの初期セグメンテーションを実行するために、コスト閾値を適用することを含み得る。コスト閾値を適用すると、
図7Bに示すように、閾値付きマスク7100中の物体部分7101間に閾値境界7102が生成される。閾値境界7102が、閾値を超える表面コストマップ値を有する領域を表す一方、物体部分7101は、閾値を超えない表面コストマップ値を有する領域を表す。したがって、閾値境界7102が、閾値マスク7100中の「偽」値によって表され得る一方、物体部分7101は、「真」値として表される。「偽」値と「真」値の割り当ては、慣例のみによるものであり、任意の好適な区別を適用し得る。物体部分7101が、物体表面の第一の推定値を表す一方、閾値境界7102は、物体の境界又は不連続性の第一の推定値を表す。物体境界7103は、実際の物体境界を表し、比較目的で提供される。
【0122】
画像セグメンテーション方法7000の操作7004では、閾値付きマスク7100は、マスク画定操作でさらに画定され得る。マスク画定操作は、
図7Cに関して説明するように、接続された構成要素の分析及びマスク侵食のうちの一つ以上を含み得る。閾値付きマスク7100は、画定されたマスク7200を生成するようにさらに画定され得る。
【0123】
画定されたマスク7200を生成することは、閾値付きマスク7100上で実行されるマスク侵食を含み得る。マスク侵食は、構造化要素に従って、マスクの境界を低減又は侵食する操作である。構造化要素は、例えば、構造化要素の中心に位置し得る、出力画素/点を有するNxN群の画素又は点を表し得る。構造化要素内の点と一致するマスクのすべての点が、マスク上に配置される場合、真であれば、侵食されたマスク内の構造化要素の出力点は、真である。したがって、侵食されたマスクの中の点が真であるためには、構造要素のサイズまで、元のマスクの中の全ての周囲点も真でなければならない。したがって、侵食は、マスクのエッジでの点の一つ以上の層を除去し、マスク内の任意の凹凸を平滑化する効果を有する。ある実施例では、マスク侵食は、最小選択可能な領域サイズ(例えば、安全な把持を達成するために、吸引グリッパーによって必要とされるサイズであり得る、例えば、ロボットアームによって掴まれ得る最小の領域サイズ)の半分である構造化要素を使用して、閾値付きマスク7100上で実行され得る。したがって、この侵食操作は、最小選択可能な領域サイズよりも小さいマスクの任意の部分を切断する役割を果たし得る。
【0124】
画像セグメンテーション方法7000の操作7006では、物体領域は、画定されたコストマスク7200内で識別され得る。
図7Cを依然参照すると、接続された構成要素の分析は、画定されたコストマスク7200上で実行され得、画定されたコストマスク7200内の物体領域7201を識別する。物体領域7201は、以前に記載した物体部分7101よりも、物体の位置及び境界をより精密に推定することを表し得る。
【0125】
画像セグメンテーション方法7000の操作7008では、物体領域7201からの画像セグメント7301を選択し、さらに画定し得る。ここで
図7C及び
図7Dを参照すると、画像セグメント7301は、その中に位置するシード7204を有する物体領域7201として選択され得る。シード7204は、最小のコスト(例えば、境界又は不連続性を表す可能性が最も低い最も平滑な点)を有する表面コストマップ上の点であり得る。画像セグメント7301を含むセグメントマップ7300(
図7D)は、シードを含まない全ての物体領域7201を削除することによって生成され得る。その後、画像セグメント7301は、最小選択可能な領域サイズの半分に対応する構造化要素で拡張され得る。拡張は、侵食とは反対の操作である。拡張中、構造化された要素の出力画素/点は、入力点となる。構造化された要素の入力点に対応するセグメントマップ7300上の点が、セグメントマップ7300上に重ね合わせられる場合、真であれば、構造化された要素に対応するセグメントマップ7300のすべての点は、真として設定される。拡張は、画像セグメント7301の境界を、構造化された要素のサイズに対応する量だけ拡張する効果を有する。
【0126】
画像セグメンテーション方法7000の操作7010では、画像セグメント7301は、検証され得る。画像セグメント7301の検証は、識別された画像セグメント7301が、複数の物体の中から実行可能な物体を表すかどうかを判定するために実行され得る。バウンディングボックス7305(例えば、正方形又は長方形のボックス)は、識別された画像セグメント7301の周りに取り付けられ得る。その後、バウンディングボックス7305を、最大物体候補サイズ及び最小物体候補サイズと比較し得る。最大物体候補サイズ及び最小物体候補サイズは、物体検出プロセス中に決定される最大及び最小の潜在的な物体サイズを表す。バウンディングボックスが、最大物体候補サイズよりも大きい、又は最小物体候補サイズより小さい場合、画像セグメント7301は、無効と判定され得、これにより、操作7002、7004、7006、及び7008の反復が必要とされる。バウンディングボックスが、最大物体候補サイズよりも大きい場合、該反復は、低減されたコスト閾値により実行され得る。バウンディングボックスが、最小物体候補サイズよりも小さい場合、該反復は、増加されたコスト閾値により実行され得る。
【0127】
実施形態では、バウンディングボックスはまた、所望の最小選択可能な領域サイズと比較され得る。最小選択可能な領域サイズは、例えば、ロボットアームの単一の吸引グリッパーのサイズに対応する、選択可能な最小の可能な領域サイズに対応し得る。実施形態では、ロボットアームは、例えば、2つ又は4つなど、複数の吸引グリッパーを使用し得る。所望の最小選択可能な領域サイズは、選択された又は所望の把持を達成するために必要な領域、例えば、2つ又は4つの吸引グリッパーが把持を達成するために必要な領域のサイズに対応するパラメータであり得る。バウンディングボックスが、所望の最小選択可能な領域サイズよりも小さい場合、操作7002、7004、7006、及び7008は、増加された閾値により反復され得る。
【0128】
画像セグメント7301が検証された後、該セグメントは、選択可能な領域としてさらなる分析のために保存され得る。その後、画像セグメント7301は、表面コストマップ6400から削除され得、操作7002~7010は、追加の画像セグメント7301を識別するために繰り返され得る。実施形態では、操作7002~7010を繰り返す前に、コスト閾値を増加させ得る。方法7000を繰り返し得、さらなるセグメントが検出されないか、又は識別されないまで、コスト閾値を増加させ得る。
図7Eは、表面コストマップ6400から識別された画像セグメント7301の集合体を示す。実施形態では、識別された画像セグメント7301は、選択可能な領域として指定され得る。実施形態では、識別された画像セグメント7301をさらに分析し得、その中の選択可能な領域を決定する。
【0129】
操作4008では、方法4000は、検出マスクの生成を含む。検出マスクは、画像セグメンテーション操作4006から決定される、画像セグメント7301に対応する物体の可能性のある選択可能な領域を精密化する、又はさらに画定するために生成され得る。
【0130】
例えば、
図8Aに示すように、操作7010のバウンディングボックスが、二次元構造であるため、該ボックスは、物体上の点の実際の高さに正確に対応しない場合がある。
図8Aでは、バウンディングボックス8021は、物体8022に嵌めこまれている。しかしながら、物体8022の表面上の実際の点8023は、物体8022の変形可能な性質のために、すべてバウンディングボックス8021内に収まらない。したがって、操作4008では、検出マスク情報を生成し得、物体ピッキングに多かれ少なかれ好適なバウンディングボックス内の物体の部分を識別する。
【0131】
図8Bは、検出マスク情報8300を示す。検出マスク情報8300は、バウンディングボックス8021(例えば、操作7010中に生成された画像セグメント7301のバウンディングボックス)内の物体についての情報を含み得る。検出マスク情報8300は、識別された領域8024及び8027、ならびに識別されていない領域8026を含む。識別された領域8024及び8027は、検出された領域
であって遮蔽されていない領域
を含む検出された領域8024と、遮蔽された領域8027
とを含む
。遮蔽された領域8027が、物体のピッキングに対して安全又は有用ではない場合がある一方、検出された領域8024は、ピッキングに対して安全であり得る。識別されていない領域8026は、遮蔽又はピッキングのいずれかについて未識別であり、一般的に、検出のために使用又は依存されなかった領域を含み得る。また、
図8Bは、最小選択可能な領域8025を示す。図示のように、「B」とラベル付けされた検出された領域8024が、最小選択可能な領域8025を収容するのに十分大きくないことは理解され得る。したがって、検出マスク情報8300は、上述の画像セグメンテーション技術と併せて使用され得、物体の選択可能な領域を識別する。
【0132】
操作4010では、方法4000は、動作計画操作で使用するための安全容積を決定することを含み得る。安全容積は、ピッキングのために選択された物体が占有し得る容積を表し得る。安全容積は、選択された物体が一旦選択されると、物体取り扱い環境内の他の何かと衝突する可能性を低減するように選択される。
【0133】
ここで
図9Aを参照すると、安全容積9100は、物体3520の選択可能な領域として指定された選択可能な領域9201の周りに設置される。安全容積は、ピッキングのための指定された選択可能な領域9201と予想される物体サイズとの間の差の二倍のサイズを有するとして決定され得る。したがって、この安全容積サイズは、例えば、選択可能な領域9201が、選択される物体3520の中心に位置していない場合、物体の潜在的な寸法に誤差のマージンを提供し得る、選択可能な領域9201の周りに容積を生成する。その後、安全容積9100のサイズを、以下のように変更し得る。
【0134】
最初に、安全容積9100は、3D点群と比較される。3D点群が、安全容積9100サイズをサポートしない場合(例えば、安全容積9100が大きすぎ、供給源容器3510の境界に対応する、3D点群の境界を越えて延伸する場合)、安全容積9100のサイズは、3D点群によってサポートされるサイズにまで減少され得る。その後、安全容積9100は、3D点群のエッジに整列され得る。
図9Bは、安全容積9100の境界が、供給源容器3511に関連付けられた3D点群の外部に延在し得るため、安全容積9100が安全容積9101に低減される状況を示す。
【0135】
安全容積9100/9101は、目的地の容器によって指定される最大許容サイズよりも大きい場合、さらに減少され得る。例えば、目的地の容器が、供給源容器よりも小さい場合、安全容積9100/9101が目的地容器に対して大きすぎる可能性がある。したがって、安全容積9100/9101は、それに応じて、減少又は調整され得る。安全容積9100/9101が、目的地の容器より大きく、目的地容器より小さいサイズにまで調整できない実施形態では、物体3520が目的地の容器に適合することが公知であれば、動作計画は、この不確実性を考慮に入れて生成され得る。
【0136】
安全容積9100/9101は、操作7010の検出バウンディングボックスが、安全容積9100/9101から突き出ている場合、さらに調整され得る。これは、例えば、上述のように安全容積の収縮又は再整列によって、又は安全容積9100/9101の基礎を形成する選択可能な領域9201に対して、バウンディングボックスが不便な方法で配置される場合に、生じ得る。実施形態では、この問題に対処するために、安全容積9100/9101は、バウンディングボックスを含むようにシフトされ得、又はバウンディングボックスは、安全容積9100/9101にシフト・整列され得る。
【0137】
操作4012では、方法4000は、選択可能な領域検出結果を出力することを含む。選択可能な領域検出結果は、例えば、識別された画像セグメント7301、それらの関連するバウンディングボックス7305、識別された選択可能な領域9201、及び安全容積9100/9101を含む、操作4002~4010で生成される情報のいずれか又はすべてを含み得る。選択可能な領域検出結果は、供給源容器3510内の検出された物体3520のいずれか又はすべてに関する選択可能な領域検出結果情報を含み得る。
【0138】
操作4014では、方法4000は、選択可能な領域検出結果に従って、動作計画を生成及び/又は出力することを含み得る。動作計画は、物体3520の決定された安全容積9100/9101に基づいて、潜在的な衝突を考慮しながら、軌道に追従し、その識別された選択可能な領域9201によって物体3520を掴み又は選択し、物体3520を目的地の容器に移すロボット命令を含み得る。
【0139】
関連分野の当業者にとって、本明細書に記載する方法及び用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上述の実施形態は、例示的な実施例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態が、明細書及び添付図面に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせられ得ることは理解されるべきである。実施例に応じて、本明細書に記載するプロセス又は方法のいずれの特定の行為又は事象は、異なる順序で行われ得、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為又は事象は、方法又はプロセスを実行するのに必要でない場合がある)。加えて、本明細書の実施形態の特定の特徴を、明示目的に、単一の構成要素、モジュール、又はユニットにより行われていると記載するものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって実行され得ることは理解されるべきである。従って、様々な変更及び修正は、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、当業者により影響され得る。
【0140】
さらなる実施形態は、以下の実施形態を含む。
【0141】
実施形態1は、計算システムであって、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムと、少なくとも一つの処理回路と、を備え、ロボットが、物体取り扱い環境内であって、該物体取り扱い環境内の目的地に移送するための物体の供給源を含む、物体取り扱い環境内にあるとき、少なくとも一つの処理回路は、物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を実行するように構成され、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている、計算システムである。
【0142】
実施形態2は、表面コストマップが、一つ以上の選択された物体の平滑性を表す、実施形態1に記載のシステムである。
【0143】
実施形態3は、画像情報が、三次元情報を含み、該方法が、画像情報の画定されたセル間の高さ勾配及び法線差に従って、表面コストマップを生成することをさらに含む、実施形態1又は2に記載のシステムである。
【0144】
実施形態4は、少なくとも一つの処理回路が、表面コストマップパラメータに従って、表面コストマップを生成するようにさらに構成される、実施形態1~3のいずれかに記載のシステムである。
【0145】
実施形態5は、少なくとも一つの処理回路が、物体登録情報を作成するために、画像情報に基づいて、一つ以上の物体を登録すること、及び物体登録情報に従って、表面コストマップパラメータを決定すること、を実行するようにさらに構成される、実施形態1~4のいずれかに記載のシステムである。
【0146】
実施形態6は、少なくとも一つの処理回路が、画像セグメントの一つ以上の選択可能な領域を示す検出マスク情報を生成するようにさらに構成され、検出マスク情報が、一つ以上の画像セグメント内に検出された領域及び遮蔽された領域を含む、実施形態1~5のいずれかに記載のシステムである。
【0147】
実施形態7は、表面コストマップをセグメント化することが、閾値付きマスクを生成するために、コスト閾値を表面コストマップに適用すること、侵食マスクを生成するために、閾値付きマスクを侵食すること、及び第一の画像セグメントを識別するために、接続された構成要素の分析を侵食されたマスクに適用することを含む、実施形態1~6のいずれかに記載のシステムである。
【0148】
実施形態8は、表面コストマップをセグメント化することが、第一の画像セグメントを表面コストマップから削除すること、第二の閾値付きマスクを生成するために、第二のコスト閾値を表面コストマップの残りの部分に適用すること、第二の侵食マスクを生成するために、第二の閾値付きマスクを侵食すること、及び第二の画像セグメントを識別するために、接続された構成要素の分析を第二の侵食されたマスクに適用すること、をさらに含む、実施形態1~7のいずれかに記載のシステムである。
【0149】
実施形態9は、選択可能な領域検出結果を生成することが、一つ以上の選択可能な領域の周りに安全容積を生成することをさらに含み、安全容積が、一つ以上の選択された物体の推定された残りの部分を示す、実施形態1~8のいずれかに記載のシステムである。
【0150】
実施形態10は、少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される物体移送の方法が提供される。該方法は、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を含み、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている、方法である。
【0151】
実施形態11は、表面コストマップが、一つ以上の選択された物体の平滑性を表す、実施形態10に記載の方法である。
【0152】
実施形態12は、画像情報が、三次元情報を含み、画像情報の画定されたセル間の高さ勾配及び法線差に従って、表面コストマップを生成することをさらに含む、実施形態10又は11に記載の方法である。
【0153】
実施形態13は、表面コストマップパラメータに従って、表面コストマップを生成することをさらに含む、実施形態10~12のいずれかに記載の方法である。
【0154】
実施形態14は、物体登録情報を作成するために、画像情報に基づいて、一つ以上の物体を登録すること、及び物体登録情報に従って、表面コストマップパラメータを決定することをさらに含む、実施形態10~13のいずれかに記載の方法である。
【0155】
実施形態15は、画像セグメントの一つ以上の選択可能な領域を示す検出マスク情報を生成することをさらに含み、検出マスク情報が、一つ以上の画像セグメント内に検出された領域及び遮蔽された領域を含む、実施形態10~14のいずれかに記載の方法である。
【0156】
実施形態16は、表面コストマップをセグメント化することが、閾値付きマスクを生成するために、コスト閾値を表面コストマップに適用すること、侵食マスクを生成するために、閾値付きマスクを侵食すること、及び第一の画像セグメントを識別するために、接続された構成要素の分析を侵食されたマスクに適用することを含む、実施形態10~15のいずれかに記載の方法である。
【0157】
実施形態17は、表面コストマップをセグメント化することが、第一の画像セグメントを表面コストマップから削除すること、第二の閾値付きマスクを生成するために、第二のコスト閾値を表面コストマップの残りの部分に適用すること、第二の侵食マスクを生成するために、第二の閾値付きマスクを侵食すること、及び第二の画像セグメントを識別するために、接続された構成要素の分析を第二の侵食されたマスクに適用すること、をさらに含む、実施形態10~16のいずれかに記載の方法である。
【0158】
実施形態18は、選択可能な領域検出結果を生成することが、一つ以上の選択可能な領域の周りに安全容積を生成することをさらに含み、安全容積が、一つ以上の選択された物体の推定された残りの部分を示す、実施形態10~17のいずれかに記載の方法である。
【0159】
実施形態19は、少なくとも一つの処理回路を有し、エンドエフェクタ装置を含む、又はそれに取り付けられたロボットアームを有するロボットと通信し、かつ、カメラと通信するように構成された制御システムによって実行される物体移送のための実行可能な命令を有する非一時的コンピュータ可読媒体が提供される。該命令は、物体の供給源内に含まれる一つ以上の物体の画像情報を取得すること、物体から一つ以上の選択された物体の選択可能な領域を識別すること、ロボットシステムが一つ以上の選択された物体を移送するための動作計画を生成すること、を含み、前記識別が、画像情報に従って表面コストマップを生成することと、一つ以上の選択された物体に対応する一つ以上の選択可能な領域を識別する一つ以上の画像セグメントを取得するために表面コストマップをセグメント化することと、及び少なくとも一つ以上の選択可能な領域を含む、選択可能な領域検出結果を生成することと、によってなされ、前記動作計画が、選択可能な領域検出結果に基づいている、非一時的コンピュータ可読媒体である。
【0160】
実施形態20は、画像情報が、三次元情報を含み、該方法が、画像情報の画定されたセル間の高さ勾配及び法線差に従って、表面コストマップを生成することをさらに含む、実施形態19に記載の非一時的コンピュータ可読媒体である。