IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ディリジェント ロボティクス,インコーポレイテッドの特許一覧

特開2024-1106ロボットが技能を学習し実行するシステム、装置及び方法
<>
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図1
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図2
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図3
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図4
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図5
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図6A
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図6B
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図7A
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図7B
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図8
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図9
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図10
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図11
  • 特開-ロボットが技能を学習し実行するシステム、装置及び方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024001106
(43)【公開日】2024-01-09
(54)【発明の名称】ロボットが技能を学習し実行するシステム、装置及び方法
(51)【国際特許分類】
   B25J 5/00 20060101AFI20231226BHJP
【FI】
B25J5/00 A
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023171232
(22)【出願日】2023-10-02
(62)【分割の表示】P 2019545742の分割
【原出願日】2018-02-23
(31)【優先権主張番号】62/463,628
(32)【優先日】2017-02-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/463,630
(32)【優先日】2017-02-25
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.QRコード
(71)【出願人】
【識別番号】519298709
【氏名又は名称】ディリジェント ロボティクス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】トマス,アンドレア ロッカード
(72)【発明者】
【氏名】チュウ,ビビアン ヤウ-ウェン
(57)【要約】      (修正有)
【課題】ロボットが技能を学習し実行するシステム、装置及び方法を提供する。
【解決手段】ロボット装置は、メモリ、プロセッサ、操作要素、及びセンサを含むことができる。プロセッサは、メモリ、操作要素、及びセンサに動作可能に結合することができ、環境の表現を取得し、環境内に配置された1組の物理的物体に関連付けられた環境の表現内の複数のマーカを識別し、操作要素に関連付けられたセンサ情報を取得し、センサ情報に基づいて、操作要素の動きを定義して、操作要素と1組の物理的物体との物理的相互作用を実行するように構成されたモデルを生成するように構成することができる。代替又は追加として、プロセッサは、モデルを使用して、物理的相互作用の実行に関連付けられた操作要素の動きを定義する操作要素の軌道を生成するように構成することができる。
【選択図】図5
【特許請求の範囲】
【請求項1】
メモリと、
プロセッサと、
操作要素と、
1組のセンサと、を備え、
前記プロセッサは、前記メモリ、前記操作要素及び前記1組のセンサに動作可能に結合され、前記プロセッサは、
前記1組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、
前記環境の前記表現内の複数のマーカを識別することであって、前記複数のマーカからの各マーカには、前記環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、
前記環境の前記表現内の前記複数のマーカからの各マーカの位置を示す情報を提示することと、
前記複数の物理的物体からの1組の物理的物体に関連付けられた前記複数のマーカから選択された1組のマーカを受信することと、
前記環境内の前記操作要素の動きに関連付けられた複数の位置からの各位置について、前記操作要素に関連付けられたセンサ情報を取得することであって、前記操作要素の前記動きには、前記操作要素と前記1組の物理的物体との物理的な相互作用が関連付けられる、取得することと、
前記センサ情報に基づいて、前記操作要素と前記1組の物理的物体との前記物理的な相互作用を実行するように前記操作要素の動きを定義するように構成されたモデルを生成することと、を行うように構成される、装置。
【請求項2】
前記操作要素は、前記1組の物理的物体からの物理的物体のサブセットに係合するように構成されたエンドエフェクタを含む、請求項1に記載の装置。
【請求項3】
前記センサのサブセットは、センサの第1サブセットであり、前記プロセッサは、前記1組のセンサからのセンサの第2サブセットを介して前記センサ情報を取得するように構成され、前記センサの第2サブセットは、前記センサの第1サブセットと異なる、請求項1に記載の装置。
【請求項4】
前記操作要素は、複数のジョイントを介して連結された複数の可動構成要素を含み、
前記1組のセンサは、
前記複数のジョイントからのジョイントに作用する力を測定するように構成されたセンサ、又は
前記複数の可動構成要素からの可動構成要素と前記1組の物理的物体からの物理的物体との係合を検出するように構成されたセンサの少なくとも1つを含む、請求項1に記載の装置。
【請求項5】
前記操作要素は、(i)複数のジョイントと、(ii)前記1組の物理的物体からの物理的物体を移動させるように構成されたエンドエフェクタとを含み、
前記1組のセンサは、前記エンドエフェクタが前記物理的物体を移動させる場合、前記エンドエフェクタの少なくとも1つ又は前記エンドエフェクタに結合された前記複数のジョイントからのジョイントにかけられる力を測定するように構成されたセンサを含む、請求項1に記載の装置。
【請求項6】
前記センサ情報は、1組の特徴に関連付けられたセンサデータを含み、前記プロセッサは、
前記1組の特徴から選択された特徴の第1サブセットを受信するように更に構成され、
前記プロセッサは、第1組の特徴に含まれない前記1組の特徴からの特徴の第2サブセットに関連付けられたセンサデータではなく、前記特徴の第1サブセットに関連付けられたセンサデータに基づいて前記モデルを生成するように構成される、請求項1に記載の装置。
【請求項7】
前記プロセッサは、前記プロセッサがユーザにより行われる選択に応答して、前記選択された前記特徴の第1サブセットを受信するように、前記1組の特徴から少なくとも1つの特徴を選択するよう前記ユーザに促すように更に構成される、請求項6に記載の装置。
【請求項8】
前記プロセッサは、前記提示の後、前記プロセッサが、ユーザにより行われる選択に応答して、前記1組のマーカのうちの前記選択されたマーカを受信するように前記複数のマーカから少なくとも1つのマーカを選択するように前記ユーザに促すよう更に構成される、請求項1に記載の装置。
【請求項9】
プロセッサにより実行される命令を表すコードを記憶した非一時的プロセッサ可読媒体であって、前記コードは、前記プロセッサに、
1組のセンサを介して環境の表現を取得することと、
前記環境の前記表現内の複数のマーカを識別することであって、前記複数のマーカからの各マーカには、前記環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、
前記環境の前記表現内の前記複数のマーカからの各マーカの位置を示す情報を提示することと、
前記複数の物理的物体からの1組の物理的物体に関連付けられた前記複数のマーカから選択された1組のマーカを受信することに応答して、操作要素と前記1組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、前記操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、
前記モデルを使用して、前記物理的相互作用の実行に関連付けられた前記複数のジョイント及び前記エンドエフェクタの移動を定義する前記操作要素の軌道を生成することと、を行わせるコードを含む、非一時的プロセッサ可読媒体。
【請求項10】
前記プロセッサに、
前記環境の前記表現において、前記操作要素の前記軌道をユーザに表示することと、
前記表示の後、前記ユーザから入力を受信することと、
前記操作要素の前記軌道の許容を示す入力に応答して、前記複数のジョイント及び前記エンドエフェクタの前記移動を実施して、前記物理的相互作用を実行することと、を行わせるコードを更に含む、請求項9に記載の非一時的プロセッサ可読媒体。
【請求項11】
前記軌道は第1軌道であり、前記非一時的プロセッサ可読媒体は、前記プロセッサに、前記操作要素の前記軌道の許容を示さない入力に応答して、
前記モデルに関連付けられた1組のパラメータを変更して、変更モデルを生成することと、
前記変更モデルを使用して、前記操作要素の第2軌道を生成することと、を行わせるコードを更に含む、請求項10に記載の非一時的プロセッサ可読媒体。
【請求項12】
前記軌道は第1軌道であり、前記モデルは第1モデルであり、前記非一時的プロセッサ可読媒体は、前記プロセッサに、前記操作要素の前記軌道の許容を示さない前記入力に応答して、
前記第1モデルの生成に使用される1組の特徴と異なる1組の特徴に関連付けられたセンサデータに基づいて第2モデルを生成することと、
前記第2モデルを使用して、前記操作要素の第2軌道を生成することと、を行わせるコードを更に含む、請求項10に記載の非一時的プロセッサ可読媒体。
【請求項13】
前記プロセッサに、
前記複数のジョイント及び前記エンドエフェクタの前記移動を実施して、前記物理的相互作用を実行することと、
前記物理的相互作用の前記実行に関連付けられたセンサ情報を取得することと、
前記センサ情報に基づいて、前記物理的相互作用の前記実行が成功基準を満たすか否かを判断することと、を行わせるコードを更に含む、請求項9に記載の非一時的プロセッサ可読媒体。
【請求項14】
前記プロセッサに、
前記物理的相互作用の前記実行が前記成功基準を満たすとの判断に応答して、前記物理的相互作用が成功したことを示す信号を生成することと、
前記物理的相互作用の前記実行が前記成功基準を満たさないとの判断に応答して、
前記センサ情報に基づいて前記モデルを変更し、変更モデルを生成することと、
前記変更モデルを使用して、前記操作要素の第2軌道を生成することと、を行わせるコードを更に含む、請求項13に記載の非一時的プロセッサ可読媒体。
【請求項15】
前記モデルには、(i)記憶された1組のマーカ、(ii)前記記憶された1組のマーカに関連付けられた前記操作要素の記憶された軌道に沿ったポイントにおける前記操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び(iii)前記記憶された軌道に沿った前記ポイントにおける前記複数のジョイントの構成を示すセンサ情報が関連付けられ、
前記プロセッサに、前記操作要素の前記軌道を生成させる前記コードは、前記プロセッサに、
前記1組のマーカと前記記憶された1組のマーカとの間の変換関数を計算することと、
各ポイントについて、前記変換関数を使用して、前記操作要素の前記位置又は前記向きの少なくとも一方を変換することと、
各ポイントについて、前記記憶された軌道に沿った前記ポイントにおける前記複数のジョイントの前記構成に基づいて、前記複数のジョイントの計画構成を決定することと、
各ポイントについて、そのポイントの前記複数のジョイントの前記計画構成に基づいて、そのポイントと連続ポイントとの間の前記軌道の部分を特定することと、を行わせるコードを含む、請求項9に記載の非一時的プロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本願は、2017年2月25日に出願された「Method and System for Robotic Learning of Execution Processes Related to Perceptually Constrained Manipulation Skills」という名称の米国仮特許出願第62/463,628号及び2018年2月25日に出願された「Method and System for Robotic Execution of a Perceptually Constrained Manipulation Skill Learned via Human Interaction」という名称の米国仮特許出願第62/463,630号への優先権を主張するものであり、各仮特許出願の開示は全体的に、参照により本明細書に援用される。
【0002】
政府支援
[0002] 本発明は、中小企業技術革新制度フェーズ1の下、米国科学財団(National Science Foundation)により授与された助成金番号1621651の下、米国政府の支援によってなされた。米国政府は本発明において一定の権利を有する。
【0003】
[0003] 本開示は、一般には、ロボットが技能を学習し実行するシステム、装置、及び方法に関する。より具体的には、本開示は、非構造的環境において技能を学習し実行することが可能なロボット装置に関する。
【背景技術】
【0004】
[0004] ロボットは、様々なタスクの実行及びオートメーション化に使用されることができる。ロボットは、オフィスの建物又は病院等の環境を移動することによりタスクを実行することができる。ロボットは、環境内を自律的に動き回れるようにする車輪、トラック、又は他の可動構成要素を備えることができる。しかしながら、アーム又は他のマニュピュレータを有さないロボットは、環境において物体を操作することができない。従って、これらのロボットのタスク実行能力は限られ、例えば、そのようなロボットは、ピックアップポイント又は輸送ポイントにおいて物体を操作するために人間が存在せずには物体をピックアップ又は輸送することができない可能性がある。
【0005】
[0005] アーム又は他のマニュピュレータを含むロボットは、人間が存在せずにあるロケーションに物体をピックアップし輸送することが可能であり得る。例えば、グリッパ等のエンドエフェクタを有するアームを有するロボットは、グリッパを使用して、異なるロケーションから1つ又は複数の物体をピックアップし、それらの物体を新しいロケーションに輸送することができ、これらは全て人間の支援なしで行われる。これらのロボットは特定のタスクのオートメーション化に使用することができ、それにより、人間であるオペレータは他のタスクに集中することができる。しかしながら、大半の商用ロボットは、マニュピュレータの動作をプログラムする問題及び複雑性に起因してマニュピュレータを含まない。
【0006】
[0006] 更に、大半の商用ロボットは、構造的環境、例えば、工場、倉庫等で動作するように設計される。非構造的環境、例えば、病院及び家庭等の人間が関わる環境は、ロボットのプログラミングに追加の問題を課し得る。非構造的環境では、ロボットは、周囲環境の完全な知識に頼ることができず、周囲環境の変化を知覚可能であり、それらの変化に基づいて適応可能でなければならない。従って、非構造的環境では、ロボットは、自律的な判断を下し、タスクを実行することが可能であるためには、環境についての情報を連続して取得する必要がある。多くの場合、環境でのロボットの動き、例えばアーム又はエンドエフェクタの動きも、環境内の物体及び他の障害物により制約を受け、ロボットの知覚及び操作の問題を更に大きくする。非構造的環境の不確かで動的な性質により、ロボットは通常、タスクを実行するように予めプログラムすることができない。
【0007】
[0007] 従って、予めプログラムされる操作技能に頼ることなく、動的な非構造的環境を知覚してそれに適応することができ、それらの環境内でタスクを実行することができるロボットシステムが必要である。
【発明の概要】
【0008】
[0008] ロボットが技能を学習し実行するシステム、装置及び方法が記載される。幾つかの実施形態では、装置は、メモリ、プロセッサ、操作要素、及び1組のセンサを含む。プロセッサは、メモリ、操作要素、及び1組のセンサに動作可能に結合され、1組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカを受信することと、環境内の操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と1組の物理的物体との物理的な相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と1組の物理的物体との物理的な相互作用を実行するように操作要素の動きを定義するように構成されたモデルを生成することとを行うように構成することができる。
【0009】
[0009] 幾つかの実施形態では、操作要素は、複数のジョイント及びエンドエフェクタを含むことができる。幾つかの実施形態では、1組の物理的物体は人間を含むことができる。
【0010】
[0010] 幾つかの実施形態では、複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である。
【0011】
[0011] 幾つかの実施形態では、複数のマーカからの2つ以上のマーカに、1組の物理的物体からの1つの物理的物体を関連付けることができる。代替又は追加として、幾つかの実施形態では、複数のマーカからの1つのマーカに、1組の物理的物体からの2つ以上の物理的物体を関連付けることができる。
【0012】
[0012] 幾つかの実施形態では、方法は、1組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、提示後、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカを受信することと、環境における操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と1組の物理的物体との物理的相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と1組の物理的物体との物理的相互作用を実行するように操作要素の動きを定義するよう構成されたモデルを生成することとを含む。
【0013】
[0013] 幾つかの実施形態では、本方法は、1組の特徴から選択された特徴の第1サブセットを受信することであって、モデルは、特徴の第1サブセットに関連付けられたセンサデータに基づいて、且つ第1組の特徴に含まれない1組の特徴からの特徴の第2サブセットに関連付けられたセンサデータに基づかずに生成される、受信することを更に含む。
【0014】
[0014] 幾つかの実施形態では、方法は、1組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカの受信に応答して、操作要素と1組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、モデルを使用して、物理的相互作用の実行に関連付けられた複数のジョイント及びエンドエフェクタの移動を定義する、操作要素の軌道を生成することとを含む。
【0015】
[0015] 幾つかの実施形態では、本方法は、環境の表現内の操作要素の軌道をユーザに表示することと、表示後、ユーザからの入力を受信することと、操作要素の軌道の許容を示す入力に応答して、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することとを更に含む。
【0016】
[0016] 幾つかの実施形態では、モデルには、(i)記憶された1組のマーカ、(ii)記憶された1組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び(iii)記憶された軌道に沿ったポイントにおける複数のジョイントの構成を示すセンサ情報が関連付けられる。操作要素の軌道を生成する方法は、1組のマーカと記憶された1組のマーカとの間の変換関数を計算することと、各ポイントについて、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントについて、記憶された軌道に沿ったポイントにおける複数のジョイントの構成に基づいて、複数のジョイントの計画構成を決定することと、各ポイントについて、そのポイントの複数のジョイントの計画構成に基づいて、そのポイントと連続ポイントとの間の軌道の部分を特定することとを含む。
【0017】
[0017] 他のシステム、プロセス、及び特徴は、以下の図面及び詳細な説明を調べた上で当業者に明らかになろう。そのような追加のシステム、プロセス、及び特徴の全てが、この説明内に含まれ、本発明の範囲内に含まれ、添付の特許請求の範囲により保護されることが意図される。
【0018】
[0018] 図面が主に例示を目的とし、本明細書に記載される本発明の趣旨の範囲の限定を意図しないことを当業者は理解しよう。図面は必ずしも一定の縮尺ではなく、幾つかの場合、本明細書に開示される本発明の趣旨の様々な態様は、異なる特徴の理解を促進するために、図面において誇張又は拡大されて示され得る。図面中、同様の参照文字は一般に同様の特徴(例えば、機能的に同様の要素及び/又は構造的に同様の要素)を指す。
【図面の簡単な説明】
【0019】
図1】[0019]幾つかの実施形態によるロボットデバイスを含むシステムの構成を示すブロック図である。
図2】[0020]幾つかの実施形態によるロボットデバイスの構成を示すブロック図である。
図3】[0021]幾つかの実施形態によるロボットデバイスに関連付けられた制御ユニットの構成を示すブロック図である。
図4】[0022]幾つかの実施形態によるロボットデバイスの操作要素の概略図である。
図5】[0023]幾つかの実施形態によるロボットデバイスの概略図である。
図6A】[0024]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
図6B】[0024]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
図7A】[0025]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
図7B】[0025]幾つかの実施形態によるロボットデバイスにより見られる環境内の物体の概略図である。
図8】[0026]幾つかの実施形態によるロボットデバイスにより実行される環境スキャン方法を示す流れ図である。
図9】[0027]幾つかの実施形態によるロボットデバイスにより実行される技能を学習し実行する方法を示す流れ図である。
図10】[0028]幾つかの実施形態によるロボットデバイスにより実行される技能を学習する方法を示す流れ図である。
図11】[0029]幾つかの実施形態によるロボットデバイスにより実行される技能を実行する方法を示す流れ図である。
図12】[0030]幾つかの実施形態による、ユーザ動作を含むロボット学習及び実行のシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0020】
[0031] ロボットが技能を学習し実行するシステム、装置、及び方法が本明細書に記載される。幾つかの実施形態では、本明細書に記載されるシステム、装置、及び方法は、人間の実演及び相互作用を介して技能を学習し、非構造的環境において、学習した技能を実行することが可能なロボット装置に関する。
【0021】
[0032] 幾つかの実施形態では、本明細書に記載されるシステム、装置及び方法は、実演からの学習(「LfD:Learning from Demonstration」)プロセスを介して技能(例えば、操作技能)を学習することができるロボットに関し、LfDプロセスでは、人間は、運動感覚教授(例えば、人間が、物理的に動作を通して及び/又は遠隔制御によりロボットをガイドする)及び/又は動作の人間自身による実行を介してシステムに動作を実演する。そのようなシステム、装置、及び方法では、操作技能をロボットに予めプログラムする必要がなく、むしろ、ロボットは、観察を介して適応し、技能を学習可能であるように設計される。例えば、ロボットは、機械学習技法を使用して、操作技能を取得し実行することができる。技能学習後、ロボットは、異なる環境で技能を実行することができる。ロボットは、視覚データ(例えば、知覚した視覚情報)に基づいて技能を学習及び/又は実行することができる。代替又は追加として、ロボットは、触覚データ(例えば、トルク、力、及び他の非視覚的情報)を使用して技能を学習及び/又は実行することができる。ロボット学習は、ロボット配備前、工場で行うこともでき、又はロボット配備後、現場(例えば、病院)で行うこともできる。幾つかの実施形態では、ロボット工学及び/又はプログラミングのトレーニングを受けていないユーザが、ロボットに技能を教えることができ、及び/又はロボットは環境で動作するように適応することができる。例えば、ロボットは、自然な人間の挙動を利用する学習アルゴリズムを有することができ、実演プロセスを通してユーザをガイドすることができるツールを含むことができる。
【0022】
[0033] 幾つかの実施形態では、ロボットは、人間と相互作用し、人間と協働してタスクを実行するように設計することができる。幾つかの実施形態では、ロボットは、共通の社会的挙動を使用して、社会的に予測可能且つ許容可能なように人間の間で動作することができる。移動可能なロボットは、その環境内の人間と相互作用しながら、環境内をナビゲートするように設計することもできる。例えば、ロボットは、特定の句を話して人間の中をナビゲートし、横に移動して、人間が通行できるようにし、ナビゲーション中、注視を使用して志向性を伝えるようにプログラムすることができる。幾つかの実施形態では、ロボットは、周囲環境内の人間を知覚し追跡できるようにし、その情報を使用して、注視及び他の社会的挙動をトリガーできるようにするセンサを有することができる。
【0023】
[0034] 幾つかの実施形態では、ロボットは、LfDプロセス中、目標達成又は動作実行のための選択肢を提案するように設計することができる。例えば、ロボットは、目標(物体のピックアップ)を達成するための少数の異なる選択肢を提案することができ、それらの選択肢のいずれが、効率的及び/又は目標達成に有効である可能性が最も高いかを示すことができる。幾つかの実施形態では、ロボットは、ユーザによる入力、例えば、ユーザが技能モデルへの包含に妥当な特徴を示すことに基づいて技能を適応させることができる。
【0024】
[0035] 幾つかの実施形態では、ロボットデバイスは、非構造的環境、例えば、ロボットデバイスが事前に環境の完全な情報を有さない動的及び/又は人間環境において技能を学習及び/又は実行可能であることができる。非構造的環境は、例えば、屋内及び屋外設定を含むことができ、環境内を移動可能な1人若しくは複数の人間又は他の物体を含むことができる。大半の自然又は現実世界の環境は非構造的であるため、本明細書に記載されるロボットデバイス及び/又はシステム等の非構造的環境に適応し非構造的環境で動作することができるロボットデバイスは、非構造的環境に適応することができない既存のロボットデバイスからの有意な改善を提供することができる。非構造的環境は、屋内設定(例えば、建物、オフィス、家、部屋等)及び/又は他のタイプの閉じた空間(例えば、航空機、列車、及び/又は他のタイプの移動可能なコンパートメント)並びに屋外設定(例えば、公園、海辺、野外、野原)を含むことができる。一実施形態では、本明細書に記載されるロボットデバイスは、非構造的病院環境で動作することができる。
【0025】
[0036] 図1は、幾つかの実施形態によるシステム100を示す高レベルブロック図である。システム100は、非構造的環境において、例えば操作技能等の技能を学習し実行するように構成することができる。システム100は、1つのデバイスとして実施することもでき、又はネットワーク105に接続された複数のデバイスを介して実施することもできる。例えば、図1に示すように、システム100は、例えば、1つ又は複数のロボットデバイス102及び110、サーバ120、並びに追加の計算デバイス150等の1つ又は複数の計算デバイスを含むことができる。4つのデバイスが示されているが、システム100が、図1に特に示されていない計算デバイスを含め、任意の数の計算デバイスを含むことができることを理解されたい。
【0026】
[0037] ネットワーク105は、有線ネットワーク及び/又は無線ネットワークとして実施され、ロボットデバイス102及び110、サーバ120、並びに計算デバイス150を含め、計算デバイスを動作可能に結合するのに使用される任意のタイプのネットワーク(例えば、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、仮想ネットワーク、電気通信ネットワーク)であることができる。本明細書において更に詳述するように、幾つかの実施形態では、例えば、計算デバイスは、インターネットサービスプロバイダ(ISP)及びインターネット(例えば、ネットワーク105)を介して互いに接続されたコンピュータである。幾つかの実施形態では、接続は、ネットワーク105を介して任意の2つの計算デバイス間に定義することができる。例えば、図1に示されるように、接続は、ロボットデバイス102とロボットデバイス110、サーバ120、又は追加の計算デバイス150のいずれか1つとの間に定義することができる。幾つかの実施形態では、計算デバイスは、中間ネットワーク及び/又は代替ネットワーク(図1に示されず)を介して互いと通信し(例えば、データを送信し、及び/又はデータを受信し)、ネットワーク105と通信することができる。そのような中間ネットワーク及び/又は代替ネットワークは、ネットワーク105と同じタイプのネットワーク及び/又は異なるタイプのネットワークであることができる。各計算デバイスは、ネットワーク105を介してデータを送信して送信し、及び/又は他の計算デバイスの1つ又は複数からデータを受信するように構成された任意のタイプのデバイスであることができる。
【0027】
[0038] 幾つかの実施形態では、システム100は、1つのロボットデバイス、例えば、ロボットデバイス102を含む。ロボットデバイス102は、環境についての情報を知覚し、人間の実演及び相互作用を介して技能を学習し、及び/又は環境においてそれらの技能を実行するように構成することができる。一例のロボットデバイスのより詳細な図を図2に示す。
【0028】
[0039] 他の実施形態では、システム100は、複数のロボットデバイス、例えば、ロボットデバイス102及び110を含む。ロボットデバイス102は、ネットワーク105を介してロボットデバイス110にデータを送信し、及び/又はロボットデバイス110からデータを受信することができる。例えば、ロボットデバイス102は、環境について知覚する情報(例えば、物体のロケーション)をロボットデバイス110に送信することができ、ロボットデバイス110から環境についての情報を受信することができる。ロボットデバイス102及び110はまた、互いに情報を送信し、及び/又は互いから情報を受信して、技能を学習及び/又は実行することができる。例えば、ロボットデバイス102は、環境において技能を学習し、その学習した技能を表すモデルをロボットデバイス110に送信することができ、ロボットデバイス110は、そのモデルを受信すると、同じ又は異なる環境でモデルを使用して技能を実行することができる。ロボットデバイス102は、ロボットデバイス110と同じ又は異なるロケーションにあることができる。例えば、ロボットデバイス102及び110は、建物(例えば、病院の建物)の同じ部屋に配置することができ、それにより、一緒に技能(例えば、重い物体又は大きな物体を移動させる)を学習及び/又は実行することができる。代替的には、ロボットデバイス102は、建物(例えば、病院の建物)の1階に配置することができ、ロボットデバイス110は建物の2階に配置することができ、2つは互いと通信して、異なるフロアについての情報を互いに中継することができる(例えば、物体がそれらのフロアのどこにあるか、リソースがどこにあり得るか等)。
【0029】
[0040] 幾つかの実施形態では、システム100は、1つ又は複数のロボットデバイス、例えば、ロボットデバイス102及び/又は110並びにサーバ120を含む。サーバ120は、ロボットデバイス102及び/又は110を管理する専用サーバであることができる。サーバ120は、ロボットデバイス102及び/又は110と同じ又は異なるロケーションにあることができる。例えば、サーバ120は、1つ又は複数のロボットデバイスと同じ建物(例えば、病院の建物)に配置され、ローカル管理者(例えば、病院の管理者)により管理することができる。代替的には、サーバ120はリモートロケーション(例えば、ロボットデバイスの製造業者又は提供者に関連付けられたロケーション)に配置することができる。
【0030】
[0041] 幾つかの実施形態では、システム100は、1つ又は複数のロボットデバイス、例えば、ロボットデバイス102及び/又は110並びに追加の計算デバイス150を含む。計算デバイス150は、特定の機能を走らせ及び/又は実行するように構成された任意の適した処理デバイスであることができる。例えば、病院の設定では、計算デバイス150は、ネットワーク105に接続し、ロボットデバイス102及び/又は110を含む他の計算デバイスと通信することが可能な診断及び/又は治療デバイスであることができる。
【0031】
[0042] 図2は、幾つかの実施形態によるロボットデバイス200を概略的に示す。ロボットデバイス200は、制御ユニット202、ユーザインターフェース240、少なくとも1つの操作要素250、及び少なくとも1つのセンサ270を含む。更に、幾つかの実施形態では、ロボットデバイス200は任意選択的に、少なくとも1つの搬送要素260を含む。制御ユニット202は、メモリ220、記憶装置230、プロセッサ204、システムバス206、及び少なくとも1つの入出力インターフェース(「I/Oインターフェース」)208を含む。メモリ220は、例えば、ランダムアクセスメモリ(RAM)、メモリバッファ、ハードドライブ、データベース、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的に消去可能な読み取り専用メモリ(EEPROM)、及び/又は読み取り専用メモリ(ROM)等であることができる。幾つかの実施形態では、メモリ220は、プロセッサ204に環境のスキャン又は表示、技能の学習、及び/又は技能の実行に関連付けられたモジュール、プロセス、及び/又は機能を実行させる命令を記憶する。記憶装置230は、例えば、ハードドライブ、データベース、クラウドストレージ、ネットワーク接続記憶装置、又は他のデータ記憶装置であることができる。幾つかの実施形態では、記憶装置230は、例えば、ロボットデバイス200の1つ又は複数の構成要素(例えば、操作要素250)に関する状態情報を含むセンサデータ、学習したモデル、マーカロケーション情報等を記憶することができる。
【0032】
[0043] 制御ユニット202のプロセッサ204は、環境の表示、技能の学習、及び/又は技能の実行に関連付けられた機能を走らせ及び/又は実行するように構成された任意の適した処理デバイスであることができる。例えば、プロセッサ204は、本明細書に更に説明するように、センサ情報に基づいて技能のモデルを生成し、又はモデルを使用して技能を実行する軌道を生成することにより技能を実行するように構成することができる。より具体的には、プロセッサ204は、モジュール、機能、及び/又はプロセスを実行するように構成することができる。幾つかの実施形態では、プロセッサ204は、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及び/又はデジタル信号プロセッサ(DSP)等であることができる。
【0033】
[0044] システムバス206は、プロセッサ204、メモリ220、記憶装置230、及び/又は制御ユニット202の他の構成要素が互いと通信できるようにする任意の適した構成要素であることができる。I/Oインターフェース208は、システムバス206に接続され、制御ユニット202の内部構成要素(例えば、プロセッサ204、メモリ220、記憶装置230)と、ユーザインターフェース240、操作要素250、搬送要素260、及びセンサ270等の外部入出力デバイスとの間での通信を可能にする任意の適した構成要素であることができる。
【0034】
[0045] ユーザインターフェース240は、入力を受信し、出力を他のデバイス及び/又はユーザ操作のデバイス、例えば、ユーザ操作のロボットデバイス200に送信するように構成された1つ又は複数の構成要素を含むことができる。例えば、ユーザインターフェース240は、表示デバイス242(例えば、ディスプレイ、タッチスクリーン等)、オーディオデバイス244(例えば、マイクロホン、スピーカ)、及び任意選択的に、入力を受信し、及び/又はユーザへの出力を生成するように構成された1つ又は複数の追加の入出力デバイス(「I/Oデバイス」)246を含むことができる。
【0035】
[0046] 操作要素250は、例えば、人間を含む静止物体及び/又は移動物体を操作及び/又は相互作用することが可能な任意の適した構成要素であることができる。操作要素250は、1つ又は複数の軸に沿った並進及び/又は1つ又は複数の軸の回りの回転を提供することができるジョイントを介して互いに結合される複数のセグメントを含むことができる。操作要素250は、環境内の物体と係合及び/又は他の方法で相互作用することができるエンドエフェクタを含むこともできる。例えば、操作要素は、環境内の物体に解放可能に係合(例えば、把持)して、物体をピックアップ及び/又は搬送することができる把持機構を含むことができる。エンドエフェクタの他の例には、例えば、真空係合機構、磁気係合機構、吸引機構、及び/又はそれらの組合せがある。一例の操作要素の詳細図を図4に示す。
【0036】
[0047] 搬送要素260は、例えば、車輪又はトラック等の移動するように構成された任意の適した構成要素であることができる。1つ又は複数の搬送要素260は、ロボットデバイス200の基部に提供して、ロボットデバイス200が環境内を動き回れるようにすることができる。例えば、ロボットデバイス200は、例えば、病院等の建物内をナビゲートできるようにする複数の車輪を含むことができる。搬送要素260は、狭い空間及び/又は制約された空間(例えば、狭い廊下及び通路、供給品格納室等の狭い部屋等)を通した移動を促進するように設計及び/又は寸法決めすることができる。
【0037】
[0048] センサ270は、ロボットデバイス200がロボットデバイス200周辺の環境及び/又は環境内の物体についての情報を捕捉できるようにする任意の適した構成要素であることができる。センサ270は、例えば、画像捕捉デバイス(例えば、赤緑青奥行き(RGB-D)カメラ又はウェブカム等のカメラ)、オーディオデバイス(例えば、マイクロホン)、光センサ(例えば、光検出及び測距又はライダーセンサ、色検出センサ)、固有受容センサ、位置センサ、触覚センサ、力又はトルクセンサ、温度センサ、圧力センサ、運動センサ、サウンド検出器等を含むことができる。例えば、センサ270は、ロボットデバイス200周辺の物体及び環境についての視覚情報を捕捉するカメラ等の少なくとも1つの画像捕捉デバイスを含むことができる。幾つかの実施形態では、センサ270は、触覚センサ、例えば、力、振動、タッチ、及び他の非視覚的情報をロボットデバイス200に伝えることができるセンサを含むことができる。
【0038】
[0049] 幾つかの実施形態では、ロボットデバイス200は人間そっくりの特徴、例えば、頭、体、腕、足、及び/又はベースを有するであることができる。例えば、ロボットデバイス200は、目、鼻、口、及び他の人間そっくりの特徴を有する顔を含むことができる。概略的に示されていないが、ロボットデバイス200は、アクチュエータ、モータ、カプラ、コネクタ、電源(例えば、搭載電池)、及び/又はロボットデバイス200の異なる部分をリンク、作動、及び/又は駆動する他の構成要素を含むこともできる。
【0039】
[0050] 図3は、幾つかの実施形態による制御ユニット302を概略的に示すブロック図である。制御ユニット302は、制御ユニット202と同様の構成要素を含むことができ、制御ユニット202と構造的及び/又は機能的に同様であることができる。例えば、制御ユニット302は、プロセッサ304、メモリ320、I/Oインターフェース308、システムバス306、及び記憶装置330を含み、これらは構造的及び/又は機能的にプロセッサ204、メモリ220、I/Oインターフェース208、システムバス206、及び記憶装置230とそれぞれ同様であることができる。
【0040】
[0051] メモリ320は、プロセッサ304に、アクティブスキャン322、マーカ識別324、学習及びモデル生成326、軌道生成及び実行328、並びに成功モニタリング329として示されるモジュール、プロセス、及び/又は機能を実行させることができる命令を記憶する。アクティブスキャン322、マーカ識別324、学習及びモデル生成326、軌道生成及び実行328、並びに成功モニタリング329は、ハードウェア構成要素(例えば、センサ、操作要素、I/Oデバイス、プロセッサ等)に結び付けられた1つ又は複数のプログラム及び/又はアプリケーションとして実施することができる。アクティブスキャン322、マーカ識別324、学習及びモデル生成326、軌道生成及び実行328、並びに成功モニタリング329は、1つのロボットデバイス又は複数のロボットデバイスにより実施することができる。例えば、ロボットデバイスは、アクティブスキャン322、マーカ識別324、並びに軌道生成及び実行328を実施するように構成することができる。別の例として、ロボットデバイスは、アクティブスキャン322、マーカ識別324、任意選択的に学習及びモデル生成326、並びに軌道生成及び実行328を実施するように構成することができる。別の例として、ロボットデバイスは、アクティブスキャン322、マーカ識別324、軌道生成及び実行328、並びに任意選択的に成功モニタリング329を実施するように構成することができる。示されていないが、メモリ320は、オペレーティングシステムに関連付けられたプログラム及び/又はアプリケーション並びに一般的なロボット動作(例えば、電力管理、メモリ割り振り等)を記憶することもできる。
【0041】
[0052] 記憶装置330は、技能の学習及び/又は実行に関連する情報を記憶する。記憶装置330は、例えば、内部状態情報331、モデル334、物体情報340、及び機械学習ライブラリ342を記憶する。内部状態情報331は、ロボットデバイス(例えば、ロボットデバイス200)の状態及び/又はロボットデバイスが動作している環境(例えば、病院等の建物)に関する情報を含むことができる。幾つかの実施形態では、状態情報331は、例えば、部屋、フロア、閉じられた空間等の環境内のロボットデバイスのロケーションを示すことができる。例えば、状態情報331は、環境の地図332を含むことができ、その地図332内のロボットデバイスのロケーションを示すことができる。状態情報331は、環境内、例えば、地図332内の1つ又は複数の物体(又は物体を表すマーカ及び/又は物体に関連付けられたマーカ)のロケーションを含むこともできる。従って、状態情報331は、1つ又は複数の物体に相対するロボットデバイスのロケーションを識別することができる。物体は、環境内に配置される任意のタイプの物理的物体を含むことができる。物体は静止していてもよく、又は移動可能であってもよい。例えば、病院等の環境内の物体の例には、機器、供給品、器具、工具、家具、及び/又は人間(例えば、看護師、医師、患者等)がある。
【0042】
[0053] 物体情報340は、環境内の物理的物体に関連する情報を含むことができる。例えば、物体情報は、例えば、ロケーション、色、形状、及び表面特徴等の物体の様々な特徴を識別又は定量化する情報を含むことができる。物体情報は、物理的物体に関連付けられたコード、記号、及び他のマーカ、例えば、Quick Response又は「QR」コード、バーコード、タグ等を識別することもできる。物体情報は、制御ユニット302が環境内の物理的物体を識別できるようにすることができる。
【0043】
[0054] 機械学習ライブラリ342は、異なる技能の機械学習及び/又はモデル生成用の異なるアルゴリズムに関連するモジュール、プロセス、及び/又は機能を含むことができる。幾つかの実施形態では、機械学習ライブラリは、隠れマルコフモデル又は「HMM」等の方法を含むことができる。Pythonでの既存の機械学習ライブラリの一例はscikit-learnである。記憶装置330は、例えば、ロボットシミュレーション、運動の計画及び制御、運動感覚教授、及び知覚等に関連する追加のソフトウェアライブラリを含むこともできる。
【0044】
[0055] モデル334は、異なる動作を実行するように生成され、ロボットデバイスにより学習された技能を表すモデルである。幾つかの実施形態では、各モデル334には、環境内の異なる物理的物体に結び付けられた1組のマーカが関連付けられる。マーカ情報335は、特定のモデル334にどのマーカが関連付けられているかを示すことができる。各モデル334には、運動感覚教授中及び/又は技能の他の実演中、例えば、ロボットデバイスの1つ又は複数のセンサを介して収集されたセンサ情報336を関連付けることもできる。センサ情報336は、実演中、ロボットデバイスの操作要素が動作を実行する際の、ロボットデバイスの操作要素に関連付けられた操作要素情報337を含むことができる。操作要素情報337は、例えば、ジョイント構成、エンドエフェクタの位置及び構成、及び/又はジョイント及び/又はエンドエフェクタに対して作用する力及びトルクを含むことができる。操作要素情報337は、技能の実演及び/又は実行中の特定のポイント(例えば、キーフレーム)で記録してもよく、又は代替的には、技能の実演及び/又は実行全体を通して記憶してもよい。センサ情報336は、技能が実演及び/又は実行された環境に関連付けられた情報、例えば、環境内のマーカのロケーションを含むこともできる。幾つかの実施形態では、各モデル334には成功基準339を関連付けることができる。成功基準339を使用して、技能の実行をモニタすることができる。幾つかの実施形態では、成功基準339は、1つ又は複数のセンサ、例えば、カメラ、力/トルクセンサ等を使用して知覚された視覚データ及び触覚データに関連付けられた情報を含むことができる。成功基準339は、例えば、物体の運動の視覚的検出、ロボットデバイスの構成要素に作用している力(例えば、物体からの重み)の検知、ロボットデバイスの構成要素と物体との係合(例えば、表面に作用している圧力又は力の変化)の検知等に結び付けることができる。操作技能のロボット学習に触覚データを使用する例は、http://ieeexplore.ieee.org/document/7463165/においてアクセス可能であり、参照により本明細書に援用される、2016 IEEE Haptics Symposium (HAPTICS), Philadelphia, PA, 2016, pp. 119-125において公開されたChu et al.著「Learning Haptic Affordances from Demonstration and Human-Guided Exploration」と題する記事に記載されている。操作技能のロボット学習に視覚データを使用する例は、https://doi.org/10.1007/s10514-015-9448-x(「Akgun記事」)においてアクセス可能であり、参照により本明細書に援用される、Autonomous Robots, Volume 40, Issue 2, February 2016, pp. 211-227において公開されたAkgun et al.著「Simultaneously Learning Actions and Goals from Demonstration」と題する記事に記載されている。
【0045】
[0056] 図4は、幾つかの実施形態による操作要素350を概略的に示す。操作要素350は、例えば、ロボットデバイス102及び/又は200等のロボットデバイスの一部を形成することができる。操作要素350は、ジョイント354を介して一緒に結合された2つ以上のセグメント352を含むアームとして実施することができる。ジョイント354は、1度以上の自由度を可能にすることができる。例えば、ジョイント354は、1つ又は複数の軸に沿った並進及び/又は1つ又は複数の軸の回りの回転を提供することができる。一実施形態では、操作要素350は、ジョイント354により提供される7度の自由度を有することができる。4つのセグメント352及び4つのジョイント354が図4に示されているが、当業者は、操作要素が異なる数のセグメント及び/又はジョイントを含むことができることを理解する。
【0046】
[0057] 操作要素350は、環境内の物体と相互作用するのに使用することができるエンドエフェクタ356を含む。例えば、エンドエフェクタ356を使用して、異なる物体に係合及び/又は操作することができる。代替又は追加として、エンドエフェクタ356を使用して、例えば、人間を含む可動物体又は動的物体と相互作用することができる。幾つかの実施形態では、エンドエフェクタ356は、1つ又は複数の物体に解放可能に係合又は把持することができるグリッパであることができる。例えば、グリッパとして実施されるエンドエフェクタ356は、物体をピックアップし、第1ロケーション(例えば、供給品格納室)から第2ロケーション(例えば、オフィス、部屋等)に移動させることができる。
【0047】
[0058] 複数のセンサ353、355、357、及び358は、操作要素350の異なる構成要素、例えば、セグメント352、ジョイント354、及び/又はエンドエフェクタ356に配置することができる。センサ353、355、357、及び358は、環境情報及び/又は操作要素情報を含むセンサ情報を測定するように構成することができる。センサの例には、位置エンコーダ、トルク及び/又は力センサ、タッチ及び/又は触覚センサ、カメラ等の画像捕捉デバイス、温度センサ、圧力センサ、光センサ等がある。幾つかの実施形態では、セグメント352に配置されるセンサ353は、環境についての視覚情報を捕捉するように構成されたカメラであることができる。幾つかの実施形態では、セグメント352に配置されるセンサ353は、加速度の測定及び/又はセグメント352の移動速度及び/又は位置の計算を可能にするように構成された加速度計であることができる。幾つかの実施形態では、ジョイント354に配置されるセンサ355は、ジョイント354の位置及び/又は構成を測定するように構成された位置エンコーダであることができる。幾つかの実施形態では、ジョイント354に配置されるセンサ355は、ジョイント354にかけられた力及びトルクを測定するように構成された力又はトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ356に配置されるセンサ358は、位置エンコーダ及び/又は力若しくはトルクセンサであることができる。幾つかの実施形態では、エンドエフェクタ356に配置されるセンサ357は、エンドエフェクタ356と環境内の物体との係合を測定するように構成されたタッチ又は触覚センサであることができる。代替又は追加として、センサ353、355、357、及び358の1つ又は複数は、環境内の1つ又は複数の物体及び/又はマークについての情報を記録するように構成することができる。例えば、エンドエフェクタ356に配置されるセンサ358は、環境内の物体のロケーション及び/又はエンドエフェクタ356に相対する物体の位置を追跡するように構成することができる。幾つかの実施形態では、センサ353、355、357、及び358の1つ又は複数は、人間等の物体が環境内で移動したか否かを追跡することもできる。センサ353、355、357、及び358は、記録したセンサ情報をロボットデバイスに配置された計算デバイス(例えば、制御ユニット202及び/又は302等の搭載制御ユニット)に送信することができ、又はセンサ353、355、357、及び358は、センサ情報をリモート計算デバイス(例えば、サーバ120等のサーバ)に送信することができる。
【0048】
[0059] 操作要素350は任意選択的に、操作要素350を本明細書に記載される任意のロボットデバイス等のロボットデバイスに解放可能に結合できるようにする結合要素359を含むことができる。幾つかの実施形態では、操作要素350は、ロボットデバイスの固定ロケーションに結合することができ、及び/又はロボットデバイスの複数のロケーション(例えば、図5に示されるように、ロボットデバイスの本体の右側又は左側)に結合可能であることができる。結合要素359は、操作要素350を例えば、機械的機構(例えば、留め具、ラッチ、マウント)、磁気機構、摩擦嵌め等のロボットデバイスに結合することができる任意のタイプの機構を含むことができる。
【0049】
[0060] 図5は、幾つかの実施形態によるロボットデバイス400を概略的に示す。ロボットデバイス400は、頭部480、本体488、及びベース486を含む。頭部480は、セグメント482及び1つ又は複数のジョイント(図示せず)を介して本体488に接続することができる。セグメント482は、可動及び/又は可撓性を有して、頭部480を本体488に相対して移動できるようにすることができる。
【0050】
[0061] 頭部480は、1つ又は複数の画像捕捉デバイス472及び/又は他のセンサ470を含む。画像捕捉デバイス472及び/又は他のセンサ470(例えば、ライダーセンサ、運動センサ等)は、ロボットデバイス400が環境をスキャンし、環境の表現(例えば、視覚表現又は他の意味表現)を取得できるようにすることができる。幾つかの実施形態では、画像捕捉デバイス472はカメラであることができる。幾つかの実施形態では、画像捕捉デバイス472は、ロボットデバイス400周辺の環境の異なるエリアにフォーカスするのに使用することができるように移動可能であることができる。画像捕捉デバイス472及び/又は他のセンサ470は、センサ情報を収集し、例えば、制御ユニット202又は302等のロボットデバイス400に搭載された計算デバイス又はプロセッサに送信することができる。幾つかの実施形態では、ロボットデバイス400の頭部480は、人間にそっくりな形状を有することができ、1つ又は複数の人間の特徴、例えば、目、鼻、口、耳等を含むことができる。そのような実施形態では、画像捕捉デバイス472及び/又は他のセンサ470は、1つ又は複数の人間特徴として実施することができる。例えば、画像捕捉デバイス472は頭部480における目として実施することができる。
【0051】
[0062] 幾つかの実施形態では、ロボットデバイス400は、画像捕捉デバイス472及び/又は他のセンサ470を使用して、環境内の物体についての情報、例えば、物理的な構造物、デバイス、物品、人間等を求めて環境をスキャンすることができる。ロボットデバイス400は、アクティブスキャンに従事することができ、又はロボットデバイス400は、トリガー(例えば、ユーザからの入力、イベントの検出、又は環境の変化)に応答してスキャンを開始することができる。
【0052】
[0063] 幾つかの実施形態では、ロボットデバイス400は、記憶された知識及び/又はユーザ入力に基づいてスキャンを実行することができる適応スキャンに従事することができる。例えば、ロボットデバイス400は、物体について有する事前情報に基づいて、物体を探してスキャンする環境内のエリアを識別することができる。図6Aを参照すると、ロボットデバイス400は、シーン(例えば、部屋のエリア)をスキャンし、シーンの表現500を取得することができる。表現500において、ロボットデバイス400は、第1物体550がエリア510にあり、第2物体560がエリア510及び530にあることを識別する。ロボットデバイス400は、物体550及び560のロケーションを内部に記憶された環境の地図に記憶することができ、それにより、ロボットデバイス400は、将来のスキャンを実行するとき、その情報を使用して物体550及び560を見つけることができる。例えば、ロボットデバイス400は、シーンに戻り、シーンを2度目にスキャンする場合、図6Bに示されるように、シーンの異なるビューを取得し得る。この2度目のスキャンを実行するとき、ロボットデバイス400はシーンの表現502を取得することができる。表現502において物体550及び560を見つけるために、ロボットデバイス400は、シーンの表現500を取得したとき、それらの物体のロケーションについて前に記憶した情報を参照することができる。ロボットデバイス400は、環境におけるそれ自体のロケーションが変化した可能性があることを考慮に入れ、物体550及び560が表現502の異なるエリアにあり得ることを認識することができる。この情報に基づいて、ロボットデバイス400は、物体550を探してエリア510を調べるが、物体560を探してエリア520及び540を調べることを知り得る。ロボットデバイス400は、物体550及び560のロケーションについて前に記憶された情報を使用することにより、物体550及び560を探して密に(例えば、ズームインすることにより、それらのシーンを通してカメラをゆっくりと動かすことにより)スキャンするエリアを自動的に識別することができる。
【0053】
[0064] 幾つかの実施形態では、ロボットデバイス400は、人間による入力に基づいてシーンの異なるエリアをより密にスキャンすることを知ることもできる。例えば、人間はロボットデバイス400に、シーンの特定のエリアが1つ又は複数の対象物体を含むことを示すことができ、ロボットデバイス400はそれらのエリアをより密にスキャンして、それらの物体を識別することができる。そのような実施形態では、ロボットデバイス400は、図5に概略的に示されるように、キーボード若しくは他の入力デバイスを有するディスプレイ及び/又はタッチスクリーン等の入出力デバイス440を含むことができる。
【0054】
[0065] 幾つかの実施形態では、ロボットデバイス400は、環境をスキャンし、例えば、人間等の物体が環境内を移動していることを識別することができる。例えば、図7A及び図7Bに示すように、物体660は環境内を移動中であることができ、その間、物体650は静止したままである。図7Aは、エリア610及び630内の物体660を示すシーンの表現600を示し、図7Bは、エリア620及び640内の物体660を示すシーンの表現602を示す。両表現600及び602において、物体650はエリア610内の同じロケーションに留まることができる。ロボットデバイス400は、物体660がシーン内を移動したことを識別し、それに従って動作を調整することができる。例えば、ロボットデバイス400は、物体660と相互作用するように計画した場合、軌道を変更し得、例えば、物体660のより近くに移動し得、及び/又は物体660と相互作用するように構成された操作要素又は他の構成要素の軌道を変更し得る。代替又は追加として、ロボットデバイス400は、物体650(及び/又はシーン内の別の物体)と相互作用するように計画した場合、物体650と相互作用するコースを計画している間、物体660の移動を考慮に入れることができる。幾つかの実施形態では、ロボットデバイス400は、準リアルタイムで動作を調整することができるようにアクティブスキャンに従事することができる。
【0055】
[0066] 図5に概略的に示すように、ベース486は任意選択的に、車輪460として実施される1つ又は複数の搬送要素を含むことができる。車輪460は、ロボットデバイス400が環境、例えば、病院を動き回れるようにすることができる。ロボットデバイス400は、少なくとも1つの操作要素450も含む。操作要素450は、本明細書に記載される他の操作要素、例えば、操作要素350と構造的及び/又は機能的に同様であることができる。操作要素450は、ロボットデバイス400の本体488に固定して取り付けることができ、又は任意選択的に、操作要素450は、ロボットデバイス400の結合部484に取り付けることができる結合要素(例えば、結合要素359)を介して本体488に解放可能に結合することができる。結合部484は、結合要素359と係合し、操作要素450と搭載計算デバイス(例えば、制御ユニット202又は302)との間に電気接続を提供するように構成することができ、それにより、搭載計算デバイスは操作要素450の構成要素に給電及び/又は制御し、操作要素450に配置されたセンサ(例えば、センサ353、355、357、及び358)により収集された情報を受信することができる。
【0056】
[0067] 任意選択的に、ロボットデバイス400は、セグメント482、本体488、ベース486、及び/又はロボットデバイス400の他の部分に配置された1つ又は複数の追加のセンサ470を含むこともできる。センサ470は、例えば、画像捕捉デバイス、力若しくはトルクセンサ、運動センサ、光センサ、圧力センサ、及び/又は温度センサであることができる。センサ470は、ロボットデバイス400が環境についての視覚情報及び非視覚情報を捕捉できるようにすることができる。
【0057】
[0068] 図8図11は、幾つかの実施形態による、1つ又は複数のロボットデバイスを含むロボットシステム(例えば、ロボットシステム100)により実行することができる方法700を示す流れ図である。例えば、方法700の全て又は一部は、本明細書に記載される任意のロボットデバイス等の1つのロボットデバイスにより実行することができる。代替的には、方法700は全て、それぞれが方法700の一部を実行する複数のロボットデバイスにより順次実行することができる。代替的には、全て又は一部の方法700は、複数のロボットデバイスにより同時に実行することができる。
【0058】
[0069] 図8に示すように、702において、ロボットデバイスは環境をスキャンし、環境の表現を取得することができる。ロボットデバイスは、1つ又は複数のセンサ(例えば、センサ270若しくは470及び/又は画像捕捉デバイス472)を使用して環境をスキャンすることができる。幾つかの実施形態では、ロボットデバイスは、可動カメラを使用して環境をスキャンすることができ、ここで、カメラの位置及び/又はフォーカスは、環境のシーン内のエリアを捕捉するように調整することができる。704において、スキャン中に収集された情報に基づいて、ロボットデバイスは、データを分析して、環境の捕捉された表現内のマーカを識別することができる。マーカには、視覚的又は位置合わせマーカ、例えば、QRコード、バーコード、タグ等の視覚的マーカを使用してマークされたシーン内の1つ又は複数の物体を関連付けることができる。代替又は追加として、ロボットデバイスは、ロボットデバイスのメモリ(例えば、記憶装置330)に記憶された物体情報(例えば、物体情報340)を使用して物体認識を介して環境内の1つ又は複数の物体に関連付けられたマーカを識別することができる。物体情報は、例えば、ロケーション、色、形状、及び表面特徴等の物体の異なる特徴を示す情報を含むことができる。一実施形態では、物体情報は、特徴空間と呼ぶことができる物体の異なる特徴を表す数値として編成することができる。
【0059】
[0070] マーカを識別した後、ロボットデバイスは任意選択的に、706において、環境の表現内のマーカを表すことができる。幾つかの実施形態では、環境の表現は、例えば、環境の拡張図等の視覚的表現であることができる。そのような実施形態では、ロボットデバイスは、例えば、表示画面に環境の視覚的表現を表示し、環境の視覚的表現においてマーカのロケーションを表示することができる。代替又は追加として、環境の表現は、環境内の意味的マーカにより表されるマーカのロケーションを有する環境の意味的表現であることができる。
【0060】
[0071] 幾つかの実施形態では、708において、ロボットデバイスは、マーカを有する環境の表現をユーザに提示することができ、任意選択的に、例えば、ユーザインターフェース又は他のタイプのI/Oデバイスを介して、環境の表現内のマーカを許容又は拒絶するようにユーザに促すことができる。ユーザがマーカを許容しない(708:いいえ)場合、方法700は702に戻り、ロボットデバイスは環境を再スキャンして、環境の第2表現を取得することができる。ユーザがマーカを許容する(708:はい)場合、方法700は708に進み、ロボットデバイスは、マーカに関連付けられた情報(例えば、ロケーション、特徴等)をメモリ(例えば、記憶装置330)に記憶することができる。例えば、ロボットデバイスは、マーカのロケーションを環境の内部地図(例えば、地図332)に記憶することができる。
【0061】
[0072] 幾つかの実施形態では、704において、ロボットデバイスはマーカを識別することができ、710において、マーカを許容するようにユーザに促すことなく、マーカのロケーション及び/又はマーカに関連付けられた他の情報を記憶することに直接進むことができる。そのような実施形態では、ロボットデバイスは、マーカのロケーションを記憶する前、マーカのロケーションを分析することができる。例えば、ロボットデバイスは、(例えば、環境の前のスキャン中に取得され、及び/又はユーザ又は計算デバイスによりロボットデバイスに入力された)マーカのロケーションについての前に記憶された情報を有することができ、マーカのロケーションを前に記憶された情報と比較して、精度をチェックし、及び/又はマーカロケーションの変化を識別することができる。特に、前に記憶された情報が、特定のマーカが、ロボットデバイスにより識別されたロケーションと異なるロケーションにあるべきであることを示す場合、ロボットデバイスは、環境の追加のスキャンを開始して、マーカのロケーションを検証してから、そのロケーションを記憶し得る。代替又は追加として、ロボットデバイスは、マーカのロケーションが変化したことを示す通知をユーザに送信することができる。そのような場合、ロボットデバイスは、マーカの新しいロケーションを記憶するとともに、マーカロケーションに変化があったことを示すメッセージも記憶し得る。ユーザ又は計算デバイスは次に、後の時点で、メッセージを見直し、マーカロケーションの変化を受け入れることができる。
【0062】
[0073] 任意選択的に、方法700は712に進むことができ、ロボットデバイスは、例えば、ユーザインターフェース又は他のタイプのI/Oデバイスを介して、図9に示されるように、環境の表現において識別されたマーカから1組のマーカを選択するようにユーザに促すことができる。714において、ユーザは選択することができ、ロボットデバイスはユーザから選択を受信することができる。代替的には、幾つかの実施形態では、ロボットデバイスは、選択するようにユーザに促す代わりに、1組のマーカを自動的に選択することができる。ロボットデバイスは、特定の予め定義される又は学習されたルール及び/又は条件に基づいてマーカを選択するようにプログラムすることができる。例えば、ロボットデバイスに、特定の日時中又は建物内の人通りが少ないとき、特定のタイプの物体(例えば、供給品)に関連付けられたマーカを選択するように命令することができる。建物内の人通りが少ないときの場合、ロボットデバイスは、建物内を能動的に動き(例えば、廊下及び部屋をパトロールしモニタし)、環境をスキャンすることにより建物内の人通りがいつ少ないかを特定することができる。次に、ロボットデバイスは、建物内の人通りが他の大半の時間よりも少ないときに特定の物体に関連付けられたマーカを選択することを知ることができる。
【0063】
[0074] ロボットデバイスがユーザから選択された1組のマーカを受信し、及び/又は1組のマーカを自動的に選択した後、方法700は、716における技能学習又は718における技能実行に進むことができる。
【0064】
[0075] 任意の特定の技能について、ロボットデバイスが技能を実行する前又は行う前、ロボットデバイスに技能を教えることができる。例えば、操作技能を取得するために、LfD(例えば、運動感覚教授)を使用してロボットデバイスに教えることができ、それにより、ユーザ又は他のロボットデバイスはロボットデバイスに対して技能を実演することができる。例えば、ロボットデバイスのアーム等の操作要素は、一連のウェイポイントを通して移動し、物体と相互作用することができる。運動感覚教授の場合、ユーザはロボットデバイスに対して技能を物理的に実演することができる。訓練又は教授は、例えば、製造環境等の大量生産設定で実行することができ、そこで、技能の一般実行を表す集約モデルを使用してロボットデバイスに教えることができる。代替又は追加として、教授は、ロボットデバイスが特定の場所環境で技能を実行することを学習することができるように、ロボットデバイスが(例えば、病院に)配備された後、現場で行うことができる。幾つかの実施形態では、現場設定でロボットデバイスに教えることができ、次に、ロボットデバイスは、学習した技能に関連付けられた情報を1つ又は複数の追加のロボットデバイスに送信することができ、それにより、それらの追加のロボットデバイスも、同じ現場設定で動作する場合、教えられた技能の知識を有することができる。そのような実施形態は、複数のロボットデバイスが1つの場所に配備される場合、有用である。次に、各ロボットデバイスは、情報を受信し、他のロボットデバイスに送信することができ、それにより、ロボットデバイスはその現場環境での1組の技能を集合的に学習することができる。
【0065】
[0076] 図10に示される学習モードでは、方法700は720~724に進み、そこでユーザはLfD教授プロセスを使用して、ロボットデバイスに技能を教えることができる。一実施形態では、技能は、特定のロケーションに配置された物体の把持、物体のピックアップ、異なるロケーションへの物体の移動、及び異なるロケーションへの物体の荷下ろしとして定義することができる。720において、ユーザ(又は別のロボットデバイス)は、移動を通して操作要素(例えば、操作要素250、350、又は450)を含むロボットデバイスをガイドすることができる。例えば、ユーザは、特定の技能、例えば、人間との相互作用、物体との係合、及び/又は物体の操作の実行に関連付けられた実演を通してロボットデバイスの操作要素をガイドすることができる。移動を通してロボットの操作要素をガイドする間、ユーザは、操作要素の状態(例えば、ジョイント構成、ジョイント力及び/又はトルク、エンドエフェクタ構成、エンドエフェクタ位置)及び/又は環境(例えば、選択されたマーカに関連付けられた物体及び/又は環境内の他の物体のロケーション)についての情報をいつ捕捉するかをロボットに示すことができる。例えば、722において、ロボットデバイスは、ウェイポイントにおいて又は操作要素の移動中のキーフレームにおいて、操作要素及び/又は環境についての情報を捕捉する信号をユーザから受信することができる。724において、信号の受信に応答して、ロボットデバイスは、そのキーフレームにおいて操作要素及び/又は環境についての情報を捕捉することができる。操作要素情報は、例えば、ジョイント構成、ジョイントトルク、エンドエフェクタ位置、及び/又はエンドエフェクタトルクを含むことができる。環境情報は、例えば、エンドエフェクタに相対する選択されたマーカの位置を含むことができ、環境内の物体が移動した可能性があるときをロボットデバイスに示すことができる。移動がなお進行中である(728:いいえ)場合、ロボットデバイスは、追加のキーフレームにおいて操作要素及び/又は環境についての情報を捕捉するのを待つことができる。幾つかの実施形態では、ロボットデバイスは、ユーザからの信号を受信せずにキーフレーム情報を捕捉するようにプログラムすることができる。例えば、操作要素がユーザにより移動中の間、ロボットデバイスは、操作要素のセグメント及びジョイントの変化をモニタすることができ、それらの変化が閾値を超える場合又はセグメント若しくはジョイントの軌道の方向変更がある場合、ロボットデバイスは自動的にそのポイントをキーフレームとして選択し、そのキーフレームにおける操作要素及び/又は環境についての情報を記録することができる。
【0066】
[0077] 操作要素の移動中、730において、ロボットデバイスは、ユーザから信号を受信せずに、連続して又は周期的にセンサ情報、例えば、操作要素及び/又は環境についての情報を記録することもできる。例えば、ロボットデバイスは、ユーザが実演を通して操作要素を動かす際、セグメント及びジョイントの軌道並びにそれらの構成についての情報を記録することができる。
【0067】
[0078] 幾つかの実施形態では、ロボットデバイスは、例えば、マイクロホン等のオーディオデバイス(例えば、244)を含むことができ、キーフレームの区分は発話コマンドにより制御することができる。例えば、ユーザは、「あなたをガイドします(I will guide you)」と話すことにより実演の実施を計画することをロボットデバイスに示すことができる。実演は、ユーザが「ここから開始(start here)」と話すことにより第1キーフレームを示すとき、開始することができる。中間キーフレームは、「ここに来る(go here)」と話すことにより示すことができる。そして、実演の終わりを表す最後のキーフレームは、「ここで終わる(end here)」と話すことにより示すことができる。実演教授の適した例はAkgun記事に提供されている。
【0068】
[0079] 移動又は実演が完了すると(728:はい)、ロボットデバイスは、記録された全てのセンサ情報(例えば、操作要素情報、環境情報)のサブセットに基づいて、実演された技能のモデルを生成することができる。例えば、732において、ロボットデバイスは任意選択的に、例えば、ユーザインターフェース又は他のタイプのI/Oデバイスを介して、技能の学習に関連する特徴を選択するようにユーザに促すことができ、734において、ロボットデバイスは、ユーザから選択された特徴を受信することができる。代替又は追加として、ロボットデバイスは、ユーザからの前の命令に基づいて、モデルの生成に使用すべき特定の特徴を選択することを知ることができる。例えば、ロボットデバイスは、例えばセンサ情報に基づいて、物体のピックアップが実演中であることを認識することができ、例えば、同じ又は異なる物体をピックアップする過去の実演に基づいて、技能モデルの生成に関連する特徴として包含するセンサ情報(例えば、ジョイント構成、ジョイントトルク、エンドエフェクタトルク)の1つ又は複数の特徴を自動的に選択することができる。
【0069】
[0080] 736において、ロボットデバイスは、選択された特徴を使用して技能のモデルを生成することができる。モデルは、記憶された機械学習ライブラリ又はアルゴリズム(例えば、機械学習ライブラリ342)を使用して生成することができる。幾つかの実施形態では、モデルは、例えば、幾つかの隠れ状態、特徴空間(例えば、特徴ベクトルに含まれる特徴)、及び正規分布としてモデリングされた各状態の放出分布等の複数のパラメータを含むHMMアルゴリズムとして表すことができる。幾つかの実施形態では、モデルは、サポートベクターマシン又は「SVM」モデルとして表すことができ、SVMモデルは、例えば、カーネルタイプ(例えば、線形、ラジアル、多項式、シグモイド)、費用パラメータ又は関数、重み(例えば、イコール、クラスバランス)、損失タイプ又は関数(例えば、ヒンジ、スクエアヒンジ)、及び解決又は問題タイプ(例えば、デュアル、プライマル)等のパラメータを含むことができる。モデルには、技能実演中、ロボットデバイスにより記録された関連するセンサ情報及び/又は他のセンサ情報を関連付けることができる。モデルには、技能実演中に操作された1組のマーカ及び/又はそれらのマーカに結び付けられた1つ又は複数の物理的物体に関連付けられた特徴を示すマーカ情報を関連付けることもできる。738において、ロボットデバイスはモデルをメモリ(例えば、記憶装置230又は330)に記憶することができる。
【0070】
[0081] 任意選択的に、740において、ロボットデバイスは、ユーザが技能の別の実演を実行するか否かを判断することができる。別の実演が実行される場合(740:はい)、方法700は720に戻ることができ、ユーザ(又は他のロボットデバイス)は、追加の実演を通してロボットデバイスをガイドすることができる。実演が完了した場合(740:いいえ)、方法700は任意選択的に、最初に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態では、方法700は終了することができる。
【0071】
[0082] 幾つかの実施形態では、上述したように、ロボットデバイスは、周囲環境を能動的にスキャンして、環境変化をモニタすることができる。従って、学習及び/又は実行中、ロボットデバイスは、環境の連続スキャンに従事し、それに従って環境の表現及び記憶した環境情報を更新することができる。
【0072】
[0083] 図11に示される実行モードでは、750において、ロボットデバイスは任意選択的に、例えば、ユーザインターフェース又は他のタイプのI/Oデバイスを介して、学習モードにおいてロボットデバイスにより前に生成されたモデル等のモデルを選択するようにユーザに促すことができる。752において、ロボットデバイスはモデル選択を受信することができる。幾つかの実施形態では、ロボットデバイスは、ユーザからモデル選択を受信することができ、又は代替的には、ロボットデバイスは、特定のルール及び/又は条件に基づいてモデルを自動的に選択することができる。例えば、ロボットデバイスは、建物の特定のエリアにいるとき(例えば、特定の部屋又はフロアにいるとき)、特定の日時等にモデルを選択するようにプログラムすることができる。代替又は追加として、ロボットデバイスは、選択された組のマーカに基づいて特定のモデルを選択することが知ることができる。754において、ロボットデバイスは、選択されたマーカに関して軌道を生成し技能を実行する前、選択されたマーカのより近くに移動するか否かを決定することができる。例えば、ロボットデバイスは、選択された1組のマーカ及び選択されたモデルに基づいて、技能を実行するよりよい位置(例えば、マーカのより近く又はより近傍に、特定の角度からマーカに面する)に移動すべきであるか否かを決定することができる。ロボットデバイスは、技能の実演中に記録されたセンサ情報に基づいてこの決定を行い得る。例えば、ロボットデバイスは、技能が実演されたときマーカのより近くに位置していたことを認識し、それに従って位置を調整し得る。
【0073】
[0084] ロボットデバイスは、選択されたマーカに関して移動すると決定する場合(754:はい)、756において位置を移動する(例えば、ロケーション及び/又は向きを調整する)ことができ、方法700は702に戻ることができ、ロボットデバイスは環境を再びスキャンして、環境の表現を取得する。方法700は、再び様々なステップを通して754に進むことができる。ロボットデバイスは、選択されたマーカに関して移動しないと決定する場合(754:いいえ)、例えば、ロボットデバイスの操作要素の動作軌道を生成することができる。
【0074】
[0085] 特に、758において、ロボットデバイスは、選択された1組のマーカと、本明細書では「記憶されたマーカ」又は「記憶された1組のマーカ」と呼ばれる、選択されたモデルに関連付けられた1組のマーカ(例えば、ロボットデバイスが技能を学習したとき、すなわち、選択されたモデルの生成時に選択されたマーカ)との間で変換(例えば、翻訳)を行う関数を計算することができる。例えば、ロボットデバイスに、例えば、エンドエフェクタ等のロボットデバイスの一部に相対して特定のロケーション及び/又は向きである第1組のマーカを使用して技能を教えることができ、後に、ロボットデバイスは、操作要素に相対して異なるロケーション及び/又は向きである第2組のマーカを用いて技能を実行することができる。そのような場合、ロボットデバイスは、第1組のマーカの位置及び/又は向きと第2組のマーカの位置及び/又は向きとの間で変換を行う変換関数を計算することができる。
【0075】
[0086] 760において、ロボットデバイスは、計算された変換関数を使用して、技能が教えられたときに記録された各キーフレームにおいて、操作要素の一部、例えば、操作要素のエンドエフェクタの位置及び向きを変換することができる。任意選択的に、762において、ロボットデバイスは、762において、逆運動学方程式又はアルゴリズムを使用して、各キーフレームでの操作要素のジョイントの構成を決定することができる。エンドエフェクタの位置及び向き並びに1組のマーカは、タスク空間(例えば、ロボットデバイスが動作中のデカルト空間)において提供することができ、一方、ジョイントの向きはジョイント又は構成空間(例えば、操作要素の構成に関連付けられたn次元空間であり、ロボットデバイスは点として表され、nは操作要素の自由度数である)において提供することができる。幾つかの実施形態では、逆運動計算は、ロボットデバイスが技能を教えられたときに記録されたジョイント構成情報(例えば、操作要素を使用して教授実演中に記録されたジョイントの構成)によりガイドすることができる。例えば、逆運動学計算に、各キーフレームで記録されたジョイント構成をシードする(例えば、計算の初期推測を提供又はバイアスする)ことができる。例えば、計算されたジョイント構成が隣接するキーフレームでのジョイント構成から予め定義される量を超えてずれない必要がある等の追加の条件を逆運動学計算に課すこともできる。764において、ロボットデバイスは、例えば、ジョイント空間内のあるキーフレームから次のキーフレームへのジョイント構成間の軌道を計画して、操作要素が技能を実行する完全な軌道を生成することができる。
【0076】
[0087] 幾つかの実施形態では、ロボットデバイスは、操作要素(例えば、エンドエフェクタ)の部分の位置及び向きを変換した後、タスク空間内の操作要素の軌道を計画することができる。そのような実施形態では、方法700は760から直接764に進むことができる。
【0077】
[0088] 766及び768において、ロボットデバイスは任意選択的に、軌道をユーザに提示し、例えば、ユーザインターフェース又は他のI/Oデバイスを介して、軌道を許容するか、それとも拒絶するかをユーザに促すことができる。代替的には、ロボットデバイスは、内部ルール及び/又は条件に基づき、関連するセンサ情報を分析することによって軌道を許容又は拒絶することができる。軌道が拒絶される場合(768:いいえ)、770において、ロボットデバイスは任意選択的に、選択されたモデルの1つ又は複数のパラメータを変更し、758~764において第2軌道を生成することができる。モデルのパラメータは、例えば、モデル生成に含める異なる特徴(例えば、異なるセンサ情報)を選択することにより変更することができる。幾つかの実施形態では、モデルがHMMモデルの場合、ロボットデバイスは、判断された成功又は失敗に基づいてモデルのパラメータを変更することができ、ここで、ロボットデバイスは、異なるパラメータを有する異なるモデルの対数尤度を追跡し、他のモデルよりも高い対数尤度を有するモデルを選択する。幾つかの実施形態では、モデルがSVMモデルの場合、ロボットデバイスは、上述したように、特徴空間又は構成パラメータ(例えば、カーネルタイプ、費用パラメータ又は関数、重み)を変更することによりパラメータを変更することができる。
【0078】
[0089] 軌道が許容される場合(768:はい)、772において、ロボットデバイスは操作要素を移動させて、生成された軌道を実行することができる。操作要素が計画された軌道を実行している間、774において、ロボットデバイスは、例えば、操作要素上の1つ又は複数のセンサ及びロボットデバイスの他の構成要素を介して、例えば、操作要素及び/又は環境についての情報等のセンサ情報を記録及び/又は記憶することができる。
【0079】
[0090] 任意選択的に、774において、ロボットデバイスは、技能の実行が成功したか否か(例えば、物体との相互作用が、予め定義された成功基準を満たすか否か)を判断することができる。例えば、ロボットデバイスは環境をスキャンし、例えば、1つ又は複数の物体のロケーション及び/又は操作要素又はロボットデバイスの別の構成要素に相対するそれらの物体の位置又は向きを含む環境及びロボットデバイスの現在状態か否かを判断し、現在状態が予め定義された成功基準と合致するか否かを判断することができる。予め定義され及び/又は学習された成功基準は、ユーザにより提供することができ、又は幾つかの実施形態では、異なるロボットデバイス及び/又は計算デバイスにより提供することができる。予め定義され及び/又は学習された成功基準は、成功に関連付けられた環境及び/又はロボットデバイスの異なる特徴についての情報を示すことができる。幾つかの実施形態では、ユーザは、実行が成功したことを示す入力をロボットデバイスに提供することもできる。
【0080】
[0091] 特定の例では、技能が特定のロケーションでの物体の把持及び物体のピックアップとして定義される場合、技能の成功は、物体に関連付けられた1つ又は複数のマーカが互い及び/又はロボットデバイスと特定の関係にあることを検出することとして、又は操作要素が物体の重量を支持しており、従って、物体をピックアップしたことを示す、十分な力又はトルクを操作要素のエンドエフェクタ又はジョイント(例えば、手首ジョイント)が受けていること(又は受けていたこと)を検出することとして、教え及び/又は定義することができる。実行が成功しなかった場合(776:いいえ)、770において、ロボットデバイスは任意選択的にモデルのパラメータを変更し得、及び/又は758~764において新しい軌道を生成し得る。実行が成功した場合(776:はい)、成功した相互作用に関連付けられたデータ(例えば、実行が成功し、いかに成功したかを示すデータ)を記録することができ、方法700は任意選択的に、最初に戻り、環境の新しいスキャンを実行することができる。代替的には、幾つかの実施形態では、方法700は終了することができる。
【0081】
[0092] 図12は、幾つかの実施形態による、ユーザにより実行される動作を含むロボット学習及び実行のシステムアーキテクチャを示すブロック図である。システム800は、ロボット学習及び実行に向けて構成することができる。システム800は、本明細書に記載される任意のロボットデバイス等の1つ又は複数のロボットデバイスを含むことができ、アクティブスキャン822、マーカ識別824、学習及びモデル生成826、軌道生成及び実行828、並びに成功モニタリング829として図12に示されるモジュール、プロセス、及び/又は機能を実行することができる。アクティブスキャン822、マーカ識別824、学習及びモデル生成826、軌道生成及び実行828、並びに成功モニタリング829は、図8図11に示される、方法700を参照して説明したロボットデバイスにより実行される1つ又は複数のステップに対応することができる。例えば、アクティブスキャン822は方法700のステップ702を含み、マーカ識別824は方法700のステップ704~710の1つ又は複数を含むことができ、学習及びモデル生成826は、ステップ712~738の1つ又は複数を含むことができ、軌道生成及び実行828は、ステップ712、714、718、及び750~774の1つ又は複数を含むことができ、成功モニタリング829はステップ774及び776の1つ又は複数を含むことができる。
【0082】
[0093] システム800は、例えば、カメラ872、アーム850(グリッパ856及びセンサ870を含む)、表示デバイス842、並びにマイクロホン844を含め、1つ又は複数のデバイスを接続(1つ又は複数のデバイスと通信)することができる。システム800は、表示デバイス842、マイクロホン844、及び/又は他のI/Oデバイス(図示せず)を介して、1つ又は複数のユーザ動作880に関連付けられた入力をユーザから受信することができる。ユーザ動作880は、例えば、882:ユーザがマーカによるマーカ許容又は環境の再スキャン要求、884:ユーザによるマーカ選択、886:モデル生成に関連する情報のユーザ選択、888:技能を実行するモデルのユーザ選択、890:技能を事項する軌道のユーザ許容、892:実行された技能の成功のユーザ確認、894:運動感覚学習を介した技能のユーザ教授を含むことができる。
【0083】
[0094] アクティブスキャン822の場合、システム800は、カメラ872を使用して環境をスキャンし、環境内の1つ又は複数のマーカに関連付けられた情報を含め、環境についてのセンサ情報を記録する。マーカ識別824の場合、システム800は、センサ情報を分析して、環境内の1つ又は複数のマーカを識別し、例えば、表示デバイス842を介して、822:マーカのユーザ許容又は環境の再スキャン要求を示す入力をユーザから受信することができる。学習及びモデル生成826の場合、システム800は、カメラ872及び/又はアーム850上のセンサ870により収集されたセンサ情報を受信し、その情報を使用して、技能のモデルを生成することができる。学習及びモデル生成826の一環として、システム800は、例えば、表示デバイス842及び/又はマイクロホン844を介して、884:ユーザが技能を教授する1組のマーカを選択したこと、886:ユーザがモデルの生成に使用する、記録されたセンサ情報の特定の特徴を選択したこと、及び/又は894:ユーザが技能を実演していることを示す入力をユーザから受信することができる。軌道生成及び実行828の場合、システム800は、計画された軌道を生成し、アーム850の運動を制御して、軌道を実行することができる。軌道生成及び実行828の一環として、システム800は、例えば、表示デバイス842を介して、888:ユーザが軌道生成のモデルを選択したこと及び/又は890:ユーザが生成された軌道を許容又は拒絶したことを示す入力をユーザから受信することができる。成功モニタリング829の場合、システム800は、技能の実行中、センサ870により記録されたセンサ情報を分析することにより、技能の実行が成功したか否かを判断することができる。成功モニタリング829の一環として、システム800は、例えば、表示デバイス842及び/又はマイクロホン844を介して、892:ユーザが実行の成功を確認したことを示す入力をユーザから受信することができる。
【0084】
[0095] 特定のデバイス及び/又はシステム800とそれらのデバイスとの間の接続は図12に示されるが、本明細書に記載される任意の実施形態により、追加のデバイス(図示せず)がシステム800と通信して、情報をシステム800から受信及び/又は情報をシステム800に送信することができることが理解される。
【0085】
[0096] 本開示が以下の例のいずれか1つ及び最高で全てを含み得ることが理解されよう。
【0086】
[0097] 実施例1:メモリと、プロセッサと、操作要素と、1組のセンサとを含み、プロセッサは、メモリ、操作要素、及び1組のセンサに動作可能に結合され、1組のセンサからのセンサのサブセットを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカを受信することと、環境内の操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と1組の物理的物体との物理的な相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と1組の物理的物体との物理的な相互作用を実行するように操作要素の動きを定義するように構成されたモデルを生成することとを行うように構成される装置。
【0087】
[0098] 実施例2:1組の物理的物体は人間を含む、実施例1の装置。
【0088】
[0099] 実施例3:操作要素は、1組の物理的物体からの物理的物体のサブセットに係合するように構成されたエンドエフェクタを含む、実施例1~2のいずれかの装置。
【0089】
[0100] 実施例4:センサのサブセットは、センサの第1サブセットであり、プロセッサは、1組のセンサからのセンサの第2サブセットを介してセンサ情報を取得するように構成され、センサの第2サブセットは、センサの第1サブセットと異なる、実施例1~3のいずれか1つの装置。
【0090】
[0101] 実施例5:操作要素は、複数のジョイントを介して連結された複数の可動構成要素を含み、1組のセンサは、複数のジョイントからのジョイントに作用する力を測定するように構成されたセンサ、又は複数の可動構成要素からの可動構成要素と1組の物理的物体からの物理的物体との係合を検出するように構成されたセンサの少なくとも1つを含む、実施例1~4のいずれか1つの装置。
【0091】
[0102] 実施例6:1組のセンサは、装置の一部に相対するジョイント又は可動構成要素の位置を測定するように構成されたセンサを更に含む、実施例5の装置。
【0092】
[0103] 実施例7:1組のセンサは、光センサ、温度センサ、オーディオ捕捉デバイス、及びカメラの少なくとも1つを更に含む、実施例5の装置。
【0093】
[0104] 実施例8:操作要素は、(i)複数のジョイントと、(ii)1組の物理的物体からの物理的物体を移動させるように構成されたエンドエフェクタとを含み、1組のセンサは、エンドエフェクタが物理的物体を移動させる場合、エンドエフェクタの少なくとも1つ又はエンドエフェクタに結合された複数のジョイントからのジョイントにかけられる力を測定するように構成されたセンサを含む、実施例1の装置。
【0094】
[0105] 実施例9:センサ情報は、1組の特徴に関連付けられたセンサデータを含み、プロセッサは、1組の特徴から選択された特徴の第1サブセットを受信するように更に構成され、プロセッサは、第1組の特徴に含まれない1組の特徴からの特徴の第2サブセットに関連付けられたセンサデータではなく、特徴の第1サブセットに関連付けられたセンサデータに基づいてモデルを生成するように構成される、実施例1~8のいずれか1つの装置。
【0095】
[0106] 実施例10:プロセッサは、プロセッサがユーザにより行われる選択に応答して、選択された特徴の第1サブセットを受信するように、1組の特徴から少なくとも1つの特徴を選択するようユーザに促すように更に構成される、実施例9の装置。
【0096】
[0107] 実施例11:複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である、実施例1~10のいずれか1つの装置。
【0097】
[0108] 実施例12:プロセッサは、モデル及びモデルに関連付けられた情報をメモリに保存するように更に構成され、モデルに関連付けられた情報は、(i)1組のマーカ及び(ii)センサ情報を含む、実施例1~11のいずれか1つの装置。
【0098】
[0109] 実施例13:操作要素は複数のジョイントを含み、センサ情報は、操作要素の動きに関連付けられた複数の位置からの各位置について、複数のジョイントからの各ジョイントの現在状態を示す情報を含む、実施例1の装置。
【0099】
[0110] 実施例14:プロセッサは、提示後、プロセッサが、ユーザにより行われる選択に応答して、1組のマーカのうちの選択されたマーカを受信するように複数のマーカから少なくとも1つのマーカを選択するようにユーザに促すよう更に構成される、実施例1~13のいずれか1つの装置。
【0100】
[0111] 実施例15:プロセッサは、1組のセンサを使用して環境内の対象領域をスキャンすることにより環境の表現を取得するように構成される、実施例1~14のいずれか1つの装置。
【0101】
[0112] 実施例16:1組のセンサを介して、環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、提示後、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカを受信することと、環境における操作要素の動きに関連付けられた複数の位置からの各位置について、操作要素に関連付けられたセンサ情報を取得することであって、操作要素の動きには、操作要素と1組の物理的物体との物理的相互作用が関連付けられる、取得することと、センサ情報に基づいて、操作要素と1組の物理的物体との物理的相互作用を実行するように操作要素の動きを定義するよう構成されたモデルを生成することとを含む方法。
【0102】
[0113] 実施例17:センサ情報は、1組の特徴に関連付けられたセンサデータを含み、方法は、1組の特徴から選択された特徴の第1サブセットを受信することを更に含み、生成することは、第1組の特徴に含まれない1組の特徴からの特徴の第2サブセットに関連付けられたセンサデータではなく、特徴の第1サブセットに関連付けられたセンサデータに基づいてモデルを生成することを含む、実施例16の方法。
【0103】
[0114] 実施例18:ユーザにより行われる選択に応答して、選択された特徴の第1サブセットを受信するように、1組の特徴から少なくとも1つの特徴を選択するようユーザに促すことを更に含む、実施例17の方法。
【0104】
[0115] 実施例19:複数のマーカは位置合わせマーカであり、環境の表現は環境の視覚的表現である、実施例16~18の方法。
【0105】
[0116] 実施例20:操作要素は複数のジョイントを含み、センサ情報は、操作要素の動きに関連付けられた複数の位置からの各位置について、複数のジョイントからの各ジョイントの現在状態を示す情報を含む、実施例16~19のいずれか1つの方法。
【0106】
[0117] 実施例21:提示後、ユーザによる選択に応答して1組のマーカの選択が受信されるように、複数のマーカからの少なくとも1つのマーカを選択するようにユーザに促すことを更に含む、実施例16~20のいずれか1つの方法。
【0107】
[0118] 実施例22:環境の表現を取得することは、1組のセンサを使用して環境内の対象領域をスキャンすることを含む、実施例16~21のいずれか1つの方法。
【0108】
[0119] 実施例23:プロセッサにより実行される命令を表すコードを記憶した非一時的プロセッサ可読媒体であって、コードは、プロセッサに、1組のセンサを介して環境の表現を取得することと、環境の表現内の複数のマーカを識別することであって、複数のマーカからの各マーカには、環境内に配置された複数の物理的物体からの物理的物体が関連付けられる、識別することと、環境の表現内の複数のマーカからの各マーカの位置を示す情報を提示することと、複数の物理的物体からの1組の物理的物体に関連付けられた複数のマーカから選択された1組のマーカを受信することに応答して、操作要素と1組の物理的物体との物理的相互作用の実行に関連付けられたモデルを識別することであって、操作要素は複数のジョイント及びエンドエフェクタを含む、識別することと、モデルを使用して、物理的相互作用の実行に関連付けられた複数のジョイント及びエンドエフェクタの移動を定義する操作要素の軌道を生成することとを行わせるコードを含む、非一時的プロセッサ可読媒体。
【0109】
[0120] 実施例24:プロセッサに物理的相互作用の実行に関連付けられたモデルを識別させるコードは、プロセッサにより、モデルを識別するようにユーザに促すコードを含む、実施例23の非一時的プロセッサ可読媒体。
【0110】
[0121] 実施例25:プロセッサに物理的相互作用の実行に関連付けられたモデルを識別させるコードは、プロセッサに1組のマーカの選択に基づいてモデルを識別させるコードを含む、実施例22~24のいずれか1つの非一時的プロセッサ可読媒体。
【0111】
[0122] 実施例26:プロセッサに、環境の表現において、操作要素の軌道をユーザに表示することと、表示後、ユーザから入力を受信することと、操作要素の軌道の許容を示す入力に応答して、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することとを行わせるコードを更に含む、実施例23~25のいずれか1つの非一時的プロセッサ可読媒体。
【0112】
[0123] 実施例27:軌道は第1軌道であり、非一時的プロセッサ可読媒体は、プロセッサに、操作要素の軌道の許容を示さない入力に応答して、モデルに関連付けられた1組のパラメータを変更して、変更モデルを生成することと、変更モデルを使用して操作要素の第2軌道を生成することとを行わせるコードを更に含む、実施例23~26のいずれか1つの非一時的プロセッサ可読媒体。
【0113】
[0124] 実施例28:軌道は第1軌道であり、モデルは第1モデルであり、非一時的プロセッサ可読媒体は、プロセッサに、操作要素の軌道の許容を示さない入力に応答して、第1モデルの生成に使用される1組の特徴と異なる1組の特徴に関連付けられたセンサデータに基づいて第2モデルを生成することと、第2モデルを使用して、操作要素の第2軌道を生成することとを行わせるコードを更に含む、実施例23~26のいずれか1つの非一時的プロセッサ可読媒体。
【0114】
[0125] 実施例29:プロセッサに、複数のジョイント及びエンドエフェクタの移動を実施して、物理的相互作用を実行することと、物理的相互作用の実行に関連付けられたセンサ情報を取得することと、センサ情報に基づいて、物理的相互作用の実行が、予め定義され及び/又は学習された成功基準を満たすか否かを判断することとを行わせるコードを更に含む、実施例23~28のいずれか1つの非一時的プロセッサ可読媒体。
【0115】
[0126] 実施例30:プロセッサに、物理的相互作用の実行が予め定義され及び/又は学習された成功基準を満たすとの判断に応答して、物理的相互作用が成功したことを示す信号を生成することと、物理的相互作用の実行が予め定義され及び/又は学習された成功基準を満たさないとの判断に応答して、センサ情報に基づいてモデルを変更して、変更モデルを生成することと、変更モデルを使用して操作要素の第2軌道を生成することとを行わせるコードを更に含む実施例29の非一時的プロセッサ可読媒体。
【0116】
[0127] 実施例31:モデルには(i)記憶された1組のマーカ、(ii)記憶された1組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報、及び(iii)記憶された軌道に沿ったポイントにおける複数のジョイントの構成を示すセンサ情報が関連付けられ、プロセッサに、操作要素の軌道を生成させるコードは、プロセッサに、1組のマーカと記憶された1組のマーカとの間の変換関数を計算することと、各ポイントについて、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントについて、記憶された軌道に沿ったポイントにおける複数のジョイントの構成に基づいて、複数のジョイントの計画構成を決定することと、各ポイントについて、そのポイントの複数のジョイントの計画構成に基づいて、そのポイントと連続ポイントとの間の軌道の部分を特定することとを行わせるコードを含む、実施例23~30のいずれか1つの非一時的プロセッサ可読媒体。
【0117】
[0128] 実施例32:モデルには(i)記憶された1組のマーカ及び(ii)記憶された1組のマーカに関連付けられた操作要素の記憶された軌道に沿ったポイントにおける操作要素の位置又は向きの少なくとも一方を示すセンサ情報が関連付けられ、プロセッサに、操作要素の軌道を生成させるコードは、プロセッサに、1組のマーカと選択された1組のマーカとの間の変換関数を計算することと、各ポイントで、変換関数を使用して操作要素の位置又は向きの少なくとも一方を変換することと、各ポイントで、複数のジョイントの計画された構成を決定することと、各ポイントで、そのポイントの複数のジョイントの計画された構成に基づいて、そのポイントと連続ポイントとの間の軌道に一部を決定することとを行わせるコードを含む、実施例23~30のいずれか1つの非一時的プロセッサ可読媒体。
【0118】
[0129] 実施例33:プロセッサに、操作要素の第1ロケーションと、1組の物理的物体からの物理的物体のロケーションとの間の距離に基づいて、操作要素のロケーションを変更すべきか否かを判断することと、操作要素のロケーションを変更するとの判断に応答して、操作要素を第1ロケーションから、物理的物体のロケーションのより近傍の第2ロケーションに移動させることとを行わせるコードを更に含み、プロセッサに操作要素の軌道を生成させるコードは、移動後、操作要素の第2ロケーションに相対する物理的物体のロケーションに基づいて軌道を生成させるコードを含む、実施例23~32のいずれか1つの非一時的プロセッサ可読媒体。
【0119】
[0130] 様々な本発明の実施形態を本明細書において説明し示したが、当業者は、本明細書に記載される機能を実行し、及び/又は本明細書に記載される結果及び/又は利点の1つ又は複数を取得する様々な他の手段及び/又は構造を容易に考案し、そのような変形及び/又は変更はそれぞれ、本明細書に記載される本発明の実施形態の範囲内にあると見なされる。より一般的には、本明細書に記載される全てのパラメータ、寸法、材料、及び構成が、例示的なであることが意図され、実際のパラメータ、寸法、材料、及び/又は構成が、特定の用途又は本発明の教示が使用される用途に依存することを当業者は容易に理解するであろう。当業者は、単に日常の実験を使用して、本明細書に記載される特定の本発明の実施形態への多くの均等物を認識し、又は突き止めることが可能であろう。従って、上記実施形態が単なる例として提示され、添付の特許請求の範囲及びその均等物内で、特に記載され特許請求の範囲に記載される以外の方法で本発明の実施形態を実施し得ることを理解されたい。本開示の本発明の実施形態は、本明細書に記載される個々の特徴、システム、物品、材料、キット、及び/又は方法に関する。加えて、2つ以上のそのような特徴、システム、物品、材料、キット、及び/又は方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、及び/又は方法が相互に矛盾しない場合、本開示の本発明の範囲内に含まれる。
【0120】
[0131] また、様々な本発明の概念は1つ又は複数の方法として実施し得、その一例が提供された。方法の一部として実行される動作は、任意の適した方法で並べ得る。従って、例示的な実施形態では順次動作として示される場合であっても、動作が示されるものとは異なる順序で実行され、幾つかの動作を同時に実行することを含み得る実施形態を構築し得る。
【0121】
[0132] 本明細書に記載される幾つかの実施形態及び/又は方法は、異なるソフトウェア(ハードウェアで実行される)、ハードウェア、又はそれらの組合せにより実行することができる。ハードウェアモジュールは、例えば、汎用プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、及び/又は特定用途向け集積回路(ASIC)を含み得る。ソフトウェアモジュール(ハードウェアで実行される)は、C、C++、Java(商標)、Ruby、Visual Basic(商標)、及び/又は他のオブジェクト指向、手続き型、又は他のプログラミング言語及び開発ツールを含め、様々なソフトウェア言語(例えば、コンピュータコード)で表現することができる。コンピュータコードの例には、限定ではなく、マイクロコード又はマイクロ命令、コンパイラにより生成される等の機械命令、ウェブサービスの生成に使用されるコード、及びインタプリタを使用してコンピュータにより実行されるより高水準の命令を含むファイルがある。例えば、実施形態は、命令型プログラミング言語(例えば、C、Fortran等)、関数型プログラミング言語(Haskell、Erlang等)、論理型プログラミング言語(例えば、Prolog)、オブジェクト指向プログラミング言語(例えば、Java、C++等)、又は他の適したプログラミング言語及び/又は開発ツールを使用して実施し得る。コンピュータコードの更なる例には、限定ではなく、制御信号、暗号化コード、及び圧縮コードがある。
【0122】
[0133] 第1、第2、第3等の用語が、本明細書では、様々な要素の説明に使用され得るが、これらの要素がこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、ある要素を別の要素から区別するためだけに使用されている。従って、後述する第1要素は、本開示の教示から逸脱せずに第2要素と呼ぶことができる。
【0123】
[0134] 本明細書に使用される用語は、特定の実施形態を説明することだけを目的としており、限定を意図しない。本明細書で使用される場合、単数形「a」、「an」、及び「the」は、文脈により明らかに別段のことが示される場合を除き、複数形も同様に包含することを意図する。「含む(comprises)」及び/又は「含んでいる(comprising)」又は「含む(includes)」及び/又は「含んでいる(including)」という用語は、本明細書で使用される場合、記載された特徴、領域、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ又は複数の他の特徴、領域、整数、ステップ、動作、要素、構成要素、及び/又はそのグループの存在又は追加を除外しないことが更に理解されよう。
図1
図2
図3
図4
図5
図6A
図6B
図7A
図7B
図8
図9
図10
図11
図12
【外国語明細書】