(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-23
(45)【発行日】2025-01-31
(54)【発明の名称】カメラによって生成される画像情報に基づいて、動作計画を実行する方法および計算システム
(51)【国際特許分類】
B25J 13/08 20060101AFI20250124BHJP
【FI】
B25J13/08 A
【外国語出願】
(21)【出願番号】P 2022012853
(22)【出願日】2022-01-31
(62)【分割の表示】P 2020569197の分割
【原出願日】2020-10-29
【審査請求日】2023-10-25
(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)
【文献】特開2010-012567(JP,A)
【文献】米国特許第09102055(US,B1)
【文献】米国特許出願公開第2010/0274391(US,A1)
【文献】独国特許出願公開第102009034529(DE,A1)
【文献】中国特許出願公開第110405810(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/16-19/04
G05B 15/00-19/18
(57)【特許請求の範囲】
【請求項1】
(i)エンドエフェクタ装置を有するロボット、および(ii)前記エンドエフェクタ装置上に取り付けられ、カメラ視野を有するカメラと通信するように構成される、通信インターフェースと、
少なくとも一つの処理回路と、を備え、
前記少なくとも一つの処理回路は、物体が前記カメラ視野の中にある、またはあったとき、
前記物体のコーナーの位置を推定することと、
前記カメラを前記物体の前記コーナーと物体構造の外表面の少なくとも一部分に向けるカメラ配向に対応するカメラ姿勢に前記カメラを移動させるコマンドを生成することと、
前記物体構造を表す画像情報を受信することであって、前記カメラが前記カメラ姿勢にある間に、前記画像情報が前記カメラによって生成されることと、
前記画像情報に基づいて、前記物体構造の推定を決定することと、
前記物体構造の前記推定に基づいて、動作計画を生成することであって、前記動作計画が、前記ロボットと前記物体との間のロボット相互作用を引き起こすためであることと、
を行うように構成される、計算システム。
【請求項2】
前記少なくとも
一つの処理回路はさらに、
前記物体に関連付けられた物体構造の第一の推定を決定することと、
前記画像情報に基づいて、前記物体構造の第二の推定を決定することと、
前記物体構造の少なくとも前記第二の推定に基づいて、前記動作計画を生成することと、を行うように構成されており、
前記物体の前記コーナーは、前記物体構造の前記第一の推定に基づいて推定され、
前記物体構造についての前記第一の推定が、少なくとも前記物体構造の第一の物体寸法に対する推定値、および前記物体構造の第二の物体寸法に対する推定値を含み、
前記物体構造についての前記第二の推定が、前記物体構造の第三の物体寸法に対する推定値を少なくとも含む、請求項1に記載の計算システム。
【請求項3】
前記第一の物体寸法が物体長さであり、前記第二の物体寸法が物体幅であり、前記第三の物体寸法が物体高さである、請求項2に記載の計算システム。
【請求項4】
前記物体構造についての前記第二の推定が、前記第一の物体寸法に対する更新された推定値、および前記第二の物体寸法に対する更新された推定値を含む、請求項2に記載の計算システム。
【請求項5】
前記物体構造についての前記第二の推定が、前記物体構造に対する推定形状を含む、請求項2に記載の計算システム。
【請求項6】
前記物体構造についての前記第二の推定が、前記物体構造の前記外表面上の位置を識別する、更新された点群を含む、請求項2に記載の計算システム。
【請求項7】
前記少なくとも一つの処理回路は、
前記画像情報に基づいて、前記物体に対応する物体タイプを決定することと、
前記物体タイプに関連付けられた、定義された物体構造の記述を判定することであって、前記定義された物体構造の記述が、前記物体タイプに関連付けられた構造を記述することと、
前記定義された物体構造の記述に基づいて、前記物体構造の前記第二の推定を決定することと、
によって前記物体構造の前記第二の推定を決定するように構成される、請求項2に記載の計算システム。
【請求項8】
前記少なくとも一つの処理回路は、前記画像情報と、一つ以上のそれぞれの物体構造の記述を含む、一つ以上のテンプレートとを比較することによって、前記物体タイプを決定するように構成される、請求項7に記載の計算システム。
【請求項9】
前記動作計画は、
前記エンドエフェクタ装置が追尾するとき、
前記エンドエフェクタ装置を、前記物体に接近させ、前記物体に係合させ、前記物体を目的位置に移動させる軌道を含む、請求項2に記載の計算システム。
【請求項10】
前記動作計画は、更新された動作計画であり、
前記少なくとも一つの処理回路は、
前記物体構造の前記第一の推定に基づいて、初期動作計画を生成することと、
前記初期動作計画に基づいて、かつ前記物体構造の前記第二の推定に基づいて、前記更新された動作計画を生成することと、を行うように構成される、請求項9に記載の計算システム。
【請求項11】
前記物体構造の前記第二の推定は、物体高さに対する推定値を含み、
前記少なくとも一つの処理回路は、
前記物体高さに対する前記推定値に基づいて、前記目的位置に対して最終エンドエフェクタ高さを決定することと、
前記最終エンドエフェクタ高さに基づいて、前記軌道の終点を決定することと、を行うように構成される、請求項9に記載の計算システム。
【請求項12】
前記エンドエフェクタ装置が、少なくとも第一のグリッパ部材、第二のグリッパ部材、および第三のグリッパ部材を含むとき、
前記少なくとも一つの処理回路は、
前記第一のグリッパ部材に、前記物体構造の第一のエッジまたは第二のエッジのうちの一つを係合させ、
前記第二のグリッパ部材に、前記物体構造の前記第一のエッジまたは第二のエッジのうちの別の一つを係合させ、
前記第三のグリッパ部材に、前記カメラ姿勢に関連付けられた前記コーナーを係合させるか、または前記物体構造の別のコーナーを係合させる、
動作を決定することによって、前記動作計画を生成するように構成される、請求項1に記載の計算システム。
【請求項13】
前記物体構造の前記第一の推定が、複数のコーナーを記述するとき、前記少なくとも一つの処理回路は、前記複数のコーナーの中より前記コーナーを選択するように構成され、前記選択は、(i)前記複数のコーナーが経験するそれぞれの遮蔽量、または(ii)前記エンドエフェクタ装置による前記複数のコーナーへのそれぞれの到達可能度のうちの少なくとも一つに基づく、請求項2に記載の計算システム。
【請求項14】
前記物体が、複数の物体の積み重ねの中にある第一の物体であり、前記動作計画が、前記第一の物体を前記複数の物体の積み重ねから除去する第一の動作計画であるとき、
前記少なくとも一つの処理回路は、
前記画像情報に基づいて、積み重ね構造の推定を決定することであって、前記積み重ね構造の前記推定が、前記第一の物体を除去する前の前記複数の物体の積み重ねを表すためであることと、
前記物体構造の前記第二の推定に基づいて、前記積み重ね構造の更新された推定を決定することであって、前記積み重ね構造の前記更新された推定が、前記第一の物体を除去した後の前記複数の物体の積み重ねを表すためであることと、
前記積み重ね構造の前記更新された推定に基づいて、第二の動作計画を生成することであって、前記第二の動作計画が、前記複数の物体の積み重ねの第二の物体とのロボット相互作用を引き起こすためであることと、を行うように構成される、請求項2に記載の計算システム。
【請求項15】
前記少なくとも一つの処理回路は、
前記積み重ね構造の前記更新された推定に基づいて、前記第一の物体の除去によって露出する、前記積み重ね構造の新しいコーナーを決定することであって、前記新しいコーナーが、前記第二の物体に関連付けられていることと、
前記カメラを前記新しいコーナーに向ける、追加のカメラ姿勢を決定することと、
前記カメラが前記追加のカメラ姿勢を有する間に、前記カメラによって生成される、追加の画像情報を受信することであって、前記第二の動作計画が、前記追加の画像情報に基づいて生成されることと、
によって、前記第二の動作計画を生成するように構成される、請求項14に記載の計算システム。
【請求項16】
前記積み重ね構造についての前記推定は、前記複数の物体の積み重ね上の位置を記述する点群を含み、
前記少なくとも一つの処理回路は、前記物体構造にも属する前記複数の物体の積み重ね上の位置を除去するように、前記点群を更新することによって、前記積み重ね構造の前記更新された推定を決定するように構成され、前記物体構造にも属する前記複数の物体の積み重ね上の位置が、前記物体構造の前記第二の推定によって識別される、請求項14に記載の計算システム。
【請求項17】
(i)エンドエフェクタ装置を有するロボット、および(ii)前記エンドエフェクタ装置上に取り付けられ、カメラ視野を有するカメラと通信するように構成された計算システムの少なくとも一つの処理回路によって実行されるとき、前記少なくとも一つの処理回路に、
物体のコーナーの位置を推定することと、
前記カメラを前記物体の前記コーナーと物体構造の外表面の少なくとも一部分に向けるカメラ配向に対応するカメラ姿勢に前記カメラを移動させるコマンドを生成することと、
前記物体構造を表す画像情報を受信することであって、前記カメラが前記カメラ姿勢にある間に、前記画像情報が前記カメラによって生成されることと、
前記画像情報に基づいて、前記物体構造の推定を決定することと、
前記物体構造の前記推定に基づいて、動作計画を生成することであって、前記動作計画が、前記ロボットと前記物体との間にロボット相互作用を引き起こすためであることと、
を行わせる命令を有する、非一時的コンピュータ可読媒体。
【請求項18】
前記少なくとも
一つの処理回路はさらに、
前記物体に関連付けられた物体構造の第一の推定を決定することと、
前記画像情報に基づいて、前記物体構造の第二の推定を決定することと、
前記物体構造の少なくとも前記第二の推定に基づいて、前記動作計画を生成することと、を行うように構成されており、
前記物体の前記コーナーは、前記物体構造の前記第一の推定に基づいて推定され、
前記物体構造についての前記第一の推定は、少なくとも前記物体構造の第一の物体寸法に対する推定値、および前記物体構造の第二の物体寸法に対する推定値を含み、
前記物体構造についての前記第二の推定は、少なくとも前記物体構造の第三の物体寸法に対する推定値を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
(i)エンドエフェクタ装置を有するロボット、および(ii)前記エンドエフェクタ装置上に取り付けられ、カメラ視野を有するカメラと通信するように構成された計算システムによって行われる方法であって、
物体のコーナーの位置を推定することと、
前記カメラを前記物体の前記コーナーと物体構造の外表面の少なくとも一部分に向けるカメラ配向に対応するカメラ姿勢に前記カメラを移動させることと、
前記物体構造を表す画像情報を受信することであって、前記カメラが前記カメラ姿勢にある間に、前記画像情報が前記カメラによって生成されることと、
前記画像情報に基づいて、前記物体構造の推定を決定することと、
前記物体構造の前記推定に基づいて、動作計画を生成することであって、前記動作計画が、前記ロボットと前記物体との間にロボット相互作用を引き起こすためであることと、を含む方法。
【請求項20】
前記物体に関連付けられた物体構造の第一の推定を決定することと、
前記画像情報に基づいて、前記物体構造の第二の推定を決定することと、
前記物体構造の少なくとも前記第二の推定に基づいて、前記動作計画を生成することと、をさらに含み、
前記物体の前記コーナーは、前記物体構造の前記第一の推定に基づいて推定され、
前記物体構造についての前記第一の推定は、少なくとも前記物体構造の第一の物体寸法に対する推定値、および前記物体構造の第二の物体寸法に対する推定値を含み、
前記物体構造についての前記第二の推定は、少なくとも前記物体構造の第三の物体寸法に対する推定値を含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【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】
【
図4A】本明細書の実施形態と一致する、様々なエンドエフェクタ装置を示す。
【
図4B】本明細書の実施形態と一致する、様々なエンドエフェクタ装置を示す。
【
図4C】本明細書の実施形態と一致する、様々なエンドエフェクタ装置を示す。
【
図4D】本明細書の実施形態と一致する、様々なエンドエフェクタ装置を示す。
【0009】
【
図5】本明細書の実施形態による、動作計画を生成するための例示的な方法を示す、フロー図を示す。
【0010】
【
図6A】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【
図6B】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【
図6C】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【0011】
【
図7A】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【
図7B】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【
図7C】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【
図7D】本明細書の実施形態による、物体または物体の積み重ねを表す画像情報を生成する、様々な態様を示す。
【0012】
【
図8A】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8B】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8C】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8D】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8E】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8F】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8G】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8H】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【
図8I】本明細書の実施形態による、動作計画の様々な段階のエンドエフェクタ装置を示す。
【0013】
【
図9A】本明細書の実施形態による、物体の積み重ねを表す積み重ね構造についての推定を更新する、様々な態様を示す。
【
図9B】本明細書の実施形態による、物体の積み重ねを表す積み重ね構造についての推定を更新する、様々な態様を示す。
【
図9C】本明細書の実施形態による、物体の積み重ねを表す積み重ね構造についての推定を更新する、様々な態様を示す。
【0014】
【
図10】本明細書の実施形態による、物体を係合し、物体を目的位置に移動するように、ロボットを制御するための例示的な方法を示す、フロー図を提供する。
【発明を実施するための形態】
【0015】
本開示の一態様は、動作計画を実行するために、複数の視界または視点を表す、画像情報の複数セットを使用することに関する。動作計画は、例えば、ロボットのロボットアームの一端に配置されるエンドエフェクタ装置(例えば、ロボットのグリッパまたはロボットの手)が追尾する軌道の決定を伴いうる。軌道は、ロボットアームと、倉庫または小売空間の中の商品を保持する箱もしくは木箱などの物体との間の、ロボット相互作用の一部であってもよい。例えば、ロボット相互作用によって、ロボットアームが物体を拾い上げ、物体を所望の目的位置に移動する、操作を遂行してもよい。一部の事例では、物体は、パレット上に配置された物体の積み重ねの一部であってもよく、ロボットアームを使用して、すべての物体をパレットから別の位置に移動してもよい。
【0016】
実施形態では、複数の視点は、カメラおよび/もしくはロボットの環境を記述する、2Dまたは3D画像情報を生成するように構成される、カメラの視点を指してもよい。一部の事例では、カメラは、エンドエフェクタ装置上に取り付けられてもよく、またはそうでなければ、エンドエフェクタ装置に付着していてもよい。こうした事例では、計算システムは、エンドエフェクタ装置の移動によってカメラを移動させうる。より具体的には、計算システムは、エンドエフェクタ装置によって、カメラを異なるカメラ姿勢に移動させうる。第一のカメラ姿勢では、カメラが、例えば、物体の真上に配置されてもよく、物体の平面図を表す第一の画像情報を生成してもよい。こうした例では、第一の画像情報が、物体の頂部表面(頂面とも呼ぶ)を表しうる。一部の事例では、計算システムが、第一の画像情報を使用して、物体の構造(物体構造とも呼ぶ)の第一の推定を決定し、および/またはロボットと物体との間に相互作用を引き起こすための初期動作計画を生成しうる。
【0017】
実施形態では、計算システムが、物体の別の視界を表す第二の画像情報に基づいて、更新された動作計画を生成してもよい。より詳細には、第一の画像情報に基づいて生成される、物体構造の第一の推定または初期動作計画は、高いレベルの精度または確実性を欠く場合がある。例えば、第一の画像情報が物体の平面図を表す場合、平面図は、物体長さまたは物体幅などの物体寸法に関する一部の情報を提供しうるが、物体高さなどの物体寸法に関して情報を提供しないか、または限定された情報を提供する場合がある。したがって、動作計画を実行するために第一の画像情報のみを使用することは、信頼できない結果につながりうる。したがって、計算システムによって、物体の別の視界を表しうる第二の画像情報を、カメラに生成させてもよい。
【0018】
実施形態では、計算システムが、物体のコーナー(物体コーナーとも呼ぶ)を識別するように、第一の画像情報を使用することによって、カメラに第二の画像情報を生成させてもよい。この実施形態では、計算システムが、エンドエフェクタ装置によって、カメラを第二のカメラ姿勢に移動させる動作コマンドを出力してもよく、この姿勢でカメラが物体コーナーに向く。第二の画像情報は、カメラが第二のカメラ姿勢を有する間に、カメラによって生成されてもよい。一つのシナリオでは、第二の画像情報は、物体の一つ以上の外側側部表面(側面とも呼ぶ)が第二の画像情報によって表される、物体の斜視図を表しうる。したがって、第二の画像情報が、物体高さを推定するのに使用できる情報など、物体の構造に関する追加情報を提供しうる。一部の事例では、計算システムは、第二の画像情報(第二の画像情報のみ、または第一の画像情報と併せて)を使用して、物体構造の第二の推定を決定し、および/または更新された動作計画を決定しうる。結果として、物体構造の第二の推定および/または更新された動作計画は、第一の画像情報のみに基づいて生成される、第一の推定もしくは初期動作計画に対して、より高度の信頼性または確実性を有しうる。
【0019】
実施形態では、計算システムは、物体が除去された後の、積み重ねの構造を推定するように構成されてもよい。より詳細には、計算システムによって、物体構造の推定を使用して、積み重ね構造の推定を決定しうる。例えば、計算システムが、除去された物体構造の推定寸法を使用して、積み重ね構造の推定のうちのどの部分が、除去された物体に対応するかを判定し、積み重ね構造の推定からその部分を除去(例えば、マスクアウト(mask out))してもよい。結果として、計算システムによって、積み重ね構造の更新された推定を生成しうる。更新された推定値が、物体が除去された後の積み重ねを表してもよい。一部の事例では、計算システムによって、積み重ねの残っている物体コーナー(例えば、凸コーナー)を識別するように、積み重ね構造の更新された推定を使用してもよく、これは、積み重ねの中に残っている物体のうちの物体コーナー(例えば、凸コーナー)に対応しうる。計算システムによって、残っている物体のうちの一つに属しうる、物体コーナーのうちの一つを選択し、さらに、カメラが選択された物体コーナーを向くカメラ姿勢に、カメラを移動させてもよい。カメラは、そのカメラ姿勢にある間に画像情報を生成してもよく、画像情報が、計算システムによって使用され、その残っている物体を移動するための動作計画を生成してもよい。
【0020】
図1Aは、画像情報に基づいて動作計画を実行するためのシステム1000を示す。より詳細には、システム1000は、計算システム1100およびカメラ1200を含みうる。この例では、カメラ1200は、カメラ1200が位置する環境を描写するか、もしくはそうでなければ表し、またはより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成されうる。環境は、例えば、倉庫、製造工場、小売空間、または他のいくつかの施設であってもよい。こうした事例では、画像情報が、商品または他の品目を保持する容器(例えば、箱)など、こうした施設に位置する物体を表しうる。システム1100が、以下でより詳細に論じるように、画像情報に基づいて動作計画を実行することによってなど、画像情報を受信および処理するように構成されうる。動作計画は、例えば、ロボットと容器または他の物体との間のロボット相互作用を促進するよう、ロボットを制御するために使用されうる。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置してもよい。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信していてもよい。
【0021】
実施形態では、カメラ1200が、カメラの視野中の環境に関する空間構造情報を生成するように構成される、3Dカメラ(空間構造感知カメラまたは空間構造感知デバイスとも呼ぶ)であってもよく、および/またはカメラの視野中にある環境の視覚的外観を記述する、2D画像を生成するように構成される2Dカメラであってもよい。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の位置など、カメラ1200に対する様々な位置のそれぞれの奥行き値を記述する、奥行き情報を含んでもよい。この例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配設されているかを推定するために使用されうる。一部の実例では、空間構造情報が、カメラの視野中にある物体の一つ以上の表面上の位置を記述する、点群を含んでもよい。より具体的には、空間構造情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を記述しうる。
【0022】
実施形態では、システム1000が、カメラ1200の環境で様々な物体と相互作用するための、ロボット操作システムであってもよい。例えば、
図1Bは、
図1Aのシステム1000の実施形態でありうる、ロボット操作システム1000Aを示す。ロボット操作システム1000Aは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。実施形態では、ロボット1300は、カメラ1200の環境の中にある一つ以上の物体、例えば、箱、木箱、大型箱、または倉庫の中で商品を保持する他の容器と相互作用するために使用されうる。例えば、ロボット1300は、一つの位置から容器を拾い上げ、それらを別の位置に移動するように構成されてもよい。一部の事例では、ロボット1300を使用して、積み重ねられた容器が下ろされ、例えば、コンベヤベルトに移動される、パレットから降ろす操作、または容器がパレット上に積み重ねられて輸送の準備をする、パレットに載せる操作を行ってもよい。
【0023】
実施形態では、カメラ1200は、
図1Bに描写するように、ロボット1300の一部であるか、またはそうでなければ、ロボット1300に付着していてもよい。一部の事例では、カメラ1200は、ロボット1300の可動部分に付着していてもよく、可動部分によって、ロボット1300にカメラ1200を移動する能力を提供しうる。例えば、
図1Cは、ロボット1300が、ロボットアーム1400と、ロボットアーム1400の一端を形成するか、またはロボットアーム1400の一端に付着している、エンドエフェクタ装置1500とを含む例を描写する。エンドエフェクタ装置1500が、ロボットアーム1400の動作によって移動可能であってもよい。
図1Cの例では、カメラ1200が、エンドエフェクタ装置1500上に取り付けられてもよく、またはそうでなければ、エンドエフェクタ装置1500に付着してもいてよい。エンドエフェクタ装置1500が、ロボットの手(例えば、グリッパ装置)である場合、カメラ1200は手元カメラと呼んでもよい。カメラ1200をエンドエフェクタ装置1500に付着することで、ロボット1300は、ロボットアーム1400および/またはエンドエフェクタ装置1500の動作によって、カメラ1300を異なる姿勢(カメラ姿勢とも呼ぶ)に移動することができうる。例えば、以下でより詳細に論じるように、エンドエフェクタ装置1500は、カメラ1200の環境もしくはロボット1300の環境の中にある、物体についての情報を感知するのに最適であるか、または特に有効なカメラ姿勢に、カメラ1200を移動してもよい。別の実施形態では、
図1Dに示すように、カメラ1200がロボット1200から分離していてもよい。例えば、こうした実施形態のカメラ1200は、倉庫または他の施設の天井もしくは何らかの他の位置上に取り付けられる、固定カメラであってもよい。
【0024】
実施形態では、
図1A~1Dの計算システム1100は、ロボット操作システム1000Aの一部である、ロボット制御システム(ロボットコントローラとも呼ぶ)を形成しても、またはその一部であってもよい。ロボット制御システムは、例えば、ロボット1300に対する動作コマンドまたは他のコマンドを生成するように構成される、システムであってもよい。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された空間構造情報に基づいて、このようなコマンドを生成するように構成されてもよい。実施形態では、計算システム1100は、視覚システムを形成しても、またはその一部であってもよい。視覚システムは、例えば、ロボット1300が位置する環境を記述する、すなわちより具体的には、カメラ1200が位置する環境を記述する、視覚情報を生成するシステムであってもよい。視覚情報が、上で論じた3D画像もしくは2D画像、または何らかの他の画像情報を含んでもよい。一部の事例では、計算システム1100が、視覚システムを形成する場合、視覚システムは、上で論じたロボット制御システムの一部であってもよく、またはロボット制御システムから分離していてもよい。視覚システムは、ロボット制御システムから分離している場合、ロボット1300が位置する環境を記述する、情報を出力するように構成されうる。情報は、ロボット制御システムに出力されてもよく、ロボット制御システムは、視覚システムからこうした情報を受信し、情報に基づいてロボット1300の動作を制御してもよい。
【0025】
実施形態では、計算システム1100が、一つ以上の動作コマンドを生成するように構成される場合、動作コマンドは、例えば、カメラ配置動作コマンド、物体相互作用動作コマンド、および/またはグリッパ部材配置コマンドを含んでもよい。この実施形態では、カメラ配置動作コマンドが、カメラ1200の配置を制御し、より具体的には、ロボット1300に、カメラ1200をある特定のカメラ姿勢に移動させるように使用される動作コマンドであってもよく、カメラ姿勢は、ある特定のカメラ位置と、ある特定のカメラ配向との組み合わせを含みうる。物体相互作用動作コマンドを使用して、ロボット1300と、倉庫の中にある容器の積み重ねなど、一つ以上の物体との間の相互作用を制御してもよい。例えば、物体相互作用動作コマンドによって、ロボット1300のロボットアーム1400に、容器のうちの一つに接近するようエンドエフェクタ装置1500を移動させ、ロボットアーム1400の一端にあるエンドエフェクタ装置1500に容器を拾い上げさせ、その後、ロボットアーム1400に、容器を所望の目的位置(例えば、コンベヤベルト)に移動させてもよい。エンドエフェクタ装置1500が、少なくとも一つのグリッパ部材を有する場合、グリッパ部材配置コマンドによって、グリッパ部材を容器の一部分を握る際の位置に配置するか、またはそうでなければ位置付けるために、エンドエフェクタ装置の残りに対してグリッパ部材を移動させうる。
【0026】
実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、および/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続によってカメラ1200ならびに/またはロボット1300と通信してもよい。実施形態では、計算システム1100が、ネットワークを介してカメラ1200および/またはロボット1300と通信してもよい。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、またはインターネットなど、いかなるタイプおよび/または形態のネットワークであってもよい。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、またはSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用してもよい。
【0027】
実施形態では、計算システム1100は、カメラ1200および/もしくはロボット1300と直接情報を伝達してもよく、または中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信してもよい。こうした中間の非一時的コンピュータ可読媒体は、計算システム1100の外部にあってもよく、例えば、カメラ1200によって生成された画像情報を記憶する、ロボット1300によって生成されたセンサー情報を記憶する、および/もしくは計算システム1100によって生成されたコマンドを記憶するための外部バッファまたはリポジトリとして働いてもよい。例えば、中間の非一時的コンピュータ可読媒体がカメラ1200によって生成された画像情報を記憶するために使用される場合、計算システム1100は、中間の非一時的コンピュータ可読媒体から画像情報を読み出すか、または他の方法で受信してもよい。非一時的コンピュータ可読媒体としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックを形成してもよい。
【0028】
上述のように、カメラ1200は、3Dカメラおよび/または2Dカメラであってもよい。2Dカメラは、カラー画像またはグレースケール画像などの、2D画像を生成するように構成されてもよい。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、またはいかなる他のタイプの3Dカメラであってもよい。一部の事例では、3Dカメラは、電荷結合素子(CCD)センサーおよび/または相補型金属酸化膜半導体(CMOS)センサーなど、画像センサーを含みうる。実施形態では、3Dカメラは、レーザー、LIDAR装置、赤外線装置、明/暗センサー、モーションセンサー、マイクロ波検出器、超音波検出器、レーダー検出器、または空間構造情報を取り込むように構成されるいかなる他の装置をも含みうる。
【0029】
上述のように、画像情報が、計算システム1100によって処理されてもよい。実施形態では、計算システム1100は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ノートパソコンなど)、スマートフォン、タブレットコンピューティングデバイス、および/もしくは他のいかなる他の計算システムを含んでもよく、またはそれらとして構成されてもよい。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一の計算装置(例えば、デスクトップコンピュータ)であってもよく、または複数の計算装置を含んでもよい。
【0030】
図2Aは、計算システム1100の実施形態を示す、ブロック図を提供する。計算システム1100は、少なくとも一つの処理回路1110および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。実施形態では、処理回路1110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらのいかなる組み合わせ、またはいかなる他の処理回路も含む。実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120が、上で論じた中間の非一時的コンピュータ可読媒体の代替または追加であってもよい。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせなどの記憶装置であり、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらのいかなる組み合わせ、またはいかなる他の記憶装置などである。一部の実例では、非一時的コンピュータ可読媒体1120が、複数の記憶装置を含みうる。特定の事例では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成された画像情報を記憶するように構成される。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、
図5に関して記載する操作など、本明細書に記載する一つ以上の手法を行わせるコンピュータ可読プログラム命令を、代替的または追加的に記憶してもよい。
【0031】
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む、計算システム1100Aを描写する。通信インターフェース1130は、例えば、
図1A~1Dのカメラ1200によって生成された画像情報を受信するように構成されてもよい。画像情報は、上で論じた中間の非一時的コンピュータ可読媒体もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信されうる。実施形態では、通信インターフェース1130が、
図1B~1Dのロボット1300と通信するように構成されうる。計算システム1100が、ロボット制御システムの一部でない場合、計算システム1100の通信インターフェース1130が、ロボット制御システムと通信するように構成されうる。通信インターフェース1130は、例えば、有線または無線プロトコルによって通信を行うように構成される通信回路を含みうる。例として、通信回路は、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、いかなる他の通信回路、またはそれらの組み合わせを含んでもよい。
【0032】
実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされてもよい。例えば、
図2Cは、計算システム1100/1100Aの実施形態である、計算システム1100Bを示し、その中の処理回路1110は、以下でより詳細に論じる、動作計画モジュール1122およびグリップ制御モジュール1124を含む、一つ以上のモジュールによってプログラムされる。
【0033】
実施形態では、動作計画モジュール1122は、
図1Cまたは
図1Dのロボットアーム1400および/もしくはエンドエフェクタ装置1500を制御して、パレットから容器を拾い上げ、容器を所望の目的位置に移動するための物体相互作用動作コマンドを動作計画モジュール1122が生成する、パレットから降ろす操作用のロボット動作など、容器と相互作用するためのロボット動作を決定するように構成されてもよい。一部の事例では、動作計画モジュール1122が、ロボット1300用、すなわちより具体的には、ロボットアーム1400および/もしくはエンドエフェクタ装置1500用の動作計画を生成して、パレットから降ろす操作または他の相互作用を達成するように構成されうる。一部の事例では、動作計画は、エンドエフェクタ装置1500が追尾する軌道を含みうる。軌道によって、エンドエフェクタ装置1500を容器または他の物体に接近させ、容器に係合させ(例えば、容器を拾い上げることによって)、容器を所望の目的位置に移動させてもよい。
【0034】
実施形態では、
図1Cおよび1Dのエンドエフェクタ装置1500が、一つ以上のグリッパを有する場合、
図2Cの計算システム1100Bが、グリップ制御モジュール1124を実行して、一つ以上のグリッパを制御するように構成されうる。以下でより詳細に論じるように、一つ以上のグリッパは、異なる位置に移動可能であってもよく、物体を拾い上げるか、またはそうでなければ係合するために、開放状態から閉鎖状態へ移行してもよく、物体を解放するために、閉鎖状態から開放状態へ移行してもよい。この実施形態では、グリップ制御モジュール1124が、一つ以上のグリッパの異なる位置への動作を制御し、および/または一つ以上のグリッパが開放状態もしくは閉鎖状態のどちらにあるかを制御するように構成されうる。本明細書で論じるモジュールの機能性は、代表的なものであり、限定ではないことは理解されるであろう。
【0035】
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に一つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールまたはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを行うものとして説明されうる。
【0036】
実施形態では、非一時的コンピュータ可読媒体1120は、ある特定の視覚的なデザイン、物理的設計、または物体もしくは物体タイプ(物体のクラスとも呼ぶ)に対する物体デザインの他の態様を記述するのに使用される、一つ以上の物体テンプレート1126(例えば、容器テンプレート)を記憶するか、またはそうでなければ含んでもよい。例えば、物体が容器である場合、物体テンプレート1126は各々、容器もしくは容器タイプ(容器のクラスとも呼ぶ)に対する視覚的なデザイン、および/または容器もしくは容器タイプに対する物理的設計を含みうる、ある特定の容器デザインを記述してもよい。一部の実施では、物体テンプレート1126の各々が、視覚的なデザインを記述する、物体の外観記述(視覚的記述情報とも呼ぶ)を含んでもよく、および/または物理的設計を記述する、物体構造の記述(構造記述情報とも呼ぶ)を含んでもよい。一部の実例では、物体の外観記述が、視覚的なデザインを形成する、模様または他の視覚的詳細(例えば、ロゴまたは絵柄)を表す、一つ以上の視覚記述子を含みうる。一部の実例では、物体構造の記述が、物体もしくは物体タイプのサイズ(例えば、長さまたは幅などの寸法)、もしくは物体もしくは物体タイプに関連付けられたサイズを記述する、もしくは物体もしくは物体タイプの形状、もしくは物体もしくは物体タイプに関連付けられた形状を記述する値を含んでもよく、および/または物体もしくは物体タイプの構造を記述する、コンピュータ支援設計(CAD)ファイルを含んでもよい。一部の事例では、物体テンプレート1126を使用して、
図1A~1Dのカメラ1200および/またはロボット1300の環境中にある物体が、物体テンプレート1126のいずれかに合致するかの判定を伴いうる、物体認識を行ってもよく、合致は、合致するテンプレートによって記述される物体タイプに、物体が関連付けられることを示しうる。物体テンプレート1126が、例えば、物体登録プロセスの一部として生成されてもよく、および/またはサーバなどの資源から受信(例えば、ダウンロード)されたものであってもよい。テンプレートについては、米国特許出願第16/991,466号(弁理士整理番号MJ0054-US/0077-0012US1)および米国特許出願第16/991,510号(弁理士整理番号MJ0051-US/0077-0011US1)でより詳細に論じられ、それらの内容全体が参照により本明細書に組み込まれる。
【0037】
図3Aおよび3Bは、ロボット相互作用のための動作計画が行われうる環境の例を示す。より詳細には、環境は、計算システム1100、カメラ3200(
図1A~1Dのカメラ1200の実施形態であってもよい)、およびロボット3300(ロボット1300の実施形態であってもよい)を含む。この実施形態では、ロボット3300が、ロボットアーム3400およびエンドエフェクタ装置3500を含んでもよい。実施形態では、エンドエフェクタ装置3500が、ロボットアーム3400の一端を形成するか、またはロボットアーム3400の一端に付着していてもよい。
【0038】
図3Aの例では、ロボット3300は、ロボットアーム3400によって、パレット上の木箱または他の容器の積み重ねなど、一つ以上の物体の方へエンドエフェクタ装置3500を移動し、一つ以上の物体を係合し、一つ以上の物体をパレットから別の位置に移動する(例えば、パレットから降ろす操作の一部として)ように動作してもよい。より具体的には、
図3Aおよび3Bは、物体の積み重ね3710、すなわちより具体的には、木箱または他の容器の積み重ねを有する環境を描写する。一部のシナリオでは、
図3Bに示すように、容器の一部またはすべては、容器の中のより小さい物体(容器の中の品目と呼んでもよい)を保持してもよい。
図3Aおよび3Bの積み重ね3710が、少なくとも物体3711~3719および3731~3733を含んでもよく、一方エンドエフェクタ装置3500が、物体3711などの積み重ね3710の中にある物体のうちの一つを拾い上げ(例えば、積み重ねの中の容器を拾い上げ)、積み重ね3710からコンベヤ3800上の位置などの目的位置へ、物体を移動するために使用されうる。物体3711を拾い上げるために、エンドエフェクタ装置3500が、物体3711と整列するように移動し傾いてもよい。エンドエフェクタ装置3500の動作には、ロボットアーム3400の一つ以上の連結部が、互いに対して回転する動作など、ロボットアーム3400の動作を伴いうる。
図3Aおよび3Bに描写する環境では、パレット上の物体は、その外側側部表面のうちの少なくとも一つに3D模様を有してもよい。例えば、3D模様が、外側側部表面から突出する隆線の模様(隆線模様とも呼ぶ)であってもよい。例として、
図3Aは、物体3711の外側側部表面上の隆線模様3711Aを描写する。一部の事例では、パレット上の物体は、ロゴまたは他の視覚的な模様など、その外側側部表面上に2D模様を形成する、視覚的詳細を有しうる。
【0039】
図4Aおよび4Bは、エンドエフェクタ装置3500の実施形態であってもよい、エンドエフェクタ装置3500Aを描写する。この実施形態では、エンドエフェクタ装置3500Aは、取付構造3502、カメラ3200、第一のグリッパ部材3510(第一のグリップ部材とも呼ぶ)、第二のグリッパ部材3520、および第三のグリッパ部材3530を含む。
図4Cは、エンドエフェクタ装置3500Aに類似しているが、第三のグリッパ部材3530を有さない、エンドエフェクタ装置3500Bを描写する。
図4A~4Cのカメラ3200は、取付構造3502(例えば、取付板)の第一の表面3503(例えば、頂部表面)上に取り付けられるか、またはそうでなければ付着していてもよく、一方グリッパ部材3510~3530は、取付構造3502の反対にある第二の表面3504(例えば、底部表面)上に取り付けられるか、またはそうでなければ付着していてもよい。一部の事例では、エンドエフェクタ装置3500/3500Aは、取付構造3502の第一の表面(例えば、頂部表面)で、ロボットアーム3400上に取り付けられるか、またはそうでなければ連結していてもよい。例えば、第一の表面3503が、その上に配置される取付ブラケットを有してもよく、取付ブラケットは、エンドエフェクタ装置とロボットアーム1400/3400との間の連結点として動作しうる。これらの事例では、エンドエフェクタ装置の第二の表面(例えば、底部表面)が、ロボット3300の環境で、一つ以上の木箱または他の容器に面するように配向してもよい。
【0040】
実施形態では、第一のグリッパ部材3510、第二のグリッパ部材3520、および第三のグリッパ部材3530の一部またはすべてが各々、それぞれのグリッパフィンガーアセンブリによって形成されるか、またはそれに付着している、グリッパ本体を含みうる。例えば、
図4Dは、グリッパ部材3530の実施形態であってもよい、グリッパ部材3530Aを描写し、グリッパ部材3530Aは、グリッパ本体3533の一部であるか、またはそこに付着している、グリッパフィンガーアセンブリ3531を含む。グリッパフィンガーアセンブリ3531は、容器3701の外部エッジを形成するへり3701Aのコーナーなど、物体の一部分の周辺で固定するか、または挟むことによって、物体(例えば、容器)を握るように使用されうる。
図4Dの例では、グリッパフィンガーアセンブリ3531が、グリッパフィンガー3531A、3531Bとも呼ぶ、互いに対して移動可能でありうる二つの構成要素を含んでもよい(例えば、グリッパフィンガー3531Aおよび3531Bが両方とも、互いの方へもしくは互いから離れて移動してもよいか、またはグリッパフィンガー3531A/3531Bのうちの一方は、静止したままであってもよく、他方のグリッパフィンガー3531B/3531Aが移動する)。例えば、二つのグリッパフィンガー3531A、3531Bは、チャックまたはクランプを形成してもよく、物体の一部分を握るように、または物体の周辺でグリップを締めるように、二つのグリッパフィンガーが互いに向かって移動可能であり、グリップを緩めるように、または物体を解放するように、二つのグリッパフィンガー3531A、3531Bが互いから離れるように移動可能である。一部のシナリオでは、二つのグリッパフィンガーのうちの一方(例えば、3531A)が、上部グリッパフィンガーであってもよく、二つのグリッパフィンガーのうちの他方(例えば、3531B)が、下部グリッパフィンガーであってもよい。
図4Dの例では、グリッパ部材3530Aがさらに裏板3532を含んでもよく、一方グリッパ本体3533が裏板3532に対して移動可能であってもよい。相対動作は、
図4Aおよび4Bの取付構造3502の中心に向かう内方向、または取付構造3502の中心から離れる外方向でありうる。グリッパ部材3530Aがさらに、グリッパフィンガーアセンブリ3531およびグリッパ本体3533の内向き動作を検出するように構成される、センサー3517を含んでもよい。実施形態では、第一のグリッパ部材3510および第二のグリッパ部材3520が各々、
図4Dに描写するものと同じ、またはそれに類似するグリッパフィンガーアセンブリを有してもよい。こうしたグリッパフィンガーアセンブリが各々、物体の一部分の周辺で固定するための、少なくとも一対のグリッパフィンガーを含んでもよい。エンドエフェクタ装置3500が、容器のへりの一部分など、物体の一部分を握るために使用されているとき、グリッパ部材(例えば、3510)の一対のグリッパフィンガーのうちの少なくとも一方は、二つのグリッパフィンガーが物体の一部分と接触するように、より具体的には、物体の一部分を挟むように、他方のグリッパフィンガーに向かう方向(例えば、上方向)に移動可能でありうる。エンドエフェクタ装置3500が容器を解放するべきとき、少なくとも一方のグリッパフィンガーは、一対のグリッパフィンガーが物体の一部分を解放するように、他方のグリッパフィンガーから離れて反対方向(例えば、下方向)に移動可能でありうる。
【0041】
図4Aおよび4Bの実施形態では、第一のグリッパ部材3510および第二のグリッパ部材3520は各々、可動グリッパ部材であってもよく、一方第三のグリッパ部材3530は、固定グリッパ部材であってもよい。より詳細には、第一のグリッパ部材3510が、取付構造3502の第一のエッジ3501Aに沿って移動可能(例えば、摺動可能)であってもよく、一方第二のグリッパ部材3520が、第一のエッジ3501Aに垂直な、取付構造3502の第二のエッジ3501Bに沿って移動可能であってもよい。より詳細には、第一のグリッパ部材3510は、第一のレール3540の縦軸であってもよい、
図4BのY’軸など、第一の軸に沿って移動可能でありうる。第二のグリッパ3520が、第二のレール3542の縦軸であってもよい、
図4BのX’軸など、第二の軸に沿って移動可能でありうる。第一の軸が第一のエッジ3501Aに平行であってもよく、一方第二の軸が第二のエッジ3501Bに平行であってもよく、その結果、第一のレール3540が第二のレール3542に垂直でありうる。この例では、第三のグリッパ部材3530が、取付構造3502のコーナーに配置されてもよく、コーナーは、
図4Bの第一の軸が第二の軸と交差する位置にあるか、またはその近くにありうる。グリッパ部材3510~3530が各々、以下でより詳細に論じるように、物体のそれぞれの部分、すなわちより具体的には、その物体構造のそれぞれの部分を握るか、またはそうでなければ係合できてもよい。一部のシナリオでは、第一のグリッパ部材3510が、物体の一側面(例えば、左側面)を係合するように動作し、一方第二のグリッパ部材3520が、物体の別の側面(例えば、正面)を係合するように動作し、第三のグリッパ部材3530が、物体のコーナーを係合するように動作する。例えば、第一のグリッパ部材3510および第二のグリッパ部材3520が、物体の二つの垂直な側面とそれぞれ係合してもよく、一方第三のグリッパ部材3530が、二つの垂直な側面の間に位置する、物体のコーナーと係合してもよい。
【0042】
上述のように、第一のグリッパ部材3510が、第一のレール3540を介して取付構造3502の第二の表面(例えば、底部表面)に対して移動可能であってもよく、一方第二のグリッパ部材3520が、第二のレール3542を介して取付構造3502の第二の表面に対して移動可能であってもよい。第一のレール3540はY’軸に沿って延在してもよく、一方第二のレール3542は、Y’軸に垂直なX’軸に沿って延在してもよい。一部のシナリオでは、第一のレール3540が、取付構造3502の第一のコーナー(例えば、第三のグリッパ部材3530が位置するコーナー)近くの位置から、取付構造3502の第二のコーナー近くの別の位置まで延在してもよい。さらに、こうしたシナリオにおける第二のレール3542は、取付構造3502の第一のコーナー近くの位置から、取付構造3502の第三のコーナー近くの位置まで延在してもよい。第一のレール3540および第二のレール3542によって、エンドエフェクタ装置3500Aが、ある範囲の異なる物体サイズを収容することが可能になりうる。例えば、第一のグリッパ部材3510および第二のグリッパ部材3520が、物体を握る場合、第一のレール3540に沿って第一のグリッパ部材3510を摺動させることと、第二のレール3542に沿って第二のグリッパ部材3520を摺動させることとは異なりうる(すなわち、エンドエフェクタ装置3500Aが物体を握る、グリップ点が変化する)。
【0043】
より詳細には、第一のグリッパ部材3510を摺動させることによって、エンドエフェクタ装置3500Aが、様々な物体の第一の寸法(例えば、幅の寸法)の異なる値を収容することが可能になり、一方第二のグリッパ部材3520を第二のレール3550に沿って摺動させることによって、エンドエフェクタ装置3500Aが、様々な物体の第二の寸法(例えば、長さの寸法)の異なる値を収容することが可能になりうる。例えば、エンドエフェクタ装置3500Aが、第一のグリッパ部材3510および第二のグリッパ部材3520がどこに位置するかによって画定される、領域のサイズを記述しうる、可変グリップサイズ(可変スパンとも呼ぶ)を有してもよい。領域は、グリッパ部材3510、3520のリーチまたはカバレッジを表してもよい。より具体的には、領域が、第一のグリッパ部材3510の位置に第一のコーナー、第三のグリッパ部材3520の位置に第二のコーナー、および交差位置とも呼ぶ、第一の軸(例えば、Y’軸)が第二の軸(例えば、X’軸)と交差する位置に第三のコーナーを有してもよい。領域のサイズを増大し、それゆえ、エンドエフェクタ装置3500Aのグリップサイズを増大することによって、エンドエフェクタ装置3500Aが握ることができる物体サイズを増大しうる。第一のグリッパ部材3510または第二のグリッパ部材3510が、交差位置から離れるように移動するにつれて、グリップサイズが増大しうる。より詳細には、エンドエフェクタ装置3500Aのグリップサイズは、少なくとも第一の寸法および第二の寸法によって画定されうる。グリップサイズの第一の寸法が、交差位置から第一のグリッパ部材の位置までの距離によって画定されてもよく、一方グリップサイズの第二の寸法が、交差位置から第二のグリッパ部材の位置までの距離によって画定されてもよい。この例では、第一のグリッパ部材3510が、第一のレール3540に沿って交差位置から離れるように移動するにつれて、グリップサイズの第一の寸法は値が増加し、一方第二のグリッパ部材が、第二のレール3542に沿って交差位置から離れるように移動するにつれて、グリップサイズの第二の寸法は値が増加する。
【0044】
実施形態では、第一のレール3540および第二のレール3542が、同じサイズを有してもよい。別の実施形態では、第一のレール3540および第二のレール3542が、異なるサイズを有してもよい。例えば、
図4Bに示すように、第二のレール3542が第一のレール3540より長くてもよい。上述のように、エンドエフェクタ装置3500Aのグリップサイズが、第一のグリッパ部材3510と、X’軸がY’軸と交差する交差点との間の距離によって画定される、第一の寸法を有してもよく、第二のグリッパ部材3520と交差点との間の距離によって画定される、第二の寸法を有してもよい。この実施形態では、より長いサイズの第二のレール3542によって、第二のグリッパ部材3520と交差点との間の最大距離が、第一のグリッパ部材3510と交差点との間の最大距離より大きくなることが可能になりうる。すなわち、第二のグリッパ部材3520と交差点との間の最大距離が、第二のレール3542のサイズに基づき、一方第一のグリッパ部材3510と交差点との間の最大距離が、第一のレール3540のサイズに基づく。したがって、より長いサイズの第二のレール3542は、エンドエフェクタ装置3500Aのグリップサイズの第二の寸法に対する最大値を、グリップサイズの第一の寸法に対する最大値より大きくさせうる。こうした実施形態によって、エンドエフェクタ装置3500Aが、第二の寸法(例えば、長さの寸法)と値が異なる、第一の寸法(例えば、幅の寸法)を有する物体を収容することが可能になりうる。例えば、エンドエフェクタ装置3500Aが、第一の側面を有し、第一の側面より長い第二の側面を有する、矩形物体を握るために使用される場合、エンドエフェクタ装置3500Aは、第二のレール3542が矩形物体の第二の側面と整列するように配向しうる。これは、第二のレール3542が第一のレール3540より長いためであり、それによって、第二のグリッパ部材3520が摺動できる(上で論じた交差点に対して)最大距離は、第一のグリッパ部材3510が摺動できる(交差点に対して)最大距離より大きくなる。結果として、第二のレール3542および第二のグリッパ部材3520が、矩形物体のより長い第二の側面をより上手く収容できてもよく、一方第一のレール3540および第一のグリッパ部材3510が、矩形物体のより短い第一の側面を収容するために使用されうる。
【0045】
実施形態では、計算システム1100および/またはロボット1300/3300は、第一のグリッパ部材3510が第一のレール3540に沿って移動する量、および/または第二のグリッパ部材3520が第二のレール3542に沿って移動する量を制御するように構成されてもよい。例えば、以下でより詳細に論じるように、計算システム1100および/またはロボット1300/3300が、第一のグリッパ部材3510の移動、および第二のグリッパ部材3520の移動を引き起こすために使用される、一つ以上のアクチュエーターを制御し、ならびに/またはその移動を停止するように使用されるブレーキ機構を制御するように構成されうる。一つ以上のアクチュエーターは、例えば、一つ以上のグリッパ部材配置コマンドによって制御されてもよく、計算システム1100は、そのコマンドを生成し、ロボット1300/3300へ(例えば、通信インターフェースを介して)出力するように構成されてもよい。一部のシナリオでは、計算システム1100および/またはロボット1300/3300は、エンドエフェクタ装置3500Aが握るべき物体に対する、物体サイズに基づいて(例えば、長さの寸法および幅の寸法のそれぞれの値に基づいて)、第一のグリッパ部材3510および第二のグリッパ部材3520のそれぞれの移動の量を制御してもよい。例えば、第一のグリッパ部材3510が第一のレール3540に沿って移動する量は、エンドエフェクタ装置3500Aのグリップサイズの第一の寸法が、物体の第一の寸法に対する少なくとも予め定義された割合の値(例えば、グリップサイズの第一の寸法が、物体の幅の寸法の値の少なくとも50%であるか、または幅の寸法の値に等しい)を有するように制御されてもよい。同様に、第二のグリッパ部材3520が第二のレール3542に沿って移動する量は、エンドエフェクタ装置3500Aのグリップサイズの第二の寸法が、物体の第二の寸法に対する値の少なくとも予め定義された割合である値(例えば、グリップサイズの第二の寸法が、物体の長さの寸法の値の少なくとも50%であるか、または長さの寸法の値に等しい)を有するような形式で制御されてもよい。こうした例では、取付構造3502のコーナー(例えば、第三のグリッパ部材3530が位置するコーナー)が、物体のコーナーと整列してもよい。この例では、物体のコーナーを第三のグリッパ部材3530が握ってもよく、一方第一のグリッパ部材3510および第二のグリッパ部材3520の配置によって、グリッパ部材3510、3520が物体を握るグリップ点が、物体のそのコーナー(第三のグリッパ部材3530が握る)から十分に離されてもよく、その結果、グリッパ部材3510、3520、および/または3530による物体のグリップ全体が、均衡を保ち安定する。
【0046】
一部のシナリオでは、第一のグリッパ部材3510および第二のグリッパ部材3520が、空気圧アクチュエーター、電磁アクチュエーター、電気機械アクチュエーター、いかなる他のアクチュエーター、またはそれらの組み合わせなど、一つ以上のアクチュエーターによって、第一のレール3540および第二のレール3542それぞれに沿って移動するように構成されうる。一つ以上のアクチュエーターは、エンドエフェクタ装置3500Aの一部であってもよく、すなわちより広くは、
図1Aのロボット1300/3300またはシステム1000の一部であってもよい。一つ以上のアクチュエーターが、第一のグリッパ部材3510をY’軸に沿って第一の方向もしくは第二の方向に移動させるために、Y’軸に沿って第一の方向に、またはY’軸に沿って反対の第二の方向に、第一のグリッパ部材3510を作動させる第一の力を生成するように構成されうる。Y’軸に沿った第一の方向によって、第一のグリッパ部材3510を、第三のグリッパ部材3530に向かって移動させてもよく、一方Y’軸に沿った第二の方向によって、第一のグリッパ部材3510を、第三のグリッパ部材3530から離れるように移動させてもよい。一つ以上のアクチュエーターが、X’軸に沿って、第二のグリッパ部材3520を第一の方向に移動、もしくは第二のグリッパ部材3520を第二の方向に移動させるために、X’軸に沿って第一の方向に、またはX’軸に沿って反対の第二の方向に、第二のグリッパ部材3520を作動させる第二の力を生成するように構成されうる。X’軸に沿った第一の方向によって、第二のグリッパ部材3520を、第三のグリッパ部材3530に向かって移動させてもよく、一方X’軸に沿った第二の方向によって、第二のグリッパ部材3520を、第三のグリッパ部材3530から離れるように移動させてもよい。
【0047】
実施形態では、上述のように、一つ以上のアクチュエーターは、空気圧アクチュエーター、電磁アクチュエーター、または電気機械アクチュエーターなど、いかなるタイプのアクチュエーターを含んでもよい。一つ以上のアクチュエーターが、エンドエフェクタ装置3500の一部であってもよく、またはエンドエフェクタ装置3500とは別個とみなされてもよい。例えば、一つ以上のアクチュエーターが、取付構造3502上に取り付けられ、エンドエフェクタ装置3500の一部である、複数の電磁アクチュエーター(例えば、モーターまたはソレノイド)を含みうる。別の例では、一つ以上のアクチュエーターが、油圧管または水圧管内部に油圧または水圧を生成するように構成される、空気圧アクチュエーター(例えば、ポンプ)を含んでもよく、エンドエフェクタ装置3500が、油圧管または水圧管に連結されるか、またはそうでなければ油圧管または水圧管を受けるように構成される、ポートを含んでもよい。ポートが、空気圧アクチュエーターにより生成される油圧もしくは水圧を、第一のグリッパ部材3510および/または第二のグリッパ部材3520に方向付けてもよい。油圧または水圧によって、第一のグリッパ部材3510のグリッパ本体を押して、第一のレール3540に沿ってグリッパ本体を移動させてもよく、および/または第二のグリッパ部材3530のグリッパ本体を押して、第二のレール3542に沿ってグリッパ本体を移動させてもよい。
【0048】
実施形態では、一つ以上のアクチュエーターが、エンドエフェクタ装置3500Aにおいて他の動作を引き起こすように構成されうる。例えば、一つ以上のアクチュエーターが、上に記載したグリッパフィンガーアセンブリ各々の内部で、相対動作を引き起こし、すなわちより具体的には、グリッパフィンガーアセンブリの第一のグリッパフィンガーと第二のグリッパフィンガーとの間に相対動作を引き起こすように構成されてもよい。
【0049】
一部のシナリオでは、一つ以上のアクチュエーターが、グリッパフィンガーアセンブリ、および/または第一のグリッパ部材3510のグリッパ本体(例えば、第一のグリッパ部材3510のグリッパフィンガーを含む、グリッパ本体の一部分)を、第一のレール3540に垂直な軸に沿って延在させるように構成されうる。動作は、取付板3502に対して内方向または外方向であってもよく、取付板3502の上部表面または底部表面に平行であってもよい。同様に、一つ以上のアクチュエーターが、グリッパフィンガーアセンブリ、および/または第二のグリッパ部材3520のグリッパ本体(例えば、第二のグリッパ部材3520のグリッパフィンガーを含む、グリッパ本体の一部分)を、第二のレール3542に垂直な軸に沿って延在させるように構成されうる。動作はまた、取付板3502に対して内方向または外方向であってもよく、取付板3502の上部表面または底部表面に平行であってもよい。例えば、エンドエフェクタ装置3500Aが、容器を握るために使用され、容器のへりが容器のエッジを形成するか、または囲んでいる場合、上に記載した動作は、第一のグリッパ部材3510が、第一のレール3540に沿ってある特定の場所に位置付けられた後に生じてもよく、容器のへりの第一の部分が、グリッパフィンガーアセンブリの一対のグリッパフィンガーの間に来るように、第一のグリッパ部材3510のグリッパフィンガーアセンブリを、容器のへりの第一の部分の方へより近づくように移動させてもよい。こうした動作により、グリッパフィンガーが、容器のへりの第一の部分の周辺で固定することが可能になる。上に記載した動作でさらに、第二のグリッパ部材3520のグリッパフィンガーアセンブリを、そのグリッパフィンガーが、容器のへりの第二の部分周辺で固定できるように、容器のへりの第二の部分の方へより近づくように移動することが可能になりうる。加えて、一つ以上のアクチュエーターが、
図4Dに示すように、容器のへりのコーナーの方へ、第三のグリッパ部材3530のグリッパフィンガーアセンブリ3531Aを移動させるように構成されてもよい。動作は、
図4BのX’軸およびY’軸に対して斜め(例えば、X’軸に対して45度)の軸に沿っていてもよい。
【0050】
実施形態では、エンドエフェクタ装置3500Aが、異なるそれぞれのサイズである物体と係合し、移動させるように構成されうる。これを実現するために、第一のグリッパ部材3510の第一のレール3540に沿った動作、および第二のグリッパ部材3520の第二のレール3542に沿った動作は、計算システム1100および/またはロボット3300によって制御されうる。例えば、第一のグリッパ部材3510は、
図4Bに示す、端部位置E1
y’とE2
y’との間を移動可能であってもよく、第二のグリッパ部材3520は、端部位置E1
x’とE2
x’との間を移動可能であってもよい。第一のグリッパ部材3510がさらに、二つの端部位置E1
y’とE2
y’との間にある中間位置(例えば、E3
y’)に移動可能であってもよい。同様に、第二のグリッパ部材3510がさらに、二つの端部位置E1
x’とE2
x’との間にある中間位置(例えば、E3
x’)に移動可能であってもよい。したがって、第一のグリッパ部材3510および第二のグリッパ部材3520は、異なる位置構成へと移動してもよく、それによって、エンドエフェクタ装置3500が、異なるサイズを有する物体と係合することが可能になる。
【0051】
実施形態では、計算システム1100および/またはロボット1300/3300は、一つ以上のアクチュエーターおよび/または停止機構(例えば、ブレーキ機構)を制御することによって、第一のグリッパ部材3510の第一のレール3540に沿った動作、および第二のグリッパ部材3520の第二のレール3542に沿った動作を制御するように構成されうる。例えば、計算システム1100および/またはロボット1300/3300は、一つ以上のアクチュエーターが起動されるか、一つ以上のアクチュエーターのうちのどのアクチュエーターが起動されるか、一つ以上のアクチュエーターが起動されるレベル(例えば、電力レベル)、および/または一つ以上のアクチュエーターが起動される持続時間を制御するように構成されてもよい。例えば、計算システム1100および/またはロボット1300/3300が、第一のグリッパ部材3510または第二のグリッパ部材3520が位置付けられるべき位置(例えば、E3x’またはE3y’)を決定した場合、計算システム1100および/またはロボット1300/3300は、アクチュエーターを起動して、第一のグリッパ部材3510または第二のグリッパ部材3520を決定した位置へと移動させ、第一のグリッパ部材または第二のグリッパ部材3520を、決定した位置で止めさせるタイミングで、アクチュエーターを停止してもよい。一部のシナリオでは、エンドエフェクタ装置3500Aが停止機構を含む場合、計算システム1100および/またはロボット1300/3300は、第一のグリッパ部材または第二のグリッパ部材3520を、決定した位置で止めるために、第一のグリッパ部材または第二のグリッパ部材3520が決定した位置に接近してくると、停止機構を起動するように構成されうる。
【0052】
実施形態では、エンドエフェクタ装置3500Aが、グリッパ部材3510、3520の動作を測定し、および/またはエンドエフェクタ装置3500Aが係合する(例えば、握る)べき容器もしくは他の物体の存在(例えば、近接)を検出する、一つ以上のセンサーを含みうる。例えば、一つ以上のセンサーは、第一のグリッパ部材3510の位置を第一のレール3540に沿って測定するか、または他の方法で決定するよう構成される第一のグリッパ本体センサー(例えば、光学センサー、機械センサー、電気機械センサー)と、第二のグリッパ部材3520の位置を第二のレール3542に沿って測定するか、または他の方法で決定するよう構成される第二のグリッパ本体センサーとを含みうる。
【0053】
一部のシナリオでは、一つ以上のセンサーが、
図4Bに示すように、第一のグリッパ部材近接センサー3570、第二のグリッパ部材近接センサー3572、および第三のグリッパ部材近接センサー3574を含んでもよい。第一のグリッパ部材近接センサー3570が、第一のグリッパ部材3510に配置され、および/またはその一部であってもよく、一方第二のグリッパ部材近接センサー3572が、第二のグリッパ部材3520に配置され、および/またはその一部であってもよく、第三のグリッパ部材近接センサー3574が、第三のグリッパ部材3530に配置され、および/またはその一部であってもよい。グリッパ部材近接センサー3570、3572、3574は、エンドエフェクタ装置3500Aが握るか、もしくは他の方法で係合すべき、容器または他の物体の近接を検出するように動作する。例えば、
図3Aの物体3711など、物体を係合し拾い上げるために、計算システム1100および/またはロボット3300は、ロボットアーム3400によって、エンドエフェクタ装置3500を物体3711の方へ移動させうる。グリッパ本体近接センサー3570、3572、3574は、グリッパ部材3510、3520、および3530が物体3711からの定義した(例えば、予め定義された)閾値距離内にあるとき、および/またはグリッパ部材3510、3520、3530が物体3711と整列するときに検出するように動作する。一部の実例では、エンドエフェクタ装置3500Aが、物体3711に向かって低くなることによって、物体3711に接近する場合、グリッパ部材近接センサー3570、3572、3574は、エンドエフェクタ装置3500Aのグリッパ部材3510、3520、3530が、握るべき物体3711の一部分(例えば、容器のへり)と同じ高さとなるように、十分低くなったときを検出しうる。グリッパ部材近接センサー3570、3572、および3574が各々、機械センサー、電気機械センサー、光学センサー、またはセンサーと物体との間の近接を検出するように構成される、いかなる他のタイプのセンサーをも含みうる。
【0054】
一部のシナリオでは、一つ以上のセンサーが、第一のグリッパフィンガーセンサー、第二のグリッパフィンガーセンサー、および第三のグリッパフィンガーセンサーを含みうる。これらのシナリオでは、第一のグリッパ部材3510、第二のグリッパ部材3520、および第三のグリッパ部材3530の各々が、少なくとも一対のグリッパフィンガーを有する、それぞれのグリッパフィンガーアセンブリを含みうる。第一のグリッパフィンガーセンサー、第二のグリッパフィンガーセンサー、および第三のグリッパフィンガーセンサーは各々、それぞれのグリッパフィンガーアセンブリ用の、それぞれ一対のグリッパフィンガーの相対位置を測定するか、または他の方法で決定し、および/またはそれぞれ一対のグリッパフィンガーの間に、物体もしくはその一部分があるかを検出するように構成されてもよい。グリッパフィンガーセンサーは各々、それぞれ一対のグリッパフィンガー間における、相対動作を制御するために使用されうる。例えば、ある特定のグリッパフィンガーセンサーにより監視されているそれぞれ一対のグリッパフィンガー間に、容器のへりが配置されているとグリッパフィンガーセンサーが示す場合、計算システム1100および/またはロボット1300/3300は、物体の一部分の周辺で固定するために、上で論じた一つ以上のアクチュエーターを制御して、一対のグリッパフィンガーを互いに向かって移動させうる。
【0055】
上述のように、本出願の一態様は、ロボットが現在の位置から目的位置に物体を移動する相互作用など、ロボット相互作用を促進するために使用されうる、動作計画作成を行うことに関する。
図5は、動作計画を実行するための例示的な方法5000のフロー図を描写する。方法5000は、例えば、
図2A~2Dもしくは
図3Aの計算システム1100によって、すなわちより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、少なくとも一つの処理回路1100が、非一時的コンピュータ可読媒体1120などの非一時的コンピュータ可読媒体上に記憶される命令を実行することによって、方法5000を行ってもよい。例えば、命令によって、処理回路1110に、方法5000を行いうる、動作計画モジュール1122を実行させてもよい。実施形態では、方法5000は、計算システム1100が、
図3Aならびに3Bのロボット3300およびカメラ3200など、ロボットおよびカメラと、または本開示で論じるいかなる他のロボットと通信している環境で行われてもよい。一部のシナリオでは、カメラ(例えば、3200)が、ロボット(例えば、3300)のエンドエフェクタ装置(例えば、3500)上に取り付けられてもよい。他のシナリオでは、カメラが、他の場所に取り付けられてもよく、および/または固定されていてもよい。
【0056】
実施形態では、方法5000は、計算システム1100が、カメラの視野(カメラ視野とも呼ぶ)の中にある、もしくはその中にあった物体の構造(物体構造とも呼ぶ)を表す、第一の画像情報を受信するステップ5002で始まるか、またはそうでなければステップ5002を含んでもよい。例えば、
図6Aは、物体3721~3726の積み重ね3720が、カメラ3200のカメラ視野3202内に配置されているシナリオを描写する。物体3721~3726の各々は、例えば、箱、木箱、または他の容器であってもよい。
図6Aの例では、物体3721~3726がパレット3728上に配置されてもよい。実施形態では、パレット3728は、多種多様のサイズ(例えば、幅広い種類の長さ、幅、および高さの値)を有してもよい、容器または他の物体を積み重ねるように、多種多様の積み重ね構成と共に使用されてもよい。
【0057】
実施形態では、計算システム1100によって受信される第一の画像情報は、カメラ(例えば、3200)が、
図3Aに示すカメラ姿勢または
図6Aに示すカメラ姿勢など、第一のカメラ姿勢を有するときに、カメラによって生成されてもよい。カメラ姿勢は、カメラ(例えば、3200)の位置および配向を指しうる。一部のシナリオでは、カメラ姿勢がカメラ(例えば、3200)の眺望または視点に影響を与えうる。例えば、6Aに描写する第一のカメラ姿勢は、積み重ね3720の真上である位置を有し、カメラ3200が積み重ね3720の頂部、すなわちより具体的には、積み重ね3720の頂部を形成する物体3721、3722を向く配向を有する、カメラ3200を伴いうる。一部の実例では、方法5000のステップは、物体3722など、積み重ね3720の個々の物体とのロボット相互作用を容易にするように行われうる。こうした例では、ロボット相互作用のターゲットである、ある特定の物体を、ターゲットの物体と呼んでもよい。一部のシナリオでは、方法5000のステップは、複数のターゲットの物体とのロボット相互作用を容易にするために、複数回または複数回の反復で行われうる。
【0058】
一部のシナリオでは、第一の画像情報は、積み重ね3720のある特定の視界、すなわちより具体的には、積み重ね3720を形成する、一つ以上の物体のある特定の視界を表しうる。
図6Aの例では、カメラ3200が物体3721、3722の上方にあり、物体3721、3722の頂端部を向く、
図6Aに示す第一のカメラ姿勢をカメラ3200が有するとき、第一の画像情報が生成されうるため、第一の画像情報が、積み重ね3720の、すなわちより具体的には、物体3721、3722の平面図を表してもよい。
図6Aの例では、物体3721、3722が各々、容器の底部内表面を囲む一つ以上の壁を有する、木箱または他の頂部が開いた容器であってもよい。一つ以上の壁が、容器の頂端部で縁を形成しうる。こうした例では、物体3721/3722の平面図は、物体3721/3722について縁の表面(縁表面とも呼ぶ)の視界を含み、物体3721/3722の底部内表面の視界を含みうる。別の例では、物体3721/3722の底部内表面が、第一の画像情報によって表されないか、または第一の画像情報によって部分的にのみ表される。こうした例は、
図3Bの容器の一部について示す状況など、例えば、物体3721/3722が、物体3721/3722の底部内表面を覆うように配置されているか、もしくは積み重ねられた品目で、部分的にまたは完全に埋められた容器である場合に発生しうる。こうした状況では、第一の画像情報が、容器内に配置される品目を記述するか、もしくは他の方法で表しうるが、それらの品目が、容器の底部内表面の視界を部分的にもしくは完全に遮るか、または見えなくしうる。別の例では、蓋付きの容器などの全閉形の箱、または他の容器が、カメラ3200のカメラ視野(例えば、3202)の中にあってもよい。この例では、全閉形容器の平面図が、容器の外表面(例えば、頂部外表面、また頂面とも呼ぶ)の視界を含んでもよい。
【0059】
実施形態では、第一の画像情報が、積み重ね3720、すなわちより具体的には、積み重ね3720を形成する一つ以上の物体(例えば、3721および3722)の外観を記述しうる。例えば、
図6Bは、第一の画像情報が、物体3721の外観を記述する画像部分6021(例えば、ピクセルの領域)、物体3722の外観を記述する画像部分6022、およびパレット3728の外観を記述する画像部分6028を含む、2D画像6082(例えば、グレースケールまたはカラー画像)を含むか、または形成する例を提供する。より詳細には、画像6082は、
図6Aのカメラ3200の視点からの物体3721、3722、およびパレット3728の外観を記述してもよく、より具体的には、物体3721、3722の平面図を表してもよい。上述のように、画像6082は、カメラ3200が、
図6Aに描写する第一のカメラ姿勢を有するときに生成されうる。より詳細には、2D画像6082が、物体3721の一つ以上の表面、および物体3722の一つ以上の表面を表しうる。例えば、2D画像6082の画像部分6021は、より具体的には、物体3721の第一の表面(例えば、縁表面)を表す画像部分6021Aと、物体3721の第二の表面(例えば、底部内表面)を表す画像部分6021Bとを含みうる。同様に、画像部分6022が、物体3722の第一の表面(例えば、縁表面)を表す画像部分6022Aと、物体6022の第二の表面(例えば、底部内表面)を表す画像部分6022Bとを含みうる。別の例では、第一の物体3722が、上で論じたように、品目で埋められた容器である場合、画像部分6022、すなわちより具体的には、画像部分6022Bは、容器内に配置されている品目の外観を記述しうる。
【0060】
実施形態では、第一の画像情報は、積み重ねの構造(積み重ね構造とも呼ぶ)、または積み重ね構造の少なくとも一部分を記述してもよく、積み重ね構造は、積み重ねを形成する物体3721~3726の構造によって画定されてもよい。より具体的には、第一の画像情報は、積み重ねを形成する物体の構造(物体構造とも呼ぶ)、または物体構造の少なくとも一部分を記述しうる。こうした実施形態では、第一の画像情報を生成するカメラ(例えば、3200)は、3Dカメラ(空間構造感知デバイスとも呼ぶ)であってもよい。上述のように、ステップ5002で受信される第一の画像情報は、積み重ね構造の平面図など、第一の画像情報が生成されるときの、カメラのある特定の視点を表しうる。一部のシナリオでは、第一の画像情報が、三次元(3D)情報と呼んでもよい、空間構造情報を含んでもよく、これは、物体が3D空間でどのように配設されるかを記述する。例えば、空間構造情報は、カメラ(例えば、3200)が第一の画像情報を生成するときにカメラが位置する点など、基準点に対する物体の一部分以上の奥行き、またはその物体構造の奥行きを記述する、奥行き情報を含みうる。
【0061】
一部のシナリオでは、空間構造情報が、物体構造の一つ以上の表面上にある、複数の位置(複数の点とも呼ぶ)のそれぞれの奥行き値を記述してもよい。例えば、
図6Cは、
図6Aの物体3721、物体3722、およびパレット3728の物体表面など、カメラ(例えば、3200)のカメラ視野(例えば、3202)における、物体の表面(物体表面とも呼ぶ)上の様々な位置に対する、それぞれの奥行き値を記述する3D画像情報6084を有する、第一の画像情報を描写する。
図6Cの例では、空間構造情報によって識別、またはそうでなければ記述される様々な位置は、パレット3728の頂部表面上にある位置3728
1から3728
n(白丸として描写)、物体3721の第一の表面(例えば、縁表面)上にある位置3721A
1から3721A
n、第一の物体3721の第二の表面(例えば、底部内表面)上にある位置3721B
1から3721B
n、物体3722の第一の表面(例えば、縁表面)上にある位置3722A
1から3722A
n、および物体3722の第二の表面(例えば、底部内表面)上にある位置3722B
1から3722B
nを含んでもよい。別の例では、物体3721/3722が、上で論じたように、品目で埋められた容器である場合、位置3721B
1から3721B
nおよび/または位置3722B
1から3722B
nは、容器内の一つ以上の表面上の位置であってもよい。一部のシナリオでは、第一の画像情報は、それぞれの奥行き値を奥行きマップと共に記述してもよく、奥行きマップは、例えば、カメラ視野(例えば、3202)中の一つ以上の物体表面上にある位置のグリッドに対応する、ピクセルの配列を含んでもよい。こうしたシナリオでは、ピクセルの一部またはすべては各々、ピクセルに対応するそれぞれの位置に対するそれぞれの奥行き値をそれぞれ含んでもよく、それぞれの位置は一つ以上の物体表面上にある。一部の状況では、第一の画像情報が、一つ以上の物体表面上の様々な位置を記述しうる、複数の3D座標を通るそれぞれの奥行き値を記述してもよい。例えば、3D座標が、
図6Cの中で位置3728
1から3728
n、位置3721A
1から3721A
n、位置3721B
1から3721B
n、位置3722A
1から3722A
n、および位置3722B
1から3722B
nを記述しうる。複数の3D座標が、例えば、物体3721の物体構造の頂部、および/または物体3722の物体構造の頂部など、物体構造の少なくとも一部分を記述する点群または点群の一部を形成しうる。3D座標が、カメラ座標系で、または何らかの他の座標系で表現されてもよい。一部の実例では、ある特定の位置に対する奥行き値は、その位置に対する3D座標の成分によって、またはその成分に基づいて表されうる。例として、ある位置の3D座標が[X Y Z]座標である場合、その位置に対する奥行き値は、3D座標のZ成分と等しいか、またはそれに基づいてもよい。
【0062】
図5に戻ると、方法5000は、実施形態で、計算システム1100が、第一の画像情報に基づいて、
図6Aの物体3721の物体構造または物体3722の物体構造など、カメラ視野(例えば、3202)中にある物体の物体構造の第一の推定を決定しうる、ステップ5004を含んでもよい。一部の実例では、物体構造についての第一の推定が、対応する物体(例えば、3721または3722)の長さに対する推定値、および/または対応する物体の幅に対する推定値など、一つ以上の物体寸法の推定を含みうる。一部の実例では、物体構造についての第一の推定が、対応する物体の形状(物体形状とも呼ぶ)の推定を含みうる。例えば、物体構造についての第一の推定によって、物体構造が矩形形状を有することを示しうる。一部のシナリオでは、物体構造についての第一の推定が、物体構造を形成する第一の外表面(例えば、頂部外表面)を記述する、すなわちより具体的には、第一の外表面上の位置を記述する点群を含みうる。一部の実施では、点群は、ステップ5012および5014に関して以下でより詳細に論じる、第一の画像情報および第二の画像情報など、物体構造の異なる視点を表す、異なる画像情報のセットを組み込むよう、後に更新されてもよい。こうした実施では、点群を広範囲の点群と呼んでもよい。一部の実例では、点群が、物体3722など、ターゲットの物体について物体構造を特に表してもよい。一部の実例では、ターゲットの物体が、積み重ね3720など、積み重ねの一部である場合、点群は、積み重ねについて積み重ね構造を表しうる。こうした例では、点群の一部分が、ターゲットの物体(例えば、3722)について物体構造を特に表してもよい。
【0063】
一部のシナリオでは、物体構造についての第一の推定(例えば、物体寸法または物体形状の推定値)が、第一の画像情報に基づいて直接決定されてもよい。例えば、第一の画像情報が、
図6C中にある物体3722の縁表面上の位置3722A
1から3722A
nの3D座標を含む場合、計算システム1100は、3D座標を使用することによって、物体構造の第一の推定を決定しうる。より具体的には、物体構造についての第一の推定が、点群であるか、または点群を含む場合、計算システム1100は、点群に3D座標を含むことによって、物体構造についての第一の推定を決定しうる。例えば、計算システム1100が、点群に、すなわちより具体的には、点群を表すファイルもしくは他のデータ構造に、3D座標を挿入または追加してもよい。第一の画像情報からの3D座標は、例えば、物体構造の一部分(例えば、物体構造の頂部を形成する縁)、または物体構造のある特定の視点(例えば、平面図)を表す、部分的な点群を形成してもよい。この例では、計算システム1100は、ステップ5014で、部分的な点群からの情報を広範囲の点群に組み込んでもよい。ステップ5004では、広範囲の点群が、第一のカメラ姿勢に関連付けられる視点を表す、上で論じた部分的な点群からの情報のみ、または主にそれらの情報を含んでもよい。以下で論じるように、広範囲の点群は最終的に、一つ以上の追加の視点(例えば、遠近法の視点)を表す追加の画像情報を組み込んでもよく、それによって、広範囲の点群が、第一のカメラ姿勢に関連付けられた部分的な点群に対して、物体(例えば、3722)についてのより完全な物体構造の表示になることが可能でありうる。一部の実施では、計算システム1100は、部分的な点群中の3D座標が、広範囲の点群の3D座標によって使用される座標系とは異なる座標系を使用しているかを判定してもよい。その場合、計算システム1100は、部分的な点群中の3D座標を、広範囲の点群の座標系に対して相対的に表現するように変換してもよく、変換された座標を広範囲の点群に追加してもよい。
【0064】
一部の実例では、第一の画像情報が、上で論じた3D座標を含む場合、かつ物体構造についての第一の推定が、物体構造の物体長さに対する推定値、および物体幅に対する推定値を含む場合、計算システム1100は、3D座標のうちのいくつかの間の差に基づいて、推定値を直接決定するように構成されうる。例えば、計算システム1100が、
図6C中にある位置3721A
1の3D座標[X
3721A1 Y
3721A1 Z
3721A1]と位置3721A
nの3D座標[X
3721An Y
3721An Z
3721An]との間の差に基づいて、推定値を決定してもよい。より詳細には、計算システム1100が、Y
3721An~Y
3721A1(Y軸は長さの寸法に対応しうる)の絶対値と等しいか、または絶対値に基づくように、物体3721の物体長さに対する推定値を決定してもよく、X
3721An~X
3721A1(X軸は幅の寸法に対応しうる)と等しいか、またはそれに基づくように、物体幅に対する推定値を決定してもよい。同様に、計算システム1100が、Y
3722An~Y
3722A1と等しいか、またはそれに基づくように、物体3722の物体長さに対する推定値を決定してもよく、X
3722An~X
3722A1と等しいか、またはそれに基づくように、物体3722の物体幅に対する推定値を決定してもよい。
【0065】
実施形態では、物体3721/3722の物体構造など、物体構造の第一の外表面に、カメラが真っすぐ向く第一のカメラ姿勢を、カメラが有する間に、第一の画像情報が、カメラ(例えば、3200)によって生成されてもよい。第一の外表面(例えば、頂部外表面)はそれゆえ、カメラ(例えば、3200)のカメラ視野(例えば、
図6Aの3202)内に包含されてもよく、カメラは、第一の外表面またはその少なくとも一部分への視線を有するカメラを指してもよい。したがって第一の画像情報が、物体構造の第一の外表面(例えば、頂部外表面)を記述しうる。一部のシナリオでは、カメラは、第一のカメラ姿勢にあるとき、物体3721/3722の物体構造の全外側側部表面および底部外表面など、物体構造の一部またはすべての他の外表面への視線を欠く場合がある。こうしたシナリオでは、第一の画像情報には、こうした外表面(例えば、外側側部表面および底部外表面、また側面および底面とも呼ぶ)についての記述がなくてもよい。例えば、
図6Bおよび6Cに示す第一の画像情報は、物体3721/3722について物体構造の頂部外表面を記述してもよいが、物体3721/3722について、物体構造の外側側部表面に関する記述がほとんどまたは全くなくてもよい。別の例として、物体構造についての第一の推定が、物体長さおよび物体幅など、一つ以上の物体寸法に対する推定値を含む場合、第一の推定で、物体高さなど、一つ以上の物体寸法についての推定値を省略してもよい。この例では、第一の推定の基となる第一の画像情報が、物体構造(例えば、物体3721、3722の)の平面図を表しうるため、物体高さが、物体構造の第一の推定から省略されてもよい。こうした例では、平面図に、計算システム1100が、物体高さを直接決定することが可能となるであろう情報に欠けている場合がある。ステップ5004での物体構造についての第一の推定が、点群、すなわちより具体的には、上で論じた広範囲の点群を含む場合、ステップ5004の広範囲の点群は、物体(例えば、3721/3722)の物体構造の頂部を表す、3D座標を含んでもよいが、カメラ(例えば、3200)が第一の画像情報を生成したとき、物体構造の底部分および/または側面部分が、カメラの視線内にない場合があるため、物体構造のそれらの部分を表す3D座標を欠きうる。
【0066】
一部のシナリオでは、計算システム1100が、物体高さまたは他の物体寸法など、物体構造の特性に対して定義された最大値に基づいて、物体構造の第一の推定を決定しうる。この例では、計算システム1100は、定義された最大値を使用して、物体寸法または他の特性について初期推定を行ってもよく、これは、第一の画像情報が完全には記述していないか、または表していない(仮に記述されている場合でも)ことがある。例えば、第一の画像情報が、物体構造の平面図に基づいており、物体構造の物体高さを記述しない場合、計算システム1100が、定義された最大物体高さと等しいか、またはそれに基づくように、物体高さについて初期推定を決定しうる。計算システム1100は、物体高さもしくは他の特性についての初期推定を、物体構造の第一の推定または第一の推定の一部として使用してもよい。定義された最大物体高さ、または何らかの他の定義された最大値は、例えば、計算システム1100へ手動で提供されて、計算システム1100もしくはロボット(例えば、3300)が遭遇する可能性の高い、最大物体寸法を示してもよく、および/または計算システム1100が、以前に遭遇した物体の物体構造を記述する情報を、決定し記憶した物体登録プロセスによって決定されてもよい。
【0067】
一部のシナリオでは、物体の物体構造について第一の推定を決定することは、第一の画像情報によって表される物体(例えば、3722)に対応する、物体タイプを決定することを伴いうる。物体タイプは、物体(例えば、3722)または物体のクラスについて、視覚的なデザインおよび/または物理的設計など、ある特定の物体デザインを指してもよい。例えば、上で論じた物体が容器である場合、物体タイプは、容器タイプを指してもよく、容器または容器のクラスについて、ある特定の視覚的なデザインおよび/もしくは物理的設計を含みうる、ある特定の容器デザインを指してもよい。決定された物体タイプが、ある特定の物体構造に関連付けられてもよく、そのため、物体構造について第一の推定を決定するように使用されてもよい。より詳細には、計算システム1100は、一部の実施で、様々なそれぞれの物体タイプを記述するテンプレート(例えば、1126)を記憶するか、またはそうでなければテンプレートへのアクセスを有してもよい。上で論じたように、テンプレートは、物体タイプを記述する、すなわちより具体的には、その物体タイプに関連付けられた物体デザインを記述する、視覚的記述情報および/または物体構造の記述を含んでもよい。テンプレートの中の視覚的記述情報が、物体タイプに関連付けられた外観を定義する、視覚的なデザインを記述してもよく、テンプレートの中の物体構造の記述が、物体タイプに関連付けられた構造を定義する、物理的設計を記述してもよい。一部のシナリオでは、物体構造の記述が、物体タイプに関連付けられた物理的設計についての3D構造を記述してもよい。例えば、物体構造の記述が、物理的設計について物体長さ、物体幅、および物体高さそれぞれに対する値の組み合わせを記述してもよく、ならびに/または物理的設計の輪郭、形状、および/もしくはいかなる他の態様を記述するCADモデルを含んでもよい。
【0068】
一部の実例では、計算システム1100が、第一の画像情報を上で論じた様々なテンプレートと比較することによって、物体に対応する物体タイプを決定して、第一の画像情報が、様々なテンプレートのいずれと合致するかを判定しうる。第一の画像情報が、物体(例えば、3722)の外観を表す2D画像を含むか、または形成する場合、計算システム1100は、2D画像またはその一部分(例えば、
図6Bの画像部分6021/6022)を、テンプレートの視覚的記述情報と比較してもよい。一部の実例では、第一の画像情報が、物体構造の一部分を記述する(例えば、物体長さおよび物体幅を記述する)、3D画像情報を含む場合、計算システム1100が、3D画像情報または他の記述を、テンプレートの物体構造の記述(構造記述情報とも呼ぶ)と比較しうる。
【0069】
一部の状況では、ステップ5004が、第一の画像情報またはその一部分によって表される物体について、物体タイプを決定することを伴う場合、このステップで決定された物体タイプは、物体タイプについての初期推定となりうる。より詳細には、第一の画像情報が、物体構造のある部分、例えば、その外側側部表面などの記述を欠く場合、第一の画像情報を使用してテンプレートを合致させることによって、確実性がほんの中または低レベルとなる結果につながりうる。一部のシナリオでは、第一の画像情報は、特に複数のテンプレートが、それぞれの物理的設計のある部分(例えば、頂部)についての類似性を共有する、視覚的記述情報または物体構造の記述を有する場合、それらのテンプレートに合致しうる。ステップ5012および5014に関して以下でより詳細に論じるように、計算システム1100は、第二の画像情報を使用して、別のテンプレート合致操作を行ってもよく、この操作はより成功し、および/またはより高いレベルの確実性を持つ結果につながる場合がある。
【0070】
実施形態では、計算システム1100が、物体構造の第一の推定に基づいて、動作計画を決定するように構成されうる。一部のシナリオでは、動作計画が、ステップ5004の直後またはすぐ後に決定される、初期動作計画であってもよい。こうしたシナリオでは、計算システム1100はさらに、以下でより詳細に論じるように、更新された動作計画である、ステップ5016の動作計画を生成してもよい。一部のシナリオでは、方法5000は、物体構造についての第一の推定に基づく、初期動作計画の決定を省略してもよい。しかしながら、こうした初期動作計画が生成される場合、それには、ロボット(例えば、3300)またはその一部分(例えば、ロボットアーム3400および/またはエンドエフェクタ装置3500)についての計画的動作、すなわちより具体的には、一つ以上の動作のセットを含みうる。計画的動作は、ロボット(例えば、3300)と、ステップ5004で決定された物体構造に対応する物体(例えば、3722)との間に相互作用を引き起こすように使用されてもよい。こうした例では、動作コマンドを物体相互作用動作コマンドと呼んでもよい。相互作用には、例えば、物体を拾い上げ、物体を目的位置に移動する、ロボット(例えば、3300)のエンドエフェクタ装置(例えば、3500)を含んでもよい。一部の実例では、計画的動作によって、エンドエフェクタ装置(例えば、3500)について所望の動作を描いてもよい。例えば、計画的動作によって、エンドエフェクタ装置(例えば、3500)が追尾する軌道を描いてもよい。一部の実施では、計画的動作は、より具体的には、ロボットアームの連結部を接続する様々なジョイント、または連結部を作動させるように構成される、様々なモーターもしくは他のアクチュエーターの動作など、ロボットアーム(例えば、3400)の様々な構成要素の動作を記述してもよい。
【0071】
一部の実例では、動作計画が、エンドエフェクタ装置(例えば、3500)または他の構成要素が追尾する軌道を含む場合、計算システム1100は、軌道に対して終点を決定してもよい。終点は、例えば、ロボット(例えば、3500)またはその構成要素(例えば、エンドエフェクタ装置3500)が動作を停止し、ある特定の物体(例えば、3722)との相互作用を終了する位置(またはより具体的には姿勢)を指定してもよい。相互作用の終了は、例えば、エンドエフェクタ装置(例えば、3500)のグリップからの物体の解放を伴いうる。一部の実施では、計算システム1100が、物体についての物体高さに基づいて軌道の終点を決定してもよく、物体高さは、物体構造の第一の推定から決定されたものでありうる。
【0072】
より詳細には、計算システム1100が、物体高さの推定値に基づいて最終エンドエフェクタ高さを決定し、最終エンドエフェクタ高さ(決定された最終エンドエフェクタ高さ、または計画的最終エンドエフェクタ高さとも呼ぶ)に基づいて軌道の終点を決定しうる。決定された最終エンドエフェクタ高さが、エンドエフェクタ装置(例えば、3500)が物体(例えば、3722)との相互作用を解除するか、またはそうでなければ停止するときの、エンドエフェクタ装置の高さを指してもよい。一部のシナリオでは、決定された最終エンドエフェクタ高さは、目的位置に対して相対的に表現されうる。目的位置が、物体を受け取る目的地構造の一部である場合、目的位置は、物体と目的地構造との間の最も早いもしくは初期の接触が生じるであろう、目的地構造の位置またはエリアを指しうる。例えば、目的地構造が、1セットのローラーを有するローラーコンベヤである場合、目的位置で、エンドエフェクタ装置(例えば、3500)が、ローラーコンベヤに向かって物体を低くする軌道中、最初に物体に接触することになるため、この位置は、ローラーのうちの一つ以上の最も高い位置であってもよい。目的地構造が、例えば、上部表面を有するコンベヤベルトまたは床である場合、目的位置は、上部表面または床上の位置であってもよい。最終エンドエフェクタ高さは、例えば、物体の底部分(例えば、底部外表面)が、目的位置と接触するときに、エンドエフェクタ装置(例えば、3500)が有するように計画されるか、または有する可能性の高い高さを表しうる。より詳細には、最終エンドエフェクタ高さは、エンドエフェクタ装置(例えば、3500)の動作が終了するときに、エンドエフェクタ装置が有するべき高さを表しうる。したがって、計算システム1100が、最終エンドエフェクタ高さに基づいて、軌道の終点を決定しうる。一部のシナリオでは、計算システム1100が、ある特定の物体(例えば、3722)の物体構造についての第一の推定からでありうる、物体高さの推定値に等しいか、または推定値に基づくように、最終エンドエフェクタ高さを決定してもよい。しかしながら、上述のように、物体構造の第一の推定からの物体高さの推定値は、精度を欠く場合がある。結果として、物体構造の第一の推定が、最終エンドエフェクタ高さの信頼性、および計算システム1100によって決定される軌道に影響を与えうる。以下でより詳細に論じるように、計算システム1100が、ステップ5014で物体構造について第二の推定を決定しうる。第二の推定は、より高い精度を提供する場合があり、ステップ5016でより信頼性の高い動作計画を決定するために使用されうる。
【0073】
図5に戻ると、方法5000は実施形態で、計算システム1100が、物体構造のコーナー、すなわちより具体的には、物体構造の外部コーナーまたは凸コーナーを識別しうる、ステップ5006を含んでもよい。一部のシナリオでは、物体構造のコーナー(物体コーナーとも呼ぶ)が、物体構造の第一の推定に基づいて、または第一の画像情報に基づいて決定されうる。一部のシナリオでは、物体コーナーの決定が、物体コーナーの正確なまたはおおよその位置の決定を伴ってもよい。例えば、計算システム1100が、3D座標[X
3722A1 Y
3722A1 Z
3722A1]を持つ
図6Cの位置3722A
1を、物体3722の物体コーナーと識別してもよい。一部の実例では、コーナーの識別は、点群からの頂点(輪郭点とも呼ぶ)の識別、および頂点に基づく凸コーナーの識別を伴いうる。凸コーナーの識別については、米国特許出願第16/578,900号(MJ0037-US/0077-0006US1)で詳細に論じており、参照によりその内容全体が本明細書に組み込まれる。
【0074】
実施形態では、物体構造の第一の推定が、複数の物体コーナーについて記述する場合、ステップ5006で計算システム1100が、複数の物体コーナーの中から選択してもよい。例えば、
図6Bおよび6Cに描写する第一の画像情報に基づきうる、
図6Aの物体3722の物体構造についての第一の推定は、例えば、位置3722A
1、3722A
4、3722A
5、および3722A
nに対応する複数のコーナーについて記述してもよい。一部の実施では、計算システム1100が、(i)複数の物体コーナーが経験するそれぞれの遮蔽量、または(ii)エンドエフェクタ装置(例えば、3500)による複数の物体コーナーへのそれぞれの到達可能度のうちの少なくとも一つに基づいて、選択を行ってもよい。例えば、計算システム1100が、ステップ5006で識別したコーナーとして、複数の物体コーナーの中で経験している遮蔽が最も少なく、および/またはエンドエフェクタ装置による到達可能度が最高レベルである、物体構造の物体コーナーを選択するように構成されうる。
【0075】
再び
図5を参照すると、方法5000は実施形態で、計算システム1100が、
図7Aのカメラ姿勢など、第二のカメラ姿勢を決定しうる、ステップ5008を含んでもよい。第二のカメラ姿勢は、カメラ(例えば、3200)によって採用されたとき、ステップ5006で決定した物体構造のコーナーにカメラ(例えば、3200)を向かせる、カメラ(例えば、3200)のある特定の位置および配向の組み合わせを含みうる。例えば、
図7Aに描写する第二のカメラ姿勢によって、カメラ3200を
図6Aの物体3722のコーナーに向かせてもよく、物体コーナーは、
図6Cの位置3722A
1に対応してもよい。第二のカメラ姿勢によって、カメラ(例えば、3200)が第一のカメラ姿勢であったときに、以前はカメラの視線内になかった、外側側部表面などの外表面にもカメラを向かせてもよい。言い換えれば、カメラ(例えば、3200)は、第一のカメラ姿勢を有するとき、第二の外表面(例えば、側部外表面)を包含することなく、物体構造の第一の外表面(例えば、頂部外表面)を包含するカメラ視野(例えば、3202)を有しうる。カメラが第二のカメラ姿勢に移動すると、カメラ視野が、代替的または追加的に第二の外面を包含しうる。実施形態では、第二のカメラ姿勢によって、第一のカメラ姿勢の視点または眺望に対して、カメラ3200に異なる眺望または視点を提供しうる。より詳細には、第二のカメラ姿勢によって、以下でより詳細に論じるように、物体3722についての物体構造の斜視図を、カメラ3200に提供しうる。
【0076】
図5に戻ると、方法5000は実施形態で、計算システム1100によって、カメラ(例えば、3200)を第二のカメラ姿勢に移動させる、ステップ5010を含んでもよい。例えば、計算システム1100は、カメラ(例えば、3200)が取り付けられている、ロボットアーム(例えば、3400)および/またはエンドエフェクタ装置(例えば、3500)に、第二のカメラ姿勢にカメラを移動させるための、一つ以上のモータコマンドなど、一つ以上の動作コマンドを生成するように構成されてもよい。計算システム1100が、カメラ配置動作コマンドと呼びうる、一つ以上の動作コマンドを、計算システム1100の通信インターフェース(例えば、
図2Bの1130)を介して、ロボット(例えば、3300)へ出力してもよい。ロボット(例えば、3300)は、一つ以上のカメラ配置動作コマンドを受信すると、それらを実行して、カメラ(例えば、3200)を第二のカメラ姿勢に移動させるように構成されてもよい。
【0077】
図5に戻ると、方法5000は実施形態で、計算システム1100が第二の画像情報を受信しうる、ステップ5012を含んでもよい。この例では、第二の画像情報の少なくとも一部分は、
図7Aの物体3722など、ステップ5006ならびに5008の物体および物体コーナーに対応する、物体構造を表す。第二の画像情報は、カメラ(例えば、3200)が
図7Aに示す第二のカメラ姿勢を有する間に、カメラ(例えば、3200)によって生成されてもよい。第二の画像情報は、物体(例えば、3722)の外観を記述する2D画像、および/または物体について物体構造を記述する3D画像情報を含みうる。一部の実例では、第二の画像情報が、物体構造によって形成される積み重ね構造を記述しうる。こうした例では、物体構造は、第二の画像情報の一部分によって表されてもよい。例えば、
図7Bは、第二の画像情報が、物体3722の外観、すなわちより広くは、物体3722を含む積み重ね3720の外観を記述する、2D画像7082を含む実施形態を示す。加えて、
図7Cは、第二の画像情報が、物体3722について物体構造を記述する、およびより広くは、積み重ね3720についての積み重ね構造の、3D画像情報7084を含む、実施形態を描写する。
【0078】
より詳細には、
図7Bの2D画像7082は、
図7Aおよび6Aの積み重ね3720の様々な物体3721~3726の斜視図を表しうる。
図7Bに描写するように、画像7082は、積み重ね3720が配置された、
図7のパレット3728の外観を表す、画像部分7028(例えば、ピクセルの領域)を含んでもよく、斜視図からそれぞれ物体3721から3726のそれぞれの外観を表す、画像部分7021から7026を含みうる。
図6Bに示す第一の画像情報は、物体の第一の外表面を表す画像部分(例えば、6022)を含んでもよい一方、
図7Bに示す第二の画像情報は、第一の画像情報では見えない、すなわちより広くは表されない、一つ以上のさらなる外表面を表す画像部分(例えば、7022)を含んでもよい。例えば、第一の画像情報が、物体3722の構造の縁表面、すなわちより広くは、頂部表面(頂面とも呼ぶ)を表してもよく、一方で第二の画像情報は、第一の画像情報によっては表わされない、物体3722の構造の第一の外側側部表面および第二の外側側部表面(第一の側面および第二の側面とも呼ぶ)を表してもよい。特定の状況では、物体3722などの積み重ね3720の中の一つ以上の物体は、外側側部表面上に2D模様または3D模様を有してもよい。2D模様は、例えば、外側側部表面上に現れる視覚的模様または他の視覚的詳細(例えば、ロゴまたは絵柄)を含んでもよく、一方3D模様は、例えば、
図3Aおよび3Bに描写する隆線模様など、外側側部表面から突出する隆線または突出部の模様(まとめて隆線模様とも呼ぶ)を含んでもよい。2D模様または3D模様が、第一の画像情報の中に部分的もしくは完全に隠されるか、またはそうでなければ第一の画像情報から部分的もしくは完全に省略されてもよいが、第二の画像情報でより完全に表されうる。
図7Bの例では、第二の画像情報はまた頂部外表面も表しうる。一部の状況では、第二の画像情報に表される一つ以上のさらなる表面が、第一の外表面に垂直であっても、第一の外表面に対して傾斜していても、またはより広くは、第一の外表面に非平行であってもよい。
【0079】
実施形態では、第二の画像情報が3D画像情報を含む場合、3D情報は、カメラ視野(例えば、
図7Aの3202)の中に一つ以上の物体表面上の様々な位置を記述する、複数の3D座標を含んでもよい。例えば、
図7Cは、パレット3728の表面(例えば、頂部表面)上の位置3728
1から3728
nの3D座標、および物体3721から3726の一つ以上の物体表面上の様々な位置の3D座標を含む、3D画像情報7084を描写する。一つ以上の表面には、例えば、頂部外表面(例えば、縁表面)、一つ以上の内側側部表面、底部内表面、および/または一つ以上の外側側部表面を含んでもよい。例として、
図7Dは、3D情報7084の一部分を描写し、その一部分が、物体3722の縁表面上にある位置3722A
1から3722A
n、物体3722の底部内表面上にある位置3722B
1から3722B
2、物体3722の第一の外側側部表面(物体の外側側部表面とも呼ぶ)上にある位置3722C
1から位置3722C
n、および物体3722の第二の外側側部表面上にある位置3722D
1から3722D
nを含む、物体3722の様々な表面上にある位置の3D座標を含む。3D座標の各々は、例えば、カメラ(例えば、3200)が第二のカメラ姿勢、または何らかの他の座標系にあったときの、カメラの座標系における[X Y Z]座標であってもよい。一部のシナリオでは、第二の画像情報が、上で論じた位置のそれぞれの奥行き値を記述する、奥行きマップを含んでもよく、計算システム1100が、それぞれの奥行き値に基づいてそれらの位置の3D座標を決定するように構成されてもよい。
【0080】
図5に戻ると、方法5000は実施形態で、計算システム1100によって、第二の画像情報に基づいて物体構造の第二の推定(例えば、物体3722について)を決定する、ステップ5014を含みうる。物体構造についての第二の推定が、例えば、物体構造、物体寸法の推定値、および/または物体形状の推定を記述する点群を含んでもよい。物体構造についての第二の推定が点群を含む場合、ステップ5014は、点群への3D座標の挿入または追加を含んでもよく、3D座標は、第二の画像情報に含まれるか、または第二の画像情報に基づいて決定されうる。一部のシナリオでは、物体構造の第二の推定の決定には、広範囲の点群の生成または更新を伴いうる。ステップ5004に関して上で論じたように、広範囲の点群が、一部の実例では、第一の画像情報に含まれる、または第一の画像情報に基づいて決定される、3D座標を既に含んでもよい。
図6Cに示すように、これらの3D座標が、例えば、物体3722の縁表面上の位置3722A
1から3722A
nなど、物体構造の第一の外表面上の位置を表しうる。一部のシナリオでは、3D座標はまた、物体3722の底部内表面上の位置3722B
1から3722B
nなど、内表面上の位置を表してもよい。こうした例では、ステップ5014の計算システム1100によって、広範囲の点群へ、物体構造上の他の表面および/もしくは他の位置を表す、3D座標を挿入または追加してもよい。例えば、
図7Dに示すように、広範囲の点群を更新するように使用される3D座標は、物体3722の第一の外側側部表面上の位置3722C
1から位置3722C
n、および物体3722の第二の外側側部表面上の位置3722D
1から3722D
nを表しうる。一部のシナリオでは、ステップ5004が、第一の画像情報に基づいて初期の広範囲の点群を生成することを伴う場合、ステップ5012および5014の第二の画像情報から追加または挿入された3D座標は、ステップ5004の初期の広範囲の点群によっては記述されない、一つ以上の表面(例えば、外表面)を表しうる。こうした例では、ステップ5012で、初期の広範囲の点群を更新して、更新された広範囲の点群を生成してもよい。上述のように、物体3722が、その外側側部表面上に3D模様(例えば、隆線模様)を有する場合、第一の画像情報は、3D模様に関する情報を欠いていてもよく、その結果、初期の広範囲の点群では3D模様の記述が省略されうる。第二の画像情報は、更新された広範囲の点群が、物体3722の外側側部表面上に3D模様を表すように、3D模様を取り込むか、またはそうでなければ表してもよい。第二の画像情報に含まれる3D座標が、初期の広範囲の点群によって使用される座標系とは異なる座標系を使用する場合、計算システム1100は、初期の広範囲の点群の座標系で表現されるように、3D座標を変換し、変換された3D座標を初期の広範囲の点群の中へ追加または挿入することによって、初期の広範囲の点群を更新するように構成されうる。
【0081】
一部の実例では、物体構造の第二の推定が、物体寸法に対する推定値を含む場合、推定された物体寸法は、物体構造の第一の推定によっては記述されない寸法であってもよい。例えば、ステップ5004で決定された物体構造についての第一の推定は、第一の物体寸法(例えば、物体長さ)に対する推定値、および第二の物体寸法(例えば、物体幅)に対する推定値を含みうるが、第三の物体寸法(例えば、物体高さ)に対する推定値を欠いていてもよい。この例では、物体構造についての第二の推定が、第三の物体寸法(例えば、物体高さ)に対する推定値を含んでもよい。一部の実例では、ステップ5004で決定された物体構造の第一の推定は、第三の物体寸法に対する推定値を既に含んでもよいが、この推定値は不正確である可能性がありうる。上で論じたように、この不正確さは、ステップ5004が物体構造の平面図に基づいてもよいために生じうる。ステップ5004が、物体構造の平面図に基づく、物体高さに対する推定値の決定を伴う場合、こうした推定値は、高い精度または高度の確実性を欠く場合がある。こうした例では、ステップ5014を使用して、以下でより詳細に論じるように、その物体寸法に対して更新された推定値を生成してもよい。更新された推定値は、より高い精度またはより高度な確実性を有しうる。
【0082】
実施形態では、計算システム1100が、3D座標に基づいて、物体高さなどの物体寸法に対する推定値を決定するように構成されうる。これらの3D座標は、広範囲の点群の中にあってもよく、第二の画像情報に含まれるか、または第二の画像情報に基づいて決定される、3D座標を含んでもよい。例として、計算システム1100は、3D座標[X3722An Y3722An Z3722An]および[X3722Dn Y3722Dn Z3722Dn]など、3D座標のうちの二つの間の差に基づいて、物体3722の構造に対する物体高さの推定値を決定しうる。より詳細には、この例の計算システム1100は、Z3722An~Z3722Dnに等しいか、またはそれに基づくように、物体高さに対する推定値を決定しうる。この例では、3D座標[X3722An Y3722An Z3722An]が、物体3722の頂部を形成しうる、物体3722の縁表面または他の頂部外表面上の位置を表してもよく、一方3D座標[X3722Dn Y3722Dn Z3722Dn]が、物体3722の底部分の一部である位置を記述してもよい。より詳細には、3D座標[X3722Dn Y3722Dn Z3722Dn]が、物体3722の外側側部表面上にあり、かつ物体3722の底部外側側部表面近くにある位置を表しうる。一部のシナリオでは、物体構造についての第一の推定が既に、第一の画像情報に基づく推定値など、物体寸法(例えば、物体長さまたは物体幅)に対する推定値を含む場合、ステップ5014が、物体寸法に対する更新された推定値の決定を伴ってもよく、更新された推定値は第二の画像情報に基づく。
【0083】
実施形態では、ステップ5014における物体構造についての第二の推定の決定が、物体3722など、物体構造に対応する物体に対して、物体タイプを決定することを伴いうる。上で論じたように、計算システム1100が、様々なそれぞれの物体タイプを記述するテンプレートを記憶するか、またはそうでなければテンプレートにアクセスしてもよい。テンプレートは、CADモデルまたは様々な物体寸法のそれぞれの値など、視覚的記述情報および/または物体構造の記述を含みうる。テンプレートの中の物体構造の記述が、一部の状況で、第一の画像情報および/または第二の画像情報によって提供されるものより、物体の構造についてのより完全な記述を含んでもよく、物体構造についての第二の推定として使用されうる。例えば、第二の画像情報が、ステップ5014の様々なテンプレートと比較するために使用されるべき、十分なレベルの詳細を有して、第二の画像情報がテンプレートのいずれかと合致するかを判定してもよい。テンプレートの一つが第二の画像情報に合致する場合、合致するテンプレートは、第二の画像情報に対してより高いレベルの詳細を有する、物体構造の記述を有しうる。一部のシナリオでは、物体タイプが既に、第一の画像情報に基づいてステップ5004で決定されていてもよいが、こうした決定は、物体タイプについての初期推定として意図されうる。上で論じたように、第一の画像情報を使用してテンプレートの合致を行うと、特に第一の画像情報に、物体構造のある特定部分、例えばその外側側部表面の記述が欠けている場合に、高いレベルの精度または信頼性を欠く結果につながりうる。上で論じたように、第一の画像情報が、物体構造の外側側部表面上の2D模様または3D模様についての記述を欠いていてもよい。一方で、第二の画像情報が、物体構造の側部表面上にある2D模様、3D模様、もしくは他の視覚的詳細もしくは構造細部を取り込むか、または他の方法で表してもよい。またステップ5014も、テンプレートの合致を行うことを伴う場合、ステップ5014で、第一の画像情報に含まれていない、または第一の画像情報から省略されている、物体構造のある特定部分を記述することによって、第一の画像情報を拡張しうる、第二の画像情報を使用するため、このステップは、より高いレベルの精度または確実性を持つ結果につながりうる。一部のシナリオでは、第二の画像情報が、テンプレートの合致に特に有用でありうる、物体構造の複数の外側側部表面など、物体構造の一部分を表してもよい。より詳細には、第二の画像情報が、物体構造の一つ以上の側部表面上にある、視覚的詳細(例えば、視覚的な模様)または構造細部(例えば、隆線模様)を記述しうる。特にロボット相互作用を受ける、異なるタイプの容器または他の物体のうちの多くが、類似するサイズを有するとき、第二の画像情報によって記述される、この視覚的詳細または構造細部によって、テンプレートが合致する精度または有効性を改善しうる。こうした状況では、物体のサイズは、多くのテンプレートのうちのそれぞれの物体構造の記述に合致してもよく、多くのテンプレートの各々が、異なる物体タイプに関連付けられうる。しかしながら、第二の画像情報によって表される、物体の側部表面上の視覚的詳細または構造細部(例えば、隆線模様)は、一つのテンプレートまたはくつかのテンプレートの視覚的記述情報もしくは物体構造の記述にのみ合致してもよく、それゆえ物体(例えば、3722)が属しうる物体タイプが絞り込まれる。したがって、第一の画像情報より優れた物体の側部表面の記述を提供しうる、第二の画像情報の中の視覚的詳細または構造細部によって、テンプレートが合致する精度または有効性が改善し、どの物体タイプが第二の画像情報によって表される物体に関連付けられるかを決定する、精度および有効性を改善しうる。
【0084】
上述のように、パレット3728は実施形態で、多種多様のサイズを有しうる、容器または他の物体を積み重ねるように使用されてもよい。多種多様の物体サイズは、多種多様の積み重ね構成をもたらしうる。言い換えれば、異なるパレットは、容器または他の物体がどのように配設されるかについて、著しく異なる積み重ね構成を有してもよい。したがって、計算システム1100が、物体をパレットから除去するように、動作計画を決定している場合、物体の位置(例えば、物体のコーナーまたはエッジの位置)は、広範に可能な値を有しうる。したがって、第二の画像情報は、計算システム1100によって利用されて、物体の位置、および/または物体の何らかの他の特性(例えば、サイズ)の微細/正確な検出を行うことができるため、特に有用でありうる。
【0085】
実施形態では、第二の画像情報が、
図3A/6Aのロボット1300/3300、すなわちより具体的には、エンドエフェクタ装置3500によって握られる、物体(例えば、3722)上の位置または部分でありうる、グリップ点を識別するように、計算システム1100によって使用されてもよい。これらのグリップ点は、以下でより詳細に論じるステップ5016中に決定される、動作計画の一部として識別されてもよい。上述のように、エンドエフェクタ装置3500が、一部のシナリオで、容器の縁の一部分など、物体の一部分の周辺で固定するか、または一部分を挟むグリッパフィンガーを含んでもよい。一部の状況では、グリップ点が、高い精度および高度の信頼性で決定される必要がありうる。例えば、物体の破損部分に、またはその近くにグリップ点を有することは、握るのが難しいか、または握りが不安定となる結果をもたらしうるため、グリップ点の決定には、物体のいずれの部分(例えば、物体3722の容器の縁上のいずれかの部分)が破損しているか、アクセスできないか、またはそうでなければ握るのが難しいかを考慮する必要がある場合があり、そのためグリップ点が、物体のその部分に、もしくはその近くに配置されるか、または他の方法で位置付けられる。第二の画像情報によって、物体の破損部分を識別するように、計算システム1100に十分な精度が提供され、グリップ点を充分に高いレベルの信頼性および精度で決定することが可能になりうる。第二の画像情報はまた、エンドエフェクタ装置3500がグリップ点にアクセスするのを阻止するであろう、隣接する物体の存在または位置付けによってなど、アクセスできないグリップ点を排除するためにも使用されうる。
【0086】
一部の実施では、第二の画像情報が、物体(例えば、3722)を表す2D画像を含むか、または形成する場合、計算システム1100は、2D画像またはその一部分(例えば、
図7Bの画像部分7022)を、上で論じたテンプレートの視覚的記述情報と比較してもよい。こうした比較は、2D画像またはその一部分によって表される物体外観が、テンプレートのうちの一つの視覚的記述情報と合致するかを決定するために使用されうる。一部の事例では、第二の画像情報が、3D画像情報(例えば、
図7Cの7084)を含む場合、テンプレートの合致は、物体の構造(例えば、
図7Dの一部分)を表す3D画像情報または3D画像情報の一部分と、テンプレートの各々の物体構造の記述との比較に基づいて行われてもよい。一例では、テンプレートの合致には、テンプレートの物体構造の記述を、第二の画像情報および第一の画像情報に基づきうる、上で論じた広範囲の点群と比較することを伴ってもよい。
【0087】
図5に戻ると、方法5000は実施形態で、計算システム1100が、少なくとも物体構造の第二の推定に基づいて動作計画を生成する、ステップ5016を含んでもよい。ステップ5016で生成される動作計画は、ロボットと、推定される物体構造に関連付けられる物体(例えば、3722)との間に、ロボット相互作用を引き起こすためであってもよい。相互作用は、例えば、エンドエフェクタ装置(例えば、3500)が、物体(ターゲットの物体とも呼ぶ)に接近し、ターゲットの物体を拾い上げ、ターゲットの物体を目的位置に移動することを伴いうる。一部の事例では、ステップ5016で生成された動作計画が、上で論じたように、物体構造についての第一の推定に基づく初期動作計画を更新する、更新された動作計画であってもよい。一部のシナリオでは、ステップ5016の前に初期動作計画を生成することで、ロボット相互作用をより時宜にかなうように実行するのを容易にしうる。例えば、初期動作計画の生成には、計算の実施、または更新された動作計画が決定されるときに、再使用可能な情報の決定を伴いうる。こうした計算または決定がすべて、ステップ5016中になされる場合、カメラ(例えば、3200)が第二の画像情報を生成するときと、動作計画が第二の画像情報に基づいて生成されるときとの間に過度の時間差がある、シナリオが存在しうる。こうした時間差によって、ロボット相互作用の実行が遅延しうる。こうしたシナリオでは、それらの計算または決定のうちの少なくとも一部が、第一の画像情報に基づいて、初期動作計画を決定する一環として行われうる。これらの計算が、ステップ5016の前に行われてもよく、それゆえ、ステップ5016で更新された動作計画を生成するために必要な時間を減らしうる。しかしながら、一部の実施形態では、方法5000で、物体構造の第一の推定に基づく、初期動作計画の決定を省略してもよい。
【0088】
実施形態では、ステップ5016で決定される動作計画に、ロボット(例えば、3300)のエンドエフェクタ装置(例えば、3500)が追尾する軌道を含みうる。例えば、
図8Aは、エンドエフェクタ装置3500が追尾するとき、エンドエフェクタ装置3500を、物体3722に接近させ、物体3722を係合させ(例えば、物体3722を拾い上げさせ)、物体を目的位置8004に移動させる、例示の軌道8010を描写する。一部の実例では、ステップ5016は、エンドエフェクタ装置3500が、上で論じたように、物体を握るか、または他の方法で係合する、グリップ点の決定を含みうる。グリップ点は、物体構造の第二の推定に基づいてもよい。例えば、グリップ点が、物体構造の第二の推定によって示される、物体寸法に基づいて決定されてもよい。例として、物体構造が、少なくとも四つの同一平面上のコーナー(例えば、矩形形状を有する)を含む場合、第一のグリップ点は、物体構造の第一のエッジに沿って位置してもよく、少なくとも四つの同一平面上のコーナーのうちの第一のコーナーと第二のコーナーとの間にあってもよく、一方第二のグリップ点は、物体構造の第二のエッジに沿って位置してもよく、少なくとも四つの同一平面上のコーナーののうちの第一のコーナーと第三のコーナーとの間にあってもよい。第一のグリップ点は、第一のコーナーより第二のコーナーに近くてもよく、一方第二のグリップ点は、第一のコーナーより第三のコーナーに近くてもよい。すなわち、第一のグリップ点が、物体の第一の寸法に対する値の少なくとも予め定義された割合である、第一のコーナーからの距離(例えば、第一のグリップ点から第一のコーナーまでの距離が、物体の幅の寸法値の少なくとも50%)を有してもよく、一方第二のグリップ点が、物体の第二の寸法に対する値の少なくとも予め定義された割合である、第一のコーナーからの距離(例えば、第二のグリップ点から第一のコーナーまでの距離が、物体の長さの寸法値の少なくとも50%)を有してもよい。こうした例のグリップ点によって、均衡を保って、またはそうでなければ安定して物体を握るのが容易になりうる。実施形態では、グリップ点の位置によって、
図3Aおよび3Bに関して上で論じたように、エンドエフェクタ装置(例えば、3500A)に対するグリップサイズを定義するか、または他の方法でグリップサイズに対応してもよい。
【0089】
上で論じた動作計画の例として、
図8B~8Fは、物体3722を拾い上げるために、
図8Aの軌道8010を追尾する、ロボット3300のロボットアーム3400上にあるエンドエフェクタ装置3500を描写する。上述のように、目的位置8004が、物体(例えば、3722)を受け取る目的地構造の一部である場合、目的位置は、物体と目的地構造との間で最も早い接触が生じるであろう位置を指しうる。例えば、目的地構造が、コンベヤベルトであるか、または床である場合、目的位置8004は、コンベヤベルトの上部表面または床上にある位置でありうる。目的地構造が、1セットのローラーを有するローラーコンベヤである場合、目的位置8004は、
図8Fに示すように、ローラーのうちの一つ以上にある最も高い位置でありうる。
【0090】
一部の事例では、軌道(例えば、8010)の決定には、その軌道によって、ロボット相互作用を受ける物体(例えば、3722)と、物体(例えば、3722)および/もしくはロボット(例えば、3300)の環境の中にある物理的要素または品目との間に衝突はもたらされないという検証を伴いうる。物理的要素の例には、壁、支持梁、電力ケーブルなどを含む。衝突が起こらないことの検証は、例えば、ステップ5014から決定されうる、物体(例えば、3722)についての物体構造の推定に基づいてもよい。例えば、計算システム1100が、上で論じた物理的要素のうちのいずれかによっても占有される空間を、軌道(例えば、8010)によって、物体構造に占有させることになるかを判定してもよい。この例では、物体構造によって占有される空間は、上で論じた広範囲の点群、物体構造の推定形状、および/または物体構造の様々な寸法(例えば、長さ、幅、高さ)に対する推定値によって画定されうる。
【0091】
実施形態では、エンドエフェクタ装置(例えば、3500)が、
図4Aおよび4Bに示すグリッパ部材など、少なくとも第一のグリッパ部材、第二のグリッパ部材、および第三のグリッパ部材を含む場合、計算システム1100は、動作計画の一部として、グリッパ部材の動作を決定しうる。例えば、計算システム1100は、第一のグリッパ部材(例えば、3510)に、物体構造の第一のエッジまたは第二のエッジのうちの一つを係合させ、第二のグリッパ部材(例えば、3520)に、物体構造の第一のエッジまたは第二のエッジのうちの別の一つを係合させるための動作を決定することによって、動作計画を生成しうる。第一および第二のエッジは、例えば、互いに垂直であってもよい。決定された動作によってさらに、第三のグリッパ部材(例えば、3530)に、
図6Cの位置3722A
1によって表されるコーナーなど、第二のカメラ姿勢に関連付けられた物体コーナーを係合させてもよく、または第三のグリッパ部材に、物体構造の別の物体コーナーを係合させてもよい。
【0092】
一部の実例では、
図4Aおよび4Bに描写するように、第一のグリッパ部材(例えば、3510)が、エンドエフェクタ装置(例えば、3500A)の第一のレール(例えば、3540)に沿って摺動可能であり、第二のグリッパ部材(例えば、3520)が、第一のレールより長い第二のレール(例えば、3542)に沿って摺動可能である場合、計算システム1100は、第一のグリッパ部材に、物体構造の第一のエッジまたは第二のエッジのうちのより短いエッジを係合させ、第二のグリッパ部材に、物体構造の第一のエッジまたは第二のエッジのうちのより長いエッジを係合させる動作を決定することによって、動作計画を生成するように構成されうる。計算システム1100がさらに、上で論じた一つ以上のアクチュエーターまたは停止機構のメカニズムを制御して、第一のグリッパ部材(例えば、3510)を、第一のレール(例えば、3540)に沿って、動作計画により記述される第一のグリップ点を握ることができる位置まで摺動させ、第二のグリッパ部材(例えば、3520)を、第二のレール(例えば、3542)に沿って、動作計画により記述される第二のグリップ点を握ることができる位置まで摺動させるように構成されうる。
【0093】
実施形態では、ステップ5016は、
図8Aおよび8Fに描写する軌道8010に対する終点8012など、軌道に対する終点の決定を伴いうる。終点は、例えば、ロボット(例えば、3500)またはその構成要素(例えば、エンドエフェクタ装置3500)が動作を停止し、ある特定の物体(例えば、3722)との相互作用を終了する位置(またはより具体的には姿勢)を指定してもよい。相互作用の終了は、例えば、エンドエフェクタ装置(例えば、3500)のグリップからの物体の解放を伴いうる。一部の実施では、計算システム1100が、物体構造の物体高さに基づいてなど、例えば、
図8Aに示すように、物体3722に対する物体高さの推定値h
3722に基づいて、ステップ5014で決定される物体構造の第二の推定に基づいて、軌道の終点を決定してもよい。ステップ5016で決定された動作計画が、更新された動作計画である場合、かつ計算システム1100が既に、第一の終点を有する初期動作計画を決定していた(例えば、第一の画像情報に基づいて)場合、ステップ5016で決定される終点は、更新された終点でありうる。一部の事例では、更新された終点が、物体構造の第一の推定より優れた精度を有しうる、物体構造についての第二の推定に基づきうるため、更新された終点は、ロボット相互作用を行うための第一の終点より信頼性が高い場合がある。
【0094】
図8Aおよび8Fの例では、計算システム1100が、エンドエフェクタ装置3500に対して決定または計画された最終エンドエフェクタ高さに基づいて、軌道8010の終点8012を決定しうる。初期動作計画の決定に関して上で論じたように、最終エンドエフェクタ高さは、物体(例えば、3722)との相互作用を、エンドエフェクタ装置3500が解除するか、もしくは他の方法で停止するときのエンドエフェクタ装置の高さ、および/またはエンドエフェクタ装置3500の動作が終了するときのエンドエフェクタ装置の高さを指しうる。一部の事例では、最終エンドエフェクタ高さが、上で論じた目的位置(例えば、8004)に対して相対的に表現されうる。実施形態では、計算システム1100が、物体に対する物体高さの推定値に基づいて、最終エンドエフェクタ高さを決定してもよく、推定値は、第二の画像情報に基づいてステップ5014で決定されうる。一部の事例では、
図8Aの計算システム1100が、物体3722に対する物体高さの推定値h
3722と等しいか、またはそれに基づく量だけ、目的位置8004の上方となる高さになるように、最終エンドエフェクタ高さを決定してもよく、推定値h
3722は、ステップ5014で決定される物体3722の物体構造についての第二の推定の一部であるか、またはそれに基づく。より広くは、
図8Aの計算システム1100が、推定値h
3722と等しいか、またはそれに基づく距離だけ、目的位置8004から離れた位置となるように、終点8012を決定してもよい。最終エンドエフェクタ高さに基づいて軌道を生成することによって、エンドエフェクタ装置3500によって運ばれている物体(例えば、3722)の底部分が、目的位置8004上に置かれる(例えば、配置される)か、または他の方法で目的位置8004と接触するのと実質的に同時に、計算システム1100が、エンドエフェクタ装置3500の動作を停止するように、エンドエフェクタ装置3500を制御してもよい。したがって、こうした軌道は、エンドエフェクタ装置3500が動作を停止し、物体を解放するのに特に好適でありうる。
【0095】
実施形態では、計算システム1100は、目的位置で物体(例えば、3722)の到着を検出するように構成されてもよい。例えば、
図8G、8H、および8Iに示すように、ローラーコンベヤ3800は、第一のラインセンサー3811および第二のラインセンサー3812など、一つ以上のセンサー3810を含みうる。第一のラインセンサー3811は、ローラーコンベヤ3800に対して第一の距離(例えば、第一の高さ)に配置されてもよく、一方第二のラインセンサー3812は、ローラーコンベヤ3800に対して第二の距離(例えば、第二の高さ)に配置されてもよい。計算システム1100が、ロボットにエンドエフェクタ装置3500を、ローラーコンベヤ3800の方へ移動させる、制御信号を生成および出力しうる。
図8Hに示すように、第一のラインセンサー3811が、ローラーコンベヤ3800から第一の距離内で、物体3722および/またはエンドエフェクタ装置3500が近接しているという検出を示す第一のセンサー信号を、計算システム1100へ出力しうる。第一のセンサー信号を受信すると、計算システム1100が、ローラーコンベヤ3800へ向かうロボットアーム3400およびエンドエフェクタ装置3500の動作を減速するか、または他の方法で速度を落とすための一つ以上の動作コマンドを(例えば、通信インターフェースを介して)出力しうる。
図8Iに示すように、第二のラインセンサー3812が、ローラーコンベヤ3800から第二の距離内で、物体3722および/またはエンドエフェクタ装置3500が近接しているという検出を示す第二のセンサー信号を、計算システム1100へ出力しうる。第二のセンサー信号を受信すると、計算システム1100が、エンドエフェクタ装置3500の動作を停止させ、および/またはエンドエフェクタ装置3500に、物体3722を解放させるか、もしくは他の方法で係合を解除させるための一つ以上の動作コマンドを出力しうる。
【0096】
図5に戻ると、方法5000は実施形態で、計算システム1100によって、ロボット(例えば、3300)、すなわちより具体的には、ロボットアーム(例えば、3400)および/またはエンドエフェクタ装置(例えば、3500)に、ステップ5016で決定された動作計画に従うことによって、ロボット相互作用を行わせるステップを含みうる。一部の実例では、計算システム1100が、動作計画に基づいて一つ以上の動作コマンドを生成してもよく、例えば、
図2Bの通信インターフェース1130を介して、ロボット(例えば、3300)へ一つ以上の動作コマンドを出力してもよい。一つ以上の動作コマンド(一つ以上の物体相互作用動作コマンドとも呼ぶ)は、ロボット(例えば、3300)によって受信され実行されると、ロボット(例えば、3300)を動作計画に従わせ、上で論じた物体(例えば、3722)とのロボット相互作用を行わせうる。
【0097】
実施形態では、ステップ5016からの動作計画の結果として、ロボット相互作用を受けるか、またはそのターゲットとなる物体は、
図6Aおよび7A~7Cに描写するように、木箱または他の容器の積み重ね3720など、複数の物体のうちの一つであってもよい。その例では、ステップ5016の動作計画に従って移動される物体3722は、
図8A~8Fに示すように、積み重ね3720から目的位置8004に移動される第一の物体であってもよい。こうした例では、ステップ5002および5012で受信される第一の画像情報および第二の画像情報は、積み重ね3720の外観を表し、および/または積み重ねの構造(積み重ね構造とも呼ぶ)を記述してもよい。さらに、計算システム1100が、第一の画像情報および/または第二の画像情報を使用して、積み重ね構造の推定を決定してもよい。例えば、ステップ5004の第一の推定およびステップ5014の第二の推定が、広範囲の点群を含む場合、この広範囲の点群は、より具体的には、積み重ね3720について積み重ね構造を記述してもよく、広範囲の点群の異なる部分が、積み重ね3720を形成する、異なるそれぞれの物体3721~3726を記述してもよい。上の例における広範囲の点群が、上で論じた第一の物体3722を除去する前の、積み重ね3720を表してもよい。実施形態では、方法5000は、物体3721および3723~3726のうちの一つ以上など、積み重ね上のさらなる物体との相互作用を伴いうる。相互作用には、例えば、物体3721、3723~3726の各々を拾い上げ、パレットから降ろす操作の一部として、それらを目的位置(例えば、コンベヤベルト)に移動することを伴いうる。
【0098】
実施形態では、さらなる物体(例えば、3721)との相互作用が、ステップ5016の動作計画に従って移動される、第一の物体(例えば、3722)の除去または他の移動を反映する、更新された積み重ね構造の決定を伴いうる。積み重ね構造のこの更新された推定は、第一の物体(例えば、3722)が、積み重ね(例えば、3720)から移動された後に、追加の画像情報を生成するように、カメラ(例えば、3200)の使用に基づいて決定できる一方で、計算システム1100は、代替的または追加的に、第一の物体(例えば、3722)の物体構造についての第二の推定を使用して、積み重ね3720の積み重ね構造の更新された推定を決定してもよい。
【0099】
例えば、
図9Aは、計算システム1100が、第一の物体(例えば、3722)を除去する前に、積み重ね3720について積み重ね構造の推定を決定した実施形態を示す。積み重ね構造の推定は、例えば、積み重ね3720の輪郭または形状を表す、広範囲の点群であってもよく、
図7Cの3D画像情報7084と同じであっても、または類似してもよい。この例では、計算システム1100が、第一の物体(例えば、3722)について物体構造の推定を決定していてもよい。この推定は、例えば、ステップ5016で決定された物体構造の第二の推定であってもよい。さらに、物体構造のこの推定が、例えば、積み重ね構造に対する広範囲の点群の一部分であってもよい。第一の物体(例えば、3722)の物体構造についての推定が、既に決定されていたため、計算システム1100は、第一の物体に対応する推定の一部分を除去することによって、積み重ね構造についての更新された推定を直接決定しうる。例として、第一の物体(例えば、3722)の物体構造についての推定によって、第一の物体の様々な表面上にある、3D座標を識別してもよい。計算システム1100が、
図9Bおよび9Cに示すように、広範囲の点群からそれらの3D座標をマスクアウトすることによってなど、積み重ね構造を表す広範囲の点群の推定から、これらの3D座標を除去するように構成されてもよい。より詳細には、
図9Bは、積み重ね3720についての広範囲の点群から削除されたか、または他の方法で除去された3D座標を、白丸で描写する。
図9Cは、第一の物体3722を除去した後の、積み重ね3720について更新された推定を表す、結果として生じる広範囲の点群を描写する。
図9Cに示すように、更新された推定は、第一の物体3722をもはや表さず、その代わりに、積み重ね3720から除去される前に、第一の物体3722が以前占有していた、空の空間を表しうる。
【0100】
実施形態では、方法5000が、第一の物体(例えば、3722)を除去した後、積み重ね(例えば、3720)上の第二の物体(例えば、3721)と相互作用することを伴う場合、方法5000は、第二の動作計画の生成を伴いうる。第二の動作計画は、積み重ね構造の更新された推定に基づいて生成されてもよく、エンドエフェクタ装置(例えば、3500)が第二の物体に接近し、第二の物体と係合し、第二の物体を目的位置(例えば、8004)に移動する相互作用など、第二の物体とロボット相互作用を引き起こしうる。一部の事例では、第二の動作計画の生成は、積み重ね構造の更新された推定に基づいて、第一の物体(例えば、3722)の除去によって露出する、積み重ね構造の新しいコーナーの決定を伴いうる。例えば、新しいコーナーは、
図9Bの位置3722A
nによって表されるコーナーなど、第二の物体(例えば、3721)に関連付けられてもよい。したがって、計算システム1100が、積み重ね構造の更新された推定に基づいて、新しい物体コーナーを識別してもよい。
【0101】
上の例では、計算システム1100によって、カメラ(例えば、3200)を第一のカメラ姿勢に戻させ、例えば、第一の物体(例えば、3722)が除去された後の積み重ね(例えば、3720)の平面図を表す、追加の画像情報を生成することができるが、計算システム1100が既に、ステップ5016で第一の物体の物体構造の推定を決定しているため、これを行う必要はない場合がある。言い換えれば、第一の物体(例えば、3722)が、積み重ね(例えば、3720)から除去された後、計算システム1100は、推定された積み重ね構造のどの部分が、第一の物体に対応するかを判定し、その部分をマスクアウトするか、または他の方法で除去することによって、積み重ねについて積み重ね構造の更新された推定を決定しうる。一部の事例では、計算システム1100は、第一の物体の物体寸法に対する推定値を使用し、および/または第一の物体を表す点群を使用して、推定された積み重ね構造のどの部分が、第一の物体に対応するのかを判定してもよい。積み重ね構造の更新された推定を生成した後、計算システム1100が、積み重ね構造の更新された推定を使用して、残っている物体の物体コーナーを識別しうる。実施形態では、計算システム1100は特に、残っている物体の凸コーナー(例えば、外部コーナー)を識別してもよい。こうしたコーナーはまた、例えば、積み重ねの凸コーナーであってもよい。一部の事例では、
図9Cにある位置3721A
nのコーナーなど、残っている物体のうちの一つのコーナーが、第一の物体(例えば、3722)の除去後、凸コーナーになりうる。より詳細には、そのコーナーは、第一の物体(例えば、3722)に直接隣接していてもよく、第一の物体の除去によって露出するようになったものであってもよい。計算システム1100は、上で論じた新しい物体コーナーを、残っている物体の凸コーナーの中から選択しうる。
【0102】
実施形態では、新しい物体コーナーは、積み重ね(例えば、3720)から除去される、第二の物体(例えば、3721)の斜視図を表す画像情報を得るために使用されうる。例えば、計算システム1100が、カメラ(例えば、3200)を新しい物体コーナーに向ける、追加のカメラ姿勢を決定しうる。計算システム1100が、ステップ5006~5016を繰り返して、カメラを追加のカメラ姿勢に移動させてもよく、カメラ(例えば、3200)が追加のカメラ姿勢を有する間に、カメラによって生成される追加の画像情報を受信してもよい。この例では、計算システム1100は、ステップ5014および5016と同じまたは類似の方式で、第二の物体(例えば、3721)とロボット相互作用を引き起こすための第二の動作計画を生成するように、追加の画像情報を使用しうる。
【0103】
上述のように、本出願の一態様は、ロボットが物体を現在の位置から目的位置に移動する相互作用に関する。
図10は、物体(例えば、
図8Aおよび8Bの3722)を移動するための、例示的な方法10000についてのフロー図を描写する。方法10000は、例えば、
図2A~2Dの計算システム1100によって行われうる。実施形態では、方法10000は、計算システムが移動する物体を選択する、ステップ10002で始まるか、またはそうでなければステップ10002を含んでもよい。例えば、計算システム1100が、移動させる容器または他の物体を選択し、ロボットを物体に係合させ、目的位置に移動させるための動作計画を決定しうる。動作計画は、エンドエフェクタ装置(例えば、3500)をロボット(例えば、3300)によって低くして、物体に接近し、物体のエッジまたはコーナーと整列し、物体を握る軌道を含みうる。
【0104】
方法10000は実施形態で、計算システム1100が、ロボットにエンドエフェクタ装置(例えば、3500)を物体の真上に配置させるか、または別の方法で位置付けさせるための一つ以上の動作コマンドを出力しうる、ステップ10004を含んでもよい。実施形態では、計算システム1100が、物体と係合するときに、
図8Aのカメラ3200によって生成される画像情報を使用して、物体、例えば、物体3722の位置を決定または検証してもよい。物体の位置が決定すると、計算システム1100が、
図8Bに示すように、ロボット3300に、エンドエフェクタ装置3500を物体3722の真上に配置させる、一つ以上の動作コマンドを生成し出力してもよい。実施形態では、計算システム1100によって、エンドエフェクタ装置3500の底部表面が物体3722に面するように、ロボット3300にエンドエフェクタ装置3500を配向させてもよい。
【0105】
ステップ10006では、計算システム1100によって、ロボット(例えば、3300)のエンドエフェクタ装置(例えば、3500)に、物体を握らせる、または別の方法で係合させてもよい。実施形態では、ステップ10006が、エンドエフェクタ装置3500を、物体の方に、またはより広くは、
図8Cに示すように、負のZ方向に低くさせるための一つ以上の動作コマンドの生成を伴ってもよい。実施形態では、計算システム1100が、上で論じたように、物体(例えば、3722)のサイズに基づいて、エンドエフェクタ装置(例えば、3500)のグリップサイズを調整するために、第一のグリッパ部材(例えば、3510)および第二のグリッパ部材(例えば、3520)のそれぞれ第一のレール(例えば、3540)および第二のレール(例えば、3542)に沿った動作を引き起こすように構成されうる。より詳細には、計算システム1100によって、エンドエフェクタ装置のグリップサイズによって画定される領域を、物体3701のサイズと実質的に合致するか、または別の方法でそれに基づくサイズを有するようにしてもよい。より具体的な例では、計算システム1100が、物体3701上のグリップ点を決定し、決定したグリップ点で物体3701を握ることができるように、第一のグリッパ部材および第二のグリッパ部材の動作を制御してもよい。計算システム1100によってさらに、
図8Dに示すように、エンドエフェクタ装置3500に物体3722を係合させてもよい。
【0106】
ステップ10008では、計算システム1100によって、ロボットに物体を目的位置に移動させてもよい。例えば、計算システム100が、
図8E~8Gに示すように、ロボット3300にエンドエフェクタ装置3500を、コンベヤ3800上の位置などの目的位置に移動させるための、一つ以上の動作コマンドを生成および出力しうる。実施形態では、一つ以上の動作コマンドが、上で論じた動作計画に基づいて生成されうる。
【0107】
ステップ10010では、計算システム1100が、目的位置で物体の到着を検出してもよい。実施形態では、計算システム1100は、
図8Gから8Iに関して上で論じたラインセンサーなど、目的位置にある一つ以上のセンサーを使用して、目的位置で物体の到着を検出してもよい。ステップ10012では、計算システム1100が、ロボット3300のエンドエフェクタ装置3500に目的位置で物体3722を解放させるための、一つ以上の動作コマンドを生成してもよい。
【0108】
様々な実施形態に関する追加の考察
【0109】
実施形態1は、通信インターフェースおよび少なくとも一つの処理回路を備える計算システムに関する。通信インターフェースは、(i)エンドエフェクタ装置を有するロボット、および(ii)エンドエフェクタ装置上に取り付けられ、カメラ視野を有するカメラと通信するように構成される。少なくとも一つの処理回路は、物体がカメラ視野の中にあるか、またはカメラ視野の中にあったとき、物体に関連付けられた、物体構造の少なくとも第一の外表面を表す第一の画像情報を受信することであって、カメラ視野が第一の外表面を包含するように、カメラが第一の外表面に向けられる第一のカメラ姿勢を、カメラが有するとき、第一の画像情報がカメラによって生成されることと、第一の画像情報に基づいて、物体構造の第一の推定を決定することと、物体構造の第一の推定に基づいて、または第一の画像情報に基づいて、物体構造のコーナーを識別することと、カメラによって採用されるとき、カメラ視野が、物体構造のコーナーおよび第二の外表面の少なくとも一部分を包含するように、カメラを物体構造のコーナーに向かせる、第二のカメラ姿勢を決定することと、ロボットによって実行されるとき、エンドエフェクタ装置に、カメラを第二のカメラ姿勢に移動させる、一つ以上のカメラ配置動作コマンドを出力することと、物体構造を表す第二の画像情報を受信することであって、カメラが第二のカメラ姿勢を有する間に、第二の画像情報がカメラによって生成されることと、第二の画像情報に基づいて、物体構造の第二の推定を決定することと、物体構造の少なくとも第二の推定に基づいて、動作計画を生成することであって、動作計画が、ロボットと物体との間にロボット相互作用を引き起こすためであることと、ロボット相互作用を引き起こすための、一つ以上の物体相互作用動作コマンドを出力することであって、一つ以上の物体相互作用動作コマンドが、動作計画に基づいて生成されることと、を行うように構成される。
【0110】
実施形態2は、実施形態1の計算システムを含み、物体構造についての第一の推定が、少なくとも物体構造の第一の物体寸法に対する推定値、および物体構造の第二の物体寸法に対する推定値を含み、物体構造についての第二の推定が、物体構造の第三の物体寸法に対する推定値を少なくとも含む。
【0111】
実施形態3は、実施形態2の計算システムを含み、第一の物体寸法が物体長さであり、第二の物体寸法が物体幅であり、第三の物体寸法が物体高さである。
【0112】
実施形態4は、実施形態2または3の計算システムを含み、物体構造についての第二の推定が、第一の物体寸法に対する更新された推定値、および第二の物体寸法に対する更新された推定値を含む。
【0113】
実施形態5は、実施形態1~4のうちのいずれか一つの計算システムを含み、物体構造についての第二の推定が、物体構造に対する推定形状を含む。
【0114】
実施形態6は、実施形態1~5のうちのいずれか一つの計算システムを含み、物体構造についての第一の推定が、物体構造の第二の外表面上の位置を識別することなく、物体構造の第一の外表面上の位置を識別する、点群を含み、物体構造についての第二の推定が、第一の外表面上の位置、および物体構造の第二の外表面上の位置を識別する、更新された点群を含む。
【0115】
実施形態7は、実施形態1~6のいずれか一つの計算システムを含み、少なくとも一つの処理回路が、第二の画像情報に基づいて、物体に対応する物体タイプを決定することと、物体タイプに関連付けられた、定義された物体構造の記述を判定することであって、物体構造の記述が、物体タイプに関連付けられた構造を記述することと、物体構造の記述に基づいて、物体構造の第二の推定を決定することとによって物体構造の第二の推定を決定するように構成される。
【0116】
実施形態8は、実施形態7の計算システムを含み、少なくとも一つの処理回路が、第二の画像情報と、一つ以上のそれぞれの物体構造の記述を含む、一つ以上のテンプレートとを比較することによって、物体タイプを決定するように構成される。
【0117】
実施形態9は、実施形態1~8のうちのいずれか一つの計算システムを含み、動作計画は、エンドエフェクタ装置が追尾するとき、エンドエフェクタ装置を、物体に接近させ、物体に係合させ、物体を目的位置に移動させる軌道を含む。
【0118】
実施形態10は、実施形態9の計算システムを含み、動作計画が、更新された動作計画であり、少なくとも一つの処理回路が、物体構造の第一の推定に基づいて初期動作計画を生成することと、初期動作計画に基づいて、かつ物体構造についての第二の推定に基づいて、更新された動作計画を生成することと、を行うように構成される。
【0119】
実施形態11は、実施形態9または10の計算システムを含み、物体構造の第二の推定が、物体高さに対する推定値を含み、少なくとも一つの処理回路が、物体高さに対する推定値に基づいて、目的位置に対して最終エンドエフェクタ高さを決定することと、最終エンドエフェクタ高さに基づいて、軌道の終点を決定することと、を行うように構成される。
【0120】
実施形態12は、実施形態1~11のうちのいずれか一つの計算システムを含み、エンドエフェクタ装置が、少なくとも第一のグリッパ部材、第二のグリッパ部材、および第三のグリッパ部材を含むとき、少なくとも一つの処理回路が、第一のグリッパ部材に、物体構造の第一のエッジまたは第二のエッジのうちの一つを係合させ、第二のグリッパ部材に、物体構造の第一のエッジまたは第二のエッジのうちの別の一つを係合させ、第三のグリッパ部材に、第二のカメラ姿勢に関連付けられたコーナーを係合させるか、または物体構造の別のコーナーを係合させる動作を決定することによって、動作計画を生成するように構成される。
【0121】
実施形態13は、実施形態1~12のうちのいずれか一つの計算システムを含み、物体構造の第一の推定が、複数のコーナーを記述するとき、少なくとも一つの処理回路が、複数のコーナーの中よりコーナーを選択するように構成され、選択が、(i)複数のコーナーが経験するそれぞれの遮蔽量、または(ii)エンドエフェクタ装置による複数のコーナーへのそれぞれの到達可能度のうちの少なくとも一つに基づく。
【0122】
実施形態14は、実施形態1~13のうちのいずれか一つの計算システムを含み、物体が、複数の物体の積み重ねの中にある第一の物体であり、動作計画が、第一の物体を積み重ねから除去する第一の動作計画であるとき、少なくとも一つの処理回路が、次の第一の画像情報または第二の画像情報に基づいて、積み重ね構造の推定を決定することであって、積み重ね構造の推定が、第一の物体を除去する前の積み重ねを表すためであることと、物体構造の第二の推定に基づいて、積み重ね構造の更新された推定を決定することであって、積み重ね構造の更新された推定が、第一の物体を除去した後の積み重ねを表すためであることと、積み重ね構造の更新された推定に基づいて、第二の動作計画を生成することであって、第二の動作計画が、積み重ねの第二の物体とのロボット相互作用を引き起こすためであることとを行うように構成される。
【0123】
実施形態15は、実施形態14の計算システムを含み、少なくとも一つの処理回路が、積み重ね構造の更新された推定に基づいて、第一の物体の除去によって露出する、積み重ね構造の新しいコーナーを決定することであって、新しいコーナーが、第二の物体に関連付けられていることと、カメラを新しいコーナーに向ける、追加のカメラ姿勢を決定することと、カメラが追加のカメラ姿勢を有する間に、カメラによって生成される、追加の画像情報を受信することであって、第二の動作計画が、追加の画像情報に基づいて生成されることとによって、第二の動作計画を生成するように構成される。
【0124】
実施形態16は、実施形態15の計算システムを含み、積み重ね構造についての推定が、積み重ね上の位置を記述する点群を含み、少なくとも一つの処理回路が、物体構造にも属する積み重ね上の位置を除去するように、点群を更新することによって、積み重ね構造の更新された推定を決定するように構成され、物体構造にも属する積み重ね上の位置が、物体構造の第二の推定によって識別される。
【0125】
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の適切な修正ならびに適応が、実施形態のうちのいずれの範囲から逸脱することなく成すことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なる順番で行われてもよく、追加、統合、または完全に省略してもよいことも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。したがって、添付の特許請求の範囲に定義するような、発明の精神または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼしてもよい。