(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023131146
(43)【公開日】2023-09-21
(54)【発明の名称】物体の取り扱いを伴うロボットシステムのための非一時的コンピュータ可読媒体、システム及び方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20230913BHJP
【FI】
B25J13/08 A
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023034778
(22)【出願日】2023-03-07
(31)【優先権主張番号】63/317,558
(32)【優先日】2022-03-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】18/177,578
(32)【優先日】2023-03-02
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】碓井 渓
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS04
3C707BS10
3C707DS05
3C707ES03
3C707KS03
3C707KS04
3C707KT01
3C707KT05
3C707KT06
(57)【要約】
【課題】規則的又は半規則的に配置される物体の検出、識別、及び物体の取り出しを等しく改善するコンピューティングシステムを提供すること。
【解決手段】コンピューティングシステムは、エンドエフェクタ装置を含む又はこれに取り付けられたロボットアームを有するロボットと通信する処理回路を含む。処理回路は、物体の供給源内の複数の物体の中から標的物体を識別し、ロボットアーム及びエンドエフェクタ装置が複数の物体に接近するための接近軌道を決定し、標的物体をエンドエフェクタ装置で把持するための把持動作を決定し、ロボットアーム及びエンドエフェクタ装置を制御して、決定された軌道をとおって標的物体を選び取る。処理回路は、目的地接近軌道を決定し、ロボットアーム及び標的物体をグリップするエンドエフェクタ装置を制御して、目的地に接近し、目的地内に標的物体を解放する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムと、
少なくとも1つの処理回路と、を備え、
前記少なくとも1つの処理回路は、前記ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む前記物体取り扱い環境内にあるとき、前記物体の供給源から前記目的地へ標的物体を移送するために、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別すること、
前記ロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成すること、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成すること、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成すること、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力すること、
前記エンドエフェクタ装置接近軌道内で前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力すること、及び
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力すること、
を実行するように構成された、コンピューティングシステム。
【請求項2】
前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記目的地において前記標的物体を解放するために、エンドエフェクタ装置解放コマンドを出力することと、を更に含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記ロボットアームの前記目的地軌道を決定することが、前記ロボットアームが前記供給源から前記目的地まで動くのに最適化された目的地軌道時間に基づく、請求項2に記載のコンピュータシステム。
【請求項4】
前記ロボットアームの前記目的地軌道を決定することが、前記エンドエフェクタ装置と前記標的物体との間の予測されたグリップ安定性に基づく、請求項2に記載のコンピュータシステム。
【請求項5】
前記エンドエフェクタ装置接近軌道を決定することが、前記把持動作で前記エンドエフェクタ装置が前記標的物体を把持するのに最適化されたエンドエフェクタ装置接近時間に基づく、請求項1に記載のコンピュータシステム。
【請求項6】
前記最適化されたエンドエフェクタ装置接近時間が、前記標的物体に対する利用可能な把持モデルに基づいて決定される、請求項5に記載のコンピュータシステム。
【請求項7】
前記把持動作を決定することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含む、請求項1に記載のコンピュータシステム。
【請求項8】
前記少なくとも1つの処理回路が、前記複数の把持モデルの各々の予測されたグリップ安定性に従って、前記複数の利用可能な把持モデルの各々に対するランクを決定するように更に構成されている、請求項7に記載のコンピュータシステム。
【請求項9】
前記エンドエフェクタ装置によって使用するための前記少なくとも1つの把持モデルを決定することが、前記予測されたグリップ安定性の最も高い判定値を有する前記ランクに基づく、請求項8に記載のコンピュータシステム。
【請求項10】
前記少なくとも1つの処理回路が、
各々が前記物体の供給源内の前記1つ以上の物体のうちの検出された物体を表す1つ以上の検出結果を生成することのために更に構成されており、
前記1つ以上の検出結果の各々は、前記検出された物体の物体配向、前記物体の供給源内の前記検出された物体の場所、他の物体に対する検出された物体の場所、及び信頼度決定のうちの少なくとも1つを定義する、対応する物体表現を含む、請求項1に記載のコンピュータシステム。
【請求項11】
前記複数の物体が、サイズ、形状、重量、及び材料組成物に関して実質的に同一である、請求項1に記載のコンピュータシステム。
【請求項12】
前記複数の物体が、サイズ、形状、重量、及び材料組成において互いに異なる、請求項1に記載のコンピュータシステム。
【請求項13】
前記1つ以上の検出結果から前記標的物体を識別することが、
前記検出された物体に対して利用可能な把持モデルが存在するかを決定することと、
前記検出された物体から、利用可能な把持モデルなしで、前記検出された物体を取り除くことと、を含む、請求項10に記載のコンピュータシステム。
【請求項14】
前記物体配向、前記物体の供給源内の前記検出された物体の場所、及び/又は物体間距離のうちの少なくとも1つに基づいて、前記検出された物体を取り除くことを更に含む、請求項13に記載のコンピュータシステム。
【請求項15】
前記少なくとも1つの処理回路が、前記標的物体を含む複数の標的物体を検出結果から識別するために更に構成されている、請求項1に記載のコンピュータシステム。
【請求項16】
前記標的物体が、第1の把持モデルと関連付けられた前記複数の標的物体の第1の標的物体であり、
前記複数の標的物体の第2の標的物体が、第2の把持モデルと関連付けられている、請求項15に記載のコンピュータシステム。
【請求項17】
前記複数の標的物体を識別することが、前記エンドエフェクタ装置による把持のための前記第1の標的物体、及び前記エンドエフェクタ装置による把持のための前記第2の標的物体を選択することを含む、請求項15に記載のコンピュータシステム。
【請求項18】
前記少なくとも1つの処理回路が、
前記ロボットアームを制御して前記第2の標的物体に接近するために、第2のエンドエフェクタ装置接近コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記第2の標的物体を把持するために、第2のエンドエフェクタ装置制御コマンドを出力し、前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記第1の標的物体及び前記第2の標的物体を前記目的地において解放するように、前記エンドエフェクタ装置を制御するために、エンドエフェクタ装置解放コマンドを出力することと、のために更に構成されている、請求項17に記載のコンピュータシステム。
【請求項19】
物体の供給源から標的物体を選び取る方法であって、
前記標的物体を、前記物体の供給源内の複数の物体の中で識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力することと、
前記エンドエフェクタ装置接近軌道内の前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、方法。
【請求項20】
ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能である、実行可能な命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、物体の供給源から標的物体を選び取るための方法を実装するためのものであり、
前記方法は、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記複数の物体に接近する前記アーム接近軌道に従って前記ロボットアームを制御するために、アーム接近コマンドを出力することと、
前記標的物体に接近する前記エンドエフェクタ装置接近軌道で前記ロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、「ROBOTIC SYSTEM WITH OBJECT HANDLING」と題する、2022年3月8日に出願された米国仮出願第63/317,558号の利益を主張し、その全体の内容が参照により本明細書に組み込まれる。
【0002】
本技術は、概して、ロボットシステム、より詳細には、物体を検出し、取り扱うためのシステム、プロセス、及び技法を対象とする。より詳細には、本技術は、容器中の物体を検出し、取り扱うために使用され得る。
【背景技術】
【0003】
性能がますます向上し、コストが低減するにつれ、現在、多くのロボット(例えば、物理的アクションを自動/自律的に実行するように構成された機械)が様々な異なる分野で広く使用されている。ロボットは、例えば、製造及び/又は組立、梱包及び/又は包装、輸送及び/又は出荷などにおける様々なタスク(例えば、空間を通した物体の操作又は移送)を実行するために使用され得る。タスクを実行する際に、ロボットは、人のアクションを再現することができ、それによって、別様で危険又は反復的なタスクを実施するのに必要な人の関与を置き換えるか、又は低減することができる。
【0004】
しかしながら、技術が進歩しているにもかかわらず、ロボットは多くの場合、より大きな及び/又はより複雑なタスクを実行するために要求される、人間の相互作用を複製するのに必要な精巧さを欠く。したがって、ロボット間の動作及び/又は相互作用を管理するための改善された技法及びシステムに対するニーズが依然として存在する。
【発明の概要】
【0005】
実施形態では、コンピューティングシステムが提供される。コンピューティングシステムは、エンドエフェクタ装置を含む又はエンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムを含む。少なくとも1つの処理回路は、ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む物体取り扱い環境内にあるとき、物体の供給源から目的地へ標的物体を移送するために、標的物体を、物体の供給源内の複数の物体の中から識別することと、ロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力することと、エンドエフェクタ装置接近軌道に従ってロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を実行するように構成することができる。
【0006】
別の実施形態では、物体の供給源から標的物体を選び取る方法が提供される。方法は、標的物体を、物体の供給源内の複数の物体の中から識別するステップと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を決定するステップと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成するステップと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成するステップと、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力するステップと、エンドエフェクタ装置接近軌道に従ってロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力するステップと、エンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力するステップと、を含む。
【0007】
別の実施形態では、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能で、物体の供給源から標的物体を選び取るための方法を実装するための実行可能な命令を有する非一時的コンピュータ可読媒体が提供される。方法は、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道に従ってロボットアームを制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道に従ってロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、エンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む。
【図面の簡単な説明】
【0008】
【
図1A】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムを図示する。
【
図1B】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの実施形態を図示する。
【
図1C】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの別の実施形態を図示する。
【
図1D】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの更に別の実施形態を図示する。
【
図2A】本明細書の実施形態と一致する、物体の検出、識別及び取り出しを実施するか、又は容易にするように構成された計算システムを示すブロック図である。
【
図2B】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成された計算システムの一実施形態を示すブロック図である。
【
図2C】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成されたコンピューティングシステムの別の実施形態を図示するブロック図である。
【
図2D】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成されたコンピューティングシステムの更に別の実施形態を図示するブロック図である。
【
図2E】システムによって処理され、本明細書の実施形態と一致する、画像情報の実施例である。
【
図2F】システムによって処理され、本明細書の実施形態と一致する、画像情報の実施例である。
【
図3A】本明細書の実施形態による、ロボットシステムを動作させるための例示的な環境を図示する。
【
図3B】本明細書の実施形態と一致する、ロボットシステムによる物体の検出、識別、及び取り出しのための例示的な環境を図示する。
【
図3C】アーム、基部、及びエンドエフェクタ装置を有するロボットシステムを図示する。
【
図3D】アーム、基部、及びエンドエフェクタ装置を有するロボットシステムの別の例示的な実施形態を図示する。
【
図4】本明細書の実施形態による、標的物体の検出、計画、選び取り、移送、及び載置のための方法及び動作の全体的な流れを図示する、フロー図を提供する。
【
図5A】複数の物体を含む容器又は供給源の場所を図示する。
【
図5B】容器又は供給源の場所内の複数の物体からの複数の検出された物体についての、本明細書に記載の検出結果の視覚的描写を図示する。
【
図5C】本明細書の実施形態と一致する検出結果からの物体認識の実施例を図示する。
【
図6A】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図6B】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図6C】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図7A】供給源から目的地へのロボットアームによる物体の移送サイクルについての運動計画を図示する。
【
図7B】本明細書に記載のロボットシステムを介した物体取り扱いのシステム及び方法の実施形態を図示する。
【
図7C】容器又は供給源の場所内の複数の物体からの複数の検出された物体についての、本明細書に記載された検出結果の視覚的描写を図示し、一次物体及び二次物体は、本明細書に更に記述される動作を介して選択される。
【
図7D】本明細書に記述されたように、把持動作中のロボットシステムを介したバウンディングボックス使用の実施例を図示する。
【
図8A】エンドエフェクタ装置把持接近軌道を図示する。
【発明を実施するための形態】
【0009】
物体の検出、識別、及び取り出しに関連するシステム及び方法が、本明細書に記載されている。具体的には、開示されたシステム及び方法は、物体が容器内に位置している場合における物体の検出、識別、及び取り出しを容易にすることができる。本明細書で論じるように、物体は、金属又は他の材料であってもよく、箱、ビン、木枠などの容器を含む、供給源内に位置してもよい。例えば、ねじで満たされた箱のように、物体は容器内で未整理又は不規則に置かれる可能性がある。こうした状況での物体の検出及び識別は、物体の不規則な配置のために困難であり得るが、本明細書で論じられるシステム及び方法は、規則的又は半規則的に配置される物体の検出、識別、及び物体の取り出しを等しく改善し得る。したがって、本明細書に記載のシステム及び方法は、複数の物体の中から個々の物体を識別するように設計され、個々の物体は、異なる場所、異なる角度などで配置されてもよい。本明細書で論じられるシステム及び方法は、ロボットシステムを含み得る。本明細書の実施形態に従って構成されたロボットシステムは、複数のロボットの動作を調整することによって、統合されたタスクを自律的に実行し得る。ロボットシステムは、本明細書に記載されるように、制御し、コマンドを発行し、ロボットデバイス及びセンサからの情報を受信し、ロボットデバイス、センサ及びカメラによって生成されたデータにアクセスし、分析し、及び処理し、ロボットシステムの制御に使用可能なデータ又は情報を生成し、ロボットデバイス、センサ、及びカメラのアクションを計画するように構成されたロボットデバイス、アクチュエータ、センサ、カメラ、及びコンピューティングシステムの任意の好適な組み合わせを含み得る。本明細書で使用される場合、ロボットシステムは、ロボットアクチュエータ、センサ、又はその他のデバイスに直ちにアクセス又は制御する必要はない。ロボットシステムは、本明細書に記載するように、情報の受信、分析、及び処理を通して、そのようなロボットアクチュエータ、センサ、及び他のデバイスの性能を改善するように構成された計算システムであり得る。
【0010】
本明細書に記載される技術は、物体の識別、検出、及び取り出しで使用するために構成されたロボットシステムに技術的改善を提供する。本明細書に記載する技術的改善は、これらのタスクの速度、精度、及び正確さを増加させ、容器からの物体の検出、識別、及び取り出しを更に容易にする。本明細書に記載されるロボットシステム及び計算システムは、容器からの物体を識別、検出、及び取り出す技術的問題に対処するものであり、物体は不規則に配置され得る。この技術的問題に対処することにより、物体の識別、検出、及び取り出しの技術が改善される。
【0011】
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書で論じるように、ロボットアクチュエータ構成要素(例えば、ロボットアーム、ロボットグリッパなど)、様々なセンサ(例えば、カメラなど)、及び様々なコンピューティング又は制御システムを含み得る。本明細書で論じるように、コンピューティングシステム又は制御システムは、ロボットアーム、ロボットグリッパ、カメラなどの様々なロボット構成要素を「制御すること」と呼んでもよい。そのような「制御」は、ロボット構成要素の様々なアクチュエータ、センサ、及びその他の機能的態様の直接的な制御及び相互作用を指し得る。例えば、コンピューティングシステムは、様々なモータ、アクチュエータ、及びセンサにロボット移動を引き起こすために必要な信号の全てを発行又は提供することによって、ロボットアームを制御することができる。そのような「制御」はまた、そのようなコマンドをロボット移動を引き起こすために必要な信号に変換する更なるロボット制御システムへの抽象的又は間接的なコマンドの発行を指し得る。例えば、コンピューティングシステムは、ロボットアームが移動すべき軌道又は目的地の場所を記述するコマンドを発行することによってロボットアームを制御してもよく、ロボットアームに関連付けられた更なるロボット制御システムは、そのようなコマンドを受信及び解釈し、次いで、ロボットアームの様々なアクチュエータ及びセンサに必要な直接信号を提供して、必要な移動を引き起こしてもよい。
【0012】
具体的には、本明細書に記載の本技術は、ロボットシステムが、容器内の複数の物体の間で標的物体と相互作用するのを支援する。容器からの物体の検出、識別、及び取り出しには、好適な物体認識テンプレートの生成、識別に使用可能な特徴の抽出、並びに検出仮説の生成、精密化、及び検証を含む、数点のステップが必要である。例えば、物体の不規則な配置の可能性があるため、複数の異なる姿勢(例えば、角度及び場所)の、かつ他の物体の部分によって潜在的に不明瞭な場合に、物体を認識し、識別することが必要な場合がある。
【0013】
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技法は、本明細書に開示される各具体的な詳細を含まずに実施され得る。他の実例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。この説明における「実施形態」、「一実施形態」、又は同様のものへの参照は、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしも全て同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。更に、任意の1つの実施形態に関して記載される特定の特徴、構造、材料、又は特性は、このような項目が相互に排他的でない限り、任意の他の実施形態のものと任意の好適な様式で組み合わせることができる。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0014】
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技法のいくつかの重要な態様を不必要に不明瞭にし得る、構造又はプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。更に、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有し得る。したがって、開示された技術は、追加の要素を有するか、又は以下に説明される要素のうちの数点を有しない、他の実施形態を有し得る。
【0015】
以下に説明される本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はコントローラによって実行されるルーチンを含む、コンピュータ又はコントローラ実行可能命令の形態を取り得る。関連分野の当業者であれば、開示された技法は、以下に示され説明されるもの以外のコンピュータ又はコントローラシステム上で、若しくはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技法は、以下に説明されるコンピュータ実行可能命令のうちの1つ以上を実行するように、特別にプログラム、構成、又は構築される、専用コンピュータ又はデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される「コンピュータ」及び「コントローラ」という用語は、任意のデータプロセッサを指し、インターネット家電及び手持ち式デバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラ又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラム可能な家庭用電化製品、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータ及びコントローラによって取り扱われる情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体において提示され得る。コンピュータ又はコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の好適なメモリデバイスに包含され得る。
【0016】
「結合された」及び「接続された」という用語は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続された」は、2つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合された」という用語は、2つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にあるか、又は2つ以上の要素が互いに協働するか、若しくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)か、又はその両方を示すために使用され得る。
【0017】
コンピューティングシステムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面の場所を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に既知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0018】
図1Aは、物体検出、又はより具体的には、物体認識を実施するためのシステム1000を図示する。より詳細には、システム1000は、コンピューティングシステム1100及びカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を説明するか、若しくは別様で表し、又はより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠、パレット、又は他の容器などの、そのような施設に位置する物体を表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づき物体認識又は物体登録を実施すること、及び/又は画像情報に基づきロボット相互作用計画を実施することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(用語「及び/又は」並びに「又は」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他の物体との間のロボット相互作用を容易にするように、施設においてロボットを制御するために使用され得る。コンピューティングシステム1100及びカメラ1200は、同じ施設において位置し得、又は互いに遠隔に位置し得る。例えば、コンピューティングシステム1100は、倉庫又は小売空間から遠隔にあるデータセンタ内でホストされるクラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介してカメラ1200と通信することができる。
【0019】
実施形態では、カメラ1200(画像感知デバイスとも呼ばれ得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、
図1Bは、コンピューティングシステム1100、及びいずれもカメラ1200の実施形態であり得る、カメラ1200A並びにカメラ1200Bを含むシステム1500A(システム1000の実施形態であり得る)を図示する。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を説明する2D画像を含む、又はそれを形成する、2D画像情報を生成するように構成されている2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、又はそれを形成する、3D画像情報を生成するように構成されている3Dカメラ(空間構造感知カメラ又は空間構造感知デバイスとも呼ばれる)であり得る。空間構造情報は、カメラ1200Bの視野中にある様々な物体の表面上の場所など、カメラ1200Bに対する様々な場所のそれぞれの奥行き値を説明する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野内又は物体の表面上のこれらの場所を、物理的場所と称することもできる。この実施例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野内の物体の1つ以上の表面上の場所を説明する点群を含むことができ、又はこの点群を生成するために使用することができる。より具体的には、空間構造情報は、物体の構造(物体構造とも呼ぶ)上の様々な場所を説明することができる。
【0020】
実施形態では、システム1000は、カメラ1200の環境内でロボットと様々な物体との間のロボット相互作用を容易にするための、ロボット動作システムであり得る。例えば、
図1Cは、
図1A及び
図1Bのシステム1000/1500Aの実施形態であり得る、ロボット動作システム1500Bを図示する。ロボット動作システム1500Bは、コンピューティングシステム1100、カメラ1200、及びロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境内の1つ以上の物体、例えば、箱、木枠、ビン、パレット、又はその他の容器と相互作用するために使用することができる。例えば、ロボット1300は、1つの場所から容器を選び取り、それらを別の場所に移動するように構成することができる。一部の事例では、ロボット1300は、容器又は他の物体のグループが降ろされて、例えば、コンベヤベルトに移動される、パレットから降ろす動作を実施するために使用することができる。一部の実装形態では、カメラ1200は、以下に論じる、ロボット1300又はロボット3300に取り付けることができる。これは、カメラの手持ち又は手元ソリューションとしても知られる。カメラ1200は、ロボット1300のロボットアーム3320に取り付けることができる。次いで、ロボットアーム3320は、様々なピック領域に移動して、それらの領域に関する画像情報を生成することができる。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫又は他の構造の天井に装着されてもよく、構造に対して静止したままであってもよい。一部の実装形態では、ロボット1300とは別個の複数のカメラ1200、及び/又はロボット1300とは別のカメラ1200が手元カメラ1200と組み合わせて使用されることを含む、複数のカメラ1200を使用することができる。一部の実装形態では、1つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット1300とは別個に、専用のロボットシステムに装着又は固定されてもよい。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」について論じることができる。カメラの手持ちソリューションについては、カメラ1200の制御は、カメラ1200が装着又は取り付けられるロボット1300の制御も含む。
【0021】
実施形態では、
図1A~
図1Cのコンピューティングシステム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、又はロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器又は他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。そのような実施形態では、コンピューティングシステム1100は、例えば、カメラ1200によって生成された画像情報に基づき、そのようなコマンドを生成するように構成され得る。例えば、コンピューティングシステム1100は、画像情報に基づき運動計画を決定するように構成されてもよく、運動計画は、例えば、物体をグリップするか、又は別様で把持することを意図し得る。コンピューティングシステム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成することができる。
【0022】
実施形態では、コンピューティングシステム1100は、視覚システムを形成し得るか、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は、代替的に若しくはそれに加えて、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報が、上で論じられた3D画像情報及び/又は2D画像情報、若しくはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、コンピューティングシステム1100が、視覚システムを形成する場合、視覚システムは、上で論じられたロボット制御システムの一部であってもよく、又はロボット制御システムから分離してもよい。視覚システムが、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する情報を出力するように構成され得る。情報は、ロボット制御システムに出力されてもよく、ロボット制御システムは、視覚システムからそのような情報を受信し、その情報に基づいて運動計画を実施し、及び/又はロボット相互作用運動コマンドを生成することができる。視覚システムに関する更なる情報は、以下に詳しく説明される。
【0023】
実施形態では、コンピューティングシステム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、かつ/若しくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続を介してカメラ1200及び/又はロボット1300と通信し得る。実施形態では、コンピューティングシステム1100は、ネットワークを介してカメラ1200と、かつ/又はロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意のタイプ及び/又は形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(非同期転送モード)技法、SONET(同期型光ネットワーク)プロトコル、又はSDH(同期デジタル階層)プロトコルを含む、プロトコルの異なる技法、及び層又はスタックを利用し得る。
【0024】
実施形態では、コンピューティングシステム1100は、カメラ1200と、かつ/若しくはロボット1300と直接情報を通信してもよく、又は中間記憶デバイス、若しくはより一般的には、中間の非一時的コンピュータ可読媒体を介して通信することができる。例えば、
図1Dは、システム1000/1500A/1500Bの実施形態であり得るシステム1500Cを図示し、これは、コンピューティングシステム1100の外部であってもよく、例えばカメラ1200によって生成された画像情報を記憶するための外部バッファ又はリポジトリとして作用し得る、非一時的コンピュータ可読媒体1400を含む。そのような実施例では、コンピューティングシステム1100は、非一時的コンピュータ可読媒体1400から、画像情報を取り出すか、又は別様で受信することができる。非一時的コンピュータ可読媒体1400の実施例としては、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又はそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、及び/又はメモリスティックを形成し得る。
【0025】
上述のように、カメラ1200は、3Dカメラ及び/又は2Dカメラであり得る。2Dカメラは、カラー画像又はグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラ若しくは構造化光カメラなどの、奥行き感知カメラ、又は任意の他のタイプの3Dカメラであり得る。一部の事例では、2Dカメラ及び/又は3Dカメラは、電荷結合デバイス(CCD)センサ及び/又は相補型金属酸化膜半導体(CMOS)センサなど、画像センサを含み得る。実施形態では、3Dカメラは、レーザ、LIDARデバイス、赤外線デバイス、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダ探知機、又は奥行き情報若しくは他の空間構造情報を捕捉するように構成された任意の他のデバイスを含み得る。
【0026】
上述のように、画像情報が、コンピューティングシステム1100によって処理され得る。実施形態では、コンピューティングシステム1100は、(例えば、1つ以上のサーバブレード、プロセッサなどを有する)サーバ、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピューティングデバイス、及び/若しくは他の任意の他のコンピューティングシステムを含んでもよく、又はそれらとして構成され得る。実施形態では、コンピューティングシステム1100の機能のいずれか又は全ては、クラウドコンピューティングプラットフォームの一部として実施されてもよい。コンピューティングシステム1100は、単一のコンピューティングデバイス(例えば、デスクトップコンピュータ)であってもよく、又は複数のコンピューティングデバイスを含んでもよい。
【0027】
図2Aは、コンピューティングシステム1100の実施形態を図示する、ブロック図を提供する。本実施形態におけるコンピューティングシステム1100は、少なくとも1つの処理回路1110、及び非一時的コンピュータ可読媒体(又は複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、特殊用途コンピュータ、及び/又はオンボードサーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気デバイスに動作可能に結合された別個の/スタンドアローン型のコントローラに含まれてもよい。プロセッサは、プログラム命令を実装して、他のデバイスを制御/他のデバイスとインターフェース接続し、それによって、コンピューティングシステム1100にアクション、タスク、及び/又は動作を実行させることができる。実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は任意の他の処理回路を含む。
【0028】
実施形態では、コンピューティングシステム1100の一部である、非一時的コンピュータ可読媒体1120は、上で論じられた中間の非一時的コンピュータ可読媒体1400の代替又は追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、又は任意の他の記憶デバイスなど、それらの任意の好適な組み合わせなどの記憶デバイスであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶デバイスを含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、本明細書で論じる方法及び動作を実施するために使用される1つ以上の物体認識テンプレートを記憶し得る。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的又は追加的に記憶し得る。
【0029】
図2Bは、コンピューティングシステム1100の一実施形態であり、通信インターフェース1131を含む、コンピューティングシステム1100Aを描写している。通信インターフェース1131は、例えば、
図1A~
図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で論じられた中間の非一時的コンピュータ可読媒体1400若しくはネットワークを介して、又はカメラ1200とコンピューティングシステム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1131は、
図1Cのロボット1300と通信するように構成され得る。コンピューティングシステム1100が、ロボット制御システムの外部にある場合、コンピューティングシステム1100の通信インターフェース1131は、ロボット制御システムと通信するように構成され得る。通信インターフェース1131はまた、通信構成要素又は通信回路と呼ばれる場合があり、例えば、有線又は無線プロトコル上で通信を実施するように構成された通信回路を含んでもよい。実施例として、通信回路は、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、又はそれらの組み合わせを含んでもよい。
【0030】
実施形態では、
図2Cに描写されるように、非一時的コンピュータ可読媒体1120は、本明細書で論じられる1つ以上のデータ物体を記憶するように構成された記憶空間1125を含み得る。例えば、記憶空間は、物体認識テンプレート、検出仮説、画像情報、物体画像情報、ロボットアーム移動コマンド、及び本明細書で論じたコンピューティングシステムがアクセスを必要とし得る任意の追加のデータ物体を記憶し得る。
【0031】
実施形態では、処理回路1110は、非一時的コンピュータ可読媒体1120に記憶される、1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、
図2Dは、コンピューティングシステム1100/1100A/1100Bの実施形態である、コンピューティングシステム1100Cを図示し、処理回路1110は、物体認識モジュール1121、運動計画モジュール1129、及び物体操作計画モジュール1126を含む、1つ以上のモジュールによってプログラムされる。処理回路1110は更に、仮説生成モジュール1128、物体登録モジュール1130、テンプレート生成モジュール1132、特徴抽出モジュール1134、仮説精密化モジュール1136、及び仮説検証モジュール1138を用いてプログラムされ得る。上記のモジュールの各々は、本明細書に記載されるプロセッサ、処理回路、コンピューティングシステムなどのうちの1つ以上でインスタンス化されたときに、特定のタスクを遂行するように構成された、コンピュータ可読プログラム命令を表し得る。上記のモジュールの各々は、本明細書に記載された機能を達成するために、互いに協働して動作してもよい。本明細書に記載される機能の様々な態様は、上述のソフトウェアモジュールのうちの1つ以上によって行われてもよく、ソフトウェアモジュール及びそれらの説明は、本明細書に開示されるシステムの計算構造を制限するものとして理解されるものではない。例えば、特定のタスク又は機能は、特定のモジュールに関して記述され得るが、そのタスク又は機能は、必要に応じて異なるモジュールによって実施されてもよい。更に、本明細書で説明するシステム機能は、機能の内訳又は割り当てが異なるように構成されたソフトウェアモジュールの異なるセットによって実施することができる。
【0032】
実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、及び技法は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書で論じるように、物体識別に関連する物体認識タスクのために更に構成することができる。
【0033】
運動計画モジュール1129は、ロボットの移動を計画及び実行するように構成することができる。例えば、運動計画モジュール1129は、本明細書に記載される他のモジュールと相互作用して、物体取り出し動作及びカメラ載置動作のためのロボット3300の運動を計画することができる。ロボットアームの移動及び軌道に関して本明細書で論じられる方法、システム、及び技法は、運動計画モジュール1129によって実施され得る。
【0034】
物体操作計画モジュール1126は、例えば、物体の把持及び解放、並びにそのような把持及び解放を支援し、促進するためのロボットアームコマンドの実行などのロボットアームの物体操作活動を計画し、実行するように構成され得る。物体操作計画モジュール1126は、軌道決定、選び取り及びグリップ手順決定、及び物体とのエンドエフェクタの相互作用に関連する処理を実施するように構成され得る。物体操作計画モジュール1126の動作は、
図4に関して更に詳細に説明される。
【0035】
仮説生成モジュール1128は、検出仮説を生成するためテンプレート合致及び認識タスクを実施するように構成され得る。仮説生成モジュール1128は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
【0036】
物体登録モジュール1130は、本明細書で論じる様々なタスクに必要とされ得る物体登録情報を取得、記憶、生成、及び別様で処理するよう構成されてもよい。物体登録モジュール1130は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
【0037】
テンプレート生成モジュール1132は、物体認識テンプレート生成タスクを完了するように構成され得る。テンプレート生成モジュール1132は、物体登録モジュール1130、特徴抽出モジュール1134、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0038】
特徴抽出モジュール1134は、特徴抽出及び生成タスクを完了するように構成され得る。特徴抽出モジュール1134は、物体登録モジュール1130、テンプレート生成モジュール1132、仮説生成モジュール1128、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0039】
仮説精密化モジュール1136は、仮説精密化タスクを完了するように構成され得る。仮説精密化モジュール1136は、物体認識モジュール1121及び仮説生成モジュール1128、並びに任意の他の必要なモジュールと相互作用するように構成され得る。
【0040】
仮説検証モジュール1138は、仮説検証タスクを完了するように構成され得る。仮説検証モジュール1138は、物体登録モジュール1130、特徴抽出モジュール1134、仮説生成モジュール1128、仮説精密化モジュール1136、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0041】
図2E、
図2F、
図3A及び
図3Bを参照して、画像分析のために実施され得る物体認識モジュール1121に関連する方法を説明する。
図2E及び
図2Fは、画像分析方法と関連付けられた例示的な画像情報を図示するが、
図3A及び
図3Bは、画像分析方法と関連付けられた例示的なロボット環境を図示する。コンピューティングシステムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面の場所を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に既知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0042】
実施形態では、コンピューティングシステム1100は、カメラ1200のカメラ視野(例えば、3200)内の物体を表す画像情報を取得し得る。画像情報を取得するための、以下に説明するステップ及び技法は、以下、画像情報捕捉動作3001と呼ぶことができる。一部の実例では、物体は、カメラ1200の視野3200の情景5013内の複数の物体5012からの1つの物体5012であってもよい。画像情報2600、2700は、物体5012がカメラ視野3200にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、個々の物体5012又は情景5013のうちの1つ以上を記述してもよい。物体の外観は、カメラ1200の視点からの物体5012の外観を記述する。カメラ視野内に複数の物体5012がある場合、カメラは、必要に応じて、複数の物体又は単一の物体を表す画像情報(単一の物体に関するそのような画像情報は、物体画像情報と呼ばれ得る)を生成し得る。画像情報は、物体のグループがカメラ視野にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、かつ、例えば、2D画像情報及び/又は3D画像情報を含み得る。
【0043】
一例として、
図2Eは、画像情報の第1のセット、より具体的には、2D画像情報2600を描写しており、これは、上述のように、カメラ1200によって生成され、
図3Aの物体3410A/3410B/3410C/3410D/3401を表す。より具体的には、2D画像情報2600は、グレースケール又はカラー画像であり得、カメラ1200の視点からの物体3410A/3410B/3410C/3410D/3401の外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のカラーチャネル)に対応し得る。カメラ1200が物体3410A/3410B/3410C/3410D/3401の上方に配設される場合、2D画像情報2600は、物体3410A/3410B/3410C/3410D/3401のそれぞれの上部表面の外観を表し得る。
図2Eの実施例では、2D画像情報2600は、物体3410A/3410B/341C/3410D/3401のそれぞれの表面を表す、画像部分又は物体画像情報とも呼ばれる、それぞれの部分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など)のピクセルに関連付けられる任意の追加情報を含んでもよい。
【0044】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像の全て又は一部分であり得る。実施例では、コンピューティングシステム1100は、対応する物体3410Aと関連付けられた画像情報のみを取得するために、2D画像情報2600から画像部分2000Aを抽出するように構成され得る。画像部分(画像部分2000Aなど)が単一の物体を対象とする場合、それは物体画像情報と呼ばれ得る。物体画像情報は、対象とする物体についての情報のみを包含する必要はない。例えば、対象とする物体は、1つ以上の他の物体近く、その下、その上、又は別様で近傍にあってもよい。そのような場合、物体画像情報は、対象とする物体、並びに1つ以上の隣接する物体についての情報を含み得る。コンピューティングシステム1100は、
図2Fに図示される2D画像情報2600及び/又は3D画像情報2700に基づいて、画像セグメンテーション又は他の分析又は処理動作を実施することによって、画像部分2000Aを抽出することができる。一部の実装形態では、画像セグメンテーション又は他の動作は、2D画像情報2600内の物体の物理的縁部が現れる(例えば、物体の縁部)画像場所を検出することと、そのような画像場所を使用して、カメラ視野(例えば、3200)内の個々の物体を表し、かつ他の物体を実質的に除外することに限定される、物体画像情報を識別することとを含み得る。「実質的に除外する」とは、画像セグメンテーション又はその他の処理技法が、非標的物体を物体画像情報から除外するように設計及び構成されるが、エラーが生じる可能性があり、ノイズが存在する可能性があり、様々な他の要因が他の物体の部分の包含をもたらす可能性があることが理解されることを意味する。
【0045】
図2Fは、画像情報が3D画像情報2700である、実施例を描写している。より具体的には、3D画像情報2700は、例えば、物体3410A/3410B/3410C/3410D/3401の1つ以上の表面(例えば、上部表面、又は他の外側表面)上の様々な場所のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション動作は、物体の物理的縁部(例えば、箱の縁部)が3D画像情報2700内に現れる画像場所を検出すること、及びそのような画像場所を使用して、カメラ視野(例えば、3410A)内の個々の物体を表すことに限定される画像部分(例えば、2730)を識別することを含み得る。
【0046】
それぞれの奥行き値は、3D画像情報2700を生成するカメラ1200に対するものであってもよく、又はいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3200)内にある物体の構造上の様々な場所についてのそれぞれの座標を含む、点群を含み得る。
図2Fの実施例では、点群は、物体3410A/3410B/3410C/3410D/3401のそれぞれの表面の場所を描写する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、又は何らかの他の座標系に対する値を有し得る。例えば、3D画像情報2700は、物体3410Dの表面上の物理的な場所とも呼ばれる、場所2710
1~2710
nのセットに対するそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の画像部分2710を含み得る。更に、3D画像情報2700は、第2の部分、第3の部分、第4の部分、及び第5の部分2720、2730、2740、及び2750を更に含み得る。次いで、これらの部分は、それぞれ、2720
1~2720
n、2730
1~2730
n、2740
1~2740
n、及び2750
1~2750
nによって表され得る、場所のセットについてのそれぞれの奥行き値を更に示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第1のセットの部分であってもよい。
図2Eの実施例では、取得された3D画像情報2700が
図3Aの物体3410Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。2D画像情報2600の考察と同様に、識別された画像部分2710は、個々の物体に関連してもよく、物体画像情報と呼ばれてもよい。したがって、物体画像情報は、本明細書で使用される場合、2D及び/又は3D画像情報を含み得る。
【0047】
実施形態では、画像正規化動作は、画像情報を取得する一部として、コンピューティングシステム1100によって実施され得る。画像正規化動作は、変換された画像又は変換された画像部分を生成するために、カメラ1200によって生成された画像又は画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、又は2つの組み合わせを含み得る画像情報が、視点、物体姿勢、及び視覚的記述情報と関連付けられる照明条件において画像情報の変更を試みるために、画像正規化動作を受ける可能性がある場合である。そのような正規化は、画像情報とモデル(例えば、テンプレート)情報との間のより正確な比較を容易にするために実施され得る。視点は、カメラ1200に対する物体の姿勢、及び/又はカメラ1200が物体を表す画像を生成するときに、カメラ1200が物体を見ている角度を指し得る。
【0048】
例えば、画像情報は、標的物体がカメラ視野3200内にある、物体認識動作中に生成され得る。カメラ1200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上部表面をカメラ1200の光学軸に対して垂直にするような姿勢を有する場合がある。そのような例では、カメラ1200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の実例では、カメラ1200が物体認識動作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。そのような実例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
【0049】
実施形態では、画像正規化動作は、画像又は画像部分を、物体認識テンプレートの情報と関連付けられた視点及び/又は照明条件により良く合致させるように、カメラによって生成される情景の画像又は画像部分を調整することを伴い得る。調整は、画像又は画像部分を変換して、物体姿勢又は物体認識テンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも一方に合致する変換された画像を生成することを伴い得る。
【0050】
視点調整は、画像が物体認識テンプレート内に含まれ得る視覚的記述情報と同じ視点を表すように、情景の画像の処理、ワーピング、及び/又はシフトを伴い得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み得、情景のワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、向き、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、情景の画像内の物体を、物体認識テンプレートの視覚的記述情報に合致するか、又はそれにより良好に対応する向き及び/又はサイズを有するように変更することができる。物体認識テンプレートは、一部の物体の正面図(例えば、上面図)を記述する場合、情景の画像は、情景内の物体の正面図も表すようにワーピングされ得る。
【0051】
本明細書で実施される物体認識方法の更なる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。
【0052】
様々な実施形態では、「コンピュータ可読命令」及び「コンピュータ可読プログラム命令」という用語は、様々なタスク及び動作を遂行するように構成された、ソフトウェア命令又はコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを実施させるように構成された、ソフトウェア命令又はコードの集まりを広く指す。モジュール及びコンピュータ可読命令は、処理回路又は他のハードウェア構成要素が、モジュール若しくはコンピュータ可読命令を実行しているときに、様々な動作又はタスクを実施するものとして説明され得る。
【0053】
図3A及び
図3Bは、非一時的コンピュータ可読媒体1120上に記憶されたコンピュータ可読プログラム命令を、コンピューティングシステム1100を介して利用して、物体識別、検出、並びに取り出し動作及び方法の効率を増大させる、例示的な環境を図示する。コンピューティングシステム1100によって取得され、
図3Aにおいて例証される画像情報は、物体環境内に存在するロボット3300へのシステムの意思決定手順及びコマンド出力に影響を与える。
【0054】
図3A及び
図3Bは、本明細書に説明されるプロセス及び方法が実施され得る例示的な環境を図示する。
図3Aは、少なくともコンピューティングシステム1100、ロボット3300、及びカメラ1200を含む、(
図1A~
図1Dのシステム1000/1500A/1500B/1500Cの実施形態であり得る)システム3000を有する環境を描写している。カメラ1200は、カメラ1200の実施形態であってもよく、カメラ1200のカメラ視野3200内の情景5013を表す、又はより具体的には、物体3000A、3000B、3000C、及び3000Dなどの、カメラ視野3200内の物体(箱など)を表す、画像情報を生成するように構成され得る。一実施例では、物体3000A~3000Dの各々は、例えば、箱又は木枠などの容器であってもよく、一方で、物体3550は、例えば、上に容器が配設されるパレットであり得る。更に、物体3000A~3000Dの各々は、更に個々の物体5012を含む容器であってもよい。各物体5012は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリであってもよい。
図3Aは、物体5012の複数の容器を含む実施形態を図示するが、
図3Bは、物体5012の単一の容器を含む実施形態を図示する。
【0055】
実施形態では、
図3Aのシステム3000は、1つ以上の光源を含み得る。光源は、例えば、発光ダイオード(LED)、ハロゲンランプ、又は任意の他の光源であってもよく、可視光、赤外線、又は物体3000A~3000Dの表面に向かって任意の他の形態の光を発するように構成され得る。一部の実施態様では、コンピューティングシステム1100は、光源と通信して、光源が起動されるときを制御するように構成され得る。他の実施態様では、光源は、コンピューティングシステム1100とは独立して動作し得る。
【0056】
実施形態では、システム3000は、カメラ1200、又は2D画像情報2600を生成するように構成されている2Dカメラと、3D画像情報2700を生成するように構成されている3Dカメラとを含む、複数のカメラ1200を含み得る。カメラ1200又は複数のカメラ1200は、ロボット3300に装着されるか、又はロボット3300に固定されてもよく、環境内に静止していてもよく、及び/又はロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット3300から分離された専用のロボットシステムに固定されてもよい。
図3Aは、静止カメラ1200及び手持ちカメラ1200を有する実施例を示し、一方、
図3Bは、静止カメラ1200のみを有する実施例を示す。2D画像情報2600(例えば、カラー画像又はグレースケール画像)は、カメラ視野3200における、物体3000A/3000B/3000C/3000D又は物体5012などの1つ以上の物体の外観を説明し得る。例えば、2D画像情報2600は、物体3000A/3000B/3000C/3000D及び5012のそれぞれの外部表面(例えば、上部表面)上に配設される視覚的詳細、及び/又はそれらの外部表面の輪郭を捕捉するか、又は別様に表し得る。実施形態では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550及び5012のうちの1つ以上の構造を説明してもよく、物体についての構造は、物体の構造又は物体の物理的構造とも呼ばれ得る。例えば、3D画像情報2700は、奥行きマップを含んでもよく、より一般的には、カメラ1200に対する、又は何らかの他の基準点に対する、カメラ視野3200内の様々な場所のそれぞれの奥行き値を説明し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する場所は、物体3000A/3000B/3000C/3000D/3550及び5012のそれぞれの上部表面上の場所などの、カメラ視野3200内の様々な表面上の場所(物理的な場所とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550及び5012、又はカメラ視野3200内のいくつかの他の物体の1つ以上の外側表面上の様々な場所を説明する、複数の3D座標を含み得る、点群を含み得る。点群を
図2Fに示される。
【0057】
図3A及び
図3Bの実施例では、(ロボット1300の実施形態であり得る)ロボット3300は、一端がロボット基部3310に取り付けられ、かつ他端がロボットグリッパなどのエンドエフェクタ装置3330に取り付けられるか、又はそれによって形成される、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクタ装置3330は、ロボット3300の環境で1つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3000A~3000D及び5012のうちの少なくとも1つをグリップするか、又は別様で把持することを含み得る。例えば、ロボット相互作用は、物体5012を容器から識別、検出、及び取り出すための物体選び取り動作の一部であってもよい。エンドエフェクタ装置3330は、物体5012を把持するか、又は掴むための吸引カップ又は他の構成要素を有し得る。エンドエフェクタ装置3330は、吸引カップ又は他の把持構成要素を使用して、例えば、上面を介して、物体の単一の面又は表面との接触を通して、物体を把持するか、又は掴むように構成され得る。
【0058】
ロボット3300は、構造部材を操作するため、及び/又はロボットユニットを輸送するためになど、タスクを実装するために使用される情報を取得するように構成された追加のセンサを更に含み得る。センサは、ロボット3300の1つ以上の物理的特性(例えば、その状態、条件、及び/又は1つ以上の構造部材/ジョイントの場所)及び/又は周囲の環境の1つ以上の物理的特性を検出又は測定するよう構成されたデバイスを含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
【0059】
コンピューティングシステム1100は、エンドエフェクタ装置3330を含む、又はそれに取り付けられるロボットアーム3320を有し、かつロボットアーム3320に取り付けられるカメラ1200を有するロボット3300と通信するように構成された制御システムを備える。
図3C及び
図3Dは、コンピューティングシステム1100が通信し、コマンド/制御して本明細書に記載される方法を達成することができる、ロボット3300の実施形態を図示する。実施形態では、カメラ1200は、物体取り扱い環境3400の他の場所に配設され、一方で、無線又はハード有線接続のいずれかを介してコンピューティングシステム1100の制御システムと通信する。ロボット3300は、ジョイント3320a、3320bにおいて接続されて、ロボットアーム3320及びエンドエフェクタ装置3330を形成し、より大きな運動範囲(例えば、回転及び/又は並進変位)を許容する、物理的又は構造的な部材3321a、3321bを含み得る。物理的又は構造的な部材3321aは、ジョイント3320aを介してロボット基部3310に更に接続してもよい。ロボット3300は、対応するジョイント3320a、3320bの周り又はそこにおいて、構造部材3321a、3321bを駆動又は操作する(例えば、変位及び/又は再配向する)ように構成されたモータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど(図示せず)などの作動デバイスを含み得る。例えば、ロボットアーム3300は、ロボット基部3310に対してジョイント3320aの周りで全方位360°回転することができてもよく、又は構造部材3321a、3321bは、ジョイント3320a、3320b接続に接続する任意の点において全方位360°回転することができる。ロボットアーム3300は、更に、ロボットアーム3300の完全に延長した長さ(すなわち、まっすぐにした、又は180°)が、ロボットベース3310の中心軸(すなわち、ロボットアーム3320がロボットベース3310に接続する場所)からエンドエフェクタ器具3330の先端又は端部まで測定した、半球状の三次元空間の半径として作用する、半球状の三次元空間内の任意の場所を並進することができる。
【0060】
接続された構造部材3321a、3321b及びジョイント3320a、3320bは、ロボット3300の所望の使用に応じて、1つ以上のタスク(例えば、グリップすること、スピンすること、溶接することなど)を実行するように構成されたエンドエフェクタ装置3330を操作するように構成された動力鎖を形成し得る。ロボット3300は、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなどの(図示せず)、エンドエフェクタ装置3330を駆動又は操作(例えば、変位及び/又は再配向する)するように構成された作動デバイスを含み得る。一般に、エンドエフェクタ装置3330は、様々なサイズ及び形状の物体3410A/3410B/3410C/3410D/3401を把持する能力を提供することができる。物体3410A/3410B/3410C/3410D/3401は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、ディスク、ワッシャ、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリを含む、任意の物体であってもよい。エンドエフェクタ装置3330は、
図3Cに例証されるように、グリッピングフィンガ3332a、3332bを有する少なくとも1つのグリッパ3332を含み得る。グリッピングフィンガ3332a、3332bは、互いに対して並進して、物体3410A/3410B/3410C/3410D/3401を挟む、把持する、又は別様で固定することができる。実施形態では、エンドエフェクタ装置3330は、
図3Dに例証されるように、それぞれグリッピングフィンガ3332a、3332b、3334a、3334bを有する少なくとも2つのグリッパ3332、3334を含む。グリッピングフィンガ3332a、3332bは、互いに対して並進することができ、グリッピングフィンガ3334a、3334bは、互いに対して並進して、物体3410A/3410B/3410C/3410D/3401を挟む、把持する、又は別様で固定することができる。実施形態では、エンドエフェクタ装置3330は、3つ以上のグリッパ(図示せず)、及び/又は3つ以上のグリッピングフィンガ(図示せず)を有するグリッパを含んでもよく、各々が、物体を挟む、把持する、又は別様で固定するように設計された並進能力を有する。
【0061】
ロボット3300は、物体処理環境3400内の目的地3440への送達又は移送のために、その上又はその中に配設された物体3410A/3410B/3410C/3410D/3401を有する容器3420を含む、物体取り扱い環境3400内の場所について構成することができる。容器3420は、例えば、ビン、箱、バケツ、又はパレットなど、物体3410A/3410B/3410C/3410D/3401を保持するのに好適な任意の容器であってもよい。物体3410A/3410B/3410C/3410D/3401は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、ディスク、ワッシャ、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリを含む、任意の物体であってもよい。実施形態では、物体3410A/3410B/3410C/3410D/3401は、例えば、数グラム~数キログラムの範囲の質量、及び例えば、5mm~500mmの範囲のサイズを有する、容器3420からアクセス可能な物体を指し得る。実施例及び例示的目的で、本明細書の方法4000の説明では、本明細書に記載の方法を使用してコンピュータシステム1100及びロボット3300が相互作用し得る複数の物体3500(
図5Bに示す)内の標的物体3510a(
図5B及び
図6A~
図6C)としてリング状物体に言及する。複数の物体3500は、サイズ、形状、重量、及び材料組成物に関して実質的に同一であってもよい。実施形態では、複数の物体3500は、前述したように、サイズ、形状、重量、及び材料組成物において互いに異なっていてもよい。本明細書で論じる物体の特定の形状は、例えば、実施例の目的のみに使用され、本明細書に記載の方法及びプロセスは、必要に応じて、異なる形状の物体とともに使用又は採用され得る。
【0062】
したがって、上記に関して、コンピューティングシステム1100は、供給源又は容器3420から目的地3440へ標的物体を移送するために、以下のように動作するよう構成されてもよい。
【0063】
図4は、本明細書の実施形態による、標的物体の検出、計画、選び取り、移送、及び載置のための方法及び動作の全体的な流れを図示する、フロー図を提供する。検出、計画、選び取り、移送、及び載置の方法4000は、本明細書に記載されるサブ方法及び動作の特徴の任意の組み合わせを含み得る。方法4000は、物体検出動作4002、物体把持性決定動作4003、標的選択動作4004、軌道決定動作4005、選び取り/グリップ手順決定動作4006、ロボットアーム/エンドエフェクタ装置軌道実行動作4008、エンドエフェクタ相互作用動作4010、及びロボットアーム3320を制御する目的地軌道実行動作4012のいずれか又は全てを含み得る。物体検出動作4002は、リアルタイムで、又はロボット動作の状況外の前処理又はオフライン環境で実施することができる。したがって、一部の実施形態では、これらの動作及び方法は、ロボットによる後のアクションを容易にするために事前に実施することができる。物体検出動作4002及び物体把持性決定動作4003は、方法4000の計画部分における第1のステップであってもよい。標的選択動作4004、軌道決定動作4005、及び選び取り/グリップ手順決定動作4006は、計画部分の残りのステップを提供してもよく、方法4000の間に複数回実施されてもよい。ロボットアーム/エンドエフェクタ装置軌道実行動作4008、エンドエフェクタ相互作用動作4010、及びロボットアーム3320を制御するための目的地軌道実行動作4012は各々、容器から標的物体を検出し、識別し、かつ取り出すためのロボット動作の状況下で実施することができる。
【0064】
動作4002では、方法4000は、カメラ1200を介して、容器又は物体の源3420内の複数の物体3500を検出することを含む。物体3500は、複数の物理的な実世界の物体(
図5A)を表すことができる。動作4002は、容器3420内の物体3500のうちの1つ以上についての検出結果3520を生成し得る。検出結果3520は、個別に検出された物体3510と呼ばれ得る容器3420(
図5B)内の複数の物体3500のデジタル表現を含み得る。方法4000の更なる動作は、標的物体3510a又は標的物体3511a/3511b、及び/又は把持不可能物体3510bである検出された物体3510から決定することができる(例えば、
図7Bに関して論じたように。
【0065】
動作4002は、本明細書に記載の方法に従って、カメラ1200から受信した情報(例えば、画像情報)を分析して、検出結果3520(
図5C)を生成することを含み得る。カメラ1200から受信した情報は、複数の物体3500の、物体容器3420の環境3400の画像を含み得る。上で論じたように、複数の物体3500は、検出された物体3510を含み得る。
【0066】
検出結果3520を生成することは、物体容器3420内の複数の物体3500を識別して、その後、検出された物体3510を識別し、そこから、ロボット3300を介して選び取って、目的地3440に移送する標的物体3510a又は標的物体3511a/3511bが後で決定されることを含み得る。
図5Bは、容器3420内の複数の物体3500のうち、複数の検出された物体3510についての検出結果3520の視覚的描写を提供する(それらの物理的表現は
図5Aとして提供される)。
図5Cは、物理的世界に存在する物理的物体3500を図示する一方、検出された物体3510は、検出結果3520によって説明される物理的物体3500の表示を指す。検出結果3520は、検出された物体3510の各々についての情報、例えば、容器3420内の検出された物体3510の場所、他の検出された物体3510に対する検出された物体3510の場所(例えば、検出された物体3510が複数の物体3500の山の頂部上、又は他の隣接する検出された物体3510の下にあるか)、検出された物体3510の向き及び姿勢、物体検出の信頼度、(以下でより詳細に説明するように)利用可能な把持モデル3350a/3350b/3350c、又はそれらの組み合わせを含む、検出された物体3510の各々についての複数の物体表現4013を含み得る。
【0067】
したがって、方法4000の動作4002は、物体検出に基づいて、複数の物体表現4013を含む検出結果3520を得ることを含み得る。コンピュータシステム1100は、有効な把持モデル3350a/3350b/3350cを決定する際に、検出結果3520から検出された全ての物体3510の複数の物体表現4013を使用することができる。検出された物体3510の各々は、検出された物体3510の各々についてのデジタル情報(すなわち、物体表現4013)を表す、対応する検出結果3520を有してもよい。実施形態では、対応する検出結果3520は、実世界内に物理的に存在する複数の物体3500の中に、複数の検出された物体3510を組み込むことができる。検出された物体3510は、検出された物体3500の各々についてのデジタル情報(すなわち、物体表現4013)を表す可能性がある。
【0068】
一実施形態では、検出結果3520を得るために複数の物体3500を識別することは、任意の好適な手段によって遂行され得る。実施形態では、複数の物体3500を識別することは、例えば、仮説生成モジュール1128、物体登録モジュール1130、テンプレート生成モジュール1132、特徴抽出モジュール1134、仮説精密化モジュール1136、及び仮説検証モジュール1138によって実施されるように、物体登録、テンプレート生成、特徴抽出、仮説生成、仮説精密化、及び仮説検証を含むプロセスを含み得る。これらのプロセスは、2022年8月9日出願の米国特許出願第17/884,081号に詳細に記載されており、その内容全体は本明細書に組み込まれる。
【0069】
物体登録は、物体登録データ、例えば、物体3500に関連する既知の以前に記憶された情報を取得及び使用して、物理的な情景において類似の物体を識別及び認識する際に使用するための物体認識テンプレートを生成することを含むプロセスである。テンプレート生成は、物体ピック(物体選び取り)に関連する更なる動作のために、物体3500を識別するのに使用する、コンピューティングシステム用の物体認識テンプレートのセットを生成することを含むプロセスである。特徴抽出(特徴生成とも呼ばれる)は、物体認識テンプレート生成で使用するための、物体画像情報からの特徴の抽出又は生成を含むプロセスである。仮説生成は、例えば、物体画像情報と1つ以上の物体認識テンプレートとの比較に基づいて、1つ以上の物体検出仮説を生成することを含むプロセスである。仮説精密化は、物体認識テンプレートが物体画像情報と正確に合致しないシナリオでも、物体認識テンプレートと物体画像情報の合致を精密化するためのプロセスである。仮説検証は、複数の仮説からの単一の仮説が、物体3500の最良の適合又は最良の選択として選択されるプロセスである。
【0070】
動作4003では、方法4000は、複数の物体3500の中から、把持可能な物体を識別することを含む。方法4000の計画部分のステップとして、動作4003は、検出された物体3510から把持可能な物体及び把持不可能な物体を決定することを含む。動作4003は、検出された物体3510に基づいて実施されて、把持モデルを各検出された物体3510に割り当てるか、又は検出された物体3510が、把持不可能な物体3510bであると決定することができる。
【0071】
把持モデル3350a/3350b/3350cは、検出された物体3510が、どのようにエンドエフェクタ装置3330によって把持され得るかを説明する。例示の目的で、
図6A~
図6Cは、標的物体3510aをグリップするための3つの異なる把持モデル3350a/3350b/3350cを例示するが、他の把持モデルも可能であると理解されるべきである。
【0072】
把持モデル3350aとして図示された
図6Aは、標的物体3510aのリングの内壁に対してグリッパフィンガ3332a/3332b/3334a/3334bが逆挟み運動を実施するような内側チャックを実証している(すなわち、グリッパフィンガ3332a/3332b/3334a/3334bが、両方とも標的物体3510aのリング内に入ると、外側へ、又は互いから離れるように並進する)。
【0073】
図6Bは、グリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510aのリングの内壁及び外側を挟むような内外チャックを実証する把持モデル3350bを図示する。
【0074】
把持モデル3350cとして図示された
図6Cは、グリッパフィンガ3332a/3332b/3334a/3334bが対象物体3510aのリングの外側ディスク部分を挟む側方チャックを実証している。
【0075】
把持モデル3350a/3350b/3350cの各々は、ロボットアーム3320によって物体を移動できる速度、加速、及び/又は減速を決定し得る関連付けられた移送速度修正器を有し得る、予測されたグリップ安定性4016などの要因に従ってランク付けされ得る。例えば、関連付けられた移送速度修正器は、ロボットアーム3320及び/又はエンドエフェクタ装置3330の移動速度を決定する値である。値は、ゼロと1との間で設定されてもよく、ゼロは、全停止(例えば、移動なし、完全に静止)を表し、1は、ロボットアーム3320及び/又はエンドエフェクタ装置3330の最大動作速度を表す。移送速度修正器は、オフラインで(例えば、実世界でのテストを通じて)、又はリアルタイムで(例えば、摩擦、重力、及び運動量を考慮するためのコンピュータモデルシミュレーションを通じて)決定することができる。
【0076】
予測されたグリップ安定性4016は更に、エンドエフェクタ装置3330によって一旦把持された標的物体3510aがどれほど安全であるかの指標となり得る。例えば、把持モデル3350aは、把持モデル3350bよりも高い予測されたグリップ安定性4016を有してもよく、把持モデル3350bは、把持モデル3350cよりも高い予測されたグリップ安定性4016を有してもよい。他の実施例では、異なる把持モデル3350は、予測されたグリップ安定性4016に従って異なるようにランク付けされてもよい。
【0077】
検出結果3520の処理によって、容器3420内の検出された物体3510の場所、他の検出された物体3510に対する検出された物体3510の場所(例えば、検出された物体3510が、複数の物体3500の山の頂部上、又は他の隣接する検出された物体3510の下にあるかどうか)、検出された物体3510の配向及び姿勢、物体検出の信頼度、利用可能な把持モデル3350a/3350b/3350c(以下でより詳細に説明する)、又はそれらの組み合わせを含む、検出された物体3510の各々についての複数の物体表現4013に基づいて、検出された物体3510の各々が把持モデルのうちの1つ以上によって把持され得るかどうかを示すデータを提供することができる。例えば、検出された物体3510のうちの1つは、把持モデル3350a及び3350bに従って把持され得るが、把持モデル3350cに従って把持されることはない。
【0078】
検出された物体3510は、物体の把持モデルが見つからなかった場合に、把持不可能な物体3510bとして決定され得る。例えば、検出された物体3510が、把持モデル3350a/3350b/3350cのいずれかによって、把持するためにアクセスできず(それらが、奇妙な角度で覆われ、部分的に埋まっている、部分的に見えないなどの理由で)、したがって、エンドエフェクタ装置3330によって把持可能でない場合がある。把持不可能な物体3510bは、例えば、検出結果3520からそれらを除去することによって、又はそれらを把持不可能なものとしてフラグ付けすることによって、それらに対して更なる処理が実施されないように、検出結果3520から取り除くことができる。
【0079】
複数の物体3500及び/又は検出された物体3510から、把持不可能な物体3510bを取り除くことは、以下に従って更に実施することができる。実施形態では、検出結果3520の複数の物体表現4013の少なくとも1つに基づいて、標的物体3510aを評価するために、残りの検出された物体3510から把持不可能な物体3510bを更に決定し、取り除く。上述のように、検出された物体3510の各々の物体表現4013は、特に、容器3420内の検出された物体’3510の位置、検出された他の検出された物体3510に対する3510の位置、検出された物体3510の方向及び姿勢、物体検出の信頼度、利用可能な把持モデル3350a/3350b/3350c、又はそれらの組み合わせを含む。例えば、把持不可能な物体3510bは、エンドエフェクタ装置3330による実際のアクセスを許容しないやり方で、容器3420の中に位置することができる(例えば、把持不可能な物体3510bは、容器の壁又は隅に対して寄りかかっている)。把持不可能な物体3510bは、把持不可能な物体の3510bの配向(例えば、把持不可能な物体3510bの配向/姿勢は、エンドエフェクタ装置3330が、利用可能な把持モデル3350a/3350b/3350cのいずれかを使用して、把持不可能な物体3510bを実際に把持又は選び取りできないようなものである)のために、エンドエフェクタ装置3330による選び取り/把持に利用できないと決定され得る。把持不可能な物体3510bは、エンドエフェクタ装置3330による実際のアクセスを許容しないやり方で、他の検出された物体3510によって囲まれてもよく、又は覆われてもよい(例えば、把持不可能な物体3510bは、他の検出された物体3510によって覆われた容器の底部に位置し、把持不可能な物体3510bは、複数の他の検出された物体3510の間に押し込まれる)。動作4002で前述したように、複数の物体を検出する際に、コンピュータシステム1100は、把持不可能な物体3510bを検出する際に低い信頼度を出力し得る(例えば、コンピュータシステム1100は、他の検出された物体3510と比較して、把持不可能な物体3510bが適切に識別されていることを完全には確信していない/信じてはいない)。
【0080】
更なる例として、把持不可能な物体3510bは、検出結果3520に基づいて、利用可能な把持モデル3350a/3350b/3350cを有さない、検出された物体3510であってもよい。例えば、本明細書で更に説明するように、特に、容器内の把持不可能な物体3510bの場所、他の検出された物体3510に対する場所、配向、信頼度、又は物体のタイプを含む、前述の物体表現4013の任意の組み合わせに起因して、把持モデル3350a/3350b/3350cのいずれかによって、エンドエフェクタ装置3330が、把持不可能な物体3510bを選び取り/把持できないとコンピュータシステム1100が決定する場合がある。把持不可能な物体3510bが、利用可能な把持モデル3350a/3350b/3350cを利用できないことに起因して、把持不可能な物体3510bは、コンピュータシステム1100によって決定され得る。例えば、選び取り/グリップ手順動作4006に関して本明細書で更に説明するように、把持不可能な物体3510bが、他の検出された物体3510よりも低い予測されたグリップ安定性4016又は他の測定された変数を有することに起因して、コンピュータシステム1100によって把持不可能な物体3510bが決定され得る。
【0081】
残りの把持可能な物体は、1つ以上の基準に従ってランク付け又は順序付けされてもよい。把持可能な物体は、検出信頼性(例えば、物体に関連付けられた検出結果の信頼性)、物体位置(例えば、アクセスの容易さ、はっきり見えず、妨害されておらず、又は埋め込まれていない物体は、より高いランクを有し得る)及び把持可能な物体について識別された把持モデルのランク付けの任意の組み合わせに従ってランク付けされ得る。
【0082】
動作4004では、方法4000は、標的選択を含む。動作4004では、標的物体3510a又は標的物体3511a/3511bは、把持可能な物体から選択され得る。
【0083】
ここで
図7C及び
図7Dでは、動作4003によって識別された把持可能な物体は、候補物体3512a/3512bであってもよい。候補物体3512a/3512bは、逆運動学解を有さない任意の物体を排除又は除去することによって、更に取り除くことができる。候補物体3512a/3512bは、逆運動学解(例えば、ロボットアーム3320が候補物体3512a/3512bの把持を許容する位置に自身を移動し、次いで把持動作から離れるための解)を欠く。例えば、候補物体3512a/3512bに到達するためのロボット3300の計算された構成が、ロボット3300、ロボットアーム3320、及び/又はエンドエフェクタ装置3330の制約に違反する場合、逆運動学解が見出されない場合がある。候補物体3512a/3512bについて逆運動学解が存在するかを決定する際に、コンピューティングシステム1100は、候補物体3512a/3512bについての軌道を、例えば、動作4005に関して以下で論じる方法に従って決定し得る。実施例では、把持可能な検出物体3510は、ロボットアーム3320がその特定の候補物体3512a/3512bを適切に把持するか、又は候補物体3512a/3512bを把持した後に離れるための正しい位置決め又は構成を許容しない物体供給源3420の領域に位置することがある。
【0084】
把持可能な物体からの各候補物体候補物体3512a/3512bについて、以下を実施することができる。候補物体は、例えば、上述の把持可能な物体のランク付けに従った順序で、処理のために選択することができる。
【0085】
図7Cに示すように、候補物体3512aは、例えば、二重選び取り動作における第1の物体であり得る物体などの、一次候補物体3512aと呼ばれる。候補物体3512bは、二次候補物体3512b、例えば、二重選び取り動作における第2の物体であり得る物体であってもよい。
【0086】
各一次候補物体3512aについて、残りの二次候補物体3512bは、以下に従って、フィルタリングされるか、又は取り除かれてもよい。第一に、一次候補物体3512aの妨害範囲3530内の二次的物体3512bは、取り除くことができる。妨害範囲3530は、第1の物体が物体の山から除去されたときに、他の近くの物体が位置又は姿勢においてシフトする可能性が低い、第1の物体からの最小距離を表す。妨害範囲3530は、物体のサイズ及び/又はその形状に依存し得る(より大きな物体は、より大きな範囲を必要とする場合があり、一部の物体形状は、移動時により大きな妨害を引き起こす場合がある)。したがって、一次候補物体3512aの把持中に妨害又は移動される可能性が高い二次候補物体3512bは、取り除くことができる。
【0087】
残りの二次候補物体3512bは、一次候補物体3512a及び二次候補物体3512bについて識別された把持モデル3350a/3350b/3350cの類似性に従って、更にフィルタリングされるか、又は取り除くことができる。実施形態では、二次候補物体3512bは、一次候補物体3512aのものとは異なる、割り当てられた把持モデルを有する場合、取り除くことができる。実施形態では、二次候補物体3512bに割り当てられた把持モデル3350a/3350b/3350cのグリップ安定性が、一次候補物体3512aに割り当てられた把持モデル3350a/3350b/3350cのグリップ安定性と閾値以上異なる場合に、二次候補物体3512bを取り除くことができる。物体移送は、最大速度でのロボット運動を提供することによって最適化され得る。異なる把持モデル3350a/3350b/3350cに関して上述したように、一部の把持モデル3350a/3350b/3350cは、より大きなグリップ安定性を有し、それによってロボット運動のより大きな速度を可能にする。同じであるか、又は類似のグリップ安定性を有する把持モデル3350a/3350b/3350cを有する一次候補物体3512a及び二次候補物体3512bを選択すると、ロボット動作の速度の増加が許容される。グリップ安定性が異なる場合、ロボット動作の速度は、より低いグリップ安定性によって許容される速度に限定される。したがって、高いグリップ安定性を有する複数の物体が利用可能であり、低いグリップ安定性を有する複数の物体が利用可能であるシナリオでは、高いグリップ安定性を有する物体と、低いグリップ安定性を有する物体とをペアリングすることが有利である。
【0088】
残りの二次候補物体3512bは、一次候補物体3512aと二次候補物体3512bとの間の潜在的な軌道の分析に従って、更にフィルタリングするか、又は取り除くことができる。一次候補物体3512aと二次候補物体3512bとの間に逆運動学解を生成することができない場合、二次候補物体3512bを取り除くことができる。上で論じたように、逆運動学解は、動作4005に関して説明したものと類似した軌道決定を通して識別することができる。
【0089】
次に、一次候補物体3512aを把持することが、二次候補物体3512bの把持を妨げると決定することができる。ここで
図7Dを参照すると、
図7Dに例示されるように、一次物体3512a及び二次物体3512bの各々との相互作用のために指定されたグリッパ3332/3334のうちの少なくとも一方の周りに、コンピュータシステム1100によってバウンディングボックス3600を生成することができる。グリッパ3332/3334のうちの第2のものが二次候補物体3512bに接近、移動、それと相互作用、それを把持、又はそれから離れようとするときに、一次候補物体3512a(その周りに生成したバウンディングボックス3600を有する)をグリップしている間のグリッパ3332/3334の姿勢がバウンディングボックス3600と物体取り扱い環境3400/物体供給源又は容器3420及び/又は複数の物体3500のうちの他の物体との衝突をもたらすかどうかを決定するために、コンピュータシステム1100によってバウンディングボックス3600を使用することができる。そうすることで、コンピュータシステム1100は、バウンディングボックス3600の対象となるグリッパ3332/3334によって把持された一次対象3512a及び二次対象3512bが、二次候補対象3512bの把持中に一次候補対象3512aがグリッパ3332/3334の把持から弾き飛ばされることをもたらし得るやり方で、他の物体3500及び/又は物体取り扱い環境3400に衝突するかどうかを決定することができる。
【0090】
二次候補物体3512bをフィルタリングするか、又は取り除く他の手段を更に採用することができる。例えば、実施形態では、一次物体3512aとは異なる配向を有する二次物体3512bを、取り除くことができる。実施形態では、一次物体3512aとは異なる物体タイプ又はモデルを有する二次物体3512bを、取り除くことができる。
【0091】
二次候補物体3512bを取り除いた後、軌道決定のために、一次候補物体3512aと取り除いていない二次候補物体3512bとの間の物体対を生成することができる。実施形態では、各一次候補物体3512aは、単一の二次候補物体3512bを割り当てて、物体対を形成することができる。複数の取り除いていない二次候補物体3512bの場合、単一の二次候補物体3512bは、例えば、一次候補物体3512aと二次候補物体3512bとの間の最も簡単又は最速の軌道に従って、かつ/又は動作4003に関して上述したように、把握可能な物体のランク付けに基づいて選択され得る。更なる実施形態において、各一次候補物体3512aは、複数の二次候補物体3512bを割り当てられて、複数の物体対を形成してもよく、軌道は、各々についてコンピュータであってもよい。そのような実施形態では、一次候補物体3512aと二次候補物体3512bとの間の対合を最終決定するために、最速又は最も簡単な軌道を選択してもよい。
【0092】
一次物体3512aが、把持可能な物体からのそれぞれの二次物体3512bと対合されると、コンピュータシステム1100は、それぞれの二次物体3512bと対になった各一次物体3512aを、本明細書でそれぞれ動作4006/4008/4010/4012で詳述されるように、把持決定、ロボットアーム軌道実行、エンドエフェクタ相互作用、及び目的地軌道実行のための標的物体3511a/3511bとして指定することができる。
【0093】
実施形態において、複数の標的物体3511a/3511bのうちの第1の標的物体3511aは、第1の把持モデル3350a/3350b/3350cと関連付けられ、複数の標的物体3511a/3511bのうちの第2の標的物体3511bは、第2の把持モデル3350a/3350b/3350cと関連付けられている。第1の標的物体3511aについて選択された把持モデル3350a/3350b/3350cは、上述のように、検出結果3520の複数の物体表現4013のうちの少なくとも1つに基づいて、第2の標的物体3511bについて選択された把持モデル3350a/3350b/3350cと類似又は同一であってもよい。例えば、第1の標的物体3511aは、
図8A~
図8Cに示されるように、グリッパフィンガ3332a、3332bが第1の標的物体3511aのリングの内壁に対して内側チャック、又は逆挟み運動を実施する、把持モデル3350aを使用してグリッパ3332によって把持され得る。第2の標的物体3511bも、
図9A~
図9Cに示されるように、グリッパフィンガ3334a、3334bが標的物体3511bのリングの内壁に対して内側チャック、又は逆挟み運動を実施する、把持モデル3350aを使用してグリッパ3334によって把持され得る。
【0094】
動作4005では、方法4000は、ロボット軌道を決定することを含み得る。動作4005は、少なくとも、アーム接近軌道3360を決定すること、エンドエフェクタ装置接近軌道3362を決定すること、及び目的地接近軌道3364を決定することを含み得る。
【0095】
動作4005は、ロボットアーム3320が複数の物体3500に接近するためにアーム接近軌道3360を決定すること、エンドエフェクタ装置接近軌道3362を決定すること、及び目的地接近軌道3364を決定することを含み得る。
図7Aは、供給源(すなわち、容器3420)から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による標的物体3510aの移送サイクルについての運動計画を図示する。移送サイクルは、物体供給源又は容器から目的地3440への物体の移動を行うための、ロボットアーム3320による移動の全サイクルを指す。実施形態では、動作4005は、ロボットアーム3320が複数の物体3500に接近するために、複数のアーム接近軌道3360a/3360bを決定することを含む。
図7Bは、供給源(すなわち、容器3420)から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による複数の標的物体3511a/3511bの移送サイクルについての運動計画を図示する。
【0096】
動作4005では、コンピュータシステム1100は、アーム接近軌道3360を決定し、アーム接近軌道は、ロボットアーム3320が、供給源又は容器3420の近傍に向かう方向に移動又は並進するように制御される経路を含む。そのようなアーム接近軌道3360を決定する際に、ロボットアーム3320の現在の場所から容器3420への最短の進行距離及び/又はロボットアーム3320の進行の最大利用可能速度などの要因に基づいて、最も速い経路(例えば、ロボットアーム3320が、その現在の位置から供給減又は容器3420の近傍へ並進するのにかかる時間が最小になることを許容する経路)が望ましい。最大利用可能進行速度を決定する際に、エンドエフェクタ装置3330の状態、すなわち、エンドエフェクタ装置3330が現在標的物体3510a又は標的物体3511a/3511bをそのグリップ内に有しているかどうかが決定される。実施形態では、エンドエフェクタ装置3330は、いかなる標的物体3510a又は標的物体3511a/3511bもグリップしておらず、したがって、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330から滑り落ちる/落下する実例が無効化されるので、ロボットアーム3320に利用可能な最大速度をアーム接近軌道3360に使用することができる。実施形態では、エンドエフェクタ装置3330は、そのグリッパ3332/3334によって把持された少なくとも1つの標的物体3510a又は標的物体3511a/3511bを有することができ、したがって、ロボットアーム3320の進行速度は、以下により詳細に説明するように、把持された標的物体3510a又は標的物体3511a/3511bへのグリッパ3332/3334のグリップ安定性を考慮に入れて算出する。
【0097】
動作4005では、方法4000は、エンドエフェクタ装置3330が標的物体3510a又は標的物体3511a/3511bに接近するために、エンドエフェクタ装置接近軌道3362を決定することを含み得る。エンドエフェクタ装置接近軌道3362は、ロボットアーム3320に取り付けたエンドエフェクタ装置3330の予想される進行経路を表し得る。コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362を決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道3362が決定された時点で、エンドエフェクタ装置接近軌道3362が決定される。エンドエフェクタ装置接近軌道3362は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。
【0098】
図7Bは、供給源又は容器3420から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による複数の標的物体3511a/3511bの移送サイクルについての運動計画の別の実施例を図示する。実施形態では、コンピュータシステム1100は、アーム接近軌道3360を決定し、ロボットアーム3320は、供給源又は容器3420の近傍に向かう方向に移動又は並進するように制御される。そのようなアーム接近軌道3360を決定する際に、ロボットアーム3320の現在の場所から容器3420への最短の進行距離、及び/又はロボットアーム3320の最大利用可能進行速度などの要因に基づいて、最短/最も速い経路が望ましい。最大利用可能進行速度を決定する際に、エンドエフェクタ装置3330の状態、すなわち、エンドエフェクタ装置3330が現在標的物体3510a又は標的物体3511a/3511bをそのグリップ内に有しているかどうかが決定される。軌道の実施例では、エンドエフェクタ装置3330は、いかなる標的物体3510a又は標的物体3511a/3511bもグリップしておらず、したがって、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330から滑り落ちる/落下する実例が無効化されるので、ロボットアーム3320に利用可能な最大速度をアーム接近軌道3360に利用することができる。他の実施例では、エンドエフェクタ装置3330は、そのグリッパ3332/3334によって把持される少なくとも1つの標的物体3510a又は標的物体3511a/3511bを有してもよく、それゆえ、ロボットアーム3320の進行速度は、以下でより詳細に記載されるように、把持された標的物体3510a又は標的物体3511a/3511b上のグリッパ3332/3334のグリップ安定性を考慮することによって計算される。
【0099】
図7Bは更に、標的物体3511a/3511bを選び取り又は把持するために使用される複数のエンドエフェクタ装置接近軌道3362a/3362bを図示する。実施形態では、コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、供給源又は容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道3362が決定された時点で、エンドエフェクタ装置接近軌道3362/3362a/3362bが決定される。エンドエフェクタ装置接近軌道3362/3362a/3362bは、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。エンドエフェクタ接近軌道3362/3362a/3362bは、グリッパ3332/3334の状態、すなわち、標的物体3510a又は標的物体3511a/3511bが現在、少なくとも1つのグリッパ3332/3334によってグリップされているかどうかによって更に決定され得る。そのようなシナリオでは、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定することは、標的物体3510a又は標的物体3511a/3511bを把持するための把持動作において、エンドエフェクタ装置3330の最適化されたエンドエフェクタ装置接近時間に基づいており、最適化されたエンドエフェクタ装置接近時間は、以下に記載される計算に基づいて、決定される最も効率的なエンドエフェクタ装置接近時間である。最適化されたエンドエフェクタ装置接近時間は、把持された標的物体3510a又は標的物体3511a/3511b上のグリッパ3332/3334のグリップ安定性に基づいて計算される。
【0100】
実施形態では、最適化されたエンドエフェクタ装置接近時間は、標的物体3510a又は標的物体3511a/3511bについての利用可能な把持モデル3350a/3350b/3350cに従って決定される。例えば、エンドエフェクタ装置3330が、選択された把持モデル3350a/3350b/3350cに従って、グリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bを適切に把持することを許容できるようなやり方で、グリッパ3332/3334を標的物体3510a又は標的物体3511a/3511bに隣接して適切に載置するのに必要な時間量は、最適化エンドエフェクタ装置接近時間に織り込まれる。把持モデル3350aを適切に実行するのに必要な時間は、把持モデル3350b又は把持モデル3350cを適切に実行するのに必要な時間よりも短くてもよいか、又は長くてもよい。したがって、グリップを適切に実行するのに必要な決定された最小時間を有する把持モデル3350a/3350b/3350cは、エンドエフェクタ装置3330のグリッパ3332/3334によって選び取り又は把持される標的物体3510a又は標的物体3511a/3511bのために選択され得る。選択された把持モデルは、例えば、グリップ3350a/3350b/3350cを適切に実行するのに必要な決定された最小限の時間と予測されたグリップ安定性4016とのバランスを取ることによって、要因のバランシングに基づいて選択することができ、それによって、不十分な予測されたグリップ安定性4016よりも速度を犠牲にし、かつグリップ障害(すなわち、エンドエフェクタ装置3330のグリッパ3332/3334によって選び取り又は把持された後に、標的物体3510a又は標的物体3511a/3511bを落とす、変位させる、投げる、又は別様で誤って取り扱う)の可能性を低くするために、より高速な把持モデル3350a/3350b/3350cを第2の高速把持モデル3350a/3350b/3350cに対して考慮に入れないことが可能である。
【0101】
動作4005では、方法4000は、1つ以上の目的地接近軌道3364(
図7Bでは目的地接近軌道3364a及び3364bとして図示されている)の決定を更に含み得る。実施形態では、ロボットアーム3320の目的地軌道3364a/3364bを決定することは、ロボットアーム3320が容器3420から1つ以上の目的地3440に進行するのに最適化された目的地軌道時間に基づいてもよい。最適化された目的地の軌道時間は、ロボットアーム3320が容器3420から目的地3440まで進行するための、決定された最も効率的な目的地軌道時間であってもよい。例えば、最適化された軌道時間は、ロボットアームの3320の現在の場所(例えば、容器3420において、又はその近くで)と目的地3364との間の最短経路によって決定され得る。最適化された軌道時間は、ロボットアーム3320が目的地3364に向かって障害なしに最も速く進行し得る経路によって決定され得る。実施形態では、ロボットアーム3320の目的地軌道3364を決定することは、エンドエフェクタ装置3330と標的物体3510a又は標的物体3511a/3511bとの間の予測されたグリップ安定性4016に基づく。例えば、より高い値を有する予測されたグリップ安定性4016は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bに対して有し得る、より強いグリップ又は保持を示し得、これにより、目的地軌道3364を目的地3440に向かって横断する間に、ロボットアーム3320及び/又はエンドエフェクタ装置3330の高速移動が許容される可能性がある。逆により低い値を有する予測されたグリップ安定性4016は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bに対して有し得る、より弱いグリップ又は保持を示し得、したがって、これにより、故障シナリオ、すなわち、標的物体3510a/3511a/3511bが落とされ、投げられ、又は別様で変位してしまうのを防止するために、目的地3440に向かって目的地軌道3364を横断する間に、ロボットアーム3320及び/又はエンドエフェクタ装置3330のより遅い移動が必要となる可能性がある。
【0102】
実施形態では、単一の目的地接近軌道3364aは、両方の標的物体3511a/3511bを同じ目的地3440に載置するために提供され得る。単一の目的地接近軌道3364aは、標的物体3511a/3511bを解放するための1つ以上のチャック解除又は把持解除動作を含み得る。実施形態では、複数の目的地接近軌道3364a/3364bは、同じ目的地3440の異なる場所又は2つの異なる目的地3440のいずれかに、標的物体3511a/3511bを載置するように決定することができる。第2の目的地接近軌道3364bは、目的地3440内の場所の間又は2つの目的地3440の間でエンドエフェクタ装置3332/3334を移すように決定することができる。
【0103】
動作4006では、方法4000は、エンドエフェクタ装置3330が、エンドエフェクタ装置接近軌道3362/3362a/3362bの端部で、標的物体3510a又は標的物体3511a/3511bに到達すると、標的物体3510a又は標的物体3511a/3511bをエンドエフェクタ装置3330で把持又はグリップするための選び取り又はグリップ手順を決定することを含む。選び取り又はグリップ手順は、エンドエフェクタ装置3330が、グリッパ3332/3334を用いて標的物体3510a又は標的物体3511a/3511bに接近し、相互作用し、接触し、触り、又は別様で把持する方法を表し得る。把持モデル3350a/3350b/3350cは、標的物体3510a又は標的物体3511a/3511bがどのようにエンドエフェクタ装置3330によって把持され得るかを説明する。例示の目的で、
図6A~
図6Cは、上記で詳述したように、標的物体3510a又は標的物体3511a/3511bをグリップするための3つの異なる把持モデル3350a/3350b/3350cを例示するが、他の把持モデルも可能であることが理解されるべきである。
【0104】
把持動作を決定することは、動作4006の把持動作決定において、エンドエフェクタ装置3330によって使用される、少なくとも1つの把持モデル3350a、3350b、又は3350cを、複数の利用可能な把持モデル3350a/3350b/3350cから選択することを含み得る。実施形態では、コンピュータシステム1100は、最高ランクを有する把持モデル3350a/3350b/3350cに基づいて、把持動作を決定する。コンピュータシステム1100は、複数の利用可能な把持モデル3350a/3350b/3350cの各々に対するランクを、複数の把持モデル3350a/3350b/3350cの各々の予測されたグリップ安定性4016に従って決定するように構成されてもよい。把持モデル3350a/3350b/3350cの各々は、アーム接近軌道3360及び/又はエンドエフェクタ装置接近軌道3362の実行中に、ロボットアーム3320によって標的物体3510a又は標的物体3511a/3511bが移動できる速度、加速、及び/又は減速を決定することができる、関連付けられた移送速度修正器を有し得る、予測されたグリップ安定性4016などの要因に従ってランク付けすることができる。予測されたグリップ安定性4016は更に、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330によって一旦選び取り又は把持されると、どのように固定されるかを示す指標であってもよい。一般に、予測されたグリップ安定性4016、又はエンドエフェクタ装置3330が標的物体3510a/3511a/3511bを保持する能力が強いほど、ロボット3300は、故障シナリオ、すなわち、標的物体3510a/3511a/3511bがグリッパから落とされる、投げられる、又は別様で変位させられることをもたらすことなく、標的物体3510a/3511a/3511bを保持/把持しながら、決定したアーム接近軌道3360及び/又はエンドエフェクタ接近軌道3362/3362a/3362bを通してロボットアーム3320及び/又はエンドエフェクタ装置3330を移動できる確率は上がる。
【0105】
把持モデル3350a/3350b/3350cの各々のランクを決定する実施例では、コンピュータシステム1100は、把持モデル3350aが、把持モデル3350bよりも高い予測されたグリップ安定性4016を有する可能性があり、把持モデル3350bが、把持モデル3350cよりも高い予測されたグリップ安定性4016を有する可能性があると決定することができる。別の例として、検出された物体3510は、検出された物体3510に対応する複数の物体表現4013に基づいて、把持モデル3350a/3350b/3350cのうちの少なくとも1つによって把持するためにアクセスできない場合があり(すなわち、検出された物体3510のうちの少なくとも1つは、特定の把持モデル3350a/3350b/3350cを有効に使用することが許容されないような場所若しくは配向、又は形状である)、したがって、その時点では、把持モデル3350a/3350b/3350cを介してエンドエフェクタ装置3330によって選び取ることができない。そのようなシナリオでは、残りの把持モデル3350a/3350b/3350cは、予測されたグリップ安定性4016について測定される。例えば、把持モデル3350aは、標的物体3510a又は標的物体3511a/3511bを、例えば、以前に決定された複数の物体表現4013に基づいて、選び取り又は把持する選択肢として利用できない場合がある。したがって、把持モデル3350aは、可能な限り低いランク値、空のランク値、又は全くランクがない(すなわち、完全に無視される)ことを受け取ることができる。したがって、動作4006の把持動作決定中に適用するランクを計算する際に、把持モデル3350aの予測されたグリップ安定性4016を除外することができる。例えば、把持モデル3350bの予測されたグリップ安定性4016が、把持モデル3350cの予測されたグリップ安定性よりも高い値を有すると決定される場合、把持モデル3350bは、より高い値のランクを受け取る一方、把持モデル3350cは、より低い値のランクを受け取る(ただし、依然として、把持モデル3350aよりも値が高い)。他の実施例では、把持モデル3350a/3350b/3350cのうちのアクセス不可能なものは、ランク付け手順に含まれてもよいが、最低ランクを割り当ててもよい。
【0106】
実施形態では、エンドエフェクタ装置3330によって使用するための少なくとも1つの把持モデル3350a/3350b/3350cを決定することは、予測されたグリップ安定性4016の最高判定値を有する把持モデルのランクに基づく。把持モデル3350aのランクは、把持モデル3350b及び/又は3350cのランクよりも高い値を有する予測されたグリップ安定性4016を有する可能性があり、そのため、把持モデル3350aは、把持モデル3350b及び/又は3350cよりも高くランク付けされる可能性がある。各移送サイクル内の標的物体3510a/3511a/3511bの移送の速度を最大化又は最適化するために、コンピュータシステム1100は、類似の予測されたグリップ安定性4016を有する標的物体3510a/3511a/3511bを選択することができる。実施形態では、コンピュータシステム1100は、同じ把持モデル3350a/3350b/3350cを有する複数の標的物体3511a/3511bを選択することができる。コンピュータシステム1100は、検出結果3520に基づいて、標的物体3511a/3511bをグリップしている間に移送サイクルについての運動計画を計算することができる。目的は、供給源容器3420と目的地3440との間の移送速度を最適化しながら、供給源容器3420において複数の標的物体3511a/3511bを選び取るための計算時間を短縮することである。このようにして、ロボット3300は、両方の標的物体3511a/3511bが同一の予測されたグリップ安定性4016を有するため、両方の標的物体3511a/3511bを最大速度で移送することができる。逆にコンピュータシステム1100が、より高いランク(すなわち、予測されたグリップ安定性4016のより高い判定値)を有する把持モデル3350a/3350b/3350cを使用して、エンドエフェクタ装置3330のグリッパ3332/3334によって把持される標的物体3510a/3511a/3511bと、より低いランク(すなわち、予測されたグリップ安定性4016のより低い判定値)を有する把持モデル3350a/3350b/3350cを使用して、エンドエフェクタ装置3330のグリッパ3332/3334によって把持される第2の標的物体3510a/3511a/3511bとを選択した場合、移送の速度は、ランクのより低い把持モデル3350a/3350b/3350cを有する標的物体3510a/3511a/3511bのより低い予測されたグリップ安定性4016によって制限されるか、又は上限が設定される。つまり連続する移送サイクルの場合、予測されたグリップ安定性4016がより高く、かつ移送速度がより高い把持モデル3350a/3350b/3350cを有する2つの標的物体3511a/3511bを選び取り、その後、予測されたグリップ安定性4016がより低く、かつ移送速度がより低い把持モデル3350a/3350b/3350cを有する2つの標的物体3511a/3511bを選び取ることは、両方の移送サイクルが後のシナリオでより遅い移送速度に制限されるため、ともに予測されたグリップ安定性4016がより高い把持モデル3350a/3350b/3350cを有する1つの標的物体3511aと、予測されたグリップ安定性4016がより低い把持モデル3350a/3350b/3350cを有する1つの標的物体3511bとを含む連続する移送サイクルよりも最適である。
【0107】
動作4005の様々な軌道決定及び把持動作決定4006は、方法4000の動作に関して順次説明される。好適で適切な場合、方法4000の様々な動作は、互いに同時に、又は次に提示される異なる順序で発生し得ることが理解される。例えば、軌道決定(目的地接近軌道3364など)は、他の軌道の実行中に行われてもよい。したがって、目標接近軌道3364は、アーム接近軌道3362の実行時に決定され得る。
【0108】
動作4008では、方法4000は、第1のコマンド(例えば、アーム接近コマンド)を出力して、アーム接近軌道3360内のロボットアーム3300を制御して、複数の物体3500に接近することを含み得る。
図7Bに図示するように、コンピュータシステム1100は、第1のコマンドを出力して、供給源又は容器3420の近傍外の領域から、供給源又は容器3420の近傍における、又は近傍内の場所へロボットアーム3320を制御することができる。第1のコマンドは、ロボットアーム3320を制御して、目的地3440における、又はその近くの領域から、供給源又は容器3420の近傍における、又は近傍内の場所に移動させることができる。動作4008では、方法4000は、第2のコマンド(例えば、エンドエフェクタ装置接近コマンド)を出力して、エンドエフェクタ装置接近軌道3362内のロボットアーム3320を制御して、標的物体3510a/3511a/3511bに接近する(例えば、エンドエフェクタ装置3330に標的物体3510a/3511a/3511bに接近させる)ことを含み得る。
図7Bに図示するように、エンドエフェクタ装置接近軌道3362a/3362bを使用して、複数の標的物体3511a/3511bに接近することができる。
【0109】
動作4010では、方法4000は、第3のコマンド(例えば、エンドエフェクタ装置制御コマンド)を出力して、把持動作でエンドエフェクタ装置3330を制御して、標的物体3510a又は標的物体3511a/3511bを把持することを含む。エンドエフェクタ装置3330は、グリッパ3332/3334のグリッピングフィンガ3332a/3332b/3334a/3334bを使用して、最高ランク及び/又は予測されたグリップ安定性4016を有すると以前に決定した把持モデル3350a/3350b/3350cを使用して標的物体3510a/3511a/3511bを把持することができる。グリッピングフィンガ3332a/3332b/3334a/3334bは、エンドエフェクタ装置3330が標的物体3510a/3511a/3511bと接触すると、所定の把持モデル3350a/3350b/3350cと一致するやり方で移動又は並進するように制御することができる。
【0110】
動作4012では、方法4000は、目的地軌道3364を実行して、ロボットアーム3320を制御して、目的地に接近することを更に含むことができる。動作4012は、第4のコマンド(例えば、ロボットアーム制御コマンド)を出力して、目的地軌道3364内のロボットアーム3320を制御することを含み得る。実施形態では、目的地軌道3364は、上述の軌道決定動作4005の間に決定され得る。実施形態では、目的地軌道3364は、軌道実行動作4008、及びエンドエフェクタ相互作用動作4010の後に決定され得る。実施形態では、目的地軌道3364は、他の動作の実施中を含む、目的地軌道3364の実行前の任意の時点において、コンピュータシステム1100によって決定され得る。実施形態では、動作4012は、第5コマンド(例えば、エンドエフェクタ装置解放コマンド)を出力して、ロボットアーム3320及びエンドエフェクタ装置3330が目的地軌道3364の終わりに目的地3440に到達した際に、標的物体3510a又は標的物体3511a/3511bを目的地3440内に、又は目的地において解放、把持解除、又はチャック解除するようにエンドエフェクタ装置3330を制御することを更に含み得る。
【0111】
高レベルでは、供給源容器3420から目的地3440へのロボットアーム3320による標的物体3510a又は標的物体3511a/3511bの移送サイクルについての運動計画は、
図7Aに図示される動作である、供給源容器3420 3420の場所から標的物体3510a又は標的物体3511a/3511bを選び取ることと、標的物体3510a又は標的物体3511a/3511bを目的地3440の場所に移送することと、標的物体3510a又は標的物体3511a/3511bを目的地3440の場所に載置することと、供給源容器3420の場所に戻ることと、を伴う。全体の移送サイクル時間は、ロボットアーム3320上のエンドエフェクタ装置3330による標的物体3510a又は標的物体3511a/3511bの予測された把持安定性4016に起因して、供給源容器3420 3420から目的地3440への標的物体3510a又は標的物体3511a/3511bの移送によって上限が設定される。
【0112】
一般に、本明細書に記載の方法4000は、開始/供給源の場所からタスク/目的地の場所への標的物体(例えば、実行タスクに対応するパッケージ、箱、ケース、ケージ、パレットなどのうちの1つ)の操作(例えば、移動及び/又は再配向)に使用され得る。例えば、荷下ろしユニット(例えば、デバンニングロボット)は、標的物体をキャリア(例えば、トラック)内の場所からコンベヤ上の場所に移送するように構成され得る。また、移送ユニットは、標的物体を1つの場所(例えば、コンベヤ、パレット、又はビン)から別の位置(例えば、パレット、ビンなど)に移送するように構成され得る。別の例として、移送ユニット(例えば、パレタイジングロボット)は、標的物体を、供給源の場所(例えば、パレット、選び取り領域、及び/又はコンベヤ)から目的地パレットに移送するように構成され得る。動作完了時に、輸送ユニット(例えば、コンベヤ、自動搬送車両(AGV)、棚搬送ロボットなど)は、移送ユニットに関連付けられた領域から、装填ユニットに関連付けられた領域へ、標的物体を移送することができ、装填ユニットは、(例えば、標的物体を運ぶパレットを移動させることによって)移送ユニットから、格納場所(例えば、棚上の場所)へ、標的物体を移送することができる。タスク及び関連付けられたアクションに関する詳細は、上記に記載されている。
【0113】
例示のために、コンピュータシステム1100のシステムは、包装及び/又は出荷センタの状況下で説明されるが、コンピュータシステム1100は、製造、組立、保管/在庫、医療、及び/又は他のタイプの自動化のためなど、他の環境/他の目的のためにタスクを実行するように構成できることが理解される。また、コンピュータシステム1100は、マニピュレータ、サービスロボット、モジュラロボットなどの他のユニット(図示せず)を含み得ることも理解される。例えば、いくつかの実施形態では、コンピュータシステム1100は、ケージカート又はパレットからコンベヤ又は他のパレット上に物体を移送するためのデパレタイジングユニット、物体をある容器から別の容器に移送するための容器切り替えユニット、物体をラッピング/収納するための包装ユニット、その1つ以上の特性に従って物体をグループ分けするための選別ユニット、その1つ以上の特性に従って物体を異なって操作する(例えば、選別、グループ分け、及び/又は移送する)するピースピックユニット、又はそれらの組み合わせなどを含み得る
【0114】
関連分野の当業者にとって、本明細書に記載する方法及び用途への、その他の好適な修正並びに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、例示的な例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載及び添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセス若しくは方法のいずれのある特定の行為又は事象は、異なるシーケンスで実施されてもよく、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為又は事象が、方法又はプロセスを遂行するのに必要でなくてもよい)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、又はユニットにより実施されていると記載しているものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって実施されてもよいことは理解されるべきである。したがって、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、様々な変更及び修正を当業者が及ぼし得る。
【0115】
更なる実施形態は、以下の実施形態を含む。
実施形態1は、コンピューティングシステムであって、エンドエフェクタ装置を含む、又はエンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムと、少なくとも1つの処理回路であって、ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む物体取り扱い環境内にあるとき、物体の供給源から目的地へ標的物体を移送するために、標的物体を、物体の供給源内の複数の物体の中から識別すること、ロボットアームが複数の物体に接近するために、アーム接近軌道を生成すること、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成すること、エンドエフェクタ装置で標的物体を把持するための把持動作を生成すること、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力すること、エンドエフェクタ装置接近軌道内でロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力すること、及び把持動作においてエンドエフェクタ装置を制御して、標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力すること、を実施するように構成された少なくとも1つの処理回路と、を備える、コンピューティングシステムである。
実施形態2は、ロボットアームが目的地に接近するための目的地軌道を生成することと、目的地軌道に従ってロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、エンドエフェクタ装置を制御して、目的地において標的物体を解放するために、エンドエフェクタ装置解放コマンドを出力することと、を更に含む、実施形態1のコンピュータシステムである。
実施形態3は、ロボットアームの目的地軌道を決定することが、ロボットアームが供給源から目的地に進行するための最適化された目的地軌道時間に基づく、実施形態2のコンピュータシステムである。
実施形態4は、ロボットアームの目的地軌道を決定することが、エンドエフェクタ装置と標的物体との間の予測されたグリップ安定性に基づく、実施形態2のコンピュータシステムである。
実施形態5は、エンドエフェクタ装置接近軌道を決定することが、把持動作でエンドエフェクタ装置が標的物体を把持するための最適化されたエンドエフェクタ装置接近時間に基づく、実施形態1のコンピュータシステムである。
実施形態6は、最適化されたエンドエフェクタ装置接近時間が、標的物体に対する利用可能な把持モデルに基づいて決定される、実施形態5のコンピュータシステムである。
実施形態7は、把持動作を決定することが、把持動作でエンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含む、実施形態1のコンピュータシステムである。
実施形態8は、少なくとも1つの処理回路が、複数の把持モデルの各々の予測されたグリップ安定性に従って、複数の利用可能な把持モデルの各々に対するランクを決定するように更に構成されている、実施形態7のコンピュータシステムである。
実施形態9は、エンドエフェクタ装置によって使用するための少なくとも1つの把持モデルを決定することが、予測されたグリップ安定性の最も高い判定値を有するランクに基づく、実施形態8のコンピュータシステムである。
実施形態10は、少なくとも1つの処理回路が、各々が物体の供給源内の1つ以上の物体のうちの検出された物体を表し、検出された物体の物体配向、物体の供給源内の検出された物体の場所、他の物体に対する検出された物体の場所、及び信頼度決定のうちの少なくとも1つを定義する、対応する物体表現を含む、1つ以上の検出結果を生成することのために更に構成されている、実施形態1のコンピュータシステムである。
実施形態11は、複数の物体が、サイズ、形状、重量、及び材料組成物に関して実質的に同一である、実施形態1のコンピュータシステムである。
実施形態12は、複数の物体が、サイズ、形状、重量、及び材料組成において互いに異なる、実施形態1のコンピュータシステムである。
実施形態13は、1つ以上の検出結果から標的物体を識別することが、検出された物体に対して利用可能な把持モデルが存在するかを決定することと、検出された物体から、利用可能な把持モデルなしで、検出された物体を取り除くことと、を含む、実施形態10のコンピュータシステムである。
実施形態14は、物体配向、物体の供給源内の検出された物体の場所、及び/又は物体間距離のうちの少なくとも1つに基づいて、検出された物体を取り除くことを更に含む、実施形態13のコンピュータシステムである。
実施形態15は、少なくとも1つの処理回路が、標的物体を含む複数の標的物体を検出結果から識別するために更に構成されている、実施形態1のコンピュータシステムである。
実施形態16は、標的物体が、第1の把持モデルと関連付けられた複数の標的物体の第1の標的物体であり、複数の標的物体の第2の標的物体が、第2の把持モデルと関連付けられている、実施形態15のコンピュータシステムである。
実施形態17は、複数の標的物体を識別することが、エンドエフェクタ装置による把持のための第1の標的物体、及びエンドエフェクタ装置による把持のための第2の標的物体を選択することを含む、実施形態15のコンピュータシステムである。
実施形態18は、実施形態17のコンピュータシステムであり、少なくとも1つの処理回路が、ロボットアームを制御して第2の標的物体に接近するために、第2のエンドエフェクタ装置接近コマンドを出力することと、エンドエフェクタ装置を制御して第2の標的物体を把持するために、第2のエンドエフェクタ装置制御コマンドを出力し、ロボットアームが目的地に接近するための目的地軌道を生成することと、目的地軌道に従ってロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、第1の標的物体及び第2の標的物体を目的地において解放するように、エンドエフェクタ装置を制御するために、エンドエフェクタ装置解放コマンドを出力することと、のために更に構成されている、実施形態17のコンピュータシステムである。
実施形態19は、物体の供給源から標的物体を選び取る方法であって、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道に従ってロボットアームを制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道に従ってロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、方法である。
実施形態20は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能な、物体の供給源から標的物体を選び取るための方法を実装するための実行可能な命令で構成された、非一時的コンピュータ可読媒体であって、方法が、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道内でエンドエフェクタ装置を制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道内でロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、非一時的コンピュータ可読媒体である。
【手続補正書】
【提出日】2023-07-12
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、「ROBOTIC SYSTEM WITH OBJECT HANDLING」と題する、2022年3月8日に出願された米国仮出願第63/317,558号の利益を主張し、その全体の内容が参照により本明細書に組み込まれる。
【0002】
本技術は、概して、ロボットシステム、より詳細には、物体を検出し、取り扱うためのシステム、プロセス、及び技法を対象とする。より詳細には、本技術は、容器中の物体を検出し、取り扱うために使用され得る。
【背景技術】
【0003】
性能がますます向上し、コストが低減するにつれ、現在、多くのロボット(例えば、物理的アクションを自動/自律的に実行するように構成された機械)が様々な異なる分野で広く使用されている。ロボットは、例えば、製造及び/又は組立、梱包及び/又は包装、輸送及び/又は出荷などにおける様々なタスク(例えば、空間を通した物体の操作又は移送)を実行するために使用され得る。タスクを実行する際に、ロボットは、人のアクションを再現することができ、それによって、別様で危険又は反復的なタスクを実施するのに必要な人の関与を置き換えるか、又は低減することができる。
【0004】
しかしながら、技術が進歩しているにもかかわらず、ロボットは多くの場合、より大きな及び/又はより複雑なタスクを実行するために要求される、人間の相互作用を複製するのに必要な精巧さを欠く。したがって、ロボット間の動作及び/又は相互作用を管理するための改善された技法及びシステムに対するニーズが依然として存在する。
【発明の概要】
【0005】
実施形態では、コンピューティングシステムが提供される。コンピューティングシステムは、エンドエフェクタ装置を含む又はエンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムを含む。少なくとも1つの処理回路は、ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む物体取り扱い環境内にあるとき、物体の供給源から目的地へ標的物体を移送するために、標的物体を、物体の供給源内の複数の物体の中から識別することと、ロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力することと、エンドエフェクタ装置接近軌道に従ってロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を実行するように構成することができる。
【0006】
別の実施形態では、物体の供給源から標的物体を選び取る方法が提供される。方法は、標的物体を、物体の供給源内の複数の物体の中から識別するステップと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を決定するステップと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成するステップと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成するステップと、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力するステップと、エンドエフェクタ装置接近軌道に従ってロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力するステップと、エンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力するステップと、を含む。
【0007】
別の実施形態では、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能で、物体の供給源から標的物体を選び取るための方法を実装するための実行可能な命令を有する非一時的コンピュータ可読媒体が提供される。方法は、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道に従ってロボットアームを制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道に従ってロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、エンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む。
【図面の簡単な説明】
【0008】
【
図1A】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムを図示する。
【
図1B】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの実施形態を図示する。
【
図1C】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの別の実施形態を図示する。
【
図1D】本明細書の実施形態による、物体の検出、識別、及び取り出しを実施するか、又は容易にするためのシステムの更に別の実施形態を図示する。
【
図2A】本明細書の実施形態と一致する、物体の検出、識別及び取り出しを実施するか、又は容易にするように構成された計算システムを示すブロック図である。
【
図2B】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成された計算システムの一実施形態を示すブロック図である。
【
図2C】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成されたコンピューティングシステムの別の実施形態を図示するブロック図である。
【
図2D】本明細書の実施形態と一致する、物体の検出、識別、及び取り出しを実施するか、又は容易にするように構成されたコンピューティングシステムの更に別の実施形態を図示するブロック図である。
【
図2E】システムによって処理され、本明細書の実施形態と一致する、画像情報の実施例である。
【
図2F】システムによって処理され、本明細書の実施形態と一致する、画像情報の実施例である。
【
図3A】本明細書の実施形態による、ロボットシステムを動作させるための例示的な環境を図示する。
【
図3B】本明細書の実施形態と一致する、ロボットシステムによる物体の検出、識別、及び取り出しのための例示的な環境を図示する。
【
図3C】アーム、基部、及びエンドエフェクタ装置を有するロボットシステムを図示する。
【
図3D】アーム、基部、及びエンドエフェクタ装置を有するロボットシステムの別の例示的な実施形態を図示する。
【
図4】本明細書の実施形態による、標的物体の検出、計画、選び取り、移送、及び載置のための方法及び動作の全体的な流れを図示する、フロー図を提供する。
【
図5A】複数の物体を含む容器又は供給源の場所を図示する。
【
図5B】容器又は供給源の場所内の複数の物体からの複数の検出された物体についての、本明細書に記載の検出結果の視覚的描写を図示する。
【
図5C】本明細書の実施形態と一致する検出結果からの物体認識の実施例を図示する。
【
図6A】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図6B】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図6C】ロボットシステムによって利用される、物体を掴むための様々な把持モデルを図示する。
【
図7A】供給源から目的地へのロボットアームによる物体の移送サイクルについての運動計画を図示する。
【
図7B】本明細書に記載のロボットシステムを介した物体取り扱いのシステム及び方法の実施形態を図示する。
【
図7C】容器又は供給源の場所内の複数の物体からの複数の検出された物体についての、本明細書に記載された検出結果の視覚的描写を図示し、一次物体及び二次物体は、本明細書に更に記述される動作を介して選択される。
【
図7D】本明細書に記述されたように、把持動作中のロボットシステムを介したバウンディングボックス使用の実施例を図示する。
【
図8A】エンドエフェクタ装置把持接近軌道を図示する。
【発明を実施するための形態】
【0009】
物体の検出、識別、及び取り出しに関連するシステム及び方法が、本明細書に記載されている。具体的には、開示されたシステム及び方法は、物体が容器内に位置している場合における物体の検出、識別、及び取り出しを容易にすることができる。本明細書で論じるように、物体は、金属又は他の材料であってもよく、箱、ビン、木枠などの容器を含む、供給源内に位置してもよい。例えば、ねじで満たされた箱のように、物体は容器内で未整理又は不規則に置かれる可能性がある。こうした状況での物体の検出及び識別は、物体の不規則な配置のために困難であり得るが、本明細書で論じられるシステム及び方法は、規則的又は半規則的に配置される物体の検出、識別、及び物体の取り出しを等しく改善し得る。したがって、本明細書に記載のシステム及び方法は、複数の物体の中から個々の物体を識別するように設計され、個々の物体は、異なる場所、異なる角度などで配置されてもよい。本明細書で論じられるシステム及び方法は、ロボットシステムを含み得る。本明細書の実施形態に従って構成されたロボットシステムは、複数のロボットの動作を調整することによって、統合されたタスクを自律的に実行し得る。ロボットシステムは、本明細書に記載されるように、制御し、コマンドを発行し、ロボットデバイス及びセンサからの情報を受信し、ロボットデバイス、センサ及びカメラによって生成されたデータにアクセスし、分析し、及び処理し、ロボットシステムの制御に使用可能なデータ又は情報を生成し、ロボットデバイス、センサ、及びカメラのアクションを計画するように構成されたロボットデバイス、アクチュエータ、センサ、カメラ、及びコンピューティングシステムの任意の好適な組み合わせを含み得る。本明細書で使用される場合、ロボットシステムは、ロボットアクチュエータ、センサ、又はその他のデバイスに直ちにアクセス又は制御する必要はない。ロボットシステムは、本明細書に記載するように、情報の受信、分析、及び処理を通して、そのようなロボットアクチュエータ、センサ、及び他のデバイスの性能を改善するように構成された計算システムであり得る。
【0010】
本明細書に記載される技術は、物体の識別、検出、及び取り出しで使用するために構成されたロボットシステムに技術的改善を提供する。本明細書に記載する技術的改善は、これらのタスクの速度、精度、及び正確さを増加させ、容器からの物体の検出、識別、及び取り出しを更に容易にする。本明細書に記載されるロボットシステム及び計算システムは、容器からの物体を識別、検出、及び取り出す技術的問題に対処するものであり、物体は不規則に配置され得る。この技術的問題に対処することにより、物体の識別、検出、及び取り出しの技術が改善される。
【0011】
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書で論じるように、ロボットアクチュエータ構成要素(例えば、ロボットアーム、ロボットグリッパなど)、様々なセンサ(例えば、カメラなど)、及び様々なコンピューティング又は制御システムを含み得る。本明細書で論じるように、コンピューティングシステム又は制御システムは、ロボットアーム、ロボットグリッパ、カメラなどの様々なロボット構成要素を「制御すること」と呼んでもよい。そのような「制御」は、ロボット構成要素の様々なアクチュエータ、センサ、及びその他の機能的態様の直接的な制御及び相互作用を指し得る。例えば、コンピューティングシステムは、様々なモータ、アクチュエータ、及びセンサにロボット移動を引き起こすために必要な信号の全てを発行又は提供することによって、ロボットアームを制御することができる。そのような「制御」はまた、そのようなコマンドをロボット移動を引き起こすために必要な信号に変換する更なるロボット制御システムへの抽象的又は間接的なコマンドの発行を指し得る。例えば、コンピューティングシステムは、ロボットアームが移動すべき軌道又は目的地の場所を記述するコマンドを発行することによってロボットアームを制御してもよく、ロボットアームに関連付けられた更なるロボット制御システムは、そのようなコマンドを受信及び解釈し、次いで、ロボットアームの様々なアクチュエータ及びセンサに必要な直接信号を提供して、必要な移動を引き起こしてもよい。
【0012】
具体的には、本明細書に記載の本技術は、ロボットシステムが、容器内の複数の物体の間で標的物体と相互作用するのを支援する。容器からの物体の検出、識別、及び取り出しには、好適な物体認識テンプレートの生成、識別に使用可能な特徴の抽出、並びに検出仮説の生成、精密化、及び検証を含む、数点のステップが必要である。例えば、物体の不規則な配置の可能性があるため、複数の異なる姿勢(例えば、角度及び場所)の、かつ他の物体の部分によって潜在的に不明瞭な場合に、物体を認識し、識別することが必要な場合がある。
【0013】
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技法は、本明細書に開示される各具体的な詳細を含まずに実施され得る。他の実例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。この説明における「実施形態」、「一実施形態」、又は同様のものへの参照は、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしも全て同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。更に、任意の1つの実施形態に関して記載される特定の特徴、構造、材料、又は特性は、このような項目が相互に排他的でない限り、任意の他の実施形態のものと任意の好適な様式で組み合わせることができる。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0014】
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技法のいくつかの重要な態様を不必要に不明瞭にし得る、構造又はプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。更に、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有し得る。したがって、開示された技術は、追加の要素を有するか、又は以下に説明される要素のうちの数点を有しない、他の実施形態を有し得る。
【0015】
以下に説明される本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はコントローラによって実行されるルーチンを含む、コンピュータ又はコントローラ実行可能命令の形態を取り得る。関連分野の当業者であれば、開示された技法は、以下に示され説明されるもの以外のコンピュータ又はコントローラシステム上で、若しくはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技法は、以下に説明されるコンピュータ実行可能命令のうちの1つ以上を実行するように、特別にプログラム、構成、又は構築される、専用コンピュータ又はデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される「コンピュータ」及び「コントローラ」という用語は、任意のデータプロセッサを指し、インターネット家電及び手持ち式デバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラ又は携帯電話、マルチプロセッサシステム、プロセッサベース又はプログラム可能な家庭用電化製品、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータ及びコントローラによって取り扱われる情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体において提示され得る。コンピュータ又はコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体内に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の好適なメモリデバイスに包含され得る。
【0016】
「結合された」及び「接続された」という用語は、それらの派生語とともに、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続された」は、2つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合された」という用語は、2つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にあるか、又は2つ以上の要素が互いに協働するか、若しくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)か、又はその両方を示すために使用され得る。
【0017】
コンピューティングシステムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面の場所を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に既知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0018】
図1Aは、物体検出、又はより具体的には、物体認識を実施するためのシステム1000を図示する。より詳細には、システム1000は、コンピューティングシステム
もしくはコンピュータシステム1100及びカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を説明するか、若しくは別様で表し、又はより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠、パレット、又は他の容器などの、そのような施設に位置する物体を表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づき物体認識又は物体登録を実施すること、及び/又は画像情報に基づきロボット相互作用計画を実施することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(用語「及び/又は」並びに「又は」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他の物体との間のロボット相互作用を容易にするように、施設においてロボットを制御するために使用され得る。コンピューティングシステム1100及びカメラ1200は、同じ施設において位置し得、又は互いに遠隔に位置し得る。例えば、コンピューティングシステム1100は、倉庫又は小売空間から遠隔にあるデータセンタ内でホストされるクラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介してカメラ1200と通信することができる。
【0019】
実施形態では、カメラ1200(画像感知デバイスとも呼ばれ得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、
図1Bは、コンピューティングシステム1100、及びいずれもカメラ1200の実施形態であり得る、カメラ1200A並びにカメラ1200Bを含むシステム1500A(システム1000の実施形態であり得る)を図示する。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を説明する2D画像を含む、又はそれを形成する、2D画像情報を生成するように構成されている2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、又はそれを形成する、3D画像情報を生成するように構成されている3Dカメラ(空間構造感知カメラ又は空間構造感知デバイスとも呼ばれる)であり得る。空間構造情報は、カメラ1200Bの視野中にある様々な物体の表面上の場所など、カメラ1200Bに対する様々な場所のそれぞれの奥行き値を説明する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野内又は物体の表面上のこれらの場所を、物理的場所と称することもできる。この実施例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野内の物体の1つ以上の表面上の場所を説明する点群を含むことができ、又はこの点群を生成するために使用することができる。より具体的には、空間構造情報は、物体の構造(物体構造とも呼ぶ)上の様々な場所を説明することができる。
【0020】
実施形態では、システム1000は、カメラ1200の環境内でロボットと様々な物体との間のロボット相互作用を容易にするための、ロボット動作システムであり得る。例えば、
図1Cは、
図1A及び
図1Bのシステム1000/1500Aの実施形態であり得る、ロボット動作システム1500Bを図示する。ロボット動作システム1500Bは、コンピューティングシステム1100、カメラ1200、及びロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境内の1つ以上の物体、例えば、箱、木枠、ビン、パレット、又はその他の容器と相互作用するために使用することができる。例えば、ロボット1300は、1つの場所から容器を選び取り、それらを別の場所に移動するように構成することができる。一部の事例では、ロボット1300は、容器又は他の物体のグループが降ろされて、例えば、コンベヤベルトに移動される、パレットから降ろす動作を実施するために使用することができる。一部の実装形態では、カメラ1200は、以下に論じる、ロボット1300又はロボット3300に取り付けることができる。これは、カメラの手持ち又は手元ソリューションとしても知られる。カメラ1200は、ロボット1300のロボットアーム3320に取り付けることができる。次いで、ロボットアーム3320は、様々なピック領域に移動して、それらの領域に関する画像情報を生成することができる。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫又は他の構造の天井に装着されてもよく、構造に対して静止したままであってもよい。一部の実装形態では、ロボット1300とは別個の複数のカメラ1200、及び/又はロボット1300とは別のカメラ1200が手元カメラ1200と組み合わせて使用されることを含む、複数のカメラ1200を使用することができる。一部の実装形態では、1つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット1300とは別個に、専用のロボットシステムに装着又は固定されてもよい。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」について論じることができる。カメラの手持ちソリューションについては、カメラ1200の制御は、カメラ1200が装着又は取り付けられるロボット1300の制御も含む。
【0021】
実施形態では、
図1A~
図1Cのコンピューティングシステム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、又はロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器又は他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。そのような実施形態では、コンピューティングシステム1100は、例えば、カメラ1200によって生成された画像情報に基づき、そのようなコマンドを生成するように構成され得る。例えば、コンピューティングシステム1100は、画像情報に基づき運動計画を決定するように構成されてもよく、運動計画は、例えば、物体をグリップするか、又は別様で把持することを意図し得る。コンピューティングシステム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成することができる。
【0022】
実施形態では、コンピューティングシステム1100は、視覚システムを形成し得るか、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は、代替的に若しくはそれに加えて、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報が、上で論じられた3D画像情報及び/又は2D画像情報、若しくはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、コンピューティングシステム1100が、視覚システムを形成する場合、視覚システムは、上で論じられたロボット制御システムの一部であってもよく、又はロボット制御システムから分離してもよい。視覚システムが、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する情報を出力するように構成され得る。情報は、ロボット制御システムに出力されてもよく、ロボット制御システムは、視覚システムからそのような情報を受信し、その情報に基づいて運動計画を実施し、及び/又はロボット相互作用運動コマンドを生成することができる。視覚システムに関する更なる情報は、以下に詳しく説明される。
【0023】
実施形態では、コンピューティングシステム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、かつ/若しくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続を介してカメラ1200及び/又はロボット1300と通信し得る。実施形態では、コンピューティングシステム1100は、ネットワークを介してカメラ1200と、かつ/又はロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意のタイプ及び/又は形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(非同期転送モード)技法、SONET(同期型光ネットワーク)プロトコル、又はSDH(同期デジタル階層)プロトコルを含む、プロトコルの異なる技法、及び層又はスタックを利用し得る。
【0024】
実施形態では、コンピューティングシステム1100は、カメラ1200と、かつ/若しくはロボット1300と直接情報を通信してもよく、又は中間記憶デバイス、若しくはより一般的には、中間の非一時的コンピュータ可読媒体を介して通信することができる。例えば、
図1Dは、システム1000/1500A/1500Bの実施形態であり得るシステム1500Cを図示し、これは、コンピューティングシステム1100の外部であってもよく、例えばカメラ1200によって生成された画像情報を記憶するための外部バッファ又はリポジトリとして作用し得る、非一時的コンピュータ可読媒体1400を含む。そのような実施例では、コンピューティングシステム1100は、非一時的コンピュータ可読媒体1400から、画像情報を取り出すか、又は別様で受信することができる。非一時的コンピュータ可読媒体1400の実施例としては、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又はそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、及び/又はメモリスティックを形成し得る。
【0025】
上述のように、カメラ1200は、3Dカメラ及び/又は2Dカメラであり得る。2Dカメラは、カラー画像又はグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラ若しくは構造化光カメラなどの、奥行き感知カメラ、又は任意の他のタイプの3Dカメラであり得る。一部の事例では、2Dカメラ及び/又は3Dカメラは、電荷結合デバイス(CCD)センサ及び/又は相補型金属酸化膜半導体(CMOS)センサなど、画像センサを含み得る。実施形態では、3Dカメラは、レーザ、LIDARデバイス、赤外線デバイス、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダ探知機、又は奥行き情報若しくは他の空間構造情報を捕捉するように構成された任意の他のデバイスを含み得る。
【0026】
上述のように、画像情報が、コンピューティングシステム1100によって処理され得る。実施形態では、コンピューティングシステム1100は、(例えば、1つ以上のサーバブレード、プロセッサなどを有する)サーバ、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピューティングデバイス、及び/若しくは他の任意の他のコンピューティングシステムを含んでもよく、又はそれらとして構成され得る。実施形態では、コンピューティングシステム1100の機能のいずれか又は全ては、クラウドコンピューティングプラットフォームの一部として実施されてもよい。コンピューティングシステム1100は、単一のコンピューティングデバイス(例えば、デスクトップコンピュータ)であってもよく、又は複数のコンピューティングデバイスを含んでもよい。
【0027】
図2Aは、コンピューティングシステム1100の実施形態を図示する、ブロック図を提供する。本実施形態におけるコンピューティングシステム1100は、少なくとも1つの処理回路1110、及び非一時的コンピュータ可読媒体(又は複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、特殊用途コンピュータ、及び/又はオンボードサーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気デバイスに動作可能に結合された別個の/スタンドアローン型のコントローラに含まれてもよい。プロセッサは、プログラム命令を実装して、他のデバイスを制御/他のデバイスとインターフェース接続し、それによって、コンピューティングシステム1100にアクション、タスク、及び/又は動作を実行させることができる。実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は任意の他の処理回路を含む。
【0028】
実施形態では、コンピューティングシステム1100の一部である、非一時的コンピュータ可読媒体1120は、上で論じられた中間の非一時的コンピュータ可読媒体1400の代替又は追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、又は任意の他の記憶デバイスなど、それらの任意の好適な組み合わせなどの記憶デバイスであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶デバイスを含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、本明細書で論じる方法及び動作を実施するために使用される1つ以上の物体認識テンプレートを記憶し得る。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的又は追加的に記憶し得る。
【0029】
図2Bは、コンピューティングシステム1100の一実施形態であり、通信インターフェース1131を含む、コンピューティングシステム1100Aを描写している。通信インターフェース1131は、例えば、
図1A~
図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で論じられた中間の非一時的コンピュータ可読媒体1400若しくはネットワークを介して、又はカメラ1200とコンピューティングシステム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1131は、
図1Cのロボット1300と通信するように構成され得る。コンピューティングシステム1100が、ロボット制御システムの外部にある場合、コンピューティングシステム1100の通信インターフェース1131は、ロボット制御システムと通信するように構成され得る。通信インターフェース1131はまた、通信構成要素又は通信回路と呼ばれる場合があり、例えば、有線又は無線プロトコル上で通信を実施するように構成された通信回路を含んでもよい。実施例として、通信回路は、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、又はそれらの組み合わせを含んでもよい。
【0030】
実施形態では、
図2Cに描写されるように、非一時的コンピュータ可読媒体1120は、本明細書で論じられる1つ以上のデータ物体を記憶するように構成された記憶空間1125を含み得る。例えば、記憶空間は、物体認識テンプレート、検出仮説、画像情報、物体画像情報、ロボットアーム移動コマンド、及び本明細書で論じたコンピューティングシステムがアクセスを必要とし得る任意の追加のデータ物体を記憶し得る。
【0031】
実施形態では、処理回路1110は、非一時的コンピュータ可読媒体1120に記憶される、1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、
図2Dは、コンピューティングシステム1100/1100A/1100Bの実施形態である、コンピューティングシステム1100Cを図示し、処理回路1110は、物体認識モジュール1121、運動計画モジュール1129、及び物体操作計画モジュール1126を含む、1つ以上のモジュールによってプログラムされる。処理回路1110は更に、仮説生成モジュール1128、物体登録モジュール1130、テンプレート生成モジュール1132、特徴抽出モジュール1134、仮説精密化モジュール1136、及び仮説検証モジュール1138を用いてプログラムされ得る。上記のモジュールの各々は、本明細書に記載されるプロセッサ、処理回路、コンピューティングシステムなどのうちの1つ以上でインスタンス化されたときに、特定のタスクを遂行するように構成された、コンピュータ可読プログラム命令を表し得る。上記のモジュールの各々は、本明細書に記載された機能を達成するために、互いに協働して動作してもよい。本明細書に記載される機能の様々な態様は、上述のソフトウェアモジュールのうちの1つ以上によって行われてもよく、ソフトウェアモジュール及びそれらの説明は、本明細書に開示されるシステムの計算構造を制限するものとして理解されるものではない。例えば、特定のタスク又は機能は、特定のモジュールに関して記述され得るが、そのタスク又は機能は、必要に応じて異なるモジュールによって実施されてもよい。更に、本明細書で説明するシステム機能は、機能の内訳又は割り当てが異なるように構成されたソフトウェアモジュールの異なるセットによって実施することができる。
【0032】
実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、及び技法は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書で論じるように、物体識別に関連する物体認識タスクのために更に構成することができる。
【0033】
運動計画モジュール1129は、ロボットの移動を計画及び実行するように構成することができる。例えば、運動計画モジュール1129は、本明細書に記載される他のモジュールと相互作用して、物体取り出し動作及びカメラ載置動作のためのロボット3300の運動を計画することができる。ロボットアームの移動及び軌道に関して本明細書で論じられる方法、システム、及び技法は、運動計画モジュール1129によって実施され得る。
【0034】
物体操作計画モジュール1126は、例えば、物体の把持及び解放、並びにそのような把持及び解放を支援し、促進するためのロボットアームコマンドの実行などのロボットアームの物体操作活動を計画し、実行するように構成され得る。物体操作計画モジュール1126は、軌道決定、選び取り及びグリップ手順決定、及び物体とのエンドエフェクタの相互作用に関連する処理を実施するように構成され得る。物体操作計画モジュール1126の動作は、
図4に関して更に詳細に説明される。
【0035】
仮説生成モジュール1128は、検出仮説を生成するためテンプレート合致及び認識タスクを実施するように構成され得る。仮説生成モジュール1128は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
【0036】
物体登録モジュール1130は、本明細書で論じる様々なタスクに必要とされ得る物体登録情報を取得、記憶、生成、及び別様で処理するよう構成されてもよい。物体登録モジュール1130は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
【0037】
テンプレート生成モジュール1132は、物体認識テンプレート生成タスクを完了するように構成され得る。テンプレート生成モジュール1132は、物体登録モジュール1130、特徴抽出モジュール1134、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0038】
特徴抽出モジュール1134は、特徴抽出及び生成タスクを完了するように構成され得る。特徴抽出モジュール1134は、物体登録モジュール1130、テンプレート生成モジュール1132、仮説生成モジュール1128、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0039】
仮説精密化モジュール1136は、仮説精密化タスクを完了するように構成され得る。仮説精密化モジュール1136は、物体認識モジュール1121及び仮説生成モジュール1128、並びに任意の他の必要なモジュールと相互作用するように構成され得る。
【0040】
仮説検証モジュール1138は、仮説検証タスクを完了するように構成され得る。仮説検証モジュール1138は、物体登録モジュール1130、特徴抽出モジュール1134、仮説生成モジュール1128、仮説精密化モジュール1136、及び任意の他の必要なモジュールと相互作用するように構成され得る。
【0041】
図2E、
図2F、
図3A及び
図3Bを参照して、画像分析のために実施され得る物体認識モジュール1121に関連する方法を説明する。
図2E及び
図2Fは、画像分析方法と関連付けられた例示的な画像情報を図示するが、
図3A及び
図3Bは、画像分析方法と関連付けられた例示的なロボット環境を図示する。コンピューティングシステムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面の場所を説明する点群を含んでもよく、又はこの点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者に既知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0042】
実施形態では、コンピューティングシステム1100は、カメラ1200のカメラ視野(例えば、3200)内の物体を表す画像情報を取得し得る。画像情報を取得するための、以下に説明するステップ及び技法は、以下、画像情報捕捉動作と呼ぶことができる。一部の実例では、物体は、カメラ1200の視野3200の情景5013内の複数の物体5012からの1つの物体5012であってもよい。画像情報2600、2700は、物体5012がカメラ視野3200にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、個々の物体5012又は情景5013のうちの1つ以上を記述してもよい。物体の外観は、カメラ1200の視点からの物体5012の外観を記述する。カメラ視野内に複数の物体5012がある場合、カメラは、必要に応じて、複数の物体又は単一の物体を表す画像情報(単一の物体に関するそのような画像情報は、物体画像情報と呼ばれ得る)を生成し得る。画像情報は、物体のグループがカメラ視野にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、かつ、例えば、2D画像情報及び/又は3D画像情報を含み得る。
【0043】
一例として、
図2Eは、画像情報の第1のセット、より具体的には、2D画像情報2600を描写しており、これは、上述のように、カメラ1200によって生成され、
図3Aの物体3410A/3410B/3410C/3410
Dを表す。より具体的には、2D画像情報2600は、グレースケール又はカラー画像であり得、カメラ1200の視点からの物体3410A/3410B/3410C/3410
Dの外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のカラーチャネル)に対応し得る。カメラ1200が物体3410A/3410B/3410C/3410
Dの上方に配設される場合、2D画像情報2600は、物体3410A/3410B/3410C/3410
Dのそれぞれの上部表面の外観を表し得る。
図2Eの実施例では、2D画像情報2600は、物体3410A/3410B/3410C/3410
Dのそれぞれの表面を表す、画像部分又は物体画像情報とも呼ばれる、それぞれの部分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など)のピクセルに関連付けられる任意の追加情報を含んでもよい。
【0044】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像の全て又は一部分であり得る。実施例では、コンピューティングシステム1100は、対応する物体3410Aと関連付けられた画像情報のみを取得するために、2D画像情報2600から画像部分2000Aを抽出するように構成され得る。画像部分(画像部分2000Aなど)が単一の物体を対象とする場合、それは物体画像情報と呼ばれ得る。物体画像情報は、対象とする物体についての情報のみを包含する必要はない。例えば、対象とする物体は、1つ以上の他の物体近く、その下、その上、又は別様で近傍にあってもよい。そのような場合、物体画像情報は、対象とする物体、並びに1つ以上の隣接する物体についての情報を含み得る。コンピューティングシステム1100は、
図2Eに図示される2D画像情報2600及び/又は
図2Fに図示される3D画像情報2700に基づいて、画像セグメンテーション又は他の分析又は処理動作を実施することによって、画像部分2000Aを抽出することができる。一部の実装形態では、画像セグメンテーション又は他の動作は、2D画像情報2600内の物体の物理的縁部が現れる(例えば、物体の縁部)画像場所を検出することと、そのような画像場所を使用して、カメラ視野(例えば、3200)内の個々の物体を表し、かつ他の物体を実質的に除外することに限定される、物体画像情報を識別することとを含み得る。「実質的に除外する」とは、画像セグメンテーション又はその他の処理技法が、非標的物体を物体画像情報から除外するように設計及び構成されるが、エラーが生じる可能性があり、ノイズが存在する可能性があり、様々な他の要因が他の物体の部分の包含をもたらす可能性があることが理解されることを意味する。
【0045】
図2Fは、画像情報が3D画像情報2700である、実施例を描写している。より具体的には、3D画像情報2700は、例えば、物体3410A/3410B/3410C/3410
Dの1つ以上の表面(例えば、上部表面、又は他の外側表面)上の様々な場所のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション動作は、物体の物理的縁部(例えば、箱の縁部)が3D画像情報2700内に現れる画像場所を検出すること、及びそのような画像場所を使用して、カメラ視野(例えば、3410A)内の個々の物体を表すことに限定される画像部分(例えば、2730)を識別することを含み得る。
【0046】
それぞれの奥行き値は、3D画像情報2700を生成するカメラ1200に対するものであってもよく、又はいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3200)内にある物体の構造上の様々な場所についてのそれぞれの座標を含む、点群を含み得る。
図2Fの実施例では、点群は、物体3410A/3410B/3410C/3410
Dのそれぞれの表面の場所を描写する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、又は何らかの他の座標系に対する値を有し得る。例えば、3D画像情報2700は、物体3410Dの表面上の物理的な場所とも呼ばれる、場所2710
1~2710
nのセットに対するそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の画像部分2710を含み得る。更に、3D画像情報2700は、第2の部分、第3の部分、第4の部分、及び第5の部分2720、2730、2740、及び2750を更に含み得る。次いで、これらの部分は、それぞれ、2720
1~2720
n、2730
1~2730
n、2740
1~2740
n、及び2750
1~2750
nによって表され得る、場所のセットについてのそれぞれの奥行き値を更に示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第1のセットの部分であってもよい。
図2Fの実施例では、取得された3D画像情報2700が
図3Aの物体3410Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。2D画像情報2600の考察と同様に、識別された画像部分2710は、個々の物体に関連してもよく、物体画像情報と呼ばれてもよい。したがって、物体画像情報は、本明細書で使用される場合、2D及び/又は3D画像情報を含み得る。
【0047】
実施形態では、画像正規化動作は、画像情報を取得する一部として、コンピューティングシステム1100によって実施され得る。画像正規化動作は、変換された画像又は変換された画像部分を生成するために、カメラ1200によって生成された画像又は画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、又は2つの組み合わせを含み得る画像情報が、視点、物体姿勢、及び視覚的記述情報と関連付けられる照明条件において画像情報の変更を試みるために、画像正規化動作を受ける可能性がある場合である。そのような正規化は、画像情報とモデル(例えば、テンプレート)情報との間のより正確な比較を容易にするために実施され得る。視点は、カメラ1200に対する物体の姿勢、及び/又はカメラ1200が物体を表す画像を生成するときに、カメラ1200が物体を見ている角度を指し得る。
【0048】
例えば、画像情報は、標的物体がカメラ視野3200内にある、物体認識動作中に生成され得る。カメラ1200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上部表面をカメラ1200の光学軸に対して垂直にするような姿勢を有する場合がある。そのような例では、カメラ1200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の実例では、カメラ1200が物体認識動作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。そのような実例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
【0049】
実施形態では、画像正規化動作は、画像又は画像部分を、物体認識テンプレートの情報と関連付けられた視点及び/又は照明条件により良く合致させるように、カメラによって生成される情景の画像又は画像部分を調整することを伴い得る。調整は、画像又は画像部分を変換して、物体姿勢又は物体認識テンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも一方に合致する変換された画像を生成することを伴い得る。
【0050】
視点調整は、画像が物体認識テンプレート内に含まれ得る視覚的記述情報と同じ視点を表すように、情景の画像の処理、ワーピング、及び/又はシフトを伴い得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み得、情景のワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、向き、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、情景の画像内の物体を、物体認識テンプレートの視覚的記述情報に合致するか、又はそれにより良好に対応する向き及び/又はサイズを有するように変更することができる。物体認識テンプレートは、一部の物体の正面図(例えば、上面図)を記述する場合、情景の画像は、情景内の物体の正面図も表すようにワーピングされ得る。
【0051】
本明細書で実施される物体認識方法の更なる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。
【0052】
様々な実施形態では、「コンピュータ可読命令」及び「コンピュータ可読プログラム命令」という用語は、様々なタスク及び動作を遂行するように構成された、ソフトウェア命令又はコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを実施させるように構成された、ソフトウェア命令又はコードの集まりを広く指す。モジュール及びコンピュータ可読命令は、処理回路又は他のハードウェア構成要素が、モジュール若しくはコンピュータ可読命令を実行しているときに、様々な動作又はタスクを実施するものとして説明され得る。
【0053】
図3A及び
図3Bは、非一時的コンピュータ可読媒体1120上に記憶されたコンピュータ可読プログラム命令を、コンピューティングシステム1100を介して利用して、物体識別、検出、並びに取り出し動作及び方法の効率を増大させる、例示的な環境を図示する。コンピューティングシステム1100によって取得され、
図3Aにおいて例証される画像情報は、物体環境内に存在するロボット3300へのシステムの意思決定手順及びコマンド出力に影響を与える。
【0054】
図3A及び
図3Bは、本明細書に説明されるプロセス及び方法が実施され得る例示的な環境を図示する。
図3Aは、少なくともコンピューティングシステム1100、ロボット3300、及びカメラ1200を含む、(
図1A~
図1Dのシステム1000/1500A/1500B/1500Cの実施形態であり得る)システム3000を有する環境を描写している。カメラ1200は、カメラ1200の実施形態であってもよく、カメラ1200のカメラ視野3200内の情景5013を表す、又はより具体的には、物体
3410A/3410B/3410C/3410Dなどの、カメラ視野3200内の物体(箱など)を表す、画像情報を生成するように構成され得る。一実施例では、物体
3410A/3410B/3410C/3410Dの各々は、例えば、箱又は木枠などの容器であってもよく、一方で、物体3550は、例えば、上に容器が配設されるパレットであり得る。更に、物体
3410A/3410B/3410C/3410Dの各々は、更に個々の物体5012を含む容器であってもよい。各物体5012は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリであってもよい。
図3Aは、物体5012の複数の容器を含む実施形態を図示するが、
図3Bは、物体5012の単一の容器を含む実施形態を図示する。
【0055】
実施形態では、
図3Aのシステム3000は、1つ以上の光源を含み得る。光源は、例えば、発光ダイオード(LED)、ハロゲンランプ、又は任意の他の光源であってもよく、可視光、赤外線、又は物体
3410A/3410B/3410C/3410Dの表面に向かって任意の他の形態の光を発するように構成され得る。一部の実施態様では、コンピューティングシステム1100は、光源と通信して、光源が起動されるときを制御するように構成され得る。他の実施態様では、光源は、コンピューティングシステム1100とは独立して動作し得る。
【0056】
実施形態では、システム3000は、カメラ1200、又は2D画像情報2600を生成するように構成されている2Dカメラと、3D画像情報2700を生成するように構成されている3Dカメラとを含む、複数のカメラ1200を含み得る。カメラ1200又は複数のカメラ1200は、ロボット3300に装着されるか、又はロボット3300に固定されてもよく、環境内に静止していてもよく、及び/又はロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット3300から分離された専用のロボットシステムに固定されてもよい。
図3Aは、静止カメラ1200及び手持ちカメラ1200を有する実施例を示し、一方、
図3Bは、静止カメラ1200のみを有する実施例を示す。2D画像情報2600(例えば、カラー画像又はグレースケール画像)は、カメラ視野3200における、物体
3410A/3410B/3410C/3410D又は物体5012などの1つ以上の物体の外観を説明し得る。例えば、2D画像情報2600は、物体
3410A/3410B/3410C/3410D及び5012のそれぞれの外部表面(例えば、上部表面)上に配設される視覚的詳細、及び/又はそれらの外部表面の輪郭を捕捉するか、又は別様に表し得る。実施形態では、3D画像情報2700は、物体
3410A/3410B/3410C/3410D及び5012のうちの1つ以上の構造を説明してもよく、物体についての構造は、物体の構造又は物体の物理的構造とも呼ばれ得る。例えば、3D画像情報2700は、奥行きマップを含んでもよく、より一般的には、カメラ1200に対する、又は何らかの他の基準点に対する、カメラ視野3200内の様々な場所のそれぞれの奥行き値を説明し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する場所は、物体
3410A/3410B/3410C/3410D及び5012のそれぞれの上部表面上の場所などの、カメラ視野3200内の様々な表面上の場所(物理的な場所とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体
3410A/3410B/3410C/3410D及び5012、又はカメラ視野3200内のいくつかの他の物体の1つ以上の外側表面上の様々な場所を説明する、複数の3D座標を含み得る、点群を含み得る。点群を
図2Fに示される。
【0057】
図3A及び
図3Bの実施例では、(ロボット1300の実施形態であり得る)ロボット3300は、一端がロボット基部3310に取り付けられ、かつ他端がロボットグリッパなどのエンドエフェクタ装置3330に取り付けられるか、又はそれによって形成される、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクタ装置3330は、ロボット3300の環境で1つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体
3410A/3410B/3410C/3410D及び5012のうちの少なくとも1つをグリップするか、又は別様で把持することを含み得る。例えば、ロボット相互作用は、物体5012を容器から識別、検出、及び取り出すための物体選び取り動作の一部であってもよい。エンドエフェクタ装置3330は、物体5012を把持するか、又は掴むための吸引カップ又は他の構成要素を有し得る。エンドエフェクタ装置3330は、吸引カップ又は他の把持構成要素を使用して、例えば、上面を介して、物体の単一の面又は表面との接触を通して、物体を把持するか、又は掴むように構成され得る。
【0058】
ロボット3300は、構造部材を操作するため、及び/又はロボットユニットを輸送するためになど、タスクを実装するために使用される情報を取得するように構成された追加のセンサを更に含み得る。センサは、ロボット3300の1つ以上の物理的特性(例えば、その状態、条件、及び/又は1つ以上の構造部材/ジョイントの場所)及び/又は周囲の環境の1つ以上の物理的特性を検出又は測定するよう構成されたデバイスを含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
【0059】
コンピューティングシステム1100は、エンドエフェクタ装置3330を含む、又はそれに取り付けられるロボットアーム3320を有し、かつロボットアーム3320に取り付けられるカメラ1200を有するロボット3300と通信するように構成された制御システムを備える。
図3C及び
図3Dは、コンピューティングシステム1100が通信し、コマンド/制御して本明細書に記載される方法を達成することができる、ロボット3300の実施形態を図示する。実施形態では、カメラ1200は、物体取り扱い環境3400の他の場所に配設され、一方で、無線又はハード有線接続のいずれかを介してコンピューティングシステム1100の制御システムと通信する。ロボット3300は、ジョイント3320a、3320bにおいて接続されて、ロボットアーム3320及びエンドエフェクタ装置3330を形成し、より大きな運動範囲(例えば、回転及び/又は並進変位)を許容する、物理的又は構造的な部材3321a、3321bを含み得る。物理的又は構造的な部材3321aは、ジョイント3320aを介してロボット基部3310に更に接続してもよい。ロボット3300は、対応するジョイント3320a、3320bの周り又はそこにおいて、構造部材3321a、3321bを駆動又は操作する(例えば、変位及び/又は再配向する)ように構成されたモータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなど(図示せず)などの作動デバイスを含み得る。例えば、ロボットアーム33
20は、ロボット基部3310に対してジョイント3320aの周りで全方位360°回転することができてもよく、又は構造部材3321a、3321bは、ジョイント3320a、3320b接続に接続する任意の点において全方位360°回転することができる。ロボットアーム33
20は、更に、ロボットアーム33
20の完全に延長した長さ(すなわち、まっすぐにした、又は180°)が、ロボットベース3310の中心軸(すなわち、ロボットアーム3320がロボットベース3310に接続する場所)からエンドエフェクタ器具3330の先端又は端部まで測定した、半球状の三次元空間の半径として作用する、半球状の三次元空間内の任意の場所を並進することができる。
【0060】
接続された構造部材3321a、3321b及びジョイント3320a、3320bは、ロボット3300の所望の使用に応じて、1つ以上のタスク(例えば、グリップすること、スピンすること、溶接することなど)を実行するように構成されたエンドエフェクタ装置3330を操作するように構成された動力鎖を形成し得る。ロボット3300は、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性ポリマーなどの(図示せず)、エンドエフェクタ装置3330を駆動又は操作(例えば、変位及び/又は再配向する)するように構成された作動デバイスを含み得る。一般に、エンドエフェクタ装置3330は、様々なサイズ及び形状の物体3410A/3410B/3410C/3410
Dを把持する能力を提供することができる。物体3410A/3410B/3410C/3410
Dは、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、ディスク、ワッシャ、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリを含む、任意の物体であってもよい。エンドエフェクタ装置3330は、
図3Cに例証されるように、グリッピングフィンガ3332a、3332bを有する少なくとも1つのグリッパ3332を含み得る。グリッピングフィンガ3332a、3332bは、互いに対して並進して、物体3410A/3410B/3410C/3410
Dを挟む、把持する、又は別様で固定することができる。実施形態では、エンドエフェクタ装置3330は、
図3Dに例証されるように、それぞれグリッピングフィンガ3332a、3332b、3334a、3334bを有する少なくとも2つのグリッパ3332、3334を含む。グリッピングフィンガ3332a、3332bは、互いに対して並進することができ、グリッピングフィンガ3334a、3334bは、互いに対して並進して、物体3410A/3410B/3410C/3410
Dを挟む、把持する、又は別様で固定することができる。実施形態では、エンドエフェクタ装置3330は、3つ以上のグリッパ(図示せず)、及び/又は3つ以上のグリッピングフィンガ(図示せず)を有するグリッパを含んでもよく、各々が、物体を挟む、把持する、又は別様で固定するように設計された並進能力を有する。
【0061】
ロボット3300は、物体処理環境3400内の目的地3440への送達又は移送のために、その上又はその中に配設された物体3410A/3410B/3410C/3410
Dを有する容器3420を含む、物体取り扱い環境3400内の場所について構成することができる。容器3420は、例えば、ビン、箱、バケツ、又はパレットなど、物体3410A/3410B/3410C/3410
Dを保持するのに好適な任意の容器であってもよい。物体3410A/3410B/3410C/3410
Dは、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、ディスク、ワッシャ、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリを含む、任意の物体であってもよい。実施形態では、物体3410A/3410B/3410C/3410
Dは、例えば、数グラム~数キログラムの範囲の質量、及び例えば、5mm~500mmの範囲のサイズを有する、容器3420からアクセス可能な物体を指し得る。実施例及び例示的目的で、本明細書の方法4000の説明では、本明細書に記載の方法を使用してコンピュータシステム1100及びロボット3300が相互作用し得る複数の物体3500(
図5Aに示す)内の標的物体3510a(
図5B及び
図6A~
図6C)としてリング状物体に言及する。複数の物体3500は、サイズ、形状、重量、及び材料組成物に関して実質的に同一であってもよい。実施形態では、複数の物体3500は、前述したように、サイズ、形状、重量、及び材料組成物において互いに異なっていてもよい。本明細書で論じる物体の特定の形状は、例えば、実施例の目的のみに使用され、本明細書に記載の方法及びプロセスは、必要に応じて、異なる形状の物体とともに使用又は採用され得る。
【0062】
したがって、上記に関して、コンピューティングシステム1100は、供給源又は容器3420から目的地3440へ標的物体を移送するために、以下のように動作するよう構成されてもよい。
【0063】
図4は、本明細書の実施形態による、標的物体の検出、計画、選び取り、移送、及び載置のための方法及び動作の全体的な流れを図示する、フロー図を提供する。検出、計画、選び取り、移送、及び載置の方法4000は、本明細書に記載されるサブ方法及び動作の特徴の任意の組み合わせを含み得る。方法4000は、物体検出動作4002、物体把持性決定動作4003、標的選択動作4004、軌道決定動作4005、選び取り/グリップ手順決定動作4006、ロボットアーム/エンドエフェクタ装置軌道実行動作4008、エンドエフェクタ相互作用動作4010、及びロボットアーム3320を制御する目的地軌道実行動作4012のいずれか又は全てを含み得る。物体検出動作4002は、リアルタイムで、又はロボット動作の状況外の前処理又はオフライン環境で実施することができる。したがって、一部の実施形態では、これらの動作及び方法は、ロボットによる後のアクションを容易にするために事前に実施することができる。物体検出動作4002及び物体把持性決定動作4003は、方法4000の計画部分における第1のステップであってもよい。標的選択動作4004、軌道決定動作4005、及び選び取り/グリップ手順決定動作4006は、計画部分の残りのステップを提供してもよく、方法4000の間に複数回実施されてもよい。ロボットアーム/エンドエフェクタ装置軌道実行動作4008、エンドエフェクタ相互作用動作4010、及びロボットアーム3320を制御するための目的地軌道実行動作4012は各々、容器から標的物体を検出し、識別し、かつ取り出すためのロボット動作の状況下で実施することができる。
【0064】
動作4002では、方法4000は、カメラ1200を介して、容器又は物体の源3420内の複数の物体3500を検出することを含む。物体3500は、複数の物理的な実世界の物体(
図5A)を表すことができる。動作4002は、容器3420内の物体3500のうちの1つ以上についての検出結果3520を生成し得る。検出結果3520は、個別に検出された物体3510と呼ばれ得る容器3420(
図5A-5B)内の複数の物体3500のデジタル表現を含み得る。方法4000の更なる動作は、標的物体3510a又は標的物体3511a/3511b、及び/又は把持不可能物体3510bである検出された物体3510から決定することができる(例えば、
図7Bに関して論じたように)。
【0065】
動作4002は、本明細書に記載の方法に従って、カメラ1200から受信した情報(例えば、画像情報)を分析して、検出結果3520(
図5C)を生成することを含み得る。カメラ1200から受信した情報は、複数の物体3500の、物体容器3420の環境3400の画像を含み得る。上で論じたように、複数の物体3500は、検出された物体3510を含み得る。
【0066】
検出結果3520を生成することは、物体容器3420内の複数の物体3500を識別して、その後、検出された物体3510を識別し、そこから、ロボット3300を介して選び取って、目的地3440に移送する標的物体3510a又は標的物体3511a/3511bが後で決定されることを含み得る。
図5Bは、容器3420内の複数の物体3500のうち、複数の検出された物体3510についての検出結果3520の視覚的描写を提供する(それらの物理的表現は
図5Aとして提供される)。
図5Cは、物理的世界に存在する物理的物体3500を図示する一方、検出された物体3510は、検出結果3520によって説明される物理的物体3500の表示を指す。検出結果3520は、検出された物体3510の各々についての情報、例えば、容器3420内の検出された物体3510の場所、他の検出された物体3510に対する検出された物体3510の場所(例えば、検出された物体3510が複数の物体3500の山の頂部上、又は他の隣接する検出された物体3510の下にあるか)、検出された物体3510の向き及び姿勢、物体検出の信頼度、(以下でより詳細に説明するように)利用可能な把持モデル3350a/3350b/3350c、又はそれらの組み合わせを含む、検出された物体3510の各々についての複数の物体表現4013を含み得る。
【0067】
したがって、方法4000の動作4002は、物体検出に基づいて、複数の物体表現4013を含む検出結果3520を得ることを含み得る。コンピュータシステム1100は、有効な把持モデル3350a/3350b/3350cを決定する際に、検出結果3520から検出された全ての物体3510の複数の物体表現4013を使用することができる。検出された物体3510の各々は、検出された物体3510の各々についてのデジタル情報(すなわち、物体表現4013)を表す、対応する検出結果3520を有してもよい。実施形態では、対応する検出結果3520は、実世界内に物理的に存在する複数の物体3500の中に、複数の検出された物体3510を組み込むことができる。検出された物体3510は、検出された物体3500の各々についてのデジタル情報(すなわち、物体表現4013)を表す可能性がある。
【0068】
一実施形態では、検出結果3520を得るために複数の物体3500を識別することは、任意の好適な手段によって遂行され得る。実施形態では、複数の物体3500を識別することは、例えば、仮説生成モジュール1128、物体登録モジュール1130、テンプレート生成モジュール1132、特徴抽出モジュール1134、仮説精密化モジュール1136、及び仮説検証モジュール1138によって実施されるように、物体登録、テンプレート生成、特徴抽出、仮説生成、仮説精密化、及び仮説検証を含むプロセスを含み得る。これらのプロセスは、2022年8月9日出願の米国特許出願第17/884,081号に詳細に記載されており、その内容全体は本明細書に組み込まれる。
【0069】
物体登録は、物体登録データ、例えば、物体3500に関連する既知の以前に記憶された情報を取得及び使用して、物理的な情景において類似の物体を識別及び認識する際に使用するための物体認識テンプレートを生成することを含むプロセスである。テンプレート生成は、物体ピック(物体選び取り)に関連する更なる動作のために、物体3500を識別するのに使用する、コンピューティングシステム用の物体認識テンプレートのセットを生成することを含むプロセスである。特徴抽出(特徴生成とも呼ばれる)は、物体認識テンプレート生成で使用するための、物体画像情報からの特徴の抽出又は生成を含むプロセスである。仮説生成は、例えば、物体画像情報と1つ以上の物体認識テンプレートとの比較に基づいて、1つ以上の物体検出仮説を生成することを含むプロセスである。仮説精密化は、物体認識テンプレートが物体画像情報と正確に合致しないシナリオでも、物体認識テンプレートと物体画像情報の合致を精密化するためのプロセスである。仮説検証は、複数の仮説からの単一の仮説が、物体3500の最良の適合又は最良の選択として選択されるプロセスである。
【0070】
動作4003では、方法4000は、複数の物体3500の中から、把持可能な物体を識別することを含む。方法4000の計画部分のステップとして、動作4003は、検出された物体3510から把持可能な物体及び把持不可能な物体を決定することを含む。動作4003は、検出された物体3510に基づいて実施されて、把持モデルを各検出された物体3510に割り当てるか、又は検出された物体3510が、把持不可能な物体3510bであると決定することができる。
【0071】
把持モデル3350a/3350b/3350cは、検出された物体3510が、どのようにエンドエフェクタ装置3330によって把持され得るかを説明する。例示の目的で、
図6A~
図6Cは、標的物体3510aをグリップするための3つの異なる把持モデル3350a/3350b/3350cを例示するが、他の把持モデルも可能であると理解されるべきである。
【0072】
把持モデル3350aとして図示された
図6Aは、標的物体3510aのリングの内壁に対してグリッパフィンガ3332a/3332b/3334a/3334bが逆挟み運動を実施するような内側チャックを実証している(すなわち、グリッパフィンガ3332a/3332b/3334a/3334bが、両方とも標的物体3510aのリング内に入ると、外側へ、又は互いから離れるように並進する)。
【0073】
図6Bは、グリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510aのリングの内壁及び外側を挟むような内外チャックを実証する把持モデル3350bを図示する。
【0074】
把持モデル3350cとして図示された
図6Cは、グリッパフィンガ3332a/3332b/3334a/3334bが対象物体3510aのリングの外側ディスク部分を挟む側方チャックを実証している。
【0075】
把持モデル3350a/3350b/3350cの各々は、ロボットアーム3320によって物体を移動できる速度、加速、及び/又は減速を決定し得る関連付けられた移送速度修正器を有し得る、予測されたグリップ安定性4016などの要因に従ってランク付けされ得る。例えば、関連付けられた移送速度修正器は、ロボットアーム3320及び/又はエンドエフェクタ装置3330の移動速度を決定する値である。値は、ゼロと1との間で設定されてもよく、ゼロは、全停止(例えば、移動なし、完全に静止)を表し、1は、ロボットアーム3320及び/又はエンドエフェクタ装置3330の最大動作速度を表す。移送速度修正器は、オフラインで(例えば、実世界でのテストを通じて)、又はリアルタイムで(例えば、摩擦、重力、及び運動量を考慮するためのコンピュータモデルシミュレーションを通じて)決定することができる。
【0076】
予測されたグリップ安定性4016は更に、エンドエフェクタ装置3330によって一旦把持された標的物体3510aがどれほど安全であるかの指標となり得る。例えば、把持モデル3350aは、把持モデル3350bよりも高い予測されたグリップ安定性4016を有してもよく、把持モデル3350bは、把持モデル3350cよりも高い予測されたグリップ安定性4016を有してもよい。他の実施例では、異なる把持モデル3350は、予測されたグリップ安定性4016に従って異なるようにランク付けされてもよい。
【0077】
検出結果3520の処理によって、容器3420内の検出された物体3510の場所、他の検出された物体3510に対する検出された物体3510の場所(例えば、検出された物体3510が、複数の物体3500の山の頂部上、又は他の隣接する検出された物体3510の下にあるかどうか)、検出された物体3510の配向及び姿勢、物体検出の信頼度、利用可能な把持モデル3350a/3350b/3350c(以下でより詳細に説明する)、又はそれらの組み合わせを含む、検出された物体3510の各々についての複数の物体表現4013に基づいて、検出された物体3510の各々が把持モデルのうちの1つ以上によって把持され得るかどうかを示すデータを提供することができる。例えば、検出された物体3510のうちの1つは、把持モデル3350a及び3350bに従って把持され得るが、把持モデル3350cに従って把持されることはない。
【0078】
検出された物体3510は、物体の把持モデルが見つからなかった場合に、把持不可能な物体3510bとして決定され得る。例えば、検出された物体3510が、把持モデル3350a/3350b/3350cのいずれかによって、把持するためにアクセスできず(それらが、奇妙な角度で覆われ、部分的に埋まっている、部分的に見えないなどの理由で)、したがって、エンドエフェクタ装置3330によって把持可能でない場合がある。把持不可能な物体3510bは、例えば、検出結果3520からそれらを除去することによって、又はそれらを把持不可能なものとしてフラグ付けすることによって、それらに対して更なる処理が実施されないように、検出結果3520から取り除くことができる。
【0079】
複数の物体3500及び/又は検出された物体3510から、把持不可能な物体3510bを取り除くことは、以下に従って更に実施することができる。実施形態では、検出結果3520の複数の物体表現4013の少なくとも1つに基づいて、標的物体3510aを評価するために、残りの検出された物体3510から把持不可能な物体3510bを更に決定し、取り除く。上述のように、検出された物体3510の各々の物体表現4013は、特に、容器3420内の検出された物体3510の位置、検出された他の検出された物体3510に対する3510の位置、検出された物体3510の方向及び姿勢、物体検出の信頼度、利用可能な把持モデル3350a/3350b/3350c、又はそれらの組み合わせを含む。例えば、把持不可能な物体3510bは、エンドエフェクタ装置3330による実際のアクセスを許容しないやり方で、容器3420の中に位置することができる(例えば、把持不可能な物体3510bは、容器の壁又は隅に対して寄りかかっている)。把持不可能な物体3510bは、把持不可能な物体の3510bの配向(例えば、把持不可能な物体3510bの配向/姿勢は、エンドエフェクタ装置3330が、利用可能な把持モデル3350a/3350b/3350cのいずれかを使用して、把持不可能な物体3510bを実際に把持又は選び取りできないようなものである)のために、エンドエフェクタ装置3330による選び取り/把持に利用できないと決定され得る。把持不可能な物体3510bは、エンドエフェクタ装置3330による実際のアクセスを許容しないやり方で、他の検出された物体3510によって囲まれてもよく、又は覆われてもよい(例えば、把持不可能な物体3510bは、他の検出された物体3510によって覆われた容器の底部に位置し、把持不可能な物体3510bは、複数の他の検出された物体3510の間に押し込まれる)。動作4002で前述したように、複数の物体を検出する際に、コンピュータシステム1100は、把持不可能な物体3510bを検出する際に低い信頼度を出力し得る(例えば、コンピュータシステム1100は、他の検出された物体3510と比較して、把持不可能な物体3510bが適切に識別されていることを完全には確信していない/信じてはいない)。
【0080】
更なる例として、把持不可能な物体3510bは、検出結果3520に基づいて、利用可能な把持モデル3350a/3350b/3350cを有さない、検出された物体3510であってもよい。例えば、本明細書で更に説明するように、特に、容器内の把持不可能な物体3510bの場所、他の検出された物体3510に対する場所、配向、信頼度、又は物体のタイプを含む、前述の物体表現4013の任意の組み合わせに起因して、把持モデル3350a/3350b/3350cのいずれかによって、エンドエフェクタ装置3330が、把持不可能な物体3510bを選び取り/把持できないとコンピュータシステム1100が決定する場合がある。把持不可能な物体3510bが、利用可能な把持モデル3350a/3350b/3350cを利用できないことに起因して、把持不可能な物体3510bは、コンピュータシステム1100によって決定され得る。例えば、選び取り/グリップ手順動作4006に関して本明細書で更に説明するように、把持不可能な物体3510bが、他の検出された物体3510よりも低い予測されたグリップ安定性4016又は他の測定された変数を有することに起因して、コンピュータシステム1100によって把持不可能な物体3510bが決定され得る。
【0081】
残りの把持可能な物体は、1つ以上の基準に従ってランク付け又は順序付けされてもよい。把持可能な物体は、検出信頼性(例えば、物体に関連付けられた検出結果の信頼性)、物体位置(例えば、アクセスの容易さ、隠されておらず、妨害されておらず、又は埋め込まれていない物体は、より高いランクを有し得る)及び把持可能な物体について識別された把持モデルのランク付けの任意の組み合わせに従ってランク付けされ得る。
【0082】
動作4004では、方法4000は、標的選択を含む。動作4004では、標的物体3510a又は標的物体3511a/3511bは、把持可能な物体から選択され得る。
【0083】
ここで
図7C及び
図7Dでは、動作4003によって識別された把持可能な物体は、候補物体3512a/3512bであってもよい。候補物体3512a/3512bは、逆運動学解を有さない任意の物体を排除又は除去することによって、更に取り除くことができる。候補物体3512a/3512bは、逆運動学解(例えば、ロボットアーム3320が候補物体3512a/3512bの把持を許容する位置に自身を移動し、次いで把持動作から離れるための解)を欠く。例えば、候補物体3512a/3512bに到達するためのロボット3300の計算された構成が、ロボット3300、ロボットアーム3320、及び/又はエンドエフェクタ装置3330の制約に違反する場合、逆運動学解が見出されない場合がある。候補物体3512a/3512bについて逆運動学解が存在するかを決定する際に、コンピューティングシステム1100は、候補物体3512a/3512bについての軌道を、例えば、動作4005に関して以下で論じる方法に従って決定し得る。実施例では、把持可能な検出物体3510は、ロボットアーム3320がその特定の候補物体3512a/3512bを適切に把持するか、又は候補物体3512a/3512bを把持した後に離れるための正しい位置決め又は構成を許容しない物体供給源3420の領域に位置することがある。
【0084】
把持可能な物体からの各候補物体3512a/3512bについて、以下を実施することができる。候補物体は、例えば、上述の把持可能な物体のランク付けに従った順序で、処理のために選択することができる。
【0085】
図7Cに示すように、候補物体3512aは、例えば、二重選び取り動作における第1の物体であり得る物体などの、一次候補物体3512aと呼ばれる。候補物体3512bは、二次候補物体3512b、例えば、二重選び取り動作における第2の物体であり得る物体であってもよい。
【0086】
各一次候補物体3512aについて、残りの二次候補物体3512bは、以下に従って、フィルタリングされるか、又は取り除かれてもよい。第一に、一次候補物体3512aの妨害範囲3530内の二次的物体3512bは、取り除くことができる。妨害範囲3530は、第1の物体が物体の山から除去されたときに、他の近くの物体が位置又は姿勢においてシフトする可能性が低い、第1の物体からの最小距離を表す。妨害範囲3530は、物体のサイズ及び/又はその形状に依存し得る(より大きな物体は、より大きな範囲を必要とする場合があり、一部の物体形状は、移動時により大きな妨害を引き起こす場合がある)。したがって、一次候補物体3512aの把持中に妨害又は移動される可能性が高い二次候補物体3512bは、取り除くことができる。
【0087】
残りの二次候補物体3512bは、一次候補物体3512a及び二次候補物体3512bについて識別された把持モデル3350a/3350b/3350cの類似性に従って、更にフィルタリングされるか、又は取り除くことができる。実施形態では、二次候補物体3512bは、一次候補物体3512aのものとは異なる、割り当てられた把持モデルを有する場合、取り除くことができる。実施形態では、二次候補物体3512bに割り当てられた把持モデル3350a/3350b/3350cのグリップ安定性が、一次候補物体3512aに割り当てられた把持モデル3350a/3350b/3350cのグリップ安定性と閾値以上異なる場合に、二次候補物体3512bを取り除くことができる。物体移送は、最大速度でのロボット運動を提供することによって最適化され得る。異なる把持モデル3350a/3350b/3350cに関して上述したように、一部の把持モデル3350a/3350b/3350cは、より大きなグリップ安定性を有し、それによってロボット運動のより大きな速度を可能にする。同じであるか、又は類似のグリップ安定性を有する把持モデル3350a/3350b/3350cを有する一次候補物体3512a及び二次候補物体3512bを選択すると、ロボット動作の速度の増加が許容される。グリップ安定性が異なる場合、ロボット動作の速度は、より低いグリップ安定性によって許容される速度に限定される。したがって、高いグリップ安定性を有する複数の物体が利用可能であり、低いグリップ安定性を有する複数の物体が利用可能であるシナリオでは、高いグリップ安定性を有する物体と、低いグリップ安定性を有する物体とをペアリングすることが有利である。
【0088】
残りの二次候補物体3512bは、一次候補物体3512aと二次候補物体3512bとの間の潜在的な軌道の分析に従って、更にフィルタリングするか、又は取り除くことができる。一次候補物体3512aと二次候補物体3512bとの間に逆運動学解を生成することができない場合、二次候補物体3512bを取り除くことができる。上で論じたように、逆運動学解は、動作4005に関して説明したものと類似した軌道決定を通して識別することができる。
【0089】
次に、一次候補物体3512aを把持することが、二次候補物体3512bの把持を妨げると決定することができる。ここで
図7Dを参照すると、
図7Dに例示されるように、一次物体3512a及び二次物体3512bの各々との相互作用のために指定されたグリッパ3332/3334のうちの少なくとも一方の周りに、コンピュータシステム1100によってバウンディングボックス3600を生成することができる。グリッパ3332/3334のうちの第2のものが二次候補物体3512bに接近、移動、それと相互作用、それを把持、又はそれから離れようとするときに、一次候補物体3512a(その周りに生成したバウンディングボックス3600を有する)をグリップしている間のグリッパ3332/3334の姿勢がバウンディングボックス3600と物体取り扱い環境3400/物体供給源又は容器3420及び/又は複数の物体3500のうちの他の物体との衝突をもたらすかどうかを決定するために、コンピュータシステム1100によってバウンディングボックス3600を使用することができる。そうすることで、コンピュータシステム1100は、バウンディングボックス3600の対象となるグリッパ3332/3334によって把持された一次対象3512a及び二次対象3512bが、二次候補対象3512bの把持中に一次候補対象3512aがグリッパ3332/3334の把持から弾き飛ばされることをもたらし得るやり方で、他の物体3500及び/又は物体取り扱い環境3400に衝突するかどうかを決定することができる。
【0090】
二次候補物体3512bをフィルタリングするか、又は取り除く他の手段を更に採用することができる。例えば、実施形態では、一次物体3512aとは異なる配向を有する二次物体3512bを、取り除くことができる。実施形態では、一次物体3512aとは異なる物体タイプ又はモデルを有する二次物体3512bを、取り除くことができる。
【0091】
二次候補物体3512bを取り除いた後、軌道決定のために、一次候補物体3512aと取り除いていない二次候補物体3512bとの間の物体対を生成することができる。実施形態では、各一次候補物体3512aは、単一の二次候補物体3512bを割り当てて、物体対を形成することができる。複数の取り除いていない二次候補物体3512bの場合、単一の二次候補物体3512bは、例えば、一次候補物体3512aと二次候補物体3512bとの間の最も簡単又は最速の軌道に従って、かつ/又は動作4003に関して上述したように、把握可能な物体のランク付けに基づいて選択され得る。更なる実施形態において、各一次候補物体3512aは、複数の二次候補物体3512bを割り当てられて、複数の物体対を形成してもよく、軌道は、各々についてコンピュータであってもよい。そのような実施形態では、一次候補物体3512aと二次候補物体3512bとの間の対合を最終決定するために、最速又は最も簡単な軌道を選択してもよい。
【0092】
一次物体3512aが、把持可能な物体からのそれぞれの二次物体3512bと対合されると、コンピュータシステム1100は、それぞれの二次物体3512bと対になった各一次物体3512aを、本明細書でそれぞれ動作4006/4008/4010/4012で詳述されるように、把持決定、ロボットアーム軌道実行、エンドエフェクタ相互作用、及び目的地軌道実行のための標的物体3511a/3511bとして指定することができる。
【0093】
実施形態において、複数の標的物体3511a/3511bのうちの第1の標的物体3511aは、第1の把持モデル3350a/3350b/3350cと関連付けられ、複数の標的物体3511a/3511bのうちの第2の標的物体3511bは、第2の把持モデル3350a/3350b/3350cと関連付けられている。第1の標的物体3511aについて選択された把持モデル3350a/3350b/3350cは、上述のように、検出結果3520の複数の物体表現4013のうちの少なくとも1つに基づいて、第2の標的物体3511bについて選択された把持モデル3350a/3350b/3350cと類似又は同一であってもよい。例えば、第1の標的物体3511aは、
図8A~
図8Cに示されるように、グリッパフィンガ3332a、3332bが第1の標的物体3511aのリングの内壁に対して内側チャック、又は逆挟み運動を実施する、把持モデル3350aを使用してグリッパ3332によって把持され得る。第2の標的物体3511bも、
図9A~
図9Cに示されるように、グリッパフィンガ3334a、3334bが標的物体3511bのリングの内壁に対して内側チャック、又は逆挟み運動を実施する、把持モデル3350aを使用してグリッパ3334によって把持され得る。
【0094】
動作4005では、方法4000は、ロボット軌道を決定することを含み得る。動作4005は、少なくとも、アーム接近軌道3360を決定すること、エンドエフェクタ装置接近軌道3362を決定すること、及び目的地軌道3364を決定することを含み得る。
【0095】
動作4005は、ロボットアーム3320が複数の物体3500に接近するためにアーム接近軌道3360を決定すること、エンドエフェクタ装置接近軌道3362を決定すること、及び目的
地軌道3364を決定することを含み得る。
図7Aは、供給源(すなわち、容器3420)から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による標的物体3510aの移送サイクルについての運動計画を図示する。移送サイクルは、物体供給源又は容器から目的地3440への物体の移動を行うための、ロボットアーム3320による移動の全サイクルを指す。実施形態では、動作4005は、ロボットアーム3320が複数の物体3500に接近するために、複数のアーム接近軌道3360a/3360bを決定することを含む。
図7Bは、供給源(すなわち、容器3420)から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による複数の標的物体3511a/3511bの移送サイクルについての運動計画を図示する。
【0096】
動作4005では、コンピュータシステム1100は、アーム接近軌道3360を決定し、アーム接近軌道は、ロボットアーム3320が、供給源又は容器3420の近傍に向かう方向に移動又は並進するように制御される経路を含む。そのようなアーム接近軌道3360を決定する際に、ロボットアーム3320の現在の場所から容器3420への最短の進行距離及び/又はロボットアーム3320の進行の最大利用可能速度などの要因に基づいて、最も速い経路(例えば、ロボットアーム3320が、その現在の位置から供給源又は容器3420の近傍へ並進するのにかかる時間が最小になることを許容する経路)が望ましい。最大利用可能進行速度を決定する際に、エンドエフェクタ装置3330の状態、すなわち、エンドエフェクタ装置3330が現在標的物体3510a又は標的物体3511a/3511bをそのグリップ内に有しているかどうかが決定される。実施形態では、エンドエフェクタ装置3330は、いかなる標的物体3510a又は標的物体3511a/3511bもグリップしておらず、したがって、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330から滑り落ちる/落下する実例が無効化されるので、ロボットアーム3320に利用可能な最大速度をアーム接近軌道3360に使用することができる。実施形態では、エンドエフェクタ装置3330は、そのグリッパ3332/3334によって把持された少なくとも1つの標的物体3510a又は標的物体3511a/3511bを有することができ、したがって、ロボットアーム3320の進行速度は、以下により詳細に説明するように、把持された標的物体3510a又は標的物体3511a/3511bへのグリッパ3332/3334のグリップ安定性を考慮に入れて算出する。
【0097】
動作4005では、方法4000は、エンドエフェクタ装置3330が標的物体3510a又は標的物体3511a/3511bに接近するために、エンドエフェクタ装置接近軌道3362を決定することを含み得る。エンドエフェクタ装置接近軌道3362は、ロボットアーム3320に取り付けたエンドエフェクタ装置3330の予想される進行経路を表し得る。コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362を決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道3362が決定された時点で、エンドエフェクタ装置接近軌道3362が決定される。エンドエフェクタ装置接近軌道3362は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。
【0098】
図7Bは、供給源又は容器3420から目的地3440へのロボットアーム3320及びエンドエフェクタ装置3330による複数の標的物体3511a/3511bの移送サイクルについての運動計画の別の実施例を図示する。実施形態では、コンピュータシステム1100は、アーム接近軌道3360を決定し、ロボットアーム3320は、供給源又は容器3420の近傍に向かう方向に移動又は並進するように制御される。そのようなアーム接近軌道3360を決定する際に、ロボットアーム3320の現在の場所から容器3420への最短の進行距離、及び/又はロボットアーム3320の最大利用可能進行速度などの要因に基づいて、最短/最も速い経路が望ましい。最大利用可能進行速度を決定する際に、エンドエフェクタ装置3330の状態、すなわち、エンドエフェクタ装置3330が現在標的物体3510a又は標的物体3511a/3511bをそのグリップ内に有しているかどうかが決定される。軌道の実施例では、エンドエフェクタ装置3330は、いかなる標的物体3510a又は標的物体3511a/3511bもグリップしておらず、したがって、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330から滑り落ちる/落下する実例が無効化されるので、ロボットアーム3320に利用可能な最大速度をアーム接近軌道3360に利用することができる。他の実施例では、エンドエフェクタ装置3330は、そのグリッパ3332/3334によって把持される少なくとも1つの標的物体3510a又は標的物体3511a/3511bを有してもよく、それゆえ、ロボットアーム3320の進行速度は、以下でより詳細に記載されるように、把持された標的物体3510a又は標的物体3511a/3511b上のグリッパ3332/3334のグリップ安定性を考慮することによって計算される。
【0099】
図7Bは更に、標的物体3511a/3511bを選び取り又は把持するために使用される複数のエンドエフェクタ装置接近軌道3362a/3362bを図示する。実施形態では、コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、供給源又は容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道3362が決定された時点で、エンドエフェクタ装置接近軌道3362/3362a/3362bが決定される。エンドエフェクタ装置接近軌道3362/3362a/3362bは、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。エンドエフェクタ接近軌道3362/3362a/3362bは、グリッパ3332/3334の状態、すなわち、標的物体3510a又は標的物体3511a/3511bが現在、少なくとも1つのグリッパ3332/3334によってグリップされているかどうかによって更に決定され得る。そのようなシナリオでは、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定することは、標的物体3510a又は標的物体3511a/3511bを把持するための把持動作において、エンドエフェクタ装置3330の最適化されたエンドエフェクタ装置接近時間に基づいており、最適化されたエンドエフェクタ装置接近時間は、以下に記載される計算に基づいて、決定される最も効率的なエンドエフェクタ装置接近時間である。最適化されたエンドエフェクタ装置接近時間は、把持された標的物体3510a又は標的物体3511a/3511b上のグリッパ3332/3334のグリップ安定性に基づいて計算される。
【0100】
実施形態では、最適化されたエンドエフェクタ装置接近時間は、標的物体3510a又は標的物体3511a/3511bについての利用可能な把持モデル3350a/3350b/3350cに従って決定される。例えば、エンドエフェクタ装置3330が、選択された把持モデル3350a/3350b/3350cに従って、グリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bを適切に把持することを許容できるようなやり方で、グリッパ3332/3334を標的物体3510a又は標的物体3511a/3511bに隣接して適切に載置するのに必要な時間量は、最適化エンドエフェクタ装置接近時間に織り込まれる。把持モデル3350aを適切に実行するのに必要な時間は、把持モデル3350b又は把持モデル3350cを適切に実行するのに必要な時間よりも短くてもよいか、又は長くてもよい。したがって、グリップを適切に実行するのに必要な決定された最小時間を有する把持モデル3350a/3350b/3350cは、エンドエフェクタ装置3330のグリッパ3332/3334によって選び取り又は把持される標的物体3510a又は標的物体3511a/3511bのために選択され得る。選択された把持モデルは、例えば、把持モデル3350a/3350b/3350cを適切に実行するのに必要な決定された最小限の時間と予測されたグリップ安定性4016とのバランスを取ることによって、要因のバランシングに基づいて選択することができ、それによって、不十分な予測されたグリップ安定性4016よりも速度を犠牲にし、かつグリップ障害(すなわち、エンドエフェクタ装置3330のグリッパ3332/3334によって選び取り又は把持された後に、標的物体3510a又は標的物体3511a/3511bを落とす、変位させる、投げる、又は別様で誤って取り扱う)の可能性を低くするために、より高速な把持モデル3350a/3350b/3350cを第2の高速把持モデル3350a/3350b/3350cに対して考慮に入れないことが可能である。
【0101】
動作4005では、方法4000は、1つ以上の目的
地軌道3364(
図7Bでは目的
地軌道3364a及び3364bとして図示されている)の決定を更に含み得る。実施形態では、ロボットアーム3320の目的地軌道3364a/3364bを決定することは、ロボットアーム3320が容器3420から1つ以上の目的地3440に進行するのに最適化された目的地軌道時間に基づいてもよい。最適化された目的地の軌道時間は、ロボットアーム3320が容器3420から目的地3440まで進行するための、決定された最も効率的な目的地軌道時間であってもよい。例えば、最適化された軌道時間は、ロボットアームの3320の現在の場所(例えば、容器3420において、又はその近くで)と目的地3
440との間の最短経路によって決定され得る。最適化された軌道時間は、ロボットアーム3320が目的地3
440に向かって障害なしに最も速く進行し得る経路によって決定され得る。実施形態では、ロボットアーム3320の目的地軌道3364を決定することは、エンドエフェクタ装置3330と標的物体3510a又は標的物体3511a/3511bとの間の予測されたグリップ安定性4016に基づく。例えば、より高い値を有する予測されたグリップ安定性4016は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bに対して有し得る、より強いグリップ又は保持を示し得、これにより、目的地軌道3364を目的地3440に向かって横断する間に、ロボットアーム3320及び/又はエンドエフェクタ装置3330の高速移動が許容される可能性がある。逆により低い値を有する予測されたグリップ安定性4016は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが標的物体3510a又は標的物体3511a/3511bに対して有し得る、より弱いグリップ又は保持を示し得、したがって、これにより、故障シナリオ、すなわち、標的物体3510a/3511a/3511bが落とされ、投げられ、又は別様で変位してしまうのを防止するために、目的地3440に向かって目的地軌道3364を横断する間に、ロボットアーム3320及び/又はエンドエフェクタ装置3330のより遅い移動が必要となる可能性がある。
【0102】
実施形態では、単一の目的地軌道3364aは、両方の標的物体3511a/3511bを同じ目的地3440に載置するために提供され得る。単一の目的地軌道3364aは、標的物体3511a/3511bを解放するための1つ以上のチャック解除又は把持解除動作を含み得る。実施形態では、複数の目的地軌道3364a/3364bは、同じ目的地3440の異なる場所又は2つの異なる目的地3440のいずれかに、標的物体3511a/3511bを載置するように決定することができる。第2の目的地軌道3364bは、目的地3440内の場所の間又は2つの目的地3440の間でグリッパ3332/3334を移すように決定することができる。
【0103】
動作4006では、方法4000は、エンドエフェクタ装置3330が、エンドエフェクタ装置接近軌道3362/3362a/3362bの端部で、標的物体3510a又は標的物体3511a/3511bに到達すると、標的物体3510a又は標的物体3511a/3511bをエンドエフェクタ装置3330で把持又はグリップするための選び取り又はグリップ手順を決定することを含む。選び取り又はグリップ手順は、エンドエフェクタ装置3330が、グリッパ3332/3334を用いて標的物体3510a又は標的物体3511a/3511bに接近し、相互作用し、接触し、触り、又は別様で把持する方法を表し得る。把持モデル3350a/3350b/3350cは、標的物体3510a又は標的物体3511a/3511bがどのようにエンドエフェクタ装置3330によって把持され得るかを説明する。例示の目的で、
図6A~
図6Cは、上記で詳述したように、標的物体3510a又は標的物体3511a/3511bをグリップするための3つの異なる把持モデル3350a/3350b/3350cを例示するが、他の把持モデルも可能であることが理解されるべきである。
【0104】
把持動作を決定することは、動作4006の把持動作決定において、エンドエフェクタ装置3330によって使用される、少なくとも1つの把持モデル3350a、3350b、又は3350cを、複数の利用可能な把持モデル3350a/3350b/3350cから選択することを含み得る。実施形態では、コンピュータシステム1100は、最高ランクを有する把持モデル3350a/3350b/3350cに基づいて、把持動作を決定する。コンピュータシステム1100は、複数の利用可能な把持モデル3350a/3350b/3350cの各々に対するランクを、複数の把持モデル3350a/3350b/3350cの各々の予測されたグリップ安定性4016に従って決定するように構成されてもよい。把持モデル3350a/3350b/3350cの各々は、アーム接近軌道3360及び/又はエンドエフェクタ装置接近軌道3362の実行中に、ロボットアーム3320によって標的物体3510a又は標的物体3511a/3511bが移動できる速度、加速、及び/又は減速を決定することができる、関連付けられた移送速度修正器を有し得る、予測されたグリップ安定性4016などの要因に従ってランク付けすることができる。予測されたグリップ安定性4016は更に、標的物体3510a又は標的物体3511a/3511bがエンドエフェクタ装置3330によって一旦選び取り又は把持されると、どのように固定されるかを示す指標であってもよい。一般に、予測されたグリップ安定性4016、又はエンドエフェクタ装置3330が標的物体3510a/3511a/3511bを保持する能力が強いほど、ロボット3300は、故障シナリオ、すなわち、標的物体3510a/3511a/3511bがグリッパから落とされる、投げられる、又は別様で変位させられることをもたらすことなく、標的物体3510a/3511a/3511bを保持/把持しながら、決定したアーム接近軌道3360及び/又はエンドエフェクタ接近軌道3362/3362a/3362bを通してロボットアーム3320及び/又はエンドエフェクタ装置3330を移動できる確率は上がる。
【0105】
把持モデル3350a/3350b/3350cの各々のランクを決定する実施例では、コンピュータシステム1100は、把持モデル3350aが、把持モデル3350bよりも高い予測されたグリップ安定性4016を有する可能性があり、把持モデル3350bが、把持モデル3350cよりも高い予測されたグリップ安定性4016を有する可能性があると決定することができる。別の例として、検出された物体3510は、検出された物体3510に対応する複数の物体表現4013に基づいて、把持モデル3350a/3350b/3350cのうちの少なくとも1つによって把持するためにアクセスできない場合があり(すなわち、検出された物体3510のうちの少なくとも1つは、特定の把持モデル3350a/3350b/3350cを有効に使用することが許容されないような場所若しくは配向、又は形状である)、したがって、その時点では、把持モデル3350a/3350b/3350cを介してエンドエフェクタ装置3330によって選び取ることができない。そのようなシナリオでは、残りの把持モデル3350a/3350b/3350cは、予測されたグリップ安定性4016について測定される。例えば、把持モデル3350aは、標的物体3510a又は標的物体3511a/3511bを、例えば、以前に決定された複数の物体表現4013に基づいて、選び取り又は把持する選択肢として利用できない場合がある。したがって、把持モデル3350aは、可能な限り低いランク値、空のランク値、又は全くランクがない(すなわち、完全に無視される)ことを受け取ることができる。したがって、動作4006の把持動作決定中に適用するランクを計算する際に、把持モデル3350aの予測されたグリップ安定性4016を除外することができる。例えば、把持モデル3350bの予測されたグリップ安定性4016が、把持モデル3350cの予測されたグリップ安定性よりも高い値を有すると決定される場合、把持モデル3350bは、より高い値のランクを受け取る一方、把持モデル3350cは、より低い値のランクを受け取る(ただし、依然として、把持モデル3350aよりも値が高い)。他の実施例では、把持モデル3350a/3350b/3350cのうちのアクセス不可能なものは、ランク付け手順に含まれてもよいが、最低ランクを割り当ててもよい。
【0106】
実施形態では、エンドエフェクタ装置3330によって使用するための少なくとも1つの把持モデル3350a/3350b/3350cを決定することは、予測されたグリップ安定性4016の最高判定値を有する把持モデルのランクに基づく。把持モデル3350aのランクは、把持モデル3350b及び/又は3350cのランクよりも高い値を有する予測されたグリップ安定性4016を有する可能性があり、そのため、把持モデル3350aは、把持モデル3350b及び/又は3350cよりも高くランク付けされる可能性がある。各移送サイクル内の標的物体3510a/3511a/3511bの移送の速度を最大化又は最適化するために、コンピュータシステム1100は、類似の予測されたグリップ安定性4016を有する標的物体3510a/3511a/3511bを選択することができる。実施形態では、コンピュータシステム1100は、同じ把持モデル3350a/3350b/3350cを有する複数の標的物体3511a/3511bを選択することができる。コンピュータシステム1100は、検出結果3520に基づいて、標的物体3511a/3511bをグリップしている間に移送サイクルについての運動計画を計算することができる。目的は、供給源容器3420と目的地3440との間の移送速度を最適化しながら、供給源容器3420において複数の標的物体3511a/3511bを選び取るための計算時間を短縮することである。このようにして、ロボット3300は、両方の標的物体3511a/3511bが同一の予測されたグリップ安定性4016を有するため、両方の標的物体3511a/3511bを最大速度で移送することができる。逆にコンピュータシステム1100が、より高いランク(すなわち、予測されたグリップ安定性4016のより高い判定値)を有する把持モデル3350a/3350b/3350cを使用して、エンドエフェクタ装置3330のグリッパ3332/3334によって把持される標的物体3510a/3511a/3511bと、より低いランク(すなわち、予測されたグリップ安定性4016のより低い判定値)を有する把持モデル3350a/3350b/3350cを使用して、エンドエフェクタ装置3330のグリッパ3332/3334によって把持される第2の標的物体3510a/3511a/3511bとを選択した場合、移送の速度は、ランクのより低い把持モデル3350a/3350b/3350cを有する標的物体3510a/3511a/3511bのより低い予測されたグリップ安定性4016によって制限されるか、又は上限が設定される。つまり連続する移送サイクルの場合、予測されたグリップ安定性4016がより高く、かつ移送速度がより高い把持モデル3350a/3350b/3350cを有する2つの標的物体3511a/3511bを選び取り、その後、予測されたグリップ安定性4016がより低く、かつ移送速度がより低い把持モデル3350a/3350b/3350cを有する2つの標的物体3511a/3511bを選び取ることは、両方の移送サイクルが後のシナリオでより遅い移送速度に制限されるため、ともに予測されたグリップ安定性4016がより高い把持モデル3350a/3350b/3350cを有する1つの標的物体3511aと、予測されたグリップ安定性4016がより低い把持モデル3350a/3350b/3350cを有する1つの標的物体3511bとを含む連続する移送サイクルよりも最適である。
【0107】
動作4005の様々な軌道決定及び把持動作決定4006は、方法4000の動作に関して順次説明される。好適で適切な場合、方法4000の様々な動作は、互いに同時に、又は次に提示される異なる順序で発生し得ることが理解される。例えば、軌道決定(目的地軌道3364など)は、他の軌道の実行中に行われてもよい。したがって、目的地軌道3364は、アーム接近軌道3362の実行時に決定され得る。
【0108】
動作4008では、方法4000は、第1のコマンド(例えば、アーム接近コマンド)を出力して、アーム接近軌道3360内のロボットアーム33
20を制御して、複数の物体3500に接近することを含み得る。
図7Bに図示するように、コンピュータシステム1100は、第1のコマンドを出力して、供給源又は容器3420の近傍外の領域から、供給源又は容器3420の近傍における、又は近傍内の場所へロボットアーム3320を制御することができる。第1のコマンドは、ロボットアーム3320を制御して、目的地3440における、又はその近くの領域から、供給源又は容器3420の近傍における、又は近傍内の場所に移動させることができる。動作4008では、方法4000は、第2のコマンド(例えば、エンドエフェクタ装置接近コマンド)を出力して、エンドエフェクタ装置接近軌道3362内のロボットアーム3320を制御して、標的物体3510a/3511a/3511bに接近する(例えば、エンドエフェクタ装置3330に標的物体3510a/3511a/3511bに接近させる)ことを含み得る。
図7Bに図示するように、エンドエフェクタ装置接近軌道3362a/3362bを使用して、複数の標的物体3511a/3511bに接近することができる。
【0109】
動作4010では、方法4000は、第3のコマンド(例えば、エンドエフェクタ装置制御コマンド)を出力して、把持動作でエンドエフェクタ装置3330を制御して、標的物体3510a又は標的物体3511a/3511bを把持することを含む。エンドエフェクタ装置3330は、グリッパ3332/3334のグリッピングフィンガ3332a/3332b/3334a/3334bを使用して、最高ランク及び/又は予測されたグリップ安定性4016を有すると以前に決定した把持モデル3350a/3350b/3350cを使用して標的物体3510a/3511a/3511bを把持することができる。グリッピングフィンガ3332a/3332b/3334a/3334bは、エンドエフェクタ装置3330が標的物体3510a/3511a/3511bと接触すると、所定の把持モデル3350a/3350b/3350cと一致するやり方で移動又は並進するように制御することができる。
【0110】
動作4012では、方法4000は、目的地軌道3364を実行して、ロボットアーム3320を制御して、目的地に接近することを更に含むことができる。動作4012は、第4のコマンド(例えば、ロボットアーム制御コマンド)を出力して、目的地軌道3364内のロボットアーム3320を制御することを含み得る。実施形態では、目的地軌道3364は、上述の軌道決定動作4005の間に決定され得る。実施形態では、目的地軌道3364は、軌道実行動作4008、及びエンドエフェクタ相互作用動作4010の後に決定され得る。実施形態では、目的地軌道3364は、他の動作の実施中を含む、目的地軌道3364の実行前の任意の時点において、コンピュータシステム1100によって決定され得る。実施形態では、動作4012は、第5コマンド(例えば、エンドエフェクタ装置解放コマンド)を出力して、ロボットアーム3320及びエンドエフェクタ装置3330が目的地軌道3364の終わりに目的地3440に到達した際に、標的物体3510a又は標的物体3511a/3511bを目的地3440内に、又は目的地において解放、把持解除、又はチャック解除するようにエンドエフェクタ装置3330を制御することを更に含み得る。
【0111】
高レベルでは、供給源容器3420から目的地3440へのロボットアーム3320による標的物体3510a又は標的物体3511a/3511bの移送サイクルについての運動計画は、
図7Aに図示される動作である、供給源容
器3420の場所から標的物体3510a又は標的物体3511a/3511bを選び取ることと、標的物体3510a又は標的物体3511a/3511bを目的地3440の場所に移送することと、標的物体3510a又は標的物体3511a/3511bを目的地3440の場所に載置することと、供給源容器3420の場所に戻ることと、を伴う。全体の移送サイクル時間は、ロボットアーム3320上のエンドエフェクタ装置3330による標的物体3510a又は標的物体3511a/3511bの予測された把持安定性4016に起因して、供給源容器342
0から目的地3440への標的物体3510a又は標的物体3511a/3511bの移送によって上限が設定される。
【0112】
一般に、本明細書に記載の方法4000は、開始/供給源の場所からタスク/目的地の場所への標的物体(例えば、実行タスクに対応するパッケージ、箱、ケース、ケージ、パレットなどのうちの1つ)の操作(例えば、移動及び/又は再配向)に使用され得る。例えば、荷下ろしユニット(例えば、デバンニングロボット)は、標的物体をキャリア(例えば、トラック)内の場所からコンベヤ上の場所に移送するように構成され得る。また、移送ユニットは、標的物体を1つの場所(例えば、コンベヤ、パレット、又はビン)から別の位置(例えば、パレット、ビンなど)に移送するように構成され得る。別の例として、移送ユニット(例えば、パレタイジングロボット)は、標的物体を、供給源の場所(例えば、パレット、選び取り領域、及び/又はコンベヤ)から目的地パレットに移送するように構成され得る。動作完了時に、輸送ユニット(例えば、コンベヤ、自動搬送車両(AGV)、棚搬送ロボットなど)は、移送ユニットに関連付けられた領域から、装填ユニットに関連付けられた領域へ、標的物体を移送することができ、装填ユニットは、(例えば、標的物体を運ぶパレットを移動させることによって)移送ユニットから、格納場所(例えば、棚上の場所)へ、標的物体を移送することができる。タスク及び関連付けられたアクションに関する詳細は、上記に記載されている。
【0113】
例示のために、コンピュータシステム1100のシステムは、包装及び/又は出荷センタの状況下で説明されるが、コンピュータシステム1100は、製造、組立、保管/在庫、医療、及び/又は他のタイプの自動化のためなど、他の環境/他の目的のためにタスクを実行するように構成できることが理解される。また、コンピュータシステム1100は、マニピュレータ、サービスロボット、モジュラロボットなどの他のユニット(図示せず)を含み得ることも理解される。例えば、いくつかの実施形態では、コンピュータシステム1100は、ケージカート又はパレットからコンベヤ又は他のパレット上に物体を移送するためのデパレタイジングユニット、物体をある容器から別の容器に移送するための容器切り替えユニット、物体をラッピング/収納するための包装ユニット、その1つ以上の特性に従って物体をグループ分けするための選別ユニット、その1つ以上の特性に従って物体を異なって操作する(例えば、選別、グループ分け、及び/又は移送する)するピースピックユニット、又はそれらの組み合わせなどを含み得る
【0114】
関連分野の当業者にとって、本明細書に記載する方法及び用途への、その他の好適な修正並びに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、例示的な例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載及び添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセス若しくは方法のいずれのある特定の行為又は事象は、異なるシーケンスで実施されてもよく、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為又は事象が、方法又はプロセスを遂行するのに必要でなくてもよい)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、又はユニットにより実施されていると記載しているものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって実施されてもよいことは理解されるべきである。したがって、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、様々な変更及び修正を当業者が及ぼし得る。
【0115】
更なる実施形態は、以下の実施形態を含む。
実施形態1は、コンピューティングシステムであって、エンドエフェクタ装置を含む、又はエンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムと、少なくとも1つの処理回路であって、ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む物体取り扱い環境内にあるとき、物体の供給源から目的地へ標的物体を移送するために、標的物体を、物体の供給源内の複数の物体の中から識別すること、ロボットアームが複数の物体に接近するために、アーム接近軌道を生成すること、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成すること、エンドエフェクタ装置で標的物体を把持するための把持動作を生成すること、アーム接近軌道に従ってロボットアームを制御して、複数の物体に接近するために、アーム接近コマンドを出力すること、エンドエフェクタ装置接近軌道内でロボットアームを制御して、標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力すること、及び把持動作においてエンドエフェクタ装置を制御して、標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力すること、を実施するように構成された少なくとも1つの処理回路と、を備える、コンピューティングシステムである。
実施形態2は、ロボットアームが目的地に接近するための目的地軌道を生成することと、目的地軌道に従ってロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、エンドエフェクタ装置を制御して、目的地において標的物体を解放するために、エンドエフェクタ装置解放コマンドを出力することと、を更に含む、実施形態1のコンピュータシステムである。
実施形態3は、ロボットアームの目的地軌道を決定することが、ロボットアームが供給源から目的地に進行するための最適化された目的地軌道時間に基づく、実施形態2のコンピュータシステムである。
実施形態4は、ロボットアームの目的地軌道を決定することが、エンドエフェクタ装置と標的物体との間の予測されたグリップ安定性に基づく、実施形態2のコンピュータシステムである。
実施形態5は、エンドエフェクタ装置接近軌道を決定することが、把持動作でエンドエフェクタ装置が標的物体を把持するための最適化されたエンドエフェクタ装置接近時間に基づく、実施形態1のコンピュータシステムである。
実施形態6は、最適化されたエンドエフェクタ装置接近時間が、標的物体に対する利用可能な把持モデルに基づいて決定される、実施形態5のコンピュータシステムである。
実施形態7は、把持動作を決定することが、把持動作でエンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含む、実施形態1のコンピュータシステムである。
実施形態8は、少なくとも1つの処理回路が、複数の把持モデルの各々の予測されたグリップ安定性に従って、複数の利用可能な把持モデルの各々に対するランクを決定するように更に構成されている、実施形態7のコンピュータシステムである。
実施形態9は、エンドエフェクタ装置によって使用するための少なくとも1つの把持モデルを決定することが、予測されたグリップ安定性の最も高い判定値を有するランクに基づく、実施形態8のコンピュータシステムである。
実施形態10は、少なくとも1つの処理回路が、各々が物体の供給源内の1つ以上の物体のうちの検出された物体を表し、検出された物体の物体配向、物体の供給源内の検出された物体の場所、他の物体に対する検出された物体の場所、及び信頼度決定のうちの少なくとも1つを定義する、対応する物体表現を含む、1つ以上の検出結果を生成することのために更に構成されている、実施形態1のコンピュータシステムである。
実施形態11は、複数の物体が、サイズ、形状、重量、及び材料組成物に関して実質的に同一である、実施形態1のコンピュータシステムである。
実施形態12は、複数の物体が、サイズ、形状、重量、及び材料組成において互いに異なる、実施形態1のコンピュータシステムである。
実施形態13は、1つ以上の検出結果から標的物体を識別することが、検出された物体に対して利用可能な把持モデルが存在するかを決定することと、検出された物体から、利用可能な把持モデルなしで、検出された物体を取り除くことと、を含む、実施形態10のコンピュータシステムである。
実施形態14は、物体配向、物体の供給源内の検出された物体の場所、及び/又は物体間距離のうちの少なくとも1つに基づいて、検出された物体を取り除くことを更に含む、実施形態13のコンピュータシステムである。
実施形態15は、少なくとも1つの処理回路が、標的物体を含む複数の標的物体を検出結果から識別するために更に構成されている、実施形態1のコンピュータシステムである。
実施形態16は、標的物体が、第1の把持モデルと関連付けられた複数の標的物体の第1の標的物体であり、複数の標的物体の第2の標的物体が、第2の把持モデルと関連付けられている、実施形態15のコンピュータシステムである。
実施形態17は、複数の標的物体を識別することが、エンドエフェクタ装置による把持のための第1の標的物体、及びエンドエフェクタ装置による把持のための第2の標的物体を選択することを含む、実施形態15のコンピュータシステムである。
実施形態18は、実施形態17のコンピュータシステムであり、少なくとも1つの処理回路が、ロボットアームを制御して第2の標的物体に接近するために、第2のエンドエフェクタ装置接近コマンドを出力することと、エンドエフェクタ装置を制御して第2の標的物体を把持するために、第2のエンドエフェクタ装置制御コマンドを出力し、ロボットアームが目的地に接近するための目的地軌道を生成することと、目的地軌道に従ってロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、第1の標的物体及び第2の標的物体を目的地において解放するように、エンドエフェクタ装置を制御するために、エンドエフェクタ装置解放コマンドを出力することと、のために更に構成されている、実施形態17のコンピュータシステムである。
実施形態19は、物体の供給源から標的物体を選び取る方法であって、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道に従ってロボットアームを制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道に従ってロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、方法である。
実施形態20は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能な、物体の供給源から標的物体を選び取るための方法を実装するための実行可能な命令で構成された、非一時的コンピュータ可読媒体であって、方法が、標的物体を、物体の供給源内の複数の物体の中から識別することと、エンドエフェクタ装置を有するロボットアームが複数の物体に接近するために、アーム接近軌道を生成することと、エンドエフェクタ装置が標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、エンドエフェクタ装置で標的物体を把持するための把持動作を生成することと、複数の物体に接近するアーム接近軌道内でエンドエフェクタ装置を制御するために、アーム接近コマンドを出力することと、標的物体に接近するエンドエフェクタ装置接近軌道内でロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、把持動作においてエンドエフェクタ装置を制御して、物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含む、非一時的コンピュータ可読媒体である。
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムと、
少なくとも1つの処理回路と、を備え、
前記少なくとも1つの処理回路は、前記ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む前記物体取り扱い環境内にあるとき、前記物体の供給源から前記目的地へ標的物体を移送するために、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別すること、
前記ロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成すること、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成すること、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成すること、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力すること、
前記エンドエフェクタ装置接近軌道内で前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力すること、及び
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力すること、
を実行するように構成されており、
前記把持動作を決定することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
コンピューティングシステム。
【請求項2】
前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記目的地において前記標的物体を解放するために、エンドエフェクタ装置解放コマンドを出力することと、を更に含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記ロボットアームの前記目的地軌道を決定することが、前記ロボットアームが前記供給源から前記目的地まで動くのに最適化された目的地軌道時間に基づく、請求項2に記載のコンピューティングシステム。
【請求項4】
前記ロボットアームの前記目的地軌道を決定することが、前記エンドエフェクタ装置と前記標的物体との間の予測されたグリップ安定性に基づく、請求項2に記載のコンピューティングシステム。
【請求項5】
前記エンドエフェクタ装置接近軌道を決定することが、前記把持動作で前記エンドエフェクタ装置が前記標的物体を把持するのに最適化されたエンドエフェクタ装置接近時間に基づく、請求項1に記載のコンピューティングシステム。
【請求項6】
前記最適化されたエンドエフェクタ装置接近時間が、前記標的物体に対する利用可能な把持モデルに基づいて決定される、請求項5に記載のコンピューティングシステム。
【請求項7】
前記エンドエフェクタ装置は複数の把持モデルを用いて前記把持動作中に前記標的物体を把持することができる、請求項1に記載のコンピューティングシステム。
【請求項8】
前記少なくとも1つの処理回路が、前記複数の把持モデルの各々の予測されたグリップ安定性に従って、前記複数の利用可能な把持モデルの各々に対するランクを決定するように更に構成されている、請求項1に記載のコンピューティングシステム。
【請求項9】
前記エンドエフェクタ装置によって使用するための前記少なくとも1つの把持モデルを決定することが、前記予測されたグリップ安定性の最も高い判定値を有する前記ランクに基づく、請求項8に記載のコンピューティングシステム。
【請求項10】
前記少なくとも1つの処理回路が、
各々が前記物体の供給源内の前記1つ以上の物体のうちの検出された物体を表す1つ以上の検出結果を生成することのために更に構成されており、
前記1つ以上の検出結果の各々は、前記検出された物体の物体配向、前記物体の供給源内の前記検出された物体の場所、他の物体に対する検出された物体の場所、及び信頼度決定のうちの少なくとも1つを定義する、対応する物体表現を含む、請求項1に記載のコンピューティングシステム。
【請求項11】
前記複数の物体が、サイズ、形状、重量、及び材料組成物に関して実質的に同一である、請求項1に記載のコンピューティングシステム。
【請求項12】
前記複数の物体が、サイズ、形状、重量、及び材料組成において互いに異なる、請求項1に記載のコンピューティングシステム。
【請求項13】
前記1つ以上の検出結果から前記標的物体を識別することが、
前記検出された物体に対して利用可能な把持モデルが存在するかを決定することと、
前記検出された物体から、利用可能な把持モデルなしで、前記検出された物体を取り除くことと、を含む、請求項10に記載のコンピューティングシステム。
【請求項14】
前記物体配向、前記物体の供給源内の前記検出された物体の場所、及び/又は物体間距離のうちの少なくとも1つに基づいて、前記検出された物体を取り除くことを更に含む、請求項13に記載のコンピューティングシステム。
【請求項15】
前記少なくとも1つの処理回路が、前記標的物体を含む複数の標的物体を検出結果から識別するために更に構成されている、請求項1に記載のコンピューティングシステム。
【請求項16】
前記標的物体が、第1の把持モデルと関連付けられた前記複数の標的物体の第1の標的物体であり、
前記複数の標的物体の第2の標的物体が、第2の把持モデルと関連付けられている、請求項15に記載のコンピューティングシステム。
【請求項17】
前記複数の標的物体を識別することが、前記エンドエフェクタ装置による把持のための第1の標的物体、及び前記エンドエフェクタ装置による把持のための第2の標的物体を選択することを含む、請求項15に記載のコンピューティングシステム。
【請求項18】
前記少なくとも1つの処理回路が、
前記ロボットアームを制御して前記第2の標的物体に接近するために、第2のエンドエフェクタ装置接近コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記第2の標的物体を把持するために、第2のエンドエフェクタ装置制御コマンドを出力し、前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記第1の標的物体及び前記第2の標的物体を前記目的地において解放するように、前記エンドエフェクタ装置を制御するために、エンドエフェクタ装置解放コマンドを出力することと、のために更に構成されている、請求項17に記載のコンピューティングシステム。
【請求項19】
物体の供給源から標的物体を選び取る方法であって、
前記標的物体を、前記物体の供給源内の複数の物体の中で識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力することと、
前記エンドエフェクタ装置接近軌道内の前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含み、
前記把持動作を決定することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
方法。
【請求項20】
ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能である、実行可能な命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、物体の供給源から標的物体を選び取るための方法を実装するためのものであり、
前記方法は、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記複数の物体に接近する前記アーム接近軌道に従って前記ロボットアームを制御するために、アーム接近コマンドを出力することと、
前記標的物体に接近する前記エンドエフェクタ装置接近軌道で前記ロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含み、
前記把持動作を決定することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
非一時的コンピュータ可読媒体。
【手続補正3】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正4】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正5】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正書】
【提出日】2023-09-06
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0054
【補正方法】変更
【補正の内容】
【0054】
図3A及び
図3Bは、本明細書に説明されるプロセス及び方法が実施され得る例示的な環境を図示する。
図3Aは、少なくともコンピューティングシステム1100、ロボット3300、及びカメラ1200を含む、(
図1A~
図1Dのシステム1000/1500A/1500B/1500Cの実施形態であり得る)システム3000を有する環境を描写している。カメラ1200は、カメラ1200の実施形態であってもよく、カメラ1200のカメラ視野3200内の情景5013を表す、又はより具体的には、物体3410A/3410B/3410C/3410Dなどの、カメラ視野3200内の物体(箱など)を表す、画像情報を生成するように構成され得る。一実施例では、物体3410A/3410B/3410C/3410Dの各々は、例えば、箱又は木枠などの容器であってもよく、
もしくは、物体は、例えば、上に容器が配設されるパレットであり得る。更に、物体3410A/3410B/3410C/3410Dの各々は、更に個々の物体5012を含む容器であってもよい。各物体5012は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車の歯、又は任意の他のタイプの物理的物体、並びに複数の物体のアセンブリであってもよい。
図3Aは、物体5012の複数の容器を含む実施形態を図示するが、
図3Bは、物体5012の単一の容器を含む実施形態を図示する。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0097
【補正方法】変更
【補正の内容】
【0097】
動作4005では、方法4000は、エンドエフェクタ装置3330が標的物体3510a又は標的物体3511a/3511bに接近するために、エンドエフェクタ装置接近軌道3362を決定することを含み得る。エンドエフェクタ装置接近軌道3362は、ロボットアーム3320に取り付けたエンドエフェクタ装置3330の予想される進行経路を表し得る。コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362を決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道3360が決定された時点で、エンドエフェクタ装置接近軌道3362が決定される。エンドエフェクタ装置接近軌道3362は、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0099
【補正方法】変更
【補正の内容】
【0099】
図7Bは更に、標的物体3511a/3511bを選び取り又は把持するために使用される複数のエンドエフェクタ装置接近軌道3362a/3362bを図示する。実施形態では、コンピュータシステム1100は、ロボットアーム3320、エンドエフェクタ装置3330、又はロボットアーム3320とエンドエフェクタ装置3330の組み合わせが、供給源又は容器3420内の標的物体3510a又は標的物体3511a/3511bに向かう方向に移動又は並進するように制御される、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定し得る。実施形態では、ロボットアーム3320が供給源又は容器3420の近傍において、又は近傍内でその軌道を終了するように、ロボットアーム軌道336
0が決定された時点で、エンドエフェクタ装置接近軌道3362/3362a/3362bが決定される。エンドエフェクタ装置接近軌道3362/3362a/3362bは、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bが、標的物体3510a又は標的物体3511a/3511bに隣接して載置されるようなやり方で決定できるので、グリッパ3332/3334のグリッパフィンガ3332a/3332b/3334a/3334bは、前述したように、決定された把持モデル3350a/3350b/3350cと一致するやり方で、標的物体3510a又は標的物体3511a/3511bを適切に把持することができる。エンドエフェクタ接近軌道3362/3362a/3362bは、グリッパ3332/3334の状態、すなわち、標的物体3510a又は標的物体3511a/3511bが現在、少なくとも1つのグリッパ3332/3334によってグリップされているかどうかによって更に決定され得る。そのようなシナリオでは、エンドエフェクタ装置接近軌道3362/3362a/3362bを決定することは、標的物体3510a又は標的物体3511a/3511bを把持するための把持動作において、エンドエフェクタ装置3330の最適化されたエンドエフェクタ装置接近時間に基づいており、最適化されたエンドエフェクタ装置接近時間は、以下に記載される計算に基づいて、決定される最も効率的なエンドエフェクタ装置接近時間である。最適化されたエンドエフェクタ装置接近時間は、把持された標的物体3510a又は標的物体3511a/3511b上のグリッパ3332/3334のグリップ安定性に基づいて計算される。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0107
【補正方法】変更
【補正の内容】
【0107】
動作4005の様々な軌道決定及び把持動作決定4006は、方法4000の動作に関して順次説明される。好適で適切な場合、方法4000の様々な動作は、互いに同時に、又は次に提示される異なる順序で発生し得ることが理解される。例えば、軌道決定(目的地軌道3364など)は、他の軌道の実行中に行われてもよい。したがって、目的地軌道3364は、アーム接近軌道3360の実行時に決定され得る。
【手続補正5】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
エンドエフェクタ装置を含む、又は当該エンドエフェクタ装置に取り付けられたロボットアームを有するロボットと通信し、かつカメラと通信するように構成された制御システムと、
少なくとも1つの処理回路と、を備え、
前記少なくとも1つの処理回路は、前記ロボットが、物体取り扱い環境内の目的地に移送するための物体の供給源を含む前記物体取り扱い環境内にあるとき、前記物体の供給源から前記目的地へ標的物体を移送するために、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別すること、
前記ロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成すること、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成すること、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成すること、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力すること、
前記エンドエフェクタ装置接近軌道内で前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力すること、及び
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力すること、
を実行するように構成されており、
前記把持動作を生成することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから、当該複数の利用可能な把持モデルの各々の予測されたグリップ安定性に従って、少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
コンピューティングシステム。
【請求項2】
前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記目的地において前記標的物体を解放するために、エンドエフェクタ装置解放コマンドを出力することと、を更に含む、請求項1に記載のコンピューティングシステム。
【請求項3】
前記ロボットアームの前記目的地軌道を決定することが、前記ロボットアームが前記供給源から前記目的地まで動くのに最適化された目的地軌道時間に基づく、請求項2に記載のコンピューティングシステム。
【請求項4】
前記ロボットアームの前記目的地軌道を決定することが、前記エンドエフェクタ装置と前記標的物体との間の予測されたグリップ安定性に基づく、請求項2に記載のコンピューティングシステム。
【請求項5】
前記エンドエフェクタ装置接近軌道を決定することが、前記把持動作で前記エンドエフェクタ装置が前記標的物体を把持するのに最適化されたエンドエフェクタ装置接近時間に基づく、請求項1に記載のコンピューティングシステム。
【請求項6】
前記最適化されたエンドエフェクタ装置接近時間が、前記標的物体に対する利用可能な把持モデルに基づいて決定される、請求項5に記載のコンピューティングシステム。
【請求項7】
前記エンドエフェクタ装置は複数の把持モデルを用いて前記把持動作中に前記標的物体を把持することができる、請求項1に記載のコンピューティングシステム。
【請求項8】
前記少なくとも1つの処理回路が、前記複数の把持モデルの各々の前記予測されたグリップ安定性に従って、前記複数の利用可能な把持モデルの各々に対するランクを決定するように更に構成されている、請求項1に記載のコンピューティングシステム。
【請求項9】
前記エンドエフェクタ装置によって使用するための前記少なくとも1つの把持モデルを決定することが、前記予測されたグリップ安定性の最も高い判定値を有する前記ランクに基づく、請求項8に記載のコンピューティングシステム。
【請求項10】
前記少なくとも1つの処理回路が、
各々が前記物体の供給源内の前記1つ以上の物体のうちの検出された物体を表す1つ以上の検出結果を生成することのために更に構成されており、
前記1つ以上の検出結果の各々は、前記検出された物体の物体配向、前記物体の供給源内の前記検出された物体の場所、他の物体に対する検出された物体の場所、及び信頼度決定のうちの少なくとも1つを定義する、対応する物体表現を含む、請求項1に記載のコンピューティングシステム。
【請求項11】
前記複数の物体が、サイズ、形状、重量、及び材料組成物に関して実質的に同一である、請求項1に記載のコンピューティングシステム。
【請求項12】
前記複数の物体が、サイズ、形状、重量、及び材料組成において互いに異なる、請求項1に記載のコンピューティングシステム。
【請求項13】
前記1つ以上の検出結果から前記標的物体を識別することが、
前記検出された物体に対して利用可能な把持モデルが存在するかを決定することと、
前記検出された物体から、利用可能な把持モデルなしで、前記検出された物体を取り除くことと、を含む、請求項10に記載のコンピューティングシステム。
【請求項14】
前記物体配向、前記物体の供給源内の前記検出された物体の場所、及び/又は物体間距離のうちの少なくとも1つに基づいて、前記検出された物体を取り除くことを更に含む、請求項13に記載のコンピューティングシステム。
【請求項15】
前記少なくとも1つの処理回路が、前記標的物体を含む複数の標的物体を検出結果から識別するために更に構成されている、請求項1に記載のコンピューティングシステム。
【請求項16】
前記標的物体が、第1の把持モデルと関連付けられた前記複数の標的物体の第1の標的物体であり、
前記複数の標的物体の第2の標的物体が、第2の把持モデルと関連付けられている、請求項15に記載のコンピューティングシステム。
【請求項17】
前記複数の標的物体を識別することが、前記エンドエフェクタ装置による把持のための第1の標的物体、及び前記エンドエフェクタ装置による把持のための第2の標的物体を選択することを含む、請求項15に記載のコンピューティングシステム。
【請求項18】
前記少なくとも1つの処理回路が、
前記ロボットアームを制御して前記第2の標的物体に接近するために、第2のエンドエフェクタ装置接近コマンドを出力することと、
前記エンドエフェクタ装置を制御して前記第2の標的物体を把持するために、第2のエンドエフェクタ装置制御コマンドを出力し、前記ロボットアームが前記目的地に接近するための目的地軌道を生成することと、
前記目的地軌道に従って前記ロボットアームを制御するために、ロボットアーム制御コマンドを出力することと、
前記第1の標的物体及び前記第2の標的物体を前記目的地において解放するように、前記エンドエフェクタ装置を制御するために、エンドエフェクタ装置解放コマンドを出力することと、のために更に構成されている、請求項17に記載のコンピューティングシステム。
【請求項19】
物体の供給源から標的物体を選び取る方法であって、
前記標的物体を、前記物体の供給源内の複数の物体の中で識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記アーム接近軌道に従って前記ロボットアームを制御して前記複数の物体に接近するために、アーム接近コマンドを出力することと、
前記エンドエフェクタ装置接近軌道内の前記ロボットアームを制御して前記標的物体に接近するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含み、
前記把持動作を生成することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから、当該複数の利用可能な把持モデルの各々の予測されたグリップ安定性に従って、少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
方法。
【請求項20】
ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも1つの処理回路によって動作可能である、実行可能な命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、物体の供給源から標的物体を選び取るための方法を実装するためのものであり、
前記方法は、
前記標的物体を、前記物体の供給源内の複数の物体の中から識別することと、
エンドエフェクタ装置を有するロボットアームが前記複数の物体に接近するために、アーム接近軌道を生成することと、
前記エンドエフェクタ装置が前記標的物体に接近するために、エンドエフェクタ装置接近軌道を生成することと、
前記エンドエフェクタ装置で前記標的物体を把持するための把持動作を生成することと、
前記複数の物体に接近する前記アーム接近軌道に従って前記ロボットアームを制御するために、アーム接近コマンドを出力することと、
前記標的物体に接近する前記エンドエフェクタ装置接近軌道で前記ロボットアームを制御するために、エンドエフェクタ装置接近コマンドを出力することと、
前記把持動作において前記エンドエフェクタ装置を制御して前記標的物体を把持するために、エンドエフェクタ装置制御コマンドを出力することと、を含み、
前記把持動作を生成することが、前記把持動作で前記エンドエフェクタ装置によって使用するための、複数の利用可能な把持モデルから、当該複数の利用可能な把持モデルの各々の予測されたグリップ安定性に従って、少なくとも1つの把持モデルを決定することを含み、前記利用可能な把持モデルは、検出された物体が、どのようにエンドエフェクタ装置によって把持されるかを説明する
非一時的コンピュータ可読媒体。
【手続補正6】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【外国語明細書】