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

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

▶ ブレーン コーポレーションの特許一覧

特許7324456ロボットの遠隔操作および/または監視のためのシステムおよび方法
<>
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図1A
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図1B
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図2
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図3A
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図3B
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図4
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図5A
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図5B
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図6
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図7A
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図7B
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図8
  • 特許-ロボットの遠隔操作および/または監視のためのシステムおよび方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-02
(45)【発行日】2023-08-10
(54)【発明の名称】ロボットの遠隔操作および/または監視のためのシステムおよび方法
(51)【国際特許分類】
   G05D 1/02 20200101AFI20230803BHJP
   B25J 13/00 20060101ALI20230803BHJP
   B25J 3/00 20060101ALI20230803BHJP
【FI】
G05D1/02 H
B25J13/00 Z
B25J3/00 Z
【請求項の数】 18
(21)【出願番号】P 2019527413
(86)(22)【出願日】2017-11-28
(65)【公表番号】
(43)【公表日】2020-01-23
(86)【国際出願番号】 US2017063506
(87)【国際公開番号】W WO2018098490
(87)【国際公開日】2018-05-31
【審査請求日】2020-11-24
(31)【優先権主張番号】15/362,544
(32)【優先日】2016-11-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518437202
【氏名又は名称】ブレーン コーポレーション
【氏名又は名称原語表記】BRAIN CORPORATION
(74)【代理人】
【識別番号】100107984
【弁理士】
【氏名又は名称】廣田 雅紀
(74)【代理人】
【識別番号】100102255
【弁理士】
【氏名又は名称】小澤 誠次
(74)【代理人】
【識別番号】100096482
【弁理士】
【氏名又は名称】東海 裕作
(74)【代理人】
【識別番号】100188352
【弁理士】
【氏名又は名称】松田 一弘
(74)【代理人】
【識別番号】100113860
【弁理士】
【氏名又は名称】松橋 泰典
(74)【代理人】
【識別番号】100131093
【弁理士】
【氏名又は名称】堀内 真
(74)【代理人】
【識別番号】100150902
【弁理士】
【氏名又は名称】山内 正子
(74)【代理人】
【識別番号】100141391
【弁理士】
【氏名又は名称】園元 修一
(74)【代理人】
【識別番号】100198074
【弁理士】
【氏名又は名称】山村 昭裕
(74)【代理人】
【氏名又は名称】富田 博行
(72)【発明者】
【氏名】グリフィン コーディ
(72)【発明者】
【氏名】アンウィン ロジャー
(72)【発明者】
【氏名】ブラック ジョン
【審査官】堀内 亮吾
(56)【参考文献】
【文献】特開2008-097632(JP,A)
【文献】特開平08-235484(JP,A)
【文献】特表2016-515311(JP,A)
【文献】特開2015-052988(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
B25J 13/00
B25J 3/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ可読命令を実行するように構成された少なくとも1つのプロセッサを有する遠隔ネットワークと、
環境に関するセンサデータを生成するように構成された複数のセンサを含むロボットであって、前記複数のセンサは、第1のセンサ及び異なる第2のセンサを含む、前記ロボットと、
前記センサデータ及び支援要請を前記遠隔ネットワークに送信するように構成されたロボット通信ユニットと、
前記ロボットのプロセッサであって、前記遠隔ネットワークと通信し、コンピュータ可読命令を実行して、
前記遠隔ネットワークに前記ロボットの前記プロセッサから関心のあるイベントが発生したというイベント発生指示を含む第1の通信を送信すること、
関心のあるイベントを識別することであって、
前記関心のあるイベントは、停止、衝突、衝突寸前、又は故障であり、
前記イベントに期間を関連付け、
前記関連付けられた期間は開始時間と終了時間を含み、
前記開始時間と終了時間は前記関連付けられた期間中に発生して前記関心のあるイベントの時間の周りの時間のウィンドウを提供し、時間の量は前記イベントに状況を提供すると期待される、前記識別すること、
前記遠隔ネットワークの前記少なくとも1つのプロセッサにより、前記センサデータから前記関連付けられた期間の前記開始時間及び終了時間を決定すること、
前記遠隔ネットワークから前記関心のあるイベントのセンサデータを要求する第2の通信を受信すること、
前記関連付けられた期間中に前記第1及び第2のセンサから前記センサデータを受信することであって、
前記第1のセンサは、前記関連付けられた期間中にリアルタイムで、かつ前記データセンサを収集する前記第2のセンサから独立して前記センサデータを収集し、
前記第2のセンサは、前記開始時間及び終了時間中に前記センサデータを収集し、
前記関連付けられた期間の前記開始時間及び終了時間は、前記イベントの発生を示すセンサデータ及び前記イベントに状況を提供すると期待される前記時間の量に基づいている、前記受信すること、
前記第1のセンサ及び前記第2のセンサからの前記センサデータに少なくとも部分的に基づいて、前記開始時間と前記終了時間の間の前記関心のあるイベントに状況を決定すること、及び
前記関連付けられた期間中に前記関心のあるイベントに前記状況を提供する信号を前記遠隔ネットワークに送信すること
を行うように構成された、前記ロボットのプロセッサと
を備える、ロボットシステム。
【請求項2】
前記ロボットの前記1つ以上のセンサが、前記環境に関するデータに関するマップを生成するようにさらに構成されており、かつ
前記遠隔ネットワークは、遠隔通信ユニットとマップ処理ユニットとをさらに備え、前記マップ処理ユニットは、前記マップに関連するデータに少なくとも部分的に基づいて前記環境のマップを生成するように構成されており、前記遠隔通信ユニットは、前記ロボットから前記マップに関連するデータを受信し、前記マップ処理ユニットによって生成された前記マップを前記ロボットに送信し、自律的にナビゲーションさせるように構成されている、請求項1に記載のロボットシステム。
【請求項3】
前記ロボットは、床掃除機を備える、請求項1に記載のロボットシステム。
【請求項4】
前記ロボットのプロセッサは、前記コンピュータ可読命令を実行して
前記遠隔通信ユニットを使用して、前記ロボット通信ユニットに、前記決定された状況に少なくとも部分的に基づいて前記支援要請に対処するための命令を送信することを行うようにさらに構成され、
前記支援要請に対処するための前記命令は、前記ロボットを作動させるよう構成されているアクチュエータ命令を含む、
請求項1に記載のロボットシステム。
【請求項5】
前記遠隔ネットワークは、ユーザ入力を受信するように構成されたユーザインターフェースをさらに備え、前記支援要請に対処するための前記命令は、前記ユーザ入力に少なくとも部分的に基づいて生成される、請求項4に記載のロボットシステム。
【請求項6】
前記遠隔ネットワークは、前記ロボットの使用法を追跡するようにさらに構成される、請求項1に記載のロボットシステム。
【請求項7】
環境に関するセンサデータを生成するように構成された、第1のセンサ及び異なる第2のセンサを含む複数のセンサ;
タスクを実行するよう構成されたアクチュエータ;及び
遠隔ネットワークと通信し、コンピュータ可読命令を実行し、
関心のあるイベントを識別することであって、
前記関心のあるイベントは、停止、衝突、衝突寸前、又は故障であり、
前記イベントに期間を関連付け、
前記関連付けられた期間は開始時間と終了時間を含み、
前記開始時間と終了時間は前記関連付けられた期間中に発生して前記関心のあるイベントの時間の周りの時間のウィンドウを提供し、時間の量は前記イベントに状況を提供すると期待される、前記識別することと、
前記遠隔ネットワークの少なくとも1つのプロセッサにより、前記センサデータから前記関連付けられた期間の前記開始時間及び終了時間を決定すること、
前記遠隔ネットワークから前記関心のあるイベントのセンサデータを要求する第2の通信を受信すること、
前記関連付けられた期間中に前記第1及び第2のセンサから前記センサデータを受信することであって、
前記第1のセンサは、前記関連付けられた期間中にリアルタイムで、かつ前記データセンサを収集する前記第2のセンサから独立して前記センサデータを収集し、
前記第2のセンサは、前記開始時間及び終了時間中に前記センサデータを収集し、
前記関連付けられた期間の前記開始時間及び終了時間は、前記イベントの発生を示すセンサデータ及び前記イベントに状況を提供すると期待される時間量に基づいている、前記受信すること、
前記第1のセンサ及び前記第2のセンサからの前記センサデータに少なくとも部分的に基づいて、前記開始時間と前記終了時間の間の前記関心のあるイベントに状況を決定することと、
前記関連付けられた期間中に前記関心のあるイベントに前記状況を提供する信号を前記遠隔ネットワークに送信することと
を行うように構成される、プロセッサ
を備える、ロボット。
【請求項8】
前記ロボットは、床掃除機を備え、前記タスクは、床を掃除することを含む、請求項7に記載のロボット。
【請求項9】
前記ロボットのプロセッサは、前記コンピュータ可読命令を実行して、前記遠隔ネットワークからマップを受信することと、前記受信したマップに少なくとも部分的に基づいて前記タスクを実行することとを行うようにさらに構成される、請求項7に記載のロボット。
【請求項10】
前記生成されたセンサデータに少なくとも部分的に基づいて、マップを生成するように構成されたマッピングおよび位置特定ユニットをさらに備え、
前記ロボットのプロセッサは、前記コンピュータ可読命令を実行して、前記マップを前記遠隔ネットワークに送信し、前記遠隔ネットワークから修正されたマップを受信するようにさらに構成され、
前記送信されたマップは、1つ以上のエラーを有し、前記受信された修正されたマップは、もはや前記1つ以上のエラーを有さない、請求項7に記載のロボット。
【請求項11】
コンピュータ可読命令を実行するように構成された少なくとも1つのプロセッサを有する遠隔ネットワークと通信して、コンピュータ可読命令を実行して
ロボットに接続された複数のセンサからセンサデータを受信すること、
関心のあるイベントを識別することであって、
前記関心のあるイベントは、停止、衝突、衝突寸前、又は故障であり、
前記イベントに期間を関連付け、
前記関連付けられた期間は開始時間と終了時間を含み、
前記開始時間と終了時間は前記関連付けられた期間中に発生する、前記識別すること、
前記遠隔ネットワークの少なくとも1つのプロセッサにより、前記センサデータから前記関連付けられた期間の前記開始時間及び終了時間を決定すること、
前記遠隔ネットワークから前記関心のあるイベントのセンサデータを要求する第2の通信を受信すること、
前記関連付けられた期間中に前記第1及び第2のセンサから前記センサデータを受信することであって、
前記第1のセンサは、前記関連付けられた期間中にリアルタイムで、かつ前記データセンサを収集する前記第2のセンサから独立して前記センサデータを収集し、
前記第2のセンサは、前記開始時間及び終了時間中に前記センサデータを収集し、
前記関連付けられた期間の前記開始時間及び終了時間は、前記イベントの発生を示すセンサデータ及び前記イベントに状況を提供すると期待される時間量に基づいている、前記受信すること、及び
前記関連付けられた期間中に前記関心のあるイベントに前記状況を提供する信号を前記遠隔ネットワークに送信すること
を行うよう構成された、プロセッサ
を備える、ロボット。
【請求項12】
前記遠隔ネットワークは、前記状況を表示し、ユーザからの前記支援要請に対処するための前記命令を受信するように構成されたユーザインターフェースを含む、請求項11に記載のロボット。
【請求項13】
前記状況を決定することは、記憶されたセンサデータのライブラリに対して実行される機械学習をさらに含む、請求項11に記載のロボット。
【請求項14】
前記遠隔ネットワークは、前記通信ユニットを介して、複数のロボットに通信可能に接続される、請求項11に記載のロボット。
【請求項15】
前記イベントは、前記ロボットの方向又は速度の変化、視覚的合図、及び音のうちの少なくとも1つを含む、請求項11に記載のロボット。
【請求項16】
前記故障が、前記ロボットがルートを続行できないか、又は衝突のないルートを計算できないことに対応する、請求項1に記載のシステム。
【請求項17】
前記故障が、前記ロボットがルートを続行できないか、又は衝突のないルートを計算できないことに対応する、請求項7に記載のロボット。
【請求項18】
前記故障が、前記ロボットがルートを続行できないか、又は衝突のないルートを計算できないことに対応する、請求項11に記載のロボット。
【発明の詳細な説明】
【技術分野】
【0001】
優先権
本願は、2016年11月28日に出願された同一名称の共有および同時継続中の米国特許出願第15/362,544号に対する優先権の利益を主張するものであり、その内容は参照によりその全体が本明細書に組み込まれる。
【0002】
著作権
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権者は、特許商標庁の特許ファイルまたは記録に記載されているような本特許文書または本特許開示の、いかなる人物によるファクシミリ複製にも異論を唱えないが、それ以外のすべての著作権を留保する。
【0003】
背景
本出願は、概して、ロボット工学に関し、より具体的には、ロボットの遠隔操作および/または監視のためのシステムおよび方法に関する。
【背景技術】
【0004】
場合によっては、ロボットは、オペレータ制御をほとんどまたは全く伴わずに、自律的に動作することができる。しかしながら、これらのロボットは、自律的に動作するが、ロボットは、人間の支援が必要とされる事態に陥ることがある。例えば、自律型ロボットが動けなくなり、人的支援が必要になることがある。別の例として、ロボットは、最適なレベルで動作していない、および/または、そのプロトコルに対して人間が調整する必要があるかもしれない。別の例として、ロボットは、特定のタスクを実行するように、および/または特定の調整を行うように構成されていない場合があり、かつロボットに対する追加の入力および/または制御が必要である場合がある。
【0005】
現代的なロボットは、接続性および遠隔監視をほとんど伴わない制御された環境で頻繁に動作する。したがって、オペレータは、現場でこれらのロボットを支援し、これは、場合によっては、これらのロボットに不必要な停止時間を生じさせる。この現代的なシナリオはまた、ロボットを支援するために、これらのロボットを見張る、および/またはそれらを他のタスクから逸らすために、人々がその場にいることがしばしば要求されるので、維持することが高価になる可能性もある。したがって、ロボットの操作および/または監視のための改良されたシステムおよび方法が必要とされている。
【発明の概要】
【0006】
前述の必要性は、とりわけ、自律的ナビゲーションにおける動的ルート計画のための装置および方法を提供する本開示によって満たされる。本明細書に記載されている例示的な実装形態は、革新的な特色を有しており、そのうちの1つのものが、それらの望ましい属性に対して不可欠であるのではなく、または単独でその責任を担うものではない。特許請求の範囲を限定することなく、いくつかの有利な特色をここで要約する。
【0007】
第1の態様において、ロボットシステムが開示される。例示的な一実装形態では、ロボットシステムは、環境についてのセンサデータを生成するように構成された1つ以上のセンサと、センサデータおよび支援に対する要求を送信するように構成されたロボット通信ユニットとを備える、ロボットを含む。ロボットシステムは、センサデータおよびロボットからの支援に対する要求を受信するように構成された遠隔ネットワーク通信ユニットと、受信されたセンサデータ内の関心対象の事象を識別することであって、関心対象の事象は、第1の時間に発生する、ことと、第1の時間前の開始時間および第1の時間後の終了時間を有する時間ウィンドウを決定することと、決定された時間ウィンドウに対するセンサデータに少なくとも部分的に基づいて、状況を決定することと、遠隔ネットワーク通信ユニットを使用して、決定された状況に少なくとも部分的に基づいて、支援に対する要求に対処するための命令を、ロボット通信ユニットに送信することと、を行うように構成されたプロセッサと、を備える、遠隔ネットワークも含む。
【0008】
一変形形態では、ロボットの1つ以上のセンサは、環境についてのマップ関連データを生成するようにさらに構成され、遠隔ネットワーク通信ユニットは、ロボットからマップ関連データを受信するように構成され、遠隔ネットワークは、マップ関連データの少なくとも部分的に基づいて、環境のマップを生成するように構成されたマップ処理ユニットをさらに備え、遠隔ネットワーク通信ユニットは、マップ処理ユニットによって生成されたマップを、自律的ナビゲーションのためにロボットに送信するようにさらに構成される。
【0009】
別の変形形態では、ロボットは床掃除機である。別の変形形態では、支援に対する要求に対処するための命令は、ロボットを作動させるように構成されたアクチュエータ命令を含む。別の変形形態では、遠隔ネットワークは、ユーザ入力を受信するように構成されたユーザインターフェースをさらに備え、支援に対する要求に対処するための命令は、ユーザ入力の少なくとも部分的に基づいて生成される。別の変形形態では、ロボットは、自律的に環境をナビゲートするように構成され、センサデータ内の関心対象の事象は、ロボットのルートに沿った障害物を含む。
【0010】
別の変形形態では、ロボットシステム第2のロボットは、遠隔ネットワークに通信可能に結合された第2のロボット通信ユニットを有する。別の変形形態では、遠隔ネットワークは、ロボットの使用法を追跡するようにさらに構成される。別の変形形態では、1つ以上のセンサは、光検出および測距センサを含む。
【0011】
第2の態様において、ロボットが開示される。例示的な一実装形態では、ロボットは、環境についてのセンサデータを生成するように構成された1つ以上のセンサと、タスクを実行するように構成されたアクチュエータと、生成されたセンサデータに少なくとも部分的に基づいて、環境における障害物を検出することと、ロボットがタスクを実行することができないと決定し、決定に応答して、アクチュエータがタスクを実行することを防止することと、決定に応答して、遠隔ネットワークに、センサデータおよび支援に対する要求を送信することと、支援に対する要求に応答して、タスクを実行するために遠隔ネットワークから命令を受信することと、遠隔ネットワークから受信された命令に少なくとも部分的に基づいて、タスクを実行することと、を行うように構成されたプロセッサと、を含む。
【0012】
一変形形態では、ロボットは、床掃除機であり、タスクは、床を掃除することを含む。別の変形形態では、プロセッサは、(1)障害物の検出前の開始時間および(2)障害物の検出後の終了時間を有する時間ウィンドウを決定することと、決定された時間ウィンドウに対応するセンサデータを送信することと、を行うようにさらに構成される。
【0013】
別の変形形態では、プロセッサは、遠隔ネットワークからマップを受信することと、受信されたマップに少なくとも部分的に基づいてタスクを実行することと、を行うようにさらに構成される。
【0014】
別の変形形態では、ロボットは、生成されたセンサデータに少なくとも部分的に基づいて、マップを生成するように構成されたマッピングおよび位置特定ユニットをさらに備える。
【0015】
別の変形形態では、プロセッサは、マップを遠隔ネットワークに送信することと、遠隔ネットワークから修正されたマップを受信することと、を行うようにさらに構成され、送信されたマップは、1つ以上のエラーを有し、修正されたマップは、もはや1つ以上のエラーを有しない。
【0016】
別の変形形態では、1つ以上のセンサ、アクチュエータ、およびプロセッサは、取り付け可能なモジュールを備える。
【0017】
第3の態様では、遠隔ネットワークが開示されている。例示的な一実装形態では、遠隔ネットワークは、センサデータおよびロボットからの支援に対する要求を受信するように構成された通信ユニットと、受信されたセンサデータ内の関心対象の事象を識別することと、受信されたセンサデータに少なくとも部分的に基づいて、状況を決定することと、通信ユニットを使用して、決定された状況に少なくとも部分的に基づいて、支援に対する要求に対処するための命令を、ロボットに送信することと、を行うように構成されたプロセッサと、を備える。
【0018】
一変形形態では、センサデータは、(1)関心対象の事象前の開始時間および(2)関心対象の事象後の終了時間を有するデータウィンドウを含み、状況の決定は、データウィンドウに少なくとも部分的に基づく。
【0019】
別の変形形態では、遠隔ネットワークは、状況を表示するように、かつユーザからの支援に対する要求に対処するための前記命令を受信するように構成されたユーザインターフェースをさらに備える。
【0020】
別の変形形態では、状況の決定は、格納されたセンサデータのライブラリに対して実行される機械学習をさらに含む。
【0021】
別の変形形態では、遠隔ネットワークは、通信ユニットを介して複数のロボットに通信可能に結合されている。
【0022】
第4の態様では、遠隔ネットワークの操作方法が開示されている。例示的な一実装形態では、方法は、センサデータ内の関心対象の事象を識別することであって、関心対象の事象は、第1の時間に発生する、識別することと、第1の時間前の開始時間および第1の時間後の終了時間を有する時間ウィンドウを決定することと、ウィンドウ中に生成されたセンサデータに少なくとも部分的に基づいて、状況を決定することと、状況に少なくとも部分的に基づいて、支援に対する要求に対処するための命令を、ロボットに送信することと、を含む。
【0023】
第5の態様では、ロボットの操作方法が開示されている。例示的な一実装形態では、この方法は、センサデータに少なくとも部分的に基づいて、環境における障害物を検出することおよびロボットがタスクを実行できないと決定することと、ロボットのアクチュエータがタスクを実行するのを防止することと、遠隔ネットワークに、センサデータおよび支援に対する要求を送信することと、タスクを実行するために遠隔ネットワークから命令を受信することと、遠隔ネットワークからの命令に少なくとも部分的に基づいて、タスクを実行することと、を含む。
【0024】
第6の態様では、非一時的コンピュータ可読格納媒体が開示されている。例示的な一実装形態では、非一時的なコンピュータ可読格納媒体は、複数の命令をそこに格納し、これらの命令は、遠隔ネットワークを操作するための処理装置によって実行可能である。処理装置によって実行されたときに、命令は、処理装置に、センサデータ内の関心対象の事象を識別することであって、関心対象の事象は、第1の時間に発生する、を識別することと、第1の時間前の開始時間および第1の時間後の終了時間を有する時間ウィンドウを決定することと、ウィンドウ中に生成されたセンサデータに少なくとも部分的に基づいて、状況を決定することと、状況に少なくとも部分的に基づいて、支援に対する要求に対処するための命令を、ロボットに送信することと、を実行させるように構成される。
【0025】
いくつかの実装形態では、非一時的なコンピュータ可読格納媒体は、複数の命令をそこに格納し、これらの命令は、ロボットを操作するための処理装置によって実行可能である。処理装置によって実行されたときに、命令は、処理装置に、センサデータに少なくとも部分的に基づいて、環境における障害物を検出することおよびロボットがタスクを実行することができないと決定することと、ロボットのアクチュエータがタスクを実行することを防止することと、遠隔ネットワークに、センサデータおよび支援に対する要求を送信することと、タスクを実行するために遠隔ネットワークから命令を受信することと、遠隔ネットワークからの命令に少なくとも部分的に基づいて、タスクを実行することと、を実行させるように構成される。
【0026】
本開示のこれらおよび他の目的、特色、および特性、ならびに構造の関連要素の操作方法および機能ならびに部品の組み合わせおよび製造の経済性は、それらのすべてが本明細書の一部分を形成し、同様の参照番号は様々な図における対応する部分を示す、添付の図面を参照して下記の説明および添付の特許請求の範囲を考慮することにより、より明らかになるであろう。しかしながら、図面は、例示および説明の目的のみのためであり、本開示の限界の画定を意図するものではないことは、明白に理解されるべきである。本明細書および特許請求の範囲で使用されているように、「a」、「an」、および「the」の単数形は、文脈上他に明確に指示されない限り、複数の指示対象を含む。
【図面の簡単な説明】
【0027】
開示された態様は、添付の図面と併せて以下で説明され、開示される態様を例示するために提供され、限定するために提供されるものではなく、同様の名称は同様の要素を示す。
【0028】
図1A】本開示のいくつかの実装形態による、ロボットの操作のための例示的な方法のプロセスフロー図である。
図1B】本開示のいくつかの実装形態による、支援を受けるロボットの操作のための例示的な方法のプロセスフロー図である。
図2】本開示のいくつかの原理による、ロボットの機能ブロック図である。
図3A】本開示のいくつかの実装形態による、遠隔ネットワークと通信可能におよび/または操作可能に結合された複数のロボットを含むシステムの機能ブロック図である。
図3B】本開示のいくつかの実装形態による、ゲートウェイを介して遠隔ネットワークと通信可能におよび/または操作可能に結合されたロボットを含むシステムの機能ブロック図である。
図4】本開示のいくつかの実装形態による、ロボットと遠隔ネットワークとの間を行き来することができる信号を例示する信号表である。
図5A】本開示のいくつかの実装形態による、ロボットが環境内を移動するときにロボットによって生成される上面マップおよびルートである。
図5B】本開示のいくつかの原理による、ロボットの周囲および移動ルートを正確には反映していないマップである。
図6】本開示のいくつかの実装形態による、ウィンドウにおいて取得されたセンサデータのタイミング図である。
図7A】本開示のいくつかの実装形態による、環境マップ上にオーバーレイされたルートを含むマップを含む。
図7B】本開示のいくつかの実装形態による、ロボットの使用法を要約する報告ページを含む。
図8】本開示のいくつかの実装形態による、遠隔ネットワークの操作のための例示的な方法のプロセスフロー図である。
図9】本開示のいくつかの実装形態による、ロボットの操作のための例示的な方法のプロセスフロー図である。
【0029】
本明細書で開示のすべての図は、Brain Corporationが著作権(2017)を有する。無断転用を禁止する。
【発明を実施するための形態】
【0030】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に記載される。しかしながら、本開示は、多くの異なる形態で具現化することができ、本開示を通して提示される具体的な構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であり、本開示の範囲を当業者に完全に伝えるように提供される。本明細書の教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して実装されるか、またはそれと組み合わせられるかにかかわらず、本明細書に開示された新規のシステム、装置、および方法の任意の態様を包含することを意図していることを理解するはずである。例えば、本明細書に記載の任意の数の態様を使用して、装置を実装することができ、または方法を実施することができる。加えて、本開示の範囲は、本明細書に記載された開示の様々な態様に加えて、またはそれ以外の他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含するように意図されている。本明細書に開示されるいかなる態様も、特許請求項の1つ以上の要素によって実装され得ることを理解されたい。
【0031】
特定の態様が本明細書に記載されているが、これらの態様の多くの変形および置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利益および利点が述べられているが、本開示の範囲は、特定の利益、用途、および/または目的に限定されることを意図しない。詳細な説明および図面は、限定ではなく本開示の単なる例示であり、開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【0032】
本開示は、ロボットの改善された遠隔操作および/または監視を提供する。本明細書で使用されるように、ロボットは、複雑な一連の動作を自動的に成し遂げるように構成された機械的または仮想的エンティティを含むことができる。場合によっては、ロボットは、コンピュータプログラムまたは電子回路によって案内および/または命令される機械であることができる。場合によっては、ロボットは、ナビゲーション用に構成された電子機械コンポーネントを含むことができ、ロボットがある場所から別の場所に移動できる。そのようなナビゲーションロボットは、自律走行および/または自動運転車、床掃除機、探査車(rover)、ドローン、飛行機、ボート、カートなどを含むことができる。
【0033】
場合によっては、ロボットは、1つ以上のタスクを実行するように自動化された、電気器具、機械、および/または機器を含むことができる。例えば、モジュールは、それらが自律的に動作することを可能にするために、電気器具、機械、および/または機器に取り付けることができる。いくつかの実装形態では、モジュールは、電気器具、機械、および/または機器の自律運動を駆動するモーターを含むことができる。場合によっては、モジュールは、少なくとも一部はなりすましに基づいて、電気器具、機械、および/または機器を動作させる。モジュールは、データを受信し、かつ生成するためのセンサおよび/またはプロセッサを含むことができる。そのような電気器具、機械、および/または機器は、フォークリフト、タグボート、ボート、飛行機、産業機器、床掃除機、家電製品などを含むことができる。
【0034】
本明細書で言及されるように、床掃除機は、手動制御(例えば、駆動または遠隔制御)および/または自律した(例えば、ユーザ制御をほとんどまたは全く用いない)床掃除機を含むことができる。例えば、床掃除機は、管理者、管理人、または他の人が操作する床掃除機、および/または環境を自律的にナビゲートおよび/または掃除するロボット床掃除機を含むことができる。同様に、床掃除機はまた、真空掃除機、蒸気掃除機、バッフィングマシン、モップ、ポリッシャー、スイーパー、バニッシャーなどを含むことができる。
【0035】
本開示のシステムおよび方法の様々な実装形態および変形形態の詳細な説明は、ここで提供される。本明細書で考察された多くの実施例は、ロボット式床掃除機の状況におけるものであるが、本明細書に含まれて記載されているシステムおよび方法は、他のロボットでも使用できることが理解されよう。本明細書に記載された技術の無数の他の例示的な実装形態または使用形態は、本開示の内容が与えられれば、当業者によって容易に想定されるであろう。
【0036】
有利には、本開示のシステムおよび方法は、少なくとも(i)ロボットへ/からのデータ転送を可能にすること、(ii)ロボットの最適化を可能にすること、(iii)遠隔ロボット支援を可能にすること、(iv)予期しない事情下であっても、ロボットが環境内で安全に動作できるようにすること、(v)複数のロボットの制御を可能にすること、(vi)ロボットの状態、メンテナンス、および/または性能の遠隔監視を可能にすること、(vii)ロボットデータのためのデータセキュリティを提供すること、(viii)ロボットマッピングおよび/または性能のレビューを可能にすること、(ix)ロボットおよび/またはロボットデータの計算上効率的な管理を提供すること、を含む。他の利点は、本開示の内容を与えられた当業者によって容易に認識することができる。
【0037】
例えば、ロボットは、環境をナビゲートし、データを収集し、および/または行動を実行することができる。例示として、ロボットは、環境内を移動するときに床を掃除する床掃除機であり得る。ロボットは、データを収集および/または生成することができる。例えば、ロボットは、図2を参照して本開示において後で記載されるように、ロボットの環境を感知するセンサを有することができる。これらのセンサは、環境に関するデータを生成できる。ロボットは、オン/オフ時間、速度、状態、ソフトウェアバージョン、動作(例えば、掃除などの行動/動作の実行)、メンテナンスなど、ロボットの性能を監視するセンサを有することもできる。これらのセンサは、ロボットに関するデータを生成することができる。ロボットはまた、ロボットの環境および/またはロボットが自律的に環境をナビゲートすることを可能にするルートに関する情報を含むマップ関連データ(例えば、マップ作成および/または位置特定に関連する、および/またはそれに使用できるデータ)を生成することができる。
【0038】
これらの事態では、本開示のシステムおよび方法は、ロボットによって収集および/または生成されたデータを外部レビューするのに望ましい可能性がある。この外部レビューは、ロボットのエラーや誤動作がレビューされ、潜在的に発見および解決されることを可能にする。例えば、遠隔オペレータ(例えば、ユーザおよび/またはコンピュータ)は、データをレビューしてロボットのあらゆる必要性を評価し、および/またはロボットの性能を向上させることができる。遠隔モニタは、マップをレビューし、および/またはそれらの正確性を評価することができる。マップが不正確である場合、マップ修正および/または他の手順は、遠隔で実行することができる。有利なことに、遠隔モニタは、ロボットにさらなる安全性および/または精度の層を提供し、所望に応じてエラーを捕捉および/または修正することができる。
【0039】
別の実施例として、遠隔オペレータは、ロボットが動けなくなったときに(例えば、空間の外へおよび/または通過してナビゲートすることができない)それに命令を与えることができる。遠隔オペレータは、動的にロボットのルートを変更することができる。有利なことに、本開示の実装形態に従ってロボットとの遠隔監視および/または対話を有することは、ロボットがより困難な環境をナビゲートすることを可能にすることができる。これは、起こり得るすべての事態を処理するようにプログラムされていないかもしれないロボットの配備を可能にすることができる。例えば、環境および/または行動を学習するように構成されたロボットは、最初は環境および/または行動を知らないかもしれない。遠隔オペレータは、環境および/または行動を十分に学習するまでロボットを支援することができる。別の実施例として、ロボットは、ロボットのプログラミングによって対処されていない事態(例えば、特別な場合、熟考されていないシナリオ、および/または説明されていないシナリオ)に遭遇することができる。遠隔オペレータは、それからロボットに解決策を提供することができる。場合によっては、プログラミングソリューションを後でロボットにロードして、遠隔オペレータからの支援が不要になることもある。
【0040】
他の実施例として、ロボットは、様々なパラメータおよび許容誤差を伴って構成することができる。停止するロボットは故障している、という人々(例えば、ユーザ、観察者など)による認識が存在し得る。したがって、ロボットの停止時間を回避するために、プログラマがロボットの限界を押し広げる傾向がある。本開示のシステムおよび方法は、より多くの事態でロボットを停止させることによって、プログラマが安全側にエラーを起こすことを可能にすることができる。遠隔オペレータは、ロボットを迅速に支援することができるので、停止時間を実質的に最小限に抑えることができる。そのような場合、ロボットの観察者による支援の出現は、実質的に最小限に抑えることができ、実質的にシームレスな自律性の出現を生み出す。この自律性の見通しは、人々に安心感を与えることができ、ロボットに対する彼らの信頼をさらに高める。
【0041】
別の実施例として、ロボット性能は、しばしば評価するのが難しい。人々は、ある期間ロボットを観察するかもしれないが、その時にはロボットがその仕事を正しく行っていると仮定するかもしれない。確かに、時間をかけ過ぎたロボットの観察は、手動のオペレータの時間を他のタスクに再割り当てすることによる潜在的な節約が妨げられる可能性がある。本開示のシステムおよび方法は、ロボットの性能の少なくとも一部を示すことができる報告を可能にする。ロボットの性能についての知識があれば、オペレータは、ロボットの性能を向上させること、および/またはロボットの有用性を評価することができる。
【0042】
別の実施例として、本開示のシステムおよび方法は、ロボットの監視および/または操作のための費用対効果の高い解決策を提供する。監視および制御は、潜在的にロボットのコストおよび諸経費を増大させる可能性があるが、1つの遠隔ネットワークは、複数のロボットを操作および/または監視することができ、それによって共有リソースが可能になる。このようにして、コストを、複数のロボットにわたって分配することができ、任意の1つを監視および/または操作するコストを削減する。さらに、遠隔ネットワークは、効率性およびコスト共有のための追加の機会を提供することができる。遠隔ネットワークは、個々のロボットよりも高度で高価なハードウェアを実装できる。各ロボットに高度なハードウェアを搭載する代わりに、ハードウェアは、遠隔ネットワークにおけるロボット間で共有することができる。次いで、遠隔ネットワークは、より高価なおよび/またはよりハードウェア集約的な計算(例えば、機械学習、画像処理、および/または他の方法など)に使用することができる。有利なことに、遠隔ネットワークのハードウェアは、絶えずアップグレードすることができるが、それらのロボットが配備された後に個々のロボットのハードウェアをアップグレードすることは困難であり得る。
【0043】
図1Aは、本開示のいくつかの実装形態による、ロボットの操作のための例示的な方法100のプロセスフロー図である。ブロック102は、データを収集することを含む。例えば、ロボットは、図2を参照して記載されるように、センサユニット212のセンサなど、そのセンサを通してデータを収集することができる。このデータは、センサからの生データを含むことができる。このデータは、加えてまたは代替として、状態、動作時間、報告などを含む、データから引き出された集約および/または結論を含むこともできる。場合によっては、データは、ロボットが移動するためのマップおよび/またはルートを含むこともできる。マップは、物体、障害物、および/またはロボットの周囲における他の特色など、ロボットの環境におけるマップを含むことができる。ルートは、環境においてロボットが移動する経路を含むことができる。ロボットが環境において移動する経路など、ルートは、予想することができる。ロボットが以前に移動した経路のように、ルートはまた、回顧的になることができる。ルートはまた、ロボットの現在位置および/または姿勢を含むことができる。
【0044】
場合によっては、そのようなデータは、図2を参照して記載されるように、メモリ202内など、ロボットにおける特定の場所に格納することができる。このデータは、一時的におよび/または所望に応じて長期間にわたって格納することができる。
【0045】
ブロック104は、データの少なくとも一部を遠隔ネットワークにアップロードすることを含む。そのようなアップロードは、既定の時間間隔でおよび/または要求に応じて起こり得る。例えば、ロボットは、データを遠隔ネットワークにプッシュすることができる。ロボットは、スケジュール、事象(例えば、特定の種類のデータの収集)に少なくとも部分的に基づいて、および/またはロボットのユーザインターフェース上で開始されたときに、そのようなデータ転送を開始することができる。別の実施例として、遠隔ネットワークは、ロボットからデータをプルすることができる。遠隔ネットワークは、スケジュール、事象(例えば、特定の種類のデータの収集)の少なくとも部分的に基づいて、および/または遠隔ネットワークのユーザインターフェース上で開始されたときに、そのようなデータ転送を開始することができる。
【0046】
ブロック106は、遠隔ネットワークにおいて収集されたデータを処理することを含む。本開示においてさらに記載されるように、そのようなデータ処理は、データを集約すること、報告を生成すること、エラー修正すること、データに応答することなどを含むことができる。
【0047】
図1Bは、本開示のいくつかの実装形態による、支援を受けるロボットの操作のための例示的な方法150のプロセスフロー図である。ブロック152は、自律的に動作することを含む。自律的な動作は、自律的なナビゲーション、および/または、ユーザ制御をほとんどまたは全く伴わずに、ロボットによる任意の行動の任意の実行を含むことができる。
【0048】
ブロック154は、支援に対する理由を決定することを含む。例えば、自律的動作の過程において、ロボットは、支援が所望される事態でそれ自身を見つけることができる。例えば、ロボットの経路は、ロボットのプログラミングに従ってロボットが移動する経路を持たないように妨害される可能性がある。そしてロボットは、その経路をクリアにするための支援(例えば、人に障害物を動かさせること)が望ましいと判断することができる。別の実施例として、ロボットは故障する可能性がある(例えば、床掃除機の場合には、ブラシが破損する可能性があり、タンクが破裂する、水漏れ等)。したがって、ロボットは、自律的に実行することになっていたタスクを進めることができない可能性があり、問題を解決するための支援が望ましいと判断することができる。別の実施例として、ロボットは、流体、ベルト、パッド、ゴム雑巾、ブラシ、電池、消耗品などのメンテナンスなどのメンテナンス問題を抱えている可能性がある。したがって、ロボットは、メンテナンスが望ましいと判断することができる。
【0049】
別の実施例として、ロボットは、支援が望ましいとロボットが判断する既定のシナリオに近づくことができる。例示として、ロボットは、所定の占有領域を有することができる。占有領域は、ロボットがナビゲートするときに環境におけるロボットと物体との間のスペース量であり得る、既定の量のクリアランスを提供することができる(例えば、ロボットの幅が21インチである場合、クリアランススペースを作るためにクリアランスは25インチであり得る)。通路が占有領域より小さい場合、ロボットは支援が望ましいと判断することができる。他のシナリオは事前定義できる。別の例示として、ロボットのセンサにおいて物体が障害物として見え、その後消える場合、ロボットは支援が望ましいと判断するようにプログラムすることができる。そのようなシナリオは、周囲に人、子供、および/または動物がいるかどうかの不確実性を生み出す可能性があり、ロボットは、ロボットがどのように進むべきかを知るために支援が望ましいと判断することができる。別の実施例として、ロボットはエラー(例えば、既知または未知の原因)を有し、支援が望ましいと判断することができる。
【0050】
ブロック154で支援に対する理由を決定した後、ロボットは支援要求を送信することができる。ブロック156は、遠隔ネットワークに支援要求を送信することを含む。そのような支援要求は、状態、データ、警告、コマンド、および/または他の信号を含むことができる。本開示で説明するように、支援要求は、図2に例示する通信ユニット222を使用して送信することができる。
【0051】
支援要求は、遠隔ネットワークによって受信されおよび/または処理される(例えばコンピュータおよび/または人によって)ことができる。その後、遠隔ネットワークはロボットに命令を送り返すことができる。ブロック158は、遠隔ネットワークから命令を受信することを含む。これらの命令は、(例えば、オペレータからの)支援を待つ、停止する、進む、および/またはロボットおよび/またはオペレータによる任意のさらなる行動を含むことができる。
【0052】
図2は、本開示のいくつかの原理による、ロボット200の機能ブロック図である。図2に例示されるように、ロボット200は、コントローラ204、メモリ202、ユーザインターフェースユニット218、マッピングおよび位置特定ユニット224、センサユニット212、および通信ユニット222、ならびに他のコンポーネントおよびサブコンポーネント(例えば、それらのいくつかは例示されていない)を含むことができる。特定の実装形態が図2に例示されているが、本開示の内容が与えられれば当業者には容易に明らかであるように、アーキテクチャは特定の実装形態において変更され得ることが理解できる。本明細書で使用されるように、ロボット200は、本開示に記載される任意のロボット(例えば、ロボット200A~200C)の少なくとも一部を代表することができる。ロボット200に関して説明された任意の機能、システム、および/または方法は、ロボット200A~200Cのうちの任意の1つ(および/またはこの開示に記載された任意の他のロボット)と実質的に同様に適用できる。
【0053】
コントローラ204は、ロボット200によって行われる様々な操作を制御することができる。コントローラ204は、1つ以上のプロセッサ(例えば、マイクロプロセッサ)および他の周辺機器を含むことができる。本明細書で使用されるように、プロセッサ、マイクロプロセッサ、および/またはデジタルプロセッサは、限定することなく、デジタル信号プロセッサ(「DSP」)、縮小命令セットコンピュータ(「RISC」)、汎用(「CISC」)プロセッサ、マイクロプロセッサ、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(「FPGA」))、プログラマブルロジックデバイス(「PLD」)、再構成可能コンピュータファブリック(「RCF」)、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ(例えば、ニューロモルフィック(neuromorphic)プロセッサ)、および特定用途向け集積回路(「ASIC」)、のような任意のデジタル処理デバイスの種類を含むことができる。そのようなデジタルプロセッサは、単一の一体型集積回路ダイに含まれてもよく、または複数のコンポーネントにわたって分散されてもよい。
【0054】
コントローラ204は、メモリ202と操作可能におよび/または通信可能に結合されてもよい。メモリ202は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、不揮発性ランダムアクセスメモリ(「NVRAM」)、プログラマブル読み取り専用メモリ(「PROM」)、電気的消去可能プログラマブル読み取り専用メモリ(「EEPROM」)、ダイナミックランダムアクセスメモリ(「DRAM」)、モバイルDRAM、シンクロナスDRAM(「SDRAM」)、ダブルデータレートSDRAM(「DDR/2SDRAM」)、拡張データ出力RAM(「EDO」)、高速ページモードRAM(「FPM」)、低遅延DRAM(「RLDRAM」)、スタティックRAM(「SRAM」)、フラッシュメモリ(例えば、NAND/NOR)、メモリスタメモリ、擬似スタティックRAM(「PSRAM」)などを含むが、これらに限定されない、デジタルデータを格納するのに適合した任意の種類の集積回路または他の格納デバイスを含み得る。メモリ202は、コントローラ204に命令およびデータを提供することができる。例えば、メモリ202は、ロボット200を操作させるために処理装置(例えば、コントローラ204)によって実行可能な、複数の命令が格納された非一時的なコンピュータ可読格納媒体であってもよい。場合によっては、命令は、処理装置によって実行されたときに、処理装置に本開示に記載の様々な方法、特色、および/または機能を行わせるように構成することができる。したがって、コントローラ204は、メモリ202内に格納されたプログラム命令に基づいて論理演算および算術演算を行うことができる。
【0055】
いくつかの実装形態では、センサユニット212は、ロボット200内および/またはロボット200の周囲の特性を検出することができるシステムおよび/または方法を備えることができる。センサユニット212は、複数のセンサおよび/またはセンサの組み合わせを含むことができる。センサユニット212は、ロボット200の内部または外部にあり、および/または部分的に内部および/または部分的に外部のコンポーネントを有するセンサを含むことができる。場合によっては、センサユニット212は、ソナー、光検出および測距(「LIDAR」)センサ、レーダ、レーザ、カメラ(ビデオカメラ、赤外線カメラ、3Dカメラ、サーマルカメラなどを含む)、飛行時間(「TOF」)カメラ、アンテナ、マイクロフォン、および/または当技術分野で知られている他の任意のセンサなどの1つ以上の外来センサを含むことができる。いくつかの実装形態では、センサユニット212は、生の測定値(例えば、電流、電圧、抵抗、ゲートロジックなど)および/または変換された測定値(例えば、距離、角度、障害物内の検出点など)を収集することができる。場合によっては、測定値は、集約および/または要約することができる。センサユニット212は、少なくとも部分的には測定値に基づいてデータを生成することができる。そのようなデータは、マトリックス、アレイなどのデータ構造に格納することができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ばれ得る。
【0056】
いくつかの実装形態では、センサユニット212は、ロボット200の内部特性を測定することができるセンサを含むことができる。例えば、センサユニット212は、温度、電力レベル、状態、および/またはロボット200の他の任意の特性を測定することができる。場合によっては、センサユニット212は、ロボット200の走行距離測定を決定するように構成することができる。例えば、センサユニット212は、加速度計、慣性測定ユニット(「IMU」)、走行距離計、ジャイロスコープ、スピードメータ、カメラ(例えば、視覚的走行距離測定を使用する)、時計/タイマなどのセンサを含むことができる、固有受容センサを含むことができる。走行距離測定は、ロボット200の自律的なナビゲーションおよび/または他の自律的な行動を容易にすることができる。この走行距離測定は、初期の場所に対するロボット200の位置(例えば、位置は、ロボットの場所、変位および/または向きを含むことができ、時には本明細書で使用される姿勢という用語と交換可能であり得る)を含むことができる。そのようなデータは、マトリックス、アレイなどのデータ構造に格納することができる。データ構造は、待ち行列、リスト、アレイ、スタック、バッグなどを含むことができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ぶことができる。
【0057】
マッピングおよび位置特定ユニット224は、センサユニット212からセンサデータを受信して、ロボット200をマップに位置特定することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット224は、ロボット200がそれ自体をマップの座標内および/または場所(例えば、初期化場所、終了場所、ビーコン、基準点など)に対して位置特定することを可能にする場所特定システムおよび方法を含むことができる。マッピングおよび位置特定ユニット224はまた、グラフおよび/またはマップを生成することなどによって、ロボット200によって取得された測定値を処理することもできる。
【0058】
いくつかの実装形態において、ユーザインターフェースユニット218は、ユーザがロボット200と対話できるように構成することができる。例えば、ユーザインターフェース218は、タッチパネル、ボタン、キーパッド/キーボード、ポート(例えば、汎用シリアルバス(「USB」)、デジタルビジュアルインターフェース(「DVI」)、ディスプレイポート、イーサーター(E-Sata)、ファイヤワイヤ(Firewire)、ピーエス2(PS/2)、シリアル(Serial)、ブイジーエイ(VGA)、スカジー(SCSI)、オーディオポート、高品位マルチメディアインターフェース(「HDMI」)、パーソナルコンピュータメモリカード国際協会(「PCMCIA」)ポート、メモリカードポート(例えば、セキュアデジタル(「SD」)およびミニSD)、および/またはコンピュータ読取可能媒体用のポート)、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および/または、ワイヤレスデバイスで、またはワイヤを通じて結合されているかどうかにかかわらず、ユーザがデータおよび/またはコマンドを入力および/または受信するための任意のインターフェースを含むことができる。ユーザインターフェースユニット218は、限定することなく、液晶ディスプレイ(「LCD」)、発光ダイオード(「LED」)ディスプレイ、LED・LCDディスプレイ、面内スイッチング(「IPS」)ディスプレイ、陰極線管、プラズマディスプレイ、高精細(「HD」)パネル、4Kディスプレイ、網膜ディスプレイ、有機LEDディスプレイ、タッチスクリーン、表面、キャンバス、ならびに/または視覚的表現のための当該技術分野で既知の任意のディスプレイ、テレビ、モニタ、パネル、および/もしくはデバイスを含むことができる。いくつかの実装形態では、ユーザインターフェースユニット218は、ロボット200の本体上に位置付けすることができる。いくつかの実装形態において、ユーザインターフェースユニット218は、ロボット200の本体から離れて位置付けすることができるが、(例えば、送信機、受信機、および/もしくはトランシーバを含む通信ユニットを介して)ロボット200と直接、または(ネットワーク、サーバ、および/もしくはクラウドを通じて)間接的に通信可能に結合することができる。
【0059】
いくつかの実装形態では、通信ユニット222は、1つ以上の受信機、送信機、および/またはトランシーバを含むことができる。通信ユニット222は、ブルートゥース(BLUETOOTH(登録商標))、ジグビー(ZIGBEE(登録商標))、ワイファイ(Wi-Fi)、誘導ワイヤレスデータ伝送、無線周波数、無線伝送、無線周波数識別(「RFID」)、近距離通信(「NFC」)、赤外線、ネットワークインターフェース、3G(3GPP/3GPP2)などの携帯電話技術、高速ダウンリンクパケットアクセス(「HSDPA」)、高速アップリンクパケットアクセス(「HSUPA」)、時分割多重アクセス(「TDMA」)、符号分割多元接続(「CDMA」)(例えば、IS-95A、広帯域符号分割多元接続(「WCDMA」)など)、周波数ホッピングスペクトラム拡散(「FHSS」)、直接シーケンス拡散スペクトル「DSSS」)、移動体通信用のグローバルシステム(「GSM」)、パーソナルエリアネットワーク(「PAN」)(例えば、PAN/802.15)、マイクロ波アクセス(「WiMAX」)の世界的な相互運用性、802.20、ロングタームエボリューション(「LTE」)(例えば、LTE/LTE-A)、時分割LTE(「TD-LTE」)、グローバル移動体通信システム(「GSM」)、狭帯域/周波数分割多元接続(「FDMA」)、直交周波数分割多重(「OFDM」)、アナログセルラ、セルラデジタルパケットデータ(「CDPD」)、衛星システム、ミリ波またはマイクロ波システム、音響、および赤外線(例えば、赤外線通信協会(「IrDA」))、のような送信プロトコル、ならびに/またはワイヤレスデータ伝送の任意の他の形式を送受信するように構成することができる。
【0060】
本明細書で使用されるとき、ネットワークインターフェースは、限定することなく、ファイヤワイヤ(FireWire)(例えば、FW400、FW800、FWS800T、FWS1600、FWS3200など)、ユニバーサルシリアルバス(「USB」)(例えば、USB1.X、USB2.0、USB3.0、USB Type-Cなど)、イーサネット(例えば、10/100、10/100/1000(ギガビットイーサネット)、10-Gig-Eなど)、同軸同盟技術によるマルチメディア(「MoCA」)、コアックスシーズ(Coaxsys)(例えば、TVNETTM)、無線周波数チューナー(例えば、インバンド(in-band)またはOOB、ケーブルモデムなど)、Wi-Fi(802.11)、WiMAX(例えば、WiMAX(802.16))、PAN(例えば、PAN/802.15)、セルラ(例えば、3G、LTE/LTE-A/TD-LTE/TD-LTE、GSMなど)、IrDAファミリなどのそれらを含む、コンポーネント、ネットワーク、またはプロセスとの任意の信号、データ、またはソフトウェアインターフェースを含むことができる。本明細書で使用されるとき、ワイファイ(Wi-Fi)は、1つ以上のIEEE規格802.11、IEEE規格802.11の変形、IEEE規格802.11に関連する規格(例えば、802.11a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay)、および/または他の無線規格を含むことができる。
【0061】
通信ユニット222はまた、信号線および接地を有する任意のケーブルなどの、有線接続を介して伝送プロトコルを利用して送信/受信するように構成することができる。例えば、そのようなケーブルは、イーサネット(登録商標)ケーブル、同軸ケーブル、ユニバーサルシリアルバス(「USB」)、ファイヤワイヤ(FireWire)、および/または当該技術分野で既知の任意の接続を含むことができる。そのようなプロトコルは、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動体通信ネットワーク、クラウド、サーバなどの外部システムと通信するために通信ユニット222によって使用することができる。通信ユニット222は、数字、文字、英数字、および/または記号を含む信号を送信および受信するように構成することができる。場合によっては、128ビットまたは256ビットキーなどのアルゴリズムおよび/またはAdvanced Encryption Standard(「AES」)、RSA、Data Encryption Standard(「DES」)、Triple DESなどの規格に準拠する他の暗号化アルゴリズムを使用して、信号を暗号化することができる。通信ユニット222は、状態、コマンド、および他のデータ/情報を送信および受信するように構成することができる。例えば、通信ユニット222は、ユーザがロボット200を制御することを可能にするためにユーザオペレータと通信することができる。通信ユニット222は、ロボット200がデータ、状態、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ/ネットワーク(例えば、遠隔ネットワーク)と通信することができる。サーバはまた、ロボット200を遠隔で監視および/または制御するために使用することができる、コンピュータおよび/またはデバイスと通信可能に結合することができる。通信ユニット222はまた、ロボット200用のサーバから更新(例えば、ファームウェアまたはデータ更新)、データ、状態、コマンド、および他の通信を受信することができる。
【0062】
アクチュエータ220は、場合によってはタスクを実行するために、作動させるために使用される任意のシステムを含むことができる。例えば、アクチュエータ220は、駆動される磁石システム、モーター/エンジン(例えば、電気モーター、燃焼エンジン、蒸気エンジン、および/または当該技術分野で既知の任意の種類のモーター/エンジン)、ソレノイド/ラチェット(ratchet)システム、圧電システム(例えば、インチワーム(inchworm)モーター)、磁歪素子、ジェスティキュレーション(gesticulation)、および/または当該技術分野で既知の任意のアクチュエータを含むことができる。いくつかの実装形態において、アクチュエータ220は、推進を動力化するなど、ロボット200の移動を可能にするシステムを含むことができる。例えば、電動推進は、ロボット200を前方または後方に動かすことができ、および/または少なくとも部分的に(例えば、左、右、および/または他の任意の方向に)ロボット200を回転させるのに使用することができる。例示として、アクチュエータ220は、ロボット200が移動しているか停止しているかを制御し、および/またはロボット200がある場所から別の場所にナビゲートすることを可能にする。アクチュエータ220はまた、水のオン/オフ、ブラシのオン/オフ、水の噴霧、真空のオン/オフ、真空ホース位置の移動、付属物(ロボットアーム、脚、手、足など)、および/またはその他の操作など、ロボット200の他の器具を作動させるように構成することができる。
【0063】
図2に関して記載した1つ以上のユニット(メモリ202、コントローラ204、センサユニット212、ユーザインターフェースユニット218、アクチュエータユニット220、通信ユニット222、マッピングおよび位置特定ユニット224、および/または他のユニットを含む)は、統合システムなどにおいてロボット200に統合することができる。しかしながら、いくつかの実装形態では、これらのユニットのうちの1つ以上は、取り付け可能なモジュールの一部であり得る。このモジュールは、それがロボットとして挙動するように自動化するために既存の装置に取り付けることができる。したがって、ロボット200に関して本開示で記載されている特色は、既存の装置に取り付けることができ、および/または統合システムにおいてロボット200に統合することができるモジュール内でインスタンス化することができる。
【0064】
いくつかの実装形態では、ロボット200は、遠隔ネットワークに通信可能に結合することができる。図3Aは、本開示のいくつかの実装形態による、遠隔ネットワーク302と通信可能におよび/または操作可能に結合された複数のロボット200Aおよび200Bを含むシステム300の機能ブロック図である。リモートネットワーク302は、限定された、もしくは定義された期間、または無期限もしくは未定義期間にわたって、仮想マシン、プロセス、または他のリソースをインスタンス化するために呼び出すことができる、ハードウェア、ソフトウェア、サービス、および/またはリソースの集合を備えることができる。遠隔ネットワーク302は、インターネットにアクセスするデバイスおよび/またはサーバを含む、複数のデバイス、システム、および/またはサーバと通信可能におよび/または操作可能に結合することができる。アクセスポイント304Aおよび304Bなどの1つ以上のアクセスポイントは、コンピュータ、モバイルデバイス、タブレット、スマートフォン、携帯電話、携帯情報端末、ファブレット、電子書籍リーダー、スマートウォッチ、セットトップボックス、インターネットストリーミングデバイス、ゲーム機、スマート家電、および/または、インターネットおよび/または任意のネットワークプロトコルにアクセスできる任意のデバイスを含むが、これらに限定されない、デバイス、システム、および/またはサーバであることができる。2つのアクセスポイントが例示されているが、所望に応じてより多くのまたはより少ないアクセスポイントがあり得る。
【0065】
本明細書で使用されているように、遠隔ネットワーク302は、操作することができる。遠隔ネットワーク302は、情報を受信、処理、および/または送信することができる、内蔵コンピュータを有することができる。これらのコンピュータは、自律的におよび/または人間のオペレータによる制御下で動作することができる。同様に、遠隔ネットワーク302は、遠隔ネットワーク302を操作するために同様に使用することができる、アクセスポイント(例えば、アクセスポイント304Aおよび304B)を有することができる。アクセスポイントは、情報を受信、処理、および/または送信することができる、コンピュータおよび/または人間のオペレータを有することができる。したがって、本明細書における遠隔ネットワーク302の動作への言及は、人間のオペレータおよび/またはコンピュータのオペレータに適用することができる。
【0066】
いくつかの実装形態では、ロボット200と実質的に同様の1つ以上のロボットは、遠隔ネットワーク302と通信可能におよび/または操作可能に結合することができる。例えば、ロボット200Aおよびロボット200Bは、通信ユニット222と実質的に同様の通信ユニットを使用して遠隔ネットワーク302と通信可能に結合されているように例示されている。ロボット200Aおよび200Bのそれぞれは、状態、コマンド、および動作データを遠隔ネットワーク302に通信することができる。遠隔ネットワーク302はまた、状態、コマンド、および/または動作データを、ロボット200Aおよび200Bのうちの1つ以上に格納し、および/または通信することができる。
【0067】
図3Bは、本開示のいくつかの実装形態による、ゲートウェイ306を介して遠隔ネットワーク302と通信可能におよび/または操作可能に結合されたロボット200Cを含むシステム350の機能ブロック図である。ロボット200Cは、ロボット200と実質的に同様のものとすることができる。いくつかの実装形態では、ロボット200Cは、インターネットおよび/または本開示に記載の任意の通信プロトコルを介して直接遠隔ネットワーク302と通信することができる。しかしながら、いくつかの実装形態では、ロボット200Cは、携帯電話塔、ルータ、サーバ、インターネットプロトコル(「IP」)ゲートウェイ、電話局、および/または通信をルーティングするための任意の他のハードウェアのような、中間スイッチおよび/またはゲートウェイを通じて、遠隔ネットワーク302と通信することができる。例示として、塔308は、携帯電話塔である。ロボット200Cは、セルラーデータを介して塔308と通信することができ、そしてそれは、ゲートウェイ306を介して遠隔ネットワーク302にデータを渡すことができる。
【0068】
いくつかの実装形態では、遠隔ネットワーク302は、メモリを含むことができる。メモリは、ROM、RAM、NVRAM、PROM、EEPROM、DRAM、モバイルDRAM、SDRAM、DDR/2 SDRAM、EDO RAM、FPM、RLDRAM、スタティックRAM SRAM、フラッシュメモリ(例えば、NAND/NOR)、メモリレジスタメモリ、PSRAMなどを含むが、これらに限定されない、デジタルデータを格納するように構成された任意の種類の集積回路または他の格納デバイスを含むことができる。メモリは、遠隔ネットワーク302のコントローラに命令およびデータを提供することができる。例えば、メモリは、リモートネットワーク302を操作させるために処理装置によって実行可能な、複数の命令が格納された非一時的なコンピュータ可読格納媒体であってもよい。場合によっては、命令は、処理装置によって実行されたときに、処理装置に本開示に記載の様々な方法、特色、および/または機能を行わせるように構成することができる。したがって、遠隔ネットワーク302のコントローラは、メモリ内に格納されているプログラム命令に基づいて論理および/または算術演算を実行することができる。
【0069】
遠隔ネットワーク302のコントローラは、遠隔ネットワーク302によって実行される様々な動作を制御することができる。コントローラは、1つ以上のプロセッサ(例えば、マイクロプロセッサ)および他の周辺機器を含むことができる。そのようなデジタルプロセッサは、単一の一体型集積回路ダイに含まれてもよく、または複数のコンポーネントにわたって分散されてもよい。
【0070】
いくつかの実装形態では、遠隔ネットワーク302は、検索可能なデータベースをメモリに格納することができる。遠隔ネットワーク302はまた、ロボット、例えばロボット200、ロボット200A、ロボット200B、ロボット200C、および/または任意の他のロボットの状態を示す状態情報をメモリに格納することができる。例えば、状態情報は、消費電力、任意のおよび/または各ロボット200のモジュールの使用法、ロボット200にどのような動作モジュールおよび/またはコンポーネントが存在するか、ロボット200の製造およびバージョン、および/またはロボット200のソフトウェア、ロボット200の場所(例えば、建物内のアドレスおよび/または場所)、ロボット200の動作モジュールおよび他のコンポーネントの履歴情報(例えば使用履歴)、動作モジュールおよびコンポーネントの健康状態(例えば、機能性、異常性、非機能性、修理の必要性など)、エラー診断、ソフトウェアのバージョンおよび更新、ロボット200(および/またはロボット200のユーザ)と遠隔ネットワークとの間の通信、センサデータ、通信、および/またはロボット200に関する任意の関連情報、を含むことができる。
【0071】
遠隔ネットワーク302は、ロボット200から状態更新を受信することができ、それを使用して格納された状態情報を更新することができる。この状態情報は、データベース、テーブル、フォーム、アレイ、マトリックス、および/または任意のデータ構造もしくは形式の、形式で格納することができる。場合によっては、ロボット200は、状態更新を遠隔ネットワーク302に送信することができる。そのような更新は、情報が更新されるロボット200において事象が発生したときに起こり得る。ロボット200はまた、毎秒、分、時、日、週、年、または望ましい任意の時間単位などの、定期的な更新を送信することもできる。遠隔ネットワーク302はまた、状態更新を受信するために、状態照会信号をロボット200に送信することができる。アクセスポイント304Aおよび304Bを使用している、あるいはロボット200におけるユーザなどのユーザもまた、少なくとも部分的にロボット200に対して、状態更新を遠隔ネットワーク302に送信させることができる。いくつかの実施形態では、アクセスポイント304Aおよび304B、および/またはロボット200は、遠隔ネットワーク302に格納されている情報にアクセスすることができ、それはユーザインターフェースで見ることができる。
【0072】
キャリブレーションプロトコルは、ロボット200(例えば、コントローラまたはユーザインターフェースによって)、遠隔ネットワーク302、1つ以上のアクセスポイント304Aおよび304B、および/または任意のユーザインターフェースによって開始することができる。キャリブレーションプロトコルは、ロボット200のセンサ、セキュリティデバイス、トランシーバ、トラッカ、カメラ、電力コントローラ、ユーザインターフェース、および/または任意の動作モジュールおよび/またはコンポーネントの読み取り値および/または出力を調整することを含むことができる。場合によっては、1つ以上の動作モジュールおよび/またはコンポーネントは、同じパラメータを読み取ることができる。例えば、温度計およびサーマルカメラは、温度を読み取ることができる。そのような場合、複数の動作モジュールおよび/またはコンポーネントによる測定値を比較することができる。例えば、現在の読み取り値および/またはメモリに格納された過去の読み取り値を比較して、何らかの違いがあるかどうかを確かめることができる。それらに相違がある場合、遠隔ネットワーク302、ロボット200、および/またはアクセスポイント304Aおよび/または304Bから、警告を送信することができる。動作モジュールおよび/またはコンポーネントは、既知の測定値(例えば、ユーザ/オペレータ、遠隔ネットワーク302、アクセスポイント304Aおよび/または304Bによって、および/またはロボット200によって保持される)を使用して再キャリブレーションすることができる。場合によっては、ユーザは、ロボット200のところに物理的に行って、既知の測定値をもたらし、かつ/またはキャリブレーションシーケンスを実行することができる。他の場合では、ロボット200は、制御シーケンスおよび/または制御測定値/ユニットの形式の既知の測定値をすでに有する。キャリブレーションシーケンスは、既知の測定値を測定すること、次いで、そのような読み取り値が既知の測定値と一致しない場合に既知の測定値を反映するように、1つ以上のセンサによる読み取り値を調整することを含むことができる。
【0073】
アクセスポイント(例えば、アクセスポイント304Aおよび304B)は、ブルートゥース(Bluetooth)、ジグビー(zigbee)、ワイファイ(Wi-Fi)、誘導無線データ送信、無線周波数、RFID、NFC、GSM、赤外線、および/または任意の他の形態の無線データ送信などの通信プロトコルを通じて遠隔ネットワーク302と通信することができる。アクセスポイントはまた、信号線および接地を含むケーブル(例えば、同軸ケーブル、USB、イーサネット(Ethernet)ケーブル、ファイヤワイヤ(firewire)、マイクロUSB、および/または当技術分野で知られている他のケーブル)などの有線接続を通じて遠隔ネットワーク302と通信することができる。アクセスポイントは、本開示に記載されている任意の情報またはコマンドを受信および/または送信することができる。有利には、アクセスポイントに遠隔ネットワーク302と直接通信させることは、アクセスポイントがネットワークなしで通信することを可能にすることができる。しかしながら、場合によっては、アクセスポイントは、携帯電話塔、ルータ、サーバ、IPゲートウェイ、電話局、および/またはルーティング通信用の他のハードウェアなどの中間スイッチおよび/またはゲートウェイを介して通信することができる。例えば、そのような中間スイッチおよび/またはゲートウェイは、塔308および/またはゲートウェイ306と実質的に同様であり得る。
【0074】
場合によっては、遠隔ネットワーク302は、ユーザインターフェースユニットを有することができる。ユーザインターフェースユニットは、ユーザによる評価のために情報を表示することができる。そのような情報は、データ、状態、通信、前述に基づく結論、および/または所望の他の任意の情報を含むことができる。ユーザインターフェースユニットは、タッチパネル、ボタン、キーパッド/キーボード、ポート(例えば、汎用シリアルバス(USB)、デジタルビジュアルインターフェース(DVI)、ディスプレイポート、イーサーター(E-Sata)、ファイヤワイヤ(Firewire)、ピーエス2(PS/2)、シリアル(Serial)、ブイジーエイ(VGA)、スカジー(SCSI)、オーディオポート、高品位マルチメディアインターフェース(HDMI)、パーソナルコンピュータメモリカード国際協会(PCMCIA)ポート、メモリカードポート(例えば、セキュアデジタル(SDおよびミニSD)、および/またはコンピュータ読取可能媒体用のポート)、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および/または、ワイヤレスでまたはワイヤを通じて結合されているかどうかにかかわらず、ユーザがデータおよび/またはコマンドを入力および/または受信するための任意のインターフェース、を含むことができる。ユーザインターフェースユニットは、限定することなく、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、LED・LCDディスプレイ、面内スイッチングIPSディスプレイ、陰極線管、プラズマディスプレイ、高精細(HD)パネル、4Kディスプレイ、網膜ディスプレイ、有機LEDディスプレイ、タッチスクリーン、表面、キャンバス、ならびに/または視覚的表現のための当該技術分野で既知の任意のディスプレイ、テレビ、モニタ、パネル、および/もしくはデバイス、などのディスプレイを含むことができる。いくつかの実装形態では、ユーザインターフェースユニットは、遠隔ネットワーク302のコンピュータのハードウェア上の画面など、遠隔ネットワーク内に位置付けすることができる。いくつかの実装形態において、ユーザインターフェースユニットは、遠隔ネットワーク302と(例えば、送信機、受信機、および/またはトランシーバを含む通信ユニットを介して)直接的にまたは間接的に(ネットワーク、サーバ、および/またはクラウドを通じて)通信可能に結合することができる。例えば、ユーザインターフェースユニットは、アクセスポイント(例えば、アクセスポイント304Aおよび/または304B)上にあり得る。本明細書で使用されるとき、遠隔ネットワーク302のユーザオペレータは、遠隔ネットワーク302を操作するためにユーザインターフェースユニットを利用することができる。
【0075】
いくつかの実装形態では、ロボットは、ロボットに関連付けられたトランシーバによって使用される伝送プロトコルを通じて互いに通信することができる。そのような通信は、複数のロボットが協調することを可能にし得る。そのような通信は、ネットワーク(例えば、遠隔ネットワーク302)および/またはピアツーピアを介してもよい。これらの通信は、ロボットが互いに協調することを可能にし得る(例えば、タスクの異なる部分をカバーすること、および/または衝突/干渉を回避すること)。
【0076】
人が複数のロボットを有するいくつかの実装形態では、遠隔ネットワーク302は、それらのロボットのうちの1つ以上を調整することができる。有利には、人は、一緒に、別々に、グループで、および/または所望の任意の区分で、ロボットを見、監視し、および/または制御することができる。場合によっては、遠隔ネットワーク302は、見ること、監視、および/または操作のために、各ロボットを別々にユーザに提示することができる。いくつかの実装形態では、遠隔ネットワーク302は、複数のロボットを単一のユニットとして提示し、それらが協調して挙動するようにロボットの活動を調整することができる。
【0077】
図4は、本開示のいくつかの実装形態による、ロボット200と遠隔ネットワーク302との間を行き来することができる信号を例示する信号表である。例えば、信号404Aは、ロボット200が遠隔ネットワーク302と通信することを許可されていることを確認するために使用することができる認証信号とすることができる。信号404Aは、ロボット200と遠隔ネットワーク302との間のハンドシェイク手順などの認証手順を初期化することができ、遠隔ネットワーク302は信号404Bを送信し、これは認証信号でもあり得る。いくつかの実装形態では、信号404Aおよび404Bは、ソフトウェアバージョン、一意のID、ハードウェアバージョン、および/またはロボット200に関する他の情報などの識別情報を含むことができる。信号404Aおよび404Bはまた、タイミング情報、暗号化キー、公開/秘密キー、認証情報、広告パラメータ、アドレス、製造/モデル、名称、アクセスプロファイル、および/またはペアリングのための任意の他の関連情報などのペアリング情報を含み得る。
【0078】
信号406Aは、ロボット200から遠隔ネットワーク302に送信された通信信号を含むことができる。信号406Aは、コマンド、質問、要求、制御信号、状態、警告、データ/情報、マップなどを含むことができる。例示として、コマンドは、接続、起動、情報のプッシュ/プル、コマンドの発行、認証などのアクションを実行するようにリモートネットワーク302に指示するリモートネットワーク302へのコマンドを含むことができる。別の例示として、質問および要求は、リモートネットワーク302に関する情報(状態情報など)、他のロボットに関する情報、更新、推定時間(例えば、情報の配信、支援、空き時間など)、およびロボット200によって所望される他の情報など、リモートネットワーク302からの情報に対する要求を含むことができる。別の例示として、ロボット200は、遠隔アクセスおよび/または遠隔ネットワーク302の管理を含む制御信号を送信することができる。
【0079】
別の例示として、ロボット200は、環境内を移動するときに状態情報を送信することができる。そのような状態情報は、ロボット200が電源オン/オフされていること、運転中であること、停止されていること、支援を所望していること、エラーがあること、および/またはロボット200が存在し得る状態を含み得る。別の例示として、警告は、標準的な通信よりも重要なロボット200に関する情報を含むことができる。例えば、警告は、少なくとも部分的には、ロボット200が支援、保守、点検、更新、修理などを所望するというメッセージを含むことができる。遠隔ネットワーク302は、要求された情報および他のコマンド、質問、要求、制御信号、状態、警告、データ/情報、マップなどを含むことができる信号406Bを伴う信号406Aに応答することができる。
【0080】
同様に、信号408Aは、遠隔ネットワーク302からロボット200に送信された通信信号を含むことができる。信号408Aは、コマンド、質問、要求、制御信号、状態、警告、データ/情報、マップなどを含むことができる。例示として、コマンドは、移動すること(例えば、前進、左、右、後、上、下、および/または上記の任意の組み合わせ)、状態をプッシュ/プルすることを要求すること、データをプッシュ/プルすることを要求すること、リモートネットワーク302へ/から情報を送信すること、停止すること、などのタスクを実行するようロボット200に指示することを含むことができる。ロボット200は、要求された情報および/または他のコマンド、質問、要求、制御信号、状態、警告、データ/情報、マップなどを含むことができる、信号408Bを伴う信号408Aに応答することができる。
【0081】
信号410Aは、ロボット200によって生成されたおよび/またはロボット200に格納されたマップ関連データを含むことができる。信号410Aは、ロボット200から遠隔ネットワーク302へ送信することができる。いくつかの実装形態では、マップ関連データは、ロボット200が環境内を移動したときにロボット200によって作成された実際のマップを含むことができる。いくつかの実装形態では、マップは、ルートを含むことができる。ルートは、マップと同時に作成することも、別々に作成することもできる。いくつかの実装形態では、マップ関連データは、実際のマップではなく、むしろセンサデータ、グラフ、バブル(bubbles)、姿勢、確率、および/またはマップを構築するために使用され得るおよび/またはマップに関連する他のデータを含み得る。
【0082】
例示として、図5Aは、本開示のいくつかの実装形態による、ロボット200が環境内を移動するときにロボット200によって生成される上面マップ500およびルート522である。いくつかの実装形態では、マップ500の生成は、マッピングおよび位置特定ユニット224によって実行され得る。マップ500は、ピクセルを含むことができ、各ピクセルは環境のマップされた領域に対応する。マップ500内のピクセル数は、マップ500の解像度に基づいて決定することができる。マップ500は、環境とレイアウトが実質的に類似していてもよく、マップ500内の各ピクセルは環境における場所に近似することができる。各ピクセルは領域を表すことができ、その領域は均一でも不均一でもよい。例えば、ピクセルは、1つの面積ユニット、n×mまたはn×n面積ユニット(ここで、nおよびmは数を表す)、または不均一な面積ユニットを表すことができる。
【0083】
マッピングは、センサユニット212のセンサによって少なくとも部分的に取得されたデータを、環境の少なくとも一部を表す二次元(「2D」)、三次元(「3D」)、および/または四次元(「4D」)のマップに組み入れることによって実行することができる。例えば、マップ500は、ロボット200によって検出された障害物および/または物体を少なくとも部分的に表す描写を含むことができる。マップ500はまた、ユーザの制御下にある間にロボット200が学習したルートなどの実証されたルートを記録することができる。例えば、マッピングされたルート522は、初期化場所、終了場所、および/または他の任意の場所(例えば、場所、変位、および向きのうちの1つ以上を含む)などの、基準に対するロボット200の相対位置、向き、および/または姿勢に少なくとも部分的に基づく座標(例えば、2Dマップのxとy、または3Dマップのx、y、z)を含むことができる。例えば、姿勢は、(x、y、シータ)座標を持つことができる。本明細書で使用されているように、位置という用語は、その通常の慣習的な意味を有する。例えば、場合によっては、位置は、物体、ロボット200などの変位、座標などに関する場所を含むことができる。場合によっては、位置は、物体、ロボット200などの向きも含むことができる。したがって、場合によっては、位置および姿勢という用語は、場所、変位、および向きのうちの1つ以上を含むように交換可能に使用することができる。デモンストレーションプロセスを通じて作成されたマップ500は、ロボット200が1つ以上のデモンストレーション/トレーニングにおいて感知した環境の一部および/または実質的に全体の環境を記録することができる。このため、マップ500をグローバルマップと呼ぶ人もいる。場合によっては、マップ500は、デモンストレーション/トレーニングの後にマップ500が実質的に更新されないことがあるという点で静的であり得る。いくつかの実装形態では、マップ500およびマッピングされたルート522はまた、(例えば、ユーザがコンピュータおよび/または遠隔ネットワーク302を使用して)別々に生成され、ロボット200にアップロードされることもできる。
【0084】
いくつかの実装形態では、マップ500のユニット(ピクセル、ボクセル、および/または任意の他のユニット)は、1つ以上の状態を有することができ、状態はそのユニットによって表される環境における位置/場所の特性の少なくとも一部を示すことができる。例えば、マップ500のユニットは、二値であり得、第1のユニット状態(例えば、ピクセル値)は、少なくとも部分的にはっきりした(例えば、ナビゲート可能な)場所を示すことができ、第2のユニット状態は、少なくとも部分的にブロックされた場所(例えば、ナビゲーション可能ではない)を示すことができる。例示として、ゼロ(0)のユニット値は、少なくとも部分的にはっきりした場所を示すことができ、かつ、(1)のユニット値は、少なくとも部分的にブロックされた場所を示すことができる。
【0085】
いくつかの実装形態では、前述の二値状態の代わりにまたはそれに加えて、マップ500のユニットは、未知の場所(例えば、情報のない位置/場所)の少なくとも一部を示すユニット状態、移動すべきではない位置/場所の少なくとも一部を示すユニット状態、ナビゲーション可能なルートの一部であることを少なくとも部分的に示すユニット状態、ロボット200が走行した領域の少なくとも一部を示すユニット状態、ロボット200が走行していない領域の少なくとも一部を示すユニット状態、物体の少なくとも一部を示すユニット状態、少なくとも部分的に静止水を示すユニット状態、および/またはマップ500上の位置/場所の他の分類、などのうち1つ以上の他のユニット状態を有することができる。いくつかの実装形態では、ユニットの状態、および/またはユニットに関連付けられたデータは、床掃除用のブラシの可動、ゴム雑巾の移動(例えば、上、下、左、右、前、後への移動)、水のオン/オフ、水の噴霧、真空のオン/オフ、真空ホース位置の移動、腕の振り回し、リフトの上げ下げ、カメラおよび/またはセンサユニット212の任意のセンサの回転、および/またはロボット200による他の任意の動作、のような、動作および/または動作固有のタスクの少なくとも一部を示すことができる。
【0086】
マップ500のユニットはまた、単一の値またはユニット状態よりも多くを格納することができる。例えば、マップ500の各ユニットは、ベクトルおよび/またはマトリックスに格納された値などの複数の値を格納することができる。これらの値は、位置がルート522に沿った点(例えば、ピクセル、ボクセルなどのユニット)で測定されたときのロボット200の位置/姿勢(例えば、場所および/または向きを含む)の少なくとも一部を示す値を含み得る。これらの値はまた、ロボット200が位置/場所、および/またはロボット200によって実行され得る他の行動/行動特有のタスクを掃除することができるかどうかを含むことができる。
【0087】
ロボット200は、ルート522としてマップ500に反映され得るルートに沿って移動することができる。各場所でロボット200がルートに沿って移動すると、ロボット200は、場合によっては初期化場所(例えば、初期化場所222)、物体(例えば、ホームロケータおよび/または初期化した物体)、および/または別の基準点に対するその位置および/または向きを決定することができる。これらのマッピングおよび位置特定機能は、マッピングおよび位置特定ユニット224によって実行することができる。
【0088】
例えば、ロボット200は、走行距離測定を使用して初期化場所(または別の基準点)からの距離を測定または概算することができ、ロボット200は、初期化場所で開始してからのロボット200の動きを追跡するためにセンサユニット212(例えば、ホイールエンコーダ(例えば、ロータリーエンコーダ)、視覚的走行距離測定、慣性測定ユニット(「IMU」)(加速度計、磁力計、角速度センサを含む)など)の固有受容センサを使用できる。例示的な実施例として、1つ以上の固有受容センサは、少なくとも部分的にロボット200の車輪の回転に基づいて、距離を測定および/または推定する車輪エンコーダであり得る。別の例示的な実施例として、視覚的走行距離計を使用して、カメラによって撮影された連続的な画像を通して、ロボット200の移動距離および/または向きを測定または推定することができる。視覚的走行距離計は、(例えば、Lucas-Kanade法または他の方法を使用して)オプティカルフローフィールドを構築し、および/またはKalmanフィルタまたは投影を使用することなどによってカメラの動きを推定することができる。別の非限定的な実施例として、IMUは、ロボット200の位置および/または向きを測定および/または推定するために使用することができる。
【0089】
ルートの一部である各場所は、マップ500内のルート522上のユニット(例えば、ピクセル、ボクセルなど)に対応することができ、ルート522のユニット状態は、そのユニットがナビゲート可能なルートの一部であることを示す。ロボット200が移動すると、ロボット200はまた、1つ以上のセンサユニット212を使用して、物体に対するロボット200の位置および/または向きを測定することができる。これらの測定は、ノードとして表される離散的な時間および/または場所で行うことができる。ロボット200はまた、その環境を検出するためにセンサユニット212の1つ以上のセンサを使用してスキャンを行うことができる。このようにして、ロボット200は、棚または壁などの物体に対するロボット200の位置および/または向きを検出および/または測定することができる。
【0090】
ロボット200が物体を検出する場合、ロボット200は、センサユニット212のセンサを使用して、ロボット200に対する複数の方向におけるそれらの物体の位置および/または向きを検出および/または測定することができる。同時に、ロボット200は、センサユニット212を使用してロボット200の位置および/または向きを推定することができる。ロボット200が環境内を移動するにつれて、異なる物体がセンサユニット212のセンサの範囲内に入る可能性がある。例えば、センサは、ロボット200の前面に位置付けすることができ、かつ既定の範囲を有することができる。例えば、ロボット200は、前方の既定の範囲までの物体を検出することができる。同様に、他のセンサはそれぞれ範囲を有し、それらの範囲内の物体を検出することができる。これらのセンサは、前面、背面、左側面、右側面、側面面、底面面、上面面、および/またはこれらの任意の組み合わせに位置付けすることができる。
【0091】
場合によっては、センサユニット212は特定の領域を感知しないことがある。例えば、物体は、ある領域を感知するためのロボット200の利用可能性を妨げる可能性があり、あるいはその領域は死角(例えば、センサの測定範囲によってカバーされない場所)に現れる可能性がある。
【0092】
例示されるように、ルート522は、通路間の経路を通る水平方向に例示されるトラバースを含む、通路のトラバースおよび他の動きを含む。マップ500に例示されるように、ロボット200は、通路をトラバースしている間に床を掃除し、通路の床上を複数回運転することができる。
【0093】
場合によっては、マップ500は、真の現実を表す完全で正確なマップであり得る。しかしながら、単にセンサユニット212によって収集されたデータをマップ上にプロットすることによって、地上調査と実質的に同様のマップを作成することは簡単ではない。センサユニット212のセンサは、ノイズ、測定ドリフトなどを有する可能性がある。その結果、センサユニット212のセンサは、環境における特色を必ずしも明確に識別するとは限らない。センサユニット212のセンサはまた、ロボット200の位置および/または姿勢を常に明白に識別するわけではない。
【0094】
センサユニット212による識別は、明白ではないかもしれないので、ロボット200はその位置および/または環境の特色の位置を確率的に決定することができる。マッピング中にロボット200が環境を通って移動すると、ロボット200はセンサユニット212からのセンサデータを記録することができる。いくつかの実装形態では、ロボット200は、環境を通って移動する一方で、内部ロボットコマンド(例えば、前進、左、右、後退、回転など)を記録することもできる。センサユニット212からのセンサデータはまた、相対位置を決定するために、スキャンマッチングなどを通じてそれ自体または他のデータと比較され得る。その結果、いくつかの実装形態では、ロボット200は(例えば、マッピングおよび位置特定ユニット224を使用して)、少なくともセンサデータ、スキャンマッチング、および内部ロボットコマンドを与えられたマップの事後確率分布関数を構築できる。他の要因も考えられる。
【0095】
測定値のあいまいさのために、ロボット200は、修正されなければ、ロボット200の周囲および/または移動ルートを反映しないマップを生成することができる。例えば、図5Bは、本開示のいくつかの原理による、ロボット200の周囲および移動ルートを正確には反映していないマップ550である。ノイズ、センサドリフト、および/または他の要因のために、マップ550は歪んで見える。その結果、ルート552は、いたるところを通るように見える。ルート552周辺のマッピングされた環境は、地面の真実を反映していない特色を伴って、それ自体に広がるおよび/または重なり合うように見える。比較すると、マップ550は、マップ500に修正することができ、マップ550は、実際にはマップ500と同じ環境およびルートのマップであり、しかしながら、マップ550は歪んでおり、マップ500は現実をより正確に反映している。観察され得るように(そしてマップ500に例示されるように)、環境は、実際にはマップ550に示される特色ではなく一連の通路を含む。
【0096】
図4に戻ると、遠隔ネットワーク302は、マップ関連データに対してエラー訂正を実行することもできる。いくつかの実装形態では、マップ関連データは、格納および分析のために遠隔ネットワーク302に送信することができる。例えば、遠隔ネットワーク302は、グラフを最適化し、ロボット200が移動した環境をよりよく反映するマップを構築することができる。そのようなエラー訂正は、遠隔ネットワーク302のコンピュータによって実行することができる。場合によっては、コンピュータでエラーを訂正できない場合、人がマップ関連のデータを表示して手動で修正することができる。例示として、ロボット200は、マップ550を生成する、および/またはマップ550であるマップ関連データを遠隔ネットワーク302に送信することができる。次いで、遠隔ネットワーク302は、マップ修正のためのシステムおよび方法を実行し、マップ500を生成および/または戻すことができる。
【0097】
遠隔ネットワーク302によって(例えば、遠隔ネットワーク302のマップ処理ユニットによって)実施されるマップ修正のためのシステムおよび方法の例示として、場合によっては、マップ関連データは、完成したマップではなく、むしろマップを作成するためのデータおよび/または情報を含むことができる。例えば、ロボット200が移動するときに環境のスキャンをとることができる。これらのスキャンは、例えば、LIDARおよび/またはセンサユニット212の任意のセンサによって行われ得る。別の実施例として、マップ関連データは、ロボット200によって行われた測定値の少なくとも一部を示すノードを含むグラフなどのグラフを含むことができる。グラフは、最適化することも(例えば、ノードの位置決めにおける潜在的な誤差が実質的に最小になるようにノードが位置決めされるように構成されている)、最適化しないことも(例えば、それらの位置決めにおける潜在的なエラーが実質的に最小化されるようにノードを位置決めするための動作を実行することなく)できる。前述のように、マップ関連データは、エラーを含む可能性がある。例えば、マップ関連データは、測定誤差および/またはその構造における他の不正確さのために位置ずれしたマップを含むことができる。同様に、他のマップ関連データも誤っている可能性がある。遠隔ネットワーク302は、信号410Aを受信してマップ関連データを格納することができる。遠隔ネットワーク302はまた、信号410Aで受信したマップ関連データを処理することができる。例えば、遠隔ネットワーク302は、同時位置確認およびマッピング(「SLAM」)、拡張現実、スケール不変特色変換(「SIFT」)、ならびに/または当技術分野で知られている他の任意のマッピングシステムおよび方法を使用することなどによってデータからマップを生成することができる。
【0098】
いくつかの実装形態では、遠隔ネットワーク302は、センサユニット212の複数のセンサからのデータを比較することに少なくとも部分的に基づいてデータの訂正を実行することができる。例えば、ロボット200は、環境の特色および/またはロボット200の走行距離を検出する複数のセンサを有することができる。場合によっては、センサユニット212のセンサ間の不一致は、少なくとも部分的にエラーを示している可能性がある。特定のセンサが他のセンサよりも信頼性が高いと判断される場合がある場合には、そのセンサを少なくとも部分的に使用して他のセンサのデータを訂正することができる。場合によっては、複数のセンサを使用してセンサデータを訂正するために、複数の測定、再帰的エラー訂正、および/または他の既知のアルゴリズムを用いて、複数のセンサをスパース(sparse)エラー訂正で使用することができる。
【0099】
いくつかの実装形態では、遠隔ネットワーク302は、環境のマップ(例えば、ロボット200によって送信されたおよび/またはユーザによってアップロードされたマップ)を受信することができる。次に、遠隔ネットワーク302は、環境上のルートを決定することができる。例えば、コンピュータおよび/またはユーザは、遠隔ネットワーク302によって受信された環境のマップ上にルートを描くことができる。コンピュータは、様々な技術を用いてルートを描くことができる。例えば、コンピュータは、塗りつぶしを使用することができ、コンピュータは、ロボットが移動することができる空き領域(例えば、遮られていない領域)が移動されるべきであると想定する。例えば、ロボット200が床掃除機である場合、ロボット200ができるだけ多くの床を掃除することが望ましいと仮定することができる。場合によっては、塗りつぶしは、特定のスペースおよび/またはマップの一部に向けることができる。別の実施例として、コンピュータは、ロボット200がタスクを完了するための移動を実質的に最小化および/または減少させる最適ルートを計算することができる。例えば、ロボット200が第1の地点から第2の地点まで移動することが所望される場合、コンピュータは、移動距離を実質的に最小化すること、使用される電池エネルギーおよび/または他の消耗品を実質的に最小限に抑えること、(例えば、物体を回避するなど)望まれる可能性がある物体および潜在的な支援の数を実質的に最小限に抑えること、第1の地点から第2の地点へ移動する時間および/または資源に影響を及ぼし得る他の考慮事項、のうちの1つ以上に基づいて経路を決定することができる。
【0100】
遠隔ネットワーク302はまた、コンピュータおよび/またはユーザを使用して、マップのユニット状態(例えば、ピクセル状態、ボクセル状態など)を追加、変更、および/または変更することができる。例えば、遠隔ネットワーク302(例えば、遠隔ネットワーク302を操作する人間および/またはコンピュータ)は、マップ内の1つ以上のユニットにユニット状態を割り当てることができ、それによって、ロボット200がマップに従ってナビゲートするときのロボット200の挙動を変える(および/または定義する)。有利なことに、これにより、ロボット200の挙動を所望に応じて変えることができる。例えば、遠隔ネットワーク302のコンピュータは、ロボット200がマップの特定の領域に入ったときにロボット200が動けなくなったと判断することができる。遠隔ネットワーク302は、ロボット200のナビゲーションの過去の出来事(例えば、ロボット200が動けなくなった過去の出来事)に少なくとも部分的に基づいて、および/またはある領域の測定に少なくとも部分的に基づいて、この決定を行うことができる。したがって、遠隔ネットワーク302のコンピュータおよび/または人間のオペレータは、ロボット200が領域に入らないようにマップのユニット状態を変更することができる。別の実施例として、遠隔ネットワーク302のコンピュータおよび/または人間のオペレータは、ロボット200の挙動を変更および/または修正することを決定することができる。例示として、ロボット200が床掃除機である場合、ロボット200の所望の掃除領域は変わり得る。例えば、ロボット200は、同じルートに沿っても、ある日はある領域を掃除することができ、ある日は別の領域を掃除することができる。すべての領域の掃除は、時間がかかり過ぎおよび/またはリソースが多過ぎる可能性がある。したがって、遠隔ネットワーク302のコンピュータおよび/または人間のオペレータは、掃除することが所望される所望の領域を掃除し、他の領域は掃除しないように、掃除したい所望の領域と相関するようにマップのユニット状態を変更することができる。
【0101】
いくつかの実装形態では、遠隔ネットワーク302は、マップ関連データのライブラリを格納することができる。いくつかの実装形態では、このライブラリは、ロボット200、他のロボットによって収集され、および/または任意のデバイスによって遠隔ネットワーク302(例えば、アクセスポイントおよび/または他のデバイス)にアップロードされた様々なマップ関連データを含むことができる。場合によっては、ライブラリ内のマップ関連データは、様々な環境からのものである可能性がある。場合によっては、ライブラリ内のマップ関連データは、様々な条件下で取得することができる。例えば、マップ関連データは、異なる照明条件、角度、大きさ、距離、明瞭度(例えば、ぼやけている、妨げられている/隠されている、部分的にフレームから外れているなど)、色、周囲などで取得することができる。ライブラリ内のマップ関連データは、センサ(例えば、センサユニット212のセンサ)によって取得され、および/または(例えば、仮想世界において)ライブラリを生成/シミュレートするように構成されたコンピュータプログラムなどによって自動的に生成することができる。様々な照明条件、角度、サイズ、距離、明瞭度(例えば、ぼやけている、遮られている、隠れている、部分的にフレームから外れているなど)、色、周囲環境などから関連データをマッピングする。ライブラリはまた、エラーを説明するための変更および/または訂正など、マップ関連データに対してユーザおよび/またはコンピュータによって行われた変更および/または訂正を格納することもできる。さらに、ライブラリは、変更が行われた事態、および誤っていると見なされた事態を記録することができる。このようにして、ライブラリは、遠隔ネットワーク302および/またはロボット200がマッピングを改善するために、機械学習と共に使用することができる。
【0102】
例えば、既知の機械学習方法は、遠隔ネットワーク302上で(例えば、遠隔ネットワーク302のコントローラおよび/またはコンピュータ上で)実行することができる。機械学習方法は、人間のオペレータおよび/またはコンピュータがデータに変更を加えた事態を相関させることができる。場合によっては、機械学習方法は、それらの変更をエラーの訂正と見なし、実質的に同様のエラー(および/または事象)が発生したときに同様の訂正を行うことができる。
【0103】
その結果、遠隔ネットワーク302は、信号410Bをロボット200に送信することができる。信号410Bは、1つ以上のマップを含むことができる。マップは、ロボット200が移動することができる環境および/またはルートのマップを含むことができる。場合によっては、マップは、ユーザおよび/またはコンピュータによる追加(例えば、ユニットの変更(例えば、ピクセル、ボクセルなどの状態の変更)、ルート、修正など)を含むことができる。そしてロボット200は、これらのマップを用いてナビゲートすることができる。
【0104】
ロボット200は、センサデータを含むことができる、信号412Aを送信することができる。センサデータは、センサユニット212の1つ以上のセンサによって取得された任意のデータを含むことができる。そのようなセンサデータは、環境をナビゲートしたときに、ロボット200によって収集されたおよび/またはロボット200によって格納されたデータを含むことができる。そのようなセンサデータは、少なくとも部分的に、マップおよび/または環境のルートを生成する際に使用することができるマップ関連データを含むことができる。
【0105】
いくつかの実装形態では、信号412Aおよび/または信号412Bは、図3Bを参照して説明したキャリブレーションのためのシステムおよび方法などのキャリブレーションに使用することができる。例えば、信号412Aは、測定値、構成、および/またはセンサユニット212の1つ以上のセンサからの任意のデータを含むことができる。遠隔ネットワーク302は、信号412Aを受信し、かつキャリブレーションの調整を決定することができる。信号412Bは、センサを再キャリブレーションするための命令を含むことができる。場合によっては、信号412Bは、センサユニット212の1つ以上のセンサを再キャリブレーションするように、ロボット200に指示するリセット信号および/または再キャリブレーション信号とすることができる。
【0106】
場合によっては、センサデータは、場所固有のものとすることができ、センサデータはマップ上の特定の場所に関連付けられる。いくつかの実装形態では、センサデータは、ロボット200が環境をナビゲートするときに、ロボット200の座標および/または相対位置(例えば姿勢)と共にロボット200によって送信することができる。有利なことに、遠隔ネットワーク302は、センサデータが送信されているときに、ロボット200の場所を知ることができる。
【0107】
他の実施例として、センサデータは時間固有であり得る。例示として、ロボット200は、関心対象の事象を有することができる。そのような関心対象の事象は、実施例として、停止、衝突、近衝突、異常、失敗、エラー、および/またはロボット200のオペレータによって探索されることが所望される任意の事象を含むことができる。例えば、オペレータは、ロボット200による衝突およびそれらを引き起こした原因に関心がある可能性がある。オペレータは、ロボット200の任意の部分によるシステム障害および/またはエラー、ならびにそれがなぜ起こったのかに関心がある可能性がある。オペレータは、ロボット200が特定のシナリオでどのように挙動するかに関心があり得る。
【0108】
センサデータは、既定の関心対象の事象の発生に基づいて、タイムスタンプおよび/またはインデックス付けすることができる。有利には、ロボット200は、特定の時間および/または指標に関するセンサデータを遠隔ネットワーク302に送信することができる。そのような特定の時間および/または指標は、ロボット200によって(例えば、ロボット200および/またはロボット200のオペレータによって)および/または遠隔ネットワーク302(例えばコンピュータおよび/またはオペレータ)によって選択することができる。例えば、遠隔ネットワーク302は、センサデータ412Aとしてセンサデータを送信するように信号408Aで要求を送信することができる。
【0109】
場合によっては、特定の時間および/または指標は、関心対象の事象の周囲のウィンドウ内にセンサデータを含むことができる。ウィンドウのそのようなサイズ(例えば、時間)は、(例えば、パラメータとして)事前設定することができ、および/または要求に基づいて(例えば、オペレータおよび/または遠隔ネットワーク302によって)決定することができる。このセンサデータは、関心対象の事象におけるロボット200の状態および/または環境に関する診断および分析を可能にすることができる。例えば、センサユニット212のカメラは、事象の周囲のウィンドウ内で画像を撮ることができる。次に、関心対象の事象の前に、ロボット200の周囲の特性を決定するために画像をレビューすることができる。同様に、固有受容センサおよび/または外部受容センサを含むセンサユニット212の他のセンサは、関心対象の事象を取り巻く追加の状況を提供することができる。
【0110】
例示として、図6は、本開示のいくつかの実装形態による、ウィンドウにおいて取り込まれたセンサデータのタイミング図600である。タイムライン608は、少なくとも時間の一部を示すことができる。場合によっては、タイムライン608は、現地時間および/または世界時間に基づくなど、少なくとも部分的に時間を表すことができる。場合によっては、タイムライン608は少なくとも部分的に相対時間を表すことができる。場合によっては、タイムライン608は、ミリ秒、秒、分、時間、および/または任意の標準的な単位で単位を有することができる。場合によっては、タイムライン608は、標準単位を持たない既定の時間間隔内の単位を有することができる。いくつかの場合では、時間間隔は均一(例えば、実質的に同じ)であり得るが、いくつかの場合では、時間間隔は均一ではない(例えば、実質的に同じではない)。いくつかの場合において、システムは、同期システムにおけるように、少なくとも部分的にタイムライン608に基づいて動作し得る。しかしながら、場合によっては、システムは、非同期システムの場合のように、少なくとも部分的にタイムライン608に基づいて動作しないかもしれない。
【0111】
時間614は、関心対象の事象の時間teを表すことができる。線602は、ロボット200の第1のセンサ(例えばセンサユニット212のセンサ)によって収集されたデータを示すことができる。例示のように、線602は、少なくとも部分的に連続信号および/またはアナログ信号を表す。
【0112】
線604は、ロボット200の第2のセンサ(例えば、センサユニット212のセンサ)によって収集されたデータを示すことができる。例示のように、線604は、離散化信号および/またはデジタル信号の少なくとも一部を表している。場合によっては、線604は、定期的におよび/または所望に応じて測定値を取得するセンサ(例えば、関心対象の事象の場合にデータを取得するように構成されたセンサユニット212のセンサ)を示すことができる。例示として、センサユニット212のセンサは、加速度計と通信可能におよび/または操作可能に結合することができ、それは閾値を超える加速度の変化がある場合にそのセンサにデータを収集させる。線604は、波形610Aおよび610Bを例示する。波形610Aおよび610Bのそれぞれは、第2のセンサによるデータの収集の少なくとも一部を示すことができる。
【0113】
第1のセンサおよび第2のセンサ、ならびに対応する線602および604は例示的なセンサの例示である。センサユニット212を参照して記載したように、ロボット200の複数のセンサがあってもよく、それらのそれぞれは、状況を判断するのに関連するおよび/または所望されるデータを収集することができる。したがって、データを収集する任意の数のセンサがあり得、そのうちの少なくともいくつかはそれ自身のデータラインを有する。
【0114】
関心対象の事象を囲むウィンドウは、関心対象の事象の時間(例えば、時間614)の前後のセンサデータを提供することができる。例えば、時間612Aは、第1の時間であり得る。時間612Aは、ウィンドウを開くことができる。時間612Bは、ウィンドウの終わりであり得る。時間612Aと時間612Bとの間の時間ウィンドウ内にとられたセンサユニット212の1つ以上のセンサによって収集されたデータは、次に信号412Aとして送信することができ、関心対象の事象に対する状況を潜在的に提供する。
【0115】
例示のように、時間612Aは、波形610Aの前に現れ、時間612Bは、610Bの後に現れる。しかしながら、これは必ずしもそうとは限らない。例えば、いくつかの実装形態では、ウィンドウは、事前定義することができる。例えば、時間612Bと時間614(および/または時間612Bと時間612A)との間の時間は、既定の時間量であり得る。同様に、時間612Aと時間614(および/または時間612Aと時間612Bの間)との間の時間は、既定され得る。いくつかの実装形態では、これらの既定の時間量は、データ収集とは無関係であり得、事象(例えば、センサデータの取得)によって駆動されるのではなくタイミングに少なくとも部分的に基づいてウィンドウを決定する。既定の時間は、少なくとも部分的に、関心対象の事象が発生するのに予想される時間、状況を与えると予想される予想時間、状況を与えるのに効果的な経験的に測定された時間、および/または関心対象の事象に状況を与えることを可能にするであろう他の任意の有用な時間量、のうちの1つ以上に基づくことができる。有利なことに、既定の時間を有することは、計算を単純化し、かつデータ転送の速度を増加させることができる。多くの場合、情報がほとんど、あるいはまったくない事態の分析を進めることは困難である可能性があるため、すべての状況を収集する場合と収集しない場合がある。その後、追加のデータは、所望に応じて収集することができる。
【0116】
しかしながら、いくつかの実装形態では、(a)時間612Bと時間614との間、および(b)時間612Aと時間614との間の時間は、動的であり得る。例えば、時間612Aおよび/または612Bは、センサデータの取得などの出来事(例えば、事象)に合図することができる。例えば、時間612Aは、波形612Aの立ち上がりエッジなどの測定値に合図することができる。同様に、時間612Bは、センサデータの取得などの出来事(例えば、事象)に合図することができる。例えば、時間612Bは、波形610Bの立ち下がりエッジなどの測定値に合図することができる。
【0117】
場合によっては、センサユニット212のセンサを使用して、時間612Aおよび/または時間612Bに合図することもできる(これは、時間614での関心対象の事象の発生の少なくとも一部を示すこともできる)。例えば、時間612Aおよび/または612Bは、少なくとも部分的に方向および/または速度の変化を示すことができる加速度計によって合図され得る。有利には、そのような変化は、オペレータが関心を持っている事情における変化の少なくとも一部を示すことができる。別の実施例として、時間612Aおよび/または612Bは、カメラによって撮られた視覚的なしるしによって合図され得る。例えば、時間612Aおよび/または612Bは、事前定義されたように、および/または機械学習を通じて学習されたように、関心対象の事象に関連付けられるように視覚的合図に合図され得る。例示として、時間612Aおよび/または612Bは、突然の動き、動きの終わり、既定の色(例えば、見えているカメラの視野内の赤いストップサインおよび/もしくは他の何らかのプロンプト)、人(例えば、大人および/もしくは子供)、障害物、ロボット200への動き、ロボット200から離れる動き、あらかじめ定義されたジェスチャ(例えば、手の形/動き)、検出された漏出および/もしくは漏洩、ならびに/または関心対象の事象に関連付けることができる任意の視覚的な出来事、に合図されることができる。別の実施例として、時間612Aおよび/または612Bは、衝突、人間/ロボットによる言葉/音、誤動作(スパッタリング、張り付け、引きずりなど)、および/または任意の音声の手がかりなど、センサユニット212のマイクロフォンによって拾われる音によって合図されることができる。いくつかの場合において、センサユニット212の複数のセンサは、上記の任意の組み合わせ、ならびに/または機械学習による関心対象の事象に既定されているおよび/もしくは関連付けられている任意の組み合わせなど、時間612Aおよび/または612Bに合図することができる。
【0118】
信号412Aがロボット200によって遠隔ネットワーク302に送信されると、遠隔ネットワーク302のコンピュータおよび/またはユーザは、センサデータを分析することができる。センサデータは、単一の信号412A、または信号412Aと実質的に同様の、および/または信号412Aに含まれる複数の信号で受信することができる。次いで、遠隔ネットワーク302は、センサデータに対する応答を含むことができる信号412Bを送信することができる。
【0119】
データの分析は、ロボット200の構成に対する調整を決定することを含むことができる。例えば、遠隔ネットワーク302は、ロボット200がセンサデータによって提示されたシナリオにおいて異なるように挙動することができると決定し、ロボット200をその事情において所望される方法で挙動するように再プログラムすることができる。場合によっては、遠隔ネットワーク302は、機械学習のために、上述のマップ関連データを含むライブラリなどのライブラリ内のセンサデータを使用することができる。このようにして、遠隔ネットワーク302は、望ましい挙動を決定するために、ロボット200および/または他のロボットによる経験を集約することができる。場合によっては、信号412Bは、ロボット200の挙動を修正するための命令および/または更新を含むことができる。センサデータは、図5Aおよび5Bを参照して記載したように、マップを修正するのにも役立つことができる。
【0120】
場合によっては、方法150を参照して記載したように、ロボット200は停止して支援を要求することができる。そのような場合、遠隔ネットワーク302は、命令を提供するためにロボット200からセンサデータを通して状況情報を受信することができる。そのような場合、関心対象の事象は、ロボット200の停止および支援の欲求であり得る。場合によっては、ロボット200は、現在の状況を遠隔ネットワーク302に提供するためにセンサデータを送信し続けて、ロボット200により良く指示することを可能にすることができる。有利には、センサデータにより、遠隔ネットワーク302は、遠隔にいる間にロボット200に何が起こったか、および/または起こっているのかを判定することができる。
【0121】
例えば、アシストコールは、関心対象の事象であり得、アシストコールの周囲のウィンドウ内のデータ(例えば、図6の時間612Aと612Bの間の時間)が送信され得る。このデータは、状況を提供し、遠隔ネットワーク302のコンピュータおよび/またはユーザがロボット200に対する行動を決定し、それに応じてロボット200に指示することを可能にすることができる。例えば、ロボット200のカメラからの視覚画像を送信することができ、それにより、遠隔ネットワーク302のコンピュータおよび/またはユーザは、カメラの視野を見て、ロボット200がなぜ支援を求めているのかを判断することができる。このようにして、遠隔ネットワーク302のコンピュータおよび/またはユーザは、事態に対処するためにロボット200が何をすることができるかを決定することができる。同様に、センサユニット212の他の任意のセンサも同様に支援に使用することができる。
【0122】
場合によっては、信号414は、ソフトウェア更新などの更新を含むことができる。場合によっては、そのような更新は、マッピングおよび位置特定ソフトウェア、ファームウェア、マップ、センサファームウェア、追加特色、パッチ、セキュリティ更新などを含むことができる。有利には、これにより、改善および/または変更が行われるにつれてロボット200はその機能を改善できる。人は、ロボット200を更新するために現場にいる必要はないであろう。代わりに、更新は、遠隔ネットワーク302によって遠隔的にプッシュされ、および/またはロボット200によってプルされることができる。
【0123】
いくつかの実装形態では、ロボット200は、遠隔ネットワーク302から信号をプルのみするように構成される。例えば、ロボット200がプル用に構成されている場合、遠隔ネットワーク302からロボット200への信号は、ロボット200がそのようなデータをプルした場合にのみデータをロボット200に転送することができる。有利には、プルのみの構成を有することは、ロボット200への遠隔アクセスが制限されるというさらなる安全性を可能にすることができる。これにより、ロボット200のハッキングおよび/または他の妨害行為を防止することができる。
【0124】
ロボット200から遠隔ネットワーク302によって受信された信号(例えば、信号406A、408B、410A、412Aなど)を通して、遠隔ネットワーク302はロボット200を監視することができる。例えば、遠隔ネットワーク302のコンピュータおよび/またはユーザは、実質的にリアルタイムでおよび/または後でロボット200を見ることができる。この見ることは、ロボット200の進捗(例えば、そのタスクにおける有効性)、任意の所望の支援、ルートロボット200が移動しているおよび/もしくは移動したこと、状態、ならびに/またはロボット200の他の任意の態様を監視することを含むことができる。
【0125】
いくつかの実装形態では、遠隔ネットワーク302は、ロボット200にコマンドを提供することができる。これらのコマンドは、命令(例えば、作動、移動など)を含むことができるので、遠隔ネットワーク302は、ロボット200を遠隔制御および/または操作することができる。データ転送速度に応じて、遠隔制御は、実質的にリアルタイムであり得るか、または(例えば、待ち時間および/またはデータ転送時間に基づいて)遅延され得る。
【0126】
遠隔ネットワーク302は、報告の形で要約情報を提供することができる。信号416は、ロボット200に送信された報告を含むことができる。場合によっては、報告はまた、追加的または代替的に(例えば、電子メール、郵便、手渡し、ファイル転送、メッセージングなどを使用して)オペレータに送信することができる。いくつかの実装形態では、そのような報告は、ロボット200によっても生成することができる(例えば、前述の報告の生成は、遠隔ネットワーク302に加えておよび/またはその代わりに、ロボット200によって実行することができる)が、報告の生成のために遠隔ネットワーク302を使用することの利点は、複数のロボットからデータを蓄積する、人がロボット200の現場に行かなくても人間の操作を利用する、より高度なハードウェアを実装する、および/または他の利点、であるとすることができる。
【0127】
報告は、ルートに関する要約情報を含むことができる。例示として、図7Aは、本開示のいくつかの実装形態による、環境マップ702上にオーバーレイされたルート704を備えるマップ700を含む。ロボット200によって生成されたマップは、ロボット200が空間をナビゲートすることを可能にするのに有益であり得るが、場合によっては、これらのマップは、人々にとって読みにくくなり、および/または視覚的には魅力的ではなくなる。例えば、ロボット200は、少なくとも部分的にセンサユニット212の1つ以上のセンサからのデータに基づいて、本開示に記載されているようにマップを生成することができる。このマップは、ロボット200が環境を移動するたびに生成することができ、ロボット200がどこを移動したかを決定することを可能にする。センサデータは、環境の要素を正確に測定しない可能性があり(例えば、要素はセンサの視野から遮られる可能性がある)、および/またはセンサからの情報は、人間がそれらを通常見ることができる方法から環境の要素を歪める可能性がある。したがって、遠隔ネットワーク302は、環境マップ702として見るためによりアクセス可能なアップロードされたマップを利用することができる。例えば、環境マップ702は、手動で作成されたマップ、コンピュータで作成されたマップ、および/または環境の視覚画像から作成されたマップなど、ユーザによってアップロードすることができる。次いで、ルート704は、ユーザによって(例えば手動で)および/またはコンピュータ(例えば、遠隔ネットワーク302および/またはロボット200の)によってなど、環境マップ702上に重ね合わせることができる。例えば、コンピュータは、センサデータおよび/またはアップロードされたマップに少なくとも部分的に基づいて、ロボット200によって生成されたマップを比較するように構成することができる。遠隔ネットワーク302は、様々な技術を使用することによってマップを相互に関連付けることができる。例えば、遠隔ネットワーク302は、ピクセルごとおよび/または領域ごとに比較を行うことができる。場合によっては、比較を容易にするために、比較の前に、サイズ変更および/または様々な画像処理技術(例えば、エラー訂正、フィルタリング、コントラストおよび/または彩度の調整、色の変更、ノイズリダクション、サイズ変更、アップスケーリング、ダウンスケーリング、および/または任意の画像処理アルゴリズムおよび/または方法)の実行など、マップを前処理することができる。
【0128】
他の技術は、ロボット200によって生成されたマップを、センサデータおよび/または他のアップロードされたマップに少なくとも部分的に基づいて、アップロードされたマップと相関させるために利用することができる。例えば、当技術分野における、比較器および/または既知の比較方法および/またはアルゴリズムを利用することができる。場合によっては、マップを比較してそれらを相関させるために、視覚システムおよび機械学習は、機械によって利用することができる。このようにして、遠隔ネットワーク302は、遠隔ネットワーク302(および/またはユーザ)が複数のマップにわたって決定するしるしに基づいて、マップを互いに関連付けることを学ぶことができる。
【0129】
有利なことに、マップ700と実質的に同様のマップは、ロボット200のユーザおよび/またはオペレータがロボット200の性能を監査することを可能にすることができる。ユーザおよび/またはオペレータは、ロボット200がどこを移動したかを見て、ロボット200の有効性を評価することができる。例えば、床掃除機の場合、ロボット200が移動した場所が、ロボット200が掃除した領域の少なくとも一部を示すことができる場合、マップ700は、ロボット200が掃除した場所の記録を提供することができる。これは、さらなる計画(例えば、日ごと、週ごと、月ごと、および/もしくは他の任意の期間ベースで)、ならびに/または作業フローに対する評価、最適化、および/もしくは調整を可能にし得る。
【0130】
有利なことに、本開示に記載されるようにアップロードされたマップ上にマップを重ね合わせることは、ロボット200のマッピングおよび/または位置特定に少なくとも部分的に基づいて、正確なデータがマッピングされることを可能にし得る。これは、ロボット200が経験したことの、より正確なさらなる文書化を可能にし得る。
【0131】
報告は、他のデータも含むことができる。そのような他のデータは、ロボット200と遠隔ネットワーク302との間で送信されたセンサデータおよび他の通信の少なくとも部分的に基づく要約データとすることができる。例えば、報告は、電源オン/オフ時間、異なるモード(例えば、ロボット200が有する2つの動作モードである、手動モードまたは自律モード)での動作、メンテナンス、低電力モード、高電力モード、効率、清掃距離および/または面積、掃除時間、動作時間、アシストコール、実行アシスト、データ使用量などを含むことができる。例えば、図7Bは、本開示のいくつかの実装形態によるロボット200の使用法を要約した報告ページ750を含む。
【0132】
例示のように、ページ750は、セクション752、754、および756を有する。セクション752は、セッション要約を含むことができる。例えば、セッション要約は、既定のカテゴリーおよび/またはデータの種類に関する要約データを含むことができる。例示として、電源オン時間については、開始時間、終了時間、および合計期間を含む、自律モード時間、および手動トレーニング時間を要約することができる。
【0133】
セクション754は、合計使用量内訳を含むことができる。セクション754は、既定のカテゴリーおよび/またはデータの種類についての合計時間使用量などの、セクション752からの要約データを含むことができる。
【0134】
セクション756は、追加の要約データを含むことができる。例えば、セクション756は、既定のカテゴリーおよび/またはデータの種類についての要約データを含むことができる。例示として、セクション756は、多数の支援を含む。緊急支援は、ロボット200が支援を所望した際にロボット200が遭遇した緊急事態を含むことができる。例えば、緊急支援は、捕らえられること、衝突および/または衝突に近いこと、混乱、位置不特定および/または迷子になること、人々(例えば、子供および/または人々)の存在、轢くことおよび/または潜在的に轢くこと(例えば、ロボット200がトラバースすべきでない地面および/または領域の物体を轢くこと)、嫌がらせ(例えば、人々および/または動物による)、人々による不正行為(例えば、ソフトウェアおよび/またはハードウェアに対する不正な改変)、動物および/もしくは動物との相互作用、機械的またはソフトウェアの故障、消耗品の交換、漏れなどを含むことができる。緊急支援が要求される場所は、オペレータ(例えば、ユーザもしくはコンピュータ)、ロボット200、および/または遠隔ネットワーク302によって既定することができる。他の支援も同様にあり得る。例えば、別のカテゴリーの支援は、非緊急支援であり得、これは、場合によっては緊急支援よりも緊急性が低くなり得る。例えば、非緊急支援は、障害物(例えば、ロボット200は通過できないが、待たなければならない)、軽微な干渉などを含むことができる。場合によっては、緊急支援に関する上記の例のいくつかは、ロボット200およびロボット200のナビゲーションにどれほどの危険性があるかに依存して、非緊急支援に格下げされ得る。他の支援カテゴリーが考えられ、ユーザにとって所望のおよび/または便利なものとして定義することができる。
【0135】
図8は、本開示のいくつかの実装形態による、遠隔ネットワークの操作するための例示的な方法800のプロセスフロー図である。ブロック802は、センサデータ内の関心対象の事象を識別することを含み、関心対象の事象は第1の時間に発生する。ブロック804は、第1の時間前の開始時間および第1の時間後の終了時間を有する時間ウィンドウを決定することを含む。ブロック806は、ウィンドウの間に生成されたセンサデータに少なくとも部分的に基づいて状況を決定することを含む。ブロック808は、状況に少なくとも部分的に基づいて、支援の要求に対処するための命令をロボットに送信することを含む。
【0136】
図9は、本開示のいくつかの実装形態による、ロボットの操作のための例示的な方法900のプロセスフロー図である。ブロック902は、センサデータに少なくとも部分的に基づいて環境における障害物を検出することおよび、ロボットがタスクを実行することができないと決定することを含む。ブロック904は、ロボットのアクチュエータがタスクを実行するのを防止することを含む。ブロック906は、センサデータおよび支援要求を遠隔ネットワークに送信することを含む。ブロック908は、タスクを実行するために遠隔ネットワークから命令を受信することを含む。ブロック910は、遠隔ネットワークからの命令に少なくとも部分的に基づいてタスクを実行することを含む。
【0137】
本明細書で使用されるように、コンピュータおよび/またはコンピューティングデバイスは、これらに限定されないが、パーソナルコンピュータ(「PC」)およびミニコンピュータデスクトップ、ラップトップ、もしくはそれ以外、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末(「PDA」)、携帯型コンピュータ、埋め込み式コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、J2ME搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信またはエンターテインメントデバイス、および/または、一組の命令を実行し、入力してくるデータ信号を処理することが可能である、任意の他のデバイスを含むことができる。
【0138】
本明細書で使用されるように、コンピュータプログラムおよび/またはソフトウェアは、機能を行う任意のシーケンスまたは人間もしくは機械認識ステップを含むことができる。このようなコンピュータプログラムおよび/またはソフトウェアは、例えば、C/C++、C#、Fortran、COBOL、MATLAB(商標)、PASCAL、Python、アセンブリ言語、マークアップ言語(例えば、HTML、SGML、XML、VoXML)などを含む任意のプログラム言語または環境はもちろん、コモンオブジェクトリクエストブローカーアーキテクチャ(「CORBA」)、JAVA(商標)(J2ME,ジャバビーンズ(Java Beans)などを含む)、バイナリランタイム環境(例えば、「BREW」)などのオブジェクト指向環境によって提供することができる。
【0139】
本明細書で使用されるように、接続、リンク、および/またはワイヤレスは、エンティティ間の情報交換を可能にする、任意の2つ以上のエンティティ間の(物理的または論理的/仮想的)因果関係を含むことができる。
【0140】
本開示のある特定の態様は、方法の具体的な一連のステップに関して記載されているが、これらの記載は、本開示のより広範な方法の単なる例示であり、特定の用途によって要求されるように変更され得ることが認識されるであろう。特定のステップは、特定の事情下では不要またはオプションになることがあり得る。さらに、開示された実装形態にある特定のステップまたは機能が追加されてもよく、または2つ以上のステップの実行順序は並べ換えることができる。そのような変形はすべて、本明細書に開示および特許請求されている開示の範囲内に包含されると見なされる。
【0141】
上記の詳細な記載は、様々な実装形態に適用される本開示の新規な特色を示し、記載し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更が、本開示から逸脱することなくなされ得ることは当業者により理解される。前述の記載は、本開示を実施することについて現在企図されている最良の様式である。この記載は、決して限定することを意味するものではなく、むしろ本開示の一般原則の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して判断されるべきである。
【0142】
本開示を図面および前述の記載において詳細に例示および記載してきたが、そのような例示および記載は、説明的または例示的であり、限定的ではないと見なされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態および/または実装形態に対する変形は、図面、本開示および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され達成され得る。
【0143】
本開示のある特定の特色または態様を説明するときに特定の用語を使用することは、その用語が関連付けられている、本開示の特色または態様の任意の具体的な特徴を含むよう限定されるように、その用語が本明細書において再定義されていることを意味すると解釈されるべきではない。本出願において使用される用語および句、ならびにその変形は、とりわけ添付の特許請求の範囲において、他に明示的に述べられていない限り、限定とは対照的に無制限として解釈されるべきである。前述の例として、「含む(including)」という用語は、「限定することなく含む」、「含むがこれに限定されない」などを意味すると読まれるべきであり、本明細書で使用される「含む(comprising)」という用語は、「含む(including)」、「含む(containing)」、または「によって特徴付けられる(characterized by)」と同義であり、包括的またはオープンエンドであって、追加の列挙されていない要素または方法ステップを排除するものではなく、「有する(having)」という用語は「少なくとも有する(having at least)」と解釈されるべきであり、「など(such as)」という用語は「限定されることなく、~など(such as,without limitation)」と解釈されるべきであり、「含む(includes)」という用語は、「含むがこれに限定されない(includes but is not limited to)」と解釈されるべきであり、「実施例(example)」という用語は、考察における項目の例示的な例を提供するために使用され、それらの網羅的または限定的なリストではなく、「実施例として、しかし限定することなく(example,but without limitation)」として解釈されるべきであり、「知られている」、「普通の(normal)」、「標準的な(standard)」などの形容詞および同様の意味の用語は、記載された項目を所与の期間または所与の時点で利用可能な物品に限定すると解釈されるべきではないが、代わりに、現在または将来いつでも利用可能または既知の可能性がある既知、通常、または標準のテクノロジを網羅するように読まれるべきであり、かつ、「好ましくは(preferably)」、「好ましい(preferred)」、「所望の(desired)」、または「望ましい(desirable)」などの用語の使用、および類似の意味の単語は、ある特定の特色が本開示の構造または機能にとって重要、必須、またはさらに重要であることを意味すると理解すべきではないが、代わりに、単に特定の実施形態において利用されてもされなくてもよい代替または追加の特色を強調することを意図したものとして理解すべきである。同様に、接続詞「および(and)」にリンクされた項目の群は、それらの項目の各々および、ひとつひとつがその群内に存在することを要求するものとして読まれるべきではなく、特に明記しない限り「および/または」として読まれるべきである。同様に、接続詞「または(or)」にリンクされた項目の群は、そのグループ間の相互排他性を必要とするものとして読まれるべきではなく、別段の明記がない限り、「および/または」として読まれるべきである。「約(about)」または「およそ(approximate)」などの用語は同義語であり、その用語によって修飾された値がそれに関連する理解された範囲を有することを示すために使用され、その範囲は±20%、±15%、±10%、±5%、または±1%、であり得る。「実質的に(substantially)」という用語は、結果(例えば、測定値)が目標値に近いことを示すために使用され、ここでは、結果は、その値の80%以内、その値の90%以内、その値の95%以内、またはその値の99%以内である。また、本明細書で使用されるとき、「定義された(defined)」または「判定された(determined)」は、「事前定義された(predefined)」または「既定の(predetermined)」および/または他の方法で決定された値、条件、閾値、測定値などを含み得る。
図1A
図1B
図2
図3A
図3B
図4
図5A
図5B
図6
図7A
図7B
図8
図9