(57)【要約】  ロボットが技能を学習し実行するシステム、装置及び方法が記載される。ロボット装置は、メモリ、プロセッサ、操作要素、及びセンサを含むことができる。プロセッサは、メモリ、操作要素、及びセンサに動作可能に結合することができ、環境の表現を取得し、環境内に配置された１組の物理的物体に関連付けられた環境の表現内の複数のマーカを識別し、操作要素に関連付けられたセンサ情報を取得し、センサ情報に基づいて、操作要素の動きを定義して、操作要素と１組の物理的物体との物理的相互作用を実行するように構成されたモデルを生成するように構成することができる。代替又は追加として、プロセッサは、モデルを使用して、物理的相互作用の実行に関連付けられた操作要素の動きを定義する操作要素の軌道を生成するように構成することができる。【選択図】図５
2020508888.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
プロセッサと、
操作要素と、
１組のセンサと、を備え、
前記プロセッサは、前記メモリ、前記操作要素及び前記１組のセンサに動作可能に結合され、前記プロセッサは、
前記１組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、
前記環境の前記表現内の複数のマーカを識別することであって、前記複数のマーカからの各マーカには、前記環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、
前記環境の前記表現内の前記複数のマーカからの各マーカの位置を示す情報を提示することと、
前記複数の物理的物体からの１組の物理的物体に関連付けられた前記複数のマーカから選択された１組のマーカを受信することと、
前記環境内の前記操作要素の動きに関連付けられた複数の位置からの各位置について、前記操作要素に関連付けられたセンサ情報を取得することであって、前記操作要素の前記動きには、前記操作要素と前記１組の物理的物体との物理的な相互作用が関連付けられる、取得することと、
前記センサ情報に基づいて、前記操作要素と前記１組の物理的物体との前記物理的な相互作用を実行するように前記操作要素の動きを定義するように構成されたモデルを生成することと、を行うように構成される、装置。
【請求項２】
前記操作要素は、前記１組の物理的物体からの物理的物体のサブセットに係合するように構成されたエンドエフェクタを含む、請求項１に記載の装置。
【請求項３】
前記センサのサブセットは、センサの第１サブセットであり、前記プロセッサは、前記１組のセンサからのセンサの第２サブセットを介して前記センサ情報を取得するように構成され、前記センサの第２サブセットは、前記センサの第１サブセットと異なる、請求項１に記載の装置。
【請求項４】
前記操作要素は、複数のジョイントを介して連結された複数の可動構成要素を含み、
前記１組のセンサは、
前記複数のジョイントからのジョイントに作用する力を測定するように構成されたセンサ、又は
前記複数の可動構成要素からの可動構成要素と前記１組の物理的物体からの物理的物体との係合を検出するように構成されたセンサの少なくとも１つを含む、請求項１に記載の装置。
【請求項５】
前記操作要素は、（ｉ）複数のジョイントと、（ｉｉ）前記１組の物理的物体からの物理的物体を移動させるように構成されたエンドエフェクタとを含み、
前記１組のセンサは、前記エンドエフェクタが前記物理的物体を移動させる場合、前記エンドエフェクタの少なくとも１つ又は前記エンドエフェクタに結合された前記複数のジョイントからのジョイントにかけられる力を測定するように構成されたセンサを含む、請求項１に記載の装置。
【請求項６】
前記センサ情報は、１組の特徴に関連付けられたセンサデータを含み、前記プロセッサは、
前記１組の特徴から選択された特徴の第１サブセットを受信するように更に構成され、
前記プロセッサは、第１組の特徴に含まれない前記１組の特徴からの特徴の第２サブセットに関連付けられたセンサデータではなく、前記特徴の第１サブセットに関連付けられたセンサデータに基づいて前記モデルを生成するように構成される、請求項１に記載の装置。
【請求項７】
前記プロセッサは、前記プロセッサがユーザにより行われる選択に応答して、前記選択された前記特徴の第１サブセットを受信するように、前記１組の特徴から少なくとも１つの特徴を選択するよう前記ユーザに促すように更に構成される、請求項６に記載の装置。
【請求項８】
前記プロセッサは、前記提示の後、前記プロセッサが、ユーザにより行われる選択に応答して、前記１組のマーカのうちの前記選択されたマーカを受信するように前記複数のマーカから少なくとも１つのマーカを選択するように前記ユーザに促すよう更に構成される、請求項１に記載の装置。
【請求項９】
プロセッサにより実行される命令を表すコードを記憶した非一時的プロセッサ可読媒体であって、前記コードは、前記プロセッサに、
１組のセンサを介して環境の表現を取得することと、
前記環境の前記表現内の複数のマーカを識別することであって、前記複数のマーカからの各マーカには、前記環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、
前記環境の前記表現内の前記複数のマーカからの各マーカの位置を示す情報を提示することと、
前記複数の物理的物体からの１組の物理的物体に関連付けられた前記複数のマーカから選択された１組のマーカを受信することに応答して、操作要素と前記１組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、前記操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、
前記モデルを使用して、前記物理的相互作用の実行に関連付けられた前記複数のジョイント及び前記エンドエフェクタの移動を定義する前記操作要素の軌道を生成することと、を行わせるコードを含む、非一時的プロセッサ可読媒体。
【請求項１０】
前記プロセッサに、
前記環境の前記表現において、前記操作要素の前記軌道をユーザに表示することと、
前記表示の後、前記ユーザから入力を受信することと、
前記操作要素の前記軌道の許容を示す入力に応答して、前記複数のジョイント及び前記エンドエフェクタの前記移動を実施して、前記物理的相互作用を実行することと、を行わせるコードを更に含む、請求項９に記載の非一時的プロセッサ可読媒体。
【請求項１１】
前記軌道は第１軌道であり、前記非一時的プロセッサ可読媒体は、前記プロセッサに、前記操作要素の前記軌道の許容を示さない入力に応答して、
前記モデルに関連付けられた１組のパラメータを変更して、変更モデルを生成することと、
前記変更モデルを使用して、前記操作要素の第２軌道を生成することと、を行わせるコードを更に含む、請求項１０に記載の非一時的プロセッサ可読媒体。
【請求項１２】
前記軌道は第１軌道であり、前記モデルは第１モデルであり、前記非一時的プロセッサ可読媒体は、前記プロセッサに、前記操作要素の前記軌道の許容を示さない前記入力に応答して、
前記第１モデルの生成に使用される１組の特徴と異なる１組の特徴に関連付けられたセンサデータに基づいて第２モデルを生成することと、
前記第２モデルを使用して、前記操作要素の第２軌道を生成することと、を行わせるコードを更に含む、請求項１０に記載の非一時的プロセッサ可読媒体。
【請求項１３】
前記プロセッサに、
前記複数のジョイント及び前記エンドエフェクタの前記移動を実施して、前記物理的相互作用を実行することと、
前記物理的相互作用の前記実行に関連付けられたセンサ情報を取得することと、
前記センサ情報に基づいて、前記物理的相互作用の前記実行が成功基準を満たすか否かを判断することと、を行わせるコードを更に含む、請求項９に記載の非一時的プロセッサ可読媒体。
【請求項１４】
前記プロセッサに、
前記物理的相互作用の前記実行が前記成功基準を満たすとの判断に応答して、前記物理的相互作用が成功したことを示す信号を生成することと、
前記物理的相互作用の前記実行が前記成功基準を満たさないとの判断に応答して、
前記センサ情報に基づいて前記モデルを変更し、変更モデルを生成することと、
前記変更モデルを使用して、前記操作要素の第２軌道を生成することと、を行わせるコードを更に含む、請求項１３に記載の非一時的プロセッサ可読媒体。
【請求項１５】
前記モデルには、（ｉ）記憶された１組のマーカ、（ｉｉ）前記記憶された１組のマーカに関連付けられた前記操作要素の記憶された軌道に沿ったポイントにおける前記操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び（ｉｉｉ）前記記憶された軌道に沿った前記ポイントにおける前記複数のジョイントの構成を示すセンサ情報が関連付けられ、
前記プロセッサに、前記操作要素の前記軌道を生成させる前記コードは、前記プロセッサに、
前記１組のマーカと前記記憶された１組のマーカとの間の変換関数を計算することと、
各ポイントについて、前記変換関数を使用して、前記操作要素の前記位置又は前記向きの少なくとも一方を変換することと、
各ポイントについて、前記記憶された軌道に沿った前記ポイントにおける前記複数のジョイントの前記構成に基づいて、前記複数のジョイントの計画構成を決定することと、
各ポイントについて、そのポイントの前記複数のジョイントの前記計画構成に基づいて、そのポイントと連続ポイントとの間の前記軌道の部分を特定することと、を行わせるコードを含む、請求項９に記載の非一時的プロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]  本願は、２０１７年２月２５日に出願された「Method and System for Robotic Learning of Execution Processes Related to Perceptually Constrained Manipulation Skills」という名称の米国仮特許出願第６２／４６３，６２８号及び２０１８年２月２５日に出願された「Method and System for Robotic Execution of a Perceptually Constrained Manipulation Skill Learned via Human Interaction」という名称の米国仮特許出願第６２／４６３，６３０号への優先権を主張するものであり、各仮特許出願の開示は全体的に、参照により本明細書に援用される。
【０００２】
政府支援
[0002]  本発明は、中小企業技術革新制度フェーズ１の下、米国科学財団（National Science Foundation）により授与された助成金番号１６２１６５１の下、米国政府の支援によってなされた。米国政府は本発明において一定の権利を有する。
【０００３】
[0003]  本開示は、一般には、ロボットが技能を学習し実行するシステム、装置、及び方法に関する。より具体的には、本開示は、非構造的環境において技能を学習し実行することが可能なロボット装置に関する。
【背景技術】
【０００４】
[0004]  ロボットは、様々なタスクの実行及びオートメーション化に使用されることができる。ロボットは、オフィスの建物又は病院等の環境を移動することによりタスクを実行することができる。ロボットは、環境内を自律的に動き回れるようにする車輪、トラック、又は他の可動構成要素を備えることができる。しかしながら、アーム又は他のマニュピュレータを有さないロボットは、環境において物体を操作することができない。従って、これらのロボットのタスク実行能力は限られ、例えば、そのようなロボットは、ピックアップポイント又は輸送ポイントにおいて物体を操作するために人間が存在せずには物体をピックアップ又は輸送することができない可能性がある。
【０００５】
[0005]  アーム又は他のマニュピュレータを含むロボットは、人間が存在せずにあるロケーションに物体をピックアップし輸送することが可能であり得る。例えば、グリッパ等のエンドエフェクタを有するアームを有するロボットは、グリッパを使用して、異なるロケーションから１つ又は複数の物体をピックアップし、それらの物体を新しいロケーションに輸送することができ、これらは全て人間の支援なしで行われる。これらのロボットは特定のタスクのオートメーション化に使用することができ、それにより、人間であるオペレータは他のタスクに集中することができる。しかしながら、大半の商用ロボットは、マニュピュレータの動作をプログラムする問題及び複雑性に起因してマニュピュレータを含まない。
【０００６】
[0006]  更に、大半の商用ロボットは、構造的環境、例えば、工場、倉庫等で動作するように設計される。非構造的環境、例えば、病院及び家庭等の人間が関わる環境は、ロボットのプログラミングに追加の問題を課し得る。非構造的環境では、ロボットは、周囲環境の完全な知識に頼ることができず、周囲環境の変化を知覚可能であり、それらの変化に基づいて適応可能でなければならない。従って、非構造的環境では、ロボットは、自律的な判断を下し、タスクを実行することが可能であるためには、環境についての情報を連続して取得する必要がある。多くの場合、環境でのロボットの動き、例えばアーム又はエンドエフェクタの動きも、環境内の物体及び他の障害物により制約を受け、ロボットの知覚及び操作の問題を更に大きくする。非構造的環境の不確かで動的な性質により、ロボットは通常、タスクを実行するように予めプログラムすることができない。
【０００７】
[0007]  従って、予めプログラムされる操作技能に頼ることなく、動的な非構造的環境を知覚してそれに適応することができ、それらの環境内でタスクを実行することができるロボットシステムが必要である。
【発明の概要】
【０００８】
[0008]  ロボットが技能を学習し実行するシステム、装置及び方法が記載される。幾つかの実施形態では、装置は、メモリ、プロセッサ、操作要素、及び１組のセンサを含む。プロセッサは、メモリ、操作要素、及び１組のセンサに動作可能に結合され、１組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカを受信することと、環境内の操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と１組の物理的物体との物理的な相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と１組の物理的物体との物理的な相互作用を実行するように操作要素の動きを定義するように構成されたモデルを生成することとを行うように構成することができる。
【０００９】
[0009]  幾つかの実施形態では、操作要素は、複数のジョイント及びエンドエフェクタを含むことができる。幾つかの実施形態では、１組の物理的物体は人間を含むことができる。
【００１０】
[0010]  幾つかの実施形態では、複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である。
【００１１】
[0011]  幾つかの実施形態では、複数のマーカからの２つ以上のマーカに、１組の物理的物体からの１つの物理的物体を関連付けることができる。代替又は追加として、幾つかの実施形態では、複数のマーカからの１つのマーカに、１組の物理的物体からの２つ以上の物理的物体を関連付けることができる。
【００１２】
[0012]  幾つかの実施形態では、方法は、１組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、提示後、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカを受信することと、環境における操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と１組の物理的物体との物理的相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と１組の物理的物体との物理的相互作用を実行するように操作要素の動きを定義するよう構成されたモデルを生成することとを含む。
【００１３】
[0013]  幾つかの実施形態では、本方法は、１組の特徴から選択された特徴の第１サブセットを受信することであって、モデルは、特徴の第１サブセットに関連付けられたセンサデータに基づいて、且つ第１組の特徴に含まれない１組の特徴からの特徴の第２サブセットに関連付けられたセンサデータに基づかずに生成される、受信することを更に含む。
【００１４】
[0014]  幾つかの実施形態では、方法は、１組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカの受信に応答して、操作要素と１組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、モデルを使用して、物理的相互作用の実行に関連付けられた複数のジョイント及びエンドエフェクタの移動を定義する、操作要素の軌道を生成することとを含む。
【００１５】
[0015]  幾つかの実施形態では、本方法は、環境の表現内の操作要素の軌道をユーザに表示することと、表示後、ユーザからの入力を受信することと、操作要素の軌道の許容を示す入力に応答して、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することとを更に含む。
【００１６】
[0016]  幾つかの実施形態では、モデルには、（ｉ）記憶された１組のマーカ、（ｉｉ）記憶された１組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び（ｉｉｉ）記憶された軌道に沿ったポイントにおける複数のジョイントの構成を示すセンサ情報が関連付けられる。操作要素の軌道を生成する方法は、１組のマーカと記憶された１組のマーカとの間の変換関数を計算することと、各ポイントについて、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントについて、記憶された軌道に沿ったポイントにおける複数のジョイントの構成に基づいて、複数のジョイントの計画構成を決定することと、各ポイントについて、そのポイントの複数のジョイントの計画構成に基づいて、そのポイントと連続ポイントとの間の軌道の部分を特定することとを含む。
【００１７】
[0017]  他のシステム、プロセス、及び特徴は、以下の図面及び詳細な説明を調べた上で当業者に明らかになろう。そのような追加のシステム、プロセス、及び特徴の全てが、この説明内に含まれ、本発明の範囲内に含まれ、添付の特許請求の範囲により保護されることが意図される。
【００１８】
[0018]  図面が主に例示を目的とし、本明細書に記載される本発明の趣旨の範囲の限定を意図しないことを当業者は理解しよう。図面は必ずしも一定の縮尺ではなく、幾つかの場合、本明細書に開示される本発明の趣旨の様々な態様は、異なる特徴の理解を促進するために、図面において誇張又は拡大されて示され得る。図面中、同様の参照文字は一般に同様の特徴（例えば、機能的に同様の要素及び／又は構造的に同様の要素）を指す。
【図面の簡単な説明】
【００１９】
【図１】[0019]幾つかの実施形態によるロボットデバイスを含むシステムの構成を示すブロック図である。
【図２】[0020]幾つかの実施形態によるロボットデバイスの構成を示すブロック図である。
【図３】[0021]幾つかの実施形態によるロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
【図４】[0022]幾つかの実施形態によるロボットデバイスの操作要素の概略図である。
【図５】[0023]幾つかの実施形態によるロボットデバイスの概略図である。
【図６Ａ】[0024]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
【図６Ｂ】[0024]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
【図７Ａ】[0025]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
【図７Ｂ】[0025]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
【図８】[0026]幾つかの実施形態によるロボットデバイスにより実行される環境スキャン方法を示す流れ図である。
【図９】[0027]幾つかの実施形態によるロボットデバイスにより実行される技能を学習し実行する方法を示す流れ図である。
【図１０】[0028]幾つかの実施形態によるロボットデバイスにより実行される技能を学習する方法を示す流れ図である。
【図１１】[0029]幾つかの実施形態によるロボットデバイスにより実行される技能を実行する方法を示す流れ図である。
【図１２】[0030]幾つかの実施形態による、ユーザ動作を含むロボット学習及び実行のシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【００２０】
[0031]  ロボットが技能を学習し実行するシステム、装置、及び方法が本明細書に記載される。幾つかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、人間の実演及び相互作用を介して技能を学習し、非構造的環境において、学習した技能を実行することが可能なロボット装置に関する。
【００２１】
[0032]  幾つかの実施形態では、本明細書に記載されるシステム、装置及び方法は、実演からの学習（「ＬｆＤ：Learning from Demonstration」）プロセスを介して技能（例えば、操作技能）を学習することができるロボットに関し、ＬｆＤプロセスでは、人間は、運動感覚教授（例えば、人間が、物理的に動作を通して及び／又は遠隔制御によりロボットをガイドする）及び／又は動作の人間自身による実行を介してシステムに動作を実演する。そのようなシステム、装置、及び方法では、操作技能をロボットに予めプログラムする必要がなく、むしろ、ロボットは、観察を介して適応し、技能を学習可能であるように設計される。例えば、ロボットは、機械学習技法を使用して、操作技能を取得し実行することができる。技能学習後、ロボットは、異なる環境で技能を実行することができる。ロボットは、視覚データ（例えば、知覚した視覚情報）に基づいて技能を学習及び／又は実行することができる。代替又は追加として、ロボットは、触覚データ（例えば、トルク、力、及び他の非視覚的情報）を使用して技能を学習及び／又は実行することができる。ロボット学習は、ロボット配備前、工場で行うこともでき、又はロボット配備後、現場（例えば、病院）で行うこともできる。幾つかの実施形態では、ロボット工学及び／又はプログラミングのトレーニングを受けていないユーザが、ロボットに技能を教えることができ、及び／又はロボットは環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用する学習アルゴリズムを有することができ、実演プロセスを通してユーザをガイドすることができるツールを含むことができる。
【００２２】
[0033]  幾つかの実施形態では、ロボットは、人間と相互作用し、人間と協働してタスクを実行するように設計することができる。幾つかの実施形態では、ロボットは、共通の社会的挙動を使用して、社会的に予測可能且つ許容可能なように人間の間で動作することができる。移動可能なロボットは、その環境内の人間と相互作用しながら、環境内をナビゲートするように設計することもできる。例えば、ロボットは、特定の句を話して人間の中をナビゲートし、横に移動して、人間が通行できるようにし、ナビゲーション中、注視を使用して志向性を伝えるようにプログラムすることができる。幾つかの実施形態では、ロボットは、周囲環境内の人間を知覚し追跡できるようにし、その情報を使用して、注視及び他の社会的挙動をトリガーできるようにするセンサを有することができる。
【００２３】
[0034]  幾つかの実施形態では、ロボットは、ＬｆＤプロセス中、目標達成又は動作実行のための選択肢を提案するように設計することができる。例えば、ロボットは、目標（物体のピックアップ）を達成するための少数の異なる選択肢を提案することができ、それらの選択肢のいずれが、効率的及び／又は目標達成に有効である可能性が最も高いかを示すことができる。幾つかの実施形態では、ロボットは、ユーザによる入力、例えば、ユーザが技能モデルへの包含に妥当な特徴を示すことに基づいて技能を適応させることができる。
【００２４】
[0035]  幾つかの実施形態では、ロボットデバイスは、非構造的環境、例えば、ロボットデバイスが事前に環境の完全な情報を有さない動的及び／又は人間環境において技能を学習及び／又は実行可能であることができる。非構造的環境は、例えば、屋内及び屋外設定を含むことができ、環境内を移動可能な１人若しくは複数の人間又は他の物体を含むことができる。大半の自然又は現実世界の環境は非構造的であるため、本明細書に記載されるロボットデバイス及び／又はシステム等の非構造的環境に適応し非構造的環境で動作することができるロボットデバイスは、非構造的環境に適応することができない既存のロボットデバイスからの有意な改善を提供することができる。非構造的環境は、屋内設定（例えば、建物、オフィス、家、部屋等）及び／又は他のタイプの閉じた空間（例えば、航空機、列車、及び／又は他のタイプの移動可能なコンパートメント）並びに屋外設定（例えば、公園、海辺、野外、野原）を含むことができる。一実施形態では、本明細書に記載されるロボットデバイスは、非構造的病院環境で動作することができる。
【００２５】
[0036]  図１は、幾つかの実施形態によるシステム１００を示す高レベルブロック図である。システム１００は、非構造的環境において、例えば操作技能等の技能を学習し実行するように構成することができる。システム１００は、１つのデバイスとして実施することもでき、又はネットワーク１０５に接続された複数のデバイスを介して実施することもできる。例えば、図１に示すように、システム１００は、例えば、１つ又は複数のロボットデバイス１０２及び１１０、サーバ１２０、並びに追加の計算デバイス１５０等の１つ又は複数の計算デバイスを含むことができる。４つのデバイスが示されているが、システム１００が、図１に特に示されていない計算デバイスを含め、任意の数の計算デバイスを含むことができることを理解されたい。
【００２６】
[0037]  ネットワーク１０５は、有線ネットワーク及び／又は無線ネットワークとして実施され、ロボットデバイス１０２及び１１０、サーバ１２０、並びに計算デバイス１５０を含め、計算デバイスを動作可能に結合するのに使用される任意のタイプのネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、仮想ネットワーク、電気通信ネットワーク）であることができる。本明細書において更に詳述するように、幾つかの実施形態では、例えば、計算デバイスは、インターネットサービスプロバイダ（ＩＳＰ）及びインターネット（例えば、ネットワーク１０５）を介して互いに接続されたコンピュータである。幾つかの実施形態では、接続は、ネットワーク１０５を介して任意の２つの計算デバイス間に定義することができる。例えば、図１に示されるように、接続は、ロボットデバイス１０２とロボットデバイス１１０、サーバ１２０、又は追加の計算デバイス１５０のいずれか１つとの間に定義することができる。幾つかの実施形態では、計算デバイスは、中間ネットワーク及び／又は代替ネットワーク（図１に示されず）を介して互いと通信し（例えば、データを送信し、及び／又はデータを受信し）、ネットワーク１０５と通信することができる。そのような中間ネットワーク及び／又は代替ネットワークは、ネットワーク１０５と同じタイプのネットワーク及び／又は異なるタイプのネットワークであることができる。各計算デバイスは、ネットワーク１０５を介してデータを送信して送信し、及び／又は他の計算デバイスの１つ又は複数からデータを受信するように構成された任意のタイプのデバイスであることができる。
【００２７】
[0038]  幾つかの実施形態では、システム１００は、１つのロボットデバイス、例えば、ロボットデバイス１０２を含む。ロボットデバイス１０２は、環境についての情報を知覚し、人間の実演及び相互作用を介して技能を学習し、及び／又は環境においてそれらの技能を実行するように構成することができる。一例のロボットデバイスのより詳細な図を図２に示す。
【００２８】
[0039]  他の実施形態では、システム１００は、複数のロボットデバイス、例えば、ロボットデバイス１０２及び１１０を含む。ロボットデバイス１０２は、ネットワーク１０５を介してロボットデバイス１１０にデータを送信し、及び／又はロボットデバイス１１０からデータを受信することができる。例えば、ロボットデバイス１０２は、環境について知覚する情報（例えば、物体のロケーション）をロボットデバイス１１０に送信することができ、ロボットデバイス１１０から環境についての情報を受信することができる。ロボットデバイス１０２及び１１０はまた、互いに情報を送信し、及び／又は互いから情報を受信して、技能を学習及び／又は実行することができる。例えば、ロボットデバイス１０２は、環境において技能を学習し、その学習した技能を表すモデルをロボットデバイス１１０に送信することができ、ロボットデバイス１１０は、そのモデルを受信すると、同じ又は異なる環境でモデルを使用して技能を実行することができる。ロボットデバイス１０２は、ロボットデバイス１１０と同じ又は異なるロケーションにあることができる。例えば、ロボットデバイス１０２及び１１０は、建物（例えば、病院の建物）の同じ部屋に配置することができ、それにより、一緒に技能（例えば、重い物体又は大きな物体を移動させる）を学習及び／又は実行することができる。代替的には、ロボットデバイス１０２は、建物（例えば、病院の建物）の１階に配置することができ、ロボットデバイス１１０は建物の２階に配置することができ、２つは互いと通信して、異なるフロアについての情報を互いに中継することができる（例えば、物体がそれらのフロアのどこにあるか、リソースがどこにあり得るか等）。
【００２９】
[0040]  幾つかの実施形態では、システム１００は、１つ又は複数のロボットデバイス、例えば、ロボットデバイス１０２及び／又は１１０並びにサーバ１２０を含む。サーバ１２０は、ロボットデバイス１０２及び／又は１１０を管理する専用サーバであることができる。サーバ１２０は、ロボットデバイス１０２及び／又は１１０と同じ又は異なるロケーションにあることができる。例えば、サーバ１２０は、１つ又は複数のロボットデバイスと同じ建物（例えば、病院の建物）に配置され、ローカル管理者（例えば、病院の管理者）により管理することができる。代替的には、サーバ１２０はリモートロケーション（例えば、ロボットデバイスの製造業者又は提供者に関連付けられたロケーション）に配置することができる。
【００３０】
[0041]  幾つかの実施形態では、システム１００は、１つ又は複数のロボットデバイス、例えば、ロボットデバイス１０２及び／又は１１０並びに追加の計算デバイス１５０を含む。計算デバイス１５０は、特定の機能を走らせ及び／又は実行するように構成された任意の適した処理デバイスであることができる。例えば、病院の設定では、計算デバイス１５０は、ネットワーク１０５に接続し、ロボットデバイス１０２及び／又は１１０を含む他の計算デバイスと通信することが可能な診断及び／又は治療デバイスであることができる。
【００３１】
[0042]  図２は、幾つかの実施形態によるロボットデバイス２００を概略的に示す。ロボットデバイス２００は、制御ユニット２０２、ユーザインターフェース２４０、少なくとも１つの操作要素２５０、及び少なくとも１つのセンサ２７０を含む。更に、幾つかの実施形態では、ロボットデバイス２００は任意選択的に、少なくとも１つの搬送要素２６０を含む。制御ユニット２０２は、メモリ２２０、記憶装置２３０、プロセッサ２０４、システムバス２０６、及び少なくとも１つの入出力インターフェース（「Ｉ／Ｏインターフェース」）２０８を含む。メモリ２２０は、例えば、ランダムアクセスメモリ（ＲＡＭ）、メモリバッファ、ハードドライブ、データベース、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的に消去可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、及び／又は読み取り専用メモリ（ＲＯＭ）等であることができる。幾つかの実施形態では、メモリ２２０は、プロセッサ２０４に環境のスキャン又は表示、技能の学習、及び／又は技能の実行に関連付けられたモジュール、プロセス、及び／又は機能を実行させる命令を記憶する。記憶装置２３０は、例えば、ハードドライブ、データベース、クラウドストレージ、ネットワーク接続記憶装置、又は他のデータ記憶装置であることができる。幾つかの実施形態では、記憶装置２３０は、例えば、ロボットデバイス２００の１つ又は複数の構成要素（例えば、操作要素２５０）に関する状態情報を含むセンサデータ、学習したモデル、マーカロケーション情報等を記憶することができる。
【００３２】
[0043]  制御ユニット２０２のプロセッサ２０４は、環境の表示、技能の学習、及び／又は技能の実行に関連付けられた機能を走らせ及び／又は実行するように構成された任意の適した処理デバイスであることができる。例えば、プロセッサ２０４は、本明細書に更に説明するように、センサ情報に基づいて技能のモデルを生成し、又はモデルを使用して技能を実行する軌道を生成することにより技能を実行するように構成することができる。より具体的には、プロセッサ２０４は、モジュール、機能、及び／又はプロセスを実行するように構成することができる。幾つかの実施形態では、プロセッサ２０４は、汎用プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、及び／又はデジタル信号プロセッサ（ＤＳＰ）等であることができる。
【００３３】
[0044]  システムバス２０６は、プロセッサ２０４、メモリ２２０、記憶装置２３０、及び／又は制御ユニット２０２の他の構成要素が互いと通信できるようにする任意の適した構成要素であることができる。Ｉ／Ｏインターフェース２０８は、システムバス２０６に接続され、制御ユニット２０２の内部構成要素（例えば、プロセッサ２０４、メモリ２２０、記憶装置２３０）と、ユーザインターフェース２４０、操作要素２５０、搬送要素２６０、及びセンサ２７０等の外部入出力デバイスとの間での通信を可能にする任意の適した構成要素であることができる。
【００３４】
[0045]  ユーザインターフェース２４０は、入力を受信し、出力を他のデバイス及び／又はユーザ操作のデバイス、例えば、ユーザ操作のロボットデバイス２００に送信するように構成された１つ又は複数の構成要素を含むことができる。例えば、ユーザインターフェース２４０は、表示デバイス２４２（例えば、ディスプレイ、タッチスクリーン等）、オーディオデバイス２４４（例えば、マイクロホン、スピーカ）、及び任意選択的に、入力を受信し、及び／又はユーザへの出力を生成するように構成された１つ又は複数の追加の入出力デバイス（「Ｉ／Ｏデバイス」）２４６を含むことができる。
【００３５】
[0046]  操作要素２５０は、例えば、人間を含む静止物体及び／又は移動物体を操作及び／又は相互作用することが可能な任意の適した構成要素であることができる。操作要素２５０は、１つ又は複数の軸に沿った並進及び／又は１つ又は複数の軸の回りの回転を提供することができるジョイントを介して互いに結合される複数のセグメントを含むことができる。操作要素２５０は、環境内の物体と係合及び／又は他の方法で相互作用することができるエンドエフェクタを含むこともできる。例えば、操作要素は、環境内の物体に解放可能に係合（例えば、把持）して、物体をピックアップ及び／又は搬送することができる把持機構を含むことができる。エンドエフェクタの他の例には、例えば、真空係合機構、磁気係合機構、吸引機構、及び／又はそれらの組合せがある。一例の操作要素の詳細図を図４に示す。
【００３６】
[0047]  搬送要素２６０は、例えば、車輪又はトラック等の移動するように構成された任意の適した構成要素であることができる。１つ又は複数の搬送要素２６０は、ロボットデバイス２００の基部に提供して、ロボットデバイス２００が環境内を動き回れるようにすることができる。例えば、ロボットデバイス２００は、例えば、病院等の建物内をナビゲートできるようにする複数の車輪を含むことができる。搬送要素２６０は、狭い空間及び／又は制約された空間（例えば、狭い廊下及び通路、供給品格納室等の狭い部屋等）を通した移動を促進するように設計及び／又は寸法決めすることができる。
【００３７】
[0048]  センサ２７０は、ロボットデバイス２００がロボットデバイス２００周辺の環境及び／又は環境内の物体についての情報を捕捉できるようにする任意の適した構成要素であることができる。センサ２７０は、例えば、画像捕捉デバイス（例えば、赤緑青奥行き（ＲＧＢ−Ｄ）カメラ又はウェブカム等のカメラ）、オーディオデバイス（例えば、マイクロホン）、光センサ（例えば、光検出及び測距又はライダーセンサ、色検出センサ）、固有受容センサ、位置センサ、触覚センサ、力又はトルクセンサ、温度センサ、圧力センサ、運動センサ、サウンド検出器等を含むことができる。例えば、センサ２７０は、ロボットデバイス２００周辺の物体及び環境についての視覚情報を捕捉するカメラ等の少なくとも１つの画像捕捉デバイスを含むことができる。幾つかの実施形態では、センサ２７０は、触覚センサ、例えば、力、振動、タッチ、及び他の非視覚的情報をロボットデバイス２００に伝えることができるセンサを含むことができる。
【００３８】
[0049]  幾つかの実施形態では、ロボットデバイス２００は人間そっくりの特徴、例えば、頭、体、腕、足、及び／又はベースを有するであることができる。例えば、ロボットデバイス２００は、目、鼻、口、及び他の人間そっくりの特徴を有する顔を含むことができる。概略的に示されていないが、ロボットデバイス２００は、アクチュエータ、モータ、カプラ、コネクタ、電源（例えば、搭載電池）、及び／又はロボットデバイス２００の異なる部分をリンク、作動、及び／又は駆動する他の構成要素を含むこともできる。
【００３９】
[0050]  図３は、幾つかの実施形態による制御ユニット３０２を概略的に示すブロック図である。制御ユニット３０２は、制御ユニット２０２と同様の構成要素を含むことができ、制御ユニット２０２と構造的及び／又は機能的に同様であることができる。例えば、制御ユニット３０２は、プロセッサ３０４、メモリ３２０、Ｉ／Ｏインターフェース３０８、システムバス３０６、及び記憶装置３３０を含み、これらは構造的及び／又は機能的にプロセッサ２０４、メモリ２２０、Ｉ／Ｏインターフェース２０８、システムバス２０６、及び記憶装置２３０とそれぞれ同様であることができる。
【００４０】
[0051]  メモリ３２０は、プロセッサ３０４に、アクティブスキャン３２２、マーカ識別３２４、学習及びモデル生成３２６、軌道生成及び実行３２８、並びに成功モニタリング３２９として示されるモジュール、プロセス、及び／又は機能を実行させることができる命令を記憶する。アクティブスキャン３２２、マーカ識別３２４、学習及びモデル生成３２６、軌道生成及び実行３２８、並びに成功モニタリング３２９は、ハードウェア構成要素（例えば、センサ、操作要素、Ｉ／Ｏデバイス、プロセッサ等）に結び付けられた１つ又は複数のプログラム及び／又はアプリケーションとして実施することができる。アクティブスキャン３２２、マーカ識別３２４、学習及びモデル生成３２６、軌道生成及び実行３２８、並びに成功モニタリング３２９は、１つのロボットデバイス又は複数のロボットデバイスにより実施することができる。例えば、ロボットデバイスは、アクティブスキャン３２２、マーカ識別３２４、並びに軌道生成及び実行３２８を実施するように構成することができる。別の例として、ロボットデバイスは、アクティブスキャン３２２、マーカ識別３２４、任意選択的に学習及びモデル生成３２６、並びに軌道生成及び実行３２８を実施するように構成することができる。別の例として、ロボットデバイスは、アクティブスキャン３２２、マーカ識別３２４、軌道生成及び実行３２８、並びに任意選択的に成功モニタリング３２９を実施するように構成することができる。示されていないが、メモリ３２０は、オペレーティングシステムに関連付けられたプログラム及び／又はアプリケーション並びに一般的なロボット動作（例えば、電力管理、メモリ割り振り等）を記憶することもできる。
【００４１】
[0052]  記憶装置３３０は、技能の学習及び／又は実行に関連する情報を記憶する。記憶装置３３０は、例えば、内部状態情報３３１、モデル３３４、物体情報３４０、及び機械学習ライブラリ３４２を記憶する。内部状態情報３３１は、ロボットデバイス（例えば、ロボットデバイス２００）の状態及び／又はロボットデバイスが動作している環境（例えば、病院等の建物）に関する情報を含むことができる。幾つかの実施形態では、状態情報３３１は、例えば、部屋、フロア、閉じられた空間等の環境内のロボットデバイスのロケーションを示すことができる。例えば、状態情報３３１は、環境の地図３３２を含むことができ、その地図３３２内のロボットデバイスのロケーションを示すことができる。状態情報３３１は、環境内、例えば、地図３３２内の１つ又は複数の物体（又は物体を表すマーカ及び／又は物体に関連付けられたマーカ）のロケーションを含むこともできる。従って、状態情報３３１は、１つ又は複数の物体に相対するロボットデバイスのロケーションを識別することができる。物体は、環境内に配置される任意のタイプの物理的物体を含むことができる。物体は静止していてもよく、又は移動可能であってもよい。例えば、病院等の環境内の物体の例には、機器、供給品、器具、工具、家具、及び／又は人間（例えば、看護師、医師、患者等）がある。
【００４２】
[0053]  物体情報３４０は、環境内の物理的物体に関連する情報を含むことができる。例えば、物体情報は、例えば、ロケーション、色、形状、及び表面特徴等の物体の様々な特徴を識別又は定量化する情報を含むことができる。物体情報は、物理的物体に関連付けられたコード、記号、及び他のマーカ、例えば、Quick Response又は「ＱＲ」コード、バーコード、タグ等を識別することもできる。物体情報は、制御ユニット３０２が環境内の物理的物体を識別できるようにすることができる。
【００４３】
[0054]  機械学習ライブラリ３４２は、異なる技能の機械学習及び／又はモデル生成用の異なるアルゴリズムに関連するモジュール、プロセス、及び／又は機能を含むことができる。幾つかの実施形態では、機械学習ライブラリは、隠れマルコフモデル又は「ＨＭＭ」等の方法を含むことができる。Pythonでの既存の機械学習ライブラリの一例はscikit-learnである。記憶装置３３０は、例えば、ロボットシミュレーション、運動の計画及び制御、運動感覚教授、及び知覚等に関連する追加のソフトウェアライブラリを含むこともできる。
【００４４】
[0055]  モデル３３４は、異なる動作を実行するように生成され、ロボットデバイスにより学習された技能を表すモデルである。幾つかの実施形態では、各モデル３３４には、環境内の異なる物理的物体に結び付けられた１組のマーカが関連付けられる。マーカ情報３３５は、特定のモデル３３４にどのマーカが関連付けられているかを示すことができる。各モデル３３４には、運動感覚教授中及び／又は技能の他の実演中、例えば、ロボットデバイスの１つ又は複数のセンサを介して収集されたセンサ情報３３６を関連付けることもできる。センサ情報３３６は、実演中、ロボットデバイスの操作要素が動作を実行する際の、ロボットデバイスの操作要素に関連付けられた操作要素情報３３７を含むことができる。操作要素情報３３７は、例えば、ジョイント構成、エンドエフェクタの位置及び構成、及び／又はジョイント及び／又はエンドエフェクタに対して作用する力及びトルクを含むことができる。操作要素情報３３７は、技能の実演及び／又は実行中の特定のポイント（例えば、キーフレーム）で記録してもよく、又は代替的には、技能の実演及び／又は実行全体を通して記憶してもよい。センサ情報３３６は、技能が実演及び／又は実行された環境に関連付けられた情報、例えば、環境内のマーカのロケーションを含むこともできる。幾つかの実施形態では、各モデル３３４には成功基準３３９を関連付けることができる。成功基準３３９を使用して、技能の実行をモニタすることができる。幾つかの実施形態では、成功基準３３９は、１つ又は複数のセンサ、例えば、カメラ、力／トルクセンサ等を使用して知覚された視覚データ及び触覚データに関連付けられた情報を含むことができる。成功基準３３９は、例えば、物体の運動の視覚的検出、ロボットデバイスの構成要素に作用している力（例えば、物体からの重み）の検知、ロボットデバイスの構成要素と物体との係合（例えば、表面に作用している圧力又は力の変化）の検知等に結び付けることができる。操作技能のロボット学習に触覚データを使用する例は、http://ieeexplore.ieee.org/document/7463165/においてアクセス可能であり、参照により本明細書に援用される、2016 IEEE Haptics Symposium (HAPTICS), Philadelphia, PA, 2016, pp. 119-125において公開されたChu et al.著「Learning Haptic Affordances from Demonstration and Human-Guided Exploration」と題する記事に記載されている。操作技能のロボット学習に視覚データを使用する例は、https://doi.org/10.1007/s10514-015-9448-x（「Akgun記事」）においてアクセス可能であり、参照により本明細書に援用される、Autonomous Robots, Volume 40, Issue 2, February 2016, pp. 211-227において公開されたAkgun et al.著「Simultaneously Learning Actions and Goals from Demonstration」と題する記事に記載されている。
【００４５】
[0056]  図４は、幾つかの実施形態による操作要素３５０を概略的に示す。操作要素３５０は、例えば、ロボットデバイス１０２及び／又は２００等のロボットデバイスの一部を形成することができる。操作要素３５０は、ジョイント３５４を介して一緒に結合された２つ以上のセグメント３５２を含むアームとして実施することができる。ジョイント３５４は、１度以上の自由度を可能にすることができる。例えば、ジョイント３５４は、１つ又は複数の軸に沿った並進及び／又は１つ又は複数の軸の回りの回転を提供することができる。一実施形態では、操作要素３５０は、ジョイント３５４により提供される７度の自由度を有することができる。４つのセグメント３５２及び４つのジョイント３５４が図４に示されているが、当業者は、操作要素が異なる数のセグメント及び／又はジョイントを含むことができることを理解する。
【００４６】
[0057]  操作要素３５０は、環境内の物体と相互作用するのに使用することができるエンドエフェクタ３５６を含む。例えば、エンドエフェクタ３５６を使用して、異なる物体に係合及び／又は操作することができる。代替又は追加として、エンドエフェクタ３５６を使用して、例えば、人間を含む可動物体又は動的物体と相互作用することができる。幾つかの実施形態では、エンドエフェクタ３５６は、１つ又は複数の物体に解放可能に係合又は把持することができるグリッパであることができる。例えば、グリッパとして実施されるエンドエフェクタ３５６は、物体をピックアップし、第１ロケーション（例えば、供給品格納室）から第２ロケーション（例えば、オフィス、部屋等）に移動させることができる。
【００４７】
[0058]  複数のセンサ３５３、３５５、３５７、及び３５８は、操作要素３５０の異なる構成要素、例えば、セグメント３５２、ジョイント３５４、及び／又はエンドエフェクタ３５６に配置することができる。センサ３５３、３５５、３５７、及び３５８は、環境情報及び／又は操作要素情報を含むセンサ情報を測定するように構成することができる。センサの例には、位置エンコーダ、トルク及び／又は力センサ、タッチ及び／又は触覚センサ、カメラ等の画像捕捉デバイス、温度センサ、圧力センサ、光センサ等がある。幾つかの実施形態では、セグメント３５２に配置されるセンサ３５３は、環境についての視覚情報を捕捉するように構成されたカメラであることができる。幾つかの実施形態では、セグメント３５２に配置されるセンサ３５３は、加速度の測定及び／又はセグメント３５２の移動速度及び／又は位置の計算を可能にするように構成された加速度計であることができる。幾つかの実施形態では、ジョイント３５４に配置されるセンサ３５５は、ジョイント３５４の位置及び／又は構成を測定するように構成された位置エンコーダであることができる。幾つかの実施形態では、ジョイント３５４に配置されるセンサ３５５は、ジョイント３５４にかけられた力及びトルクを測定するように構成された力又はトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ３５６に配置されるセンサ３５８は、位置エンコーダ及び／又は力若しくはトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ３５６に配置されるセンサ３５７は、エンドエフェクタ３５６と環境内の物体との係合を測定するように構成されたタッチ又は触覚センサであることができる。代替又は追加として、センサ３５３、３５５、３５７、及び３５８の１つ又は複数は、環境内の１つ又は複数の物体及び／又はマークについての情報を記録するように構成することができる。例えば、エンドエフェクタ３５６に配置されるセンサ３５８は、環境内の物体のロケーション及び／又はエンドエフェクタ３５６に相対する物体の位置を追跡するように構成することができる。幾つかの実施形態では、センサ３５３、３５５、３５７、及び３５８の１つ又は複数は、人間等の物体が環境内で移動したか否かを追跡することもできる。センサ３５３、３５５、３５７、及び３５８は、記録したセンサ情報をロボットデバイスに配置された計算デバイス（例えば、制御ユニット２０２及び／又は３０２等の搭載制御ユニット）に送信することができ、又はセンサ３５３、３５５、３５７、及び３５８は、センサ情報をリモート計算デバイス（例えば、サーバ１２０等のサーバ）に送信することができる。
【００４８】
[0059]  操作要素３５０は任意選択的に、操作要素３５０を本明細書に記載される任意のロボットデバイス等のロボットデバイスに解放可能に結合できるようにする結合要素３５９を含むことができる。幾つかの実施形態では、操作要素３５０は、ロボットデバイスの固定ロケーションに結合することができ、及び／又はロボットデバイスの複数のロケーション（例えば、図５に示されるように、ロボットデバイスの本体の右側又は左側）に結合可能であることができる。結合要素３５９は、操作要素３５０を例えば、機械的機構（例えば、留め具、ラッチ、マウント）、磁気機構、摩擦嵌め等のロボットデバイスに結合することができる任意のタイプの機構を含むことができる。
【００４９】
[0060]  図５は、幾つかの実施形態によるロボットデバイス４００を概略的に示す。ロボットデバイス４００は、頭部４８０、本体４８８、及びベース４８６を含む。頭部４８０は、セグメント４８２及び１つ又は複数のジョイント（図示せず）を介して本体４８８に接続することができる。セグメント４８２は、可動及び／又は可撓性を有して、頭部４８０を本体４８８に相対して移動できるようにすることができる。
【００５０】
[0061]  頭部４８０は、１つ又は複数の画像捕捉デバイス４７２及び／又は他のセンサ４７０を含む。画像捕捉デバイス４７２及び／又は他のセンサ４７０（例えば、ライダーセンサ、運動センサ等）は、ロボットデバイス４００が環境をスキャンし、環境の表現（例えば、視覚表現又は他の意味表現）を取得できるようにすることができる。幾つかの実施形態では、画像捕捉デバイス４７２はカメラであることができる。幾つかの実施形態では、画像捕捉デバイス４７２は、ロボットデバイス４００周辺の環境の異なるエリアにフォーカスするのに使用することができるように移動可能であることができる。画像捕捉デバイス４７２及び／又は他のセンサ４７０は、センサ情報を収集し、例えば、制御ユニット２０２又は３０２等のロボットデバイス４００に搭載された計算デバイス又はプロセッサに送信することができる。幾つかの実施形態では、ロボットデバイス４００の頭部４８０は、人間にそっくりな形状を有することができ、１つ又は複数の人間の特徴、例えば、目、鼻、口、耳等を含むことができる。そのような実施形態では、画像捕捉デバイス４７２及び／又は他のセンサ４７０は、１つ又は複数の人間特徴として実施することができる。例えば、画像捕捉デバイス４７２は頭部４８０における目として実施することができる。
【００５１】
[0062]  幾つかの実施形態では、ロボットデバイス４００は、画像捕捉デバイス４７２及び／又は他のセンサ４７０を使用して、環境内の物体についての情報、例えば、物理的な構造物、デバイス、物品、人間等を求めて環境をスキャンすることができる。ロボットデバイス４００は、アクティブスキャンに従事することができ、又はロボットデバイス４００は、トリガー（例えば、ユーザからの入力、イベントの検出、又は環境の変化）に応答してスキャンを開始することができる。
【００５２】
[0063]  幾つかの実施形態では、ロボットデバイス４００は、記憶された知識及び／又はユーザ入力に基づいてスキャンを実行することができる適応スキャンに従事することができる。例えば、ロボットデバイス４００は、物体について有する事前情報に基づいて、物体を探してスキャンする環境内のエリアを識別することができる。図６Ａを参照すると、ロボットデバイス４００は、シーン（例えば、部屋のエリア）をスキャンし、シーンの表現５００を取得することができる。表現５００において、ロボットデバイス４００は、第１物体５５０がエリア５１０にあり、第２物体５６０がエリア５１０及び５３０にあることを識別する。ロボットデバイス４００は、物体５５０及び５６０のロケーションを内部に記憶された環境の地図に記憶することができ、それにより、ロボットデバイス４００は、将来のスキャンを実行するとき、その情報を使用して物体５５０及び５６０を見つけることができる。例えば、ロボットデバイス４００は、シーンに戻り、シーンを２度目にスキャンする場合、図６Ｂに示されるように、シーンの異なるビューを取得し得る。この２度目のスキャンを実行するとき、ロボットデバイス４００はシーンの表現５０２を取得することができる。表現５０２において物体５５０及び５６０を見つけるために、ロボットデバイス４００は、シーンの表現５００を取得したとき、それらの物体のロケーションについて前に記憶した情報を参照することができる。ロボットデバイス４００は、環境におけるそれ自体のロケーションが変化した可能性があることを考慮に入れ、物体５５０及び５６０が表現５０２の異なるエリアにあり得ることを認識することができる。この情報に基づいて、ロボットデバイス４００は、物体５５０を探してエリア５１０を調べるが、物体５６０を探してエリア５２０及び５４０を調べることを知り得る。ロボットデバイス４００は、物体５５０及び５６０のロケーションについて前に記憶された情報を使用することにより、物体５５０及び５６０を探して密に（例えば、ズームインすることにより、それらのシーンを通してカメラをゆっくりと動かすことにより）スキャンするエリアを自動的に識別することができる。
【００５３】
[0064]  幾つかの実施形態では、ロボットデバイス４００は、人間による入力に基づいてシーンの異なるエリアをより密にスキャンすることを知ることもできる。例えば、人間はロボットデバイス４００に、シーンの特定のエリアが１つ又は複数の対象物体を含むことを示すことができ、ロボットデバイス４００はそれらのエリアをより密にスキャンして、それらの物体を識別することができる。そのような実施形態では、ロボットデバイス４００は、図５に概略的に示されるように、キーボード若しくは他の入力デバイスを有するディスプレイ及び／又はタッチスクリーン等の入出力デバイス４４０を含むことができる。
【００５４】
[0065]  幾つかの実施形態では、ロボットデバイス４００は、環境をスキャンし、例えば、人間等の物体が環境内を移動していることを識別することができる。例えば、図７Ａ及び図７Ｂに示すように、物体６６０は環境内を移動中であることができ、その間、物体６５０は静止したままである。図７Ａは、エリア６１０及び６３０内の物体６６０を示すシーンの表現６００を示し、図７Ｂは、エリア６２０及び６４０内の物体６６０を示すシーンの表現６０２を示す。両表現６００及び６０２において、物体６５０はエリア６１０内の同じロケーションに留まることができる。ロボットデバイス４００は、物体６６０がシーン内を移動したことを識別し、それに従って動作を調整することができる。例えば、ロボットデバイス４００は、物体６６０と相互作用するように計画した場合、軌道を変更し得、例えば、物体６６０のより近くに移動し得、及び／又は物体６６０と相互作用するように構成された操作要素又は他の構成要素の軌道を変更し得る。代替又は追加として、ロボットデバイス４００は、物体６５０（及び／又はシーン内の別の物体）と相互作用するように計画した場合、物体６５０と相互作用するコースを計画している間、物体６６０の移動を考慮に入れることができる。幾つかの実施形態では、ロボットデバイス４００は、準リアルタイムで動作を調整することができるようにアクティブスキャンに従事することができる。
【００５５】
[0066]  図５に概略的に示すように、ベース４８６は任意選択的に、車輪４６０として実施される１つ又は複数の搬送要素を含むことができる。車輪４６０は、ロボットデバイス４００が環境、例えば、病院を動き回れるようにすることができる。ロボットデバイス４００は、少なくとも１つの操作要素４５０も含む。操作要素４５０は、本明細書に記載される他の操作要素、例えば、操作要素３５０と構造的及び／又は機能的に同様であることができる。操作要素４５０は、ロボットデバイス４００の本体４８８に固定して取り付けることができ、又は任意選択的に、操作要素４５０は、ロボットデバイス４００の結合部４８４に取り付けることができる結合要素（例えば、結合要素３５９）を介して本体４８８に解放可能に結合することができる。結合部４８４は、結合要素３５９と係合し、操作要素４５０と搭載計算デバイス（例えば、制御ユニット２０２又は３０２）との間に電気接続を提供するように構成することができ、それにより、搭載計算デバイスは操作要素４５０の構成要素に給電及び／又は制御し、操作要素４５０に配置されたセンサ（例えば、センサ３５３、３５５、３５７、及び３５８）により収集された情報を受信することができる。
【００５６】
[0067]  任意選択的に、ロボットデバイス４００は、セグメント４８２、本体４８８、ベース４８６、及び／又はロボットデバイス４００の他の部分に配置された１つ又は複数の追加のセンサ４７０を含むこともできる。センサ４７０は、例えば、画像捕捉デバイス、力若しくはトルクセンサ、運動センサ、光センサ、圧力センサ、及び／又は温度センサであることができる。センサ４７０は、ロボットデバイス４００が環境についての視覚情報及び非視覚情報を捕捉できるようにすることができる。
【００５７】
[0068]  図８〜図１１は、幾つかの実施形態による、１つ又は複数のロボットデバイスを含むロボットシステム（例えば、ロボットシステム１００）により実行することができる方法７００を示す流れ図である。例えば、方法７００の全て又は一部は、本明細書に記載される任意のロボットデバイス等の１つのロボットデバイスにより実行することができる。代替的には、方法７００は全て、それぞれが方法７００の一部を実行する複数のロボットデバイスにより順次実行することができる。代替的には、全て又は一部の方法７００は、複数のロボットデバイスにより同時に実行することができる。
【００５８】
[0069]  図８に示すように、７０２において、ロボットデバイスは環境をスキャンし、環境の表現を取得することができる。ロボットデバイスは、１つ又は複数のセンサ（例えば、センサ２７０若しくは４７０及び／又は画像捕捉デバイス４７２）を使用して環境をスキャンすることができる。幾つかの実施形態では、ロボットデバイスは、可動カメラを使用して環境をスキャンすることができ、ここで、カメラの位置及び／又はフォーカスは、環境のシーン内のエリアを捕捉するように調整することができる。７０４において、スキャン中に収集された情報に基づいて、ロボットデバイスは、データを分析して、環境の捕捉された表現内のマーカを識別することができる。マーカには、視覚的又は位置合わせマーカ、例えば、ＱＲコード、バーコード、タグ等の視覚的マーカを使用してマークされたシーン内の１つ又は複数の物体を関連付けることができる。代替又は追加として、ロボットデバイスは、ロボットデバイスのメモリ（例えば、記憶装置３３０）に記憶された物体情報（例えば、物体情報３４０）を使用して物体認識を介して環境内の１つ又は複数の物体に関連付けられたマーカを識別することができる。物体情報は、例えば、ロケーション、色、形状、及び表面特徴等の物体の異なる特徴を示す情報を含むことができる。一実施形態では、物体情報は、特徴空間と呼ぶことができる物体の異なる特徴を表す数値として編成することができる。
【００５９】
[0070]  マーカを識別した後、ロボットデバイスは任意選択的に、７０６において、環境の表現内のマーカを表すことができる。幾つかの実施形態では、環境の表現は、例えば、環境の拡張図等の視覚的表現であることができる。そのような実施形態では、ロボットデバイスは、例えば、表示画面に環境の視覚的表現を表示し、環境の視覚的表現においてマーカのロケーションを表示することができる。代替又は追加として、環境の表現は、環境内の意味的マーカにより表されるマーカのロケーションを有する環境の意味的表現であることができる。
【００６０】
[0071]  幾つかの実施形態では、７０８において、ロボットデバイスは、マーカを有する環境の表現をユーザに提示することができ、任意選択的に、例えば、ユーザインターフェース又は他のタイプのＩ／Ｏデバイスを介して、環境の表現内のマーカを許容又は拒絶するようにユーザに促すことができる。ユーザがマーカを許容しない（７０８：いいえ）場合、方法７００は７０２に戻り、ロボットデバイスは環境を再スキャンして、環境の第２表現を取得することができる。ユーザがマーカを許容する（７０８：はい）場合、方法７００は７０８に進み、ロボットデバイスは、マーカに関連付けられた情報（例えば、ロケーション、特徴等）をメモリ（例えば、記憶装置３３０）に記憶することができる。例えば、ロボットデバイスは、マーカのロケーションを環境の内部地図（例えば、地図３３２）に記憶することができる。
【００６１】
[0072]  幾つかの実施形態では、７０４において、ロボットデバイスはマーカを識別することができ、７１０において、マーカを許容するようにユーザに促すことなく、マーカのロケーション及び／又はマーカに関連付けられた他の情報を記憶することに直接進むことができる。そのような実施形態では、ロボットデバイスは、マーカのロケーションを記憶する前、マーカのロケーションを分析することができる。例えば、ロボットデバイスは、（例えば、環境の前のスキャン中に取得され、及び／又はユーザ又は計算デバイスによりロボットデバイスに入力された）マーカのロケーションについての前に記憶された情報を有することができ、マーカのロケーションを前に記憶された情報と比較して、精度をチェックし、及び／又はマーカロケーションの変化を識別することができる。特に、前に記憶された情報が、特定のマーカが、ロボットデバイスにより識別されたロケーションと異なるロケーションにあるべきであることを示す場合、ロボットデバイスは、環境の追加のスキャンを開始して、マーカのロケーションを検証してから、そのロケーションを記憶し得る。代替又は追加として、ロボットデバイスは、マーカのロケーションが変化したことを示す通知をユーザに送信することができる。そのような場合、ロボットデバイスは、マーカの新しいロケーションを記憶するとともに、マーカロケーションに変化があったことを示すメッセージも記憶し得る。ユーザ又は計算デバイスは次に、後の時点で、メッセージを見直し、マーカロケーションの変化を受け入れることができる。
【００６２】
[0073]  任意選択的に、方法７００は７１２に進むことができ、ロボットデバイスは、例えば、ユーザインターフェース又は他のタイプのＩ／Ｏデバイスを介して、図９に示されるように、環境の表現において識別されたマーカから１組のマーカを選択するようにユーザに促すことができる。７１４において、ユーザは選択することができ、ロボットデバイスはユーザから選択を受信することができる。代替的には、幾つかの実施形態では、ロボットデバイスは、選択するようにユーザに促す代わりに、１組のマーカを自動的に選択することができる。ロボットデバイスは、特定の予め定義される又は学習されたルール及び／又は条件に基づいてマーカを選択するようにプログラムすることができる。例えば、ロボットデバイスに、特定の日時中又は建物内の人通りが少ないとき、特定のタイプの物体（例えば、供給品）に関連付けられたマーカを選択するように命令することができる。建物内の人通りが少ないときの場合、ロボットデバイスは、建物内を能動的に動き（例えば、廊下及び部屋をパトロールしモニタし）、環境をスキャンすることにより建物内の人通りがいつ少ないかを特定することができる。次に、ロボットデバイスは、建物内の人通りが他の大半の時間よりも少ないときに特定の物体に関連付けられたマーカを選択することを知ることができる。
【００６３】
[0074]  ロボットデバイスがユーザから選択された１組のマーカを受信し、及び／又は１組のマーカを自動的に選択した後、方法７００は、７１６における技能学習又は７１８における技能実行に進むことができる。
【００６４】
[0075]  任意の特定の技能について、ロボットデバイスが技能を実行する前又は行う前、ロボットデバイスに技能を教えることができる。例えば、操作技能を取得するために、ＬｆＤ（例えば、運動感覚教授）を使用してロボットデバイスに教えることができ、それにより、ユーザ又は他のロボットデバイスはロボットデバイスに対して技能を実演することができる。例えば、ロボットデバイスのアーム等の操作要素は、一連のウェイポイントを通して移動し、物体と相互作用することができる。運動感覚教授の場合、ユーザはロボットデバイスに対して技能を物理的に実演することができる。訓練又は教授は、例えば、製造環境等の大量生産設定で実行することができ、そこで、技能の一般実行を表す集約モデルを使用してロボットデバイスに教えることができる。代替又は追加として、教授は、ロボットデバイスが特定の場所環境で技能を実行することを学習することができるように、ロボットデバイスが（例えば、病院に）配備された後、現場で行うことができる。幾つかの実施形態では、現場設定でロボットデバイスに教えることができ、次に、ロボットデバイスは、学習した技能に関連付けられた情報を１つ又は複数の追加のロボットデバイスに送信することができ、それにより、それらの追加のロボットデバイスも、同じ現場設定で動作する場合、教えられた技能の知識を有することができる。そのような実施形態は、複数のロボットデバイスが１つの場所に配備される場合、有用である。次に、各ロボットデバイスは、情報を受信し、他のロボットデバイスに送信することができ、それにより、ロボットデバイスはその現場環境での１組の技能を集合的に学習することができる。
【００６５】
[0076]  図１０に示される学習モードでは、方法７００は７２０〜７２４に進み、そこでユーザはＬｆＤ教授プロセスを使用して、ロボットデバイスに技能を教えることができる。一実施形態では、技能は、特定のロケーションに配置された物体の把持、物体のピックアップ、異なるロケーションへの物体の移動、及び異なるロケーションへの物体の荷下ろしとして定義することができる。７２０において、ユーザ（又は別のロボットデバイス）は、移動を通して操作要素（例えば、操作要素２５０、３５０、又は４５０）を含むロボットデバイスをガイドすることができる。例えば、ユーザは、特定の技能、例えば、人間との相互作用、物体との係合、及び／又は物体の操作の実行に関連付けられた実演を通してロボットデバイスの操作要素をガイドすることができる。移動を通してロボットの操作要素をガイドする間、ユーザは、操作要素の状態（例えば、ジョイント構成、ジョイント力及び／又はトルク、エンドエフェクタ構成、エンドエフェクタ位置）及び／又は環境（例えば、選択されたマーカに関連付けられた物体及び／又は環境内の他の物体のロケーション）についての情報をいつ捕捉するかをロボットに示すことができる。例えば、７２２において、ロボットデバイスは、ウェイポイントにおいて又は操作要素の移動中のキーフレームにおいて、操作要素及び／又は環境についての情報を捕捉する信号をユーザから受信することができる。７２４において、信号の受信に応答して、ロボットデバイスは、そのキーフレームにおいて操作要素及び／又は環境についての情報を捕捉することができる。操作要素情報は、例えば、ジョイント構成、ジョイントトルク、エンドエフェクタ位置、及び／又はエンドエフェクタトルクを含むことができる。環境情報は、例えば、エンドエフェクタに相対する選択されたマーカの位置を含むことができ、環境内の物体が移動した可能性があるときをロボットデバイスに示すことができる。移動がなお進行中である（７２８：いいえ）場合、ロボットデバイスは、追加のキーフレームにおいて操作要素及び／又は環境についての情報を捕捉するのを待つことができる。幾つかの実施形態では、ロボットデバイスは、ユーザからの信号を受信せずにキーフレーム情報を捕捉するようにプログラムすることができる。例えば、操作要素がユーザにより移動中の間、ロボットデバイスは、操作要素のセグメント及びジョイントの変化をモニタすることができ、それらの変化が閾値を超える場合又はセグメント若しくはジョイントの軌道の方向変更がある場合、ロボットデバイスは自動的にそのポイントをキーフレームとして選択し、そのキーフレームにおける操作要素及び／又は環境についての情報を記録することができる。
【００６６】
[0077]  操作要素の移動中、７３０において、ロボットデバイスは、ユーザから信号を受信せずに、連続して又は周期的にセンサ情報、例えば、操作要素及び／又は環境についての情報を記録することもできる。例えば、ロボットデバイスは、ユーザが実演を通して操作要素を動かす際、セグメント及びジョイントの軌道並びにそれらの構成についての情報を記録することができる。
【００６７】
[0078]  幾つかの実施形態では、ロボットデバイスは、例えば、マイクロホン等のオーディオデバイス（例えば、２４４）を含むことができ、キーフレームの区分は発話コマンドにより制御することができる。例えば、ユーザは、「あなたをガイドします（I will guide you）」と話すことにより実演の実施を計画することをロボットデバイスに示すことができる。実演は、ユーザが「ここから開始（start here）」と話すことにより第１キーフレームを示すとき、開始することができる。中間キーフレームは、「ここに来る（go here）」と話すことにより示すことができる。そして、実演の終わりを表す最後のキーフレームは、「ここで終わる（end here）」と話すことにより示すことができる。実演教授の適した例はAkgun記事に提供されている。
【００６８】
[0079]  移動又は実演が完了すると（７２８：はい）、ロボットデバイスは、記録された全てのセンサ情報（例えば、操作要素情報、環境情報）のサブセットに基づいて、実演された技能のモデルを生成することができる。例えば、７３２において、ロボットデバイスは任意選択的に、例えば、ユーザインターフェース又は他のタイプのＩ／Ｏデバイスを介して、技能の学習に関連する特徴を選択するようにユーザに促すことができ、７３４において、ロボットデバイスは、ユーザから選択された特徴を受信することができる。代替又は追加として、ロボットデバイスは、ユーザからの前の命令に基づいて、モデルの生成に使用すべき特定の特徴を選択することを知ることができる。例えば、ロボットデバイスは、例えばセンサ情報に基づいて、物体のピックアップが実演中であることを認識することができ、例えば、同じ又は異なる物体をピックアップする過去の実演に基づいて、技能モデルの生成に関連する特徴として包含するセンサ情報（例えば、ジョイント構成、ジョイントトルク、エンドエフェクタトルク）の１つ又は複数の特徴を自動的に選択することができる。
【００６９】
[0080]  ７３６において、ロボットデバイスは、選択された特徴を使用して技能のモデルを生成することができる。モデルは、記憶された機械学習ライブラリ又はアルゴリズム（例えば、機械学習ライブラリ３４２）を使用して生成することができる。幾つかの実施形態では、モデルは、例えば、幾つかの隠れ状態、特徴空間（例えば、特徴ベクトルに含まれる特徴）、及び正規分布としてモデリングされた各状態の放出分布等の複数のパラメータを含むＨＭＭアルゴリズムとして表すことができる。幾つかの実施形態では、モデルは、サポートベクターマシン又は「ＳＶＭ」モデルとして表すことができ、ＳＶＭモデルは、例えば、カーネルタイプ（例えば、線形、ラジアル、多項式、シグモイド）、費用パラメータ又は関数、重み（例えば、イコール、クラスバランス）、損失タイプ又は関数（例えば、ヒンジ、スクエアヒンジ）、及び解決又は問題タイプ（例えば、デュアル、プライマル）等のパラメータを含むことができる。モデルには、技能実演中、ロボットデバイスにより記録された関連するセンサ情報及び／又は他のセンサ情報を関連付けることができる。モデルには、技能実演中に操作された１組のマーカ及び／又はそれらのマーカに結び付けられた１つ又は複数の物理的物体に関連付けられた特徴を示すマーカ情報を関連付けることもできる。７３８において、ロボットデバイスはモデルをメモリ（例えば、記憶装置２３０又は３３０）に記憶することができる。
【００７０】
[0081]  任意選択的に、７４０において、ロボットデバイスは、ユーザが技能の別の実演を実行するか否かを判断することができる。別の実演が実行される場合（７４０：はい）、方法７００は７２０に戻ることができ、ユーザ（又は他のロボットデバイス）は、追加の実演を通してロボットデバイスをガイドすることができる。実演が完了した場合（７４０：いいえ）、方法７００は任意選択的に、最初に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態では、方法７００は終了することができる。
【００７１】
[0082]  幾つかの実施形態では、上述したように、ロボットデバイスは、周囲環境を能動的にスキャンして、環境変化をモニタすることができる。従って、学習及び／又は実行中、ロボットデバイスは、環境の連続スキャンに従事し、それに従って環境の表現及び記憶した環境情報を更新することができる。
【００７２】
[0083]  図１１に示される実行モードでは、７５０において、ロボットデバイスは任意選択的に、例えば、ユーザインターフェース又は他のタイプのＩ／Ｏデバイスを介して、学習モードにおいてロボットデバイスにより前に生成されたモデル等のモデルを選択するようにユーザに促すことができる。７５２において、ロボットデバイスはモデル選択を受信することができる。幾つかの実施形態では、ロボットデバイスは、ユーザからモデル選択を受信することができ、又は代替的には、ロボットデバイスは、特定のルール及び／又は条件に基づいてモデルを自動的に選択することができる。例えば、ロボットデバイスは、建物の特定のエリアにいるとき（例えば、特定の部屋又はフロアにいるとき）、特定の日時等にモデルを選択するようにプログラムすることができる。代替又は追加として、ロボットデバイスは、選択された組のマーカに基づいて特定のモデルを選択することが知ることができる。７５４において、ロボットデバイスは、選択されたマーカに関して軌道を生成し技能を実行する前、選択されたマーカのより近くに移動するか否かを決定することができる。例えば、ロボットデバイスは、選択された１組のマーカ及び選択されたモデルに基づいて、技能を実行するよりよい位置（例えば、マーカのより近く又はより近傍に、特定の角度からマーカに面する）に移動すべきであるか否かを決定することができる。ロボットデバイスは、技能の実演中に記録されたセンサ情報に基づいてこの決定を行い得る。例えば、ロボットデバイスは、技能が実演されたときマーカのより近くに位置していたことを認識し、それに従って位置を調整し得る。
【００７３】
[0084]  ロボットデバイスは、選択されたマーカに関して移動すると決定する場合（７５４：はい）、７５６において位置を移動する（例えば、ロケーション及び／又は向きを調整する）ことができ、方法７００は７０２に戻ることができ、ロボットデバイスは環境を再びスキャンして、環境の表現を取得する。方法７００は、再び様々なステップを通して７５４に進むことができる。ロボットデバイスは、選択されたマーカに関して移動しないと決定する場合（７５４：いいえ）、例えば、ロボットデバイスの操作要素の動作軌道を生成することができる。
【００７４】
[0085]  特に、７５８において、ロボットデバイスは、選択された１組のマーカと、本明細書では「記憶されたマーカ」又は「記憶された１組のマーカ」と呼ばれる、選択されたモデルに関連付けられた１組のマーカ（例えば、ロボットデバイスが技能を学習したとき、すなわち、選択されたモデルの生成時に選択されたマーカ）との間で変換（例えば、翻訳）を行う関数を計算することができる。例えば、ロボットデバイスに、例えば、エンドエフェクタ等のロボットデバイスの一部に相対して特定のロケーション及び／又は向きである第１組のマーカを使用して技能を教えることができ、後に、ロボットデバイスは、操作要素に相対して異なるロケーション及び／又は向きである第２組のマーカを用いて技能を実行することができる。そのような場合、ロボットデバイスは、第１組のマーカの位置及び／又は向きと第２組のマーカの位置及び／又は向きとの間で変換を行う変換関数を計算することができる。
【００７５】
[0086]  ７６０において、ロボットデバイスは、計算された変換関数を使用して、技能が教えられたときに記録された各キーフレームにおいて、操作要素の一部、例えば、操作要素のエンドエフェクタの位置及び向きを変換することができる。任意選択的に、７６２において、ロボットデバイスは、７６２において、逆運動学方程式又はアルゴリズムを使用して、各キーフレームでの操作要素のジョイントの構成を決定することができる。エンドエフェクタの位置及び向き並びに１組のマーカは、タスク空間（例えば、ロボットデバイスが動作中のデカルト空間）において提供することができ、一方、ジョイントの向きはジョイント又は構成空間（例えば、操作要素の構成に関連付けられたｎ次元空間であり、ロボットデバイスは点として表され、ｎは操作要素の自由度数である）において提供することができる。幾つかの実施形態では、逆運動計算は、ロボットデバイスが技能を教えられたときに記録されたジョイント構成情報（例えば、操作要素を使用して教授実演中に記録されたジョイントの構成）によりガイドすることができる。例えば、逆運動学計算に、各キーフレームで記録されたジョイント構成をシードする（例えば、計算の初期推測を提供又はバイアスする）ことができる。例えば、計算されたジョイント構成が隣接するキーフレームでのジョイント構成から予め定義される量を超えてずれない必要がある等の追加の条件を逆運動学計算に課すこともできる。７６４において、ロボットデバイスは、例えば、ジョイント空間内のあるキーフレームから次のキーフレームへのジョイント構成間の軌道を計画して、操作要素が技能を実行する完全な軌道を生成することができる。
【００７６】
[0087]  幾つかの実施形態では、ロボットデバイスは、操作要素（例えば、エンドエフェクタ）の部分の位置及び向きを変換した後、タスク空間内の操作要素の軌道を計画することができる。そのような実施形態では、方法７００は７６０から直接７６４に進むことができる。
【００７７】
[0088]  ７６６及び７６８において、ロボットデバイスは任意選択的に、軌道をユーザに提示し、例えば、ユーザインターフェース又は他のＩ／Ｏデバイスを介して、軌道を許容するか、それとも拒絶するかをユーザに促すことができる。代替的には、ロボットデバイスは、内部ルール及び／又は条件に基づき、関連するセンサ情報を分析することによって軌道を許容又は拒絶することができる。軌道が拒絶される場合（７６８：いいえ）、７７０において、ロボットデバイスは任意選択的に、選択されたモデルの１つ又は複数のパラメータを変更し、７５８〜７６４において第２軌道を生成することができる。モデルのパラメータは、例えば、モデル生成に含める異なる特徴（例えば、異なるセンサ情報）を選択することにより変更することができる。幾つかの実施形態では、モデルがＨＭＭモデルの場合、ロボットデバイスは、判断された成功又は失敗に基づいてモデルのパラメータを変更することができ、ここで、ロボットデバイスは、異なるパラメータを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。幾つかの実施形態では、モデルがＳＶＭモデルの場合、ロボットデバイスは、上述したように、特徴空間又は構成パラメータ（例えば、カーネルタイプ、費用パラメータ又は関数、重み）を変更することによりパラメータを変更することができる。
【００７８】
[0089]  軌道が許容される場合（７６８：はい）、７７２において、ロボットデバイスは操作要素を移動させて、生成された軌道を実行することができる。操作要素が計画された軌道を実行している間、７７４において、ロボットデバイスは、例えば、操作要素上の１つ又は複数のセンサ及びロボットデバイスの他の構成要素を介して、例えば、操作要素及び／又は環境についての情報等のセンサ情報を記録及び／又は記憶することができる。
【００７９】
[0090]  任意選択的に、７７４において、ロボットデバイスは、技能の実行が成功したか否か（例えば、物体との相互作用が、予め定義された成功基準を満たすか否か）を判断することができる。例えば、ロボットデバイスは環境をスキャンし、例えば、１つ又は複数の物体のロケーション及び／又は操作要素又はロボットデバイスの別の構成要素に相対するそれらの物体の位置又は向きを含む環境及びロボットデバイスの現在状態か否かを判断し、現在状態が予め定義された成功基準と合致するか否かを判断することができる。予め定義され及び／又は学習された成功基準は、ユーザにより提供することができ、又は幾つかの実施形態では、異なるロボットデバイス及び／又は計算デバイスにより提供することができる。予め定義され及び／又は学習された成功基準は、成功に関連付けられた環境及び／又はロボットデバイスの異なる特徴についての情報を示すことができる。幾つかの実施形態では、ユーザは、実行が成功したことを示す入力をロボットデバイスに提供することもできる。
【００８０】
[0091]  特定の例では、技能が特定のロケーションでの物体の把持及び物体のピックアップとして定義される場合、技能の成功は、物体に関連付けられた１つ又は複数のマーカが互い及び／又はロボットデバイスと特定の関係にあることを検出することとして、又は操作要素が物体の重量を支持しており、従って、物体をピックアップしたことを示す、十分な力又はトルクを操作要素のエンドエフェクタ又はジョイント（例えば、手首ジョイント）が受けていること（又は受けていたこと）を検出することとして、教え及び／又は定義することができる。実行が成功しなかった場合（７７６：いいえ）、７７０において、ロボットデバイスは任意選択的にモデルのパラメータを変更し得、及び／又は７５８〜７６４において新しい軌道を生成し得る。実行が成功した場合（７７６：はい）、成功した相互作用に関連付けられたデータ（例えば、実行が成功し、いかに成功したかを示すデータ）を記録することができ、方法７００は任意選択的に、最初に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態では、方法７００は終了することができる。
【００８１】
[0092]  図１２は、幾つかの実施形態による、ユーザにより実行される動作を含むロボット学習及び実行のシステムアーキテクチャを示すブロック図である。システム８００は、ロボット学習及び実行に向けて構成することができる。システム８００は、本明細書に記載される任意のロボットデバイス等の１つ又は複数のロボットデバイスを含むことができ、アクティブスキャン８２２、マーカ識別８２４、学習及びモデル生成８２６、軌道生成及び実行８２８、並びに成功モニタリング８２９として図１２に示されるモジュール、プロセス、及び／又は機能を実行することができる。アクティブスキャン８２２、マーカ識別８２４、学習及びモデル生成８２６、軌道生成及び実行８２８、並びに成功モニタリング８２９は、図８〜図１１に示される、方法７００を参照して説明したロボットデバイスにより実行される１つ又は複数のステップに対応することができる。例えば、アクティブスキャン８２２は方法７００のステップ７０２を含み、マーカ識別８２４は方法７００のステップ７０４〜７１０の１つ又は複数を含むことができ、学習及びモデル生成８２６は、ステップ７１２〜７３８の１つ又は複数を含むことができ、軌道生成及び実行８２８は、ステップ７１２、７１４、７１８、及び７５０〜７７４の１つ又は複数を含むことができ、成功モニタリング８２９はステップ７７４及び７７６の１つ又は複数を含むことができる。
【００８２】
[0093]  システム８００は、例えば、カメラ８７２、アーム８５０（グリッパ８５６及びセンサ８７０を含む）、表示デバイス８４２、並びにマイクロホン８４４を含め、１つ又は複数のデバイスを接続（１つ又は複数のデバイスと通信）することができる。システム８００は、表示デバイス８４２、マイクロホン８４４、及び／又は他のＩ／Ｏデバイス（図示せず）を介して、１つ又は複数のユーザ動作８８０に関連付けられた入力をユーザから受信することができる。ユーザ動作８８０は、例えば、８８２：ユーザがマーカによるマーカ許容又は環境の再スキャン要求、８８４：ユーザによるマーカ選択、８８６：モデル生成に関連する情報のユーザ選択、８８８：技能を実行するモデルのユーザ選択、８９０：技能を事項する軌道のユーザ許容、８９２：実行された技能の成功のユーザ確認、８９４：運動感覚学習を介した技能のユーザ教授を含むことができる。
【００８３】
[0094]  アクティブスキャン８２２の場合、システム８００は、カメラ８７２を使用して環境をスキャンし、環境内の１つ又は複数のマーカに関連付けられた情報を含め、環境についてのセンサ情報を記録する。マーカ識別８２４の場合、システム８００は、センサ情報を分析して、環境内の１つ又は複数のマーカを識別し、例えば、表示デバイス８４２を介して、８２２：マーカのユーザ許容又は環境の再スキャン要求を示す入力をユーザから受信することができる。学習及びモデル生成８２６の場合、システム８００は、カメラ８７２及び／又はアーム８５０上のセンサ８７０により収集されたセンサ情報を受信し、その情報を使用して、技能のモデルを生成することができる。学習及びモデル生成８２６の一環として、システム８００は、例えば、表示デバイス８４２及び／又はマイクロホン８４４を介して、８８４：ユーザが技能を教授する１組のマーカを選択したこと、８８６：ユーザがモデルの生成に使用する、記録されたセンサ情報の特定の特徴を選択したこと、及び／又は８９４：ユーザが技能を実演していることを示す入力をユーザから受信することができる。軌道生成及び実行８２８の場合、システム８００は、計画された軌道を生成し、アーム８５０の運動を制御して、軌道を実行することができる。軌道生成及び実行８２８の一環として、システム８００は、例えば、表示デバイス８４２を介して、８８８：ユーザが軌道生成のモデルを選択したこと及び／又は８９０：ユーザが生成された軌道を許容又は拒絶したことを示す入力をユーザから受信することができる。成功モニタリング８２９の場合、システム８００は、技能の実行中、センサ８７０により記録されたセンサ情報を分析することにより、技能の実行が成功したか否かを判断することができる。成功モニタリング８２９の一環として、システム８００は、例えば、表示デバイス８４２及び／又はマイクロホン８４４を介して、８９２：ユーザが実行の成功を確認したことを示す入力をユーザから受信することができる。
【００８４】
[0095]  特定のデバイス及び／又はシステム８００とそれらのデバイスとの間の接続は図１２に示されるが、本明細書に記載される任意の実施形態により、追加のデバイス（図示せず）がシステム８００と通信して、情報をシステム８００から受信及び／又は情報をシステム８００に送信することができることが理解される。
【００８５】
[0096]  本開示が以下の例のいずれか１つ及び最高で全てを含み得ることが理解されよう。
【００８６】
[0097]  実施例１：メモリと、プロセッサと、操作要素と、１組のセンサとを含み、プロセッサは、メモリ、操作要素、及び１組のセンサに動作可能に結合され、１組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカを受信することと、環境内の操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と１組の物理的物体との物理的な相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と１組の物理的物体との物理的な相互作用を実行するように操作要素の動きを定義するように構成されたモデルを生成することとを行うように構成される装置。
【００８７】
[0098]  実施例２：１組の物理的物体は人間を含む、実施例１の装置。
【００８８】
[0099]  実施例３：操作要素は、１組の物理的物体からの物理的物体のサブセットに係合するように構成されたエンドエフェクタを含む、実施例１〜２のいずれかの装置。
【００８９】
[0100]  実施例４：センサのサブセットは、センサの第１サブセットであり、プロセッサは、１組のセンサからのセンサの第２サブセットを介してセンサ情報を取得するように構成され、センサの第２サブセットは、センサの第１サブセットと異なる、実施例１〜３のいずれか１つの装置。
【００９０】
[0101]  実施例５：操作要素は、複数のジョイントを介して連結された複数の可動構成要素を含み、１組のセンサは、複数のジョイントからのジョイントに作用する力を測定するように構成されたセンサ、又は複数の可動構成要素からの可動構成要素と１組の物理的物体からの物理的物体との係合を検出するように構成されたセンサの少なくとも１つを含む、実施例１〜４のいずれか１つの装置。
【００９１】
[0102]  実施例６：１組のセンサは、装置の一部に相対するジョイント又は可動構成要素の位置を測定するように構成されたセンサを更に含む、実施例５の装置。
【００９２】
[0103]  実施例７：１組のセンサは、光センサ、温度センサ、オーディオ捕捉デバイス、及びカメラの少なくとも１つを更に含む、実施例５の装置。
【００９３】
[0104]  実施例８：操作要素は、（ｉ）複数のジョイントと、（ｉｉ）１組の物理的物体からの物理的物体を移動させるように構成されたエンドエフェクタとを含み、１組のセンサは、エンドエフェクタが物理的物体を移動させる場合、エンドエフェクタの少なくとも１つ又はエンドエフェクタに結合された複数のジョイントからのジョイントにかけられる力を測定するように構成されたセンサを含む、実施例１の装置。
【００９４】
[0105]  実施例９：センサ情報は、１組の特徴に関連付けられたセンサデータを含み、プロセッサは、１組の特徴から選択された特徴の第１サブセットを受信するように更に構成され、プロセッサは、第１組の特徴に含まれない１組の特徴からの特徴の第２サブセットに関連付けられたセンサデータではなく、特徴の第１サブセットに関連付けられたセンサデータに基づいてモデルを生成するように構成される、実施例１〜８のいずれか１つの装置。
【００９５】
[0106]  実施例１０：プロセッサは、プロセッサがユーザにより行われる選択に応答して、選択された特徴の第１サブセットを受信するように、１組の特徴から少なくとも１つの特徴を選択するようユーザに促すように更に構成される、実施例９の装置。
【００９６】
[0107]  実施例１１：複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である、実施例１〜１０のいずれか１つの装置。
【００９７】
[0108]  実施例１２：プロセッサは、モデル及びモデルに関連付けられた情報をメモリに保存するように更に構成され、モデルに関連付けられた情報は、（ｉ）１組のマーカ及び（ｉｉ）センサ情報を含む、実施例１〜１１のいずれか１つの装置。
【００９８】
[0109]  実施例１３：操作要素は複数のジョイントを含み、センサ情報は、操作要素の動きに関連付けられた複数の位置からの各位置について、複数のジョイントからの各ジョイントの現在状態を示す情報を含む、実施例１の装置。
【００９９】
[0110]  実施例１４：プロセッサは、提示後、プロセッサが、ユーザにより行われる選択に応答して、１組のマーカのうちの選択されたマーカを受信するように複数のマーカから少なくとも１つのマーカを選択するようにユーザに促すよう更に構成される、実施例１〜１３のいずれか１つの装置。
【０１００】
[0111]  実施例１５：プロセッサは、１組のセンサを使用して環境内の対象領域をスキャンすることにより環境の表現を取得するように構成される、実施例１〜１４のいずれか１つの装置。
【０１０１】
[0112]  実施例１６：１組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、提示後、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカを受信することと、環境における操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と１組の物理的物体との物理的相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と１組の物理的物体との物理的相互作用を実行するように操作要素の動きを定義するよう構成されたモデルを生成することとを含む方法。
【０１０２】
[0113]  実施例１７：センサ情報は、１組の特徴に関連付けられたセンサデータを含み、方法は、１組の特徴から選択された特徴の第１サブセットを受信することを更に含み、生成することは、第１組の特徴に含まれない１組の特徴からの特徴の第２サブセットに関連付けられたセンサデータではなく、特徴の第１サブセットに関連付けられたセンサデータに基づいてモデルを生成することを含む、実施例１６の方法。
【０１０３】
[0114]  実施例１８：ユーザにより行われる選択に応答して、選択された特徴の第１サブセットを受信するように、１組の特徴から少なくとも１つの特徴を選択するようユーザに促すことを更に含む、実施例１７の方法。
【０１０４】
[0115]  実施例１９：複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である、実施例１６〜１８の方法。
【０１０５】
[0116]  実施例２０：操作要素は複数のジョイントを含み、センサ情報は、操作要素の動きに関連付けられた複数の位置からの各位置について、複数のジョイントからの各ジョイントの現在状態を示す情報を含む、実施例１６〜１９のいずれか１つの方法。
【０１０６】
[0117]  実施例２１：提示後、ユーザによる選択に応答して１組のマーカの選択が受信されるように、複数のマーカからの少なくとも１つのマーカを選択するようにユーザに促すことを更に含む、実施例１６〜２０のいずれか１つの方法。
【０１０７】
[0118]  実施例２２：環境の表現を取得することは、１組のセンサを使用して環境内の対象領域をスキャンすることを含む、実施例１６〜２１のいずれか１つの方法。
【０１０８】
[0119]  実施例２３：プロセッサにより実行される命令を表すコードを記憶した非一時的プロセッサ可読媒体であって、コードは、プロセッサに、１組のセンサを介して環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの１組の物理的物体に関連付けられた複数のマーカから選択された１組のマーカを受信することに応答して、操作要素と１組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、モデルを使用して、物理的相互作用の実行に関連付けられた複数のジョイント及びエンドエフェクタの移動を定義する操作要素の軌道を生成することとを行わせるコードを含む、非一時的プロセッサ可読媒体。
【０１０９】
[0120]  実施例２４：プロセッサに物理的相互作用の実行に関連付けられたモデルを識別させるコードは、プロセッサにより、モデルを識別するようにユーザに促すコードを含む、実施例２３の非一時的プロセッサ可読媒体。
【０１１０】
[0121]  実施例２５：プロセッサに物理的相互作用の実行に関連付けられたモデルを識別させるコードは、プロセッサに１組のマーカの選択に基づいてモデルを識別させるコードを含む、実施例２２〜２４のいずれか１つの非一時的プロセッサ可読媒体。
【０１１１】
[0122]  実施例２６：プロセッサに、環境の表現において、操作要素の軌道をユーザに表示することと、表示後、ユーザから入力を受信することと、操作要素の軌道の許容を示す入力に応答して、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することとを行わせるコードを更に含む、実施例２３〜２５のいずれか１つの非一時的プロセッサ可読媒体。
【０１１２】
[0123]  実施例２７：軌道は第１軌道であり、非一時的プロセッサ可読媒体は、プロセッサに、操作要素の軌道の許容を示さない入力に応答して、モデルに関連付けられた１組のパラメータを変更して、変更モデルを生成することと、変更モデルを使用して操作要素の第２軌道を生成することとを行わせるコードを更に含む、実施例２３〜２６のいずれか１つの非一時的プロセッサ可読媒体。
【０１１３】
[0124]  実施例２８：軌道は第１軌道であり、モデルは第１モデルであり、非一時的プロセッサ可読媒体は、プロセッサに、操作要素の軌道の許容を示さない入力に応答して、第１モデルの生成に使用される１組の特徴と異なる１組の特徴に関連付けられたセンサデータに基づいて第２モデルを生成することと、第２モデルを使用して、操作要素の第２軌道を生成することとを行わせるコードを更に含む、実施例２３〜２６のいずれか１つの非一時的プロセッサ可読媒体。
【０１１４】
[0125]  実施例２９：プロセッサに、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することと、物理的相互作用の実行に関連付けられたセンサ情報を取得することと、センサ情報に基づいて、物理的相互作用の実行が、予め定義され及び／又は学習された成功基準を満たすか否かを判断することとを行わせるコードを更に含む、実施例２３〜２８のいずれか１つの非一時的プロセッサ可読媒体。
【０１１５】
[0126]  実施例３０：プロセッサに、物理的相互作用の実行が予め定義され及び／又は学習された成功基準を満たすとの判断に応答して、物理的相互作用が成功したことを示す信号を生成することと、物理的相互作用の実行が予め定義され及び／又は学習された成功基準を満たさないとの判断に応答して、センサ情報に基づいてモデルを変更して、変更モデルを生成することと、変更モデルを使用して操作要素の第２軌道を生成することとを行わせるコードを更に含む実施例２９の非一時的プロセッサ可読媒体。
【０１１６】
[0127]  実施例３１：モデルには（ｉ）記憶された１組のマーカ、（ｉｉ）記憶された１組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び（ｉｉｉ）記憶された軌道に沿ったポイントにおける複数のジョイントの構成を示すセンサ情報が関連付けられ、プロセッサに、操作要素の軌道を生成させるコードは、プロセッサに、１組のマーカと記憶された１組のマーカとの間の変換関数を計算することと、各ポイントについて、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントについて、記憶された軌道に沿ったポイントにおける複数のジョイントの構成に基づいて、複数のジョイントの計画構成を決定することと、各ポイントについて、そのポイントの複数のジョイントの計画構成に基づいて、そのポイントと連続ポイントとの間の軌道の部分を特定することとを行わせるコードを含む、実施例２３〜３０のいずれか１つの非一時的プロセッサ可読媒体。
【０１１７】
[0128]  実施例３２：モデルには（ｉ）記憶された１組のマーカ及び（ｉｉ）記憶された１組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報が関連付けられ、プロセッサに、操作要素の軌道を生成させるコードは、プロセッサに、１組のマーカと選択された１組のマーカとの間の変換関数を計算することと、各ポイントで、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントで、複数のジョイントの計画された構成を決定することと、各ポイントで、そのポイントの複数のジョイントの計画された構成に基づいて、そのポイントと連続ポイントとの間の軌道に一部を決定することとを行わせるコードを含む、実施例２３〜３０のいずれか１つの非一時的プロセッサ可読媒体。
【０１１８】
[0129]  実施例３３：プロセッサに、操作要素の第１ロケーションと、１組の物理的物体からの物理的物体のロケーションとの間の距離に基づいて、操作要素のロケーションを変更すべきか否かを判断することと、操作要素のロケーションを変更するとの判断に応答して、操作要素を第１ロケーションから、物理的物体のロケーションのより近傍の第２ロケーションに移動させることとを行わせるコードを更に含み、プロセッサに操作要素の軌道を生成させるコードは、移動後、操作要素の第２ロケーションに相対する物理的物体のロケーションに基づいて軌道を生成させるコードを含む、実施例２３〜３２のいずれか１つの非一時的プロセッサ可読媒体。
【０１１９】
[0130]  様々な本発明の実施形態を本明細書において説明し示したが、当業者は、本明細書に記載される機能を実行し、及び／又は本明細書に記載される結果及び／又は利点の１つ又は複数を取得する様々な他の手段及び／又は構造を容易に考案し、そのような変形及び／又は変更はそれぞれ、本明細書に記載される本発明の実施形態の範囲内にあると見なされる。より一般的には、本明細書に記載される全てのパラメータ、寸法、材料、及び構成が、例示的なであることが意図され、実際のパラメータ、寸法、材料、及び／又は構成が、特定の用途又は本発明の教示が使用される用途に依存することを当業者は容易に理解するであろう。当業者は、単に日常の実験を使用して、本明細書に記載される特定の本発明の実施形態への多くの均等物を認識し、又は突き止めることが可能であろう。従って、上記実施形態が単なる例として提示され、添付の特許請求の範囲及びその均等物内で、特に記載され特許請求の範囲に記載される以外の方法で本発明の実施形態を実施し得ることを理解されたい。本開示の本発明の実施形態は、本明細書に記載される個々の特徴、システム、物品、材料、キット、及び／又は方法に関する。加えて、２つ以上のそのような特徴、システム、物品、材料、キット、及び／又は方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、及び／又は方法が相互に矛盾しない場合、本開示の本発明の範囲内に含まれる。
【０１２０】
[0131]  また、様々な本発明の概念は１つ又は複数の方法として実施し得、その一例が提供された。方法の一部として実行される動作は、任意の適した方法で並べ得る。従って、例示的な実施形態では順次動作として示される場合であっても、動作が示されるものとは異なる順序で実行され、幾つかの動作を同時に実行することを含み得る実施形態を構築し得る。
【０１２１】
[0132]  本明細書に記載される幾つかの実施形態及び／又は方法は、異なるソフトウェア（ハードウェアで実行される）、ハードウェア、又はそれらの組合せにより実行することができる。ハードウェアモジュールは、例えば、汎用プロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び／又は特定用途向け集積回路（ＡＳＩＣ）を含み得る。ソフトウェアモジュール（ハードウェアで実行される）は、Ｃ、Ｃ＋＋、Java（商標）、Ruby、Visual Basic（商標）、及び／又は他のオブジェクト指向、手続き型、又は他のプログラミング言語及び開発ツールを含め、様々なソフトウェア言語（例えば、コンピュータコード）で表現することができる。コンピュータコードの例には、限定ではなく、マイクロコード又はマイクロ命令、コンパイラにより生成される等の機械命令、ウェブサービスの生成に使用されるコード、及びインタプリタを使用してコンピュータにより実行されるより高水準の命令を含むファイルがある。例えば、実施形態は、命令型プログラミング言語（例えば、Ｃ、Fortran等）、関数型プログラミング言語（Haskell、Erlang等）、論理型プログラミング言語（例えば、Prolog）、オブジェクト指向プログラミング言語（例えば、Java、Ｃ＋＋等）、又は他の適したプログラミング言語及び／又は開発ツールを使用して実施し得る。コンピュータコードの更なる例には、限定ではなく、制御信号、暗号化コード、及び圧縮コードがある。
【０１２２】
[0133]  第１、第２、第３等の用語が、本明細書では、様々な要素の説明に使用され得るが、これらの要素がこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、ある要素を別の要素から区別するためだけに使用されている。従って、後述する第１要素は、本開示の教示から逸脱せずに第２要素と呼ぶことができる。
【０１２３】
[0134]  本明細書に使用される用語は、特定の実施形態を説明することだけを目的としており、限定を意図しない。本明細書で使用される場合、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈により明らかに別段のことが示される場合を除き、複数形も同様に包含することを意図する。「含む（comprises）」及び／又は「含んでいる（comprising）」又は「含む（includes）」及び／又は「含んでいる（including）」という用語は、本明細書で使用される場合、記載された特徴、領域、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ又は複数の他の特徴、領域、整数、ステップ、動作、要素、構成要素、及び／又はそのグループの存在又は追加を除外しないことが更に理解されよう。
【図１】
2020508888.tif 000003
【図２】
2020508888.tif 000004
【図３】
2020508888.tif 000005
【図４】
2020508888.tif 000006
【図５】
2020508888.tif 000007
【図６Ａ】
2020508888.tif 000008
【図６Ｂ】
2020508888.tif 000009
【図７Ａ】
2020508888.tif 000010
【図７Ｂ】
2020508888.tif 000011
【図８】
2020508888.tif 000012
【図９】
2020508888.tif 000013
【図１０】
2020508888.tif 000014
【図１１】
2020508888.tif 000015
【図１２】
2020508888.tif 000016
【国際調査報告】
2020508888.tif 000017
2020508888.tif 000018
2020508888.tif 000019