(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-14
(54)【発明の名称】ナビゲーション及び操作機能を含む技能をロボティック学習及び実行するシステム、装置、及び方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240206BHJP
B25J 19/06 20060101ALI20240206BHJP
【FI】
B25J13/08 A
B25J19/06
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023547773
(86)(22)【出願日】2022-02-08
(85)【翻訳文提出日】2023-10-04
(86)【国際出願番号】 US2022015710
(87)【国際公開番号】W WO2022170279
(87)【国際公開日】2022-08-11
(32)【優先日】2021-02-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-06-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】519298709
【氏名又は名称】ディリジェント ロボティクス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】トマス,アンドレア ロッカード
(72)【発明者】
【氏名】チュウ,ビビアン ヤウ-ウェン
(72)【発明者】
【氏名】ワースノップ,ピーター
(72)【発明者】
【氏名】グティエレス,レイムンド
(72)【発明者】
【氏名】ハトソン,ローレン
(72)【発明者】
【氏名】リ,シュアイ
(72)【発明者】
【氏名】ネッリシマル,アンジャナ
(72)【発明者】
【氏名】マティス,フランク
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707BS26
3C707CS08
3C707KS03
3C707KS07
3C707KS10
3C707KS31
3C707KS33
3C707KT03
3C707KT04
3C707KV11
3C707LW12
3C707MS08
3C707WA16
3C707WA28
(57)【要約】
ロボティック学習及び技能実行のシステム、装置、及び方法が記載される。ロボティック装置は、メモリ、プロセッサ、センサ、及び1つ又は複数の可動構成要素(例えば、操作要素及び/又は輸送要素)を含むことができる。プロセッサは、メモリ、可動要素、及びセンサに動作可能に結合することができ、環境内にある1つ又は複数の物体を含め、環境の情報を取得するように構成することができる。幾つかの実施形態では、プロセッサは、実演、探索、ユーザ入力等を通して技能を学習するように構成することができる。幾つかの実施形態では、プロセッサは、技能を実行及び/又は異なる挙動及び/又は動作間を調停するように構成することができる。幾つかの実施形態では、プロセッサは、キャッシュされた軌跡又は計画を使用して技能及び/又は挙動を実行するように構成することができる。幾つかの実施形態では、プロセッサは、ナビゲーション及び操作挙動を必要とする技能を実行するように構成することができる。
【特許請求の範囲】
【請求項1】
ロボティックデバイスであって、
輸送要素に支持された基部と、
前記基部に結合され、エンドエフェクタを含む操作要素と、
1組のセンサと、
前記基部、前記操作要素、及び前記1組のセンサに動作可能に結合されたプロセッサと、
を備え、
前記プロセッサは、
ドアを開けるための開始姿勢を示す第1のユーザ入力を受信したことに応答して、前記ドアを開けるためのアクティブ化デバイスに対して前記基部及び前記エンドエフェクタの前記開始姿勢を見当合わせすることと、
前記1組のセンサを使用して、前記ドアを開けるように前記アクティブ化デバイスをトリガーするために必要な操作の実演中に、前記実演の複数のキーフレームにおいてセンサデータを取得することと、
前記アクティブ化デバイスをトリガーするための標的姿勢を示す第2のユーザ入力を受信したことに応答して、前記アクティブ化デバイスに対して前記エンドエフェクタの前記標的姿勢を見当合わせすることと、
少なくとも部分的に前記開始姿勢、前記複数のキーフレームで収集された前記センサデータ、及び前記標的姿勢に基づいて、前記アクティブ化デバイスをトリガーするための計画を生成することと、
前記ドアを開けるための複数の追加の開始姿勢を識別することと、
少なくとも部分的に前記複数の追加開始姿勢、前記複数のキーフレームで収集された前記センサデータ、及び前記標的姿勢に基づいて、前記アクティブ化デバイスをトリガーするための複数の追加の計画を生成することと、
を行うように構成される、ロボティックデバイス。
【請求項2】
前記プロセッサは、
前記1組のセンサのうちの少なくとも1つのセンサを使用して、前記ロボティックデバイス近傍の環境をスキャンすることと、
前記環境の前記スキャンに基づいて、前記アクティブ化デバイスと関連付けられたマーカを識別することと
を行うように更に構成され、
前記プロセッサは、少なくとも部分的に、前記基部に対する前記マーカの位置に基づいて前記開始姿勢を識別するように構成される、請求項1に記載のロボティックデバイス。
【請求項3】
メモリを更に備え、
前記プロセッサは、前記メモリに動作可能に結合され、前記アクティブ化デバイスをトリガーするための前記計画及び前記複数の追加の計画を計画キャッシュとして前記メモリに記憶するように更に構成される、請求項1に記載のロボティックデバイス。
【請求項4】
前記ドアは、複数のドアタイプうちの1つのドアタイプであり、前記プロセッサは、前記計画キャッシュに前記ドアタイプを関連付けるように更に構成される、請求項3に記載のロボティックデバイス。
【請求項5】
前記ドアは第1のドアであり、前記プロセッサは、
前記1組のセンサのうちの少なくとも1つのセンサを使用して、前記第1のドアと同じドアタイプである第2のドアを検出することと、
前記第2のドアを開けるために実行する計画を前記計画キャッシュから選択することと、
を行うように更に構成される、請求項4に記載のロボティックデバイス。
【請求項6】
前記ドアは第1のドアであり、前記アクティブ化デバイスは第1のアクティブ化デバイスであり、前記プロセッサは、
前記1組のセンサのうちの少なくとも1つのセンサを使用して、第2のドア及びそれと関連付けられた第2のアクティブ化デバイスを検出することと、
前記第2のドア付近の環境における少なくとも1つの障害物の情報を取得することと、
前記計画キャッシュからの少なくとも1つの計画の実行により、前記操作要素と前記少なくとも1つの障害物との間の衝突が生じるか否かを判断することと、
前記計画キャッシュからの少なくとも1つの計画の実行により衝突が生じるとの判断に応答して、前記第2のアクティブ化デバイスをトリガーするための少なくとも1つの改変計画を生成することと、
を行うように更に構成される、請求項3に記載のロボティックデバイス。
【請求項7】
前記プロセッサは、前記メモリに記憶された前記環境のマップから前記第2のドア又は前記第2のアクティブ化デバイスの少なくとも一方付近の物体の情報を検索することにより、前記少なくとも1つの障害物の情報を取得するように構成される、請求項6に記載のロボティックデバイス。
【請求項8】
前記プロセッサは、
前記計画キャッシュからの少なくとも1つの計画の実行により、前記ロボティックデバイスの前記少なくとも1つの障害物との衝突が生じないとの判断に応答して、前記少なくとも1つの計画の実行により、前記第2のアクティブ化デバイスが首尾良くトリガーされるか否かを判断することと、
前記少なくとも1つの計画が前記第2のアクティブ化デバイスを首尾良くトリガーするとの判断に応答して、前記少なくとも1つの計画に前記第2のアクティブ化デバイスを関連付けることと、
を行うように更に構成される、請求項6に記載のロボティックデバイス。
【請求項9】
前記プロセッサは、
前記少なくとも1つの計画が前記第2のアクティブ化デバイスを首尾良くトリガーしないとの判断に応答して、前記第2のアクティブ化デバイスをトリガーするための少なくとも1つの改変計画を生成するように更に構成される、請求項8に記載のロボティックデバイス。
【請求項10】
前記プロセッサは、
前記少なくとも1つの計画が前記第2のアクティブ化デバイスを首尾良くトリガーしないとの判断に応答して、ユーザに前記第2のドアを開けるように促すメッセージを前記ユーザに提示するように更に構成される、請求項8に記載のロボティックデバイス。
【請求項11】
前記プロセッサは、統計分布に基づいて前記開始姿勢の周囲をランダムにサンプリングすることにより、前記複数の追加の開始姿勢を識別するように構成される、請求項1に記載のロボティックデバイス。
【請求項12】
前記プロセッサは、
障害物が前記ドア付近にあることを示す第3のユーザ入力を受信したことに応答して、ユーザに前記衝突プリミティブを教えるように促すメッセージを前記ユーザに提示することと、
前記1組のセンサのうちの少なくとも1つのセンサを使用して、前記障害物の空間情報及びジオメトリ情報を取得することと、
を行うように更に構成され、
前記プロセッサは、前記障害物の前記空間情報及び前記ジオメトリ情報に更に基づいて、前記計画及び前記複数の追加の計画を生成するように構成される、請求項1に記載のロボティックデバイス。
【請求項13】
方法であって、
ドアを開けるためのロボティックデバイスの開始姿勢を示す第1のユーザ入力を前記ロボティックデバイスにおいて受信したことに応答して、前記ドアを開けるためのアクティブ化デバイスに対して前記ロボティックデバイスの基部及びエンドエフェクタの前記開始姿勢を見当合わせすることと、
前記ロボティックデバイスの前記1組のセンサを使用して、前記ドアを開けるように前記アクティブ化デバイスをトリガーするための前記ロボティックデバイスの操作の実演中に、前記実演の複数のキーフレームにおいてセンサデータを取得することと、
前記アクティブ化デバイスをトリガーするための標的姿勢を示す第2のユーザ入力を前記ロボティックデバイスにおいて受信したことに応答して、前記アクティブ化デバイスに対して前記エンドエフェクタの前記標的姿勢を見当合わせすることと、
少なくとも部分的に前記開始姿勢、前記複数のキーフレームで収集された前記センサデータ、及び前記標的姿勢に基づいて前記アクティブ化デバイスをトリガーするための計画を生成することと、
前記ドアを開けるための複数の追加の開始姿勢を識別することと、
少なくとも部分的に前記複数の追加開始姿勢、前記複数のキーフレームで収集された前記センサデータ、及び前記標的姿勢に基づいて、前記アクティブ化デバイスをトリガーするための複数の追加の計画を生成することと、
を含む、方法。
【請求項14】
前記アクティブ化デバイスはスキャナであり、前記アクティブ化デバイスをトリガーすることは、前記スキャナにおけるバッジをスキャンすることを含む、請求項13に記載の方法。
【請求項15】
前記アクティブ化デバイスはボタンであり、前記アクティブ化デバイスをトリガーすることは、前記ボタンをプッシュすることを含む、請求項13に記載の方法。
【請求項16】
ロボティックデバイスであって、
輸送要素に支持された基部と、
前記基部に結合され、エンドエフェクタを含む操作要素と、
1組のセンサと、
前記基部、前記操作要素、及び前記1組のセンサに動作可能に結合されたプロセッサと、
を備え、
前記プロセッサは、
前記1組のセンサのうちの少なくとも1つのセンサを使用して、前記ロボティックデバイス付近の環境をスキャンすることと、
前記環境の前記スキャンに基づいて、ドアを開けるためのアクティブ化デバイスと関連付けられたマーカを識別することと、
前記アクティブ化デバイスをトリガーするための複数の計画を含む計画キャッシュにアクセスすることと、
前記マーカに対する前記基部及び前記エンドエフェクタの現在姿勢を特定することと、
前記基部及び前記エンドエフェクタの前記現在姿勢に基づいて、前記アクティブ化デバイスをトリガーするための計画を前記複数の計画から選択することと、
前記計画の少なくとも一部を実行することと、
を行うように構成される、ロボティックデバイス。
【請求項17】
前記プロセッサは、
前記計画の実行後、前記ドアが開いたか否かを判断することと、
前記ドアが開いたとの判断に応答して、前記輸送要素を使用して前記ドアを通るようにナビゲートすることと、
を行うように更に構成される、請求項16に記載のロボティックデバイス。
【請求項18】
前記計画は第1の計画であり、前記プロセッサは、
前記ドアが開かなかったとの判断に応答して、前記アクティブ化デバイスをトリガーするための第2の計画を前記複数の計画から選択することであって、前記第2の計画は前記第1の計画と異なる、選択することと、
前記第2の計画を実行することと、
を行うように更に構成される、請求項17に記載のロボティックデバイス。
【請求項19】
前記計画は第1の計画であり、前記プロセッサは、
前記ドアが開かなかったとの判断に応答して、前記基部及び前記エンドエフェクタを前記アクティブ化デバイスに対して異なる姿勢に移動させることと、
前記アクティブ化デバイスをトリガーするための第2の計画を前記複数の計画から選択することと、
前記第2の計画を実行することと、
を行うように更に構成される、請求項17に記載のロボティックデバイス。
【請求項20】
前記プロセッサは、
前記ドアが開いたとの判断に応答して、前記ドアを通るようにナビゲートする前、前記操作要素を予め規定された安全位置に位置決めするように更に構成される、請求項17に記載のロボティックデバイス。
【請求項21】
前記プロセッサは、
前記計画の前記少なくとも一部の実行中、障害物との衝突を検出することと、
前記衝突の検出に応答して、前記計画の実行を終了し、前記エンドエフェクタを予め規定された安全位置に戻すことと、
を行うように更に構成される、請求項16に記載のロボティックデバイス。
【請求項22】
前記プロセッサは、前記マーカに基づいて前記アクティブ化デバイスのタイプを特定するように更に構成され、
前記計画キャッシュには、前記アクティブ化デバイスの前記タイプが関連付けられる、請求項16に記載のロボティックデバイス。
【請求項23】
前記プロセッサは、
前記計画の実行後、前記ドアが開かなかったことを示すユーザ入力を受信したことに応答して、前記アクティブ化デバイスをトリガーするための第2の計画を前記計画キャッシュから選択することと、
前記第2の計画を実行することと、
を行うように構成される、請求項16に記載のロボティックデバイス。
【請求項24】
前記プロセッサは、
前記ロボティックデバイスと関連付けられた安全境界線を画定することと、
物体が前記安全境界線内に入った尤度を特定することと、
前記尤度に基づいて、
前記操作要素の移動を一時停止すること、
前記操作要素の移動速度を落とすこと、又は
前記操作要素の移動を再開すること
を行うように更に構成される、請求項16に記載のロボティックデバイス。
【請求項25】
前記プロセッサは、前記基部及び前記エンドエフェクタの前記現在姿勢に最も近い開始姿勢と関連付けられた前記計画を前記複数の計画から選択することにより、前記計画を選択するように構成される、請求項16に記載のロボティックデバイス。
【請求項26】
方法であって、
ロボティックデバイスの1組のセンサを使用して、前記ロボティックデバイス付近の環境をスキャンすることと、
前記環境の前記スキャンに基づいて、ドアを開けるためのアクティブ化デバイスと関連付けられたマーカを識別することと、
前記アクティブ化デバイスをトリガーするための複数の計画を含む計画キャッシュにアクセスすることと、
前記マーカに対する前記ロボティックデバイスの基部及びエンドエフェクタの現在姿勢を特定することと、
前記基部及び前記エンドエフェクタの前記現在姿勢に基づいて、前記アクティブ化デバイスをトリガーするための計画を前記複数の計画から選択することと、
前記計画の少なくとも一部を実行することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本願は、2021年2月8日付けで出願された「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」と題する米国仮特許出願第63/147,124号の優先権及び利益を主張するものであり、その開示全体は参照により本明細書に援用される。
【0002】
[0002] 本願は、2021年6月17日付けで出願された「SYSTEMS, APPARATUS, AND METHODS FOR ROBOTIC LEARNING AND EXECUTION OF SKILLS」と題する米国仮特許出願第63/211,999号の優先権及び利益を主張するものであり、その開示全体は参照により本明細書に援用される。
【0003】
技術分野
[0003] 本開示は、一般的には、技能をロボティック学習及び実行するシステム、装置、及び方法に関する。より詳細には、本開示は、非構造化環境で技能を学習及び実行することが可能なロボティック装置に関する。
【背景技術】
【0004】
背景
[0004] ロボットは、多様なタスクの実行及び自動化に使用することができる。ロボットは、オフィスビル又は病院等の環境を移動することによりタスクを実行することができる。ロボットは、車輪、トラック、又は環境を自律的に動き回れるようにする他の可動構成要素を備えることができる。しかしながら、アーム又は他のマニピュレータを持たないロボットは、環境において物体を操作することができない。したがって、これらのロボットのタスク実行能力は限られ、例えば、そのようなロボットは、ピックアップ又は搬送ポイントにおいて物体を操作するために人間の存在なしでは物体をピックアップ及び搬送することができないことがある。
【0005】
[0005] アーム又は他のマニピュレータを含むロボットは、人間が存在しない場所で物体をピックアップし物体を人間がいない場所に搬送することが可能であり得る。例えば、グリッパ等のエンドエフェクタを有するアームのあるロボットは、グリッパを使用して1つ又は複数の物体を異なる場所からピックアップし、それらの物体を新しい場所に搬送することができ、これらは全て人間のアシスタントなしで行うことができる。これらのロボットは特定のタスクの自動化に使用することができ、それにより、人間オペレータが他のタスクに集中できるようにする。しかしながら、大半の市販のロボットは、マニピュレータの動作をプログラムすることの難しさ及び複雑さに起因してマニピュレータを含まない。
【0006】
[0006] 更に、大半の市販のロボットは、構造化された環境、例えば工場、倉庫等で動作するように設計される。非構造化環境、例えば病院及び家等の人間を含む環境は、ロボットのプログラミングに更なる問題を課す。非構造化環境では、ロボットは周囲環境の完全な知識に頼ることができず、周囲環境の変化を知覚し、それらの変化に基づいて適応可能でなければならない。したがって、非構造化環境では、ロボットは、自律的な判断を下し、タスクを実行することができるために、環境についての情報を常時取得する必要がある。多くの場合、環境におけるロボットの移動、例えばアーム又はエンドエフェクタの移動は、環境内の物体及び他の障害物によっても制約され、ロボットの知覚及び操作の問題が更に大きくなる。非構造化環境の不確実性及び動的性質により、ロボットは典型的には、タスクを実行するように事前にプログラムすることができない。
【0007】
[0007] 更に、大半の既存のロボットは簡単なタスクを実行するように構成される。例えば、大半の既存のロボットは、構造化環境を動き回るように構成される。これらの既存のロボットは精々、開かれたドアを通過する程度であり得る。しかしながら、既存のロボットは、事前プログラミングなしで様々なタイプのドアの識別、これらのドアへのアクセス、ドアを開けること、及び戸口の通過等の高度なタスクを実行するように設計されない。
【発明の概要】
【発明が解決しようとする課題】
【0008】
[0008] したがって、予めプログラムされた操作技能に頼ることなく、動的非構造化環境を知覚してそれに適応することができるとともに、それらの環境内で高度なタスクを実行することができるロボティックシステムが必要とされる。
【課題を解決するための手段】
【0009】
概要
[0009] 技能をロボティック学習及び実行するシステム、装置、及び方法が記載される。幾つかの実施形態では、ロボティックデバイスは、輸送要素に支持された基部と、基部に結合され、エンドエフェクタを含む操作要素と、1組のセンサと、基部、操作要素、及び1組のセンサに動作可能に結合されたプロセッサとを備えることができる。プロセッサは、ドアを開けるための開始姿勢を示す第1のユーザ入力を受信したことに応答して、ドアを開けるためのアクティブ化デバイスに対して基部及びエンドエフェクタの開始姿勢を見当合わせすることと、1組のセンサを使用して、ドアを開けるようにアクティブ化デバイスをトリガーするために必要な操作の実演中、実演の複数のキーフレームにおいてセンサデータを取得することと、アクティブ化デバイスをトリガーするための標的姿勢を示す第2のユーザ入力に応答して、アクティブ化デバイスに対してエンドエフェクタの標的姿勢を見当合わせすることと、少なくとも部分的に開始姿勢、複数のキーフレームで収集されたセンサデータ、及び標的姿勢に基づいてアクティブ化デバイスをトリガーするための計画を生成することと、ドアを開けるための複数の追加の開始姿勢を識別することと、少なくとも部分的に複数の追加開始姿勢、複数のキーフレームで収集されたセンサデータ、及び標的姿勢に基づいて、アクティブ化デバイスをトリガーするための複数の追加の計画を生成することとを行うように構成することができる。
【0010】
[0010] 幾つかの実施形態では、プロセッサは、1組のセンサのうちの少なくとも1つのセンサを使用して、ロボティックデバイス近傍の環境をスキャンすることと、環境のスキャンに基づいて、アクティブ化デバイスと関連付けられたマーカを識別することとを行うように更に構成することができる。プロセッサは、少なくとも部分的に、基部に対するマーカの位置に基づいて開始姿勢を識別するように構成することができる。幾つかの実施形態では、ロボティックデバイスはメモリを更に備えることができる。プロセッサは、メモリに動作可能に結合することができ、アクティブ化デバイスをトリガーするための計画及び複数の追加の計画を計画キャッシュとしてメモリに記憶するように更に構成することができる。
【0011】
[0011] 幾つかの実施形態では、ドアは、複数のドアタイプうちの1つのドアタイプであることができる。プロセッサは、計画キャッシュにドアタイプを関連付けるように更に構成することができる。幾つかの実施形態では、ドアは第1のドアであることができる。プロセッサは、1組のセンサのうちの少なくとも1つのセンサを使用して、第1のドアと同じドアタイプである第2のドアを検出することと、第2のドアを開けるために実行する計画を計画キャッシュから選択することとを行うように更に構成することができる。幾つかの実施形態では、ドアは第1のドアであることができ、アクティブ化デバイスは第1のアクティブ化デバイスであることができる。プロセッサは、1組のセンサのうちの少なくとも1つのセンサを使用して、第2のドア及びそれと関連付けられた第2のアクティブ化デバイスを検出することと、第2のドア付近の環境における少なくとも1つの障害物の情報を取得することと、計画キャッシュからの少なくとも1つの計画の実行により、操作要素と少なくとも1つの障害物との間の衝突が生じるか否かを判断することと、計画キャッシュからの少なくとも1つの計画の実行により衝突が生じるとの判断に応答して、第2のアクティブ化デバイスをトリガーするための少なくとも1つの改変計画を生成することとを行うように更に構成することができる。
【0012】
[0012] 幾つかの実施形態では、プロセッサは、メモリに記憶された環境のマップから第2のドア又は第2のアクティブ化デバイスの少なくとも一方付近の物体の情報を検索することにより、少なくとも1つの障害物の情報を取得するように構成することができる。
【0013】
[0013] 幾つかの実施形態では、プロセッサは、計画キャッシュからの少なくとも1つの計画の実行により、ロボティックデバイスの少なくとも1つの障害物との衝突が生じないとの判断に応答して、少なくとも1つの計画の実行により、第2のアクティブ化デバイスが首尾良くトリガーされるか否かを判断することと、少なくとも1つの計画が第2のアクティブ化デバイスを首尾良くトリガーするとの判断に応答して、少なくとも1つの計画に第2のアクティブ化デバイスを関連付けることとを行うように更に構成することができる。
【0014】
[0014] 幾つかの実施形態では、プロセッサは、少なくとも1つの計画が第2のアクティブ化デバイスを首尾良くトリガーしないとの判断に応答して、第2のアクティブ化デバイスをトリガーするための少なくとも1つの改変計画を生成するように更に構成することができる。幾つかの実施形態では、プロセッサは、少なくとも1つの計画が第2のアクティブ化デバイスを首尾良くトリガーしないとの判断に応答して、ユーザに第2のドアを開けるように促すメッセージをユーザに提示するように更に構成することができる。
【0015】
[0015] 幾つかの実施形態では、プロセッサは、統計分布に基づいて開始姿勢の周囲をランダムにサンプリングすることにより、複数の追加の開始姿勢を識別するように更に構成することができる。幾つかの実施形態では、プロセッサは、障害物がドア付近にあることを示す第3のユーザ入力を受信したことに応答して、ユーザに衝突プリミティブを教えるように促すメッセージをユーザに提示することと、1組のセンサのうちの少なくとも1つのセンサを使用して、障害物の空間情報及びジオメトリ情報を取得することとを行うように更に構成することができ。プロセッサは、障害物の空間情報及びジオメトリ情報に更に基づいて、計画及び複数の追加の計画を生成するように構成することができる。
【0016】
[0016] 幾つかの実施形態では、方法は、ドアを開けるためのロボティックデバイスの開始姿勢を示す第1のユーザ入力をロボティックデバイスにおいて受信したことに応答して、ドアを開けるためのアクティブ化デバイスに対して基部及びエンドエフェクタの開始姿勢を見当合わせすることと、ロボティックデバイスの1組のセンサを使用して、ドアを開けるようにアクティブ化デバイスをトリガーするためのロボティックデバイスの操作の実演中に、実演の複数のキーフレームにおいてセンサデータを取得することと、アクティブ化デバイスをトリガーするための標的姿勢を示す第2のユーザ入力をロボティックデバイスにおいて受信したことに応答して、アクティブ化デバイスに対してエンドエフェクタの標的姿勢を見当合わせすることと、少なくとも部分的に開始姿勢、複数のキーフレームで収集されたセンサデータ、及び標的姿勢に基づいてアクティブ化デバイスをトリガーするための計画を生成することと、ドアを開けるための複数の追加の開始姿勢を識別することと、少なくとも部分的に複数の追加開始姿勢、複数のキーフレームで収集されたセンサデータ、及び標的姿勢に基づいて、アクティブ化デバイスをトリガーするための複数の追加の計画を生成することとを含むことができる。
【0017】
[0017] 幾つかの実施形態では、アクティブ化デバイスはスキャナであることができる。前記アクティブ化デバイスをトリガーすることは、前記スキャナにおけるバッジをスキャンすることを含むことができる。幾つかの変形形態では、アクティブ化デバイスはボタンであり、アクティブ化デバイスをトリガーすることは、ボタンをプッシュすることを含むことができる。
【0018】
[0018] 幾つかの実施形態では、ロボティックデバイスは、輸送要素に支持された基部と、基部に結合され、エンドエフェクタを含む操作要素と、1組のセンサと、基部、操作要素、及び1組のセンサに動作可能に結合されたプロセッサとを備えることができる。プロセッサは、1組のセンサのうちの少なくとも1つのセンサを使用して、ロボティックデバイス付近の環境をスキャンすることと、環境のスキャンに基づいて、ドアを開けるためのアクティブ化デバイスと関連付けられたマーカを識別することと、アクティブ化デバイスをトリガーするための複数の計画を含む計画キャッシュにアクセスすることと、マーカに対する基部及びエンドエフェクタの現在姿勢を特定することと、基部及びエンドエフェクタの現在姿勢に基づいて、アクティブ化デバイスをトリガーするための計画を複数の計画から選択することと、計画の少なくとも一部を実行することとを行うように構成することができる。
【0019】
[0019] 幾つかの実施形態では、プロセッサは、計画の実行後、ドアが開いたか否かを判断することと、ドアが開いたとの判断に応答して、輸送要素を使用してドアを通るようにナビゲートすることとを行うように更に構成することができる。幾つかの実施形態では、計画は第1の計画であることができ、プロセッサは、ドアが開かなかったとの判断に応答して、アクティブ化デバイスをトリガーするための第2の計画を複数の計画から選択することであって、第2の計画は第1の計画と異なる、選択することと、第2の計画を実行することとを行うように構成することができる。
【0020】
[0020] 幾つかの実施形態では、計画は第1の計画であることができ、プロセッサは、ドアが開かなかったとの判断に応答して、基部及びエンドエフェクタをアクティブ化デバイスに対して異なる姿勢に移動させることと、アクティブ化デバイスをトリガーするための第2の計画を複数の計画から選択することと、第2の計画を実行することとを行うように構成することができる。幾つかの実施形態では、プロセッサは、ドアが開いたとの判断に応答して、ドアを通るようにナビゲートする前、操作要素を予め規定された安全位置に位置決めするように構成することができる。
【0021】
[0021] 幾つかの実施形態では、プロセッサは、計画の少なくとも一部の実行中、障害物との衝突を検出することと、衝突の検出に応答して、計画の実行を終了し、エンドエフェクタを予め規定された安全位置に戻すこととを行うように構成することができる。幾つかの実施形態では、プロセッサは、マーカに基づいてアクティブ化デバイスのタイプを特定するようにすることができ、計画キャッシュには、アクティブ化デバイスのタイプが関連付けられる。
【0022】
[0022] 幾つかの実施形態では、プロセッサは、計画の実行後、ドアが開かなかったことを示すユーザ入力を受信したことに応答して、アクティブ化デバイスをトリガーするための第2の計画を計画キャッシュから選択することと、第2の計画を実行することとを行うように構成することができる。幾つかの実施形態では、プロセッサは、ロボティックデバイスと関連付けられた安全境界線を画定することと、物体が安全境界線内に入った尤度を特定することと、尤度に基づいて、操作要素の移動を一時停止すること、操作要素の移動速度を落とすこと、又は操作要素の移動を再開することを行うように更に構成することができる。幾つかの実施形態では、プロセッサは、基部及びエンドエフェクタの現在姿勢に最も近い開始姿勢と関連付けられた計画を複数の計画から選択することにより、計画を選択するように構成することができる。
【0023】
[0023] 幾つかの実施形態では、方法は、ロボティックデバイスの1組のセンサを使用して、ロボティックデバイス付近の環境をスキャンすることと、環境のスキャンに基づいて、ドアを開けるためのアクティブ化デバイスと関連付けられたマーカを識別することと、アクティブ化デバイスをトリガーするための複数の計画を含む計画キャッシュにアクセスすることと、マーカに対するロボティックデバイスの基部及びエンドエフェクタの現在姿勢を特定することと、基部及びエンドエフェクタの現在姿勢に基づいて、アクティブ化デバイスをトリガーするための計画を複数の計画から選択することと、計画の少なくとも一部を実行することとを含むことができる。
【0024】
図面の簡単な説明
[0024] 図面が主に例示を目的とし、本明細書に記載の本発明の主題の範囲の限定を意図しないことを当業者ならば理解しよう。図面は必ずしも一定の縮尺ではなく、場合によっては、異なる特徴の理解を促進するために、本明細書に記載の本発明の主題の種々の態様は、図面において誇張又は拡大して示されることがある。図面中、同様の参照文字は一般に同様の特徴(例えば、機能が同様及び/又は構造が同様の要素)を指す。
【図面の簡単な説明】
【0025】
【
図1】[0025]幾つかの実施形態によるロボティックデバイスを含むシステムの構成を示すブロック図である。
【
図2】[0026]幾つかの実施形態によるロボティックデバイスの構成を示すブロック図である。
【
図3】[0027]幾つかの実施形態によるロボティックデバイスと関連付けられた制御ユニットの構成を示すブロック図である。
【
図4】[0028]幾つかの実施形態によるロボティックデバイスの操作要素の概略図である。
【
図5】[0029]幾つかの実施形態によるロボティックデバイスの概略図である。
【
図6】[0030]幾つかの実施形態によるロボティックデバイスにより生成された環境マップのレイヤの概略図である。
【
図7】[0031]幾つかの実施形態によるロボティックデバイスにより実行される環境を検知又はスキャンする方法を示す流れ図である。
【
図8】[0032]幾つかの実施形態による、ロボティックデバイスにより実行される技能の学習及び実行の方法を示す流れ図である。
【
図9】[0033]幾つかの実施形態によるロボティックデバイスの異なる学習モードを示す流れ図を示す。
【
図10】[0034]幾つかの実施形態によるロボティックデバイスの異なる実行モードを示す流れ図を示す。
【
図11】[0035]幾つかの実施形態による、ロボティックデバイスにより実行される技能を学習する方法を示す流れ図である。
【
図12】[0036]幾つかの実施形態による、ロボティックデバイスにより実行される技法を実行する方法を示す流れ図である。
【
図13】[0037]幾つかの実施形態による環境内のロボティックデバイスの動作を示す流れ図である。
【
図14】[0038]幾つかの実施形態による、ロボット監督者等のユーザからの入力を要求及び受信する方法を示す流れ図である。
【
図15】[0039]幾つかの実施形態による、ロボティックデバイスにより実行される技能及び環境制約を学習する方法を示す流れ図である。
【
図16】[0040]幾つかの実施形態による、ロボティックデバイスにより実行される一般技法モデルから技能を学習する方法を示す流れ図である。
【
図17】[0041]幾つかの実施形態による、ロボティックデバイスにより実行される環境制約を学習する方法を示す流れ図である。
【
図18】[0042]幾つかの実施形態によるロボティックデバイスの挙動の学習例を示す流れ図を示す。
【
図19】[0042]幾つかの実施形態によるロボティックデバイスの挙動の学習例を示す流れ図を示す。
【
図20】[0042]幾つかの実施形態によるロボティックデバイスの挙動の学習例を示す流れ図を示す。
【
図21】[0043]幾つかの実施形態による、ロボティックデバイスがロボティックデバイスにより維持されるマップに提供する情報及びマップから受信する情報の流れを示す。
【
図22】[0044]幾つかの実施形態による、ドアを通過するためのロボティックデバイスの異なる学習モード及び実行モードを示す流れ図である。
【
図23】[0045]幾つかの実施形態による共有教示シナリオを示す流れ図である。
【
図24】[0046]幾つかの実施形態による誘導付き教示シナリオを示す流れ図である。
【
図25】[0047]幾つかの実施形態による現場固有教示シナリオを示す流れ図である。
【
図26】[0048]幾つかの実施形態によるドア通過の実行を示す流れ図である。
【
図27A】[0049]幾つかの実施形態による障害物モデルを構築又はロードする手法を示す。
【
図27B】[0049]幾つかの実施形態による障害物モデルを構築又はロードする手法を示す。
【
図27C】[0049]幾つかの実施形態による障害物モデルを構築又はロードする手法を示す。
【
図27D】[0049]幾つかの実施形態による障害物モデルを構築又はロードする手法を示す。
【
図28】[0050]幾つかの実施形態によるアクティブ化デバイスの変形例を示す。
【
図29】[0051]幾つかの実施形態によるアクティブ化デバイス付近に置かれた基準タグ例を示す。
【
図30】[0052]幾つかの実施形態による基準例を示す。
【
図31】[0053]幾つかの実施形態による参照姿勢例を示す。
【
図32】[0054]幾つかの実施形態によるロボティックデバイスに対する基準タグ位置例を示す。
【
図33】[0055]幾つかの実施形態による基準タグに対するエンドエフェクタの向き例を示す。
【
図34】[0056]幾つかの実施形態による、ドアを自律的に通るためのサブ状態機械を実行する流れの一例を示す。
【
図35】[0057]幾つかの実施形態による、ロボティックデバイスのドア状態検出器の出力をオーバーライドするためにユーザが使用することができるコントローラを示す。
【
図36】[0058]幾つかの実施形態による、ユーザの助けを用いてドアを通るためのサブ状態機械を実行する流れの一例を示す。
【
図37】[0059]幾つかの実施形態による、壁の存在、ロボティックデバイスの位置、及びドアがロボティックデバイスの視野内にあるか否かに基づく4つの戸口構成を示す。
【
図38】[0060]幾つかの実施形態による、ロボティックデバイスの視野内のドアの一例及びロボティックデバイスの視野外のドアの一例を示す。
【
図39】[0061]幾つかの実施形態による、一時停止/再開を計算する隠れマルコフモデルを示す。
【
図40】[0062]幾つかの実施形態による安全範囲閾値の概略図を示す。
【
図41】[0063]幾つかの実施形態による、安全操作プロセス又はアルゴリズムの一例によりロボティックデバイスの移動速度を調整する一例を示す。
【発明を実施するための形態】
【0026】
詳細な説明
[0064] 技能のロボティック学習及び実行のシステム、装置、及び方法が本明細書に記載される。幾つかの実施形態では、本明細書に記載のシステム、装置、及び方法は、人間による実演、探索、及び相互作用を介して技能を学習し、学習した技法を非構造化環境で実行することが可能なロボティック装置に関する。幾つかの実施形態では、本明細書に記載のシステム、装置、及び方法は、ドアにアクセスする、ドアを開く、及び/又は戸口を通過する等の高度な技能を学習可能なロボティック装置に関する。
【0027】
概説
[0065] 幾つかの実施形態では、本明細書に記載のシステム、装置、及び方法は、技能(例えば操作技法)を学習することができるロボットに関する。例えば、幾つかの実施形態では、ロボットは模倣学習(「LfD」)プロセスを介して技能を学習することができ、LfDプロセスでは、人間が運動感覚教示(例えば、人間が物理的に動作を通して及び/又は遠隔制御によりロボットを誘導する)及び/又は動作の人間自身による実行を介してシステムに対して動作を実演する。そのようなシステム、装置、及び方法では、操作技能をロボットにプログラムする必要がなく、むしろ、ロボットは、適応的であり、観測を介して技能を学習可能であるように設計される。例えば、ロボットは機械学習技法を使用して、操作技法を取得、実行することができる。技能学習後、ロボットは技能を異なる環境で実行することができる。ロボットは、視覚データ(例えば、知覚された視覚情報)に基づいて技能を学習及び/又は実行することができる。代替又は追加として、ロボットは、触覚データ(例えば、トルク、力、及び他の非視覚情報)を使用して技能を学習及び/又は実行することができる。
【0028】
[0066] 幾つかの実施形態では、ロボットは、実行学習(Learning from Execution)プロセスを介して技能を学習することができ、実行学習プロセスでは、前に学習した技能の実行中、ロボットは環境についての情報を知覚することができる(例えば、視覚情報及び/又はトルク、力、及び他の非視覚情報等の触覚データ等のセンサデータを使用して)。ロボットは、技能実行中に知覚した情報に基づいて環境についての情報を解析及び/又は更新することができる。ロボットは、この学習に基づいて技能を実行するように挙動を適応させることができる。幾つかの実施形態では、ロボットは探索学習(Learning from Exploration)プロセスを介して技能を学習することができ、探索学習プロセスでは、ロボットは環境をスキャンし、環境についての情報を収集することができる。ロボットは次いで、既存の技能モデル(例えば、実施されると、ロボットに技能を実行させるモデル)を選択し、その技能モデルを使用して技能を計画、実行することができる。幾つかの実施形態では、ロボットはユーザ入力学習(Learning from User Input)(例えばインタラクティブ学習)を介して技能を学習することができ、ユーザ入力学習では、ロボットは人間と協働し、ロボットが技能を実行できるようにする入力を受信することができる。例えば、ロボットは、ユーザから環境に関する情報、初期モデルセット、及び/又は技能実行ルール等を受信することができる。幾つかの場合、ロボットは、環境で動作している間、ユーザと協働することができる。幾つかの場合、ロボットは技能の特定の部分を自律的に実行し、その間、インタラクティブ学習を介してユーザから技能の他の部分を学習することができる。追加又は代替として、ロボットは、探索プロセスによる学習中、ユーザと相互作用することができ、それにより、ユーザ入力を使用して、技能を実行するように挙動を適応させることができる。幾つかの実施形態では、ロボットは、キャッシュ生成学習(Learning from Cache generation)プロセスを介して技能を学習することができ、キャッシュ生成学習プロセス中、ロボットは、技能を実行するための1つ又は複数の姿勢をロボットに教示し及び/又は環境中の種々のマーカをロボットに教示するようにユーザに促すことができる。次いでロボットは、これらの教示に基づいて、1つ又は複数の技能を実行するための計画キャッシュを生成、保存することができる。
【0029】
[0067] ロボティック学習は、ロボットデプロイ前、工場で行われてもよく、又はロボットデプロイ後、現場(例えば病院)で行われてもよい。幾つかの実施形態では、ロボットに技能を教示することができ、及び/又はロボットは、ロボティクス及び/又はプログラミングの訓練を受けていないユーザにより環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用し、実演プロセスを通してユーザを誘導することができるツールを含むことができる学習アルゴリズムを有することができる。
【0030】
[0068] 幾つかの実施形態では、ロボットは、人間と相互作用し、人間と連携して、タスクを実行するように設計することができる。幾つかの実施形態では、ロボットは一般的な社会的挙動を使用して、人間の周囲で社会的に予測可能で許容可能なように動作することができる。移動可能なロボットは、環境内で人間と相互作用しながら、その環境内でナビゲートするように設計することもできる。例えば、ロボットは、人間の周囲でナビゲートするように特定の句を声に出し、横に移動して人間を通せるようにし、ナビゲーション中、眼の注視を使用して意図的にコミュニケーションをとるようにプログラムすることができる。幾つかの実施形態では、ロボットは、周囲の環境内の人間を知覚して追跡し、その情報を使用して眼の注視及び他の社会的挙動をトリガーできるようにするセンサを有することができる。
【0031】
[0069] 幾つかの実施形態では、ロボットは、上述した1つ又は複数の学習プロセス中、目標を達成又は動作を実行するための選択肢を提案するように設計することができる。例えば、ロボットは、目標(例えば、物体をピックアップする、ドアを開ける、戸口をナビゲートする等)を達成するために少数の異なる選択肢を提案することができ、それらの選択肢のどれが、目標達成に当たり効果的及び/又は効率的である可能性が高いかを示すことができる。幾つかの実施形態では、ロボットは、ユーザによる入力に基づいて技能を適応することができ、例えば、ユーザは、技能モデルに含める関連特徴を示すことができる。
【0032】
[0070] 幾つかの実施形態では、ロボティックデバイスは、ロボティックデバイスが事前に環境の完全な情報を持たない非構造化環境、例えば動的及び/又は人間環境で技能を学習及び/又は実行可能であることができる。非構造化環境は、例えば、屋内及び屋外設定を含むことができ、環境内で移動可能な1人若しくは複数の人間又は1つ若しくは複数の他の物体を含むことができる。大半の自然な又は現実世界の環境は非構造化であるため、本明細書に記載のロボティックデバイス及び/又はシステム等の非構造化環境で適応及び動作することができるロボティックデバイスは、非構造化環境に適応することができない既存のロボティックデバイスよりも優れた改良を提供することができる。非構造化環境は、屋内設定(例えば、建物、オフィス、家、部屋等)及び/又は他のタイプの囲まれた空間(例えば、飛行機、列車、及び/又は他のタイプの可動式区画)並びに屋外設定(例えば、公園、ビーチ、外庭、野原)を含むことができる。一実施形態では、本明細書に記載のロボティックデバイスは、非構造化病院環境で動作することができる。
【0033】
[0071]
図1は、幾つかの実施形態によるシステム100を示す高レベルブロック図である。システム100は、例えば、非構造化環境において操作技能等の技能を学習し実行するように構成することができる。システム100は、単一のデバイスとして実施されてもよく、又はネットワーク105に接続された複数のデバイスにわたり実施されてもよい。例えば、
図1に示されるように、システム100は、例えば1つ又は複数のロボティックデバイス102及び110等の1つ又は複数の計算デバイス、サーバ120、並びに追加の計算デバイス150を含むことができる。4つのデバイスが示されているが、システム100が、
図1に特に示されていない計算デバイスを含め、任意の数の計算デバイスを含むことができることを理解されたい。
【0034】
[0072] ネットワーク105は、有線ネットワーク及び/又は無線ネットワークとして実施され、ロボティックデバイス102及び110、サーバ120、並びに計算デバイス150を含む計算デバイスを動作可能に結合するのに使用される任意のタイプのネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想ネットワーク、電気通信ネットワーク)であることができる。本明細書で更に詳述するように、幾つかの実施形態では例えば、計算デバイスはインターネットサービスプロバイダ(ISP)及びインターネット(例えばネットワーク105)を介して互いと接続されたコンピュータである。幾つかの実施形態では、接続は、任意の2つの計算デバイス間にネットワーク105を介して規定することができる。
図1に示されるように、例えば、接続はロボティックデバイス102とロボティックデバイス110、サーバ120、又は追加の計算デバイス150のいずれか1つとの間に規定することができる。幾つかの実施形態では、計算デバイスは、中間ネットワーク及び/又は代替のネットワーク(
図1に示されていない)を介して互いと(例えば、データを送信及び/又は受信する)及びネットワーク105と通信することができる。そのような中間ネットワーク及び/又は代替のネットワークは、ネットワーク105と同じタイプ及び/又は異なるタイプのネットワークであることができる。各計算デバイスは、ネットワーク105を経由してデータを送信して、他の計算デバイスの1つ又は複数にデータを送信及び/又は他の計算デバイスの1つ又は複数からデータを受信するように構成された任意のタイプのデバイスであることができる。
【0035】
[0073] 幾つかの実施形態では、システム100は、単一のロボティックデバイス、例えばロボティックデバイス102を含む。ロボティックデバイス102は、環境についての情報を知覚し、人間の実演及び相互作用、探索等を介して技能を学習するように構成することができる。ロボティックデバイス102は、環境と相互作用及び/又は人間の実演及び入力、探索を介して環境制約を学習及び/又は環境でそれらの技能を実行するように構成することができる。幾つかの実施形態では、ロボティックデバイス102は、技能及び/又は環境に関して追加情報を学習するために、自己探索に従事及び/又はユーザ入力を要求することができる。ロボティックデバイスの一例のより詳細な図を
図2に示す。
【0036】
[0074] 他の実施形態では、システム100は、複数のロボティックデバイス、例えばロボティックデバイス102及び110を含む。ロボティックデバイス102は、ネットワーク105を介してロボティックデバイス110にデータを送信及び/又はロボティックデバイス110からデータを受信することができる。例えば、ロボティックデバイス102は、環境について知覚した情報(例えば物体の位置)をロボティックデバイス110に送信することができ、環境についての情報をロボティックデバイス110から受信することができる。ロボティックデバイス102及び110は、技能を学習及び/又は実行するために、互いとデータを送信及び/又は受信することもできる。例えば、ロボティックデバイス102は、環境において技能を学習し、その学習した技能を表すモデルをロボティックデバイス110に送信することができ、ロボティックデバイス110は、そのモデルを受信すると、それを使用して技法を同じ又は異なる環境で実行することができる。ロボティックデバイス102は、ロボティックデバイス110と同じ又は異なる場所にあることができる。例えば、ロボティックデバイス102及び110は、一緒に技能を学習及び/又は実行することができる(例えば、重い又は大きな物体を移動させている)ように、建物(例えば病院の建物)の同じ部屋にあってよい。代替として、ロボティックデバイス102は、建物(例えば病院の建物)の1階にあってよく、ロボティックデバイス110は建物の2階にあってよく、これら2つは互いと通信して、異なる階についての情報を違いに中継することができる(例えば、それらの階で物体がある場所、リソースがあり得る場所等)。
【0037】
[0075] 幾つかの実施形態では、システム100は、1つ又は複数のロボティックデバイス、例えばロボティックデバイス102及び/又は110及びサーバ120を含む。サーバ120は、ロボティックデバイス102及び/又は110を管理する専用サーバであることができる。サーバ120は、ロボティックデバイス102及び/又は110と同じ又は異なる場所にあることができる。例えば、サーバ120は、1つ又は複数のロボティックデバイスと同じ建物(例えば病院の建物)にあり、ローカル管理者(例えば病院管理者)により管理することができる。代替的には、サーバ120は離れた場所(例えば、ロボティックデバイスの製造業者又は提供業者と関連付けられた場所)にあってもよい。
【0038】
[0076] 幾つかの実施形態では、システム100は、1つ又は複数のロボティックデバイス、例えばロボティックデバイス102及び/又は110及び追加の計算デバイス150を含む。計算デバイス150は、特定の機能を走らせ及び/又は実行するように構成された任意の適した処理デバイスであることができる。病院設定では、例えば、計算デバイス150は、ネットワーク105に接続し、ロボティックデバイス102及び/又は110を含む他のコンピュータデバイスと通信することが可能な診断及び/又は治療デバイスであることができる。
【0039】
[0077] 幾つかの実施形態では、1つ又は複数のロボティックデバイス、例えばロボティックデバイス102及び/又は110は、サーバ120及び/又は計算デバイス150とネットワーク105を介して通信するように構成することができる。サーバ120は、ロボティックデバイスから離れて配置された構成要素及び/又はロボティックデバイス付近の構内にある構成要素を含むことができる。計算デバイス150は、ロボティックデバイスから離れて配置された構成要素、ロボティックデバイス付近の構内にある構成要素、及び/又はロボティックデバイスに一体化された構成要素を含むことができる。サーバ120及び/又は計算デバイス150は、ユーザ(例えば、付近のユーザ又はロボット監督者)がロボティックデバイスの動作を制御できるようにするユーザインタフェースを含むことができる。例えば、ユーザは、ロボティックデバイスにより実行される1つ又は複数の動作の実行を中断及び/又は変更することができる。これらの動作は、例えば、ロボティックデバイスのナビゲーション挙動、操作挙動、頭部挙動、音/光、及び/又は他の構成要素を含む。幾つかの実施形態では、ロボット監督者は、ロボティックデバイスを遠隔からモニタし、安全性を理由にそれらの動作を制御することができる。例えば、ロボット監督者は、人間を危険にさらす又は環境内のロボティックデバイス又は別の物体にダメージを生じさせることを回避するように、動作の実行を停止又は変更するようロボティックデバイスに命令することができる。幾つかの実施形態では、付近のユーザがロボティックデバイスに対して動作を誘導又は実演することができる。幾つかの実施形態では、ロボティックデバイスは、動作の実行中、特定の時点でユーザ介入を求めるように構成することができる。例えば、ロボティックデバイスは、ロボティックデバイスがそれ自体及び/又はそれ自体の周囲の環境についての特定の情報を確認することができないとき、ロボティックデバイスが、動作を完了又は特定の場所へのナビゲートするための軌道を決定することができないとき、ロボティックデバイスが、ユーザ入力を求めるように事前に(例えば、更に後述するように、インタラクティブ学習を使用した学習中)プログラムされてきた場合等、ユーザ介入を求めることができる。幾つかの実施形態では、ロボティックデバイスは、学習及び/又は実行中、特定の時点でユーザからのフィードバックを要求することができる。例えば、ロボティックデバイスは、どの情報を収集すべきか(例えば、操作要素又は輸送要素と関連付けられた情報、周囲環境と関連付けられた情報)及び/又は情報をいつ収集すべきか(例えば、実演中のキーフレームのタイミング)を指定するようにユーザに促すことができる。代替又は追加として、ロボティックデバイスは、ユーザが、特定の状況でのロボティックデバイスの過去又は現在の挙動を動作の肯定的な例又は否定的な例としてタグ付けするように要求することができる。ロボティックデバイスは、この情報を使用して、特定の状況での動作の将来の実行を改良するように構成することができる。
【0040】
システム及びデバイス
[0078]
図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)に関する状態情報を含むセンサデータ、学習されたモデル、マーカ位置情報等を記憶することができる。
【0041】
[0079] 制御ユニット202のプロセッサ204は、環境の閲覧、技能の学習、及び/又は技能の実行と関連付けられた機能を走らせ及び/又は実行するように構成された任意の適した処理デバイスであることができる。例えば、プロセッサ204は、本明細書において更に説明するように、センサ情報に基づいて技能のモデルを生成又はモデルを使用して、技能を実行するための軌道生成することにより技能を実行するように構成することができる。より具体的には、プロセッサ204は、モジュール、機能、及び/又はプロセスを実行するように構成することができる。幾つかの実施形態では、プロセッサ204は、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及び/又はデジタル信号プロセッサ(DSP)等であることができる。
【0042】
[0080] グラフィックスプロセッサ205は、1つ又は複数の表示機能、例えばディスプレイデバイス242と関連付けられた機能を走らせ及び/又は実行するように構成された任意の適した処理デバイスであることができる。幾つかの実施形態では、グラフィックスプロセッサ205は、低電力グラフィックス処理ユニット、例えば、専用グラフィックスカード又は集積グラフィックス処理ユニット等であることができる。
【0043】
[0081] システムバス206は、プロセッサ204、メモリ220、ストレージ230、及び/又は制御ユニット202の他の構成要素が互いと通信できるようにする任意の適した構成要素であることができる。システムバス206に接続されたI/Oインタフェース208は、制御ユニット202の内部構成要素(例えば、プロセッサ204、メモリ220、ストレージ230)と外部入力/出力デバイス、例えばユーザインタフェース240、操作要素250、輸送要素260、及びセンサ270との間の通信を可能にする任意の適した構成要素であることができる。
【0044】
[0082] ユーザインタフェース240は、入力を受信し、出力を他のデバイス及び/又はデバイスを操作しているユーザ、例えばロボティックデバイス200を操作しているユーザに送信するように構成された1つ又は複数の構成要素を含むことができる。例えば、ユーザインタフェース240は、ディスプレイデバイス242(例えば、ディスプレイ、タッチスクリーン等)、オーディオデバイス244(例えば、マイクロホン、スピーカ)、及び任意選択的に、入力を受信及び/又は出力をユーザに生成するように構成された1つ又は複数の追加の入力/出力デバイス(「I/Oデバイス」)246を含むことができる。
【0045】
[0083] 操作要素250は、例えば人間を含め、静止物体及び/又は移動している物体を操作及び/又は相互作用することが可能な任意の適した構成要素であることができる。幾つかの実施形態では、操作要素250は、1つ又は複数の軸に沿った並進及び/又は1つ又は複数の軸の回りの回転を提供することができるジョイントを介して互いに結合された複数のセグメントを含むことができる。操作要素250は任意選択的に、環境中の物体と係合及び/又は他の方法で相互作用することができるエンドエフェクタを含むことができる。例えば、操作要素は、環境中の物体と解放可能に係合(例えば把持)して、物体をピックアップ及び/又は輸送することができる把持機構を含むことができる。エンドエフェクタの他の例には、例えば、真空係合機構、磁気係合機構、吸引機構、及び/又はそれらの組合せがある。幾つかの実施形態では、1つ又は複数の操作要素250は、使用されていないとき、ロボティックデバイス200の筐体内に退避可能であることができ、それにより、ロボティックデバイスの1つ又は複数の寸法を低減する。幾つかの実施形態では、操作要素250は、環境及び/又は人間を含む環境内の1つ又は複数の物体と相互作用するように構成された頭部又は他の人間の形をした構成要素を含むことができる。幾つかの実施形態では、操作要素250は輸送要素又は基部(例えば輸送要素260)を含むことができる。操作要素の一例の詳細図を
図4に示す。
【0046】
[0084] 輸送要素260は、移動するために構成された任意の適した構成要素、例えば車輪又はトラック等であることができる。1つ又は複数の輸送要素260は、ロボティックデバイス200の基部部分に提供されて、ロボティックデバイス200が環境周囲を移動できるようにすることができる。例えば、ロボティックデバイス200は、建物、例えば病院等の周囲をナビゲートできるようにする複数の車輪を含むことができる。輸送要素260は、狭く及び/又は制約された空間(例えば、小さな廊下及び通廊、サプライ室等の小部屋等)を通る移動を促進するような設計及び/又は寸法を有することができる。幾つかの実施形態では、輸送要素260は、軸の回りを回転可能及び/又は互いに対して移動可能(例えばトラックに沿って)であることができる。幾つかの実施形態では、1つ又は複数の輸送要素260は、使用されていないとき、ロボティックデバイス200の基部内に退避可能であることができ、それにより、ロボティックデバイスの1つ又は複数の寸法を低減する。幾つかの実施形態では、輸送要素260は操作要素(例えば操作要素250)であってもよく、又はその一部を形成してもよい。
【0047】
[0085] センサ270は、環境及び/又はロボティックデバイス200周囲の環境にある物体についての情報をロボティックデバイス200が捕捉できるようにする任意の適した構成要素であることができる。センサ270は、例えば、画像捕捉デバイス(例えば、赤緑青-奥行き(RGB-D)カメラ又はウェブカム等のカメラ)、オーディオデバイス(例えばマイクロホン)、光センサ(例えば、光検出及び測距又はライダーセンサ、色検出センサ)、固有受容性センサ、位置センサ、触覚センサ、力又はトルクセンサ、温度センサ、圧力センサ、モーションセンサ、サウンド検出器等を含むことができる。例えば、センサ270は、ロボティックデバイス200周囲の物体及び環境についての視覚情報を捕捉するためのカメラ等の少なくとも1つの画像捕捉デバイスを含むことができる。幾つかの実施形態では、センサ270は、触覚センサ、例えば、力、振動、タッチ、及び他の非視覚情報をロボティックデバイス200に伝達することができるセンサを含むことができる。
【0048】
[0086] 幾つかの実施形態では、ロボティックデバイス200は、人間の形をした特徴、例えば頭部、身体、腕、脚、及び/又は基部を有することができる。例えば、ロボティックデバイス200は、眼、鼻、口を有する顔及び他の人間の形をした特徴を含むことができる。これらの人間の形をした特徴は、1つ又は複数の操作要素を形成及び/又は1つ又は複数の操作要素の一部であってもよい。概略的に示されていないが、ロボティックデバイス200は、アクチュエータ、モータ、カプラ、コネクタ、電源(例えばオンボードバッテリ)、及び/又はロボティックデバイス200の様々な部分をリンク、作動、及び/又は駆動する他の構成要素を含むこともできる。
【0049】
[0087]
図3は、幾つかの実施形態による制御ユニット302を概略的に示すブロック図である。制御ユニット302は、制御ユニット202と同様の構成要素を含むことができ、構造的及び/又は機能的に制御ユニット202と同様であることができる。例えば、制御ユニット302は、プロセッサ304、グラフィックスプロセッサ305、メモリ320、I/Oインタフェース308、システムバス306、及びストレージ330を含み、これらはそれぞれ、プロセッサ204、メモリ220、I/Oインタフェース208、システムバス206、及びストレージ230と構造的及び/又は機能的に同様であることができる。制御ユニット302は、ロボティックデバイス及び/又は1つ又は複数のロボティックデバイスに接続されたリモートサーバに配置することができる。
【0050】
[0088] メモリ320は、プロセッサ304に、能動的検知322、学習324、実行328、並びに任意選択的なデータ追跡及び解析329として示されるモジュール、プロセス、及び/又は機能を実行させる命令を記憶する。能動的検知322、学習324、実行328、並びにデータ追跡及び解析329は、ハードウェア構成要素(例えば、センサ、操作要素、I/Oデバイス、プロセッサ等)に結びつけられた1つ又は複数のプログラム及び/又はアプリケーションとして実施することができる。能動的検知322、学習324、実行328、並びにデータ追跡及び解析329は、1つのロボティックデバイス又は複数のロボティックデバイスにより実施することができる。例えば、ロボティックデバイスは、能動的検知322、学習324、実行328、並びにデータ追跡及び解析329を実施するように構成することができる。別の例として、ロボティックデバイスは、能動的検知322、学習324、及び任意選択的に実行328を実施するように構成することができる。別の例として、ロボティックデバイスは、能動的検知322、学習324、実行328、並びに任意選択的にデータ追跡及び解析329を実施するように構成することができる。示されていないが、メモリ320は、オペレーティングシステム及び一般的なロボティック動作(例えば、電力管理、メモリ割り振り等)と関連付けられたプログラム及び/又はアプリケーションを記憶することもできる。
【0051】
[0089] 幾つかの実施形態では、能動的検知322は、本明細書で説明するように、環境の能動的な検知又はスキャンを含むことができる。幾つかの実施形態では、能動的検知322は、環境の能動的スキャン及び/又は環境、環境内の物体(例えば、環境内の人間を含む)、及び/又はロボティックデバイス又はシステムと関連付けられた1つ又は複数の状況と関連付けられた情報の検知又は知覚を含むことができる。
【0052】
[0090] 学習324は、実施されると、ロボティックデバイスに動作又は技能を学習させるモジュール、プロセス、及び/又は機能を含むことができる。幾つかの実施形態では、学習324に基づいて技能モデル334を生成及び/又は更新することができる。実行328は、技能モデル334を実施させ、それにより、ロボティックデバイスに動作又は技能を実行させることができる。例えば、模倣学習326は、人間が動作又は技能を実演できるようにするよう構成することができる。インタラクティブ学習325は、動作の学習及び/又は技能の更新を可能にする入力をユーザから受信するように構成することができる。キャッシュ生成327は、技能の実行を可能にする1つ又は複数の姿勢を教示するようにユーザに促すよう構成することができる。
【0053】
[0091] 幾つかの実施形態では、実行328は、インタラクティブ学習325、模倣学習326、及び/又はキャッシュ生成327から学習された動作及び/又は技能をロボティックデバイスに実行させるように構成することができる。幾つかの実施形態では、実行328は、1つ又は複数の技能モデル334を実施して、動作及び/又は技能を実行することを含むことができる。実行328は、ロボティックデバイスの操作要素(例えば操作要素250)のジョイント構成を決定するためのモジュール、プロセス、及び/又は機能を含むことができる。幾つかの実施形態では、実行328は、学習324に基づいてロボティックデバイスの1つ又は複数の軌道を実施するためのモジュール、プロセス、及び/又は機能を含むことができる。
【0054】
[0092] 幾つかの実施形態では、制御ユニット302は任意選択的に、データ追跡及び解析要素329を含むこともできる。データ追跡及び解析要素329は、更に後述するように、例えば、1つ又は複数のロボティックデバイスにより収集された情報、例えば状態情報332内に含まれる情報のデータ追跡及び/又は解析を実行するように構成された計算要素(例えばプロセッサ)であることができる。例えば、データ追跡及び解析要素329は、在庫の管理、例えば、有効期限の追跡、在庫品の使用のモニタリング及び記録、新しい在品の発注、新しい在庫品の解析及び推奨等を行うように構成することができる。病院設定では、データ追跡及び解析要素329は、医療品及び/又は医療機器の使用及び/又はメンテナンスを管理することができる。幾つかの実施形態では、データ追跡及び解析要素329は、集計データ表示(例えばリポート、チャート等)を生成することができ、成文法、規制、及び/又は規格に準拠するために使用することができる。幾つかの実施形態では、データ追跡及び解析要素329は、病院内の患者等の人間と関連付けられた情報を解析するように構成することができる。例えば、ロボティックデバイスは、病院内の患者についての情報を収集し、その情報をデータ追跡及び解析要素329に渡して、例えば、診断試験及び/又はスクリーニングを含む種々の機能で使用するために解析及び/又は要約するように構成することができる。幾つかの実施形態では、データ追跡及び解析要素329は、第三者システムからの情報(例えば、病院電子医療記録、セキュリティシステムデータ、保健データ、ベンダーデータ等)にアクセス及び/又は取得し、1つ又は複数のロボティックデバイスにより収集されたデータと共に又はそのようなデータなしでそのデータを使用及び/又は解析して、データ追跡及び/又は解析機能を実行するように構成することができる。
【0055】
[0093] ストレージ330は、環境及び/又は環境内の物体に関連する情報及び技能(例えば、タスク及び/又は社会的挙動)の学習及び/又は実行に関する情報を記憶する。ストレージ330は、例えば、状態情報332、技能モデル334、物体情報340、機械学習ライブラリ342、及び/又は環境制約354を記憶する。任意選択的に、ストレージ330は、追跡された情報356及び/又はアービトレーションアルゴリズム362を記憶することもできる。
【0056】
[0094] 状態情報332は、ロボティックデバイス(例えばロボティックデバイス200)及び/又はロボティックデバイスが動作している環境(例えば、建物、例えば病院等)の状態に関する情報を含むことができる。幾つかの実施形態では、状態情報332は、環境、例えば、部屋、フロア、囲まれた空間等内のロボティックデバイスの位置を示すことができる。例えば、状態情報332は、環境のマップを含むことができ、そのマップ内のロボティックデバイスの位置を示すことができる。状態情報332は、環境内、例えばマップ内の1つ又は複数の物体(又は物体を表すマーカ及び/又は物体と関連付けられたマーカ)の位置を含むこともできる。したがって、状態情報332は、1つ又は複数の物体に対するロボティックデバイスの位置を識別することができる。物体は、空間又は開口部を画定する物体(例えば、戸口を画定する表面又は壁)を含め、環境内にある任意のタイプの物理的な物体を含むことができる。物体は静止物体であってもよく又は可動物体であってもよい。例えば病院等の環境内の物体の例には、機器、サプライ、器具、工具、家具、及び/又は人間(例えば、看護師、医師、患者等)がある。
【0057】
[0095] 幾つかの実施形態では、状態情報332は、
図6に示される等の環境内の物体(例えば、サプライ、機器等)に関する静的及び/又は動的情報及び環境内の人間及び/又は社会的設定と関連付けられた社会的状況情報と共に、環境の表現又はマップを含むことができる。環境のマップ(例えば、
図6におけるマップ600)は、例えば、ナビゲーションレイヤ610、静的セマンティックレイヤ620、ソーシャルレイヤ630、及び動的レイヤ640を含むことができる。ナビゲーションレイヤ610は、建物の全体的なレイアウト又はマップを提供し、レイアウト又はマップは、壁614、階段616、及び建物に建て付けられた他の要素(例えば、廊下、開口部、境界)と共に幾つかのフロア612を識別し得る。静的セマンティックレイヤ620は、部屋622、物体624、ドア626等の建物内の物体及び/又は空間を識別する。静的セマンティックレイヤ620は、ロボティックデバイスがどの部屋622又は他の空間に出入り可能であり、どの部屋622又は他の空間に出入り不可能であるかを識別することができる。幾つかの実施形態では、静的セマンティックレイヤ620は、建物内にある物体の三次元マップを提供することができる。ソーシャルレイヤ630は社会的状況情報632を提供する。社会的状況情報632は、ロボティックデバイスと人解との間の過去の相互作用等の建物内の人間と関連付けられた情報を含む。社会的状況情報632は、ロボティックデバイスと人間との間の相互作用を追跡するのに使用することができ、相互作用は、ロボティックデバイスと人間との間の1つ又は複数の相互作用が関わる技能のモデルの生成及び/又は既存のそのようなモデルの適応に使用することができる。例えば、社会的状況情報632は、人間が典型的には特定の位置にいることを示すことができ、それにより、その情報の知識を有するロボティックデバイスは、ロボティックデバイスが人間の位置付近に移動することが必要な技能の実行を適応させることができる。動的レイヤ640は、経時移動及び/又は経時変化し得る建物内の物体及び他の要素についての情報を提供する。例えば、動的レイヤ640は物体642と関連付けられた移動644及び/又は変化646を追跡することができる。一実施形態では、動的レイヤ640は、物体642の有効期限をモニタし、その物体642の有効期限がいつ切れるかを識別することができる。
【0058】
[0096] マップ及び/又は表現600は、ロボティックデバイスの例えば制御ユニット602(例えば、制御ユニット302と構造的及び/又は機能的に同様)によりアクセス及び/又は管理することができる。制御ユニット602は、本明細書に記載の他の制御ユニット(例えば、制御ユニット202及び/又は302)と同様の構成要素を含むことができる。制御ユニット602は、マップ及び/又は表現600及び1つ又は複数のロボティックデバイスと関連付けられた情報(例えば、ロボティックデバイスの要素の構成、建物内のロボティックデバイスの位置等)を含め、状態情報604を記憶したストレージ(本明細書に記載の他のストレージ要素、例えばストレージ330等と同様)を含むことができる。制御ユニット602は、ロボティックデバイスに配置されてもよく及び/又は1つ又は複数のロボティックデバイスに接続されたリモートサーバに配置されてもよい。ロボティックデバイスは、ロボティックデバイスが周囲環境についての情報を収集するにつれて、環境の表現600と関連付けられた情報を含め、状態情報604を更新、維持するように構成することができる。
【0059】
[0097] 例えば、インタラクティブ学習325、模倣学習326、及び/又はキャッシュ生成327からロボティックデバイスにより学習された情報は、マップ600の異なるレイヤに供給され、ロボティックデバイス(及び/又は他のロボティックデバイス)による将来の参照のために編成することができる。例えば、ロボティックデバイスは、本明細書で更に説明するように、環境内の異なる物体(例えばドア)について学習された情報に頼り、異なる挙動(例えば、戸口を通過する前、狭い戸口へのドアが開くのを待つ、狭い戸口を通過する前、ドアを開くためのアシスタンスを求める)間を調停する仕方を決定し得る。
【0060】
[0098] 再び
図3を参照すると、物体情報340は、環境中の物理的な物体に関連する情報を含むことができる。例えば、物体情報340は、物体の異なる特徴を識別又は定量化するための情報、例えば位置、色、形状、及び表面特徴等を含むことができる。物体情報340は、物理的な物体と関連付けられたコード、シンボル、及び他のマーカ、例えばクイックレスポンス又は「QR」コード、バーコード、タグ等を識別することもできる。幾つかの実施形態では、物体情報340は、環境内の物体を特徴付ける情報、例えば、戸口又は廊下が狭い、ドアの取っ手があるタイプのドア取っ手であること等を含むことができる。物体情報340は、制御ユニット302が環境中の物理的な物体を識別できるようにすることができる。
【0061】
[0099] 技能モデル334は、異なる動作を実行するために生成され、ロボティックデバイスにより(例えば、学習324を実施することにより)学習された技能を表すモデルである。幾つかの実施形態では、技能モデル334は、タスク及び/又は挙動を含め、種々の動作又は技能を学習及び/又は実行するために使用することができるモデルである。例えば、モデル334は、技能の実行に関わる物体(例えば、ロボティックデバイスにより操作される物体、技能の実行中、ロボティックデバイスと相互作用する物体、技能を実行する間、ロボティックデバイスが考慮に入れる物体)と関連付けられた情報を含むことができる。幾つかの実施形態では、各モデル334には、環境中の異なる物理的な物体と結びつけられた1組のマーカが関連付けられる。マーカ情報は、どのマーカが特定のモデル334と関連付けられているかを示すことができる。各モデル334には、運動感覚教示及び/又は技能の他の実演中、例えばロボティックデバイスの1つ又は複数のセンサを介して収集される感覚情報を関連付けることもできる。感覚情報は任意選択的に、ロボティックデバイスの操作要素が、実演中に動作を実行するにつれて、操作要素と関連付けられた操作要素情報を含むことができる。操作要素情報は、例えば、ジョイントの位置及び構成、エンドエフェクタの位置及び構成、基部又は輸送要素の位置及び構成、及び/又はジョイント、エンドエフェクタ、輸送要素に対して作用する力及びトルク等を含むことができる。操作要素情報は、技能の実現及び/又は実行中の特定の時点(例えばキーフレーム)において又は代替的には、技能の実演及び/又は実行全体を通して記録することができる。感覚情報は、技能が実演及び/又は実行される環境と関連付けられた情報、例えば環境におけるマーカの位置を含むこともできる。幾つかの実施形態では、各モデル334には成功基準を関連付けることができる。成功基準は、技能実行のモニタリングに使用することができる。幾つかの実施形態では、成功基準は、1つ又は複数のセンサ、例えば、カメラ、力/トルクセンサ等を使用して知覚された視覚情報及び触覚情報と関連付けられた情報を含むことができる。成功基準は、例えば、物体の移動の視覚的検出、ロボティックデバイスの構成要素に対して作用している力(例えば、物体からの重み)の検知、ロボティックデバイスの構成要素と物体との係合(例えば、表面に対して作用している圧力又は力の変化)の検知等と結びつけることができる。操作技能のロボティック学習に触覚データを使用する例は、Chuら著の題名“Learning Haptic Affordances from Demonstration and Human-Guided Exploration”、2016 IEEE Haptics Symposium (HAPTICS), Philadelphia, PA, 2016, pp. 119-125公開の記事に記載されており、この記事はhttp://ieeexplore.ieee.org/document/7463165/においてアクセス可能であり、参照により本明細書に援用される。操作技能のロボティック技能に視覚データを使用する例は、Akgunら著の題名“Simultaneously Learning Actions and Goals from Demonstration”、Autonomous Robots, Volume 40, Issue 2, February 2016, pp. 211-227公開の記事に記載されており、この記事はhttps://doi.org/10.1007/s10514-015-9448-x(「Akgun記事」)においてアクセス可能であり、参照により本明細書に援用される。
【0062】
[0100] 任意選択的に、感覚情報は輸送要素情報を含むことができる。輸送要素情報は、ロボティックデバイスが技能の実演を経るにつれて(例えば、戸口を通るナビゲーション、物体の輸送等)、ロボティックデバイスの輸送要素(例えば輸送要素260)の移動と関連付けることができる。輸送要素情報は、技能の実演及び/又は実行中、技能と関連付けられたキーフレーム等の特定の時点で又は代替的には技能実演及び/又は実行を通して記録することができる。
【0063】
[0101] 機械学習ライブラリ342は、異なる技能の機械学習及び/又はモデル生成するための異なるアルゴリズムに関連するモジュール、プロセス、及び/又は機能を含むことができる。幾つかの実施形態では、機械学習ライブラリは、隠れマルコフモデル又は「HMM」等の方法を含むことができる。Pythonでの既存の機械学習ライブラリの一例はscikit-learnである。ストレージ330は、例えば、ロボティクスシミュレーション、運動計画及び制御、運動感覚教示及び知覚等に関連する追加のソフトウェアライブラリを含むこともできる。
【0064】
[0102] 環境制約354は、環境内のロボティクスデバイスの動作を制限し得る環境内の物体及び/又は制約と関連付けられた情報を含む。例えば、環境制約354は、環境内の物体(例えば、サプライ箱、部屋、戸口等)のサイズ、構成、及び/又は位置と関連付けられた情報及び/又は特定のエリア(例えば、部屋、廊下等)が出入り制限を有することを示す情報を含むことができる。環境制約354は、環境内での1つ又は複数の動作の学習及び/又は実行に影響を及ぼし得る。したがって、環境制約354は、環境制約を含む状況内で実行される技能の各モデルの一部になり得る。
【0065】
[0103] 幾つかの実施形態では、環境制約の初期セット354(例えば、状態情報331、物体情報340等)及び/又は技能(例えばモデル334)は、例えば遠隔管理者又は監督者を介してロボティックデバイスに提供することができる。ロボティックデバイスは、環境内の環境又は人間とのそれ自体の相互作用、実演等に基づいて及び/又は追加のユーザ入力を介して、環境制約354及び/又は技能334の知識に適応及び/又は追加することができる。代替又は追加として、ロボット監督者は、ロボティックデバイス又は他のロボティックデバイス(例えば、同様又は同じ環境、例えば病院内の他のロボティックデバイス)により収集された新しい情報及び/又は外部当事者(例えば、供給業者、管理者、製造業者等)によりロボティック監督者に提供された新しい情報に基づいて、環境制約354及び/又は技能334のロボティックデバイスの知識を更新することができる。そのような更新は、環境又は技能についての新しい情報がロボティックデバイス及び/又はロボット監督者に提供されるにつれて、定期的に及び/又は連続して提供することができる。
【0066】
[0104] 追跡情報356は、環境の表現(例えばマップ及び/又は表現600)と関連付けられた情報及び/又は例えば、データ追跡及び解析要素329又はデータ追跡及び解析329を実行しているプロセッサ302等のデータ追跡及び解析要素により追跡及び/又は解析された、第三者システムから取得される情報(例えば、病院電子医療記録、セキュリティシステムデータ、保健データ、ベンダーデータ等)を含む。追跡情報356の例には、在庫データ、サプライチェーンデータ、ユースポイントデータ、及び/又は患者データ並びにそのようなデータから編纂された任意の集計データがある。
【0067】
[0105] アービトレーションアルゴリズム362は、異なる複数の動作間を調停又は異なる複数の動作から実行する動作(例えば、ロボティックデバイスの異なるリソース又は構成要素の使用の仕方)を選択するためのアルゴリズムを含む。アービトレーションアルゴリズム362は、ルールであることができ、幾つかの実施形態では、
図19を参照して更に説明するように、学習することができる。これらのアルゴリズムは、ロボティックデバイスが管理すべき複数のリソース及び/又は目的を有する場合、異なる複数の動作の中から動作を選択するために、ロボティックデバイスにより使用することができる。例えば、非構造化及び/又は動的環境、例えば人間を含む環境において動作しているロボティックデバイスは、ロボティックデバイスからの異なる挙動又は動作を要求し得る幾つかの条件に随時曝され得る。そのような場合、ロボティックデバイスは、予め規定されたルール(例えば、感情状態、環境制約、社会的に規定される制約等)に基づいて種々の動作に異なる優先度を割り当て得る1つ又は複数のアービトレーションアルゴリズム362に基づいて、複数の異なる動作の中から動作を選択するように構成することができる。一実施形態では、アービトレーションアルゴリズム362は、周囲環境、現在状態、及び/又は他の要因についてロボティックデバイスにより収集された情報に基づいて、異なるスコア又は値を動作に割り当てることができる。
【0068】
[0106] I/Oインタフェース208と同様に、I/Oインタフェース308は、制御ユニット302の内部構成要素とユーザインタフェース、操作要素、輸送要素、及び/又は計算デバイス等の外部デバイスとの間の通信を可能にする任意の適した構成要素であることができる。I/Oインタフェース308は、制御ユニット302をネットワーク(例えば、
図1に示されるようにネットワーク105)に接続することができるネットワークインタフェース360を含むことができる。ネットワークインタフェース360は、制御ユニット302(ロボティックデバイス又は1つ若しくは複数のロボティックデバイスと通信する別のネットワークデバイスに配置することができる)と、1つ又は複数のロボティックデバイスをモニタ及び/又は制御するためにロボット監督者が使用することができる計算デバイス等のリモートデバイスとの間の通信を可能にする。ネットワークインタフェース360は、無線接続及び/又は有線接続をネットワークに提供するように構成することができる。
【0069】
[0107]
図4は、幾つかの実施形態による操作要素450を概略的に示す。操作要素450は、ロボティックデバイス、例えばロボティックデバイス102及び/又は200等の一部をなすことができる。操作要素450は、ジョイント454を介して一緒に結合された2つ以上のセグメント452を含むアームとして実施することができる。ジョイント454は、1以上の自由度を可能にすることができる。例えば、ジョイント454は、1つ又は複数の軸に沿った並進及び/又は1つ又は複数の軸の回りの回転を提供することができる。一実施形態では、操作要素450は、ジョイント454により提供される自由度7を有することができる。4つのセグメント452及び4つのジョイント454が
図4に示されているが、操作要素が異なる数のセグメント及び/又はジョイントを含んでもよいことを当業者は理解しよう。
【0070】
[0108] 操作要素450は、環境中の物体と相互作用するのに使用することができるエンドエフェクタ456を含む。例えば、エンドエフェクタ456は、異なる物体と係合及び/又は操作するのに使用することができる。代替又は追加として、エンドエフェクタ456は、例えば人間を含む移動可能又は動的物体と相互作用するのに使用することができる。幾つかの実施形態では、エンドエフェクタ456は、解放可能に1つ又は複数の物体と係合又は把持することができるグリッパであることができる。例えば、グリッパとして実施されるエンドエフェクタ456は、物体をピックアップし、第1の場所(例えばサプライ室)から第2の場所(例えば、オフィス、部屋等)に移動させることができる。
【0071】
[0109] 複数のセンサ453、455、457、及び458は、操作要素450の異なる構成要素、例えば、セグメント452、ジョイント454、及び/又はエンドエフェクタ456に配設することができる。センサ453、455、457、及び458は、環境情報及び/又は操作要素情報を含む感覚情報を測定するように構成することができる。センサの例には、位置エンコーダ、トルク及び/又は力センサ、タッチ及び/又は触覚センサ、カメラ等の画像捕捉デバイス、温度センサ、圧力センサ、光センサ等がある。幾つかの実施形態では、セグメント452に配設されるセンサ453は、環境についての視覚情報を捕捉するように構成されたカメラであることができる。幾つかの実施形態では、セグメント452に配設されるセンサ453は、セグメント452の加速度の測定及び/又は移動速度及び/又は位置の計算を可能にするように構成された加速度計であることができる。幾つかの実施形態では、ジョイント454に配設されるセンサ455は、ジョイント454の位置及び/又は構成を測定するように構成された位置エンコーダであることができる。幾つかの実施形態では、ジョイント454に配設されるセンサ455は、ジョイント454に付与された力又はトルクを測定するように構成された力又はトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ456に配設されるセンサ458は、位置エンコーダ及び/又は力又はトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ456に配設されるセンサ457は、エンドエフェクタ456と環境中の物体との係合を測定するように構成されたタッチ又は触覚センサであることができる。代替又は追加として、センサ453、455、457、及び458の1つ又は複数は、環境中の1つ又は複数の物体及び/又はマーカについての情報を記録するように構成することができる。例えば、エンドエフェクタ456に配設されるセンサ458は、環境中の物体の位置及び/又はエンドエフェクタ456に対する物体の位置を追跡するように構成することができる。幾つかの実施形態では、センサ453、455、457、及び458の1つ又は複数は、人間等の物体が環境中で移動したか否かを追跡するために使用することもできる。センサ453、455、457、及び458は、記録した感覚情報をロボティックデバイスに配置された計算デバイス(例えば、例えば制御ユニット202及び/又は302等のオンボード制御ユニット)に送信してもよく、又はセンサ453、455、457、及び458は感覚情報をリモート計算デバイス(例えば、例えばサーバ120等のサーバ)に送信してもよい。
【0072】
[0110] 操作要素450は任意選択的に、操作要素450を本明細書に記載の任意のロボティックデバイス等のロボティックデバイスに解放可能に結合できるようにする結合要素459を含むことができる。幾つかの実施形態では、操作要素450は、ロボティックデバイスの固定位置に結合することができ、及び/又はロボティックデバイスの複数の位置(例えば、
図5に示されるように、ロボティックデバイスの身体の右側又は左側)に結合可能であることができる。結合要素459は、操作要素450をロボティックデバイスに結合することができる任意のタイプの機構、例えば機械的機構(例えば、締付け具、ラッチ、マウント)、磁気的機構、摩擦嵌め等を含むことができる。
【0073】
[0111]
図5は、幾つかの実施形態によるロボティックデバイス500を概略的に示す。ロボティックデバイス500は、頭部580、身体588、及び基部586を含む。頭部580は、セグメント582及び1つ又は複数のジョイント(図示せず)を介して身体588に接続することができる。セグメント582は移動可能及び/又は柔軟性を有することができ、それにより、頭部580を身体588に対して移動できるようにする。頭部580、セグメント582等は、操作要素の例であることができ、本明細書に記載の他の操作要素と同様の機能及び/又は構造を含むことができる。
【0074】
[0112] 頭部580は、1つ又は複数の画像捕捉デバイス572及び/又は他のセンサ570を含む。画像捕捉デバイス572及び/又は他のセンサ570(例えば、ライダーセンサ、モーションセンサ等)は、ロボティックデバイス500が環境をスキャンし、環境の表現(例えば、視覚表現又は他のセマンティック表現)を取得できるようにすることができる。幾つかの実施形態では、画像捕捉デバイス572はカメラであることができる。幾つかの実施形態では、画像捕捉デバイス572は、ロボティックデバイス500周囲の環境の異なるエリアに焦点を合わせるのに使用することができるように、移動可能であることができる。画像捕捉デバイス572及び/又は他のセンサ570は、感覚情報を収集し、ロボティックデバイス500に搭載された計算デバイス又はプロセッサ、例えば制御ユニット202又は302等に送信することができる。幾つかの実施形態では、ロボティックデバイス500の頭部580は、人間の形を有することができ、1つ又は複数の人間の特徴、例えば、眼、鼻、口、耳等を含むことができる。そのような実施形態では、画像捕捉デバイス572及び/又は他のセンサ570は、1つ又は複数の人間の特徴として実施することができる。例えば、画像捕捉デバイス572は頭部580における眼として実施することができる。
【0075】
[0113] 幾つかの実施形態では、ロボティックデバイス500は、画像捕捉デバイス572及び/又は他のセンサ570を使用して、環境中の物体、例えば、物理的構造、デバイス、物品、人間等についての情報を求めて環境をスキャンすることができる。ロボティックデバイス500は、能動的検知に従事してもよく、又はトリガー(例えば、ユーザからの入力、環境におけるイベント又は変化の検出)に応答して検知若しくはスキャンを開始してもよい。幾つかの実施形態では、ロボティックデバイス500は、記憶された知識及び/又はユーザ入力に基づいて検知を実行することができる適応的検知に従事することができる。例えば、ロボティックデバイス500は、物体についてロボティックデバイス500が有する事前情報に基づいて、その物体のためにスキャンする環境中のエリアを識別することができる。
【0076】
[0114] 幾つかの実施形態では、ロボティックデバイス500は、人間による入力により密に基づいて、シーンの異なるエリアを検知又はスキャンすることを知ることもできる。例えば、人間は、シーンの特定のエリアが、関心のある1つ又は複数の物体を含むことをロボティックデバイス500に示すことができ、ロボティックデバイス500は、それらのエリアをより密にスキャンして、それらの物体を識別することができる。そのような実施形態では、ロボティックデバイス500は、
図5に概略的に示されるように、キーボード又は他の入力デバイスを有するディスプレイ及び/又はタッチスクリーン等の入力/出力デバイス540を含むことができる。幾つかの実施形態では、ロボティックデバイス500は、環境をスキャンし、例えば人間等の物体が環境において移動中であることを識別することができる。幾つかの実施形態では、ロボティックデバイス500は、動作を準リアルタイムで調整することができるように、能動的検知に従事することができる。
【0077】
[0115]
図5に概略的に示されるように、基部586は任意選択的に、車輪560として実施される1つ又は複数の輸送要素を含むことができる。車輪560は、ロボティックデバイス500が環境中、例えば病院内を動き回れるようにすることができる。ロボティックデバイス500は、アーム550として実施される少なくとも1つの操作要素も含む。アーム550は、本明細書に記載の他の操作要素、例えば操作要素450と構造的及び/又は機能的に同様であることができる。アーム550は、ロボティックデバイス500の身体588に固定して取り付けられてもよく、又は任意選択的に操作要素550は、ロボティックデバイス500の結合部584に取り付けることができる結合要素(例えば結合要素459)を介して身体588に解放可能に結合することができる。結合部584は、結合要素459と係合し、オンボード計算デバイスがアーム550の構成要素に給電及び/又は制御し、操作要素550に配設されたセンサ(例えば、センサ453、455、457、及び458)により収集された情報を受信することができるように、アーム550とオンボード計算デバイス(例えば、制御ユニット202又は302)との間に電機接続を提供するように構成することができる。
【0078】
[0116] 任意選択的に、ロボティックデバイス500は、セグメント582、身体588、基部586、及び/又はロボティックデバイス500の他の部分に配置された1つ又は複数の追加のセンサ570を含むこともできる。センサ570は、例えば、画像捕捉デバイス、力又はトルクセンサ、モーションセンサ、光センサ、圧力センサ、及び/又は温度センサであることができる。センサ570は、ロボティックデバイス500が環境についての視覚情報及び非視覚情報を捕捉できるようにすることができる。
【0079】
方法
[0117]
図7~
図10は、幾つかの実施形態による、1つ又は複数のロボティックデバイスを含むロボティックシステム(例えばロボティックシステム100)により実行することができる方法700を示す流れ図である。例えば、方法700の全て又は一部は、本明細書に記載のロボティックデバイスのいずれか等の1つのロボティックデバイスにより実行することができる。代替的には、方法700の全ては、各々が方法700の一部を実行する複数のロボティックデバイスにより順次実行することができる。代替的には、方法700の全て又は一部は、複数のロボティックデバイスにより同時に実行することができる。
【0080】
[0118]
図7に示されるように、702において、ロボティックデバイスは環境をスキャンし、環境の表現を取得することができる。ロボティックデバイスは、1つ又は複数のセンサ(例えば、センサ270又は470及び/又は画像捕捉デバイス472)を使用して環境をスキャンすることができる。幾つかの実施形態では、ロボティックデバイスは、可動式カメラを使用して環境をスキャンすることができ、その場合、カメラの位置及び/又はフォーカスは、環境のシーン中のエリアを捕捉するように調整することができる。704において、検知中に収集された情報に基づいて、ロボティックデバイスは、データを解析して、環境の捕捉された表現中のマーカを識別することができる。マーカには、視覚的マーカ又は基準マーカ、例えば、QRコード、バーコード、タグ等の可視マーカを使用してマークされたシーン中の1つ又は複数の物体を関連付けることができる。代替又は追加として、ロボティックデバイスは、ロボティックデバイスのメモリ(例えばストレージ330)に記憶された物体情報(例えば物体情報340)を使用して、物体認識を介して環境中の1つ又は複数の物体と関連付けられたマーカを識別することができる。物体情報は、例えば、位置、色、形状、及び表面特徴等の物体の異なる特徴を示す情報を含むことができる。一実施形態では、物体情報は、特徴空間と呼ぶことができる、物体の異なる特徴を表す数値として編成することができる。
【0081】
[0119] マーカを識別した後、706において、ロボティックデバイスは任意選択的に、マーカを環境の表現に提示することができる。幾つかの実施形態では、環境の表現は、例えば、環境の拡張ビュー等の視覚表現であることができる。そのような実施形態では、ロボティックデバイスは、環境の視覚表現をディスプレイ画面に表示し、マーカの位置を環境の視覚表現に表示することができる。代替又は追加として、環境の表現は環境のセマンティック表現であることができ、マーカの位置は、環境においてセマンティックマーカにより表される。
【0082】
[0120] 幾つかの実施形態では、708において、ロボティックデバイスは、マーカを有する環境の表現をユーザに提示し、任意選択的に、例えばユーザインタフェース又は他のタイプのI/Oデバイスを介して、環境の表現中のマーカを許容又は拒絶するようにユーザに促すことができる。ユーザがマーカを許容しない場合(708:いいえ)、方法700は702に戻り、ロボティックデバイスは環境を再スキャンして、環境の第2の表現を取得することができる。ユーザがマーカを許容する場合(708:はい)、方法700は708に進み、マーカに関連付けられた情報(例えば、位置、特徴等)をメモリ(例えばストレージ330)に記憶することができる。例えば、ロボティックデバイスは、マーカの位置を環境の内部マップ(例えばマップ332)に記憶することができる。
【0083】
[0121] 幾つかの実施形態では、ロボティックデバイスは、704においてマーカを識別し、マーカを許容するようにユーザに促すことなく、710におけるマーカの位置及び/又はマーカと関連付けられた他の情報の記憶に直接進むことができる。そのような実施形態では、ロボティックデバイスは、マーカの位置を記憶する前、マーカの位置を解析することができる。例えば、ロボティックデバイスは、マーカの位置についての情報を前に記憶していることがあり(例えば、環境の前のスキャン中に取得され及び/又はユーザ又は計算デバイスによりロボティックデバイスに入力された)、マーカの位置を前に記憶された情報と比較して、正確性をチェック及び/又はマーカ位置の変化を識別することができる。特に、特定のマーカがロボティックデバイスにより識別された位置と異なる位置にあるべきであることが、前に記憶された情報により示される場合、ロボティックデバイスは、マーカの位置を記憶する前、環境の追加のスキャンを開始して、マーカの位置を検証し得る。代替又は追加として、ロボティックデバイスは、マーカの位置が変わったことを示す通知をユーザに送信することができる。そのような場合、ロボティックデバイスは、マーカの新しい位置を記憶することができるのみならず、マーカ位置が変わったことを示すメッセージを記憶することもできる。ユーザ又は計算デバイスは次いで、後の時点で、メッセージをレビューし、マーカ位置の変更を受け入れることができる。
【0084】
[0122] 任意選択的に、方法700は712に進み、ロボティックデバイスは、
図8に示されるように、例えばユーザインタフェース又は他のタイプのI/Oデバイスを介して、環境の表現で識別されたマーカから1組のマーカを選択するようにユーザに促すことができる。ユーザは選択を行うことができ、714において、ロボティックデバイスはユーザから選択を受信することができる。代替的には、幾つかの実施形態において、ロボティックデバイスは、選択を行うようにユーザに促す代わりに、1組のマーカを自動的に選択することができる。ロボティックデバイスは、特定の予め規定又は学習されたルール及び/又は条件に基づいてマークを選択するようにプログラムすることができる。例えば、ロボティックデバイスに、特定の日時中又は建物内の人の出入りが少ないとき、特定のタイプの物体(例えばサプライ品)と関連付けられたマーカを選択するように命令することができる。後者の場合、ロボティックデバイスは、建物を通して能動的に移動(例えば、廊下及び部屋をパトロール及びモニタ)し、環境を検知又はスキャンすることにより、建物内の人の往来が少ないときを特定することができる。ロボティックデバイスは次いで、建物内の人の往来が他の大半の時間よりも少ないときに、特定の物体と関連付けられたマーカを選択することを知っていることができる。
【0085】
[0123] 環境をスキャンし、マーカを識別した後、ロボティックデバイスは、716において学習を開始し、718において実行を開始することができる。
図9は、ロボティックデバイスが環境、その現在状態、及び/又は1つ又は複数の挙動又は技能についての情報を学習することができる種々の方法を示す。
図10は、ロボティックデバイスが1つ又は複数の挙動又は技能を実行する種々の方法を示す。
【0086】
[0124]
図9に示されるように、学習モード902で動作しているロボティックデバイス(例えば、例えばロボティックデバイス102、110、200、400等を含む本明細書に記載のロボティックデバイスのいずれか)は、1つ又は複数のプロセスを通して技能、環境制約等を学習することができる。幾つかの実施形態では、本明細書に記載の方法に従って動作しているロボティックデバイスは常に学習(例えば、学習モードで動作)していることができる。例えば、ロボティックデバイスは、環境を通してナビゲート及び/又は特定の挙動又は動作に従事するにつれて、情報を常時収集、記憶、解析、及び/又は更新し、学習した情報(例えば、技能、挙動、環境制約、マップ等)のライブラリを適応及び/又はライブラリに追加することができる。他の実施形態では、ロボティックデバイスは、学習モードでの動作と実行モードでの動作とを切り替えることができる。学習モード902で動作している間、本明細書に記載のようなロボティックデバイスは、実演904、実行906、探索908、導出/ユーザ入力910、キャッシュ生成912、及び/又はそれらの任意の組合せを介して学習することができる。
【0087】
[0125] 幾つかの実施形態では、ロボティックデバイスは実演を通して学習することができる。例えば、操作技能を得るために、LfD(例えば運動感覚教示)を使用してロボティックデバイスに教示することができ、それにより、ユーザ(例えば、付近のユーザ若しくは離れたところにいるロボット監督者)又は他のロボットデバイスは、ロボティックデバイスに対して技能を実演することができる。例えば、ロボティックデバイスのアーム等の操作要素は、一連のウェイポイントを通って移動して、物体と相互作用することができる。別の例として、ユーザにより、例えばジョイスティック、ユーザインタフェース、又は何らかの他のタイプの物理的若しくは仮想的制御デバイスを使用することにより、又はロボティックデバイスを物理的に誘導若しくは移動させる(例えば、引く、押す)ことによりロボティックデバイスの可動式基部(例えば、車輪、トラック、クローラー等の輸送要素を有する基部)を環境内の物体の周囲にナビゲートすることができる。
【0088】
[0126] 運動感覚教示の場合、ユーザはロボティックデバイスに対して技能を物理的に実演することができる。訓練又は教示は、技能の一般的な実行を表す総合モデルを使用してロボティックデバイスに教示することができる大量生産設定、例えば製造環境等で実行することができる。代替又は追加として、教示は、ロボティックデバイスがデプロイ(例えば病院に)された後、現場で行うことができ、それにより、ロボティックデバイスは、特定の現場環境で技能を実行することを学習することができる。幾つかの実施形態では、現場設定でロボティックデバイスに教示することができ、ロボティックデバイスは次いで、学習した技能と関連付けられた情報を1つ又は複数の追加のロボティックデバイスに送信することができ、それにより、それらの追加のロボティックデバイスも、同じ現場設定で動作する場合、教示された技能の知識を有することができる。そのような実施形態は、複数のロボティックデバイスが単一の現場でデプロイされている場合、有用であることができる。各ロボティックデバイスは次いで、他のロボティックデバイスと情報を送受信することができ、それにより、その現場環境での1組の技能を集合的に学習することができる。
【0089】
[0127] 幾つかの実施形態では、ロボティックデバイスは、LfD教示プロセスを使用して技能の実現を通して新しい技能又は環境制約を学習することができる。ロボティックデバイスは、人間環境における技能の過去の実演を解析し、そこから情報を抽出することができる。一例として、ユーザは、人間及びロボティックデバイスがいるサプライ室で操作要素(例えばアーム)をいかに動かすかをロボティックデバイスに対して実演することができる。実演から、ロボティックデバイスは、将来、技能を計画及び/又は実行するとき、運動を既存の実演の運動に制限する1つ又は複数の環境制約を規定することができる。ロボティックデバイスは、各々が動きのn次元空間を通してノード及びパスを提供する既存の実演(例えば、キーフレームシーケンス)を使用して動きを生み出し、環境制約が符号化されたグラフを構築することができる。次いで、ロボティックデバイスに新しい環境が提示され、ロボティックデバイスが技能をその新しい環境に適応させる必要がある場合、ロボティックデバイスは、構築されたグラフを使用して既存の実演運動セットから効率的にサンプリングして、新しい環境での動きを計画することができる。そのような環境制約の学習を技能の初期実演に内蔵することにより、ロボティックデバイスは、新しい環境制約を規定する必要なく、新しい環境に素早く適応することができる。新しい環境において、ロボティックデバイスは、環境をスキャンして、その環境及び/又は環境内の物体(例えば、人間、サプライ品、ドア等)に関する追加情報を取得し、次いでその既存の技能モデルを使用して、既存の実演運動セットから大きく逸脱せずに、新しい環境を通る運動軌道を計画することができる。実演904からの学習の更なる詳細について
図11及び
図16を参照して説明する。
【0090】
[0128] 幾つかの実施形態では、ロボティックデバイスは、実現904及びユーザ入力910を通して学習することができる。例えば、ロボティックデバイスは、例えばインタラクティブ学習テンプレートを用いて、ユーザとのインタラクティブ学習に従事することができる。上述したように、インタラクティブ学習を用いる場合、ロボティックデバイスに初期技能モデルセットを提供することができる。初期モデルセットは、工場設定で、他のロボティックデバイスにより、及び/又は1つ又は複数の設定においてロボティックデバイス自体により開発することができる。特定の環境で動作している間、ロボティックデバイスは、インタラクティブ学習セッションを介してこの初期技能セットを適応又は特殊かすることができ、ロボティックデバイスは、技能の特定の部分を自律的に実行することができ、その間、ユーザにより実演される他の部分を学習することができる。そのようなインタラクティブ学習プロセスの更なる詳細について
図16~
図20を参照して説明する。
【0091】
[0129] 幾つかの実施形態では、ロボティックデバイスは、実演を実行906している間、新しい情報、技能等を学習することができる。例えば、ロボティックデバイスは、挙動、動作等を実行するにつれて、情報を収集、聞く、解析、及び/又は更新することができる。一実施形態では、ロボティックデバイスは、廊下を1日に数回移動する必要がある技能を実行することができる。ロボティックデバイスは、特定の日時で、廊下の人の往来が多いことを学習することができる。ロボティックデバイスは次いで、例えば人の往来が多いとき、廊下の移動を避けるように挙動を適応させることができる(例えば、代替のルート及び/又は人の往来が少ないときに廊下を通過するために待つ)。実行プロセスを介したそのような学習の更なる詳細は
図12及び
図13を参照して説明される。
【0092】
[0130] 幾つかの実施形態では、ロボティックデバイスは探索908を通して学習することができる。例えば、ロボティックデバイスは、環境及び/又は環境内の物体をスキャンして情報を収集することができる。技能を実行するために、ロボティックデバイスは、既存の技能モデルを選択し、技能の実行を計画し、技能を実行することができる。幾つかの実施形態では、ロボティックデバイスは、環境及び/又は環境内の物体について収集された情報を、環境及び/又は環境内の物体について収集された前の情報と比較することができる。幾つかの実施形態では、ロボティックデバイスは、比較に基づいて技能を再選択、再計画、又は再実行することができる。例えば、ロボティックデバイスは、戸口を有する廊下をスキャンすることができ、廊下及び/又は戸口についての情報を収集することができる。ロボティックデバイスは、戸口を通過するための計画を選択することができる。ロボティックデバイスが戸口を通過している際、ロボティックデバイスは、戸口との相互作用が成功したか否かを判断することができる。相互作用が不成功であった場合、ロボティックデバイスは廊下及び/又は戸口を再びスキャンすることができる。ロボティックデバイスは、情報を前に収集された情報と比較することができる。ロボティックデバイスは次いで、この比較に基づいて戸口を通したナビゲートを再計画及び/又は再実行することができる。例えば、ロボティックデバイスは、比較に基づいて戸口が混んでいると判断することができる。ロボティックデバイスは次いで、比較に基づいて別の技能モデルを再選択し、技能の実行を再計画し、及び/又は技能を再実行することができる。探索プロセスを介したそのような学習の更なる詳細について
図18を参照して説明する。
【0093】
[0131] 幾つかの実施形態では、ロボティックデバイスはキャッシュ生成912を介して学習することができる。例えば、ロボティックデバイスは、例えば環境中の1つ又は複数のマーカに対する、技能を実行するための1つ又は複数の姿勢(例えば開始姿勢)を教示するようにユーザに促すことができる。ロボティックデバイスは、姿勢及び技能と関連付けられた操作データを保存することができる。ロボティックデバイスは、1つ又は複数の技能を実行するための計画キャッシュを生成し保存することもできる。一例の実施態様では、ドア及び/又は戸口を通過するために、ロボティックデバイスは、ドアタイプを識別するようにユーザに促すことができる。ドアタイプが既知である(例えば、ドアタイプの操作データが保存されていた)場合、ロボティックデバイスは、そのドアタイプの操作データを選択し、ドア及び/又は戸口を通過するための計画キャッシュを生成し保存することができる。ドアタイプが分からない場合、ロボティックデバイスは、ドアを通過するための1つ又は複数の標的姿勢を教示するようにユーザに促すことができる。ロボティックデバイスは、教示に基づいてドアを通過するための計画キャッシュを生成し保存することができる。キャッシュ生成を介したそのような学習の更なる詳細について
図23~
図25を参照して説明する。
【0094】
[0132]
図10は、実行モード1018で動作中のロボティックデバイス(例えば、例えばロボティックデバイス102、110、200、400等を含む本明細書に記載のロボティックデバイスのいずれか)が技能を実行することができる異なるプロセスを示す流れ図である。幾つかの実施形態では、ロボティックデバイスは、技能を実行するための計画を受信又は選択することができる(例えば、前に生成された計画のキャッシュから)。計画は、
図9に記載の1つ又は複数の学習モードの実施中等、学習プロセス中に生成することができる。追加又は代替として、ユーザインタフェースを介してユーザから初期計画を受信することができる。計画は、ロボティックデバイスにより後に更新することができる。幾つかの実施形態では、計画は、技能を実行するためにロボティックデバイスが辿る軌道を含むことができる。幾つかの実施形態では、ロボティックデバイスは、実行モードでの動作と学習モードでの動作との間で切り替えることができる。例えば、実行中、ロボティックデバイスは連続して環境をスキャンし、環境の情報を収集することができる。ロボティックデバイスは、実行中に収集されたこの情報を使用して、技能を実行するための計画を生成及び/又は更新することができる。そのような実行の更なる詳細について
図12、
図13、及び
図26を参照して説明する。
【0095】
[0133]
図11は、幾つかの実施形態による、ロボティックデバイスにより実行される技能学習方法を示す流れ図である。
図11に示される学習モードにおいて、方法700は1120~1124に進み、ユーザはLfD教示プロセスを使用して、ロボティックデバイスに技能を教示することができる。一実施形態では、技能は、特定の位置に配置された物体の把持、物体のピックアップ、物体の異なる位置への移動、及び異なる位置への物体の降下として規定することができる。別の実施形態では、技能は、ロボティックデバイスの周囲環境、例えばドアとの相互作用を含むことができる。
【0096】
[0134] 1120において、移動を通して、ユーザ(又は別のロボティックデバイス)は、操作要素(例えば、操作要素250、450、又は550)及び/又は輸送要素(例えば、輸送要素260、560)を含め、ロボティックデバイスを誘導することができる。例えば、ユーザは、特定の技能の実行と関連付けられた実演、例えば、人間との相互作用、物体との係合及び/又は物体の操作、及び/又は人間及び/又は周囲環境との他の相互作用を通して、ロボティックデバイスの操作要素(及び/又はロボティックデバイスの他の構成要素、例えば輸送要素)を誘導することができる。一実施形態では、ユーザは、ドアと相互作用及び/又はドアを通過する方法をロボティックデバイスに対して実演することができる。ユーザは、ロボティックデバイスが、例えば操作要素を介して、いかにドアの取っ手といかに相互作用するかを実演することができる。例えば、アーム等のロボティックデバイスの操作要素は、ドア取っ手(例えば、視覚的入力又は基準マーカにより配置又は識別される)に対する一連の運動を通して誘導することができる。ドア取っ手が、例えば操作要素を使用して回されている間又は後、ロボティックデバイスに、例えばロボティックデバイスの輸送要素を動かすことにより、実演を介してドアを押し開けるように誘導することができる。更に以下説明するように、操作要素及び輸送要素の運動の組合せを使用して、将来、ドア及び/又は同様のドアと相互作用する場合、技能又は挙動を実行するためのモデルを構築することができる。
【0097】
[0135] 幾つかの実施形態では、ロボティックデバイスは、近場に存在するユーザにより、例えば、ユーザがロボティックデバイスを物理的に移動させ及び/又は入力をロボティックデバイスに提供することにより誘導することができる。幾つかの実施形態では、ロボティックデバイスは、例えばリモート又はクラウドインタフェースを介して、ロボティックデバイスから離れた場所にいるユーザ(例えばロボット監督者)により誘導することができる。
【0098】
[0136] 移動を通して操作要素(及び/又はロボティックデバイスの他の構成要素)を誘導している間、ユーザはロボティックデバイスに、操作要素(例えば、ジョイント構成、ジョイントの力及び/又はトルク、エンドエフェクタ構成、エンドエフェクタ位置)、ロボティックデバイスの別の構成要素、及び/又は環境(例えば、選択されたマーカ及び/又は環境中の他の物体と関連付けられた物体の位置)の状態についての情報をいつ捕捉するかを示すことができる。例えば、ロボティックデバイスは、1122において、操作要素の移動中、ウェイポイント又はキーフレームにおいて操作要素及び/又は環境についての情報を捕捉する信号をユーザから受信することができる。信号の受信に応答して、1124において、ロボティックデバイスは、そのキーフレームにおいて操作要素、ロボティックデバイスの他の構成要素、及び/又は環境についての情報を捕捉することができる。操作要素情報は、例えば、ジョイント構成、ジョイントトルク、エンドエフェクタ位置、及び/又はエンドエフェクタトルクを含むことができる。環境情報は、例えば、エンドエフェクタに対する選択されたマーカの位置を含むことができ、環境中の物体がいつ移動した可能性があるかをロボティックデバイスに示すことができる。動きがまだ進行中である場合(1128:いいえ)、ロボティックデバイスは、追加のキーフレームにおいて操作要素及び/又は環境についての情報を捕捉するのを待つことができる。幾つかの実施形態では、ロボティックデバイスは、ユーザから信号を受信することなく、キーフレーム情報を捕捉するようにプログラムすることができる。例えば、操作要素がユーザにより移動中である間、ロボティックデバイスは操作要素のセグメント及びジョイントの変化をモニタすることができ、それらの変化が閾値を超える場合又はセグメント若しくはジョイントの軌道に方向変化がある場合、ロボティックデバイスは自律的に、そのポイントをキーフレームとして選択し、そのキーフレームにおける操作要素及び/又は環境についての情報を記録することができる。
【0099】
[0137] 操作要素(及び/又はロボティックデバイスの他の構成要素、例えば輸送要素)の移動中、1130において、ロボティックデバイスは、ユーザから信号を受信することなく連続して又は定期的に、感覚情報、例えば、操作要素、ロボティックデバイスの他の要素(例えば輸送要素)、及び/又は環境についての情報を記録することもできる。例えば、ロボティックデバイスは、ユーザが実演を通して操作要素を移動させるにつれて、セグメント及びジョイントの軌道についての情報及びそれらの構成を記録することができる。実演中、ロボティックデバイスは、1つ又は複数の環境制約についての情報、例えば環境内の物体についての静的情報(例えば、戸口、サプライ箱の位置又はサイズ等)及び/又は環境内の物体についての動的情報(例えば、室内の人の往来レベル、ロボティックデバイス周囲のユーザの移動等)を記録することもできる。幾つかの実施形態では、実演中、ロボティックデバイスにより記録された感覚情報は、例えば
図6に示されるように、環境のマップの1つ又は複数のレイヤに追加及び/又は偏光することができる。
【0100】
[0138] 幾つかの実施形態では、ロボティックデバイスは、例えばマイクロホン等のオーディオデバイス(例えば244)を含むことができ、キーフレームの境界は発話コマンドにより制御することができる。例えば、ユーザはロボティックデバイスに対して、「私があなたを誘導します」と話すことにより実演の付与を計画することを示すことができる。実演は、ユーザが「ここが開始です」と話すことにより最初のキーフレームを示すとき、開始することができる。中間キーフレームは、「ここに行く」と話すことにより示すことができる。そして実演の終わりを表す最後のキーフレームは、「ここで終了です」と話すことにより示すことができる。実演教示の適した例はAkgun記事に提供されている。
【0101】
[0139] 幾つかの実施形態では、技能をロボティックデバイスに対して実演している間、ユーザは、例えばロボティックデバイスへの1つ又は複数の入力を介して、技能のどの部分が汎用であり、技能のどの部分が特定の環境又は状況により固有であるかを示すことができる。例えば、サプライ品を第1の位置から第2の位置(例えば部屋)に移動させ、それらのサプライ品を第2の位置で降下する仕方をロボティックデバイスに対して実演している間、ユーザはロボティックデバイスに対して、第1の位置から第2の位置にナビゲートする動作が汎用であり、一方、サプライ品を第2の位置で降下する動作が独自であり、実施のために環境により固有の情報(例えば、サプライ品を降下する際に参照とする特定のタグ又はマーカ)を必要とすることを示すことができる。ロボティックデバイスが後に、サプライ品を異なる位置間で移動させるためにその技能のモデルを使用する場合、ロボティックデバイスは、技能を実行する前に、降下に関する特定の情報を要求及び/又はその特定の情報を求めてスキャンする(例えば、降下を実行する前、その位置を特定するための特定のタグに関する情報を要求及び/又は情報を求めてスキャンする)ことを知ることができる。
【0102】
[0140] 幾つかの実施形態では、ユーザは、技能をロボティックデバイスに対して実演した後、汎用又は固有である技能の部分を示し及び/又はユーザが前に汎用又は固有と示した技能の部分を変更することができる。幾つかの実施形態では、ロボティックデバイスは、1組の技能を学習した後、その1組の技能の部分が汎用であるか、それとも固有であるかを判断し得る。幾つかの実施形態では、ロボティックデバイスは、1組の技能の部分が汎用であるか、それとも固有であるかをユーザに対して推奨し、ユーザからの確認を求めることができる。ユーザの確認に基づいて、ロボティックデバイスは、その1組の技能と関連付けられた将来の技能を学習及び/又は実行する際、参照するために情報を記憶することができる。代替的には、ロボティックデバイスは、ユーザ入力なしで、技能の異なる部分を汎用又は固有と自動的に判断しラベリングすることができる。
【0103】
[0141] 移動又は実演が完了すると(1128:はい)、ロボティックデバイスは、記録された全ての感覚情報(例えば、操作要素情報、輸送要素情報、環境情報)のサブセットに基づいて、実演された技能のモデルを生成することができる。例えば、1132において、ロボティックデバイスは任意選択的に、例えばユーザインタフェース又は他のタイプのI/Oデバイスを介して、技能の学習に関連する特徴を選択するようにユーザに促すことができ、1134において、ロボティックデバイスはユーザから特徴の選択を受信することができる。代替又は追加として、ロボティックデバイスは、ユーザからの前の命令に基づいて、モデルを生成する際に使用する特定の特徴を選択することを知ることができる。例えば、ロボティックデバイスは、例えば感覚情報に基づいて、物体のピックアップが実演されていることを認識することができ、例えば同じ又は異なる物体のピックアップの過去の実演に基づいて、技能モデルを生成するために関連する特徴として含めるものとして感覚情報(例えば、ジョイント構成、ジョイントトルク、エンドエフェクタトルク)のうちの1つ又は複数の特徴を自動的に選択することができる。
【0104】
[0142] 1136において、ロボティックデバイスは、選択された特徴を使用して技能のモデルを生成することができる。モデルは、記憶された機械学習ライブラリ又はアルゴリズム(例えば機械学習ライブラリ342)を使用して生成することができる。幾つかの実施形態では、モデルは、例えば幾つかの隠れ状態、特徴空間(例えば、特徴ベクトルに含まれる特徴)、及びガウス分布としてモデリングされた各状態の放出分布等の複数のパラメータを含むHMMアルゴリズムとして表すことができる。幾つかの実施形態では、モデルは、サポートベクターマシン又は「SVM」モデルとして表すことができ、例えば、カーネルタイプ(例えば、線形、動径、多項式、シグモイド)、費用パラメータ又は関数、重み(例えば、イコール、クラスバランシング)、損失タイプ又は関数(例えば、ヒンジ、二重ヒンジ)、及び解法又は問題タイプ(例えば、双対、主)等のパラメータを含むことができる。モデルには、技能実演中、ロボティックデバイスにより記録された関連する感覚情報及び/又は他の感覚情報を関連付けることができる。モデルには、技能実演中に操作された1組のマーカを示すマーカ情報及び/又はそれらのマーカに結びつけられた1つ又は複数の物理的な物体と関連付けられた特徴を関連付けることもできる。1138において、ロボティックデバイスはモデルをメモリ(例えば、ストレージ230又は330)に記憶することができる。
【0105】
[0143] 幾つかの実施形態では、実演と関連付けられた情報(例えば、感覚情報、モデル等)を使用して、例えば
図6に示される表現600等の環境のマップ又は表現のレイヤに追加及び/又は変更することができる。例えば、
図21は、マップ(例えばマップ2120)から流れる情報及びマップに供給される情報の一例を示す。
図21について更に詳細に以下説明する。
【0106】
[0144] 任意選択的に、1140において、ロボティックデバイスは、ユーザが技能の別の実演を実行することになるか否かを判断することができる。別の実演が実行されるべきである場合(1140:はい)、方法700は1120に戻ることができ、ユーザ(又は他のロボティックデバイス)は追加の実演を通してロボティックデバイスを誘導することができる。実演が完了した場合(1140:いいえ)、方法700は任意選択的に冒頭に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態において、方法700は終了することができる。
【0107】
[0145] 別の実施形態では、技能は、2つの位置間のナビゲーション又は環境中の物体の周囲の及び/又は物体を通るナビゲーション等のナビゲーション挙動であることができる。本明細書に記載等の操作要素を用いた技能の学習と同様に、ユーザ(又は他のロボティックデバイス)は、1120において、ナビゲーション挙動を通して、1組の輸送要素(例えば輸送要素260、560)を含むロボティックデバイスを誘導することができる。例えば、ユーザはジョイスティック又は他の制御デバイスを使用して、1組の輸送要素(及び/又はロボティックデバイスの他の構成要素、例えば操作要素)の移動を制御し及び/又はロボティックデバイスがナビゲーション挙動を実行することができるようにそのような要素を物理的に誘導する(例えば、ロボティックデバイスを押す又は引く)ことができる。1組の輸送要素(及び/又はロボティックデバイスの他の構成要素)の移動を制御しながら、ユーザはロボティックデバイスに、1組の輸送要素の状態(例えば、各輸送要素の角度、各輸送要素の構成、互いに可動である場合、輸送要素の間隔等)、ロボティックデバイスの他の構成要素の状態、及び/又は環境の状態(例えば、マップにおけるロボティックデバイスの位置、環境中の物体の位置及び/又は境界)についての情報等の感覚情報を捕捉するときを通知することができる。ユーザはロボティックデバイスに、1組の輸送要素(及び/又はロボティックデバイスの他の構成要素)の移動中、キーフレームにおいて、例えば開始点、終了点、及び/又は1組の輸送要素の第1の方向での移動と第2の方向での移動との間の遷移点において通知することができる。ユーザからの信号の受信に応答して、1122において、ロボティックデバイスはキーフレームにおいて移動のスナップショット(1組の輸送要素、ロボティックデバイスの他の構成要素、及び/又は環境についての情報を含む)を捕捉することができる。代替又は追加として、ロボティックデバイスは、移動のスナップショットを捕捉する、1組の輸送要素(及び/又はロボティックデバイスの他の構成要素)の移動中のポイントを自律的に選択するように構成することができる。例えば、ロボティックデバイスは、1組の輸送要素の角度及び構成(例えば、例えばユーザが制御デバイスを用いてロボティックデバイスを制御する又はロボティックデバイスを押すことにより、ロボティックデバイスの制御を継承したとき等)をモニタし、ロボティックデバイスが角度及び/又は構成の変化を検出したときは常にその情報のスナップショットを自律的に捕捉することができる。幾つかの実施形態では、ロボティックデバイスは、1組の輸送要素、ユーザがロボティックデバイスの移動を制御している間、ロボティックデバイスの他の構成要素、及び/又は環境についての情報を連続して収集するように構成することができる。
【0108】
[0146] 本明細書に記載のように操作要素を用いて技能を学習するのと同様に、ロボティックデバイスは、移動が完了する(1128:はい)まで、輸送要素(及び/又はロボティックデバイスの他の構成要素)の移動と関連付けられた感覚情報を引き続き捕捉することができる。ロボティックデバイスは任意選択的に、1132~1134において、ナビゲーション挙動の学習に関連する特徴の選択を受信してもよく、及び/又は収集された感覚情報における関連特徴を自律的に識別してもよい(例えば、特定のナビゲーション技能が実演されていることを認識し、その技能の学習に関連する特徴を識別することにより)。ロボティックデバイスは次いで、1136において、関連特徴が関連付けられた感覚情報に基づいてナビゲーション挙動のモデルを生成し、後の時点でロボティックデバイスが実行する軌道を生成するために使用することができるように、1138においてそのモデル及び感覚情報を記憶することができる。
【0109】
[0147] ナビゲーション挙動の一例は、戸口を通過することである。ロボティックデバイスは、建物内の標準的な戸口を通過するように構成することができるが、ロボティックデバイスは、標準的ではない戸口、例えば小さい又は奇妙な形の戸口を通過することが可能ではないことがある。したがって、ロボティックデバイスは、戸口を通していかに安全にナビゲートし得るかをロボティックデバイスに対して実演するようにユーザに促し得る。ロボティックデバイスは、戸口の片側にナビゲートすることができ、次いでユーザに、戸口を通過して向こう側に行く方法をロボティックデバイスに対して実演させる。実演中、ロボティックデバイスは、マップ中のロボティックデバイスの位置及び/又はセンサデータ(例えば、ドアの境界、輸送要素及び/又は操作要素の構成、及び本明細書に記載の他の感覚情報)等の情報を受動的に記録することができる。幾つかの実施形態では、ロボティックデバイスは、
図16を参照して本明細書に更に考察するように、インタラクティブテンプレートを使用して戸口を通るナビゲートの仕方を学習することができる。
【0110】
[0148] 幾つかの実施形態では、ユーザは、現場のロボティックデバイス付近にいることができる。他の実施形態では、ユーザは離れた場所にいてもよく、ロボティックデバイスに接続されたネットワークを介して(例えば、
図1に示され、上述されたように)、計算デバイス(例えば、サーバ120、計算デバイス150)からロボティックデバイスを制御してもよい。
【0111】
[0149] 幾つかの実施形態では、本明細書に記載のように、ロボティックデバイスは周囲環境を能動的にスキャンして、環境における変化をモニタすることができる。したがって、学習及び/又は実行中、ロボティックデバイスは、環境の連続検知又はスキャンに従事し、それに従って環境の表現及び記憶した環境情報を更新することができる。
【0112】
[0150] 幾つかの実施形態では、ロボティックデバイスは、社会的に適切な挙動、即ち人間との相互作用を考慮した動作を学習するように構成することができる。例えば、ロボティックデバイスは、人間の周囲で実行される操作技能又はナビゲーション技能を学習するように構成することができる。ロボティックデバイスは、人間オペレータ(例えば、付近のユーザ又は離れた場所にいるロボット監督者)による実演を介して社会的に適切な挙動を学習することができる。幾つかの実施形態では、ロボティックデバイスは、ロボティックデバイスによる技能の自律的な実行に介入し、次いでその技能の実行の仕方をロボティックデバイスに対して実演する人間オペレータを介して、インタラクティブ設定で挙動を学習するように構成することができる。ロボティックデバイスは、人間オペレータによる介入(例えば、看護師がロボティックデバイスを片側に押す)を検出すると、学習モードに切り替わるように構成することができ、学習モードにおいて、ロボティックデバイスは人間オペレータにより制御され、実演及び実演が実行される知覚的状況と関連付けられた情報を受動的に記録する。ロボティックデバイスは、この情報を使用して、技能の改変モデルを生成し、そのモデルに、ロボティックデバイスがその技能を後の時点で実行すべき適切な社会的状況を関連付けることができる。一例として、ロボティックデバイスは、人間オペレータがナビゲーション計画の自立実行に介入したことを検出し、介入の検出に応答して、人間オペレータにより制御される学習モデルに切り替わり得る。ロボティックデバイスは、ナビゲーション計画が人間の存在下でいかに改変されるべきか、例えば、ロボティックデバイスが廊下に人がいなくなるまで待つのではなく、廊下で脇に移動して人間を通過させるべきであることを人間オペレータが実演するにつれて、周囲環境及びそれ自体の移動についての情報を記録することができる。インタラクティブ学習に関する更なる詳細について
図16~
図20を参照して本明細書に説明する。
【0113】
[0151]
図12に示される実行モードにおいて、ロボティックデバイスは任意選択的に、1150において、例えばユーザインタフェース又は他のタイプのI/Oデバイスを介して、学習モードにおいてロボティックデバイスにより前に実行されたモデル等のモデルを選択するようにユーザに促すことができる。1152において、ロボティックデバイスはモデル選択を受信することができる。幾つかの実施形態では、ロボティックデバイスはモデル選択をユーザから受信することができ、又は代替的に、ロボティックデバイスは特定のルール及び/又は条件に基づいてモデルを自律的に選択することができる。例えば、ロボティックデバイスは、特定の日時等中、建物の特定のエリアにいる(例えば、特定の部屋は階にいる)とき、モデルを選択するようにプログラムすることができる。代替又は追加として、ロボティックデバイスは、選択された1組のマーカに基づいて特定のモデルを選択することを知ることができる。1154において、ロボティックデバイスは、選択されたマーカに関して軌道を生成し技能を実行する前、選択されたマーカに近づくか否かを判断することができる。例えば、ロボティックデバイスは、選択された1組のマーカ及び選択されたモデルに基づいて、技能を実行するのによりよい位置に移動(例えば、マーカのより近く又は近傍に移動、特定の角度からマーカに面するように移動)すべきか否かを判断することができる。ロボティックデバイスは、技能の実演中に記録された感覚情報に基づいてこの判断を行い得る。例えば、ロボティックデバイスは、技能が実演されたときにマーカ付近の位置にいたことを認識し得、それに従って位置を調整し得る。
【0114】
[0152] ロボティックデバイスは、選択されたマーカに対して移動したと判断した場合(1154:はい)、1156において、その位置を移動(例えば、位置及び/又は向きを調整)することができ、方法700は702に戻ることができ、ロボティックデバイスは環境を再びスキャンして、環境の表現を取得する。方法700は、種々のステップを通して1154に戻ることができる。ロボティックデバイスは、選択されたマーカに対して移動しないと判断する場合(1154:いいえ)、例えばロボティックデバイスの操作要素の動作軌道を生成することができる。
【0115】
[0153] 具体的には、1158において、ロボティックデバイスは、選択された1組のマーカと、本明細書では「記憶されたマーカ」又は「記憶された1組のマーカ」と呼ばれる、選択されたモデルと関連付けられた1組のマーカ(例えば、ロボティックデバイスが技能を学習したとき、即ち選択されたモデルを生成したときに選択されたマーカ)との間での変形(例えば変換)を行う関数を計算することができる。例えば、ロボティックデバイスに、例えばエンドエフェクタ等のロボティックデバイスの一部に対して特定の位置及び/又は向きにあった第1の組のマーカを使用して技法を教示することができ、後に、ロボティックデバイスは、操作要素に対して異なる位置及び/又は向きにある第2の組のマーカを用いて技能を実行することができる。そのような場合、ロボティックデバイスは、第1の組のマーカの位置及び/又は向きと第2の組のマーカとの間の位置及び/又は向きの間の変形を行う変形関数を計算することができる。
【0116】
[0154] 1160において、技能が教示されたときに記録された各キーフレームにおいて、ロボティックデバイスは計算された変形関数を使用して、操作要素の一部、例えば操作要素のエンドエフェクタの位置及び向きを変形させることができる。任意選択的に、1162において、ロボティックデバイスは、サイズ、構成、及び位置等の任意の環境制約、例えば環境内の物体及び/又はエリアの特徴を考慮することができる。ロボティックデバイスは、環境制約に基づいて操作要素の移動を制限することができる。例えば、サプライ室で技能を実行することになることをロボティックデバイスが認識する場合、ロボティックデバイスは、操作要素の位置及び向きを変形するとき、操作要素の一部が壁又はサプライ室内の他の物理的構造と接触するのを避けるように、サプライ室のサイズを考慮に入れることができる。ロボティックデバイスは、サプライ室と関連付けられた他の環境制約、例えば、サプライ室内の箱のサイズ、サプライ室内の棚の位置等を考慮に入れることもできる。
図17を参照して本明細書に更に説明するように、環境制約を有する設定で技能を実行するに先立って、ロボティックデバイスに、環境制約及び/又は教示された環境制約に関する情報を提供することができる。
【0117】
[0155] 任意選択的に、1162において、ロボティックデバイスは、逆運動学方程式又はアルゴリズムを使用して、1162において、各キーフレームでの操作要素のジョイントの構成を決定することができる。エンドエフェクタの位置及び向き並びに1組のマーカはタスク空間(例えば、ロボティックデバイスが動作しているデカルト空間)に提供することができ、その間、ジョイントの向きがジョイント又は構成空間(例えば、操作要素の構成と関連付けられたn次元空間であり、ロボティックデバイスは点として表され、nは操作要素の自由度数である)に提供することができる。幾つかの実施形態では、逆運動学計算は、ロボティックデバイスが技能を教示されたときに記録されたジョイント構成情報(例えば、操作要素を使用した実演教示中に記録されたジョイントの構成)により誘導することができる。例えば、逆運動学計算に、各キーフレームで記録されたジョイント構成をシード値として与える(例えば、計算の初期推定を提供又はバイアスする)ことができる。例えば、計算されるジョイント構成が隣接キーフレームにおけるジョイント構成から所定量を超えて逸脱しないことを求める等の追加の条件を逆運動学計算に課すこともできる。1164において、ロボティックデバイスは、例えばジョイント空間におけるあるキーフレームから次のキーフレームへのジョイント構成間の軌道を計画して、操作要素が技能を実行するための完全な軌道を生成することができる。任意選択的に、ロボティックデバイスは、本明細書で考察するように、環境制約を考慮に入れることができる。
【0118】
[0156] 幾つかの実施形態では、ロボティックデバイスは、操作要素の部分(例えばエンドエフェクタ)の位置及び向きを変形した後、タスク空間における操作要素の軌道を計画することができる。そのような実施形態では、方法700は1160から1164に直接進むことができる。
【0119】
[0157] 1166において、ロボティックデバイスは任意選択的に軌道をユーザに提示し、例えばユーザインタフェース又は他のI/Oデバイスを介して、軌道を許容又は拒絶するようにユーザに促すことができる。代替的には、ロボティックデバイスは、内部ルール及び/又は条件に基づいて及び関連する感覚情報を解析することにより、軌道を許容又は拒絶することができる。軌道が拒絶される場合(1168:いいえ)、1170において、ロボティックデバイスは任意選択的に、選択されたモデルの1つ又は複数のパラメータを改変することができ、1158~1164において、第2の軌道を生成することができる。モデルのパラメータは、例えば、モデル生成に含まれる特徴として異なる特徴(例えば異なる感覚情報)を選択することにより改変することができる。幾つかの実施形態では、モデルがHMMモデルの場合、ロボティックデバイスは、判断された成功又は失敗に基づいてモデルのパラメータを変更することができ、ロボティックデバイスは、異なるパラメータを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。幾つかの実施形態では、モデルがSVMの場合、ロボティックデバイスは、本明細書に記載のように、特徴空間又は構成パラメータ(例えば、カーネルタイプ、費用パラメータ又は関数、重み)を変更することによりパラメータを変更することができる。
【0120】
[0158] 軌道が許容される場合(1168:はい)、1172において、ロボティックデバイスは操作要素を移動させ、生成された軌道を実行することができる。操作要素が計画された軌道を実行している間、1174において、ロボティックデバイスは、例えば操作要素上の1つ又は複数のセンサ及びロボティックデバイスの他の構成要素を介して、例えば、操作要素及び/又は環境についての情報等の感覚情報を記録及び/又は記憶することができる。
【0121】
[0159] 任意選択的に、1174において、ロボティックデバイスは、技能の実行が成功したか否か(例えば、物体との相互作用が予め規定された成功基準を満たすか否か)を判断することができる。例えば、ロボティックデバイスは、環境をスキャンし、例えば1つ又は複数の物体の位置及び/又は操作要素又はロボティックデバイスの別の構成要素に対するそれらの物体の位置又は向きを含む、環境及びロボティックデバイスの現在状態を特定し、その現在状態が予め規定された成功基準に沿うか否かを判断することができる。予め規定され及び/又は学習された成功基準は、ユーザにより提供されてもよく、又は幾つかの実施形態では、異なるロボティックデバイス及び/又は計算デバイスにより提供されてもよい。予め規定され及び/又は学習された成功基準は、環境の異なる特徴及び/又は成功と関連付けられたロボティックデバイスについての情報を示すことができる。幾つかの実施形態では、ユーザは、実行が成功したことをロボティックデバイスに対して示す入力を提供することもできる。
【0122】
[0160] 特定の例では、特定の位置にある物体を把持し、物体をピックアップすることとして技能が規定される場合、技能の成功は、物体と関連付けられた1つ又は複数のマーカが互い及び/又はロボティックデバイスに対して特定の関係にあることの検出又は操作要素が物体の重量を支持しており、したがって、物体をピックアップしたことの表れである、操作要素のエンドエフェクタ若しくはジョイント(例えば手首のジョイント)が十分な力若しくはトルクが受けている(若しくは受けた)ことの検出として教示及び/又は規定することができる。実行が成功しなかった場合(1176:いいえ)、ロボティックデバイスは任意選択的に、1170において、モデルのパラメータを改変し得及び/又は1158~1164において新しい軌道を生成し得る。実行が成功した場合(1176:はい)、成功相互作用と関連付けられたデータ(例えば、実行が成功したこと及びどの程度成功したかを示すデータ)は記録することができ、方法700は任意選択的に冒頭に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態において、方法700は終了することができる。
【0123】
[0161] 幾つかの実施形態では、ロボティックデバイスは、操作要素、輸送要素、及び/又はロボティックデバイスの別の構成要素(例えば、頭部、眼、センサ等)の1つ又は複数の動作が関わる技能を実行するように構成される。ロボティックデバイスは、操作要素に関して上述したのと同様に、技能の軌道を計画するように構成することができる。例えば、1150~1152において、ロボティックデバイスは、技能のモデルのユーザ選択を促して受信することができ、又は代替的には、技能のモデルを自律的に選択することができる。1158において、ロボティックデバイスは、環境で現在識別されている1組のマーカと、選択されたモデルと関連付けられた1組の記憶されたマーカ(例えば、ロボティックデバイスがその技能を学習したときに識別され、技能のモデルと共に記憶されたマーカ)との間で変形を行う関数を計算することができる。そのような変形は、輸送要素又はロボティックデバイスの他の構成要素と関連付けられたキーフレームの変形を含むことができる。1160において、ロボティックデバイスは計算された関数を使用して、各キーフレームにおけるロボティックデバイスの1つ又は複数の構成要素の構成を変形することができる。1164において、ロボティックデバイスは、変形された各キーフレーム間のロボティックデバイスの1つ又は複数の構成要素の軌道を計画することができる。キーフレームを変形及び/又は軌道を計画しながら、ロボティックデバイスは任意選択的に、技能が実行中である設定と関連付けられた任意の環境制約を考慮に入れることができる。1172において、ロボティックデバイスは、計画された軌道に従ってロボティックデバイスの1つ又は複数の構成要素の移動を実施することができる。幾つかの実施形態では、ロボティックデバイスは、1162においてジョイント構成を決定し、1166において計画された軌道をユーザに提示し、及び/又は
図12に示されるように他の任意選択的なステップを実行することができる。輸送要素の動作が関わる技能の一例は、ドアを開くことであることができる。ユーザ(例えば、付近のユーザ又は遠くにいるロボット監督者)は、例えばドアを押し開けることにより、ロボットデバイスの基部を使用してドアを開けるようにロボティックデバイスを誘導することができる。ユーザは、例えばジョイスティック等の制御デバイスを使用して又はロボティックデバイスを物理的に誘導する(例えば、ロボティックを押す又は引く)ことにより、基部を使用したドアを開ける動作を通してロボットデバイスを誘導することができる。ロボティックデバイスは、ユーザが移動を誘導する間、情報を検知し記録することができ、その情報を使用して技能モデルを生成する。ロボティックデバイスは後にその技能モデルを使用して、例えば技能のユーザ実演中に輸送要素と関連付けられたキーフレームを変形することにより、環境中のそのドア又は他のドアを開く動作を実行することができる。
【0124】
[0162]
図13~
図17は、本明細書に記載の実施形態による、1つ又は複数のロボティックデバイスを含むロボティックデバイス(例えばロボティックデバイス100)により実行することができる方法1300及び1400を示す流れ図である。例えば、方法1300及び/又は1400は、単一のロボティックデバイス及び/又は複数のロボティックデバイスにより実行することができる。
図13は、実行モードで動作中のロボティックデバイスの流れ図を示す。実行モードにおいて、ロボティックデバイスは、環境内の動作を自律的に計画し実行することができる。どの動作を実行するかを決定し、及び/又は動作の実行の仕方を計画するために、1304において、ロボティックデバイスは環境をスキャンし、環境及び/又は環境内の物体についての情報を収集することができ、1305において、この情報を使用して、環境の表現又はマップ(例えばマップ及び/又は表現600)を構築及び/又は変更することができる。ロボティックデバイスは、環境を繰り返し(例えば、予め規定された時間及び/又は時間間隔で)又は連続してスキャンし、環境について収集した情報に基づいて環境の表現を更新することができる。上述した方法と同様に、ロボティックデバイスは、1つ又は複数のセンサ(例えば、センサ270又は570及び/又は画像捕捉デバイス572)を使用して環境についての情報を収集することができる。
【0125】
[0163] 幾つかの実施形態では、ロボティックデバイスは、1307におけるデータ追跡及び/又は解析のために、1304において、環境を繰り返し及び/又は連続してスキャンすることができる。例えば、ロボティックデバイスは、環境(例えば、病院等の建物)を通して移動し、自律的又は遠隔的に駆動され(例えばロボット監督者により)、環境、環境内の物体等に関するデータを収集することができる。この情報は、例えば、病院のサプライ品及び/又は機器を管理するデータ追跡及び解析要素(例えばデータ追跡及び解析要素329)により使用することができる。幾つかの実施形態では、ロボティックデバイスは種々の人間(例えば患者)についての情報を収集して、そのような患者の挙動(例えば、投薬及び/又は治療への準拠)を追跡し、診断試験を走らせ、及び/又はスクリーニング等を実行することができる。
【0126】
[0164] 幾つかの実施形態では、ロボティックデバイスは、1309におけるモデリング及び学習を目的として、1304において、環境を繰り返し及び/又は連続してスキャンすることができる。例えば、ロボティックデバイスは、環境及び/又はその環境内の物体に関するデータ(例えば、人間及びロボット動作に対応する人間の挙動を含む)を収集し、その情報を使用して新しい挙動及び/又は動作を開発することができる。幾つかの実施形態では、ロボティックデバイスは、環境についての大量の情報を収集することができ、それらを使用して、モデルを更に改良及び/又はその環境に固有のモデルを生成することができる。幾つかの実施形態では、ロボティックデバイスは、この情報をロボット監督者(例えば遠隔ユーザ)に提供することができ、ロボット監督者は情報を使用して、例えばその環境内の技能モデル及び/又は挙動を生成及び/又は改変することにより、特定の環境に向けてロボティックデバイスを更に適応させることができる。ロボット監督者は、ロボティックデバイス及び/又は他のロボティックデバイスにより収集される情報及び/又はロボティクスが使用しているモデルのパラメータを繰り返し(例えば特定の時間間隔で)及び/又は連続して(例えばリアルタイムで)微調整することができる。幾つかの実施形態では、ロボット監督者は、ロボティックデバイスとの情報のこの能動的な交換を介して、特定の環境に向けてロボティックデバイスを繰り返し及び/又は連続して適応させることができる。例えば、ロボティック監督者は、ロボティックデバイスが環境を通してナビゲートするために使用中であり得る計画されたパスを改変することができ、それにより、輸送要素の移動を生成するためにロボティックデバイスが使用する情報及び/又はモデルを変更することができる。これらの変更は、ロボット監督者により提供される変更及び/又はロボティックデバイスにより行われる変更の両方とも、環境のマップ(例えばマップ600)の1つ又は複数のレイヤ、例えばマップのソーシャルレイヤ又はセマンティックレイヤ等に供給することができる。
【0127】
[0165] 1306において、ロボティックデバイスは、環境内でどの動作を実行するかを決定することができ、即ち、特定の動作を実行可能な1組のリソース又は構成要素に対して調停を実行することができる。ロボティックデバイスは、1つ又は複数のアービトレーションアルゴリズム(例えばアービトレーションアルゴリズム362)に基づいて異なる動作の中から動作を選択することができる。ロボティックデバイスは調停を自律的に及び/又はユーザ入力を用いて実行することができる。例えば、ロボティックデバイスは、ロボティックデバイスが環境内の構成要素及び/又は物体の1つ又は複数の現在状態を特定することができない場合又はロボティックデバイスが、選択された技能を実行するための動作及び/又は選択された技能の実行の仕方を計画することができない場合、ユーザ入力を要求するように構成することができる。幾つかの実施形態では、ロボティックデバイスは、ロボティックデバイスが特定の設定に精通している(例えば、その設定で動作を前に学習したことがあり、及び/又はその設定で動作を前に実行したことがある)場合、1組の動作の中から自律的に選択し、ロボティックデバイスが新しい設定に直面した場合、ユーザ入力を要求するように構成することができる。ロボティックデバイスは、新しい設定に直面した場合、ユーザが、ロボティックデバイスが実行するのに適切な動作を選択することを要求することができ、又は代替的には、動作を選択し、動作の選択を確認するようにユーザに促すことができる。
【0128】
[0166] 幾つかの実施形態では、人間オペレータ(例えばロボット監督者)はロボティックデバイスをモニタし、人間オペレータがロボティックデバイスによる動作の実行に介入したいとき、ロボティックデバイスに信号を送信することもできる。人間オペレータは、ロボティックデバイス付近にいてもよく及び/又はネットワークを介してロボティックデバイス又はロボティックデバイスのモニタに使用することができる付近のデバイスに接続されたリモート計算デバイスにいてもよい。人間オペレータは、例えば人間オペレータが安全を理由にして(例えば、ロボティックデバイスの周囲の人間又は環境に危害が及ぶのを避けるために)及び/又はロボティックデバイスへの損傷を避けるために、新しい技能又は挙動をロボティックデバイスに教示したい場合、ロボティックデバイスによる動作の実行への介入を決定し得る。
【0129】
[0167] ユーザ入力が必要である(例えば、精通していない設定のため又はユーザからの信号に応答して)(1312:はい)との判断に応答して、1314において、ロボティックデバイスは任意選択的に、ユーザ入力を提供するようにユーザに促すことができる。例えば、ロボティックデバイスは、オンボードディスプレイ又はリモートデバイスに配置されたディスプレイに(例えばリモート又はクラウドインタフェースを介して)、ユーザ入力を求めるプロンプトをユーザに表示させ得る。1315において、ロボティックデバイスはユーザ入力を受信し、そのユーザ入力に基づいて調停を実行することができる。ユーザ入力が必要ない場合(1312:いいえ)、ロボティックデバイスは引き続き調停を自律的に実行する。
【0130】
[0168] ロボティックデバイスは、実行する動作を選択した後、1308において、動作を計画し実行することができる。上述したように、動作には、操作動作(例えば、本明細書に記載等の操作要素が関わる)又は移動(例えば、本明細書に記載等の輸送要素が関わる)及び/又は社会的挙動等のタスクを関連付けることができる。動作を実行している間、1304において、ロボティックデバイスは引き続き周囲環境をスキャンすることができる。ロボティックデバイスがそれ自体の現在状態及び/又は環境の状態(例えば、環境内の物体の位置)の変化を検出した場合、1310において、ロボティックデバイスは変化を評価して、動作の実行を中断すべきか否かを判断することができる。例えば、ロボティックデバイスは、構成要素の1つ若しくは複数と環境中の人間若しくは他の物体との物理的係合の検出に応答して(例えば、人間オペレータが操作要素、輸送要素等に触れた場合)又は付近の人間若しくは他の物体の存在を検出した場合、動作実行の中断を決定することができる。追加又は代替として、ロボティックデバイスは、ユーザ、例えばロボット監督者からの信号の受信に応答して、動作実行の中断を決定することができる。幾つかの実施形態では、ロボティックデバイスは、動作実行中、特定のポイントで、例えば、インタラクティブ学習テンプレートに規定されるように、ロボティックデバイスユーザに動作の一部を実演するように求め得る場合、動作実行を中断するように事前に構成することができる。インタラクティブ学習テンプレートを使用した学習に関する更なる詳細について
図15を参照して本明細書で説明する。
【0131】
[0169] ロボティックデバイスは、動作実行の中断を決定する場合(1310:はい)、1312において、ユーザ入力が必要であるか否かを判断し得る。上述したように、ロボティックデバイスは、ユーザ入力が必要であると判断した場合(1312:はい)、1314~1315において、任意選択的にユーザ入力を促し及び/又はユーザ入力を受信し得る。次いでロボティックデバイスは、1304における周囲環境の検知又はスキャンに戻ることができ、1306において1組のリソースに対して調停を実行し及び/又は1308において動作を実行することができる。任意選択的に、
図14及び
図15に示されるように、ロボティックデバイスは、ユーザ入力が必要であると判断した場合、学習モードに切り替わり、次いで1504における技能の学習又は1506における環境制約の学習に進むことができる。ロボティックデバイスは、ユーザ入力が必要ないと判断した場合(1312:いいえ)、1304における周囲環境の検知又はスキャンに戻ることができ、1306において1組のリソースに対して調停を実行し及び/又は1308において動作を実行することができる。ロボティックデバイスは、動作を中断する必要がないと判断した場合(1310:いいえ)、1308における動作の実行に続くことができる。
【0132】
[0170] 幾つかの実施形態では、ロボティックデバイスは、例えばロボティックデバイスが特定のタスク又は挙動を実行するのを助けるために、ユーザ入力を求める必要があり得るときを判断するように構成することができる。そのようなアシスタンスは、特定の動作の実行中及び/又はロボティックデバイスが環境を通してナビゲートしている間の両方で要求される可能性がある。ロボティックデバイスは、学習したモデル並びに環境及びその環境内の物体に関する情報を使用して、1312において、ユーザ入力を求める必要があるとき及びそのユーザ入力の求め方を判断するように構成することができる。例えば、ロボティックデバイスは、ドアのタイプ及び環境中の異なるユーザの知識を使用して、助けを求めるとき及び求め方、例えば、異なるタイプのドア(例えば、特定の許可又は知識を必要とするキーパッドを有するドア)を開けるのに異なるユーザに助けを求め、他の人よりもアシスタンスを提供する傾向がより高い可能性がある特定のタイプのユーザ(例えば看護師対医師)に求めることを知ることができる。
【0133】
[0171] 幾つかの実施形態では、例えば1315においてロボティックデバイスにより受信されるユーザ入力は、技能の選択及び/又は実行が適切であったか否か及び/又は成功したか否かに関するユーザからのフィードバックを含むことができる。例えば、ユーザは、ロボティックデバイスにより実行されている(又はロボティックデバイスにより以前に実行されたことがある)動作(例えばタスク又は挙動)を動作の肯定的な例又は否定的な例としてタグ付けすることができる。ロボティックデバイスは、このフィードバックを記憶し(例えば、その動作及び/又は他の動作と関連付けられた成功基準として)、将来、その動作又は他の動作の選択及び/又は実行を調整するためにそれを使用することができる。
【0134】
[0172] 幾つかの実施形態では、ロボティックデバイスは社会的に適切な挙動に従事するように構成される。ロボティックデバイスは、人間のいる環境で動作するように設計し得る。人間の周囲で動作する場合、ロボティックデバイスは、1306~1308において、その動作が人間によりどのように知覚され得るかについて常時計画するように構成することができる。例えば、ロボティックデバイスが移動中の場合、ロボティックデバイスは、1304において、人間について周囲環境をモニタし、1308において、出会ういかなる人間とも社会的相互作用に従事することができる。ロボティックデバイスがいかなるタスクも実行していない(例えば静止している)とき、ロボティックデバイスは、1304において、人間について周囲環境を引き続きモニタし、1306において、人間がロボティックデバイスの存在をいかに知覚し得るかに基づいて1つ又は複数の社会的に適切な挙動を実行する必要があり得るか否かを判断することができる。そのような実施形態では、ロボティックデバイスに、任意の特定の状況又は設定を所与として社会的に適切な挙動を計画し実行する基本的なフレームワーク(例えば、1つ又は複数のアービトレーションアルゴリズム)を構成し得る。ロボティックデバイスは、複数のリソース(例えば、操作要素、輸送様相、頭部又は眼等の人間の形をした構成要素、音源装置等)を管理し、これらのリソースの1つ又は複数に基づいて適切な挙動を生成するように構成することができる。
【0135】
[0173]
図15~
図17は、学習モードで動作するロボティックデバイスの流れ図を示す。上述したように、ロボティックデバイスは実行モードで動作し、例えば1312においてユーザ入力が必要であると判断した場合、学習モードでの動作に切り替わることができる。代替又は追加として、ロボティックデバイスは、例えば新しい環境(例えば、新しいエリア、建物等)に最初にデプロイされるとき、学習モードで動作するように設定することができる。ロボティックデバイスは、実行モードでの動作に切り替わることができることをユーザがロボティックデバイスに対して示すまで及び/又は実行モードでの動作に切り替わることができるとロボティックデバイスが判断するまで、学習モードで動作することができる。
【0136】
[0174] 学習モードで実行中の場合、ロボティックデバイスは、1504において技能を学習及び/又は1506において環境制約を学習することができる。ロボティックデバイスは、技能の既存モデル(例えば技能の汎用モデル)を用いて又は用いずに技能を学習するように構成することができる。既存のモデルなしで技能を学習する(例えば、事前知識に頼らずに技能を学習する)場合、ロボティックデバイスは、
図11に関して本明細書に記載したように、技能の実演を通して誘導された後、その技能のモデルを生成することができる。既存のモデル(例えば技能の汎用モデル)を用いて技能を学習する場合、ロボティックデバイスは、既存のモデルを用いて技能の実行を開始し、ロボティックデバイスがユーザによる技能の一部の実演を必要とする場合、ユーザ入力を要求することができる。技能の既存モデルは、インタラクティブ学習テンプレート、即ち、技能の実行中、指定されたポイントにおけるユーザからの入力を用いて技能を学習するようにロボティックデバイスを誘導するためのテンプレートであってもよく又はその一部をなしてもよい。
【0137】
[0175]
図16は、インタラクティブ学習テンプレートを使用して技能を学習するプロセスを示す。ロボティックデバイスは、特定の設定、例えば建物においてデプロイし得る。ロボティックデバイスは、1610において、技能の既存モデルを選択し得る。技能の既存モデルは、ロボティックデバイスが動作している環境又は設定に固有ではない技能の汎用モデルであり得る。1612において、ロボティックデバイスは、
図12を参照して本明細書で考察したプロセスと同様のプロセスに従って、技能モデルを使用して技能を実行する計画を生成することができる。1614において、ロボティックデバイスは、ユーザ入力及び/又は特殊化を必要としない技能の1つ又は複数のステップ又は部分を実行することにより、技能の実行を開始することができる。技能の一部分(例えば、ロボティックデバイスが実行の仕方を判断することができない一部分又はロボティックデバイスが技能を実行中の設定への特殊化を必要とする技能の一部分)に達すると(1616:はい)、ロボティックデバイスは、1618において、技能のその部分の実演を提供するようにユーザに促すことができる。幾つかの実施形態では、インタラクティブ学習テンプレートは、実演をユーザに促すときをロボティックデバイスに示し得る。代替又は追加として、ロボティックデバイスは、技能の一部分を実行できるようになるためにユーザ入力が必要であること、例えば、ロボティックデバイスが環境中の物体の状態を特定することができないとき及び/又は環境により課される制約を所与として技能の特定の部分を実行する計画を生成することができないときを自律的に判断し得る。幾つかの実施形態では、ユーザ(例えばロボット監督者)は、ロボティックデバイスの技能実行をモニタし、ユーザが技能の一部分をロボティックデバイスに対して実演したい場合、ロボティックデバイスに信号を送信することもできる。ロボティックデバイスは、ユーザから信号を受信すると、次いで1618に進むと判断することができる。
【0138】
[0176] 1620において、ユーザは移動を通してロボティックデバイスを誘導することができる。例えば、ユーザは、ロボティックデバイスの1つ又は複数の構成要素(例えば、操作要素、輸送要素等)を移動させて、技能の部分を実演することができる。移動を通してロボティックデバイスを誘導しながら、1622において、ユーザは任意選択的に、構成要素の1つ又は複数及び/又は環境の状態についての情報を捕捉するときをロボティックデバイスに示すことができる。例えば、ロボティックデバイスは、ロボティックデバイスの移動中、キーフレームにおいて、操作要素、輸送要素、及び/又は環境についての情報を含む感覚情報を捕捉する信号をユーザから受信することができる。代替的には、ロボティックデバイスは感覚情報を捕捉するときを自律的に決定することができる。例えば、ロボティックデバイスがユーザにより動かされている間、ロボティックデバイスは構成要素の1つ又は複数の変化をモニタし、それらの変化が閾値を超える場合又は構成要素の軌道に方向変化がある場合、自律的にそのポイントをキーフレームとして選択し、そのキーフレームにおけるロボティックデバイス及び/又は環境についての情報を記録することができる。ユーザからの信号の受信に応答して又は感覚情報を捕捉するとの自律的な決定に応答して、1624において、ロボティックデバイスはセンサの1つ又は複数を使用して感覚情報を捕捉することができる。ロボティックデバイスの移動中、1630において、ロボティックデバイスは、ユーザからの信号を受信することなく連続して又は定期的に、感覚情報を記録することもできる。
【0139】
[0177] 移動又は実演が完了すると(1626:はい)、1632において、ロボティックデバイスは任意選択的に、実演された技能の部分の学習に関連する特徴の選択を受信することができる。幾つかの実施形態では、1632において、ロボティックデバイスは自律的に、特徴を選択し及び/又はロボティックデバイスによりなされた選択を確認するようにユーザに促すことができる。1636において、ロボティックデバイスは実演と関連付けられた情報を記憶することができる。技能の実行が完了していない場合(1617:いいえ)、1614において、ロボティックデバイスは技能の実行に続き、1618において、必要に応じて、技能の部分の追加の実演をユーザに促すことができる。ロボティックデバイスは、動作の実行が完了する(1617:はい)まで、インタラクティブ学習プロセスを巡回し続けることができ、動作の実行が完了すると、1638において、ロボティックデバイスが技能を実行した設定に特殊化された部分を有する技能のモデルを生成することができる。次いでロボティックデバイスは別の技能及び/又は環境制約を学習することができる。代替的には、ロボティックデバイスは、別の技能及び/又は環境制約を学習する必要がない場合、実行モードに切り替わり、環境の検知又はスキャン、調停の実行、及び/又は動作の実行を開始することができる。
【0140】
[0178] インタラクティブ学習テンプレートを用いる場合、技能の初期モデルセットが教示及び/又は提供されたロボティックデバイス。初期モデルセットは、ロボティックデバイスが特定の環境(例えば病院)の現場にデプロイされる前、開発することができる。例えば、この初期モデルセットは、工場設定で又は訓練場所で開発することができ、ロボティックデバイスに提供することができる。現場にデプロイされると、ロボティックデバイスは、例えば、本明細書に記載のようにインタラクティブ学習セッションを介して初期モデルセットを環境に適応又は特殊化させることができる。更に、新しいモデルが開発される(例えば、現場外の工場で又は訓練場所で)につれて、新しいモデルは、例えばネットワーク接続を介してロボティックデバイスに提供することができる。したがって、本明細書に記載のシステム及び方法は、ロボティックデバイスが現場にデプロイされた後であっても、ユーザ及び/又はエンティティが引き続き技能の新しいモデルを開発し、それらの新しいモデルをそれらのロボティックデバイスに提供できるようにする。
【0141】
[0179] インタラクティブ学習セッションの一例は、室内での物品の移動に向けて汎用モデルを適応させることを含むことができる。ロボティックデバイスは、汎用モデルを備えることができ、病院という現場でデプロイすることができる。病院でデプロイされると、1612~1614において、ロボティックデバイスは技能の実行を自律的に開始して、物品を病室に移動させることができる。例えば、ロボティックデバイスは、病院のマップを使用して病室に自律的にナビゲートすることができる。ロボティックデバイスは、病室にナビゲートされると、病室のどこに物品を降下させるかのユーザによる実現が必要であるか否かを判断することができる(1616:はい)。
【0142】
[0180] 1618において、ロボティックデバイスは、特定の降下位置に動かすようにユーザに促すことができる。1620において、ユーザは、例えばジョイスティック又は他のタイプの制御デバイスを使用してロボティックデバイスの移動を制御することができる。上述したように、ユーザは現場のロボティックデバイスの付近にいてもよく又は離れた場所にいてもよい。ユーザがロボティックデバイスを降下位置に移動させている間、1624及び/又は1630において、ロボティックデバイスはその現在情報及び/又は周囲環境についての感覚情報を捕捉することができる。降下位置に来ると、1614において、ロボティックデバイスは元の自律実行に切り替わることができる。例えば、ロボティックデバイスは、既知のアーム運動を実行し、例えば物品をロボティックデバイスに搭載されたコンテナに配置し、操作要素を使用して物品を掴み、物品を解放するための一般位置に操作要素を位置決めすることができる。ロボティックデバイスは、技能の一部分、例えば物品を棚に置くことのユーザによる実演が必要であるか否かを判断することができる(1616:はい)。1618において、ロボティックデバイスは別の実演をユーザに促すことができ、ユーザは、物品が棚上の位置にあるように操作要素を移動させることができる。1624及び/又は1630において、ロボティックデバイスは、操作要素の移動中、感覚情報を再び捕捉することができる。1614において、ロボティックデバイスは制御を再び獲得し、操作要素のグリッパを自律的に開き、物品を棚の上に降下させ、次いで操作要素を元の静止位置に退避させることができる。次いで1638において、ロボティックデバイスは実行が完了したと判断し(1617:はい)、2つのユーザ実演中に捕捉された情報に基づいて技能の特殊化モデルを生成することができる。
【0143】
[0181] インタラクティブ学習セッションの他の例は、上述したように、例えば特定の廊下及び/又は戸口を通過するようにナビゲーション動作を適応することを含むことができる。
【0144】
[0182] 幾つかの実施形態では、ユーザ(又はロボティックデバイス)は、技能が実演され及び/又は技能のモデルが生成された後、モデルを改変することができる。例えば、ユーザは、技能の実演中に捕捉されたキーフレームを通して反復し、それらのキーフレームを維持、改変、及び/又は削除するか否かを判断することができる。1つ又は複数のキーフレームを改変及び/又は削除することにより、ユーザは、それらのキーフレームに基づいて生成された技能のモデルを改変することができる。キーフレームベースの実演の反復及び適応版を使用する例は、Akgunら著の題名Trajectories and keyframes for kinesthetic teaching: a human-robot interaction perspective”、Proceedings of the 7th Annual ACM/IEEE International Conference on Human-Robot Interaction (2012), pp. 391-98公開の記事に記載されており、これは参照により本明細書に援用される。別の例として、インタラクティブなグラフィカルユーザインタフェース(「GUI」)を使用して、技能の実演中に捕捉されたキーフレームをユーザに表示することができ、それにより、ユーザは、計画された実行中、ロボティックデバイスの構成要素の位置、向き等と関連付けられたどの程度の不一致が許容可能であるかを示すことができる。キーフレームと共にGUIを使用する例は、Kurenkovら著の題名“An Evaluation of GUI and Kinesthetic Teaching Methods for Constrained-Keyframe Skills”、IEEE/RSJ International Conference on Intelligent Robots and Systems (2015)公開の記事に記載されており、これはhttp://sim.ece.utexas.edu/static/papers/kurenkov_iros2015.pdfにおいてアクセス可能であり、参照により本明細書に援用される。これらの例では、技能学習後、技能のモデルを改変することができる。本明細書に記載のシステム及び方法は、技能の進行中の実行中、ロボティックデバイスが技能の他の部分はユーザ実演に任せながら、技能の特定の部分を計画し実行できるようにする学習テンプレートを更に提供する。更に、本明細書に記載のシステム及び方法は、例えば自律的に又は学習プロセスに先立ってロボティックデバイスに提供される情報に基づいて、いつデータを収集するか及び/又は技能の一部分の実演をいつ要求するかを判断することができるロボティックデバイスを提供する。
【0145】
[0183]
図17は、環境制約を学習するプロセスを示す。上述したように、ロボティックデバイスは環境制約を学習するように構成することができ、環境制約は、環境制約を含む設定で学習及び/又は実行される1組の技能に適用可能であり得る。1650において、ロボティックデバイスは任意選択的に、制約のタイプ及び/又は制約と関連付けられた物体を選択するようにユーザに促すことができる。制約タイプは、例えば、障壁(例えば、壁、表面、境界)、サイズ及び/又は寸法、制限付きエリア、物体の位置、時間制約等であることができる。1652において、ロボティックデバイスは制約タイプ及び/又は物体の選択を受信することができる。任意選択的に、1654において、ユーザ(又は他のロボティックデバイス)は、環境制約を実演するように移動を通してロボティックデバイスを誘導することができる。例えば、ユーザは、箱の1つ又は複数の縁部に沿ってロボティックデバイスの操作要素を動かすことにより、サプライ箱のサイズをロボティックデバイスに対して実演することができる。別の例として、ユーザは、棚の表面に沿ってロボティックデバイスの操作要素を動かすことにより、棚の位置を実演することができる。ロボティックデバイスの移動中、1656において、ロボティックデバイスは1つ又は複数のセンサ(例えば、カメラ、レーザ、触覚等)を使用して制約と関連付けられた情報を捕捉することができる。1658において、ロボティックデバイスは、環境制約を含む設定で実行された任意の技能のモデルと併用するために、環境制約と関連付けられた捕捉情報を記憶することができる。幾つかの実施形態では、ロボティックデバイスは、設定で実行される技能の各モデルにおける環境制約と関連付けられた情報を含み得る。代替的には、ロボティックデバイスは、設定での技能を計画及び/又は実行する際、環境制約と関連付けられた情報を参照するように構成することができる。幾つかの実施形態では、環境制約は環境の表現(例えば表現及び/又はマップ600)に追加し得る。
【0146】
[0184] 幾つかの実施形態では、ロボティックデバイスは、ユーザ実演又はロボティックデバイスの移動を要求せずに環境制約を学習することができる。例えば、1652において制約タイプ及び/又は物体の選択を受信した後、1656において、ロボティックデバイスは環境制約と関連付けられた関連情報を求めて環境をスキャンするように構成することができる。幾つかの実施形態では、ロボティックデバイスは、捕捉した情報及び/又は環境制約と関連すると判断された情報をユーザに提示することができ、それにより、ユーザは、どの情報が環境制約に関連するかを確認及び/又は改変することができる。次いで1658において、ロボティックデバイスは関連情報を記憶することができる。
【0147】
[0185] 幾つかの実施形態では、ロボティックデバイスは、輸送要素(例えば、車輪又はトラック)を使用して、環境を動き回り、1つ又は複数の環境制約を学習することができる。例えば、ロボティックデバイスは、例えば実演を受けており及び/又は技能を実行している間、通廊又は廊下を通って移動し、特定の時間フレーム中、通廊の人の出入りが多いことを学習することができる。幾つかの実施形態では、ロボティックデバイスは、種々の環境制約及び/又は挙動を学習し、異なる条件(例えば、時間、場所等)と関連付けることができる。例えば、ロボティックデバイスは、センサにより収集された情報、ユーザ入力、及び/又は(例えば、技能の実演及び/又は実行中)検知された情報から導出された情報に基づいて、通廊の人の出入りが多いことを認識することができる。別の例として、ロボティックデバイスは、ユーザが特定の部屋に入るとき、異なる日時で「こんにちは」又は「こんばんは」で応答すべきであると判断することができる。
【0148】
[0186] 幾つかの実施形態では、ロボティックデバイスは環境制約を自律的及び非インタラクティブで学習することができる。例えば、1658において、ロボティックデバイスは、環境を移動する(例えば、通廊又は廊下を移動する)ことにより、環境制約の初期セットを取得することができる。1659において、ユーザ(例えば、ロボット監督者又は付近のユーザ)は制約をレビューし、制約を直接改変することにより及び/又は実演を介して制約を調整すべきか否かを判断することができる。例えば、制約によっては、ロボティックデバイスとの相互作用(例えば実演)を通して提供することができるものもあれば、入力(例えば、例えばユーザインタフェース240等のユーザインタフェースへの)を通して提供することができるものもある(例えば、例えば棚が壁から延出する距離等の物体の位置)。
【0149】
[0187] 幾つかの実施形態では、ロボティックデバイスは探索を介して学習することができる。
図18は、探索を通して学習する方法の一例を示す流れ図である。1802において、ロボティックデバイスは環境をスキャンし、環境及び/又は環境内の物体についての情報を収集することができる。任意選択的に、ロボティックデバイスが収集した情報に基づいて、ロボティックデバイスは、技能を実行することにより環境を探索すると判断することができる。技能を実行するために、ロボティックデバイスは、1804において既存の技能モデルを選択することができ、1806において技能モデルを使用して技能の実行を計画し、1808において技能を実行することができる。例えば、ロボティックデバイスは環境をスキャンし、戸口を識別することができる。ロボティックデバイスは、ドアを開き、戸口を通って移動するステップを含む技能を実行すると判断することができる。1804において、ロボティックデバイスは、戸口を通過するために提供され及び/又は学習された既存の技能モデルを選択することができる。1806において、ロボティックデバイスは、例えば
図10を参照して考察したプロセスと同様のプロセスに従って、既存の技能を使用してドアを開き戸口を通って移動するための計画を生成することができる。そして1808において、ロボティックデバイスは、生成された計画に従って技能を実行することができる。技能を実行する間、1810において、ロボティックデバイスは、環境及び/又は技能の実行についての情報を収集し、そのような情報を、戸口との前の相互作用中に収集された情報と比較することができる。ロボティックデバイスは、この比較に基づいて、戸口との相互作用が成功したかそれとも失敗したかを評価することができる(例えば、上述したように成功基準に基づいて)。1812において、ロボティックデバイスは任意選択的に、技能の実行に基づいて戸口に固有の技能モデルを生成することができる。
【0150】
[0188] 幾つかの実施形態では、ロボティックデバイスは、技能の実行を開始し、技能の更なる完了にユーザ入力が必要であると判断し得る。例えば、
図16を参照して上述したように、ロボティックデバイスは技能の実行を開始することができ、ロボティックデバイスが実行の仕方を判断することができない技能の一部分に達すると、技能実行の基となるユーザ入力を求めることができる。
【0151】
[0189] 幾つかの実施形態では、ロボティックデバイスは技能を実行し、実行が失敗したと判断し得る。例えば、ロボティックデバイスは、戸口を通る移動を計画及び/又は実行することができるが、戸口を通って移動することができなかったことを検出することがある(例えば、ドアを開く試みが失敗又は狭い戸口を横切ってナビゲートすることに失敗したことに起因して)。ロボティックデバイスは、環境を再びスキャンすると判断し(1814:はい)、次いで1806~1808において技能を再計画及び再実行することができる。幾つかの実施形態では、1804において、ロボティックデバイスは異なる技能(例えば、狭い戸口により固有の技能)を選択し、次いで異なる技能に基づいて再計画及び再実行し得る。ロボティックデバイスは、特定の目的(例えば、所定数の回数又は方法で技能の実行に成功した、環境に関して十分な情報を学習した等)を満たしたとロボティックデバイスが判断するまで、技能を再検知、再計画、及び再実行することにより探索を介して引き続き学習することができる。1816において、ロボティックデバイスは、環境及び/又は環境内の物体のロボティックデバイスが収集した情報及び任意選択的に、環境内での技能の実行に基づいて適応又は生成された任意のモデルを記憶することができる。
【0152】
[0190] 幾つかの実施形態では、ロボティックデバイスは、ユーザ入力を用いた探索により学習に従事し得る。例えば、ロボティックデバイスは、特定の環境を探索及び/又はその環境で1つ又は複数の技能を実行して、その環境についてより多くの情報を学習することができる。ロボティックデバイスが探索中の間、ユーザ(例えば、離れたところにいる監督者又は付近のユーザ)は、ユーザが知覚した情報及び/又は環境について学習された情報に基づいて(例えば、環境にいることにより直接及び/又はロボティックデバイスを通して)、ロボティックデバイスに入力を提供することができる。次いでユーザは、環境の探索を更に誘導する1つ又は複数の入力をロボティックデバイスに提供することができる。例えば、戸口に直面したロボティックデバイスは、戸口を通過するために1つ又は複数の移動を計画し得る。ロボティックデバイスは、移動を実行すると、戸口を通るナビゲートに失敗し得る。ユーザは、ロボティックデバイスによる試みの失敗を見ることができ、2回目の試みで、戸口を通過するようにロボティックデバイスを誘導する入力をロボティックデバイスに提供することができる。例えば、ユーザは、戸口が狭い戸口であることを突き止め、戸口を通過する前にドアをまず開けるために、付近のユーザ又はロボティックデバイスを探すべきであることをロボティックデバイスに示すことができる。ロボティックデバイスは次いで、ユーザ入力を受信すると、戸口を通過する前にドアを開くために、ユーザを探すことができる。
【0153】
[0191] 幾つかの実施形態では、ロボティックデバイスは、環境及び/又は環境内の物体に関する情報をユーザから受信することにより又はモデル、ルール等の初期セットをユーザから受信することにより、ユーザ入力を介して学習することができる。幾つかの実施形態では、ロボティックデバイスはまず、実演(例えば、
図11を参照して上述したように)及び学習を通して技能を学習し、ユーザ入力に基づいてその技能を適応し得る。例えば、ロボティックデバイスは、第1の位置から第2の位置にサプライ品を移動させ、第2の位置にサプライ品を降下させる技能を学習することができる。技能のユーザ実演中、ユーザはロボティックデバイスに対して、第2の位置にサプライ品を降下させるには、環境又は状況に固有の特定の情報が必要であることを示すことができる。ユーザは後に、異なるサプライ品及び/又は異なる位置で、ロボティックデバイスがサプライ品を降下している間、観測すべき固有の情報を指定する入力をロボティックデバイスに提供することができる。例えば、ユーザは、ロボティックデバイスがサプライ品を降下すべき場所を識別するタグ又はマーカに関する情報を提供することができる。
【0154】
[0192] 幾つかの実施形態では、ロボティックデバイスは、記憶された情報及び/又はユーザ入力に基づいて挙動又はルール(例えば、上述したようなアービトレーションアルゴリズム362)を学習することができる。
図19は、挙動及び/又はルールのロボティック学習方法の一例のフローチャートである。1902において、ロボティックデバイスは記憶された情報(例えば、マップ、モデル、ユーザ入力)を解析することができる。1904において、ロボティックデバイスは、記憶された情報の解析に基づいて挙動及び/又はルールを導出することができる。例えば、ユーザ(例えばロボット監督者又は付近のユーザ)は、ロボティックデバイスの付近により多くの人間がいる場合、より会話的であるようにロボティックデバイスのルールを規定することができる。ロボティックデバイスは、記憶された情報の解析に基づいて、特定の日時中(例えばランチタイム前後)、付近により多くの人間がいると判断し得る。したがって、ロボティックデバイスは、その日時中、より会話的であるべきであることを更に導出し得る。幾つかの実施形態では、ロボティックデバイスは、この挙動を新しいルールとして自動的に実施することができる。代替的には、1906において、ロボティックデバイスは、その日時でより会話的であることを新しいルールとしてユーザに提案することができる。1908において、ロボティックデバイスは、ルールの提案に応答してユーザ入力を受信することができる。例えば、ユーザは、ロボティックデバイスのローカルディスプレイ及び/又はリモートディスプレイでルールを見て、許容又は拒絶し得る。1910において、ユーザ入力に基づいて、ロボティックデバイスは挙動及び/又はルールを改変することができる。例えば、ルールが許容可能であることをユーザが示す場合、ロボティックデバイスは新しいルールを記憶し、将来、それを実施することができる。代替的には、ルールが、更なる微調整又は変更(例えば、カフェテリアにいるときのみ、ランチタイム前後でより会話的である)をした上で許容可能であることをユーザが示す場合、ロボティックデバイスはルールを適応させ、適応されたルールを将来の実施に向けて記憶することができる。
【0155】
[0193] 幾つかの実施形態では、ロボティックデバイスは、ユーザ入力に基づいて、既存の技能及び/又は環境制約を適応させることにより技能及び/又は環境制約を学習することができる。
図20は、ユーザ入力に基づいて技能及び/又は環境制約を適応させる方法の一例の流れ図である。2002において、ロボティックデバイスはユーザ入力を受信することができる。2004において、ロボティックデバイスはユーザ入力に1つ又は複数の技能及び/又は環境制約を関連付けることができる。そのような関連付けは、例えば、ユーザによる更なる入力(例えば、入力が関連する技能及び/又は環境制約をユーザが指定する)及び/又はロボティックデバイスによる導出(例えば、入力及び/又は特定の技能又は環境制約と関連付けられた1つ又は複数のルール、属性等に基づいて、そのような入力に特定の技能又は環境制約が関連付けられることをロボティックデバイスが決定するに基づくことができる。例えば、ユーザは、QRコード、バーコード、タグ等の物体を識別するための新しい情報をロボティックデバイスに提供することができる。ユーザは、この新しい情報が特定の物体についての情報であることを指定することができ、ロボティックデバイスは新しい情報にその物体を関連付けることができる。ロボティックデバイスは、その物体についての新しい情報に、その物体との相互作用、例えば、把持技能又は移動技能が関わる1つ又は複数の技能を更に関連付けることができる。2006~2008において、ロボティックデバイスは任意選択的に、入力に基づいて技能又は環境制約を改変及び/又は生成することができる。
【0156】
[0194] 幾つかの実施形態では、ロボティックデバイスは、ユーザが、技能及び/又は環境制約と関連付けられた情報を遡及的にラベリングできるようにすることができる。例えば、ロボティックデバイスは、例えばユーザインタフェース(例えばユーザインタフェース240)及び/又はリモートインタフェースを介して技能又は環境制約をユーザに提示することができる。ユーザは、技能又は環境制約と関連付けられたラベルの追加、改変、及び/又は除去を選択することができ、2002において、そのような入力はロボティックデバイスにおいて受信することができる。次いで2004において、ロボティックデバイスは入力に技能又は環境制約を関連付けることができ、2006~2008において、入力に基づいて新しい技能又は環境制約を改変及び/又は生成することができる。
【0157】
[0195]
図21は、マップ2120(例えば、例えば病院等の建物マップ)から流れる情報及びマップ2120に供給される情報の一例を示す。マップ2120は、本明細書に記載等の任意のロボティックデバイス等の1つ又は複数のロボティックデバイスにより記憶及び/又は維持することができる。マップ2120は、
図6に示されるマップ600と同様であることができる。例えば、マップ2120は、1つ又は複数のレイヤ2122、例えばナビゲーションレイヤ、静的レイヤ、動的レイヤ、及びソーシャルレイヤ等を含むことができる。
【0158】
[0196] マップ2120は、学習モード2102又は実行モード2112で動作している間、ロボティックデバイスが使用することができる情報を提供することができる。例えば、学習モード2102で動作しているロボティックデバイスは、マップ2120にアクセスして、環境制約、物体、及び/又は社会的状況に関する情報を取得することができる(例えば、状態情報332、物体情報340、環境制約354等と同様に)。そのような情報は、本明細書に記載のように、ロボティックデバイスが物体の位置を特定し、物体の特性を識別し、1つ又は複数の環境制約を解析し、使用する技能モデルを選択し、入力をユーザに促す等できるようにすることができる。追加又は代替として、実行モード2112で動作しているロボティックデバイスは、マップ2120にアクセスして、環境制約、物体、及び/又は社会的状況に関する情報を取得し、その情報を使用して環境を評価し、異なる挙動又は技能間を調停し、どの技能を実行するかを決定し、及び/又は特定の環境に合うように挙動又は技能を適応させることができる。
【0159】
[0197] 学習モード2102で動作しているロボティックデバイスは、マップ2120内の情報に追加及び/又はマップ2120内の情報を変更する情報を提供することもできる。例えば、ロボティックデバイスは、検知された情報2104(例えば、ロボティックデバイスの1つ又は複数のセンサにより収集された情報)及び/又は導出された情報2106(例えば、例えば検知された情報2104の解析に基づいてロボティックデバイスにより導出された情報)をマップ2120に組み込むことができる。ロボティックデバイスは、情報をマップ2120に追加及び/又はマップ2120内の既存の情報を適応させることにより、そのような情報を組み込むことができる。更に、実行モード2112で動作しているロボティックデバイスは、マップ2120に追加及び/又はマップ2120内の情報を変更する情報(例えば、検知された情報2114、導出された情報2116)を提供することができる。
【0160】
[0198] 一例として、戸口の通過の仕方の実演を受けているロボティックデバイス(例えば、
図11及び
図16に示される等)は、実演中、マップ2120のレイヤ2122に供給される情報を収集することができる。戸口は、例えばマップ2122に表される、建物全体を通して種々の場所に存在する特定の戸口であることができる。戸口の特性及び/又は性質は、ロボティックデバイスの種々のセンサにより記録及び/又は検知された情報に基づいてロボティックデバイスにより導出することができる。例えば、ロボティックデバイスは、戸口のサイズを検知し、戸口が狭いことを突き止めることができる。ロボティックデバイスは、例えば1つ又は複数のセマンティックラベルを使用して、生又は処理済みのセンサ情報として、導出されたルール等として、戸口に関するこの情報をマップ2120に追加することができる。ロボティックデバイスは情報を使用して、マップの状況レイヤ(例えば、例えば
図6に示されるソーシャルレイヤ630等のマップのソーシャル又は挙動レイヤ)を適応させることもできる。例えば、ロボティックデバイスは、例えば、ユーザ(又は他のロボティックデバイス)に続いて及び/又はユーザ(又は他のロボティックデバイス)と並んで戸口を通過する代わりに、戸口がユーザ(又は他のロボティックデバイス)によって開かれているとき、戸口を通過すること、その戸口を通過する際にロボティックデバイスを助ける(例えば、戸口を開いた状態に維持及び/又は種々の動作を通してロボティックデバイスを誘導することにより)ためにその戸口になれた特定のユーザを探すこと等を含め、戸口が狭いことに基づいて特定の挙動及び/又は動作に従事すると決定することができる。
【0161】
[0199] 幾つかの実施形態では、マップ2120は、本明細書に記載の1つ又は複数のロボティックデバイスのために中央に維持することができる。例えば、マップ2120はリモート計算デバイス(例えばサーバ)に記憶され、例えば病院内で一緒に動作するロボティックデバイス群のために中央でホストすることができる。マップ2120は、ロボティックデバイス群が学習モード2102及び/又は実行モード2112で動作する際、情報(例えば、検知された情報2104、2114、及び導出された情報2106、2116)がそれらのロボティックデバイスから受信されるにつれて、更新することができ、動作、挙動等を実行するために、必要に応じて各ロボティックデバイスに提供されることができる。マップ2120の1つ又は複数のレイヤ2122が適応されるように、群内の個々のロボティックデバイスが新しい情報を学習するにつれて、他のロボティックデバイスが同様の環境に直面及び/又は同様の技能(例えば、動作、挙動)を実行する場合、この情報は他のロボティックデバイスと共有することができる。幾つかの実施形態では、マップ2120のローカルコピーは各ロボティックデバイスに記憶することができ、マップ2120の中央に維持されるコピーを用いて更新又はそれと同期する(例えば、所定の間隔で、営業時間外又はダウンタイム中)ことができる。マップを定期的に更新し(例えば、検知された情報2104、2114及び導出された情報2106、2116等の新たに収集された情報で)及び/又はマップをロボティックデバイス間で共有することにより、各ロボティックデバイスは、周囲環境内で相互作用及び/又は技能実行するためにより正確な情報をデータするより包括的なマップにアクセスすることができる。
【0162】
[0200] 幾つかの実施形態では、マップ2120は、情報(例えば、環境制約、ルール、技能等)を学習することができ(例えば、学習2102及び/又は実行2112中)及び/又は情報をユーザにより提供することができる(例えば、ユーザインタフェース2130を介して)混合先導マップであることができる。例えば、ロボティックデバイスは、ユーザ(例えば、ロボット監督者又は付近のユーザ)により直接与えられる情報、実演及び/又は実行を通して学習された情報、又は実演及び/又は実行とユーザ入力(例えば、リアルタイム又は遡及的に相互作用についてロボティックデバイスにより要求された)との組合せを通してインタラクティブに提供された情報を組み込むことにより、マップ2120を構築することができる。例えば、ユーザは、マップ2120のある領域(例えば、狭い廊下又は人の往来が多い廊下)をより低速で移動すべきであることをロボティックデバイスに対して示すことができる。幾つかの実施形態では、ロボティックデバイスはマップをユーザに提示することができ、ユーザはマップ上に領域を描き、ロボティックデバイスがその領域をより低速で移動すべきであることを示すことができる。ロボティックデバイスは、マップ2120上のその領域の移動を数回試み、特定の日時はその領域を避けるべきである(例えば、混雑に起因して)ことを学習し得る。代替又は追加として、ロボティックデバイスは、自律的に処理するには不慣れな新しい状況(例えば、区分けされた廊下)に直面することがある。そのような状況では、ロボティックデバイスはユーザ(例えば、ロボット監督者及び/又は付近のユーザ)と通信して、その領域についてのより多くの情報を獲得及び/又はその領域周囲のナビゲートの仕方を判断することができる。ユーザ入力を要求する場合、ロボティックデバイスは、状況に関して広く尋ね及び/又はユーザがラベリングするため(例えば、ロボティックデバイスが適切な挙動を自律的に導出できるようにするため)の例のリストを提供することができる。幾つかの実施形態では、ロボティックデバイスは、ユーザ入力なしで領域に関する情報を検出及び/又は導出し、その領域と関連付けられた1つ又は複数のルールを確認のためにユーザに提案することができる。幾つかの実施形態では、ユーザは、ロボティックデバイスからの提案されたルール及び/又は他の情報を見た後、ルール及び/又は他の情報を改変してから許容することができる。本明細書に示されている
図19は、そのようなプロセスのより詳細な説明を提供する。
【0163】
[0201] ナビゲーション構成要素及び操作要素を含む本明細書に記載のロボティックデバイスは、例えばドアの通過等の挙動又は技能を実行するように構成することができる。特に、本明細書に記載のロボティックデバイスは、ドアを開くようにナビゲート又はドアを通過するようにナビゲートすることができる。上述したように、ロボティックデバイスに、技能実行に先立って、ドア通過等の技能を教示することができる(本明細書では「実行前フェーズ」と呼ばれる)。以下のプロセスはドア通過に関して説明されるが、そのようなプロセスが、ナビゲーション及び/又は操作を必要とする他の挙動又は技能に適用することも可能なことを認めることができる。例えば、幾つかの実施形態では、本明細書に記載のプロセスは、1つ又は複数のエレベータボタンを押下して、例えばエレベータを開くことに適用することができる。特に、そのようなプロセスは、ロボティックデバイスがオフライン(例えば、実行前フェーズ)であるとき、種々の挙動又は技能を実行するための計画(例えば、挙動又は技能を実行するための計画のキャッシュ)を生成するのに使用することができ、それにより、ロボティックデバイスは、ライブで動作しているとき、実行するためのそれらの計画を素早く取り出すことができる。
【0164】
[0202]
図22は、ロボティックデバイス(例えば、例えばロボティックデバイス102、110、200、500等を含む本明細書に記載の任意のロボティックデバイス)が、ドアの通過の仕方を学習し、ドアの通過を実行できるようにする異なるプロセスを示す流れ図である。幾つかの実施形態では、ロボティックデバイスは、ドア及び周囲環境に関連するセマンティックデータを使用して、ドアを開いてドアを通過するための軌道又は計画を決定するように構成することができる。ロボティックデバイスは、ナビゲーションの実行(例えば事前実行フェーズにおいて)に先立って学習を受ける(例えば学習モード2206で)ように構成することができる。学習モード2206で動作している間、ロボティックデバイスはセマンティックデータをドア及び周囲環境に関連付けることができる。例えば、ロボティックデバイスは、更に後述するように、基準、ドアデバイス姿勢、参照姿勢、衝突プリミティブ、計画群、標的姿勢、それらの組合せに戸口又はドアを関連付けることができる。ロボティックデバイスは、セマンティックデータに基づいて、
図23~
図25に記載のように、戸口を通過するための計画キャッシュを生成し保存することができる。次いで、実行モード2208で動作している間、ロボティックデバイスは計画キャッシュに素早くアクセスして実行して、ドアを開き及び/又はドアを通過することができる。ロボティックデバイスは、
図26に示されるように計画キャッシュを実行することができる。追加又は代替として、ロボティックデバイスは、高速ボタンプッシュを実施して(例えば、計画キャッシュにアクセスすることにより)、ドアを通過することができる。そのようなプロセスの更なる詳細について後述する。
【0165】
[0203] 学習モード2206において(例えば、ドア通過技能を実行する前及び/又は実行前フェーズにおいて)、ロボティックデバイスは、ドアと関連付けられたセマンティックデータの学習及び/又は教示を受けることができる。例えば、ロボティックデバイスは、更に後述するように、基準、参照姿勢、静的障害物、アームの動き、及び/又はボタンプッシュ(例えば高速ボタンプッシュ)の学習を受けることができる。幾つかの実施形態では、ロボティックデバイスは、本明細書に記載のガイド付き教示を使用して学習及び/又は教示を受けることができる。
【0166】
[0204] ロボティックデバイスは、ロボティックデバイスが通過する必要があるドアのタイプに基づいて、ドアと関連付けられた情報(例えばセマンティックデータ)を学習することができる。例えば、幾つかの実施形態では、ロボティックデバイスは、自動ドアを開き、アクセスし、及び/又は通過することができる。自動ドアは、無線周波識別(RFID)スキャナ、波動センサ、及び/又はボタンの1つ又は複数がアクティブ化されると開くことができるドアであることができる。例えば、ドアは、アクティブ化デバイスがアクティブ化されると開き得る。
図28は、アクティブ化デバイスの変形例を示す。例えば、2730aは一例のRFIDスキャナを示す。一例の波動センサが
図28に波動センサ2730bとして示されている。同様に、一例のボタンがボタン2730cとして
図28に示されている。
図28はアクティブ化デバイスの変形例を示しているため、
図28は転じて、異なるドアタイプの変形例も示している。各タイプのアクティブ化デバイスで、ロボティックデバイスは、ドアを開くために、アクティブ化デバイスをアクティブ化するためにロボティックデバイスにより要求される操作のタイプ(例えば、RFIDバッジのスキャン、ボタンのプッシュ等)をロボティックデバイスに対して示す、記憶されている計画を実行することができる。
【0167】
[0205] 幾つかの実施形態では、アクティブ化デバイスのアクティブ化をロボティックデバイスに教示するために、基準タグ等のマーカをアクティブ化デバイス付近に配置することができる。
図29は、アクティブ化デバイス2930の付近(例えば上方)に配置された一例の基準タグ2924(例えば、
図28のRFIDスキャナ2730aと構造的及び/又は機能的に同様)を示す。
図29はアクティブ化デバイス2930の上方に配置されるものとして基準タグ2924を示しているが、基準タグ2924がアクティブ化デバイス2930の付近の任意の適した位置に配置可能なことが容易に理解されるべきである。例えば、幾つかの実施形態では、基準タグ2924はアクティブ化デバイス2930の下方に配置することができる。追加又は代替として、基準タグ2924はアクティブ化デバイス2930の右側又は左側に配置されてもよい。幾つかの実施形態では、基準タグをマーカとして使用する代わりに、マーカはアクティブ化デバイス自体であってもよい。幾つかの実施形態では、異なるドアを開けるためのデータ(例えば、複数のドアを開けるためのデータ)は、共有操作データとしてロボティックデバイスにより記憶され、ロボティックデバイスによりアクセスされてもよい。幾つかの実施形態では、共有操作データを使用するために、基準タグ2924は複数のドアにわたりアクティブ化デバイス2930に対して同じ位置に配置することができる。他の実施形態では、共有操作データを使用するために、基準タグ2924は複数のドアにわたりアクティブ化デバイス2930に対して異なる位置に配置することができる。更に他の実施形態では、共有操作を使用するために、基準タグをアクティブ化デバイス2930の付近に配置する代わりに、アクティブ化デバイス2930自体をマーカとして使用することができる。幾つかの実施形態では、基準タグの裏面は接着剤(例えばグルー)を含むことができる。基準タグ2924は、基準タグ2924の裏を剥がして壁に配置することにより、壁に取り付けることができる。幾つかの実施形態では、基準タグ2924は、アクティブ化デバイス2930から所定の距離内に、例えばアクティブ化デバイス2930から約0cm(即ちデバイス上)~約30cmの距離に配置することができる。アクティブ化デバイス2930が、単に例示を目的として
図29においてRFIDスキャナとして示されていることが容易に理解されるべきである。基準マーカ2924は、
図28に示されるアクティブ化デバイス等の任意の適したアクティブ化デバイス付近に配置することができる。本明細書での例はドアを開くことに関して提供されるが、そのようなことは、例えばドア以外のデバイスをアクティブ化及び/又は制御するための他のタイプのアクティブ化デバイス及びボタンに拡張可能なことを認めることができる。
【0168】
[0206] 上述したように、アクティブ化デバイスをアクティブ化及び/又はトリガーするようにロボティックデバイスに教示するためのマーカは、アクティブ化デバイス自体であってもよい。例えば、基準タグ又は任意の他のタイプの物理的マーカをアクティブ化デバイス付近に配置する代わりに、ロボティックデバイスは、アクティブ化デバイスを識別し(例えば、
図3を参照して説明したように、オブジェクト情報に基づいて)、アクティブ化デバイスをアクティブ化するようにロボティックデバイスに教示するため及びアクティブ化デバイスのアクティブ化を実行するためのマーカとして、アクティブ化デバイス自体を登録するように構成することができる。環境の表現を取得し、その環境内の1つ又は複数のマーカ(例えばアクティブ化デバイス)を識別するプロセスは、
図7を参照して説明したように、方法700に基づいて実施することができる。
【0169】
[0207] ドアタイプ例に加えて、本明細書に記載されるのは、ロボティックデバイスが自動ドアを開き、自動ドアにアクセスし、及び/又は自動ドアを通過することができるように、ロボティックデバイスに対してドア操作を教示するために使用することができる情報の例(例えば、セマンティックデータ、姿勢データ、物体データ、又は操作データ)である。物体/姿勢/操作データは、ロボティックデバイスのオンボードメモリ及び/又はリモート記憶装置(例えば、
図1の計算デバイス150等のリモート計算デバイス又は
図1のサーバ120等のサーバ)に記憶することができる。幾つかの実施形態では、データは、特定のドア及び/又はタスクと関連付けられたデータ構造又はファイル(例えば、データ構造の対応するフィールド)に記憶することができる。幾つかの実施形態では、記憶されたデータ及び/又はファイルは、例えば異なるキャッシュ計画、キーフレーム等と関連付けられた異なるライブラリに記憶された他のデータ及び/又はファイルを参照することができる。
【0170】
[0208] 幾つかの実施形態では、異なるドアを開くためのデータ(例えば、複数のドアを開けるためのデータ)は、共有物体/姿勢/操作データとしてより効率的に記憶することができる。例えば、環境内の各ドアに異なる組の物体/姿勢/操作データが記憶される代わりに、環境内の複数のドアが略同様又は同じである場合、そのような複数のドアで1組の物体/姿勢/操作データを記憶することができる。これにより、ロボティックデバイスは、ロボティックデバイスの動作を遅くさせる恐れがあり及び/又は信頼性が低い、ネットワークリソース(例えばサーバは)からのデータのダウンロードに頼る必要なく、より多くのデータをオンボードで記憶する(ひいては、より多くのドアを通過するように備えられる)ことができる。
【0171】
[0209] ドアと関連付けられる物体/姿勢/操作データの例は、基準、ドアデバイス姿勢、参照姿勢、衝突プリミティブ、計画群、標的姿勢、操作、及び/又はそれらの組合せ等を含むことができる。幾つかの実施形態では、基準は、環境のマップ(例えば、
図6のマップ600)に対するアクティブ化デバイス(例えば、
図28のアクティブ化デバイス2730a、2730b、及び2730c)と関連付けられた基準タグ(例えば、
図29の基準タグ2924)の姿勢であることができる。例えば、ロボティックデバイスが病院環境で動作している場合、基準は、病院のマップに対する基準タグの姿勢であることができる。幾つかの実施形態では、ドアデバイス姿勢は、環境のマップ(例えば、
図6のマップ600)に対するアクティブ化デバイス(例えば、
図28のアクティブ化デバイス2730a、2730b、及び2730c)の姿勢であることができる。
図30は、幾つかの実施形態による基準及びドアデバイス姿勢の一例を示す。例えば、
図30は一例の基準タグ3024を含む。基準タグ3024はアクティブ化デバイス3030の付近(例えば上方)に位置する。
図30は、マップ3032の中心座標系又は原点に対する基準タグ3024を示す。
図30は、マップ3032の中心座標系又は原点に対するアクティブ化デバイス3030も示す。
【0172】
[0210] 幾つかの実施形態では、ロボティックデバイスの基部リンク(例えば、ロボティックデバイスの基部の位置と関連付けられたリンク)に対する参照姿勢に、アクティブ化デバイス(例えば、
図28のアクティブ化デバイス2730a、2730b、及び2730c)を関連付けることができる。
図31は、幾つかの実施形態による参照姿勢の一例を示す。例えば、
図31は一例の基準タグ3124を含む。基準タグ3124はアクティブ化デバイス3130の付近(例えば上方)に位置する。
図31は、ロボティックデバイスの基部リンク3100に対するアクティブ化デバイス3130を示す。
【0173】
[0211] 幾つかの実施形態では、衝突プリミティブは、アクティブ化デバイス(例えば、
図28のアクティブ化デバイス2730a、2730b、及び/又は2730c)がある壁上の1組の障害物を表すことができる。これらの組の障害物は壁上の大きな障害物であることができる。例えば、衝突プリミティブは、アクティブ化デバイスと共に壁にある、消火器、ソープディスペンサ、ハンドサニタイザディスペンサ等のような壁上のデバイス、大きな釣合棒等の壁の突起物(例えば、
図27C突起物2728)等、及び/又はそれらの組合せ等の障害物を表すことができる。衝突プリミティブの例は、空間位置を表すバウンディングボックス等の座標データ及び種々の物体の幾何学的パラメータであることができる。
【0174】
[0212] 幾つかの実施形態では、計画群又は計画キャッシュは、戸口と関連付けられた1組の操作計画であることができる。計画群は、計画と関連付けられたライブラリに保存された1組の操作計画(例えば、キーフレームを含む)を参照することができる。幾つかの実施形態では、計画群内の各計画には基部-タグ-エンドエフェクタ構成(例えば、ロボティックデバイスの基部、基準タグ又は物体マーカ、及びロボティックデバイスのエンドエフェクタ又は操作デバイスの間の相対位置)を関連付けることができ、それにより、教示中、基部-タグ-エンドエフェクタ構成に従って計画を選択することができ、教示をより容易にする。
【0175】
[0213] 幾つかの実施形態では、標的姿勢は、操作終了時のロボティックデバイスのエンドエフェクタ(例えば、ロボティックデバイスのアーム上のグリッパ)の姿勢であることができる。例えば、標的姿勢は、アクティブ化デバイス上又はその近傍のエンドエフェクタの姿勢(例えば、アクティブ化デバイスをアクティブ化することができる操作の終了時の姿勢)であることができる。標的姿勢は、基準タグの基準系(例えば、
図30に示される3024の座標系)、アクティブ化デバイスの基準系(例えば、
図30に示される3030の座標系及び/又は
図31に示される3130の座標系)、及び/又は操作のための他の適した座標系で記憶することができる。幾つかの実施形態では、操作データは戸口ファイルの操作フィールドにより設定することができる。ドア通過の学習及びドア通過の実行は、本明細書では基準タグを参照して説明されているが、環境内の任意の物体、マーカ、シンボル、タグ等が位置特定のためにロボティックデバイスにより使用可能であることを認めることができる。
【0176】
[0214] 上述したように、
図23~
図25は、ロボティックデバイス(例えば、ロボティックデバイス100、200、及び/又は500)が、例えば戸口を通過する計画キャッシュを生成し保存できるようにする種々の手段を示す流れ図を示す。例えば、
図23~
図25は、ロボティックデバイスが戸口を通過できるようにする種々の学習又は教示シナリオを示す流れ図を示す。幾つかの実施形態では、各教示シナリオは状態機械(例えば、ガイド付き教示ドア状態機械)が仲介することができる。幾つかの実施形態では、ユーザは教示シナリオを通してロボティックデバイスを誘導することができる。例えば、学習モードが開始されたとき、ガイド付き教示ドア状態機械を開始することができる。ガイド付き教示ドア状態機械に、ユーザにより入力として戸口識別子(例えば、通過するドアと関連付けられた識別子)を提供することができる。ガイド付き教示状態機械は、教示プロセスの種々のステップを通してユーザに命令する命令及びプロンプトをユーザに提供することができ(例えば、ロボティックデバイス又はリモート計算デバイスのディスプレイに)、ユーザがガイド付き教示状態機械にデータを提供できるようにすることができる。本明細書に開示される教示又は学習シナリオは状態機械を介して実施されるものとして説明されるが、任意の適したアーキテクチャを使用して教示シナリオを仲介し得ることが容易に理解されるべきである。例えば、任意の適したモデル(例えば計算モデル)を使用して教示シナリオを仲介することができる。
【0177】
[0215]
図23は、幾つかの実施形態による共有教示シナリオを示す流れ図である。共有教示シナリオは、ロボティックデバイスの特定の基部のアクティブ化デバイス、基準タグ又はマーカ、ドアデバイス姿勢、及びエンドエフェクタ(本明細書では「基部-タグ-エンドエフェクタ」又は「基部-マーカ-エンドエフェクタ」構成と呼ぶ)をアクティブ化するための操作データを教示することができる。その結果生成される操作は、複数の戸口及び現場所に適用することができる。基準タグを含む実施形態では、基準タグは、アクティブ化データに対して任意の適した位置に位置することができる。基準タグの位置は、ロボティックデバイスに対して決定することができる。
図32は、ロボティックデバイスに対する基準タグ位置のある非限定的な例を示す。例えば、ロボティックデバイスに対して4つの基準タグ位置、例えば右、左、右前、及び左前があり得る。同様にして、基準タグに対するエンドエフェクタの可能な向きを特定することができる。
図33は、基準タグ3332に対するエンドエフェクタの向きの例を示す。
図33に見られるように、幾つかの実施形態では、基準タグ3332はアクティブ化デバイス3330の上方に配置することができる。基準タグ3332に対してエンドエフェクタの複数の向き、例えば、水平向き、垂直向き、及び直交向きがあり得る。これらの操作データは、複数の戸口及び場所にわたる複数のシナリオをカバーするように共有することができる。
【0178】
[0216] 再び
図23を参照すると、2312において、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、ロボティックデバイスがアクティブ化デバイスに到達することができるように、アクティブ化デバイス(例えば、2730a、2730b、及び/又は2730c)付近の位置にロボティックデバイスを配置するようにユーザに促すことができる。例えば、ガイド付き教示ドア状態機械は、位置決め中、ロボティックデバイスが壁又は別の障害物/物体に衝突しないように、アクティブ化デバイス付近の位置にロボティックデバイスを配置するようにユーザに促すことができる。幾つかの実施形態では、ロボティックデバイスは、ロボティックデバイスの基部に対する基準タグ(例えば基準タグ2934)の位置を捕捉するように、ロボティックデバイスのカメラ等のセンサを向けるようユーザに促すことができる。
【0179】
[0217] 2314において、ロボティックデバイスは任意選択的に、基準(例えば、環境のマップに対する基準タグの姿勢)、物体(例えば、環境内の物体又はマーカの物理的特性)、及び/又は参照姿勢(例えば、ロボティックデバイスの基部リンクに対するアクティブ化デバイスの姿勢)を教示するようにユーザに促すことができる。幾つかの実施形態では、基準及び参照姿勢は任意選択的に、開始姿勢又は開始構成、例えば基部-タグ-エンドエフェクタ構成等を教示する(例えば2316において)のに使用することができる。2316において、ロボティックデバイスは任意選択的に、開始姿勢を教示するようにユーザに促すことができる。開始姿勢は、アクティブ化デバイス付近に位置決めされた後且つ操作を開始する(例えば、アクティブ化デバイスをアクティブ化する)前のエンドエフェクタ(例えば、ロボティックデバイスのアーム上のグリッパ)の姿勢であることができる。例えば、開始姿勢は、エンドエフェクタがアクティブ化デバイスのアクティブ化を開始する前のエンドエフェクタの姿勢であることができる。幾つかの実施形態では、ロボティックデバイスの開始姿勢は、ロボティックデバイスがアクティブ化デバイス付近に位置決めされたとき、2314において特定された基準及び参照姿勢に基づいて決定することができる。幾つかの実施形態では、開始姿勢は、ロボティックデバイスがアクティブ化デバイス付近に位置決めされた(例えば、2312において)後の基準タグに対するエンドエフェクタの初期姿勢であることができる。幾つかの実施形態では、開始姿勢は、操作のための最初のキーフレーム(例えば、線形前運動姿勢)であることができる。したがって、2312においてロボティックデバイスが基準、マーカ、及び/又は参照姿勢を学習した後、ロボティックデバイスは、2318において、操作技能と関連付けられた1組のキーフレームを学習するように構成することができる。幾つかの実施形態では、ロボティックデバイスは、開始姿勢が決定及び/又はロボティックデバイスに教示された後、開始姿勢、基準、及び/又は参照姿勢を登録することができる。
【0180】
[0218] 2318において、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、操作のためのキーフレーム(例えば、アクティブ化デバイスをアクティブ化するためのキーフレーム)を学習することができる。例えば、ガイド付き教示ドア状態機械は、
図11を参照して図示し説明したものと同様の技法を使用して、操作のためのキーフレームを教示するようにユーザに促すことができる。例えば、ユーザは、アクティブ化デバイスをトリガーするために必要な操作をロボティックデバイスに対して実演することができる。ロボティックデバイスは、ユーザによる実演中、複数のキーフレームにおいて1つ又は複数のセンサからセンサデータを取得することができる。幾つかの実施形態では、キーフレーム間の運動は、ロボティックデバイスの輸送要素及び/又は操作要素の移動を含むことができる。2320において、ロボティックデバイスは標的姿勢を学習することができる。標的姿勢は、操作終了時(例えば、アクティブ化デバイスのアクティブ化終了時)のエンドエフェクタの姿勢であることができる。例えば、ガイド付き教示ドア状態機械は、エンドエフェクタをアクティブ化デバイスと接触させることにより標的姿勢を教示するようにユーザに促すことができる。幾つかの実施形態では、ロボティックデバイスは、標的姿勢が決定及び/又はロボティックデバイスに教示された後、標的姿勢を登録することができる。アクティブ化デバイスがボタン(例えばボタン2730c)である場合、標的姿勢をロボティックデバイスに教示することは、ボタンをプッシュするようにロボティックデバイスに教示することを含む必要がない。言い換えれば、標的姿勢は、ボタンのプッシュとは対照的に、エンドエフェクタがボタンに接触することであることができる。ボタンをプッシュするために必要な変位は、実行モード中、ロボティックデバイスが担当することができる。したがって、共有教示シナリオは、ロボティックデバイスがアクティブ化デバイスをアクティブすることができるように、ロボティックデバイスにアーム運動を教示することができる。アーム運動は、開始姿勢からキーフレームを通して標的姿勢までのアームの移動を含むことができる。幾つかの実施形態では、ユーザは、線形運動を通してアームを手動で動かすことにより、ロボティックデバイスが最後のキーフレームから線形運動を滑らかに実行することができるか否かをチェックすることができる。
【0181】
[0219] 2322において、キーフレームが教示された後、計画キャッシュを生成することができる。計画キャッシュの生成中、ロボティックデバイスは異なる開始姿勢(例えば、2316における開始姿勢)をシミュレートすることができる。例えば、ロボティックデバイスは、アクティブ化デバイス付近に位置決めされた後且つ操作開始前、異なる基部位置、アーム位置、及び/又は構成(例えば、基部-タグ-エンドエフェクタ構成)をシミュレートすることができる。幾つかの実施形態では、ロボティックデバイスは、ランダムサンプリングアルゴリズムに基づいて異なる基部-タグ-エンドエフェクタ構成をサンプリングするように構成することができる。各開始姿勢及び/又は各基部-タグ-エンドエフェクタで、ロボティックデバイスは、アクティブ化デバイスをアクティブ化している間、ロボティックデバイスが衝突を生じさせない及び/又はいかなる障害物とも衝突しないようなキーフレーム間の運動を生成することができる。したがって、幾つかの実施形態では、異なる開始姿勢で同じドアについての複数の計画を生成することができる。幾つかの実施形態では、各計画に、対応する開始姿勢を関連付けることができる。幾つかの実施形態では、各計画に、対応する基部-タグ-エンドエフェクタを関連付けることができる。幾つかの実施形態では、ドアに生成された計画キャッシュにドアを関連付けることができる。計画キャッシュが生成されると、ロボティックデバイスは計画キャッシュをロボティックデバイスのオンボードメモリ及び/又はリモート記憶装置(例えば、本明細書に記載の別の計算デバイス又はデータベース)に保存することができる。幾つかの実施形態では、共有操作を教示した後、ユーザは操作を1回以上実行して、ロボティックデバイスが異なる開始姿勢又は構成を所与として動作を実行可能なことを保証することができる。例えば、ロボティックデバイスは、異なる実行で異なる開始位置(例えば、開始基部-タグ-エンドエフェクタ構成)に配置されて、保存された計画キャッシュのロバスト性をテストすることができる。
【0182】
[0220]
図24は、幾つかの実施形態によるガイド付き教示シナリオを示す流れ図である。
図23で考察したように、共有操作は、複数の異なる戸口及び場所に適用することができる。ロボティックデバイスが新しい戸口に直面した場合、幾つかの実施形態では、ロボティックデバイスにより実施されるガイド付き教示プロセスは、前に教示された共有操作(例えば、共有操作教示シナリオを使用して教示された共有操作)を新しい戸口と関連付けることができる。
【0183】
[0221] 上述したように、ガイド付き教示ドア状態機械がロボティックデバイスにより開始又は実施されると、ユーザは、入力として戸口の識別子を提供することができる。2412において、ガイド付き教示ドア状態機械は、戸口識別子を提供するようにユーザに促すことができる。例えば、ガイド付き教示ドア状態機械は、ユーザが選択することができる複数の異なるドアタイプを提供することができる。複数の異なるドアタイプには、
図28を参照して考察したように、異なるアクティブ化デバイス、異なるドアサイズ等を関連付けることができる。
【0184】
[0222] 2414において、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)任意選択的に、基準及び参照姿勢を教示するようにユーザに促すことができる(例えば、2314等において)。ガイド付き教示シナリオは、操作自体の教示を含まない。その代わり、ガイド付き教示プロセスは、前に教示された共有操作に新しい戸口を関連付けることができる。したがって、ガイド付き教示シナリオは操作自体の教示を含まないため、基準教示時のロボティックデバイスの配置は重要ではないことがある。言い換えれば、ガイド付き教示プロセス中、(例えば、2312のように)ロボティックデバイスをアクティブ化デバイスの付近に位置決めする必要がないことがある。
【0185】
[0223] 2416において、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、ロボティックデバイスの開始構成を提供するようにユーザに促すことができる。例えば、ガイド付きドア状態機械は、ロボティックデバイスに対する基準タグの位置を提供するようにユーザに促すことができる。同様に、ガイド付きドア状態機械は、基準タグに対するエンドエフェクタの向きを提供するようにユーザに促すことができる。ロボティックデバイスに対する基準タグの位置及び基準タグに対するエンドエフェクタの向きは、ロボティックデバイスの基部-タグ-エンドエフェクタ構成の決定に使用することができる。
【0186】
[0224] 2418において、決定された基部-タグ-エンドエフェクタ構成で、アクティブ化デバイスをアクティブ化するために、前に教示された共有操作(例えば計画キャッシュ)を選択することができる。例えば、所与の基部-タグ-エンドエフェクタで、共有教示シナリオ中に生成され保存された基部-タグ-エンドエフェクタと関連付けられた計画キャッシュを選択することができる。
【0187】
[0225] 2420において、ユーザは任意選択的に衝突プリミティブを選択することができ及び/又はガイド付き教示ドア状態機械は任意選択的に、衝突プリミティブを教示するようにユーザに促すことができる。例えば、ガイド付き教示ドア状態機械は、障害物の中心にエンドエフェクタの先端部配置するようにユーザに促すことができる。ガイド付き教示ドア状態機械は次いで、ユーザが障害物を衝突プリミティブとして保存する準備ができたとき、(例えば、ディスプレイ上の入力ボタンを押下することにより)障害物を入力するようにユーザに促すことができる。幾つかの実施形態ではガイド付き教示ドア状態機械は、障害物の長さ、高さ、及び/又は他の機械学的特徴又は空間的特徴を提供するようにユーザに促すことができる。幾つかの実施形態では、障害物の幅(又は他の幾何学的特徴若しくは空間的特徴)をエンドエフェクタの配置から推測することができる。
【0188】
[0226] 追加又は代替として、ガイド付き教示ドア状態機械は、ロボティックデバイスの視野外にあり得る障害物及び/又はロボティックデバイスのアーム運動の妨げになり得る障害物等の大きな障害物を教示するようにユーザに促すことができる。ユーザは、例えば、上述したように環境制約を学習するのと同様に、ロボティックデバイスの1つ又は複数のセンサを使用して障害物の情報を得るようにガイドされることができる。大きな障害物の幾つかの例は、壁から突出している大きな金属棒、ソープディスペンサデバイス、ハンドサニタイザディスペンサデバイス、消火器等を含むことができる。壁は、操作の教示及び実行中に存在すると過程されるため、壁自体は衝突プリミティブとして教示される必要はない。幾つかの実施形態では、アクティブ化デバイス付近の小さな障害物は衝突プリミティブとして教示される必要がない。例えば、身体障害者用のドアボタン(例えば、ハンディキャップドアボタン)、退出ボタン等は衝突プリミティブとして教示されなくてよい。これは、更に後述するように、実行モード中、これらの小さな障害物は扱われないためである。
【0189】
[0227] 2424において、計画キャッシュを生成することができる。例えば、共有操作中、前に生成された計画キャッシュに新しい戸口識別子を関連付けることができる。ロボティックデバイスは、計画キャッシュ(例えば、新しい戸口識別子が関連付けられた計画キャッシュ)に基づいてキーフレーム間の運動を生成することができる。ロボティックデバイスが衝突に直面する場合(例えば、2426において)、計画キャッシュ内の1つ又は複数の計画は、衝突を避けるように再生成(例えば改変)することができる。例えば、計画キャッシュ内の1つ又は複数の計画は、衝突プリミティブに基づいて再生成(例えば改変)することができる。ロボティックデバイスが衝突に直面しない場合、計画キャッシュは、ロボティックデバイスのオンボードメモリ及び/又はリモート記憶装置に記憶することができる(例えば2430において)。幾つかの実施形態では、計画キャッシュに新しいドア/新しい戸口及び/又は新しい戸口識別子を関連付けることができる。ロボティックデバイスが引き続き衝突に直面する場合、方法は、
図25に考察されるように、現場固有教示シナリオに遷移することができる。言い換えれば、チェック又は検証を実行して、選択された計画キャッシュが障害物と衝突しないことを保証することができる。衝突が検出される(例えば、ライブ実行中又はキャッシュ内の計画の移動のシミュレーション中のいずれかで)場合、計画キャッシュ内の1つ又は複数の計画は、教示された衝突プリミティブに基づいて再生成することができる。再生成に失敗する場合、ガイド付き教示ドア状態機械は現場固有教示シナリオに遷移することができる。幾つかの実施形態では、再生成に失敗する場合、新しいドアを開くようにユーザに促すことができる。そのようなシナリオでは、1つ又は複数のセンサは、ユーザがドアを開いているとき、データを取得することができ、データを使用して、仮にロボティックデバイスが後にそのドアに直面する場合について計画することができる。
【0190】
[0228]
図25は、幾つかの実施形態による現場固有教示シナリオを示す流れ図である。共有操作が特定の基部-タグ-エンドエフェクタ構成でまだ教示されていない場合、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、
図23に記載の共有教示プロセスを使用して、共有操作を教示することができる。その特定の基部-タグ-エンドエフェクタ構成の共有操作が既に存在するが、戸口が新しい場合、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、
図24に記載のガイド付き教示プロセスを選択することができる。しかしながら、ガイド付き教示シナリオの適用が失敗した場合、ロボティックデバイスは(例えば、ガイド付き教示ドア状態機械を介して)、現場固有教示シナリオに遷移することができる。
【0191】
[0229] 現場固有教示シナリオは、既存の計画又は計画キャッシュを使用する、選択された操作が、新しい戸口に妥当ではない(例えば、1組の計画が、教示された衝突プリミティブと衝突する)場合、使用することができる。この場合、ロボティックデバイスは、新しい戸口に固有の操作データを学習することができる。幾つかの実施形態では、新しい戸口に固有の操作データは、
図23を参照して共有操作の教示又は学習に関して説明されたものと同じプロセスを介して、ロボティックデバイスにより学習することができる。例えば、2512において、ロボティックデバイスは、衝突プリミティブを教示するようにユーザに促すことができる。2514において、ロボティックデバイスは任意選択的に、ロボティックデバイスの開始姿勢又は構成を教示するようにユーザに促すことができ、ロボティックデバイスはその開始姿勢又は構成を学習することができる。2516において、ロボティックデバイスは任意選択的に、操作のキーフレームを教示するようにユーザに促すことができる。2518において、ロボティックデバイスは標的姿勢を教示するようにユーザに促すことができる。2520において、ロボティックデバイスは計画キャッシュを生成し、それをロボティックデバイスのオンボードメモリ及び/又はリモート記憶装置に保存することができる。
【0192】
[0230] 幾つかの実施形態では、教示ツール(例えば、ロボティックデバイスにより実装されるソフトウェアモジュール)を使用して共有教示シナリオ、ガイド付き教示シナリオ、及び現場固有教示シナリオを実施することができる。教示ツールは、感覚入力(例えば、ジョイント、カメラ等)についてのガイダンスをロボティックデバイスに提供することができる。教示ツールは、運動のガイダンスの提供(例えば、運動をロボティックデバイスに対して物理的に教示すること)に使用することができる。幾つかの実施形態では、教示ツールは、環境の教示及び環境の表現の仕方(例えば、障害物生成を含む)を提供することができる。本明細書に記載の教示ツールは、相互作用学習テンプレート、例えば異なるドアタイプに異なるテンプレートを含むことができ、その場合、ロボティックデバイスは、ドアタイプを選択し、次いで追加の教示を使用して、独特な環境及び/又はドアに向けてテンプレートをパラメータ化するときにデータを能動的に収集することができる。ガイド付き教示ツールは、例えば、社会的意識が強い(例えば、例えばユーザ入力を使用したヒューマンインザループアクティブガイダンス)ロボティックデバイス、タスクの高速及び/又はより社会的に適切な実行のための過去の運動又は計画のサンプリング/キャッシング(例えば、上述したように、インタラクティブ学習テンプレートの実行の提供)、及びユーザ入力により生成されるサンプリング/キャッシングを用いて、高速実行及び/又は運動を可能にすることができる。
【0193】
[0231] 例えば、実行前フェーズ中、ロボティックデバイスは、(例えば、異なる分布/サンプリング法に従って)タスクを実行するための異なる開始点のサンプルを収集し、そのような開始点を所与としてタスクを実行するための計画を決定(例えば、計算又は生成)するように構成することができる。ロボティックデバイスはこれらの計画を(例えばキャッシュに)記憶することができ、ロボティックデバイスが将来、そのタスクを実行する必要があるとき、ロボティックデバイスは、その予め記憶された計画を利用して、タスクを実行するための計画及び/又はタスクの実行に向けて適応する計画を選択することができる。ロボティックデバイスは、タスクの予め計画された実行を既に有しているため、ライブシナリオでタスクを実行するための特定の計画をより素早く選択及び/又はより素早く適応することができる。
【0194】
[0232] 幾つかの実施形態では、ロボティックデバイスは、テンプレートを用いて本明細書に記載の教示又は学習(例えば、共有、ガイド付き、及び/又は現場固有)を受けることができる。少数の戦略が、例えば、(1)右、左、右前、又は左前のアクティブ化デバイス(例えば、
図28のアクティブ化デバイス)及び/又は(2)垂直又は水平の線形前運動エンドエフェクタ(eef)向き等の多様なドアを網羅することができる。アクティブ化デバイスが第1の位置(例えば右前)にあるとき、単一のキーフレーム(例えば線形前運動姿勢)だけでよい。アクティブ化デバイスが異なる位置(例えば左前)にあるとき、実行中、ロボティックデバイスのアームによる掃引量が大きくないように運動を形作るために、第2のキーフレームが必要であり得る。幾つかの実施形態では、教示前計画が技能又は挙動を実行することができない場合、本明細書に記載の教示は、オフライン(例えばライブ実行中ではない)のガイドなし教示プロセスを実行して1組の適した計画を生成し、ロボティックデバイスにより検知された情報及び/又はユーザ入力に基づき、ライブ計画生成(例えば、
図10及び添付図を参照して説明したように)を使用して計画の選択をオンラインで実行することを含むことができる。
【0195】
[0233] 幾つかの実施形態では、ロボティックデバイスは計画キャッシュを生成するように構成することができる。例えば、ロボティックデバイスは、例えば異なる分布タイプ、例えば均一、ガウス等を使用して、教示されたエンドエフェクタ姿勢及びジョイント位置の前後をサンプリングすることができる。各サンプリングで、ロボティックデバイスは、例えば
図12を参照して上述した方法に従って計画を生成することができる。ロボティックデバイスは、実行をシミュレートし、(1)ロボティック構成要素及び/又は静的物体間の任意の衝突があるか否か及び(2)ジョイント移動速度に任意の有意変化があるか否か(例えば、有意のジョイント変化の結果として)を評価することにより、計画を検証することができる。ロボティックデバイスは、ガイド付き教示された環境と、環境内の異なる静的物体を表す境界ボックスとを用いて計画することを含むことができる。ロボティックデバイスは、物体に対するロボティックデバイスの局所位置に対して複数の実行可能位置を記憶することができる。ロボティックデバイスは順方向及び逆方向キャッシュ計画を生成することができる。
【0196】
[0234] 幾つかの実施形態では、ロボティックデバイスは、1つ又は複数の基準タグ又はマーカに基づいて計画調整を実施することができる。ロボティックデバイスは、本明細書に記載のように環境をスキャンし、環境内の1つ又は複数の基準タグ又はマーカを1つ又は複数の物体と関連付けることができる。代替又は追加として、ロボティックデバイスに、それらのマーカを1つ又は複数の物体と関連付ける1つ又は複数の基準タグ又はマーカの情報、例えばマーカ情報ライブラリ等を提供することができる。
【0197】
[0235] 幾つかの実施形態では、本明細書に記載の教示は、静的障害物の教示に使用することができる。ドアを操作する場合、静的物体がドアの故障を生じさせる恐れがある。例えば、ドアを開くことの失敗は、壁/壁上の物体との衝突に起因して生じ得る。壁/物体は、例えばドアの背後にあり及び/又はアクティブ化デバイスから離れているため、ロボティックデバイスの感覚捕捉デバイスの視野外に存在する可能性があることから、ロボティックデバイスにより捕捉されたライブデータ表現は十分ではないことがある。したがって、そのような衝突を避けるために、これらの障害物を計画で考慮に入れることがロボティックデバイスにとって重要であり得る。幾つかの実施形態では、ロボティックデバイスにタグを教示することができ、静的障害物周囲の境界ボックスを物理的に教示することができる。幾つかの実施形態では、ロボティックデバイスは、計画中に使用するために、静的局所環境の障害物モデルを構築及び/又はロードすることができる。静的局所環境の障害物モデルは、素早くロードする(例えば、小さなサイズを有する)ことができ、局所環境のロボットスキャンを最小にすることができる。障害物モデルは、素早く計画することができるとともに、境界ボックスを有することができ、それにより例えば、障害物モデルのサイズを低減することができる。障害物モデルは、教示作業を低減し、ドア毎のロボティックデバイスによるデータ収集を低減又は最小にすることができる。
【0198】
[0236] 障害物モデルを構築及び/又はロードする幾つかの手法は、ロボティックデバイスがスキャンして、環境のより大きなマップを構築することと、ドアを開くための教示セッション中、ロボティックデバイスがマップを保存することと、ロボティックデバイスがマップを上方に押し出して、壁障害物を取得することと、ロボティックデバイスが環境のマップを保存し、マップを押し出すことと、ロボティックデバイスがタグから壁を位置特定し、小さなマップ(例えば付近の環境の)及び環境内のセマンティックデータ又は物体(例えば、環境内の物体の境界を示す物体の境界ボックス)を有することとを含むことができる。障害物モデルを構築するための手法の一例を
図27A~
図27Dに示す。小さなライブマップ(例えば、ロボティックデバイスの周囲のライブビデオフィード)及びそのようなセマンティックデータと共に基準タグからの壁を使用する手法では、ロボティックデバイスは、基準から主壁障害物2722、例えば、基準タグの自由度6(6DOF)位置(例えば、X、Y、Z、ロール、ピッチ、ヨー)(
図27A参照)等のマップ座標系における基準タグ2724(又は他の視覚的マーカ)の位置と関連付けられた座標を生成することができる。これはライブで実行することができる。ロボティックデバイスは次いで、基準タグ2724の周囲のポイントクラウド2726の小さな領域を使用して、例えばアクティブ化デバイス付近の小さな領域をライブスキャンすることにより、アクティブ化デバイス付近の物体のマップを取得することができる(
図27B参照)。これはオンラインで実行することができる。幾つかの実施形態では、ロボティックデバイスは、より大きな周囲環境(例えば、ライブスキャンではない環境)に関して、ジオメトリックデータ及び/又はユーザ提供データを前に保存していた可能性がある。この前に保存されたデータは、関心のある障害物がアクティブデバイスから離れたところにあるか否かを示し得る。ロボティックデバイスは、2728又はそれらの物体を表す他のマーク等の境界ボックスを含むことができる(
図27C参照)。これはオフラインで実行することができる。ロボティックデバイス2700は次いで、付近の環境内の静的物体の保存されたモデル2722(例えば、環境内の物体と関連付けられた境界ボックスを表すジオメトリックデータを含む)をロードすることができる(
図27D参照)。これはライブで実行することができる。このようにより小さな領域をスキャンし、前に記憶されたデータを拠り大きな周囲環境にプルすることにより、ロボティックデバイスは、実行計画の決定に要する時間を短縮することができる。
【0199】
[0237] 幾つかの実施形態では、本明細書に記載の教示又は学習は、アーム運動の教示又は学習に使用することができる。幾つかの実施形態では、ロボティックデバイスは、ドアを開くための複数の計画をキャッシュし、実行する計画を選択するためのガイダンスを受け取ることができる。ロボティックデバイスは、ドアを開けようとするとき、ボタン、スキャナ、又は別のアクティブ化デバイスのいずれかと相互作用するためにアーム(例えば操作要素)を使用する必要があり得る。したがって、ロボティックデバイスはアーム運動等の技能を実行することができる。
【0200】
[0238] 幾つかの実施形態では、ロボティックデバイスは、人にとって明瞭な(例えば、予期される人間の運動と関連付けられ、荒くない又は予測不可能ではない)アーム運動及び/又は人間環境での実行が安全なアーム運動等の技能を実行するように構成することができる。例えば、ロボティックデバイスに、運動の許容可能な範囲又はタイプを規定する基準を提供することができ、ロボティックデバイスは、生成された計画又は計画キャッシュをそのような基準に基づいて調整することができる。ロボティックデバイスが通る必要があり得る多くのドアが建物及び/又は環境(例えば病院)内に存在するため、ロボティックデバイスのアーム運動が効率的且つ一貫して教示されることが重要であることができる。その結果、キーフレームの教示に関して、ドアを開ける技能をロボティックデバイスに教示するユーザは、ロボティックアームの人に明瞭な運動及びロボティックアームの作業空間の標準の知識を有さなければならない。しかしながら、求められる知識を持って教示するユーザを見つけることに関連して制限がある。例えば、アーム運動の教示が上手であるように人を訓練するには、相当量の訓練時間及び練習時間が必要であり得る。訓練したとしても、教示されるアーム運動の品質が人毎に一貫することを保証することは困難であり得る。更に、各ドアに1組のキーフレーム及びアーム運動を維持することは高価であり得る。
【0201】
[0239] 多くのドアが同様のセットアップを有し得るため、それらの類似性を利用することが有価値であり得る。一実施形態では、ロボティックデバイスは、人間に明瞭なキーフレーム及びアーム計画を含むデータベースに動作可能に結合されて(例えばデータベースと通信して)もよく及び/又は記憶してもよい。ロボティックデバイスは、作業空間及び続く運動、例えば線形検索等に関してキーフレーム及びアーム計画を検証する検証法を利用することができる。ロボティックデバイスは、対応する3D姿勢を使用してアーム計画を取り出すクエリ法を利用することができる。提案された構成要素を用いると、アーム運動が人間に明瞭な標準を満たすことを確実にするように、1人又は少人数の専門家(例えば訓練を受けた個人)にデータベースを構築させ、1組の所望の運動感覚性質(例えば、特異点、到達可能性、又は順方向シミュレーションから得られるメトリック)に関して各キーフレームを検証することにより、アーム運動の品質及び/又は一貫性を保証することができる。ロボティックデバイスは、例えばキーフレーム及び/又はアーム計画を再使用可能にするために、複数のドアでのアーム運動の実行中、同じデータベースを照会することができる。
【0202】
[0240] データベースは2つのフェーズで構築することができる。第1のフェーズにおいて、人間の専門家が、ロボティックアームの作業空間を概ねカバーするキーフレーム/アーム計画を教示することができる。例えば、第1のフェーズにおいて、ロボティックデバイスはアームの作業空間における3D姿勢をサンプリングして、アームが到達する必要がある姿勢を人間の専門家に示すことができる。人間の専門家は、その指示と関連付けられたキーフレーム/アーム計画を教示することができる。ロボティックデバイスは、検証法を使用してキーフレーム/アーム計画を検証することができる。検証結果に基づいて、ロボティックデバイスは、キーフレーム/アーム計画を破棄し、又はキーフレーム/アーム計画を運動ライブラリに保存し、高速3D位置クエリのために対応する3D姿勢をk次元(KD)ツリーに保存し、又はリアルタイム評価のために対応する検証スコアを保存することができる。
【0203】
[0241] 第2のフェーズにおいて、キーフレーム/アーム計画をシードとして使用し、シードキーフレーム/アーム計画を転送して、第1のフェーズで生じた可能性がある作業空間中の穴を埋めることにより、第1のフェーズのデータベースの密度を上げることができる。第2のフェーズは、アームの作業空間において3D姿勢をサンプリングする(例えば、均一、ガウス等)ことを含むことができる。第1のフェーズのデータベースを用いて、チェックを実行して、サンプリングされた3D姿勢に近い、教示されたキーフレーム/アーム計画が既に存在するか否かを確認することができる。近いキーフレーム/アーム計画がない場合、第1のフェーズのデータベースから、ロボティックデバイスは、サンプリングされた3D姿勢からある許容可能な近傍内のキーフレーム/アーム計画を取り出すことができる。許容可能性は例えば、ロボティックデバイスが相互作用する物体のサイズに依存することができる。例えば、概ね3cmの物体を用いる場合、ロボティックデバイスは、その物体のサイズ内の計画をサンプリング及び/又は選択することができる。ロボティックデバイスは次いで、検証スコアに基づいて(例えば、計画の基部姿勢(例えば、3DOF:x、y、θ)及び知覚される基部姿勢との間の距離に基づいて)これらのキーフレーム/アーム計画からシード(例えば、最良のキーフレーム/アーム計画)を選択することができる。ロボティックデバイスは、シードキーフレーム/アーム計画を転送して、サンプリングされた3D姿勢をフィッティングすることができる。ロボティックデバイスは、転送されたキーフレーム/アーム計画を検証することができる。転送されたキーフレーム/アーム計画はデータベースに追加することができる。
【0204】
[0242] 幾つかの実施形態では、キーフレーム/アーム計画検証のために、特定のアーム運動を実行し、アームが特定のキーフレームに来た後、アクティブ化デバイスをトリガーすることができる。検証方法において、続く運動を順方向シミュレートすることができ、続く運動の平滑さに関連するメトリックを評価することができる。幾つかの実施形態では、ヤコビ行列を計算し、各時間ステップ後、アームジョイント角度を繰り返し更新することにより、線形デカルトコントローラをシミュレートすることができる。この線形運動の平滑さは、シミュレーション全体を通して最大ジョイント速度を計算することにより評価することができ、その理由は、それが通常、アームが特異点構成に近いことを示すためである。キーフレーム/アーム計画の到達可能性は、シミュレーションプロセスにおいてアームが標的に向かって進んでいるか否かをチェックすることによりチェックすることができる。
【0205】
[0243] 幾つかの実施形態では、特定のアーム運動を実行して、アームがある特定のキーフレームに来た後、アクティブ化デバイスをトリガーすることができる。追加のアーム運動は、キャッシュされた運動を使用してアーム運動を実行した後、ライブ計画を用いて実行することができる。これにより、最終的な相互作用移動(例えば、アクティブ化デバイスをトリガーするための最後の移動)に厳密な参照姿勢位置を使用することにより、サンプリング及びキャッシュ選択プロセスにわずかな不完全性がある場合、そのわずかな不完全性を考慮に入れられるようにする。幾つかの実施形態では、このプロセスは、実行中であるがアーム移動前、ライブ計画を実行することにより加速することができる。これにより、アームを移動させる前、有効なライブ計画があることを保証することができる。
【0206】
[0244] 幾つかの実施形態では、本明細書に記載のシステム、デバイス、及び方法は、ドアを開く挙動が高成功率を有するように、新しいドアを現場で効率的に素早く動作させるために使用することができる。そのような実施形態は、必要な操作スタックの知識が少ない又は最小であるように設計し得る。ドア開の成功は、基部位置の誤差を所与として、ロボティックデバイスが最終線形運動を滑らかに実行することができるか否かを評価することにより判断することができる。
【0207】
[0245] 幾つかの実施形態では、ロボティックデバイスは高速ボタンプッシュ(例えば、比較的短い時間期間で実行されるボタンプッシュ)を実施することができる。環境中の人間(例えば病院スタッフ)への妨げを最小にし、タスク実行の全体速度を上げるために、ロボティックデバイスは自動ドアを素早く開く、スキャン/ボタン押下することが可能である必要があり得る。幾つかの実施形態では、速度を上げるために、単一の操作計画及び/又はロボットに対する種々の基準タグ姿勢のキャッシュ及びインデックス計画を使用することができる。安全対策として、アームのインピーダンスコントローラを使用することもできる。これらの手法は、操作時間全体の短縮を生み出すことができる。
【0208】
[0246] 単一計画手法下で、スキャン/プッシュ挙動の実行は、3つの計画を連続して実行することを含む:ナビゲーション姿勢から準備姿勢に移る計画、準備姿勢から相互作用姿勢(例えば、基準タグに直交する予め定義された又は「x」cm)に移る計画、及び任意選択的に相互作用姿勢からアクティブ化デバイスがトリガーされるまで線形に移動する計画。
【0209】
[0247] 幾つかの実施形態では、計画は異なるフェーズ間でインタリーブされる。これは、アームが、計画間を遷移するにつれて加減速することを意味する。時に、複数の計画の送信及び処理に起因して、追加の遅延があり得る。速度を上げるための一手法は、加減速部分を除去した単一計画を実行することであることができる。このように総体的に計画することは、計画時間速度の低下に繋がり得る。幾つかの実施形態では、軌道の計画はオフラインで行うことができる。したがって、速度低下がある場合であっても、オンラインで受けられない。
【0210】
[0248] 計画キャッシュ手法下では、オンライン計画を除去する(例えば、オフライン計画を有する)ことにより時間節減を得ることができる。幾つかの実施形態では、オンライン計画は、不完全なナビゲーションを考慮に入れるためにスキャン/プッシュ挙動の一部分に対して実行することができる。例えば、ロボティックデバイスは、挙動に関して訓練された厳密な位置にないことがある。したがって、計画は、基準タグ又は他の参照マーカ(例えばドアデバイス姿勢)に従って調整することができる。しかしながら、計画の少なくとも一部分をオフラインで移動させることにより、操作標的(例えばアクティブ化デバイス)が精密な正確性を必要としないことを利用することができる。異なる姿勢をサンプリングすることができ、それらのサンプルの調整を実行することができ、これらの計画は姿勢によりオフラインで索引付けることができる。十分な量のサンプリングを用いて、オンラインでの所望操作は、知覚された姿勢に最も近い姿勢を有する計画を選択し実行することにより達成することができる。これらの計画は、静的視野外障害物モデル又はライブマップを使用して、衝突がないことを検証することができる。キャッシュされた計画が無衝突ではない場合又は知覚された姿勢が、データベースにおける最も近い姿勢から離れすぎている場合、ライブオンライン計画を代わりに実行することができる。
【0211】
[0249] 本明細書に記載のシステム、方法、及びデバイスは、後述のように操作及び計画キャッシュの単一計画を実施することができる。
【0212】
[0250] 単一計画手法では、各キーフレームにおけるキーフレームシーケンス停止から保存された計画を使用することができ、異なる姿勢から移動する(例えば、準備姿勢及び相互作用準備姿勢にナビゲートする)、保存された複数の計画及びオンラインで計算された線形運動を実行することができる(例えば、相互作用準備計画はタグに基づいて調整することができる)。更に、キーフレームを通過しキーフレームで停止しない、計画を生成するための「スルー計画」選択肢が使用可能であり、計画の保存及び実行は既存の基盤を使用することができる。
【0213】
[0251] 計画キャッシュの場合、個々の計画は運動ライブラリに保存することができる。更に、シード計画及び参照姿勢から計画を生成するメカニズムは、例えば、入力姿勢から幾らかの領域内の姿勢をサンプリングすることにより実施することができる。運動ライブラリ機能を使用して、例えばメタデータファイル内等の計画群にプランセット及び参照姿勢を関連付けることができる。運動ライブラリ機能は、参照姿勢から計画を照会することができる。
【0214】
[0252] 幾つかの実施形態では、各戸口で、ロボティックデバイスは、オフラインであるとき、所与の基部位置誤差と関連付けられた計画を生成することができ、オンラインであるとき、タグ検出を介して基部を計算し、キャッシュ内の誤差が最も近い計画を選択することができる。これは、ドアを開いて通過することを実行するための計画の一部であるドア通過のためのモジュールに統合することができる。
【0215】
[0253] 所与の基部位置誤差と関連付けられた計画のオフライン生成の場合、タスクを実行するための複数の計画を含むキャッシュを生成し記憶するためのモジュール(例えば計画キャッシュ生成器)を実施することができる。モジュールは、入力として、例えば、生成する計画数、計画と関連付けられたタグの識別子、ゼロ誤差の場合のキーフレームシーケンス、及び/又は特定の基部位置誤差を所与として変形する必要があるキーフレームのリスト等の情報を受信することができる。モジュールは、入力を、例えばセマンティックデータ(例えば静的障害物等)を含む他の情報と組み合わせて、計画を生成することができる。
【0216】
[0254] 幾つかの実施形態では、教示インタフェースにより使用するためにキャッシュライブラリを計画することができる。幾つかの実施形態では、変形要素を有するロボティックデバイスの1つ又は複数の状態に関する情報(例えば、変形を用いた身体プランナーハンドル要求)を取得するためのモジュールを計画キャッシュ生成器により呼び出して、変形済み計画を生成することができる。幾つかの実施形態では、変形の使用は、計画内の全てのキーフレームに適用される代わりに、計画内の1つ又は複数のキーフレームのサブセットに一般化することができる。例えば、戸口計画は3つのセグメントで実行することができ、そのうちの最後の2つは変形することができ、一方、最初のセグメントは変形されない。ロボティックデバイス(又はユーザ)は、単一計画として全操作を実行するために変形すべきキーフレームを選択することができ、例えば、運動準備のためのナビゲーションは変形する必要がない。幾つかの実施形態では、空間考慮事項を考慮に入れることができ、例えば、戸口計画1つ当たり概ね400kb(例えば、方向毎に200kb)、ドア1つ当たり戸口2つ等)。
【0217】
[0255] タグ検出を介した基部誤差のオンライン計算及び最も近い誤差を有するキャッシュ内の計画の選択(例えば、高速計画の実行)のために、以下を実施することができる:ソフトウェアモジュールを使用して基部誤差を検出すること、最も近い姿勢を選択し、関連付けられた計画を返すこと、及び衝突について計画をチェックすること。衝突が存在しない場合、選択された計画を実行することができる。衝突が存在する場合、ライブ計画フォールバックを実行することができる。
【0218】
[0256] 実行モードにおいて、ロボティックデバイスはドアを半自律的に通過することができる。
図26は、幾つかの実施形態による、ドアの通過の実行を示す流れ図である。2612において、ロボティックデバイスは、基準及び参照姿勢により規定することができるウェイポイントに到着することができる。2614において、ロボティックデバイスは、例えばカメラ等のセンサを使用して、アクティブ化デバイス付近の基準タグ(例えばマーカ)を知覚することができる。例えば、ロボティックデバイスは環境をスキャンし、ドアを開けるためのアクティブ化デバイスと関連付けられたマーカ及び/又は基準タグを識別することができる(例えば、方法700に従って)。2616において、ドアタイプが既知の場合、ロボティックデバイスは計画キャッシュ及び衝突プリミティブを光学的にロードすることができる。例えば、ドアタイプが既知の場合、ロボティックデバイスは、ドアタイプについて計画キャッシュにアクセスすることができる。2618において、ロボティックデバイスは、知覚されたタグ姿勢(例えば基準)からの基部到着誤差を特定することができる。例えば、ロボティックデバイスは、アクティブ化デバイス付近に到着したときのロボティックデバイスの現在姿勢(例えば、現在基準及び/又は現在参照姿勢)と、線形前検索運動キーフレーム(例えば、アクティブ化デバイスをトリガーするためにロボティックデバイスに教示された最初のキーフレーム)と関連付けられた教示中に保存された基部姿勢との間の差を特定することができる。2620において、ロボティックデバイスは、基部到着誤差を使用して、計画キャッシュ(例えば、
図23~
図25において生成された計画)から計画を選択することができる。例えば、ロボティックデバイスは、現在姿勢を特定し、現在姿勢の基部-タグ-エンドエフェクタ構成に対応する計画をロードすることができる。ドアタイプが既知の場合、ロボティックデバイスは共有操作計画を選択することができる。ドアタイプが既知ではない場合、ロボティックデバイスはガイド付き教示を受けて、前に生成された共有操作計画に新しいドアタイプを関連付けることができる。ガイド付き教示が衝突を生じさせ続ける場合、ロボティックデバイスは現場固有教示を受けることができる。幾つかの実施形態では、衝突に応答して、ロボティックデバイスは計画の実行を終了し、エンドエフェクタを予め定義された安全位置に移動させることができる。2622において、ロボティックデバイスは操作を実行することができる。操作の実行は、ドアが開くようにアクティブ化デバイスをトリガーすることを含むことができる。ドアが開いた(例えば2624において)場合、ロボティックデバイスはドアを通過することができる(例えば2626において)。幾つかの実施形態では、ドアを通過する前、操作要素は、更に後述するように予め規定された安全位置及び/又は半径内にあるように位置することができる。ドアが開かない場合、
図12を参照して説明したように環境を再スキャンし、軌道を計画する。幾つかの実施形態では、ドアが開かない場合、基部及びエンドエフェクタを再位置決めして、異なる基部-タグ-エンドエフェクタ構成を有する異なる開始姿勢を達成することができる。
【0219】
[0257] 上述したように、ロボティックデバイスはドアを半自律的に通過することができる。幾つかの実施形態では、状態機械(例えばモジュール)が、ロボティックデバイスのドア通過挙動の論理を収容することができる。しかしながら、状態機械は非限定的な例であり、ロボティックデバイスがドアの通過、ドアの横断、又は他の技能若しくは挙動に従事できるようにする任意の適した計算モデルをロボティックデバイスにより実行することができることが容易に理解されるべきである。ドアを横断する際のロボティックデバイスの挙動は、記録されたドアタイプに応じて様々であることができる。幾つかの例のドアタイプセットは、ドアなし(no_door):2つの部屋を結ぶ解放された戸口、自動運動(auto_motion):運動が検出されたときに開くドア、自動ボタン(auto_button):ボタンが押下されたときに開くドア、自動スキャナ(auto_scanner):バッジがスキャンされたときに開くドア、自動波(auto_wave):波動センサに波動がある場合に開くドア、手動プッシュバー(manual_push_bar):プッシュバーで開く手動で開かれるドア、手動ハンドルプッシュ(manual_handle_push):ハンドルを引く必要がある手動で開かれるドア、及び手動ハンドルプル(manual_handle_pull):ハンドルをプッシュする必要がある手動で開かれるドアを含む。
【0220】
[0258] ドアなし及び自動運動ドアタイプの場合、ロボティックデバイスはドアの事後ウェイポイントに直接移行することができる。操作を必要とする他のタイプのドア(例えば、自動ボタン、自動スキャナ、及び自動波ドアタイプ)の場合、操作が有効化されるとき、ロボティックデバイスはサブ状態機械(例えばサブモジュール)を実行することができ、それにより、ロボティックデバイスは、アクティブ化デバイスを自動的に操作してドアを開ける。操作が有効化されない場合、ロボティックデバイスはサブ状態機械を実行することができ、ユーザからの助けを要求する。上記サブ状態機械の各々の下でのロボティックデバイスの挙動についてより詳細に後述する。
【0221】
[0259]
図36は、ユーザの助けを用いてドアを通過するためのサブ状態機械(例えばモデル)の実行の流れの一例を示す。ユーザの助けを用いるサブ状態機械を実行すると、ロボティックデバイスはドアの事前ウェイポイントに到着し(3604において)、3606において、ドアを開くための(例えばユーザからの)アシスタントを要求することができる。ロボティックデバイスは、ドア状態検出器を用いてドアの開/閉状態をモニタし、ドアが開かれるのを待つ。この待機フェーズにおいて、ロボティックデバイスは定期的に、ドアが開かれるのを要求することができる。3608において、ドアが開かれているとして検出される場合、ロボティックデバイスはドアを通過して、3610においてドアの事後ウェイポイントに到着することができる。事後ウェイポイントへの移動中に随時、ドアが閉じられているとして検出される場合、ロボティックデバイスは事前ウェイポイントに戻り、プロセスを繰り返すことができる。
【0222】
[0260] 幾つかの実施形態では、ユーザは、例えば
図35に示されるように、コントローラ又はユーザ入力デバイスでドア状態検出器の出力をオーバーライドすることができる。例えば、ロボティックデバイスがドア事前ウェイポイントに到着した後、オペレータは第1のボタン(例えばX)を押下して、ロボットにドアが開かれたことを教えることができ、第2のボタン(例えばO)を押下して、ロボットにドアが閉じられていることを教えることができ、又は第3のボタン(例えば正方形)を押下して、自律ドア状態検出にリセットすることができる。X又はOを押下した後、ユーザは正方形を押下して、例えば、ロボティックデバイスが直面する次のドアに向けて自律ドア状態にリセットすることができる。これらの3つの入力が例として提供されるが、任意の適した入力を使用することができ、ボタンに限定されないことを認めることができる。例えば、ボタン入力に加えて又は代えて、オーディオ入力をロボティックデバイスに提供してもよい。
【0223】
[0261]
図34は、ドアを通過するためのサブ状態機械(例えばモデル)の実行の流れの一例を示す。自動的又は自律的にドアを開いて通過するための状態機械を実行すると、ロボティックデバイスはまず、3404において、相互作用ウェイポイントに到着することができる。このウェイポイントは、ドアの事前ウェイポイントと異なることができる。事前ウェイポイントとは異なり、ロボティックデバイスは相互作用ウェイポイントからアクティブ化デバイスをアクティブ化することができる。次いで3406において、ロボティックデバイスは、ドアデバイス付近に配置された基準タグをスキャンして識別し、タグの姿勢を取得することができる。ロボティックデバイスは、タグの姿勢を特定すると、デバイスをアクティブ化し、ドアを開くようにアームを動かすことができる。この運動は2つの段階に分けることができる:(1)3408にける検索前姿勢への運動及び(2)3410における線形検索運動。第1の段階(例えば3408)において、ロボティックデバイスは、エンドエフェクタ(例えばグリッパ)がアクティブ化デバイスの付近にあるようにアームを動かす。第2の段階(例えば3410)において、ロボティックデバイスは、アクティブ化デバイスがアクティブ化されたことをロボティックデバイスが検出するまで、アームへの大きな力をロボティックデバイスが検出するまで、又は運動が時間切れするまで、エンドエフェクタ(例えばグリッパ)を線形運動で動かす。次いで3412において、アームはナビゲーション姿勢に退避し、その後、3414においてドアが開かれたことがドア状態検出器により検出された場合、3416において、ロボティックデバイスはドアを横断する。事後ウェイポイントへの移動中、随時、ドアが閉じられているとして検出される場合、ロボティックデバイスは相互作用ウェイポイントに戻り、プロセスを繰り返すことができる。幾つかの実施形態では、ユーザ(例えば、ライブビデオフィードを見ている遠隔ユーザ又は現場のユーザ)は、
図35を参照して上述したように、コントローラでドア状態検出器の出力をオーバーライドすることができる。
【0224】
[0262] 幾つかの実施形態では、ロボティックデバイスのアームの線形運動中、ロボティックデバイスはドアデバイスアクティブ化検出器を実行して、例えば、ドアデバイスがアクティブ化されると運動を停止することができる。線形運動中、随時、ユーザ(例えば、ライブビデオフィードを見ている遠隔ユーザ又は現場のユーザ)は、例えば、
図35に示されるコントローラのXボタンを押下することにより運動を手動で停止することができる。これは、ユーザがドアデバイスアクティブ化検出器での検出漏れを軽減するための方法として提供される。線形運動中、Xボタンを押下することは、開状態へのドア状態検出器をオーバーライドする効果を有することができる。Xが押下されて線形運動を停止した場合、ロボティックデバイスが戸口を通過した後であるが、ドア後ウェイポイント及び/又は別のドアに辿り着く前、ロボティックデバイスが後続ドアで前のオーバーライド値を思い出さないように、別のボタン(例えば、
図35に示されるコントローラにおける正方形)を押下することができる。
【0225】
[0263] 幾つかの実施形態では、ドア横断挙動の実行をモニタしながら、ユーザはロボティックデバイスに確率された社会的エチケットを順守させ、タスク実行の時間制約及び安全性に気を配らせたままにすることができる。幾つかの実施形態では、上述したようにユーザの助けを用いてドアを通過するための状態機械(例えばモジュール)の実行をモニタしながら、ユーザはロボティックデバイスに、ドアを通過しようとしている人々に道を譲り、ドアが開いていることをロボティックデバイスが気付くのに長すぎる時間がかかる(例えば、ドアが開かれてから所定の時間期間後及びドアが開かれていることの検出にロボティックデバイスが失敗する)場合、ドア開状態検出をオーバーライドさせ、及び/又は自律ナビゲーションが横断するのに時間がかかりすぎる(例えば、特定のイベントから所定の時間期間後)場合、ドア通過をするようにロボティックデバイスを手動で駆動させることができる。
【0226】
[0264] 幾つかの実施形態では、自律的にドアを通過する状態機械の実行をモニタしながら、ユーザはロボティックデバイスに、ドアを通過しようとしている人々に道を譲り、任意の安全ではないアーム運動を監視させ、それに従って応答させ(例えば、アーム運動実行モニタリングを実行することにより)、アクティブ化デバイスのアクティブ後、アームがアクティブ化デバイス/壁を数秒プッシュし続ける場合及び/又はアクティブ化デバイスを見落とし、壁をプッシュしている場合、コントローラのボタン(例えば、
図35に示されるコントローラのX)を押下させ、ドアが開いていることをロボティックデバイスが気付くのに長すぎる時間がかかる場合、ドア開状態検出をオーバーライドさせ、自律ナビゲーションによる横断にかかる時間が長すぎる場合及び/又はロボティックデバイスによるドア開運動の実行が多すぎる回数不首尾に終わった場合、ロボティックデバイスのドア通過を手動で駆動させ、例えばロボティックデバイスへの損傷を回避するために、ロボティックデバイスがドアを通過する際、ロボティックデバイスに対してドアが閉まることを監視させることができる。
【0227】
[0265] ドア開及びナビゲーションタスクの実行中、本明細書に記載の実施形態によるロボティックデバイスは、特定の状況で失敗を経験する可能性がある。そのような失敗の場合、ロボティックデバイスは1つ又は複数のリカバリ方策を採用するように構成することができる。一実施形態では、ロボティックデバイスは、遠隔ユーザにアラートするように構成することができる。例えば、ロボティックデバイスは、ナビゲーション失敗に直面した場合、ナビゲーション失敗を通知するアラートをユーザに送信することができる。ロボティックデバイスは、基準情報を得ることができず、したがって、参照姿勢を決定することができない場合、知覚失敗を通知するアラートをユーザに送信することができる。ロボティックデバイスは、安全ナビゲーション姿勢又はナブタック(navtuck)姿勢に戻ることができない場合、ナビゲーション姿勢失敗を通知するアラートをユーザに送信することができる。幾つかの実施形態では、ユーザは、例えばタスク実行に当たりロボティックデバイスを助けるために、入力又はフィードバックをロボティックデバイスに提供することができる。
【0228】
[0266] ドアを通過するために、ロボティックデバイスの前方のドアが開いているか否かを効率的且つ正確に検出することが重要であり得る。この検出に影響を及ぼし得る環境変数には、異なるドア形状、照明状況、及びドア付近の人々/物体がある。
【0229】
[0267] 幾つかの実施形態では、例えば、磁気スイッチ、機械的スイッチ等の近接スイッチ及び/又はビームブレークセンサ等の光学センサ等のセンサをドア付近に採用することができる。幾つかの実施形態では、ロボティックデバイスは、教示されるセマンティックデータの組合せ、例えば、ドアの位置及び/又はドア周囲の物体の位置を使用してドアを検出及び/又はドア状態をモニタすることができる。ロボティックデバイスは、セマンティックデータをセンサ入力と統合し、特定のドアが開いているか否かのモデルを構築することができる。幾つかの実施形態では、ロボティックデバイスは、ドアが動いているか否かを常時評価しモニタすることができる。幾つかの実施形態では、遠隔ユーザが、ヒューマンインザループガイダンスを用いて(例えば、例えばドアが閉じているとロボティックデバイスが考える場合であってもドアが開いている等の状況をロボティックデバイスに知らせる)ロボティックデバイスの実行をオーバーライドすることができる。
【0230】
[0268] 幾つかの実施形態では、ロボティックデバイスは、戸枠の検出及び四隅の追跡及び/又はクロッピング画像の絶対画像差の計算を含め、カメラベースの検出を採用することができる。幾つかの実施形態では、ロボティックデバイスは、逆側からポイントが見えるか否かの検出及び/又はドアのポイントのクロッピング及び類似性の計算等のレーザベースの検出を採用することができる。レーザベースの検出は、カメラを使用するものよりもロバストであることができる。例えば、レーザベースの検出は、照明状況に対してロバストであることができる。レーザベースの検出の計算コストは低い値であることができ、したがって、データの処理が高速であることができる。幾つかの実施形態では、レーザデータポイントは、ドアの形状が二次元(2D)平面で分類可能なこと及び/又はレーザデータが照明状況変化の影響を受けにくいこと等の理由に使用することができる。
【0231】
[0269] 幾つかの実施形態では、レーザベースの検出は、ローカリゼーションを使用してドアのレーザポイントをクロッピングし、結合メトリックを評価し(例えば、ドアの逆側から見ることができるポイント数を特定し及び/又は現在スキャンをドアが開いているときのドアのスキャンと比較することにより)、ドアステータス(例えば、開又は閉)を表すことができる結合メトリックの閾値を決定することを含むことができる。幾つかの実施形態では、ロボティックデバイスは、マップ上にドアの境界ボックスをマークし、境界ボックス内のレーザポイントをクロッピングで除去し、境界ボックス内部のレーザポイントをバイナリ画像に変換し、バイナリ画像をドア開/閉として分類するように分類器をトレーニングすることによりドアを検出することができる。幾つかの実施形態では、モジュールを使用して、レーザポイントをバイナリ画像に変換することができ、バイナリ画像はクラスのアレイとして記憶することができる。
【0232】
[0270] 幾つかの実施形態では、分類器、例えばサポートベクターマシン(SVM)等を使用して、モデルをトレーニングすることができ、例えば、モデルをロードして保存し、グリッド画像データを分類することができる。モデルへの入力は平坦バイナリ画像であることができる。モデルの出力は、ドア状態、例えば、開、半開、半閉、閉であることができる。幾つかの実施形態では、モジュールを使用してドア検出を実行することができる。モジュールは、例えばユーザ入力によりアクティブ化/非アクティブ化することができる。アクティブ化されると、モジュールはドア状態及び(例えば、処理され及び/又はクロッピングされた)レーザデータポイントを提供することができる。幾つかの実施形態では、ドア検出データはフィルタリングすることができる。
【0233】
[0271] 幾つかの実施形態では、モジュールはインタラクティブに使用されて、標的ドアの名称(識別子)を所与としてレーザデータを収集することができる。収集されたレーザデータは、境界ボックスが既に教示されているか否か及びロボティックデバイスがドアを見ることができるか否かに依存することができる。収集されたデータは、バイナリ画像として、例えばJSON形式で保存することができる。幾つかの実施形態では、勾配方向ヒストグラム(HOG)特徴を使用して、ドア状態検出を改良することができる。HOG特徴の適した例は、https://scikit-image.org/docs/dev/auto_examples/features_detection/plot_hog.htmlに記載されており、これは参照により援用される。幾つかの実施形態では、ロボティックデバイスは、ドアが開いているかそれとも閉じられているかの分類をレーザスキャンのガウス混合モデルに基づいて行うことができる。
【0234】
[0272] ドア状態を検出するに当たり、人間及び/又は小さな物体による遮蔽された状態であっても1つ又は2つの壁が部分に見え、検出可能なことがある。幾つかの実施形態では、学習は必要なく、ロボティックデバイスは、付近環境内の1つ又は複数の物体と関連付けられたジオメトリックデータに頼ることができる。幾つかの実施形態では、例えばランダムサンプルコンセンサス(RANSAC)を使用する場合、戸口境界ボックス及びクロッピングは必要なくてよい。
【0235】
[0273] 幾つかの実施形態では、ロボティックデバイスはライダーデータを使用して、ドア通過をいつ開始するかを決定することができる。そのような決定は、ドアがロボティックデバイスの直接視野内にないことがある構成を含め、多様なドア-ロボティックデバイス構成にわたって行うことができる。例えば、セマンティックラベリング手法を実施して、ガウス行列モデル(GMM)ベースの分類器により処理される前、入力データを変形(例えばラベリング)する方法を分類器に通知することができる。幾つかの実施形態では、セマンティックラベルは人間の教示者により提供することができる。
図37は、壁の存在、ロボティックデバイスの位置、及びドアが相互作用ウェイポイント又は開始姿勢(例えば、ロボティックデバイスがアクティブ化デバイスとの相互作用を開始するウェイポイント又は開始姿勢)からのロボティックデバイスの視野内にあるか否かに基づく4つの戸口構成を示す。
【0236】
[0274] 幾つかの実施形態では、壁タイプは5つの異なるクラスに分類することができる:右壁、左壁、右壁ブロック、左壁ブロック、壁なし。幾つかの実施形態では、壁タイプは分類器に、データ(例えば、ライダーデータ等の入力データ)の回転の仕方を知らせることができる。例えば、データは、ドアがデータにおいて一貫した向きであるように回転することができる。したがって、ローカリゼーション及び到着誤差があっても、ドアを一貫した向きに回転することができる。
【0237】
[0275] 幾つかの実施形態では、戸口がロボティックデバイスの視野内にあるか否かは、ロボティックデバイスの現在姿勢とドアの事前ウェイポイント(例えば、上述したガイダンスによる教示を通して学習されたウェイポイント)との間の角度差に基づいて計算することができる。幾つかの実施形態では、ドア事前ウェイポイントはドアに直面するように構成することができる。ドア事前ウェイポイントは、ロボティックデバイスがドアでトレーニングされるとき、提供することができる。角度差が大きい場合、ドアはロボティックデバイスの視野内にないと判断される。角度差が小さい場合、ドアはロボティックデバイスの視野内にあると判断される。
【0238】
[0276] 幾つかの実施形態では、視野計算を使用して、基部分類器の出力が信頼できるか否かを知らせることができる。ドアがロボティックデバイスの視野内にないと判断される場合、分類器が処理しているデータは実際にはドアを見ていないため、分類器の出力は信頼できない恐れがある。
図38は、ロボティックデバイスの視野内のドアの一例及びロボティックデバイス視野外のドアの一例を示す。
【0239】
[0277] 幾つかの実施形態では、ドアは、相互作用ウェイポイント又はドアを開くための操作の開始姿勢(例えば
図38に示されるように)からのロボティックデバイスの視野内にないことがある。そのような場合、ロボティックデバイスは、少なくとも部分的に操作プロセスの状態に基づいてドアの状態を特定することができる。相互作用ウェイポイントに到着した後、ロボティックデバイスは、操作プロセスを首尾良く実行してアクティブ化デバイスをトリガーするまで、ドアが閉まっていると仮定することができる。操作の実行成功後、ロボティックデバイスは、ドアが視野内にあるまで、ドア状態が開いていると仮定することができる。ドアがロボティックデバイスの視野に入ると、分類器はセンサ入力(例えばライダーデータ)に基づいてドア状態を分類することができる。
【0240】
[0278] 幾つかの実施形態では、ドア検出器は複数の出力、例えば、開、閉、及び未定を有することができる。幾つかの実施形態では、未定出力は、ドアの現在状態の確度が低い及び/又は確度がないことを表すことができる。幾つかの実施形態では、レーザデータを処理する前、分類器は、ロボティックデバイスがドアを越えたか否かを判断することができる。例えば、分類器はロボティックデバイスの現在姿勢、ドアの事前ウェイポイント、及びトレーニング時に提供され得るドア境界ボックスを使用することができる。ロボティックデバイスがドアを越えている場合、出力は開状態にラッチ及び/又は分類することができる。ロボティックデバイスの現在姿勢及びドアの事前ウェイポイントを使用して、分類器は、ドアがロボティックデバイスの視野内にあるか否かを判断することができる。ドアがロボティックデバイスの視野内にない場合、出力は未定状態にラッチ及び/又は分類することができる。ドアがロボティックデバイスの視野内にある場合、ロボティックデバイスは(例えば状態機械を介して)、ライブライダーデータの処理に遷移する。
【0241】
[0279] 幾つかの実施形態では、壁タイプを使用し、RANSACを使用して線をレーザデータに当てはめることができる。これは、ドアがデータ内で一貫した向きである(例えば、ドアがy軸に沿って整列する)ようにレーザデータをいかに回転させるかを分類器に知らせることができる。幾つかの実施形態では、ドアの境界ボックス内にないデータは、更なる処理から破棄することができる。破棄後に残るデータポイントが少なすぎる場合、出力は未定状態にラッチ及び/又は分類することができる。
【0242】
[0280] 幾つかの実施形態では、ガウス混合モデルを残りのポイントのx座標に当てはめることができる。ドアの予期される位置に最も近い平均を有する成分の分散及び重みを解析して、開/閉状態を計算することができる。成分(重み)に十分なポイントがあり、この成分の分散が低い場合、ドアは閉として分類することができる。
【0243】
[0281] 幾つかの実施形態では、ロボティックデバイスはセンサを採用して、ロボティックデバイスがカードのスキャン又はボタンのヒットに成功した(例えば、アクティブ化デバイスをアクティブ化した)とき/成功したか否かを判断することができる。幾つかの実施形態では、ロボティックデバイスは、アクティブ化デバイスをトリガーしている(例えば、ボタンをプッシュしている又はバッジをスキャンしている)場合、シーンのライブビューにアクティブ化デバイスがないことがある。したがって、追加のセンサ(例えば、力、オーディオ)を採用して、ロボティックデバイスがアクティブ化デバイスをアクティブ化/トリガーしたか否かを確認することができる。
【0244】
[0282] 幾つかの実施形態では、アクティブ化デバイスがボタンであるシナリオにおいて、ロボティックデバイスはボタンプッシュを検出することができる。ロボティックデバイスはプッシュ検出器モデルを実施することができる。プッシュ検出器モデルは、ユーザからのジョイスティック入力を置換する(例えば、
図35に示されるコントローラのXを押下して線形検索を停止させる)ように設計することができる。プッシュ検出器モデルは準リアルタイムで設計することができ、それにより例えば、プッシュしすぎるのを回避する。本明細書に記載の実施形態では、準リアルタイムとは、間の全ての部分範囲及び値を含め、約1μ秒未満、約1ミリ秒未満、約1秒未満、約数秒未満、又は約数十秒未満であることができる。プッシュ検出器モデルは、必要とされる1つ又は複数の特徴セットを識別し、感度及び特異性を解析するように構成することができる。
【0245】
[0283] ロボティックデバイスにより検知される力の変化に応じて、ロボティックデバイスは、ボタンプッシュが発生したか否か及び/又は成功したか否かを判断することができる。例えば、ロボティックデバイスは、検出された力のスパイクに基づいてプッシュが成功しなかったかどうかを判断することができる。幾つかの実施形態では、大きな分散及び大きなエンドエフェクタ誤差を有する小さなスパイク(例えば、ボタン又は標的からのエンドエフェクタ距離)はアーム移動を示すことができ、幾らかのエンドエフェクタ誤差のある狭いスパイクは、部分プッシュを示すことができる。両タイプのスパイクは、プッシュが成功していないことを示すことができる。代替又は追加として、ロボティックデバイスは、検出された力のスパイクに基づいてプッシュが成功したか否かを判断することができる。幾つかの実施形態では、大きな導関数及び低いエンドエフェクタ誤差を有する狭いスパイクは、プッシュ成功を示すことができる。ロボティックデバイスは、ロボティックデバイスの開始位置(例えば、ロボティックデバイスの基部が基準に対して配置される位置)及びキャッシュに記憶された計画に基づいてエンドエフェクタ誤差を特定することができる。各計画(又は計画のサブセット)で、ロボティックデバイスは、エンドエフェクタの誤差と考えられるもの、例えば、エンドエフェクタの最終位置(又はボタンプッシュと関連付けられたエンドエフェクタの位置)とボタンの参照点との間の距離を特定することができる。誤差が小量であり、力が検知される場合、ボタンの参照点(例えば中心点)と直接整列していないにも拘わらず、ロボティックデバイスはボタンプッシュが成功したか否かを判断することができる。
【0246】
[0284] 幾つかの実施形態では、ロボティックデバイスは機械学習分類器をプッシュ検出に使用することができる。分類器は、感度(例えば、ボタンプッシュを正しく識別する分類器の能力又は真陽性率)及び/又は特異性(例えば、非プッシュを正しく識別する分類器の能力又は真陰性率)について等級付けることができる。
【0247】
【0248】
[0285] 幾つかの実施形態では、ロボティックデバイスはリカレントニューラルネットワーク(RNN)をプッシュ検出に使用することができる。幾つかの実施形態では、ロボティックデバイスは、長短期記憶ネットワーク(LSTM)をプッシュ検出に使用することができる。幾つかの実施形態では、ロボティックデバイスは移動窓及び線形回帰をプッシュ検出に使用することができる。
【0249】
[0286] 幾つかの実施形態では、ロボティックデバイスは移動窓及び多次元SVM分類器を使用して、プッシュが成功したかそれとも失敗したかを判断することができる。データの分類は線形検索運動状態であることができる。時間切れは、所定量の時間(例えば、所定のX秒)後であることができる。最大力閾値を設定することができる。プッシュが成功したかそれとも失敗したかのグラウンドトゥルースは、ユーザからのジョイスティックコマンド(例えば、
図35等のコントローラを介する)に基づいてもよく又は頭部カメラ画像に基づいてハンドラベリングに基づいてもよい。特徴は、エンドエフェクタの誤差、力の大きさ、及び力の導関数の組合せを含むことができる。
【0250】
[0287] 幾つかの実施形態では、閾値、時間切れ、エンドエフェクタ姿勢の重なり、及び誤差は、ロボティックデバイスにより使用されるモデルを改良するためにデータに追加することができる。幾つかの実施形態では、そのようなデータが提供されたロボティックデバイスは、例えば閾値を用いて分類を実行可能であり得る。幾つかの実施形態では、ロボティックデバイスは、窓のハンドエンジニアリング窓時間及びSVM手法の代わりに学習ベースの方法(例えばHMMベースの検出)をプッシュ検出に採用することができる。
【0251】
[0288] 幾つかの実施形態では、ロボティックデバイスはビデオストリームを使用して、エンドエフェクタ位置の誤差(例えば、エンドエフェクタがボタンからどれくらい離れることになったか)を識別及び/又は誤差を修正し、バックアップで力データを使用してプッシュを判断することができる。幾つかの実施形態では、人間ガイダンス(例えば、遠隔及び/又はオンサイトオペレータ)を使用して、バッジ/ボタンプッシュが成功したか否かをモデルが不正確に検出したときの検出のエラーを補正するのに使用することができる。
【0252】
[0289] 幾つかの実施形態では、力モデル検出の場合、分類前に力データを正規化することができる。幾つかの実施形態では、追加又は代替の特徴空間、例えばエンドエフェクタの速度(例えばスピード)及び/又は単一フレームの代わりに力の窓を探索することができる。
【0253】
[0290] 幾つかの実施形態では、アクティブ化デバイスがスキャナであるシナリオにおいて、ロボティックデバイスは、カードのスキャンに成功したか否かを検出するように構成することができる。幾つかの実施形態では、ロボティックデバイスはオーディオモデルを構築/生成することができる。例えば、ロボティックデバイスは、スキャナビープを識別することができる種々の現場から収集されたオーディオデータを用いてトレーニングすることができる機械学習モデルを構築することができる。オーディオデータは、例えばロボティックデバイスのマイクロホンを使用して収集することができる。幾つかの実施形態では、ロボティックデバイスは力モデルを構築/生成することができる。例えば、ロボティックデバイスは、ロボティックデバイスにより前に収集された(例えば、訓練/探索/実行中等)力モデルデータをベースとして利用し、異なるモデル及び異なる手法方法をバッジスキャンに使用して正確性を比較することができる。幾つかの実施形態では、これらのモデルはリモートデバイス(例えば、
図1のサーバ120及び/又は計算デバイス150)で構築/生成することができる。幾つかの実施形態では、オーディオモデル及び力モデルの結果を結合することができ及び/又はバッジアクティブ化の二重確認として比較することができる結合手法を使用することができる。
【0254】
[0291] 幾つかの実施形態では、ロボティックデバイスはスキャナオーディオ検出畳み込みニューラルネットワーク(CNN)手法を採用することができる。ロボティックデバイスは、トレーニングクリップセット中のオーディオ特徴の初期セットについて、各トレーニングクリップからメル周波数ケプストラム係数(MFCC)を抽出するように構成することができる。CNNは、1クリップ毎に多くの特徴をクリップから抽出することができるように、狭いが深いように構造化することができる。例えば、3つのレイヤを有するネットワークを使用することができる。代替又は追加として、同様の手法を用いるマルチレイヤ知覚(MLP)又はSVMを使用してもよい。CNNは、例えば異なるソース(例えば、病院等のロボティックデバイスの現場又はオンラインサウンドクリップ等)から収集されたサウンドクリップに基づくトレーニングデータセットを使用してトレーニングすることができる。トレーニングデータセットは、バッジスキャンに対応するサウンド及び/又はロボティックデバイスが使用されている現場における他の一般的なサウンドを含むことができる。
【0255】
[0292] 幾つかの実施形態では、ロボティックデバイスは上述したような結合手法(例えば、オーディオ及び力)を採用することができる。例えば、ロボティックデバイスは、オーディオモデル及び力モデルの両方から信頼水準を出力することができる。ロボティックデバイスは、重み、例えば60%力+40%ドアレーザスキャンを含むオーディオを使用することにより信頼水準を結合することができる。幾つかの実施形態では、ロボティックデバイスは、環境条件又は制約に基づいて異なるモデルからの出力を重み付けすることができる(例えば、相当量の周囲ノイズがある場合、力を大きく重み付ける)。
【0256】
[0293] 幾つかの実施形態では、本明細書に記載のロボティックデバイス、システム、及び方法は、動的知覚環境をナビゲートし、多自由度を有する複雑な操作計画問題を解き、及び/又はヒューマンインザループ手法を実施することができる。
【0257】
[0294] 上述したように、ロボティックデバイスは、ロボティックデバイスが操作目標を達成するための動作軌道を計画するための計画を生成し得る。しかしながら、動的知覚環境では、ロボティックデバイスは、ロボティックデバイスのアクチュエータに関する環境の初期状態について限られた仮定しかできない。例えば、輸送要素を含む可動式基部に搭載された操作要素(例えばアーム)を有するロボティックデバイス(本明細書に記載の任意のロボティックデバイス等)を考える。ロボティックデバイスの操作動作を計画すべきときはいつでも、環境についての2、3の静的仮定がなされ得る。可動式輸送要素の運動により、操作要素が環境内でいかに位置するかが常に変わり得るため、計画問題の基準系は常に変化し得る。
【0258】
[0295] 更に、本明細書に記載の操作要素は複雑な動作を実施することができる(例えば、本明細書に記載の操作要素は自由度7を有するため)。したがって、計画問題を解くための知覚環境の自己中心的理解の構築は複雑であり得る。幾つかの実施形態では、高速計画/高速ボタンプッシュ(上述したような)及び/又は教示シナリオ(上述したような)の実行を実施して、複雑な計画問題を解くことができる。
【0259】
[0296] 幾つかの実施形態では、人間ガイダンスを主要情報に利用して、動的知覚環境において高自由度のロボティックデバイスを首尾良く動作させることができる。幾つかの実施形態では、人間ガイダンスの利用は、計算時間を短縮し、正確性を上げることができる。上述したドア検出は、人間ガイダンスを利用する説明のための例を提供する。1組のドアタイプ(例えば、
図37を参照して説明された4つのドアタイプ)及びロボティックデバイスによる直面が予期され得る構成(例えば、外開きのシングルドア、両方が外に開くダブルドア等)は、セマンティックデータとして使用することができる。セマンティックデータは2つの主要特徴を有することができる(1)人間がドアに直面することができ、ドアのタイプ及び/又は構成を正しくラベリングすることができ、(2)分類器は、ドアが開かれているかそれとも閉じられているかを検出するために、少なくとも部分的にこのラベリングに基づくことができる。上述したように、幾つかの実施形態では、所与のドアタイプは、ガウス混合モデルを用いて分類する前、ライダーデータに対して行うことができる変形を知らせることができる。
【0260】
[0297] 幾つかの実施形態では、ロボティックデバイスを中心とした動的に計算される安全バブルに頼る多階層手法を実施して、動的知覚環境においてロボティックデバイスを首尾良く動作させることができる。幾つかの実施形態では、動的に計算される安全バブルは、統計モデリングを使用して計算することができる。幾つかの実施形態では、動的に計算される安全バブルは、人間ガイダンスとガイダンスによる教示との組合せを通して計算することができる。幾つかの実施形態では、この方法は動的に変化するロボティックフットプリント及び人間ガイダンスを利用して、ロボティックデバイス周囲の安全境界を捕捉しトレーニングすることができる。
【0261】
[0298] 幾つかの実施形態では、本明細書に記載の安全レイヤは、動的環境での動作中、人々(例えば障害物)が意図的にロボティックデバイスにぶつかって相互作用する能力を含むことができる。例えば、方法は、コンプライアンスコントローラ、1組のセンサモニタ、及び人々がロボティックデバイスの空間に入ることができると仮定する安全挙動の組合せを含むことができる。したがって、本明細書に記載されるのは、特に人間-ロボット相互作用に向けて構築された多階層安全アーキテクチャである。
【0262】
[0299] 幾つかの実施形態では、本明細書に記載の安全操作プロセスは、操作要素が可動式操作プラットフォーム(例えば、輸送要素に結合することができる操作要素)を人間が占める動的環境で動作できるようにすることができる。特に、ロボティックデバイスは、予期されない障害物が操作要素の作業空間に入る及び/又は外部の物体及び/又は人々との予期されない衝突等の幾つかの非理想的な条件下で安全に動作する必要があり得る。幾つかの実施形態では、非理想的な条件下であってもロボティックデバイスの安全動作を保証するための手法は、(1)安全バブルモニタリング、(2)遠隔モニタリング、(3)コンプライアントコントローラ、及び(4)姿勢/力境界モニタリングを含むことができる。
【0263】
[0300] 安全バブルモニタリング中、予期されない物体/人がロボティックデバイスの作業空間に入った場合、ロボティックデバイスの運動(例えば、操作要素の運動及び/又は輸送要素の運動)は一時停止又は減速することができる。例えば、幾つかの実施形態では、予期されない物体がマニピュレータの作業空間に入った場合、操作要素の運動は、完全には一時停止することなく、減速することができる。
【0264】
[0301] 遠隔モニタリング中、遠隔ユーザ/オペレータは、操作の特に安全が重要な段階を見て、入力を提供することができる(例えば、ユーザインタフェース、端末ツール、コントローラ等を介して)。幾つかの実施形態では、コンプライアントコントローラは、操作要素(例えば、ロボティックデバイスのアーム)が、ロボティックデバイスの目標軌道をなお追跡しながら、外力に従うことができる場合を検出することができる。
【0265】
[0302] 力境界モニタリング中、ロボティックデバイスの運動(例えば、操作要素の運動)は、例えば、ロボティックデバイスの運動が、予期される目標軌道を追跡するための閾値を超えた場合及び/又はロボティックデバイス(例えば操作要素)が、コンプライアントコントローラの許容可能な境界外の外力に直面した場合、一時停止することができる。幾つかの実施形態では、操作要素の総変位及び/又は操作要素が直面する力をモニタすることができる。総変位及び/又は力がコンプライアントコントローラの許容可能境界外である場合、操作要素の運動を一時停止することができる。
【0266】
[0303] 幾つかの実施形態では、安全バブルモニタリングは、予期されない物体がロボティックデバイスの画定された安全周縁内にあるか否かを判断することができる。安全バブルモニタリングは、予期されない物体/人が安全周縁に入った場合又は出た場合のそれぞれで一時停止、再開、及び減速信号を生み出す/生成することができる。
【0267】
[0304] 幾つかの実施形態では、安全バブルモニタリングは、予期される静的障害物、予期されない静的障害物、及び安全周縁に入る/安全周縁から出る動的障害物を考慮することができる(例えば、
図41に示されるように)。上述したように、可動式ロボティックデバイスの動作状況は、操作要素の作業空間が常時変化するような動的環境であることができる。幾つかの実施形態では、異なる組の障害物/人々がロボティックデバイスの安全周縁内に公称的に存在することができるが、それでもなお操作に安全であると考えることができる。更に、外部センサを用意することができる環境と異なり、本明細書に記載のロボティックデバイスは、オンボードセンサを使用して、物体/人が安全周縁内にいるか否かを推定することにより、外部センサがない環境で動作し得る。
【0268】
[0305] 幾つかの実施形態では、ロボティックデバイスの周囲の360度ビューをカバーする2つの二次元ライダーセンサは、安全バブルモニタリングへの入力として使用することができる。幾つかの実施形態では、測距センサのアレイを安全バブルモニタリングへの入力として使用することができる。
【0269】
[0306] 幾つかの実施形態では、ロボティックデバイスは安全バブル内で減速することができるが、完全に停止しなくてよい。多階層安全手法では、コンプライアントコントローラは、低速移動中、力を可能にする。したがって、低速運動において、人はロボティックデバイスに教示及び/又はロボティックデバイスと相互作用することができる。
【0270】
[0307] 幾つかの実施形態では、確率的モデリング手法を採用して、予期しない物体/人が安全周縁内にある尤度を推定することができる。例えば、周縁内→一次停止、周縁外→再開。幾つかの実施形態では、隠れマルコフモデルを実施して一時停止/再開することができる。
図39は隠れマルコフモデルを示し、隠れ状態xは一時停止/再開信号であり、zは観測された範囲値であり、sは、予期された範囲が安全範囲閾値内にあるか否かである。幾つかの実施形態では、各時間ステップで一時停止/再開を独立して推定することにより、良好な結果をもたらすことができると仮定することができる。したがって
、
z:=現在範囲値
z
*:=予期される範囲位置
z
safe:=安全範囲閾値
を規定する。
【0271】
[0308]
【数1】
であるようなライダーの各範囲測定値(z
i)間の独立性を仮定することができる。
【0272】
[0309] 一時停止/再開を判断するために、
【数2】
を計算する。
【0273】
[0310] ベイズ規則を使用して、
p(x|z,s)∝p(z|x,s)・p(x|s)
であり、
[0311] これはx⊥sを与え、これは
p(x|z,s)∝p(z|x,s)・p(x)
に簡素化される。
【0274】
[0312] したがって、一時停止/再開を計算するために、範囲分布p(z|x,s)をモデリングすべきである。
【0275】
[0313] 幾つかの実施形態では、範囲分布をモデリングするように、レンジファインダの一般確率的ビームモデルを改変することができる。確率的ビームモデルは4つの成分を有することができる:
1.局所ノイズがある状態で予期される範囲
【数3】
2.予期されない物体
【数4】
3.測定失敗
p
max(z
i)=I(z
i=z
max)
4.ランダム測定
p
rand(z
i)=U(z
i;0,z
max)
【0276】
[0314] 全分布は
【数5】
であり、
[0315] 式中、0≦α,β,γ,δ≦1且つα+β+γ+δ=1である。
【0277】
[0316] このモデルは、以下:
【数6】
のように一時停止、再開条件にわたりp
shortの寄与を分割することにより安全閾値を組み込むように改変することができる。
【0278】
[0317] 上述した確率的モデリング手法は、一時停止/再開を計算するためのマルコフモデルの非限定的な例であることが容易に理解されるべきである。一時停止/再開を計算するために、任意の適したモデリング手法を実施することができる。
【0279】
[0318] 幾つかの実施形態では、予期される範囲値を使用して、指定された安全周縁内に公称的にあり得る任意の予期される障害物を考慮に入れることができる。予期される範囲値を生成するために、多様な方法が使用可能である。一手法は、操作開始時の範囲値を使用することを含むことができる。しかしながら、そのような手法は、操作開始時に存在する潜在的な安全ハザード(例えば、開始時の周縁内の人)を無視することができる。
【0280】
[0319] そのようなシナリオを適宜考慮するために、ロボティックデバイスの周囲が操作の開始に安全であるか否かを遠隔ユーザ/オペレータが判断することができる場合、ヒューマンインザループを組み込むことができる。操作の開始が安全であることを遠隔オペレータが通知する場合、ライダースキャンが予期される範囲値として捕捉することができる。
【0281】
[0320] 幾つかの実施形態では、時間の経過にわたる複数の予期される範囲値を使用して安全閾値を生成することができる。例えば、複数の範囲値を収集し、初期安全バブル閾値を生成/取得するための手法の一例として、経時にわたる安全性の複数の統計モデル(又は変数として時間を有する単一モデルに統合される)を生成することができる。
【0282】
[0321] これらの各遠隔オペレータの相互作用は、十分なトレーニングデータを受信すると、人間教師と同様の正確性で操作周囲を自己教師できるようになる学習モデル(例えば、模倣学習、実行による学習、探索による学習、ユーザ入力を使用した学習、及び/又はキャッシュ生成による学習)のトレーニングデータとして機能することができる。
【0283】
[0322] 幾つかの実施形態では、経時収集されたデータ(例えば、教師なしデータ)と遠隔オペレータ/ユーザとの相互作用との組合せを使用して、安全バブル閾値を生成することができる。相互作用は疎な相互作用であることができ、それにより、過度の人間による入力の必要性をなくす。
【0284】
[0323] 幾つかの実施形態では、安全閾値を使用して、予期されない物体/人々がロボティックデバイスに近すぎる(例えば、ロボティックデバイスから所定の閾値距離内にある)と見なされ、したがって、一時停止を通知することができる距離を画定することができる。これらの閾値を使用して、ロボティックデバイスの周囲に任意の形状を画定することができ、開始時に1回又はロボティックデバイスが移動するにつれて動的に生成することができる。幾つかの実施形態では、手法は、ロボティックデバイスの周囲の半径を画定することを含むことができ、幾つかの実施形態では、これは、運動の不必要な一時停止が伴う過度に保守的なものになり得る。
【0285】
[0324] 移動する操作要素の安全性の意味合いは特に懸念されるため、手法は、操作要素(例えばアーム)の投影シャドウの近似に従って安全範囲閾値を生成することを含むことができる。
図40は、本明細書に記載の安全範囲閾値の概略図を示す。操作要素の各リンクは、線として近似し(例えば、
図40の線4002、4004)、フロア平面に投影することができる。次いで1組の安全閾値を生成するために、ロボティックデバイスの基部の凸包及びリンクの近似線の丸められた矩形(例えば、
図40の丸められた矩形4012、4014)は一緒に、安全範囲閾値(例えば、
図40の4020)を画定することができる。ロボティックアームのリンクがある位置又は構成に応じて、
図40に示されるように、安全閾値を更新することができる。
【0286】
[0325] コンプライアントコントローラは、移動する操作要素が、マニピュレータの所望の軌道と相互作用する物体及び/又は人々に適用することができる力を制限することができる。コンプライアントコントローラは、アームへのコマンドの生成に使用されるため、安全バブル及び/又は遠隔モニタリング構成要素が故障した場合、受動的な安全システムとして作用することができる。
【0287】
[0326] 幾つかの実施形態では、コンプライアントコントローラは、インピーダンス及びアドミッタンス制御理論からの概念を使用して、軌道をなお追跡しながら、外力に従うことができるコントローラを生成することができる。目標は、運動中、人々及び/又は物体が操作要素に接触し、次いで最小の抵抗に従うことができるようにすることにより、あるレベルの安全性を提供することであり得る。例えば、幾つかの実施形態では、コンプライアントコントローラを意図的に利用することができ、それにより、人々がロボティックデバイスと相互作用できるようにする。これは、安全バブル内での相互作用中、操作要素を完全に停止させずに操作要素の減速を選ぶことにより可能になる。
【0288】
[0327] コントローラについて、操作要素がしっかりと搭載されていると仮定することができ、それにより、コントローラは、
【数7】
の形態で操作要素をモデリングすることが可能になる。
【0289】
[0328] T
extは外力から生じるトルクである。制御について、エフェクタのデカルト運動を考慮することができる。これは、方程式:
【数8】
により与えられる。
【0290】
[0329] コンプライアントコントローラは、q
d及び
【数9】
によりそれぞれ示される一連のジョイント位置及び速度を運動プランナーから受信することができる。上記変形を使用して、所望のジョイントをデカルト座標に変形することができる:
【数10】
【0291】
[0330] 所望の位置及び速度から、所望のコンプライアンス方程式はデカルト座標系において
【数11】
として定義することができる。
【0292】
[0331] 幾つかの実施形態では、コンプライアントコントローラは、Fextの値を明確に測定することができず、代わりに、
Fm=Fa-Fext
により与えられる重力補償済み捻れを測定することができることがある。
【0293】
[0332] 式中、F
mは測定された捻れであり、F
aは、制御運動に起因して付与された力である。理想的な条件下では、F
extが0である場合、F
aの値は
【数12】
の値に等しい。実測値を
【数13】
の元の方程式に適用すると、
【数14】
になる。
【0294】
[0333] 所望のデカルト加速度に従うことは、マニピュレータが、運動の安定性を維持しながら外力がアームを所望のパス又は軌道から移動させられるようにする所与の剛性及び減衰のバネとして作用することができることを意味することになる。積分ゲインは、位置アルゴリズムに不正確性を生じさせる重力の相殺における不正確性の補償に追加されるため、小さくすることができる。しかしながら、位置及び微分ゲインは小さいため、位相余裕は当然小さい値であることができ、積分ゲインが小さいままであることができることを意味する。
【0295】
[0334] 所望のデカルト運動は、所与のポイントにおけるマニピュレータの挙動を規定することができる。しかしながら、マニピュレータが、軌道における所望のジョイント位置及び速度により規定される所望の形状を維持することが望ましいことがある。このために、コンプライアンスコントローラは、ジョイントの追加の所望の加速度を
[0335]
【数15】
として規定することができる。
【0296】
[0336] αはM-1(q)の代わりとして一般倍率として振る舞うことが意図され、外力へのヌル空間の感度を規定するように調整することができるため、これは厳密方程式ではないことがある。目標は理想的な条件下で形状を維持することについてであることができるため、これは許容可能である。
【0297】
[0337] システムへのコマンドを見つけるために、二次プログラムを使用することができる。典型的な形の二次プログラムは、
【数16】
であることができる。
【0298】
[0338] マニピュレータの制御のために、一般形:
【数17】
を使用することができる。
【0299】
[0339] λ項は、ヌル空間運動を表し、第1の制御目的を大きく損ねることを意図しないため、小さい。変換形を使用すると、第1の部分は
【数18】
として書くことができる。
【0300】
[0340] 項を集め、ループサイクル毎に一定である結合項を落とすことで、制御デカルトプログラムは
【数19】
であることが分かる。
【0301】
[0341] 二次プログラムを解くことにより、結果としての加速度
【数20】
を与えることができる。結果としの加速度は、
【数21】
を用いてコマンド速度に適用することができる。
【0302】
[0342] 操作要素の上記モデルは非限定的な例である。操作要素のモデリングに任意の適した手法が使用可能なことが容易に理解されるべきである。
【0303】
[0343]
図41は、実施形態による、安全操作プロセス又はアルゴリズムの一例によりロボティックデバイスの移動速度を調整する一例を示す。
図41に示されるように、ユーザがロボティックデバイス周囲の安全バブル内のどこにいるか(4100、4102、4104)に応じて、ロボティックデバイスは、操作速度を遅くして(例えば、一時的及び/又は停止)、例えば、安全問題が発生するリスクを減じるように構成することができる。幾つかの実施形態では、ロボティックデバイスは、ユーザが安全バブルに入ったか否かをモニタすることができる。次いで、ロボティックデバイスが小変位操作(4102)を実行中であるかそれとも大変位操作(4104)を実行中であるかに応じて、ロボティックデバイスは、ユーザの存在を考慮するように、移動速度を調整、例えば移動を減速することができる。大変位操作(4104)の場合、ロボティックデバイスは、小変位操作の場合よりも大きく減速する(例えば、停止することになる)ことができる。
【0304】
[0344] 種々の本発明の実施形態について本明細書で説明し図示したが、機能を実行し及び/又は結果及び/又は本明細書に記載の利点の1つ又は複数を取得するための多様な他の手段及び/又は構造を当業者ならば容易に想定し、そのような変形形態及び/又は改変形態の各々は、本明細書に記載の本発明の実施形態の範囲内にあると考えられる。より一般には、本明細書に記載の全てのパラメータ、寸法、材料、及び構成が例示であることが意図され、実際のパラメータ、寸法、材料、及び/又は構成が、本発明の教示が使用される特定の1つ又は複数の用途に依存することを当業者ならば容易に認めるであろう。当業者ならば、ただの日常の経験を使用して、本明細書に記載の本発明の特定の実施形態への多くの均等物を認識することになるか、又は突き止めることが可能である。したがって、上記実施形態は単なる例として提示され、添付の特許請求の範囲及びその均等物の範囲内で、本発明の実施形態は、特に記載され特許請求される以外で実施されてもよいことを理解されたい。本開示の本発明の実施形態は、本明細書に記載の個々の各特徴、システム、物品、材料、キット、及び/又は方法に関する。くわえて、2つ以上のそのような特徴、システム、物品、材料、キット、及び/又は方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、及び/又は方法が相互に矛盾しない場合、本開示の本発明の範囲内に包含される。
【0305】
[0345] また、本発明の種々の概念は1つ又は複数の方法として実施し得、その一例が提供された。方法の一環として実行される動作は、任意の適した順序であり得る。したがって、動作が、例示的な実施形態では順次動作として示されているにも関わらず、幾つかの動作を同時に実行することを含み得る図示とは異なる順序で実行される実施形態を構築し得る。
【0306】
[0346] 本明細書に記載の幾つかの実施形態及び/又は方法は、異なるソフトウェア(ハードウェアで実行される)、ハードウェア、又はそれらの組合せにより実行することができる。ハードウェアモジュールは、例えば、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を含み得る。ソフトウェアモジュール(ハードウェアで実行される)は、C、C++、Java(商標)、Ruby、Visual Basic(商標)、及び/又は他のオブジェクト指向、手続き型、又は他のプログラミング言語及び開発ツールを含め、多様なソフトウェア言語(例えばコンピュータコード)で表現することができる。コンピュータコードの例には、限定されないが、マイクロコード又はマイクロ命令、コンパイラにより生成される等の機械命令、ウェブサービスの生成に使用されるコード、及びインタプリタを使用してコンピュータにより実行される高水準命令を含むファイルがある。例えば、実施形態は、命令型プログラミング言語(例えば、C、Fortran等)、関数型プログラミング言語(Haskell、Erlang等)、論理型プログラミング言語(例えばProlog)、オブジェクト指向プログラミング言語(例えば、Java、C++等)、又は他の適したプログラミング言語及び/又は開発ツールを使用して実施し得る。コンピュータコードの追加の例には、限定されないが、制御信号、暗号化コード、及び圧縮コードがある。
【0307】
[0347] 第1、第2、第3等の用語が本明細書において種々の要素の記述に使用されることがあるが、これらの要素はこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は単に、ある要素を別の要素から区別するためだけに使用されている。したがって、本明細書で考察される第1の要素は、本開示の教示から逸脱せずに、第2の要素と呼ぶことも可能である。
【0308】
[0348] 本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定を意図しない。本明細書で使用される場合、単数形「a」、「an」、及び「the」は、文脈により明らかに別のことが示される場合を除き、複数形を包含することが意図される。「備える」及び/又は「備えている」又は「含む」及び/又は「含んでいる」という用語は、本明細書で使用される場合、述べられた特徴、領域、完全体、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ又は複数の他の特徴、領域、完全体、ステップ、動作、要素、構成要素、及び/又はその群の存在又は追加を除外しないことが更に理解されよう。
【国際調査報告】