(57)【要約】  スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。ロボット装置は、メモリー、プロセッサー、センサー、及び１つ又は複数の可動コンポーネント（例えば、操作要素及び／又は搬送要素）を含み得る。プロセッサーは、メモリー、可動要素、及びセンサーに動作可能に結合され、環境（環境内に位置する１つ又は複数の物体を含む）の情報を取得するように構成され得る。いくつかの実施形態では、プロセッサーは、実演、探索、ユーザー入力などによってスキルを学習するように構成され得る。いくつかの実施形態では、プロセッサーは、スキルを実行し、及び／又は異なる挙動及び／又はアクション間でアービトレーションを行うように構成され得る。いくつかの実施形態では、プロセッサーは、環境的制約を学習するように構成され得る。いくつかの実施形態では、プロセッサーは、スキルの汎用モデルを使用して学習するように構成され得る。
2021534988.tif 000002
【特許請求の範囲】
【請求項１】
操作要素と、
表面に沿って移動するように構成された搬送要素と、
センサーのセットと、
メモリーと、
前記メモリー、前記操作要素、前記搬送要素、及び前記センサーのセットに動作可能に結合されたプロセッサーであって、
前記センサーのセットからの第１のセンサーのサブセットを用いて、環境の情報を取得することと、
前記環境の前記情報に基づいて、スキルのモデルを選択することと、
前記モデルを使用して前記スキルの少なくとも一部を実行する計画を、前記モデルを使用して生成することであって、前記計画が、前記操作要素又は前記搬送要素の少なくとも一方の１つ又は複数の動作を含む、生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記センサーのセットからの第２のセンサーのサブセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも１つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも１つの前記情報に基づいて、前記環境のマップを更新することと、
を行うように構成されたプロセッサーと、
を有する、装置。
【請求項２】
前記スキルの前記一部が、第１の部分であり、前記プロセッサーが、
前記スキルの第２の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第２の部分が特化を必要とするとの決定に応答して、前記ユーザーからの入力を要求することと、
前記ユーザーからの前記入力の受け取りに応答して、前記スキルの前記第２の部分を実行する計画を生成することと、
前記スキルの前記第２の部分を実行する前記計画に基づいて、前記操作要素及び前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項１に記載の装置。
【請求項３】
前記スキルの前記一部が、第１の部分であり、前記プロセッサーが、
前記スキルの第２の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第２の部分が特化を必要とするとの決定に応答して、前記ユーザーに実演を要求することと、
前記実演に関連する複数の位置からの各位置に関して、第３のセンサーのサブセットによって収集され、及び前記環境、前記操作要素、又は前記搬送要素の少なくとも１つに関連する情報を取得することと、
前記モデル及び前記第３のセンサーのサブセットによって収集された前記情報を用いて、前記環境で前記スキルを実行するための特化モデルを生成することと、
をさらに行うように構成される、請求項１に記載の装置。
【請求項４】
前記プロセッサーが、前記環境、前記操作要素、又は前記搬送要素の前記少なくとも１つの前記情報に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方の前記動作が、１つ又は複数の成功基準を満たせなかったことを決定することと、
前記動作が前記１つ又は複数の成功基準を満たせなかったとの決定に応答して、前記スキルの少なくとも一部を実行するために、前記計画を修正することと、
前記修正計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項１に記載の装置。
【請求項５】
前記環境の前記マップが、少なくとも意味層及びコンテキスト層を含み、前記プロセッサーが、
前記環境内の１つ又は複数の物体に関連する情報を前記意味層に保存することと、
前記１つ又は複数の物体に関連する前記情報に基づいて、前記１つ又は複数の物体の近くで実行する１つ又は複数の挙動を決定することと、
前記１つ又は複数の挙動を前記コンテキスト層に保存することと、
によって、前記環境の前記マップを更新するように構成される、請求項１に記載の装置。
【請求項６】
前記プロセッサーが、
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記スキルの前記少なくとも一部の実行を始める確認を示す入力を前記ユーザーから受け取ることと、
をさらに行うように構成され、
前記プロセッサーが、前記入力の受け取りに応答して、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項１に記載の装置。
【請求項７】
前記プロセッサーが、
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記計画に対する変更を示す入力を前記ユーザーから受け取ることと、
前記入力に基づいて、前記計画を修正することと、
をさらに行うように構成され、
前記プロセッサーが、前記計画の修正後に、前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項１に記載の装置。
【請求項８】
前記操作要素が、複数の関節によって連結された複数の可動コンポーネントを含み、
前記センサーのセットが、
前記複数の関節からの関節に作用するトルクを測定するように構成されたセンサー、又は
前記複数の可動コンポーネントからの可動コンポーネントと、前記物理的物体のセットからの物理的物体との係合を検出するように構成されたセンサー、
の少なくとも一方を含む、請求項１に記載の装置。
【請求項９】
前記操作要素が、前記環境内の１つ又は複数の物体と係合するように構成されたエンドエフェクターを含む、請求項１に記載の装置。
【請求項１０】
操作要素と、
表面に沿って移動するように構成された搬送要素と、
センサーのセットと、
メモリーと、
前記メモリー、前記操作要素、前記搬送要素、及び前記センサーのセットに動作可能に結合されたプロセッサーであって、
前記センサーのセットを用いて、環境の情報を取得することと、
前記環境の前記情報の受け取りに応答して、計算デバイスが、前記環境の前記情報をユーザーに提示するように、前記環境の前記情報を前記計算デバイスに送ることと、
前記ユーザーからの入力を前記計算デバイスから受け取ることと、
前記環境の前記情報及び前記入力に基づいて、スキルのモデルを選択することと、
前記環境の前記情報及び前記入力に基づいて、前記スキルの少なくとも一部を実行する計画を前記モデルを用いて生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
を行うように構成されたプロセッサーと、
を有する、装置。
【請求項１１】
前記入力が、前記環境の追加情報を取得する命令を含み、前記スキルが、第１の場所から第２の場所への移動に関与し、前記プロセッサーが、
前記センサーのセットを用いて、前記環境内の少なくとも１つの物体に関連する情報を含む、前記環境の前記追加情報を取得することと、
前記環境の前記追加情報を前記計算デバイスに送ることと、
をさらに行うように構成され、
前記プロセッサーが、前記第１の場所から前記第２の場所へと移動するように前記搬送要素を動作させることによって、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項１０に記載の装置。
【請求項１２】
前記入力が、前記環境内の物体の特性を示し、前記スキルが、前記物体とのインタラクションに関与し、前記プロセッサーが、少なくとも部分的に前記入力に基づいて、前記環境内の前記物体を識別するようにさらに構成される、請求項１０に記載の装置。
【請求項１３】
前記入力が、社会的挙動を実行する命令を含み、前記スキルが、少なくとも１人の人間とのインタラクションに関与し、前記プロセッサーが、
前記環境内の前記少なくとも１人の人間を識別することと、
前記少なくとも１人の人間の近くで前記社会的挙動を実行することと、
をさらに行うように構成される、請求項１０に記載の装置。
【請求項１４】
前記操作要素が、前記環境内で１つ又は複数の物体をつかむように構成されたエンドエフェクターを含み、前記スキルが、第１の場所から第２の場所へと物体を移動させることに関与し、前記プロセッサーが、前記物体をつかむように前記操作要素を動かすこと、及び前記第１の場所から前記第２の場所へと移動するように前記搬送要素を動かすことによって、前記操作要素及び前記搬送要素の前記少なくとも一方を動かすように構成される、請求項１０に記載の装置。
【請求項１５】
前記入力が、前記モデルを修正する命令を含み、前記プロセッサーが、
前記入力に基づいて、前記モデルを修正するようにさらに構成され、
前記プロセッサーが、前記修正後に前記モデルを使用して、前記スキルの前記少なくとも一部を実行する前記計画を生成するように構成される、請求項１０に記載の装置。
【請求項１６】
前記入力が、前記モデルを含み、前記モデルが、前記環境の前記情報に基づいて、前記計算デバイスにおいて、前記ユーザーによって構成される、請求項１０に記載の装置。
【請求項１７】
ロボットデバイスの第１のセンサーのセットを用いて、環境の情報を取得することと、
前記環境の前記情報に基づいて、前記ロボットデバイスのメモリーに保存されたスキルのモデルを選択することと、
前記モデルを使用して前記スキルの少なくとも一部を実行する計画を、前記モデルを使用して生成することであって、前記計画が、前記ロボットデバイスの操作要素又は搬送要素の少なくとも一方の１つ又は複数の動作を含む、生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記ロボットデバイスの第２のセンサーのセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも１つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも１つの前記情報に基づいて、前記メモリーに保存された前記環境のマップを更新することと、
を有する、方法。
【請求項１８】
前記環境の前記マップに対する前記更新を示す情報を計算デバイスに送ることと、
前記ロボットデバイス以外のロボットデバイスのセットから前記計算デバイスによって受け取られた、前記環境の前記マップに対する更新を示す情報を前記計算デバイスから受け取ることと、
をさらに有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]  本出願は、２０１８年８月２８日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国仮特許出願第６２／７２３，６９４号に対する優先権を主張するものである。
【０００２】
[0002]  本出願は、米国仮特許出願第６２／７２３，６９４号に対する優先権を主張し、且つ２０１７年２月２５日に出願された、「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」という名称の米国仮特許出願第６２／４６３，６３０号に対する優先権を主張する、２０１８年２月２３日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の国際ＰＣＴ出願第ＰＣＴ／ＵＳ２０１８／０１９５２０号の一部継続出願である、２０１９年６月２８日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国特許出願第１６／４５６，９１９号に対する優先権も主張する。
【０００３】
[0003]  本出願は、国際ＰＣＴ出願第ＰＣＴ／ＵＳ２０１８／０１９５２０号の一部継続出願でもある。
【０００４】
[0004]  上記で言及した各出願の開示内容は、その全体が本明細書に援用される。
【０００５】
政府支援
[0005]  本発明は、中小企業技術革新制度のフェーズＩにより、米国国立科学基金により与えられた、認可番号１６２１６５１及び１７３８３７５の下で、米国政府支援によって行われたものである。米国政府は、本発明に一定の権利を有する。
【０００６】
技術分野
[0006]  本開示は、一般に、スキルのロボット学習及び実行のためのシステム、装置、及び方法に関する。より詳細には、本開示は、非構造化環境でスキルの学習及び実行が可能なロボット装置に関する。
【背景技術】
【０００７】
背景
[0007]  ロボットは、様々なタスクの実施及び自動化のために使用され得る。ロボットは、オフィスの建物又は病院などの環境中を移動することによって、タスクを行うことができる。ロボットは、車輪、トラック、又はロボットが環境内を自律的に動き回ることを可能にする他の可動コンポーネントを装備してもよい。しかし、アーム又は他のマニピュレーターを持たないロボットは、環境内の物体を操作することができない。したがって、これらのロボットは、タスクを行う能力が限定されており、例えば、このようなロボットは、拾い上げる地点又は送り届ける地点に物体を操作する人間がいなければ、物体を拾い上げ、及び送り届けることができない場合がある。
【０００８】
[0008]  アーム又は他のマニピュレーターを含むロボットは、人間がいなくても、物体を拾い上げ、及び物体をある場所へと送り届けることができ得る。例えば、グリッパーなどのエンドエフェクターを備えたアームを有するロボットは、グリッパーを用いて、複数の異なる場所から１つ又は複数の物体を拾い上げ、これらの物体を新しい場所へと送り届けることが、全て人間の手助けなしに可能である。これらのロボットは、特定のタスクを自動化し、それによって、人間のオペレーターが他のタスクに集中することを可能にするために使用され得る。しかし、ほとんどの商業用ロボットは、マニピュレーターの動作をプログラミングするという課題及び複雑さが原因で、マニピュレーターを含まない。
【０００９】
[0009]  また、ほとんどの商業用ロボットは、構造化環境（例えば、工場、倉庫など）で動作するように設計される。非構造化環境（例えば、病院及び家などの人間に関与する環境）は、ロボットをプログラミングするためのさらなる課題をもたらし得る。非構造化環境では、ロボットは、その周辺環境の完全な知識に依存することはできないが、周辺環境の変化を認識し、それらの変化に基づいて適応することができなければならない。したがって、非構造化環境では、ロボットは、自律判断を行い、及びタスクを行うことができるためには、環境に関する情報を継続的に獲得しなければならない。しばしば、ロボットの動作（例えば、環境内でのアーム又はエンドエフェクターの動作）は、環境内の物体及び他の障害物によっても制約され、ロボットの知覚及び操作の課題がさらに増す。非構造化環境の不確かで、動的な性質を考えると、ロボットは、一般的に、タスクを行うようにあらかじめプログラムされることが不可能である。
【００１０】
[0010]  したがって、あらかじめプログラムされた操作スキルに依存することなく、動的な、非構造化の環境を認識し、及びそれらの環境に適応することができ、並びに、それらの環境内でタスクを行うことができるロボットシステムに対するニーズがある。
【発明の概要】
【課題を解決するための手段】
【００１１】
概要
[0011]  スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、装置は、メモリー、プロセッサー、操作要素、及びセンサーのセットを含む。プロセッサーは、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成されてもよい。
【００１２】
[0012]  いくつかの実施形態では、操作要素は、複数の関節及びエンドエフェクターを含んでもよい。いくつかの実施形態では、操作要素は、基部又は搬送要素を含んでもよい。
【００１３】
[0013]  物理的物体のセットは、静止した物体、又は移動する物体であってもよい。いくつかの実施形態では、物理的物体のセットは、備品、収納容器、構造物（例えば、ドア、ハンドル、家具、壁）などを含み得る。いくつかの実施形態では、物理的物体のセットは、人間（例えば、患者、医師、看護師など）を含み得る。
【００１４】
[0014]  いくつかの実施形態では、複数のマーカーは、基準マーカーであり、環境の表現が、環境の視覚的表現である。
【００１５】
[0015]  いくつかの実施形態では、複数のマーカーからの２つ以上のマーカーが、物理的物体のセットからの１つの物理的物体に関連付けられてもよい。代替的又は追加的に、いくつかの実施形態では、複数のマーカーからの１つのマーカーが、物理的物体のセットからの２つ以上の物理的物体に関連付けられてもよい。
【００１６】
[0016]  いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を含む。
【００１７】
[0017]  いくつかの実施形態では、この方法は、特徴のセットからの第１の特徴のサブセットの選択を受け取ることをさらに含み、ここでは、第１の特徴のサブセットに関連するセンサーデータに基づき、且つ第１の特徴のセットに含まれない、特徴のセットからの第２の特徴のサブセットに関連するセンサーデータには基づかずに、モデルが生成される。
【００１８】
[0018]  いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、を含む。
【００１９】
[0019]  いくつかの実施形態では、上記方法は、環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、操作要素（例えば、複数の関節、エンドエフェクター、搬送要素）の動作を実施することと、をさらに含む。
【００２０】
[0020]  いくつかの実施形態では、モデルが、（ｉ）保存されたマーカーのセットと、（ｉｉ）保存されたマーカーのセットに関連する、操作要素（例えば、複数の関節、エンドエフェクター、搬送要素）の保存された軌道に沿った点における操作要素の位置、向き、又は構成の少なくとも１つを示す感覚情報と、に関連付けられる。操作要素の軌道を生成する方法は、例えば、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、操作要素（例えば、複数の関節、エンドエフェクター、搬送要素）の１つ又は複数のコンポーネントの計画された構成を、保存された軌道に沿った上記コンポーネントの構成に基づいて決定することと、点ごとに、その点に関する上記コンポーネントの計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、を含んでもよい。
【００２１】
[0021]  いくつかの実施形態では、ロボットデバイスは、搬送要素に関連するスキルを学習し、及び実行するように構成される。搬送要素は、例えば、車輪のセット、トラックのセット、クローラーのセット、又は第１の部屋から第２の部屋へ、若しくは建物の複数の階間などの環境内でのロボットデバイスの移動を可能にする他の適切なデバイスでもよい。ロボットデバイスが、例えば、戸口を通って、又は人間などの物体によって、第１の場所から第２の場所へと移動したときに、ロボットデバイスは、搬送要素、ロボットデバイスの周りの環境、及び／又はロボットデバイスの別のコンポーネントに関連する感覚情報を取得することによって、搬送要素に関連するスキルを学習するように構成されてもよい。感覚情報は、ロボットデバイスの動作中の特定の時点で（例えば、キーフレームで）記録されてもよい。ロボットデバイスは、感覚情報に基づいて、第１の場所から第２の場所へのロボットデバイスの移動を実行するために、搬送要素（又はロボットデバイスの他のコンポーネント（例えば、操作要素））の動作を規定するように構成されたモデルを生成するように構成されてもよい。
【００２２】
[0022]  いくつかの実施形態では、ロボットデバイスは、スキルの汎用バージョンを用いて特化スキルを学習するように構成される。ロボットデバイスは、ある特定の環境で、汎用スキルの実行を開始し、その特定の環境でスキルの特化を必要とする実行の部分にロボットデバイスが到達すると、実行を休止することができる。次に、ロボットデバイスは、スキルのその部分の実演をユーザーに促すことができる。ロボットデバイスは、スキルの実行を続け、及び／又はスキルが完了するまで、スキルの特定の部分の実演をユーザーに促すことができる。次に、ロボットデバイスは、スキルを実行するための特化モデルを生成するために、スキルの特定の部分の実演に基づいて、汎用スキルを適応させる。
【００２３】
[0023]  いくつかの実施形態では、ロボットデバイスは、環境的制約を学習するように構成される。ロボットデバイスは、それの周辺環境、又はその環境内の物体に関する情報を記録し、環境に関する一般知識を取得することができる。ロボットデバイスは、環境内で実行される異なる複数のスキルに関係するモデルのセットにこの一般知識を適用することができる。
【００２４】
[0024]  いくつかの実施形態では、ロボットデバイスは、人間の社会環境などの動的環境内で継続的及び自律的に行動するために、挙動アービトレーションを用いることが可能である。ロボットデバイスは、様々なリソース又はコンポーネント（例えば、操作要素、搬送要素、頭部、カメラなど）を有してもよく、これらのリソースをいつ及びどのように使用するかを決定するために、アービトレーションアルゴリズムを適用することができる。アービトレーションアルゴリズムは、ロボットデバイスで捕捉されている情報に基づいて、異なる複数のアクション又は挙動が優先順位を付けられることを可能にするルールのセットを規定することができる。ロボットデバイスは、ロボットデバイスで新しい情報が捕捉されるにつれて、継続的に、異なる複数のアクション及び挙動の実行の中から決める（したがって、異なるリソース又はコンポーネントを使用する）ように構成されてもよい。挙動アービトレーションの一部として、ロボットデバイスは、あるアクションの中断を処理し、新しいアクションに切り替えるように構成されてもよい。ロボットデバイス自体、及びその周辺環境を継続的にモニタリングし、並びに継続的なアービトレーションを行うことによって、ロボットデバイスは、経時的に、社会的に適切な挙動に絶えず従事することができる。
【００２５】
[0025]  いくつかの実施形態では、ロボットデバイスは、環境に関連する社会的コンテキスト情報を受け取り、その情報を環境のナビゲーションマップと組み合わせる（例えば、ナビゲーションマップ上に社会的コンテキスト情報を重ねる）ように構成される。ロボットデバイスは、ユーザー（例えば、人間のオペレーター）によって社会的コンテキスト情報が与えられてもよく、又はロボットデバイスは、環境内のインタラクションを通して、社会的コンテキスト情報を捕捉してもよい。ロボットデバイスが、経時的に環境内で人間とのインタラクションに従事するにつれて、ロボットデバイスは、社会的コンテキスト情報を改良することができる。いくつかの実施形態では、ロボットデバイスは、環境内の特定の場所に関連する社会的コンテキスト情報に基づいて、あるタイプの挙動又はアクションをこれらの場所に関連付けるように構成されてもよい。
【００２６】
[0026]  いくつかの実施形態では、ロボットデバイスは、人間のオペレーターと、現場で、又は人間のオペレーターによって操作される遠隔デバイスへのネットワーク接続によって、インタラクトするように構成される。人間のオペレーターは、本明細書では、「ロボットの監督者」と呼ばれ、様々なソフトウェアベースのツールを用いて、周辺環境に関する情報をロボットデバイスに知らせ、及び／又は特定のアクションを行うようにロボットデバイスに指示することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声、ライトなどが含まれ得る。ロボットの監督者は、アクションの学習若しくは実行中に情報を収集し、及び／又はロボットデバイスが、その情報を用いて、今後、異なる複数のアクションの中でアービトレーションを行う能力、若しくはある特定のアクションを実行する能力を向上させることができるように、特定の挙動を良い挙動若しくは悪い挙動とタグ付けするようにロボットデバイスを制御することができる。
【００２７】
[0027]  以下の図面及び詳細な説明を考察すれば、他のシステム、プロセス、及び特徴が、当業者には明らかとなるだろう。全てのそのような追加のシステム、プロセス、及び特徴が、本明細書の範囲内に含まれること、本発明の範囲内であること、及び添付の特許請求の範囲によって保護されることが意図される。
【００２８】
図面の簡単な説明
[0028]  図面が主に例示を目的としたものであり、本明細書に記載される発明特定事項の範囲を限定することは意図されないことを当業者は理解するだろう。図面は、必ずしも一定の縮尺ではなく、場合によっては、本明細書に開示される発明特定事項の様々な局面は、異なる複数の特徴の理解を容易にするために、図面において、誇張して、すなわち拡大して示される場合がある。図面では、同様の参照符号は、一般に、同様の特徴（例えば、機能的に類似した、及び／又は構造的に類似した要素）を指す。
【図面の簡単な説明】
【００２９】
【図１】[0029]いくつかの実施形態による、ロボットデバイスを含むシステムの構成を示すブロック図である。
【図２】[0030]いくつかの実施形態による、ロボットデバイスの構成を示すブロック図である。
【図３】[0031]いくつかの実施形態による、ロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
【図４】[0032]いくつかの実施形態による、ロボットデバイスの操作要素の模式図である。
【図５】[0033]いくつかの実施形態による、ロボットデバイスの模式図である。
【図６Ａ】[0034]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【図６Ｂ】[0034]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【図７Ａ】[0035]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【図７Ｂ】[0035]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【図８】[0036]いくつかの実施形態による、ロボットデバイスによって行われる、環境のセンシング又はスキャニングを行う方法を示すフロー図である。
【図９】[0037]いくつかの実施形態による、ロボットデバイスによって行われるスキルの学習及び実行の方法を示すフロー図である。
【図１０】[0038]いくつかの実施形態による、ロボットデバイスによって行われるスキルを学習する方法を示すフロー図である。
【図１１】[0039]いくつかの実施形態による、ロボットデバイスによって行われるスキルを実行する方法を示すフロー図である。
【図１２】[0040]いくつかの実施形態による、ユーザーアクションを含む、ロボット学習及び実行のためのシステムアーキテクチャを示すブロック図である。
【図１３】[0041]いくつかの実施形態による、環境内のロボットデバイスの動作を示すフロー図である。
【図１４】[0042]いくつかの実施形態による、ロボットの監督者などのユーザーからの入力を要求し、及びそれを受け取る方法を示すフロー図である。
【図１５】[0043]いくつかの実施形態による、ロボットデバイスによって行われる、スキル及び環境的制約を学習する方法を示すフロー図である。
【図１６】[0044]いくつかの実施形態による、ロボットデバイスによって行われる、汎用スキルモデルからスキルを学習する方法を示すフロー図である。
【図１７】[0045]いくつかの実施形態による、ロボットデバイスによって行われる、環境的制約を学習する方法を示すフロー図である。
【図１８】[0046]いくつかの実施形態による、挙動アービトレーションを行うロボットデバイスのコンポーネントの一例を示すブロック図である。
【図１９】[0047]いくつかの実施形態による、ロボットデバイスによって生成された、環境のマップの層の模式図である。
【図２０】[0048]いくつかの実施形態による、ロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
【図２１】[0049]いくつかの実施形態による、ロボットデバイスによって保持されるマップに対してロボットデバイスが提供し、及びそのマップから受け取られる情報のフローを示す。
【図２２】[0050]いくつかの実施形態による、ロボットデバイスの異なる複数の学習モードを示すフロー図を示す。
【図２３】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【図２４】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【図２５】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【発明を実施するための形態】
【００３０】
詳細な説明
[0052]  本明細書では、スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、人間による実演やインタラクションによってスキルを学習し、学習したスキルを非構造化環境で実行することができるロボット装置に関する。
【００３１】
概要
[0053]  いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、Learning from Demonstration（「ＬｆＤ」）プロセスによってスキル（例えば、操作スキル）を学習することができるロボットに関し、このＬｆＤプロセスでは、人間が、運動感覚教示により（例えば、物理的に、及び／又は遠隔制御により、人間が、アクションを行うようにロボットを指導する）、及び／又は人間自身がアクションを行うことにより、システムにアクションを実演する。このようなシステム、装置、及び方法は、ロボットに操作スキルをあらかじめプログラムする必要がなく、ロボットは、適応性があり、観察によってスキルを学習することができるように設計される。例えば、ロボットは、機械学習技術を用いて、操作スキルを獲得し、実行することができる。スキルの学習後に、ロボットは、異なる複数の環境でスキルを実行することができる。ロボットは、視覚データ（例えば、感知した視覚情報）に基づいて、スキルの学習及び／又は実行を行うことができる。代替的又は追加的に、ロボットは、触覚データ（例えば、トルク、力、及び他の非視覚情報）を用いて、スキルの学習及び／又は実行を行うことができる。ロボット学習は、ロボットの配備前に工場で、又はロボットの配備後に現場で（例えば、病院で）行うことができる。いくつかの実施形態では、ロボットは、ロボット工学及び／又はプログラミングの訓練を受けていないユーザーによって、スキルを教えられ、及び／又はある環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用する学習アルゴリズムを有することができ、実演プロセスを行うようにユーザーを指導することができるツールを含むことができる。
【００３２】
[0054]  いくつかの実施形態では、ロボットは、人間とインタラクトし、人間と協力してタスクを行うように設計することができる。いくつかの実施形態では、ロボットは、一般的な社会的挙動を利用して、人間のそばで、社会的に予測可能且つ許容可能なやり方で行動することができる。可動ロボットは、ある環境内で、その環境内の人間とインタラクトしながらナビゲートするように設計することもできる。例えば、ロボットは、人間の周りをナビゲートするために特定の言葉を声に出し、人間が通れるように脇に寄り、及びナビゲーション中に視線を利用して意図的にコミュニケーションするようにプログラムすることができる。いくつかの実施形態では、ロボットは、その周囲の環境内で、ロボットが、人間の感知及び追跡を行い、その情報を用いて視線及び他の社会的挙動を生じさせることを可能にするセンサーを備えてもよい。
【００３３】
[0055]  いくつかの実施形態では、ロボットは、目標を達成するため、又はＬｆＤプロセス中のアクションを行うためのオプションを提案するように設計することができる。例えば、ロボットは、目標（例えば、物体を拾い上げること）を達成するための数個の異なるオプションを提案することができ、その目標を達成するためには、これらのオプションの内のどれが、効果的及び／又は効率的である可能性が最も高いかを示すことができる。いくつかの実施形態では、ロボットは、ユーザーによる入力に基づいて（例えば、ユーザーが、スキルモデルに含める関連の特徴を示す）、スキルを適応させることができる。
【００３４】
[0056]  いくつかの実施形態では、ロボットデバイスは、ロボットデバイスが事前に環境の完全な情報を持たない非構造化環境（例えば、動的及び／又は人間環境）において、スキルの学習及び／又は実行を行うことができ得る。非構造化環境は、例えば、屋内及び屋外状況を含む場合があり、環境内で移動可能な１人又は複数の人間や他の物体を含む場合がある。最も自然な環境、又は現実世界の環境が非構造化であるため、本明細書に記載されるロボットデバイス及び／又はシステムなどの、非構造化環境で適応及び動作できるロボットデバイスは、非構造化環境に適応できない既存のロボットデバイスと比べて著しい向上を提供することができる。非構造化環境には、屋内状況（例えば、建物、オフィス、家、部屋など）及び／又は他のタイプの閉じた空間（例えば、飛行機、電車、及び／又は他のタイプの移動可能な区画）、並びに屋外状況（例えば、公園、ビーチ、外庭、野原）が含まれ得る。ある実施形態では、本明細書に記載されるロボットデバイスは、非構造化病院環境で動作することができる。
【００３５】
[0057]  図１は、いくつかの実施形態によるシステム１００を示すハイレベルブロック図である。システム１００は、非構造化環境において、例えば操作スキルなどのスキルを学習及び実行するように構成することができる。システム１００は、単一のデバイスとして実装されてもよく、又はネットワーク１０５に接続された複数のデバイスにわたって実装されてもよい。例えば、図１に示すように、システム１００は、例えば１つ又は複数のロボットデバイス１０２及び１１０などの１つ又は複数の計算デバイス、サーバー１２０、及び１つ又は複数の追加の計算デバイス１５０を含み得る。４つのデバイスが示されているが、システム１００は、具体的に図１に示されていない計算デバイスを含む、任意の数の計算デバイスを含み得ることが理解されるものとする。
【００３６】
[0058]  ネットワーク１０５は、有線ネットワーク及び／又は無線ネットワークとして実装され、ロボットデバイス１０２及び１１０、サーバー１２０、及び１つ又は複数の計算デバイス１５０を含む計算デバイスを動作可能に結合するために使用される、任意のタイプのネットワーク（例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、仮想ネットワーク、電気通信網）でもよい。本明細書でさらに詳細に記載されるように、いくつかの実施形態では、例えば、計算デバイスは、インターネット・サービス・プロバイダー（ＩＳＰ）及びインターネット（例えば、ネットワーク１０５）により、互いに接続されたコンピューターである。いくつかの実施形態では、任意の２つの計算デバイス間で、接続をネットワーク１０５により規定することができる。図１に示すように、例えば、ロボットデバイス１０２と、ロボットデバイス１１０、サーバー１２０、又は１つ若しくは複数の計算デバイス１５０のいずれか１つとの間で、接続を規定することができる。いくつかの実施形態では、これらの計算デバイスは、互いに通信する（例えば、データの送信及び／又は受信を行う）ことができ、並びに中間ネットワーク及び／又は代替ネットワーク（図１には示されない）を介してネットワーク１０５と通信することができる。このような中間ネットワーク及び／又は代替ネットワークは、ネットワーク１０５と同じタイプ及び／又は異なるタイプのネットワークであってもよい。各計算デバイスは、送信するためにネットワーク１０５上でデータを送信し、及び／又は他の計算デバイスの１つ又は複数からデータを受信するように構成された、任意のタイプのデバイスでもよい。
【００３７】
[0059]  いくつかの実施形態では、システム１００は、単一のロボットデバイス（例えば、ロボットデバイス１０２）を含む。ロボットデバイス１０２は、環境に関する情報を感知し、人間による実演及びインタラクションによってスキルを学習し、環境とインタラクトし、及び／又は人間による実演や入力によって環境的制約を学習し、及び／又はその環境でそれらのスキルを実行するように構成することができる。いくつかの実施形態では、ロボットデバイス１０２は、スキル及び／又は環境に関する追加情報を学習するために、自己探索を行うこと、及び／又はユーザー入力を要求することができる。ロボットデバイス例のさらに詳細な図を図２に示す。
【００３８】
[0060]  他の実施形態では、システム１００は、複数のロボットデバイス（例えば、ロボットデバイス１０２及び１１０）を含む。ロボットデバイス１０２は、ネットワーク１０５を介して、ロボットデバイス１１０にデータを送信し、及び／又はロボットデバイス１１０からデータを受信することができる。例えば、ロボットデバイス１０２は、環境（例えば、物体の場所）に関してロボットデバイス１０２が感知した情報をロボットデバイス１１０に送信することができ、その環境に関する情報をロボットデバイス１１０から受信することができる。また、ロボットデバイス１０２及び１１０は、スキルの学習及び／又は実行を行うために、互いに対して情報を送信し、及び／又は互いから情報を受信することができる。例えば、ロボットデバイス１０２は、ある環境でスキルを学習し、その学習したスキルを表すモデルをロボットデバイス１１０に送信することができ、ロボットデバイス１１０は、そのモデルを受信すると、それを用いて、同じ又は異なる環境でスキルを実行することができる。ロボットデバイス１０２は、ロボットデバイス１１０と同じ又は異なる場所に位置してもよい。例えば、ロボットデバイス１０２及び１１０は、一緒にスキルを学習及び／又は実行する（例えば、重い、又は大きな物体を移動させる）ことができるように、ある建物（例えば、病院の建物）の同じ部屋に位置してもよい。或いは、ロボットデバイス１０２は、ある建物（例えば、病院の建物）の１階に位置し、ロボットデバイス１１０は、ある建物の２階に位置してもよく、これら２つのロボットデバイスは、異なる階に関する情報（例えば、これらの階で物体がある場所、リソースが存在し得る場所など）を互いに伝えるために、互いに通信することができる。
【００３９】
[0061]  いくつかの実施形態では、システム１００は、１つ又は複数のロボットデバイス（例えば、ロボットデバイス１０２及び／又は１１０）と、サーバー１２０とを含む。サーバー１２０は、ロボットデバイス１０２及び／又は１１０を管理する専用サーバーであってもよい。サーバー１２０は、ロボットデバイス１０２及び／又は１１０と同じ又は異なる場所に位置してもよい。例えば、サーバー１２０は、１つ又は複数のロボットデバイスと同じ建物（例えば、病院の建物）内に位置してもよく、ローカル管理者（例えば、病院管理者）によって管理されてもよい。或いは、サーバー１２０は、遠隔地（例えば、ロボットデバイスのメーカー又は供給業者に関連する場所）に位置してもよい。
【００４０】
[0062]  いくつかの実施形態では、システム１００は、１つ又は複数のロボットデバイス（例えば、ロボットデバイス１０２及び／又は１１０）と、追加の計算デバイス１５０とを含む。計算デバイス１５０は、特定の機能を起動及び／又は実行するように構成された、任意の適宜の処理デバイスでもよい。例えば、病院の状況では、計算デバイス１５０は、ネットワーク１０５に接続し、ロボットデバイス１０２及び／又は１１０を含む他の計算デバイスと通信することが可能な診断及び／又は治療デバイスであってもよい。
【００４１】
[0063]  いくつかの実施形態では、１つ又は複数のロボットデバイス（例えば、ロボットデバイス１０２及び／又は１１０）は、ネットワーク１０５を介して、サーバー１２０及び／又は計算デバイス１５０と通信するように構成されてもよい。サーバー１２０は、ロボットデバイスから遠隔地にあり、及び／又は敷地内でロボットデバイスの近くに位置する１つ又は複数のコンポーネントを含んでもよい。計算デバイス１５０は、ロボットデバイスから遠隔地にあり、敷地内でロボットデバイスの近くに位置し、及び／又は１つのロボットデバイスに組み込まれた、１つ又は複数のコンポーネントを含んでもよい。サーバー１２０及び／又は計算デバイス１５０は、ユーザー（例えば、近くのユーザー又はロボットの監督者）が、ロボットデバイスの動作を制御することを可能にするユーザーインターフェースを含んでもよい。例えば、ユーザーは、ロボットデバイスによって行われる１つ又は複数のアクションの実行を中断及び／又は修正することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声／ライト、及び／又はロボットデバイスの他のコンポーネントが含まれ得る。いくつかの実施形態では、ロボットの監督者は、遠隔でロボットデバイスをモニタリングし、安全目的で、その動作を制御することができる。例えば、ロボットの監督者は、人間を危険にさらすこと、又はロボットデバイスや環境内の別の物体に損傷を与えることを避けるために、アクションの実行を停止又は修正するように、ロボットデバイスに命令することができる。いくつかの実施形態では、近くのユーザーは、ロボットデバイスに対して、アクションを指導又は実演することができる。いくつかの実施形態では、ロボットデバイスは、アクションの実行時における特定の時点で、ユーザーの介入を求めるように構成されてもよい。例えば、ロボットデバイスが、そのロボットデバイス自体、及び／又はそのロボットデバイス周辺の環境に関する特定の情報を確認できないとき、ロボットデバイスが、あるアクションを完了するため、又はある特定の場所までナビゲートするための軌道を決定できないとき、ロボットデバイスが、（例えば、以下でさらに記載されるように、対話型学習テンプレートを使用した学習中に）ユーザー入力を求めるように、前もってプログラムされたときなどの時点で、ユーザーの介入を求めることができる。いくつかの実施形態では、ロボットデバイスは、学習及び／又は実行中の特定の時点で、ユーザーにフィードバックを要求することができる。例えば、ロボットデバイスは、どんな情報（例えば、操作要素又は搬送要素に関連する情報、周辺環境に関連する情報）を収集すべきか、及び／又はいつ情報を収集すべきか（例えば、実演中のキーフレームのタイミング）を指定するようにユーザーに促すことができる。代替的又は追加的に、ロボットデバイスは、ある特定のコンテキストにおいて、アクションの良い例又は悪い例として、ユーザーがロボットデバイスの過去又は現在の挙動にタグを付けることを要求することができる。ロボットデバイスは、この情報を用いて、その特定のコンテキストにおける、そのアクションの今後の実行を向上させるように構成され���もよい。
【００４２】
システム及びデバイス
[0064]  図２は、いくつかの実施形態によるロボットデバイス２００を模式的に示す。ロボットデバイス２００は、制御ユニット２０２、ユーザーインターフェース２４０、少なくとも１つの操作要素２５０、及び少なくとも１つのセンサー２７０を含む。追加的に、いくつかの実施形態では、ロボットデバイス２００は、任意選択的に、少なくとも１つの搬送要素２６０を含む。制御ユニット２０２は、メモリー２２０、ストレージ２３０、プロセッサー２０４、グラフィックプロセッサー２０５、システムバス２０６、及び少なくとも１つの入出力インターフェース（「Ｉ／Ｏインターフェース」）２０８を含む。メモリー２２０は、例えば、ランダム・アクセス・メモリー（ＲＡＭ）、メモリーバッファー、ハードドライブ、データベース、消去可能なプログラマブル読み出し専用メモリー（ＥＰＲＯＭ）、電気的消去可能読み出し専用メモリー（ＥＥＰＲＯＭ）、読み出し専用メモリー（ＲＯＭ）、及び／又はその他であってもよい。いくつかの実施形態では、メモリー２２０は、環境のセンシング又はスキャニング、スキルの学習、及び／又はスキルの実行に関連するモジュール、プロセス、及び／又は機能をプロセッサー２０４に行わせる命令を保存する。ストレージ２３０は、例えば、ハードドライブ、データベース、クラウドストレージ、ネットワーク接続型ストレージデバイス、又は他のデータストレージデバイスであってもよい。いくつかの実施形態では、ストレージ２３０は、例えば、ロボットデバイス２００の１つ又は複数のコンポーネント（例えば、操作要素２５０）、学習されたモデル、マーカー位置情報などに関する状態情報を含むセンサーデータを保存することができる。
【００４３】
[0065]  制御ユニット２０２のプロセッサー２０４は、環境の視察、スキルの学習、及び／又はスキルの実行に関連する機能の起動及び／又は実行を行うように構成された、任意の適宜の処理デバイスでもよい。例えば、プロセッサー２０４は、本明細書でさらに記載されるように、センサー情報に基づいてスキルに関するモデルを生成し、又はモデルを用いて、スキルを行うための軌道を生成することによってスキルを実行するように構成されてもよい。より詳しくは、プロセッサー２０４は、モジュール、機能、及び／又はプロセスを実行するように構成されてもよい。いくつかの実施形態では、プロセッサー２０４は、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサー（ＤＳＰ）、及び／又は同類のものであってもよい。
【００４４】
[0066]  グラフィックプロセッサー２０５は、１つ又は複数の表示機能（例えば、表示デバイス２４２に関連する機能）を起動及び／又は実行するように構成された、任意の適宜の処理デバイスでもよい。いくつかの実施形態では、グラフィックプロセッサー２０５は、例えば、専用グラフィックスカード又は統合グラフィック処理ユニットなどの低電力グラフィック処理ユニットでもよい。
【００４５】
[0067]  システムバス２０６は、プロセッサー２０４、メモリー２２０、ストレージ２３０、及び／又は制御ユニット２０２の他のコンポーネントが互いに通信することを可能にする、任意の適宜のコンポーネントでもよい。システムバス２０６に接続された１つ又は複数のＩ／Ｏインターフェース２０８は、制御ユニット２０２の内部コンポーネント（例えば、プロセッサー２０４、メモリー２２０、ストレージ２３０）と、ユーザーインターフェース２４０、１つ又は複数の操作要素２５０、１つ又は複数の搬送要素２６０、及び１つ又は複数のセンサー２７０などの外部入出力デバイスとの間の通信を可能にする、任意の適宜のコンポーネントでもよい。
【００４６】
[0068]  ユーザーインターフェース２４０は、入力を受け取り、他のデバイス及び／又はデバイスを操作するユーザー（例えば、ロボットデバイス２００を操作するユーザー）に出力を送るように構成された、１つ又は複数のコンポーネントを含んでもよい。例えば、ユーザーインターフェース２４０は、表示デバイス２４２（例えば、ディスプレイ、タッチスクリーンなど）、オーディオデバイス２４４（例えば、マイクロホン、スピーカー）、及び任意選択的に、入力を受け取り、及び／又はユーザーに対して出力を生成するように構成された、１つ又は複数の追加の入出力デバイス（「Ｉ／Ｏデバイス」）２４６を含み得る。
【００４７】
[0069]  １つ又は複数の操作要素２５０は、例えば人間を含む、静止した物体及び／又は移動する物体を操作し、及び／又はそれとインタラクトすることができる、任意の適宜のコンポーネントでもよい。いくつかの実施形態では、１つ又は複数の操作要素２５０は、１つ若しくは複数の軸に沿った平行移動、及び／又は１つ若しくは複数の軸を中心とした回転を提供することができる関節により互いに結合された複数のセグメントを含んでもよい。１つ又は複数の操作要素２５０は、任意選択的に、環境内の物体と係合すること、及び／又は別の方法でインタラクトすることができるエンドエフェクターを含んでもよい。例えば、操作要素は、物体を拾い上げるため、及び／又は物体を搬送するために、環境内の物体を解放可能に係合する（例えば、把持する）ことが可能な把持機構を含んでもよい。エンドエフェクターの他の例には、例えば、１つ若しくは複数の真空係合機構、１つ若しくは複数の磁気係合機構、１つ若しくは複数の吸引機構、及び／又はこれらの組み合わせが含まれる。いくつかの実施形態では、１つ又は複数の操作要素２５０は、ロボットデバイスの１つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス２００のハウジング内に格納可能であってもよい。いくつかの実施形態では、１つ又は複数の操作要素２５０は、環境と、及び／又は人間を含む、環境内の１つ又は複数物体とインタラクトするように構成された頭部又は他の人型コンポーネントを含んでもよい。いくつかの実施形態では、１つ又は複数の操作要素２５０は、搬送要素又は基部（例えば、１つ又は複数の搬送要素２６０）を含んでもよい。操作要素例の詳細図が、図４に示される。
【００４８】
[0070]  １つ又は複数の搬送要素２６０は、例えば、車輪又はトラックなどの、移動用に構成された任意の適宜のコンポーネントでもよい。１つ又は複数の搬送要素２６０は、ロボットデバイス２００が環境内を動き回ることを可能にするために、ロボットデバイス２００の基部に設けられてもよい。例えば、ロボットデバイス２００は、例えば病院などの建物中をロボットデバイス２００がナビゲートすることを可能にする複数の車輪を含んでもよい。１つ又は複数の搬送要素２６０は、狭い空間及び／又は制限された空間（例えば、小さな通路や廊下、収納庫などの小さな部屋など）を通る移動を容易にするように設計及び／又は寸法決定することができる。いくつかの実施形態では、１つ又は複数の搬送要素２６０は、ある軸を中心に回転可能であってもよく、及び／又は互いに対して移動可能（例えば、トラックに沿って）であってもよい。いくつかの実施形態では、１つ又は複数の搬送要素２６０は、ロボットデバイスの１つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス２００の基部内に格納可能であってもよい。いくつかの実施形態では、１つ又は複数の搬送要素２６０は、操作要素（例えば、１つ又は複数の操作要素２５０）の一部であってもよく、又はその一部を形成してもよい。
【００４９】
[0071]  １つ又は複数のセンサー２７０は、環境、及び／又はロボットデバイス２００周辺の環境内の物体に関する情報をロボットデバイス２００が捕捉することを可能にする任意の適宜のコンポーネントでもよい。１つ又は複数のセンサー２７０には、例えば、撮像デバイス（例えば、ＲＧＢ−Ｄ（red-green-blue-depth）カメラ又はウェブカメラなどのカメラ）、オーディオデバイス（例えば、マイクロホン）、光センサー（例えば、光検知測距（つまりライダー）センサー、色検出センサー）、固有受容センサー、位置センサー、触覚センサー、力又はトルクセンサー、温度センサー、圧力センサー、運動センサー、音検出器などが含まれ得る。例えば、１つ又は複数のセンサー２７０は、物体と、ロボットデバイス２００の周辺の環境とに関する視覚情報を捕捉するための、カメラなどの少なくとも１つの撮像デバイスを含んでもよい。いくつかの実施形態では、１つ又は複数のセンサー２７０は、触覚センサー（例えば、力、振動、接触、及び他の非視覚情報をロボットデバイス２００に伝達することができるセンサー）を含んでもよい。
【００５０】
[0072]  いくつかの実施形態では、ロボットデバイス２００は、人型の特徴（例えば、頭部、胴部、腕、脚、及び／又は基部）を有してもよい。例えば、ロボットデバイス２００は、目、鼻、口、及び他の人型の特徴を備えた顔を含んでもよい。これらの人型の特徴は、１つ若しくは複数の操作要素の一部を形成することができ、及び／又は１つ若しくは複数の操作要素の一部であってもよい。模式的に示されないが、ロボットデバイス２００は、アクチュエーター、モーター、カプラー、コネクター、電源（例えば、内蔵バッテリー）、及び／又はロボットデバイス２００の異なる複数の部分をつなぐ、作動させる、及び／又は駆動する他のコンポーネントも含み得る。
【００５１】
[0073]  図３は、いくつかの実施形態による制御ユニット３０２を模式的に示すブロック図である。制御ユニット３０２は、制御ユニット２０２と類似したコンポーネントを含んでもよく、制御ユニット２０２と構造的及び／又は機能的に類似してもよい。例えば、制御ユニット３０２は、プロセッサー２０４、メモリー２２０、１つ又は複数のＩ／Ｏインターフェース２０８、システムバス２０６、及びストレージ２３０とそれぞれ構造的及び／又は機能的に類似し得るプロセッサー３０４、グラフィックプロセッサー３０５、メモリー３２０、１つ又は複数のＩ／Ｏインターフェース３０８、システムバス３０６、及びストレージ３３０を含む。
【００５２】
[0074]  メモリー３２０は、アクティブセンシング３２２、マーカー識別３２４、学習及びモデル生成３２６、軌道の生成及び実行３２８、並びに成功モニタリング３２９として示される、モジュール、プロセス、及び／又は機能をプロセッサー３０４に実行させることができる命令を保存する。アクティブセンシング３２２、マーカー識別３２４、学習及びモデル生成３２６、軌道の生成及び実行３２８、並びに成功モニタリング３２９は、ハードウェアコンポーネント（例えば、センサー、操作要素、Ｉ／Ｏデバイス、プロセッサーなど）に結び付けられた１つ又は複数のプログラム及び／又はアプリケーションとして実装され得る。アクティブセンシング３２２、マーカー識別３２４、学習及びモデル生成３２６、軌道の生成及び実行３２８、並びに成功モニタリング３２９は、単一のロボットデバイス、又は複数のロボットデバイスによって実装され得る。例えば、ロボットデバイスは、アクティブセンシング３２２、マーカー識別３２４、並びに軌道の生成及び実行３２８を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング３２２、マーカー識別３２４、任意選択的に学習及びモデル生成３２６、並びに軌道の生成及び実行３２８を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング３２２、マーカー識別３２４、軌道の生成及び実行３２８、並びに任意選択的に成功モニタリング３２９を実装するように構成されてもよい。図示されないが、メモリー３２０は、オペレーティングシステム及び一般的なロボット動作（例えば、電源管理、メモリー割り当てなど）に関連するプログラム及び／又はアプリケーションも保存し得る。
【００５３】
[0075]  ストレージ３３０は、スキルの学習及び／又は実行に関連する情報を保存する。ストレージ３３０は、例えば、状態情報３３１、１つ又は複数のモデル３３４、物体情報３４０、及び機械学習ライブラリー３４２を保存する。状態情報３３１は、ロボットデバイス（例えば、ロボットデバイス２００）及び／又はロボットデバイスが動作している環境（例えば建物（例えば病院など））の状態に関する情報を含み得る。いくつかの実施形態では、状態情報３３１は、例えば、部屋、階、閉じた空間などの環境内のロボットデバイスの場所を示してもよい。例えば、状態情報３３１は、環境のマップ３３２を含んでもよく、そのマップ３３２内のロボットデバイスの場所を示すことができる。状態情報３３１は、環境内（例えば、マップ３３２内）の１つ又は複数の物体の１つ又は複数の場所（或いは物体を表す、及び／又は物体に関連付けられたマーカー）も含み得る。したがって、状態情報３３１は、１つ又は複数の物体に対するロボットデバイスの場所を識別することができる。物体には、空間又は開口部を規定する物体（例えば、戸口を規定する面又は壁）を含む、環境内に位置する、あらゆるタイプの物理的物体が含まれ得る。物体は、静止していてもよいし、或いは可動であってもよい。例えば病院などの環境内の物体の例には、設備、備品、機器、器具、家具、及び／又は人間（例えば、看護師、医師、患者など）が含まれる。
【００５４】
[0076]  いくつかの実施形態では、状態情報３３１は、図１９に示されるような環境の表現又はマップを含み得る。環境のマップは、例えば、ナビゲーション層、静的意味層、社会的層、及び動的層を含み得る。例えば、実演、ユーザー入力、感知したセンサー情報などからロボットデバイスによって学習された情報は、マップの異なる複数の層に送ることができ、このロボットデバイス（及び／又は他のロボットデバイス）による後の参照のために整理することができる。例えば、ロボットデバイスは、本明細書でさらに記載されるように、環境内の異なる複数の物体（例えば、ドア）に関して学習された情報に依存して、異なる挙動（例えば、戸口を通過する前に、閉じた戸口のドアが開けられるのを待つこと、閉じた戸口を通過する前に、ドアを開けるための助けを求めること）間でアービトレーションを行うやり方を決定することができる。
【００５５】
[0077]  物体情報３４０は、環境内の１つ又は複数の物理的物体に関連する情報を含み得る。例えば、物体情報は、例えば、場所、色、形状、及び表面特徴などの、物体の異なる複数の特徴を識別又は定量化する情報を含み得る。物体情報は、物理的物体に関連付けられたコード、記号、及び他のマーカー（例えば、クイックレスポンス、つまり「ＱＲ」コード、バーコード、タグなど）も識別することができる。いくつかの実施形態では、物体情報は、環境内の物体を特徴付ける情報（例えば、戸口又は通路が閉じられている、ドアハンドルがドアハンドルの一種であるなど）を含み得る。物体情報により、制御ユニット３０２が、環境内で１つ又は複数の物理的物体を識別することを可能にすることができる。
【００５６】
[0078]  状態情報３３１及び／又は物体情報３４０は、本明細書において使用及び記載されるように、環境的制約の例でもよい。環境的制約は、様々な寸法で提示され得る、又は見られ得る環境に関する情報を含み得る。例えば、環境的制約は、場所、時間、社会的インタラクション、具体的なコンテキストなどによって異なり得る。ロボットデバイスは、ユーザー入力、スキルの実演、環境とのインタラクション、自己探索、スキルの実行などから環境的制約を学習することができる。
【００５７】
[0079]  機械学習ライブラリー３４２は、機械学習及び／又は異なる複数のスキルのモデル生成のための異なる複数のアルゴリズムに関連する複数のモジュール、プロセス、及び／又は機能を含んでもよい。いくつかの実施形態では、機械学習ライブラリーは、隠れマルコフモデル（つまり「ＨＭＭ」）などの方法を含み得る。Pythonの既存の機械学習ライブラリーの一例は、scikit-learnである。ストレージ３３０は、例えば、ロボットシミュレーション、モーションプランニング及び制御、運動学教示及び知覚などに関連する追加のソフトウェアライブラリーも含み得る。
【００５８】
[0080]  １つ又は複数のスキルモデル３３４は、異なる複数のアクションを行うために生成されたモデルであり、ロボットデバイスによって学習されたスキルを表す。いくつかの実施形態では、各モデル３３４は、ある環境内の異なる複数の物理的物体に結び付けられたマーカーのセットに関連付けられる。マーカー情報３３５は、どのマーカーが、ある特定のモデル３３４に関連付けられているかを示すことができる。各モデル３３４は、運動感覚教示及び／又はスキルの他の実演中に、例えばロボットデバイスの１つ又は複数のセンサーによって収集された感覚情報３３６にも関連付けることができる。感覚情報３３６には、任意選択的に、実演中にロボットデバイスがアクションを行う際のロボットデバイスの操作要素に関連付けられた操作要素情報３３７が含まれ得る。操作要素情報３３７には、例えば、関節の位置及び構成、エンドエフェクターの位置及び構成、基部若しくは搬送要素の位置及び構成、及び／又は関節、エンドエフェクター、搬送要素などに作用する力及びトルクが含まれ得る。操作要素情報３３７は、スキルの実演及び／又は実行中の特定の時点（例えば、キーフレーム）で、或いはスキルの実演及び／又は実行の間中ずっと記録されてもよい。感覚情報３３６には、スキルが実演及び／又は実行される環境に関連付けられた情報（例えば、環境内のマーカーの場所）も含まれ得る。いくつかの実施形態では、各モデル３３４は、成功基準３３９に関連付けられてもよい。成功基準３３９を用いて、スキルの実行をモニタリングすることができる。いくつかの実施形態では、成功基準３３９は、１つ又は複数のセンサー（例えば、カメラ、力／トルクセンサーなど）を用いて感知された視覚及び触覚データに関連付けられた情報を含み得る。成功基準３３９は、例えば、物体の移動を視覚的に検出すること、ロボットデバイスのコンポーネントに作用する力（例えば、物体の重さ）を検知すること、ロボットデバイスのコンポーネントと物体との係合（例えば、面に作用する圧力又は力の変化）を検知することなどに結び付けられてもよい。操作スキルのロボット学習において触覚データを使用する例は、本明細書に援用される、http://ieeexplore.ieee.org/document/7463165/から入手できる、2016 IEEE Haptics Symposium (HAPTICS) (Philadelphia, PA, 2016, pp.119-125)で公表されたChuらによって執筆された「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らによって執筆された「Simultaneously Learning Actions and Goals from Demonstration」というタイトルの論文に記載されている。
【００５９】
[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]  いくつかの実施形態では、ロボットデバイスは、１つ又は複数のマーカーを有する、環境の表現をユーザーに提示することができ、任意選択的に、７０８において、例えばユーザーインターフェース又は他のタイプのＩ／Ｏデバイスを用いて、環境の表現内の１つ又は複数のマーカーを承認するか、又は拒否するようにユーザーに促すことができる。ユーザーが１つ又は複数のマーカーを承認しない場合（７０８：NO）、方法７００は、７０２に戻り、ロボットデバイスは、環境を再スキャンすることにより、環境の第２の表現を取得することができる。ユーザーが１つ又は複数のマーカーを承認する場合（７０８：YES）、方法７００は、７０８に進み、そこで、ロボットデバイスは、マーカーに関連付けられた情報（例えば、場所、特徴など）をメモリー（例えば、ストレージ３３０）に保存することができる。例えば、ロボットデバイスは、１つ又は複数のマーカーの場所を環境の内部マップ（例えば、マップ３３２）に保存することができる。
【００８９】
[0111]  いくつかの実施形態では、ロボットデバイスは、７０４において、１つ又は複数のマーカーを識別し、１つ又は複数のマーカーを承認するようにユーザーに促すことなく、そのまま、７１０で、１つ又は複数のマーカーの場所及び／又はマーカーに関連付けられた他の情報の保存を開始してもよい。このような実施形態では、ロボットデバイスは、１つ又は複数のマーカーの場所を、それらの場所を保存する前に分析することができる。例えば、ロボットデバイスは、（例えば、環境の以前のスキャン中に獲得された、及び／又はユーザー若しくは計算デバイスによってロボットデバイスに入力された）１つ又は複数のマーカーの場所に関する、以前に保存された情報を有し、１つ又は複数のマーカーの場所を、その以前に保存された情報と比較することによって、精度のチェック及び／又はマーカーの場所の変化を識別することができる。具体的には、ある特定のマーカーが、ロボットデバイスによって識別された場所とは異なる場所に位置すべきであることを以前に保存された情報が示す場合には、ロボットデバイスは、環境の追加的スキャンを開始することにより、マーカーの場所を保存する前に、その場所を検証することができる。代替的又は追加的に、ロボットデバイスは、マーカーの場所が変わったことを示す通知をユーザーに送ることができる。このような場合には、ロボットデバイスは、マーカーの新しい場所を保存することができるが、マーカーの場所に変化があったことを示すメッセージも保存することができる。その場合、ユーザー又は計算デバイスは、後に、メッセージを見直し、マーカーの場所の変化を一致させることができる。
【００９０】
[0112]  図９に示されるように、方法７００は、任意選択的に、７１２に進み、そこで、ロボットデバイスは、例えばユーザーインターフェース又は他のタイプのＩ／Ｏデバイスを用いて、環境の表現で識別された１つ又は複数のマーカーからマーカーのセットを選択するようにユーザーに促すことができる。７１４において、ユーザーは、選択を行うことができ、ロボットデバイスは、ユーザーから選択を受け取ることができる。或いは、いくつかの実施形態では、選択を行うようにユーザーに促す代わりに、ロボットデバイスは、マーカーのセットを自動的に選択することができる。ロボットデバイスは、特定のあらかじめ規定された、又は学習されたルール及び／又は条件に基づいて、マーカーを選択するようにプログラムされてもよい。例えば、ロボットデバイスは、１日のうちの特定の時間の間、又は建物内の人通りが少ないときに、ある特定のタイプの物体（例えば、供給品）に関連付けられたマーカーを選択するように指示され得る。後者の場合、ロボットデバイスは、建物中を能動的に移動すること（例えば、通路及び部屋を巡回及びモニタリングすること）、並びに環境のセンシング又はスキャニングを行うことによって、建物内の人通りがいつ少ないかを決定することができる。そうすることで、ロボットデバイスは、建物内の人通りが他のほとんどの時よりも少ないときに、特定の物体に関連付けられたマーカーを選択することを知ることができる。
【００９１】
[0113]  ロボットデバイスが、マーカーのセットの選択をユーザーから受け取り、及び／又はマーカーのセットを自動的に選択した後に、方法７００は、７１６のスキルの学習、又は７１８のスキルの実行に進むことができる。
【００９２】
[0114]  どのような特定のスキルに関しても、ロボットデバイスがスキルを実行又は実施する前に、ロボットデバイスが、スキルを教示されることが可能である。例えば、操作スキルを獲得するために、ロボットデバイスは、ユーザー（例えば、近くのユーザー、又は遠隔に位置するロボットの監督者）又は他のロボットデバイスが、ロボットデバイスにスキルを実演することができるＬｆＤ（例えば、運動感覚教示）により、教示されることが可能である。例えば、ロボットデバイスのアームなどの操作要素は、物体とインタラクトするために、一連のウェイポイントを通って移動することができる。別の例として、ロボットデバイスの可動基部（例えば、車輪、トラック、クローラーなどの搬送要素を備えた基部）が、ユーザーによって（例えば、ジョイスティック、ユーザーインターフェース、又はその他のタイプの物理的若しくは仮想制御デバイスを用いることによって、或いはロボットデバイスを物理的に指導し、又は移動させる（例えば、引き寄せる、押す）ことによって）環境内の物体を避けてナビゲートされ得る。
【００９３】
[0115]  運動感覚教示の場合、ユーザーは、ロボットデバイスに対してスキルを物理的に実演することができる。スキルの汎用的動作を表す集約モデルを用いて、ロボットデバイスが教示され得る、大量生産状況（例えば、製造環境など）において、訓練又は教示が行われ得る。代替的又は追加的に、ロボットデバイスが、特定の現場環境でスキルを行うことを学習できるように、ロボットデバイスが（例えば病院に）配備された後に、教示を現場で行うことができる。いくつかの実施形態では、ロボットデバイスは、現場状況で教示されることが可能であり、その後、学習したスキルに関連する情報を１つ又は複数の別のロボットデバイスに送信することによって、これらの別のロボットデバイスも、同じ現場状況で動作するときに、教示されたスキルの知識を持つことができる。このような実施形態は、複数のロボットデバイスが単一の現場で配備されている場合に役に立ち得る。その場合、各ロボットデバイスは、他のロボットデバイスに対して、それらの他のロボットデバイスが、その現場環境に関するスキルのセットをまとめて学習することができるように情報の送受信を行うことができる。
【００９４】
[0116]  図１０に示される学習モードでは、方法７００は、７２０〜７２４に進み、ここでは、ユーザーは、ＬｆＤ教示プロセスを用いて、ロボットデバイスにスキルを教示することができる。ある実施形態では、スキルは、ある特定の場所にある物体を把持すること、その物体を拾い上げること、その物体を別の場所に移動させること、及びその物体をその別の場所に降ろすこととして規定され得る。別の実施形態では、スキルは、ロボットデバイスの周囲の環境（例えば、ドア）とのインタラクションに関与し得る。
【００９５】
[0117]  ７２０では、ユーザー（又は別のロボットデバイス）が、操作要素（例えば、操作要素２５０、３５０、若しくは４５０）及び／又は搬送要素（例えば、１つ若しくは複数の搬送要素２６０、４６０）を含むロボットデバイスに動作を指導することができる。例えば、ユーザーは、ある特定のスキル（例えば、人間とのインタラクション、物体との係合及び／又は物体の操作、及び／又は１人若しくは複数の人間及び／又は周辺環境との他のインタラクション）の実行に関連する実演により、ロボットデバイスの操作要素（及び／又はロボットデバイスの他のコンポーネント（例えば、搬送要素））を指導することができる。ある実施形態では、ユーザーは、ドアとインタラクトするやり方及び／又はドアを通ってナビゲートするやり方をロボットデバイスに実演することができる。ユーザーは、どのようにロボットデバイスが、例えば、それの１つ又は複数の操作要素を用いて、ドアハンドルとインタラクトするかを実演することができる。例えば、アームなどの、ロボットデバイスの操作要素は、（例えば、視覚入力によって入れられた、又は基準マーカーによって識別された）ドアハンドルに対する一連の動きを指導され得る。例えば操作要素を用いて、ドアハンドルが回される間、又はドアハンドルが回された後に、ロボットデバイスは、例えば１つ又は複数の搬送要素を移動させることによって、ドアを押し開くことを実演により指導され得る。以下でさらに説明されるように、１つ又は複数の操作要素及び１つ又は複数の搬送要素の動きの組み合わせを用いることによって、そのドア及び／又は類似のドアとの今後のインタラクションのために、スキル又は挙動を実行するためのモデルを構築することができる。
【００９６】
[0118]  いくつかの実施形態では、ロボットデバイスは、局所的に存在するユーザーによって（例えば、ロボットデバイスを物理的に移動させている、及び／又はロボットデバイスに入力を与えているユーザーによって）指導されることが可能である。いくつかの実施形態では、ロボットデバイスは、例えば、遠隔又はクラウドインターフェースを用いて、ロボットデバイスから遠隔に位置するユーザー（例えば、ロボットの監督者）によって指導されることが可能である。
【００９７】
[0119]  操作要素（及び／又はロボットデバイスの他のコンポーネント）に動作を指導しながら、ユーザーは、操作要素の状態（例えば、関節の構成、関節力及び／又は関節トルク、エンドエフェクターの構成、エンドエフェクターの位置）、ロボットデバイスの別のコンポーネント、及び／又は環境（例えば、選択されたマーカーに関連付けられた物体の場所、及び／又は環境内の他の物体）に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、７２２において、操作要素の動作中のウェイポイント又はキーフレームで、操作要素及び／又は環境に関する情報を捕捉するための信号をユーザーから受信することができる。信号の受信に応答して、７２４において、ロボットデバイスは、そのキーフレームにおいて、操作要素、ロボットデバイスの他のコンポーネント、及び／又は環境に関する情報を捕捉することができる。操作要素情報には、例えば、関節の構成、関節トルク、エンドエフェクターの位置、及び／又はエンドエフェクタートルクが含まれ得る。環境情報は、例えば、エンドエフェクターに対する、選択されたマーカーの位置を含み、環境内の物体がいつ動いた可能性があるかをロボットデバイスに示すことができる。動作がまだ続いている場合には（７２８：NO）、ロボットデバイスは、さらなる複数のキーフレームで、操作要素及び／又は環境に関する情報を捕捉することを待つことができる。いくつかの実施形態では、ロボットデバイスは、ユーザーから信号を受信することなく、キーフレーム情報を捕捉するようにプログラムされてもよい。例えば、操作要素がユーザーによって動かされている間に、ロボットデバイスは、操作要素のセグメント及び関節の変化をモニタリングし、それらの変化が閾値を超えたとき、又はセグメント若しくは関節の軌道の方向変化があったときに、ロボットデバイスは、その時点がキーフレームであると自律的に選択し、そのキーフレームにおける操作要素及び／又は環境に関する情報を記録することができる。
【００９８】
[0120]  操作要素（及び／又はロボットデバイスの他のコンポーネント（例えば、搬送要素））の動作中に、ロボットデバイスは、７３０において、ユーザーから信号を受信することなく、感覚情報（例えば、操作要素、ロボットデバイスの他の１つ又は複数の要素（例えば、搬送要素）、及び／又は環境に関する情報）も、連続的又は周期的に記録することができる。例えば、ユーザーが実演を通して操作要素を動かす際に、ロボットデバイスは、セグメント及び関節の軌道、並びにそれらの構成に関する情報を記録することができる。実演中に、ロボットデバイスは、１つ又は複数の環境的制約に関する情報（例えば、環境内の１つ若しくは複数の物体に関する静的情報（例えば、戸口、備品容器などの場所若しくはサイズ）及び／又は環境内の１つ若しくは複数の物体に関する動的情報（例えば、部屋内の人通りのレベル、ロボットデバイスの周りのユーザーの動きなど））も記録することができる。いくつかの実施形態では、実演中にロボットデバイスによって記録された感覚情報は、例えば図１９に示されるような環境のマップの１つ又は複数の層に対して追加及び／又は変更を行うことができる。
【００９９】
[0121]  いくつかの実施形態では、ロボットデバイスは、例えばマイクロホンなどのオーディオデバイス（例えば、２４４）を含んでもよく、キーフレームの画定は、音声コマンドによって制御されてもよい。例えば、ユーザーは、「指導します（I will guide you）」と話すことによって、実演する予定であることをロボットデバイスに示すことができる。「ここから開始（start here）」と話すことによって、ユーザーが最初のキーフレームを示したときに、実演が始まり得る。「ここは継続（go here）」と話すことによって、中間キーフレームを示すことができる。そして、「ここで終了（end here）」と話すことによって、実演の終了を表す最後のキーフレームを示すことができる。実演教示の適切な例が、Akgunの論文に提供されている。
【０１００】
[0122]  いくつかの実施形態では、ロボットデバイスにスキルを実演しながら、ユーザーは、例えば、ロボットデバイスへの１つ又は複数の入力により、スキルのどの１つ又は複数の部分が汎用的なものであり、スキルのどの１つ又は複数の部分が、特定の環境又は状況に対してより固有のものであるかを示すことができる。例えば、第１の場所から第２の場所（例えば、ある部屋）へと備品を移動させ、それらの備品を第２の場所に降ろすやり方をロボットデバイスに実演しながら、第１の場所から第２の場所へとナビゲートするアクションは、汎用的なものであるが、第２の場所に備品を降ろすアクションは固有のものであり、実施するためには、環境に固有の情報（例えば、備品を降ろすための具体的なタグ又はマーカー）をさらに必要とすることを、ユーザーはロボットデバイスに示すことができる。ロボットデバイスが、後に、そのスキルに関するモデルを使用して、異なる場所間で備品を移動させるときに、ロボットデバイスは、スキルを実行する前に、荷降ろしに関する特定の情報を要求すること、及び／又はその特定の情報をスキャンすること（例えば、荷降ろしを行う前に、その場所を決定するための特定のタグに関する情報を要求及び／又はスキャンすること）を知ることができる。
【０１０１】
[0123]  いくつかの実施形態では、ユーザーは、ロボットデバイスにスキルを実演した後に、汎用的若しくは固有であるスキルの部分を示し、及び／又は汎用的若しくは固有であるとユーザーが以前に示したスキルの部分を変更することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットを学習した後に、スキルのセットの部分が汎用的又は固有であるかを決定することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットの部分が汎用的又は固有であることをユーザーに推薦し、ユーザーに確認を要求することができる。ユーザーの確認に基づいて、ロボットデバイスは、このスキルのセットに関連する今後のスキルの学習及び／又は実行時に参照するために、この情報を保存することができる。代替的に、ロボットデバイスは、ユーザーの入力なしに、スキルの異なる複数の部分が汎用的又は固有であると自動的に決定及び分類することができる。
【０１０２】
[0124]  動作又は実演が完了すると（７２８：YES）、ロボットデバイスは、記録された全ての感覚情報のサブセット（例えば、操作要素情報、搬送要素情報、環境情報）に基づいて、実演されたスキルのモデルを生成することができる。例えば、７３２において、ロボットデバイスは、任意選択的に、例えばユーザーインターフェース又は他のタイプのＩ／Ｏデバイスを用いて、スキルの学習に関連した特徴の選択をユーザーに促すことができ、７３４において、ロボットデバイスは、特徴の選択をユーザーから受け取ることができる。代替的又は追加的に、ロボットデバイスは、ユーザーからの以前の命令に基づいて、モデルの生成に使用すべき特定の特徴を選択することを知ることができる。例えば、ロボットデバイスは、例えば感覚情報に基づいて、物体の拾い上げが実演されていることを認識することができ、例えば同じ又は異なる物体の拾い上げに関する過去の実演に基づいて、スキルモデルを生成するための関連特徴として含むべき、感覚情報の１つ又は複数の特徴（例えば、関節の構成、関節トルク、エンドエフェクタートルク）を自動的に選択することができる。
【０１０３】
[0125]  ７３６では、ロボットデバイスは、選択された特徴を用いて、スキルのモデルを生成することができる。モデルは、保存された機械学習ライブラリー又はアルゴリズム（例えば、機械学習ライブラリー３４２）を用いて生成されてもよい。いくつかの実施形態では、モデルは、例えば、いくつかの隠れ状態、特徴空間（例えば、特徴ベクトルに含まれる特徴）、及びガウス分布としてモデル化された各状態に関する放出分布などの複数のパラメーターを含むＨＭＭアルゴリズムとして表されてもよい。いくつかの実施形態では、モデルは、例えば、カーネルタイプ（例えば、線形、放射状、多項式、Ｓ字状）、費用パラメーター又は費用関数、重み（例えば、均等、クラス平衡）、損失タイプ又は損失関数（例えば、ヒンジ、方形ヒンジ）、及び解答タイプ又は問題タイプ（例えば、二重、プライマル）などのパラメーターを含み得る、サポート・ベクター・マシン、すなわち「ＳＶＭ」モデルとして表されてもよい。モデルは、関連する感覚情報、及び／又はスキルの実演中にロボットデバイスによって記録された他の感覚情報に関連付けられてもよい。モデルは、スキルの実演中に操作されたマーカーのセットを示すマーカー情報、及び／又はそれらのマーカーに結び付けられた１つ若しくは複数の物理的物体に関連付けられた特徴にも関連付けることができる。ロボットデバイスは、７３８において、モデルをメモリー（例えば、ストレージ２３０又は３３０）に保存することができる。
【０１０４】
[0126]  いくつかの実施形態では、実演に関連する情報（例えば、感覚情報、モデルなど）を用いて、例えば図１９に示される表現１６００などの、環境のマップ又は表現の層に追加及び／又は変更を行うことができる。例えば、図２１は示す
【０１０５】
[0127]  任意選択的に、７４０において、ロボットデバイスは、ユーザーが、スキルの別の実演を行うか否かを決定することができる。別の実演が行われる場合には（７４０：YES）、方法７００は、７２０に戻り、そこで、ユーザー（又は他のロボットデバイス）は、ロボットデバイスに追加の実演を指導することができる。実演が完了した場合には（７４０：NO）、方法７００は、任意選択的に、最初に戻り、環境の新規のスキャンを行うことができる。或いは、いくつかの実施形態では、方法７００は、終了してもよい。
【０１０６】
[0128]  別の実施形態では、スキルは、２つの場所間のナビゲーション、又は環境内の物体の周り、及び／又は環境内の物体の中を通るナビゲーションなどのナビゲーション挙動でもよい。本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、７２０において、ユーザー（又は他のロボットデバイス）は、搬送要素（例えば、１つ又は複数の搬送要素２６０、４６０）のセットを含むロボットデバイスにナビゲーション挙動を指導することができる。例えば、ユーザーは、ジョイスティック又は他の制御デバイスを使用して、搬送要素のセット（及び／又はロボットデバイスの他のコンポーネント（例えば、操作要素））の動きを制御し、及び／又はロボットデバイスがナビゲーション挙動を行うことができるように、そのような要素を物理的に指導する（例えば、ロボットデバイスを押す又は引き寄せる）ことができる。搬送要素のセット（及び／又はロボットデバイスの他のコンポーネント）の動きを制御しながら、ユーザーは、搬送要素のセットの状態（例えば、各搬送要素の角度、各搬送要素の構成、もし互いに対して移動可能であれば、搬送要素間の間隔など）、ロボットデバイスの他のコンポーネント、及び／又は環境（例えば、マップ内のロボットデバイスの場所、環境内の物体の場所及び／又は境界線）に関する情報などの感覚情報を捕捉すべき時についてロボットデバイスに信号を送ることができる。ユーザーは、搬送要素のセット（及び／又はロボットデバイスの他のコンポーネント）の移動中のキーフレームで、例えば、開始時、終了時、及び／又は第１の方向に搬送要素のセットを移動させることと、第２の方向に搬送要素のセットを移動させることとの間の転移点で、ロボットデバイスに信号を送ることができる。７２２でユーザーから信号を受信したことに応答して、ロボットデバイスは、移動のスナップショット（搬送要素のセット、ロボットデバイスの他のコンポーネント、及び／又は環境に関する情報を含む）をキーフレームで捕捉することができる。代替的又は追加的に、ロボットデバイスは、移動のスナップショットを捕捉すべき、搬送要素のセット（及び／又はロボットデバイスの他のコンポーネント）の移動中の時点を自律的に選択するように構成されてもよい。例えば、ロボットデバイスは、（例えば、ユーザーがロボットデバイスの制御を引き継いだとき（例えば、制御デバイスを訴えるロボットデバイスを制御することによって、又はロボットデバイスを押すことによって）などに）搬送要素のセットの角度及び／又は構成をモニタリングすることができ、ロボットデバイスが、角度及び／又は構成の変化を検出するたびに、その情報のスナップショットを自動的に捕捉することができる。いくつかの実施形態では、ロボットデバイスは、ユーザーが、ロボットデバイスの移動を制御している間、搬送要素のセット、ロボットデバイスの他のコンポーネント、及び／又は環境に関する情報を連続的に収集するように構成されてもよい。
【０１０７】
[0129]  本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、ロボットデバイスは、動作が完了する（７２８：YES）まで、搬送要素（及び／又はロボットデバイスの他のコンポーネント）の動作に関連する感覚情報の捕捉を継続することができる。ロボットデバイスは、７３２〜７３４で、任意選択的に、ナビゲーション挙動の学習に関連する特徴の選択を受け取り、及び／又は収集された感覚情報中の関連特徴を自律的に識別する（例えば、ある特定のナビゲーションスキルが実演されていることを認識し、そのスキルの学習に関連する上記特徴を識別することによって）ことができる。次に、ロボットデバイスは、７３６において、関連特徴に関連する感覚情報に基づいて、ナビゲーション挙動に関するモデルを生成することができ、７３８において、実行するロボットデバイスの軌道を生成するために後で使用することができるように、そのモデル及び感覚情報を保存することができる。
【０１０８】
[0130]  ナビゲーション挙動の一例は、戸口を通ってナビゲートすることである。ロボットデバイスは、建物内の標準戸口を通ってナビゲートするように構成されることが可能であるが、ロボットデバイスは、非標準戸口（例えば、小さい戸口又は異形の戸口）を通ってナビゲートすることができないことがある。したがって、ロボットデバイスは、どのようにロボットデバイスが、安全に戸口を通ってナビゲートすることができるかをロボットデバイスに実演するようにユーザーに促してもよい。ロボットデバイスは、戸口の一方の側へとナビゲートし、その後、ユーザーに、他方の側へと戸口を通過するやり方をロボットデバイスに対して実演させることができる。実演中に、ロボットデバイスは、マップ内のロボットデバイスの場所、及び／又はセンサーデータ（例えば、ドアの境界線、搬送要素及び／又は操作要素の構成、並びに本明細書に記載されるような他の感覚情報）などの情報を受動的に記録することができる。いくつかの実施形態では、ロボットデバイスは、図１６を参照して本明細書でさらに述べられるように、インタラクティブ学習テンプレートを用いて、戸口を通ってナビゲートするやり方を学習することができる。
【０１０９】
[0131]  いくつかの実施形態では、ユーザーは、ロボットデバイスの近くの現場にいてもよい。他の実施形態では、ユーザーは、遠隔地に位置してもよく、（例えば、図１に示され、上記に記載したような）ロボットデバイスに対するネットワーク接続により、計算デバイス（例えば、サーバー１２０、計算デバイス１５０）から、ロボットデバイスを制御してもよい。
【０１１０】
[0132]  本明細書に記載されるような、いくつかの実施形態では、ロボットデバイスは、環境内の変化をモニタリングするために、その周辺環境を能動的にスキャンすることができる。したがって、学習及び／又は実行中に、ロボットデバイスは、環境の継続的なセンシング又はスキャニングに従事し、それに応じて、環境の表現及びそのロボットデバイスが保存した環境情報を更新することができる。
【０１１１】
[0133]  いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動、すなわち、人間とのインタラクションを考慮したアクションを学習するように構成することができる。例えば、ロボットデバイスは、人間の周りで行われる操作スキル又はナビゲーションスキルを学習するように構成することができる。ロボットデバイスは、人間のオペレーター（例えば、近くのユーザー、又は遠隔に位置するロボットの監督者）による実演によって、社会的に適切な挙動を学習することができる。いくつかの実施形態では、ロボットデバイスは、インタラクティブな状況で（例えば、人間のオペレーターが、ロボットデバイスによるスキルの自律実行に介入し、スキルを実行するやり方をロボットデバイスに実演することによって）、挙動を学習するように構成されてもよい。ロボットデバイスは、人間のオペレーターによる介入（例えば、看護師がロボットデバイスを片側に押しやること）を検出すると、ロボットデバイスが人間のオペレーターによって制御され、実演に関連する情報及び実演が行われる知覚コンテキストを受動的に記録する学習モードへと切り替えるように構成されてもよい。ロボットデバイスは、この情報を用いて、スキルの修正モデルを生成し、ロボットデバイスがそのスキルを後で実行すべき適切な社会的コンテキストにそのモデルを関連付けることができる。一例として、ロボットデバイスは、人間のオペレーターがナビゲーション計画の自律実行に介入したことを検出することができ、介入の検出に応答して、人間のオペレーターによって制御される学習モデルへと切り替えることができる。人間がいるところでは、どのようにナビゲーション計画が修正されるべきであるかを（例えば、通路が空くのを待つ代わりに、ロボットデバイスが人間を通すように通路の脇に寄るべきであることを）人間のオペレーターが実演するときに、ロボットデバイスは、その周辺環境及びそのロボットデバイス自体の動作に関する情報を記録することができる。インタラクティブ学習に関するさらなる詳細は、図１６を参照して、本明細書に記載される。
【０１１２】
[0134]  図１１に示される実行モードでは、ロボットデバイスは、任意選択的に、７５０において、例えば、ユーザーインターフェース又は他のタイプのＩ／Ｏデバイスを用いて、学習モードでロボットデバイスによって以前に生成されたモデルなどのモデルを選択するようにユーザーに促すことができる。ロボットデバイスは、７５２において、モデルの選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、ユーザーからモデルの選択を受け取ることができ、又は代替的に、ロボットデバイスは、特定のルール及び／又は条件に基づいて、モデルを自動的に選択することができる。例えば、ロボットデバイスは、それが建物のある特定のエリアにいるときに（例えば、それがある特定の部屋又は階にいるときに）、特定の時間又は曜日中などにモデルを選択するようにプログラムされてもよい。代替的又は追加的に、ロボットデバイスは、選択されたマーカーのセットに基づいて、ある特定のモデルを選択することを知ることができる。７５４では、ロボットデバイスは、軌道を生成し、選択されたマーカーに対してスキルを実行する前に、選択されたマーカーの近くに移動するか否かを決定することができる。例えば、ロボットデバイスは、選択されたマーカーのセット及び選択されたモデルに基づいて、スキルを実行するためにより望ましい場所に配置されるように（例えば、マーカーに対してより近く、又はより近接するように、ある特定の角度からマーカーに面するように）ロボットデバイスが移動すべきか否かを決定することができる。ロボットデバイスは、スキルの実演中に記録された感覚情報に基づいて、この決定を下してもよい。例えば、ロボットデバイスは、スキルを実演されたときに、ロボットデバイスがマーカーのより近くに配置されたことを認識し、それに応じて、その位置を調整することができる。
【０１１３】
[0135]  ロボットデバイスが、選択されたマーカーに対して移動することを決定すると（７５４：YES）、ロボットデバイスは、７５６において、その位置を移動する（例えば、その場所及び／又は向きを調整する）ことができ、方法７００は、７０２に戻ることができ、そこでロボットデバイスは、環境の表現を取得するために環境を再びスキャンする。方法７００は、様々なステップを進んで７５４に戻ることができる。ロボットデバイスが、選択されたマーカーに対して移動しないことを決定すると（７５４：NO）、ロボットデバイスは、例えばロボットデバイスの操作要素に関するアクションの軌道を生成することができる。
【０１１４】
[0136]  具体的には、７５８において、ロボットデバイスは、選択されたマーカーのセットと、本明細書において「保存されたマーカー」又は「保存されたマーカーのセット」と呼ばれる、選択されたモデルに関連付けられたマーカーのセット（例えば、ロボットデバイスがスキルを学習したとき、すなわち、選択されたモデルを生成したときに選択された１つ又は複数のマーカー）との間の変換（例えば、平行移動）を行う関数を計算することができる。例えば、ロボットデバイスは、例えばエンドエフェクターなどのロボットデバイスの一部に対して、１つ若しくは複数の特定の場所及び／又は１つ若しくは複数の向きに存在した第１のマーカーのセットを用いて、スキルを教示されることが可能であり、後に、ロボットデバイスは、操作要素に対して、１つ若しくは複数の異なる場所及び／又は１つ若しくは複数の異なる向きに存在する第２のマーカーのセットを用いて、そのスキルを実行することができる。このような場合、ロボットデバイスは、第１のマーカーのセットの１つ若しくは複数の位置及び／又は１つ若しくは複数の向きと、第２のマーカーのセットの１つ若しくは複数の位置及び／又は１つ若しくは複数の向きとの間の変換を行う変換関数を計算することができる。
【０１１５】
[0137]  ７６０では、ロボットデバイスは、スキルが教示されたときに記録された各キーフレームにおいて、計算された変換関数を使用して、操作要素の一部（例えば、操作要素のエンドエフェクター）の位置及び向きを変換することができる。任意選択的に、７６２において、ロボットデバイスは、あらゆる環境的制約、例えば、サイズ、構成、及び／又は場所などの、環境内の物体及び／又はエリアの特徴を考慮に入れることができる。ロボットデバイスは、環境的制約に基づいて、操作要素の動作を制限することができる。例えば、ロボットデバイスは、それが備品室でスキルを実行しようとしていることを認識すると、ロボットデバイスは、操作要素の一部が備品収納庫内で壁又は他の物理的構造と接触することを回避するために、操作要素の位置及び向きを変換するときに、備品室のサイズを考慮に入れることができる。ロボットデバイスは、例えば、備品室内の容器のサイズ、備品室内の棚の場所などの、備品室に関連する他の環境的制約も考慮に入れることができる。ロボットデバイスは、図１７を参照して本明細書にさらに記載されるように、１つ又は複数の環境的制約を有する状況におけるスキルの実行に先立って、１つ若しくは複数の環境的制約に関する情報が与えられること、及び／又は１つ若しくは複数の環境的制約が教示されることが可能である。
【０１１６】
[0138]  任意選択的に、７６２において、ロボットデバイスは、逆運動学方程式又はアルゴリズムを使用して、７６２において、キーフレームごとに操作要素の関節の構成を決定することができる。エンドエフェクター及びマーカーのセットの位置及び向きは、タスク空間（例えば、ロボットデバイスが動作しているデカルト空間）で提供されてもよく、関節の向きは、関節又は構成空間（例えば、ロボットデバイスが点で表され、ｎが操作要素の自由度の数である、操作要素の構成に関連付けられたｎ次元空間）で提供され得る。いくつかの実施形態では、逆運動学計算は、ロボットデバイスがスキルを教示されたときに記録された関節構成情報（例えば、操作要素を用いた教示実演中に記録された関節の構成）によって誘導され得る。例えば、逆運動学計算は、各キーフレームで記録された関節構成を用いて、シード値が与えられること（例えば、計算の最初の推測が与えられること、又はバイアスが与えられること）が可能である。例えば、計算された関節構成が、隣接するキーフレームの関節構成から、あらかじめ規定された量を超えて逸脱しないことを必要とするなどの追加の条件も、逆運動学計算に課され得る。７６４では、ロボットデバイスは、操作要素がスキルを実行するための完全な軌道を生成するために、例えば関節空間において、あるキーフレームから次のキーフレームへの関節構成間の軌道を計画することができる。任意選択的に、ロボットデバイスは、本明細書で述べられるような環境的制約を考慮に入れることができる。
【０１１７】
[0139]  いくつかの実施形態では、ロボットデバイスが、操作要素（例えば、エンドエフェクター）の一部の位置及び向きを変換した後に、ロボットデバイスは、タスク空間における操作要素の軌道を計画することができる。このような実施形態では、方法７００は、７６０から直接７６４へと進むことができる。
【０１１８】
[0140]  ７６６及び７６８では、ロボットデバイスは、任意選択的に、ユーザーに軌道を提示し、例えば、ユーザーインターフェース又は他のＩ／Ｏデバイスを用いて、軌道の承認又は拒否をユーザーに促すことができる。代替的に、ロボットデバイスは、内部ルール及び／又は条件に基づいて、並びに関連の感覚情報を分析することによって、軌道を承認又は拒否してもよい。軌道が拒否された場合（７６８：NO）、ロボットデバイスは、任意選択的に、７７０において、選択されたモデルの１つ又は複数のパラメーターを修正することができ、７５８〜７６４において、第２の軌道を生成することができる。モデルのパラメーターは、例えば、モデル生成に含める異なる特徴（例えば、異なる感覚情報）を選択することによって修正することができる。モデルがＨＭＭモデルである、いくつかの実施形態では、ロボットデバイスは、決定された成功又は失敗に基づいて、モデルのパラメーターを変更することができ、ここでは、ロボットデバイスは、異なるパラメーターを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。モデルがＳＶＭモデルである、いくつかの実施形態では、ロボットデバイスは、本明細書に記載されるように、特徴空間又は構成パラメーター（例えば、カーネルタイプ、費用パラメーター又は費用関数、重み）を変更することによって、パラメーターを変更することができる。
【０１１９】
[0141]  軌道が承認された場合には（７６８：YES）、ロボットデバイスは、７７２において、生成された軌道を実行するために操作要素を動かすことができる。操作要素が計画された軌道を実行している間、ロボットデバイスは、７７４において、例えば、操作要素及びロボットデバイスの他のコンポーネント上の１つ又は複数のセンサーを用いて、例えば操作要素及び／又は環境に関する情報などの感覚情報の記録及び／又は保存を行うことができる。
【０１２０】
[0142]  任意選択的に、７７４において、ロボットデバイスは、スキルの実行が成功したか否か（例えば、物体とのインタラクションが、あらかじめ規定された成功基準を満たすか否か）を決定することができる。例えば、ロボットデバイスは、環境をスキャンし、例えば、１つ若しくは複数の物体の場所、及び／又は操作要素若しくはロボットデバイスの別のコンポーネントに対する、それらの物体の位置若しくは向きを含む、環境及びロボットデバイスの現在の状態を決定し、その現在の状態が、あらかじめ規定された成功基準と合致するか否かを決定することができる。あらかじめ規定された成功基準及び／又は学習された成功基準は、ユーザーによって提供されてもよく、又はいくつかの実施形態では、異なるロボットデバイス及び／又は計算デバイスによって提供されてもよい。あらかじめ規定された成功基準及び／又は学習された成功基準は、成功に関連する環境及び／又はロボットデバイスの異なる特徴に関する情報を示してもよい。いくつかの実施形態では、ユーザーは、実行が成功したことをロボットデバイスに示す入力も提供することができる。
【０１２１】
[0143]  ある特定の場所で物体を把持し、及び物体を拾い上げることであるとスキルが規定される、ある特定の例では、スキルの成功は、物体に関連付けられた１つ又は複数のマーカーが、互いに対して、及び／又はロボットデバイスに対して特定の関係にあることを検出すること、又はエンドエフェクター若しくは操作要素の関節（例えば、手首関節）によって十分な力若しくはトルクが経験されている（若しくは経験された）こと（これは、操作要素が物体の重さを支えており、したがって物体を拾い上げたことを意味する）を検出することとして教示及び／又は規定され得る。実行が成功しなかった場合（７７６：NO）、ロボットデバイスは、任意選択的に、７７０において、モデルのパラメーターを修正し、及び／又は７５８〜７６４において、新しい軌道を生成してもよい。実行が成功した場合（７７６：YES）、成功したインタラクションに関連するデータ（例えば、実行が成功したこと、及びどのようにそれが成功したかを示すデータ）が記録されてもよく、方法７００は、任意選択的に、最初に戻り、環境の新規のスキャンを行い得る。或いは、いくつかの実施形態では、方法７００は、終了してもよい。
【０１２２】
[0144]  いくつかの実施形態では、ロボットデバイスは、操作要素、搬送要素、及び／又はロボットデバイスの別のコンポーネント（例えば、頭部、目、センサーなど）の１つ又は複数の動作に関与するスキルを実行するように構成される。ロボットデバイスは、操作要素に関して上記に記載したことに類似して、スキルの軌道を計画するように構成され得る。例えば、７５０〜７５２において、ロボットデバイスは、スキルのモデルのユーザー選択を促し、それを受け取ることができ、又は或いは、スキルのモデルを自律的に選択することができる。７５８では、ロボットデバイスは、環境内で現在識別されているマーカーのセットと、選択されたモデルに関連付けられた、保存されたマーカーのセット（例えば、ロボットデバイスがスキルを学習したときに識別され、スキルのモデルと共に保存された１つ又は複数のマーカー）との間の変換を行う関数を計算することができる。このような変換は、搬送要素又はロボットデバイスの他のコンポーネントに関連付けられたキーフレームの変換を含み得る。７６０では、ロボットデバイスは、計算された関数を使用して、各キーフレームで、ロボットデバイスの１つ又は複数のコンポーネントの構成を変換することができる。７６４では、ロボットデバイスは、各変換されたキーフレーム間のロボットデバイスの１つ又は複数のコンポーネントの軌道を計画することができる。キーフレームの変換及び／又は軌道の計画を行う間、ロボットデバイスは、任意選択的に、スキルが実行されている状況に関連するいずれかの環境的制約を考慮に入れることができる。７７２では、ロボットデバイスは、計画された軌道に従って、ロボットデバイスの１つ又は複数のコンポーネントの動作を実施することができる。いくつかの実施形態では、ロボットデバイスは、７６２において、関節構成を決定し、７６６において、計画された軌道をユーザーに提示し、及び／又は図１１に示されるような他のオプションのステップを行ってもよい。搬送要素の動作に関与するスキルの一例は、ドアを開けることの場合がある。ユーザー（例えば、近くのユーザー、又は遠隔に位置するロボットの監督者）は、ロボットの基部を用いて（例えば、ドアを押し開くことによって）、ドアを開けることをロボットデバイスに指導することができる。ユーザーは、例えば、ジョイスティックなどの制御デバイスを使用して、又は基部を用いてドアを開けるアクションをロボットデバイスに物理的に指導すること（例えば、ロボットデバイスを押す、又は引き寄せること）によって、ロボットデバイスを指導することができる。ロボットデバイスは、ユーザーが動作を指導している間、情報の検知及び記録を行い、その情報を使用してスキルモデルを生成することができる。ロボットデバイスは、後に、そのスキルモデルを使用して、例えば、ユーザーのスキルの実演中の搬送要素に関連付けられたキーフレームを変換することによって、そのドア又は環境内の他のドアを開けるアクションを実行することができる。
【０１２３】
[0145]  図１２は、いくつかの実施形態による、ユーザーによって行われるアクションを含む、ロボット学習及び実行のためのシステムアーキテクチャを示すブロック図である。システム８００は、ロボット学習及び実行のために構成することができる。システム８００は、本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなどの、１つ又は複数のロボットデバイスを含んでもよく、アクティブセンシング８２２、マーカー識別８２４、学習及びモデル生成８２６、軌道の生成及び実行８２８、並びに成功モニタリング８２９として図１２に示される、モジュール、プロセス、及び／又は機能を実行することができる。アクティブセンシング８２２、マーカー識別８２４、学習及びモデル生成８２６、軌道の生成及び実行８２８、並びに成功モニタリング８２９は、図８〜１１に示される方法７００を参照して記載されたような、ロボットデバイスによって行われる１つ又は複数のステップに対応し得る。例えば、アクティブセンシング８２２は、方法７００のステップ７０２を含み、マーカー識別８２４は、方法７００のステップ７０４〜７１０の１つ又は複数を含んでもよく、学習及びモデル生成８２６は、ステップ７１２〜７３８の１つ又は複数を含んでもよく、軌道の生成及び実行８２８は、ステップ７１２、７１４、７１８、及び７５０〜７７４の１つ又は複数を含んでもよく、成功モニタリング８２９は、ステップ７７４及び７７６の１つ又は複数を含んでもよい。
【０１２４】
[0146]  システム８００は、例えば、１つ又は複数のカメラ８７２、（グリッパー８５６、及び１つ又は複数のセンサー８７０を含む）アーム８５０、表示デバイス８４２、並びにマイクロホン８４４を含む、１つ又は複数のデバイスと接続（例えば、通信）することができる。システム８００は、表示デバイス８４２、マイクロホン８４４、及び／又は他のＩ／Ｏデバイス（図示されない）を用いて、１つ又は複数のユーザーアクション８８０に関連するユーザーから入力を受け取ることができる。ユーザーアクション８８０は、例えば、ユーザーがマーカーを承認し、又は環境の再スキャンを要求する８８２、ユーザーが１つ又は複数のマーカーを選択する８８４、ユーザーが関連情報を選択してモデルを生成する８８６、ユーザーがスキルを実行するためのモデルを選択する８８８、ユーザーがスキルを実行するための軌道を承認する８９０、ユーザーが実行されたスキルの成功を確認する８９２、ユーザーが運動感覚学習によってスキルを教示する８９４を含み得る。
【０１２５】
[0147]  アクティブセンシング８２２に関して、システム８００は、１つ又は複数のカメラ８７２を用いて環境をスキャンし、その環境に関する感覚情報（環境内の１つ又は複数のマーカーに関連付けられた情報を含む）を記録する。マーカー識別８２４に関して、システム８００は、感覚情報を分析することにより、環境内の１つ又は複数のマーカーを識別し、例えば表示デバイス８４２を用いて、１つ又は複数の入力をユーザーから受け取ることができる（ユーザーがマーカーを承認し、又は環境の再スキャンを要求する８２２を示す）。学習及びモデル生成８２６に関して、システム８００は、１つ若しくは複数のカメラ８７２及び／又はアーム８５０上の１つ若しくは複数のセンサー８７０によって収集された感覚情報を受信し、その情報を用いて、スキルのモデルを生成することができる。学習及びモデル生成８２６の一部として、システム８００は、例えば表示デバイス８４２及び／又はマイクロホン８４４を用いて、１つ又は複数の入力をユーザーから受け取ることができる（スキルを教示するための１つ若しくは複数のマーカーのセットをユーザーが選択した８８４、モデルの生成に使用するための、記録された感覚情報の特定の特徴をユーザーが選択した８８６、及び／又はユーザーがスキルを実演している８９４を示す）。軌道の生成及び実行８２８に関して、システム８００は、計画された軌道を生成し、その軌道を実行するためにアーム８５０の動作を制御することができる。軌道の生成及び実行８２８の一部として、システム８００は、例えば表示デバイス８４２を用いて、１つ又は複数の入力をユーザーから受け取ることができる（軌道を生成するためのモデルをユーザーが選択した８８８、及び／又はユーザーが生成された軌道を承認又は拒否した８９０を示す）。成功モニタリング８２９に関して、システム８００は、スキルの実行中に１つ又は複数のセンサー８７０によって記録された感覚情報を分析することによって、スキルの実行が成功したか否かを決定することができる。成功モニタリング８２９の一部として、システム８００は、例えば表示デバイス８４２及び／又はマイクロホン８４４を用いて、１つ又は複数の入力をユーザーから受け取ることができる（実行が成功したことをユーザーが確認した８９２を示す）。
【０１２６】
[0148]  特定の１つ若しくは複数のデバイス、及び／又はシステム８００と、上記１つ若しくは複数のデバイスとの間の接続が図１２に示されるが、本明細書に記載される実施形態のいずれによっても、追加の１つ又は複数のデバイス（図示されない）が、システム８００と通信することによって、システム８００から情報を受信し、及び／又はシステム８００に情報を送信することが可能であることが理解される。
【０１２７】
[0149]  図１３〜１７は、本明細書に記載される実施形態による、１つ又は複数のロボットデバイスを含むロボットシステム（例えば、ロボットシステム１００）によって行われ得る方法１３００及び１４００を示すフロー図である。例えば、方法１３００及び／又は１４００は、単一のロボットデバイス及び／又は複数のロボットデバイスによって行われ得る。
【０１２８】
[0150]  図１３に示されるように、ロボットデバイスは、１３０１において、実行モードで動作するように構成される。実行モードでは、ロボットデバイスは、環境内で、自律的にアクションを計画し、実行することができる。どのアクションを実行すべきかを決定し、及び／又はアクションを実行するやり方を計画するために、ロボットデバイスは、１３０４において、環境をスキャンし、並びに環境及び／又は環境内の物体に関する情報を収集することができ、１３０５において、この情報を用いて、環境の表現又はマップ（例えば、表現１６００）を構築及び／又は変更することができる。ロボットデバイスは、繰り返し（例えば、あらかじめ規定された時刻及び／又は時間間隔で）又は継続的に環境をスキャンし、環境に関してそれが収集した情報に基づいて、環境の表現を更新することができる。上記の方法に類似して、ロボットデバイスは、１つ又は複数のセンサー（例えば、１つ若しくは複数のセンサー２７０若しくは４７０、及び／又は１つ若しくは複数の撮像デバイス４７２）を用いて、環境に関する情報を収集することができる。
【０１２９】
[0151]  いくつかの実施形態では、ロボットデバイスは、１３０７におけるデータ追跡及び／又は分析のために、１３０４において、環境を繰り返し及び／又は継続的にスキャンすることができる。例えば、ロボットデバイスは、自律的に、又は（例えば、ロボットの監督者によって）遠隔駆動されて、環境（例えば、病院などの建物）中を移動し、環境、環境内の物体などに関するデータを収集することができる。この情報は、例えば、病院の備品及び／又は設備を管理するデータ追跡及び分析要素（例えば、データ追跡及び分析要素１６０６）によって使用され得る。いくつかの実施形態では、ロボットデバイスは、様々な人間（例えば、患者）に関する情報を、そのような患者の挙動を追跡し（例えば、薬物及び／又は治療の順守）、診断検査を行い、及び／又はスクリーニングなどを実施するために収集することができる。
【０１３０】
[0152]  いくつかの実施形態では、ロボットデバイスは、１３０９におけるモデル化及び学習目的で、１３０４において、環境を繰り返し及び／又は継続的にスキャンすることができる。例えば、ロボットデバイスは、それの環境及び／又はその環境内の物体に関するデータ（例えば、人間と、ロボットのアクションに応答した人間の挙動とを含む）を収集し、その情報を用いて、新しい挙動及び／又はアクションを開発することができる。いくつかの実施形態では、ロボットデバイスは、ある環境に関する大量の情報を収集することができ、この情報は、その環境に固有のモデルをさらに改良及び／又は生成するために、ロボットデバイスによって使用され得る。いくつかの実施形態では、ロボットデバイスは、この情報を使用して、ある特定の環境にロボットデバイスをさらに適応させることができる（例えば、その環境内でスキルモデル及び／又は挙動の生成及び／又は修正を行うことによって）ロボットの監督者（例えば、遠隔のユーザー）にこの情報を提供することができる。ロボットの監督者は、そのロボットデバイス及び／又は他のロボットデバイスによって収集された情報、及び／又はロボットが使用しているモデルのパラメーターを繰り返し（例えば、特定の時間間隔で）及び／又は継続的に（例えば、リアルタイムで）微調整することができる。いくつかの実施形態では、ロボットの監督者は、ロボットデバイスとのこの能動的な情報交換により、繰り返し及び／又は継続的に、ある特定の環境にロボットデバイスを適応させることができる。例えば、ロボットの監督者は、環境中を通ってナビゲートするためにロボットデバイスが使用中であり得る、計画された経路を修正することができ、これは、次に、その搬送要素の動きを生成するためにロボットデバイスによって使用される情報及び／又は１つ若しくは複数のモデルを変更することができる。共に、ロボットの監督者によって提供され、及び／又はロボットデバイスによって行われるこれらの変更は、環境のマップ（例えばマップ１６００）の１つ又は複数の層（例えば、マップの社会的層又は意味層など）に供給され得る。
【０１３１】
[0153]  １３０６では、ロボットデバイスは、環境内でどの１つ又は複数のアクションを実行すべきかを決定すること、すなわち、特定のアクションを実行可能なリソース又はコンポーネントのセットに関するアービトレーションを行うことができる。ロボットデバイスは、１つ又は複数のアービトレーションアルゴリズム（例えば、１つ又は複数のアービトレーションアルゴリズム１７５８）に基づいて、異なるアクション間で選択することができる。ロボットデバイスは、自律的に、及び／又はユーザー入力を用いて、アービトレーションを行うことができる。例えば、ロボットデバイスが、そのコンポーネントの１つ若しくは複数、及び／又は環境内の物体の現在の状態を決定することができないとき、又はロボットデバイスが、どのアクションを実行すべきかを決定すること、及び／又は選択されたスキルを実行するやり方を計画することができないときに、ロボットデバイスは、ユーザー入力を要求するように構成されてもよい。いくつかの実施形態では、ロボットデバイスが、ある特定の状況を熟知している（例えば、その状況においてアクションを以前に学習及び／又は実行した）場合には、アクションのセットの中から自律的に選択し、ロボットデバイスが、新しい状況に遭遇した場合には、ユーザー入力を要求するように構成されてもよい。ロボットデバイスが新しい状況に遭遇したときに、ロボットデバイスが実行すべき適切なアクションをユーザーが選択することをロボットデバイスが要求することができ、又は代替的に、ロボットデバイスが、アクションを選択し、そのアクションの選択を確認するようにユーザーに促すことができる。
【０１３２】
[0154]  いくつかの実施形態では、人間のオペレーター（例えば、ロボットの監督者）は、ロボットデバイスをモニタリングし、人間のオペレーターがロボットデバイスによるアクションの実行に介入したいときに、ロボットデバイスに信号を送ることもできる。人間のオペレーターは、ロボットデバイスの近くに、及び／又はロボットデバイス、若しくはロボットデバイスをモニタリングするために使用され得る近くのデバイスにネットワークを介して接続された遠隔計算デバイスに位置してもよい。例えば、人間のオペレーターが、安全上の理由から（例えば、人間若しくはロボットデバイスの周囲の環境への害を阻止するため）、及び／又はロボットデバイスに対する損傷を防止するために、新しいスキル又は挙動をロボットデバイスに教示したいときに、人間のオペレーターは、ロボットデバイスによるアクションの実行に介入することを決断し得る。
【０１３３】
[0155]  （例えば、不慣れな状況のため、又はユーザーからの信号に応答して）ユーザー入力が必要であるとの決定に応答して（１３１２：YES）、ロボットデバイスは、任意選択的に、１３１４において、ユーザー入力を提供するようにユーザーに促すことができる。例えば、ロボットデバイスは、搭載ディスプレイ又は遠隔デバイスに位置するディスプレイに（例えば、遠隔又はクラウドインターフェースを用いて）、ユーザー入力を要求するプロンプトをユーザーに対して表示させることができる。ロボットデバイスは、１３１５において、ユーザー入力を受け取り、そのユーザー入力に基づいてアービトレーションを行うことができる。ユーザー入力が必要とされない場合には（１３１２：NO）、ロボットデバイスは、自律的にアービトレーションを行うことを継続する。
【０１３４】
[0156]  ロボットデバイスが、実行すべきアクションを選択した後に、ロボットデバイスは、１３０８において、アクションを計画及び実行することができる。上述の通り、アクションは、（例えば、本明細書に記載される操作要素などの操作要素に関与する）操作アクション、又は（例えば、本明細書に記載される搬送要素などの搬送要素に関与する）移動、及び／又は社会的挙動などのタスクに関連付けられ得る。アクションを実行する間、ロボットデバイスは、１３０４において、その周辺環境をスキャンし続けることができる。ロボットデバイスが、それの現在の状態及び／又は環境（例えば、環境内の物体の場所）の状態の変化を検出すると、ロボットデバイスは、１３１０において、ロボットデバイスがアクションの実行を中断すべきか否かを決定するために、その変化を評価することができる。例えば、ロボットデバイスは、そのコンポーネントの１つ若しくは複数と、環境内の人間若しくは他の物体との物理的係合の検出に応答して（例えば、人間のオペレーターが、操作要素、搬送要素などと接触したとき）、又はすぐ近くに人間若しくは他の物体の存在を検出したときに、アクションの実行を中断することを決定し得る。追加的又は代替的に、ロボットデバイスは、ユーザー（例えば、ロボットの監督者）からの信号の受信に応答して、アクションの実行を中断することを決定し得る。いくつかの実施形態では、ロボットデバイスは、アクションの実行中の特定の時点で、例えば、ロボットデバイスが、インタラクティブ学習テンプレートに規定されるように、ユーザーがアクションの一部を実演することを必要とし得るときに、アクションの実行を中断するように前もって構成されてもよい。インタラクティブ学習テンプレートを使用した学習に関するさらなる詳細は、図１５を参照して、本明細書に説明される。
【０１３５】
[0157]  ロボットデバイスが、アクションの実行の中断を決定した場合には（１３１０：YES）、ロボットデバイスは、１３１２において、ユーザー入力が必要とされるか否かを決定することができる。上述の通り、ユーザー入力が必要とされることをロボットデバイスが決定した場合には（１３１２：YES）、ロボットデバイスは、任意選択的に、１３１４〜１３１５において、ユーザー入力を促し、及び／又はユーザー入力を受け取ることができる。次いで、ロボットデバイスは、１３０４における、周辺環境のセンシング又はスキャニング、１３０６における、リソースのセットに関するアービトレーションの実施、及び／又は１３０８における、アクションの実行に戻ることができる。任意選択的に、図１４及び１５に示されるように、ユーザー入力が必要とされることをロボットデバイスが決定すると、ロボットデバイスは、１４０２において学習モードに切り替え、次に、１４０４におけるスキルの学習、又は１４０６における環境的制約の学習に進み得る。ユーザー入力が必要とされないことをロボットデバイスが決定した場合には（１３１２：NO）、ロボットデバイスは、１３０４における、周辺環境のセンシング又はスキャニング、１３０６における、リソースのセットに関するアービトレーションの実施、及び／又は１３０８における、アクションの実行に戻ることができる。アクションが中断される必要がないことをロボットデバイスが決定した場合には（１３１０：NO）、ロボットデバイスは、１３０８において、アクションの実行を継続することができる。
【０１３６】
[0158]  いくつかの実施形態では、例えば、ロボットデバイスが、ある特定のタスク又は挙動を実行することを助けるために、ロボットデバイスは、いつロボットデバイスがユーザー入力を求める必要があり得るかを決定するように構成されてもよい。このような手助けは、特定のアクションの実行中、及び／又はロボットデバイスが環境中をナビゲートしている間の両方で要求され得る。ロボットデバイスは、それの学習済みモデル、並びに環境及びその環境内の物体に関する情報を使用して、１３１２において、ロボットデバイスがいつユーザー入力を求める必要があるか、及びそのユーザー入力を求めるやり方を決定するように構成されてもよい。例えば、ロボットデバイスは、それの環境内のドアのタイプ及び異なる複数のユーザーの知識を用いて、助けを求めるとき、及びそのやり方（例えば、異なる複数のユーザーに、異なる複数のタイプのドア（例えば、特定の許可又は知識を必要とするキーパッドを備えたドア）を開けることを手伝うように求めること、及び他の人たちよりも手助けを提供する傾向がより高い可能性がある特定のタイプのユーザーに依頼することを知ること（例えば、看護師対医師））を決定することができる。
【０１３７】
[0159]  いくつかの実施形態では、例えば、１３１５においてロボットデバイスによって受け取られたユーザー入力には、スキルの選択及び／又は実行が、適切であったか否か、及び／又は成功したか否かに関するユーザーからのフィードバックが含まれ得る。例えば、ユーザーは、アクションの良い例又は悪い例として、ロボットデバイスによって実行されている（又はロボットデバイスによって以前に実行された）アクション（例えば、タスク又は挙動）にタグを付けることができる。ロボットデバイスは、このフィードバックを（例えば、このアクション及び／又は他のアクションに関連付けられた成功基準として）保存し、それを使用して、今後、そのアクション又は他のアクションの選択及び／又は実行を調整することができる。
【０１３８】
[0160]  いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動に従事するように構成される。ロボットデバイスは、人間のいる環境で動作するように設計され得る。人間の周りで動作するときに、１３０６〜１３０８において、ロボットデバイスは、そのアクションが人間によってどのように認識され得るかを絶えず計画するように構成され得る。例えば、ロボットデバイスが移動しているときに、ロボットデバイスは、１３０４において、人間を探して、その周辺環境をモニタリングし、１３０８において、それが遭遇した人間との社会的インタラクションに従事することができる。ロボットデバイスが、タスクを全く実行していない（例えば、静止している）ときは、ロボットデバイスは、１３０４において、人間を探して、その周辺環境をモニタリングすることを継続し、１３０６において、人間がロボットデバイスの存在をどのように認識し得るかに基づいて、ロボットデバイスが、１つ又は複数の社会的に適切な挙動を実行する必要があり得るか否かを決定することができる。このような実施形態では、ロボットデバイスは、特定のコンテキスト又は状況を所与として、社会的に適切な挙動を計画及び実行する基礎的フレームワーク（例えば、１つ又は複数のアービトレーションアルゴリズム）を用いて構成され得る。ロボットデバイスは、複数のリソース（例えば、操作要素、搬送要素、頭部又は目などの人型コンポーネント、音生成器など）を管理し、これらのリソースの１つ又は複数に基づいて、適切な挙動を生成するように構成され得る。
【０１３９】
[0161]  図１８は、注目機構（例えば、目要素）に関するアービトレーションを行う、ロボットデバイスのコンポーネントの一例を提供する。例えば、ロボットデバイスは、カメラ、又は視線（例えば、目要素）を有すると人間によって認識され得る他の要素を有してもよい。ロボットデバイスの近くの人間は、目要素が向けられた方向をロボットデバイスが注目しているものとして認識し得る。したがって、ロボットデバイスは、ロボットデバイスが動作しているとき、及び／又は人間の近くにいるときに、目要素がどこに向けられているかを決定するように構成されてもよい。ロボットデバイスが、人間の周りで動作するとき、及び／又は人間がいるところで、社会的に適切な挙動を維持するように、ロボットデバイスは、目要素の使用のアービトレーションを絶えず行うことができる。
【０１４０】
[0162]  図１８に示されるように、ロボットデバイスの異なる複数のコンポーネントが、視線ターゲット（例えば、ある特定の方向に目要素を向けさせること）を要求し得る。アクティブセンシングに関連する第１のコンポーネント（例えば、カメラ、レーザー、又は他のセンサー）は、１５１０において、物体が目要素の視野内にあることを決定することができる。第１のコンポーネントはさらに、１５１４において、物体が人間であることを決定することができる。物体が人間であるとの決定に応答して、第１のコンポーネントは、人間の顔に目要素を向けさせるために、要求１５１６を中央リソースマネージャー１５０８（例えば、制御ユニット（例えば、１つ又は複数の制御ユニット２０２、３０２及び／又は１７０２）及び／又は制御ユニットのコンポーネント）に送ることができる。ナビゲーションアクションに関連する第２のコンポーネント（例えば、カメラ、レーザー、又は他のセンサー）は、１５２０において、ある特定の場所（例えば、ナビゲーションの中間又は最終目的地）が、目要素の視界内にあることを決定することができる。その場所が視界内にあるとの決定に応答して、第２のコンポーネントは、その場所に目要素を向けさせるために、要求１５２２を中央リソースマネージャー１５０８に送ることができる。操作アクションに関連する第３のコンポーネント（例えば、操作要素上のセンサー、カメラ、又は他のセンサー）は、１５３０において、ロボットデバイスが、物体と係合していること（例えば、ロボットデバイスが物体を運んでいること、人間がロボットデバイスに接触したこと）を決定することができる。ロボットデバイスが物体と係合しているとの決定に応答して、第３のコンポーネントは、物体に目要素を向けさせるために、要求１５３２を中央リソースマネージャー１５０８に送ることができる。
【０１４１】
[0163]  中央リソースマネージャー１５０８は、ロボットデバイスのコンポーネントから要求１５１６、１５２２、及び１５３２を受け取り、１５４０において、どの方向に目要素を向けるべきかを決定するためにアービトレーションを行うことができる。どの方向に目要素を向けるべきかを決定するときに、中央リソースマネージャー１５０８は、規定されたルール又は制約（例えば、社会的に適切な制約）を考慮に入れることができる。これらの規定されたルールには、例えば、あらかじめ規定された期間（例えば、約５秒）の間、目要素を２回動かさないこと、少なくとも、あらかじめ規定された最短期間（例えば、約５秒）の間、目要素をある方向に向けさせること、非人間物体と人間とで異なり得る、あらかじめ規定された最長期間の後に、目要素を動かすことなどが含まれ得る。規定されたルールは、視線リソースを管理するためのアービトレーションアルゴリズムにエンコードされ得る。
【０１４２】
[0164]  いくつかの実施形態では、中央リソースマネージャー１５０８は、社会的コンテキスト及び環境に関して収集された他の情報に基づいて、視線リソースのアービトレーションを行うことができる。例えば、ロボットデバイスは、ある挙動を特定の場所に関連付けるように構成されてもよい（例えば、混雑した戸口又は通路を通ってナビゲートしようと試みる前に、人がその戸口又は通路を通過するのを待つこと、静かなエリアでは、より小さい音で動作する（例えば、サウンド及び／又はスピーチ機能性の使用を控える）ことなど）。ロボットデバイスは、このような場所に関連する社会的コンテキスト情報を捕捉し、それをナビゲーションに使用される（図１９を参照して本明細書に記載されるような）環境の表現に加えるように構成されてもよい。いくつかの実施形態では、人間のオペレーターが、社会的コンテキスト情報をロボットデバイスに提供することも可能であり、ロボットデバイスが、それが動作する環境に関してより多くを学習するにつれて、ロボットデバイスは、経時的に、この情報を適応させることができる。
【０１４３】
[0165]  図１５〜１７は、学習モードで動作するロボットデバイスのフロー図を示す。上述の通り、ロボットデバイスは、実行モードで動作し、例えば、１３１２において、ロボットデバイスがユーザー入力を必要とすることを決定したときに、学習モードでの動作に切り替えることができる。代替的又は追加的に、ロボットデバイスは、例えばロボットデバイスが新しい環境（例えば、新しいエリア、建物など）に最初に配備されたときに、学習モードで動作するように設定されてもよい。ロボットデバイスは、ロボットデバイスが実行モードでの動作に切り替え可能であることをユーザーがロボットデバイスに示すまで、及び／又はロボットデバイスが実行モードでの動作に切り替え可能であることをロボットデバイスが決定するまで、学習モードで動作してもよい。
【０１４４】
[0166]  学習モードで動作するときに、ロボットデバイスは、１４０４において、スキルを学習すること、及び／又は１４０６において、環境的制約を学習することができる。ロボットデバイスは、スキルの既存のモデル（例えば、スキルの汎用モデル）を用いて、又は用いずに、スキルを学習するように構成されてもよい。既存のモデルを用いずにスキルを学習する（例えば、予備知識に頼ることなくスキルを学習する）場合には、ロボットデバイスは、図１０を参照して本明細書に記載されるように、スキルの実演が指導された後に、スキルのモデルを生成することができる。既存のモデル（例えば、スキルの汎用モデル）を用いてスキルを学習する場合には、ロボットデバイスは、既存のモデルを用いてスキルの実行を開始し、ユーザーがスキルの一部を実演することをロボットデバイスが必要とするときに、ユーザー入力を要求することができる。スキルの既存のモデルは、インタラクティブ学習テンプレート（すなわち、スキルの実行中の指定された時点で、ユーザーからの入力を用いてスキルを学習するようにロボットデバイスに指導するためのテンプレート）の一部であってもよく、又はその一部を形成してもよい。
【０１４５】
[0167]  図１６は、インタラクティブ学習テンプレートを用いてスキルを学習するプロセスを示す。ロボットデバイスは、ある特定の状況（例えば、建物）に配備され得る。ロボットデバイスは、１４１０において、スキルの既存のモデルの選択を行うことができる。スキルの既存のモデルは、ロボットデバイスが動作している環境又は状況に特化していない、スキルの汎用モデルでもよい。１４１２において、ロボットデバイスは、図１１を参照して本明細書に述べられたプロセスに類似のプロセスに従って、スキルモデルを使用してスキルを実行する計画を生成することができる。１４１４では、ロボットデバイスは、ユーザー入力及び／又は特化を必要としない、スキルの１つ又は複数のステップ又は部分を行うことによって、スキルの実行を開始することができる。スキルの一部（例えば、ロボットデバイスが実行の仕方を決定できない部分、又はロボットデバイスがスキルを実行している状況への特化を必要とするスキルの部分）に到達すると（１４１６：YES）、ロボットデバイスは、１４１８において、スキルのその部分の実演を提供するようにユーザーに促すことができる。いくつかの実施形態では、インタラクティブ学習テンプレートは、ロボットデバイスがユーザーに実演を促すべき時をロボットデバイスに示すことができる。代替的又は追加的に、例えば、ロボットデバイスが、環境内の物体の状態を決定することができず、及び／又は環境によって課される制約を所与として、スキルのある特定の部分を実行する計画を生成することができない場合に、ロボットデバイスがスキルの一部を実行できるためにはユーザー入力を必要とすることをロボットデバイスは自律的に決定することができる。いくつかの実施形態では、ユーザー（例えば、ロボットの監督者）は、ロボットデバイスのスキルの実行もモニタリングし、ユーザーがロボットデバイスに対してスキルの一部を実演したいときに、ロボットデバイスに信号を送ることができる。ロボットデバイスは、ユーザーから信号を受信すると、１４１８に進むことを決定することができる。
【０１４６】
[0168]  １４２０では、ユーザーは、ロボットデバイスに動作を指導することができる。例えば、ユーザーは、ロボットデバイスの１つ又は複数のコンポーネント（例えば、操作要素、搬送要素など）を動かすことにより、スキルの一部を実演することができる。ロボットデバイスに動作を指導する間、ユーザーは、任意選択的に、１４２２において、ロボットデバイスのコンポーネントの１つ若しくは複数、及び／又は環境の状態に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、ロボットデバイスの動作中のキーフレームにおいて、操作要素、搬送要素、及び／又は環境に関する情報を含む感覚情報を捕捉するための信号をユーザーから受信することができる。代替的に、ロボットデバイスは、感覚情報を捕捉すべき時を自律的に決定することができる。例えば、ロボットデバイスがユーザーによって動かされている間、ロボットデバイスは、そのコンポーネントの１つ又は複数の変化をモニタリングすることができ、それらの変化が閾値を超えたとき、又はコンポーネントの軌道に方向変化が生じたときに、ロボットデバイスは、自律的に、その時点をキーフレームとして選択し、そのキーフレームにおけるロボットデバイス及び／又は環境に関する情報を記録することができる。ユーザーからの信号の受信、又は自律的な感覚情報を捕捉する決定に応答して、ロボットデバイスは、１４２４において、そのセンサーの１つ又は複数を用いて、感覚情報を捕捉することができる。ロボットデバイスの動作中に、ロボットデバイスは、１４３０において、継続的又は周期的に、ユーザーから信号を受信することなく、感覚情報を記録することもできる。
【０１４７】
[0169]  動作又は実演が完了すると（１４２６：YES）、ロボットデバイスは、任意選択的に、１４３２において、実演されたスキルの一部を学習することに関連する特徴の選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、１４３２において、自律的に、特徴の選択を行い、及び／又はロボットデバイスによって行われた選択を確認するようにユーザーに促すことができる。１４３６では、ロボットデバイスは、実演に関連する情報を保存することができる。スキルの実行が完了していない場合には（１４１７：NO）、ロボットデバイスは、１４１４において、スキルの実行を継続し、必要であれば、１４１８において、スキルの部分のさらなる実演をユーザーに促すことができる。ロボットデバイスは、アクションの実行が完了するまで（１４１７：YES）インタラクティブな学習プロセスを繰り返し続けることができ、このアクションの実行の完了時点で、ロボットデバイスは、１４３８において、ロボットデバイスがスキルを実行した状況に特化した部分を有するスキルのモデルを生成することができる。次に、ロボットデバイスは、別のスキル及び／又は環境的制約を学習することができる。代替的に、ロボットデバイスが、別のスキル及び／又は環境的制約を学習する必要がない場合には、ロボットデバイスは、１３０１において、実行モードに切り替わり、環境のセンシング又はスキャニング、アービトレーションの実施、及び／又はアクションの実行を開始することができる。
【０１４８】
[0170]  インタラクティブ学習テンプレートを用いて、ロボットデバイスは、スキル用のモデルの初期セットが教示及び／又は提供される。ロボットデバイスが、ある特定の環境（例えば、病院）において現場で配備される前に、モデルの初期セットが開発されてもよい。例えば、このモデルの初期セットは、工場の状況下で、又は訓練場所で開発され、ロボットデバイスに利用可能にされてもよい。一旦現場で配備されると、ロボットデバイスは、例えば、本明細書に記載されるようなインタラクティブ学習セッションによって、モデルの初期セットを環境に適応又は特化させることができる。また、新しいモデルの開発（例えば、工場又は訓練場所においてオフサイトで）に伴って、新しいモデルは、例えば、ネットワーク接続により、ロボットデバイスに利用可能にされてもよい。したがって、本明細書に記載されるシステム及び方法により、これらのロボットデバイスが現場に配備された後であっても、ユーザー及び／又はエンティティーが、スキルの新しいモデルを開発し、それらをロボットデバイスに提供し続けることが可能となる。
【０１４９】
[0171]  インタラクティブ学習セッションの一例は、アイテムを部屋の中に移動させるための汎用モデルを適応させることに関与し得る。ロボットデバイスは、汎用モデルを備え、病院において現場で配備され得る。病院に配備されると、ロボットデバイスは、１４１２〜１４１４において、アイテムを患者の部屋の中に移動させるスキルの実行を自律的に開始することができる。例えば、ロボットデバイスは、病院のマップを使用して、患者の部屋まで自律的にナビゲートすることができる。ロボットデバイスが、患者の部屋までのナビゲートを終えると、ロボットデバイスは、患者の部屋の中のどこにアイテムを降ろすべきかをユーザーが実演することをロボットデバイスが必要とすることを決定することができる（１４１６：YES）。ロボットデバイスは、１４１８において、それを特定の荷降ろし場所まで動かすことをユーザーに促すことができる。ユーザーは、１４２０において、例えば、ジョイスティック又は他のタイプの制御デバイスを用いて、ロボットデバイスの動作を制御することができる。上述の通り、ユーザーは、ロボットデバイスの近くの現場にいてもよく、又は遠隔地に位置してもよい。ユーザーがロボットデバイスを荷降ろし場所まで移動させる間、ロボットデバイスは、１４２４及び／又は１４３０において、それの現在の状態及び／又はそれの周辺環境に関する感覚情報を捕捉することができる。荷降ろし場所に到着すると、ロボットデバイスは、１４１４において、自律実行に戻るように切り替えることができる。例えば、ロボットデバイスは、既知のアームの動き（例えば、ロボットデバイスに搭載されたコンテナ内でアイテムの位置を特定し、操作要素を用いてアイテムをつかみ、及びアイテムを解放する汎用位置にその操作要素を位置付けること）を実行することができる。ロボットデバイスは、スキルの一部（例えば、アイテムを棚の上に降ろすこと）をユーザーが実演することをロボットデバイスが必要としているという２度目の決定を行うことができる（１４１６：YES）。ロボットデバイスは、１４１８において、別の実演をユーザーに促すことができ、ユーザーは、アイテムが棚の上の適所に位置するように操作要素を動かすことができる。ロボットデバイスは、１４２４及び／又は１４３０において、操作要素の動作中に、感覚情報を再び捕捉することができる。ロボットデバイスは、１４１４において、制御を再度取り戻し、自律的に、操作要素のグリッパーを開いて棚の上にアイテムを降ろし、その後、操作要素を静止位置に戻るように格納することができる。次に、ロボットデバイスは、実行が完了したことを決定し（１４１７：YES）、１４３８において、２つのユーザー実演中にロボットデバイスが捕捉した情報に基づいて、スキルの特化モデルを生成することができる。
【０１５０】
[0172]  インタラクティブ学習セッションの他の例には、例えば、上述のように、ある特定の通路及び／又は戸口を通ってナビゲートするために、ナビゲーションアクションを適応させることが含まれ得る。
【０１５１】
[0173]  いくつかの実施形態では、ユーザー（又はロボットデバイス）は、スキルのモデルを、そのスキルが実演された後、及び／又はそのスキルのモデルが生成された後に修正することができる。例えば、ユーザーは、スキルの実演中に捕捉されたキーフレームを反復し、これらのキーフレームの保持、修正、及び／又は削除を行うか否かを決定することができる。１つ又は複数のキーフレームの修正及び／又は削除を行うことによって、ユーザーは、これらのキーフレームに基づいて生成されたスキルのモデルを修正することができる。キーフレームに基づいた実演の反復及び適応バージョンを使用する例は、本明細書に援用される、Proceedings of the 7th Annual ACM/IEEE International Conference on Human-Robot Interaction (2012), pp.391-98で公表され、Akgunらによって執筆された、「Trajectories and keyframes for kinesthetic teaching: a human-robot interaction perspective」というタイトルの論文に記載されている。別の例として、インタラクティブなグラフィカル・ユーザー・インターフェース（「ＧＵＩ」）を使用して、計画された実行中に、ロボットデバイスのコンポーネントの位置、向きなどに関連する分散がどのくらい許容可能であるかをユーザーが示すことができるように、スキルの実演中に捕捉されたキーフレームをユーザーに表示することができる。キーフレームと共にＧＵＩを使用する例は、参照により本明細書に援用される、http://sim.ece.utexas.edu/static/papers/kurenkov_iros2015.pdfから入手できる、IEEE/RSJ International Conference on Intelligent Robots and Systems (2015)で公表された、Kurenkovらによって執筆された、「An Evaluation of GUI and Kinesthetic Teaching Methods for Constrained-Keyframe Skills」というタイトルの論文に記載されている。これらの例により、スキルの学習後に、スキルのモデルの修正が可能となる。本明細書に記載されるシステム及び方法によって、ロボットデバイスがスキルの特定の部分の計画及び実行を行う一方で、現在進行中のスキルの実行中に、スキルの他の部分をユーザー実演に委ねることを可能にする学習テンプレートがさらに提供される。また、本明細書に記載されるシステム及び方法によって、例えば、自律的に、又は学習プロセスに先立ってロボットデバイスに提供された情報に基づいて、いつデータを収集すべきか、及び／又はいつスキルの一部の実演を要求すべきかを決定することができるロボットデバイスが提供される。
【０１５２】
[0174]  図１７は、環境的制約を学習するプロセスを示す。上記の通り、ロボットデバイスは、環境的制約を学習するように構成することができ、環境的制約は、その環境的制約を含む状況において学習及び／又は実行されるスキルのセットに適用可能となり得る。１４５０では、ロボットデバイスは、任意選択的に、制約のタイプ及び／又はその制約に関連する物体の選択をユーザーに促すことができる。制約のタイプは、例えば、障壁（例えば、壁、面、境界線）、サイズ及び／又は寸法、立入禁止区域、物体の場所、時間的制約などでもよい。１４５２において、ロボットデバイスは、制約のタイプ及び／又は物体の選択を受け取ることができる。任意選択的に、１４５４において、ユーザー（又は他のロボットデバイス）は、環境的制約を実演するための動作をロボットデバイスに指導することができる。例えば、ユーザーは、備品容器の１つ又は複数のエッジに沿ってロボットデバイスの操作要素を移動させることによって、容器のサイズをロボットデバイスに実演することができる。別の例として、ユーザーは、棚の表面に沿ってロボットデバイスの操作要素を移動させることによって、棚の場所を実演することができる。ロボットデバイスの動作中、ロボットデバイスは、１４５６において、１つ又は複数のセンサー（例えば、カメラ、レーザー、触覚など）を用いて、制約に関連する情報を捕捉することができる。１４５８では、ロボットデバイスは、環境的制約を含む状況で実行されるスキルのモデルと共に使用する、環境的制約に関連する捕捉情報を保存することができる。いくつかの実施形態では、ロボットデバイスは、上記状況で実行されるスキルの各モデルに、環境的制約に関連する情報を含めることができる。代替的に、ロボットデバイスは、上記状況でスキルを計画及び／又は実行するときに、環境的制約に関連する情報を参照するように構成されてもよい。いくつかの実施形態では、環境的制約は、環境の表現（例えば、表現１６００）に加えられてもよい。
【０１５３】
[0175]  いくつかの実施形態では、ロボットデバイスは、ユーザーの実演又はロボットデバイスの動作を必要とすることなく、環境的制約を学習することができる。例えば、１４５２において、制約のタイプ及び／又は物体の選択を受け取った後に、ロボットデバイスは、１４５６において、環境的制約に関連する関連情報を求めて環境をスキャンするように構成されてもよい。いくつかの実施形態では、どの情報が環境的制約に関連するかをユーザーが確認及び／又は修正できるように、ロボットデバイスは、それが捕捉し、及び／又は環境的制約に関連すると決定した情報をユーザーに提示することができる。次に、ロボットデバイスは、１４５８において、関連情報を保存することができる。
【０１５４】
[0176]  いくつかの実施形態では、ロボットデバイスは、搬送要素（例えば、車輪又はトラック）を用いて、環境内を動き回り、１つ又は複数の環境的制約を学習することができる。例えば、ロボットデバイスは、例えば、実演を受け、及び／又はスキルを実行しながら、廊下又は通路を進み、その廊下が、特定の時間フレーム中は混雑することを学習することができる。いくつかの実施形態では、ロボットデバイスは、様々な環境的制約及び／又は挙動を学習し、それらを異なる条件（例えば、時間、場所など）に関連付けることができる。例えば、ロボットデバイスは、それの１つ又は複数のセンサーによって収集された情報、ユーザー入力、及び／又は（例えば、スキルの実演及び／又は実行中に）検知された情報から導出された情報に基づいて、廊下が混雑していることを認識することができる。別の例として、ロボットデバイスは、ユーザーがある特定の部屋に入ったときに、１日のうちの様々な時間で、ロボットデバイスが「こんにちは（hello）」又は「おやすみなさい（good night）」と応答すべきかを決定することができる。
【０１５５】
[0177]  いくつかの実施形態では、ロボットデバイスは、自律的又はインタラクティブに、環境的制約を学習することができる。例えば、ロボットデバイスは、１４５８において、環境中を移動する（例えば、廊下又は通路を進む）ことによって、環境的制約の初期セットを獲得することができる。ユーザー（例えば、ロボットの監督者又はローカルユーザー）は、制約を見直し、１４５９において、制約を直接修正することによって、及び／又は実演によって、制約を調整すべきか否かを決定することができる。例えば、いくつかの制約は、ロボットデバイスとのインタラクション（例えば、実演）を通して提供され、他の制約（例えば、物体の場所（例えば、棚が壁から延在する距離など））は、（例えば、ユーザーインターフェース（例えば、ユーザーインターフェース２４０など）への）入力によって提供され得る。
【０１５６】
[0178]  図２１は、マップ２１２０（例えば、建物（例えば、病院など）のマップ）を出入りする情報の一例を示す。マップ２１２０は、本明細書に記載されるようなロボットデバイスのいずれかのロボットデバイスなどの、１つ又は複数のロボットデバイスによって保存及び／又は保持され得る。マップ２１２０は、図１９に示されるようなマップ１６００に類似し得る。例えば、マップ２１２０は、例えばナビゲーション層、静的層、動的層、及び社会的層などの１つ又は複数の層２１２２を含み得る。
【０１５７】
[0179]  マップ２１２０は、学習モード２１０２又は実行モード２１１２で動作しながらロボットデバイスが使用できる情報を提供することができる。例えば、学習モード２１０２で動作しているロボットデバイスは、マップ２１２０にアクセスすることによって、（例えば、状態情報３３１、１７３２、物体情報３４０、１７４０、１つ又は複数の環境的制約１７５４、社会的コンテキスト１６３２などに類似した）１つ若しくは複数の環境的制約、１つ若しくは複数の物体、及び／又は１つ若しくは複数の社会的コンテキストに関する情報を取得することができる。このような情報は、本明細書に記載されるように、１つ又は複数の物体の場所を決定すること、１つ又は複数の物体の１つ又は複数の特性を識別すること、１つ又は複数の環境的制約を分析すること、使用すべき１つ又は複数のスキルモデルを選択すること、１つ又は複数の入力を１人又は複数人のユーザーに促すことなどをロボットデバイスが行うことを可能にすることができる。追加的又は代替的に、実行モード２１１２で動作しているロボットデバイスは、マップ２１２０にアクセスすることによって、１つ若しくは複数の環境的制約、１つ若しくは複数の物体、及び／又は１つ若しくは複数の社会的コンテキストに関する情報を取得し、その情報を使用して、環境を評価すること、異なる挙動若しくはスキル間のアービトレーションを行うこと、どのスキルを実行すべきかを決定すること、及び／又はある特定の環境に適合するように、挙動若しくはスキルを適応させることができる。
【０１５８】
[0180]  学習モード２１０２で動作しているロボットデバイスは、マップ２１２０内の情報に加えられ、及び／又はマップ２１２０内の情報を変更する情報も提供することができる。例えば、ロボットデバイスは、検知された情報２１０４（例えば、ロボットデバイスの１つ若しくは複数のセンサーによって収集された情報）及び／又は導出された情報２１０６（例えば、例えば検知された情報２１０４の分析に基づいて、ロボットデバイスによって導出された情報）をマップ２１２０に組み込むことができる。ロボットデバイスは、このような情報を、情報をマップ２１２０に追加すること、及び／又はマップ２１２０内の既存の情報を適応させることによって組み込むことができる。追加的に、実行モード２１１２で動作しているロボットデバイスは、マップ２１２０内の情報に追加され、及び／又はマップ２１２０内の情報を変更する情報（例えば、検知された情報２１１４、導出された情報２１１６）を提供することができる。
【０１５９】
[0181]  一例として、戸口を通ってナビゲートするやり方の（例えば、図１０及び１６に示される実演のような）実演を受けているロボットデバイスは、マップ２１２０の１つ又は複数の層２１２２に供給される情報を実演中に収集することができる。戸口は、例えば、マップ２１２２に示されるように、建物中の様々な場所に存在する特定の戸口でもよい。戸口の特性及び／又は性質は、ロボットデバイス上の様々なセンサーによって記録され、及び／又は検知された情報に基づいて、ロボットデバイスによって導出され得る。例えば、ロボットデバイスは、戸口のサイズを検知し、戸口が狭い戸口であることを決定することができる。ロボットデバイスは、例えば、１つ又は複数の意味ラベルを使用して、生センサー情報又は処理されたセンサー情報として、導出されたルールとしてなど、戸口に関するこの情報をマップ２１２０に追加することができる。ロボットデバイスは、この情報を使用することによって、マップのコンテキスト層（例えば、マップの社会的層又は挙動層（例えば、図１９に示される社会的層１６３０など））を適応させることもできる。例えば、ロボットデバイスは、戸口が狭い戸口であることに基づいて、例えば、ユーザー（又は他の１つ若しくは複数のロボットデバイス）に続いて及び／又は並行して戸口を通過する代わりに、ユーザー（又は他の１つ若しくは複数のロボットデバイス）によって戸口が開けられたときに戸口を通過すること、（例えば、戸口を開けておくこと、及び／又はロボットデバイスに様々な１つ若しくは複数のアクションを指導することによって）ロボットデバイスがその戸口を通ってナビゲートすることを手助けする、その戸口を熟知した特定のユーザーを探すことなどを含む、特定の１つ若しくは複数の挙動及び／又は１つ若しくは複数のアクションに従事することを決定することができる。
【０１６０】
[0182]  いくつかの実施形態では、マップ２１２０は、本明細書に記載される１つ又は複数のロボットデバイスに対して一元的に保持されてもよい。例えば、マップ２１２０は、遠隔の計算デバイス（例えば、サーバー）上に保存され、例えば病院内で一緒に動作するロボットデバイスのグループに対して一元的にホスティングされてもよい。マップ２１２０は、ロボットデバイスのグループが学習モード２１０２及び／又は実行モード２１１２で動作するときに、これらのロボットデバイスから情報（例えば、検知された情報２１０４、２１１４、及び導出された情報２１０６、２１１６）が受け取られる際に更新され、アクション、挙動などを実行するために、必要に応じて各ロボットデバイスに提供されてもよい。マップ２１２０の１つ又は複数の層２１２２が適応されるように、グループ内の個々のロボットデバイスが新しい情報を学習するため、この情報は、他のロボットデバイスが類似の環境に遭遇したとき、及び／又は類似のスキル（例えば、アクション、挙動）を実行するときに、それらのロボットデバイスと共有され得る。いくつかの実施形態では、マップ２１２０のローカルコピーが、各ロボットデバイスに保存されてもよく、このローカルコピーは、（例えば、所定の間隔で、休みの時間又はダウンタイム中に）マップ２１２０の一元的に保持されたコピーを用いて更新又は同期され得る。（例えば、検知された情報２１０４、２１１４、及び導出された情報２１０６、２１１６などの新しく収集された情報を用いて）マップを定期的に更新し、及び／又は複数のロボットデバイス間でマップを共有することによって、各ロボットデバイスは、その周辺環境とインタラクトし、及び／又はその周辺環境内でスキルを実行するためのより正確な情報をロボットデバイスに提供する、より包括的なマップにアクセスすることができる。
【０１６１】
[0183]  いくつかの実施形態では、マップ２１２０は、情報（例えば、１つ又は複数の環境的制約、１つ又は複数のルール、１つ又は複数のスキルなど）が、（例えば、学習２１０２及び／又は実行２１１２中に）学習され、及び／又は（例えば、ユーザー入力２１３０を用いて）ユーザーによって提供され得る混合イニシアチブマップでもよい。例えば、ロボットデバイスは、ユーザー（例えば、ロボットの監督者若しくはローカルユーザー）によって直接与えられた情報、実演及び／又は実行を通して学習された情報、又は実演及び／又は実行と、（例えば、リアルタイムで、若しくは遡及的にインタラクションに関してロボットデバイスによって要求された）ユーザー入力との組み合わせによってインタラクティブに提供された情報を組み込むことによって、マップ２１２０を構築することができる。例えば、ロボットデバイスがマップ２１２０上のある領域（例えば、狭い又は混雑した通路）をよりゆっくりと進むべきであることをユーザーはロボットデバイスに示すことができる。いくつかの実施形態では、ロボットデバイスはマップをユーザーに提示し、ユーザーはマップ上に領域を描き、ロボットがその領域をよりゆっくりと進むべきであることを示すことができる。ロボットデバイスは、複数回、マップ２１２０上のその領域を進むことを試み、１日のうちの特定の時間では、その領域が（例えば、過密により）避けられるべきであることを学習し得る。代替的又は追加的に、ロボットデバイスは、ロボットデバイスが自律的に対処することに慣れていない新しい状況（例えば、通路が区切られている）に遭遇し得る。このような場合には、ロボットデバイスは、その領域に関するさらなる情報を取得し、及び／又はその領域をあちこちナビゲートするやり方を決定するために、ユーザー（例えば、ロボットの監督者及び／又はローカルユーザー）とコミュニケーションを取ることができる。ユーザーの入力を要求するときに、ロボットデバイスは、状況に関して広く尋ね、及び／又は（例えば、ロボットデバイスが適切な挙動を自律的に導出することを可能にするために）ユーザーがラベル付けする例のリストを提供してもよい。いくつかの実施形態では、ロボットデバイスは、ユーザー入力なしに、ある領域に関する情報の検出及び／又は導出を行い、その領域に関連付けられた１つ又は複数のルールを確認のためにユーザーに提案することができる。いくつかの実施形態では、ユーザーは、提案されたルール及び／又はロボットデバイスからの他の情報を見たときに、それを承認する前に、そのルール及び／又は他の情報を修正することができる。以下で説明される図２４は、このようなプロセスのより詳細な説明を提供する。
【０１６２】
[0184]  図２２〜２５は、ロボットデバイス（例えば、例えば（例えば、ロボットデバイス１０２、１１０、２００、４００など）を含む、本明細書に記載されるロボットデバイスのいずれかが、１つ又は複数のスキル、１つ又は複数の環境的制約などを学習することができる異なる複数の手段を示すフロー図である。いくつかの実施形態では、本明細書に記載される方法に従って動作するロボットデバイスは、常に学習（例えば、学習モードで動作）していてもよい。例えば、ロボットデバイスは、それが環境中をナビゲートし、及び／又は特定の挙動若しくはアクションに従事するときに、継続的に情報の収集、保存、分析、及び／又は更新を行い、学習された情報（例えば、スキル、挙動、環境的制約、マップなど）のライブラリーに対して適応及び／又は追加を行うことができる。他の実施形態では、ロボットデバイスは、学習モードでの動作と実行モードでの動作との切り替えを行うことができる。学習モード２２０２で動作する間、本明細書に記載されるロボットデバイスが、実演２２０４により、実行２２０６により、探索２２０８により、導出／ユーザー入力２２１０、及び／又はこれらの任意の組み合わせにより学習することができるようなロボットデバイス。
【０１６３】
[0185]  いくつかの実施形態では、ロボットデバイスは、例えば、図８〜１０を参照して上記で示され、及び説明されたように、実演２２０４によって学習することができる。例えば、ロボットデバイスは、ＬｆＤ教示プロセスを使用したスキルの実演によって、新しいスキル又は環境的制約を学習することができる。ロボットデバイスは、人間環境における過去のスキルの実演からの情報を分析及び抽出することができる。一例として、ユーザーは、ロボットデバイスに対して、人間及びロボットデバイスがいる備品室内で、ロボットデバイスの操作要素（例えば、アーム）の動かし方を実演することができる。１つ又は複数の実演から、ロボットデバイスは、１つ又は複数の既存の実演の動きに対して、今後スキルを計画し、及び／又は実行するときに、ロボットデバイスの動きを制限する１つ又は複数の環境的制約を規定することができる。ロボットデバイスは、それぞれがノード及び動きのｎ次元空間を通る経路を提供する、既存の実演（例えば、１つ又は複数のキーフレームのシーケンス）を用いて、動きを生成し、グラフ（環境的制約がエンコードされる）を構築することができる。その後、ロボットデバイスが、新しい環境を提示され、その新しい環境にスキルを適応させる必要があれば、ロボットデバイスは、構築されたグラフを用いて、既存の実演された動きのセットから効率的にサンプリングを行い、新しい環境用の動きを計画することができる。そのような環境的制約の学習をスキルの初期実演に組み入れることによって、ロボットデバイスは、新しい環境的制約が規定されることを必要とせずに、新しい環境に素早く適応することができる。新しい環境では、ロボットデバイスは、その環境及び／又は環境内の１つ若しくは複数の物体（例えば、人間、備品、ドアなど）に関する追加情報を取得するために環境をスキャンし、その後、既存のスキルモデルを使用して、既存の実演された動きのセットから大きく逸脱することなく、新しい環境を通る動作軌道を計画することができる。
【０１６４】
[0186]  いくつかの実施形態では、ロボットデバイスは、実演２２０４及びユーザー入力２２１０によって学習することができる。例えば、ロボットデバイスは、例えばインタラクティブ学習テンプレートを用いた、ユーザーとのインタラクティブ学習に従事することができる。上記の通り、インタラクティブ学習を用いた場合、ロボットデバイス及び／又はスキルモデルの初期セットを提供した。モデルの初期セットは、工場の状況で、他のロボットデバイス、及び／又は１つ若しくは複数の状況でロボットデバイス自体によって開発されてもよい。ある特定の環境で動作する間、ロボットデバイスは、インタラクティブ学習セッション（このセッションでは、ロボットデバイスが、スキルの特定の部分を自律的に実施する一方で、他の部分をユーザーによる実演に委ねることができる）によって、このスキルの初期セットの適応又は特化を行うことができる。さらに、このようなインタラクティブ学習プロセスのさらなる詳細は、図１６を参照して説明される。
【０１６５】
[0187]  いくつかの実施形態では、ロボットデバイスは、スキルを実行２２０６しながら学習することができる。例えば、ロボットデバイスは、ロボットデバイスが挙動、アクションなどを実行するときに、情報の収集、保存、分析、及び／又は更新を行うことができる（例えば、図１１の７７４、図１３の１３０４、１３０５、及び１３０７で）。ある実施形態では、ロボットデバイスは、１日に数回、ロボットデバイスが通路を移動することを必要とするスキルを実行することができる。ロボットデバイスは、１日のうちの特定の時間に、通路の通行量がより多いことを学習することができる。その後、ロボットデバイスは、例えば、通行量の多い、それらの時間中は、その通路を通過することを避けるように（例えば、別のルートを行くことによって、及び／又は通行量の少ない時間にその通路を通過するように待つことによって）、その挙動を適応させることができる。
【０１６６】
[0188]  いくつかの実施形態では、ロボットデバイスは、探索２２０８によって学習することができる。図２３は、探索による学習の例示的方法を示すフロー図である。ロボットデバイスは、２３０２において、環境をスキャンし、環境及び／又は環境内の物体に関する情報を収集することができる。任意選択的に、ロボットデバイスが収集した情報に基づいて、ロボットデバイスは、スキルを実行することによって、環境を探索することを決定することができる。スキルを実行するために、ロボットデバイスは、２３０４において、既存のスキルモデルを選択し、２３０６において、スキルモデルを使用してスキルの実行を計画し、及び２３０８において、スキルを実行することができる。例えば、ロボットデバイスは、環境をスキャンし、戸口を識別することができる。ロボットデバイスは、ドアを開けるステップ及び戸口を通って移動するステップを含むスキルの実行を決定することができる。２３０４では、ロボットデバイスは、戸口を通ってナビゲートするために、これまでに提供及び／又は学習された既存のスキルモデルを選択することができる。２３０６では、ロボットデバイスは、既存のスキルを使用して（例えば、図１１を参照して述べられたプロセスに類似したプロセスに従って）、ドアを開け、及び戸口を通って移動する計画を生成することができる。そして、２３０８において、ロボットデバイスは、生成された計画に従ってスキルを実行することができる。２３１０において、スキルを実行する間、ロボットデバイスは、環境及び／又はスキルの実行に関する情報を収集し、その情報を、戸口との以前のインタラクション中に収集された情報と比較することができる。この比較に基づいて、ロボットデバイスは、それの戸口とのインタラクションが成功であったか、或いは失敗であったかを（例えば、上記のような成功基準に基づいて）評価することができる。ロボットデバイスは、任意選択的に、２３１２において、それのスキルの実行に基づいて、その戸口に固有のスキルモデルを生成することができる。
【０１６７】
[0189]  いくつかの実施形態では、ロボットデバイスは、スキルの実行を開始し、そのスキルをさらに完了させるためにはユーザー入力が必要とされることを決定することができる。例えば、図１６を参照して上記に記載したように、ロボットデバイスは、スキルの実行を開始し、実行の仕方をロボットデバイスが決定できないスキルの部分に到達すると、スキルの実行を進めるために、ユーザー入力を求めることができる。
【０１６８】
[0190]  いくつかの実施形態では、ロボットデバイスは、スキルを実行し、その実行が失敗したことを決定することができる。例えば、ロボットデバイスは、戸口を通る動作を計画し、及び／又は実行することができるが、（例えば、ドアを開ける試み、又は狭い戸口の向こう側にナビゲートする試みの失敗により）戸口を通って移動できなかったことを検出し得る。ロボットデバイスは、環境を再度スキャンすることを決定し（２３１４：YES）、２３０６〜２３０８において、スキルの再計画及び再実行を行うことができる。いくつかの実施形態では、ロボットデバイスは、２３０４において、別のスキル（例えば、狭い戸口に対して、より固有のスキル）を選択し、次に、その別のスキルに基づいて、再計画及び再実行を行うことができる。ロボットデバイスが、それがある目的を満たした（例えば、所定の回数、又は所定数のやり方で、成功裏にスキルを実行した、環境に関する十分な情報を学習したなど）と決定するまで、ロボットデバイスは、スキルの再検知、再計画、及び再実行を行うことによって、探索により学習を続けることができる。２３１６では、ロボットデバイスは、環境及び／又は環境内の物体に関するそれが収集した情報、並びに任意選択的に、環境内のスキルの実行に基づいて、それが適応させるか又は生成したモデルを保存することができる。
【０１６９】
[0191]  いくつかの実施形態では、ロボットデバイスは、ユーザー入力２２１０を用いた、探索２２０８による学習に従事することができる。例えば、ロボットデバイスは、ある特定の環境を探索し、及び／又はその環境に関してさらに多くの情報を学習するために、その環境において、１つ又は複数のスキルを実行することができる。ロボットデバイスが探索を行っている間に、ユーザー（例えば、遠隔の監督者又はローカルユーザー）は、（例えば、環境内にいることによって直接的に、及び／又はロボットデバイスを通して）ユーザーが認識した、及び／又は環境に関して学習した情報に基づいて、入力をロボットデバイスに提供することができる。そのとき、ユーザーは、環境の探索をさらに指導する１つ又は複数の入力をロボットデバイスに提供することができる。例えば、戸口に遭遇したロボットデバイスは、その戸口を通ってナビゲートするための１つ又は複数の動作を計画することができる。それらの動作を実行した際に、ロボットデバイスは、その戸口を通ってナビゲートすることに失敗する場合がある。ユーザーは、ロボットデバイスによる試みの失敗を見て、戸口を通ってナビゲートする２度目の試みにおいて、ロボットデバイスを指導するための１つ又は複数の入力をロボットデバイスに提供することができる。例えば、ユーザーは、戸口が狭い戸口であることを決定し、ロボットデバイスが、その戸口を通ってナビゲートする前に、まずドアを開けることを近くのユーザー又はロボットデバイスに求めるべきであることをロボットデバイスに示すことができる。ユーザー入力を受け取ると、ロボットデバイスは、戸口を通ってナビゲートする前に、ドアを開けることをユーザーに求めることができる。
【０１７０】
[0192]  いくつかの実施形態では、ロボットデバイスは、環境及び／又は環境内の物体に関する情報をユーザーから受け取ること、又はモデルの初期セット、ルールなどをユーザーから受け取ることによって、ユーザー入力２２１０によって学習することができる。いくつかの実施形態では、ロボットデバイスは、最初に、（例えば、図１０を参照して上記に記載したように）実演によってスキルを学習し、ユーザー入力に基づいて、そのスキルを適応させることを学習してもよい。例えば、ロボットデバイスは、第１の場所から第２の場所へと備品を移動させ、その後、備品を第２の場所に降ろすスキルを学習することができる。スキルのユーザー実演中に、ユーザーは、第２の場所に備品を降ろすことが、環境又は状況に固有の特定情報を必要とすることをロボットデバイスに示すことができる。ユーザーは、後に、異なる複数の備品及び／又は異なる複数の場所に関して、備品を降ろす間、ロボットデバイスが観察すべき特有の情報を指定する入力をロボットデバイスに提供することができる。例えば、ユーザーは、ロボットデバイスがどこに備品を降ろすべきかを識別するタグ又はマーカーに関する情報を提供することができる。
【０１７１】
[0193]  いくつかの実施形態では、ロボットデバイスは、保存された情報及び／又はユーザー入力２２１０に基づいて、挙動又はルール（例えば、上記のような、１つ又は複数のアービトレーションアルゴリズム１８５８）を学習することができる。図２４は、挙動及び／又はルールのロボット学習の例示的方法のフローチャートである。ロボットデバイスは、２４０２において、保存された情報（例えば、１つ又は複数のマップ、１つ又は複数のモデル、１つ又は複数のユーザー入力）を分析することができる。ロボットデバイスは、２４０４において、保存された情報の分析に基づいて、挙動及び／又はルールを導出することができる。例えば、ユーザー（例えば、ロボットの監督者又はローカルユーザー）は、より多くの人間がロボットデバイスの近くにいるときは、より対話型となるように、ロボットデバイスに関するルールを規定することができる。ロボットデバイスは、保存された情報の分析に基づいて、１日のうちのある特定の時間中（例えば、昼食時間頃）に、より多くの人間がそれの近くにいることを決定し得る。したがって、ロボットデバイスはさらに、１日のうちのその時間中は、それがより対話型となるべきであることを導出し得る。いくつかの実施形態では、ロボットデバイスは、新しいルールとして、この挙動を自動的に実施することができる。代替的に、ロボットデバイスは、２４０６において、ユーザーに対する新しいルールとして、１日のうちのその時間に、より対話型となることを提案することができる。ロボットデバイスは、２４０８において、ルールの提案に応答して、ユーザー入力を受け取ることができる。例えば、ユーザーは、ロボットデバイスのローカル及び／又は遠隔のディスプレイ上でルールを見て、それを承認又は拒否することを選択することができる。ユーザー入力に基づいて、ロボットデバイスは、２４１０において、その挙動及び／又はルールを修正することができる。例えば、ルールを承認可能であることをユーザーが示す場合には、ロボットデバイスは、その新しいルールを保存し、今後、それを実施することができる。或いは、ルールは、承認可能であるが、さらなる微調整又は変更を伴うことをユーザーが示す場合には（例えば、カフェテリア内でのみ、昼食時間頃に、より対話型となること）、ロボットデバイスは、そのルールを適応させ、今後の実施のために、適応させたルールを保存することができる。
【０１７２】
[0194]  いくつかの実施形態では、ロボットデバイスは、ユーザー入力に基づいて、既存のスキル及び／又は環境的制約を適応させることによって、スキル及び／又は環境的制約を学習することができる。図２５は、ユーザー入力に基づいて、スキル及び／又は環境的制約を適応させる例示的方法のフロー図である。ロボットデバイスは、２５０２において、ユーザー入力を受け取ることができる。ロボットデバイスは、２５０４において、ユーザー入力を１つ又は複数のスキル及び／又は環境的制約に関連付けることができる。このような関連付けは、例えば、ユーザーによるさらなる入力（例えば、ユーザーが、入力が関係するスキル及び／又は環境的制約を指定すること）、及び／又はロボットデバイスによる導出（例えば、このような入力が、ある特定のスキル又は環境的制約に関連することを、この入力、及び／又はこの特定のスキル若しくは環境的制約に関連する、１つ又は複数のルール、属性などに基づいて、ロボットデバイスが決定することに基づいてもよい。例えば、ユーザーは、ＱＲコード（登録商標）、バーコード、タグなどの物体を識別するための新しい情報をロボットデバイスに提供することができる。ユーザーは、この新しい情報が、ある特定の物体に関するものであることを指定することができ、ロボットデバイスは、新しい情報をこの物体に関連付けることができる。ロボットデバイスは、その物体に関する新しい情報を、その物体とのインタラクションに関与する１つ又は複数のスキル（例えば、つかむスキル又は移動スキル）にさらに関連付けることができる。ロボットデバイスは、任意選択的に、２５０６〜２５０８において、入力に基づいて、スキル又は環境的制約の修正及び／又は生成を行うことができる。
【０１７３】
[0195]  いくつかの実施形態では、ロボットデバイスは、スキル及び／又は環境的制約に関連する情報をユーザーが遡及的にラベル付けすることを可能にすることができる。例えば、ロボットは、例えばユーザーインターフェース（例えば、ユーザーインターフェース２４０）及び／又は遠隔のインターフェースを用いて、スキル又は環境的制約をユーザーに提示することができる。ユーザーは、スキル又は環境的制約に関連付けられたラベルの追加、修正、及び／又は除去を行うことを選択することができ、このような入力は、２５０２において、ロボットデバイスで受け取られ得る。その後、ロボットデバイスは、２５０４において、入力をスキル又は環境的制約に関連付けることができ、２５０６〜２５０８において、入力に基づいて、新しいスキル又は環境的制約の修正及び／又は生成を行うことができる。
【実施例】
【０１７４】
実施例
[0196]  本開示は、以下の実施例のいずれか１つから最大で全てを含み得ることが認識されるだろう。
【０１７５】
[0197]  実施例１：メモリー、プロセッサー、操作要素、及びセンサーのセットを有する装置であって、プロセッサーが、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成された、装置。
【０１７６】
[0198]  実施例２：物理的物体のセットが、人間を含む、実施例１の装置。
【０１７７】
[0199]  実施例３：操作要素が、物理的物体のセットからの物理的物体のサブセットと係合するように構成されたエンドエフェクターを含む、実施例１又は２に記載の装置。
【０１７８】
[0200]  実施例４：センサーのサブセットが、第１のセンサーのサブセットであり、プロセッサーが、センサーのセットからの第２のセンサーのサブセットを用いて感覚情報を取得するように構成され、第２のセンサーのサブセットが、第１のセンサーのサブセットとは異なる、実施例１〜３のいずれか１つに記載の装置。
【０１７９】
[0201]  実施例５：操作要素が、複数の関節によって連結された複数の可動コンポーネントを含み、センサーのセットが、複数の関節からの関節に作用する力を測定するように構成されたセンサー、又は複数の可動コンポーネントからの可動コンポーネントと、物理的物体のセットからの物理的物体との係合を検出するように構成されたセンサーの少なくとも一方を含む、実施例１〜４のいずれか１つに記載の装置。
【０１８０】
[0202]  実施例６：センサーのセットが、装置の一部に対する、関節又は可動コンポーネントの位置を測定するように構成されたセンサーをさらに含む、実施例５に記載の装置。
【０１８１】
[0203]  実施例７：センサーのセットが、光センサー、温度センサー、音声捕捉デバイス、及びカメラの少なくとも１つをさらに含む、実施例５に記載の装置。
【０１８２】
[0204]  実施例８：操作要素が、（ｉ）複数の関節と、（ｉｉ）物理的物体のセットからの物理的物体を移動させるように構成されたエンドエフェクターと、を含み、センサーのセットが、エンドエフェクターが物理的物体を移動させるときに、エンドエフェクター、又はエンドエフェクターに結合された複数の関節からの関節の少なくとも一方にかかる力を測定するように構成されたセンサーを含む、実施例１に記載の装置。
【０１８３】
[0205]  実施例９：感覚情報が、特徴のセットに関連するセンサーデータを含み、プロセッサーが、特徴のセットからの第１の特徴のサブセットの選択を受け取るようにさらに構成され、プロセッサーが、第１の特徴のサブセットに関連するセンサーデータに基づき、且つ第１の特徴のセットに含まれない、特徴のセットからの第２の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成するように構成される、実施例１〜８のいずれか１つに記載の装置。
【０１８４】
[0206]  実施例１０：ユーザーによって行われた選択に応答して、プロセッサーが、第１の特徴のサブセットの選択を受け取るように、特徴のセットからの少なくとも１つの特徴を選択するようにユーザーに促すようにプロセッサーがさらに構成される、実施例９に記載の装置。
【０１８５】
[0207]  実施例１１：複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例１〜１０のいずれか１つに記載の装置。
【０１８６】
[0208]  実施例１２：プロセッサーが、モデル及びモデルに関連する情報をメモリーに保存するようにさらに構成され、モデルに関連する情報が、（ｉ）マーカーのセット及び（ｉｉ）感覚情報を含む、実施例１〜１１のいずれか１つに記載の装置。
【０１８７】
[0209]  実施例１３：操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例１に記載の装置。
【０１８８】
[0210]  実施例１４：ユーザーによって行われた選択に応答して、プロセッサーが、マーカーのセットの選択を受け取るように、プロセッサーが、上記提示後に、複数のマーカーからの少なくとも１つのマーカーを選択するようにユーザーに促すようにさらに構成される、実施例１〜１３のいずれか１つに記載の装置。
【０１８９】
[0211]  実施例１５：プロセッサーが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングによって、環境の表現を取得するように構成される、実施例１〜１４のいずれか１つに記載の装置。
【０１９０】
[0212]  実施例１６：センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を有する方法。
【０１９１】
[0213]  実施例１７：感覚情報が、特徴のセットに関連するセンサーデータを含み、方法が、特徴のセットからの第１の特徴のサブセットの選択を受け取ることをさらに有し、上記生成することが、第１の特徴のサブセットに関連するセンサーデータに基づき、且つ第１の特徴のセットに含まれない、特徴のセットからの第２の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成することを含む、実施例１６に記載の方法。
【０１９２】
[0214]  実施例１８：ユーザーによって行われた選択に応答して、第１の特徴のサブセットの選択が受け取られるように、特徴のセットからの少なくとも１つの特徴を選択するようにユーザーに促すことをさらに有する、実施例１７に記載の方法。
【０１９３】
[0215]  実施例１９：複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例１６〜１８のいずれか１つに記載の方法。
【０１９４】
[0216]  実施例２０：操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例１６〜１９のいずれか１つに記載の方法。
【０１９５】
[0217]  実施例２１：ユーザーによって行われた選択に応答して、マーカーのセットの選択が受け取られるように、上記提示後に、複数のマーカーからの少なくとも１つのマーカーを選択するようにユーザーに促すことをさらに有する、実施例１６〜２０のいずれか１つに記載の方法。
【０１９６】
[0218]  実施例２２：環境の表現を取得することが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングを行うことを含む、実施例１６〜２１のいずれか１つに記載の方法。
【０１９７】
[0219]  実施例２３：プロセッサーによって実行される命令を表すコードを保存する、非一時的なプロセッサー可読媒体であって、コードが、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、をプロセッサーに行わせるコードを有する、非一時的なプロセッサー可読媒体。
【０１９８】
[0220]  実施例２４：物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、モデルを識別するようにユーザーに促すことをプロセッサーに行わせるコードを含む、実施例２３に記載の非一時的なプロセッサー可読媒体。
【０１９９】
[0221]  実施例２５：物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、マーカーのセットの選択に基づいて、プロセッサーにモデルを識別させるコードを含む、実施例２３又は２４に記載の非一時的なプロセッサー可読媒体。
【０２００】
[0222]  実施例２６：環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、をプロセッサーに行わせるコードをさらに有する、実施例２３〜２５のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０１】
[0223]  実施例２７：軌道が、第１の軌道であり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、モデルに関連するパラメーターのセットを修正することによって修正モデルを生成することと、修正モデルを使用して、操作要素の第２の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例２３〜２６のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０２】
[0224]  実施例２８：軌道が、第１の軌道であり、モデルが、第１のモデルであり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、第１のモデルを生成するために使用された特徴のセットとは異なる特徴のセットに関連するセンサーデータに基づいて、第２のモデルを生成することと、第２のモデルを使用して、操作要素の第２の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例２３〜２６のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０３】
[0225]  実施例２９：物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、物理的インタラクションの実行に関連する感覚情報を取得することと、感覚情報に基づいて、物理的インタラクションの実行が、あらかじめ規定及び／又は学習された成功基準を満たすか否かを決定することと、をプロセッサーに行わせるコードをさらに有する、実施例２３〜２８のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０４】
[0226]  実施例３０：物理的インタラクションの実行が、あらかじめ規定及び／又は学習された成功基準を満たすという決定に応答して、物理的インタラクションが成功したことを示す信号を生成することと、物理的インタラクションの実行が、あらかじめ規定及び／又は学習された成功基準を満たさないという決定に応答して、感覚情報に基づいてモデルを修正することによって、修正モデルを生成することと、修正モデルを用いて、操作要素の第２の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例２９に記載の非一時的なプロセッサー可読媒体。
【０２０５】
[0227]  実施例３１：モデルが、（ｉ）保存されたマーカーのセットと、（ｉｉ）保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、（ｉｉｉ）保存された軌道に沿った点における、複数の関節の構成を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、保存された軌道に沿った点における複数の関節の構成に基づいて、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例２３〜３０のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０６】
[0228]  実施例３２：モデルが、（ｉ）保存されたマーカーのセットと、（ｉｉ）保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例２３〜３０のいずれか１つに記載の非一時的なプロセッサー可読媒体。
【０２０７】
[0229]  実施例３３：操作要素の第１の場所と、物理的物体のセットからの物理的物体の場所との間の距離に基づいて、操作要素の場所を変更するか否かを決定することと、操作要素の場所を変更するとの決定に応答して、物理的物体の場所により近接する第２の場所へと操作要素を第１の場所から移動させることと、をプロセッサーに行わせるコードをさらに有し、操作要素の軌道を生成することをプロセッサーに行わせるコードが、上記移動後に、操作要素の第２の場所に対する物理的物体の場所に基づいて、軌道を生成することをプロセッサーに行わせるコードを含む、請求項２３〜３２のいずれか一項に記載の非一時的なプロセッサー可読媒体。
【０２０８】
[0230]  様々な発明の実施形態を本明細書に記載及び図示したが、当業者は、本明細書に記載される機能を行い、及び／又は本明細書に記載される結果及び／又は利点の１つ若しくは複数を得るための様々な他の手段及び／又は構造を容易に想像し、そのような変形形態及び／又は変更形態のそれぞれは、本明細書に記載される発明の実施形態の範囲内であると見なされる。より一般的に、本明細書に記載される全てのパラメーター、寸法、材料、及び構成が、例示的であることを意図されていることと、実際のパラメーター、寸法、材料、及び／又は構成が、本発明の教示が使用される具体的な１つ又は複数の適用例によって決まることとを当業者は容易に理解するだろう。当業者は、本明細書に記載される具体的な発明の実施形態の多数の均等物を認識し、又はありふれた実験を行うだけで、それらを解明できるだろう。したがって、上述の実施形態が、単なる例として提示されること、並びに添付の特許請求の範囲及びその均等物の範囲内で、発明の実施形態が、具体的に記載及び請求された以外の方法で実施され得ることが理解されるものとする。本開示の発明の実施形態は、本明細書に記載される個々の特徴、システム、製品、材料、キット、及び／又は方法に向けられる。さらに、２つ以上のこのような特徴、システム、製品、材料、キット、及び／又は方法の任意の組み合わせは、それらの特徴、システム、製品、材料、キット、及び／又は方法が互いに矛盾しなければ、本開示の発明範囲内に含まれる。
【０２０９】
[0231]  また、様々な発明概念が、１つ又は複数の方法として具現化されることが可能であり、その一例を提供した。方法の一部として行われるアクトは、任意の適切なやり方で順序付けられてもよい。したがって、例示されたものとは異なる順序でアクトが行われる実施形態が構築されることが可能であり、これらの実施形態は、例示的実施形態では、逐次的アクトとして示されているが、いくつかのアクトを同時に行うことを含み得る。
【０２１０】
[0232]  本明細書に記載される、いくつかの実施形態及び／又は方法は、（ハードウェア上で実行される）別のソフトウェア、ハードウェア、又はそれらの組み合わせによって行われ得る。ハードウェアモジュールは、例えば、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、及び／又は特定用途向け集積回路（ＡＳＩＣ）を含み得る。（ハードウェア上で実行される）ソフトウェアモジュールは、C、C++、Java（商標）、Ruby、Visual Basic（商標）、及び／又は他のオブジェクト指向、手続き型、若しくは他のプログラミング言語及び開発ツールを含む、様々なソフトウェア言語（例えば、コンピューターコード）で表現され得る。コンピューターコードの例には、マイクロコード又はマイクロ命令、コンパイラーによって生成されるようなマシン命令、ウェブサービスを生み出すために使用されるコード、及びインタープリターを用いてコンピューターによって実行される高水準命令を含むファイルが含まれるが、これらに限定されない。例えば、実施形態は、命令型プログラミング言語（例えば、C、Fortranなど）、関数型プログラミング言語（Haskell、Erlangなど）、論理型プログラミング言語（例えば、Prolog）、オブジェクト指向プログラミング言語（例えば、Java、C++など）、又は他の適宜のプログラミング言語及び／又は開発ツールを用いて実施され得る。コンピューターコードの追加例には、制御信号、暗号化コード、及び圧縮コードが含まれるが、これらに限定されない。
【０２１１】
[0233]  様々な要素を描写するために、「第１の」、「第２の」、「第３の」などの用語が本明細書で使用される場合があるが、これらの要素は、これらの用語によって限定されるものではないことが理解されるだろう。これらの用語は、ある要素を別の要素と区別するためだけに使用される。したがって、本明細書で述べられる第１の要素は、本開示の教示から逸脱することなく、第２の要素と名付けられ得る。
【０２１２】
[0234]  本明細書で使用される用語は、単に、特定の実施形態を説明する目的のためのものであり、制限的であることが意図されるものではない。本明細書で使用されるように、単数形「a」、「an」、及び「the」は、文脈上明らかに他の意味を示す場合を除き、複数形も含むことが意図される。本明細書で使用される「有する」という用語（「comprises」及び／又は「comprising」）、又は「含む」という用語（「includes」及び／又は「including」）は、明記された特徴、領域、整数値、ステップ、動作、要素、及び／又はコンポーネントの存在を指定するが、１つ又は複数の他の特徴、領域、整数値、ステップ、動作、要素、コンポーネント、及び／又はこれらの群の存在又は追加を除外しないことがさらに理解されるだろう。
【図１】
2021534988.tif 000003
【図２】
2021534988.tif 000004
【図３】
2021534988.tif 000005
【図４】
2021534988.tif 000006
【図５】
2021534988.tif 000007
【図６Ａ】
2021534988.tif 000008
【図６Ｂ】
2021534988.tif 000009
【図７Ａ】
2021534988.tif 000010
【図７Ｂ】
2021534988.tif 000011
【図８】
2021534988.tif 000012
【図９】
2021534988.tif 000013
【図１０】
2021534988.tif 000014
【図１１】
2021534988.tif 000015
【図１２】
2021534988.tif 000016
【図１３】
2021534988.tif 000017
【図１４】
2021534988.tif 000018
【図１５】
2021534988.tif 000019
【図１６】
2021534988.tif 000020
【図１７】
2021534988.tif 000021
【図１８】
2021534988.tif 000022
【図１９】
2021534988.tif 000023
【図２０】
2021534988.tif 000024
【図２１】
2021534988.tif 000025
【図２２】
2021534988.tif 000026
【図２３】
2021534988.tif 000027
【図２４】
2021534988.tif 000028
【図２５】
2021534988.tif 000029
【国際調査報告】
2021534988.tif 000030
2021534988.tif 000031
2021534988.tif 000032
2021534988.tif 000033
2021534988.tif 000034