(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-27
(45)【発行日】2025-02-04
(54)【発明の名称】物体を把持するためのロボットの作動方法及びロボット
(51)【国際特許分類】
B25J 13/00 20060101AFI20250128BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2023550281
(86)(22)【出願日】2022-02-17
(86)【国際出願番号】 CA2022050229
(87)【国際公開番号】W WO2022174344
(87)【国際公開日】2022-08-25
【審査請求日】2023-10-18
(32)【優先日】2021-02-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-08-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-12-30
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523315304
【氏名又は名称】サンクチュアリー コグニティブ システムズ コーポレーション
【氏名又は名称原語表記】SANCTUARY COGNITIVE SYSTEMS CORPORATION
【住所又は居所原語表記】201-1825 Quebec Street, Vancouver, British Columbia V5T 2Z3 Canada
(74)【代理人】
【識別番号】100169904
【氏名又は名称】村井 康司
(74)【代理人】
【識別番号】100219117
【氏名又は名称】金 亨泰
(72)【発明者】
【氏名】スザンヌ ギルダート
(72)【発明者】
【氏名】オリヴィア ノートン
(72)【発明者】
【氏名】ジョーディー ローズ
【審査官】稲垣 浩司
(56)【参考文献】
【文献】特開2017-80886(JP,A)
【文献】特開2009-184030(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
物体を把持するためのロボットの作動方法であって、
前記ロボットは、
複数の指と、向かい合わせられる親指と、を有するロボットハンドと、
前記ロボットハンドの動作を制御するように作動可能な、少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサ、と通信可能に結合された少なくとも1つのセンサと、
前記少なくとも1つのプロセッサ、と通信可能に結合された、プロセッサにより読み取り可能な非一時的記録媒体と、
を有し、
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、
再利用可能な把持プリミティブのライブラリと、
前記少なくとも1つのプロセッサ、により実行される場合、前記の、再利用可能な把持プリミティブのライブラリ、の前記再利用可能な把持プリミティブを、前記ロボットハンドに自律的に実行させ、プロセッサにより実行可能な命令と、
を記憶し、
前記方法は、
前記少なくとも1つのセンサ、により前記物体に関するデータを収集するステップと、
前記少なくとも1つのプロセッサ、により前記データを解析して、前記物体の形状を決定するステップと、
前記少なくとも1つのプロセッサにより、前記の、再利用可能な把持プリミティブのライブラリの、各再利用可能な把持プリミティブ、を用いて前記物体を把持する前記ロボットハンドを模擬して、前記の、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、前記の、前記物体の形状、に最も適合する、
前記の、再利用可能な把持プリミティブのライブラリの、特定の再利用可能な把持プリミティブ、
を決定するステップと、
前記ロボットハンドにより、前記物体を把持するため、前記特定の再利用可能な把持プリミティブを実行するステップと、
有する、方法。
【請求項2】
前記の、
前記ロボットハンドにより、前記物体を把持するため、前記特定の再利用可能な把持プリミティブを実行するステップ、
は、前記ロボットハンドに前記特定の再利用可能な把持プリミティブを自律的に実行させて前記物体を把持させる、プロセッサにより実行可能な命令、を前記少なくとも1つのプロセッサにより実行するステップ、を含む、
請求項1に記載の方法。
【請求項3】
前記少なくとも1つのセンサは、少なくとも1つの光学センサを含み、
前記の、
前記少なくとも1つのセンサ、により前記物体に関するデータを収集するステップ、
は、前記少なくとも1つの光学センサにより、前記物体に関する光学データを収集するステップを含み、
前記の、
前記少なくとも1つのプロセッサ、により前記データを解析して、前記物体の形状を決定するステップ、
は、前記少なくとも1つのプロセッサ、により前記光学データを解析して、前記の、前記物体の形状、を決定するステップを含む、
請求項1に記載の方法。
【請求項4】
前記少なくとも1つのプロセッサにより、前記物体に関する追加データを解析して、前記物体の少なくとも1つの追加パラメータを決定するステップと、
前記少なくとも1つのプロセッサにより、少なくとも部分的に事項1及び事項2の両方に基づいて、再利用可能な把持プリミティブのライブラリから特定の再利用可能な把持プリミティブを選択する第2ステップと、
をさらに含み、
前記事項1は、前記少なくとも1つのプロセッサによって、前記再利用可能な把持プリミティブのライブラリ内の各再利用可能な把持プリミティブを用いて前記物体を把持する前記ロボットハンドを模擬して、前記再利用可能な把持プリミティブのライブラリ内の他の全ての把持プリミティブと比較して、前記
物体の形状に最も適合する前記再利用可能な把持プリミティブのライブラリ内の前記特定の再利用可能な把持プリミティブを決定することであり、
前記事項2は、前記物体の少なくとも1つの追加パラメータである、
請求項1に記載の方法。
【請求項5】
前記少なくとも1つのセンサにより、前記の、前記物体に関する追加データ、を収集するステップ、
をさらに有し、
前記の、前記物体に関する追加データは、前記物体の硬度と、前記物体の剛性と、前記物体の個性と、前記物体の機能と、前記物体の質量と、から構成されるグループから選択される、
請求項4に記載の方法。
【請求項6】
前記ロボットは、前記少なくとも1つのプロセッサ、と通信可能に結合された少なくとも1つの受信機をさらに有し、
前記方法は、
前記受信機により、前記の、前記物体に関する追加データ、を受信するステップ、
をさらに有する、請求項4に記載の方法。
【請求項7】
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、前記ロボットにより実行されるワーク目標のデータ、をさらに記憶し、前記ワーク目標が前記物体を把持することを含み、
前記少なくとも1つのプロセッサにより、少なくとも部分的に事項1及び事項2の両方に基づいて、再利用可能な把持プリミティブのライブラリから特定の再利用可能な把持プリミティブを選択する第2ステップ、
をさらに含み、
前記事項1は、前記少なくとも1つのプロセッサによって、前記再利用可能な把持プリミティブのライブラリ内の各再利用可能な把持プリミティブを用いて前記物体を把持する前記ロボットハンドを模擬して、前記再利用可能な把持プリミティブのライブラリ内の他の全ての把持プリミティブと比較して、前記
物体の形状に最も適合する前記再利用可能な把持プリミティブのライブラリ内の前記特定の再利用可能な把持プリミティブを決定することであり、
前記事項2は、前記ロボットにより実行される前記ワーク目標のデータである、
請求項1に記載の方法。
【請求項8】
本体と、
複数の指と、向かい合わせられる親指と、を有し、前記本体と機械的に結合された、ロボットハンドと、
前記ロボットハンドの動作を制御するように作動可能な、少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと、通信可能に結合された、少なくとも1つのセンサと、
前記少なくとも1つのプロセッサと、通信可能に結合された、プロセッサにより読み取り可能な非一時的記録媒体と、
を備え、
前記の、少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体は、
再利用可能な把持プリミティブのライブラリと、
プロセッサにより実行可能な命令であって、前記少なくとも1つのプロセッサ、により実行される場合、
物体に関するデータを収集するステップと、
前記データを解析して、前記物体の形状を決定するステップと、
前記少なくとも1つのプロセッサにより、前記の、再利用可能な把持プリミティブのライブラリの、各再利用可能な把持プリミティブ、を用いて前記物体を把持する前記ロボットハンドを模擬して、前記の、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、前記の、前記物体の形状、に最も適合する、
前記の、再利用可能な把持プリミティブのライブラリの、特定の再利用可能な把持プリミティブ、
を決定するステップと、
前記物体を把持するため、前記特定の再利用可能な把持プリミティブを実行するステップと、
をロボットに行わせる命令と、
を記憶する、
ロボット。
【請求項9】
前記の、プロセッサにより実行可能な命令は、前記少なくとも1つのプロセッサにより実行される場合、前記物体を把持するための前記特定の再利用可能な把持プリミティブを、前記ロボットに実行させ、前記物体を把持するための前記特定の再利用可能な把持プリミティブを、前記ロボットハンドに自律的に実行させる、
請求項8に記載のロボット。
【請求項10】
前記少なくとも1つのセンサは、少なくとも1つの光学センサを含み、
前記の、プロセッサにより実行可能な命令は、前記少なくとも1つのプロセッサにより実行される場合、前記物体に関するデータを前記ロボットに収集させ、前記物体に関する光学データを前記少なくとも1つの光学センサに収集させる、
請求項8に記載のロボット。
【請求項11】
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、前記少なくとも1つのプロセッサにより実行される場合、プロセッサ実行可能命令をさらに記憶し、
前記プロセッサ実行可能命令は、前記ロボットに対して、
前記物体に関する追加データを解析し、前記物体の少なくとも1つの追加パラメータを決定することと、
少なくとも部分的に事項1及び事項2の両方に基づいて、前記再利用可能な把持プリミティブのライブラリから前記特定の再利用可能な把持プリミティブを選択することと、
を行わせ、
前記事項1は、前記再利用可能な把持プリミティブのライブラリ内の各再利用可能な把持プリミティブを用いて前記物体を把持するロボットハンドを模擬して、前記再利用可能な把持プリミティブのライブラリ内の他の全ての把持プリミティブと比較して、前記物体の形状に最も適合する前記再利用可能な把持プリミティブのライブラリ内の前記特定の再利用可能な把持プリミティブを決定することであり、
前記事項2は、前記物体の少なくとも1つの追加パラメータである、
請求項8に記載のロボット。
【請求項12】
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、前記少なくとも1つのプロセッサにより実行される場合、前記の、前記物体に関する追加データ、を前記ロボットに収集させる、プロセッサにより実行可能な命令を、さらに記憶し、
前記の、前記物体に関する追加データは、前記物体の硬度と、前記物体の剛性と、前記物体の個性と、前記物体の機能と、前記物体の質量と、から構成されるグループから選択される、
請求項11に記載のロボット。
【請求項13】
前記少なくとも1つのプロセッサと通信可能に結合された、少なくとも1つの受信機、
をさらに備え、
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、前記少なくとも1つのプロセッサにより実行される場合、前記の、前記物体に関する追加データ、を前記ロボットに受信させる、プロセッサにより実行可能な命令を、さらに記憶する、
請求項11に記載のロボット。
【請求項14】
前記の、プロセッサにより読み取り可能な非一時的記録媒体は、
前記ロボットにより実行されるワーク目標に関するデータであって、前記ワーク目標が前記物体の把持を含む前記データと、
少なくとも1つのプロセッサによって実行されたときに、少なくとも部分的に事項1及び事項2の両方に基づいて、前記ロボットに前記再利用可能な把持プリミティブのライブラリから前記特定の再利用可能な把持プリミティブを選択させるプロセッサにより実行可能な命令と、
をさらに記憶し、
前記事項1は、前記再利用可能な把持プリミティブのライブラリ内の各再利用可能な把持プリミティブを用いて前記物体を把持するロボットハンドを模擬して、前記再利用可能な把持プリミティブのライブラリ内の他の全ての把持プリミティブと比較して、前記物体の形状に最も適合する前記再利用可能な把持プリミティブのライブラリ内の前記特定の再利用可能な把持プリミティブを決定することであり、
前記事項2は、前記物体の少なくとも1つの追加パラメータである、
請求項8に記載のロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本システム、装置、および方法は、一般に多目的ロボットに関するものであり、特に、複数の異なるワーク目標を少なくとも半自律的に完了できるロボットに関するものである。
【背景技術】
【0002】
ロボットはワークを実行するために配備される機械である。ロボットの形態は、ヒューマノイド型も含め、様々である。ヒューマノイド型ロボットは、遠隔操作システムによって操作され、ロボットが人間のオペレーターやパイロットの物理的な動作をエミュレートすることができる。しかし、このような遠隔操作システムは、一般的に、パイロットが装着するか、またはパイロットに向けられた高度なセンサや機器からなる非常に精巧で複雑なインタフェースを必要とする、パイロットはロボットの遠隔操作に全神経を集中させる必要があり、この技術の全体的なアクセシビリティが制限される。
【0003】
ロボットは訓練済みであるか、あるいは半自律的または完全自律的に動作するようにプログラムされている。ロボットを訓練するには、現実の世界でロボットに物理的なワークを繰り返し実行させることが一般的であるが、これは、ロボットが現場で有用なワークを行うために配備される前に、ロボットの構成部品に大きな摩耗や損傷を引き起こす可能性がある。
【発明の概要】
【0004】
ロボットの作動方法(ロボットは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサ、と通信可能に結合された非一時的記録媒体であって、プロセッサにより読み取り可能な非一時的記録媒体と、を有し、プロセッサにより読み取り可能な非一時的記録媒体が、再利用可能なワークプリミティブのライブラリと、プロセッサにより実行可能な命令であって、少なくとも1つのプロセッサ、により実行される場合、再利用可能なワークプリミティブのライブラリ、における再利用可能なワークプリミティブ、をロボットに自律的に実行させる、命令と、を記憶する)は、以下を有する。第1ワーク目標を開始(受信又は特定)するステップと、第1ワーク目標を完了することに用いるための第1ワークフローの実行を開始するステップであって、第1ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第1セット、を含む、ステップと、第1ワークフローを実行するステップであって、再利用可能なワークプリミティブの第1セット、を実行するステップ、を含む、ステップ。本方法は、第1ワーク目標と異なる第2ワーク目標、を開始(受信又は特定)するステップと、第2ワーク目標を完了することに用いるための第2ワークフローの実行を開始するステップであって、第2ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第2セット、を含み、第2ワークフローが、第1ワークフローと異なり、少なくとも1つの共通の、再利用可能なワークプリミティブが、第1ワークフローと、第2ワークフローと、の両方を含む、ステップと、第2ワークフローを実行するステップであって、再利用可能なワークプリミティブの第2セット、を実行するステップ、を含む、ステップと、をさらに有してもよい。本方法は、第1ワーク目標及び第2ワーク目標、の両方と異なる、少なくとも1つの追加ワーク目標を開始(受信又は特定)するステップと、少なくとも1つの追加ワーク目標を完了することに用いるための少なくとも1つの追加ワークフローの実行を開始するステップであって、少なくとも1つの追加ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの少なくとも1つの追加セット、を含み、少なくとも1つの追加ワークフローが、第1ワークフロー及び第2ワークフロー、の両方と異なり、少なくとも1つの共通の、再利用可能なワークプリミティブが、第1ワークフローと、第2ワークフローと、少なくとも1つの追加ワークフローと、の全てを含む、ステップと、少なくとも1つの追加ワークフローを実行するステップであって、再利用可能なワークプリミティブの少なくとも1つの追加セット、を実行するステップ、を含む、ステップと、をさらに有してもよい。
【0005】
ロボットは、少なくとも1つのプロセッサ、と通信可能に結合された通信インタフェース、を有してもよく、第1ワーク目標を開始するステップが、通信インタフェースを介して、第1ワーク目標に関連する命令、を受信するステップ、及び/又は第1ワーク目標を完了するために第1ワークフローを開始するステップが、通信インタフェースを介して、第1ワークフロー、を受信するステップ、を含んでもよい。第1ワーク目標を開始するステップは、ロボットによって、第1ワーク目標を自律的に特定するステップ、を含んでもよい。第1ワーク目標を完了するために第1ワークフローを開始するステップは、ロボットにより、再利用可能なワークプリミティブの第1セット、自律的に特定するステップ、を含んでもよい。
【0006】
ロボットは、少なくとも1つのプロセッサ、に通信可能に結合された構成要素であって、少なくとも物理的に作動可能な第1構成要素、を有してもよく、再利用可能なワークプリミティブのライブラリが、物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセット、を含んでもよい。第1ワーク目標を完了するために第1ワークフローを開始するステップ、は、物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセット、からの少なくとも1つの再利用可能なワークプリミティブ、を含む、再利用可能なワークプリミティブのセット、を開始するステップ、を含んでもよい。第1ワークフローを実行するステップは、物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセット、からの少なくとも1つの再利用可能なワークプリミティブを、物理的に作動可能な第1構成要素、により実行するステップ、を含んでもよい。物理的に作動可能な第1構成要素は、物体を把持するように作動可能であってもよく、物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセットが、物理的に作動可能な第1構成要素、により実行可能な、再利用可能な把持プリミティブのセットを含んでもよい。物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセット、からの少なくとも1つの再利用可能なワークプリミティブを含む、再利用可能なワークプリミティブの第1セット、を開始するステップは、少なくとも1つの再利用可能な把持プリミティブ、を含む、再利用可能なワークプリミティブの第1セット、を開始するステップ、を含んでもよい。物理的に作動可能な第1構成要素、により実行可能な、再利用可能なワークプリミティブのセット、からの少なくとも1つの再利用可能なワークプリミティブを、物理的に作動可能な第1構成要素、により実行するステップは、物理的に作動可能な第1構成要素、により、少なくとも1つの再利用可能な把持プリミティブ、を実行するステップ、を含んでもよい。
【0007】
第1ワーク目標、を完了するために第1ワークフローを開始するステップは、再利用可能なワークプリミティブのライブラリ、からの再利用可能なワークプリミティブ、の第1組み合わせの第1順列、を開始するステップ、を含んでもよい。再利用可能なワークプリミティブの第1セット、を実行するステップは、プロセッサにより読み取り可能な非一時的記録媒体、に記憶された、プロセッサにより実行可能な命令を実行して、ロボットに、再利用可能なワークプリミティブの第1セット、を少なくとも1つのプロセッサ、により、自律的に実行させるステップ、を含んでもよい。
【0008】
ロボットは、以下を備える。本体と、本体と機械的に結合された、少なくとも1つの物理的に作動可能な構成要素と、少なくとも1つの物理的に作動可能な構成要素と、通信可能に結合された、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと、通信可能に結合された、少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体。少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体は、再利用可能なワークプリミティブのライブラリと、プロセッサにより実行可能な命令であって、少なくとも1つのプロセッサ、により実行される場合、第1ワーク目標を開始するステップと、第1ワーク目標、を完了するために第1ワークフローを開始するステップであって、第1ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第1セット、を含む、ステップと、第1ワークフローを実行するステップであって、再利用可能なワークプリミティブの第1セット、を実行するステップを含む、ステップと、をロボットに行わせる命令と、を記憶する。プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、第1ワーク目標と異なる第2ワーク目標、を開始するステップと、第2ワーク目標、を完了するために第2ワークフローを開始するステップであって、第2ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第2セット、を含み、第2ワークフローが、第1ワークフローと異なり、少なくとも1つの共通の、再利用可能なワークプリミティブが、第1ワークフローと、第2ワークフローと、の両方を含む、ステップと、第2ワークフローを実行するステップであって、再利用可能なワークプリミティブの第2セット、を実行するステップ、を含む、ステップと、をロボットにさらに行わせてもよい。ロボットは、少なくとも1つのプロセッサ、と通信可能に結合され、第1ワーク目標と関連する命令と、第1ワークフローと関連する命令と、から構成される群から、少なくとも1つの命令セット、を受信する、通信インタフェース、をさらに備えてもよい。プロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサ、により実行される場合、第1ワーク目標を完了するために第1ワークフローを、ロボットに自律的に特定させる、プロセッサにより実行可能な命令、をさらに記憶してもよい。
【0009】
再利用可能なワークプリミティブのライブラリは、少なくとも1つの物理的に作動可能な構成要素、により実行可能な、再利用可能なワークプリミティブのセット、を含んでもよく、プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、再利用可能なワークプリミティブの第1セットを、ロボットに実行させ、少なくとも1つの再利用可能なワークプリミティブを、少なくとも1つの物理的に作動可能な構成要素に実行させてもよい。少なくとも1つの物理的に作動可能な構成要素は、物体を把持するように作動可能なエンドエフェクタ、を含んでもよく、少なくとも1つの物理的に作動可能な構成要素、により実行可能な、再利用可能なワークプリミティブのセットは、エンドエフェクタにより実行できる、再利用可能な把持プリミティブのセット、を含んでもよい。プロセッサにより実行可能な命令は、少なくとも1つのプロセッサ、により実行される場合、少なくとも1つの再利用可能なワークプリミティブを、少なくとも1つの物理的に作動可能な構成要素に実行させ、少なくとも1つの把持プリミティブを、エンドエフェクタに実行させてもよい。
【0010】
コンピュータプログラム製品は、以下を有する。再利用可能なワークプリミティブのライブラリと、コンピュータプログラム製品が、ロボットシステムの、プロセッサにより読み取り可能な非一時的記録媒体、に記憶されて、ロボットシステムの少なくとも1つのプロセッサにより実行される場合、第1ワーク目標を開始するステップと、第1ワーク目標、を完了するために第1ワークフローを開始するステップであって、第1ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第1セット、を含む、ステップと、第1ワークフローを実行するステップであって、再利用可能なワークプリミティブの第1セット、を実行するステップ、を含む、ステップと、を、プロセッサにより読み取り可能な非一時的記録媒体と、通信可能に結合された、少なくとも1つのプロセッサ、により、ロボットシステムに行わせる、プロセッサにより実行可能な命令及び/又はデータ。コンピュータプログラム製品は、ロボットシステムの、プロセッサにより読み取り可能な非一時的記録媒体、に記憶されて、ロボットシステムの少なくとも1つのプロセッサにより実行される場合、第1ワーク目標と異なる第2ワーク目標、を開始するステップと、第2ワーク目標、を完了するために第2ワークフローを開始するステップであって、第2ワークフローが、再利用可能なワークプリミティブのライブラリ、から選択された、再利用可能なワークプリミティブの第2セット、を含み、第2ワークフローが、第1ワークフローと異なり、少なくとも1つの共通の、再利用可能なワークプリミティブが、第1ワークフローと、第2ワークフローと、の両方を含む、ステップと、第2ワークフローを実行するステップであって、再利用可能なワークプリミティブの第2セット、を実行するステップ、を含む、ステップと、をロボットシステムに行わせる、プロセッサにより実行可能な命令及び/又はデータと、をさらに有してもよい。コンピュータプログラム製品は、ロボットシステムの、プロセッサにより読み取り可能な非一時的記録媒体、に記憶されて、ロボットシステムの少なくとも1つのプロセッサにより実行される場合、第1ワーク目標を完了するために第1ワークフローを自律的に特定させるステップ、をロボットシステムに行わせる、プロセッサにより実行可能な命令及び/又はデータ、をさらに有してもよい。
【0011】
物体を把持するためのロボットの作動方法について説明する。本方法を実行するロボットは、以下を有する。複数の指と、向かい合わせられる親指と、を有するロボットハンドと、ロボットハンドの動作を制御するように作動可能な、少なくとも1つのプロセッサと、少なくとも1つのプロセッサ、と通信可能に結合された少なくとも1つのセンサと、少なくとも1つのプロセッサ、と通信可能に結合された、プロセッサにより読み取り可能な非一時的記録媒体。プロセッサにより読み取り可能な非一時的記録媒体は、再利用可能な把持プリミティブのライブラリと、少なくとも1つのプロセッサ、により実行される場合、再利用可能な把持プリミティブのライブラリ、の再利用可能な把持プリミティブを、ロボットハンドに自律的に実行させ、プロセッサにより実行可能な命令と、を記憶する。本方法は、以下を有する。少なくとも1つのセンサ、により物体に関するデータを収集するステップと、少なくとも1つのプロセッサ、によりデータを解析して、物体の形状を決定するステップと、少なくとも1つのプロセッサにより、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップと、ロボットハンドにより、物体を把持するため、特定の再利用可能な把持プリミティブを実行するステップ。ロボットハンドにより、物体を把持するため、特定の再利用可能な把持プリミティブを実行するステップは、ロボットハンドに特定の再利用可能な把持プリミティブを自律的に実行させて物体を把持させる、プロセッサにより実行可能な命令、を少なくとも1つのプロセッサにより実行するステップ、を含んでもよい。
【0012】
少なくとも1つのセンサは、少なくとも1つの光学センサを含んでもよい。少なくとも1つのセンサ、により物体に関するデータを収集するステップは、少なくとも1つの光学センサにより、物体に関する光学データを収集するステップを含んでもよい。少なくとも1つのプロセッサ、によりデータを解析して、物体の形状を決定するステップは、少なくとも1つのプロセッサ、により光学データを解析して、物体の形状、を決定するステップを含んでもよい。
【0013】
少なくとも1つのプロセッサにより、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップは、少なくとも1つのプロセッサにより、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、物体の形状、に最も適合する特定の再利用可能な把持プリミティブ、を選択するステップ、を含んでもよい。少なくとも1つのプロセッサにより、物体の形状、に最も適合する、特定の再利用可能な把持プリミティブ、を選択するステップは、少なくとも1つのプロセッサにより、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、物体の形状、に最も適合する、ロボットハンドの複数の指及び向かい合わせられる親指の構成を用いる、特定の再利用可能な把持プリミティブ、を選択するステップ、を含んでもよい。
【0014】
少なくとも1つのプロセッサにより、物体の形状、に最も適合する、特定の再利用可能な把持プリミティブ、を選択するステップは、少なくとも1つのプロセッサにより、再利用可能な把持プリミティブのライブラリの、各再利用可能な把持プリミティブ、を用いて物体を把持するロボットハンドを模擬して、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、再利用可能な把持プリミティブのライブラリの、どの特定の再利用可能な把持プリミティブが、物体の形状、に最も適合するかを決定するステップ、を含んでもよい。
【0015】
本方法は、少なくとも1つのプロセッサにより、物体に関する追加データを解析して、物体の少なくとも1つの追加パラメータを決定するステップ、をさらに有してもよい。この場合、少なくとも1つのプロセッサにより、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップは、少なくとも1つのプロセッサにより、物体の形状と、物体の少なくとも1つの追加パラメータと、の両方について少なくとも部分的に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップ、を含んでもよい。本方法は、少なくとも1つのセンサにより、物体に関する追加データ、を収集するステップ、をさらに有してもよく、物体に関する追加データが、物体の硬度と、物体の剛性と、物体の個性と、物体の機能と、物体の質量と、から構成されるグループから選択される。ロボットは、少なくとも1つのプロセッサ、と通信可能に結合された少なくとも1つの受信機をさらに有してもよく、本方法が、受信機により、物体に関する追加データ、を受信するステップ、をさらに有してもよい。
【0016】
プロセッサにより読み取り可能な非一時的記録媒体は、ロボットにより実行されるワーク目標のデータ、をさらに記憶してもよく、ワーク目標が物体を把持することを含む。少なくとも1つのプロセッサにより、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップは、少なくとも1つのプロセッサにより、物体の形状と、ロボットにより実行されるワーク目標のデータと、の両方について少なくとも部分的に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップ、を含んでもよい。
【0017】
ロボットは、以下を備える。本体と、複数の指と、向かい合わせられる親指と、を有し、本体と機械的に結合された、ロボットハンドと、ロボットハンドの動作を制御するように作動可能な、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと、通信可能に結合された、少なくとも1つのセンサと、少なくとも1つのプロセッサと、通信可能に結合された、プロセッサにより読み取り可能な非一時的記録媒体。少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体は、再利用可能なワークプリミティブのライブラリと、プロセッサにより実行可能な命令であって、少なくとも1つのプロセッサ、により実行される場合、物体に関するデータを収集するステップと、データを解析して、物体の形状を決定するステップと、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、を選択するステップと、物体を把持するため、特定の再利用可能な把持プリミティブを実行するステップと、をロボットに行わせる命令と、を記憶する。プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、物体を把持するための特定の再利用可能な把持プリミティブを、ロボットに実行させ、物体を把持するための特定の再利用可能な把持プリミティブを、ロボットハンドに自律的に実行させてもよい。少なくとも1つのセンサは、少なくとも1つの光学センサを含み、プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、物体に関するデータをロボットに収集させ、物体に関する光学データを少なくとも1つの光学センサに収集させてもよい。
【0018】
プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブをロボットに選択させ、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、物体の形状、に最も適合する、特定の再利用可能な把持プリミティブをロボットに選択させてもよい。プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、物体の形状、に最も適合する、特定の再利用可能な把持プリミティブをロボットに選択させ、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、物体の形状、に最も適合する、ロボットハンドの複数の指及び向かい合わせられる親指の構成を用いる、特定の再利用可能な把持プリミティブを、ロボットに選択させてもよい。
【0019】
プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブをロボットに選択させ、再利用可能な把持プリミティブのライブラリの、各再利用可能な把持プリミティブ、を用いて物体を把持するロボットハンドをロボットに模擬させて、再利用可能な把持プリミティブのライブラリの、他の全ての再利用可能な把持プリミティブと比較して、再利用可能な把持プリミティブのライブラリの、どの特定の再利用可能な把持プリミティブが、物体の形状、に最も適合するかを決定させてもよい。
【0020】
プロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより実行される場合、物体に関する追加データをロボットに解析させて、物体の少なくとも1つの追加パラメータを決定させる、プロセッサにより実行可能な命令を、さらに記憶してもよい。この場合、プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブをロボットに選択させ、物体の形状と、物体の少なくとも1つの追加パラメータと、の両方について少なくとも部分的に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブを、ロボットに選択させてもよい。プロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより実行される場合、物体に関する追加データ、をロボットに収集させる、プロセッサにより実行可能な命令を、さらに記憶してもよく、物体に関する追加データは、物体の硬度と、物体の剛性と、物体の個性と、物体の機能と、物体の質量と、から構成されるグループから選択される。ロボットは、少なくとも1つのプロセッサと通信可能に結合された、少なくとも1つの受信機、をさらに備えてもよく、プロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより実行される場合、物体に関する追加データ、をロボットに受信させる、プロセッサにより実行可能な命令を、さらに記憶してもよい。
【0021】
プロセッサにより読み取り可能な非一時的記録媒体は、ロボットにより実行されるワーク目標に関するデータ、をさらに記憶してもよく、ワーク目標が物体を把持することを含む。この場合、プロセッサにより実行可能な命令は、少なくとも1つのプロセッサにより実行される場合、少なくとも部分的に、物体の形状に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブをロボットに選択させ、物体の形状と、ロボットにより実行されるワーク目標のデータと、の両方について少なくとも部分的に基づいて、再利用可能な把持プリミティブのライブラリから、特定の再利用可能な把持プリミティブ、をロボットに選択させてもよい。
【0022】
複数のワーク目標を完了するためにロボットを初期化する、コンピュータ実装方法は、以下を有する。ロボットによりそれぞれ実行可能な、再利用可能なワークプリミティブのライブラリ、を定義するステップであって、再利用可能なワークプリミティブのライブラリ、から再利用可能なワークプリミティブ、のそれぞれの、組み合わせ及び順列が、それぞれのワーク目標を完了するために、ロボットにより、開始及び実行されるステップと、再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップ。
【0023】
再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、模擬環境において、再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップ、を含んでもよい。模擬環境において、再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、模擬環境においてロボットの第1模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、を含んでもよい。模擬環境において、再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、模擬環境においてロボットの少なくとも1つの追加の模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの少なくとも1つの追加の模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、をさらに含んでもよい。ある実施形態では、模擬環境において、再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、少なくとも1つの追加の再利用可能なワークプリミティブを、第1模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、少なくとも1つの追加の再利用可能なワークプリミティブを、第1模擬インスタンスに実行させるステップ、の少なくとも1つの結果に基づいて、少なくとも1つの追加の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、をさらに含んでもよい。
【0024】
再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を受信するステップと、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を実行するステップと、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を、ロボットに再生させる、プロセッサにより実行可能な命令を生成するステップと、を含んでもよい。再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を受信するステップは、実際の遠隔操作パイロットにより実行される実際の物理的動作を、ロボットにエミュレートさせる、低レベルの遠隔操作命令を受信するステップ、を含んでもよい。再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を受信するステップは、図形のユーザインターフェースから選択された動作を、ロボットに実行させる、高レベルの遠隔操作命令を受信するステップ、を含んでもよい。
【0025】
再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、模擬環境においてロボットの模擬インスタンスを生成するステップ、をさらに含んでもよい。この場合、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を受信するステップは、模擬環境の第1の再利用可能なワークプリミティブをロボットの模擬インスタンスに実行させる、遠隔操作命令を受信するステップを含み、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を実行するステップは、模擬環境の第1の再利用可能なワークプリミティブをロボットの模擬インスタンスに実行させる、遠隔操作命令を実行するステップを含でもよく、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を、ロボットに再生させる、プロセッサにより実行可能な命令を生成するステップは、模擬環境の第1の再利用可能なワークプリミティブをロボットの模擬インスタンスに実行させる、遠隔操作命令を、ロボットの模擬インスタンスに再生させる、プロセッサにより実行可能な命令を生成するステップを含んでもよい。模擬環境の第1の再利用可能なワークプリミティブをロボットの模擬インスタンスに実行させる、遠隔操作命令を受信するステップは、実際の遠隔操作パイロットにより実行される実際の物理的動作を、ロボットの模擬インスタンスにエミュレートさせる、低レベルの遠隔操作命令を受信するステップ、を含んでもよい。模擬環境の第1の再利用可能なワークプリミティブをロボットの模擬インスタンスに実行させる、遠隔操作命令を受信するステップは、図形のユーザインターフェースから選択された動作を、ロボットの模擬インスタンスに実行させる、高レベルの遠隔操作命令を受信するステップ、を含でもよい。
【0026】
ある実施形態では、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を受信するステップは、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第1インスタンスをロボットに実行させる、遠隔操作命令の第1セットを受信するステップと、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第2インスタンスをロボットに実行させる、遠隔操作命令の第2セットを受信するステップと、を含んでもよい。再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を実行するステップは、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第1インスタンスをロボットに実行させる、遠隔操作命令の第1セット、を実行するステップと、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第2インスタンスをロボットに実行させる、遠隔操作命令の第2セット、を実行するステップと、を含んでもよい。再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を、ロボットに再生させる、プロセッサにより実行可能な命令を生成するステップは、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第1インスタンスをロボットに実行させる、遠隔操作命令の第1セット、を実行するステップと、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブの第2インスタンスをロボットに実行させる、遠隔操作命令の第2セット、を実行するステップと、のそれぞれの結果を評価して、遠隔操作命令の第1セットと、遠隔操作命令の第2セットと、のどちらが、よりよい結果、をもたらすかを決定するステップと、遠隔操作命令の第1セットと、遠隔操作命令の第2セットと、のうち、よりよい結果、をもたらす方をロボットに再生させる、プロセッサにより実行可能な命令を生成するステップと、を含んでもよい。再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を、ロボットに再生させる、プロセッサにより実行可能な命令を生成するステップは、再利用可能なワークプリミティブのライブラリ、の第1の再利用可能なワークプリミティブをロボットに実行させる、遠隔操作命令を、ロボットに再生させる、プロセッサにより実行可能な命令において、遠隔操作命令の第1セット、の少なくとも1つの要素と、遠隔操作命令の第2セット、の少なくとも1つの要素と、を組み合わせるステップ、を含んでも良い。
【0027】
再利用可能なワークプリミティブのライブラリの、それぞれの再利用可能なワークプリミティブを自律的に実行するように、ロボットを訓練するステップは、ロボットの少なくとも1つのプロセッサにより実行される場合、再利用可能なワークプリミティブのライブラリ、のそれぞれの再利用可能なワークプリミティブを、ロボットに自律的に実行させる、プロセッサにより実行可能な命令を生成するステップを含んでもよく、本方法は、ロボット、のプロセッサにより読み取り可能な非一時的記録媒体に、プロセッサにより実行可能な命令、を送るステップ、
をさらに有してもよい。
【0028】
ロボットは、以下を備える。本体と、本体と機械的に結合された、少なくとも1つの物理的に作動可能な構成要素と、少なくとも1つの物理的に作動可能な構成要素と、通信可能に結合された、少なくとも1つのプロセッサと、少なくとも1つのプロセッサと、通信可能に結合された、少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体。少なくとも1つの、プロセッサにより読み取り可能な非一時的記録媒体は、再利用可能なワークプリミティブのライブラリと、少なくとも1つのプロセッサ、により実行される場合、再利用可能なワークプリミティブのライブラリ、のそれぞれの再利用可能なワークプリミティブを、ロボットに選択的かつ自律的に実行させる、プロセッサにより実行可能な命令であって、模擬環境においてロボットの第1模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、ロボット、のプロセッサにより読み取り可能な非一時的記録媒体に、プロセッサにより実行可能な命令、を送るステップと、の、プロセスによって訓練される、プロセッサにより実行可能な命令と、を記憶する。プロセッサにより実行可能な命令を訓練する、プロセスは、模擬環境においてロボットの少なくとも1つの追加の模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの少なくとも1つの追加の模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、をさらに有してもよい。
【0029】
コンピュータプログラム製品は、以下を有する。再利用可能なワークプリミティブのライブラリと、コンピュータプログラム製品が、ロボットシステムの、プロセッサにより読み取り可能な非一時的記録媒体、に記憶されて、ロボットシステムの少なくとも1つのプロセッサにより実行される場合、プロセッサにより読み取り可能な非一時的記録媒体と、通信可能に結合された、少なくとも1つのプロセッサにより、再利用可能なワークプリミティブのライブラリ、のそれぞれの再利用可能なワークプリミティブを、ロボットシステムに選択的かつ自律的に実行させる、プロセッサにより実行可能な命令及び/又はデータであって、模擬環境においてロボットの第1模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンスに実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、ロボット、のプロセッサにより読み取り可能な非一時的記録媒体に、プロセッサにより実行可能な命令、を送るステップと、の、プロセスによって訓練される、プロセッサにより実行可能な命令。プロセッサにより実行可能な命令を訓練する、プロセスは、模擬環境においてロボットの少なくとも1つの追加の模擬インスタンスを生成するステップと、プロセッサにより実行可能な命令を繰り返して実行して、再利用可能なワークプリミティブのライブラリの、第1の再利用可能なワークプリミティブを、ロボットの少なくとも1つの追加の模擬インスタンスに実行させるステップと、プロセッサにより実行可能な命令を繰り返して実行して、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させるステップ、の少なくとも1つの結果に基づいて、第1の再利用可能なワークプリミティブを、ロボットの第1模擬インスタンス及びロボットの少なくとも1つの追加の模擬インスタンス、に実行させる、プロセッサにより実行可能な命令、を絞り込むステップと、をさらに有してもよい。
【図面の簡単な説明】
【0030】
図面に示されている様々な要素および行為は、詳細な説明をサポートするための例示目的で提供されている。特定の文脈で必要とされない限り、図示された要素および行為のサイズ、形状、および相対的な位置は、必ずしも縮尺通りに示されておらず、また、必ずしも情報または制限を伝えることを意図していない。一般に、同一の参照符号は、同様の要素または行為を特定するために使用される。
【
図1】
図1は、本システム、装置、および方法に従ったロボットの例示的な作動方法を示すフロー図である。
【
図2】
図2は、本システム、装置、及び方法に従ったロボットの別の例示的な作動方法を示すフロー図である。
【
図3】
図3は、本システム、装置、及び方法に従ったロボットの作動の別の例示的な方法を示す流れ図である。
【
図4】
図4は、本システム、装置、および方法に従った、例示的な、再利用可能な把持プリミティブのセット、を示す説明図である。
【
図5】
図5は、本システム、装置、および方法に従って物体を把持するロボットの例示的な作動方法を示す流れ図である。
【
図6】
図6は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する、例示的な、コンピュータ実装方法を示す流れ図である。
【
図7】
図7は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する、別の例示的な、コンピュータ実装方法を示す流れ図である。
【
図8】
図8は、本システム、方法、および装置に従って、ロボットが再利用可能なワークプリミティブを実行するように模擬実験を通じて訓練される、例示的な模擬環境を示す図である。
【
図9】
図9は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する、別の例示的な、コンピュータ実装方法を示す流れ図である。
【
図10】
図10は、本システム、方法、および装置を通して説明される様々な特徴および構成要素を含む、例示的な、ロボットシステムの図解付きの図である。
【発明を実施するための形態】
【0031】
以下の説明は、本システム、デバイス、および方法の様々な実装および実施形態を説明し、理解を提供するために、具体的な詳細を示す。当業者であれば、本明細書に記載された一部の具体的な詳細は、代替の実装および実施形態において省略または変更され得ること、ならびに本明細書に記載された様々な実装および実施形態は、さらなる実装および実施形態を生成するために、互いに、および/または他の方法、構成要素、物質などと組み合わされ得ることを理解するであろう。
【0032】
一部の例において、コンピュータシステムおよびデータ処理に関連する周知の構造および/またはプロセスは、実装および実施形態の説明を不必要に複雑にしたり不明瞭にしたりすることを避けるために、詳細には示されていないか、または提供されていない。
【0033】
特定の文脈が他に必要としない限り、本明細書および添付の特許請求の範囲を通して、「備える」および「有する」などの用語と「含む」およびその変形と、は「含むが、これらに限定されない」という意味で、開放的で包括的な意味で使用される。
【0034】
特定の文脈が他に必要としない限り、本明細書および添付の特許請求の範囲を通じて、単数形、「本」の表現は、複数の表現を含む。例えば、「実施形態」および「本実施態様」への言及は、それぞれ「複数の実施形態」および「本複数の実施態様」を含み、「実装」および「本実装」への言及は、それぞれ「複数の実装」および「本複数の実装」を含む。同様に、「または」という用語は、特定の文脈が明確に命令しない限り、一般に「および/または」を意味する最も広い意味で用いられる。
【0035】
本開示の見出しおよび要約書は、便宜上のみ提供されるものであり、本システム、装置、および方法の範囲または意味を解釈することを意図したものではなく、また解釈されるべきではない。
【0036】
汎用ロボットは、複数の異なるワーク目標を達成することができる。本明細書および添付の特許請求の範囲を通して使用されるように、「ワーク目標」という用語は、特定の目標と確定可能な結果を有する特定のタスク、仕事、割り当て、または活用を指し、多くの場合(必ずしもそうではないが)、経済的に価値のある仕事を推進するためのものである。ワーク目標は、ビジネス、研究開発、商業活動、個人活動の多くの態様に存在する。例示的なワーク目標には、限定されないが、場所(例えば、浴室)または物体(例えば、浴室の鏡)の清掃、食事の準備、保管コンテナー(例えば、トラック)の積み下ろし、棚卸し、1つ以上のサンプルの収集、1つ以上の測定の実施、物体の構築または組立、物体の破壊または分解、物品の送り、物体および/またはデータの収穫などが含まれる。本明細書で説明する様々な実装は、複数の異なるワーク目標を少なくとも半自律的に完了するためにロボットを初期化、構成、訓練、作動、および/または配備するためのシステム、装置、および方法を提供する。
【0037】
本システム、装置、および方法に従って、ワーク目標は、「ワークプリミティブ」のセットからなる「ワークフロー」に解体または分解され、ワーク目標の成功裏の完了には、ワークフロー内の各ワークプリミティブの実行が含まれる。具体的な実装によっては、ワーク目標の完了は、以下によって達成される(すなわち、ワークフローは以下から構成される)。1)対応するワークプリミティブのセットを順次又は直列に実行すること。2)対応する一連のワークプリミティブを並行して実行する。または、3)ワーク目標および/またはワーク目標を完了するロボットに適するように、対応するワークプリミティブのセットを直列および並列の任意の組み合わせで実行する(例えば、重複して順次実行する)。このように、いくつかの実装では、ワークプリミティブは、より高いレベルのワーク目標を完了するためにワークフローとして実行される、より低いレベルの活動、ステップ、または副タスクとして解釈することができる。
【0038】
有利なことに、本システム、装置、および方法に従って、「再利用可能な」ワークプリミティブのライブラリを定義することができる。ワークプリミティブは、複数の異なるワーク目標を完了するために、一般的に呼び出され、実行され、採用され、または適用され得る場合、再利用可能である。例えば、再利用可能なワークプリミティブとは、複数の異なるワーク目標のそれぞれのワークフローに共通するものである。一部の実装では、再利用可能なワークプリミティブは、ワークプリミティブの呼び出し時または呼び出し前に定義される少なくとも1つの変数を含む場合がある。例えば、「物体を拾う」は、再利用可能なワークプリミティブであり、「拾う」プロセスは、複数の異なるワーク目標を推進するために少なくとも半自律的、一般的に実行され、「物体を拾う」プロセスは、追求される特定のワーク目標に基づいて定義される。
【0039】
前述したように、本明細書に記載の様々な実装は、ロボットが複数の異なるワーク目標を少なくとも半自律的に完了することを可能にするシステム、装置、および方法を提供する。特定の文脈が他に必要としない限り、「自律的に」という用語は、本明細書および添付の特許請求の範囲を通して、「他の者による制御なしに」という意味で使用され、「半自律的に」という用語は、「少なくとも部分的に自律的に」という意味で使用される。言い換えれば、本明細書および添付の特許請求の範囲全体を通して、「半自律的に」という用語は、特定の文脈でそうでないことが要求されない限り、「別の当事者による限定的な制御を伴って」を意味する。半自律型ロボットの例としては、移動機能や把持機能など、それ自体の低レベルの機能の一部を独立して、および/または自律的に実行および制御することができるが、何をするか、および/またはどのようにするかといった高レベルの命令については、何らかの外部制御に依存するロボットが挙げられる。
【0040】
本システム、装置、および方法に従って、複数の異なるワーク目標にわたる任意の所与のワーク目標が、再利用可能なワークプリミティブのライブラリから選択された再利用可能なワークプリミティブの特定の組み合わせおよび/または順列を含む、対応するワークフローを実行することによって完了され得るように、再利用可能なワークプリミティブのライブラリが定義、特定、開発、または構築され得る。一旦このような再利用可能なワークプリミティブのライブラリが確立されると、1つ以上のロボットは、1)訓練済みである特定の再利用可能なワークプリミティブが一部である特定のワークフロー、および/または2)特定のワークフローにおいて、訓練済みである特定の再利用可能なワークプリミティブに先行または後続する可能性のある他の再利用可能なワークプリミティブ、の環境を必ずしも含むことなく、再利用可能なワークプリミティブのライブラリ内の個々の再利用可能なワークプリミティブを自律的にまたは自動的に実行するように訓練することができる。このように、半自律型ロボットは、再利用可能なワークプリミティブのライブラリ内の個々の再利用可能なワークプリミティブを自律的にまたは自動的に作動させることができ、どの再利用可能なワークプリミティブ(複数可)を実行するか、および/または、どの順序で実行するかを決定する場合にのみ、他の当事者(例えば、オペレーター、ユーザ、またはパイロット)からの命令、または指導を必要とする。言い換えれば、オペレーター、ユーザ、またはパイロットは、再利用可能なワークプリミティブから構成されるワークフローを半自律型ロボットに提供することができ、半自律型ロボットは、ワークフローに従って再利用可能なワークプリミティブを自律的にまたは自動的に実行して、ワーク目標を完了することができる。例えば、半自律型ヒューマノイドロボットは、左を見るように命令されたときに自律的に左を見たり、右のエンドエフェクタを開くように命令されたときに自律的に右のエンドエフェクタを開いたりするなどの動作を、第三者によるそのような機能の詳細な低レベル制御に頼ることなく行うことができる。このような半自律型ヒューマノイドロボットは、ワーク目標を完了するために、どの再利用可能なワークプリミティブをどのような順序で実行しなければならないかを詳述したワークフローに関する命令が与えられれば、自律的にワーク目標を完了することができる。さらに、本システム、装置、および方法に従って、ロボットが訓練済みであるか、またはその他の方法で、ワーク目標を解析し、ロボットが自律的に実行するように作動可能な再利用可能なワークプリミティブのライブラリから再利用可能なワークプリミティブのセットにワーク目標を分解することによって、対応するワークフローを独自に定義するように構成されている場合、ロボットは完全に自律的に作動することができる。
【0041】
ロボットの環境では、再利用可能なワークプリミティブは、ロボットが(例えば、自律的にまたは自動的に)作動可能であり、ロボットが何かを達成するために呼び出したり実行したりすることができる基本的な低レベルの機能に対応することができる。人型ロボットのための再利用可能なワークプリミティブの例としては、限定するものではないが、上を見る、下を見る、左を見る、右を見る、右腕を動かす、左腕を動かす、右端エフェクタを閉じる、右端エフェクタを開く、左端エフェクタを閉じる、左端エフェクタを開く、前進する、左折する、右折する、後進する、などが挙げられるが、当業者であれば、以下のことを理解するであろう。1)人型ロボットのための例示的な、再利用可能なワークプリミティブの前述のリストは、決して網羅的なものではないこと、2)本システム、装置、および方法は、人型フォームファクターを有するロボットに何ら限定されるものではないこと、3)再利用可能なワークプリミティブのライブラリの完全な構成は、再利用可能なワークプリミティブのライブラリが構築される特定のロボットの設計および機能に依存すること。
【0042】
ロボットは、そのハードウェアおよびソフトウェアの構成に少なくとも部分的に基づいて、任意の数の高レベルの機能を実行するように作動することができる。例えば、脚や車輪を持つロボットは移動するように作動し、グリッパーを持つロボットは物を拾うように作動し、脚とグリッパーを持つロボットは物体を移動させるように作動する。このような高レベルの機能を実行するには、一般的に複数の低レベルの機能を制御して実行する必要がある。例えば、移動ロボットは、速度、軌道、バランスなどの機能パラメータを制御する移動アクチュエータ(例えば、脚や車輪の駆動)の制御など、制御可能に移動するために、多数の異なる低レベルの機能を制御する必要がある。本システム、装置、および方法に従って、ロボットが作動する高レベルの機能は、本明細書および添付の特許請求の範囲全体を通して「ワークプリミティブ」と呼ばれる基本コンポーネントまたは構成要素のセットに解体または分解される。特定の文脈で必要とされない限り、ワークプリミティブは、より高レベルのロボット機能が構築される構成要素として解釈される。
【0043】
詳細は後述するが、いくつかの実装では、再利用可能なワークプリミティブを自律的に実行するようにロボットを訓練することは、模擬環境で完了することができる。一旦ロボットが再利用可能なワークプリミティブのライブラリを自律的に実行するように訓練されると、遠隔パイロットによるロボットの遠隔作動は、再利用可能なワークプリミティブのレベルまで要約することができる。遠隔操作システムを通じてロボットを制御する遠隔操作者またはパイロットは、ロボットにどの再利用可能なワークプリミティブを実行するか、実装によっては、どのような順序で実行するかを命令するだけでよく、ロボットは、パイロットからのこのような限定された制御命令に基づいて完全なワーク目標を実行するのに十分な自律性または自動化(例えば、上述の訓練の結果)を有することができる。
【0044】
前述したように、「浴室の鏡をきれいにする」は、目標を達成するためのワークプリミティブのセットに分解でき、結果が確定可能なワーク目標の例示である。この場合のゴールは、きれいな浴室の鏡であり、ワーク目標を達成するためのワークプリミティブ(またはワークフロー)の例示的なセットは以下のとおりである。
【0045】
【0046】
当業者であれば、9つのワークプリミティブから構成される上記の例示的なワークフローが、浴室の鏡を洗浄するというワーク目標を完了するために展開され得るワークフローの例示として使用されることを理解するであろう。しかしながら、本システム、装置、および方法に従って、各ワークプリミティブの正確な定義および構成、ならびにワーク目標を完了するために選択/実行されるワークプリミティブの具体的な組み合わせおよび/または順列(すなわち、ワークフローの具体的な構成)は、異なる実装において変化し得る。例えば、ある実装では、上記のワークプリミティブ3、4、5(すなわち、鏡の位置を特定し、洗浄液を鏡に向け、洗浄液を鏡に吐出する)はすべて、「鏡に洗浄液を噴霧する」という1つの上位のワークプリミティブに統合される場合があるが、他の実装では、これら同じワークプリミティブは、例えば、追加的な下位のワークプリミティブに分解される場合がある。
【0047】
鏡を探す。
【0048】
鏡の境界を特定する。
【0049】
鏡の境界線内の第1位置に洗浄液を向ける。
【0050】
洗浄液を絞る。
【0051】
鏡の境界線内の第2位置に洗浄液を当てる。
【0052】
洗浄液を絞る。
【0053】
など。
【0054】
上記の実施例および説明に基づき、当業者であれば、ワークプリミティブの粒度は、本システム、装置、および方法の異なる実装間で変化し得ることを理解するであろう。さらに、本システム、装置、および方法に従って、各ワークプリミティブは、1つ以上の全体的なワーク目標の実行において採用、起動、適用、または「再利用」され得るという検知する意味で、ワークプリミティブは有利に「再利用可能」である。例えば、浴室の鏡を掃除することは、ワークプリミティブ「洗浄液を把持する」を含むかもしれないが、他のワーク目標も、例えば「トイレを掃除する」、「窓を掃除する」、および/または「床を掃除する」など、ワークプリミティブ「洗浄液を把持する」を使用するかもしれない。いくつかの実装では、ワークプリミティブは、より汎用的になるように抽象化されてもよい。例えば、「洗浄液を把持する」は、「スプレーボトルを把持する」、または、変数「物体1」が「物体1=スプレーボトル」として定義され、「物体1を把持する」に抽象化されてもよい。「鏡を探す」は、「スプレーする必要がある物体を探す」、または、単に「物体2を探す」に要約されてもよい。「物体2=鏡」である。このような場合、「スプレーボトルを把持する」ワークプリミティブは、「壁に塗る」(ここで、スプレーボトル=スプレー塗料)、「髪を整える」(ここで、スプレーボトル=ヘアスプレー)、「炒め物を準備する」(ここで、スプレーボトル=食用油スプレー)など、掃除を伴わないタスクで使用することができる。
【0055】
図1は、本システム、装置、および方法によるロボットの例示的な作動方法100を示すフロー図である。一般に、本明細書および添付の特許請求の範囲を通して、ロボットの作動方法とは、様々な行為の全てではないにしても、少なくとも一部がロボットによって実行される方法である。例えば、ロボットの作動方法の特定の行為は、ロボットのプロセッサで読み取り可能な非一時的な記録媒体に通信可能に結合されたロボットの少なくとも1つのプロセッサまたは処理ユニット(以下、「プロセッサ」)によって実行されてもよく、いくつかの実装では、ロボットの作動方法の特定の行為は、少なくとも1つのプロセッサに通信可能に結合されたロボットの周辺構成要素、例えば、1つ以上の物理的に作動可能な構成要素(例えば、腕、脚、エンドエフェクタ、グリッパー、手)、1つ以上のセンサ(例えば、光学センサ、音声センサ、触覚センサ、
体感センサ)、移動システム(例えば、車輪、脚)、通信およびネットワーキング・ハードウェア(例えば、受信器、送信器、トランシーバ)などである。ロボットのプロセッサで読み取り可能な非一時的な記録媒体は、データ(例えば、再利用可能なワークプリミティブのライブラリを含む)、および/または、少なくとも1つのプロセッサによって実行されると、ロボットに方法を実行させ、および/または、少なくとも1つのプロセッサによって実行される方法のそれらの行為を少なくとも1つのプロセッサに実行させるプロセッサにより実行可能な命令を記憶してもよい。ロボットは、ロボットの少なくとも1つのプロセッサに通信可能に結合された通信およびネットワークハードウェアを介して、遠隔システムおよび/または遠隔のプロセッサで読み取り可能な非一時的な記録媒体と通信することができる。従って、特定の文脈が他に必要としない限り、ロボットのプロセッサで読み取り可能な非一時的な記録媒体、ならびにプロセッサで読み取り可能な非一時的な記録媒体に記憶されたデータおよび/またはプロセッサにより実行可能な命令への言及は、ロボットの少なくとも1つのプロセッサおよびロボットのハードウェアの他の部分に対するプロセッサで読み取り可能な非一時的な記録媒体の物理的位置に関して限定することを意図するものではない。言い換えると、ロボットのプロセッサで読み取り可能な非一時的な記録媒体は、特定の文脈が他に必要としない限り、ロボットに搭載されたプロセッサで読み取り可能な非一時的な記録媒体および/またはロボットから遠隔に配置されたプロセッサで読み取り可能な非一時的な記録媒体を含むことができる。
【0056】
図1に戻ると、方法100は、3つの行為101、102、および103を含むが、当業者であれば、代替実装において特定の行為が省略されてもよく、および/または追加の行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為の順序は例示的な目的のためだけに示されており、代替実装では変更され得ることも理解されよう。
【0057】
101で、ロボットは第1ワーク目標を開始する。いくつかの実装では、ロボットは、リモートまたはローカルコントローラまたはオペレーターからの口頭命令など、他の者からの命令を受信することに応答して、第1ワーク目標を開始することができる。いくつかの実装では、ロボットは、少なくとも1つのプロセッサに通信可能に結合された電気通信インタフェースを含むことができ、ロボットによる、101での第1ワーク目標の開始は、ロボットの電気通信インタフェースによって(例えば、遠隔オペレーターまたは遠隔作動システムから)、第1ワーク目標に関連する命令を受信することを含むことができる。このような命令は、第1ワーク目標の定義、第1ワーク目標をどのように/いつ/どこで完了させるべきかを命令するパラメータ、および/または第1ワーク目標をどのように実行するかに関する命令を含むことができる。他の実装では、ロボットによる、101での第1ワーク目標の開始は、ロボット自身が自律的に第1ワーク目標を特定することを含むかもしれない。このような実装において、ロボットの、プロセッサで読み取り可能な非一時的な記録媒体は、ロボットの少なくとも1つのプロセッサによって実行されたとき、ロボットに自律的に第1ワーク目標を特定させるデータ、モデル、ポリシー、パラダイム、アルゴリズム、フレームワーク、アーキテクチャ、および/またはプロセッサにより実行可能な命令(集合的に「人工知能」)を記憶してもよい。人工知能は、センサデータ、環境要因、内部パラメータ、観察、および/または他のシステム、ロボット、デバイス、または人との通信を含むがこれらに限定されない、様々なパラメータおよび/または基準に基づいて、自律的に第1ワーク目標を特定することができる。
【0058】
102で、ロボットは101で開始された第1ワーク目標を完了するための第1ワークフローを開始する。ロボットにより、第1ワークフローを開始することは、ロボットにより実行されると第1ワーク目標を完了する再利用可能なワークプリミティブの第1セットまたは組み合わせを特定すること、または定義することを含んでもよい。ロボットにより、第1ワークフローを開始することは、さらに、再使用可能なワークプリミティブの第1セットまたは組合せを、再使用可能なワークプリミティブの第1の組合せの第1の順列に配列することを含む。先に説明したように、いくつかの実装において、ロボットの、プロセッサで読み取り可能な非一時的な記録媒体は、再利用可能ワークプリミティブのライブラリを記憶していてもよく、そのような実装において、102でロボットにより開始される第1ワークフローは、ロボットの、プロセッサで読み取り可能な非一時的な記録媒体に記憶された再利用可能ワークプリミティブのライブラリから選択された再利用可能ワークプリミティブの第1セットまたは組み合わせから構成される、または構成されてもよい。
【0059】
ロボットが少なくとも1つのプロセッサに通信可能に結合された電気通信インタフェースを含む場合、102におけるロボットによる第1ワークフローの開始は、ロボットの電気通信インタフェースによって(例えば、遠隔操作者または遠隔操作システムから)第1ワークフロー、またはそれに関連する命令を受信することを含んでもよい。このような命令は、例えば、再利用可能なワークプリミティブのセットまたは組み合わせ、および、一つの選択肢として、第1ワーク目標を完了するための再利用可能なワークプリミティブのセットまたは組み合わせの順列を含む、第1ワークフローの定義を含んでもよい。他の実装では、102におけるロボットによる第1ワークフローの開始は、ロボット自身が、第1ワークフローを構成する再利用可能なワークプリミティブの第1セット、組み合わせ、および/または順列を自律的に特定することを含んでもよい。このような実装において、ロボットの、プロセッサで読み取り可能な非一時的な記録媒体は、ロボットの少なくとも1つのプロセッサによって実行されるとき、ロボットに第1ワークフローを自律的に特定させる人工知能を記憶していてもよい。
【0060】
103において、ロボットは102で開始された第1ワークフローを実行する。一般に、103における第1ワークフローの実行において、ロボットは、102における第1ワークフローの開始において再利用可能なワークプリミティブのライブラリから選択された再利用可能ワークプリミティブの第1セットを実行する。前述したように、いくつかの実装では、ロボットは、再利用可能ワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを実質的に自律的にまたは自動的に実行するように訓練済み、構成済み、または他の方法で作動可能であってもよい。例えば、ロボットの、プロセッサで読み取り可能な非一時的な記録媒体は、ロボットの少なくとも1つのプロセッサによって実行されると、各々がロボットにワークプリミティブのライブラリ内の再利用可能なワークプリミティブのそれぞれの1つを自律的に実行させるプロセッサにより実行可能な命令のそれぞれのセットを記憶することができる。このように、ロボットが103で第1ワークフローを実行するとき、ロボットは、ロボットに第1ワークフローに対応する再利用可能なワークプリミティブの第1セット中の特定の再利用可能なワークプリミティブを自律的に実行させる、または実行させるプロセッサにより実行可能な命令のセットを実行することによって、実質的に自律的にまたは自動的にそうすることができる。説明のために、方法100の例示的実装を説明する。
【0061】
一例として、ロボットは、以下の1)、2)を記憶する、プロセッサで読み取り可能な非一時的な記録媒体を含むか、またはそれにアクセスすることができる。1)5つの再利用可能なワークプリミティブのライブラリA、B、C、D、およびE。および2)ロボットの少なくとも1つのプロセッサによって実行されると、ロボットに第1の再利用可能なワークプリミティブのそれぞれの1つを自律的に実行させるプロセッサにより実行可能な命令inst(A)、inst(B)、inst(C)、inst(D)、およびinst(E)の5つのそれぞれのセット。方法100の101で、ロボットは(自律的に、または前述のような命令を受信したときに)第1ワーク目標を開始する。方法100の102で、ロボットは、(自律的に、または前述のように命令を受けて)第1ワーク目標を完了するための第1ワークフローを開始する。第1ワークフローは、第1の順序で配置された再利用可能なワークプリミティブのライブラリからの再利用可能なワークプリミティブの第1セットから構成される。この例では、第1ワークフローは、次のように配置された再利用可能ワークプリミティブB、C、Dから構成される。
(数1)
C→B→D
103において、ロボットは自律的に第1ワークフローを実行する。すなわち、ロボットの少なくとも1つのプロセッサがプロセッサにより実行可能な命令inst(C)を実行してロボットに再利用可能なワークプリミティブCを自律的に実行させ、次にロボットの少なくとも1つのプロセッサがプロセッサにより実行可能な命令inst(B)を実行してロボットに再利用可能なワークプリミティブBを自律的に実行させ、次にロボットの少なくとも1つのプロセッサがプロセッサにより実行可能な命令inst(D)を実行してロボットに再利用可能なワークプリミティブDを自律的に実行させる。このようにして、ロボットはワーク目標を完了する。ロボットが102で第1ワークフローを定義するために命令を受け取ることに依存する場合は半自律的に、ロボットが102で第1ワークフローを自律的に定義するように作動可能である場合は完全に自律的に。
【0062】
有利なことに、本システム、装置、および方法に従って、ロボットによって記憶またはアクセスされる再利用可能なワークプリミティブのライブラリは、ロボットが多数の異なるワーク目標を完了することを可能にするために必要な汎用化されたアクティビティ、ステップ、または副タスクのすべてから構成されるか、またはそれらから構成されてもよい。このようにして、本システム、装置、および方法は、広範な異なる産業において広範な異なるワーク目標を完了することができる汎用ロボットを実現するか、または少なくとも近似することができる。
【0063】
上記の例を続けると、5つの再利用可能なワークプリミティブの例示的なライブラリは、例えば、以下から構成される。
【0064】
A:環境データを測定する。
【0065】
B:位置_xに移動する。
【0066】
C:物体_iを拾う。
【0067】
D:物体_jを置く。
【0068】
E:物体_kをバーコードスキャンする。
【0069】
そして、第1ワーク目標は次のようになる。「緑色の箱を倉庫に運ばせる。このように、ロボットが最初にワークフローC、その後にB、その後にDを実行するとき、ロボットは次のように実行する。inst(C)を実行し、物体_i=「緑色の箱」とする。これにより、ロボットは自律的に(すなわち、他者からのさらなる制御や命令がない状態で)緑色の箱を拾う。inst(B)を実行する。ここで、位置_x=「倉庫」であり、ロボットに自律的に緑色の箱を倉庫まで運ばせる。そして、inst(D)を実行し、物体_j=「緑色の箱」をとし、ロボットに自律的に緑色の箱を倉庫に置かせる。このようにして、ロボットはワークフローC、その後にB、その後にDを実行することにより、第1ワーク目標を完了する。
【0070】
再利用可能な5つのワークプリミティブA、B、C、D、Eの同じライブラリを使用して、ロボットは第2ワーク目標を完了することができる。例えば、第2ワーク目標は次のようなものである。例えば、第2ワーク目標は、「倉庫のアイテムの目録を作成する」である。前述したように、第2ワーク目標は、自律的に、または何らかの形態のコントローラまたはオペレーターから第2ワーク目標に関連する命令を受信することに応答して、ロボットによって(方法100の行為101によって)初期化され得る。制御者/オペレーターは、遠隔操作者、少なくとも半自律遠隔作動システム、またはロボットと同位置の制御エンティティ(例えば、別のロボット、または人)を含んでもよい。ロボットと同位置にいる制御エンティティは、ロボットが検出および処理するように作動する命令をロボットに口頭で提供することができる。
【0071】
第2ワーク目標が開始されると、ロボットは第2ワークフローを開始し、第2ワーク目標を完了させることができる。第1ワークフローと同様に、第2ワークフローも、5つの再利用可能ワークプリミティブA、B、C、D、Eのライブラリからの再利用可能ワークプリミティブのセットから構成される。しかし、第2ワークフローは、5つの再利用可能なワークプリミティブA、B、C、D、およびEのライブラリからの再利用可能なワークプリミティブの第2の異なるセット(例えば、組み合わせおよび/または順列)から構成されるという点で、第1ワークフローとは異なる。先に説明したように、第2ワークフローは、自律的に、または何らかの形態の制御者またはオペレーターから第2ワークフローを定義する命令を受信することに応答して、ロボットにより(方法100の行為102により)初期化されてもよい。
【0072】
この例では、第2ワークフローは再利用可能なワークプリミティブB、C、D、Eから、以下の配置のように構成される。
(数2)
B→繰り返す:[C→E→D]
本システム、装置、及び方法に従って、少なくとも1つの再利用可能ワークプリミティブは、複数のワークフローにおいて共通であってもよい。本実施例では、再利用可能ワークプリミティブB、C、およびDはすべて、第1ワーク目標を完了するための第1ワークフローと、第2ワーク目標を完了するための第2ワークフローの両方に共通して含まれる。
【0073】
例示的な第2ワークフローは、「(C、その後にE、その後にD)を繰り返す」を含む。従って、第2ワーク目標を完了するために、ロボットは倉庫内の全アイテムについて第2ワークフローのプリミティブC、その後にE、その後にDを繰り返す、必要がある。したがって、ロボットが第2ワークフローB、その後に(C、その後にE、その後にD)を繰り返す、を実行するとき(方法100の行為103による)、ロボットはinst(B)を実行し、ここで位置_x=「倉庫」となり、これによりロボットは自律的に(すなわち、他者からのさらなる制御または命令がない状態で)倉庫に行き、その後、ロボットが倉庫内のすべてのアイテムについてプリミティブC、その後にE、その後にDを実行するループを開始する。すなわち、倉庫に到着すると、ロボットは、物体_i=「最初のアイテム」とするinst(C)を実行し、ロボットに倉庫内の最初のアイテムを自律的に拾わせて、物体_k=「最初のアイテム」とするinst(E)を実行し、ロボットに最初のアイテムを自律的にバーコードスキャンさせる。そして、inst(D)物体_j=「最初のアイテム」を実行し、ロボットに最初のアイテムを置かせる。その後、ロボットは、倉庫内のすべてのアイテムを拾い、バーコードスキャンし、置くまで、倉庫内の各アイテムについてプリミティブC、その後にE、その後にD、を連続に(すなわち、2番目のアイテムについて、3番目のアイテムについて、など)繰り返す。このようにして、ロボットはワークフローB、その後に(C、その後にE、その後にD)を繰り返す、を実行することにより、第2ワーク目標を完了する。
【0074】
再利用可能な5つのワークプリミティブA、B、C、D、Eの同じライブラリを使用して、ロボットは少なくとも1つの追加ワーク目標を完了することができる。例えば、ロボットは、様々なステーションまたはウェイポイントで環境パラメータを記録する(繰り返し:B、その後にA)、および/または小売店で顧客の購入品をチェックアウトする(繰り返し:C、その後にE、その後にD)。これらの、および他の多くの、ワーク目標はすべて、5つの再利用可能なワークプリミティブA、B、C、D、およびEの例示的なライブラリからの再利用可能なワークプリミティブの様々な組み合わせおよび/または順列から構成される、またはそれらから構成される対応するワークフローを実行することによって、ロボットによって少なくとも半自律的に完了することができる。しかしながら、当業者であれば、再利用可能なワークプリミティブのライブラリは、任意の数および形態の再利用可能なワークプリミティブから構成されてもよく、本明細書で説明する5つの再利用可能なワークプリミティブA、B、C、D、およびEのライブラリは、説明のための例としてのみ使用されることを理解するであろう。一般に、再利用可能なワークプリミティブのライブラリ内の再利用可能なワークプリミティブが多ければ多いほど、ロボットが半自律的に完了させるために作動可能な異なるワーク目標が多くなる可能性がある。しかし、いくつかの実装では、有限数の再利用可能なワークプリミティブ(例えば、10個程度、例えば、10個、20個、30個、40個、50個、60個、70個、80個、90個などの10個単位、または100個、200個などの100個単位)であれば、ロボットが物体とするワーク目標の大部分(例えば、すべて)を完了するのに十分な場合もある。
【0075】
ロボットが複数の異なるワーク目標を完了するために再利用可能なワークプリミティブの固定ライブラリを用いる上述の例を
図2に示す。
図2は、本システム、装置、および方法によるロボットの例示的な作動方法200を示す流れ図である。方法200は、3つの副方法100、210、および250と、6つの図示された行為101、102、103、201、202、および203とを含むが、当業者であれば、代替実装において特定の行為が省略されてもよく、および/または追加の行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為の順序は例示的な目的のために示されているに過ぎず、代替実装では変更され得ることも理解されよう。
【0076】
方法200は、副方法100として、
図1からの第1ワーク目標を完了するためのロボットの作動方法100を含む。すなわち、方法200は、
図1の方法100からの行為101、102、および103を含み、それにより、ロボットは、第1ワーク目標を開始し(101)、第1ワーク目標を完了するための第1ワークフローを開始し(102)、第1ワークフローを実行する(103)、すべて実質的に
図1の方法100について説明したとおりである。最初に説明したように、第1ワークフローは、ロボットに記憶されているか、そうでなければロボットによってアクセスされる再利用可能なワークプリミティブのライブラリからの再利用可能なワークプリミティブの特定の組み合わせおよび/または順列から構成される、または構成される。方法100に従って、ロボットの再利用可能ワークプリミティブのライブラリ内の再利用可能ワークプリミティブの様々なものは、ロボットが第1ワーク目標を完了することを可能にするのに十分である。副方法210において、再利用可能なワークプリミティブのロボットのライブラリにある再利用可能なワークプリミティブの様々なものが、行為201、202、および203(集合的に、副方法210)を介して第2ワーク目標を完了するためにロボットによって使用および/または再利用され、同様に、再利用可能なワークプリミティブのロボットのライブラリにある再利用可能なワークプリミティブの様々なものが、副方法250において少なくとも1つの追加のワーク目標を完了するためにロボットによって使用および/または再利用される。
【0077】
具体的に、副方法210の201で、ロボットは、副方法100の101で開始された第1ワーク目標とは異なる第2ワーク目標を開始する。行為101について説明したのと同様に、201において、第2ワーク目標は、ロボットによって自律的に開始されてもよいし、口頭、電気通信システムを介した無線、テザリング通信回線を介したデジタルなど、様々な異なる通信手段のいずれかを介して他の当事者(例えば、制御者、パイロット、またはオペレーター)から受信した命令に応答して開始されてもよい。
【0078】
副方法210の202で、ロボットは、201で開始された第2ワーク目標を完了するための第2ワークフローを開始する。第2ワーク目標は第1ワーク目標とは異なるので、第2ワークフローは第1ワークフローとは異なっていてもよい。行為102について説明したのと同様に、ロボットによって、開始する202において、第2ワークフローは、ロボットによって実行されるとき、第2ワーク目標を完了させる再利用可能なワークプリミティブの第2セットまたは組み合わせを特定することまたは定義することを含み、さらに、(適用可能であれば)再利用可能なワークプリミティブの第2セットまたは組み合わせを、再利用可能なワークプリミティブの第2の組み合わせの第2の順列に配列することまたは他の方法で配列することを含んでもよい。本システム、装置、および方法に従って、第2ワーク目標を完了するための再利用可能なワークプリミティブの第2セットまたは組み合わせは、202において、第1ワーク目標を完了するための再利用可能なワークプリミティブの第1セットまたは組み合わせが102において選択されたのと同じ再利用可能なワークプリミティブのライブラリから選択される。いくつかの実装では、少なくとも1つの共通の再利用可能ワークプリミティブが、102で開始された第1ワークフローと202で開始された第2ワークフローの両方に含まれてもよい。言い換えると、いくつかの実装では、102で開始された第1ワークフローからの少なくとも1つの再利用可能なワークプリミティブが、202で開始された第2ワークフローで再利用される。
【0079】
行為102と同様に、202において、ロボットは、自律的に、または、口頭、電気通信システムを介した無線、テザリングされた通信回線を介したデジタルなど、様々な異なる通信手段のいずれかを介して、他の当事者(例えば、制御者、パイロット、またはオペレーター)から命令を受信することに応答して、第2ワークフローを開始することができる。
【0080】
副方法210の203において、ロボットは202で開始された第2ワークフローを実行する。一般に、203において第2ワークフローを実行する際に、ロボットは、202における第2ワークフローの開始において再利用可能ワークプリミティブのライブラリから選択された再利用可能ワークプリミティブの第2セットを実行し、第1ワークフロー(102において開始され、103において実行される)と第2ワークフロー(202において開始され、203において実行される)の両方に含まれる少なくとも1つの共通の再利用可能ワークプリミティブを含む(適用可能な場合)。前述したように、いくつかの実装において、ロボットは、再利用可能ワークプリミティブのライブラリ内の各再利用可能ワークプリミティブを実質的に自律的にまたは自動的に実行するように訓練済み、構成済み、または他の方法で作動可能であってもよい。したがって、ロボットが203において第2ワークフローを実行するとき、ロボットは、第2ワークフローに対応する第2の再利用可能ワークプリミティブのセット中の特定の再利用可能ワークプリミティブを自律的に実行させる、または実行させることを可能にするプロセッサにより実行可能な命令を実行することにより、実質的に自律的にまたは自動的に実行することができる。102で開始された第1ワークフローと202で開始された第2ワークフローの両方が少なくとも1つの共通の再利用可能ワークプリミティブを含む実装では、103で第1ワークフローを実行することと203で第2ワークフローを実行することの両方が、ロボットの少なくとも1つのプロセッサによって、第1ワークフローと第2ワークフローの両方において少なくとも1つの共通の再利用可能ワークプリミティブをロボットに実行させるプロセッサにより実行可能な命令の少なくとも同じ部分を実行することを含んでもよい。
【0081】
本システム、装置、および方法に従って、ロボットの再利用可能なワークプリミティブのライブラリ内の再利用可能なワークプリミティブの様々なものは、少なくとも1つの追加のワーク目標を完了するためにロボットによってさらに使用および/または再利用され得る。このため、方法200は、ロボットが再利用可能なワークプリミティブの第1セットを開始して実行し、第1ワーク目標を完了する副方法100と、ロボットが再利用可能なワークプリミティブの第2セットを開始して実行し、第1ワーク目標とは異なる第2ワーク目標を完了する副方法210と、ロボットが再利用可能なワークプリミティブの少なくとも1つの追加セットを開始して実行し、第1ワーク目標とも第2ワーク目標とも異なる少なくとも1つの追加ワーク目標を完了する副方法250(乱雑さを減らすために詳細は図示しないが、副方法100の行為101、102、103および副方法210の行為201、202、203に概ね類似している)と、を含む。副方法100、210、および250の各々において、同じロボットが、再利用可能なワークプリミティブの同じライブラリを使用して配備されるが、第1ワーク目標、第2ワーク目標、および少なくとも1つの追加ワーク目標はすべて互いに異なるため、ワーク目標を完了するためにロボットによって開始される対応するワークフロー(すなわち、それぞれ、第1ワークフロー、第2ワークフロー、および少なくとも1つの追加ワークフロー)はすべて互いに異なってもよい。本システム、装置、および方法に従って、ロボットのワークプリミティブのライブラリ内のワークプリミティブは、以下のいずれかまたはすべてが成立するように再利用可能である。1)第1ワーク目標を完了するための第1ワークフローに含まれる少なくとも一つのワークプリミティブは、第2ワーク目標を完了するための第2ワークフローにも含まれる(すなわち、第2ワークフローと共通であるか、「再利用」される)。2)第2ワーク目標を完了するための第2ワークフローに含まれる少なくとも一つのワークプリミティブは、少なくとも一つの追加ワーク目標を完了するための少なくとも一つの追加ワークフローにも含まれる(すなわち、少なくとも一つの追加ワークフローに共通であるか、または「再利用」される)。3)少なくとも1つの追加ワーク目標を完了するための少なくとも1つの追加ワークフローに含まれる少なくとも1つのワークプリミティブは、第1ワーク目標を完了するための第1ワークフローにも含まれる(すなわち、第1ワークフローと共通であるか、または第1ワークフローにおいて再利用される)。及び/又は4)第1ワーク目標を完了するための第1ワークフローに含まれる少なくとも一つのワークプリミティブは、第2ワーク目標を完了するための第2ワークフロー及び少なくとも一つの追加ワーク目標を完了するための少なくとも一つの追加ワークフローの両方にも含まれる(すなわち、共通又は再利用される)。後者のシナリオでは、少なくとも1つの再利用可能なワークプリミティブは、第1ワークフロー、第2ワークフロー、及び少なくとも1つの追加ワークフローの全てに含まれる(すなわち、共通であるか、又は再利用される)。
【0082】
ロボットは、様々な異なる形態で提供され、様々な異なる構成要素を含むことができる。ロボットは、先に説明したように、少なくとも1つのプロセッサで読み取り可能な非一時的な記録媒体に通信可能に結合された少なくとも1つのプロセッサを含む、筐体、キャリー、または他の方法で機械的に結合された本体または脚部を含むことができる。有利には、ロボットは、本体に機械的に結合され、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つの物理的に作動可能な構成要素を含むこともでき、少なくとも1つの物理的に作動可能な構成要素は、制御可能に移動し、ロボットおよび/またはロボットの環境において、ロボット上で、またはロボットに対する変化をもたらすように作動可能である。本明細書および添付の特許請求の範囲を通じて、「物理的に作動可能な構成要素」という用語は、(例えば、ロボットによって、またはロボットのオペレーター、制御者もしくはパイロットによって)制御可能に作動可能であり、運動(限定はしないが、並進および/または回転を含む)を伴う何らかの物理的方法で変化するロボットの実際の物理的部分を指す。物理的に作動可能な構成要素の非限定的な例としては、アーム、エンドエフェクタ、グリッパー、手、指、脚、首やブームなどの伸縮可能および/または変位可能な支持構造、および車輪が挙げられる。
【0083】
本システム、装置、および方法に従って、ロボットが少なくとも第1の物理的に作動可能な構成要素を含む場合、(例えば、ロボットの少なくとも1つのプロセッサで読み取り可能な非一時的な記録媒体)に記憶されるか、または他の方法でロボットによってアクセスされる再使用可能なワークプリミティブのライブラリは、少なくとも第1の物理的に作動可能な構成要素によって実行可能な再使用可能なワークプリミティブのセットを含んでもよい。すなわち、ロボットの再使用可能なワークプリミティブのライブラリは、少なくとも第1の物理的に作動可能な構成要素によってそれぞれ実行可能な特定の再使用可能なワークプリミティブを含むことができる。
【0084】
いくつかのワーク目標の完了は、例えば、ロボットおよび/またはその環境に変化をもたらすために、ロボットの第1の物理的に作動可能な構成要素を有利に展開する可能性がある。この場合、ロボットが方法100の行為102および/または方法200の(副方法210の)行為202ごとにワーク目標を完了するためのワークフローを開始するとき、ロボットは、第1の物理的に作動可能な構成要素によって実行可能な再利用可能なワークプリミティブのセットから少なくとも1つの再利用可能なワークプリミティブを含む、再利用可能なワークプリミティブの第1セットを開始してもよい。ロボットがワークフローを実行するとき、ロボットは、第1の物理的に作動可能な構成要素によって実行可能な再使用可能なワークプリミティブのセットから少なくとも1つの再使用可能なワークプリミティブを実行し、その結果、第1の物理的に作動可能な構成要素は、第1の物理的に作動可能な構成要素によって実行可能な少なくとも1つの再使用可能なワークプリミティブによって特徴付けられる何らかの意図的な方法で、ロボットまたはロボットの環境に変化をもたらすように作動する。少なくとも1つの物理的に作動可能な構成要素が、グリッパーや手などの物体を把持するように作動する構成要素(例えば、エンドエフェクタ)であるか、またはそれを含む上記の具体例を
図3に示す。
【0085】
図3は、本システム、装置、および方法によるロボットの作動の例示的な方法300を示す流れ図である。方法300を実行するために、ロボットは、物体を把持するように作動可能な少なくとも第1の物理的に作動可能な構成要素を含み、ロボットの再利用可能なワークプリミティブのライブラリは、物体を把持するように作動可能な少なくとも第1の物理的に作動可能な構成要素によって実行可能な再利用可能な把持プリミティブのセットを含む。方法300は、3つの行為301、302、および303を含むが、当業者であれば、代替実装において、特定の行為が省略されてもよく、および/または追加の行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為の順序は例示的な目的のためだけに示されており、代替実装では変更され得ることも理解されよう。
【0086】
方法300は方法100と実質的に類似しているが、ロボットによって完了される第1ワーク目標が特に物体の把持を含むという詳細が追加されている。したがって、方法300の301において、ロボットは(方法100の行為101について説明したのと同様の方法で)物体の把持を含む第1ワーク目標を開始する。非限定的な例として、第1ワーク目標は、物体を拾い上げること、物体を変位させること、物体を引っ張ること、物体をねじったり回転させたりすること、物体(工具や器具など)につかまること、および/またはそうでなければ物体を操作することを含むことができる。
【0087】
302で、ロボットは、(方法100の行為102について説明したのと同様の方法で)第1ワークフローを開始し、第1ワーク目標を完了する。本システム、装置、および方法に従って、方法300の例では、第1ワークフローは、ロボットの利用可能な再利用可能ワークプリミティブのライブラリから少なくとも1つの再利用可能な把持プリミティブを含み、少なくとも1つの再利用可能な把持プリミティブは、物体を把持するように動作可能な第1の物理的に作動可能な構成要素によって実行される。本明細書を通じて、「把持プリミティブ」という用語は、物体を特定の方法で把持するために、物体を把持するように動作可能で物理的に作動可能な構成要素、によって採用される特定の構成を指す。例えば、物体を把持するように作動する物理的に作動可能な構成要素が、複数の指および親指を有する手(すなわち、人間の手の類似体)であるか、またはそれを含む場合、異なる把持プリミティブは、物体を把持するときの指および親指の異なる配置または構成に対応し得る。物体を把持するように作動可能なこのような手のような物理的に作動可能な構成要素は、特に、物体の意図される使用および/または物体の特性(例えば、形状、サイズ、幾何学的形状、剛性、壊れやすさ)に応じて、異なる方法で異なる物体を把持するのに最適である可能性がある。把持が達成され得る特定の「異なる方法」は、それぞれの把持プリミティブに対応し得、様々な非限定的な例が
図4に示されている。
【0088】
図4は、本システム、装置、および方法による、再利用可能な把持プリミティブ400の例示的なセットを示す説明図である。再使用可能な把持プリミティブ400の例示的なセットでは、物体を把持するように作動する物理的に作動可能な構成要素は、(人間の手のように)4本の指と、向かい合わせられる親指と、を有するロボットハンドであり、把持プリミティブは、それぞれ異なる方法で把持するのに適した異なる手の構成に対応している。しかしながら、本明細書の教示は、物体を把持するように作動する手のような物理的に作動可能な構成要素が、2本の指、3本の指、5本の指、6本の指など、異なる数の指を含む代替実装において適用され得ることを、当業者は理解するであろう。
【0089】
図4では、把持プリミティブ400は、2つのハイレベルのカテゴリーに分類される。「強力」把持プリミティブと「精密」把持プリミティブであり、「強力」把持プリミティブは、例えば、強固な剛体物体を把持する場合や、非常に安全な把持が望まれる出願に適した強力な把持を提供し、「精密」把持プリミティブは、例えば、繊細な柔らかい物体を把持する場合や、非常に操作性の高い把持が望まれる出願に適した穏やかな把持を提供する。「強力」把持プリミティブと、「精密」把持プリミティブと、のカテゴリーは、それぞれ、把持する物体の形状(例えば、柱状や円形)と手の指と親指の構成/配置(例えば、ヘビーラップ、ライトラップ、円盤状、球状、4本指、1本指)に基づいて、さらに副カテゴリーに分類される。このようにして、再利用可能な把持プリミティブの例示的なセット400は、本システム、装置、および方法に従って物体を把持するように作動する手のような物理的に作動可能な構成要素によって自律的に展開され得る8つの固有の把持プリミティブを含む。しかしながら、当業者であれば、
図4の例示的な8つの再使用可能な把持プリミティブ400のセットは、例示の目的のみに提供されており、実際には、再使用可能な把持プリミティブのセットは、特定の実装に応じて、任意の数および組み合わせの把持プリミティブから構成され得るか、またはこれらから構成され得ることを理解するであろう。
図4に示す8つの再利用可能な把持プリミティブ400のすべてと、
図4に示していない少なくとも1つの追加の再利用可能な把持プリミティブ。または、
図4に示す8つの再使用可能な把持プリミティブ400のいずれも含まない、全く異なる再使用可能な把持プリミティブのセット。さらに、異なる実装では、再使用可能な把持プリミティブのセットは、
図4に示されているものとは異なる組織構造に従ってもよく、あるいは、再使用可能な把持プリミティブのセットは、全く組織構造に従わなくてもよい。
【0090】
図3の方法300に戻ると、303において、ロボットは、302で開始された第1ワークフローを(方法100の行為103について説明したのと同様の方法で)実行する。303における第1ワークフローの実行において、物体を把持するように作動可能な第1の物理的に作動可能な構成要素は、少なくとも1つの再使用可能な把持プリミティブを実行し、物体またはワーク目標に適した特定の方法(例えば、ヘビーラップまたは1本指)で物体を把持する。303で第1ワークフローを実行することで、第1ワーク目標が完了する。
【0091】
図5は、本システム、装置、および方法に従って物体を把持するためのロボットの作動の例示的な方法500を示す流れ図である。方法500を実行するために、ロボットは、複数の指と、向かい合わせられる親指と、を有するロボットハンドと、ロボットハンドの作動を制御するように作動可能な少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのセンサと、少なくとも1つのプロセッサに通信可能に結合された、プロセッサにより読み取り可能な非一時的記録媒体とを含む。プロセッサにより読み取り可能な非一時的記録媒体は、再使用可能な把持プリミティブのライブラリと、少なくとも1つのプロセッサによって実行されると、ロボットハンドに再使用可能な把持プリミティブのライブラリ内の再使用可能な把持プリミティブを自律的に実行させるプロセッサにより実行可能な命令とを記憶する。方法500は、4つの行為501、502、503、及び504と、1つの副行為531とを含むが、代替実装では、特定の行為及び/又は副行為が省略されてもよく、及び/又は追加の行為及び/又は副行為が追加されてもよいことを当業者は理解するであろう。当業者であれば、図示された行為および/または副行為の順序は例示的な目的のために示されているに過ぎず、代替実装では変更され得ることも理解されよう。
【0092】
501において、少なくとも1つのセンサは物体に関するデータを収集する。いくつかの実装では、少なくとも1つのセンサは、少なくとも1つのカメラなどの少なくとも1つの光学センサを含んでもよく、501において、少なくとも1つの光学センサは、物体に関する少なくとも1つの画像などの光学データを収集してもよい。いくつかの実装では、少なくとも1つのセンサは、少なくとも1つの力覚センサまたは触覚センサを含んでもよく、501において、少なくとも1つの力覚センサまたは触覚センサは、物体に関する力覚データまたは触覚データを収集してもよい。501で展開されるいくつかのセンサシステムは、LiDARシステムまたは例えば無線周波数に基づく他のスキャナシステムなどの信号エミッタを含むことができる。
【0093】
502において、501で少なくとも1つのセンサによって収集されたデータは、少なくとも1つのプロセッサによって解析され、物体の形状を決定する。501で採用される少なくとも1つのセンサが少なくとも1つの光学センサを含む場合、当業者であれば、502で実行される解析は、限定はしないが、以下を含む、幅広いマシンビジョンおよび/またはデジタル画像処理技術のいずれかを採用し得ることを理解するであろう。スティッチング、レジストレーション、フィルタリング(例えば、形態学的フィルタリング)、閾値、ピクセルカウント、セグメンテーション、エッジ検出、色分析、ブロブ検出および抽出、ニューラルネット/深層学習/機械学習処理、テンプレートマッチングを含むパターン認識、および/または計測/測定。
【0094】
503において、少なくとも1つのプロセッサは、少なくとも部分的に、502において決定された物体の形状に基づいて、再使用可能な把持プリミティブのライブラリから特定の再使用可能な把持プリミティブを選択する。少なくとも1つのプロセッサが選択する特定の再使用可能な把持プリミティブは、いくつかの実装では、再使用可能な把持プリミティブのライブラリ内の他の全ての再使用可能な把持プリミティブと比較して(又は対照して)、プロセッサが物体の形状に最も適合する(又は最も適合すると判断する)特定の再使用可能な把持プリミティブであるか、又は、特定の再使用可能な把持プリミティブを含むことができる。一例として、物体の形状に「最も適合する」特定の再使用可能な把持プリミティブは、再使用可能な把持プリミティブのライブラリ内の他の全ての再使用可能な把持プリミティブと比較して、物体の形状に最も適合する、又は、物体の形状に適合するロボットハンドの複数の指及び反対の親指の構成を採用する特定の再使用可能な把持プリミティブであってもよい。
【0095】
いくつかの実装では、503の特定の再使用可能な把持プリミティブを選択するために、少なくとも1つのプロセッサは、再使用可能な把持プリミティブのライブラリ内のどの特定の再使用可能な把持プリミティブが再使用可能な把持プリミティブのライブラリ内の他の把持プリミティブと比較して物体の形状に最も適合するかを決定するために、再使用可能な把持プリミティブのライブラリ内の各再使用可能な把持プリミティブを用いて(502で決定された物体の形状が与えられた)物体を把持するロボットハンドを模擬実験またはモデリングしてもよい。模擬実験/モデリング工程は、再使用可能な把持プリミティブのライブラリ内の各再使用可能な把持プリミティブに、その再使用可能な把持プリミティブが物体の形状にどの程度適合するか、収容するか、又は嵌合するか、及び/又は把持がどの程度確実に達成されるか、又は達成されるかに基づいて、それぞれのスコアを割り当てることを含むことができる。このような採点システムを採用する実装では、少なくとも1つのプロセッサは、再使用可能な把持プリミティブのライブラリ内の他の全ての再使用可能な把持プリミティブと比較して、物体の形状に最も適合する特定の再使用可能な把持プリミティブとして、最高得点を有する再使用可能な把持プリミティブを返すか、または選択することができる。いくつかの実装では、少なくとも1つのプロセッサは、最初に(すなわち、ロボットハンドで物体を把持するモデリング又は模擬実験、の前に)、(例えば)強力把持が好ましいかプリズム把持が好ましいかなどの、物体を把持する必要がある物体又はタスクの特性に基づいて、良好な適合を提供する可能性が低い再使用可能な把持プリミティブをフィルタリングしてもよい。例えば、
図4を参照すると、物体が固くて重いことが分かっており、物体の形状が(502で)長くて円筒形であると判断された場合、少なくとも1つのプロセッサは、「柱状」および「強力」に対応する再使用可能な把持プリミティブのみがモデリングされ、および/または模擬されるように、再使用可能な把持プリミティブをフィルタリングすることができる。
【0096】
いくつかの実装では、モデリング及び/又は模擬実験、は採用されず、503において、少なくとも1つのプロセッサは、純粋に、上述のものと同様の推論又は消去フィルタリングのプロセスに基づいて、特定の再利用可能な把持プリミティブを選択することができる。すなわち、再び
図4に戻ると、物体が軽くて壊れやすいことが分かっており、物体の形状が(502において)球形であると判定された場合、少なくとも1つのプロセッサは、503において、「精密、その後に円形、その後に球形」の再使用可能な把持プリミティブを選択するために、これらの特性に基づいて、再使用可能な把持プリミティブのライブラリをフィルタリングしてもよい。
【0097】
504において、ロボットハンドは、物体を把持するために、503において少なくとも1つのプロセッサによって選択された特定の再使用可能な把持プリミティブを実行する。いくつかの実装では、ロボットハンドは、少なくとも1つのプロセッサによって制御されてもよく、504において、少なくとも1つのプロセッサは、ロボットハンドに、物体を把持するために特定の再使用可能な把持プリミティブを自律的に実行させるプロセッサにより実行可能な命令を実行してもよい。
【0098】
前述の例のいくつかで説明したように、いくつかの実装では、少なくとも1つのプロセッサは、503において、502で決定された物体の形状と、物体の少なくとも1つの追加パラメータ(例えば、物体が重いか軽いか、物体が強いか/耐久性があるか、壊れやすいか/脆いかなど)の両方に基づいて、再利用可能な把持プリミティブのライブラリから特定の再利用可能な把持プリミティブを選択することができる。したがって、方法500のいくつかの実装では、少なくとも1つのプロセッサは、物体に関する追加データを解析して、物体の少なくとも1つの追加パラメータを決定することができる。このような追加データは、少なくとも1つのセンサによって収集されるか(すなわち、501で物体に関するデータを収集するのと同じセンサを使用するか、同じセンサタイプまたは異なるセンサタイプの異なるセンサを使用する)、または外部ソース(例えば、ロボットのパイロットまたは他のオペレーター)からロボットに送られる/送信される。例えば、ロボットは、特に物体に関する追加データを受信し得る、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つの受信機を含み得る。物体に関する追加データは、特定の実装に応じて、様々な異なる形態で提供され得る。例として、物体に関する追加データは、単独でまたは任意の組み合わせで、物体の硬度、物体の剛性、物体の個性、物体の機能、および/または物体の質量のいずれかを含み得る。
【0099】
ロボットは、ワークフローの一部として方法500(すなわち、物体を把持すること)を作動させることができる。すなわち、物体を把持する行為または動作は、ワーク目標を推進するワークフローの一部としてロボットによって実行される1つ以上の再利用可能なワークプリミティブに対応し得る。本システム、装置、および方法に従って、503においてロボットによって選択される特定の再利用可能なワークプリミティブは、いくつかの実装において、ロボットがワーク目標の推進において把持された物体を用いて何を行うかに少なくとも部分的に従属するか、またはその影響を受ける可能性がある。例えば、ロボットが物体をスイングするか、道具として使用する必要がある場合、ロボットは「強力」把持プリミティブを採用し、対象物の確実な把持を確保する。一方、ロボットが物体を摘んで配置する必要がある場合、ロボットは「精密」把持プリミティブを採用し、物体の正確な配置を確保する。したがって、方法500のいくつかの実装では、行為503は、副行為531を含むことができる。531において、ロボット(例えば、ロボットの少なくとも1つのプロセッサ)は、少なくとも部分的には、502で決定された物体の形状と、ロボットによって実行されるワーク目標に関する情報の両方に基づいて、再利用可能な把持プリミティブのライブラリから特定の再利用可能な把持プリミティブを選択する。ロボットによって実行されるワーク目標に関する情報は、ロボットのプロセッサにより読み取り可能な非一時的記録媒体にデータとして記憶され、503で再利用可能な把持プリミティブを選択する際に少なくとも1つのプロセッサによってアクセスされる。ロボットによって実行されるべきワーク目標に関するデータは、ロボットのパイロットまたはオペレーターから(例えば、ロボットの少なくとも1つの受信機によって)受信された命令またはコマンドを介して、ロボットのパイロットまたはオペレーターから(例えば、ロボットのマイクロフォンまたは入力端末によって)局所的に受信された命令またはコマンドを介して、および/または、ロボットの人工知能によって実行される自律的行動計画および/または推論を介して、限定されないが、様々な異なる手段を通じて、ロボットのプロセッサにより読み取り可能な非一時的記録媒体に到着するか、または、ロボットのプロセッサにより読み取り可能な非一時的記録媒体に到着してもよい。
【0100】
本システム、方法、および装置に従って、ロボットは、再利用可能な把持プリミティブのライブラリ内の各再利用可能な把持プリミティブを自律的に実行することができる。より一般的には、ロボットは、再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行することができる。このような自律性は、ロボットに再利用可能な把持/ワークプリミティブを繰り返し反復して実行させることを含む訓練または学習プロセス、によって開発されるか、または可能になる。当業者であれば、ワーク目標を達成する完全な命令セットを再生するようにロボットを作動させる(すなわち、ワークフロー全体を再生するようにロボットを作動させる)ことによって、ワーク目標を完了するようにロボットを訓練するという概念に既に馴染みがあるだろうが、本システム、方法、および装置に従って、ワークフロー全体に対応する完全な命令セットを再生するようにロボットを作動させるこの従来のアプローチは、望ましくないほど特殊であり、限定的である。ワークフロー全体を自律的に実行するように訓練済みロボットは、そのワークフローに対応するワーク目標(複数可)だけを自律的に完了できる高度に特殊化されたロボットである。条件、環境、またはワーク目標の仕様のわずかな変更でさえ、そのような高度に専門化されたロボットが自律的にワーク目標を完了できなくする可能性がある。逆に、本システム、方法、および装置では、自律的な「汎用」ロボットについて説明するが、このような汎用性は、少なくとも部分的には、各ロボットが(完全なワークフローのみではなく)個々のワークプリミティブを自律的に実行し、広範な異なるワーク目標に対応する多数の異なるワークフローにわたってそのようなワークプリミティブを「再利用」する能力から生じる。したがって、再利用可能なワークプリミティブを自律的に実行するようにロボットを訓練することは、ワークフロー全体を自律的に実行するようにロボットを訓練することとは異なり、多目的なロボットの適用例を可能にする汎用性を有利にもたらす。言い換えれば、完全なワークフローを自律的に実行するように訓練するのとは対照的に、再利用可能なワークプリミティブを自律的に実行するように訓練することは、汎用性、一般性、および有用性の範囲という点でロボットの機能を向上させる。
【0101】
図6は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する例示的なコンピュータ実装方法600を示す流れ図である。方法600は、2つの主行為601および602を含み、行為602は、2つの副行為621および622を含むが、当業者であれば、代替の実施態様において、特定の行為/副行為が省略されてもよく、および/または追加の行為/副行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為/副行為の順序は例示的な目的のために示されているに過ぎず、代替的な実施態様では変更され得ることも理解されよう。方法600は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体と通信可能に結合された少なくとも1つのプロセッサなどの従来のコンピューティングハードウェア、およびシステムバス、入出力周辺機器、ネットワーキング・ハードウェアなどの様々な他の周知の構成要素、ならびにBIOS、様々なドライバ、オペレーティングシステムなどのプロセッサにより読み取り可能な非一時的記録媒体に記憶された従来のソフトウェアおよびファームウェアを含む1つまたは複数のコンピュータシステム(複数可)によって実行され得るコンピュータ実装方法である。本システム、方法、および装置に従って、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体に通信可能に結合された少なくとも1つのプロセッサによって実行されると、コンピュータシステムにコンピュータ実装方法600を実行させるデータおよび/またはプロセッサにより実行可能な命令(例えば、コンピュータプログラム製品)を記憶することもできる。
【0102】
601では、再利用可能な作業プリミティブのライブラリが定義される。各再利用可能な作業プリミティブはロボットによって実行可能であり、再利用可能なワークプリミティブのライブラリからの再利用可能なワークプリミティブのそれぞれの組み合わせおよび順列は、それぞれのワークフローにおいてロボットによって開始され、それぞれのワークフローは、それぞれのワーク目標を推進するそれぞれのワークフローの実行を完了するために、ロボットによって実行される。
【0103】
602において、ロボットは、再利用可能な作業プリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行するように訓練される。再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行するようにロボットを訓練することは、再利用可能なワークプリミティブのライブラリ内のそれぞれの再利用可能なワークプリミティブについて、任意のワークフローにおいて再利用可能なワークプリミティブに先行または後続し得る他の再利用可能なワークプリミティブを考慮することなく、または許容することなく、または適合させることなく、再利用可能なワークプリミティブを繰り返し実行するようにロボットを動作させることを含んでもよい。言い換えれば、ワークフロー全体を自律的に再生するようにロボットを訓練する従来の技術は、ワーク目標を完了するために、先行する命令および後続する命令にそれぞれ連続的に依存する一連の命令を実行するようにロボットを操作することを含むが、本システム、方法、および装置では、ロボットは、個々の再利用可能なワークプリミティブについて、先行する命令または後続する命令に依存せず、それ自体ではワーク目標を完了しない独立した命令セットを実行することによって、個々の再利用可能なワークプリミティブを自律的に再生するように訓練される。この602におけるロボットの訓練プロセスは、
図6に副動作621および622として示されている。
【0104】
621において、602でのロボットの訓練は、ロボットの少なくとも1つのプロセッサによって実行されたとき、ロボットに再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを選択的かつ自律的に実行させるプロセッサにより実行可能な命令を生成することを含んでもよい。プロセッサにより実行可能な命令の生成は、各再利用可能なワークプリミティブについて、ロボットを繰り返し動作させて再利用可能なワークプリミティブを実行させ、再実行させる反復プロセスを含んでもよく、その際、ロボットに再利用可能なワークプリミティブを最も成功(例えば、最も少ないエラーで、最も短い時間で、最も高い精度または正確さで、または他の同様の成功の尺度によって)裏に実行させるそれらの動作および制御パラメータ(例えば、作動タイミング、力とトルクのレベルなど)は、ロボットによって再実行されたときに、ロボットに再利用可能なワークプリミティブを選択的かつ自律的に再実行させるプロセッサにより実行可能な命令として符号化されてもよい。
【0105】
622において、621で生成されたプロセッサにより実行可能な命令は、ロボットのプロセッサにより読み取り可能な非一時的記録媒体に送られる。言い換えれば、622において、621で生成されたプロセッサにより実行可能な命令は、ロボットに再利用可能なワークプリミティブを自律的に実行させるためにロボットによって呼び出され再生されるように、ロボットに「ロード」される。
【0106】
前述のように、本システム、方法、および装置に従って、ロボットが自律的に再利用可能なワークプリミティブを実行するように訓練することは、模擬環境で完了することができる。例えば、602におけるロボットの訓練は、
図7に示されるように、ロボットが模擬環境において再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行するように訓練することを含んでもよい。
【0107】
図7は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する例示的なコンピュータ実装方法700を示す流れ図である。方法700は、2つの主行為701および702を含み、行為702は、3つの副行為721、722および723を含むが、当業者であれば、代替の実施態様において、特定の行為/副行為が省略されてもよく、および/または追加の行為/副行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為/副行為の順序は例示的な目的のために示されているに過ぎず、代替的な実施態様では変更され得ることも理解されよう。方法700は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体と通信可能に結合された少なくとも1つのプロセッサなどの従来のコンピューティングハードウェア、およびシステムバス、入出力周辺機器、ネットワーキング・ハードウェアなどの他の様々な周知の構成要素、ならびにBIOS、様々なドライバ、オペレーティングシステムなどのプロセッサにより読み取り可能な非一時的記録媒体に記憶された従来のソフトウェアおよびファームウェアを含む1つまたは複数のコンピュータシステム(複数可)によって実行され得るコンピュータ実装方法である。本システム、方法、および装置に従って、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体に通信可能に結合された少なくとも1つのプロセッサによって実行されると、コンピュータシステムにコンピュータ実装方法700を実行させるデータおよび/またはプロセッサにより実行可能な命令(例えば、コンピュータプログラム製品)を記憶することもできる。
【0108】
701では、方法600の行為601と同様に、再利用可能なワークプリミティブのライブラリが定義される。各再利用可能なワークプリミティブはロボットにより実行可能である。
【0109】
702において、ロボットは、再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行するように、模擬環境において訓練される。本明細書および添付の特許請求の範囲を通じて、「模擬環境」、「模擬インスタンス」などのように「模擬」という用語は、物理的な相手の仮想またはデジタルコピーまたはエミュレーションを指すために使用される。したがって、「模擬環境」とは、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体に記憶されたプロセッサにより実行可能な命令および/またはデータで符号化され、そのようなプロセッサにより実行可能な命令および/またはデータを実行する少なくとも1つのプロセッサによって実現される、物理的環境の仮想的またはデジタル表現である。プロセッサにより実行可能な命令および/またはデータは、空間および該当する場合、そこに含まれる任意の物体を特徴付ける寸法(例えば、空間パラメータ)、幾何学的形状、および他のパラメータ(例えば、重力による加速度、光速などの物理定数)を符号化することができる。模擬環境は、既知の実世界環境を表している場合もあれば、表していない場合もある。ユーザとのインタフェースのために、模擬環境は、スクリーンまたはモニタ上に表示されるかもしれないが、模擬環境のそのような視覚的な明示は、本システム、方法、およびデバイスのすべての実装において必ずしも必要ではない。いくつかの実施態様では、模擬環境においてロボットを訓練することは、模擬環境におけるロボットの1つ以上の模擬実験(複数可)を訓練することを含み得る。この目的のために、行為702は副行為721、722、723を含む。
【0110】
721において、これは702における模擬環境におけるロボットの訓練の一部であり、ロボットの第1模擬インスタンスが模擬環境において生成される。ロボットの模擬インスタンスは、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体に記憶されたプロセッサにより実行可能な命令および/またはデータで符号化され、かかるプロセッサにより実行可能な命令および/またはデータを実行する少なくとも1つのプロセッサによって実現されるロボットの仮想またはデジタル表現を含み得る。プロセッサにより実行可能な命令および/またはデータは、現実世界の物理ロボットを特徴付ける寸法(例えば、空間パラメータ)、形状、および他のパラメータ(例えば、自由度、材料特性、質量など)、および該当する場合、それがどのように動くかを符号化することができる。ユーザとのインタフェースのために、ロボットの模擬インスタンスは、スクリーンまたはモニタ上に表示されてもよいが、ロボットの模擬インスタンスのそのような視覚的表示は、本システム、方法、およびデバイスのすべての実装において必ずしも必要ではない。
【0111】
722では、702での模擬環境におけるロボットの訓練の一部である、プロセッサにより実行可能な命令が(少なくとも1つのプロセッサによって)繰り返し実行され、ロボットの第1模擬インスタンスに、再利用可能なワークプリミティブのライブラリ内の第1の再利用可能なワークプリミティブを実行させる。
【0112】
702における模擬環境でのロボットの訓練の一部である723において、722において繰り返し実行されるプロセッサにより実行可能な命令は、722においてロボットの第1模擬インスタンスに第1の再利用可能なワークプリミティブを実行させるためにプロセッサにより実行可能な命令を繰り返し実行した少なくとも1つの結果に基づいて改良される。例えば、722において繰り返し実行されるプロセッサにより実行可能な命令は、723において、722においてプロセッサにより実行可能な命令を実行した結果を改善または再現するために、ロボットの第1模擬インスタンスが第1の再利用可能なワークプリミティブを実行する方法を支配する1つまたは複数のパラメータ(例えば、作動のタイミングまたは作動の間、作動の力または精度、目標値または閾値、感覚トリガなど)を調整するように改良され得る。ロボットの第1模擬インスタンスに722で第1の再利用可能なワークプリミティブを実行させるためにプロセッサにより実行可能な命令を実行する第1の反復が、何らかの方法で欠陥のある結果をもたらす場合(例えば、第1の再利用可能なワークプリミティブの実行が遅すぎる、精度または精度が不十分である、早すぎる、精度または精度が過剰である、または期待される結果と矛盾している)、次に、723において命令が改良され、その後、722において(すなわち、第2の反復のために)繰り返され、より望ましい結果が達成されることが確認され得る。
【0113】
いくつかの実装において、方法700は、ライブラリまたは再利用可能なワークプリミティブ内の任意の数の追加再利用可能なワークプリミティブに対して継続してもよい。副行為722および723は、再使用可能なワークプリミティブのライブラリ内の各再使用可能なワークプリミティブに対して繰り返されてもよい。例えば、追加のプロセッサにより実行可能な命令が繰り返し実行され(すなわち、722において)、ロボットの第1模擬インスタンスに、再使用可能なワークプリミティブのライブラリ内の少なくとも1つの追加の再使用可能なワークプリミティブを実行させてもよく、ロボットの第1模擬インスタンスに少なくとも1つの追加の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令は、ロボットの第1模擬インスタンスに少なくとも1つの追加の再利用可能なワークプリミティブを実行させるためにプロセッサにより実行可能な命令を繰り返し実行した少なくとも1つの結果に基づいて(すなわち、723において)改良されてもよい。
【0114】
本システム、方法、および装置に従って、再利用可能なワークプリミティブを自律的に実行するようにロボットを訓練することは、実際の物理的ロボットを用いて現実の物理的世界で行ってもよいし、ロボットの模擬インスタンスを用いて模擬世界で行ってもよい。いずれの場合も、同一または実質的に同様のプロセッサにより実行可能な命令を使用して、実ロボット/模擬ロボットの動作を制御または支配することができる。ロボットの模擬インスタンスを模擬環境(実際の物理的環境で実際の物理的ロボットを訓練するのとは対照的である)で訓練する利点は、そうすることで実際の物理的なロボットの物理的なハードウェアに摩耗や損傷を与えないことである。上述したように、訓練プロセスでは、ロボットに訓練中の再利用可能な原始的作業を繰り返し実行させる必要があり、ロボットのハードウェアに大きな消耗を引き起こし、意味のあるワークを完了するために配備される前にロボットの機能寿命を縮める可能性がある。さらに、訓練の初期段階では、ロボットは再利用可能なワークプリミティブを実行するのが非常に不得手で、それを実行しようとする初期の試みは、ロボット自身またはその周囲に損害を与える可能性がある。例えば、ロボットが転倒したり、周囲の物体に衝突したりする可能性がある。模擬環境でロボットの模擬インスタンスを訓練することで、実際の物理的なロボットに対するそのようなリスクを回避することができる。
【0115】
模擬環境でロボットの模擬インスタンスを訓練する更なる利点は、訓練プロセスが並列化によって加速される可能性があることである。いくつかの実装では、ロボットの任意の数の追加の模擬インスタンスを模擬環境内で生成し、ロボットの第1模擬インスタンスと並行して訓練することができる。例えば、方法700の幾つかの実装は、模擬環境においてロボットの少なくとも1つの追加の模擬インスタンスを生成することと、ロボットの少なくとも1つの追加の模擬インスタンスに、ロボットの第1模擬インスタンスと並んで又は並行して(又は独立して)、再利用可能なワークプリミティブのライブラリ内の第1の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令を繰り返し実行することとをさらに含み得る。ロボットの第1模擬インスタンスとロボットの少なくとも1つの追加の模擬インスタンスの両方に第1の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令は、ロボットの第1模擬インスタンスとロボットの少なくとも1つの追加の模擬インスタンスに第1の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令を繰り返し実行した少なくとも1つの結果に基づいて改良することができる。いくつかの実装では、プロセッサにより実行可能な命令の単一の共通インスタンスが、ロボットの両方/すべての模擬インスタンスによって実行され、ロボットのすべての模擬インスタンスにわたる結果に基づいて改良されることがある(例えば、ロボットの各模擬インスタンスは、それぞれ異なる物体を把持するなど、いくつかの制御されたバリエーションを伴って、同じ再利用可能なワークプリミティブを実行するように動作することがある)。他の実装では、ロボットの各模擬インスタンスは、プロセッサにより実行可能な命令の各インスタンスを実行し、プロセッサにより実行可能な命令の各インスタンスは、ロボットの対応する模擬インスタンスで達成された結果に基づいて改良される。この後者のシナリオでは、プロセッサにより実行可能な命令のそれぞれのインスタンスは、改良プロセスの後に比較され、プロセッサにより実行可能な命令の大域的最適インスタンスが選択されてもよい。
【0116】
模擬における訓練は、長時間にわたって中断することなく(すなわち、休止または休息することなく)連続的に行うことができるというさらなる利点を有する。
【0117】
図8は、本システム、方法、および装置に従って、ロボットが再利用可能なワークプリミティブを実行するように模擬実験を通じて訓練される例示的な模擬環境800を示す図解付きの図である。模擬環境800は、平坦な地面801を有する単純な空間を含み、いかなる実世界空間にも基づいていない。実世界のロボットの複数の模擬インスタンスが模擬環境800に存在し、乱雑さを減らすために
図8では例示的な第1模擬インスタンス810のみが呼び出される。ロボット810の各模擬インスタンスは、それぞれの物体820を把持するために、特定の再利用可能な把持プリミティブを繰り返し実行している(乱雑さを減らすために、
図8では1つの例示的な物体820のみが呼び出されている)。本システム、方法、および装置に従って、ロボット810の模擬インスタンスは、それぞれ、再利用可能なワークプリミティブを自律的に実行するための訓練であり、完全なワークフローではなく、複数の模擬インスタンスにわたってこのような訓練を並列化することにより、実際の物理的なロボットハードウェアで行うのと比較して、訓練プロセスを大幅に迅速化することができ、同時に、現実世界の物理的な構成要素または物体の損傷または消耗を軽減することができる。模擬実験の質によっては、ロボット810の模擬インスタンスの動作を制御するために使用され、再利用可能なワークプリミティブの自律的性能を最適化するために訓練されたプロセッサにより実行可能な命令は、模擬実験から移動され、実際の物理的ロボットにロードされる可能性がある。換言すれば、ロボット810の模擬インスタンスおよび模擬環境800が現実世界の物理的な類似物を十分に代表するものであることを条件として、模擬環境800における模擬インスタンス810の訓練を通じて開発された同一または実質的に類似のプロセッサにより実行可能な命令は、現実の物理的な世界における現実の物理的ロボットに配備されて、そのような現実の物理的ロボットが再利用可能なワークプリミティブを自律的に実行できるようにすることができる。
【0118】
本明細書で説明する訓練プロセスは、実行されるとロボット、またはロボットの任意の数の模擬インスタンスに再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令を用いる。本システム、方法、および装置に従って、このようなプロセッサにより実行可能な命令は、遠隔操作システムに由来し、および/または遠隔操作システムによって生成され得る。
【0119】
図9は、本システム、装置、および方法に従って、多数のワーク目標を完了するためにロボットを初期化する例示的なコンピュータ実装方法900を示す流れ図である。方法900は、2つの主行為601および602を含み、行為602は、3つの副行為921、922、および923を含むが、当業者であれば、代替の実施態様において、特定の行為/副行為が省略されてもよく、および/または追加の行為/副行為が追加されてもよいことを理解するであろう。当業者であれば、図示された行為/副行為の順序は例示的な目標のために示されているに過ぎず、代替的な実施態様において変更され得ることも理解されよう。方法900の行為601および602は、方法600の行為602および602と実質的に類似している。方法900は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体と通信可能に結合された少なくとも1つのプロセッサなどの従来のコンピューティングハードウェア、およびシステムバス、入出力周辺機器、ネットワークハードウェアなどの他の様々な周知の構成要素、ならびにBIOS、様々なドライバ、オペレーティングシステムなどのプロセッサにより読み取り可能な非一時的記録媒体に記憶された従来のソフトウェアおよびファームウェアを含む1つまたは複数のコンピュータシステム(複数可)によって実行され得るコンピュータ実装方法である。本システム、方法、および装置に従って、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体は、少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体に通信可能に結合された少なくとも1つのプロセッサによって実行されると、コンピュータシステムにコンピュータ実装方法900を実行させるデータおよび/またはプロセッサにより実行可能な命令(例えば、コンピュータプログラム製品)を記憶することもできる。
【0120】
601では、方法600の詳細に記載したのと同様の方法で、再利用可能なワークプリミティブのライブラリが定義される。
【0121】
602において、ロボットは、方法600の詳細に記載されたのと同様の方法で、再利用可能なワークプリミティブのライブラリ内の各再利用可能なワークプリミティブを自律的に実行するように訓練されるが、方法900の行為602は、副行為921、922、および923を含む。方法900のいくつかの実施態様では、行為602は、1つまたは複数の実際の物理的ロボット(複数可)のみを使用して実行されてもよいが、方法900の他の実施態様では、行為602は、実際の物理的ロボットの任意の数の模擬インスタンスを使用して実行されてもよい。
【0122】
ロボットの訓練602の一部である921では、ロボット(の模擬インスタンス)に再使用可能なワークプリミティブのライブラリ内の第1の再使用可能なワークプリミティブを実行させる遠隔操作命令を受信する。遠隔操作命令は、遠隔操作システムから受信してもよく、その更なる例示的な詳細については後述する。行為602が現実の物理的ロボットを用いて実行される場合、遠隔操作命令は921において現実の物理的ロボットによって受信されてもよい。行為602が実際の物理的ロボットの任意の数の模擬インスタンスを用いて実行される場合、遠隔操作命令は、921において、模擬実験を実行しているコンピュータシステムによって受信されてもよい。
【0123】
ロボットの訓練602の一部である922において、ロボット(の模擬インスタンス)に第1の再利用可能なワークプリミティブを実行させる、遠隔操作命令が実行される。行為602が現実の物理的ロボットを用いて実行される場合、遠隔操作命令は922において現実の物理的ロボットによって実行されてもよい。行為602が実際の物理的ロボットの任意の数の模擬インスタンスを使用して実行される場合、遠隔操作命令は、922において、模擬実験を実行しているコンピュータシステムによって実行されてもよい。
【0124】
行為602におけるロボットの訓練の一部である923において、プロセッサにより実行可能な命令が生成される。プロセッサにより実行可能な命令は、ロボット(の模擬インスタンス)に第1の再利用可能なワークプリミティブを実行させる遠隔操作命令を再生させる。言い換えれば、プロセッサにより実行可能な命令は、ロボット(の模擬インスタンス)によって実行されると、ロボット(の模擬インスタンス)に遠隔操作命令を再生させ、遠隔操作命令自体なしに(すなわち、第1の再利用可能なワークプリミティブを実行する方法の詳細を提供する追加の遠隔操作命令を受信することなしに)第1の再利用可能なワークプリミティブを自律的に実行させる遠隔操作命令の実行可能コピーを表すことができる。行為602が実際の物理的ロボットを用いて実行される場合、923で生成されたプロセッサにより実行可能な命令は、必要に応じて、第1の再利用可能なワークプリミティブを自律的に実行するために、ロボットによって呼び出されるか、または実行されてもよい。行為602が現実の物理的ロボットの任意の数の模擬インスタンスを用いて実行される場合、プロセッサにより実行可能な命令は、(例えば、コンピュータプログラム製品として)現実の物理的ロボットに配信またはロードされ、必要なときにロボットに第1の再利用可能なワークプリミティブを実行させるためにロボットによって実行されてもよい。
【0125】
本システム、方法、および装置に従って、方法900の行為602の副行為921、922、および923は、再利用可能なワークプリミティブのライブラリ内のそれぞれの再利用可能なワークプリミティブに対して繰り返されてもよい。
【0126】
いくつかの実装では、遠隔操作命令は、ロボット(の模擬インスタンス)に再利用可能なワークプリミティブのライブラリ内の第1の再利用可能なワークプリミティブの第1のインスタンスを実行させる遠隔操作命令の第1セットと、ロボット(の模擬インスタンス)に再利用可能なワークプリミティブのライブラリ内の第1の再利用可能なワークプリミティブの第2のインスタンスを実行させる遠隔操作命令の第2セットとを含み得る。ここで、第1の遠隔操作命令セットと第2の遠隔操作命令セットは、第1の再使用可能なワークプリミティブの第1のインスタンスと第1の再使用可能なワークプリミティブの第2のインスタンスも何らかの点で異なるように、何らかの点で互いに異なる。第1の遠隔操作命令のセットと第2の遠隔操作命令のセットとの間の差異(複数可)、および結果として生じる第1の再利用可能なワークプリミティブの第1のインスタンスと第1の再利用可能なワークプリミティブの第2のインスタンスとの間の差異(複数可)により、比較が行われ、ロボット(の模擬インスタンス)に第1の再利用可能なワークプリミティブを実行させる遠隔操作命令の有利な定式化が特定され、さらに開発される。例えば、方法900のいくつかの実装では、ロボットに第1の再利用可能なワークプリミティブの第1のインスタンスを実行させるために第1の遠隔操作命令セットを実行することと、ロボットに第1の再利用可能なワークプリミティブの第2のインスタンスを実行させるために第2の遠隔操作命令セットを実行することのそれぞれの結果を評価(例えば、比較)して、第1の遠隔操作命令セットと第2の遠隔操作命令セットのどちらが成功の尺度に従ってより良い結果をもたらすかを決定することができる。「よりよい結果」には、エラーがより少ない、より正確または精密である、より少ない電力を使用する、より迅速に実行される、より審美的に実行される、および/または成功の他の尺度に従って有利である結果が含まれ得る。よりよい結果をもたらす特定の遠隔操作命令セットが特定されると(すなわち、第1の遠隔操作命令セットおよび第2の遠隔操作命令セット、ならびに/または評価された他の遠隔操作命令セットの中で)、923で生成されるプロセッサにより実行可能な命令は、有利には、ロボット(の模擬インスタンス)に、よりよい結果をもたらす遠隔操作命令のいずれかを再生させるように設計され得る。
【0127】
方法900のいくつかの実装では、923で生成されるプロセッサにより実行可能な命令において、第1の遠隔操作命令セットの少なくとも1つの要素と第2の遠隔操作命令セットの少なくとも1つの要素とが組み合わされてもよい。すなわち、923において生成されるプロセッサにより実行可能な命令は、第1の遠隔操作命令セットの有利な要素と第2の遠隔操作命令セットの有利な要素との組み合わせを含み得る。
【0128】
遠隔操作システム、従って遠隔操作システムから受信した遠隔操作命令は、様々な異なる形態を取ることができる。いくつかの実装では、遠隔操作システムは、ロボット(の模擬インスタンス)を操縦する現実の物理的実体(人間のユーザなど)によって実行される現実の物理的動作を検出するセンサを含むことができ、遠隔操作命令は、(ロボットの模擬インスタンスに)そのような現実の遠隔操作パイロットによって実行される現実の物理的動作をエミュレートさせることができる。実際の遠隔操作パイロットによって実行される実際の物理的動作を(模擬された)ロボットにエミュレートさせる遠隔操作システムは、パイロットの動作と(模擬された)ロボットの動作との間の抽象度が低いため、本明細書では「低レベル」遠隔操作システムと呼ばれる。したがって、低レベル遠隔操作システムによって提供される遠隔操作命令は、本明細書では「低レベル」遠隔操作命令と呼ばれる。
【0129】
いくつかの実装では、遠隔操作システムは、ユーザまたはパイロットに候補動作のセットを提示するグラフィカルユーザインタフェース(GUI)を含むことができ、遠隔操作命令は、(ロボットの模擬インスタンスに)GUIから選択された動作を実行させることができる。このようなGUIベースの遠隔操作システムは、パイロットの行動と(ロボットの模擬インスタンスの)行動との間に、より高い抽象化レベルを提供し、本明細書では「高レベル」遠隔操作システムと呼ばれる。したがって、高レベル遠隔操作システムによって提供される遠隔操作命令は、本明細書では「高レベル」遠隔操作システムと呼ばれる。
【0130】
いくつかの実装では、(ロボットの模擬インスタンスに)第1の再利用可能なワークプリミティブを実行させる低レベル遠隔操作命令の第1セットは、(ロボットの模擬インスタンスに)第1の再利用可能なワークプリミティブを自律的に実行させるプロセッサにより実行可能な第1セットを生成するために、訓練プロセスの初期反復(例えば、方法600、方法700、および/または方法900)は、(ロボットの模擬インスタンスに)自律的に第1の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な第1セットを生成するために使用され、訓練プロセスの後続の反復は、(ロボットの模擬インスタンスに)自律的に第1の再利用可能なワークプリミティブを実行させるプロセッサにより実行可能な命令をさらに改良するために高レベルの遠隔操作命令を使用することができる。
【0131】
図10は、本システム、方法および装置を通して説明される様々な特徴および構成要素からなる例示的なロボットシステム1000の図解付きの図である。ロボットシステム1000は、本体1001に機械的に結合された第1の物理的に作動可能な構成要素1002aおよび第2の物理的に作動可能な構成要素1002bを有するロボット本体1001を備える。図示された実施態様では、第1および第2の物理的に作動可能な構成要素1002aおよび1002bはそれぞれ、それぞれのロボットハンドに対応するが、当業者であれば、代替の実施態様では、物理的に作動可能な構成要素が他の形態(腕または脚、カッターまたは吸引チューブのような非手のようなエンドエフェクタ、またはロボットが実行することを意図される特定の用途に有用な他の形態など)を取り得ることを理解するであろう。ロボットハンド1002aは、人間の手をエミュレートしており、複数の指1021a、1022a、1023a、および1024aと、向かい合わせられる親指1025aとを含む。ロボットハンド1002bは、ロボットハンド1002aの鏡像に類似しているが、ロボットハンド1002bについては、乱雑さを低減するために、対応する詳細はラベル付けされていない。ロボットハンド1002aおよび1002bは、電気機械的作動、ケーブル駆動作動、磁気レオロジー流体ベースの作動、および/または液圧作動を含む、様々な異なる手段によって物理的に作動可能であり得る。ロボットハンド1002aおよび1002bを物理的に作動させるために採用され得る作動技術のいくつかの例示的な詳細は、2021年5月21日に出願され、「Systems、Devices、And Methods For A Hydraulic Robotic Arm」と題された米国仮特許出願(仮出願番号63/191,732)と、米国特許出願(出願番号17/491,577)に記載されており、これらの両方は、参照によりその全体が本明細書に組み込まれる。
【0132】
ロボット本体1001は、ロボットシステム1000の環境および/または環境内の物体に関するデータを検出および/または収集する少なくとも1つのセンサ1003をさらに含む。図示された実施態様では、センサ1003は、カメラ、マイクロフォン、およびそれ自体が3つの直交加速度計、磁力計、およびコンパスからなる初期測定ユニットを含むセンサシステムに対応する。
【0133】
説明の目的で、
図10は、本システム、方法、および装置に従ってロボット本体1001によって、またはロボット本体1001内に運ばれる特定の例示的構成要素の詳細を含む。このような構成要素には、少なくとも1つのプロセッサ1030と、プロセッサ1030に通信可能に結合された少なくとも1つのプロセッサにより読み取り可能な非一時的記録媒体、すなわち「メモリ」1040とが含まれる。メモリ1040は、再利用可能なワークプリミティブのライブラリ1041(これは、実装に応じて、ロボットハンド1002aおよび/または1002bのいずれか一方または両方に対する再利用可能な把持プリミティブのライブラリを含んでも含まなくてもよい)と、プロセッサ1030によって実行されると、ロボット本体1001(ロボットハンド1002aおよび/または1002bのいずれか一方または両方などの適用可能で作動可能な構成要素を含む)に再利用可能なワークプリミティブのライブラリ1041内の再利用可能なワークプリミティブを選択的かつ自律的に実行させるプロセッサにより実行可能な命令1042と、を記憶する。特定の実施態様によっては、プロセッサにより実行可能な命令1042は、本明細書に記載の方法100、200、300、および/または500のいずれかまたはすべて、ならびに/または方法700および/または900の関連行為をロボットシステムに実行させるプロセッサにより実行可能な命令(例えば、コンピュータプログラム製品)をさらに含み得る。
【0134】
プロセッサ1030は、ロボット本体1001が例示的な遠隔操作システム1070と無線通信信号1060を送受信する無線トランシーバ1050とも通信可能に結合されている。このため、遠隔操作システム1070は、無線トランシーバ1071も含む。
【0135】
説明のために、遠隔操作システム1070は、低レベル遠隔操作インタフェース1080と高レベル遠隔操作インタフェース1090の両方を含む。低レベル遠隔操作インタフェース1080は、人間のパイロット1082によって実行される実際の物理的動作を検出するセンサシステム1081と、そのような実際の物理的動作を、プロセッサ1030によって実行されるとき、ロボット本体1001(および手1002aおよび/または1002bなどの任意の適用可能で作動可能な構成要素)にパイロット1082によって実行される物理的動作をエミュレートさせる低レベル遠隔操作命令に変換する処理システム1083とを含む。いくつかの実装では、センサシステム1081は、力覚グローブ、パイロット1082の身体に装着される加速度計ベースのセンサ、およびパイロット1082がロボット本体1001のセンサ1003によって収集された光学データを見ることを可能にするVRヘッドセットなど、仮想現実ゲームの分野で典型的に採用される多くの感覚構成要素を含み得る。高レベル遠隔操作インタフェース1090は、この例示的な実装では、タブレットコンピュータ上に表示される単純なGUIを含む。高レベル遠隔操作インタフェース1090のGUIは、ロボット本体1001(および手1002aおよび/または1002bのような適用可能で作動可能な構成要素)によって実行可能なそれぞれの動作にそれぞれ対応する一組のボタンを提供する。GUIを通じて高レベル遠隔操作インタフェース1090のユーザ/パイロットによって選択された動作(複数可)は、プロセッサ1030によって実行されると、ロボット本体1001(および手1002aおよび/または1002bなどの任意の適用可能で作動可能な構成要素)に選択された動作(複数可)を実行させる高レベル遠隔操作命令に変換される。
【0136】
本システム、装置、および方法に従って、多目的ロボットは、多数のワークを自律的に実行するために、有限数の再利用可能なワークプリミティブを自律的に実行するように訓練され得る。このような多目的ロボットは、少なくとも1つのオンボードプロセッサに通信可能に結合されたオンボードプロセッサにより読み取り可能な非一時的記録媒体を含むことができる。プロセッサにより読み取り可能な非一時的記録媒体は、データおよび/またはプロセッサにより実行可能な命令を記憶してもよく、ロボットが自律的に実行可能な再利用可能なプリミティブのライブラリを含んでもよい。動作において、ロボットの少なくとも1つのプロセッサは、データおよび/またはプロセッサにより実行可能な命令を実行して、ロボットにタスクを分析させ、ロボットによって実行されるとタスクの目的の完了をもたらすワークプリミティブの記憶されたライブラリからワークプリミティブの特定のシーケンスを識別させることができる。
【0137】
本明細書に記載のロボットは、いくつかの実施態様において、米国特許出願(出願番号16/940,566(米国特許出願公開第2021-0031383号明細書))の教示のいずれかを採用することができ、米国特許出願(出願番号17/023,929(米国特許出願公開第2021-0090201号明細書))、米国特許出願(出願番号17/061,187(米国特許出願公開第2021-0122035号明細書))、米国特許出願(出願番号17/098,716(米国特許出願公開第2021-0146553号明細書))、米国特許出願(出願番号17/111,789(米国特許出願公開第2021-0170607号明細書))、米国特許出願(出願番号17/158,244号(米国特許出願公開第2021-0234997号明細書))、米国仮特許出願(仮出願番号63/001,755(米国特許出願公開第2021-0307170号明細書))、および/または米国仮特許出願(仮出願番号63/057,461)、および米国仮特許出願(仮出願番号63/151,044)と同様である、米国仮特許出願(仮出願番号63/173,670)、米国仮特許出願(仮出願番号63/184,268)、米国仮特許出願(仮出願番号63/213,385)、米国仮特許出願(仮出願番号63/232,694)、米国仮特許出願(仮出願番号63/253,591)、米国仮特許出願(仮出願番号63/293,968)、米国仮特許出願(仮出願番号63/293,973)、および/または米国仮特許出願(仮出願番号63/278,817)に記載されており、これらのそれぞれは、参照によりその全体が本明細書に組み込まれる。
【0138】
本明細書および添付の特許請求の範囲を通じて、「通信可能な結合」および「通信可能に結合された」などの変形における「通信可能な」という用語は、一般に、情報を転送および/または交換するための任意の工学的配置を指すために使用される。例えば、通信可能な結合は、限定されないが、導電性経路(例えば、導電性ワイヤ、導電性トレース)、磁気経路(例えば、磁気媒体)、無線信号伝達(例えば、無線周波数アンテナ)、および/または光経路(例えば、光ファイバ)を含む、様々な異なる媒体および/または形態の通信経路を介して達成され得る。例示的な通信結合には、電気結合、磁気結合、無線周波数結合、および/または光結合が含まれるが、これらに限定されない。
【0139】
本明細書および添付の特許請求の範囲を通して、不定詞の動詞の形がしばしば使用される。例としては、限定はしないが、以下が挙げられる。「符号化する」、「提供する」、「記憶する」など。特定の文脈で必要とされない限り、このような不定動詞の形は、「少なくとも、符号化する」、「少なくとも、提供する」、「少なくとも、記憶する」などのように、開放的で包括的な意味で使用される。
【0140】
図面および要約を含む本明細書は、本システム、デバイス、および方法のすべての実装および実施形態の網羅的または限定的な説明を意図するものではない。当業者であれば、提供される様々な説明および図面は、本開示の精神および範囲から逸脱することなく変更され得ることを理解するであろう。特に、本明細書の教示は、提供されるコンピュータシステムおよびコンピューティング環境の例示によって、または例示に限定されることを意図するものではない。
【0141】
本明細書は、ブロック図、回路図、フローチャート、および実施例の形で様々な実装および実施形態を提供する。当業者であれば、このようなブロック図、回路図、フローチャート、または実施例内の任意の機能および/または動作は、広範なハードウェア、ソフトウェア、および/またはファームウェアによって、個々に、および/または集合的に実装できることを理解するであろう。例えば、本明細書において開示される様々な実施形態は、その全体または一部が、1つまたは複数において等価的に実施され得る。特定用途向け集積回路(すなわち、ASIC)、標準集積回路(複数)、任意の数のコンピュータによって実行されるコンピュータプログラム(複数可)(例えば、任意の数のコンピュータシステム上で実行されるプログラム)、任意の数のコントローラ(例えば、マイクロコントローラ)によって実行されるプログラム、および/または任意の数のプロセッサ(例えば、マイクロプロセッサ、中央処理装置、グラフィカルプロセッシングユニット)によって実行されるプログラム(複数可)、ならびにファームウェア、および前述の任意の組み合わせ。
【0142】
本明細書および添付の特許請求の範囲を通じて、「メモリ」または「記録媒体」とは、プロセッサ・データ、データオブジェクト、ロジック、命令、および/またはプログラムを格納または記憶する、電子的、磁気的、光学的、電磁的、赤外線的、半導体的、または他の物理的装置または手段である、プロセッサにより読み取り可能な媒体を指す。データ、データオブジェクト、ロジック、命令、および/またはプログラムがソフトウェアとして実装され、メモリまたは記録媒体に記憶される場合、そのようなものは、データ、データオブジェクト、ロジック、命令、および/またはプログラムをメモリまたは記録媒体からフェッチし、それに対して、および/またはそれに応答して、様々な行為または操作(すなわち、処理ステップ)を実行することができる、コンピュータベースのシステム、プロセッサを含むシステム、または他のシステムなどの、任意の適切なプロセッサ関連の命令実行システム、装置、またはデバイスによって使用するために、任意の適切なプロセッサにより読み取り可能な媒体に記憶することができる。したがって、「プロセッサにより読み取り可能な非一時的記録媒体」は、命令実行システム、装置、および/またはデバイスによって、または命令実行システム、装置、および/またはデバイスに関連して使用するためのデータ、データオブジェクト、ロジック、命令、および/またはプログラムを記憶する任意の要素であり得る。具体的な非限定的例として、プロセッサにより読み取り可能な媒体は、携帯型コンピュータディスケット(磁気、コンパクトフラッシュ(登録商標)カード、セキュアデジタルなど)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM、EEPROM、フラッシュメモリ)、携帯型コンパクトディスク読み取り専用メモリ(CDROM)、デジタルテープ、および/または任意の他の非一時的媒体とすることができる。
【0143】
本開示の特許請求の範囲は次の通りである。本開示は、特許請求の範囲を支持し、可能にし、例示することを意図しているが、特許請求の範囲を特定の実施態様または実施形態に限定することを意図していない。一般に、特許請求の範囲は、そのような特許請求の範囲が権利を有する等価物の全範囲と共に、全ての可能な実施態様および実施形態を含むように解釈されるべきである。