(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024138277
(43)【公開日】2024-10-08
(54)【発明の名称】スキルのロボット学習及び実行のためのシステム、装置、及び方法
(51)【国際特許分類】
B25J 13/00 20060101AFI20241001BHJP
G06N 20/00 20190101ALI20241001BHJP
【FI】
B25J13/00 Z
G06N20/00
【審査請求】有
【請求項の数】29
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024096683
(22)【出願日】2024-06-14
(62)【分割の表示】P 2021510317の分割
【原出願日】2019-08-28
(31)【優先権主張番号】62/723,694
(32)【優先日】2018-08-28
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/456,919
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.QRコード
(71)【出願人】
【識別番号】519298709
【氏名又は名称】ディリジェント ロボティクス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】チュウ,ビビアン ヤウ-ウェン
(72)【発明者】
【氏名】リ,シュアイ
(72)【発明者】
【氏名】グリーン,フォレスト
(72)【発明者】
【氏名】ワースノップ,ピーター
(72)【発明者】
【氏名】トマス,アンドレア ロッカード
(57)【要約】
【課題】スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。
【解決手段】ロボット装置は、メモリー、プロセッサー、センサー、及び1つ又は複数の可動コンポーネント(例えば、操作要素及び/又は搬送要素)を含み得る。プロセッサーは、メモリー、可動要素、及びセンサーに動作可能に結合され、環境(環境内に位置する1つ又は複数の物体を含む)の情報を取得するように構成され得る。いくつかの実施形態では、プロセッサーは、実演、探索、ユーザー入力などによってスキルを学習するように構成され得る。いくつかの実施形態では、プロセッサーは、スキルを実行し、及び/又は異なる挙動及び/又はアクション間でアービトレーションを行うように構成され得る。いくつかの実施形態では、プロセッサーは、環境的制約を学習するように構成され得る。いくつかの実施形態では、プロセッサーは、スキルの汎用モデルを使用して学習するように構成され得る。
【選択図】
図16
【特許請求の範囲】
【請求項1】
操作要素と、
表面に沿って移動するように構成された搬送要素と、
センサーのセットと、
メモリーと、
前記メモリー、前記操作要素、前記搬送要素、及び前記センサーのセットに動作可能に結合されたプロセッサーであって、
前記センサーのセットからの第1のセンサーのサブセットを用いて、環境の情報を取得することと、
前記環境の前記情報に基づいて、スキルのモデルを選択することと、
前記モデルを使用して前記スキルの少なくとも一部を実行する計画を、前記モデルを使用して生成することであって、前記計画が、前記操作要素又は前記搬送要素の少なくとも一方の1つ又は複数の動作を含む、生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記センサーのセットからの第2のセンサーのサブセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも1つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記環境のマップを更新することと、
を行うように構成されたプロセッサーと、
を有する、装置。
【請求項2】
前記スキルの前記一部が、第1の部分であり、前記プロセッサーが、
前記スキルの第2の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第2の部分が特化を必要とするとの決定に応答して、前記ユーザーからの入力を要求することと、
前記ユーザーからの前記入力の受け取りに応答して、前記スキルの前記第2の部分を実行する計画を生成することと、
前記スキルの前記第2の部分を実行する前記計画に基づいて、前記操作要素及び前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項1に記載の装置。
【請求項3】
前記スキルの前記一部が、第1の部分であり、前記プロセッサーが、
前記スキルの第2の部分が、前記環境に対する特化を必要とすることを決定することと、
前記スキルの前記第2の部分が特化を必要とするとの決定に応答して、前記ユーザーに実演を要求することと、
前記実演に関連する複数の位置からの各位置に関して、第3のセンサーのサブセットによって収集され、及び前記環境、前記操作要素、又は前記搬送要素の少なくとも1つに関連する情報を取得することと、
前記モデル及び前記第3のセンサーのサブセットによって収集された前記情報を用いて、前記環境で前記スキルを実行するための特化モデルを生成することと、
をさらに行うように構成される、請求項1に記載の装置。
【請求項4】
前記プロセッサーが、前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方の前記動作が、1つ又は複数の成功基準を満たせなかったことを決定することと、
前記動作が前記1つ又は複数の成功基準を満たせなかったとの決定に応答して、前記スキルの少なくとも一部を実行するために、前記計画を修正することと、
前記修正計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
をさらに行うように構成される、請求項1に記載の装置。
【請求項5】
前記環境の前記マップが、少なくとも意味層及びコンテキスト層を含み、前記プロセッサーが、
前記環境内の1つ又は複数の物体に関連する情報を前記意味層に保存することと、
前記1つ又は複数の物体に関連する前記情報に基づいて、前記1つ又は複数の物体の近くで実行する1つ又は複数の挙動を決定することと、
前記1つ又は複数の挙動を前記コンテキスト層に保存することと、
によって、前記環境の前記マップを更新するように構成される、請求項1に記載の装置。
【請求項6】
前記プロセッサーが、
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記スキルの前記少なくとも一部の実行を始める確認を示す入力を前記ユーザーから受け取ることと、
をさらに行うように構成され、
前記プロセッサーが、前記入力の受け取りに応答して、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項1に記載の装置。
【請求項7】
前記プロセッサーが、
前記スキルの前記少なくとも一部を実行する前記計画をユーザーに表示することと、
前記表示後に、前記計画に対する変更を示す入力を前記ユーザーから受け取ることと、
前記入力に基づいて、前記計画を修正することと、
をさらに行うように構成され、
前記プロセッサーが、前記計画の修正後に、前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項1に記載の装置。
【請求項8】
前記操作要素が、複数の関節によって連結された複数の可動コンポーネントを含み、
前記センサーのセットが、
前記複数の関節からの関節に作用するトルクを測定するように構成されたセンサー、又は
前記複数の可動コンポーネントからの可動コンポーネントと、前記物理的物体のセットからの物理的物体との係合を検出するように構成されたセンサー、
の少なくとも一方を含む、請求項1に記載の装置。
【請求項9】
前記操作要素が、前記環境内の1つ又は複数の物体と係合するように構成されたエンドエフェクターを含む、請求項1に記載の装置。
【請求項10】
操作要素と、
表面に沿って移動するように構成された搬送要素と、
センサーのセットと、
メモリーと、
前記メモリー、前記操作要素、前記搬送要素、及び前記センサーのセットに動作可能に結合されたプロセッサーであって、
前記センサーのセットを用いて、環境の情報を取得することと、
前記環境の前記情報の受け取りに応答して、計算デバイスが、前記環境の前記情報をユーザーに提示するように、前記環境の前記情報を前記計算デバイスに送ることと、
前記ユーザーからの入力を前記計算デバイスから受け取ることと、
前記環境の前記情報及び前記入力に基づいて、スキルのモデルを選択することと、
前記環境の前記情報及び前記入力に基づいて、前記スキルの少なくとも一部を実行する計画を前記モデルを用いて生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
を行うように構成されたプロセッサーと、
を有する、装置。
【請求項11】
前記入力が、前記環境の追加情報を取得する命令を含み、前記スキルが、第1の場所から第2の場所への移動に関与し、前記プロセッサーが、
前記センサーのセットを用いて、前記環境内の少なくとも1つの物体に関連する情報を含む、前記環境の前記追加情報を取得することと、
前記環境の前記追加情報を前記計算デバイスに送ることと、
をさらに行うように構成され、
前記プロセッサーが、前記第1の場所から前記第2の場所へと移動するように前記搬送要素を動作させることによって、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすように構成される、請求項10に記載の装置。
【請求項12】
前記入力が、前記環境内の物体の特性を示し、前記スキルが、前記物体とのインタラクションに関与し、前記プロセッサーが、少なくとも部分的に前記入力に基づいて、前記環境内の前記物体を識別するようにさらに構成される、請求項10に記載の装置。
【請求項13】
前記入力が、社会的挙動を実行する命令を含み、前記スキルが、少なくとも1人の人間とのインタラクションに関与し、前記プロセッサーが、
前記環境内の前記少なくとも1人の人間を識別することと、
前記少なくとも1人の人間の近くで前記社会的挙動を実行することと、
をさらに行うように構成される、請求項10に記載の装置。
【請求項14】
前記操作要素が、前記環境内で1つ又は複数の物体をつかむように構成されたエンドエフェクターを含み、前記スキルが、第1の場所から第2の場所へと物体を移動させることに関与し、前記プロセッサーが、前記物体をつかむように前記操作要素を動かすこと、及び前記第1の場所から前記第2の場所へと移動するように前記搬送要素を動かすことによって、前記操作要素及び前記搬送要素の前記少なくとも一方を動かすように構成される、請求項10に記載の装置。
【請求項15】
前記入力が、前記モデルを修正する命令を含み、前記プロセッサーが、
前記入力に基づいて、前記モデルを修正するようにさらに構成され、
前記プロセッサーが、前記修正後に前記モデルを使用して、前記スキルの前記少なくとも一部を実行する前記計画を生成するように構成される、請求項10に記載の装置。
【請求項16】
前記入力が、前記モデルを含み、前記モデルが、前記環境の前記情報に基づいて、前記計算デバイスにおいて、前記ユーザーによって構成される、請求項10に記載の装置。
【請求項17】
ロボットデバイスの第1のセンサーのセットを用いて、環境の情報を取得することと、
前記環境の前記情報に基づいて、前記ロボットデバイスのメモリーに保存されたスキルのモデルを選択することと、
前記モデルを使用して前記スキルの少なくとも一部を実行する計画を、前記モデルを使用して生成することであって、前記計画が、前記ロボットデバイスの操作要素又は搬送要素の少なくとも一方の1つ又は複数の動作を含む、生成することと、
前記計画に基づいて、前記操作要素又は前記搬送要素の前記少なくとも一方を動かすことと、
前記操作要素又は前記搬送要素の前記少なくとも一方が、前記計画に基づいて、動いているときに、前記ロボットデバイスの第2のセンサーのセットを用いて、前記環境、前記操作要素、又は前記搬送要素の少なくとも1つの情報を取得することと、
前記環境、前記操作要素、又は前記搬送要素の前記少なくとも1つの前記情報に基づいて、前記メモリーに保存された前記環境のマップを更新することと、
を有する、方法。
【請求項18】
前記環境の前記マップに対する前記更新を示す情報を計算デバイスに送ることと、
前記ロボットデバイス以外のロボットデバイスのセットから前記計算デバイスによって受け取られた、前記環境の前記マップに対する更新を示す情報を前記計算デバイスから受け取ることと、
をさらに有する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本出願は、2018年8月28日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国仮特許出願第62/723,694号に対する優先権を主張するものである。
【0002】
[0002] 本出願は、米国仮特許出願第62/723,694号に対する優先権を主張し、且つ2017年2月25日に出願された、「METHOD AND SYSTEM FOR ROBOTIC LEARNING OF EXECUTION PROCESSES RELATED TO PERCEPTUALLY CONSTRAINED MANIPULATION SKILLS」という名称の米国仮特許出願第62/463,628号、及び2017年2月25日に出願された、「METHOD AND SYSTEM FOR ROBOTIC EXECUTION OF A PERCEPTUALLY CONSTRAINED MANIPULATION SKILL LEARNED VIA HUMAN INTERACTION」という名称の米国仮特許出願第62/463,630号に対する優先権を主張する、2018年2月23日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の国際PCT出願第PCT/US2018/019520号の一部継続出願である、2019年6月28日に出願された、「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」という名称の米国特許出願第16/456,919号に対する優先権も主張する。
【0003】
[0003] 本出願は、国際PCT出願第PCT/US2018/019520号の一部継続出願でもある。
【0004】
[0004] 上記で言及した各出願の開示内容は、その全体が本明細書に援用される。
【0005】
政府支援
[0005] 本発明は、中小企業技術革新制度のフェーズIにより、米国国立科学基金により与えられた、認可番号1621651及び1738375の下で、米国政府支援によって行われたものである。米国政府は、本発明に一定の権利を有する。
【0006】
技術分野
[0006] 本開示は、一般に、スキルのロボット学習及び実行のためのシステム、装置、及び方法に関する。より詳細には、本開示は、非構造化環境でスキルの学習及び実行が可能なロボット装置に関する。
【背景技術】
【0007】
背景
[0007] ロボットは、様々なタスクの実施及び自動化のために使用され得る。ロボットは、オフィスの建物又は病院などの環境中を移動することによって、タスクを行うことができる。ロボットは、車輪、トラック、又はロボットが環境内を自律的に動き回ることを可能にする他の可動コンポーネントを装備してもよい。しかし、アーム又は他のマニピュレーターを持たないロボットは、環境内の物体を操作することができない。したがって、これらのロボットは、タスクを行う能力が限定されており、例えば、このようなロボットは、拾い上げる地点又は送り届ける地点に物体を操作する人間がいなければ、物体を拾い上げ、及び送り届けることができない場合がある。
【0008】
[0008] アーム又は他のマニピュレーターを含むロボットは、人間がいなくても、物体を拾い上げ、及び物体をある場所へと送り届けることができ得る。例えば、グリッパーなどのエンドエフェクターを備えたアームを有するロボットは、グリッパーを用いて、複数の異なる場所から1つ又は複数の物体を拾い上げ、これらの物体を新しい場所へと送り届けることが、全て人間の手助けなしに可能である。これらのロボットは、特定のタスクを自動化し、それによって、人間のオペレーターが他のタスクに集中することを可能にするために使用され得る。しかし、ほとんどの商業用ロボットは、マニピュレーターの動作をプログラミングするという課題及び複雑さが原因で、マニピュレーターを含まない。
【0009】
[0009] また、ほとんどの商業用ロボットは、構造化環境(例えば、工場、倉庫など)で動作するように設計される。非構造化環境(例えば、病院及び家などの人間に関与する環境)は、ロボットをプログラミングするためのさらなる課題をもたらし得る。非構造化環境では、ロボットは、その周辺環境の完全な知識に依存することはできないが、周辺環境の変化を認識し、それらの変化に基づいて適応することができなければならない。したがって、非構造化環境では、ロボットは、自律判断を行い、及びタスクを行うことができるためには、環境に関する情報を継続的に獲得しなければならない。しばしば、ロボットの動作(例えば、環境内でのアーム又はエンドエフェクターの動作)は、環境内の物体及び他の障害物によっても制約され、ロボットの知覚及び操作の課題がさらに増す。非構造化環境の不確かで、動的な性質を考えると、ロボットは、一般的に、タスクを行うようにあらかじめプログラムされることが不可能である。
【0010】
[0010] したがって、あらかじめプログラムされた操作スキルに依存することなく、動的な、非構造化の環境を認識し、及びそれらの環境に適応することができ、並びに、それらの環境内でタスクを行うことができるロボットシステムに対するニーズがある。
【発明の概要】
【課題を解決するための手段】
【0011】
概要
[0011] スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、装置は、メモリー、プロセッサー、操作要素、及びセンサーのセットを含む。プロセッサーは、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成されてもよい。
【0012】
[0012] いくつかの実施形態では、操作要素は、複数の関節及びエンドエフェクターを含んでもよい。いくつかの実施形態では、操作要素は、基部又は搬送要素を含んでもよい。
【0013】
[0013] 物理的物体のセットは、静止した物体、又は移動する物体であってもよい。いくつかの実施形態では、物理的物体のセットは、備品、収納容器、構造物(例えば、ドア、ハンドル、家具、壁)などを含み得る。いくつかの実施形態では、物理的物体のセットは、人間(例えば、患者、医師、看護師など)を含み得る。
【0014】
[0014] いくつかの実施形態では、複数のマーカーは、基準マーカーであり、環境の表現が、環境の視覚的表現である。
【0015】
[0015] いくつかの実施形態では、複数のマーカーからの2つ以上のマーカーが、物理的物体のセットからの1つの物理的物体に関連付けられてもよい。代替的又は追加的に、いくつかの実施形態では、複数のマーカーからの1つのマーカーが、物理的物体のセットからの2つ以上の物理的物体に関連付けられてもよい。
【0016】
[0016] いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を含む。
【0017】
[0017] いくつかの実施形態では、この方法は、特徴のセットからの第1の特徴のサブセットの選択を受け取ることをさらに含み、ここでは、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルが生成される。
【0018】
[0018] いくつかの実施形態では、方法は、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、を含む。
【0019】
[0019] いくつかの実施形態では、上記方法は、環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の動作を実施することと、をさらに含む。
【0020】
[0020] いくつかの実施形態では、モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の保存された軌道に沿った点における操作要素の位置、向き、又は構成の少なくとも1つを示す感覚情報と、に関連付けられる。操作要素の軌道を生成する方法は、例えば、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、操作要素(例えば、複数の関節、エンドエフェクター、搬送要素)の1つ又は複数のコンポーネントの計画された構成を、保存された軌道に沿った上記コンポーネントの構成に基づいて決定することと、点ごとに、その点に関する上記コンポーネントの計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、を含んでもよい。
【0021】
[0021] いくつかの実施形態では、ロボットデバイスは、搬送要素に関連するスキルを学習し、及び実行するように構成される。搬送要素は、例えば、車輪のセット、トラックのセット、クローラーのセット、又は第1の部屋から第2の部屋へ、若しくは建物の複数の階間などの環境内でのロボットデバイスの移動を可能にする他の適切なデバイスでもよい。ロボットデバイスが、例えば、戸口を通って、又は人間などの物体によって、第1の場所から第2の場所へと移動したときに、ロボットデバイスは、搬送要素、ロボットデバイスの周りの環境、及び/又はロボットデバイスの別のコンポーネントに関連する感覚情報を取得することによって、搬送要素に関連するスキルを学習するように構成されてもよい。感覚情報は、ロボットデバイスの動作中の特定の時点で(例えば、キーフレームで)記録されてもよい。ロボットデバイスは、感覚情報に基づいて、第1の場所から第2の場所へのロボットデバイスの移動を実行するために、搬送要素(又はロボットデバイスの他のコンポーネント(例えば、操作要素))の動作を規定するように構成されたモデルを生成するように構成されてもよい。
【0022】
[0022] いくつかの実施形態では、ロボットデバイスは、スキルの汎用バージョンを用いて特化スキルを学習するように構成される。ロボットデバイスは、ある特定の環境で、汎用スキルの実行を開始し、その特定の環境でスキルの特化を必要とする実行の部分にロボットデバイスが到達すると、実行を休止することができる。次に、ロボットデバイスは、スキルのその部分の実演をユーザーに促すことができる。ロボットデバイスは、スキルの実行を続け、及び/又はスキルが完了するまで、スキルの特定の部分の実演をユーザーに促すことができる。次に、ロボットデバイスは、スキルを実行するための特化モデルを生成するために、スキルの特定の部分の実演に基づいて、汎用スキルを適応させる。
【0023】
[0023] いくつかの実施形態では、ロボットデバイスは、環境的制約を学習するように構成される。ロボットデバイスは、それの周辺環境、又はその環境内の物体に関する情報を記録し、環境に関する一般知識を取得することができる。ロボットデバイスは、環境内で実行される異なる複数のスキルに関係するモデルのセットにこの一般知識を適用することができる。
【0024】
[0024] いくつかの実施形態では、ロボットデバイスは、人間の社会環境などの動的環境内で継続的及び自律的に行動するために、挙動アービトレーションを用いることが可能である。ロボットデバイスは、様々なリソース又はコンポーネント(例えば、操作要素、搬送要素、頭部、カメラなど)を有してもよく、これらのリソースをいつ及びどのように使用するかを決定するために、アービトレーションアルゴリズムを適用することができる。アービトレーションアルゴリズムは、ロボットデバイスで捕捉されている情報に基づいて、異なる複数のアクション又は挙動が優先順位を付けられることを可能にするルールのセットを規定することができる。ロボットデバイスは、ロボットデバイスで新しい情報が捕捉されるにつれて、継続的に、異なる複数のアクション及び挙動の実行の中から決める(したがって、異なるリソース又はコンポーネントを使用する)ように構成されてもよい。挙動アービトレーションの一部として、ロボットデバイスは、あるアクションの中断を処理し、新しいアクションに切り替えるように構成されてもよい。ロボットデバイス自体、及びその周辺環境を継続的にモニタリングし、並びに継続的なアービトレーションを行うことによって、ロボットデバイスは、経時的に、社会的に適切な挙動に絶えず従事することができる。
【0025】
[0025] いくつかの実施形態では、ロボットデバイスは、環境に関連する社会的コンテキスト情報を受け取り、その情報を環境のナビゲーションマップと組み合わせる(例えば、ナビゲーションマップ上に社会的コンテキスト情報を重ねる)ように構成される。ロボットデバイスは、ユーザー(例えば、人間のオペレーター)によって社会的コンテキスト情報が与えられてもよく、又はロボットデバイスは、環境内のインタラクションを通して、社会的コンテキスト情報を捕捉してもよい。ロボットデバイスが、経時的に環境内で人間とのインタラクションに従事するにつれて、ロボットデバイスは、社会的コンテキスト情報を改良することができる。いくつかの実施形態では、ロボットデバイスは、環境内の特定の場所に関連する社会的コンテキスト情報に基づいて、あるタイプの挙動又はアクションをこれらの場所に関連付けるように構成されてもよい。
【0026】
[0026] いくつかの実施形態では、ロボットデバイスは、人間のオペレーターと、現場で、又は人間のオペレーターによって操作される遠隔デバイスへのネットワーク接続によって、インタラクトするように構成される。人間のオペレーターは、本明細書では、「ロボットの監督者」と呼ばれ、様々なソフトウェアベースのツールを用いて、周辺環境に関する情報をロボットデバイスに知らせ、及び/又は特定のアクションを行うようにロボットデバイスに指示することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声、ライトなどが含まれ得る。ロボットの監督者は、アクションの学習若しくは実行中に情報を収集し、及び/又はロボットデバイスが、その情報を用いて、今後、異なる複数のアクションの中でアービトレーションを行う能力、若しくはある特定のアクションを実行する能力を向上させることができるように、特定の挙動を良い挙動若しくは悪い挙動とタグ付けするようにロボットデバイスを制御することができる。
【0027】
[0027] 以下の図面及び詳細な説明を考察すれば、他のシステム、プロセス、及び特徴が、当業者には明らかとなるだろう。全てのそのような追加のシステム、プロセス、及び特徴が、本明細書の範囲内に含まれること、本発明の範囲内であること、及び添付の特許請求の範囲によって保護されることが意図される。
【0028】
図面の簡単な説明
[0028] 図面が主に例示を目的としたものであり、本明細書に記載される発明特定事項の範囲を限定することは意図されないことを当業者は理解するだろう。図面は、必ずしも一定の縮尺ではなく、場合によっては、本明細書に開示される発明特定事項の様々な局面は、異なる複数の特徴の理解を容易にするために、図面において、誇張して、すなわち拡大して示される場合がある。図面では、同様の参照符号は、一般に、同様の特徴(例えば、機能的に類似した、及び/又は構造的に類似した要素)を指す。
【図面の簡単な説明】
【0029】
【
図1】[0029]いくつかの実施形態による、ロボットデバイスを含むシステムの構成を示すブロック図である。
【
図2】[0030]いくつかの実施形態による、ロボットデバイスの構成を示すブロック図である。
【
図3】[0031]いくつかの実施形態による、ロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
【
図4】[0032]いくつかの実施形態による、ロボットデバイスの操作要素の模式図である。
【
図5】[0033]いくつかの実施形態による、ロボットデバイスの模式図である。
【
図6A】[0034]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【
図6B】[0034]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【
図7A】[0035]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【
図7B】[0035]いくつかの実施形態による、ロボットデバイスが見る環境内の物体の模式図である。
【
図8】[0036]いくつかの実施形態による、ロボットデバイスによって行われる、環境のセンシング又はスキャニングを行う方法を示すフロー図である。
【
図9】[0037]いくつかの実施形態による、ロボットデバイスによって行われるスキルの学習及び実行の方法を示すフロー図である。
【
図10】[0038]いくつかの実施形態による、ロボットデバイスによって行われるスキルを学習する方法を示すフロー図である。
【
図11】[0039]いくつかの実施形態による、ロボットデバイスによって行われるスキルを実行する方法を示すフロー図である。
【
図12】[0040]いくつかの実施形態による、ユーザーアクションを含む、ロボット学習及び実行のためのシステムアーキテクチャを示すブロック図である。
【
図13】[0041]いくつかの実施形態による、環境内のロボットデバイスの動作を示すフロー図である。
【
図14】[0042]いくつかの実施形態による、ロボットの監督者などのユーザーからの入力を要求し、及びそれを受け取る方法を示すフロー図である。
【
図15】[0043]いくつかの実施形態による、ロボットデバイスによって行われる、スキル及び環境的制約を学習する方法を示すフロー図である。
【
図16】[0044]いくつかの実施形態による、ロボットデバイスによって行われる、汎用スキルモデルからスキルを学習する方法を示すフロー図である。
【
図17】[0045]いくつかの実施形態による、ロボットデバイスによって行われる、環境的制約を学習する方法を示すフロー図である。
【
図18】[0046]いくつかの実施形態による、挙動アービトレーションを行うロボットデバイスのコンポーネントの一例を示すブロック図である。
【
図19】[0047]いくつかの実施形態による、ロボットデバイスによって生成された、環境のマップの層の模式図である。
【
図20】[0048]いくつかの実施形態による、ロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
【
図21】[0049]いくつかの実施形態による、ロボットデバイスによって保持されるマップに対してロボットデバイスが提供し、及びそのマップから受け取られる情報のフローを示す。
【
図22】[0050]いくつかの実施形態による、ロボットデバイスの異なる複数の学習モードを示すフロー図を示す。
【
図23】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【
図24】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【
図25】[0051]いくつかの実施形態による、ロボットデバイスの例示的学習挙動を示すフロー図を示す。
【発明を実施するための形態】
【0030】
詳細な説明
[0052] 本明細書では、スキルのロボット学習及び実行のためのシステム、装置、及び方法が記載される。いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、人間による実演やインタラクションによってスキルを学習し、学習したスキルを非構造化環境で実行することができるロボット装置に関する。
【0031】
概要
[0053] いくつかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、Learning from Demonstration(「LfD」)プロセスによってスキル(例えば、操作スキル)を学習することができるロボットに関し、このLfDプロセスでは、人間が、運動感覚教示により(例えば、物理的に、及び/又は遠隔制御により、人間が、アクションを行うようにロボットを指導する)、及び/又は人間自身がアクションを行うことにより、システムにアクションを実演する。このようなシステム、装置、及び方法は、ロボットに操作スキルをあらかじめプログラムする必要がなく、ロボットは、適応性があり、観察によってスキルを学習することができるように設計される。例えば、ロボットは、機械学習技術を用いて、操作スキルを獲得し、実行することができる。スキルの学習後に、ロボットは、異なる複数の環境でスキルを実行することができる。ロボットは、視覚データ(例えば、感知した視覚情報)に基づいて、スキルの学習及び/又は実行を行うことができる。代替的又は追加的に、ロボットは、触覚データ(例えば、トルク、力、及び他の非視覚情報)を用いて、スキルの学習及び/又は実行を行うことができる。ロボット学習は、ロボットの配備前に工場で、又はロボットの配備後に現場で(例えば、病院で)行うことができる。いくつかの実施形態では、ロボットは、ロボット工学及び/又はプログラミングの訓練を受けていないユーザーによって、スキルを教えられ、及び/又はある環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用する学習アルゴリズムを有することができ、実演プロセスを行うようにユーザーを指導することができるツールを含むことができる。
【0032】
[0054] いくつかの実施形態では、ロボットは、人間とインタラクトし、人間と協力してタスクを行うように設計することができる。いくつかの実施形態では、ロボットは、一般的な社会的挙動を利用して、人間のそばで、社会的に予測可能且つ許容可能なやり方で行動することができる。可動ロボットは、ある環境内で、その環境内の人間とインタラクトしながらナビゲートするように設計することもできる。例えば、ロボットは、人間の周りをナビゲートするために特定の言葉を声に出し、人間が通れるように脇に寄り、及びナビゲーション中に視線を利用して意図的にコミュニケーションするようにプログラムすることができる。いくつかの実施形態では、ロボットは、その周囲の環境内で、ロボットが、人間の感知及び追跡を行い、その情報を用いて視線及び他の社会的挙動を生じさせることを可能にするセンサーを備えてもよい。
【0033】
[0055] いくつかの実施形態では、ロボットは、目標を達成するため、又はLfDプロセス中のアクションを行うためのオプションを提案するように設計することができる。例えば、ロボットは、目標(例えば、物体を拾い上げること)を達成するための数個の異なるオプションを提案することができ、その目標を達成するためには、これらのオプションの内のどれが、効果的及び/又は効率的である可能性が最も高いかを示すことができる。いくつかの実施形態では、ロボットは、ユーザーによる入力に基づいて(例えば、ユーザーが、スキルモデルに含める関連の特徴を示す)、スキルを適応させることができる。
【0034】
[0056] いくつかの実施形態では、ロボットデバイスは、ロボットデバイスが事前に環境の完全な情報を持たない非構造化環境(例えば、動的及び/又は人間環境)において、スキルの学習及び/又は実行を行うことができ得る。非構造化環境は、例えば、屋内及び屋外状況を含む場合があり、環境内で移動可能な1人又は複数の人間や他の物体を含む場合がある。最も自然な環境、又は現実世界の環境が非構造化であるため、本明細書に記載されるロボットデバイス及び/又はシステムなどの、非構造化環境で適応及び動作できるロボットデバイスは、非構造化環境に適応できない既存のロボットデバイスと比べて著しい向上を提供することができる。非構造化環境には、屋内状況(例えば、建物、オフィス、家、部屋など)及び/又は他のタイプの閉じた空間(例えば、飛行機、電車、及び/又は他のタイプの移動可能な区画)、並びに屋外状況(例えば、公園、ビーチ、外庭、野原)が含まれ得る。ある実施形態では、本明細書に記載されるロボットデバイスは、非構造化病院環境で動作することができる。
【0035】
[0057]
図1は、いくつかの実施形態によるシステム100を示すハイレベルブロック図である。システム100は、非構造化環境において、例えば操作スキルなどのスキルを学習及び実行するように構成することができる。システム100は、単一のデバイスとして実装されてもよく、又はネットワーク105に接続された複数のデバイスにわたって実装されてもよい。例えば、
図1に示すように、システム100は、例えば1つ又は複数のロボットデバイス102及び110などの1つ又は複数の計算デバイス、サーバー120、及び1つ又は複数の追加の計算デバイス150を含み得る。4つのデバイスが示されているが、システム100は、具体的に
図1に示されていない計算デバイスを含む、任意の数の計算デバイスを含み得ることが理解されるものとする。
【0036】
[0058] ネットワーク105は、有線ネットワーク及び/又は無線ネットワークとして実装され、ロボットデバイス102及び110、サーバー120、及び1つ又は複数の計算デバイス150を含む計算デバイスを動作可能に結合するために使用される、任意のタイプのネットワーク(例えば、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、仮想ネットワーク、電気通信網)でもよい。本明細書でさらに詳細に記載されるように、いくつかの実施形態では、例えば、計算デバイスは、インターネット・サービス・プロバイダー(ISP)及びインターネット(例えば、ネットワーク105)により、互いに接続されたコンピューターである。いくつかの実施形態では、任意の2つの計算デバイス間で、接続をネットワーク105により規定することができる。
図1に示すように、例えば、ロボットデバイス102と、ロボットデバイス110、サーバー120、又は1つ若しくは複数の計算デバイス150のいずれか1つとの間で、接続を規定することができる。いくつかの実施形態では、これらの計算デバイスは、互いに通信する(例えば、データの送信及び/又は受信を行う)ことができ、並びに中間ネットワーク及び/又は代替ネットワーク(
図1には示されない)を介してネットワーク105と通信することができる。このような中間ネットワーク及び/又は代替ネットワークは、ネットワーク105と同じタイプ及び/又は異なるタイプのネットワークであってもよい。各計算デバイスは、送信するためにネットワーク105上でデータを送信し、及び/又は他の計算デバイスの1つ又は複数からデータを受信するように構成された、任意のタイプのデバイスでもよい。
【0037】
[0059] いくつかの実施形態では、システム100は、単一のロボットデバイス(例えば、ロボットデバイス102)を含む。ロボットデバイス102は、環境に関する情報を感知し、人間による実演及びインタラクションによってスキルを学習し、環境とインタラクトし、及び/又は人間による実演や入力によって環境的制約を学習し、及び/又はその環境でそれらのスキルを実行するように構成することができる。いくつかの実施形態では、ロボットデバイス102は、スキル及び/又は環境に関する追加情報を学習するために、自己探索を行うこと、及び/又はユーザー入力を要求することができる。ロボットデバイス例のさらに詳細な図を
図2に示す。
【0038】
[0060] 他の実施形態では、システム100は、複数のロボットデバイス(例えば、ロボットデバイス102及び110)を含む。ロボットデバイス102は、ネットワーク105を介して、ロボットデバイス110にデータを送信し、及び/又はロボットデバイス110からデータを受信することができる。例えば、ロボットデバイス102は、環境(例えば、物体の場所)に関してロボットデバイス102が感知した情報をロボットデバイス110に送信することができ、その環境に関する情報をロボットデバイス110から受信することができる。また、ロボットデバイス102及び110は、スキルの学習及び/又は実行を行うために、互いに対して情報を送信し、及び/又は互いから情報を受信することができる。例えば、ロボットデバイス102は、ある環境でスキルを学習し、その学習したスキルを表すモデルをロボットデバイス110に送信することができ、ロボットデバイス110は、そのモデルを受信すると、それを用いて、同じ又は異なる環境でスキルを実行することができる。ロボットデバイス102は、ロボットデバイス110と同じ又は異なる場所に位置してもよい。例えば、ロボットデバイス102及び110は、一緒にスキルを学習及び/又は実行する(例えば、重い、又は大きな物体を移動させる)ことができるように、ある建物(例えば、病院の建物)の同じ部屋に位置してもよい。或いは、ロボットデバイス102は、ある建物(例えば、病院の建物)の1階に位置し、ロボットデバイス110は、ある建物の2階に位置してもよく、これら2つのロボットデバイスは、異なる階に関する情報(例えば、これらの階で物体がある場所、リソースが存在し得る場所など)を互いに伝えるために、互いに通信することができる。
【0039】
[0061] いくつかの実施形態では、システム100は、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)と、サーバー120とを含む。サーバー120は、ロボットデバイス102及び/又は110を管理する専用サーバーであってもよい。サーバー120は、ロボットデバイス102及び/又は110と同じ又は異なる場所に位置してもよい。例えば、サーバー120は、1つ又は複数のロボットデバイスと同じ建物(例えば、病院の建物)内に位置してもよく、ローカル管理者(例えば、病院管理者)によって管理されてもよい。或いは、サーバー120は、遠隔地(例えば、ロボットデバイスのメーカー又は供給業者に関連する場所)に位置してもよい。
【0040】
[0062] いくつかの実施形態では、システム100は、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)と、追加の計算デバイス150とを含む。計算デバイス150は、特定の機能を起動及び/又は実行するように構成された、任意の適宜の処理デバイスでもよい。例えば、病院の状況では、計算デバイス150は、ネットワーク105に接続し、ロボットデバイス102及び/又は110を含む他の計算デバイスと通信することが可能な診断及び/又は治療デバイスであってもよい。
【0041】
[0063] いくつかの実施形態では、1つ又は複数のロボットデバイス(例えば、ロボットデバイス102及び/又は110)は、ネットワーク105を介して、サーバー120及び/又は計算デバイス150と通信するように構成されてもよい。サーバー120は、ロボットデバイスから遠隔地にあり、及び/又は敷地内でロボットデバイスの近くに位置する1つ又は複数のコンポーネントを含んでもよい。計算デバイス150は、ロボットデバイスから遠隔地にあり、敷地内でロボットデバイスの近くに位置し、及び/又は1つのロボットデバイスに組み込まれた、1つ又は複数のコンポーネントを含んでもよい。サーバー120及び/又は計算デバイス150は、ユーザー(例えば、近くのユーザー又はロボットの監督者)が、ロボットデバイスの動作を制御することを可能にするユーザーインターフェースを含んでもよい。例えば、ユーザーは、ロボットデバイスによって行われる1つ又は複数のアクションの実行を中断及び/又は修正することができる。これらのアクションには、例えば、ナビゲーション挙動、操作挙動、頭部挙動、音声/ライト、及び/又はロボットデバイスの他のコンポーネントが含まれ得る。いくつかの実施形態では、ロボットの監督者は、遠隔でロボットデバイスをモニタリングし、安全目的で、その動作を制御することができる。例えば、ロボットの監督者は、人間を危険にさらすこと、又はロボットデバイスや環境内の別の物体に損傷を与えることを避けるために、アクションの実行を停止又は修正するように、ロボットデバイスに命令することができる。いくつかの実施形態では、近くのユーザーは、ロボットデバイスに対して、アクションを指導又は実演することができる。いくつかの実施形態では、ロボットデバイスは、アクションの実行時における特定の時点で、ユーザーの介入を求めるように構成されてもよい。例えば、ロボットデバイスが、そのロボットデバイス自体、及び/又はそのロボットデバイス周辺の環境に関する特定の情報を確認できないとき、ロボットデバイスが、あるアクションを完了するため、又はある特定の場所までナビゲートするための軌道を決定できないとき、ロボットデバイスが、(例えば、以下でさらに記載されるように、対話型学習テンプレートを使用した学習中に)ユーザー入力を求めるように、前もってプログラムされたときなどの時点で、ユーザーの介入を求めることができる。いくつかの実施形態では、ロボットデバイスは、学習及び/又は実行中の特定の時点で、ユーザーにフィードバックを要求することができる。例えば、ロボットデバイスは、どんな情報(例えば、操作要素又は搬送要素に関連する情報、周辺環境に関連する情報)を収集すべきか、及び/又はいつ情報を収集すべきか(例えば、実演中のキーフレームのタイミング)を指定するようにユーザーに促すことができる。代替的又は追加的に、ロボットデバイスは、ある特定のコンテキストにおいて、アクションの良い例又は悪い例として、ユーザーがロボットデバイスの過去又は現在の挙動にタグを付けることを要求することができる。ロボットデバイスは、この情報を用いて、その特定のコンテキストにおける、そのアクションの今後の実行を向上させるように構成されてもよい。
【0042】
システム及びデバイス
[0064]
図2は、いくつかの実施形態によるロボットデバイス200を模式的に示す。ロボットデバイス200は、制御ユニット202、ユーザーインターフェース240、少なくとも1つの操作要素250、及び少なくとも1つのセンサー270を含む。追加的に、いくつかの実施形態では、ロボットデバイス200は、任意選択的に、少なくとも1つの搬送要素260を含む。制御ユニット202は、メモリー220、ストレージ230、プロセッサー204、グラフィックプロセッサー205、システムバス206、及び少なくとも1つの入出力インターフェース(「I/Oインターフェース」)208を含む。メモリー220は、例えば、ランダム・アクセス・メモリー(RAM)、メモリーバッファー、ハードドライブ、データベース、消去可能なプログラマブル読み出し専用メモリー(EPROM)、電気的消去可能読み出し専用メモリー(EEPROM)、読み出し専用メモリー(ROM)、及び/又はその他であってもよい。いくつかの実施形態では、メモリー220は、環境のセンシング又はスキャニング、スキルの学習、及び/又はスキルの実行に関連するモジュール、プロセス、及び/又は機能をプロセッサー204に行わせる命令を保存する。ストレージ230は、例えば、ハードドライブ、データベース、クラウドストレージ、ネットワーク接続型ストレージデバイス、又は他のデータストレージデバイスであってもよい。いくつかの実施形態では、ストレージ230は、例えば、ロボットデバイス200の1つ又は複数のコンポーネント(例えば、操作要素250)、学習されたモデル、マーカー位置情報などに関する状態情報を含むセンサーデータを保存することができる。
【0043】
[0065] 制御ユニット202のプロセッサー204は、環境の視察、スキルの学習、及び/又はスキルの実行に関連する機能の起動及び/又は実行を行うように構成された、任意の適宜の処理デバイスでもよい。例えば、プロセッサー204は、本明細書でさらに記載されるように、センサー情報に基づいてスキルに関するモデルを生成し、又はモデルを用いて、スキルを行うための軌道を生成することによってスキルを実行するように構成されてもよい。より詳しくは、プロセッサー204は、モジュール、機能、及び/又はプロセスを実行するように構成されてもよい。いくつかの実施形態では、プロセッサー204は、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサー(DSP)、及び/又は同類のものであってもよい。
【0044】
[0066] グラフィックプロセッサー205は、1つ又は複数の表示機能(例えば、表示デバイス242に関連する機能)を起動及び/又は実行するように構成された、任意の適宜の処理デバイスでもよい。いくつかの実施形態では、グラフィックプロセッサー205は、例えば、専用グラフィックスカード又は統合グラフィック処理ユニットなどの低電力グラフィック処理ユニットでもよい。
【0045】
[0067] システムバス206は、プロセッサー204、メモリー220、ストレージ230、及び/又は制御ユニット202の他のコンポーネントが互いに通信することを可能にする、任意の適宜のコンポーネントでもよい。システムバス206に接続された1つ又は複数のI/Oインターフェース208は、制御ユニット202の内部コンポーネント(例えば、プロセッサー204、メモリー220、ストレージ230)と、ユーザーインターフェース240、1つ又は複数の操作要素250、1つ又は複数の搬送要素260、及び1つ又は複数のセンサー270などの外部入出力デバイスとの間の通信を可能にする、任意の適宜のコンポーネントでもよい。
【0046】
[0068] ユーザーインターフェース240は、入力を受け取り、他のデバイス及び/又はデバイスを操作するユーザー(例えば、ロボットデバイス200を操作するユーザー)に出力を送るように構成された、1つ又は複数のコンポーネントを含んでもよい。例えば、ユーザーインターフェース240は、表示デバイス242(例えば、ディスプレイ、タッチスクリーンなど)、オーディオデバイス244(例えば、マイクロホン、スピーカー)、及び任意選択的に、入力を受け取り、及び/又はユーザーに対して出力を生成するように構成された、1つ又は複数の追加の入出力デバイス(「I/Oデバイス」)246を含み得る。
【0047】
[0069] 1つ又は複数の操作要素250は、例えば人間を含む、静止した物体及び/又は移動する物体を操作し、及び/又はそれとインタラクトすることができる、任意の適宜のコンポーネントでもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、1つ若しくは複数の軸に沿った平行移動、及び/又は1つ若しくは複数の軸を中心とした回転を提供することができる関節により互いに結合された複数のセグメントを含んでもよい。1つ又は複数の操作要素250は、任意選択的に、環境内の物体と係合すること、及び/又は別の方法でインタラクトすることができるエンドエフェクターを含んでもよい。例えば、操作要素は、物体を拾い上げるため、及び/又は物体を搬送するために、環境内の物体を解放可能に係合する(例えば、把持する)ことが可能な把持機構を含んでもよい。エンドエフェクターの他の例には、例えば、1つ若しくは複数の真空係合機構、1つ若しくは複数の磁気係合機構、1つ若しくは複数の吸引機構、及び/又はこれらの組み合わせが含まれる。いくつかの実施形態では、1つ又は複数の操作要素250は、ロボットデバイスの1つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス200のハウジング内に格納可能であってもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、環境と、及び/又は人間を含む、環境内の1つ又は複数物体とインタラクトするように構成された頭部又は他の人型コンポーネントを含んでもよい。いくつかの実施形態では、1つ又は複数の操作要素250は、搬送要素又は基部(例えば、1つ又は複数の搬送要素260)を含んでもよい。操作要素例の詳細図が、
図4に示される。
【0048】
[0070] 1つ又は複数の搬送要素260は、例えば、車輪又はトラックなどの、移動用に構成された任意の適宜のコンポーネントでもよい。1つ又は複数の搬送要素260は、ロボットデバイス200が環境内を動き回ることを可能にするために、ロボットデバイス200の基部に設けられてもよい。例えば、ロボットデバイス200は、例えば病院などの建物中をロボットデバイス200がナビゲートすることを可能にする複数の車輪を含んでもよい。1つ又は複数の搬送要素260は、狭い空間及び/又は制限された空間(例えば、小さな通路や廊下、収納庫などの小さな部屋など)を通る移動を容易にするように設計及び/又は寸法決定することができる。いくつかの実施形態では、1つ又は複数の搬送要素260は、ある軸を中心に回転可能であってもよく、及び/又は互いに対して移動可能(例えば、トラックに沿って)であってもよい。いくつかの実施形態では、1つ又は複数の搬送要素260は、ロボットデバイスの1つ又は複数の寸法を縮小させるために、使用していないときは、ロボットデバイス200の基部内に格納可能であってもよい。いくつかの実施形態では、1つ又は複数の搬送要素260は、操作要素(例えば、1つ又は複数の操作要素250)の一部であってもよく、又はその一部を形成してもよい。
【0049】
[0071] 1つ又は複数のセンサー270は、環境、及び/又はロボットデバイス200周辺の環境内の物体に関する情報をロボットデバイス200が捕捉することを可能にする任意の適宜のコンポーネントでもよい。1つ又は複数のセンサー270には、例えば、撮像デバイス(例えば、RGB-D(red-green-blue-depth)カメラ又はウェブカメラなどのカメラ)、オーディオデバイス(例えば、マイクロホン)、光センサー(例えば、光検知測距(つまりライダー)センサー、色検出センサー)、固有受容センサー、位置センサー、触覚センサー、力又はトルクセンサー、温度センサー、圧力センサー、運動センサー、音検出器などが含まれ得る。例えば、1つ又は複数のセンサー270は、物体と、ロボットデバイス200の周辺の環境とに関する視覚情報を捕捉するための、カメラなどの少なくとも1つの撮像デバイスを含んでもよい。いくつかの実施形態では、1つ又は複数のセンサー270は、触覚センサー(例えば、力、振動、接触、及び他の非視覚情報をロボットデバイス200に伝達することができるセンサー)を含んでもよい。
【0050】
[0072] いくつかの実施形態では、ロボットデバイス200は、人型の特徴(例えば、頭部、胴部、腕、脚、及び/又は基部)を有してもよい。例えば、ロボットデバイス200は、目、鼻、口、及び他の人型の特徴を備えた顔を含んでもよい。これらの人型の特徴は、1つ若しくは複数の操作要素の一部を形成することができ、及び/又は1つ若しくは複数の操作要素の一部であってもよい。模式的に示されないが、ロボットデバイス200は、アクチュエーター、モーター、カプラー、コネクター、電源(例えば、内蔵バッテリー)、及び/又はロボットデバイス200の異なる複数の部分をつなぐ、作動させる、及び/又は駆動する他のコンポーネントも含み得る。
【0051】
[0073]
図3は、いくつかの実施形態による制御ユニット302を模式的に示すブロック図である。制御ユニット302は、制御ユニット202と類似したコンポーネントを含んでもよく、制御ユニット202と構造的及び/又は機能的に類似してもよい。例えば、制御ユニット302は、プロセッサー204、メモリー220、1つ又は複数のI/Oインターフェース208、システムバス206、及びストレージ230とそれぞれ構造的及び/又は機能的に類似し得るプロセッサー304、グラフィックプロセッサー305、メモリー320、1つ又は複数のI/Oインターフェース308、システムバス306、及びストレージ330を含む。
【0052】
[0074] メモリー320は、アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329として示される、モジュール、プロセス、及び/又は機能をプロセッサー304に実行させることができる命令を保存する。アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329は、ハードウェアコンポーネント(例えば、センサー、操作要素、I/Oデバイス、プロセッサーなど)に結び付けられた1つ又は複数のプログラム及び/又はアプリケーションとして実装され得る。アクティブセンシング322、マーカー識別324、学習及びモデル生成326、軌道の生成及び実行328、並びに成功モニタリング329は、単一のロボットデバイス、又は複数のロボットデバイスによって実装され得る。例えば、ロボットデバイスは、アクティブセンシング322、マーカー識別324、並びに軌道の生成及び実行328を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング322、マーカー識別324、任意選択的に学習及びモデル生成326、並びに軌道の生成及び実行328を実装するように構成されてもよい。別の例として、ロボットデバイスは、アクティブセンシング322、マーカー識別324、軌道の生成及び実行328、並びに任意選択的に成功モニタリング329を実装するように構成されてもよい。図示されないが、メモリー320は、オペレーティングシステム及び一般的なロボット動作(例えば、電源管理、メモリー割り当てなど)に関連するプログラム及び/又はアプリケーションも保存し得る。
【0053】
[0075] ストレージ330は、スキルの学習及び/又は実行に関連する情報を保存する。ストレージ330は、例えば、状態情報331、1つ又は複数のモデル334、物体情報340、及び機械学習ライブラリー342を保存する。状態情報331は、ロボットデバイス(例えば、ロボットデバイス200)及び/又はロボットデバイスが動作している環境(例えば建物(例えば病院など))の状態に関する情報を含み得る。いくつかの実施形態では、状態情報331は、例えば、部屋、階、閉じた空間などの環境内のロボットデバイスの場所を示してもよい。例えば、状態情報331は、環境のマップ332を含んでもよく、そのマップ332内のロボットデバイスの場所を示すことができる。状態情報331は、環境内(例えば、マップ332内)の1つ又は複数の物体の1つ又は複数の場所(或いは物体を表す、及び/又は物体に関連付けられたマーカー)も含み得る。したがって、状態情報331は、1つ又は複数の物体に対するロボットデバイスの場所を識別することができる。物体には、空間又は開口部を規定する物体(例えば、戸口を規定する面又は壁)を含む、環境内に位置する、あらゆるタイプの物理的物体が含まれ得る。物体は、静止していてもよいし、或いは可動であってもよい。例えば病院などの環境内の物体の例には、設備、備品、機器、器具、家具、及び/又は人間(例えば、看護師、医師、患者など)が含まれる。
【0054】
[0076] いくつかの実施形態では、状態情報331は、
図19に示されるような環境の表現又はマップを含み得る。環境のマップは、例えば、ナビゲーション層、静的意味層、社会的層、及び動的層を含み得る。例えば、実演、ユーザー入力、感知したセンサー情報などからロボットデバイスによって学習された情報は、マップの異なる複数の層に送ることができ、このロボットデバイス(及び/又は他のロボットデバイス)による後の参照のために整理することができる。例えば、ロボットデバイスは、本明細書でさらに記載されるように、環境内の異なる複数の物体(例えば、ドア)に関して学習された情報に依存して、異なる挙動(例えば、戸口を通過する前に、閉じた戸口のドアが開けられるのを待つこと、閉じた戸口を通過する前に、ドアを開けるための助けを求めること)間でアービトレーションを行うやり方を決定することができる。
【0055】
[0077] 物体情報340は、環境内の1つ又は複数の物理的物体に関連する情報を含み得る。例えば、物体情報は、例えば、場所、色、形状、及び表面特徴などの、物体の異なる複数の特徴を識別又は定量化する情報を含み得る。物体情報は、物理的物体に関連付けられたコード、記号、及び他のマーカー(例えば、クイックレスポンス、つまり「QR」コード、バーコード、タグなど)も識別することができる。いくつかの実施形態では、物体情報は、環境内の物体を特徴付ける情報(例えば、戸口又は通路が閉じられている、ドアハンドルがドアハンドルの一種であるなど)を含み得る。物体情報により、制御ユニット302が、環境内で1つ又は複数の物理的物体を識別することを可能にすることができる。
【0056】
[0078] 状態情報331及び/又は物体情報340は、本明細書において使用及び記載されるように、環境的制約の例でもよい。環境的制約は、様々な寸法で提示され得る、又は見られ得る環境に関する情報を含み得る。例えば、環境的制約は、場所、時間、社会的インタラクション、具体的なコンテキストなどによって異なり得る。ロボットデバイスは、ユーザー入力、スキルの実演、環境とのインタラクション、自己探索、スキルの実行などから環境的制約を学習することができる。
【0057】
[0079] 機械学習ライブラリー342は、機械学習及び/又は異なる複数のスキルのモデル生成のための異なる複数のアルゴリズムに関連する複数のモジュール、プロセス、及び/又は機能を含んでもよい。いくつかの実施形態では、機械学習ライブラリーは、隠れマルコフモデル(つまり「HMM」)などの方法を含み得る。Pythonの既存の機械学習ライブラリーの一例は、scikit-learnである。ストレージ330は、例えば、ロボットシミュレーション、モーションプランニング及び制御、運動学教示及び知覚などに関連する追加のソフトウェアライブラリーも含み得る。
【0058】
[0080] 1つ又は複数のスキルモデル334は、異なる複数のアクションを行うために生成されたモデルであり、ロボットデバイスによって学習されたスキルを表す。いくつかの実施形態では、各モデル334は、ある環境内の異なる複数の物理的物体に結び付けられたマーカーのセットに関連付けられる。マーカー情報335は、どのマーカーが、ある特定のモデル334に関連付けられているかを示すことができる。各モデル334は、運動感覚教示及び/又はスキルの他の実演中に、例えばロボットデバイスの1つ又は複数のセンサーによって収集された感覚情報336にも関連付けることができる。感覚情報336には、任意選択的に、実演中にロボットデバイスがアクションを行う際のロボットデバイスの操作要素に関連付けられた操作要素情報337が含まれ得る。操作要素情報337には、例えば、関節の位置及び構成、エンドエフェクターの位置及び構成、基部若しくは搬送要素の位置及び構成、及び/又は関節、エンドエフェクター、搬送要素などに作用する力及びトルクが含まれ得る。操作要素情報337は、スキルの実演及び/又は実行中の特定の時点(例えば、キーフレーム)で、或いはスキルの実演及び/又は実行の間中ずっと記録されてもよい。感覚情報336には、スキルが実演及び/又は実行される環境に関連付けられた情報(例えば、環境内のマーカーの場所)も含まれ得る。いくつかの実施形態では、各モデル334は、成功基準339に関連付けられてもよい。成功基準339を用いて、スキルの実行をモニタリングすることができる。いくつかの実施形態では、成功基準339は、1つ又は複数のセンサー(例えば、カメラ、力/トルクセンサーなど)を用いて感知された視覚及び触覚データに関連付けられた情報を含み得る。成功基準339は、例えば、物体の移動を視覚的に検出すること、ロボットデバイスのコンポーネントに作用する力(例えば、物体の重さ)を検知すること、ロボットデバイスのコンポーネントと物体との係合(例えば、面に作用する圧力又は力の変化)を検知することなどに結び付けられてもよい。操作スキルのロボット学習において触覚データを使用する例は、本明細書に援用される、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」というタイトルの論文に記載されている。
【0059】
[0081] 任意選択的に、感覚情報336には、搬送要素情報338が含まれてもよい。搬送要素情報338は、ロボットデバイスがスキルの実演を受ける際のロボットデバイスの搬送要素(例えば、1つ又は複数の搬送要素260)の移動(例えば、戸口を通るナビゲーション、物体の搬送など)に関連付けられてもよい。搬送要素情報338は、スキルの実演及び/又は実行中の特定の時点(スキルに関連付けられたキーフレームなど)で、或いはスキルの実演及び/又は実行の間中、記録されてもよい。
【0060】
[0082] いくつかの実施形態では、環境的制約(例えば、状態情報331、物体情報340など)及び/又はスキル(例えば、1つ又は複数のモデル334)の初期セットが、例えば、遠隔の管理者又は監督者によって、ロボットデバイスに提供されてもよい。ロボットデバイスは、環境又は環境内の人間(例えば、患者、看護師、医師など)とのロボットデバイス自体のインタラクション、実演などに基づいて、及び/又は追加のユーザー入力によって、環境的制約及び/又はスキルの知識を適応させ、及び/又は増大させることができる。代替的又は追加的に、ロボットの監督者は、そのロボットデバイス、又は他の1つ若しくは複数のロボットデバイス(例えば、類似した、若しくは同じ環境(例えば、病院)内の他の1つ若しくは複数のロボットデバイス)によって収集された、及び/又は外部関係者(例えば、供給業者、管理者、メーカーなど)によってロボットの監督者に提供された新しい情報に基づいて、環境的制約及び/又はスキルに関するロボットデバイスの知識を更新することができる。このような更新は、環境又はスキルに関する新しい情報が、ロボットデバイス及び/又はロボットの監督者に提供される際に、周期的及び/又は連続的に提供されてもよい。
【0061】
[0083]
図4は、いくつかの実施形態による操作要素350を模式的に示す。操作要素350は、例えば、ロボットデバイス102及び/又は200などのロボットデバイスの一部を形成してもよい。操作要素350は、関節354によって共に結合された2つ以上のセグメント352を含むアームとして実装されてもよい。関節354により、1つ又は複数の自由度が許容され得る。例えば、関節354は、1つ若しくは複数の軸に沿った平行移動、及び/又は1つ若しくは複数の軸を中心とした回転を提供することができる。ある実施形態では、操作要素350は、関節354によって提供される7つの自由度を有し得る。
図4では、4つのセグメント352及び4つの関節354が示されているが、操作要素が異なる数のセグメント及び/又は関節を含み得ることを当業者は理解するだろう。
【0062】
[0084] 操作要素350は、環境内の物体とインタラクトするために使用することができるエンドエフェクター356を含む。例えば、エンドエフェクター356を使用して、異なる複数の物体と係合することができ、及び/又は異なる複数の物体を操作することができる。代替的又は追加的に、エンドエフェクター356を使用して、例えば、人間を含む、移動可能な物体又は動的物体とインタラクトすることができる。いくつかの実施形態では、エンドエフェクター356は、1つ又は複数の物体を解放可能に係合又は把持することができるグリッパーでもよい。例えば、グリッパーとして実装されたエンドエフェクター356は、物体を拾い上げて、第1の場所(例えば、収納庫)から第2の場所(例えば、オフィス、部屋など)へと移動させることができる。
【0063】
[0085] 複数のセンサー353、355、357、及び358は、操作要素350の異なる複数のコンポーネント(例えば、セグメント352、関節354、及び/又はエンドエフェクター356)上に配置されてもよい。センサー353、355、357、及び358は、環境情報及び/又は操作要素情報を含む感覚情報を測定するように構成されてもよい。センサーの例には、位置エンコーダー、トルク及び/又は力センサー、接触及び/又は触覚センサー、カメラなどの撮像デバイス、温度センサー、圧力センサー、光センサーなどが含まれる。いくつかの実施形態では、セグメント352上に配置されるセンサー353は、環境に関する視覚情報を捕捉するように構成されたカメラでもよい。いくつかの実施形態では、セグメント352上に配置されるセンサー353は、セグメント352の加速度の測定、及び/又はセグメント352の移動速度及び/又は位置の計算を可能にするように構成された加速度計でもよい。いくつかの実施形態では、関節354上に配置されるセンサー355は、関節354の位置及び/又は構成を測定するように構成された位置エンコーダーでもよい。いくつかの実施形態では、関節354上に配置されるセンサー355は、関節354にかかる力又はトルクを測定するように構成された力又はトルクセンサーでもよい。いくつかの実施形態では、エンドエフェクター356上に配置されるセンサー358は、位置エンコーダー及び/又は力若しくはトルクセンサーでもよい。いくつかの実施形態では、エンドエフェクター356上に配置されるセンサー357は、エンドエフェクター356と、環境内の物体との係合を測定するように構成された接触又は触覚センサーでもよい。代替的又は追加的に、センサー353、355、357、及び358の1つ又は複数が、環境内の1つ又は複数の物体及び/又はマーカーに関する情報を記録するように構成されてもよい。例えば、エンドエフェクター356上に配置されるセンサー358は、環境内の物体の場所、及び/又はエンドエフェクター356に対する物体の位置を追跡するように構成されてもよい。いくつかの実施形態では、センサー353、355、357、及び358の1つ又は複数が、環境内で人間などの物体が移動したか否かも追跡することができる。センサー353、355、357、及び358は、ロボットデバイスに位置する計算デバイス(例えば、搭載制御ユニット(例えば、制御ユニット202及び/又は302など))に対して、これらのセンサーが記録した感覚情報を送ることができ、或いは、センサー353、355、357、及び358は、遠隔の計算デバイス(例えばサーバー(例えばサーバー120など))に感覚情報を送ることができる。
【0064】
[0086] 操作要素350は、あるロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)に対して操作要素350が取り外し可能に結合されることを可能にする結合要素359を任意選択的に含んでもよい。いくつかの実施形態では、操作要素350は、ロボットデバイスの定位置に結合されてもよく、及び/又はロボットデバイスの複数の場所(例えば、
図5に示されるように、ロボットデバイスの胴部の右側又は左側)に結合可能であってもよい。結合要素359には、例えば、機械機構(例えば、ファスナー、ラッチ、マウント)、磁気機構、摩擦嵌め合いなどの、操作要素350をロボットデバイスに結合させることができる任意のタイプの機構が含まれ得る。
【0065】
[0087]
図20は、いくつかの実施形態による、ロボットシステムの制御ユニット1702を模式的に示すブロック図である。制御ユニット1702は、本明細書に記載される他の制御ユニット(例えば、制御ユニット202及び/又は302)と類似したコンポーネントを含み得る。例えば、制御ユニット1702は、制御ユニット202及び/又は302のプロセッサー、メモリー、1つ又は複数のI/Oインターフェース、システムバス、及びストレージとそれぞれ構造的及び/又は機能的に類似し得るプロセッサー1704、グラフィックプロセッサー1705、メモリー1720、1つ又は複数のI/Oインターフェース1708、システムバス1706、及びストレージ1730を含む。制御ユニット1702は、ロボットデバイス上に、及び/又は1つ若しくは複数のロボットデバイスに接続された遠隔サーバーに位置してもよい。
【0066】
[0088] メモリー1720は、アクティブセンシング1722と、スキル及び挙動の学習1724と、アクションの実行1726とを含み、任意選択的に、リソースアービトレーション1728と、データ追跡及び分析1758とを含む、モジュール、プロセス、及び/又は機能をプロセッサー1704に実行させることができる命令を保存した。アクティブセンシング1722、スキル及び挙動の学習1724、アクションの実行1726、リソースアービトレーション1728、並びにデータ追跡及び分析1758は、ハードウェアコンポーネント(例えば、センサー、操作要素、I/Oデバイス、プロセッサーなど)に結び付けられた1つ又は複数のプログラム及び/又はアプリケーションとして実装され得る。アクティブセンシング1722、スキル及び挙動の学習1724、アクションの実行1726、リソースアービトレーション1728、並びにデータ追跡及び分析1758は、単一のロボットデバイス、又は複数のロボットデバイスによって実装され得る。ある実施形態では、アクティブセンシング1722は、本明細書に記載されるように、環境のアクティブセンシング又はスキャニングを含み得る。他の実施形態では、アクティブセンシング1722は、ある環境のアクティブスキャニング、及び/又はその環境、その環境内の1つ若しくは複数の物体(例えば、環境内の人間を含む)、及び/又はロボットデバイス若しくはシステムに関連する1つ若しくは複数の状態に関連する情報の検知若しくは感知を含み得る。
【0067】
[0089] ストレージ330と同様に、ストレージ1730は、ある環境及び/又はその環境内の物体、並びにスキルの学習及び/又は実行(例えば、タスク及び/又は社会的挙動)に関連する情報を保存する。ストレージ1730は、例えば、状態情報1732、1つ又は複数のスキルモデル1734、物体情報1740、機械学習ライブラリー1742、及び/又は1つ若しくは複数の環境的制約1754を保存する。任意選択的に、ストレージ1730は、追跡情報1756及び/又は1つ若しくは複数のアービトレーションアルゴリズム1758も保存し得る。
【0068】
[0090] 状態情報1732は、ロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)及び/又はロボットデバイスが動作している環境の状態に関する情報を含む。いくつかの実施形態では、状態情報1732は、環境内の物体に関連する、追加の静的及び/又は動的情報と共に、環境のマップを含んでもよい。例えば、状態情報1732は、ある建物のナビゲーションマップを、その建物内の物体(例えば、備品、設備など)に関する静的及び/又は動的情報、並びに、その建物内の人間及び/又は社会的状況に関連する社会的コンテキスト情報と共に含み得る。
図19は、ある建物の例示的なマップ又は表現1600の模式図を提供する。表現1600は、ナビゲーション層1610、静的意味層1620、社会的層1630、及び動的層1640を含む。ナビゲーション層1610は、1つ又は複数の壁1614、1つ又は複数の階段1616、及び建物に組み込まれた他の要素(例えば、通路、開口部、境界線)を有する、1つ又は複数の階1612の数を識別することができる、建物の一般配置図又はマップを提供する。静的意味層1620は、1つ又は複数の部屋1622、1つ又は複数の物体1624、1つ又は複数のドア1626などの、建物内の物体及び/又は空間を識別する。静的意味層1620は、どの1つ又は複数の部屋1622又は他の空間に、ロボットデバイスがアクセスできるか、或いはアクセスできないかを識別することができる。いくつかの実施形態では、静的意味層1620は、ある建物内に位置する物体の3次元マップを提供することができる。社会的層1630は、社会的コンテキスト情報1632を提供する。社会的コンテキスト情報1632は、建物内の人間に関連する情報(1つ又は複数のロボットデバイスと、1人又は複数の人間との過去のインタラクションなど)を含む。社会的コンテキスト情報1632を用いて、1つ又は複数のロボットデバイスと、1人又は複数の人間とのインタラクションを追跡することができ、これらのインタラクションを用いて、あるロボットデバイスと、ある人間との1つ又は複数のインタラクションに関与するスキルの既存のモデルの生成及び/又は適応を行うことができる。例えば、社会的コンテキスト情報1632は、ある人間が、通常、ある特定の場所にいることを示すことができ、それによって、その情報の知識を持つロボットデバイスは、その人間の場所の近くにロボットデバイスが移動することを必要とするスキルの実行を適応させることができる。動的層1640は、時間と共に移動及び/又は変化し得る、建物内の1つ又は複数の物体及び他の要素に関する情報を提供する。例えば、動的層1640は、1つ又は複数の物体1642に関連する、1つ若しくは複数の移動1644及び/又は1つ若しくは複数の変化1646を追跡することができる。ある実施形態では、動的層1640は、ある物体1642の有効期限をモニタリングし、その物体1642の有効期限がいつ切れたかを識別することができる。
【0069】
[0091] 表現1600は、例えばロボットデバイスの制御ユニット1602が利用可能であってもよく、及び/又は制御ユニット1602によって管理されてもよい。制御ユニット1602は、本明細書に記載される他の制御ユニット(例えば、制御ユニット202、302、及び/又は1702)に類似したコンポーネントを含み得る。制御ユニット1602は、表現1600、及び1つ又は複数のロボットデバイスに関連する情報(例えば、あるロボットデバイスの要素の構成、建物内のそのロボットデバイスの場所など)を含む状態情報1604を保存する(例えば、ストレージ330及び/又は1730などの、本明細書に記載される他のストレージ要素に類似した)ストレージを含み得る。制御ユニット1602は、ロボットデバイス上に、及び/又は1つ若しくは複数のロボットデバイスに接続された遠隔サーバーに位置してもよい。1つ又は複数のロボットデバイスが、それらの周辺環境に関する情報を収集する際に、1つ又は複数のロボットデバイスが、建物の表現1600に関連する情報を含む状態情報1604の更新及び保持を行うように構成されてもよい。
【0070】
[0092] いくつかの実施形態では、制御ユニット1602は、任意選択的に、データ追跡及び分析要素1606も含んでもよい。データ追跡及び分析要素1606は、例えば、1つ又は複数のロボットデバイスによって収集された情報(例えば、表現1600内に含まれる情報及び/又は他の状態情報1604)のデータ追跡及び/又は分析を行うように構成された計算要素(例えば、プロセッサー)でもよい。例えば、データ追跡及び分析要素1606は、在庫を管理する(例えば、有効期限の追跡、在庫品の使用のモニタリング及び記録、新しい在庫品の発注、新しい在庫品の分析及び推薦など)ように構成されてもよい。病院の状況では、データ追跡及び分析要素1606は、医療用品及び/又は設備の使用及び/又は保守を管理することができる。いくつかの実施形態では、データ追跡及び分析要素1606は、集計データ表示(例えば、レポート、チャートなど)を生成することができ、これらを用いて、正式な法律、規則、及び/又は基準に準拠することができる。いくつかの実施形態では、データ追跡及び分析要素1606は、病院内の患者などの人間に関連する情報を分析するように構成されてもよい。例えば、ロボットデバイスは、病院内の1人又は複数の患者に関する情報を収集し、例えば、診断検査及び/又はスクリーニングを含む様々な機能で使用する目的で分析及び/又は要約を行うために、その情報をデータ追跡及び分析要素1606に回すように構成されてもよい。いくつかの実施形態では、データ追跡及び分析要素1606は、第三者システムからの情報(例えば、病院の電子医療記録、セキュリティシステムのデータ、保険のデータ、ベンダーのデータなど)にアクセスし、及び/又はそのような情報を取得し、そのデータを、1つ若しくは複数のロボットデバイスによって収集されたデータと共に、又は1つ若しくは複数のロボットデバイスによって収集されたデータを用いずに、使用及び/又は分析することによって、データの追跡及び/又は分析機能を行うように構成されてもよい。
【0071】
[0093]
図20に示されるように、1つ又は複数のスキルモデル1734は、タスク及び/又は挙動を含む、様々なアクション又はスキルの学習及び/又は実行を行うために使用することができるモデルである。1つ又は複数のモデル1734は、
図3を参照して本明細書に記載されるような、1つ又は複数のモデル334に類似してもよい。例えば、1つ又は複数のモデル1734は、スキルの実行に関与する1つ又は複数の物体(例えば、ロボットデバイスによって操作される物体、スキルの実行中にロボットデバイスがインタラクトする物体、スキルを実行しながらロボットデバイスが考慮する物体)に関連する情報を含んでもよい。上記の通り、物体の例には、例えば、備品、設備、人間、及び/又は開口部(例えば、戸口)を規定する面などの静止物体及び/又は可動物体が含まれる。1つ又は複数の物体に関連する情報は、例えば、物体及び/又は物体の特徴を識別するマーカーを含み得る。追加的又は代替的に、1つ又は複数のモデル1734は、例えば、スキルの学習及び/又は実行、又はアクティブセンシング中に、ロボットデバイスによって収集された感覚情報を含んでもよい。上記の通り、感覚情報は、スキルの学習及び/又は実行を行う際のロボットデバイスの1つ若しくは複数のコンポーネント(例えば、操作要素、搬送要素)に関連する情報、及び/又はスキルが学習及び/又は実行される環境に関連する情報(例えば、環境内の1つ又は複数の物体の場所、社会的コンテキスト情報など)を含み得る。いくつかの実施形態では、モデル1734は、例えば、スキルの成功した実行を示す、ロボットデバイスの1つ又は複数のセンサーを用いて感知された視覚及び/又は触覚データなどの成功基準に関連付けられてもよい。
【0072】
[0094] 物体情報1740は、1つ又は複数の物理的物体に関連する情報(例えば、場所、色、形状、表面特徴、及び/又は識別コード)を含み得る。機械学習ライブラリー1742は、機械学習の異なる複数のアルゴリズム及び/又は異なる複数のスキルのモデル生成に関連する複数のモジュール、プロセス、及び/又は機能を含み得る。
【0073】
[0095] 環境的制約1754は、環境内のロボットデバイスの動作を制限し得る、環境内の物体及び/又は状態に関連する情報を含む。例えば、環境的制約1754は、環境(例えば、備品容器、部屋、戸口など)内の物体のサイズ、構成、及び/又は場所に関連する情報、及び/又は特定のエリア(例えば、部屋、通路など)のアクセスが制限されていることを示す情報を含み得る。環境的制約1754は、環境内の1つ又は複数のアクションの学習及び/又は実行に影響を与え得る。そのため、環境的制約1754は、その環境的制約を含むコンテキスト内で実行されるスキルに関する各モデルの一部となり得る。
【0074】
[0096] 追跡情報1756は、環境の表現(例えば、表現1600)に関連する情報、及び/又は例えば、データ追跡及び分析要素1606などのデータ追跡及び分析要素、又はデータ追跡及び分析1758を実行するプロセッサー1704によって追跡及び/又は分析される、第三者システムから取得した情報(例えば、病院の電子医療記録、セキュリティシステムのデータ、保険のデータ、ベンダーのデータなど)を含む。追跡情報1756の例には、在庫データ、サプライチェーンデータ、使用時点データ、及び/又は患者データ、並びにそのようなデータからまとめられた集計データが含まれる。
【0075】
[0097] 1つ又は複数のアービトレーションアルゴリズム1758は、実行すべき異なるアクション間でアービトレーション又は選択を行うためのアルゴリズムを含む(例えば、ロボットデバイスの異なる複数のリソース又はコンポーネントの使い方)。1つ又は複数のアービトレーションアルゴリズム1758は、ルールでもよく、いくつかの実施形態では、
図24を参照してさらに記載されるように学習されてもよい。これらのアルゴリズムは、ロボットデバイスが管理すべき複数のリソース及び/又は目的を持つ場合に、異なる複数のアクションから選択するために、ロボットデバイスによって使用することができる。例えば、非構造化環境及び/又は動的環境(例えば、人間を含む環境)で動作するロボットデバイスは、そのロボットデバイスから異なる複数の挙動又はアクションを要求し得るいずれかの時点で、いくつかの状態にさらされ得る。そのような場合には、ロボットデバイスは、あらかじめ規定されたルール(例えば、感情状態、環境的制約、社会的に規定された制約など)に基づいて異なる優先順位を様々なアクションに割り当て得る、1つ又は複数のアービトレーションアルゴリズム1758に基づいて、異なる複数のアクションから選択するように構成されてもよい。ある実施形態では、アービトレーションアルゴリズム1758は、周辺環境、現在の状態、及び/又は他のファクターに関してロボットデバイスによって収集された情報に基づいて、異なるスコア又は値を複数のアクションに割り当てることができる。
【0076】
[0098] 1つ又は複数のI/Oインターフェース208及び/又は308に類似して、1つ又は複数のI/Oインターフェース1708は、制御ユニット1702の内部コンポーネントと、ユーザーインターフェース、操作要素、搬送要素、及び/又は計算デバイスなどの外部デバイスとの間の通信を可能にする任意の適宜の1つ又は複数のコンポーネントでもよい。1つ又は複数のI/Oインターフェース1708は、制御ユニット1702をネットワーク(例えば、
図1に示されるようなネットワーク105)に接続することができるネットワークインターフェース1760を含み得る。ネットワークインターフェース1760は、(ロボットデバイス上、又は1つ若しくは複数のロボットデバイスと通信する別のネットワークデバイス上に位置し得る)制御ユニット1702と、1つ又は複数のロボットデバイスのモニタリング及び/又は制御を行うために、ロボットの監督者によって使用され得る計算デバイスなどの遠隔デバイスとの通信を可能にする。ネットワークインターフェース1760は、無線及び/又は有線接続をネットワークに提供するように構成されてもよい。
【0077】
[0099]
図5は、いくつかの実施形態によるロボットデバイス400を模式的に示す。ロボットデバイス400は、頭部480、胴部488、及び基部486を含む。頭部480は、セグメント482及び1つ又は複数の関節(図示されない)によって胴部488に接続されてもよい。セグメント482は、頭部480が胴部488に対して移動することを可能にするために、移動可能であってもよく、及び/又は可撓性があってもよい。頭部480、セグメント482などは、1つ又は複数の操作要素の例となることができ、本明細書に記載される1つ又は複数の他の操作要素と類似した機能性及び/又は構造を含み得る。
【0078】
[0100] 頭部480は、1つ又は複数の撮像デバイス472及び/又は他のセンサー470を含む。撮像デバイス472及び/又は他のセンサー470(例えば、ライダーセンサー、運動センサーなど)は、ロボットデバイス400が環境をスキャンし、その環境の表現(例えば、視覚的表現又は他の意味的表現)を取得することを可能にすることができる。いくつかの実施形態では、撮像デバイス472は、カメラでもよい。いくつかの実施形態では、撮像デバイス472は、ロボットデバイス400の周りの環境の異なる複数のエリアに焦点を合わせるために使用することができるように、移動可能であってもよい。撮像デバイス472及び/又は他のセンサー470は、感覚情報を収集し、ロボットデバイス400に搭載された計算デバイス又はプロセッサー(例えば、制御ユニット202又は302など)に感覚情報を送ることができる。いくつかの実施形態では、ロボットデバイス400の頭部480は、人間の形を有し、1つ又は複数の人間の特徴(例えば、目、鼻、口、耳など)を含んでもよい。このような実施形態では、撮像デバイス472及び/又は他のセンサー470は、1つ又は複数の人間の特徴として実装されてもよい。例えば、撮像デバイス472は、頭部480上の目として実装されてもよい。
【0079】
[0101] いくつかの実施形態では、ロボットデバイス400は、撮像デバイス472及び/又は他のセンサー470を用いて、環境内の物体(例えば、物理的構造、デバイス、物品、人間など)に関する情報を求めて、環境をスキャンすることができる。ロボットデバイス400は、アクティブセンシングに従事することができ、又はロボットデバイス400は、トリガー(例えば、ユーザーからの入力、環境内の検出事象又は変化)に応答して、センシング又はスキャニングを開始することができる。
【0080】
[0102] いくつかの実施形態では、ロボットデバイス400は、保存された知識及び/又はユーザー入力に基づいてセンシングを行うことができる適応センシングに従事することができる。例えば、ロボットデバイス400は、ロボットデバイス400が物体に関して有する事前情報に基づいて、物体を求めてスキャンすべき環境内のエリアを識別することができる。
図6Aを参照して、ロボットデバイス400は、シーン(例えば、部屋のあるエリア)をスキャンし、そのシーンの表現500を取得することができる。表現500では、ロボットデバイス400は、第1の物体550がエリア510に位置し、第2の物体560がエリア510及び530に位置することを識別する。ロボットデバイス400が、今後スキャンを行うときに、その情報を用いて物体550及び560の位置を特定することができるように、ロボットデバイス400は、それが内的に保存した環境のマップ内に、物体550及び560の場所を保存することができる。例えば、ロボットデバイス400が上記シーンに戻り、そのシーンを2回目にスキャンするときに、ロボットデバイス400は、
図6Bに示されるように、シーンの異なるビューを取得してもよい。この2回目のスキャンを行うときは、ロボットデバイス400は、シーンの表現502を取得することができる。表現502で物体550及び560の位置を特定するために、ロボットデバイス400は、シーンの表現500を取得したときに、これらの物体の場所に関してロボットデバイス400が以前に保存した情報を参照することができる。ロボットデバイス400は、環境内でのロボットデバイス400の場所が変わった可能性があることを考慮することができ、物体550及び560が、表現502の異なるエリアに位置し得ることを認識することができる。この情報に基づいて、ロボットデバイス400は、物体550に関してはエリア510を見るが、物体560に関してはエリア520及び540を見ることを知ることができる。物体550及び560の場所に関して以前に保存された情報を用いることによって、ロボットデバイス400は、物体550及び560を求めて、(例えば、ズームインすることによって、エリア内でカメラをゆっくりと移動させることによって)注意深くスキャンすべきエリアを自動的に識別することができる。
【0081】
[0103] いくつかの実施形態では、ロボットデバイス400は、人間による入力に基づいて、シーンの異なるエリアのセンシング又はスキャニングをより注意深く行うことも知ることができる。例えば、人間は、あるシーンの特定のエリアが、関心のある1つ又は複数の物体を含むことをロボットデバイス400に示すことができ、ロボットデバイス400は、それらの物体を識別するために、それらのエリアをより注意深くスキャンすることができる。このような実施形態では、ロボットデバイス400は、
図5に模式的に示されるように、キーボード若しくは他の入力デバイスを備えたディスプレイ、及び/又はタッチスクリーンなどの入出力デバイス440を含んでもよい。
【0082】
[0104] いくつかの実施形態では、ロボットデバイス400は、環境をスキャンし、例えば人間などの物体が、環境内で移動していることを識別することができる。例えば、
図7A及び7Bに示されるように、物体650が静止したままである一方で、物体660は、環境内で移動している場合がある。
図7Aは、物体660がエリア610及び630内にあることを示すシーンの表現600を示し、
図7Bは、物体660がエリア620及び640内にあることを示すシーンの表現602を示す。両表現600及び602では、物体650は、エリア610の同じ場所にとどまり得る。ロボットデバイス400は、物体660がシーン内で移動したことを識別し、それに応じて、ロボットデバイス400のアクションを調整することができる。例えば、ロボットデバイス400が、物体660とインタラクトする予定であった場合、ロボットデバイス400は、その軌道を変えること(例えば、物体660の近くに移動すること)、及び/又は操作要素若しくは物体660とインタラクトするように構成された他のコンポーネントの軌道を変えることができる。代替的又は追加的に、ロボットデバイス400が、物体650(及び/又はシーン内の別の物体)とインタラクトする予定であった場合、ロボットデバイス400は、物体650とインタラクトするためのコースを計画する間に、物体660の移動を考慮に入れることができる。いくつかの実施形態では、ロボットデバイス400は、ロボットデバイス400のアクションをほぼリアルタイムで調整することができるように、アクティブセンシングに従事することができる。
【0083】
[0105]
図5に模式的に示されるように、基部486は、車輪460として実装される1つ又は複数の搬送要素を任意選択的に含んでもよい。車輪460により、ロボットデバイス400が環境(例えば、病院)内を動き回ることを可能にすることができる。ロボットデバイス400は、アーム450として実装される少なくとも1つの操作要素も含む。アーム450は、本明細書に記載される他の操作要素(例えば、操作要素350)に構造的及び/又は機能的に類似してもよい。アーム450は、ロボットデバイス400の胴部488に固定的に取り付けられてもよく、又は任意選択的に、操作要素450は、ロボットデバイス400の結合部分484に付着し得る結合要素(例えば、結合要素359)により、胴部488に取り外し可能に結合されてもよい。結合部分484は、結合要素359と係合し、並びに、搭載計算デバイス(例えば、制御ユニット202又は302)が、アーム450のコンポーネントに電力を供給し、及び/又はそれらのコンポーネントを制御し、操作要素450上に配置されたセンサー(例えば、センサー353、355、357、及び358)によって収集された情報を受信することができるように、アーム450と搭載計算デバイスとの電気的接続を提供するように構成されてもよい。
【0084】
[0106] 任意選択的に、ロボットデバイス400は、セグメント482、胴部488、基部486、及び/又はロボットデバイス400の他の部分上に位置する、1つ又は複数の追加のセンサー470も含み得る。1つ又は複数のセンサー470は、例えば、撮像デバイス、力若しくはトルクセンサー、運動センサー、光センサー、圧力センサー、及び/又は温度センサーでもよい。センサー470により、環境に関する視覚情報及び非視覚情報をロボットデバイス400が捕捉することを可能にすることができる。
【0085】
方法
[0107]
図8~11は、いくつかの実施形態による、1つ又は複数のロボットデバイスを含むロボットシステム(例えば、ロボットシステム100)によって行われ得る方法700を示すフロー図である。例えば、方法700の全て又は一部は、単一のロボットデバイス(本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなど)によって行われてもよい。或いは、方法700の全てが、それぞれが順番に方法700の一部を行う複数のロボットデバイスによって、連続的に行われてもよい。或いは、方法700の全て又は一部は、複数のロボットデバイスによって同時に行われてもよい。
【0086】
[0108]
図8に示されるように、ロボットデバイスは、702において、環境をスキャンし、環境の表現を取得することができる。ロボットデバイスは、1つ又は複数のセンサー(例えば、1つ若しくは複数のセンサー270若しくは470、及び/又は1つ若しくは複数の撮像デバイス472)を用いて、環境をスキャンすることができる。いくつかの実施形態では、ロボットデバイスは、移動可能カメラを用いて環境をスキャンすることができ、カメラの位置及び/又は焦点は、環境のシーン内の複数のエリアを捕捉するために調整することができる。704では、センシング中に収集された情報に基づいて、ロボットデバイスは、データを分析することにより、捕捉された環境の表現内の1つ又は複数のマーカーを識別することができる。マーカーは、視覚マーカー又は基準マーカー(例えば、QRコード、バーコード、タグなどの可視マーカー)を用いて印が付けられたシーン内の1つ又は複数の物体に関連付けられてもよい。代替的又は追加的に、ロボットデバイスは、ロボットデバイス上のメモリー(例えば、ストレージ330)に保存された物体情報(例えば、物体情報340)を用いて、物体認識により、環境内の1つ又は複数の物体に関連付けられたマーカーを識別することができる。物体情報には、例えば、場所、色、形状、及び表面特徴などの、物体の異なる複数の特徴を示す情報が含まれ得る。ある実施形態では、物体情報は、特徴空間と呼ばれる場合がある、物体の異なる複数の特徴を表す数値として、整理することができる。
【0087】
[0109] 1つ又は複数のマーカーを識別した後に、706において、ロボットデバイスは、任意選択的に、環境の表現内で、1つ又は複数のマーカーを提示することができる。いくつかの実施形態では、環境の表現は、例えば、環境の拡張ビューなどの視覚的表現でもよい。このような実施形態では、ロボットデバイスは、例えば表示画面上に、環境の視覚的表現を表示し、環境の視覚的表現内に、1つ又は複数のマーカーの場所を表示することができる。代替的又は追加的に、環境の表現は、環境内で意味マーカーによって示される1つ又は複数のマーカーの場所を有する、環境の意味的表現でもよい。
【0088】
[0110] いくつかの実施形態では、ロボットデバイスは、1つ又は複数のマーカーを有する、環境の表現をユーザーに提示することができ、任意選択的に、708において、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、環境の表現内の1つ又は複数のマーカーを承認するか、又は拒否するようにユーザーに促すことができる。ユーザーが1つ又は複数のマーカーを承認しない場合(708:NO)、方法700は、702に戻り、ロボットデバイスは、環境を再スキャンすることにより、環境の第2の表現を取得することができる。ユーザーが1つ又は複数のマーカーを承認する場合(708:YES)、方法700は、708に進み、そこで、ロボットデバイスは、マーカーに関連付けられた情報(例えば、場所、特徴など)をメモリー(例えば、ストレージ330)に保存することができる。例えば、ロボットデバイスは、1つ又は複数のマーカーの場所を環境の内部マップ(例えば、マップ332)に保存することができる。
【0089】
[0111] いくつかの実施形態では、ロボットデバイスは、704において、1つ又は複数のマーカーを識別し、1つ又は複数のマーカーを承認するようにユーザーに促すことなく、そのまま、710で、1つ又は複数のマーカーの場所及び/又はマーカーに関連付けられた他の情報の保存を開始してもよい。このような実施形態では、ロボットデバイスは、1つ又は複数のマーカーの場所を、それらの場所を保存する前に分析することができる。例えば、ロボットデバイスは、(例えば、環境の以前のスキャン中に獲得された、及び/又はユーザー若しくは計算デバイスによってロボットデバイスに入力された)1つ又は複数のマーカーの場所に関する、以前に保存された情報を有し、1つ又は複数のマーカーの場所を、その以前に保存された情報と比較することによって、精度のチェック及び/又はマーカーの場所の変化を識別することができる。具体的には、ある特定のマーカーが、ロボットデバイスによって識別された場所とは異なる場所に位置すべきであることを以前に保存された情報が示す場合には、ロボットデバイスは、環境の追加的スキャンを開始することにより、マーカーの場所を保存する前に、その場所を検証することができる。代替的又は追加的に、ロボットデバイスは、マーカーの場所が変わったことを示す通知をユーザーに送ることができる。このような場合には、ロボットデバイスは、マーカーの新しい場所を保存することができるが、マーカーの場所に変化があったことを示すメッセージも保存することができる。その場合、ユーザー又は計算デバイスは、後に、メッセージを見直し、マーカーの場所の変化を一致させることができる。
【0090】
[0112]
図9に示されるように、方法700は、任意選択的に、712に進み、そこで、ロボットデバイスは、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、環境の表現で識別された1つ又は複数のマーカーからマーカーのセットを選択するようにユーザーに促すことができる。714において、ユーザーは、選択を行うことができ、ロボットデバイスは、ユーザーから選択を受け取ることができる。或いは、いくつかの実施形態では、選択を行うようにユーザーに促す代わりに、ロボットデバイスは、マーカーのセットを自動的に選択することができる。ロボットデバイスは、特定のあらかじめ規定された、又は学習されたルール及び/又は条件に基づいて、マーカーを選択するようにプログラムされてもよい。例えば、ロボットデバイスは、1日のうちの特定の時間の間、又は建物内の人通りが少ないときに、ある特定のタイプの物体(例えば、供給品)に関連付けられたマーカーを選択するように指示され得る。後者の場合、ロボットデバイスは、建物中を能動的に移動すること(例えば、通路及び部屋を巡回及びモニタリングすること)、並びに環境のセンシング又はスキャニングを行うことによって、建物内の人通りがいつ少ないかを決定することができる。そうすることで、ロボットデバイスは、建物内の人通りが他のほとんどの時よりも少ないときに、特定の物体に関連付けられたマーカーを選択することを知ることができる。
【0091】
[0113] ロボットデバイスが、マーカーのセットの選択をユーザーから受け取り、及び/又はマーカーのセットを自動的に選択した後に、方法700は、716のスキルの学習、又は718のスキルの実行に進むことができる。
【0092】
[0114] どのような特定のスキルに関しても、ロボットデバイスがスキルを実行又は実施する前に、ロボットデバイスが、スキルを教示されることが可能である。例えば、操作スキルを獲得するために、ロボットデバイスは、ユーザー(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)又は他のロボットデバイスが、ロボットデバイスにスキルを実演することができるLfD(例えば、運動感覚教示)により、教示されることが可能である。例えば、ロボットデバイスのアームなどの操作要素は、物体とインタラクトするために、一連のウェイポイントを通って移動することができる。別の例として、ロボットデバイスの可動基部(例えば、車輪、トラック、クローラーなどの搬送要素を備えた基部)が、ユーザーによって(例えば、ジョイスティック、ユーザーインターフェース、又はその他のタイプの物理的若しくは仮想制御デバイスを用いることによって、或いはロボットデバイスを物理的に指導し、又は移動させる(例えば、引き寄せる、押す)ことによって)環境内の物体を避けてナビゲートされ得る。
【0093】
[0115] 運動感覚教示の場合、ユーザーは、ロボットデバイスに対してスキルを物理的に実演することができる。スキルの汎用的動作を表す集約モデルを用いて、ロボットデバイスが教示され得る、大量生産状況(例えば、製造環境など)において、訓練又は教示が行われ得る。代替的又は追加的に、ロボットデバイスが、特定の現場環境でスキルを行うことを学習できるように、ロボットデバイスが(例えば病院に)配備された後に、教示を現場で行うことができる。いくつかの実施形態では、ロボットデバイスは、現場状況で教示されることが可能であり、その後、学習したスキルに関連する情報を1つ又は複数の別のロボットデバイスに送信することによって、これらの別のロボットデバイスも、同じ現場状況で動作するときに、教示されたスキルの知識を持つことができる。このような実施形態は、複数のロボットデバイスが単一の現場で配備されている場合に役に立ち得る。その場合、各ロボットデバイスは、他のロボットデバイスに対して、それらの他のロボットデバイスが、その現場環境に関するスキルのセットをまとめて学習することができるように情報の送受信を行うことができる。
【0094】
[0116]
図10に示される学習モードでは、方法700は、720~724に進み、ここでは、ユーザーは、LfD教示プロセスを用いて、ロボットデバイスにスキルを教示することができる。ある実施形態では、スキルは、ある特定の場所にある物体を把持すること、その物体を拾い上げること、その物体を別の場所に移動させること、及びその物体をその別の場所に降ろすこととして規定され得る。別の実施形態では、スキルは、ロボットデバイスの周囲の環境(例えば、ドア)とのインタラクションに関与し得る。
【0095】
[0117] 720では、ユーザー(又は別のロボットデバイス)が、操作要素(例えば、操作要素250、350、若しくは450)及び/又は搬送要素(例えば、1つ若しくは複数の搬送要素260、460)を含むロボットデバイスに動作を指導することができる。例えば、ユーザーは、ある特定のスキル(例えば、人間とのインタラクション、物体との係合及び/又は物体の操作、及び/又は1人若しくは複数の人間及び/又は周辺環境との他のインタラクション)の実行に関連する実演により、ロボットデバイスの操作要素(及び/又はロボットデバイスの他のコンポーネント(例えば、搬送要素))を指導することができる。ある実施形態では、ユーザーは、ドアとインタラクトするやり方及び/又はドアを通ってナビゲートするやり方をロボットデバイスに実演することができる。ユーザーは、どのようにロボットデバイスが、例えば、それの1つ又は複数の操作要素を用いて、ドアハンドルとインタラクトするかを実演することができる。例えば、アームなどの、ロボットデバイスの操作要素は、(例えば、視覚入力によって入れられた、又は基準マーカーによって識別された)ドアハンドルに対する一連の動きを指導され得る。例えば操作要素を用いて、ドアハンドルが回される間、又はドアハンドルが回された後に、ロボットデバイスは、例えば1つ又は複数の搬送要素を移動させることによって、ドアを押し開くことを実演により指導され得る。以下でさらに説明されるように、1つ又は複数の操作要素及び1つ又は複数の搬送要素の動きの組み合わせを用いることによって、そのドア及び/又は類似のドアとの今後のインタラクションのために、スキル又は挙動を実行するためのモデルを構築することができる。
【0096】
[0118] いくつかの実施形態では、ロボットデバイスは、局所的に存在するユーザーによって(例えば、ロボットデバイスを物理的に移動させている、及び/又はロボットデバイスに入力を与えているユーザーによって)指導されることが可能である。いくつかの実施形態では、ロボットデバイスは、例えば、遠隔又はクラウドインターフェースを用いて、ロボットデバイスから遠隔に位置するユーザー(例えば、ロボットの監督者)によって指導されることが可能である。
【0097】
[0119] 操作要素(及び/又はロボットデバイスの他のコンポーネント)に動作を指導しながら、ユーザーは、操作要素の状態(例えば、関節の構成、関節力及び/又は関節トルク、エンドエフェクターの構成、エンドエフェクターの位置)、ロボットデバイスの別のコンポーネント、及び/又は環境(例えば、選択されたマーカーに関連付けられた物体の場所、及び/又は環境内の他の物体)に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、722において、操作要素の動作中のウェイポイント又はキーフレームで、操作要素及び/又は環境に関する情報を捕捉するための信号をユーザーから受信することができる。信号の受信に応答して、724において、ロボットデバイスは、そのキーフレームにおいて、操作要素、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を捕捉することができる。操作要素情報には、例えば、関節の構成、関節トルク、エンドエフェクターの位置、及び/又はエンドエフェクタートルクが含まれ得る。環境情報は、例えば、エンドエフェクターに対する、選択されたマーカーの位置を含み、環境内の物体がいつ動いた可能性があるかをロボットデバイスに示すことができる。動作がまだ続いている場合には(728:NO)、ロボットデバイスは、さらなる複数のキーフレームで、操作要素及び/又は環境に関する情報を捕捉することを待つことができる。いくつかの実施形態では、ロボットデバイスは、ユーザーから信号を受信することなく、キーフレーム情報を捕捉するようにプログラムされてもよい。例えば、操作要素がユーザーによって動かされている間に、ロボットデバイスは、操作要素のセグメント及び関節の変化をモニタリングし、それらの変化が閾値を超えたとき、又はセグメント若しくは関節の軌道の方向変化があったときに、ロボットデバイスは、その時点がキーフレームであると自律的に選択し、そのキーフレームにおける操作要素及び/又は環境に関する情報を記録することができる。
【0098】
[0120] 操作要素(及び/又はロボットデバイスの他のコンポーネント(例えば、搬送要素))の動作中に、ロボットデバイスは、730において、ユーザーから信号を受信することなく、感覚情報(例えば、操作要素、ロボットデバイスの他の1つ又は複数の要素(例えば、搬送要素)、及び/又は環境に関する情報)も、連続的又は周期的に記録することができる。例えば、ユーザーが実演を通して操作要素を動かす際に、ロボットデバイスは、セグメント及び関節の軌道、並びにそれらの構成に関する情報を記録することができる。実演中に、ロボットデバイスは、1つ又は複数の環境的制約に関する情報(例えば、環境内の1つ若しくは複数の物体に関する静的情報(例えば、戸口、備品容器などの場所若しくはサイズ)及び/又は環境内の1つ若しくは複数の物体に関する動的情報(例えば、部屋内の人通りのレベル、ロボットデバイスの周りのユーザーの動きなど))も記録することができる。いくつかの実施形態では、実演中にロボットデバイスによって記録された感覚情報は、例えば
図19に示されるような環境のマップの1つ又は複数の層に対して追加及び/又は変更を行うことができる。
【0099】
[0121] いくつかの実施形態では、ロボットデバイスは、例えばマイクロホンなどのオーディオデバイス(例えば、244)を含んでもよく、キーフレームの画定は、音声コマンドによって制御されてもよい。例えば、ユーザーは、「指導します(I will guide you)」と話すことによって、実演する予定であることをロボットデバイスに示すことができる。「ここから開始(start here)」と話すことによって、ユーザーが最初のキーフレームを示したときに、実演が始まり得る。「ここは継続(go here)」と話すことによって、中間キーフレームを示すことができる。そして、「ここで終了(end here)」と話すことによって、実演の終了を表す最後のキーフレームを示すことができる。実演教示の適切な例が、Akgunの論文に提供されている。
【0100】
[0122] いくつかの実施形態では、ロボットデバイスにスキルを実演しながら、ユーザーは、例えば、ロボットデバイスへの1つ又は複数の入力により、スキルのどの1つ又は複数の部分が汎用的なものであり、スキルのどの1つ又は複数の部分が、特定の環境又は状況に対してより固有のものであるかを示すことができる。例えば、第1の場所から第2の場所(例えば、ある部屋)へと備品を移動させ、それらの備品を第2の場所に降ろすやり方をロボットデバイスに実演しながら、第1の場所から第2の場所へとナビゲートするアクションは、汎用的なものであるが、第2の場所に備品を降ろすアクションは固有のものであり、実施するためには、環境に固有の情報(例えば、備品を降ろすための具体的なタグ又はマーカー)をさらに必要とすることを、ユーザーはロボットデバイスに示すことができる。ロボットデバイスが、後に、そのスキルに関するモデルを使用して、異なる場所間で備品を移動させるときに、ロボットデバイスは、スキルを実行する前に、荷降ろしに関する特定の情報を要求すること、及び/又はその特定の情報をスキャンすること(例えば、荷降ろしを行う前に、その場所を決定するための特定のタグに関する情報を要求及び/又はスキャンすること)を知ることができる。
【0101】
[0123] いくつかの実施形態では、ユーザーは、ロボットデバイスにスキルを実演した後に、汎用的若しくは固有であるスキルの部分を示し、及び/又は汎用的若しくは固有であるとユーザーが以前に示したスキルの部分を変更することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットを学習した後に、スキルのセットの部分が汎用的又は固有であるかを決定することができる。いくつかの実施形態では、ロボットデバイスは、スキルのセットの部分が汎用的又は固有であることをユーザーに推薦し、ユーザーに確認を要求することができる。ユーザーの確認に基づいて、ロボットデバイスは、このスキルのセットに関連する今後のスキルの学習及び/又は実行時に参照するために、この情報を保存することができる。代替的に、ロボットデバイスは、ユーザーの入力なしに、スキルの異なる複数の部分が汎用的又は固有であると自動的に決定及び分類することができる。
【0102】
[0124] 動作又は実演が完了すると(728:YES)、ロボットデバイスは、記録された全ての感覚情報のサブセット(例えば、操作要素情報、搬送要素情報、環境情報)に基づいて、実演されたスキルのモデルを生成することができる。例えば、732において、ロボットデバイスは、任意選択的に、例えばユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、スキルの学習に関連した特徴の選択をユーザーに促すことができ、734において、ロボットデバイスは、特徴の選択をユーザーから受け取ることができる。代替的又は追加的に、ロボットデバイスは、ユーザーからの以前の命令に基づいて、モデルの生成に使用すべき特定の特徴を選択することを知ることができる。例えば、ロボットデバイスは、例えば感覚情報に基づいて、物体の拾い上げが実演されていることを認識することができ、例えば同じ又は異なる物体の拾い上げに関する過去の実演に基づいて、スキルモデルを生成するための関連特徴として含むべき、感覚情報の1つ又は複数の特徴(例えば、関節の構成、関節トルク、エンドエフェクタートルク)を自動的に選択することができる。
【0103】
[0125] 736では、ロボットデバイスは、選択された特徴を用いて、スキルのモデルを生成することができる。モデルは、保存された機械学習ライブラリー又はアルゴリズム(例えば、機械学習ライブラリー342)を用いて生成されてもよい。いくつかの実施形態では、モデルは、例えば、いくつかの隠れ状態、特徴空間(例えば、特徴ベクトルに含まれる特徴)、及びガウス分布としてモデル化された各状態に関する放出分布などの複数のパラメーターを含むHMMアルゴリズムとして表されてもよい。いくつかの実施形態では、モデルは、例えば、カーネルタイプ(例えば、線形、放射状、多項式、S字状)、費用パラメーター又は費用関数、重み(例えば、均等、クラス平衡)、損失タイプ又は損失関数(例えば、ヒンジ、方形ヒンジ)、及び解答タイプ又は問題タイプ(例えば、二重、プライマル)などのパラメーターを含み得る、サポート・ベクター・マシン、すなわち「SVM」モデルとして表されてもよい。モデルは、関連する感覚情報、及び/又はスキルの実演中にロボットデバイスによって記録された他の感覚情報に関連付けられてもよい。モデルは、スキルの実演中に操作されたマーカーのセットを示すマーカー情報、及び/又はそれらのマーカーに結び付けられた1つ若しくは複数の物理的物体に関連付けられた特徴にも関連付けることができる。ロボットデバイスは、738において、モデルをメモリー(例えば、ストレージ230又は330)に保存することができる。
【0104】
[0126] いくつかの実施形態では、実演に関連する情報(例えば、感覚情報、モデルなど)を用いて、例えば
図19に示される表現1600などの、環境のマップ又は表現の層に追加及び/又は変更を行うことができる。例えば、
図21は示す
【0105】
[0127] 任意選択的に、740において、ロボットデバイスは、ユーザーが、スキルの別の実演を行うか否かを決定することができる。別の実演が行われる場合には(740:YES)、方法700は、720に戻り、そこで、ユーザー(又は他のロボットデバイス)は、ロボットデバイスに追加の実演を指導することができる。実演が完了した場合には(740:NO)、方法700は、任意選択的に、最初に戻り、環境の新規のスキャンを行うことができる。或いは、いくつかの実施形態では、方法700は、終了してもよい。
【0106】
[0128] 別の実施形態では、スキルは、2つの場所間のナビゲーション、又は環境内の物体の周り、及び/又は環境内の物体の中を通るナビゲーションなどのナビゲーション挙動でもよい。本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、720において、ユーザー(又は他のロボットデバイス)は、搬送要素(例えば、1つ又は複数の搬送要素260、460)のセットを含むロボットデバイスにナビゲーション挙動を指導することができる。例えば、ユーザーは、ジョイスティック又は他の制御デバイスを使用して、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント(例えば、操作要素))の動きを制御し、及び/又はロボットデバイスがナビゲーション挙動を行うことができるように、そのような要素を物理的に指導する(例えば、ロボットデバイスを押す又は引き寄せる)ことができる。搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の動きを制御しながら、ユーザーは、搬送要素のセットの状態(例えば、各搬送要素の角度、各搬送要素の構成、もし互いに対して移動可能であれば、搬送要素間の間隔など)、ロボットデバイスの他のコンポーネント、及び/又は環境(例えば、マップ内のロボットデバイスの場所、環境内の物体の場所及び/又は境界線)に関する情報などの感覚情報を捕捉すべき時についてロボットデバイスに信号を送ることができる。ユーザーは、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の移動中のキーフレームで、例えば、開始時、終了時、及び/又は第1の方向に搬送要素のセットを移動させることと、第2の方向に搬送要素のセットを移動させることとの間の転移点で、ロボットデバイスに信号を送ることができる。722でユーザーから信号を受信したことに応答して、ロボットデバイスは、移動のスナップショット(搬送要素のセット、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を含む)をキーフレームで捕捉することができる。代替的又は追加的に、ロボットデバイスは、移動のスナップショットを捕捉すべき、搬送要素のセット(及び/又はロボットデバイスの他のコンポーネント)の移動中の時点を自律的に選択するように構成されてもよい。例えば、ロボットデバイスは、(例えば、ユーザーがロボットデバイスの制御を引き継いだとき(例えば、制御デバイスを訴えるロボットデバイスを制御することによって、又はロボットデバイスを押すことによって)などに)搬送要素のセットの角度及び/又は構成をモニタリングすることができ、ロボットデバイスが、角度及び/又は構成の変化を検出するたびに、その情報のスナップショットを自動的に捕捉することができる。いくつかの実施形態では、ロボットデバイスは、ユーザーが、ロボットデバイスの移動を制御している間、搬送要素のセット、ロボットデバイスの他のコンポーネント、及び/又は環境に関する情報を連続的に収集するように構成されてもよい。
【0107】
[0129] 本明細書に記載されるような、操作要素を用いたスキルの学習に類似して、ロボットデバイスは、動作が完了する(728:YES)まで、搬送要素(及び/又はロボットデバイスの他のコンポーネント)の動作に関連する感覚情報の捕捉を継続することができる。ロボットデバイスは、732~734で、任意選択的に、ナビゲーション挙動の学習に関連する特徴の選択を受け取り、及び/又は収集された感覚情報中の関連特徴を自律的に識別する(例えば、ある特定のナビゲーションスキルが実演されていることを認識し、そのスキルの学習に関連する上記特徴を識別することによって)ことができる。次に、ロボットデバイスは、736において、関連特徴に関連する感覚情報に基づいて、ナビゲーション挙動に関するモデルを生成することができ、738において、実行するロボットデバイスの軌道を生成するために後で使用することができるように、そのモデル及び感覚情報を保存することができる。
【0108】
[0130] ナビゲーション挙動の一例は、戸口を通ってナビゲートすることである。ロボットデバイスは、建物内の標準戸口を通ってナビゲートするように構成されることが可能であるが、ロボットデバイスは、非標準戸口(例えば、小さい戸口又は異形の戸口)を通ってナビゲートすることができないことがある。したがって、ロボットデバイスは、どのようにロボットデバイスが、安全に戸口を通ってナビゲートすることができるかをロボットデバイスに実演するようにユーザーに促してもよい。ロボットデバイスは、戸口の一方の側へとナビゲートし、その後、ユーザーに、他方の側へと戸口を通過するやり方をロボットデバイスに対して実演させることができる。実演中に、ロボットデバイスは、マップ内のロボットデバイスの場所、及び/又はセンサーデータ(例えば、ドアの境界線、搬送要素及び/又は操作要素の構成、並びに本明細書に記載されるような他の感覚情報)などの情報を受動的に記録することができる。いくつかの実施形態では、ロボットデバイスは、
図16を参照して本明細書でさらに述べられるように、インタラクティブ学習テンプレートを用いて、戸口を通ってナビゲートするやり方を学習することができる。
【0109】
[0131] いくつかの実施形態では、ユーザーは、ロボットデバイスの近くの現場にいてもよい。他の実施形態では、ユーザーは、遠隔地に位置してもよく、(例えば、
図1に示され、上記に記載したような)ロボットデバイスに対するネットワーク接続により、計算デバイス(例えば、サーバー120、計算デバイス150)から、ロボットデバイスを制御してもよい。
【0110】
[0132] 本明細書に記載されるような、いくつかの実施形態では、ロボットデバイスは、環境内の変化をモニタリングするために、その周辺環境を能動的にスキャンすることができる。したがって、学習及び/又は実行中に、ロボットデバイスは、環境の継続的なセンシング又はスキャニングに従事し、それに応じて、環境の表現及びそのロボットデバイスが保存した環境情報を更新することができる。
【0111】
[0133] いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動、すなわち、人間とのインタラクションを考慮したアクションを学習するように構成することができる。例えば、ロボットデバイスは、人間の周りで行われる操作スキル又はナビゲーションスキルを学習するように構成することができる。ロボットデバイスは、人間のオペレーター(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)による実演によって、社会的に適切な挙動を学習することができる。いくつかの実施形態では、ロボットデバイスは、インタラクティブな状況で(例えば、人間のオペレーターが、ロボットデバイスによるスキルの自律実行に介入し、スキルを実行するやり方をロボットデバイスに実演することによって)、挙動を学習するように構成されてもよい。ロボットデバイスは、人間のオペレーターによる介入(例えば、看護師がロボットデバイスを片側に押しやること)を検出すると、ロボットデバイスが人間のオペレーターによって制御され、実演に関連する情報及び実演が行われる知覚コンテキストを受動的に記録する学習モードへと切り替えるように構成されてもよい。ロボットデバイスは、この情報を用いて、スキルの修正モデルを生成し、ロボットデバイスがそのスキルを後で実行すべき適切な社会的コンテキストにそのモデルを関連付けることができる。一例として、ロボットデバイスは、人間のオペレーターがナビゲーション計画の自律実行に介入したことを検出することができ、介入の検出に応答して、人間のオペレーターによって制御される学習モデルへと切り替えることができる。人間がいるところでは、どのようにナビゲーション計画が修正されるべきであるかを(例えば、通路が空くのを待つ代わりに、ロボットデバイスが人間を通すように通路の脇に寄るべきであることを)人間のオペレーターが実演するときに、ロボットデバイスは、その周辺環境及びそのロボットデバイス自体の動作に関する情報を記録することができる。インタラクティブ学習に関するさらなる詳細は、
図16を参照して、本明細書に記載される。
【0112】
[0134]
図11に示される実行モードでは、ロボットデバイスは、任意選択的に、750において、例えば、ユーザーインターフェース又は他のタイプのI/Oデバイスを用いて、学習モードでロボットデバイスによって以前に生成されたモデルなどのモデルを選択するようにユーザーに促すことができる。ロボットデバイスは、752において、モデルの選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、ユーザーからモデルの選択を受け取ることができ、又は代替的に、ロボットデバイスは、特定のルール及び/又は条件に基づいて、モデルを自動的に選択することができる。例えば、ロボットデバイスは、それが建物のある特定のエリアにいるときに(例えば、それがある特定の部屋又は階にいるときに)、特定の時間又は曜日中などにモデルを選択するようにプログラムされてもよい。代替的又は追加的に、ロボットデバイスは、選択されたマーカーのセットに基づいて、ある特定のモデルを選択することを知ることができる。754では、ロボットデバイスは、軌道を生成し、選択されたマーカーに対してスキルを実行する前に、選択されたマーカーの近くに移動するか否かを決定することができる。例えば、ロボットデバイスは、選択されたマーカーのセット及び選択されたモデルに基づいて、スキルを実行するためにより望ましい場所に配置されるように(例えば、マーカーに対してより近く、又はより近接するように、ある特定の角度からマーカーに面するように)ロボットデバイスが移動すべきか否かを決定することができる。ロボットデバイスは、スキルの実演中に記録された感覚情報に基づいて、この決定を下してもよい。例えば、ロボットデバイスは、スキルを実演されたときに、ロボットデバイスがマーカーのより近くに配置されたことを認識し、それに応じて、その位置を調整することができる。
【0113】
[0135] ロボットデバイスが、選択されたマーカーに対して移動することを決定すると(754:YES)、ロボットデバイスは、756において、その位置を移動する(例えば、その場所及び/又は向きを調整する)ことができ、方法700は、702に戻ることができ、そこでロボットデバイスは、環境の表現を取得するために環境を再びスキャンする。方法700は、様々なステップを進んで754に戻ることができる。ロボットデバイスが、選択されたマーカーに対して移動しないことを決定すると(754:NO)、ロボットデバイスは、例えばロボットデバイスの操作要素に関するアクションの軌道を生成することができる。
【0114】
[0136] 具体的には、758において、ロボットデバイスは、選択されたマーカーのセットと、本明細書において「保存されたマーカー」又は「保存されたマーカーのセット」と呼ばれる、選択されたモデルに関連付けられたマーカーのセット(例えば、ロボットデバイスがスキルを学習したとき、すなわち、選択されたモデルを生成したときに選択された1つ又は複数のマーカー)との間の変換(例えば、平行移動)を行う関数を計算することができる。例えば、ロボットデバイスは、例えばエンドエフェクターなどのロボットデバイスの一部に対して、1つ若しくは複数の特定の場所及び/又は1つ若しくは複数の向きに存在した第1のマーカーのセットを用いて、スキルを教示されることが可能であり、後に、ロボットデバイスは、操作要素に対して、1つ若しくは複数の異なる場所及び/又は1つ若しくは複数の異なる向きに存在する第2のマーカーのセットを用いて、そのスキルを実行することができる。このような場合、ロボットデバイスは、第1のマーカーのセットの1つ若しくは複数の位置及び/又は1つ若しくは複数の向きと、第2のマーカーのセットの1つ若しくは複数の位置及び/又は1つ若しくは複数の向きとの間の変換を行う変換関数を計算することができる。
【0115】
[0137] 760では、ロボットデバイスは、スキルが教示されたときに記録された各キーフレームにおいて、計算された変換関数を使用して、操作要素の一部(例えば、操作要素のエンドエフェクター)の位置及び向きを変換することができる。任意選択的に、762において、ロボットデバイスは、あらゆる環境的制約、例えば、サイズ、構成、及び/又は場所などの、環境内の物体及び/又はエリアの特徴を考慮に入れることができる。ロボットデバイスは、環境的制約に基づいて、操作要素の動作を制限することができる。例えば、ロボットデバイスは、それが備品室でスキルを実行しようとしていることを認識すると、ロボットデバイスは、操作要素の一部が備品収納庫内で壁又は他の物理的構造と接触することを回避するために、操作要素の位置及び向きを変換するときに、備品室のサイズを考慮に入れることができる。ロボットデバイスは、例えば、備品室内の容器のサイズ、備品室内の棚の場所などの、備品室に関連する他の環境的制約も考慮に入れることができる。ロボットデバイスは、
図17を参照して本明細書にさらに記載されるように、1つ又は複数の環境的制約を有する状況におけるスキルの実行に先立って、1つ若しくは複数の環境的制約に関する情報が与えられること、及び/又は1つ若しくは複数の環境的制約が教示されることが可能である。
【0116】
[0138] 任意選択的に、762において、ロボットデバイスは、逆運動学方程式又はアルゴリズムを使用して、762において、キーフレームごとに操作要素の関節の構成を決定することができる。エンドエフェクター及びマーカーのセットの位置及び向きは、タスク空間(例えば、ロボットデバイスが動作しているデカルト空間)で提供されてもよく、関節の向きは、関節又は構成空間(例えば、ロボットデバイスが点で表され、nが操作要素の自由度の数である、操作要素の構成に関連付けられたn次元空間)で提供され得る。いくつかの実施形態では、逆運動学計算は、ロボットデバイスがスキルを教示されたときに記録された関節構成情報(例えば、操作要素を用いた教示実演中に記録された関節の構成)によって誘導され得る。例えば、逆運動学計算は、各キーフレームで記録された関節構成を用いて、シード値が与えられること(例えば、計算の最初の推測が与えられること、又はバイアスが与えられること)が可能である。例えば、計算された関節構成が、隣接するキーフレームの関節構成から、あらかじめ規定された量を超えて逸脱しないことを必要とするなどの追加の条件も、逆運動学計算に課され得る。764では、ロボットデバイスは、操作要素がスキルを実行するための完全な軌道を生成するために、例えば関節空間において、あるキーフレームから次のキーフレームへの関節構成間の軌道を計画することができる。任意選択的に、ロボットデバイスは、本明細書で述べられるような環境的制約を考慮に入れることができる。
【0117】
[0139] いくつかの実施形態では、ロボットデバイスが、操作要素(例えば、エンドエフェクター)の一部の位置及び向きを変換した後に、ロボットデバイスは、タスク空間における操作要素の軌道を計画することができる。このような実施形態では、方法700は、760から直接764へと進むことができる。
【0118】
[0140] 766及び768では、ロボットデバイスは、任意選択的に、ユーザーに軌道を提示し、例えば、ユーザーインターフェース又は他のI/Oデバイスを用いて、軌道の承認又は拒否をユーザーに促すことができる。代替的に、ロボットデバイスは、内部ルール及び/又は条件に基づいて、並びに関連の感覚情報を分析することによって、軌道を承認又は拒否してもよい。軌道が拒否された場合(768:NO)、ロボットデバイスは、任意選択的に、770において、選択されたモデルの1つ又は複数のパラメーターを修正することができ、758~764において、第2の軌道を生成することができる。モデルのパラメーターは、例えば、モデル生成に含める異なる特徴(例えば、異なる感覚情報)を選択することによって修正することができる。モデルがHMMモデルである、いくつかの実施形態では、ロボットデバイスは、決定された成功又は失敗に基づいて、モデルのパラメーターを変更することができ、ここでは、ロボットデバイスは、異なるパラメーターを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。モデルがSVMモデルである、いくつかの実施形態では、ロボットデバイスは、本明細書に記載されるように、特徴空間又は構成パラメーター(例えば、カーネルタイプ、費用パラメーター又は費用関数、重み)を変更することによって、パラメーターを変更することができる。
【0119】
[0141] 軌道が承認された場合には(768:YES)、ロボットデバイスは、772において、生成された軌道を実行するために操作要素を動かすことができる。操作要素が計画された軌道を実行している間、ロボットデバイスは、774において、例えば、操作要素及びロボットデバイスの他のコンポーネント上の1つ又は複数のセンサーを用いて、例えば操作要素及び/又は環境に関する情報などの感覚情報の記録及び/又は保存を行うことができる。
【0120】
[0142] 任意選択的に、774において、ロボットデバイスは、スキルの実行が成功したか否か(例えば、物体とのインタラクションが、あらかじめ規定された成功基準を満たすか否か)を決定することができる。例えば、ロボットデバイスは、環境をスキャンし、例えば、1つ若しくは複数の物体の場所、及び/又は操作要素若しくはロボットデバイスの別のコンポーネントに対する、それらの物体の位置若しくは向きを含む、環境及びロボットデバイスの現在の状態を決定し、その現在の状態が、あらかじめ規定された成功基準と合致するか否かを決定することができる。あらかじめ規定された成功基準及び/又は学習された成功基準は、ユーザーによって提供されてもよく、又はいくつかの実施形態では、異なるロボットデバイス及び/又は計算デバイスによって提供されてもよい。あらかじめ規定された成功基準及び/又は学習された成功基準は、成功に関連する環境及び/又はロボットデバイスの異なる特徴に関する情報を示してもよい。いくつかの実施形態では、ユーザーは、実行が成功したことをロボットデバイスに示す入力も提供することができる。
【0121】
[0143] ある特定の場所で物体を把持し、及び物体を拾い上げることであるとスキルが規定される、ある特定の例では、スキルの成功は、物体に関連付けられた1つ又は複数のマーカーが、互いに対して、及び/又はロボットデバイスに対して特定の関係にあることを検出すること、又はエンドエフェクター若しくは操作要素の関節(例えば、手首関節)によって十分な力若しくはトルクが経験されている(若しくは経験された)こと(これは、操作要素が物体の重さを支えており、したがって物体を拾い上げたことを意味する)を検出することとして教示及び/又は規定され得る。実行が成功しなかった場合(776:NO)、ロボットデバイスは、任意選択的に、770において、モデルのパラメーターを修正し、及び/又は758~764において、新しい軌道を生成してもよい。実行が成功した場合(776:YES)、成功したインタラクションに関連するデータ(例えば、実行が成功したこと、及びどのようにそれが成功したかを示すデータ)が記録されてもよく、方法700は、任意選択的に、最初に戻り、環境の新規のスキャンを行い得る。或いは、いくつかの実施形態では、方法700は、終了してもよい。
【0122】
[0144] いくつかの実施形態では、ロボットデバイスは、操作要素、搬送要素、及び/又はロボットデバイスの別のコンポーネント(例えば、頭部、目、センサーなど)の1つ又は複数の動作に関与するスキルを実行するように構成される。ロボットデバイスは、操作要素に関して上記に記載したことに類似して、スキルの軌道を計画するように構成され得る。例えば、750~752において、ロボットデバイスは、スキルのモデルのユーザー選択を促し、それを受け取ることができ、又は或いは、スキルのモデルを自律的に選択することができる。758では、ロボットデバイスは、環境内で現在識別されているマーカーのセットと、選択されたモデルに関連付けられた、保存されたマーカーのセット(例えば、ロボットデバイスがスキルを学習したときに識別され、スキルのモデルと共に保存された1つ又は複数のマーカー)との間の変換を行う関数を計算することができる。このような変換は、搬送要素又はロボットデバイスの他のコンポーネントに関連付けられたキーフレームの変換を含み得る。760では、ロボットデバイスは、計算された関数を使用して、各キーフレームで、ロボットデバイスの1つ又は複数のコンポーネントの構成を変換することができる。764では、ロボットデバイスは、各変換されたキーフレーム間のロボットデバイスの1つ又は複数のコンポーネントの軌道を計画することができる。キーフレームの変換及び/又は軌道の計画を行う間、ロボットデバイスは、任意選択的に、スキルが実行されている状況に関連するいずれかの環境的制約を考慮に入れることができる。772では、ロボットデバイスは、計画された軌道に従って、ロボットデバイスの1つ又は複数のコンポーネントの動作を実施することができる。いくつかの実施形態では、ロボットデバイスは、762において、関節構成を決定し、766において、計画された軌道をユーザーに提示し、及び/又は
図11に示されるような他のオプションのステップを行ってもよい。搬送要素の動作に関与するスキルの一例は、ドアを開けることの場合がある。ユーザー(例えば、近くのユーザー、又は遠隔に位置するロボットの監督者)は、ロボットの基部を用いて(例えば、ドアを押し開くことによって)、ドアを開けることをロボットデバイスに指導することができる。ユーザーは、例えば、ジョイスティックなどの制御デバイスを使用して、又は基部を用いてドアを開けるアクションをロボットデバイスに物理的に指導すること(例えば、ロボットデバイスを押す、又は引き寄せること)によって、ロボットデバイスを指導することができる。ロボットデバイスは、ユーザーが動作を指導している間、情報の検知及び記録を行い、その情報を使用してスキルモデルを生成することができる。ロボットデバイスは、後に、そのスキルモデルを使用して、例えば、ユーザーのスキルの実演中の搬送要素に関連付けられたキーフレームを変換することによって、そのドア又は環境内の他のドアを開けるアクションを実行することができる。
【0123】
[0145]
図12は、いくつかの実施形態による、ユーザーによって行われるアクションを含む、ロボット学習及び実行のためのシステムアーキテクチャを示すブロック図である。システム800は、ロボット学習及び実行のために構成することができる。システム800は、本明細書に記載されるロボットデバイスのいずれかのロボットデバイスなどの、1つ又は複数のロボットデバイスを含んでもよく、アクティブセンシング822、マーカー識別824、学習及びモデル生成826、軌道の生成及び実行828、並びに成功モニタリング829として
図12に示される、モジュール、プロセス、及び/又は機能を実行することができる。アクティブセンシング822、マーカー識別824、学習及びモデル生成826、軌道の生成及び実行828、並びに成功モニタリング829は、
図8~11に示される方法700を参照して記載されたような、ロボットデバイスによって行われる1つ又は複数のステップに対応し得る。例えば、アクティブセンシング822は、方法700のステップ702を含み、マーカー識別824は、方法700のステップ704~710の1つ又は複数を含んでもよく、学習及びモデル生成826は、ステップ712~738の1つ又は複数を含んでもよく、軌道の生成及び実行828は、ステップ712、714、718、及び750~774の1つ又は複数を含んでもよく、成功モニタリング829は、ステップ774及び776の1つ又は複数を含んでもよい。
【0124】
[0146] システム800は、例えば、1つ又は複数のカメラ872、(グリッパー856、及び1つ又は複数のセンサー870を含む)アーム850、表示デバイス842、並びにマイクロホン844を含む、1つ又は複数のデバイスと接続(例えば、通信)することができる。システム800は、表示デバイス842、マイクロホン844、及び/又は他のI/Oデバイス(図示されない)を用いて、1つ又は複数のユーザーアクション880に関連するユーザーから入力を受け取ることができる。ユーザーアクション880は、例えば、ユーザーがマーカーを承認し、又は環境の再スキャンを要求する882、ユーザーが1つ又は複数のマーカーを選択する884、ユーザーが関連情報を選択してモデルを生成する886、ユーザーがスキルを実行するためのモデルを選択する888、ユーザーがスキルを実行するための軌道を承認する890、ユーザーが実行されたスキルの成功を確認する892、ユーザーが運動感覚学習によってスキルを教示する894を含み得る。
【0125】
[0147] アクティブセンシング822に関して、システム800は、1つ又は複数のカメラ872を用いて環境をスキャンし、その環境に関する感覚情報(環境内の1つ又は複数のマーカーに関連付けられた情報を含む)を記録する。マーカー識別824に関して、システム800は、感覚情報を分析することにより、環境内の1つ又は複数のマーカーを識別し、例えば表示デバイス842を用いて、1つ又は複数の入力をユーザーから受け取ることができる(ユーザーがマーカーを承認し、又は環境の再スキャンを要求する822を示す)。学習及びモデル生成826に関して、システム800は、1つ若しくは複数のカメラ872及び/又はアーム850上の1つ若しくは複数のセンサー870によって収集された感覚情報を受信し、その情報を用いて、スキルのモデルを生成することができる。学習及びモデル生成826の一部として、システム800は、例えば表示デバイス842及び/又はマイクロホン844を用いて、1つ又は複数の入力をユーザーから受け取ることができる(スキルを教示するための1つ若しくは複数のマーカーのセットをユーザーが選択した884、モデルの生成に使用するための、記録された感覚情報の特定の特徴をユーザーが選択した886、及び/又はユーザーがスキルを実演している894を示す)。軌道の生成及び実行828に関して、システム800は、計画された軌道を生成し、その軌道を実行するためにアーム850の動作を制御することができる。軌道の生成及び実行828の一部として、システム800は、例えば表示デバイス842を用いて、1つ又は複数の入力をユーザーから受け取ることができる(軌道を生成するためのモデルをユーザーが選択した888、及び/又はユーザーが生成された軌道を承認又は拒否した890を示す)。成功モニタリング829に関して、システム800は、スキルの実行中に1つ又は複数のセンサー870によって記録された感覚情報を分析することによって、スキルの実行が成功したか否かを決定することができる。成功モニタリング829の一部として、システム800は、例えば表示デバイス842及び/又はマイクロホン844を用いて、1つ又は複数の入力をユーザーから受け取ることができる(実行が成功したことをユーザーが確認した892を示す)。
【0126】
[0148] 特定の1つ若しくは複数のデバイス、及び/又はシステム800と、上記1つ若しくは複数のデバイスとの間の接続が
図12に示されるが、本明細書に記載される実施形態のいずれによっても、追加の1つ又は複数のデバイス(図示されない)が、システム800と通信することによって、システム800から情報を受信し、及び/又はシステム800に情報を送信することが可能であることが理解される。
【0127】
[0149]
図13~17は、本明細書に記載される実施形態による、1つ又は複数のロボットデバイスを含むロボットシステム(例えば、ロボットシステム100)によって行われ得る方法1300及び1400を示すフロー図である。例えば、方法1300及び/又は1400は、単一のロボットデバイス及び/又は複数のロボットデバイスによって行われ得る。
【0128】
[0150]
図13に示されるように、ロボットデバイスは、1301において、実行モードで動作するように構成される。実行モードでは、ロボットデバイスは、環境内で、自律的にアクションを計画し、実行することができる。どのアクションを実行すべきかを決定し、及び/又はアクションを実行するやり方を計画するために、ロボットデバイスは、1304において、環境をスキャンし、並びに環境及び/又は環境内の物体に関する情報を収集することができ、1305において、この情報を用いて、環境の表現又はマップ(例えば、表現1600)を構築及び/又は変更することができる。ロボットデバイスは、繰り返し(例えば、あらかじめ規定された時刻及び/又は時間間隔で)又は継続的に環境をスキャンし、環境に関してそれが収集した情報に基づいて、環境の表現を更新することができる。上記の方法に類似して、ロボットデバイスは、1つ又は複数のセンサー(例えば、1つ若しくは複数のセンサー270若しくは470、及び/又は1つ若しくは複数の撮像デバイス472)を用いて、環境に関する情報を収集することができる。
【0129】
[0151] いくつかの実施形態では、ロボットデバイスは、1307におけるデータ追跡及び/又は分析のために、1304において、環境を繰り返し及び/又は継続的にスキャンすることができる。例えば、ロボットデバイスは、自律的に、又は(例えば、ロボットの監督者によって)遠隔駆動されて、環境(例えば、病院などの建物)中を移動し、環境、環境内の物体などに関するデータを収集することができる。この情報は、例えば、病院の備品及び/又は設備を管理するデータ追跡及び分析要素(例えば、データ追跡及び分析要素1606)によって使用され得る。いくつかの実施形態では、ロボットデバイスは、様々な人間(例えば、患者)に関する情報を、そのような患者の挙動を追跡し(例えば、薬物及び/又は治療の順守)、診断検査を行い、及び/又はスクリーニングなどを実施するために収集することができる。
【0130】
[0152] いくつかの実施形態では、ロボットデバイスは、1309におけるモデル化及び学習目的で、1304において、環境を繰り返し及び/又は継続的にスキャンすることができる。例えば、ロボットデバイスは、それの環境及び/又はその環境内の物体に関するデータ(例えば、人間と、ロボットのアクションに応答した人間の挙動とを含む)を収集し、その情報を用いて、新しい挙動及び/又はアクションを開発することができる。いくつかの実施形態では、ロボットデバイスは、ある環境に関する大量の情報を収集することができ、この情報は、その環境に固有のモデルをさらに改良及び/又は生成するために、ロボットデバイスによって使用され得る。いくつかの実施形態では、ロボットデバイスは、この情報を使用して、ある特定の環境にロボットデバイスをさらに適応させることができる(例えば、その環境内でスキルモデル及び/又は挙動の生成及び/又は修正を行うことによって)ロボットの監督者(例えば、遠隔のユーザー)にこの情報を提供することができる。ロボットの監督者は、そのロボットデバイス及び/又は他のロボットデバイスによって収集された情報、及び/又はロボットが使用しているモデルのパラメーターを繰り返し(例えば、特定の時間間隔で)及び/又は継続的に(例えば、リアルタイムで)微調整することができる。いくつかの実施形態では、ロボットの監督者は、ロボットデバイスとのこの能動的な情報交換により、繰り返し及び/又は継続的に、ある特定の環境にロボットデバイスを適応させることができる。例えば、ロボットの監督者は、環境中を通ってナビゲートするためにロボットデバイスが使用中であり得る、計画された経路を修正することができ、これは、次に、その搬送要素の動きを生成するためにロボットデバイスによって使用される情報及び/又は1つ若しくは複数のモデルを変更することができる。共に、ロボットの監督者によって提供され、及び/又はロボットデバイスによって行われるこれらの変更は、環境のマップ(例えばマップ1600)の1つ又は複数の層(例えば、マップの社会的層又は意味層など)に供給され得る。
【0131】
[0153] 1306では、ロボットデバイスは、環境内でどの1つ又は複数のアクションを実行すべきかを決定すること、すなわち、特定のアクションを実行可能なリソース又はコンポーネントのセットに関するアービトレーションを行うことができる。ロボットデバイスは、1つ又は複数のアービトレーションアルゴリズム(例えば、1つ又は複数のアービトレーションアルゴリズム1758)に基づいて、異なるアクション間で選択することができる。ロボットデバイスは、自律的に、及び/又はユーザー入力を用いて、アービトレーションを行うことができる。例えば、ロボットデバイスが、そのコンポーネントの1つ若しくは複数、及び/又は環境内の物体の現在の状態を決定することができないとき、又はロボットデバイスが、どのアクションを実行すべきかを決定すること、及び/又は選択されたスキルを実行するやり方を計画することができないときに、ロボットデバイスは、ユーザー入力を要求するように構成されてもよい。いくつかの実施形態では、ロボットデバイスが、ある特定の状況を熟知している(例えば、その状況においてアクションを以前に学習及び/又は実行した)場合には、アクションのセットの中から自律的に選択し、ロボットデバイスが、新しい状況に遭遇した場合には、ユーザー入力を要求するように構成されてもよい。ロボットデバイスが新しい状況に遭遇したときに、ロボットデバイスが実行すべき適切なアクションをユーザーが選択することをロボットデバイスが要求することができ、又は代替的に、ロボットデバイスが、アクションを選択し、そのアクションの選択を確認するようにユーザーに促すことができる。
【0132】
[0154] いくつかの実施形態では、人間のオペレーター(例えば、ロボットの監督者)は、ロボットデバイスをモニタリングし、人間のオペレーターがロボットデバイスによるアクションの実行に介入したいときに、ロボットデバイスに信号を送ることもできる。人間のオペレーターは、ロボットデバイスの近くに、及び/又はロボットデバイス、若しくはロボットデバイスをモニタリングするために使用され得る近くのデバイスにネットワークを介して接続された遠隔計算デバイスに位置してもよい。例えば、人間のオペレーターが、安全上の理由から(例えば、人間若しくはロボットデバイスの周囲の環境への害を阻止するため)、及び/又はロボットデバイスに対する損傷を防止するために、新しいスキル又は挙動をロボットデバイスに教示したいときに、人間のオペレーターは、ロボットデバイスによるアクションの実行に介入することを決断し得る。
【0133】
[0155] (例えば、不慣れな状況のため、又はユーザーからの信号に応答して)ユーザー入力が必要であるとの決定に応答して(1312:YES)、ロボットデバイスは、任意選択的に、1314において、ユーザー入力を提供するようにユーザーに促すことができる。例えば、ロボットデバイスは、搭載ディスプレイ又は遠隔デバイスに位置するディスプレイに(例えば、遠隔又はクラウドインターフェースを用いて)、ユーザー入力を要求するプロンプトをユーザーに対して表示させることができる。ロボットデバイスは、1315において、ユーザー入力を受け取り、そのユーザー入力に基づいてアービトレーションを行うことができる。ユーザー入力が必要とされない場合には(1312:NO)、ロボットデバイスは、自律的にアービトレーションを行うことを継続する。
【0134】
[0156] ロボットデバイスが、実行すべきアクションを選択した後に、ロボットデバイスは、1308において、アクションを計画及び実行することができる。上述の通り、アクションは、(例えば、本明細書に記載される操作要素などの操作要素に関与する)操作アクション、又は(例えば、本明細書に記載される搬送要素などの搬送要素に関与する)移動、及び/又は社会的挙動などのタスクに関連付けられ得る。アクションを実行する間、ロボットデバイスは、1304において、その周辺環境をスキャンし続けることができる。ロボットデバイスが、それの現在の状態及び/又は環境(例えば、環境内の物体の場所)の状態の変化を検出すると、ロボットデバイスは、1310において、ロボットデバイスがアクションの実行を中断すべきか否かを決定するために、その変化を評価することができる。例えば、ロボットデバイスは、そのコンポーネントの1つ若しくは複数と、環境内の人間若しくは他の物体との物理的係合の検出に応答して(例えば、人間のオペレーターが、操作要素、搬送要素などと接触したとき)、又はすぐ近くに人間若しくは他の物体の存在を検出したときに、アクションの実行を中断することを決定し得る。追加的又は代替的に、ロボットデバイスは、ユーザー(例えば、ロボットの監督者)からの信号の受信に応答して、アクションの実行を中断することを決定し得る。いくつかの実施形態では、ロボットデバイスは、アクションの実行中の特定の時点で、例えば、ロボットデバイスが、インタラクティブ学習テンプレートに規定されるように、ユーザーがアクションの一部を実演することを必要とし得るときに、アクションの実行を中断するように前もって構成されてもよい。インタラクティブ学習テンプレートを使用した学習に関するさらなる詳細は、
図15を参照して、本明細書に説明される。
【0135】
[0157] ロボットデバイスが、アクションの実行の中断を決定した場合には(1310:YES)、ロボットデバイスは、1312において、ユーザー入力が必要とされるか否かを決定することができる。上述の通り、ユーザー入力が必要とされることをロボットデバイスが決定した場合には(1312:YES)、ロボットデバイスは、任意選択的に、1314~1315において、ユーザー入力を促し、及び/又はユーザー入力を受け取ることができる。次いで、ロボットデバイスは、1304における、周辺環境のセンシング又はスキャニング、1306における、リソースのセットに関するアービトレーションの実施、及び/又は1308における、アクションの実行に戻ることができる。任意選択的に、
図14及び15に示されるように、ユーザー入力が必要とされることをロボットデバイスが決定すると、ロボットデバイスは、1402において学習モードに切り替え、次に、1404におけるスキルの学習、又は1406における環境的制約の学習に進み得る。ユーザー入力が必要とされないことをロボットデバイスが決定した場合には(1312:NO)、ロボットデバイスは、1304における、周辺環境のセンシング又はスキャニング、1306における、リソースのセットに関するアービトレーションの実施、及び/又は1308における、アクションの実行に戻ることができる。アクションが中断される必要がないことをロボットデバイスが決定した場合には(1310:NO)、ロボットデバイスは、1308において、アクションの実行を継続することができる。
【0136】
[0158] いくつかの実施形態では、例えば、ロボットデバイスが、ある特定のタスク又は挙動を実行することを助けるために、ロボットデバイスは、いつロボットデバイスがユーザー入力を求める必要があり得るかを決定するように構成されてもよい。このような手助けは、特定のアクションの実行中、及び/又はロボットデバイスが環境中をナビゲートしている間の両方で要求され得る。ロボットデバイスは、それの学習済みモデル、並びに環境及びその環境内の物体に関する情報を使用して、1312において、ロボットデバイスがいつユーザー入力を求める必要があるか、及びそのユーザー入力を求めるやり方を決定するように構成されてもよい。例えば、ロボットデバイスは、それの環境内のドアのタイプ及び異なる複数のユーザーの知識を用いて、助けを求めるとき、及びそのやり方(例えば、異なる複数のユーザーに、異なる複数のタイプのドア(例えば、特定の許可又は知識を必要とするキーパッドを備えたドア)を開けることを手伝うように求めること、及び他の人たちよりも手助けを提供する傾向がより高い可能性がある特定のタイプのユーザーに依頼することを知ること(例えば、看護師対医師))を決定することができる。
【0137】
[0159] いくつかの実施形態では、例えば、1315においてロボットデバイスによって受け取られたユーザー入力には、スキルの選択及び/又は実行が、適切であったか否か、及び/又は成功したか否かに関するユーザーからのフィードバックが含まれ得る。例えば、ユーザーは、アクションの良い例又は悪い例として、ロボットデバイスによって実行されている(又はロボットデバイスによって以前に実行された)アクション(例えば、タスク又は挙動)にタグを付けることができる。ロボットデバイスは、このフィードバックを(例えば、このアクション及び/又は他のアクションに関連付けられた成功基準として)保存し、それを使用して、今後、そのアクション又は他のアクションの選択及び/又は実行を調整することができる。
【0138】
[0160] いくつかの実施形態では、ロボットデバイスは、社会的に適切な挙動に従事するように構成される。ロボットデバイスは、人間のいる環境で動作するように設計され得る。人間の周りで動作するときに、1306~1308において、ロボットデバイスは、そのアクションが人間によってどのように認識され得るかを絶えず計画するように構成され得る。例えば、ロボットデバイスが移動しているときに、ロボットデバイスは、1304において、人間を探して、その周辺環境をモニタリングし、1308において、それが遭遇した人間との社会的インタラクションに従事することができる。ロボットデバイスが、タスクを全く実行していない(例えば、静止している)ときは、ロボットデバイスは、1304において、人間を探して、その周辺環境をモニタリングすることを継続し、1306において、人間がロボットデバイスの存在をどのように認識し得るかに基づいて、ロボットデバイスが、1つ又は複数の社会的に適切な挙動を実行する必要があり得るか否かを決定することができる。このような実施形態では、ロボットデバイスは、特定のコンテキスト又は状況を所与として、社会的に適切な挙動を計画及び実行する基礎的フレームワーク(例えば、1つ又は複数のアービトレーションアルゴリズム)を用いて構成され得る。ロボットデバイスは、複数のリソース(例えば、操作要素、搬送要素、頭部又は目などの人型コンポーネント、音生成器など)を管理し、これらのリソースの1つ又は複数に基づいて、適切な挙動を生成するように構成され得る。
【0139】
[0161]
図18は、注目機構(例えば、目要素)に関するアービトレーションを行う、ロボットデバイスのコンポーネントの一例を提供する。例えば、ロボットデバイスは、カメラ、又は視線(例えば、目要素)を有すると人間によって認識され得る他の要素を有してもよい。ロボットデバイスの近くの人間は、目要素が向けられた方向をロボットデバイスが注目しているものとして認識し得る。したがって、ロボットデバイスは、ロボットデバイスが動作しているとき、及び/又は人間の近くにいるときに、目要素がどこに向けられているかを決定するように構成されてもよい。ロボットデバイスが、人間の周りで動作するとき、及び/又は人間がいるところで、社会的に適切な挙動を維持するように、ロボットデバイスは、目要素の使用のアービトレーションを絶えず行うことができる。
【0140】
[0162]
図18に示されるように、ロボットデバイスの異なる複数のコンポーネントが、視線ターゲット(例えば、ある特定の方向に目要素を向けさせること)を要求し得る。アクティブセンシングに関連する第1のコンポーネント(例えば、カメラ、レーザー、又は他のセンサー)は、1510において、物体が目要素の視野内にあることを決定することができる。第1のコンポーネントはさらに、1514において、物体が人間であることを決定することができる。物体が人間であるとの決定に応答して、第1のコンポーネントは、人間の顔に目要素を向けさせるために、要求1516を中央リソースマネージャー1508(例えば、制御ユニット(例えば、1つ又は複数の制御ユニット202、302及び/又は1702)及び/又は制御ユニットのコンポーネント)に送ることができる。ナビゲーションアクションに関連する第2のコンポーネント(例えば、カメラ、レーザー、又は他のセンサー)は、1520において、ある特定の場所(例えば、ナビゲーションの中間又は最終目的地)が、目要素の視界内にあることを決定することができる。その場所が視界内にあるとの決定に応答して、第2のコンポーネントは、その場所に目要素を向けさせるために、要求1522を中央リソースマネージャー1508に送ることができる。操作アクションに関連する第3のコンポーネント(例えば、操作要素上のセンサー、カメラ、又は他のセンサー)は、1530において、ロボットデバイスが、物体と係合していること(例えば、ロボットデバイスが物体を運んでいること、人間がロボットデバイスに接触したこと)を決定することができる。ロボットデバイスが物体と係合しているとの決定に応答して、第3のコンポーネントは、物体に目要素を向けさせるために、要求1532を中央リソースマネージャー1508に送ることができる。
【0141】
[0163] 中央リソースマネージャー1508は、ロボットデバイスのコンポーネントから要求1516、1522、及び1532を受け取り、1540において、どの方向に目要素を向けるべきかを決定するためにアービトレーションを行うことができる。どの方向に目要素を向けるべきかを決定するときに、中央リソースマネージャー1508は、規定されたルール又は制約(例えば、社会的に適切な制約)を考慮に入れることができる。これらの規定されたルールには、例えば、あらかじめ規定された期間(例えば、約5秒)の間、目要素を2回動かさないこと、少なくとも、あらかじめ規定された最短期間(例えば、約5秒)の間、目要素をある方向に向けさせること、非人間物体と人間とで異なり得る、あらかじめ規定された最長期間の後に、目要素を動かすことなどが含まれ得る。規定されたルールは、視線リソースを管理するためのアービトレーションアルゴリズムにエンコードされ得る。
【0142】
[0164] いくつかの実施形態では、中央リソースマネージャー1508は、社会的コンテキスト及び環境に関して収集された他の情報に基づいて、視線リソースのアービトレーションを行うことができる。例えば、ロボットデバイスは、ある挙動を特定の場所に関連付けるように構成されてもよい(例えば、混雑した戸口又は通路を通ってナビゲートしようと試みる前に、人がその戸口又は通路を通過するのを待つこと、静かなエリアでは、より小さい音で動作する(例えば、サウンド及び/又はスピーチ機能性の使用を控える)ことなど)。ロボットデバイスは、このような場所に関連する社会的コンテキスト情報を捕捉し、それをナビゲーションに使用される(
図19を参照して本明細書に記載されるような)環境の表現に加えるように構成されてもよい。いくつかの実施形態では、人間のオペレーターが、社会的コンテキスト情報をロボットデバイスに提供することも可能であり、ロボットデバイスが、それが動作する環境に関してより多くを学習するにつれて、ロボットデバイスは、経時的に、この情報を適応させることができる。
【0143】
[0165]
図15~17は、学習モードで動作するロボットデバイスのフロー図を示す。上述の通り、ロボットデバイスは、実行モードで動作し、例えば、1312において、ロボットデバイスがユーザー入力を必要とすることを決定したときに、学習モードでの動作に切り替えることができる。代替的又は追加的に、ロボットデバイスは、例えばロボットデバイスが新しい環境(例えば、新しいエリア、建物など)に最初に配備されたときに、学習モードで動作するように設定されてもよい。ロボットデバイスは、ロボットデバイスが実行モードでの動作に切り替え可能であることをユーザーがロボットデバイスに示すまで、及び/又はロボットデバイスが実行モードでの動作に切り替え可能であることをロボットデバイスが決定するまで、学習モードで動作してもよい。
【0144】
[0166] 学習モードで動作するときに、ロボットデバイスは、1404において、スキルを学習すること、及び/又は1406において、環境的制約を学習することができる。ロボットデバイスは、スキルの既存のモデル(例えば、スキルの汎用モデル)を用いて、又は用いずに、スキルを学習するように構成されてもよい。既存のモデルを用いずにスキルを学習する(例えば、予備知識に頼ることなくスキルを学習する)場合には、ロボットデバイスは、
図10を参照して本明細書に記載されるように、スキルの実演が指導された後に、スキルのモデルを生成することができる。既存のモデル(例えば、スキルの汎用モデル)を用いてスキルを学習する場合には、ロボットデバイスは、既存のモデルを用いてスキルの実行を開始し、ユーザーがスキルの一部を実演することをロボットデバイスが必要とするときに、ユーザー入力を要求することができる。スキルの既存のモデルは、インタラクティブ学習テンプレート(すなわち、スキルの実行中の指定された時点で、ユーザーからの入力を用いてスキルを学習するようにロボットデバイスに指導するためのテンプレート)の一部であってもよく、又はその一部を形成してもよい。
【0145】
[0167]
図16は、インタラクティブ学習テンプレートを用いてスキルを学習するプロセスを示す。ロボットデバイスは、ある特定の状況(例えば、建物)に配備され得る。ロボットデバイスは、1410において、スキルの既存のモデルの選択を行うことができる。スキルの既存のモデルは、ロボットデバイスが動作している環境又は状況に特化していない、スキルの汎用モデルでもよい。1412において、ロボットデバイスは、
図11を参照して本明細書に述べられたプロセスに類似のプロセスに従って、スキルモデルを使用してスキルを実行する計画を生成することができる。1414では、ロボットデバイスは、ユーザー入力及び/又は特化を必要としない、スキルの1つ又は複数のステップ又は部分を行うことによって、スキルの実行を開始することができる。スキルの一部(例えば、ロボットデバイスが実行の仕方を決定できない部分、又はロボットデバイスがスキルを実行している状況への特化を必要とするスキルの部分)に到達すると(1416:YES)、ロボットデバイスは、1418において、スキルのその部分の実演を提供するようにユーザーに促すことができる。いくつかの実施形態では、インタラクティブ学習テンプレートは、ロボットデバイスがユーザーに実演を促すべき時をロボットデバイスに示すことができる。代替的又は追加的に、例えば、ロボットデバイスが、環境内の物体の状態を決定することができず、及び/又は環境によって課される制約を所与として、スキルのある特定の部分を実行する計画を生成することができない場合に、ロボットデバイスがスキルの一部を実行できるためにはユーザー入力を必要とすることをロボットデバイスは自律的に決定することができる。いくつかの実施形態では、ユーザー(例えば、ロボットの監督者)は、ロボットデバイスのスキルの実行もモニタリングし、ユーザーがロボットデバイスに対してスキルの一部を実演したいときに、ロボットデバイスに信号を送ることができる。ロボットデバイスは、ユーザーから信号を受信すると、1418に進むことを決定することができる。
【0146】
[0168] 1420では、ユーザーは、ロボットデバイスに動作を指導することができる。例えば、ユーザーは、ロボットデバイスの1つ又は複数のコンポーネント(例えば、操作要素、搬送要素など)を動かすことにより、スキルの一部を実演することができる。ロボットデバイスに動作を指導する間、ユーザーは、任意選択的に、1422において、ロボットデバイスのコンポーネントの1つ若しくは複数、及び/又は環境の状態に関する情報を捕捉すべき時をロボットデバイスに示すことができる。例えば、ロボットデバイスは、ロボットデバイスの動作中のキーフレームにおいて、操作要素、搬送要素、及び/又は環境に関する情報を含む感覚情報を捕捉するための信号をユーザーから受信することができる。代替的に、ロボットデバイスは、感覚情報を捕捉すべき時を自律的に決定することができる。例えば、ロボットデバイスがユーザーによって動かされている間、ロボットデバイスは、そのコンポーネントの1つ又は複数の変化をモニタリングすることができ、それらの変化が閾値を超えたとき、又はコンポーネントの軌道に方向変化が生じたときに、ロボットデバイスは、自律的に、その時点をキーフレームとして選択し、そのキーフレームにおけるロボットデバイス及び/又は環境に関する情報を記録することができる。ユーザーからの信号の受信、又は自律的な感覚情報を捕捉する決定に応答して、ロボットデバイスは、1424において、そのセンサーの1つ又は複数を用いて、感覚情報を捕捉することができる。ロボットデバイスの動作中に、ロボットデバイスは、1430において、継続的又は周期的に、ユーザーから信号を受信することなく、感覚情報を記録することもできる。
【0147】
[0169] 動作又は実演が完了すると(1426:YES)、ロボットデバイスは、任意選択的に、1432において、実演されたスキルの一部を学習することに関連する特徴の選択を受け取ることができる。いくつかの実施形態では、ロボットデバイスは、1432において、自律的に、特徴の選択を行い、及び/又はロボットデバイスによって行われた選択を確認するようにユーザーに促すことができる。1436では、ロボットデバイスは、実演に関連する情報を保存することができる。スキルの実行が完了していない場合には(1417:NO)、ロボットデバイスは、1414において、スキルの実行を継続し、必要であれば、1418において、スキルの部分のさらなる実演をユーザーに促すことができる。ロボットデバイスは、アクションの実行が完了するまで(1417:YES)インタラクティブな学習プロセスを繰り返し続けることができ、このアクションの実行の完了時点で、ロボットデバイスは、1438において、ロボットデバイスがスキルを実行した状況に特化した部分を有するスキルのモデルを生成することができる。次に、ロボットデバイスは、別のスキル及び/又は環境的制約を学習することができる。代替的に、ロボットデバイスが、別のスキル及び/又は環境的制約を学習する必要がない場合には、ロボットデバイスは、1301において、実行モードに切り替わり、環境のセンシング又はスキャニング、アービトレーションの実施、及び/又はアクションの実行を開始することができる。
【0148】
[0170] インタラクティブ学習テンプレートを用いて、ロボットデバイスは、スキル用のモデルの初期セットが教示及び/又は提供される。ロボットデバイスが、ある特定の環境(例えば、病院)において現場で配備される前に、モデルの初期セットが開発されてもよい。例えば、このモデルの初期セットは、工場の状況下で、又は訓練場所で開発され、ロボットデバイスに利用可能にされてもよい。一旦現場で配備されると、ロボットデバイスは、例えば、本明細書に記載されるようなインタラクティブ学習セッションによって、モデルの初期セットを環境に適応又は特化させることができる。また、新しいモデルの開発(例えば、工場又は訓練場所においてオフサイトで)に伴って、新しいモデルは、例えば、ネットワーク接続により、ロボットデバイスに利用可能にされてもよい。したがって、本明細書に記載されるシステム及び方法により、これらのロボットデバイスが現場に配備された後であっても、ユーザー及び/又はエンティティーが、スキルの新しいモデルを開発し、それらをロボットデバイスに提供し続けることが可能となる。
【0149】
[0171] インタラクティブ学習セッションの一例は、アイテムを部屋の中に移動させるための汎用モデルを適応させることに関与し得る。ロボットデバイスは、汎用モデルを備え、病院において現場で配備され得る。病院に配備されると、ロボットデバイスは、1412~1414において、アイテムを患者の部屋の中に移動させるスキルの実行を自律的に開始することができる。例えば、ロボットデバイスは、病院のマップを使用して、患者の部屋まで自律的にナビゲートすることができる。ロボットデバイスが、患者の部屋までのナビゲートを終えると、ロボットデバイスは、患者の部屋の中のどこにアイテムを降ろすべきかをユーザーが実演することをロボットデバイスが必要とすることを決定することができる(1416:YES)。ロボットデバイスは、1418において、それを特定の荷降ろし場所まで動かすことをユーザーに促すことができる。ユーザーは、1420において、例えば、ジョイスティック又は他のタイプの制御デバイスを用いて、ロボットデバイスの動作を制御することができる。上述の通り、ユーザーは、ロボットデバイスの近くの現場にいてもよく、又は遠隔地に位置してもよい。ユーザーがロボットデバイスを荷降ろし場所まで移動させる間、ロボットデバイスは、1424及び/又は1430において、それの現在の状態及び/又はそれの周辺環境に関する感覚情報を捕捉することができる。荷降ろし場所に到着すると、ロボットデバイスは、1414において、自律実行に戻るように切り替えることができる。例えば、ロボットデバイスは、既知のアームの動き(例えば、ロボットデバイスに搭載されたコンテナ内でアイテムの位置を特定し、操作要素を用いてアイテムをつかみ、及びアイテムを解放する汎用位置にその操作要素を位置付けること)を実行することができる。ロボットデバイスは、スキルの一部(例えば、アイテムを棚の上に降ろすこと)をユーザーが実演することをロボットデバイスが必要としているという2度目の決定を行うことができる(1416:YES)。ロボットデバイスは、1418において、別の実演をユーザーに促すことができ、ユーザーは、アイテムが棚の上の適所に位置するように操作要素を動かすことができる。ロボットデバイスは、1424及び/又は1430において、操作要素の動作中に、感覚情報を再び捕捉することができる。ロボットデバイスは、1414において、制御を再度取り戻し、自律的に、操作要素のグリッパーを開いて棚の上にアイテムを降ろし、その後、操作要素を静止位置に戻るように格納することができる。次に、ロボットデバイスは、実行が完了したことを決定し(1417:YES)、1438において、2つのユーザー実演中にロボットデバイスが捕捉した情報に基づいて、スキルの特化モデルを生成することができる。
【0150】
[0172] インタラクティブ学習セッションの他の例には、例えば、上述のように、ある特定の通路及び/又は戸口を通ってナビゲートするために、ナビゲーションアクションを適応させることが含まれ得る。
【0151】
[0173] いくつかの実施形態では、ユーザー(又はロボットデバイス)は、スキルのモデルを、そのスキルが実演された後、及び/又はそのスキルのモデルが生成された後に修正することができる。例えば、ユーザーは、スキルの実演中に捕捉されたキーフレームを反復し、これらのキーフレームの保持、修正、及び/又は削除を行うか否かを決定することができる。1つ又は複数のキーフレームの修正及び/又は削除を行うことによって、ユーザーは、これらのキーフレームに基づいて生成されたスキルのモデルを修正することができる。キーフレームに基づいた実演の反復及び適応バージョンを使用する例は、本明細書に援用される、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」というタイトルの論文に記載されている。別の例として、インタラクティブなグラフィカル・ユーザー・インターフェース(「GUI」)を使用して、計画された実行中に、ロボットデバイスのコンポーネントの位置、向きなどに関連する分散がどのくらい許容可能であるかをユーザーが示すことができるように、スキルの実演中に捕捉されたキーフレームをユーザーに表示することができる。キーフレームと共にGUIを使用する例は、参照により本明細書に援用される、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」というタイトルの論文に記載されている。これらの例により、スキルの学習後に、スキルのモデルの修正が可能となる。本明細書に記載されるシステム及び方法によって、ロボットデバイスがスキルの特定の部分の計画及び実行を行う一方で、現在進行中のスキルの実行中に、スキルの他の部分をユーザー実演に委ねることを可能にする学習テンプレートがさらに提供される。また、本明細書に記載されるシステム及び方法によって、例えば、自律的に、又は学習プロセスに先立ってロボットデバイスに提供された情報に基づいて、いつデータを収集すべきか、及び/又はいつスキルの一部の実演を要求すべきかを決定することができるロボットデバイスが提供される。
【0152】
[0174]
図17は、環境的制約を学習するプロセスを示す。上記の通り、ロボットデバイスは、環境的制約を学習するように構成することができ、環境的制約は、その環境的制約を含む状況において学習及び/又は実行されるスキルのセットに適用可能となり得る。1450では、ロボットデバイスは、任意選択的に、制約のタイプ及び/又はその制約に関連する物体の選択をユーザーに促すことができる。制約のタイプは、例えば、障壁(例えば、壁、面、境界線)、サイズ及び/又は寸法、立入禁止区域、物体の場所、時間的制約などでもよい。1452において、ロボットデバイスは、制約のタイプ及び/又は物体の選択を受け取ることができる。任意選択的に、1454において、ユーザー(又は他のロボットデバイス)は、環境的制約を実演するための動作をロボットデバイスに指導することができる。例えば、ユーザーは、備品容器の1つ又は複数のエッジに沿ってロボットデバイスの操作要素を移動させることによって、容器のサイズをロボットデバイスに実演することができる。別の例として、ユーザーは、棚の表面に沿ってロボットデバイスの操作要素を移動させることによって、棚の場所を実演することができる。ロボットデバイスの動作中、ロボットデバイスは、1456において、1つ又は複数のセンサー(例えば、カメラ、レーザー、触覚など)を用いて、制約に関連する情報を捕捉することができる。1458では、ロボットデバイスは、環境的制約を含む状況で実行されるスキルのモデルと共に使用する、環境的制約に関連する捕捉情報を保存することができる。いくつかの実施形態では、ロボットデバイスは、上記状況で実行されるスキルの各モデルに、環境的制約に関連する情報を含めることができる。代替的に、ロボットデバイスは、上記状況でスキルを計画及び/又は実行するときに、環境的制約に関連する情報を参照するように構成されてもよい。いくつかの実施形態では、環境的制約は、環境の表現(例えば、表現1600)に加えられてもよい。
【0153】
[0175] いくつかの実施形態では、ロボットデバイスは、ユーザーの実演又はロボットデバイスの動作を必要とすることなく、環境的制約を学習することができる。例えば、1452において、制約のタイプ及び/又は物体の選択を受け取った後に、ロボットデバイスは、1456において、環境的制約に関連する関連情報を求めて環境をスキャンするように構成されてもよい。いくつかの実施形態では、どの情報が環境的制約に関連するかをユーザーが確認及び/又は修正できるように、ロボットデバイスは、それが捕捉し、及び/又は環境的制約に関連すると決定した情報をユーザーに提示することができる。次に、ロボットデバイスは、1458において、関連情報を保存することができる。
【0154】
[0176] いくつかの実施形態では、ロボットデバイスは、搬送要素(例えば、車輪又はトラック)を用いて、環境内を動き回り、1つ又は複数の環境的制約を学習することができる。例えば、ロボットデバイスは、例えば、実演を受け、及び/又はスキルを実行しながら、廊下又は通路を進み、その廊下が、特定の時間フレーム中は混雑することを学習することができる。いくつかの実施形態では、ロボットデバイスは、様々な環境的制約及び/又は挙動を学習し、それらを異なる条件(例えば、時間、場所など)に関連付けることができる。例えば、ロボットデバイスは、それの1つ又は複数のセンサーによって収集された情報、ユーザー入力、及び/又は(例えば、スキルの実演及び/又は実行中に)検知された情報から導出された情報に基づいて、廊下が混雑していることを認識することができる。別の例として、ロボットデバイスは、ユーザーがある特定の部屋に入ったときに、1日のうちの様々な時間で、ロボットデバイスが「こんにちは(hello)」又は「おやすみなさい(good night)」と応答すべきかを決定することができる。
【0155】
[0177] いくつかの実施形態では、ロボットデバイスは、自律的又はインタラクティブに、環境的制約を学習することができる。例えば、ロボットデバイスは、1458において、環境中を移動する(例えば、廊下又は通路を進む)ことによって、環境的制約の初期セットを獲得することができる。ユーザー(例えば、ロボットの監督者又はローカルユーザー)は、制約を見直し、1459において、制約を直接修正することによって、及び/又は実演によって、制約を調整すべきか否かを決定することができる。例えば、いくつかの制約は、ロボットデバイスとのインタラクション(例えば、実演)を通して提供され、他の制約(例えば、物体の場所(例えば、棚が壁から延在する距離など))は、(例えば、ユーザーインターフェース(例えば、ユーザーインターフェース240など)への)入力によって提供され得る。
【0156】
[0178]
図21は、マップ2120(例えば、建物(例えば、病院など)のマップ)を出入りする情報の一例を示す。マップ2120は、本明細書に記載されるようなロボットデバイスのいずれかのロボットデバイスなどの、1つ又は複数のロボットデバイスによって保存及び/又は保持され得る。マップ2120は、
図19に示されるようなマップ1600に類似し得る。例えば、マップ2120は、例えばナビゲーション層、静的層、動的層、及び社会的層などの1つ又は複数の層2122を含み得る。
【0157】
[0179] マップ2120は、学習モード2102又は実行モード2112で動作しながらロボットデバイスが使用できる情報を提供することができる。例えば、学習モード2102で動作しているロボットデバイスは、マップ2120にアクセスすることによって、(例えば、状態情報331、1732、物体情報340、1740、1つ又は複数の環境的制約1754、社会的コンテキスト1632などに類似した)1つ若しくは複数の環境的制約、1つ若しくは複数の物体、及び/又は1つ若しくは複数の社会的コンテキストに関する情報を取得することができる。このような情報は、本明細書に記載されるように、1つ又は複数の物体の場所を決定すること、1つ又は複数の物体の1つ又は複数の特性を識別すること、1つ又は複数の環境的制約を分析すること、使用すべき1つ又は複数のスキルモデルを選択すること、1つ又は複数の入力を1人又は複数人のユーザーに促すことなどをロボットデバイスが行うことを可能にすることができる。追加的又は代替的に、実行モード2112で動作しているロボットデバイスは、マップ2120にアクセスすることによって、1つ若しくは複数の環境的制約、1つ若しくは複数の物体、及び/又は1つ若しくは複数の社会的コンテキストに関する情報を取得し、その情報を使用して、環境を評価すること、異なる挙動若しくはスキル間のアービトレーションを行うこと、どのスキルを実行すべきかを決定すること、及び/又はある特定の環境に適合するように、挙動若しくはスキルを適応させることができる。
【0158】
[0180] 学習モード2102で動作しているロボットデバイスは、マップ2120内の情報に加えられ、及び/又はマップ2120内の情報を変更する情報も提供することができる。例えば、ロボットデバイスは、検知された情報2104(例えば、ロボットデバイスの1つ若しくは複数のセンサーによって収集された情報)及び/又は導出された情報2106(例えば、例えば検知された情報2104の分析に基づいて、ロボットデバイスによって導出された情報)をマップ2120に組み込むことができる。ロボットデバイスは、このような情報を、情報をマップ2120に追加すること、及び/又はマップ2120内の既存の情報を適応させることによって組み込むことができる。追加的に、実行モード2112で動作しているロボットデバイスは、マップ2120内の情報に追加され、及び/又はマップ2120内の情報を変更する情報(例えば、検知された情報2114、導出された情報2116)を提供することができる。
【0159】
[0181] 一例として、戸口を通ってナビゲートするやり方の(例えば、
図10及び16に示される実演のような)実演を受けているロボットデバイスは、マップ2120の1つ又は複数の層2122に供給される情報を実演中に収集することができる。戸口は、例えば、マップ2122に示されるように、建物中の様々な場所に存在する特定の戸口でもよい。戸口の特性及び/又は性質は、ロボットデバイス上の様々なセンサーによって記録され、及び/又は検知された情報に基づいて、ロボットデバイスによって導出され得る。例えば、ロボットデバイスは、戸口のサイズを検知し、戸口が狭い戸口であることを決定することができる。ロボットデバイスは、例えば、1つ又は複数の意味ラベルを使用して、生センサー情報又は処理されたセンサー情報として、導出されたルールとしてなど、戸口に関するこの情報をマップ2120に追加することができる。ロボットデバイスは、この情報を使用することによって、マップのコンテキスト層(例えば、マップの社会的層又は挙動層(例えば、
図19に示される社会的層1630など))を適応させることもできる。例えば、ロボットデバイスは、戸口が狭い戸口であることに基づいて、例えば、ユーザー(又は他の1つ若しくは複数のロボットデバイス)に続いて及び/又は並行して戸口を通過する代わりに、ユーザー(又は他の1つ若しくは複数のロボットデバイス)によって戸口が開けられたときに戸口を通過すること、(例えば、戸口を開けておくこと、及び/又はロボットデバイスに様々な1つ若しくは複数のアクションを指導することによって)ロボットデバイスがその戸口を通ってナビゲートすることを手助けする、その戸口を熟知した特定のユーザーを探すことなどを含む、特定の1つ若しくは複数の挙動及び/又は1つ若しくは複数のアクションに従事することを決定することができる。
【0160】
[0182] いくつかの実施形態では、マップ2120は、本明細書に記載される1つ又は複数のロボットデバイスに対して一元的に保持されてもよい。例えば、マップ2120は、遠隔の計算デバイス(例えば、サーバー)上に保存され、例えば病院内で一緒に動作するロボットデバイスのグループに対して一元的にホスティングされてもよい。マップ2120は、ロボットデバイスのグループが学習モード2102及び/又は実行モード2112で動作するときに、これらのロボットデバイスから情報(例えば、検知された情報2104、2114、及び導出された情報2106、2116)が受け取られる際に更新され、アクション、挙動などを実行するために、必要に応じて各ロボットデバイスに提供されてもよい。マップ2120の1つ又は複数の層2122が適応されるように、グループ内の個々のロボットデバイスが新しい情報を学習するため、この情報は、他のロボットデバイスが類似の環境に遭遇したとき、及び/又は類似のスキル(例えば、アクション、挙動)を実行するときに、それらのロボットデバイスと共有され得る。いくつかの実施形態では、マップ2120のローカルコピーが、各ロボットデバイスに保存されてもよく、このローカルコピーは、(例えば、所定の間隔で、休みの時間又はダウンタイム中に)マップ2120の一元的に保持されたコピーを用いて更新又は同期され得る。(例えば、検知された情報2104、2114、及び導出された情報2106、2116などの新しく収集された情報を用いて)マップを定期的に更新し、及び/又は複数のロボットデバイス間でマップを共有することによって、各ロボットデバイスは、その周辺環境とインタラクトし、及び/又はその周辺環境内でスキルを実行するためのより正確な情報をロボットデバイスに提供する、より包括的なマップにアクセスすることができる。
【0161】
[0183] いくつかの実施形態では、マップ2120は、情報(例えば、1つ又は複数の環境的制約、1つ又は複数のルール、1つ又は複数のスキルなど)が、(例えば、学習2102及び/又は実行2112中に)学習され、及び/又は(例えば、ユーザー入力2130を用いて)ユーザーによって提供され得る混合イニシアチブマップでもよい。例えば、ロボットデバイスは、ユーザー(例えば、ロボットの監督者若しくはローカルユーザー)によって直接与えられた情報、実演及び/又は実行を通して学習された情報、又は実演及び/又は実行と、(例えば、リアルタイムで、若しくは遡及的にインタラクションに関してロボットデバイスによって要求された)ユーザー入力との組み合わせによってインタラクティブに提供された情報を組み込むことによって、マップ2120を構築することができる。例えば、ロボットデバイスがマップ2120上のある領域(例えば、狭い又は混雑した通路)をよりゆっくりと進むべきであることをユーザーはロボットデバイスに示すことができる。いくつかの実施形態では、ロボットデバイスはマップをユーザーに提示し、ユーザーはマップ上に領域を描き、ロボットがその領域をよりゆっくりと進むべきであることを示すことができる。ロボットデバイスは、複数回、マップ2120上のその領域を進むことを試み、1日のうちの特定の時間では、その領域が(例えば、過密により)避けられるべきであることを学習し得る。代替的又は追加的に、ロボットデバイスは、ロボットデバイスが自律的に対処することに慣れていない新しい状況(例えば、通路が区切られている)に遭遇し得る。このような場合には、ロボットデバイスは、その領域に関するさらなる情報を取得し、及び/又はその領域をあちこちナビゲートするやり方を決定するために、ユーザー(例えば、ロボットの監督者及び/又はローカルユーザー)とコミュニケーションを取ることができる。ユーザーの入力を要求するときに、ロボットデバイスは、状況に関して広く尋ね、及び/又は(例えば、ロボットデバイスが適切な挙動を自律的に導出することを可能にするために)ユーザーがラベル付けする例のリストを提供してもよい。いくつかの実施形態では、ロボットデバイスは、ユーザー入力なしに、ある領域に関する情報の検出及び/又は導出を行い、その領域に関連付けられた1つ又は複数のルールを確認のためにユーザーに提案することができる。いくつかの実施形態では、ユーザーは、提案されたルール及び/又はロボットデバイスからの他の情報を見たときに、それを承認する前に、そのルール及び/又は他の情報を修正することができる。以下で説明される
図24は、このようなプロセスのより詳細な説明を提供する。
【0162】
[0184]
図22~25は、ロボットデバイス(例えば、例えば(例えば、ロボットデバイス102、110、200、400など)を含む、本明細書に記載されるロボットデバイスのいずれかが、1つ又は複数のスキル、1つ又は複数の環境的制約などを学習することができる異なる複数の手段を示すフロー図である。いくつかの実施形態では、本明細書に記載される方法に従って動作するロボットデバイスは、常に学習(例えば、学習モードで動作)していてもよい。例えば、ロボットデバイスは、それが環境中をナビゲートし、及び/又は特定の挙動若しくはアクションに従事するときに、継続的に情報の収集、保存、分析、及び/又は更新を行い、学習された情報(例えば、スキル、挙動、環境的制約、マップなど)のライブラリーに対して適応及び/又は追加を行うことができる。他の実施形態では、ロボットデバイスは、学習モードでの動作と実行モードでの動作との切り替えを行うことができる。学習モード2202で動作する間、本明細書に記載されるロボットデバイスが、実演2204により、実行2206により、探索2208により、導出/ユーザー入力2210、及び/又はこれらの任意の組み合わせにより学習することができるようなロボットデバイス。
【0163】
[0185] いくつかの実施形態では、ロボットデバイスは、例えば、
図8~10を参照して上記で示され、及び説明されたように、実演2204によって学習することができる。例えば、ロボットデバイスは、LfD教示プロセスを使用したスキルの実演によって、新しいスキル又は環境的制約を学習することができる。ロボットデバイスは、人間環境における過去のスキルの実演からの情報を分析及び抽出することができる。一例として、ユーザーは、ロボットデバイスに対して、人間及びロボットデバイスがいる備品室内で、ロボットデバイスの操作要素(例えば、アーム)の動かし方を実演することができる。1つ又は複数の実演から、ロボットデバイスは、1つ又は複数の既存の実演の動きに対して、今後スキルを計画し、及び/又は実行するときに、ロボットデバイスの動きを制限する1つ又は複数の環境的制約を規定することができる。ロボットデバイスは、それぞれがノード及び動きのn次元空間を通る経路を提供する、既存の実演(例えば、1つ又は複数のキーフレームのシーケンス)を用いて、動きを生成し、グラフ(環境的制約がエンコードされる)を構築することができる。その後、ロボットデバイスが、新しい環境を提示され、その新しい環境にスキルを適応させる必要があれば、ロボットデバイスは、構築されたグラフを用いて、既存の実演された動きのセットから効率的にサンプリングを行い、新しい環境用の動きを計画することができる。そのような環境的制約の学習をスキルの初期実演に組み入れることによって、ロボットデバイスは、新しい環境的制約が規定されることを必要とせずに、新しい環境に素早く適応することができる。新しい環境では、ロボットデバイスは、その環境及び/又は環境内の1つ若しくは複数の物体(例えば、人間、備品、ドアなど)に関する追加情報を取得するために環境をスキャンし、その後、既存のスキルモデルを使用して、既存の実演された動きのセットから大きく逸脱することなく、新しい環境を通る動作軌道を計画することができる。
【0164】
[0186] いくつかの実施形態では、ロボットデバイスは、実演2204及びユーザー入力2210によって学習することができる。例えば、ロボットデバイスは、例えばインタラクティブ学習テンプレートを用いた、ユーザーとのインタラクティブ学習に従事することができる。上記の通り、インタラクティブ学習を用いた場合、ロボットデバイス及び/又はスキルモデルの初期セットを提供した。モデルの初期セットは、工場の状況で、他のロボットデバイス、及び/又は1つ若しくは複数の状況でロボットデバイス自体によって開発されてもよい。ある特定の環境で動作する間、ロボットデバイスは、インタラクティブ学習セッション(このセッションでは、ロボットデバイスが、スキルの特定の部分を自律的に実施する一方で、他の部分をユーザーによる実演に委ねることができる)によって、このスキルの初期セットの適応又は特化を行うことができる。さらに、このようなインタラクティブ学習プロセスのさらなる詳細は、
図16を参照して説明される。
【0165】
[0187] いくつかの実施形態では、ロボットデバイスは、スキルを実行2206しながら学習することができる。例えば、ロボットデバイスは、ロボットデバイスが挙動、アクションなどを実行するときに、情報の収集、保存、分析、及び/又は更新を行うことができる(例えば、
図11の774、
図13の1304、1305、及び1307で)。ある実施形態では、ロボットデバイスは、1日に数回、ロボットデバイスが通路を移動することを必要とするスキルを実行することができる。ロボットデバイスは、1日のうちの特定の時間に、通路の通行量がより多いことを学習することができる。その後、ロボットデバイスは、例えば、通行量の多い、それらの時間中は、その通路を通過することを避けるように(例えば、別のルートを行くことによって、及び/又は通行量の少ない時間にその通路を通過するように待つことによって)、その挙動を適応させることができる。
【0166】
[0188] いくつかの実施形態では、ロボットデバイスは、探索2208によって学習することができる。
図23は、探索による学習の例示的方法を示すフロー図である。ロボットデバイスは、2302において、環境をスキャンし、環境及び/又は環境内の物体に関する情報を収集することができる。任意選択的に、ロボットデバイスが収集した情報に基づいて、ロボットデバイスは、スキルを実行することによって、環境を探索することを決定することができる。スキルを実行するために、ロボットデバイスは、2304において、既存のスキルモデルを選択し、2306において、スキルモデルを使用してスキルの実行を計画し、及び2308において、スキルを実行することができる。例えば、ロボットデバイスは、環境をスキャンし、戸口を識別することができる。ロボットデバイスは、ドアを開けるステップ及び戸口を通って移動するステップを含むスキルの実行を決定することができる。2304では、ロボットデバイスは、戸口を通ってナビゲートするために、これまでに提供及び/又は学習された既存のスキルモデルを選択することができる。2306では、ロボットデバイスは、既存のスキルを使用して(例えば、
図11を参照して述べられたプロセスに類似したプロセスに従って)、ドアを開け、及び戸口を通って移動する計画を生成することができる。そして、2308において、ロボットデバイスは、生成された計画に従ってスキルを実行することができる。2310において、スキルを実行する間、ロボットデバイスは、環境及び/又はスキルの実行に関する情報を収集し、その情報を、戸口との以前のインタラクション中に収集された情報と比較することができる。この比較に基づいて、ロボットデバイスは、それの戸口とのインタラクションが成功であったか、或いは失敗であったかを(例えば、上記のような成功基準に基づいて)評価することができる。ロボットデバイスは、任意選択的に、2312において、それのスキルの実行に基づいて、その戸口に固有のスキルモデルを生成することができる。
【0167】
[0189] いくつかの実施形態では、ロボットデバイスは、スキルの実行を開始し、そのスキルをさらに完了させるためにはユーザー入力が必要とされることを決定することができる。例えば、
図16を参照して上記に記載したように、ロボットデバイスは、スキルの実行を開始し、実行の仕方をロボットデバイスが決定できないスキルの部分に到達すると、スキルの実行を進めるために、ユーザー入力を求めることができる。
【0168】
[0190] いくつかの実施形態では、ロボットデバイスは、スキルを実行し、その実行が失敗したことを決定することができる。例えば、ロボットデバイスは、戸口を通る動作を計画し、及び/又は実行することができるが、(例えば、ドアを開ける試み、又は狭い戸口の向こう側にナビゲートする試みの失敗により)戸口を通って移動できなかったことを検出し得る。ロボットデバイスは、環境を再度スキャンすることを決定し(2314:YES)、2306~2308において、スキルの再計画及び再実行を行うことができる。いくつかの実施形態では、ロボットデバイスは、2304において、別のスキル(例えば、狭い戸口に対して、より固有のスキル)を選択し、次に、その別のスキルに基づいて、再計画及び再実行を行うことができる。ロボットデバイスが、それがある目的を満たした(例えば、所定の回数、又は所定数のやり方で、成功裏にスキルを実行した、環境に関する十分な情報を学習したなど)と決定するまで、ロボットデバイスは、スキルの再検知、再計画、及び再実行を行うことによって、探索により学習を続けることができる。2316では、ロボットデバイスは、環境及び/又は環境内の物体に関するそれが収集した情報、並びに任意選択的に、環境内のスキルの実行に基づいて、それが適応させるか又は生成したモデルを保存することができる。
【0169】
[0191] いくつかの実施形態では、ロボットデバイスは、ユーザー入力2210を用いた、探索2208による学習に従事することができる。例えば、ロボットデバイスは、ある特定の環境を探索し、及び/又はその環境に関してさらに多くの情報を学習するために、その環境において、1つ又は複数のスキルを実行することができる。ロボットデバイスが探索を行っている間に、ユーザー(例えば、遠隔の監督者又はローカルユーザー)は、(例えば、環境内にいることによって直接的に、及び/又はロボットデバイスを通して)ユーザーが認識した、及び/又は環境に関して学習した情報に基づいて、入力をロボットデバイスに提供することができる。そのとき、ユーザーは、環境の探索をさらに指導する1つ又は複数の入力をロボットデバイスに提供することができる。例えば、戸口に遭遇したロボットデバイスは、その戸口を通ってナビゲートするための1つ又は複数の動作を計画することができる。それらの動作を実行した際に、ロボットデバイスは、その戸口を通ってナビゲートすることに失敗する場合がある。ユーザーは、ロボットデバイスによる試みの失敗を見て、戸口を通ってナビゲートする2度目の試みにおいて、ロボットデバイスを指導するための1つ又は複数の入力をロボットデバイスに提供することができる。例えば、ユーザーは、戸口が狭い戸口であることを決定し、ロボットデバイスが、その戸口を通ってナビゲートする前に、まずドアを開けることを近くのユーザー又はロボットデバイスに求めるべきであることをロボットデバイスに示すことができる。ユーザー入力を受け取ると、ロボットデバイスは、戸口を通ってナビゲートする前に、ドアを開けることをユーザーに求めることができる。
【0170】
[0192] いくつかの実施形態では、ロボットデバイスは、環境及び/又は環境内の物体に関する情報をユーザーから受け取ること、又はモデルの初期セット、ルールなどをユーザーから受け取ることによって、ユーザー入力2210によって学習することができる。いくつかの実施形態では、ロボットデバイスは、最初に、(例えば、
図10を参照して上記に記載したように)実演によってスキルを学習し、ユーザー入力に基づいて、そのスキルを適応させることを学習してもよい。例えば、ロボットデバイスは、第1の場所から第2の場所へと備品を移動させ、その後、備品を第2の場所に降ろすスキルを学習することができる。スキルのユーザー実演中に、ユーザーは、第2の場所に備品を降ろすことが、環境又は状況に固有の特定情報を必要とすることをロボットデバイスに示すことができる。ユーザーは、後に、異なる複数の備品及び/又は異なる複数の場所に関して、備品を降ろす間、ロボットデバイスが観察すべき特有の情報を指定する入力をロボットデバイスに提供することができる。例えば、ユーザーは、ロボットデバイスがどこに備品を降ろすべきかを識別するタグ又はマーカーに関する情報を提供することができる。
【0171】
[0193] いくつかの実施形態では、ロボットデバイスは、保存された情報及び/又はユーザー入力2210に基づいて、挙動又はルール(例えば、上記のような、1つ又は複数のアービトレーションアルゴリズム1858)を学習することができる。
図24は、挙動及び/又はルールのロボット学習の例示的方法のフローチャートである。ロボットデバイスは、2402において、保存された情報(例えば、1つ又は複数のマップ、1つ又は複数のモデル、1つ又は複数のユーザー入力)を分析することができる。ロボットデバイスは、2404において、保存された情報の分析に基づいて、挙動及び/又はルールを導出することができる。例えば、ユーザー(例えば、ロボットの監督者又はローカルユーザー)は、より多くの人間がロボットデバイスの近くにいるときは、より対話型となるように、ロボットデバイスに関するルールを規定することができる。ロボットデバイスは、保存された情報の分析に基づいて、1日のうちのある特定の時間中(例えば、昼食時間頃)に、より多くの人間がそれの近くにいることを決定し得る。したがって、ロボットデバイスはさらに、1日のうちのその時間中は、それがより対話型となるべきであることを導出し得る。いくつかの実施形態では、ロボットデバイスは、新しいルールとして、この挙動を自動的に実施することができる。代替的に、ロボットデバイスは、2406において、ユーザーに対する新しいルールとして、1日のうちのその時間に、より対話型となることを提案することができる。ロボットデバイスは、2408において、ルールの提案に応答して、ユーザー入力を受け取ることができる。例えば、ユーザーは、ロボットデバイスのローカル及び/又は遠隔のディスプレイ上でルールを見て、それを承認又は拒否することを選択することができる。ユーザー入力に基づいて、ロボットデバイスは、2410において、その挙動及び/又はルールを修正することができる。例えば、ルールを承認可能であることをユーザーが示す場合には、ロボットデバイスは、その新しいルールを保存し、今後、それを実施することができる。或いは、ルールは、承認可能であるが、さらなる微調整又は変更を伴うことをユーザーが示す場合には(例えば、カフェテリア内でのみ、昼食時間頃に、より対話型となること)、ロボットデバイスは、そのルールを適応させ、今後の実施のために、適応させたルールを保存することができる。
【0172】
[0194] いくつかの実施形態では、ロボットデバイスは、ユーザー入力に基づいて、既存のスキル及び/又は環境的制約を適応させることによって、スキル及び/又は環境的制約を学習することができる。
図25は、ユーザー入力に基づいて、スキル及び/又は環境的制約を適応させる例示的方法のフロー図である。ロボットデバイスは、2502において、ユーザー入力を受け取ることができる。ロボットデバイスは、2504において、ユーザー入力を1つ又は複数のスキル及び/又は環境的制約に関連付けることができる。このような関連付けは、例えば、ユーザーによるさらなる入力(例えば、ユーザーが、入力が関係するスキル及び/又は環境的制約を指定すること)、及び/又はロボットデバイスによる導出(例えば、このような入力が、ある特定のスキル又は環境的制約に関連することを、この入力、及び/又はこの特定のスキル若しくは環境的制約に関連する、1つ又は複数のルール、属性などに基づいて、ロボットデバイスが決定することに基づいてもよい。例えば、ユーザーは、QRコード、バーコード、タグなどの物体を識別するための新しい情報をロボットデバイスに提供することができる。ユーザーは、この新しい情報が、ある特定の物体に関するものであることを指定することができ、ロボットデバイスは、新しい情報をこの物体に関連付けることができる。ロボットデバイスは、その物体に関する新しい情報を、その物体とのインタラクションに関与する1つ又は複数のスキル(例えば、つかむスキル又は移動スキル)にさらに関連付けることができる。ロボットデバイスは、任意選択的に、2506~2508において、入力に基づいて、スキル又は環境的制約の修正及び/又は生成を行うことができる。
【0173】
[0195] いくつかの実施形態では、ロボットデバイスは、スキル及び/又は環境的制約に関連する情報をユーザーが遡及的にラベル付けすることを可能にすることができる。例えば、ロボットは、例えばユーザーインターフェース(例えば、ユーザーインターフェース240)及び/又は遠隔のインターフェースを用いて、スキル又は環境的制約をユーザーに提示することができる。ユーザーは、スキル又は環境的制約に関連付けられたラベルの追加、修正、及び/又は除去を行うことを選択することができ、このような入力は、2502において、ロボットデバイスで受け取られ得る。その後、ロボットデバイスは、2504において、入力をスキル又は環境的制約に関連付けることができ、2506~2508において、入力に基づいて、新しいスキル又は環境的制約の修正及び/又は生成を行うことができる。
【実施例0174】
実施例
[0196] 本開示は、以下の実施例のいずれか1つから最大で全てを含み得ることが認識されるだろう。
【0175】
[0197] 実施例1:メモリー、プロセッサー、操作要素、及びセンサーのセットを有する装置であって、プロセッサーが、メモリー、操作要素、及びセンサーのセットに動作可能に結合され、並びに、センサーのセットからのセンサーのサブセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を行うように構成された、装置。
【0176】
[0198] 実施例2:物理的物体のセットが、人間を含む、実施例1の装置。
【0177】
[0199] 実施例3:操作要素が、物理的物体のセットからの物理的物体のサブセットと係合するように構成されたエンドエフェクターを含む、実施例1又は2に記載の装置。
【0178】
[0200] 実施例4:センサーのサブセットが、第1のセンサーのサブセットであり、プロセッサーが、センサーのセットからの第2のセンサーのサブセットを用いて感覚情報を取得するように構成され、第2のセンサーのサブセットが、第1のセンサーのサブセットとは異なる、実施例1~3のいずれか1つに記載の装置。
【0179】
[0201] 実施例5:操作要素が、複数の関節によって連結された複数の可動コンポーネントを含み、センサーのセットが、複数の関節からの関節に作用する力を測定するように構成されたセンサー、又は複数の可動コンポーネントからの可動コンポーネントと、物理的物体のセットからの物理的物体との係合を検出するように構成されたセンサーの少なくとも一方を含む、実施例1~4のいずれか1つに記載の装置。
【0180】
[0202] 実施例6:センサーのセットが、装置の一部に対する、関節又は可動コンポーネントの位置を測定するように構成されたセンサーをさらに含む、実施例5に記載の装置。
【0181】
[0203] 実施例7:センサーのセットが、光センサー、温度センサー、音声捕捉デバイス、及びカメラの少なくとも1つをさらに含む、実施例5に記載の装置。
【0182】
[0204] 実施例8:操作要素が、(i)複数の関節と、(ii)物理的物体のセットからの物理的物体を移動させるように構成されたエンドエフェクターと、を含み、センサーのセットが、エンドエフェクターが物理的物体を移動させるときに、エンドエフェクター、又はエンドエフェクターに結合された複数の関節からの関節の少なくとも一方にかかる力を測定するように構成されたセンサーを含む、実施例1に記載の装置。
【0183】
[0205] 実施例9:感覚情報が、特徴のセットに関連するセンサーデータを含み、プロセッサーが、特徴のセットからの第1の特徴のサブセットの選択を受け取るようにさらに構成され、プロセッサーが、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成するように構成される、実施例1~8のいずれか1つに記載の装置。
【0184】
[0206] 実施例10:ユーザーによって行われた選択に応答して、プロセッサーが、第1の特徴のサブセットの選択を受け取るように、特徴のセットからの少なくとも1つの特徴を選択するようにユーザーに促すようにプロセッサーがさらに構成される、実施例9に記載の装置。
【0185】
[0207] 実施例11:複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例1~10のいずれか1つに記載の装置。
【0186】
[0208] 実施例12:プロセッサーが、モデル及びモデルに関連する情報をメモリーに保存するようにさらに構成され、モデルに関連する情報が、(i)マーカーのセット及び(ii)感覚情報を含む、実施例1~11のいずれか1つに記載の装置。
【0187】
[0209] 実施例13:操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例1に記載の装置。
【0188】
[0210] 実施例14:ユーザーによって行われた選択に応答して、プロセッサーが、マーカーのセットの選択を受け取るように、プロセッサーが、上記提示後に、複数のマーカーからの少なくとも1つのマーカーを選択するようにユーザーに促すようにさらに構成される、実施例1~13のいずれか1つに記載の装置。
【0189】
[0211] 実施例15:プロセッサーが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングによって、環境の表現を取得するように構成される、実施例1~14のいずれか1つに記載の装置。
【0190】
[0212] 実施例16:センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、上記提示後に、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択を受け取ることと、環境内の操作要素の動きに関連する複数の位置からの位置ごとに、操作要素に関連する感覚情報を取得することであって、操作要素の動きが、操作要素と物理的物体のセットとの物理的インタラクションに関連する、取得することと、感覚情報に基づいて、操作要素と物理的物体のセットとの物理的インタラクションを実行するための操作要素の動作を規定するように構成されたモデルを生成することと、を有する方法。
【0191】
[0213] 実施例17:感覚情報が、特徴のセットに関連するセンサーデータを含み、方法が、特徴のセットからの第1の特徴のサブセットの選択を受け取ることをさらに有し、上記生成することが、第1の特徴のサブセットに関連するセンサーデータに基づき、且つ第1の特徴のセットに含まれない、特徴のセットからの第2の特徴のサブセットに関連するセンサーデータには基づかずに、モデルを生成することを含む、実施例16に記載の方法。
【0192】
[0214] 実施例18:ユーザーによって行われた選択に応答して、第1の特徴のサブセットの選択が受け取られるように、特徴のセットからの少なくとも1つの特徴を選択するようにユーザーに促すことをさらに有する、実施例17に記載の方法。
【0193】
[0215] 実施例19:複数のマーカーが、基準マーカーであり、環境の表現が、環境の視覚的表現である、実施例16~18のいずれか1つに記載の方法。
【0194】
[0216] 実施例20:操作要素が、複数の関節を含み、感覚情報が、操作要素の動きに関連する複数の位置からの位置ごとに、複数の関節からの各関節の現在の状態を示す情報を含む、実施例16~19のいずれか1つに記載の方法。
【0195】
[0217] 実施例21:ユーザーによって行われた選択に応答して、マーカーのセットの選択が受け取られるように、上記提示後に、複数のマーカーからの少なくとも1つのマーカーを選択するようにユーザーに促すことをさらに有する、実施例16~20のいずれか1つに記載の方法。
【0196】
[0218] 実施例22:環境の表現を取得することが、センサーのセットを用いて、環境内の関心のある領域のセンシング又はスキャニングを行うことを含む、実施例16~21のいずれか1つに記載の方法。
【0197】
[0219] 実施例23:プロセッサーによって実行される命令を表すコードを保存する、非一時的なプロセッサー可読媒体であって、コードが、センサーのセットを用いて、環境の表現を取得することと、環境の表現内で複数のマーカーを識別することであって、複数のマーカーからの各マーカーが、環境内に位置する複数の物理的物体からの物理的物体に関連付けられる、識別することと、環境の表現内で複数のマーカーからの各マーカーの位置を示す情報を提示することと、複数の物理的物体からの物理的物体のセットに関連付けられた、複数のマーカーからのマーカーのセットの選択の受け取りに応答して、操作要素と物理的物体のセットとの物理的インタラクションを実行することに関連するモデルを識別することであって、操作要素が、複数の関節及びエンドエフェクターを含む、識別することと、モデルを使用して、物理的インタラクションを実行することに関連する、複数の関節及びエンドエフェクターの動作を規定する、操作要素の軌道を生成することと、をプロセッサーに行わせるコードを有する、非一時的なプロセッサー可読媒体。
【0198】
[0220] 実施例24:物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、モデルを識別するようにユーザーに促すことをプロセッサーに行わせるコードを含む、実施例23に記載の非一時的なプロセッサー可読媒体。
【0199】
[0221] 実施例25:物理的インタラクションを実行することに関連するモデルを識別することをプロセッサーに行わせるコードが、マーカーのセットの選択に基づいて、プロセッサーにモデルを識別させるコードを含む、実施例23又は24に記載の非一時的なプロセッサー可読媒体。
【0200】
[0222] 実施例26:環境の表現内で操作要素の軌道をユーザーに表示することと、表示後に、ユーザーから入力を受け取ることと、操作要素の軌道の承認を示す入力に応答して、物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、をプロセッサーに行わせるコードをさらに有する、実施例23~25のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0201】
[0223] 実施例27:軌道が、第1の軌道であり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、モデルに関連するパラメーターのセットを修正することによって修正モデルを生成することと、修正モデルを使用して、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例23~26のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0202】
[0224] 実施例28:軌道が、第1の軌道であり、モデルが、第1のモデルであり、非一時的なプロセッサー可読媒体が、操作要素の軌道の承認を示さない入力に応答して、第1のモデルを生成するために使用された特徴のセットとは異なる特徴のセットに関連するセンサーデータに基づいて、第2のモデルを生成することと、第2のモデルを使用して、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例23~26のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0203】
[0225] 実施例29:物理的インタラクションを実行するために、複数の関節及びエンドエフェクターの動作を実施することと、物理的インタラクションの実行に関連する感覚情報を取得することと、感覚情報に基づいて、物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たすか否かを決定することと、をプロセッサーに行わせるコードをさらに有する、実施例23~28のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0204】
[0226] 実施例30:物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たすという決定に応答して、物理的インタラクションが成功したことを示す信号を生成することと、物理的インタラクションの実行が、あらかじめ規定及び/又は学習された成功基準を満たさないという決定に応答して、感覚情報に基づいてモデルを修正することによって、修正モデルを生成することと、修正モデルを用いて、操作要素の第2の軌道を生成することと、をプロセッサーに行わせるコードをさらに有する、実施例29に記載の非一時的なプロセッサー可読媒体。
【0205】
[0227] 実施例31:モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、(iii)保存された軌道に沿った点における、複数の関節の構成を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、保存された軌道に沿った点における複数の関節の構成に基づいて、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例23~30のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0206】
[0228] 実施例32:モデルが、(i)保存されたマーカーのセットと、(ii)保存されたマーカーのセットに関連する、操作要素の保存された軌道に沿った点における操作要素の位置又は向きの少なくとも一方を示す感覚情報と、に関連付けられ、操作要素の軌道を生成することをプロセッサーに行わせるコードが、マーカーのセット及び保存されたマーカーのセット間の変換関数を計算することと、点ごとに、変換関数を用いて、操作要素の位置又は向きの少なくとも一方を変換することと、点ごとに、複数の関節の計画された構成を決定することと、点ごとに、その点に関する複数の関節の計画された構成に基づいて、その点及び連続点間の軌道の一部を決定することと、をプロセッサーに行わせるコードを含む、実施例23~30のいずれか1つに記載の非一時的なプロセッサー可読媒体。
【0207】
[0229] 実施例33:操作要素の第1の場所と、物理的物体のセットからの物理的物体の場所との間の距離に基づいて、操作要素の場所を変更するか否かを決定することと、操作要素の場所を変更するとの決定に応答して、物理的物体の場所により近接する第2の場所へと操作要素を第1の場所から移動させることと、をプロセッサーに行わせるコードをさらに有し、操作要素の軌道を生成することをプロセッサーに行わせるコードが、上記移動後に、操作要素の第2の場所に対する物理的物体の場所に基づいて、軌道を生成することをプロセッサーに行わせるコードを含む、請求項23~32のいずれか一項に記載の非一時的なプロセッサー可読媒体。
【0208】
[0230] 様々な発明の実施形態を本明細書に記載及び図示したが、当業者は、本明細書に記載される機能を行い、及び/又は本明細書に記載される結果及び/又は利点の1つ若しくは複数を得るための様々な他の手段及び/又は構造を容易に想像し、そのような変形形態及び/又は変更形態のそれぞれは、本明細書に記載される発明の実施形態の範囲内であると見なされる。より一般的に、本明細書に記載される全てのパラメーター、寸法、材料、及び構成が、例示的であることを意図されていることと、実際のパラメーター、寸法、材料、及び/又は構成が、本発明の教示が使用される具体的な1つ又は複数の適用例によって決まることとを当業者は容易に理解するだろう。当業者は、本明細書に記載される具体的な発明の実施形態の多数の均等物を認識し、又はありふれた実験を行うだけで、それらを解明できるだろう。したがって、上述の実施形態が、単なる例として提示されること、並びに添付の特許請求の範囲及びその均等物の範囲内で、発明の実施形態が、具体的に記載及び請求された以外の方法で実施され得ることが理解されるものとする。本開示の発明の実施形態は、本明細書に記載される個々の特徴、システム、製品、材料、キット、及び/又は方法に向けられる。さらに、2つ以上のこのような特徴、システム、製品、材料、キット、及び/又は方法の任意の組み合わせは、それらの特徴、システム、製品、材料、キット、及び/又は方法が互いに矛盾しなければ、本開示の発明範囲内に含まれる。
【0209】
[0231] また、様々な発明概念が、1つ又は複数の方法として具現化されることが可能であり、その一例を提供した。方法の一部として行われるアクトは、任意の適切なやり方で順序付けられてもよい。したがって、例示されたものとは異なる順序でアクトが行われる実施形態が構築されることが可能であり、これらの実施形態は、例示的実施形態では、逐次的アクトとして示されているが、いくつかのアクトを同時に行うことを含み得る。
【0210】
[0232] 本明細書に記載される、いくつかの実施形態及び/又は方法は、(ハードウェア上で実行される)別のソフトウェア、ハードウェア、又はそれらの組み合わせによって行われ得る。ハードウェアモジュールは、例えば、汎用プロセッサー、フィールド・プログラマブル・ゲート・アレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を含み得る。(ハードウェア上で実行される)ソフトウェアモジュールは、C、C++、Java(商標)、Ruby、Visual Basic(商標)、及び/又は他のオブジェクト指向、手続き型、若しくは他のプログラミング言語及び開発ツールを含む、様々なソフトウェア言語(例えば、コンピューターコード)で表現され得る。コンピューターコードの例には、マイクロコード又はマイクロ命令、コンパイラーによって生成されるようなマシン命令、ウェブサービスを生み出すために使用されるコード、及びインタープリターを用いてコンピューターによって実行される高水準命令を含むファイルが含まれるが、これらに限定されない。例えば、実施形態は、命令型プログラミング言語(例えば、C、Fortranなど)、関数型プログラミング言語(Haskell、Erlangなど)、論理型プログラミング言語(例えば、Prolog)、オブジェクト指向プログラミング言語(例えば、Java、C++など)、又は他の適宜のプログラミング言語及び/又は開発ツールを用いて実施され得る。コンピューターコードの追加例には、制御信号、暗号化コード、及び圧縮コードが含まれるが、これらに限定されない。
【0211】
[0233] 様々な要素を描写するために、「第1の」、「第2の」、「第3の」などの用語が本明細書で使用される場合があるが、これらの要素は、これらの用語によって限定されるものではないことが理解されるだろう。これらの用語は、ある要素を別の要素と区別するためだけに使用される。したがって、本明細書で述べられる第1の要素は、本開示の教示から逸脱することなく、第2の要素と名付けられ得る。
【0212】
[0234] 本明細書で使用される用語は、単に、特定の実施形態を説明する目的のためのものであり、制限的であることが意図されるものではない。本明細書で使用されるように、単数形「a」、「an」、及び「the」は、文脈上明らかに他の意味を示す場合を除き、複数形も含むことが意図される。本明細書で使用される「有する」という用語(「comprises」及び/又は「comprising」)、又は「含む」という用語(「includes」及び/又は「including」)は、明記された特徴、領域、整数値、ステップ、動作、要素、及び/又はコンポーネントの存在を指定するが、1つ又は複数の他の特徴、領域、整数値、ステップ、動作、要素、コンポーネント、及び/又はこれらの群の存在又は追加を除外しないことがさらに理解されるだろう。
前記プロセッサーが、前記スキルの前記第2の部分を実行する前記第2の計画に基づいて、前記操作要素及び前記搬送要素を動かすようにさらに構成される、請求項1に記載の装置。
前記プロセッサーが、前記スキルの前記第2の部分を実行する前記第2の計画に基づいて、前記操作要素及び前記搬送要素を動かすようにさらに構成される、請求項9に記載の装置。
前記スキルの実行を中断した後に、前記ロボットデバイスが前記センサーのセットを用いて前記スキルの実演に関連する情報を受動的に取得する学習モードに切り替えることをさらに有する、請求項18に記載の方法。
前記スキルの実行を中断した後に、前記ロボットデバイスが前記センサーのセットを用いて前記スキルの実演に関連する情報を受動的に取得する学習モードに切り替えることをさらに有する、請求項24に記載の方法。