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

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

▶ 株式会社MUJINの特許一覧

特許7586436カメラによって生成される画像情報に基づいて、物体検出またはロボット相互作用計画作成を行う方法および計算システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】カメラによって生成される画像情報に基づいて、物体検出またはロボット相互作用計画作成を行う方法および計算システム
(51)【国際特許分類】
   B25J 19/04 20060101AFI20241112BHJP
   B25J 13/08 20060101ALI20241112BHJP
【FI】
B25J19/04
B25J13/08 A
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2022003304
(22)【出願日】2022-01-12
(62)【分割の表示】P 2021505688の分割
【原出願日】2020-12-09
(65)【公開番号】P2022036243
(43)【公開日】2022-03-04
【審査請求日】2023-12-06
(31)【優先権主張番号】62/946,973
(32)【優先日】2019-12-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ヨウ,シュタオ
(72)【発明者】
【氏名】ラートクンターノン,プティチャイ
(72)【発明者】
【氏名】デアンコウ,ロセン ニコラエフ
【審査官】尾形 元
(56)【参考文献】
【文献】特開2019-185239(JP,A)
【文献】特開2017-87326(JP,A)
【文献】国際公開第2019/084468(WO,A1)
【文献】国際公開第2019/097004(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
計算システムであって、
ボットおよび前記ロボット上に取り付けられ、カメラ視野を有するカメラと通信するように構成される通信インターフェースと、
少なくとも一つの処理回路と、を備え、
前記少なくとも一つの処理回路は
体に関連付けられた物体構造の少なくとも一部分を表す物体構造報に基づいて、前記物体構造に関連付けられた物体コーナーを識別することと、
前記物体構造情報に基づいて一つ以上のカメラ配置動作コマンドを出力することであって、前記一つ以上のカメラ配置動作コマンドは、前記ロボットによって実行されるとき、前記ロボットに、前記カメラが前記物体コーナーに向くカメラ姿勢に、前記カメラを移動させることと、
前記カメラ姿勢にある前記カメラによって生成された画像情報に基づいて、前記物体構造情報を更新して、感知された構造情報を生成することと、
記感知された構造情報に基づいて、前記物体に関連付けられた物体タイプを決定することと
行うように構成される、計算システム。
【請求項2】
前記少なくとも一つの処理回路は、さらに、
記感知された構造情報とテンプレート候補セットとの比較を行うことであって、前記テンプレート候補セットが、異なる物体タイプに関連付けられた物体構造を記述する物体認識テンプレートを含むことと、
前記比較に基づいて、前記テンプレート候補セットから物体認識テンプレートを選択して、前記物体認識テンプレートが選択された物体認識テンプレートとなり、かつ前記物体に関連付けられた前記物体タイプを表すことと、
前記選択された物体認識テンプレートに関連付けられた物体構造の記述を含む前記物体タイプに基づいて、一つ以上のロボット相互作用位置を決定することと、を行うように構成される、請求項1に記載の計算システム。
【請求項3】
前記少なくとも一つの処理回路は、さらに、前記テンプレート候補セットの中の前記物体認識テンプレートに関連付けられたエラー値のセットを算出することによって、前記感知された構造情報と前記テンプレート候補セットとの前記比較を行うように構成され、
前記エラー値のセットの各エラー値は、(i)前記感知された構造情報と、(ii)前記それぞれのエラー値に関連付けられた物体認識テンプレートに含まれる物体構造の記述と、のそれぞれの乖離度を示し、
前記選択された物体認識テンプレートは、前記エラー値のセットの中で最も低いエラー値に関連付けられる、請求項2に記載の計算システム。
【請求項4】
記感知された構造情報は、前記物体に関連付けられた前記物体構造を表すための複数の座標を含む点群であり、
前記少なくとも一つの処理回路は、さらに、前記テンプレート候補セットの各物体認識テンプレートに対して、前記点群の前記複数の座標からの座標、前記物体認識テンプレートに含まれるそれぞれの物体構造の記述によって記述される一つ以上の物理的特徴との間の合致に基づいて、少なくとも一つのエラー値を算出するように構成される、請求項3に記載の計算システム。
【請求項5】
前記テンプレート候補セットの中の前記物体認識テンプレートは、それぞれ物体構造モデルのセットを記述し、
前記テンプレート候補セットは、モデル-配向の組み合わせを含むセットであるモデル-配向候補セットであり、前記モデル-配向候補セットの各モデル-配向の組み合わせは、(i)前記物体構造モデルのセットのうちの一つである物体構造モデルと、(ii)前記物体構造モデルの配向との組み合わせであり、
前記エラー値のセットは、前記モデル-配向候補セットの前記モデル-配向の組み合わせにそれぞれ関連付けられ、
前記エラー値のセットの各エラー値は、(i)前記感知された構造情報と、(ii)前記エラー値に関連付けられたそれぞれのモデル-配向の組み合わせの物体構造モデルと、のそれぞれの乖離度を示し、前記エラー値は、さらに、前記それぞれのモデル-配向の組み合わせの配向を有する前記物体構造モデルに関連付けられる、請求項3に記載の計算システム。
【請求項6】
前記少なくとも一つの処理回路は、さらに、前記モデル-配向候補セットから、前記選択された物体認識テンプレートによって記述される物体構造モデルを含むモデル-配向の組み合わせを選択することによって、前記物体認識テンプレートを選択するように構成され、選択される前記モデル-配向の組み合わせは、前記エラー値のセットの中で最も低いエラー値に関連付けられ、
前記少なくとも一つの処理回路は、さらに、選択される前記モデル-配向の組み合わせの前記物体構造モデルに基づいて、かつ選択される前記モデル-配向の組み合わせの配向に基づいて、前記一つ以上のロボット相互作用位置を決定するように構成される、請求項5に記載の計算システム。
【請求項7】
記感知された構造情報は、前記カメラ視野の中にある前記物体について、前記物体構造によって占有される推定領域を画定し、
前記少なくとも一つの処理回路は、さらに、前記モデル-配向候補セットに関連付けられた前記エラー値のセットを算出する前に、前記モデル-配向候補セットの中の各モデル-配向の組み合わせに対して、
前記物体構造モデルが前記モデル-配向の組み合わせの配向を有するときに、前記モデル-配向の組み合わせの物体構造モデルが実質的に前記推定領域内に収まるかを判定することと、
前記物体構造モデルが前記モデル-配向の組み合わせの前記配向を有するときに、前記物体構造モデルが実質的に前記推定領域内に収まらないという判定に応答して、前記モデル-配向候補セットから前記モデル-配向の組み合わせを除去することと、
を行うことによって、前記モデル-配向候補セットをフィルタリングするように構成され、
前記モデル-配向候補セットがフィルタリングされた後、前記エラー値のセットは、前記モデル-配向候補セットに残るモデル-配向の組み合わせに基づいて算出される、請求項6に記載の計算システム。
【請求項8】
記感知された構造情報は、前記物体構造によって占有される推定領域を画定し、
前記テンプレート候補セットの中の前記物体認識テンプレートは、それぞれ物体構造モデルのセットを記述し、
前記少なくとも一つの処理回路は、さらに、前記テンプレート候補セットの中の前記物体認識テンプレートに関連付けられた前記エラー値のセットを算出する前に、
実質的に前記推定領域内に収まらない一つ以上のそれぞれの物体構造モデルを含む一つ以上の物体認識テンプレートを識別することと、
前記一つ以上の物体認識テンプレートを前記テンプレート候補セットから除去することとと、
を行うことによって、前記テンプレート候補セットをフィルタリングするように構成され、
前記テンプレート候補セットがフィルタリングされた後、前記関連付けられたエラー値のセットは、前記テンプレート候補セットに残る物体認識テンプレートに基づいて算出される、請求項3に記載の計算システム。
【請求項9】
前記少なくとも一つの処理回路は、さらに、前記テンプレート候補セットの少なくとも一つの物体認識テンプレートに対して、前記感知された構造情報に基づいて、前記物体認識テンプレートに含まれるそれぞれの物体構造の記述を調整するように構成される、請求項2に記載の計算システム。
【請求項10】
前記少なくとも一つの物体認識テンプレートの前記それぞれの物体構造の記述は、前記少なくとも一つの物体認識テンプレートによって記述されるそれぞれの物体構造の物理的特徴を記述し、前記それぞれの物体構造の記述は、さらに、前記物理的特徴の姿勢を記述する姿勢情報を含み、
前記少なくとも一つの物体認識テンプレートによって記述される前記物理的特徴が、前記感知された構造情報に合致する度合いを増加させるように、前記少なくとも一つの処理回路は、さらに、記感知された構造情報に基づいて、前記姿勢情報を調整するように構成される、請求項9に記載の計算システム。
【請求項11】
前記物体が容器であるとき、および前記物体構造が容器構造であるとき、前記少なくとも一つの処理回路は、さらに、前記一つ以上のロボット相互作用位置を、前記容器を握ることに関連付けられた複数のグリップ位置として決定するように構成され、前記複数のグリップ位置は、前記容器に関連付けられた容器タイプである前記物体タイプに基づいて決定される、請求項1に記載の計算システム。
【請求項12】
前記容器構造が、前記容器構造の側部表面から突出する複数の隆起を含むとき、前記少なくとも一つの処理回路は、さらに、記画像情報または前記感知された構造情報に基づいて、前記複数の隆起を検出するように構成され、前記複数の隆起は、前記容器構造の前記側部表面上に検出された隆起であり、
前記容器に関連付けられた前記容器タイプは、前記検出された隆起に基づいて決定される、請求項11に記載の計算システム。
【請求項13】
前記少なくとも一つの処理回路は、さらに、
記感知された構造情報とテンプレート候補セットとの比較を行うことであって、前記テンプレート候補セットが、異なる容器タイプに関連付けられた容器構造を記述する物体認識テンプレートを含むセットであることと、
物体認識テンプレートが選択された物体認識テンプレートであるように、前記比較に基づいて、前記テンプレート候補セットから前記物体認識テンプレートを選択することであって、前記選択された物体認識テンプレートが、前記容器に関連付けられた前記容器タイプを表すことと、
によって前記容器タイプを決定するように構成され、
前記選択された物体認識テンプレートが、少なくとも容器の縁構造を記述する容器構造モデルを含むときに、前記少なくとも一つの処理回路は、さらに、前記容器の縁構造に基づいて前記複数のグリップ位置を決定するように構成される、請求項11に記載の計算システム。
【請求項14】
前記少なくとも一つの処理回路は、さらに、前記容器の縁構造に沿う複数のそれぞれの位置に関連付けられた、複数の張り出し距離を決定するように構成され、前記複数の張り出し距離の各張り出し距離は、前記ロボットのエンドエフェクタ装置が前記複数の位置のそれぞれの位置に存在する場合、前記エンドエフェクタ装置が前記容器の縁構造の下を前記容器構造に向かって内方向に延在できる距離であり、
前記少なくとも一つの処理回路は、さらに、前記複数の張り出し距離に基づいて、前記容器の縁構造に沿う前記複数のそれぞれの位置の中から、前記複数のグリップ位置を選択するように構成される、請求項13に記載の計算システム。
【請求項15】
前記少なくとも一つの処理回路は、さらに、記画像情報が容器蓋の存在を示すかを判定するように構成され、
前記複数のグリップ位置は、前記画像情報が前記容器蓋の存在を示すかにさらに基づいて、決定される、請求項11に記載の計算システム。
【請求項16】
択された物体認識テンプレートが少なくとも容器蓋構造を記述する容器構造モデルを含むときに、前記少なくとも一つの処理回路は、さらに、前記容器蓋構造に基づいて前記複数のグリップ位置を決定するように構成される、請求項15に記載の計算システム。
【請求項17】
追加の物体が前記カメラ視野の中にあり、かつ、前記追加の物体が回転対称であるときに、前記少なくとも一つの処理回路は、さらに、
前記追加の物体について物体構造を表す追加画像情報を受信することと、
前記追加画像情報に基づいて、前記物体認識テンプレートのセットに対する追加物体認識テンプレートを生成することと、を行うように構成され
前記追加物体認識テンプレートは、前記追加の物体についての前記物体構造の一つのコーナーに基づいて、前記追加の物体についての前記物体構造の残りのコーナーに基づくことなく生成される、請求項2に記載の計算システム。
【請求項18】
命令を有する非一時的コンピュータ可読媒体であって、
前記命令は、計算システムの少なくとも一つの処理回路によって実行されるとき、前記少なくとも一つの処理回路を、
物体に関連付けられた物体構造の少なくとも一部分を表す物体構造情報に基づいて、前記物体構造に関連付けられた物体コーナーを識別することと、
前記物体構造情報に基づいて一つ以上のカメラ配置動作コマンドを出力することであって、前記一つ以上のカメラ配置動作コマンドは、カメラが取り付けられたロボットによって実行されるとき、前記ロボットに、前記カメラが前記物体コーナーに向くカメラ姿勢に、前記カメラを移動させることと、
前記カメラ姿勢にある前記カメラによって生成された画像情報に基づいて、前記物体構造情報を更新して、感知された構造情報を生成することと、
前記感知された構造情報に基づいて、前記物体に関連付けられた物体タイプを決定することと、
を行うように構成する、非一時的コンピュータ可読媒体。
【請求項19】
前記少なくとも一つの処理回路は、さらに、
前記物体タイプに基づいて、一つ以上のロボット相互作用位置を決定することと、
前記一つ以上のロボット相互作用位置と前記ロボットとの間の相互作用に対する一つ以上のロボット相互作用動作コマンドを出力することと、を行うように構成される、請求項18に記載の非一時的コンピュータ可読媒体。
【請求項20】
計算システムによって行われる方法であって、
前記計算システムで、物体構造情報に基づいて物体構造に関連付けられた物体コーナーを識別することであって、前記物体構造情報は、物体に関連付けられた前記物体構造の少なくとも一部分を表し、前記計算システムは、(i)ロボットと(ii)前記ロボット上に取り付けられたカメラと通信するように構成されることと
前記物体構造情報に基づいて一つ以上のカメラ配置動作コマンドを出力することであって、前記一つ以上のカメラ配置動作コマンドは、前記ロボットによって実行されるとき、前記ロボットに、前記カメラが前記物体コーナーに向くカメラ姿勢に、前記カメラを移動させることと、
前記カメラ姿勢にある前記カメラによって生成された画像情報に基づいて、前記物体構造情報を更新して、感知された構造情報を生成することと、
記感知された構造情報に基づいて、前記物体に関連付けられた物体タイプを決定することと、
含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は「ROBOTIC SYSTEM WITH GRIPPING MECHANISM」と題する、2019年12月12日出願の米国仮特許出願第62/946,973号の利益を請求し、その全体の内容は参照により本明細書に組み込まれる。
【0002】
本開示は、カメラによって生成される画像情報に基づいて、物体検出またはロボットの相互作用計画作成を行う、方法および計算システムに関する。
【背景技術】
【0003】
自動化がより一般的になるに従い、倉庫保管および小売環境など、より多くの環境においてロボットが使用されている。例えば、ロボットは、商品または倉庫の中にある他の物体と相互作用するように使用されうる。ロボットの動作は、固定されてもよく、または倉庫の中のセンサーによって生成された情報などの、入力に基づいてもよい。
【発明の概要】
【0004】
本開示の一態様は、物体検出を行う計算システムによって実施される方法に関する。一部の実例では、計算システムは、計算システムに方法を行わせる命令を有する非一時的コンピュータ可読媒体を含みうる。実施形態では、計算システムは、通信インターフェースおよび少なくとも一つの処理回路を備えてもよい。通信インターフェースは、(i)ロボットアームと、ロボットアームの一端に配置されるか、または一端を形成するエンドエフェクタ装置とを有するロボット、および(ii)ロボットアーム上に取り付けられてカメラ視野を有するカメラ、と通信するように構成される。少なくとも一つの処理回路は、物体がカメラ視野の中にあるとき、以下のこと、すなわち、物体に関連付けられた物体構造の少なくとも第一の部分を表す第一の画像情報を受信することであって、第一の画像情報は、カメラが物体構造の第一の部分に向く第一のカメラ姿勢にカメラがあるとき、カメラによって生成されることと、第一の画像情報に基づいて、物体に関連付けられた物体構造を表す、感知された構造情報を生成または更新することと、感知された構造情報に基づいて、物体構造に関連付けられた物体コーナーを識別することと、ロボットによって実行されるとき、ロボットアームに、カメラが物体コーナーに向く第二のカメラ姿勢に、カメラを移動させる、一つ以上のカメラ配置動作コマンドを出力することと、物体構造を表す第二の画像情報を受信することであって、第二の画像情報は、カメラが第二のカメラ姿勢にある間に、カメラによって生成されることと、第二の画像情報に基づいて、感知された構造情報を更新して、更新された感知された構造情報を生成することと、更新された感知された構造情報に基づいて、物体に関連付けられた物体タイプを決定することと、物体タイプに基づいて、エンドエフェクタ装置と物体との間の相互作用のための一つ以上の位置である一つ以上のロボット相互作用位置を決定することと、一つ以上のロボット相互作用位置で相互作用を引き起こす、一つ以上のロボット相互作用動作コマンドを出力することであって、一つ以上のロボット相互作用動作コマンドは、一つ以上のロボット相互作用位置に基づいて生成されることと、を行うように構成される。
【図面の簡単な説明】
【0005】
図1A】本明細書の実施形態と一致する、画像情報を処理するためのシステムを示す。
図1B】本明細書の実施形態と一致する、画像情報を処理するためのシステムを示す。
図1C】本明細書の実施形態と一致する、画像情報を処理するためのシステムを示す。
図1D】本明細書の実施形態と一致する、画像情報を処理するためのシステムを示す。
【0006】
図2A】本明細書の実施形態と一致する、画像情報を受信し処理するために、および/または物体検出を行うために構成される、計算システムを示すブロック図を提供する。
図2B】本明細書の実施形態と一致する、画像情報を受信し処理するために、および/または物体検出を行うために構成される、計算システムを示すブロック図を提供する。
図2C】本明細書の実施形態と一致する、画像情報を受信し処理するために、および/または物体検出を行うために構成される、計算システムを示すブロック図を提供する。
図2D】本明細書の実施形態と一致する、画像情報を受信し処理するために、および/または物体検出を行うために構成される、計算システムを示すブロック図を提供する。
【0007】
図3A】本明細書の実施形態と一致する、ロボットの相互作用を行うために、ロボットアームおよびエンドエフェクタ装置を有する環境を示す。
図3B】本明細書の実施形態と一致する、ロボットの相互作用を行うために、ロボットアームおよびエンドエフェクタ装置を有する環境を示す。
【0008】
図4】本明細書の実施形態による、運動計画を生成するための例示的な方法を示すフロー図を示す。
【0009】
図5A】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する様々な態様を示す。
図5B】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する様々な態様を示す。
図5C】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する様々な態様を示す。
【0010】
図6】本明細書の実施形態による、画像情報に基づく感知された構造情報を示す。
【0011】
図7】本明細書の実施形態による、物体コーナーを識別する態様を示す。
【0012】
図8A】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する様々な態様を示す。
図8B】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する、様々な態様を示す。
図8C】本明細書の実施形態による、カメラ視野の中にある物体を表す画像情報を生成する、様々な態様を示す。
【0013】
図9】本明細書の実施形態による、画像情報に基づく感知された構造情報を示す。
【0014】
図10A】本明細書の実施形態による、物体認識テンプレートを示す。
図10B】本明細書の実施形態による、物体認識テンプレートを示す。
【0015】
図11A】本明細書の実施形態による、感知された構造情報と物体認識テンプレートのセットとの比較を示す。
図11B】本明細書の実施形態による、感知された構造情報と物体認識テンプレートのセットとの比較を示す。
【0016】
図12A】本明細書の実施形態による、感知された構造情報と物体認識テンプレートのセットとの比較を示す。
図12B】本明細書の実施形態による、感知された構造情報と物体認識テンプレートのセットとの比較を示す。
【0017】
図13A】本明細書の実施形態による、物体認識テンプレートまたはモデル-配向の組み合わせの候補セットに対する、フィルタリング操作の様々な態様を示す。
図13B】本明細書の実施形態による、物体認識テンプレートまたはモデル-配向の組み合わせの候補セットに対する、フィルタリング操作の様々な態様を示す。
図13C】本明細書の実施形態による、物体認識テンプレートまたはモデル-配向の組み合わせの候補セットに対する、フィルタリング操作の様々な態様を示す。
【0018】
図14】本明細書の実施形態による、姿勢精緻化操作の様々な態様を示す。
【0019】
図15A】本明細書の実施形態による、エラー値を決定する様々な態様を示す。
図15B】本明細書の実施形態による、エラー値を決定する様々な態様を示す。
図15C】本明細書の実施形態による、エラー値を決定する様々な態様を示す。
【0020】
図16】本明細書の実施形態による、エラー値を決定する態様を示す。
【0021】
図17A】本明細書の実施形態による、ロボットの握り位置を決定する様々な態様を示す。
図17B】本明細書の実施形態による、ロボットの握り位置を決定する様々な態様を示す。
図17C】本明細書の実施形態による、ロボットの握り位置を決定する様々な態様を示す。
図17D】本明細書の実施形態による、ロボットの握り位置を決定する様々な態様を示す。
【発明を実施するための形態】
【0022】
本開示の一態様は、カメラの視野(カメラ視野とも呼ぶ)の中にある物体に対して物体検出を行うことに関する。例えば、物体は、倉庫、小売空間、もしくは他の施設の中にある箱、大型箱、木箱、または他の容器であってもよい。実施形態では、物体検出を行うことは、物体に関連付けられた物体タイプなど、物体の特質を決定することを伴いうる。本開示の一態様は、物体検出を行うことによって取得された情報に基づいて、ロボット相互作用を計画することに関する。ロボット相互作用は、例えば、ロボットが物体を握るか、またはそうでなければ拾い上げる相互作用など、ロボットがカメラ視野の中にある物体と係合し、物体を目的位置に移動する(例えば、パレットから降ろす操作の一部として)ことを伴ってもよい。
【0023】
実施形態では、物体検出は、カメラによって生成される画像情報の複数セットに基づいて行われてもよく、画像情報の複数セットは、カメラがカメラ視野の中にある物体を表す画像情報を感知するか、もしくはそうでなければ生成する、複数の視界または視点を表しうる。例えば、画像情報の複数セットは、物体の頂面図を表す画像情報の第一のセット、および物体の斜視図を表す画像情報の第二のセットを含みうる。一部の実施では、物体の頂面図を使用して、概略の検出を行ってもよく、検出には、物体の物体コーナーを識別するのに充分な詳細度を有する、画像情報の取得を伴いうる。カメラは、識別された物体コーナーを向くために移動するか、またはそうでなければ位置付けられてもよく、斜視図を表す画像情報の第二のセットは、カメラが物体コーナーに向けられると生成されうる。一部の実例では、第二の画像情報は、第一の画像情報と比べて、物体の構造についてより高い詳細度を含みうる。こうした例では、第二の画像情報は、物体の構造の推定についての記述を精緻化するように使用されうる。一部の実施では、第一の画像情報および第二の画像情報は、広範囲の点群など、物体の構造を表す、感知し生成された構造情報へ使用されうる。
【0024】
実施形態では、物体検出を行うことは、物体認識テンプレートのセット、すなわちより具体的には、物体認識テンプレートのセットによって記述されるそれぞれの物体構造モデル(例えば、CADモデル)のセットと、感知された構造情報との比較を伴いうる。比較は、例えば、物体認識テンプレートのうちの一つを選択するように使用されてもよく、選択された物体認識テンプレートは、物体についての物体タイプに関連付けられていてもよい。一部の実例では、比較で、物体構造モデルの異なる配向を考慮に入れてもよい。こうした例では、構造情報は、モデル-配向の組み合わせのセットと比較されてもよく、モデル-配向の組み合わせの各々は、物体構造モデルおよび物体構造モデルの配向を含んでもよい。
【0025】
実施形態では、物体認識テンプレートまたはモデル-配向の組み合わせの選択には、エラー値のセットの算出を伴いうる。エラー値の各々は、感知された構造情報と、物体認識テンプレートまたはモデル-配向の組み合わせのうちの一つの中にある物体構造モデルとのそれぞれの乖離度を示しうる。より詳細には、エラー値の各々は、ある特定の物体構造モデルについて、感知された構造情報(例えば、広範囲の点群)による説明もしくはサポートが、どのくらい充分または不充分であるかを示しうる。一部の実例では、選択された物体認識テンプレートが、エラー値のセットの中で最も低いエラー値を有してもよい。
【0026】
実施形態では、フィルタリング操作を行って、特定の物体認識テンプレートまたはモデル-配向の組み合わせを、感知された構造情報との潜在的合致とみなされるものから除去しうる。例えば、感知された構造情報は、カメラ視野の中の物体によって占有される空間の推定領域を画定しうる。こうした実施では、フィルタリング操作には、物体認識テンプレートまたはモデル-配向の組み合わせのいずれかが、実質的に推定領域内に収まらない物体構造モデルを有するかの判定を伴いうる。こうした物体構造モデルが存在する場合、物体構造モデルに関連付けられた物体認識テンプレートまたはモデル-配向の組み合わせは、フィルタリングされて除外されうる。
【0027】
実施形態では、物体構造モデルを感知された構造情報により厳密に合致させるように、姿勢精緻化操作を行って物体構造モデルを調整してもよい。一部の実例では、物体構造モデルが、物体構造の様々な物理的特徴を記述してもよく、より具体的には、物理的特徴の姿勢を記述する姿勢情報を含みうる。こうした例では、姿勢精緻化操作には、物体構造モデルによって記述される、様々な物理的特徴の配向および/または位置を変更しうる、姿勢情報の調整を伴いうる。
【0028】
実施形態では、物体に関連付けられた物体タイプが、物体とのロボット相互作用を計画するために使用されうる。例えば、物体タイプは、物体のタイプまたはクラスについて、物理的設計および/もしくは視覚的なデザインを含みうる、ある特定の物体設計に関連付けられてもよい。一部の実施では、物体構造の物理的形状またはサイズなど、物理的設計を使用して、ロボット相互作用を計画してもよい。実施形態では、ロボット相互作用が、ロボットが物体を握ることを伴う場合、ロボット相互作用の計画作成には、ロボットが物体を握るべき、物体上の一つ以上の握り位置の決定を伴いうる。一部の実例では、物体タイプの決定が、物体タイプに関連付けられた物体認識テンプレートの選択に基づく場合、一つ以上のロボットの握り位置は、物体認識テンプレートに基づいて、すなわちより具体的には、物体認識テンプレートによって記述される物体構造モデルに基づいて決定されうる。
【0029】
図1Aは、画像情報に基づいて、物体検出を行い、および/またはロボットの相互作用計画を作成するシステム1000を示す。より詳細には、システム1000は、計算システム1100およびカメラ1200を含みうる。この例では、カメラ1200は、カメラ1200が位置する環境を記述するか、もしくはそうでなければ表す、すなわちより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成されうる。環境は、例えば、倉庫、製造プラント、小売空間、または何らかの他の施設であってもよい(本開示で「または」という用語は、「および/または」と互換的に使用する)。こうした事例では、画像情報が、様々な品目を保持する容器(例えば、箱)など、こうした施設に位置する物体を表しうる。システム1100が、画像情報に基づいて物体検出を行うことなどによって、画像情報を受信および処理するように構成されうる。物体検出には、例えば、カメラ視野の中にある物体についての、物体のタイプ(物体タイプとも呼ぶ)の決定を伴いうる。一部の実例では、計算システムは、物体タイプに基づいて、ロボットの相互作用を計画しうる。ロボットの相互作用には、例えば、ロボットが物体を握る、つかむ、もしくはそうでなければ拾い上げる、または係合することを伴いうる。例えば、物体が容器である場合、ロボットの相互作用には、ロボットが容器を握るかまたはつかむことによって容器を拾い上げ、容器を目的位置に移動させることを伴いうる。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置してもよい。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信していてもよい。
【0030】
実施形態では、カメラ1200が、カメラの視野中の環境に関する3D画像情報(空間構造情報とも呼ぶ)を生成するように構成される、3Dカメラ(空間構造感知カメラまたは空間構造感知デバイスとも呼ぶ)であってもよい。実施形態では、カメラ1200は、2D画像情報、すなわちより具体的には、カメラの視野中にある環境の視覚的外観を記述する、2D画像を生成するように構成される、2Dカメラであってもよい。一部の実例では、カメラ1200は、3D画像情報および2D画像情報を生成するように構成される、3Dカメラおよび2Dカメラの組み合わせであってもよい。3D画像情報は、カメラ1200の視野中にある様々な物体の表面上の位置、すなわちより具体的には、それら物体の表面上の位置など、カメラ1200に対する様々な位置のそれぞれの奥行き値を記述する、奥行き情報を含んでもよい。この例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配設されているかを推定するために使用されうる。一部の実例では、3D画像情報が、カメラの視野中にある物体の一つ以上の表面上の位置を記述する、点群を含んでもよい。より具体的には、3D画像情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を記述しうる。
【0031】
上述のように、カメラ1200は、3Dカメラおよび/または2Dカメラであってもよい。2Dカメラは、カラー画像もしくはグレースケール画像などの2D画像、または他の2D画像情報を生成するように構成されてもよい。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、またはいかなる他のタイプの3Dカメラであってもよい。一部の事例では、2Dカメラおよび/または3Dカメラは各々、電荷結合素子(CCD)センサーおよび/または相補型金属酸化膜半導体(CMOS)センサーなど、画像センサーを含みうる。実施形態では、3Dカメラは、レーザー、LIDAR装置、赤外線装置、明/暗センサー、モーションセンサー、マイクロ波検出器、超音波検出器、レーダー検出器、または3D画像情報を取り込むか、もしくはそうでなければ生成するように構成されるいかなる他の装置をも含みうる。
【0032】
実施形態では、システム1000が、カメラ1200の環境で様々な物体と相互作用するための、ロボット操作システムであってもよい。例えば、図1Bは、図1Aのシステム1000の実施形態でありうる、ロボット操作システム1000Aを示す。ロボット操作システム1000Aは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。実施形態では、ロボット1300は、カメラ1200の環境の中にある一つ以上の物体、例えば、箱、木箱、ケース、大型箱、または容器と相互作用するために使用されうる。例えば、ロボット1300は、一つの位置から容器を拾い上げ、それらを別の位置に移動するように構成されてもよい。一部のシナリオでは、ロボット1300は、積み重ねられた容器が下ろされ、例えば、コンベヤベルトに移動される、パレットから降ろす操作を行うように使用されてもよく、または容器がパレット上に積み重ねられて輸送の準備をする、パレットに載せる操作を行うように使用されてもよい。
【0033】
一部の実例では、カメラ1200は、ロボット1300から分離していてもよい。例えば、こうした実例のカメラ1200は、倉庫または他の施設の天井もしくは何らかの他の位置上に取り付けられる、固定カメラであってもよい。一部の実例では、カメラ1200は、ロボット1300の一部であっても、またはそうでなければ、ロボット1300に付着していてもよく、ロボット1300にカメラ1200を移動する能力を提供しうる。例えば、図1Cは、図1Bの計算システム1100、カメラ1200、およびロボット1300を含む、システム1000B(システム1000の実施形態であってもよい)を描写し、図中、ロボット1300が、ロボットアーム1400およびエンドエフェクタ装置1500を有する。エンドエフェクタ装置1500は、ロボットアーム1400の一端に付着していても、配置されても、または一端を形成してもよい。図1Cの実施形態では、エンドエフェクタ装置1500が、ロボットアーム1400の運動によって移動可能であってもよい。この例のカメラ1200は、エンドエフェクタ装置1500上に取り付けられていても、またはそうでなければ、エンドエフェクタ装置1500に付着していてもよい。エンドエフェクタ装置1500が、ロボットの手(例えば、グリッパ装置)である場合、カメラ1200は手元カメラと呼んでもよい。カメラ1200をエンドエフェクタ装置1500に付着することで、ロボット1300は、ロボットアーム1400および/またはエンドエフェクタ装置1500の運動によって、カメラ1200を異なる姿勢(カメラ姿勢とも呼ぶ)に移動することができうる。例えば、以下でより詳細に論じるように、エンドエフェクタ装置1500によって、様々なカメラ姿勢を有するように、カメラ1200を位置付けてもよい。カメラ1200は、これらのカメラ姿勢で、画像情報のそれぞれのセットを生成しうる。こうした例では、画像情報のそれぞれのセットが、カメラ1200および/もしくはロボット1300の環境が感知される、異なる視点または眺望を表してもよく、こうした画像情報によって、正確な物体検出およびロボットの相互作用計画作成を促進しうる。
【0034】
実施形態では、図1A~1Cの計算システム1100は、ロボット操作システム1000A/1000Bの一部である、ロボット制御システム(ロボットコントローラとも呼ぶ)を形成しても、またはその一部であってもよい。ロボット制御システムは、例えば、ロボット1300に対する動作コマンドまたは他のコマンドを生成するように構成される、システムであってもよい。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成されてもよい。
【0035】
実施形態では、計算システム1100は、視覚システムを形成しても、またはその一部であってもよい。視覚システムは、例えば、ロボット1300が位置する環境を記述する、すなわちより具体的には、カメラ1200が位置する環境を記述する、視覚情報を生成するシステムであってもよい。一部の実施では、視覚情報は上で論じた画像情報を含みうる。一部の実施では、視覚情報によって、カメラ1200および/もしくはロボット1300の環境の中にある、物体タイプまたは物体の他の特質を記述しうる。こうした実施では、計算システム1100は、画像情報に基づいてこうした視覚情報を生成しうる。計算システム1100が、視覚システムを形成する場合、視覚システムは、上で論じたロボット制御システムの一部であってもよく、またはロボット制御システムから分離していてもよい。視覚システムがロボット制御システムから分離している場合、視覚システムは、カメラ1200および/もしくはロボット1300の環境の中にある、物体の物体タイプまたは他の特質を記述する情報など、ロボット1300が位置する環境を記述する情報を出力するように構成されうる。視覚システムによって判定される情報は、ロボット制御システムに出力されてもよく、ロボット制御システムは、視覚システムからこうした情報を受信し、情報に基づいてロボット1300の動作を制御してもよい。
【0036】
実施形態では、計算システム1100が、一つ以上の動作コマンドを生成するように構成される場合、動作コマンドは、例えば、カメラ配置動作コマンドおよび/またはロボット相互作用動作コマンドを含んでもよい。この実施形態では、カメラ配置動作コマンドが、カメラ1200の配置を制御し、より具体的には、ロボット1300に、カメラ1200をある特定のカメラ姿勢に移動させるか、またはそうでなければ、位置付けさせるように使用される動作コマンドであってもよく、カメラ姿勢は、ある特定のカメラ位置と、ある特定のカメラ配向との組み合わせを含みうる。ロボット相互作用動作コマンド(物体相互作用動作コマンドとも呼ぶ)を使用して、ロボット1300、すなわちより具体的には、そのエンドエフェクタ装置と、倉庫の中にある積み重ねられた容器など、一つ以上の物体との間の相互作用を制御してもよい。例えば、ロボット相互作用動作コマンドによって、図1Cのロボット1300のロボットアーム1400に、容器のうちの一つに接近するようエンドエフェクタ装置1500を移動させ、エンドエフェクタ装置1500に容器を握らせるか、またはそうでなければ、拾い上げさせ、その後、ロボットアーム1400に、容器を特定のまたは算出された目的位置へ移動させてもよい。エンドエフェクタ装置1500がグリッパ部材を有する場合、ロボット相互作用動作コマンドは、一部の実施で、グリッパ部材を容器の一部分(例えば、縁)を握る際の位置に配置するか、またはそうでなければ位置付けるために、エンドエフェクタ装置の残りに対してグリッパ部材の動作を引き起こす、グリッパ部材位置付けコマンドを含みうる。
【0037】
実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、および/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接有線接続によってカメラ1200ならびに/またはロボット1300と通信してもよい。一部の実施では、計算システム1100は、無線通信インターフェースを介して、カメラ1200および/またはロボット1300と通信してもよい。実施形態では、計算システム1100が、ネットワークを介してカメラ1200および/またはロボット1300と通信してもよい。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、またはインターネットなど、いかなるタイプおよび/または形態のネットワークであってもよい。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、またはSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用してもよい。
【0038】
実施形態では、計算システム1100は、カメラ1200および/もしくはロボット1300と直接情報を伝達してもよく、または中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信してもよい。例えば、図1Dは、カメラ1200、ロボット1300、および/または計算システム1100によって生成された情報を記憶するための、中間の非一時的コンピュータ可読媒体1600を含む、システム1000C(システム1000/1000A/1000Bの実施形態であってもよい)を描写する。こうした中間の非一時的コンピュータ可読媒体1600は、計算システム1100の外部にあってもよく、例えば、カメラ1200によって生成された画像情報、計算システム1100によって生成されたコマンド、および/もしくは他の情報(例えば、ロボット1300によって生成されたセンサー情報)を記憶するための外部バッファまたはリポジトリとして働いてもよい。例えば、中間の非一時的コンピュータ可読媒体1600が、カメラ1200によって生成された画像情報を記憶するために使用される場合、計算システム1100は、中間の非一時的コンピュータ可読媒体1600から画像情報を読み出すか、または他の方法で受信してもよい。非一時的コンピュータ可読媒体1600の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックを形成してもよい。
【0039】
上述のように、カメラ1200によって生成された画像情報が、計算システム1100によって処理されてもよい。実施形態では、計算システム1100は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ノートパソコンなど)、スマートフォン、タブレットコンピューティングデバイス、および/もしくは他のいかなる他の計算システムを含んでもよく、またはそれらとして構成されてもよい。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一の計算装置(例えば、デスクトップコンピュータ)であってもよく、または複数の計算装置を含んでもよい。
【0040】
図2Aは、計算システム1100の実施形態を示す、ブロック図を提供する。計算システム1100は、少なくとも一つの処理回路1110および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。実施形態では、処理回路1110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらのいかなる組み合わせ、またはいかなる他の処理回路も含む。実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120が、上で論じた中間の非一時的コンピュータ可読媒体1600の代替または追加であってもよい。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせなどの記憶装置であってもよく、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらのいかなる組み合わせ、またはいかなる他の記憶装置などであってもよい。一部の実例では、非一時的コンピュータ可読媒体1120が、複数の記憶装置を含みうる。特定の事例では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成された画像情報を記憶するように構成される。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、図4に関して記載する操作など、本明細書に記載する一つ以上の手法を行わせるコンピュータ可読プログラム命令を、代替的または追加的に記憶してもよい。
【0041】
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む、計算システム1100Aを描写する。通信インターフェース1130(通信コンポーネントまたは通信デバイスとも呼ぶ)は、例えば、図1A~1Dのカメラ1200によって生成された画像情報を受信するように構成されてもよい。画像情報は、上で論じた中間の非一時的コンピュータ可読媒体1600もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信されうる。実施形態では、通信インターフェース1130は、図1Bおよび1Cのロボット1300と通信するように構成されうる。計算システム1100が、ロボット制御システムの一部でない場合、計算システム1100の通信インターフェース1130が、計算システム1100とロボット制御システムとの間に、通信を提供するように構成されうる。通信インターフェース1130は、例えば、有線または無線プロトコルによって通信を行うように構成される通信回路を含んでもよく、または通信回路であってもよい。例として、通信回路は、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、いかなる他の通信回路、またはそれらの組み合わせを含んでもよい。
【0042】
実施形態では、処理回路110が、非一時的コンピュータ可読媒体1120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされてもよい。例えば、図2Cは、計算システム1100/1100Aの実施形態である、計算システム1100Bを示し、その中の処理回路1110は、物体検出モジュール1121およびロボット相互作用計画作成モジュール1122を含む、一つ以上のモジュールによってプログラムされる。
【0043】
実施形態では、物体検出モジュール1121は、図1A~1Dのカメラ1200のカメラ視野の中に現在あるか、またはあった物体(例えば、容器)に関連付けられた情報を判定するように構成されてもよい。情報は、物体が属する物体のタイプもしくはクラス(物体に関連付けられた物体タイプとも呼ぶ)、物体のサイズ、物体の形状(それぞれ物体サイズおよび物体形状とも呼ぶ)、および/または物体のいかなる他の特質など、物体の特質を記述しうる。一部の実施では、物体検出モジュール1121は、以下でより詳細に論じるように、物体を表す画像情報を物体認識テンプレートと比較することによって、物体認識を行うように構成されうる。
【0044】
実施形態では、ロボット相互作用計画作成モジュール1122は、図1Bおよび1Cのロボット1300が、ロボット1300および/またはカメラ1200の環境の中にある物体、すなわちより具体的には、カメラ視野の中にあるか、またはあった物体と、どのように相互作用するべきかを決定するように構成されてもよい。相互作用には、例えば、ロボット1300が物体を握るか、またはそうでなければ拾い上げ、物体を目的位置に移動することを伴いうる。一部の実例では、ロボット相互作用計画作成モジュール1122は、相互作用を実施または実行するための運動計画を生成するように構成されうる。物体と相互作用するための運動計画は、例えば、物体に関連付けられた物体タイプなど、物体検出モジュール1121によって判定される情報に基づいて生成されうる。実施形態では、運動計画によって、ロボット1300が物体を握るべき、物体の一つ以上の握り位置または握り部分を識別しうる。運動計画によってさらに、ロボット1300の少なくとも一部分(例えば、エンドエフェクタ装置1500)を、一つ以上の握り位置に移動させうる。一部の実例では、ロボット1300、またはより具体的には、エンドエフェクタ装置1500が一つ以上のグリッパを含む場合、ロボット相互作用計画作成モジュール1122は、一つ以上のグリッパの操作を計画するように構成されうる。より詳細には、一つ以上のグリッパが、物体を握るか、またはそうでなければ係合するために、開放状態から閉鎖状態に移行することができ、かつ閉鎖状態から開放状態に移行して、物体を解放できる場合、ロボット相互作用計画作成モジュール1122は、一つ以上のグリッパが、いつ開放状態と閉鎖状態との間を移行するかを制御するか、またはそうでなければ決定するように構成されてもよい。一部の実施では、運動計画は、ロボット1300が物体を握ったか、もしくはそうでなければ拾い上げた後に、ロボット1300もしくはその一部分(例えば、エンドエフェクタ装置1500)が追尾する軌道を含むか、または記述してもよい。軌道によって、ロボット1300に所望の目的位置へ物体を移動させうる。本明細書で論じるモジュールの機能性は、代表的なものであり、限定ではないことは理解されるであろう。
【0045】
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に一つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを行うものとして説明されうる。
【0046】
実施形態では、図2Dに示すように、非一時的コンピュータ可読媒体1120は、計算システム1100C(計算システム1100/1100A/1100Bの実施形態であってもよい)によって生成されうる、物体検出情報1126を記憶するか、または他の方法で含んでもよい。実施形態では、物体検出情報1126は、カメラ1200のカメラ視野の中にある一つ以上の物体、またはより具体的には、カメラ1200および/もしくはロボット1300の環境の中にある一つ以上の物体を記述しうる。例えば、物体検出情報1126は、感知された構造情報および/または物体タイプ情報を含みうる。感知された構造情報(測定された構造情報とも呼ぶ)は、一つ以上の物体の構造を記述する情報(例えば、広範囲の点群)であってもよく、またはそれを含んでもよく、構造は、物理構造または物体構造とも呼ばれる。感知された構造情報は、カメラ1200もしくは別の感知装置によって感知された、奥行き情報または他の画像情報に基づいてもよい。言い換えれば、感知された構造情報は、カメラ1200によって感知または測定される値(例えば、奥行き値)に基づいて生成される構造情報であってもよい。実施形態では、物体タイプ情報は、カメラ1200および/またはロボット1300の環境中にある物体に関連付けられた物体タイプを記述しうる。一部の実例では、物体タイプは、以下で論じる物体認識テンプレートに関連付けられてもよく、物体タイプ情報は、物体認識テンプレートを含んでも、または識別してもよい。
【0047】
実施形態では、計算システム1100は、図2Dに示すような、非一時的コンピュータ可読媒体1120上に物体認識テンプレート情報1128の一部として記憶されてもよく、非一時的コンピュータ可読媒体1600上に記憶されてもよく、および/または別のデバイス上に記憶されてもよい、一つ以上の物体認識テンプレート(物体テンプレートとも呼ぶ)へのアクセスを有しうる。一部の実施では、一つ以上の物体認識テンプレートが、手動で生成されていてもよく、通信インターフェース1300を介して、または何らかの他の様式で、計算システム1100/1100A/1100B/1100Cによって受信(例えば、ダウンロード)されていてもよい。一部の実施では、一つ以上の物体認識テンプレートが、計算システム1100/1100A/1100B/1100Cによって、または別のデバイスによって行われる、物体登録プロセスの一部として生成されていてもよい。テンプレートについては、米国特許出願第16/991,466号(弁理士整理番号MJ0054-US/0077-0012US1)および米国特許出願第16/991,510号(弁理士整理番号MJ0051-US/0077-0011US1)でより詳細に論じられ、それらの内容全体が参照により本明細書に組み込まれる。
【0048】
実施形態では、一つ以上の物体認識テンプレート(一つ以上の物体テンプレートとも呼ぶ)の各々が、物体のタイプまたはクラスに関連付けられた物体デザインを記述しうる。物体デザインは、例えば、物体のタイプもしくはクラス(物体タイプとも呼ぶ)に関連付けられた物体の外観を記述もしくは定義する視覚的な設計、および/または物体タイプに関連付けられた物体の構造を記述もしくは定義する物理的設計を含みうる。例えば、物体認識テンプレートによって記述される物体デザインが、より具体的には、ある特定の容器タイプに関連付けられた容器デザインである場合、物体認識テンプレートは、例えば、容器タイプに関連付けられた視覚的なデザインおよび/または物理的設計を記述する、容器テンプレートであってもよい。一部の実施では、物体認識テンプレートが、視覚的なデザインを記述する、視覚的記述情報(物体の外観記述とも呼ぶ)を含んでもよく、および/または物理的設計を記述する、物体構造の記述(構造記述情報とも呼ぶ)を含んでもよい。
【0049】
一部の実例では、視覚的記述情報が、視覚的なデザインを形成する、視覚的特徴、視覚的な模様、もしくは他の視覚的詳細(例えば、ロゴまたは絵柄)を表しうる、一つ以上の特徴記述子を含んでも、または記述してもよい。一部の実例では、物体構造の記述によって、物体サイズ、物体形状もしくは輪郭、および/またはある特定の物体タイプに関連付けられた、物体の構造の何らかの他の態様を記述しうる。例えば、物体構造の記述が、物体タイプに関連付けられた物体サイズ(例えば、長さ、幅、および/または高さの組み合わせ)を記述する値を含み、物体タイプに関連付けられた物体構造を記述するコンピュータ支援設計(CAD)ファイル、および/または物体構造の輪郭を記述する点群を含んでもよい。より具体的には、点群は、例えば、物体構造の一つ以上の表面上にある、複数のそれぞれの位置を記述する複数の座標を含みうる。一部の実施では、物体認識テンプレート情報1128によって記述される一つ以上の物体認識テンプレートを、例えば、上で論じた感知された構造情報と比較して、どの物体認識テンプレートが、感知された構造情報に最も合致するかを判定してもよい。こうした比較は、物体認識操作の一部であってもよい。以下でより詳細に論じるように、物体認識操作を使用して、図1A~1Dのカメラ1200のカメラ視野の中にある物体に関連付けられた物体タイプを決定してもよい。計算システム1100/1100A/1100B/1100Cまたは別の計算システムは、物体の物体タイプを使用して、物体とのロボットの相互作用を計画するように構成されうる。
【0050】
図3Aおよび3Bは、物体検出および/またはロボットの相互作用が発生しうる環境の例を示す。より詳細には、環境は、計算システム1100、カメラ3200(図1A~1Dのカメラ1200の実施形態であってもよい)、およびロボット3300(ロボット1300の実施形態であってもよい)を含む。この実施形態では、ロボット3300が、ロボットアーム3400およびエンドエフェクタ装置3500を含んでもよい。実施形態では、エンドエフェクタ装置3500が、ロボットアーム3400の一端を形成するか、またはロボットアーム3400の一端に付着していてもよい。
【0051】
図3Aの例では、ロボット3300は、ロボットアーム3400を介して、パレット上に配置され積み重ねられたケース、木箱、または他の容器など一つ以上の物体の方へ、エンドエフェクタ装置3500を移動するように動作してもよい。エンドエフェクタ装置3500はさらに、一つ以上の物体のうちの少なくとも一つを係合し(例えば、握り)、パレットから別の位置へ物体を移動する(例えば、パレットから降ろす操作の一部として)ことができうる。より具体的には、図3Aおよび3Bは、物体の積み重ね3710、すなわちより具体的には、積み重ねられた容器を有する環境を描写する。一部のシナリオでは、図3Bに示すように、容器の一部またはすべてが、より小さい物体(より小さい品目と呼んでもよい)を保持してもよい。図3Aおよび3Bの積み重ね3710が、少なくとも物体3711~3719および3731~3733を含んでもよく、一方エンドエフェクタ装置3500が、物体3711などの積み重ね3710の中にある物体のうちの一つを握るか、またはそうでなければ拾い上げ、積み重ね3710から図3Aのコンベヤ3800上の位置などの目的位置へ、物体を移動するために使用されうる。物体3711を拾い上げるために、エンドエフェクタ装置3500が、物体3711と整列するように移動し傾いてもよい。図3Aおよび3Bに描写する環境では、パレット上の物体は、その外側側部表面のうちの少なくとも一つに3D模様を形成する、物理構造(より簡単に構造とも呼ぶ)を有してもよい。例えば、3D模様が、外側側部表面から突出する隆線の模様(隆線模様とも呼ぶ)であってもよい。例として、図3Aは、物体3711の外側側部表面上の隆線模様3711Aを描写する。一部のシナリオでは、パレット上の物体は、ロゴまたは他の視覚的な模様など、その外側側部表面上に2D模様を形成する、視覚的詳細を有しうる。一部の実例では、物体が容器である場合、物体は容器縁を含みうる。以下でより詳細に論じるように、隆線模様および/または容器縁を使用して、ロボットのエンドエフェクタ装置(例えば、3500)が容器を握るべき位置など、ロボット相互作用位置を決定してもよい。
【0052】
実施形態では、エンドエフェクタ装置3500は、一つ以上のグリッパ部材を含みうる。例えば、エンドエフェクタ装置3500は、取付板または他の取付構造を含み、取付構造の表面(例えば、底部表面)上に取り付けられるか、またはそうでなければ付着する複数のグリッパ部材を含んでもよい。一部の実施では、カメラ3200は、取付構造の反対表面(例えば、頂部表面)上に取り付けられても、またはそうでなければ反対表面に付着してもよい。一部の実例では、複数のグリッパ部材が、第一の軸に沿って移動可能(例えば、摺動可能)な少なくとも第一のグリッパ部材、および第一の軸に垂直な第二の軸に沿って移動可能な第二のグリッパ部材を含みうる。第一の軸は、例えば、取付構造の第一のエッジと平行であってもよく、一方第二の軸は、例えば、取付構造の第二のエッジと平行であってもよい。一部の実例では、複数のグリッパ部材がさらに、第一の軸および第二の軸が交差する位置に配置される、第三のグリッパ部材を含みうる。こうした位置は、例えば、取付構造のコーナーの近くであってもよい。
【0053】
一部の実施では、グリッパ部材の各々が、それぞれのグリッパフィンガーアセンブリによって形成されるか、またはそこに付着する、それぞれのグリッパ本体を有してもよい。グリッパフィンガーアセンブリは、容器の外部エッジを形成するへりの一部分など、物体(例えば、容器)の一部分の周辺で固定するか、または一部分を挟むことによって、物体を握るように使用されうる。一例では、グリッパフィンガーアセンブリは、グリッパフィンガーとも呼ばれる、互いに対して移動可能な二つの構成要素を含みうる。二つのグリッパフィンガーが、物体の一部分を握る閉鎖状態に移行するように、または物体の周辺でグリップを締めるように、互いに向かって移動可能である、チャックまたはクランプを、二つのグリッパフィンガーが形成してもよい。二つのグリッパフィンガーはさらに、グリッパフィンガーがグリップを緩めるか、または解放する開放状態に移行するために、互いから離れるように移動可能であってもよい。エンドエフェクタ装置およびグリッパ部材については、米国出願第17/084,272号(弁理士整理番号MJ0058-US/0077-0014US1)でより詳細に論じ、その全体の内容は参照により本明細書に組み込まれる。
【0054】
上述のように、本出願の一態様は、カメラ視野の中にある物体について、物体タイプの決定を伴いうる、物体検出の実施に関する。物体タイプを使用して、ロボットが物体を握り、物体を現在の位置から目的位置へ移動する相互作用など、物体とのロボットの相互作用を計画しうる。図4は、物体検出を行い、および/またはロボットの相互作用を計画する、例示的な方法4000のフロー図を描写する。方法4000は、例えば、図2A~2Dもしくは図3Aの計算システム1100によって、すなわちより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、少なくとも一つの処理回路1100が、非一時的コンピュータ可読媒体1120など、非一時的コンピュータ可読媒体上に記憶される命令を実行することによって、方法4000を行ってもよい。例えば、命令によって、方法4000のステップの一部またはすべてを行いうる、物体検出モジュール1121およびロボット相互作用計画作成モジュール1122を、処理回路1110に実行させてもよい。実施形態では、方法4000は、計算システム1100が、図3Aならびに3Bのロボット3300およびカメラ3200など、ロボットおよびカメラと、または本開示で論じるいかなる他のロボットと目下通信している環境で行われてもよい。例えば、計算システム1100は、物体が目下カメラ3200のカメラ視野の中にあるか、またはカメラ視野の中にあったとき、方法4000を行いうる。一部のシナリオでは、カメラ(例えば、3200)が、図3Aに示すように、ロボット(例えば、3300)のエンドエフェクタ装置(例えば、3500)上に取り付けられていてもよい。他のシナリオでは、カメラが、他の場所に取り付けられていてもよく、および/または固定されていてもよい。
【0055】
実施形態では、図4の方法4000は、計算システム1100が、カメラの視野(カメラ視野とも呼ぶ)の中にある物体に関連付けられた物体構造の、少なくとも第一の部分を表す第一の画像情報(画像情報の第一のセットとも呼ぶ)を受信する(例えば、物体検出モジュール1121を介して)ステップ4002で始まるか、またはそうでなければステップ4002を含んでもよい。例えば、図5Aは、物体3721、3722のグループ3720が、カメラ3200のカメラ視野3202の中にあるシナリオを描写する。物体3721、3722の各々は、例えば、箱、木箱、ケース、大型箱、または他の容器であってもよい。物体3721、3722のグループ3720は、またカメラ視野3202内に少なくとも部分的に配置されてもよいパレットなど、別の物体3728上に配置されてもよい。一部のシナリオでは、パレット3728は、多種多様のサイズ(例えば、幅広い種類の長さ、幅、および高さの値)を有してもよい、容器もしくは他の物体を積み重ねるか、またはそうでなければ配置するように、多種多様の積み重ねまたは配置構成と共に使用されてもよい。
【0056】
実施形態では、計算システム1100によって受信される第一の画像情報は、カメラ(例えば、3200)が、図5Aに示すカメラ姿勢など、第一のカメラ姿勢であるか、または第一のカメラ姿勢を有するときに、カメラによって生成されてもよい。カメラ姿勢は、カメラ(例えば、3200)の位置および配向を指しうる。一部のシナリオでは、カメラ姿勢がカメラ(例えば、3200)の眺望または視点に影響を与えうる。例えば、図5Aに描写する第一のカメラ姿勢は、物体3721、3722のグループ3720の上方にある位置を有し、カメラ3200が第一の部分、すなわちより具体的には、物体3721、3722の頂部(例えば、頂部表面)を向く配向を有する、カメラ3200を伴いうる。一部の状況では、第一のカメラ姿勢の配向は、物体の頂面図を有するカメラ3200に関連付けられうる。例えば、第一のカメラ姿勢は、カメラ3200の画像センサーが、物体3721、3722の頂部に直接面している配向、および/またはカメラ3200の一つ以上のレンズの焦点軸が、垂直もしくは実質的に垂直である配向を、カメラ3200が有することを伴ってもよい。一部のシナリオでは、カメラ3200が、物体3721、3722の真上に配置されてもよく、物体3721、3722の第一の部分(例えば、頂部)に真っすぐ向けられてもよい。
【0057】
実施形態では、ステップ4002の第一の画像情報は、計算システム1100が、物体構造の比較的不完全な、またはより単純な記述もしくは推定値を決定しうる、概略検出フェーズに使用されうる。例えば、第一の画像情報は、物体構造の第一の部分(例えば、頂部)を記述しうるが、物体構造の他の部分(例えば、側面部分)を記述することができない場合があるか、または限定的にのみ記述しうるため、物体構造の記述または推定値は不完全でありうる。一部の実例では、概略検出フェーズはさらに、カメラ視野内に物体構造全体を収めるために、物体構造から充分に遠くへのカメラ(例えば、3200)の位置付けを伴ってもよい。こうした例では、カメラによって生成される第一の画像情報は、カメラが物体構造により近いときに生成される画像情報ほど、詳細ではない場合がある。したがって、第一の画像情報に基づいて得られた物体構造の推定値または記述は、その詳細度においてはより単純でありうる。以下でより詳細に論じるように、この推定値または記述は、例えば、広範囲の点群または他の何らかの感知された構造情報であってもよい。概略検出フェーズを使用して生成される、感知された構造情報を使用して、物体構造の物体コーナーを識別し、物体コーナーに関連付けられた第二の画像情報を受信しうる。一部の実施では、第二の画像情報は、より詳細であってもよく、および/または第一の画像情報を補ってもよい。したがって、第二の画像情報は、物体構造の記述または推定を精緻化するように使用されうる。
【0058】
以下でより詳細に論じるように、方法4000のステップを行って、物体3722など、物体3721、3722のグループ3720の個々の物体とのロボットの相互作用を容易にしてもよい。こうした例では、ロボットの相互作用のターゲットである、ある特定の物体を、ターゲットの物体と呼んでもよい。一部のシナリオでは、方法4000のステップ(例えば、ステップ4004~4016)は、複数のターゲットの物体とのロボットの相互作用を容易にするために、複数回または複数回の反復で行われうる。
【0059】
上述のように、第一の画像情報は、物体3721、3722のグループ3720のある特定の視界、またはより具体的には、物体3721、3722の各々のある特定の視界を表しうる。図5Aの例では、カメラ3200が物体3721、3722の上方にあり、物体3721、3722の各々の頂部(例えば、頂端部または頂側部)に向く、図5Aに示す第一のカメラ姿勢をカメラ3200が有するときに、第一の画像情報が生成されうるため、第一の画像情報が物体3721、3722の頂面図を表してもよい。
【0060】
図5Aの例では、物体3721、3722が各々、容器の底部内表面を囲む一つ以上の壁を有する、木箱または他の頂部が開いた容器であってもよい。一つ以上の壁が、容器の頂端部で縁を形成しうる。こうした例では、物体3721/3722の頂面図は、物体3721/3722について縁の表面(縁表面とも呼ぶ)の視界を含みうる。例えば、図5Bは、第一の画像情報が、物体3721、3722のグループ3720の構造を記述する、3D画像情報5720(空間構造情報とも呼ぶ)を含む例を描写する。こうした実施形態では、3D画像情報5720を生成したカメラ3200は、3Dカメラであってもよい。この例の3D画像情報5720は、物体3721の構造(物体構造とも呼ぶ)を記述し、物体3722について物体構造を記述してもよく、より詳細には、物体3721、3722について物体構造の頂面図を表しうる。
【0061】
実施形態では、3D画像情報5720は、カメラ(例えば、3200)が、3D画像情報5720またはステップ4002で使用される他の画像情報を生成するときに、カメラが位置する点など、基準点に対する物体3721、3722について、物体構造の一部分以上のそれぞれの奥行き値を記述する、奥行きマップなどの奥行き情報を含みうる。より詳細には、奥行き情報は、物体3721についての物体構造および/または物体3722についての物体構造の、一つ以上の表面上の複数の位置(複数の点とも呼ぶ)に対する、それぞれの奥行き値を記述しうる。図5Bの例では、3D画像情報5720は、物体3721、3722、および3728それぞれの奥行き値を記述する、画像部分5721、5722、および5728を含みうる。より詳細には、画像部分5728は、物体3728(例えば、パレット)の頂部表面上にある、位置3728から3728に対するそれぞれの奥行き値を含みうる。さらにこの例では、物体3721は、縁および底部内表面を有する容器であってもよい。画像部分5721は、物体3721の縁の表面(縁表面とも呼ぶ)上にある位置3721Aから3721Aについて、それぞれの奥行き値を含み、物体3721の底部内表面上の位置3721Bから3721Bについて、それぞれの奥行き値を含んでもよい。同様に、画像部分5722は、物体3722の縁表面上にある位置3722Aから3722Aについて、それぞれの奥行き値を含み、物体3722の底部内表面の位置3722Bから3722Bについて、それぞれの奥行き値を含んでもよい。
【0062】
一部の状況では、物体3721/3722が、一つ以上の他の品目を包含する容器である場合、こうした品目も、3D画像情報または他の画像情報の中に表されてもよい。例えば、図5Bの3D画像情報5720は、二つのそれぞれの品目または物体3722内に包含される品目上にある位置について、それぞれの奥行き値を記述する、画像部分5723、5724を含みうる。より具体的には、画像部分5723は、物体のうちの一つの上にある位置3723から3723について、それぞれの奥行き値を含んでもよく、画像部分5724は、物体のうちの別の一つ上にある位置3724から3724について、それぞれの奥行き値を含んでもよい。
【0063】
一部のシナリオでは、第一の画像情報は、それぞれの奥行き値を奥行きマップと共に記述してもよく、奥行きマップは、例えば、カメラ視野(例えば、3202)中の一つ以上の物体表面上にある位置のグリッドに対応する、ピクセルの配列を含んでもよい。こうしたシナリオでは、ピクセルの一部またはすべては各々、ピクセルに対応するそれぞれの位置について、それぞれの奥行き値を含んでもよく、それぞれの位置は、カメラ視野中の一つ以上の物体表面上にある。
【0064】
一部の状況では、第一の画像情報が、一つ以上の物体表面上の様々な位置を記述しうる、複数の3D座標を通るそれぞれの奥行き値を記述してもよい。例えば、3D座標が、図5Bの中で位置3728から3728、位置3721Aから3721A、位置3721Bから3721B、位置3722Aから3722A、位置3722Bから3722B、位置3723から3723、および位置3724から3724を記述しうる。複数の3D座標が、例えば、物体構造の少なくとも一部分、すなわち、物体3721、3722、3723、3724、および3728についての物体構造のこうした頂部を記述する点群または点群の一部を形成しうる。3D座標が、カメラ座標系で、または何らかの他の座標系で表現されてもよい。一部の実例では、ある特定の位置に対する奥行き値は、その位置に対する3D座標の成分によって、またはその成分に基づいて表されうる。例として、ある位置の3D座標が[X Y Z]座標である場合、その位置に対する奥行き値は、3D座標のZ成分と等しいか、またはそれに基づいてもよい。
【0065】
図5Bの例では、第一の画像情報は、物体構造の底部内表面を表しうる。より詳細には、図5Bに描写する第一の画像情報は、物体3721の底部内表面上にある位置3721Bから3721B、および物体3722の底部内表面上の位置3722Bから3722Bについて、それぞれの奥行き値または座標を含む、3D画像情報5720を含む。別の例では、物体(例えば、3721/3722)についての物体構造の底部内表面は、完全に覆われていても、またはそうでなければ視界から遮蔽されていてもよいため、底部内表面が第一の画像情報によって表されない場合がある。こうした例では、物体(例えば、3721/3722)が容器である場合、容器の底部内表面は、容器内に配置された材料もしくは品目など、容器の内容物によって完全に覆われてもよく、および/または容器を囲むように使用される蓋、フラップ、もしくは他の構成要素によって完全に覆われていてもよい。こうした例では、第一の画像情報は、容器内の材料もしくは品目の一つもしくは複数の表面上の位置、もしくは蓋もしくはフラップ上の位置に対する、それぞれの奥行き値または座標を記述しうる。
【0066】
実施形態では、ステップ4002で受信した第一の画像情報は、物体3721、3722のグループ3720の視覚的外観を記述しうる。例えば、図5Cは、第一の画像情報が、図5Aの物体3721の外観を記述する画像部分5731(例えば、ピクセルの領域)、物体3722の外観を記述する画像部分5732、および物体3728の外観を記述する画像部分5728を含む、2D画像5730(例えば、グレースケールまたはカラー画像)を含むか、または形成する例を提供する。より詳細には、画像5730は、図5Aのカメラ3200の視点からの物体3721、3722、および物体3728の外観を記述してもよく、より具体的には、物体3721、3722の頂面図を表してもよい。上述のように、2D画像5730は、カメラ3200が、図5Aに描写する第一のカメラ姿勢を有するとき、カメラ3200によって生成されうる。より詳細には、2D画像5730が、物体3721/3722の一つ以上の表面上にある視覚的詳細(複数可)を表しうる。例えば、2D画像5730の画像部分5721は、より具体的には、物体3721の第一の表面(例えば、縁表面)を表す画像部分5721Aを含み、物体3721の第二の表面(例えば、底部内表面)を表す画像部分5721Bを含みうる。同様に、画像部分5722が、図5Aの物体3722の第一の表面(例えば、縁表面)を表す画像部分5722Aと、物体3722の第二の表面(例えば、底部内表面)を表す画像部分5722Bとを含みうる。別の例では、物体3721、3722が、上で論じたように、品目または材料で埋められた容器である場合、画像部分5721、5722は、容器内に配置されている品目または材料の外観を記述しうる。
【0067】
図4に戻ると、方法4000は実施形態で、計算システム1100(例えば、物体検出モジュール1121を介する)が、第一の画像情報に基づいて、カメラ視野(例えば、3202)中の物体(例えば、3721/3722)に関連付けられた物体構造を表す、感知された構造情報を生成または更新する、ステップ4004を含みうる。上述のように、感知された構造情報(測定された構造情報とも呼ぶ)は、物体3721/3722についての物体構造など、物体に関連付けられた物体構造を記述するか、もしくは他の方法で表す情報であってもよく、または情報を含んでもよい。例えば、感知された構造情報は、物体3721の一つ以上の表面上にある位置を記述する複数の座標、および/または物体3722の一つ以上の表面上にある位置に対する複数の座標を含む、広範囲の点群であってもよい。一部の実施では、計算システム1100は、感知された構造情報が第一の画像情報からの値を含むように、第一の画像情報またはその画像部分(複数可)を、感知された構造情報に組み込むことによって、感知された構造情報を生成しうる。例として、図6は、計算システムによって生成される、感知された構造情報6720を描写する。感知された構造情報6720は、第一の画像情報5720の中にある、奥行き値または座標などの値を含みうる。より詳細には、感知された構造情報6720は、第一の画像情報5720の画像部分5721、5722、5723、および5724に表される、位置の座標を含む点群であってもよい。言い換えれば、感知された構造情報6720は、第一の画像部分5720の画像部分5721~5724を直接組み込んでもよい。これらの画像部分は、物体3721、3722、3723、および3724について、物体構造の少なくとも一部分を記述しうる。例えば、画像部分5722は、物体3722について物体構造の縁を記述し、物体3722について物体構造の底部内表面の少なくとも一部分を記述してもよい。上で論じたように、計算システム1100は、物体検出情報1126の一部として、非一時的コンピュータ可読媒体1120に、感知された構造情報(例えば、6720)を記憶してもよい。
【0068】
実施形態では、感知された構造情報が既に、ステップ4004の開始時または開始前の、物体構造の第一の部分を記述する値を含む場合、計算システム1100は、第一の画像情報(例えば、5720)の値に基づいて、感知された構造情報を更新しうる。例えば、感知された構造情報は、カメラ視野(例えば、3202)の中にある一つ以上の物体の頂面図をすべて表す、画像情報の複数セットに基づいて生成されうる。画像情報の複数セットは、カメラ(例えば、3200)によって、(カメラが横方向に移動していく間に)異なるそれぞれの位置で生成されていてもよいが、カメラの画像センサーが、一つ以上の物体の頂部上にあるそれぞれの領域に直接面する配向など、カメラに対して同じまたは類似の配向を持つ。この例では、第一の画像情報は、画像情報の複数セットのうちの一つであってもよい。ステップ4004の開始時に、感知された構造情報が既に、画像情報の複数セットのうちの別の一つから取得された座標を含む場合、計算システム1100は、感知された構造情報を更新して、第一の画像情報(例えば、5720)から取得された座標を組み込んでもよい。したがって、計算システム1100は、感知された構造情報の新たな一部として、第一の画像情報から取得される座標のセットを含みうる。このように、感知された構造情報は、上で論じた画像情報の複数セットを組み合わせた、画像情報の複合セットとして機能しうる。一部の実例では、計算システム1100は、画像情報の複数セットが、一つ以上の物体の頂部の重複領域を表す状況などにおいて、上で論じた画像情報の複数セットをマージすることによって、画像情報の複合セットを生成しうる。こうしたマージ操作は、例えば、第一の画像情報の値に基づいて、感知された構造情報の一つ以上の既存値(例えば、奥行き値または座標)の調整を伴いうる。一部の実例では、マージ操作は、上で論じた画像情報の複数セットのうちの二つ以上に記載される、重複値(例えば、座標または奥行き値)の破棄を伴いうる。
【0069】
上で論じたように、感知された構造情報は、一つ以上の物体の頂面図など、ある特定の視点を表す画像情報に基づいて生成または更新されうる。ステップ4012に関して以下でより詳細に論じるように、感知された構造情報は、遠近法の視点など、別の視点を表す画像情報に基づいて更新されうる。感知された構造情報は、画像情報の複数セットから値を組み込むか、または反映するように更新されうるため、感知された構造情報は、複数のカメラ姿勢に関連付けられうる、画像情報の複数セットを組み合わせた、画像情報の複合セットとして働く、広範囲の構造情報として機能しうる。したがって、感知された構造情報が、点群もしくは奥行きマップであるか、または点群もしくは奥行きマップを含む場合、この点群または奥行きマップは、方法4000の間に更新されて、画像情報の複数セットから値を組み込む、広範囲の点群または広範囲の奥行きマップであってもよい。
【0070】
図4に戻ると、方法4000は実施形態で、計算システム1100が、物体構造に関連付けられた物体コーナーを識別する、ステップ4006を含みうる。例えば、物体コーナーは、図5Aの物体3722についての物体構造の外部コーナーであってもよい。一部の実施では、計算システム1100は、感知された構造情報(例えば、6720)に基づいて、物体コーナーを識別しうる。例えば、計算システム1100は、感知された構造情報によって記述される複数の外部エッジ、または感知された構造情報によって記述される複数のエッジ領域を識別しうる。こうした例では、計算システム1100は、複数の外部エッジが交差する所、もしくはその近くにある位置として、および/または複数のエッジ領域が交差する領域の中にある位置として、物体コーナーを識別しうる。
【0071】
一例では、計算システム1100は、例えば、感知された構造情報によって記述される位置の中から、最も外側位置のセットを識別することによって、物体構造のエッジを識別してもよく、位置のセットが、物体構造(例えば、物体3722について)の輪郭の一部に近似しうる。一部の実例では、計算システム1100は、最も外側位置のセットを通り抜ける線として、エッジを推定しても、またはそうでなければ識別してもよい。一部の実施では、計算システム1100は、最も外側位置のセットを含む位置の領域として、物体構造のエッジ領域を識別しうる。
【0072】
例として、図7は、感知された構造情報6720によって記述されるか、または他の方法で表される、第一のエッジ領域7001および第二のエッジ領域7002を、計算システム1100が識別したものを示す。第一のエッジ領域7001は、例えば、物体3722について物体縁の一部分を表す、一片または帯状の位置であってもよく、物体縁が、物体3722の物体構造の対するエッジのセットを形成する。同様に、第二のエッジ領域7002は、例えば、物体縁の別の部分上にある、別の一片または帯状の位置であってもよい。この例では、計算システム1100は、エッジ領域7001、7002の交差に基づいて、物体3722について物体コーナー3722Cを識別してもよい。より詳細には、計算システム1100は、エッジ領域7001、7002が重複するか、またはそうでなければ交差する領域でありうる、交差領域の中にある位置として、物体コーナー3722Cを決定しうる。一部の実施では、エッジ領域7001、7002の各々が、感知された構造情報6720に記述され、同じまたは実質的に同じであるそれぞれの奥行き値を有する、位置のそれぞれのセットとして識別されてもよい。こうした実施では、計算システム1100は、エッジ領域7001、7002の各々を、3D座標において実質的に同じ奥行き値または同じZ成分を有する、対応する位置のセットを通り抜けるそれぞれの2D平面と決定しうる。一部のシナリオでは、計算システム1100は、物体構造の凸コーナーをステップ4004の物体コーナーとして識別しうる。凸コーナーは、例えば、物体構造の二つの直交エッジが交差するコーナーであってもよい。凸コーナーについては、米国出願第16/578,900号(弁理士整理番号MJ0037-US/0077-0006US1)で詳細に論じており、参照によりその内容全体が本明細書に組み込まれる。
【0073】
実施形態では、計算システム1100は、ある特定の物体コーナーを、その到達可能性または可視性に基づいて、ステップ4004で識別してもよい。こうした実施形態では、感知された構造情報は、物体構造について複数の物体コーナーを記述しうる。例えば、図7の感知された構造情報6720は、物体3722の物体構造について、複数の物体コーナー3722Cから3722Cを記述しうる。より詳細には、物体コーナー3722Cから3722Cが、物体3722の縁のコーナーであってもよい。こうしたシナリオでは、計算システム1100は、複数の物体コーナー3722Cから3722Cの中から、物体コーナー(例えば、3722C)のうちの一つを選択するように構成されてもよい。選択は、(i)複数の物体コーナー3722Cから3722Cへのそれぞれの到達可能度、または(ii)複数の物体コーナー3722Cのそれぞれの遮蔽レベルのうちの少なくとも一つに基づいてもよい。
【0074】
実施形態では、物体コーナーへの到達可能度とは、ロボットアーム(例えば、3400)、すなわちより具体的には、ロボットアームの一端を形成するか、または一端に配置されるエンドエフェクタ装置(例えば、3500)との、ロボットの相互作用のために、物体コーナーがどの程度到達可能かを指しうる。例えば、ロボットの相互作用に、エンドエフェクタ装置(例えば、3500)が、物体(例えば、3721/3722)のある特定の物体コーナーに到達し、その物体コーナーで物体を握ることを伴う場合、その物体コーナーへの到達可能度は、例えば、ロボット(例えば、3300)の環境の中に、エンドエフェクタ装置(例えば、3500)が物体コーナーに到達するのを物理的に遮るであろう、他の物体があるかに影響を受けうる。こうした遮る物体には、例えば、物体コーナーの真上に配置されうる、別の物体(例えば、別の容器)を含みうる。
【0075】
実施形態では、物体コーナーの遮蔽のレベルとは、物体コーナーがカメラ(例えば、3200)によってどのくらい良く感知できるかを指し、より具体的には、カメラ(例えば、3200)に対する物体コーナーの可視性のレベルを指してもよい。可視性のレベルは、物体コーナーからカメラ(例えば、3200)への視線が、別の物体によって遮断されるか、またはそうでなければ遮蔽されるかに影響を受けうる。遮蔽は、カメラ(例えば、3200)が上で論じた第一のカメラ姿勢にあるとき、および/またはカメラが以下で論じる第二のカメラ姿勢にあるときに生じうる。実施形態では、計算システム1100は、ステップ4004で、複数の物体コーナーの間で最高の到達可能度、および/または最低レベルの遮蔽に関連付けられる物体コーナーを選択してもよい。複数の物体コーナーが、同じもしくは実質的に同じ到達可能度または遮蔽レベルに関連付けられる場合、計算システム1100は、複数の物体コーナーの中から、物体コーナーのうちの一つをランダムに選択しうる。
【0076】
図4に戻って参照すると、方法4000は実施形態で、計算システム1100によって、カメラ(例えば、3200)がステップ4006で識別された物体コーナーに向く、第二のカメラ姿勢を有するように、カメラを(例えば、一つ以上のカメラ配置移動コマンドによって)位置付けさせる、ステップ4008を含みうる。この実施形態では、ステップ4008の第二のカメラ姿勢は、ステップ4002に関連付けられた第一のカメラ姿勢とは異なってもよい。上述のように、カメラ姿勢は、カメラ(例えば、3200)の位置および配向の組み合わせであってもよい。図8Aは、カメラ3200が物体3722の物体コーナー3722Cに向く、第二のカメラ姿勢をカメラ3200が有する例を描写する。実施形態では、第二のカメラ姿勢は、カメラ(例えば、3200)が物体(例えば、3722)の斜視図を有するカメラ姿勢であってもよい。より詳細には、カメラ3200が図5Aに示す第一のカメラ姿勢を有するとき、側面部分(例えば、外側側部表面)などの物体3721/3722の少なくとも一部分は、カメラ3200の視線内になくてもよく、より具体的には、カメラ3200内の画像センサーの視線内になくてもよい。カメラ3200が第二のカメラ姿勢を有するとき、物体3721/3722のその部分(例えば、側面部分)は、物体コーナー3722Cと共に、カメラ3200のカメラ視野3202内に来てもよく、カメラ3200の画像センサーの視線内にあってもよい。
【0077】
実施形態では、カメラ(例えば、3200)が、第一の画像情報に関連付けられた第一のカメラ姿勢を有するとき、第一のカメラは、カメラ視野(例えば、3202)の中にある物体(例えば、3722)から第一の距離を有してもよい。例えば、計算システム1100は、ステップ4002の一部として、図5Aのロボットアーム3400に、カメラが物体(例えば、3722)の真上に配置され、物体(例えば、3722)から、すなわちより具体的には、物体の頂部(例えば、縁表面)から予め定義された第一の距離を有するカメラ姿勢へ、カメラ3200を移動させるか、または他の方法で位置付けさせるための、一つ以上のカメラ配置動作コマンドの第一のセットを生成してもよい。一部の実例では、第一の距離は、カメラ視野(例えば、3202)が物体の頂部全体を包含し、すなわちより具体的には、物体の複数の物体コーナーを包含することが可能になるように、物体(例えば、3722)から充分に離れていてもよい。結果として、カメラ(例えば、3200)が、第一のカメラ姿勢を有する間に第一の画像情報を生成するとき、第一の画像情報は、物体(例えば、3722)の複数の物体コーナー(例えば、3722C~3722C)を含む、物体の頂部全体を表しうる。こうした画像情報によって、ステップ4006で物体コーナーを識別するように、計算システム1100の能力を促進しうる。しかしながら、第一の距離が大きな値を有する場合、結果得られた画像情報は、より近い距離に関連付けられた画像情報ほど詳細ではない場合がある。したがって、一例では、ステップ4010で第二の画像情報に関連付けられた第二のカメラ姿勢は、物体(例えば、3722)、すなわちより具体的には、物体(例えば、3722)の物体コーナー(例えば、3722C)のより近くへ、カメラ(例えば、3200)を位置付けることを伴いうる。より詳細には、計算システム1100は、ロボットアーム(例えば、3400)に、カメラ(例えば、3200)を第二のカメラ姿勢へ移動させるための、一つ以上のカメラ配置移動コマンドの第二のセットを生成しうる。一つ以上のカメラ配置移動コマンドの第二のセットによって、ロボットアーム(例えば、3400)に、物体コーナー(例えば、3722C)から離れた第二の距離を有するように、カメラ(例えば、3200)を位置付けさせてもよく、第二の距離は、第一の距離よりも短くてもよい。より短い距離によって、第二の画像情報が、第一の画像情報と比べてより高い詳細度で、物体(例えば、3722)の物体構造を取り込むか、またはそうでなければ表すことが可能になりうる。したがって、第二の画像情報は、物体構造の記述または推定を精緻化するように使用されうる。
【0078】
図4に戻ると、方法4000は実施形態で、計算システム1100が、図8Aの物体3722/3721についての物体構造など、物体構造を表す第二の画像情報(画像情報の第二のセットとも呼ぶ)を受信する、ステップ4010を含んでもよい。第二の画像情報は、カメラ(例えば、3200)が、図8Aに示すカメラ姿勢など、第二のカメラ姿勢を有するときに、カメラによって生成されてもよい。上述のように、第二のカメラ姿勢によって、一部の状況で、物体(例えば、3722)の斜視図をカメラ(例えば、3200)に提供してもよい。こうした状況で第二の画像情報は、物体の斜視図を表しうる。
【0079】
一部の実施では、第二の画像情報は、3D画像情報であっても、または3D画像情報を含んでもよい。例として、図8Bは、第二の画像情報の一部を形成しうるか、またはその一部でありうる、3D画像情報8720を描写する。3D画像情報8720は、例えば、カメラ3200が図8Aに示す第二のカメラ姿勢を有するときに、カメラ3200によって生成される点群であっても、または点群を含んでもよい。第一の画像情報と同様に、第二の画像情報は、様々な物体構造の一つ以上の表面上にある位置に対する、奥行き値または座標などの値を含みうる。より詳細には、第二の画像情報は、図8Aの物体3721、3722、3723、および3724について物体構造を表しうる、画像部分8721、8722、8723、および8724を含んでもよい。一例では、第二の画像情報によって表される物体が、隆線模様、すなわちより広くは、物体の一つ以上の外側側部表面から突出する、複数の物理的隆起を有する場合、3D画像情報8720は、複数の隆起を記述しても、または他の方法で表してもよい。
【0080】
一部の実施では、第二の画像情報は、2D画像情報であっても、または2D画像情報を含んでもよい。例えば、図8Cは、第二のカメラ情報の一部を形成しうる、2D画像8730を示す。この例では、2D画像8730は、カメラ3200が第二のカメラ姿勢を有するときの、カメラ3200の眺望または視点からの物体3721、3722のそれぞれの外観を表す、少なくとも画像部分8731、8732を含みうる。
【0081】
実施形態では、上述のように、ステップ4002で受信した第一の画像情報が、物体(例えば、3722)から第一の距離を有するカメラ(例えば、3200)に関連付けられてもよく、ステップ4010で受信した第二の画像情報が、物体(例えば、3722)から第二の距離を有するカメラ(例えば、3200)に関連付けられてもよく、第二の距離は、第一の距離より短くてもよい。この実施形態では、第一のカメラ姿勢が、カメラと物体またはその一部分(例えば、物体3722の頂部)との間の第一の距離に関連付けられてもよく、一方第二のカメラ姿勢は、カメラと物体またはその一部分(例えば、物体3722のコーナー)との間の第二の距離に関連付けられてもよく、第二の距離は、第一の距離より短い。上で論じたように、第一の距離がより大きな値であることによって、第一の画像情報に、より低い詳細度を有させるようにしてもよく、より低い詳細度は、物体コーナーの識別を伴う、概略検出フェーズを行うには充分適切でありうるが、物体(例えば、3722)に関連付けられた物体タイプを決定するには充分適切でない場合がある。第二の画像情報が、カメラと物体(例えば、3722)との間のより近い距離に関連付けられるため、より高い詳細度が、第二の画像情報によって提供されてもよい。さらに、上で論じたように、第二の画像情報は、第一の画像情報に表されない、または一部のみ表されない、物体構造の一部分を表しうる。したがって、第二の画像情報によって、以下で論じる、物体(例えば、3722)について物体タイプを正確に決定するように、計算システム1100の能力を強化しうる。
【0082】
図4に戻ると、方法4000は実施形態で、計算システム1100によって、第二の画像情報に基づいて感知された構造情報を更新する、ステップ4012を含みうる。感知された構造情報を、更新された後、更新された感知された構造情報と呼んでもよい。一部の実施では、ステップ4012は、第二の画像情報から感知された構造情報(例えば、6720)の中への、奥行き値または座標などの値の組み込みを伴いうる。ステップ4004で生成または更新された後に、感知された構造情報が第一の画像情報からの値を含む場合、ステップ4012で、第一の画像情報および第二の画像情報の両方を包含することによってなど、第一の画像情報および第二の画像情報を組み合わせた、更新された感知された構造情報を生成しうる。例えば、図6は、第一の画像情報5720によって記述される座標を組み込むか、またはそうでなければ含む、広範囲の点群であってもよい、感知された構造情報6720を示す。この例の感知された構造情報6720は、物体3722および/または3721について物体構造の一部分を表し、すなわちより具体的には、物体3722および/または3721の物体構造について、縁および底部内表面を表してもよい。この例では、計算システム1100は、広範囲の点群を更新して、図8Bの第二の画像情報8720によって記述される座標を挿入するか、またはそうでなければ組み込むことによって、感知された構造情報6720を更新してもよい。感知された構造情報6720は、図9の更新された感知された構造情報9720を得るように更新されてもよく、これは、例えば、物体(例えば、3721/3722)に関連付けられた物体構造を表す複数の座標を含む、広範囲の点群の更新バージョンであってもよい。広範囲の点群の更新バージョンの複数の座標は、第一の画像情報5720によって記述される座標、および第二の画像情報8720によって記述される座標を組み合わせても、またはそうでなければマージしてもよい。上述のように、第二の画像情報は、一部の状況で、物体(例えば、3721/3722)の斜視図を表しうる。斜視図によって、第二の画像情報が、物体(例えば、3721/3722)について物体構造の少なくとも側面部分(複数可)を表すことが可能になりうる。更新された感知された構造情報(例えば、9720)が、第二の画像情報を組み込むため、更新された感知された構造情報(例えば、9720)はまた、物体構造の側面部分(複数可)も表しうる。カメラ視野(例えば、3202)の中にある物体(例えば、3721/3722)が、物体の一つ以上の外側側部表面上に隆線模様を有する場合、更新された感知された構造情報(例えば、9720)は、隆線模様を記述しても、または他の方法で表してもよい。
【0083】
図4に戻ると、方法4000は実施形態で、計算システム1100が、カメラ視野の中にある物体(例えば、3722)に関連付けられた物体タイプを決定する、ステップ4014を含んでもよく、この決定は、更新された感知された構造情報(例えば、9720)に基づいてもよい。例えば、物体3721、3722が容器である場合、ステップ4014は、物体3721に関連付けられた容器タイプ、および/または物体3722に関連付けられた容器タイプの決定を伴いうる。実施形態では、物体タイプは、物理的設計および/または視覚的なデザインを含みうる、ある特定の物体設計に関連付けられてもよい。この実施形態では、物理的設計は、例えば、物体タイプに属するか、またはそうでなければ関連付けられた物体の物理構造(物体構造とも呼ぶ)を指しうる。物理構造は、物体形状、物体サイズ、および/または物体タイプに関連付けられた物体の表面上に配置される物理的特徴(例えば、隆線模様)によって特徴付けられうる。
【0084】
実施形態では、物体タイプは、図2Dの物体認識テンプレート情報1128によって記述されるテンプレートなど、物体認識テンプレートに関連付けられてもよい。一例では、物体認識テンプレートは、容器デザイン、すなわちより具体的には、容器タイプについての視覚的なデザインおよび/または物理的設計を記述する、容器テンプレートであってもよい。物体認識テンプレート情報1128が、複数の物体認識テンプレートを記述する場合、複数の物体認識テンプレートは、異なる物体タイプにそれぞれ関連付けられうる。例えば、図10Aは、物体認識テンプレート9128A、9128A、および9128Aを記述する、物体認識テンプレート情報9128(物体認識テンプレート情報1128の実施形態であってもよい)を描写する。この例では、物体認識テンプレート9128A、9128A、および9128Aは、三つの異なるそれぞれの物体タイプ、すなわち、それぞれ容器タイプ1、容器タイプ2、および容器タイプ3に関連付けられてもよい。テンプレート情報9128によって記憶されるか、またはそうでなければ記述される、物体認識テンプレート9128A、9128A、および9128Aを使用して、候補セット、すなわちより具体的には、テンプレート候補セットを追加してもよい。テンプレート候補セットは、カメラ視野の中の物体(例えば、3722)と潜在的に合致する、すなわちより具体的には、更新された感知された構造情報に合致する候補でありうる、候補物体認識テンプレートのセットを表してもよい。以下で論じるように、計算システム1100は、更新された感知された構造情報(例えば、広範囲の点群)をこれらの候補テンプレートと比較して、いずれの物体認識テンプレートが、更新された構造情報に合致するかを判定し、および/またはどの物体認識テンプレートが最良の合致を提供するかを判定しうる。
【0085】
一部の実施では、物体認識テンプレートの一部またはすべて(例えば、9128A、9128A、および9128A)は各々、それぞれの物体構造の記述(構造記述情報とも呼ぶ)を含みうる。物体認識テンプレートの物体構造の記述は、物体認識テンプレートに関連付けられた物体タイプについて、物理的設計、すなわちより具体的には、物体構造を記述しうる。一部の実例では、物体構造の記述が、物体構造を記述するCADファイルを含みうる。一部の実例では、物体構造の記述が、エッジ、表面、隆線の模様、または物体構造を形成する他の物理的特徴を記述することによってなど、物体構造の輪郭を記述する点群(テンプレート点群とも呼ぶ)を含みうる。実施形態では、物体認識テンプレートのセット(例えば、9128A、9128A、および9128A)は、それぞれの容器タイプに関連付けられた、それぞれの物体形状、物理的設計、または概して物体構造を記述しうる、物体構造モデルのセットを記述してもよい。例えば、物体認識テンプレートの中にある物体構造の記述が、CADファイルを含む場合、物体認識テンプレートに関連付けられた物体構造モデルは、CADファイルによって記述されるCADモデルであってもよい。図10Aは、物体認識テンプレート9128Aから9128Aのセットが、その物体構造の記述の中で、三つの物体構造モデルのセットをそれぞれ記述する例を提供する。
【0086】
実施形態では、物体認識テンプレートの物体構造の記述は、物体構造の一部分についての直接的な記述を含んでもよく、物体構造の残りの部分が、物体認識の記述によって直接記述される、物体構造の一部分と同じまたは実質的に同じである構造細部を有しうるため、物体構造の残りの部分についての直接的な記述を省略してもよい。例えば、図10Bは、物体認識テンプレート9128B、9128B、および9128Bを記述する物体認識テンプレート情報9128を示し、それら物体認識テンプレートはまた、それぞれ容器タイプ1、容器タイプ2、および容器タイプ3に関連付けられてもよく、容器タイプ1から3に関連付けられた、それぞれの容器構造を記述しうる。図10Bの例では、物体認識テンプレート9128B、9128B、および9128Bの各々が、それぞれの容器構造の二つの垂直な側部について、構造細部を直接記述する物体構造の記述を有する一方で、それぞれの容器構造の残り二つの垂直な側部の直接的な記述を省略してもよい。残り二つの垂直な側部についての直接的な記述は、それらの構造細部が、物体構造の記述によって記述される構造細部と同じ、または実質的に同じであってもよいため、省略されうる。言い換えれば、物体構造の記述は既に、それぞれの容器構造の残り二つの垂直な側部について間接的に記述してもよい。
【0087】
上述のように、計算システム1100または他の場所に記憶される、物体認識テンプレート(例えば、9128Bから9128B)を使用して、物体認識テンプレートのセットでありうる、テンプレート候補セットを追加してもよく、セットの中の物体認識テンプレートが、異なる物体タイプ(例えば、容器タイプ1、2、および3)に関連付けられた物体構造を記述してもよい。実施形態では、物体(例えば、3722)に関連付けられた物体タイプの決定には、ステップ4012の更新された感知された構造情報(例えば、広範囲の点群)と、テンプレート候補セットの中の物体認識テンプレートとの比較を行うことを伴いうる。例として、図11Aは、図8Aの物体3721についての物体構造、および物体3722についての物体構造を表しうる、更新された感知された構造情報9720と、物体認識テンプレート9728Aから9728Aを含む、テンプレート候補セットとの比較を示す。同様に、図11Bは、更新された感知された構造情報9720と、物体認識テンプレート9728Bから9728Bを含むテンプレート候補セットとの比較を示す。
【0088】
実施形態では、上で論じた比較を使用して、テンプレート候補セットの中の各物体認識テンプレート(例えば、9728Aから9728Aまたは9728Bから9728B)が、更新された感知された構造情報に合致する、それぞれの度合いを決定してもよい。比較は、物体認識テンプレートの各々が、更新された感知された構造情報(例えば、広範囲の点群)によって、どのくらい良くサポートまたは説明されているかを示しうる。一例では、計算システム1100が、比較に基づいて、物体認識テンプレート(例えば、9728Aまたは9728B)をテンプレート候補セットから選択しうる。選択された物体認識テンプレートは、物体(例えば、3722)に関連付けられた物体タイプ(例えば、容器タイプ3)を表しうる。より詳細には、選択された物体認識テンプレートは、物体タイプに関連付けられうる。したがって、この例では、カメラ視野の中にある物体についての物体タイプの決定は、物体タイプに関連付けられた物体認識テンプレートの選択を伴いうる。
【0089】
実施形態では、物体認識テンプレートの選択は、例えば、テンプレート候補セットのどの物体認識テンプレートが、更新された感知された構造情報に最も厳密に合致するかに基づいてもよい。以下でより詳細に論じるように、比較には、物体認識テンプレートと更新された感知された構造情報との間のそれぞれの乖離量を各々記述する、エラー値の決定を伴いうる。こうしたシナリオでは、物体認識テンプレートの選択は、以下でより詳細に論じるように、エラー値に基づいてもよい。実施形態では、計算システム1100は、一つ以上のロボット相互作用位置を決定するために、ステップ4016で選択された物体認識テンプレートの中の物体構造の記述を使用するように構成されてもよい。物体構造の記述が物体構造モデルを含む場合、計算システムは、選択された物体認識テンプレートの物体構造モデルを使用して、一つ以上のロボット相互作用位置を決定するように構成されうる。
【0090】
上述のように、計算システム1100が、更新された感知された構造情報と、候補物体認識テンプレートのセットと、すなわちより具体的には、それら物体認識テンプレートの中のそれぞれの物体構造の記述のセットとを比較してもよい。例えば、更新された感知された構造情報が、物体構造(例えば、容器構造)の側部表面から突出する複数の隆起を記述する場合、計算システム1100は、更新された感知された構造情報および/または第二の画像情報に基づいて、複数の隆起を検出してもよく、検出された隆起と、物体認識テンプレートの中の物体構造の記述によって記述される、隆起または他の物理的特徴とを比較しうる。こうした例では、カメラ視野の中にある物体についての物体タイプ(例えば、容器タイプ)は、どの物体認識テンプレートが、物体の外側側部表面上に検出された隆起に最も合致するかの選択に基づいて決定されうる。したがって、この例の物体タイプは、容器構造の外側側部表面上に検出された隆起に基づいて決定されうる。一部の実例では、物体構造の記述のセットは、それぞれの物体構造モデルのセットを記述しうる。一部の実例では、比較で物体構造モデルの配向を考慮に入れてもよい。したがって、計算システム1100は、より具体的には、更新された感知された構造情報と、物体構造モデルおよびそれら物体構造モデルの配向の候補となる組み合わせとを比較しうる。この例では、テンプレート候補セットは、より具体的には、モデル-配向の組み合わせを含むセットであってもよい、モデル-配向候補セットでありうる。候補セットの中のモデル-配向の組み合わせの各々は、(i)上で論じた物体構造モデルのセットのうちの一つである物体構造モデルと、(ii)物体構造モデルの配向との組み合わせであってもよい。こうした例では、計算システム1100は、更新された感知された構造情報と、モデル-配向候補セットの中のモデル-配向の組み合わせとを比較しうる。
【0091】
実施形態では、物体構造モデルが、ある特定の物体タイプについて、物体構造の複数の外側側部表面(外側側方表面とも呼ぶ)を表すか、または記述する場合、物体構造モデルの配向は、複数の外側側部表面の各々が面している、それぞれの方向を指しうる。実施形態では、物体構造モデルの配向は、計算システム1100が、どのように物体構造モデルを、点群または他の感知された構造情報に整列させようと試みているかを指しうる。一例では、点群は、例えば、カメラ視野(例えば、3202)の中にある容器または他の物体の少なくとも第一の外側側部表面と、第二の垂直な外側側部表面とを表しうる。この例では、物体構造モデルはまた、物体構造モデルに関連付けられた物体タイプについて、少なくとも第一の外側側部表面および第二の外側側部表面を表しても、または記述してもよく、物体構造モデルの第二の外側側部表面は、その第一の外側側部表面に垂直であってもよい。点群によっておよび/または物体構造モデルによって記述される、第一の外側側部表面ならびに第二の外側側部表面は、例えば、容器または容器構造の二つの垂直な側壁を表しうる。
【0092】
一部の実例では、物体構造モデルの第一の配向は、物体構造モデルの第一の外側側部表面および第二の外側側部表面が、点群によって表される第一の外側側部表面および第二の外側側部表面と、それぞれどのくらい上手く整列するかについての、計算システム1100の判定を指しうる。より具体的には、物体構造モデルが第一の配向を有するとき、計算システム1100は、物体構造モデルの第一の外側側部表面の物理的特徴(例えば、隆起)または他の特性(例えば、サイズ)と、点群によって記述される第一の外側側部表面の物理的特徴または他の特性とを比較してもよく、物体構造モデルの第二の外側側部表面の物理的特徴または他の特性と、点群によって記述される第二の外側側部表面の物理的特徴とを比較してもよい。さらにこの例では、物体構造モデルの第二の配向は、物体構造モデルの第一の外側側部表面および第二の外側側部表面の、第一の配向に対する90度の回転を伴いうる。物体構造モデルが第二の配向を有するとき、計算システム1100は、物体構造モデルの第一の外側側部表面および第二の外側側部表面が、点群によって記述される第二の外側側部表面および第一の外側側部表面と、それぞれどのくらい上手く整列するかを判定しうる。より具体的には、物体構造モデルが第二の配向を有するとき、計算システム1100は、物体構造モデルの第一の外側側部表面の物理的特徴または他の特性と、点群によって記述される第二の外側側部表面の物理的特徴とを比較してもよく、物体構造モデルの第二の外側側部表面の物理的特徴または他の特性と、点群によって記述される第一の外側側部表面の物理的特徴とを比較してもよい。
【0093】
実施形態では、物体構造モデルと点群との整列は、物体構造モデルが第一の配向または第二の配向の一方を有するとき、物体構造モデルが第一の配向または第二の配向の他方を有するときと比べて、より良好でありうる。こうした実施形態は、物体構造モデルによって記述される、第一の外側側部表面面および第二の外側側部表面が、異なる隆線模様、および/または他の異なる特性(例えば、異なるサイズ)など、異なる物理的特徴を有しうるために発生しうる。例として、物体構造モデルの第一の外側側部表面が、点群によって感知された第一の外側側部表面に対応する場合、物体構造モデルによって記述される物理的特徴(例えば、隆線模様)と、点群によって記述される物理的特徴(例えば、隆線模様)との整列のレベルは、第一の配向によって、物体構造モデルの第一の外側側部表面と、点群の第一の外側側部表面との比較をもたらしうるため、物体構造モデルが第二の配向を有するときより、物体構造モデルが第一の配向を有するときの方が良好でありうる。
【0094】
例えば、図12Aおよび12Bは、更新された感知された構造情報9720と、モデル-配向の組み合わせAからF(図12Bに示すような)またはUからZ(図12Aに示すような)を含む、モデル-配向候補セットとの比較を示す。図12Aでは、各モデル-配向の組み合わせは、(i)物体認識テンプレート9128Aから9128Aのうちの一つによって記述される物体構造モデル、および(ii)その物体構造モデルの配向の組み合わせであってもよい。同様に、図12Bの各モデル-配向の組み合わせは、(i)物体認識テンプレート9128Bから9128Bのうちの一つによって記述される物体構造モデル、および(ii)その物体構造モデルの配向の組み合わせであってもよい。例として、図12Aのモデル-配向の組み合わせYは、物体認識テンプレート9128Aによって記述される物体構造モデルと、物体構造モデルの第一の配向との組み合わせであってもよく、一方モデル-配向の組み合わせZは、同じ物体構造モデルと物体構造モデルの第二の配向との組み合わせであってもよい。この実施形態では、カメラ視野の中にある物体についての物体タイプの決定には、より具体的には、ある特定のモデル-配向の組み合わせの選択を伴ってもよく、選択された組み合わせの物体構造モデルは、物体タイプに関連付けられる。以下でより詳細に論じるように、選択されたモデル-配向の組み合わせの物体構造モデルおよび配向は、ロボット相互作用位置を決定するように、計算システム1100によって使用されてもよい。選択が、計算システム1100によるエラー値の決定を伴う場合、この実施形態のこうしたエラー値は、モデル-配向候補セットの中のモデル-配向の組み合わせに関連付けられうる。
【0095】
実施形態では、計算システム1100は、ステップ4014の一部として、テンプレート候補セットから物体認識テンプレート(複数可)をフィルタリングして取り除くかどうか、またはモデル-配向候補セットからモデル-配向の組み合わせ(複数可)をフィルタリングして取り除くかどうかを決定しうる。テンプレートまたは組み合わせをフィルタリングして取り除くことによって、それらを更新された感知された構造情報(例えば、9720)との潜在的合致とみなされるものから除去しうる。一部の実例では、計算システム1100が、テンプレート候補セットまたはモデル-配向候補セットに基づいてエラー値を決定する場合、これらの候補セットをフィルタリングした後、エラー値を決定しうるが、これによって、算出する必要のあるエラー値の総数を減少し、それゆえ計算資源を節約しうる。言い換えれば、フィルタリングによって、フィルタリングされた候補セットを生成してもよく、エラー値は、フィルタリングされた候補セットの中の物体認識テンプレートまたはモデル-配向の組み合わせに基づいて生成されてもよい。
【0096】
実施形態では、候補セット(例えば、モデル-配向候補セットのテンプレート候補セット)から、物体認識テンプレートまたはモデル-配向の組み合わせをフィルタリングして取り除くかの決定は、対応する物体構造モデルが、更新された感知された構造情報(例えば、9720)によって占有される領域の範囲外にある、少なくとも一部分を有するかの判定を伴いうる。より具体的には、更新された感知された構造情報によって、カメラ視野(例えば、3202)の中にある物体(例えば、3722)についての物体構造によって占められる、空間の領域を推定しうる。ある特定の物体認識テンプレートまたはモデル-配向の組み合わせが、空間の領域の範囲外にある物体構造モデルを含む場合、計算システム1100は、物体構造モデルが物体を表さない可能性が高く、そのため、物体認識テンプレートまたはモデル-配向の組み合わせに対するエラー値を決定することさえも不要であると決定しうる。したがって、計算システム1100は、テンプレートまたは組み合わせを候補セットから除去しうる。
【0097】
例として、計算システム1100は、推定された領域内に収まらないか、または実質的に収まらない、一つ以上のそれぞれの物体構造モデルを含む、一つ以上の物体認識テンプレートを識別し、それらの一つ以上の物体認識テンプレートを、テンプレート候補セットから除去することによって、図11Aまたは11Bのテンプレート候補セットをフィルタリングしてもよい。言い換えれば、計算システム1100は、物体認識テンプレートによって記述される物体構造モデルが、更新された感知された構造情報によって充分にサポートまたは説明されているかを判定することによって、ある特定の物体認識テンプレートを候補セットからフィルタリングして取り除くかを決定しうる。こうした決定は、物体構造モデルが、物体構造によって占有される空間の推定領域内に実質的に収まるかに関係しうる。物体構造モデルが推定領域内に完全に収まるとき、または推定領域の外側にある物体構造モデルの割合が、予め定義された閾値より小さいときに、実質的な適合がありうる。物体構造モデルが、推定領域内に実質的に収まらない場合、計算システム1100は、物体構造に関連付けられた、更新された感知された構造情報(例えば、9702)によって、物体構造モデルが充分にサポートされていないか、または充分に説明されていないと判定しうる。したがって、計算システム1100は、物体認識テンプレートをテンプレート候補セットから除去することによって、物体認識テンプレートをフィルタリングして取り除いてもよい。
【0098】
実施形態では、計算システム1100は、テンプレート候補セットの中の物体認識テンプレートについて、物体認識テンプレートによって記述された物体構造モデルが、物体構造モデルの少なくとも一つの配向に対して、推定領域内に実質的に収まるかを判定することによって、フィルタリング操作を行ってもよい。物体構造モデルを実質的に推定領域内に収めさせるであろう、物体構造モデルの少なくとも一つの配向がある場合、計算システムは、テンプレート候補セットから関連する物体認識テンプレートをフィルタリングして取り除かないと決定しうる。
【0099】
実施形態では、計算システム1100は、候補配向、すなわちより具体的には、物体構造モデルと、その物体構造モデルの配向との候補組み合わせをフィルタリングして取り除いてもよい。こうした実施形態では、計算システム1100は、より具体的には、モデル-配向候補セットから、モデル-配向の組み合わせをフィルタリングして取り除くかを決定してもよい。例として、モデル-配向候補セットは、図12Bのモデル-配向の組み合わせAからFを含んでもよい。この例では、計算システム1100は、候補セットの中のモデル-配向の組み合わせの各々について、モデル-配向の組み合わせを候補セットから除去するかを決定することによって、フィルタリング操作を行うように構成されてもよい。より詳細には、計算システムは、物体構造モデルが、モデル-配向の組み合わせに関連付けられた配向を有するとき、モデル-配向の組み合わせに含まれるか、またはそれに関連付けられた物体構造モデルが、上で論じた推定領域内に実質的に収まるかを判定しうる。例えば、図13Aは、モデル-配向候補セットから、モデル-配向の組み合わせCをフィルタリングして取り除くかの決定を伴う例を描写する。図13Aに示すように、このモデル-配向の組み合わせは、物体認識テンプレート9128Bに記述される物体構造モデルを伴ってもよく、配向1を有する物体構造モデルを伴ってもよい。計算システム1100は、モデル-配向の組み合わせCに含まれる物体構造モデルが、モデル-配向の組み合わせCの中に示されるか、またはそれに関連付けられた配向を有するとき、更新された感知された構造情報9720によって画定される、推定領域内に実質的に収まらないと判定しうる。こうした判定に応答して、計算システム1100は、モデル-配向候補セットからモデル-配向の組み合わせCを除去してもよいか、またはモデル-配向の組み合わせCが候補セットから除去されるべきという表示を生成してもよい。図13Bは、モデル-配向の組み合わせCが除去された後のモデル-配向候補セットを描写する。モデル-配向候補セットは、フィルタリングされた候補セットを表しうる。
【0100】
図13Cは、モデル-配向の組み合わせ(モデル-配向の組み合わせD)がモデル-配向候補セットから除去されるべきかを決定する別の例を描写する。より詳細には、この例の計算システム1100は、モデル-配向の組み合わせDに関連付けられた物体構造モデルが、モデル-配向の組み合わせDに関連付けられた配向(配向2)を有するとき、更新された感知された構造情報によって画定された推定領域内に、実質的に収まるかを判定しうる。この物体構造モデルは、モデル-配向の組み合わせCの物体構造モデルと同じであってもよいが、モデル-配向の組み合わせCの配向とは異なる配向を有してもよい。この例では、計算システム1100は、物体構造モデルが、モデル-配向の組み合わせDに関連付けられた配向を有するとき、モデル-配向の組み合わせDに関連付けられた物体構造モデルが、推定領域内に実質的に収まると判定しうる。結果として、計算システム1100は、モデル-配向の組み合わせを候補セットから除去しないと決定しうる。
【0101】
上で論じたように、計算システム1100が、候補セットがフィルタリングされた後、モデル-配向候補セットの中のモデル-配向の組み合わせに対する、エラー値のセットを決定しうる。例えば、計算システム1100が、候補セットから図12Bのモデル-配向の組み合わせCをフィルタリングして取り除くと決定し、モデル-配向の組み合わせA、B、D、E、およびFはフィルタリングして取り除かないと決定してもよい。この例では、計算システム1100が、候補セットがフィルタリングされた後、候補セットの中に残るモデル-配向の組み合わせA、B、D、E、およびFに対する、エラー値を決定してもよい。
【0102】
実施形態では、計算システム1100が、物体構造の記述を、更新された感知された構造情報により厳密に合致させる(調整前の合致のレベルと比べて)ために、物体認識テンプレートの中の物体構造の記述、すなわちより具体的には、物体認識テンプレートによって記述される、物理的特徴に関連付けられた姿勢情報を調整する、精緻化操作(例えば、姿勢精緻化操作)を行ってもよい。一部の実例では、姿勢精緻化操作は、物体認識テンプレートに関連付けられた物体構造モデルに対して、より具体的には、モデル-配向の組み合わせに関連付けられた物体構造モデルに対して行われてもよい。物体認識テンプレート、物体構造の記述、姿勢情報、および物体構造モデルは、姿勢精緻化操作によって調整された後、それぞれ精緻化物体認識テンプレート、精緻化物体構造の記述、精緻化姿勢情報、および精緻化物体構造モデルと呼んでもよい。
【0103】
一部の実施では、以下で論じる姿勢精緻化操作が、物体認識テンプレートと感知された構造情報との比較と並行して行われてもよい。例えば、上で論じたフィルタリング操作を行う場合、姿勢精緻化操作は、フィルタリング操作と並行して、および/または以下でより詳細に論じる、エラー値の算出と並行して行われてもよい。一部の実施では、姿勢精緻化操作が、物体認識テンプレートと感知された構造情報との比較の前に行われてもよい。例えば、姿勢精緻化操作が、フィルタリング操作の前、および/またはエラー値の算出の前に行われてもよい。一部の実施では、姿勢精緻化操作が、フィルタリング操作の後、および/またはエラー値の算出の前に行われてもよい。こうした実施では、テンプレート候補セットまたはモデル-配向候補セットの中の物体認識テンプレート上で、それらの候補セットがフィルタリングされた後に、姿勢精緻化操作が行われてもよい。
【0104】
例えば、図14は、精緻化物体認識テンプレート、すなわちより具体的には、精緻化物体構造モデルを生成するために、物体認識テンプレート9128Bに関連付けられた物体構造モデル、すなわちより具体的には、図12Bおよび13Bのモデル-配向の組み合わせDに関連付けられた物体構造モデルの調整を伴う、姿勢精緻化操作を示す。一部の実施では、調整されている物体構造モデルは、物体認識テンプレート9128Bに関連付けられ、かつ物体構造モデルに関連付けられた物体構造について、少なくとも一つの物理的特徴(例えば、エッジ、コーナー、隆起、外表面)を記述しうる。図14の例では、調整されている物体構造モデルは、各々が物体認識テンプレート9128Bに関連付けられるか、または物体認識テンプレート9128Bによって表される、物体構造のそれぞれのエッジであってもよい、物理的特徴9128B2-1、9128B2-2を記述しうる。より詳細には、調整されている物体構造モデルが、物理的特徴9128B2-1、9128B2-2のそれぞれの姿勢を記述する、姿勢情報を含んでもよく、物理的特徴9128B2-1、9128B2-2の位置および配向の組み合わせを指しうる。上述のように、計算システム1100は、精緻化姿勢情報および/または精緻化物体構造モデルを生成するために、更新された感知された構造情報に基づいて、物体構造モデルの中の姿勢情報を調整してもよい。例えば、図14に示すように、計算システム1100が、姿勢情報を調整して、物理的特徴9128B2-1に対する調整、および/または物理的特徴9128B2-2に対する調整を示してもよい。調整には、例えば、更新された感知された構造情報9720によって記述された座標の一つのグループにより近づくよう、物理的特徴9128B2-1を回転させるために、物理的特徴9128B2-1の配向を、例えば、0.5~1度分変更することを伴いうる。調整にはさらに、更新された感知された構造情報9720によって記述された座標の別のグループにより近づくよう、物理的特徴9128B2-2を移動させるために、物理的特徴9128B2-2の位置を、例えば、2~5mm移すことを伴いうる。調整によって、図14で生成されている精緻化物体構造モデルによって記述される、物理的特徴9128B2-1、9128B2-2を、更新された感知された構造情報9720により厳密に合致させうる。
【0105】
一部の実例では、姿勢の精緻化によって、感知された構造情報(例えば、ステップ4012の更新された感知された構造情報)と比較するために強化された精度を提供する、精緻化姿勢情報、精緻化物体構造モデル、および/または精緻化物体認識テンプレートを生成しうる。以下でより詳細に論じるように、精緻化物体認識テンプレートを使用して、ロボット相互作用位置を決定する場合、精緻化物体認識テンプレートの中の精緻化姿勢情報の精度を強化することによって、ロボット相互作用位置をより最適にさせうる。一部の実例では、物体認識テンプレートの中の精緻化姿勢情報の精度を強化することで、精緻化物体認識テンプレートと更新された感知された構造情報との比較を促進することなどによって、物体タイプの決定が容易になりうる。比較が、精緻化物体認識テンプレートと更新された感知された構造情報との間のそれぞれの乖離度を示す、エラー値の決定を伴ってもよい。こうした例では、姿勢精緻化操作が、エラー値を決定する前に、物体認識テンプレートを調整するために行われてもよい。一部のシナリオでは、物体認識テンプレートの調整によって、どの物体認識テンプレートが、姿勢精緻化操作により調整された後、更新された感知された構造情報に最も厳密に合致するかを判定するために、エラー値をより信頼性の高い、またはより有用なものにしうる。
【0106】
一部の実施では、姿勢の精緻化によって、製造公差、物理的損傷、または物体構造モデルと、モデルに関連付けられた実際の物体との乖離の他の源に影響を受けうる、現実世界の理想的でない環境における物体タイプの堅牢な決定を促進しうる。例えば、製造公差によって、同じ物体タイプの物体にわずかな構造上の変動をもたらす場合があり、それゆえ、物体タイプに関連付けられた物体認識テンプレート、すなわちより具体的には、物体構造モデルと比較すると、それらの物体の少なくとも一部に差異を呈させうる。別の例として、それらの物体の一部が、環境との相互作用の結果として、使用中に軽微な物理的損傷または他の形態の構造的な変化を経験する場合がある。これらの例では、姿勢の精緻化は、カメラの物理的環境の中にある実際の物体と、その物体に関連付けられた物体構造モデルとの間に自然に存在しうる、わずかな構造上の変動を説明するために使用されうる。より詳細には、姿勢精緻化操作によって、上で論じた乖離を減少させるために、物体構造モデルを調整して、精緻化物体構造モデルを物体について感知された構造情報により近づけさせてもよい。
【0107】
実施形態では、計算システムは、候補セットの中の各物体認識テンプレートに対して、少なくとも一つのそれぞれのエラー値を算出するか、または他の方法で決定することによって、テンプレート候補セット中の物体認識テンプレートと、更新された感知された構造情報との比較を行いうる。例えば、上で論じたように、更新された感知された構造情報が、複数の座標を有する広範囲の点群を含む場合、少なくとも一つのそれぞれのエラー値は、例えば、広範囲の点群の複数の座標からの座標が、対応する物体認識テンプレートにどのくらい厳密に合致するか、すなわちより具体的には、広範囲の点群の座標が、物体認識テンプレートに含まれる物体構造記述情報によって記述される、一つ以上の物理的特徴(例えば、エッジ、コーナー、隆起、表面など)にどのくらい厳密に合致するかに基づいて算出されてもよい。一部の実施では、物体認識テンプレートの物体構造の記述が、点群(テンプレート点群とも呼ぶ)を含む場合、物体認識テンプレートに関連付けられたエラー値は、広範囲の点群の中の座標とテンプレート点群の中の座標との間の、それぞれの距離に基づいてもよい。一部の実施では、テンプレート点群および物体認識テンプレートが、上で論じた、姿勢精緻化操作から生成された、精緻化テンプレート点群または精緻化物体認識テンプレートであってもよい。一部の実施では、エラー値が、物体認識テンプレートの物体構造モデルによって記述される物理的特徴(例えば、隆起、エッジ、および/またはコーナー)と、広範囲の点群によって記述される物理的特徴(例えば、隆起、エッジ、および/またはコーナー)との乖離度を示しうる。
【0108】
図15A~15Cは、計算システム1100が、図11Bのテンプレート候補セットの中の物体認識テンプレート9128Bから9128B(例えば、姿勢精緻化操作によって調整された精緻化物体認識テンプレートであってもよい)と、更新された感知された構造情報9720との比較を行う例を描写する。より具体的には、図15Aが、テンプレート候補セットの中の物体認識テンプレート9128Bに対する、少なくとも一つのエラー値を計算システム1100が決定するのを示し、一方図15Bが、テンプレート候補セットの中の物体認識テンプレート9128Bに対する、少なくとも一つのエラー値を計算システム1100が決定するのを示し、図15Cが、テンプレート候補セットの中の物体認識テンプレート9128Bに対する、少なくとも一つのエラー値を計算システム1100が決定するのを示す。一部の実施では、計算システム1100は、物体認識テンプレートに対する複数のエラー値(例えば、二つのエラー値)を決定してもよい。複数のエラー値は、物体認識テンプレートによって記述される、物体構造モデル(例えば、姿勢精緻化操作によって生成される、精緻化物体構造モデル)の複数の配向にそれぞれ対応してもよい。例えば、以下でより詳細に論じるように、図15Cは、物体認識テンプレート9128Bに対する一つのエラー値(一つの配向に対応する)を、計算システム1100が決定するのを示してもよく、一方図16は、物体認識テンプレート9128Bに対する別のエラー値(別の配向に対応する)を、計算システム1100が決定するのを示す。
【0109】
物体認識テンプレート9128Bに関連付けられたエラー値に関係する、図15Aの例に戻ると、エラー値が、物体認識テンプレート9128Bの中の物体構造の記述(例えば、物体構造モデル)と、更新された感知された構造情報9720との間のそれぞれの乖離度を示しうる。一部の実施では、図15Aの計算システム1100は、物体認識テンプレート9128Bの物体構造モデルが、更新された感知された構造情報9720によって充分に説明されない、任意の部分を有するかを検出しても、またはそうでなければ決定してもよい。例として、計算システム1100は、物体構造モデルのある特定の部分と、更新された感知された構造情報9720の対応する(例えば、最も近い)部分との間の距離が、予め定義された距離閾値より大きいかを判定しうる。例えば、物体構造モデルおよび更新された感知された構造情報9720が両方、各々が複数の座標(点とも呼ぶ)を含む点群である場合、計算システムは、物体構造モデルが、更新された感知された構造情報9720の対応する(例えば、最も近い)座標から、予め定義された距離閾値より大きい分だけ分離されている、任意の座標を有するかを判定しうる。二つの対応する座標を分離する距離が、予め定義された距離閾値より大きい場合、計算システム1100は、物体構造モデルのある特定の座標、またはより広くは、ある特定部分が、更新された感知された構造情報9720によって充分に説明されていないと判定しうる。こうした一部分は、説明なしの一部分、すなわちより具体的には、説明なしの座標または説明なしの点と呼んでもよい。図15Aは、物体構造モデルの一部分14031~14031が、更新された感知された構造情報9720(例えば、広範囲の点群)の座標によって、充分に説明されない座標を有すると、計算システム1100が判定する例を描写する。これら説明なしの座標(説明なしの点とも呼ぶ)は、物体構造モデルの中の座標または点の総数のうち約11%を形成してもよく、更新された感知された構造情報9720の中に対応する座標を伴い、約3.05mmの平均距離を有してもよい。図15Aでは、計算システム1100は、物体認識テンプレート9128Bに関連付けられたエラー値を、図15Aの中の平均距離もしくは説明なしの点の数に等しい、または基づくと判定してもよい。
【0110】
図15Bおよび15Cに示すように、計算システム1100は、物体認識テンプレート9128Bに関連付けられたエラー値、および物体認識テンプレート9128Bに関連付けられたエラー値を決定してもよい。図15Bの例では、計算システム1100は、物体認識テンプレート9128Bの物体構造モデルが、更新された感知された構造情報9720によって充分に説明されない座標を有する、一部分14032~14032を有すると判定しうる。具体的な例として、これら説明なしの座標は、物体認識テンプレート9128Bの物体構造モデルの中の座標の総数のうち約13%を形成してもよく、更新された感知された構造情報9720の中の対応する座標から、約3.85mmの平均距離を有してもよい。図15Cの例では、計算システム1100は、物体認識テンプレート9128Bの物体構造モデルが、更新された感知された構造情報9720によって充分に説明されない座標を含む、一部分14033を有すると判定しうる。一部分14033の中のこれら説明なしの座標は、物体構造モデルの中の座標の総数のうち約0.09%を形成してもよく、更新された感知された構造情報9720の中に対応する座標を伴い、約1.31mmの平均距離を有してもよい。
【0111】
上述のように、計算システムは実施形態で、図12A、12B、または13Bの候補セットなど、モデル-配向候補セットの中のそれぞれのモデル-配向の組み合わせに関連付けられたエラー値のセットを決定してもよい。さらに上で論じたように、候補セットの各モデル-配向の組み合わせは、物体構造モデルと物体構造モデルの配向との組み合わせであってもよい。この例では、エラー値のセットの各エラー値は、物体構造モデルが、それぞれのモデル-配向の組み合わせに関連付けられた配向を有するとき、(i)更新された感知された構造情報(例えば、9720)と、(ii)エラー値に関連付けられたそれぞれのモデル-配向の組み合わせの物体構造モデルとのそれぞれの乖離度を示しうる。例えば、図15A~15Cは、三つのそれぞれのモデル-配向の組み合わせ、すなわち、モデル-配向の組み合わせA(図15Aに描写するように)、モデル-配向の組み合わせD(図15Bに描写するように)、およびモデル-配向の組み合わせF(図15Cに描写するように)に関連付けられる三つのエラー値を、計算システム1100が決定することを示す。図16はさらに、モデル-配向の組み合わせEに関連付けられたエラー値を、計算システム1100が決定することを示す。図16の例では、計算システム1100は、物体認識テンプレート9128Bの物体構造モデルが、モデル-配向の組み合わせEの配向(配向2)を有するとき、物体構造モデルが、更新された感知された構造情報9720によって充分に説明されない座標を含む、一部分15033~15033を有すると判定しうる。さらに、図15Cのエラー値は、物体構造モデルが、モデル-配向の組み合わせFの配向である配向1を有するとき、更新された感知された構造情報9720と、物体認識テンプレート9128Bの物体構造モデルとの乖離度を示してもよく、一方図16のエラー値は、物体構造モデルが、モデル-配向の組み合わせEに関連付けられた配向である配向2を有するとき、更新された感知された構造情報9720と、同じ物体構造モデルとの乖離度を示しうる。
【0112】
実施形態では、計算システム1100は、更新された感知された構造情報に基づいて上で論じたエラー値のセットを決定することによって、かつエラー値のセットに基づいて、物体認識テンプレートおよび/またはモデル-配向の組み合わせを選択することによって、物体タイプを決定するように構成されてもよく、選択された物体認識テンプレートおよび/またはモデル-配向の組み合わせの物体構造モデルは、物体タイプに関連付けられる。一例では、計算システム1100が、テンプレート候補セット(例えば、9128Bから9128B)の中から、物体認識テンプレート(例えば、9128B)を選択してもよい。選択された物体認識テンプレートが、エラー値のセットの中で最も低いエラー値を有してもよい。例えば、エラー値のセットが、図15A~15Cの物体認識テンプレート9128Bから9128Bに関連付けられた、11.35%、12.97%、および0.09%のパーセント値を含む場合、計算システム1100は、パーセント値のセットの中で最低のパーセント値、すなわち0.09%に関連付けられた、物体認識テンプレート9128Bを選択しうる。
【0113】
一例では、計算システム1100は、図12Aもしくは12B、または13Bの候補セットなど、モデル-配向候補セットからモデル-配向の組み合わせを選択しうる。例えば、候補セットが、図15A~15Cおよび16に示す、少なくともモデル-配向の組み合わせA、D、F、およびEを含む場合、エラー値のセットは一例で、それらの図中に11.35%、12.97%、0.09%、および3.74%のパーセント値のセットを含みうる。この例では、計算システム1100は、エラー値のセットの中で最も低いパーセント値に関連付けられる、モデル-配向の組み合わせFを選択するように構成されてもよい。上述のように、選択された物体認識テンプレートおよび/または選択されたモデル-配向の組み合わせは、カメラ視野(例えば、3202)の中にある物体(例えば、3722)の物体タイプに関連付けられうる。したがって、計算システム1100は実施形態で、物体認識テンプレートまたはモデル-配向の組み合わせを選択することによって、ステップ4014で、物体(例えば、3722)に関連付けられた物体タイプを決定してもよい。
【0114】
図4に戻ると、方法4000は実施形態で、計算システム1100が、ステップ4014で決定された物体タイプに基づいて、一つ以上のロボット相互作用位置を(例えば、ロボット相互作用計画作成モジュール1122によって)決定しうる、ステップ4016を含みうる。上述のように、物体タイプは、物体のタイプまたはクラスについての物体デザイン、すなわちより具体的には、物体のタイプまたはクラスについての物理的設計(例えば、物理的形状)および/もしくは視覚的なデザインに関連付けられうる。こうした例では、計算システム1100は、ステップ4014で決定された物体タイプに関連付けられた物理的設計に基づいて、一つ以上のロボット相互作用位置を決定しうる。例として、物体(例えば、3722)は、容器であってもよく、一つ以上のロボット相互作用位置は、容器がロボット(例えば、3300)によって、すなわちより具体的には、エンドエフェクタ装置(例えば、3500)によって握られ、拾い上げられ、またはそうでなければ係合されるべき、複数のグリップ位置であってもよい。こうした例で、複数のグリップ位置は、物体タイプに関連付けられた物理的設計(例えば、物理的形状)に基づいて決定されうる。
【0115】
実施形態では、一つ以上のロボット相互作用位置が、図15Cの物体認識テンプレート9128Bおよび/またはモデル-配向の組み合わせFなど、上で論じた、選択された物体認識テンプレートに基づいて、および/または選択されたモデル-配向の組み合わせに基づいて決定されうる。より具体的には、一つ以上のロボット相互作用位置が、物体認識テンプレートおよび/またはモデル-配向の組み合わせに含まれる、物体構造モデルに基づいて決定されうる。
【0116】
実施形態では、物体構造モデルが既に、一つ以上のロボットグリップ位置を含んでも、またはそうでなければ識別してもよい。例えば、図17Aは、ロボットグリップ位置16129および16129を識別する、物体構造モデルを有する物体認識テンプレート16128を示す。この例では、物体構造モデルが、容器タイプに関連付けられた物理構造を記述しうる、容器構造モデルであってもよい。より具体的には、図17Aの容器構造モデルは、容器縁である物理的特徴16128を有する、容器のタイプまたはクラスに関連付けられてもよい。言い換えれば、容器構造モデルが容器の縁構造を記述しうる。この例では、ロボットグリップ位置16129および16129が、容器の縁構造に沿った位置であってもよい。図17Aの容器構造モデルはさらに、それぞれ第一の隆起または他の突出部、第二の隆起または他の突起部、およびコーナーであってもよい、他の物理的特徴16128、16128、および16128を記述しうる。
【0117】
実施形態では、選択された物体認識テンプレートまたは選択されたモデル-配向の組み合わせの物体構造モデルによって、ロボットの握りに干渉する場合がある、物理的特徴を有しうる領域を識別してもよい。例えば、図17Bは、物体認識テンプレート16128の物体構造モデルによって、図17Aの第一の隆起(16128)周辺の空間を表す、第一の領域16130を識別し、第二の隆起(16128)周辺の空間を表す、第二の領域16130を識別する例を示す。この例では、グリッパフィンガーを縁周辺で固定できるように、物体認識テンプレート16128によって表される容器を握ることが、エンドエフェクタ装置(例えば、3500)のグリッパフィンガーを、容器の縁に向かって移動することを伴う場合、第一の隆起および第二の隆起は、内方向からグリッパフィンガーを遮断しうるため、その移動に干渉しうる。したがって、握る位置が第一の隆起または第二の隆起の近くにある場合、グリッパフィンガーは、それらの位置で握ることを実現できない場合があり、またはそれらの位置で実現できるのが浅い握りのみである場合がある。したがって、図17Bの容器構造モデルによって、計算システム1100が、領域16130、16130の中に握り位置を決定するのを回避しうるように、第一の隆起および第二の隆起を囲む、第一の領域16130および第二の領域16130を識別してもよい。
【0118】
こうしたシナリオでは、計算システム1100は、物体認識テンプレート16128によって記述される容器の縁構造など、容器の縁構造に基づいて、複数のグリップ位置(握り位置とも呼ぶ)を決定しうる。一部の実施では、この決定には、容器縁に沿った異なる位置での、張り出し距離の判定を伴ってもよく、ある特定の位置での大きな張り出し距離は、深いまたは安定したグリップが、その位置で達成可能である可能性を示しうる一方、ある特定の位置での小さな張り出し距離は、その位置では浅いグリップのみが可能である可能性を示しうる。より詳細には、計算システム1100は、図17Aおよび17Bの容器縁16128についての縁構造など、容器の縁構造に沿う複数のそれぞれの位置に関連付けられた、複数の張り出し距離を判定してもよい。この例では、複数の張り出し距離の各張り出し距離は、ロボットアーム(例えば、3400)、すなわちより具体的には、エンドエフェクタ装置(例えば、3500)またはそのグリッパフィンガーが、容器構造に向かって内方向に、容器の縁構造の下に延在できる分の距離であってもよい。例えば、ある特定の位置に関連付けられ、縁構造に沿った張り出し距離は、グリッパフィンガーが縁構造に沿ったその位置にある場合に、エンドエフェクタ装置の下部グリッパフィンガーが、容器に向かって内方向に延在できる距離を示しうる。一部の実例では、張り出し距離の決定は、計算システム1100が、エンドエフェクタ装置(例えば、3500)またはその一部分を、縁構造に沿って異なる位置へ摺動させるロボットアーム(例えば、3400)の模擬実験をする、シミュレーションの一部であってもよい。この実施形態では、計算システムが、複数の張り出し距離に基づいて、容器の縁構造に沿う複数のそれぞれの位置の中から、複数のグリップ位置を選択してもよい。例えば、複数のグリップ位置は、最大張り出し距離を有する位置、またはより広くは、最高張り出し距離の一部であってもよい。一部のシナリオでは、縁構造に沿うある特定の位置に対する、より高い張り出し距離は、縁構造のより幅のある部分を、その位置でエンドエフェクタ装置(例えば、3500)によって係合できることを示してもよく、これによって、その位置でのより深いまたはより安定したグリップを促進しうる。
【0119】
実施形態では、計算システム1100は、カメラ視野(例えば、3202)の中にある物体(例えば、3722)が、容器蓋を有するかを判定してもよく、物体が容器蓋を有するかに基づいて、一つ以上のロボット相互作用位置(例えば、グリップ位置)を決定してもよい。例えば、計算システム1100は、ステップ4002の第一の画像情報、ステップ4010の第二の画像情報、および/または更新された感知された構造情報が、容器蓋の存在を示すかを判定しうる。計算システム1100は、それに基づく複数のグリップ位置によって、容器蓋の存在を検出すると決定してもよい。
【0120】
実施形態では、選択された物体認識テンプレートが、少なくとも容器蓋構造を記述する容器構造モデルを含みうる場合、計算システム1100は、容器蓋構造に基づいて、複数のグリップ位置を決定しうる。例えば、図17Cは、蓋17128の存在を識別する、容器構造モデルを含みうる、物体認識テンプレート17128を示す。この例の容器構造モデルはさらに、間隙17128および17128などの容器蓋構造の中にある、グリップ位置による握りに干渉しうる特徴が、間隙17128および17128の近くにあると識別しうる。したがって、計算システム1100は実施形態で、物体認識テンプレート17128を使用して、間隙17128および17128の近くにグリップ位置を決定するのを回避しうる。図17Dは、蓋構造の間隙17128および17128が、領域16130および16130によって表されうる例を提供する。より具体的には、領域16130および16130が、間隙17128および17128を包含しうる。この例では、計算システム1100は、グリップ位置が領域16130および16130内にないように、グリップ位置を決定してもよい。
【0121】
実施形態では、選択された物体認識テンプレートまたはモデル-配向の組み合わせが、回転対称である、すなわちより具体的には、4回回転対称性を有する容器構造を、物体構造モデルが表すことを含む場合、計算システム1100は、対称性を使用して、複数のグリップ位置の決定を単純化しうる。例えば、計算システムは、物体構造モデルに基づいて第一のグリップ位置を決定しうる。容器構造が回転対称であるため、計算システム1100は、第一のグリップ位置に基づいて第二のグリップ位置を決定しうる。例えば、計算システム1100は、第一のグリップ位置が、容器構造のコーナーから第一の距離を有すると判定してもよく、第一のグリップ位置は、容器構造の第一の側部上にある。この例の計算システム1100は、第二のグリップ位置を、容器構造の第二の側部上にあり、容器構造のコーナーから同じ距離を有する位置として決定しうる。上の例では、容器構造の4回回転対称性または他の回転対称性は、容器構造の中心を通る垂直回転軸に対する回転対称性を指してもよく、垂直回転軸は、床または地面に垂直な軸であってもよい。
【0122】
実施形態では、図4の方法4000はさらに、計算システム1000によって、上で論じたグリップ位置または他のロボット相互作用位置に基づきうる、一つ以上のロボットの相互作用を引き起こすステップを含んでもよい。例えば、計算システム1100が、一つ以上のロボット相互作用位置で相互作用を引き起こす、一つ以上のロボット相互作用動作コマンドを出力してもよく、一つ以上のロボット相互作用動作コマンドが、一つ以上のロボット相互作用位置に基づいて生成されうる。
【0123】
実施形態では、回転対称である、すなわちより具体的には、4回回転対称性を有する物体構造は、物体登録がどのように行われるかに影響を与えうる。物体登録は、例えば、既存の物体認識テンプレートと全く合致しない、物体または物体構造についての新しい物体認識テンプレートの生成を伴いうる。例えば、計算システム1100は、追加の物体(例えば、新しい容器)が、非一時的コンピュータ可読媒体1120または1600上に記憶された、既存の物体認識テンプレートと全く合致しない場合、追加の物体がカメラ視野の中にあるときに、物体登録を行ってもよい。物体登録は、追加の物体の画像情報に基づいて、追加物体認識テンプレートの生成を伴いうる。追加の物体が回転対称の物体構造を有する場合、計算システム1100は、追加の物体についての物体構造の一つのコーナーに基づいて、追加の物体についての物体構造の残りのコーナーに基づくことなく、追加物体認識テンプレートを生成しうる。より具体的には、追加の物体の物体構造が、回転対称である、すなわちより具体的には、4回回転対称性を有する場合、物体構造は、実質的に同じ構造を有するコーナー、および/または実質的に同じ構造を有する側部を有してもよい。したがって、計算システム1100は、物体構造の一つのコーナーおよび一つの側部を直接記述する、物体認識テンプレートを決定してもよいものの、その一つのコーナーおよび一つの側部が、追加物体認識テンプレートによって記述される、コーナーまたは側部と実質的に同じ構造を有しうるため、追加物体認識テンプレートがさらに、物体構造の残りのコーナーまたは側部を直接記述する必要がない場合がある。
【0124】
様々な実施形態に関する追加の考察:
【0125】
実施形態1は、計算システムが、非一時的コンピュータ可読媒体上の命令を実行するときなど、物体検出を行うための計算システム、または計算システムによって行われうる方法に関する。この実施形態では、計算システムは、通信インターフェースおよび少なくとも一つの処理回路を備える。通信インターフェースは、(i)ロボットアームと、ロボットアームの一端に配置されるか、または一端を形成するエンドエフェクタ装置とを有するロボット、および(ii)ロボットアーム上に取り付けられてカメラ視野を有するカメラ、と通信するように構成される。少なくとも一つの処理回路は、物体がカメラ視野の中にあるとき、以下のこと、すなわち、物体に関連付けられた物体構造の少なくとも第一の部分を表す第一の画像情報を受信することであって、第一の画像情報は、カメラが物体構造の第一の部分に向く第一のカメラ姿勢にカメラがあるとき、カメラによって生成されることと、第一の画像情報に基づいて、物体に関連付けられた物体構造を表す、感知された構造情報を生成または更新することと、感知された構造情報に基づいて、物体構造に関連付けられた物体コーナーを識別することと、ロボットによって実行されるとき、ロボットアームに、カメラが物体コーナーに向く第二のカメラ姿勢に、カメラを移動させる、一つ以上のカメラ配置動作コマンドを出力することと、物体構造を表す第二の画像情報を受信することであって、第二の画像情報は、カメラが第二のカメラ姿勢にある間に、カメラによって生成されることと、第二の画像情報に基づいて、感知された構造情報を更新して、更新された感知された構造情報を生成することと、更新された感知された構造情報に基づいて、物体に関連付けられた物体タイプを決定することと、物体タイプに基づいて、一つ以上のロボット相互作用位置を決定することであって、一つ以上のロボット相互作用位置は、エンドエフェクタ装置と物体との間の相互作用のための一つ以上の位置であることと、一つ以上のロボット相互作用位置で相互作用を引き起こす一つ以上のロボット相互作用動作コマンドを出力することであって、一つ以上のロボット相互作用動作コマンドは、一つ以上のロボット相互作用位置に基づいて生成されることと、を行うように構成される。一部の実例では、計算システムは、一つ以上のロボット相互作用移動コマンド(別の計算システムによって行われうる)の出力を省略しうる。
【0126】
実施形態2は、実施形態1の計算システムを含む。この実施形態では、少なくとも一つの処理回路は、更新された感知された構造情報とテンプレート候補セットとの比較を行うことであって、テンプレート候補セットが、異なる物体タイプに関連付けられた物体構造を記述する物体認識テンプレートを含むセットであることと、比較に基づいて、テンプレート候補セットから物体認識テンプレートを選択して、物体認識テンプレートが選択された物体認識テンプレートとなることであって、選択された物体認識テンプレートが、物体に関連付けられた物体タイプを表すことと、によって物体タイプを決定するように構成される。この実施形態では、少なくとも一つの処理回路は、選択された物体認識テンプレートに関連付けられた物体構造の記述に基づいて、一つ以上のロボット相互作用位置を決定するように構成される。
【0127】
実施形態3は、実施形態2の計算システムを含む。この実施形態では、少なくとも一つの処理回路は、テンプレート候補セットの中の物体認識テンプレートに関連付けられたエラー値のセットを算出することによって、更新された感知された構造情報とテンプレート候補セットとの比較を行うように構成され、エラー値のセットの各エラー値は、(i)更新された感知された構造情報と、(ii)エラー値に関連付けられた物体認識テンプレートに含まれる物体構造の記述と、のそれぞれの乖離度を示し、選択された物体認識テンプレートは、エラー値のセットの中で最も低いエラー値に関連付けられる。
【0128】
実施形態4は、実施形態3の計算システムを含む。この実施形態では、更新された感知された構造情報は、物体に関連付けられた物体構造を表すための、複数の座標を含む点群であり、少なくとも一つの処理回路は、テンプレート候補セットの各物体認識テンプレートに対して、点群の複数の座標からの座標が、物体認識テンプレートに含まれるそれぞれの物体構造の記述によって記述される一つ以上の物理的特徴にどのくらい厳密に合致するかに基づいて、少なくとも一つのエラー値を計算するように構成される。
【0129】
実施形態5は、実施形態3または4の計算システムを含む。この実施形態では、テンプレート候補セットの中の物体認識テンプレートは、それぞれ物体構造モデルのセットを記述する。さらにこの実施形態では、テンプレート候補セットは、モデル-配向の組み合わせを含むセットであるモデル-配向候補セットであり、モデル-配向候補セットの各モデル-配向の組み合わせは、(i)物体構造モデルのセットのうちの一つである物体構造モデルと、(ii)物体構造モデルの配向との組み合わせである。さらにこの実施形態では、エラー値のセットは、モデル-配向候補セットのモデル-配向の組み合わせにそれぞれ関連付けられ、エラー値のセットの各エラー値は、(i)更新された感知された構造情報と、(ii)エラー値に関連付けられたそれぞれのモデル-配向の組み合わせの物体構造モデルと、のそれぞれの乖離度を示し、エラー値は、さらに、それぞれのモデル-配向の組み合わせの配向を有する物体構造モデルに関連付けられる。
【0130】
実施形態6は、実施形態5の計算システムを含む。この実施形態では、少なくとも一つの処理回路は、モデル-配向候補セットから、選択された物体認識テンプレートによって記述される物体構造モデルを含むモデル-配向の組み合わせを選択することによって、物体認識テンプレートを選択するように構成され、選択されるモデル-配向の組み合わせは、エラー値のセットの中で最も低いエラー値に関連付けられ、少なくとも一つの処理回路は、選択されるモデル-配向の組み合わせの物体構造モデルに基づいて、かつ選択されるモデル-配向の組み合わせの配向に基づいて、一つ以上のロボット相互作用位置を決定するように構成される。
【0131】
実施形態7は、実施形態6の計算システムを含む。この実施形態では、更新された感知された構造情報は、カメラ視野の中にある物体について、物体の構造によって占有される推定領域を画定し、少なくとも一つの処理回路は、モデル-配向候補セットに関連付けられたエラー値のセットを算出する前に、モデル-配向候補セットの中の各モデル-配向の組み合わせに対して、以下のこと、すなわち、物体構造モデルがモデル-配向の組み合わせの配向を有するときに、モデル-配向の組み合わせの物体構造モデルが実質的に推定領域内に収まるかを判定することと、物体構造モデルがモデル-配向の組み合わせの配向を有するときに、物体構造モデルが実質的に推定領域内に収まらないという判定に応答して、モデル-配向候補セットからモデル-配向の組み合わせを除去することと、を行うことによって、モデル-配向候補セットをフィルタリングするように構成される。モデル-配向候補セットがフィルタリングされた後、エラー値のセットは、モデル-配向候補セットに残るモデル-配向の組み合わせに基づいて算出される。
【0132】
実施形態8は、実施形態3~7のうちのいずれか一つの計算システムを含む。この実施形態では、更新された感知された構造情報は、物体構造によって占有される推定領域を画定し、テンプレート候補セットの中の物体認識テンプレートは、それぞれ物体構造モデルのセットを記述する。この実施形態では、少なくとも一つの処理回路は、テンプレート候補セットの中の物体認識テンプレートに関連付けられたエラー値のセットを算出する前に、実質的に推定領域内に収まらない一つ以上のそれぞれの物体構造モデルを含む一つ以上の物体認識テンプレートを識別することと、一つ以上の物体認識テンプレートをテンプレート候補セットから除去することと、を行うことによって、テンプレート候補セットをフィルタリングするように構成される。テンプレート候補セットがフィルタリングされた後、エラー値のセットは、テンプレート候補セットに残る物体認識テンプレートに基づいて算出される。
【0133】
実施形態9は、実施形態2~8のうちのいずれか一つの計算システムを含む。この実施形態では、少なくとも一つの処理回路は、テンプレート候補セットの少なくとも一つの物体認識テンプレートに対して、更新された感知された構造情報に基づいて、物体認識テンプレートに含まれるそれぞれの物体構造の記述を調整するように構成される。
【0134】
実施形態10は、実施形態9の計算システムを含む。この実施形態では、少なくとも一つの物体認識テンプレートのそれぞれの物体構造の記述は、少なくとも一つの物体認識テンプレートによって記述されるそれぞれの物体構造の物理的特徴を記述し、それぞれの物体構造の記述は、さらに、物理的特徴の姿勢を記述する姿勢情報を含む。少なくとも一つの物体認識テンプレートによって記述される物理的特徴が、更新された感知された構造情報に合致する度合いを増加させるように、少なくとも一つの処理回路は、更新された感知された構造情報に基づいて、姿勢情報を調整するように構成される。
【0135】
実施形態11は、実施形態1~10のうちのいずれか一つの計算システムを含む。この実施形態では、物体が容器であるとき、および物体構造が容器構造であるとき、少なくとも一つの処理回路は、一つ以上のロボット相互作用位置を、容器を握ることに関連付けられた複数のグリップ位置として決定するように構成され、複数のグリップ位置は、容器に関連付けられた容器タイプである物体タイプに基づいて決定される。
【0136】
実施形態12は、実施形態11の計算システムを含む。この実施形態では、容器構造が、容器構造の側部表面から突出する複数の隆起を含むとき、少なくとも一つの処理回路は、第二の画像情報または更新された感知された構造情報に基づいて、複数の隆起を検出するように構成され、複数の隆起は、容器構造の側部表面上に検出された隆起であり、容器に関連付けられた容器タイプは、容器構造の側部表面上に検出された隆起に基づいて決定される。
【0137】
実施形態13は、実施形態11または12の計算システムを含む。この実施形態では、少なくとも一つの処理回路は、更新された感知された構造情報とテンプレート候補セットとの比較を行うことであって、テンプレート候補セットが、異なる容器タイプに関連付けられた容器構造を記述する物体認識テンプレートを含むセットであることと、物体認識テンプレートが選択された物体認識テンプレートであるように、比較に基づいて、テンプレート候補セットから物体認識テンプレートを選択することであって、選択された物体認識テンプレートが、容器に関連付けられた容器タイプを表すことと、によって容器タイプを決定するように構成される。選択された物体認識テンプレートが、少なくとも容器の縁構造を記述する容器構造モデルを含むときに、少なくとも一つの処理回路は、さらに、容器の縁構造に基づいて複数のグリップ位置を決定するように構成される。
【0138】
実施形態14は、実施形態11~13のうちのいずれか一つの計算システムを含む。この実施形態では、少なくとも一つの処理回路は、容器の縁構造に沿う複数のそれぞれの位置に関連付けられた、複数の張り出し距離を決定するように構成され、複数の張り出し距離の各張り出し距離は、エンドエフェクタ装置が複数の位置のそれぞれの位置に存在する場合、エンドエフェクタ装置が容器の縁構造の下を容器構造に向かって内方向に延在できる距離であり、少なくとも一つの処理回路は、複数の張り出した距離に基づいて、容器の縁構造に沿う複数のそれぞれの位置の中から、複数のグリップ位置を選択するように構成される。
【0139】
実施形態15は、実施形態11~14のうちのいずれか一つの計算システムを含む。この実施形態では、少なくとも一つの処理回路は、第一の画像情報または第二の画像情報が、容器蓋の存在を示すかを判定するように構成され、複数のグリップ位置は、第一の画像情報または第二の画像情報が、容器蓋の存在を示すかにさらに基づいて、決定される。
【0140】
実施形態16は、実施形態15の計算システムを含む。この実施形態では、選択された物体認識テンプレートが少なくとも容器蓋構造を記述する容器構造モデルを含むときに、少なくとも一つの処理回路は、容器蓋構造に基づいて複数のグリップ位置を決定するように構成される。
【0141】
実施形態17は、実施形態1~16のうちのいずれか一つの計算システムを含む。この実施形態では、追加の物体がカメラ視野の中にあり、かつ、追加の物体が回転対称であるときに、少なくとも一つの処理回路は、追加の物体について物体構造を表す追加画像情報を受信することと、追加画像情報に基づいて、物体認識テンプレートのセットに対する追加物体認識テンプレートを生成することと、を行う。追加物体認識テンプレートは、追加の物体についての物体構造の一つのコーナーに基づいて、追加の物体についての物体構造の残りのコーナーに基づくことなく生成される。
【0142】
実施形態18は、実施形態1~17のうちのいずれか一つの計算システムを含み、第一の画像情報は、物体からの第一の距離を有するカメラに関連付けられ、第二の画像情報は、第一の距離よりも小さい、物体からの第二の距離を有するカメラに関連付けられる。
【0143】
実施形態19は、実施形態1~18のうちのいずれか一つの計算システムを含み、第一の画像情報に基づく感知された構造情報が物体構造について複数の物体コーナーを記述し、少なくとも一つの処理回路は、複数の物体コーナーの中から物体コーナーを選択することによって、物体コーナーを識別するように構成され、かかる選択が、(i)ロボットアームとのロボットの相互作用のための、複数の物体コーナーへのそれぞれの到達可能度、または(ii)カメラにより複数の物体コーナーを感知するための、それぞれの遮蔽レベル、のうちの少なくとも一つに基づく。
【0144】
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の適切な修正ならびに適応が、実施形態のうちのいずれの範囲から逸脱することなく成すことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なる順番で行われてもよく、追加、統合、または完全に省略してもよいことも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。したがって、添付の特許請求の範囲に定義するような、発明の精神または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼしてもよい。
図1A
図1B
図1C
図1D
図2A
図2B
図2C
図2D
図3A
図3B
図4
図5A
図5B
図5C
図6
図7
図8A
図8B
図8C
図9
図10A
図10B
図11A
図11B
図12A
図12B
図13A
図13B
図13C
図14
図15A
図15B
図15C
図16
図17A
図17B
図17C
図17D