(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-03
(45)【発行日】2023-02-13
(54)【発明の名称】ロボット装置を支援するためのシステム、方法、非一時的コンピュータ可読記憶装置、及びプログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20230206BHJP
【FI】
G05D1/02 H
(21)【出願番号】P 2019541747
(86)(22)【出願日】2018-02-02
(86)【国際出願番号】 US2018016624
(87)【国際公開番号】W WO2018144846
(87)【国際公開日】2018-08-09
【審査請求日】2021-01-25
(32)【優先日】2017-02-02
(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)【代理人】
【識別番号】100096013
【氏名又は名称】富田 博行
(72)【発明者】
【氏名】シニャフスキー オレグ
(72)【発明者】
【氏名】パッソ ジャン-バティスト
(72)【発明者】
【氏名】ガバルドス ボルハ イバルツ
(72)【発明者】
【氏名】レ ディアナ ヴ
【審査官】影山 直洋
(56)【参考文献】
【文献】特開平09-160646(JP,A)
【文献】特開平09-266871(JP,A)
【文献】特開2002-209035(JP,A)
【文献】特開2014-071845(JP,A)
【文献】国際公開第2013/011543(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
ロボットを動作させるための方法であって、
環境内で前記ロボットに結合された1つ以上のセンサからのデータに少なくとも部分的に基づいて、前記ロボットのフットプリントにより前記環境内の物体の間のクリアランスを判定し、前記ロボットを床上でナビゲートさせることと、
前記環境内で前記ロボットにタスクを実行させることと、
少なくとも前記ロボットに結合された1つ以上のセンサからのデータ
及び前記フットプリント
に基づいて、
検出された経路における障害物による支援イベントの発生を検出することと、
少なくとも1つのアクチュエータに信号を送信して前記タスクまたは前記ナビゲートの少なくとも一方の実行を停止することによって前記支援イベントが対処されるのを、第1の時間遅延の間、待機することと、
前記支援イベントが前記第1の時間遅延内に対処されなければ、
前記第1の時間遅延後に第1の警告を決定し、少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第1の警告を表示し、少なくとも1つのアクチュエータを作動させて回復を実行することによって、前記第1の時間遅延に続く第2の時間遅延の間、前記支援イベントに自律的に対処することを試行することと、
前記第2の時間遅延後に前記支援イベントが依然として対処されなければ、
第3の時間遅延後に第
2の警告を決定
し、前記少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第2の警告を表示することと、
前記第3の時間遅延後に前記障害物の少なくとも一部と、前記ロボットの1以上の選択可能な位置とを示す警告を含む支援ビューを前記ロボットのユーザーインターフェースに表示することと、
前記ロボットに、前記ロボットのユーザーインターフェースを介して、オペレータから1以上の選択可能な指示又は命令を送信し、前記選択された指示又は命令に基づいてアクチュエータを動作させること、及び前記タスクを実行させることと、を含む、前記方法。
【請求項2】
物体、障害物、誤検出、または前記タスク若しくは前記ナビゲートの少なくとも一方の完了を妨害している前記ロボットの内部特性の検出に基づいて、前記支援イベントを検出することをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1の時間遅延後に
前記支援ビューにおいて前記第1の警告の決定後に第2の警告を生成することであって、前記第2の警告が、前記ロボットが前記タスクまたは前記ナビゲートの少なくとも一方の完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ことをさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の警告が、前記ロボットの1人以上の人間のオペレータへのSMS通知を含み、前記SMS通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含む、請求項1に記載の方法。
【請求項5】
前記ロボットの人間のオペレータが前記ロボットに結合されたボタンを押して前記タスクまたは前記ナビゲートの少なくとも一方を続行するように前記ロボットを構成することを含む、前記支援イベントに対処することと、
1つ以上のアクチュエータに信号を送信することによって前記回復を実行して前記支援イベントに対処することと、をさらに含む、請求項1に記載の方法。
【請求項6】
ロボットシステムであって、
コンピュータ可読命令が格納されたメモリと、
少なくとも1つのプロセッサと、を含み、前記少なくとも1つのプロセッサが、前記コンピュータ可読命令を実行して、
環境内で
前記ロボットに結合された1つ以上のセンサからのデータに少なくとも部分的に基づいて、前記ロボットのフットプリントにより前記環境内の物体の間のクリアランスを判定し、前記ロボットを床上でナビゲートさせ、
前記環境内で前記ロボットシステムにタスクを実行させ、
少なくとも前記ロボットシステムに結合された1つ以上のセンサからのデータ
及び前記フットプリント
に基づいて、
検出された経路における障害物による支援イベントの発生を検出し、
少なくとも1つのアクチュエータに信号を送信して前記タスクまたは前記ナビゲートの少なくとも一方の実行を停止することによって前記支援イベントが対処されるのを、第1の時間遅延の間、待機し、
前記支援イベントが前記第1の時間遅延内に対処されなければ、
前記第1の時間遅延後に第1の警告を決定し、少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第1の警告を表示し、少なくとも1つのアクチュエータを作動させて回復を実行することによって、前記第1の時間遅延に続く第2の時間遅延の間、前記支援イベントに自律的に対処することを試行し、
前記第2の時間遅延後に前記支援イベントが依然として対処されなければ、
第3の時間遅延後に第
2の警告を決定
し、前記少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第2の警告を表示し、
前記第3の時間遅延後に前記障害物の少なくとも一部と、前記ロボットの1以上の選択可能な位置とを示す警告を含む支援ビューを前記ロボットのユーザーインターフェースに表示し、
前記ロボットに、前記ロボットのユーザーインターフェースを介して、オペレータから1以上の選択可能な指示又は命令を送信し、前記選択可能な指示又は命令に基づいてアクチュエータを動作させること、及び前記タスクを実行させるように構成されている、前記ロボットシステム。
【請求項7】
前記少なくとも1つのプロセッサが、前記コンピュータ可読命令を実行して、
物体、障害物、誤検出、または前記タスク若しくは前記ナビゲートの少なくとも一方の完了を妨害している前記ロボットシステムの内部特性の検出に基づいて、前記支援イベントを検出し、
前記第1の時間遅延後に
前記支援ビューにおいて前記第1の警告の決定後に第2の警告を生成し、前記第2の警告が、前記ロボットシステムが前記タスクまたは前記ナビゲートの少なくとも一方の完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ようにさらに構成されている、請求項6に記載のシステム。
【請求項8】
前記第1の警告が、前記ロボットシステムの1人以上の人間のオペレータへのSMS通知を含み、前記SMS通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含む、請求項6に記載のシステム。
【請求項9】
前記ロボットシステムの人間のオペレータが前記ロボットシステムに結合されたボタンを押して前記タスクまたは前記ナビゲートの少なくとも一方を続行するように前記ロボットシステムを構成することを含む、前記支援イベントに対処することをさらに含む、請求項6に記載のシステム。
【請求項10】
複数の命令を格納した非一時的コンピュータ可読記憶装置であって、前記複数の命令が、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサを、
環境内で
前記ロボットに結合された1つ以上のセンサからのデータに少なくとも部分的に基づいて、前記ロボットのフットプリントにより前記環境内の物体の間のクリアランスを判定し、前記ロボットを床上でナビゲートさせ、
前記環境内でロボットにタスクを実行させ、
少なくとも前記ロボットに結合された1つ以上のセンサからのデータ
及び前記フットプリント
に基づいて、
検出された経路における障害物による支援イベントの発生を検出し、
少なくとも1つのアクチュエータに信号を送信して前記タスクまたは前記ナビゲートの少なくとも一方の実行を停止することによって前記支援イベントが対処されるのを、第1の時間遅延の間、待機し、
前記支援イベントが前記第1の時間遅延内に対処されなければ、
前記第1の時間遅延後に第1の警告を決定し、少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第1の警告を表示し、少なくとも1つのアクチュエータに信号を送信して回復を実行することによって、前記第1の時間遅延に続く第2の時間遅延の間、前記支援イベントに自律的に対処することを試行し、
前記第2の時間遅延後に前記支援イベントが依然として対処されなければ、
第3の時間遅延後に第
2の警告を決定
し、前記少なくとも1つのプロセッサにより、前記ロボットのユーザーインターフェースに第2の警告を表示し、
前記第3の時間遅延後に前記障害物の少なくとも一部と、前記ロボットの1以上の選択可能な位置とを示す警告を含む支援ビューを前記ロボットのユーザーインターフェースに表示し、
前記ロボットに、前記ロボットのユーザーインターフェースを介して、オペレータから1以上の選択可能な指示又は命令を受信し、前記選択可能な指示又は命令に基づいてアクチュエータを動作させること、及び前記タスクを実行させるように構成する、前記非一時的コンピュータ可読記憶装置。
【請求項11】
前記1つ以上のプロセッサが、前記複数の命令を実行して、
物体、障害物、誤検出、または前記タスク若しくは前記ナビゲートの少なくとも一方の完了を妨害している前記ロボットの内部特性の検出に基づいて、前記支援イベントを検出し、
前記第1の時間遅延後に
前記支援ビューにおいて前記第1の警告の決定後に第2の警告を生成し、前記第2の警告が、前記ロボットが前記タスクまたは前記ナビゲートの少なくとも一方の完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ようにさらに構成されている、請求項10に記載の非一時的コンピュータ可読記憶装置。
【請求項12】
前記第1の警告が、前記ロボットの1人以上の人間のオペレータへのSMS通知を含み、前記SMS通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含む、請求項10に記載の非一時的コンピュータ可読記憶装置。
【請求項13】
前記第2の警告が、前記第2の時間遅延に続く第3の時間遅延後、かつ前記支援イベントの継続的な検出に応答して、前記ロボットが前記タスクまたは前記ナビゲートの少なくとも一方を実行することができないことに対応している、請求項11に記載の非一時的コンピュータ可読記憶装置。
【請求項14】
ロボットを動作させるための方法を実行するプログラムであって、
コンピュータ可読命令が格納されたメモリと、
少なくとも1つのプロセッサと、を含み、前記少なくとも1つのプロセッサが、前記コンピュータ可読命令を実行して、
請求項1~5のいずれかに記載の方法を実行させる、前記プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権
本出願は、同じ名称の2017年2月2日に出願された米国特許出願第15/423,442号に対する優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
著作権
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権者は、特許商標庁の特許ファイルまたは記録に記載されているような本特許文書または本特許開示の、いかなる人物によるファクシミリ複製にも異論を唱えないが、それ以外のすべての著作権を留保する。
【0003】
背景
本出願は、概して、ロボット工学に関し、より具体的には、ロボット装置を支援するためのシステムおよび方法に関する。
【背景技術】
【0004】
場合によっては、ロボットは、直接のオペレータ制御をほとんどまたは全く伴わずに、自律的に動作することができる。ただし、これらのロボットは自律的に動作する一方、これらのロボットは、それらが身動きできなくなり得、かつ/またはエラーを生じ得、かつ/または外部の原因(例えば、封鎖された行路)により前進することができない状況に陥る場合がある。
【0005】
多くの現代的なロボットは、接続性および監視をほとんど伴わない制御された環境内で稼働する。したがって、オペレータはロボットのニーズを知らないことが多く、ロボットには助けを求めるための確固とした手順がない。場合によっては、これは、ロボットが損傷を引き起こすことおよび/またはロボットの他の準最適の挙動につながり得る。さらに、場合によっては、ロボットは、オペレータがロボットを支援する能力を妨げることさえある回復手順に従うことがある。したがって、ロボットを支援するための改善されたシステムおよび方法が必要とされている。
【発明の概要】
【0006】
前述のニーズは、とりわけ、自律ナビゲーションにおける動的経路計画のための装置および方法を提供する本開示によって満たされる。本明細書に記載されている例示的な実装は、革新的な特色を有しており、そのうちのいずれも、それらの望ましい属性に対して不可欠ではなく、または単独でその責任を担うものでもない。特許請求の範囲を限定することなく、有利な特徴のうちのいくつかをここで要約する。
【0007】
一態様では、ロボットを動作させるための方法が開示されている。例示的な一実装形態では、この方法は、環境内でロボットにタスクを実行させることと、ロボットがタスクを実行するときに、ロボットの1つ以上のセンサを使用して環境に関するデータを生成することと、データから、ロボットがタスクを実行することを少なくとも部分的に妨害されていると判定することと、ロボットが少なくとも部分的に妨害されているとの判定の後の所定の第1の遅延後に、ロボットがタスクを続行することができないことを少なくとも部分的に示す第1の警告を表示することと、警告の表示の後の所定の第2の遅延後に、ロボットにタスクを実行させることを試行することと、ロボットにタスクを実行させる試行の後の所定の第3の遅延後に、ロボットが少なくとも部分的に妨害されていることを少なくとも部分的に示す第2の警告を表示することと、を含む。
【0008】
一変形形態では、タスクが、床を掃除することを含む。別の変形形態では、この方法は、オペレータから動作命令を受信することと、動作命令に少なくとも部分的に基づいてタスクの実行を続行することと、を含む。別の変形形態では、オペレータからの動作命令の受信は、ロボットのボタンが押されたとの判定を受信することを含み、ボタンが押されたことは、障害物にかかわらずタスクの実行を進行させる命令である。別の変形形態では、オペレータから動作命令を受信することが、走行する行路を表示することと、表示された行路の選択を受信することと、を含む。
【0009】
別の変形形態では、この方法は、外部センサからデータを受信することと、外部センサからのデータに少なくとも部分的に基づいて、ロボットがタスクを実行することを依然として少なくとも部分的に妨害されているかどうかを判定することと、をさらに含む。別の変形形態では、この方法は、物体認識により、ロボットが少なくとも部分的に妨害されていることを識別することをさらに含む。
【0010】
別の態様では、ロボットが開示されている。例示的な一実装形態では、ロボットは、環境に関するセンサデータを生成するように構成された1つ以上のセンサと、第1のロボットタスクを実行するように構成された1つ以上のアクチュエータと、情報を表示および受信するように構成されたユーザインターフェースと、プロセッサと、を含み、プロセッサは、1つ以上のアクチュエータに第1のロボットタスクを実行させ、センサデータに少なくとも部分的に基づいて、第1のロボットタスクの実行中に障害物を検出し、検出された障害物に少なくとも部分的に応答して、ロボットが第1のロボットタスクを実行しないように、1つ以上のアクチュエータを作動させ、検出された障害物の少なくとも一部とロボットの1つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示し、ユーザインターフェースを介して、ロボットの1つ以上の選択可能な位置のうちの選択された1つを受信し、ロボットの1つ以上の選択可能な位置のうちの選択された1つに少なくとも部分的に基づいてアクチュエータを作動させ、第1のロボットタスクと実質的に同様のタスクを実行し続ける、ように構成されている。
【0011】
一変形形態では、ロボットが、ロボットを監視するように構成された遠隔ネットワークに通信可能に結合された通信ユニットをさらに含む。別の変形形態では、プロセッサが、障害物を識別するようにさらに構成されている。別の変形形態では、プロセッサが、機械学習プロセスを通じて障害物を識別することを学習するようにさらに構成されている。別の変形形態では、ロボットが、床掃除機(floor cleaner)を含む。別の変形形態では、ロボットタスクが、ナビゲーションである。別の変形形態では、ロボットの選択可能な位置が、ロボットの軌道を含む。
【0012】
さらに別の態様では、床掃除ロボットを支援するための方法が開示されている。例示的な一実装態様では、この方法は、床掃除ロボットが掃除を妨害されていることをグラフィカルに表す支援ビューを表示することと、支援ビューを介して動作命令であって、ユーザインターフェースにロボットの複数の走行する行路を表示する、動作命令を受信し、および表示された行路の選択を受信することと、床掃除ロボットに、動作命令に従って掃除させることと、を含む。
【0013】
一変形形態では、支援ビューを表示することが、ロボットのセンサからデータを受信することと、受信されたデータに少なくとも部分的に基づいて支援イベントを識別することと、識別された支援イベントを示すグラフィックを生成することと、をさらに含む。
【0014】
別の変形形態では、この方法は、支援ビューを遠隔ネットワークに送信することをさらに含む。別の変形形態では、床掃除ロボットに掃除させることが、床掃除ロボットに所定行路に沿ってナビゲートさせることと、床掃除ロボットに所定行路に沿って床を洗浄させることと、を含む。
【0015】
別の変形形態では、この方法は、支援ビューの表示から少なくとも所定の時間、動作命令に従って床掃除ロボットに掃除させることを遅延させることをさらに含む。
【0016】
別の変形形態では、動作命令に従って床掃除ロボットに掃除させることは、ロボット上の支援ボタンが押されたことを示す信号を受信した後に行われる。
【0017】
さらに別の態様では、非一時的なコンピュータ可読記憶装置が開示されている。例示的な一実装形態では、非一時的なコンピュータ可読記憶装置は、複数の命令を格納しており、これらの命令は、ロボットを動作させるように処理装置によって実行可能である。この命令は、処理装置によって実行されると、処理装置に、1つ以上のアクチュエータにロボットタスクを実行させ、センサデータに少なくとも部分的に基づいて、ロボットタスクの実行中に障害物を検出し、検出された障害物に少なくとも部分的に応答して、ロボットがロボットタスクを実行しないように、1つ以上のアクチュエータを作動させ、検出された障害物の少なくとも一部とロボットの1つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示し、ユーザインターフェースを介して、ロボットの1つ以上の選択可能な位置のうちの選択された1つを受信し、ロボットの1つ以上の選択可能な位置のうちの選択された1つに少なくとも部分的に基づいてアクチュエータを作動させ、タスクを実行し続ける、ことを行わせるように構成されている。
【0018】
さらに別の態様では、ロボットを支援するためのシステムが開示されている。例示的な一実装形態では、システムは、タスクを実行するように構成されたロボットであって、ロボットは、ロボットの環境に関するデータを収集する1つ以上のセンサを有し、ロボットは、1つ以上のセンサのデータ中に検出された環境内の障害物に遭遇すると支援要求を送信する、ロボットと、ロボットの環境の少なくとも一部に関するデータを収集するように構成された外部センサと、ロボットおよび外部センサに通信可能に結合された遠隔ネットワークであって、遠隔ネットワークは、ロボットから支援要求を受信し、支援要求に応答して外部センサからデータを取得し、ロボットをどのように支援するかを決定するように構成されている、遠隔ネットワークと、を含む。
【0019】
一変形形態では、ロボットをどのように支援するかを決定することが、ロボットが前進することができるかどうかを判定することをさらに含む。
【0020】
さらに別の態様では、遠隔ネットワークが開示されている。例示的な一実装形態では、遠隔ネットワークは、センサデータとロボットからの支援の要求とを受信するように構成された通信ユニットと、プロセッサであって、受信されたセンサデータ中の対象のイベントを識別し、イベントに関するより多くの情報を取得するかどうかを決定し、より多くの情報を取得するかどうかの決定に少なくとも部分的に基づいて、イベントに関するデータを外部センサから要求し、外部センサからのデータに少なくとも部分的に基づいて、ロボットを支援するためにアクセスポイントに支援要求を送信する、ように構成された、プロセッサとを含む。
【0021】
さらに別の態様では、ロボットの外部のセンサが開示されている。例示的な一実装形態では、このセンサは、ロボットの環境の少なくとも一部に関するデータを収集し、データ中の支援イベントを検出し、支援イベントを解決するためにロボットと通信する、ように構成されている。
【0022】
一変形形態では、センサは、支援イベントを解決するために遠隔ネットワークと通信するようにさらに構成されている。
【0023】
本開示のこれらおよび他の目的、特徴、および特性、ならびに構造の関連要素および部品の組み合わせの動作方法および機能、および製造の経済性は、そのいずれもが本明細書の一部を構成する、添付図面を参照しつつ以下の詳細な説明および添付の特許請求の範囲を検討することによって、さらに明らかになるであろう。本明細書において、類似の参照符号は様々な図面における対応部分を示す。しかしながら、図面は、例示および説明のみを目的としたものであり、本開示の限定の定義として意図されるものではないことが、明確に理解されるべきである。本明細書および特許請求の範囲で使用される場合、単数形「a」、「an」および「the」は、文脈がそうでないことを明確に示さない限り、複数の指示物が含まれる。
【図面の簡単な説明】
【0024】
開示された態様は、添付の図面と併せて以下で説明され、開示される態様を限定するためでなく例示するために提供され、類似の名称は類似の要素を示す。
【0025】
【
図1】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【
図2A】本開示のいくつかの実装形態による、ロボットのロボットフットプリントを例示する上面図である。
【
図2B】本開示のいくつかの実装形態による、物体の周りを無駄にナビゲートするロボットの上面図である。
【
図3】本開示のいくつかの動作原理による、ロボットの機能ブロック図である。
【
図4】本開示のいくつかの実装形態による、遠隔ネットワークと通信可能および/または動作可能に結合されたロボットを含むシステムの機能ブロック図である。
【
図5】本開示のいくつかの実装形態による、支援要求を発行するための例示的な方法のプロセスフロー図である。
【
図6A-6C】本開示のいくつかの実装形態による支援ビューを示すディスプレイである。
【
図7】本開示のいくつかの実装形態による、ロボットに関する情報を提供する外部センサの側面図である。
【
図8】本開示のいくつかの実装形態による、支援プロセスを例示する機能ブロック図である。
【
図9】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【
図10】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【
図11】本開示のいくつかの実装形態による、ロボットを支援するための例示的な方法のプロセスフロー図である。
【0026】
本明細書に開示されているすべての図面は著作権により保護されている。(著作権)Copyright 2017 Brain Corporation。無断転用禁止。
【発明を実施するための形態】
【0027】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に記載される。しかしながら、本開示は、多くの異なる形態で具現化することができ、本開示全体を通して提示される任意の具体的な構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であるように、また、本開示の範囲を当業者に完全に伝えるように提供される。本明細書の教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して実装されるか、またはそれと組み合わせられて実装されるかにかかわらず、本明細書に開示された新規のシステム、装置、および方法の任意の態様を包含することを意図していることを理解するはずである。例えば、本明細書に記載の任意の数の態様を使用して、装置を実装するか、または方法を実践することができる。加えて、本開示の範囲は、本明細書に記載された開示の様々な態様に加えて、あるいはそれ以外の他の構造、機能、または構造および機能を使用して実施されるような装置または方法を包含するように意図されている。本明細書に開示される任意の態様は、特許請求項の1つ以上の要素によって実装され得ることを理解されたい。
【0028】
特定の態様が本明細書に記載されているが、これらの態様の多くの変形および置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利益および利点が述べられているが、本開示の範囲は、特定の利益、用途、および/または目的に限定されることを意図しない。詳細な説明および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は、添付の特許請求の範囲およびそれの均等物によって定義される
【0029】
本開示は、ロボットの改善された遠隔操作および/または監視を提供する。本明細書で使用される場合、ロボットは、複雑な一連の行動を自動的に成し遂げるように構成された機械的および/または仮想エンティティを含むことができる。場合によっては、ロボットは、コンピュータプログラムおよび/または電子回路によってガイドおよび/または命令される機械であり得る。場合によっては、ロボットは、ナビゲーション用に構成された電子機械コンポーネントを含んでもよく、ロボットは、ある場所から別の場所に移動することができる。そのようなナビゲーションロボットは、自律走行および/または自動運転車、床掃除機、探査車(rover)、ドローン、飛行機、ボート、カートなどを含むことができる。
【0030】
場合によっては、ロボットは、1つ以上のタスクを実行するように自動化された、電気器具、機械、および/または機器を含むことができる。例えば、それらが自律的に動作することを可能にするために、電気器具、機械、および/または機器にモジュールを取り付けることができる。いくつかの実装形態では、モジュールは、電気器具、機械、および/または機器の自律運動を駆動するモーターを含むことができる。場合によっては、モジュールは、既存のコントローラ、アクチュエータ、ユニット、および/または電気器具のコンポーネントに制御信号を送信するなどにより、スプーフィングに少なくとも部分的に基づいて、電気器具、機械、および/または機器を動作させる。モジュールは、データを受信および生成するためのセンサおよび/またはプロセッサを含むことができる。モジュールはまた、センサデータを処理し、制御信号を送信し、および/または他の方法で、既存のコントローラ、ユニット、および/または、電気器具、機械、および/または機器のコンポーネントを制御するために、プロセッサ、アクチュエータ、および/または本明細書に記載のコンポーネントのいずれかを含むことができる。そのような電気器具、機械、および/または機器は、フォークリフト、タグボート、ボート、飛行機、産業機器、床掃除機、ストッキング機、家電製品などを含むことができる。
【0031】
本明細書で言及されるように、床掃除機は、手動制御される(例えば、駆動または遠隔制御される)、および/または自律的である(例えば、直接のユーザ制御をほとんどまたは全く用いない)床掃除機を含むことができる。例えば、床掃除機は、清掃作業員、管理人、および/または他の人が操作する床洗浄機、および/または、環境を自律的にナビゲートおよび/または掃除するロボット床洗浄機を含むことができる。同様に、床掃除機はまた、真空掃除機(vacuum)、蒸気掃除機、バフィングマシン、モップ、ポリッシャ、スイーパ、バーニッシャ、および/または床を掃除するように意図されたデバイスを含むことができる。
【0032】
本開示のシステムおよび方法の様々な実施形態および変形形態の詳細な説明がここで提供される。本明細書で説明する多くの例はロボット式床掃除機に言及している場合があるが、本明細書に含まれる記載されたシステムおよび方法は任意の種類のロボットに適用可能であることが理解されよう。本明細書に記載された技術の無数の他の例示的な実装形態または使用は、本開示の内容が与えられれば、当業者によって容易に想定されるであろう。
【0033】
有利なことに、本開示のシステムおよび方法は少なくとも、(i)不測の状況であってもロボットが環境内で安全に動作できるようにし、(ii)ロボットが期待される挙動を呈することを可能にすることにより、ロボットに快適さを提供し(例えば、人間および/または動物による)、(iii)不所望な停止を伴わないロボットの円滑な動作を可能にし、(iv)ロボットの効率的な操縦を提供する。他の利点は、本開示の内容を与えられた当業者によって容易に認識することができる。
【0034】
例えば、ロボットは、環境をナビゲートし、データを収集し、かつ/または行動を実行することができる。例示として、ロボットは、環境をナビゲートしながら床を掃除する床掃除機であり得る。ロボットは、データを収集および/または生成することができる。例えば、ロボットは、
図3を参照して本開示において後で記載されるように、ロボットの環境を感知するセンサを有することができる。これらのセンサは、環境に関するデータを生成できる。ロボットは、オン/オフ時間、速度、状態、ソフトウェアバージョン、動作(例えば、掃除などの行動/動作の実行)、メンテナンスなど、ロボットの性能を監視するセンサを有することもできる。これらのセンサは、ロボットに関するデータを生成することができる。ロボットはまた、ロボットの環境および/またはロボットが自律的に環境をナビゲートすることを可能にする経路に関する情報を含むマップ関連データ(例えば、マップ作成および/または位置特定に関連する、および/またはそれに使用できるデータ)を生成することができる。
【0035】
ロボットは、ロボットに問題を引き起こすイベントに遭遇し得る。場合によっては、この問題は、ロボットにソフトウェアおよび/またはハードウェアの性能関連の問題があるエラーであり得る。場合によっては、この問題は、ロボットがどのように行動すべきかを決定することが可能であるようにロボットがオペレータからの追加入力を求めるように構成されたシナリオであり得る。場合によっては、これらの問題は、ロボットの1つ以上のセンサによって検出することができる。有利なことに、イベントが発生したと判定し、適切に支援を要求することにより、オペレータの経験を改善し、および/またはロボットの動作に対する信頼を高めることができる。さらに、支援のための適切なシステムおよび方法は、ロボットに指定されたタスクの効率的な動作を可能にすることができる。
【0036】
図1は、本開示のいくつかの実施態様による、ロボットの動作のための例示的な方法100のプロセスフロー図である。ブロック102は、タスクを実行することを含む。例えば、そのようなタスクは、ナビゲーション、クリーニング、物体の移動、物体の輸送、探索、マッピング、構築、イメージング、診断、および/またはロボットに所望される任意の活動などの、ロボットに関連する機能であり得る。場合によっては、オペレータがロボットを使用してそのようなタスクを実行することができる。
【0037】
ブロック104は、タスクの実行中にエラーおよび/または支援イベントを検出することを含む。本明細書で使用される場合、支援は、ロボットのオペレータ支援が望ましい状況に関連し得る。例えば、オペレータ支援は、オペレータの指示、コマンド、状態などに関連し得る。場合によっては、支援はエラーに起因するシナリオに関連し得る。例えば、エラーには、ロボットの1つ以上の機能の障害をもたらすロボットの多数の出来事を含めることができる。
【0038】
例示として、致命的なエラーには、破滅的な故障、接続の喪失、緊急シャットダウン、破壊、および、ロボットにほとんどまたはすべての機能を失わせる他の出来事を含めることができる。場合によっては、破滅的な故障が発生すると、ロボットが行い得ることはあまりないことがある。場合によっては、オペレータは、ロボットが再び機能する前にロボットの一部を修理および/または交換する必要があり得る。
【0039】
別の例示として、エラーには内部エラーを含めることができ、これは、ロボットのソフトウェアまたはハードウェアの内部機能に関連するエラーであり得る。例えば、これらの内部エラーには、ソフトウェアコンポーネントのクラッシュ、スタックエラーおよび/またはオーバーフロー、メモリギャップおよび/またはメモリエラー、ソフトウェアコンポーネントのハングアップおよび/またはフリーズなどを含めることができる。別の例として、内部エラーには、機械的電気的エラーおよび/または故障を含めることができ、アクチュエータ、電源システム、コントローラ/コンピュータ、リレー、コネクタ、ケーブルなどの、ロボットの機械および/または電気システムに関連するものなどがある。内部エラーには、衝突および/または誤識別された衝突(例えば、ソフトウェアおよび/またはハードウェアのミスにより、ロボットが衝突していないのに何かに衝突したとロボットが判定する場合)を含めてもよい。
【0040】
別の例示として、支援は、ロボットが移動、動作、および/または他の所望の活動などのタスクを進行させることに失敗することに関連し得る。例えば、ロボットが特定の活動を進行させることを阻害される場合がある。いくつかの実装形態では、ロボットは、ナビゲーション、クリーニング、物体の移動、物体の輸送、探索、マッピング、構築、イメージング、診断、および/またはロボットに任意の所望の活動などのタスクを実行するように構成できる。いくつかの実装形態では、ロボットは、封鎖(例えば、障害物の存在)、タスク関連物体(例えば、ロボットが輸送することになっている物体)の喪失/損傷/破壊、ロボットの環境上の危険/障害、こぼし(例えば、ロボットまたは環境によって引き起こされる)、環境および/または環境内の物体/人に対する危険、および/または、ロボットがタスクを実行することを阻止し得る外部の出来事などの、外部の出来事によって、タスクを完了することが阻害され得る。いくつかの実装形態では、ロボットは、(例えば、
図2Aを参照して記載したロボットの事前定義されたロボット自体のフットプリントパラメータのクリアランス量などの、ロボットの所定の制限に少なくとも部分的に基づいて)ロボットがタスクを進行させることができないという認識(例えば、ロボットのセンサからのデータに少なくとも部分的に基づく)、ゴースト障害物の検出(例えば、ロボットに、存在しない障害物が見える)、ノイズ(例えば、センサノイズ、反射、および/または信号への他の望ましくない追加/変更)、非定位、スリップ(例えば、ロボットが物体に衝突および/または接近し得る何らかの場所を含め、誤って他の何らかの場所であるとロボットが誤判定し得る走行距離測定のエラー)、ロボットの事前定義されたロボット自体のフットプリントパラメータ内で検出された障害物などの、内部の出来事によって、タスクを完了することを阻害され得る。
【0041】
ロボットの事前定義されたロボット自体のフットプリントを例示するために、
図2Aは、本開示のいくつかの実装形態によるロボット200のロボットフットプリント202を例示する上面図である。ロボット200は、事前定義された本体形状および寸法を有することができる。ロボット200は、前面204A、右面204C、左面204D、および背面204Bなどの複数の面を備えた本体を含むことができる。ロボット200はまた、上面および底面を有することができる。当業者であれば、本開示の内容が与えられれば、ロボット200が、形状(例えば、長方形、ピラミッド形、人型、または任意の他の設計形状)によって変わり得る、ロボット200の表面に対応する他の面もまた有することができることを理解するはずである。例示として、前面204Aは、ロボット200の前方に向いている側に位置付けることができ、前方に向いている側は、ロボット200の前方への移動の方向において前方にある。背面204Bは、ロボット200の後方に向いている側に位置付けることができ、後方に向いている側は、前方に向いている側と実質的に反対方向に向いている側である。右面204Cは、前面204Aに対して右側とすることができ、左面204Dは、前面204Aに対して左側とすることができる。
【0042】
ロボット200の実際の本体が例示されている。ただし、フットプリント202は、ロボット200がタスクをどのようにナビゲートおよび/または実行することができるかを決定するロボット200のソフトウェアおよび/またはハードウェアで構成されたロボット200のサイズであり得る。例示として、フットプリント202は、(図示のように)前面204A、右面204C、左面204D、および/または背面204Bを超えて広がり、これが、ソフトウェアおよび/またはハードウェアにおけるロボット200のサイズがどのようなもの(例えば、フットプリント202)であるとロボット200が認識するかということと、ロボット200の実際のサイズがどのようなものであるかということとの差を作る。これにより、ロボット200および/または環境内の物体の間のクリアランスが付与され得る。有利なことに、フットプリント202により、ナビゲーションのための安全バッファが付与され得る。フットプリント202のサイズおよび/または形状は、所望のクリアランス、環境の複雑さ、支援に対する許容範囲、衝突のリスク(例えば、衝突の発生、衝突の損傷の量、など)、および/または他の要因を含む、いくつかの要因に少なくとも部分的に基づき得る。図示のように、フットプリント202は長方形であるが、フットプリント202は、正方形、三角形、長方形、平行四辺形の非対称形状、曲線など、望ましい任意の形状を取ることができる。さらに、フットプリント202は、2次元として見た平面図で例示されている。ただし、場合によっては、フットプリント202は、ロボット200の複数の表面からのロボット200のロボット200の認識を反映する3次元であり得る。
【0043】
図示のように、いくつかの実装形態では、フットプリント202は、ロボット200の実際のサイズより大きくなり得る。当業者であれば、本開示の内容が与えられれば、ロボット200に対するフットプリント202の各面からのクリアランスの量は、異なる点で独立して変化することができ、フットプリント202は、ロボット200とは異なる形状であり、全体に非対称なクリアランスおよび/または変動を有し得ることを理解することができる。いくつかの実装形態では、フットプリント202は、ロボット200とサイズおよび/または形状が実質的に同様であり、クリアランスを作らないことが可能である。有利なことに、この実質的な類似性を有することにより、ロボット200は、物体の周りを厳密にナビゲートし、および/または支援を最小限に抑えることを可能にすることができる。しかしながら、この実質的な類似性を有することは、ロボット200のマッピングおよび/またはナビゲーションにおけるノイズおよび/または異常による衝突のリスクを高める可能性がある。
【0044】
場合によっては、ロボット200は空間に収まることができるが、フットプリント202がロボット200に、ロボット200が収まらないと認識させることができる。そのような場合、フットプリント202が空間を横切ることができないために停止しているロボット200は、支援シナリオを生じさせることができる。次に、オペレータは、ロボット200が実際に空間を横断することができるかどうかを判定し、それに応じてロボット200に命令することができる。
【0045】
別の例示として、支援はロボットが身動きできなくなることに関連し得る。例えば、ロボットは、ロボットがタスクの実行に制限を有する場合、身動きできなくなり得る。例示として、ロボットは、ロボットが自律的にナビゲートすることができない領域に入り得る。そのようなことは、逆方向に移動できないこと、および/または特定の方向(例えば、左、右、前、後ろなど)に動作できないことを含む、ナビゲーション制限をロボットが有する場合に当てはまり得る。そのような場合、オペレータは、ロボットの制限内で行動を組み合わせて脱出する、および/またはロボットを物理的に回転させるように、ロボットに命令を与えることを所望してもよい。別の例として、ロボットは、物体を複数回通過して前進することを無駄に試行することがある。ロボットはまた、内部エラーおよび/または他の原因により身動きできなくなることがある。
【0046】
本開示のいくつかの実装形態では、支援は、命令および/またはロボットとの相互作用を含むことができる。例えば、オペレータは、ロボットを移動させること(例えば、ロボットを制御すること、ロボットに接触すること、ロボットを収拾すること、ロボットを回転させることなど)、ロボットに前進するように伝えること、ロボットをリセットすること、および/または他の支援によって、エラーおよび/または支援のイベントに応答することができる。
【0047】
当業者であれば、本開示の内容が与えられれば、ロボットを支援することが望ましいことがある任意の数の事例があり、本開示のシステムおよび方法はそれらの状況のいずれにも容易に適応可能であることを理解するはずである。
【0048】
図2Bは、本開示のいくつかの実装形態による、無駄に物体250の周りをナビゲートしているロボット200の上面図である。ロボット200は最初に経路252Aに沿って進むことができる。物体250は、経路252Aに沿って位置する位置254Aにあり得る。ロボットは、(例えば、
図3を参照して記載されるようなセンサユニット312の)1つ以上のセンサを使用して物体を検出することができる。その結果、ロボット200は、ロボット200が計画している間にクリアであるように見え得る経路252Bに沿って進むことにより、位置254Aの周りをナビゲートすることを試行することができる。しかしながら、ロボット200が経路252Bに沿って進むことを試行するとき、物体250は位置254Bに移動し得る。したがって、ロボット200は前進を妨げられ得る。場合によっては、ロボット200は再び経路252Aに経路変更することができる。ただし、その後、物体250は、ロボット200が経路変更することができる前に位置254Aに戻ることができる。この経路変更は、無駄に複数回行われることが可能である。したがって、ロボット200は、所定の数の経路変更試行後に支援を要求することができる。所定の数の経路変更試行は、ロボット200が支援を要請する前に所望される時間の量、ロボット200が検討している場合のロボット200の外観(例えば、公衆の前で混乱しているように見えることは、ロボットにとって望ましくない場合があり、したがって、支援が要請される前に所望される経路変更が少なくなり得る)、所望の支援数(例えば、安全および/または他の理由で支援が多いほうが、またはロボットのオペレータへの依存性を低下させるために支援が少ないほうが望ましい場合がある)、経路変更の頻度、問題を解決するための経験的な経路変更数、および/または他の考慮事項に、少なくとも部分的に基づいて決定することができる。
【0049】
図1に戻ると、ブロック106は、支援を要請することを含むことができる。支援を要請することには、ロボットにおける支援を示す表示、オペレータへのメッセージの送信(例えば、無線信号または有線信号を介して)、遠隔操作センターへの通信、および/または支援の少なくとも一部を示す任意の通信の送信が含まれる。支援は、オペレータがロボットを物理的に支援し(例えば、ロボットの移動、障害物の移動、ロボットのタスクに関連する物体の移動など)、および/またはロボットに対する指示を発行(例えば、ユーザインターフェース、無線信号、有線信号などを介して)することにより、行われ得る。
【0050】
図3は、本開示のいくつかの動作原理による、ロボット200の機能ブロック図である。
図3に例示されるように、ロボット200は、コントローラ304、メモリ302、ユーザインターフェースユニット318、マッピングおよび位置特定ユニット324、センサユニット312、アクチュエータユニット320、および通信ユニット322、ならびに他のコンポーネントおよびサブコンポーネント(例えば、それらのいくつかは例示されなくてもよい)を含むことができる。
図3には特定の実装形態が例示されているが、本開示の内容が与えられた当業者には容易に分かるように、アーキテクチャは特定の実装形態において変更され得ることが理解できる。本明細書で使用される場合、ロボット200は、本開示に記載される任意のロボットの少なくとも一部を代表することができる。
【0051】
コントローラ304は、ロボット200によって実行される様々な動作を制御することができる。コントローラ304は、1つ以上のプロセッサ(例えば、マイクロプロセッサ)および他の周辺機器を含むことができる。本明細書で使用される場合、プロセッサ、マイクロプロセッサ、および/またはデジタルプロセッサは、限定はしないが、デジタル信号プロセッサ(「DSP」)、縮小命令セットコンピュータ(「RISC」)、汎用(「CISC」)プロセッサ、マイクロプロセッサ、ゲートアレイ(例えば、フィールドプログラマブルゲートアレイ(「FPGA」))、プログラマブルロジックデバイス(「PLD」)、再構成可能コンピュータファブリック(「RCF」)、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ(例えば、ニューロモルフィック(neuromorphic)プロセッサ)、および特定用途向け集積回路(「ASIC」)などの任意の種類のデジタル処理装置を含むことができる。そのようなデジタルプロセッサは、単一の一体型集積回路ダイに含まれてもよく、または複数のコンポーネントにわたって分散されてもよい。
【0052】
コントローラ304は、メモリ302に動作可能および/または通信可能に結合され得る。メモリ302は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、不揮発性ランダムアクセスメモリ(「NVRAM」)、プログラム可能な読み取り専用メモリ(「PROM」)、電気的消去可能でプログラム可能な読み取り専用メモリ(「EEPROM」)、ダイナミックランダムアクセスメモリ(「DRAM」)、モバイルDRAM、シンクロナスDRAM(「SDRAM」)、ダブルデータレートSDRAM(「DDR/2 SDRAM」)、拡張データ出力(「EDO」)RAM、高速ページモードRAM(「FPM」)、低遅延DRAM(「RLDRAM」)、スタティックRAM(「SRAM」)、「フラッシュ」メモリ(例えば、NAND/NOR)、メモリスタメモリ、擬似スタティックRAM(「PSRAM」)などを含むがこれらに限定されない、デジタルデータを格納するように構成された任意の種類の集積回路または他の記憶デバイスを含み得る。メモリ302は、コントローラ304に命令およびデータを提供することができる。例えば、メモリ302は、ロボット200を動作させるために処理装置(例えば、コントローラ304)により実行可能である複数の命令が格納された非一時的なコンピュータ可読記憶装置および/または媒体であり得る。場合によっては、命令は、処理装置によって実行されたときに、処理装置に本開示に記載された様々な方法、特徴、および/または機能を実行させるように構成され得る。したがって、コントローラ304は、メモリ302内に格納されたプログラム命令に基づいて論理演算および算術演算を実行することができる。場合によっては、メモリ302の命令および/またはデータは、ハードウェア、ロボット200内にローカルに位置するもの、およびロボット200から遠隔に位置するもの(例えば、クラウド、サーバ、ネットワークなど)の組み合わせに格納できる。
【0053】
いくつかの実装形態では、センサユニット312は、ロボット200内および/またはロボット200の周囲の特性を検出することができるシステムおよび/または方法を含むことができる。センサユニット312は、複数のセンサおよび/またはセンサの組み合わせを含むことができる。センサユニット312は、ロボット200の内部または外部にあるセンサを含むことができ、および/または、部分的に内部および/または部分的に外部にあるコンポーネントを含むことができる。場合によっては、センサユニット312は、ソナー、光検出および測距(「LIDAR」)センサ、レーダ、レーザ、カメラ(ビデオカメラ(例えば、赤-青-緑(「RGB」)カメラ、赤外線カメラ、3Dカメラ、サーマルカメラなどを含む)、飛行時間(「TOF」)カメラ、アンテナ、動き検出器、マイクロフォン、および/または当技術分野において既知の任意の他のセンサなどの1つ以上の外受容センサを含むことができる。いくつかの実装形態では、センサユニット312は、生の測定値(例えば、電流、電圧、抵抗、ゲートロジックなど)および/または変換された測定値(例えば、距離、角度、障害物内の検出点など)を収集することができる。場合によっては、測定値は、集約および/または要約することができる。センサユニット312は、測定値に少なくとも部分的に基づいてデータを生成することができる。そのようなデータは、マトリックス、アレイ、待ち行列、リスト、アレイ、スタック、バッグなどのデータ構造に格納することができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ぶことができる。
【0054】
いくつかの実装形態では、センサユニット312は、ロボット200の内部特性を測定することができるセンサを含むことができる。例えば、センサユニット312は、ロボット200の温度、電力レベル、状態、および/または任意の他の特性を測定することができる。場合によっては、センサユニット312は、ロボット200の走行距離測定を使用して場所を決定するように構成することができる。例えば、センサユニット312は、加速度計、慣性測定ユニット(「IMU」)、走行距離計、ジャイロスコープ、スピードメータ、カメラ(例えば、視覚的走行距離測定を使用する)、時計/タイマなどのセンサを含むことができる、固有受容センサを含むことができる。走行距離測定は、ロボット200の自律ナビゲーションおよび/または他の自律的な行動を容易にすることができる。この走行距離測定は、初期の場所に対するロボット200の位置の測定値を含むことができる(例えば、位置が、ロボットの場所、変位、および/または向きを含み、時には本明細書で使用されるような姿勢という用語と交換可能であり得る場合)。そのようなデータは、マトリックス、アレイ、待ち行列、リスト、アレイ、スタック、バッグなどのデータ構造に格納することができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ぶことができる。
【0055】
マッピングおよび位置特定ユニット324は、センサユニット312からセンサデータを受信して、ロボット200をマップに位置特定することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット324は、ロボット200がそれ自体をマップの座標内でおよび/または場所(例えば、初期化場所、終了場所、ビーコン、基準点など)に対して位置特定することを可能にする位置特定システムおよび方法を含むことができる。マッピングおよび位置特定ユニット324はまた、グラフ(例えば、位置グラフ)および/またはマップを生成することなどによって、ロボット200によって取得された測定値を処理することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット324は、コントローラ304の少なくとも一部であり得る。
【0056】
いくつかの実装形態では、ユーザインターフェースユニット318は、ユーザがロボット200と対話できるように構成することができる。例えば、ユーザインターフェース318は、タッチパネル、ボタン、キーパッド/キーボード、ポート(例えば、汎用シリアルバス(「USB」)、デジタルビジュアルインターフェース(「DVI」)、ディスプレイポート、イーサーター(E-Sata)、ファイアワイヤ(Firewire)、ピーエス2(PS/2)、シリアル(Serial)、ブイジーエイ(VGA)、スカジー(SCSI)、オーディオポート、高品位マルチメディアインターフェース(「HDMI」)、パーソナルコンピュータメモリカード国際協会(「PCMCIA」)ポート、メモリカードポート(例えば、セキュアデジタル(「SD」)およびミニSD)、および/またはコンピュータ可読媒体用のポート)、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および/または有線でまたは無線で結合されているかにかかわらず、ユーザがデータおよび/またはコマンドを入力および/または受信するための任意のインターフェースを含むことができる。ユーザインターフェースユニット318は、限定はしないが、液晶ディスプレイ(「LCD」)、発光ダイオード(「LED」)ディスプレイ、LED・LCDディスプレイ、面内スイッチング(「IPS」)ディスプレイ、陰極線管、プラズマディスプレイ、高精細(「HD」)パネル、4Kディスプレイ、レティナ(retina)ディスプレイ、有機LEDディスプレイ、タッチスクリーン、サーフェイス、キャンバス、および/または視覚的表現のための当技術分野において既知の任意のディスプレイ、テレビ、モニタ、パネル、および/またはデバイスを含むことができる。いくつかの実装形態では、ユーザインターフェースユニット318は、ロボット200の本体上に位置付けされ得る。いくつかの実装形態では、ユーザインターフェースユニット318は、ロボット200の本体から離れて位置付けすることができるが、(例えば、送信機、受信機、および/もしくは送受信機を含む通信ユニットを介して)ロボット200と直接、または(例えば、ネットワーク、サーバ、および/またはクラウドを通じて)間接的に通信可能に結合することができる。
【0057】
いくつかの実装態様では、通信ユニット322は、1つ以上の受信機、送信機、および/または送受信機を含むことができる。通信ユニット322は、限定はしないが、1つ以上のブルートゥース(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」))、および/または任意の他の形式の無線データ伝送などの伝送プロトコルを送信/受信するように構成することができる。
【0058】
本明細書で使用される場合、ネットワークインターフェースは、ファイアワイヤ(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)(例えば、TVNET(商標))、無線周波数チューナ(例えば、帯域内(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は、IEEE 802.11規格、IEEE 802.11規格の変形、IEEE 802.11規格に関連する規格(例えば、802.11a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay)、および/または他の無線規格のうちの1つ以上を含むことができる。
【0059】
通信ユニット322はまた、信号線および接地を有する任意のケーブルなどの有線接続を介して伝送プロトコルを利用して送信/受信するように構成され得る。例えば、そのようなケーブルは、イーサネットケーブル、同軸ケーブル、ユニバーサルシリアルバス(「USB」)、ファイアワイヤ(FireWire)、および/または当技術分野において既知の任意の接続を含むことができる。そのようなプロトコルは、例えば、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動通信ネットワーク、クラウド、サーバなどの外部システムと通信するために通信ユニット322によって使用され得る。通信ユニット322は、数字、文字、英数字、および/または記号を含む信号を送受信するように構成され得る。場合によっては、例えば、128ビットもしくは256ビット鍵などのアルゴリズム、および/または高度暗号化規格(「AES」)、RSA、データ暗号化規格(「DES」)、トリプルDESなどの規格に準拠する他の暗号化アルゴリズムを使用して、信号を暗号化することができる。通信ユニット322は、ステータス、コマンド、および他のデータ/情報を送受信するように構成され得る。例えば、通信ユニット322は、ユーザオペレータと通信して、そのユーザがロボット200を制御することを可能にすることができる。通信ユニット322は、ロボット200がデータ、状態、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ/ネットワーク(例えば、遠隔ネットワーク)と通信することができる。サーバはまた、ロボット200を遠隔的に監視および/または制御するために使用することができるコンピュータ(複数可)および/または装置(複数可)に通信可能に結合することができる。通信ユニット322はまた、ロボット200用のサーバから更新(例えば、ファームウェアまたはデータの更新)、データ、状態、コマンド、および他の通信を受信することができる。
【0060】
アクチュエータユニット320は、場合によってはタスクを実行するために作動させるために使用される任意のシステムを含むことができる。例えば、アクチュエータユニット320は、駆動される磁石システム、モーター/エンジン(例えば、電気モーター、燃焼機関、蒸気機関、および/または当技術分野において既知の任意の種類のモーター/エンジン)、ソレノイド/ラチェットシステム、圧電システム(例えば、インチワームモーター)、磁歪素子、ジェスティキュレーション、および/または当技術分野において既知の任意のアクチュエータを含むことができる。いくつかの実装形態において、アクチュエータユニット320は、推進を動力化するなど、ロボット200の移動を可能にするシステムを含むことができる。例えば、電動推進は、ロボット200を前方または後方に移動させることができ、かつ/または少なくとも部分的にロボット200を回転させる(例えば、左、右、および/または他の任意の方向に)のに使用することができる。例示として、アクチュエータユニット320は、ロボット200が移動しているかまたは停止している場合に制御し、および/またはロボット200がある場所から別の場所にナビゲートすることを可能にすることができる。アクチュエータユニット320はまた、水のオン/オフ、ブラシのオン/オフ、水の噴霧、真空掃除機のオン/オフ、真空掃除機ホース位置の移動、付属物(例えば、ロボットの腕、脚、手、足など)の移動、および/または任意の他の行動など、ロボット200の他の器具を作動させるように構成することができる。
【0061】
図3に関して記載されたユニット(メモリ302、コントローラ304、センサユニット312、ユーザインターフェースユニット318、アクチュエータユニット320、通信ユニット322、マッピングおよび位置特定ユニット324、および/または他のユニットを含む)のうちの1つ以上は、統合システムなどにおいてロボット200に統合することができる。しかしながら、いくつかの実装形態では、これらのユニットのうちの1つ以上は、取り付け可能なモジュールの一部であり得る。このモジュールは、それがロボットとして挙動するように自動化するために既存の装置に取り付けることができる。したがって、ロボット200に関して本開示で記載されている特徴は、既存の装置に取り付けることができ、および/または統合システムにおいてロボット200に統合することができるモジュール内でインスタンス化することができる。さらに、場合によっては、当業者であれば、本開示の内容が与えられれば、本開示に記載されている特徴の少なくとも一部をクラウド、ネットワーク、および/またはサーバなどで遠隔的に機動することができることを理解するはずである。場合によっては、コントローラ304は、
図3に例示されるユニットのうちの1つ以上を含むように実行することができ、および/またはロボット200によって実行される他の行動はコントローラ304によって処理することができる。
【0062】
いくつかの実装形態では、ロボット200は、遠隔ネットワークに通信可能に結合され得る。
図4は、本開示のいくつかの実装形態による、遠隔ネットワーク402と通信可能および/または動作可能に結合されたロボット200を含むシステム400の機能ブロック図である。遠隔ネットワーク402は、制限もしくは定義された期間、または無制限もしくは不定の期間にわたって、仮想マシン、プロセス、または他のリソースをインスタンス化するために呼び出すことができる、ハードウェア、ソフトウェア、サービス、および/またはリソースの集合を含むことができる。遠隔ネットワーク402は、インターネットにアクセスするデバイスおよび/またはサーバを含む、複数のデバイス、システム、および/またはサーバと通信可能および/または動作可能に結合することができる。アクセスポイント404Aおよび404Bなどのアクセスポイントのうちの1つ以上は、コンピュータ、モバイルデバイス、タブレット、スマートフォン、携帯電話、携帯情報端末、ファブレット、電子書籍リーダー、スマートウォッチ、セットトップボックス、インターネットストリーミングデバイス、ゲーム機、スマート家電、および/または、インターネットおよび/または任意のネットワークプロトコルにアクセスできる任意のデバイスを含むがこれらに限定されない、デバイス、システム、および/またはサーバであり得る。2つのアクセスポイントが例示されているが、所望に応じてより多くのまたはより少ないアクセスポイントがあってもよい。
【0063】
本明細書で使用される場合、遠隔ネットワーク402を操作することができる、すなわち、遠隔ネットワーク402は、情報を受信、処理、および/または送信することができる、内蔵コンピュータを有することができる。これらのコンピュータは、自律的におよび/または1人以上の人間のオペレータによる制御下で、動作することができる。同様に、遠隔ネットワーク402は、遠隔ネットワーク402を操作するために同様に使用することができる、アクセスポイント(例えば、アクセスポイント404Aおよび404B)を有することができる。アクセスポイントは、情報を受信、処理、および/または送信することができる、コンピュータおよび/または人間のオペレータを有することができる。したがって、本明細書における遠隔ネットワーク402の動作への言及は、人間のオペレータおよび/またはコンピュータのオペレータに適用することができる。
【0064】
いくつかの実装形態では、ロボット200と実質的に同様の1つ以上のロボットは、遠隔ネットワーク402と通信可能および/または動作可能に結合することができる。これらのロボットの各々は、状態、コマンド、および/または動作データを遠隔ネットワーク402に通信することができる。遠隔ネットワーク402はまた、状態、コマンド、および/または動作データを、ロボットのうちのこれらの1つ以上に格納し、および/または通信することができる。
【0065】
当業者であれば、本開示の内容が与えられれば、本開示の一部がロボット200、ネットワーク402、および/またはアクセスポイント404Aおよび/または404Bによって実行され得ることを理解するはずである。特定の例は、ロボット200、ネットワーク402、および/またはアクセスポイント404Aおよび/または404Bのうちの1つ以上を参照して記載され得るが、例の特徴は、実質的に同様の結果を達成するように、ロボット200、ネットワーク402、および/またはアクセスポイント404Aおよび/または404B中に分散され得ることは理解できるはずである。
【0066】
図5は、本開示のいくつかの実装形態による、支援要求を発行するための例示的な方法500のプロセスフロー図である。ブロック502は、エラーおよび/または支援イベントを検出することを含む。エラーおよび/または支援イベントは、センサユニット312のうちの1つ以上を使用して検出することができる。例えば、センサユニット312の外受容センサは、ロボット200の環境に関するエラーおよび/または支援イベントを検出することができる。例示として、エラーおよび/または支援イベントは、ロボット200がタスクを進行させることに失敗することに関連し得る。場合によっては、ロボット200は、センサユニット312のセンサ(例えば、LIDAR、ソナー、カメラなど)を使用して、物体(例えば、アイテム、障害物、人、平らな物体、大きな物体、ガラスなど)を検出することができる。
【0067】
例えば、センサユニット312のうちのいくつかのセンサは、ロボット200の環境の特徴を検出するためにエネルギーを放出し、受け取る。そのようなエネルギーには、音、光、電磁波などのうちの1つ以上を含めることができる。例示として、センサは、受信機において光を放出および測定することにより環境の特性を検出することができる、LIDARとすることができる。障害物の存在は、LIDARを使用することにより検出することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット324は、障害物がロボット200のグローバルパスまたはローカルパスに沿って落ちることを判定することができる。したがって、ロボット200は、行路が妨げられていると判定することができる。他の例には、ソナーにより使用される音波が含まれる。また、様々なカメラが発光および受光し、および/またはフィルタを使用して特定の周波数の光を検査してもよい。
【0068】
場合によっては、物体の特性を検出し、および/またはセンサユニット312のセンサからのデータをセンサデータのライブラリ内の識別された物体と照合することなどにより、物体および/または障害物をロボット200によって識別することができる。場合によっては、ロボット200は物体を具体的に識別せずに、物体の存在を検出するのみであってもよい。別の例として、センサユニット312の固有受容センサは、ロボット200に関連するエラーおよび/または支援イベントを検出することができる。固有受容センサは、ロボット200が支援を所望し得るロボット200の特性を検出することができる。いくつかの実装形態では、ロボット200がエラーおよび/または支援イベントを検出すると、ロボット200はエラーおよび/または支援イベントを識別することができる。他のエラーおよび支援イベントは、
図1の方法100のブロック104を参照して記載されたものと実質的に同様であり得る。
【0069】
場合によっては、メモリ302は、センサデータのライブラリを格納することができる。場合によっては、センサデータを少なくとも部分的に支援イベントおよび/またはエラーに関連付けることができる。いくつかの実装形態では、このライブラリは、異なる組成(例えば、材料、反射特性、分子構造など)、異なる照明条件、角度、サイズ、距離、明瞭度(例えば、ぼやけている、遮られている/隠れている、フレームから部分的に外れているなど)、色、周囲、および/または他の条件を有する物体に関連するセンサデータなどの、異なる条件の支援イベントおよび/またはエラーに関連するセンサデータを含むことができる。ライブラリ内のセンサデータは、センサ(例えば、センサユニット312のセンサまたは任意の他のセンサ)によって取得され、および/または、異なる照明条件、角度、サイズ、距離、明瞭度(例えば、ぼやけている、遮られている/隠れている、フレームから部分的に外れているなど)、色、周囲、および/または他の条件からのライブラリセンサデータ(例えば、これらのライブラリデータを全体的にデジタルで、および/または実際のセンサデータから始めて、生成/シミュレートする(例えば、仮想世界で)ことができる)を生成/シミュレートするように構成されたコンピュータプログラムを用いるなどして自動的に生成され得る。ライブラリ内の画像の数は、利用可能なデータの量、ロボット200が動作する周囲環境の変動性、物体の複雑さ、物体の外観の変動性、ロボットの物理的特性、センサの特性、および/または利用可能なストレージ空間の量(例えば、ライブラリ、メモリ302、および/またはローカルまたは遠隔ストレージ内)のうちの1つ以上に少なくとも部分的に依存し得る。いくつかの実装形態では、ライブラリの少なくとも一部はネットワーク(例えば、クラウド、サーバ、分散ネットワークなど)に格納されてもよく、および/またはメモリ302内に完全に格納されなくてもよい。さらに別の例として、個々のロボットによって捕捉されたデータが他のロボットと集合的に共有されるように、様々なロボット(例えば、共通の製造者、ユーザ、ネットワークなどによるロボットに共通に関連付けられる)をネットワーク化することができる。そのような方法で、これらのロボットは、エラーおよび/または支援イベントを容易に検出および/または識別する能力を促進するために、センサデータを学習および/または共有するように構成することができる。
【0070】
いくつかの実装形態では、センサデータの所定のパターンおよび/またはロボット200によって学習されたパターンにより、ロボット200は発生したエラーおよび/または支援イベントを識別することができる。例えば、エラーおよび/または支援イベントには、致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなることなどの、エラーのカテゴリを含めることができる。エラーのカテゴリの他の識別はまた、バッテリー切れ、行く手の障害物、洗浄液不足、スタックエラー、過熱、検知された人、および/またはエラーの任意の所定の識別などの特定のものを含んで、事前に設定され得る。場合によっては、ロボット200は、ロボット200のセンサで検出された人、動物、物体、および/または他体を識別および/または認識するように構成することができる。当業者であれば、本開示の内容が与えられれば、エラーおよび/または支援イベントに、所望に応じて所定の識別を与えることができることを理解するはずである。例えば、ロボット200が人、動物、物体、および/または他体を検出するかどうかに基づいて、所望される支援の種類は異なり得る。ロボット200は、ロボット200が検出/識別するものに基づく論理演算に従うことができる。人および/または動物は、タスクを実行する際にロボット200の軌道から遠ざかることができる。したがって、場合によっては、ロボット200が人および/または動物を検出する場合、ロボット200は、人および/または動物が遠ざかるのを待つことができる。場合によっては、ロボット200は、人および/または動物に遠ざかる時間を付与するために、支援イベントおよび/またはエラーを全く発行しなくてもよく、および/または、より長い待機(例えば、所定の時間)の後、支援イベントおよび/またはエラーを発行してもよい。別の例として、ロボット200がロボット200の行路内のボックスおよび/または静止物体を識別する場合、ロボット200は、ボックスおよび/または静止物体はたいてい遠ざからないため、ロボット200はより早く(例えば、所定の時間)支援イベントおよび/またはエラーを発行してもよい。
【0071】
例示として、ロボット200は、センサユニット312の特定のセンサを使用して致命的エラーおよび/または内部エラーを検出することができる。例えば、電気スイッチ、光センサ、および/または当技術分野において既知の他のセンサを使用して、ロボット200内の流体が所望のレベルを下回るときを測定することができる。ロボット200は、試験手順の実施を含む、ロボット200の様々な構成要素を監視することができる。したがって、ロボット200は、エラーが発生するときを検出することができる。
【0072】
別の例示として、ロボット200は、ロボット200がタスクを進行させることに失敗することなどの他のエラーを検出することができる。場合によっては、ロボット200は、LIDAR、ソナー、カメラ(例えば、TOFカメラ、RBGカメラなど)、および/または物体を検出するように構成された任意の他のセンサなどの外受容センサを使用して障害物を検出することができる。場合によっては、ロボット200が外受容センサのデータにローカルに現れる1つ以上のポイントによって物体を検出することができる場合など、ローカル計画を通じて物体を検出することができる。このローカル計画は、ロボット200の軌道内の物体の存在を検出することなどによって、ロボットが外受容センサの範囲内の空間をナビゲートするために使用することができる。このようにして、ロボット200は、物体への衝突を回避することができる。場合によっては、ロボット200は、ロボット200のグローバル計画を通じて物体を検出することができ、ロボット200はグローバルマップから物体を検出することができる。別の例示として、ロボット200は、ロボット200の状態(例えば、固有受容センサからのデータに少なくとも部分的に基づいて生成された状態)から身動きできないことを検出することができる。
【0073】
いくつかの実装形態では、エラーおよび/または支援イベントの検出は、時間窓に少なくとも部分的に基づくことができる。例示として、物体はロボット200の前に移動し、その後遠ざかることができる。場合によっては、エラーおよび/または支援イベントが単一の測定に基づいている場合、ロボット200は、センサデータ内の画素が物体の存在を示すときに物体を検出することができる。ただし、これは望ましくない場合がある。ロボット200は、停止しないようにある程度の堅牢性を有し、ロボット200が物体に遭遇するたびにエラーおよび/または支援イベントに関する警告を生成することが望ましい場合がある。さらに、センサの単一の測定に依存してエラーおよび/または支援イベントを検出することは、ノイズの影響を大きく受け得る。例えば、測定値の短時間のおよび/または一時的な変動により、誤検出が発生し得る(例えば、物体が検出された、流体が低いと認識された)。したがって、エラーおよび/または支援イベントの検出は、場合によっては、時間窓内のセンサからの持続的および/または測定パターンに少なくとも部分的に依存し得る。
【0074】
時間窓の長さは、所望に応じて事前に設定することができる。場合によっては、長さは、誤検出、検出に失敗する危険性、経験的データ、環境的特徴、および/または他の考慮事項に対する許容範囲に少なくとも部分的に基づくことができる。場合によっては、エラーおよび/または支援イベントをオペレータの支援なしで解決するための十分な時間を与えるために、時間の長さをおよそ15秒にすることができる。
【0075】
いくつかの実装形態では、ロボット200は、ロボット200がエラーおよび/または支援イベントを検出する前に停止させることができる。例示として、場合によっては、ロボット200が障害物を検出した場合(例えば、腕を移動させる、またはナビゲートすることなどにより、作動している間)、ロボット200は停止することができる。次いで、ロボット200は、他の一連の行動を実施して、エラーおよび/または支援イベントが発生したかどうかを確認することができる。例えば、ロボット200は、障害物の周りに経路があるかどうかを判定することができる。ロボット200が取ることができるとロボット200が判定する別の一連の行動がない場合、ロボット200は停止位置に留まることができる。場合によっては、障害物が遠ざかることがあり、ロボットが前進することができる。他の場合には、障害物が持続することがあり、ロボット200がエラーおよび/または支援イベントを検出することがある。
【0076】
場合によっては、ロボット200を停止させることには、タスクの実行を停止することが含まれる。例えば、ロボット200は、ブラシ、真空掃除機、手足、流体出力、車輪などを移動させるように構成されたアクチュエータなどの、タスクを実行するアクチュエータを有することができる。これらの作動は、特定のシナリオにおいて、ロボット200の環境に有害であり、および/またはロボット200を損耗させ得る。例示として、ロボット200が床掃除機である場合、ロボット200は床を磨くブラシを有することができる。ロボット200が移動していない場合、ブラシはある期間、実質的に同じ場所で稼働する可能性があり、この稼働は、ブラシが床に損傷を与えることにつながり得る。したがって、停止することは、アクチュエータを作動させてブラシデッキを持ち上げること、および/またはブラシの回転を停止することを含むことができる。この同じ例のさらなる例示として、床掃除機はまた、床に水を置いて掃除することが可能であってもよい。ロボット200が移動していない場合、背面の真空掃除機がすべての水を収拾せず、こぼしを発生させる可能性がある。本開示のいくつかの実装形態では、ロボット200は、弁を遮断し、および/または他の方法でロボット200が床に水を置くことを阻止することができる。この同じ例のさらなる例示として、床掃除機の真空掃除機は、長期間同じ場所に放置されると摩耗する可能性がある。本開示のいくつかの実装形態では、ロボット200は真空掃除機を止めることができる。別の例として、ロボット200は、運動のために稼働するモーターを有してもよい。ロボット200がタスクを実行していないときにモーターをオンのままにすると、モーターの損耗、汚染、および/または他の損害につながり得る。
【0077】
いくつかの実装形態では、ある場合に検出されたエラーおよび/または支援イベントは、他の場合に検出されたエラーおよび/または支援イベントではなくてもよい。例えば、ロボット200は、オペレータが1回の反復でエラーおよび/または支援イベントをどのように扱うかを学習および/または観察し、同じエラーおよび/または支援イベントが後で発生する場合に実質的に同様の行動を実行することができる。例示として、(例えば、複数の反復のうちの)第1の反復では、ロボット200は方法500を実行することができる。ロボット200は、ブロック502で、オペレータにより取られた行動を、検出されたエラーおよび/または支援イベントを生じさせた状況と関連付けることができる。後続の反復では、ロボット200が実質的に同様の状況を検出すると、ロボット200は、そのような状況に関連付けられた行動を取るべきであると判定することにより、方法500のブロックの少なくとも一部を実行することを回避することができる。場合によっては、ロボット200は、反復機械学習プロセスを通じてなど、複数の反復にわたってオペレータにより取られた行動を関連付けることを学習することができる。
【0078】
ブロック504は、エラーおよび/または支援イベントに関する警告を生成することを含む。警告は、ユーザインターフェースユニット318、遠隔ネットワーク402、および/またはアクセスポイント404Aおよび/または404Bに現れ得る。警告には、エラーおよび/または支援イベントが発生したという一般的な記述を含めることができ、および/または警告には、エラーおよび/または支援イベントの識別を含めることができる。
【0079】
いくつかの実装形態では、支援が現れる場所を決定するために論理演算を実行することができる。いくつかの実装形態では、そのような論理演算は、コントローラ304を使用することなどにより、ロボット200によって実行することができる。論理演算は、ロボット200のセンサデータ、環境条件、環境内の識別された物体、識別されたエラーおよび/または支援イベント、および/または、エラーおよび/または支援イベントの状況の任意の他のインジケータなどの状況に少なくとも部分的に基づいて、支援が現れる場所を決定することができる。例示として、支援イベントが狭すぎる進路である場合(およびロボット200が通過できるかどうか不明である場合)、ロボット200は遠隔ネットワーク402に支援を発行することができる。次いで、遠隔ネットワーク402(および/または遠隔ネットワーク402のオペレータ)は、ロボット200が通過できるかどうか、および/またはロボット200に前進するように伝えることができるかどうかを判定することができる。ロボット200が少なくとも部分的に遠隔ネットワーク402の決定に基づいて通過できない場合、遠隔ネットワーク402は、オペレータ(例えば、ユーザインターフェースユニット318および/またはアクセスポイント404Aおよび/または404Bで支援要求を見ることができる)に支援要求を発行することができる。このようにして、オペレータは、(例えば、物体および/またはロボット200を移動させることにより)ロボット200を支援することができる。別の例として、封鎖された行路は、遠隔ネットワーク402(および/または遠隔ネットワーク402のオペレータ)による決定を必要としなくてもよく、ロボット200および/または物体を移動させ得る物理的オペレータにより迅速に向けることにより、より素早い支援が行われ得る。したがって、ロボット200は、遠隔ネットワーク402が支援するのを待機する代わりに、支援をユーザインターフェース318および/またはアクセスポイント404Aおよび/または404Bに(例えば、ロボット200および/またはアクセスポイント404Aおよび/または404B間で直接、および/またはネットワーク402を通じて)渡すことができる。
【0080】
いくつかの実装形態では、論理演算は、同時に支援を送信する場所を決定することができる。例えば、ロボット200は、複数の遠隔ネットワーク402、ユーザインターフェースユニット318、アクセスポイント404Aおよび/または404B、および/または他のデバイスに支援を発行することができ、支援は実質的に同時に発行される。同様に、このような場合、支援は階層を有さなくてもよく、任意のデバイスからの支援が同様に扱われる。
【0081】
いくつかの実装形態では、遠隔ネットワーク402、ユーザインターフェースユニット318、アクセスポイント404Aおよび/または404B、および/または他のデバイスに対する支援は、応答の権限に関して、および/または支援が要求される順序に関して、少なくとも部分的に特徴付けられる階層などの階層を有することができる。
【0082】
例えば、権限に基づいた階層を実装することができる。そのような場合、ロボット200は、1つのデバイスにより入力される重みを他のデバイスよりも大きく設定することができる。例えば、ユーザインターフェースユニット318はロボット200に配置されている。したがって、ユーザインターフェースユニット318を介して入力された支援は、現在の状況により適切であると認識することができる。したがって、いくつかの実装形態では、ユーザインターフェースユニット318からの命令は、他から受信された命令よりも優先させることができる。
【0083】
別の例として、場合によっては、遠隔ネットワーク402は、少なくとも部分的に集中管理センターとして特徴付けられ得る。したがって、遠隔ネットワーク402(および/または遠隔ネットワーク402のオペレータ)による命令は、複数のロボットにわたる経験の少なくとも一部を反映することができる。場合によっては、そのような命令は他から受信された命令よりも優先させることができる。場合によっては、アクセスポイント404Aおよび/または404B、および/または他のデバイスのうちの1つ以上を、階層内で最高(例えば、最も権威ある)に指定することができる。例えば、アクセスポイント404Aは、ロボット200の専門知識を有することができる開発者、製造者などによって操作することができる。有利なことに、権限に基づいた階層を有することにより、ロボット200が異なる命令を分類し、および/またはより最適な行動を実行することを可能にすることができる。
【0084】
別の例として、いくつかの実装形態では、支援が要求される順序によって階層を特徴付けることができる。例えば、場合によっては、他のデバイスに対して最初に遠隔ネットワーク402に支援を発行することができる。有利なことに、これにより、オペレータを邪魔することなく少なくともいくつかの問題を解決することにより、ユーザ体験を向上させることができる。遠隔ネットワーク402が応答しない、および/または適切な命令および/または支援を与えることができない場合(例えば、物理的な相互作用が望ましい)、支援は、ユーザインターフェースユニット318、アクセスポイント404Aおよび/または404B、および/または他のデバイスに向けることができる。別の例として、より多くの状況知識を有する人(例えば、現場にいる人)が最初に問題に対処することを可能にするために、最初にユーザインターフェースユニット318に支援を発行することができる。場合によっては、安全性および/または他の考慮事項により、即座の現場支援が望ましい場合がある。有利なことに、支援が要求される順序によって特徴付けられる階層を有することにより、リソースに負担をかけずに支援の効率的な解決を可能にすることができる。場合によっては、各支援が発行される間隔に所定の遅延が生じることがある。そのような所定の遅延は、支援を扱う時間の量、デバイスの応答時間(例えば、ユーザインターフェースユニット318を操作する人および/またはコンピュータ、遠隔ネットワーク402、アクセスポイント404Aおよび/または404B、および/または他のデバイス)、応答時間の経験的証拠、ワークフローの最適化、および/または他の考慮事項に、少なくとも部分的に基づいて決定することができる。
【0085】
いくつかの実装形態では、エラーおよび/または支援イベントに関する警告をテキスト形式にすることができる。例示として、警告は、オペレータにエラーおよび/または支援イベントを知らせるためにロボット200のオペレータに送信されるテキストメッセージであり得る。警告は、SMS、インターネット、ラジオ、光、電場、および/または任意の他の形式の通信(例えば、通信ユニット322を使用する)を介して送信することができる。有利なことに、ロボット200の一部のオペレータが他のタスクを実行し、および/または他のロボットを管理してもよいため、警告をオペレータに送信することにより、オペレータがロボット200から離れることおよび/または他のタスクを実行することを可能にすることができる。
【0086】
例示として、
図6Aは、本開示のいくつかの実装形態に従って支援が必要であることを示すディスプレイ600である。ディスプレイ600は、ユーザインターフェースユニット318、遠隔ネットワーク402、および/またはアクセスポイント404Aおよび/または404Bに表示することができる。いくつかの実装形態では、ディスプレイ600は、ロボット200に通信可能に結合された(例えば、アクセスポイント404Aおよび/または404Bの)スタンドアロンデバイス上にあり得る。場合によっては、スタンドアロンデバイスは、ロボット200を支援するために使用されるため、支援デバイスと呼ぶことができる。
【0087】
ディスプレイ600は、支援が必要であることを表示するパネル602を有することができる。パネル602はまた、「エラーが検出されました」、「支援が必要です」、および/または、エラーおよび/または支援イベントの少なくとも一部を示す他のテキストなどの、他のテキストを表示するために使用することができる。
【0088】
パネル614は、エラーおよび/または支援イベントがある理由をさらに明確に表示することができる。例えば、
図6Aに例示されるように、パネル614は、ロボット200が行路から外れており、行路に障害物があることを示している。当業者であれば、本開示の内容が与えられれば、パネル614が、発生したエラーおよび/または支援イベントの少なくとも一部を示す任意のテキストを表示することができることを理解するはずである。例えば、パネル614は、致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および/または、エラーおよび/または支援イベントを生じさせ得る任意の他のイベントの少なくとも一部を示す情報を表示することができる。
【0089】
パネル612は、オペレータおよび/または任意の他のユーザの方向を表示することができる。場合によっては、方向は、エラーおよび/または支援イベントに少なくとも部分的に基づいて状況に応じたものにすることができる。例えば、ロボット200(例えば、ディスプレイ600にロボットアイコン608として表示することができる)が障害物を通過するのを支援する必要がある場合、パネル612は、オペレータおよび/または他のユーザに障害物に対処する命令を表示することができる。例えば、
図6Aに例示されるように、パネル612は、「障害物を除去するか、私を通過させ、次に背面にある青いボタンを押してください」と明示することができる。この例では、ロボット200の背面にある青色のボタンは、オペレータおよび/または他のユーザがエラーおよび/または支援イベントに処置を施したことをロボット200に示すなど、ロボット200にフィードバックを与えるためにユーザが押す外部ボタンとすることができる。場合によっては、ボタンはユーザが押下する物理的なボタンとすることができる。ボタンは、所望に応じて任意の色にすることができる。ボタンは、ユーザインターフェースユニット318を介した入力などの、デジタルボタンおよび/またはロボット200への他の入力機構であり得る。いくつかの実装形態では、ボタンは、ボタンがロボット200を支援することの少なくとも一部であるため、支援ボタンと呼ぶことができる。いくつかの実装形態では、ロボット200が他の手段(例えば、ディスプレイ600)を介して命令を受信する場合でも、ボタンが押されるまでロボット200は前進しない(および/またはロボット200、遠隔ネットワーク402、アクセスポイント404Aおよび/または404Bは、ボタンが押されたことを少なくとも部分的に示す信号を受信する)。いくつかの実装形態では、ボタンは、ロボット200に、ロボット200が動作を続行することとなる場所を再定位および検出させることができる。例えば、ロボット200を移動させた場合、ロボット200は、マッピングおよび位置特定ユニット324を使用して、ロボット200がどこにあり、ロボット200がどの行路を取るべきかを決定することができる。いくつかの実装形態では、ボタンがなくてもよく、ロボット200は、センサユニット312からのデータからオペレータおよび/または他のユーザがエラーおよび/または支援イベントに処置を施したと判定することができる。同様に、ロボット200がエラーおよび/または支援イベントが解決されたと判定すると、ロボット200は、マッピングおよび位置特定ユニット324を使用して、ロボット200がどこにあり、ロボット200がどの行路を取るべきかを決定することができる。当業者であれば、本開示の内容が与えられれば、パネル612内の命令がエラーおよび/または支援イベントに対処するために与えられた任意の命令を含むことができることを理解するはずである。追加の例として、パネル612は、オペレータおよび/またはユーザに、液体を充填すること、ロボット200の一部(例えば、プロペラ、ブラシ、車輪など)を調整すること、ロボット200を移動させること、ロボット200の環境の態様を移動させること、ロボット200を回転させること、および/または他の命令を命令することができる。
【0090】
パネル604は、エラーおよび/または支援イベントに関するオペレータおよび/または他のユーザのためのさらなる情報を含むことができる。例えば、パネル604は、エラーおよび/または支援イベントの視覚的描写を含むことができる。
図6Aに例示されるように、ロボット200は行路から外れており、および/または障害物によって妨害されている。したがって、ロボットアイコン608は、行路610から外れて表示される。いくつかの実装形態では、ロボットアイコン608をパネル604内の他のグラフィックスに対して配置して、ロボット200の位置および/または姿勢を少なくとも部分的に示すことができる。場合によっては、ロボットアイコン608は、ロボット200が行路610により例示される行路から外れていることを反映するために、行路610から外すことができる。場合によっては、ロボット200が行路610により例示される行路上にあることを反映するために、ロボットアイコン608を行路610上とすることができる。
【0091】
いくつかの実装形態では、パネル604は、センサユニット312および/または外部センサの1つ以上のセンサからのデータなどのセンサデータを含むことができる。有利なことに、センサデータはオペレータにコンテキストを与えることができる。いくつかの実装形態では、センサデータは、ロボット200がエラーおよび/または支援イベントを検出したときに見たものの少なくとも一部を示す画像および/またはビデオを含む。
【0092】
アイコン616は、障害物の位置を表示することができる。例えば、アイコン616をロボットアイコン608に対してパネル604内に配置して、ロボット200に対する障害物の相対的な場所、向き、位置、および/または姿勢の少なくとも一部を示すことができる。いくつかの実装形態では、ロボット200が障害物を検出した場所を示すインジケータがある場合がある。例えば、インジケータ606は、アイコン616に対して配置され、ロボット200が障害物を検出した場所の少なくとも一部を示す。場合によっては、インジケータ606は、アイコン608で示される障害物などの障害物を検出したときのロボット200の視野を示す視野を含むことができる。
【0093】
いくつかの実装形態では、ディスプレイ600はまた、支援のためのプロセスを例示することができる。例示として、
図6Bは、本開示のいくつかの実装形態による、ロボット200が行路から外れており、ロボット200の行路に障害物があることを示す表示図である。ディスプレイ600において、行路630は、ロボット200(ロボットアイコン608として示される)が進むように構成された行路を示す。アイコン626は、ロボット200の行路上の相対的な場所を例示している。アイコン628は、障害物を避けるためにロボット200が前進すべき場所を例示している。場合によっては、オペレータは、駆動、運搬、操作、および/または他の方法で並進させるなどにより、インジケータ626で示される場所にロボット200を移動させることができる。アイコン622は、ディスプレイ600の視認者がディスプレイ600をズームインおよび/またはズームアウトすることを可能にし得るズームアイコンであり、視認者が状況をよりよく評価することができるようにする。
【0094】
図6Cは、本開示のいくつかの実装形態による支援後のロボット200の続行を示す表示図である。
図6Cでは、ロボット200は、
図6Bに例示されているアイコン628の場所に前進している。したがって、ロボット200は、行路630によって例示される行路に沿って前進することができる。
【0095】
図5に戻ると、ブロック506は、エラーおよび/または支援イベントに対処したかどうかを判定することを含む。ロボット200は、1つ以上の方法で支援を受けたかどうかを判定することができる。いくつかの実装形態では、ロボット200は、センサユニット312の1つ以上のセンサを使用して、エラーおよび/または支援イベントが解決されたかどうかを判定することができる。例えば、ロボット200は、センサユニット312のうちの1つ以上を使用して、障害物がもはや邪魔にならない、液体が満たされている、ハードウェアおよび/またはソフトウェアが修復されている、および/または致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および/または、エラーおよび/または支援イベントを生じさせ得る任意の他のイベントに、対処したかどうかを判定することができる。
【0096】
場合によっては、ロボット200は、
図6Aを参照して説明したボタンなどのボタンを有することができる。支援が与えられた場合、オペレータおよび/または他のユーザはボタンを押すことができる。
【0097】
場合によっては、外部ソースを使用して、エラーおよび/または支援イベントが解決されたかどうかを判定することができる。例えば、遠隔ネットワーク402は、ロボット200のセンサデータおよび/または他のデータをレビューして、エラーおよび/または支援イベントが解決されたかどうかを判定することができる。別の例として、外部ソースには他のセンサを含めることができる。例示として、ロボット200は、カメラ(例えば、防犯カメラ、サーマルカメラ、閉回路テレビカメラ、および/または他のカメラ)、動き検出器、マイクロフォン、モノのインターネットデバイス、および/または他のセンサなどの他のセンサを考慮して動作させることができる。これらのセンサは、ロボット200のセンサによって収拾されない可能性がある追加情報を提供することができる。有利なことに、そのような外部ソースは、ロボット200がとにかく動作している環境に存在し得る。したがって、外部ソースは追加のインストール、コスト、リソースなどを必要としなくてもよい。
【0098】
図7は、本開示のいくつかの実装形態による、ロボット200に関する情報を提供する外部センサ700の側面図である。図示のように、1つの外部センサである外部センサ700が示されている。ただし、いくつかの実装形態では、複数の外部センサをロボット200の周囲に配置することができる。
【0099】
いくつかの実装形態では、エラーおよび/または支援イベントが解決されたかどうかを判断するために、外部センサからのデータを使用することができる。いくつかの実装形態では、環境内のセンサは事前登録および/または事前定義することができる。例えば、ロボット200および/または遠隔ネットワーク402は、ロボット200の環境内の外部センサのリスト(例えば、メモリに格納されている)を有することができる。ロボットがエラーおよび/または支援イベントが解決されたかどうかを判断しているとき、ロボット200および/または遠隔ネットワーク402は、リスト上の1つ以上の外部センサに信号を送信することができる。例えば、信号は、(例えば、データを送信する)コマンド、質問、クエリ、および/または外部センサ(例えば、外部センサ700)にセンサデータを送信させる他の信号であり得る。場合によっては、ロボット200が外部センサに近接することにより、リストを更新することができる。例えば、ロボット200は、BLUETOOTH、無線周波数、近接場通信、および/または他の形態の無線通信などの所定範囲を有する信号を、そのような信号の範囲内の外部センサに送信することができる。有利なことに、外部センサがそのような信号の範囲内にある場合、ロボット200が外部センサの視野内にある可能性が高まる。
【0100】
いくつかの実装形態では、外部センサはロボット200を認識することができる。例えば、カメラは、ロボット200を識別するように構成された認識ソフトウェアを有することができる。外部センサがエラーおよび/または支援イベントのためにロボット200が停止したことを検出すると、外部センサはロボット200および/または遠隔ネットワーク402にデータをプッシュすることができる。認識ソフトウェアを援助するために、ロボット200は、ロボット200にエラーおよび/または支援イベントがあるというさらなる指示を有することができる。例えば、ロボット200は、所定の特性(例えば、ターン/オフ周波数、色、強度など)で点灯するライト、画面表示、熱シグネチャ、音、および/または、ロボット200にエラーおよび/または支援要求がある場合に外部センサの様式により観察可能となる他のしるしを有することができる。有利なことに、ロボット200は、エラーおよび/または支援イベントが発生したことをロボット200の近くのオペレータに知らせるために、外部で観察可能なエラーおよび/または支援イベントのしるしを有する。
【0101】
外部センサはまた、センサデータのパターンを認識することにより、エラーおよび/または支援イベントの存在を検出することができる。例えば、外部センサは、ロボット200のセンサユニット312に関して説明したのと実質的に同様の方法で、障害物、こぼし、内部エラー、致命的なエラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および/または、エラーおよび/または支援イベントを生じさせ得る任意の他のイベントを検出することができ、センサは外部センサの代わりである。例示として、外部センサがカメラである場合、外部センサからのセンサデータは、外部センサ、ロボット200、および/または遠隔ネットワーク402によって処理され得る。したがって、外部センサ、ロボット200、および/または遠隔ネットワーク402は、センサデータ内の所定のパターンを識別することにより、エラーおよび/または支援イベントの存在を検出することができる。例示として、サーマルカメラは、こぼしを検出し、外部センサの視野内にこぼしが存在するかどうかを判定することができる。別の例示として、カメラはロボット200の前にある障害物を検出し、障害物が移動したかどうかを判定することができる。別の例示として、カメラはロボット200の位置を検出し、ロボット200が移動したかどうかを判定することができる。ロボット200の移動は、ロボット200が支援され、および/またはエラーが解決されたことを少なくとも部分的に示すことができる。
【0102】
いくつかの実装形態では、ロボット200は、ロボット200が外部センサからエラーおよび/または支援イベントを示すセンサ情報を受信すると、エラーおよび/または支援イベントが解決されていないと判定することができる。例えば、外部センサが、エラーおよび/または支援イベントがあるときにロボット200および/または遠隔ネットワーク402に情報をプッシュするように構成されている場合、ロボット200が外部センサからセンサ情報を受信したという事実は、エラーおよび/または支援イベントが解決されていないことを部分的に示すことができる。
【0103】
エラーおよび/または支援イベントが解決されたとロボット200が判定した場合、ブロック508に例示されるように、ロボット200は動作を続行することができる。動作を続行することは、ロボット200が実行していたおよび/または実行するはずのタスクを実行することを含むことができる。動作を続行することはまた、ロボット200の通常動作であり得る。場合によっては、ロボット200は、エラーおよび/または支援イベントをより完全に解決するために、追加のメンテナンス、修理、および/または支援を受けることができる。結果として、続行される動作は、機能が損なわれたロボット200の続行される動作を含むことができる。場合によっては、ロボット200を修理センターに移動させるなどして、追加の保守、修理、および/または支援を受けるようにロボット200を動作させることができる。場合によっては、ロボット200は動作を続行する前に初期化を実行することができる。例えば、ロボット200は、オペレータによって移動させることができ、マッピングおよび位置特定ユニット324を使用して再定位することができる。ロボット200はまた、動作を進行させる前に、ロボット200の1つ以上の構成要素および/または全体の状態を決定するために、ロボット200のセンサを再較正し、および/または状態チェックを実行することができる。
【0104】
ブロック506で、エラーおよび/または支援イベントが解決されていないとロボット200が判定した場合、ブロック510を実行することができる。ブロック510は、エラーおよび/または支援イベントに対処することを試行することと、エラーおよび/または支援イベントに対処したかどうかを判定することと、を含むことができる。エラーおよび/または支援イベントに対処する試行は、ブロック506および/またはブロック504に対して所定の遅延の後に行うことができる。有利なことに、そのような遅延は、エラーおよび/または支援イベントに対処する時間を与えることができる(例えば、オペレータおよび/または遠隔ネットワーク402によって)。場合によっては、そのような遅延により、エラーおよび/または支援イベントにすでに対処している場合、ロボット200のリソースが消費されないようにすることができる。さらに、エラーおよび/または支援イベントに対処することを試行すると、場合によっては、オペレータがエラーおよび/または支援イベントに対処する試行を妨げ得る。
【0105】
いくつかの実装形態では、所定の遅延は、エラーおよび/または支援イベントに対処するのにどのくらいの時間がかかるか、オペレータが警告を受信するのにどのくらいの長さの時間がかかるかの経験的証拠、センサユニット312により検出されるような環境の変化、外部センサにより検出されるような環境の変化、ダウンタイムの結果(例えば、ユーザ/オペレータの信頼の喪失)、および/または他の要因、のうちの1つ以上に少なくとも部分的に基づいて決定することができる。場合によっては、所定の遅延は、1、2、3、4、5、6、7、8、9、10、またはそれより多い秒数などの僅かな秒数の短い場合がある。場合によっては、所定の遅延は数分または数時間のオーダーなどのように長くなる場合がある。
【0106】
いくつかの実装形態では、ブロック510は、ユーザ入力のためにディスプレイ600を表示することを含むことができる。いくつかの実装形態では、
図6A~
図6Cのディスプレイ600は動的であり得る。例えば、ディスプレイ600は、ロボット200のオペレータがコマンドをロボット200に送信することができる支援ビューであり得る。例えば、オペレータは、ロボット200が取るべき行路を選択することができる。別の例示として、ユーザは、ディスプレイ600上の行路610を選択して、ロボット200に行路610に戻るおよび/または前進するように伝えることができる。いくつかの実装形態では、ユーザは、新たな行路を入力することなどにより(例えば、タッチスクリーン上での描画および/またはディスプレイ600への任意の他の入力方法)、ロボット200にどこに行くべきかを例示することができる。別の例示として、ユーザはボタンを押下してロボット200に前進するように伝えることができる。
【0107】
場合によっては、複数の走行する行路が利用可能であると、エラーおよび/または支援イベントが発生し得る。例えば、ロボット200は、実質的に同様の領域を複数回通過して、複数の行路を作成し得る。場合によっては、ロボット200は、ロボット200がどの行路を取るべきかを判定するのが難しい場合がある。次に、オペレータは、提示された複数の行路から適切なパスを選択することができる。
【0108】
いくつかの実装形態では、行路610と実質的に同様の複数の行路など、複数の行路がディスプレイ600に現れ得る。次に、オペレータは、ロボット200が取るべき所望の行路を選択することができる。場合によっては、行路の代わりに、位置、場所、姿勢、向きなどを選択のためにディスプレイ600に表示することができる。いくつかの実装形態では、オペレータは、(例えば、ユーザインターフェースユニット318の)タッチ画面および/または他の入力機構を使用して行路を描くなどして、行路を入力することができる。
【0109】
いくつかの実装形態では、ディスプレイ600に表示される行路は、トレーニングおよび/またはユーザ入力によって決定することができる。例えば、オペレータは、任意に与えられた経路、場所、姿勢、位置、向きなどへの代替行路を手動で入力することができる。いくつかの実装形態では、ロボット200が進み得る、1つ以上の経路、場所、姿勢、位置、向きなどを決定することなどにより、そのような代替行路を自動的に生成し、当該代替行路を選択可能にすることができる。代替行路のうちのいくつかの場合では、ロボット200は表示する所定数をランダムに選択することができる。場合によっては、ロボット200は、行路を進む頻度(例えば、一般的なナビゲーションでは、より多く進んだ行路が選ばれる可能性がより高いと想定される可能性があるが、まだ進んでいない行路が所望される、床掃除などのいくつかの用途では、より少なく進んだ行路を選ぶことができる)、所定の選好、ランダムな生成、統計的確率、および/または任意の他の方法に少なくとも部分的に基づいて、表示する代替行路を選択することができる。
【0110】
いくつかの実装形態では、ブロック510はロボット200による回復を含むことができ、ここでロボット200は、問題を解決することを試行する。例えば、ロボット200は、エラーおよび/または支援イベントに対処するために、アクチュエータユニット320のうちの1つ以上のアクチュエータを作動させることができる。例示として、場合によっては、エラーおよび/または支援イベントは、1つ以上のセンサのノイズの結果であり得る。場合によっては、ノイズは障害物のように見え、ロボット200に障害物がタスクの実行を阻止していると誤信させ得る。次いで、ロボット200は、回転、前方への移動、後方への移動、および/または他の移動などの小さな移動を行うことができる。そのような移動により、場合によっては、ロボット200が障害物の検出がノイズによるものであったと判定し、エラーおよび/または支援イベントを解決する(および/または対処したエラーおよび/または支援イベントを考慮する)ことが可能になり得る。場合によっては、ロボット200は、ロボット200の動作のエラーをリセットするプロセスを再起動、較正、再定位、および/または実行することができる。
【0111】
エラーおよび/または支援イベント(および/またはユーザがエラーおよび/または支援イベントに対処することが可能である)に対処した場合、ロボット200はブロック508で動作を続行することができる。有利なことに、ロボット200がエラーおよび/または支援イベントに対処することができる場合、ロボット200は、ほとんどまたは全くオペレータ入力なしで動作を続行し、潜在的に、より良いユーザ体験を作ることができる。
【0112】
エラーおよび/または支援イベントに対処していない場合、ロボット200は、ブロック504でエラーおよび/または支援イベントに関する警告を生成することができる。有利なことに、警告は、支援が必要であることをオペレータ/ユーザに気付かせることができる。いくつかの用途では、所定の遅延を実装することができる。有利なことに、所定の警告は、エラーおよび/または支援イベントに対処する時間を付与することができる。いくつかの実装形態では、所定の遅延は、エラーおよび/または支援イベントを解決するのにかかる時間(例えば、プロセスロボット200が取得するおよび/またはユーザが取得する)、エラーおよび/または支援イベントに対処することに関する経験的データ、ロボット200の環境が変化する速度、安全性の懸念、および他の要因のうちの1つ以上により決定することができる。例として、いくつかの実装形態では、遅延は、30、60、90、120、またはそれより多い秒数であり得る。
【0113】
図8は、本開示のいくつかの実装形態による支援プロセスを例示する機能ブロック図である。ブロック802は障害物検出を含む。いくつかの実装形態では、障害物検出は、センサユニット312のうちの1つ以上のセンサによって実行することができる。例示として、センサは、ロボット200が進んでいるときに、ロボット200の行路内の障害物を検出することができる。障害物は、ロボット200の軌道に沿って立ち塞がるアイテムとして現れ得る。いくつかの実装形態では、ロボット200は、センサユニット312のうちの1つ以上のセンサを使用して、物体認識を含むブロック820により障害物を識別することができる。物体認識は、センサユニット312のうちの1つ以上のセンサからのデータを物体の識別と関連付ける機械学習を含むことができる。
【0114】
所定の時間遅延810の後、ロボット200は、ブロック804に従って障害物に関する警告を発行することができる。所定の時間遅延810は、ブロック502を参照して説明した時間窓と実質的に同様であり得る。有利なことに、所定の時間遅延810により、ロボット200が障害物に関する警告を発行する前に、障害物を遠ざけたり、および/または障害物そのものを解決したりすることができる。
【0115】
ブロック804で発行される警告は、SMS816を介した、および/または支援ビュー818での、遠隔ネットワーク814への警告を含むことができる。支援ビュー818は、ディスプレイ600など、警告を表示するおよび/またはコマンドを受信するためのシステムおよび方法を含むことができる。
【0116】
所定の時間遅延808の後、ロボット200はブロック806で回復を試行することができる。所定の時間遅延808は、ブロック506を参照して説明した所定の遅延と実質的に同様であり得る。有利なことに、所定の時間遅延808はまた、障害物が排除されるための時間を付与し、および/またはロボット200を他の方法で支援することを可能にすることができる。回復は、ブロック510を参照して記載されたものと実質的に同様の行動などによる、オペレータの支援またはロボット200が取る行動を含むことができる。
【0117】
ロボット200がブロック806で回復できない場合、プロセスは時間遅延812の後に再びブロック802に戻ることができる。有利なことに、時間遅延812は、ブロック806でロボット200が回復する時間を与えることができる。いくつかの実装形態では、時間遅延812は、エラーおよび/または支援イベントを解決するのにかかる時間(例えば、ロボット200が取得するおよび/またはユーザが取得するプロセス)、経験的データ、ロボット200の環境が変化する速度、安全性の懸念、およびその他の要因のうちの1つ以上により決定することができる。例として、いくつかの実装形態では、遅延は30、60、90、120、またはそれより多い秒数であり得る。
【0118】
図9は、本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法900のプロセスフロー図である。ブロック902は、ロボットに環境内でタスクを実行させることを含む。ブロック904は、ロボットがタスクを実行するときに、ロボットの1つ以上のセンサを使用して環境に関するデータを生成することを含む。ブロック906は、データから、ロボットがタスクを実行することを少なくとも部分的に妨害されていると判定することを含む。ブロック908は、ロボットが少なくとも部分的に妨害されているとの判定の後の所定の第1の遅延後に、ロボットがタスクを続行することができないことを少なくとも部分的に示す第1の警告を表示することを含む。ブロック910は、警告の表示の後の所定の第2の遅延後に、ロボットにタスクを実行させることを試行することを含む。ブロック912は、ロボットにタスクを実行させる試行の後の所定の第3の遅延後に、ロボットが少なくとも部分的に妨害されていることを少なくとも部分的に示す第2の警告を表示することを含む。
【0119】
図10は、本開示のいくつかの実装態様による、ロボットの動作のための例示的な方法1000のプロセスフロー図である。ブロック1002は、ロボットの1つ以上のアクチュエータに第1のロボットタスクを実行させることを含む。ブロック1004は、センサデータに少なくとも部分的に基づいて、第1のロボットタスクの実行中に障害物を検出することを含む。ブロック1006は、検出された障害物に少なくとも部分的に応答して、ロボットが第1のロボットタスクを実行しないように、1つ以上のアクチュエータを作動させることを含む。ブロック1008は、検出された障害物の少なくとも一部とロボットの1つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示することを含む。ブロック1010は、ユーザインターフェースを介して、ロボットの1つ以上の選択可能な位置のうちの選択された1つを受信することを含む。ブロック1012は、ロボットの1つ以上の選択可能な位置のうちの選択された位置に少なくとも部分的に基づいてアクチュエータを作動させること、および第1のロボットタスクと実質的に同様のタスクを実行し続けることを含む。
【0120】
図11は、本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法1100のプロセスフロー図である。ブロック1102は、床掃除ロボットが掃除を妨害されていることをグラフィカルに表す支援ビューを表示することを含む。ブロック1104は、支援ビューを介して、ロボットの複数の走行する行路をユーザインターフェースに表示すること、および表示された行路の選択を受信することを含む。ブロック1106は、床掃除ロボットに、動作命令に従って掃除させることを含む。
【0121】
本明細書で使用される場合、コンピュータおよび/またはコンピューティングデバイスは、パーソナルコンピュータ(「PC」)およびミニコンピュータ(デスクトップ、ラップトップ、もしくはそれ以外のものかにかかわらず)、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末(「PDA」)、携帯型コンピュータ、埋め込み式コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、J2ME搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信もしくはエンターテインメントデバイス、ならびに/または一組の命令を実行し、入力データ信号を処理することが可能である任意の他のデバイスを含み得るが、これらに限定されない。
【0122】
本明細書で使用される場合、コンピュータプログラムおよび/またはソフトウェアは、機能を実行する任意のシーケンスまたは人間または機械が認識できるステップを含み得る。そのようなコンピュータプログラムおよび/またはソフトウェアは、例えば、C/C++、C#、Fortran、COBOL、MATLAB(商標)、PASCAL、GO、RUST、SCALA、Python、アセンブリ言語、マークアップ言語(例えば、HTML、SGML、XML、VoXML)などを含む任意のプログラム言語または環境、ならびに、コモンオブジェクトリクエストブローカーアーキテクチャ(「CORBA」)、JAVA(商標)(J2ME,ジャバビーンズ(Java Beans)などを含む)、バイナリランタイム環境(例えば、「BREW」)などのオブジェクト指向環境によって提供することができる。
【0123】
本明細書で使用される場合、接続、リンク、および/またはワイヤレスは、エンティティ間の情報交換を可能にする、任意の2つ以上のエンティティ間の(物理的または論理的/仮想的)因果関係を含むことができる。
【0124】
本開示のある特定の態様は、方法の具体的な一連のステップに関して記載されているが、これらの記載は、本開示のより広範な方法の単なる例示であり、特定の用途によって必要に応じて変更され得ることが認識されるであろう。ある特定の状況下では、ある特定のステップが不要または任意になることがあり得る。さらに、開示された実装形態にある特定のステップまたは機能が追加されてもよく、または2つ以上のステップの実行順序は並べ換えられてもよい。そのような変形はすべて、本明細書に開示および特許請求されている開示の範囲内に包含されると見なされる。
【0125】
上記の詳細な説明は、様々な実装形態に適用されたような、本開示の新規な特徴を示し、説明し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更が、当業者により、本開示から逸脱することなくなされ得ることが理解されるであろう。前述の説明は、本開示を実施することについて現在企図されている最良の様式である。この説明は、決して限定することを意味するものではなく、むしろ本開示の一般原理の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して判定されるべきである。
【0126】
図面および前述の説明において本開示を詳細に例示および記載してきたが、そのような例示および説明は、限定的ではなく例証的または例示的であると見なされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態および/または実装形態に対する変形は、図面、本開示および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され、達成され得る。
【0127】
本開示のある特定の特徴または態様を説明するときに特定の用語を使用することは、その用語が関連付けられている、本開示の特徴または態様の任意の具体的な特徴を含むよう限定されるように、その用語が本明細書において再定義されていることを意味すると解釈されるべきではない。本出願において使用される用語および語句、ならびにその変形は、とりわけ添付の特許請求の範囲において、他に明示的に述べられていない限り、限定的とは対照的に開放式として解釈されるべきである。前述の例として、「含む(including)」という用語は、「限定することなく含む(including,without limitation)」、「含むがこれに限定されない(including but not limited to)」などを意味すると読まれるべきであり、本明細書で使用される「含む(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)」、および/または別様に決定された値、条件、閾値、測定値などを含み得る。