(57)【要約】  ロボット装置を支援するためのシステムおよび方法が開示される。いくつかの例示的な実装形態では、ロボットは、ロボットが前進することができない、かつ／またはそれが前進することができるかどうかを高い確度で知らない状況に遭遇し得る。それに応じて、ロボットは、それがエラーおよび／または支援イベントに遭遇したと判定することができる。いくつかの例示的な実装形態では、ロボットは、オペレータから支援を受けることができ、かつ／またはそれ自体で問題を解決することを試行することができる。場合によっては、ロボットは、エラーおよび／または支援イベントの解決を可能にするために行動を遅延させるように構成され得る。【選択図】図９
2020507164.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを動作させるための方法であって、
環境内で前記ロボットにタスクを実行させることと、
前記ロボットが前記タスクを実行するときに、前記ロボットの１つ以上のセンサを使用して前記環境に関するデータを生成することと、
前記データから、前記ロボットが前記タスクを実行することを少なくとも部分的に妨害されていると判定することと、
前記ロボットが少なくとも部分的に妨害されているとの前記判定の後の所定の第１の遅延後に、前記ロボットが前記タスクを続行することができないことを少なくとも部分的に示す第１の警告を表示することと、
前記警告の表示の後の所定の第２の遅延後に、前記ロボットに前記タスクを実行させることを試行することと、
前記ロボットに前記タスクを実行させる前記試行の後の所定の第３の遅延後に、前記ロボットが少なくとも部分的に妨害されていることを少なくとも部分的に示す第２の警告を表示することと、を含む、方法。
【請求項２】
前記タスクが、床を掃除することを含む、請求項１に記載の方法。
【請求項３】
オペレータから動作命令を受信することと、前記動作命令に少なくとも部分的に基づいて前記タスクの前記実行を続行することと、をさらに含む、請求項１に記載の方法。
【請求項４】
前記オペレータからの前記動作命令の前記受信が、前記ロボットのボタンが押されたとの判定を受信することを含み、前記ボタンが前記押されたことが、障害物にかかわらず前記タスクの実行を進行させる命令を含む、請求項３に記載の方法。
【請求項５】
前記動作命令を前記受信することが、１つ以上の走行する行路を受信することと、前記１つ以上の走行する行路を表示することと、前記表示された行路の選択を受信することと、を含む、請求項３に記載の方法。
【請求項６】
外部センサからデータを受信することと、前記外部センサからの前記受信したデータに少なくとも部分的に基づいて、前記ロボットが前記タスクを実行することを依然として少なくとも部分的に妨害されているかどうかを判定することと、をさらに含む、請求項１に記載の方法。
【請求項７】
物体認識により、前記ロボットが少なくとも部分的に妨害されていることを識別することをさらに含む、請求項１に記載の方法。
【請求項８】
ロボットであって、
環境に関するセンサデータを生成するように構成された１つ以上のセンサと、
第１のロボットタスクを実行するように構成された１つ以上のアクチュエータと、
情報を表示および受信するように構成されたユーザインターフェースと、
プロセッサと、を含み、前記プロセッサが、
前記１つ以上のアクチュエータに前記第１のロボットタスクを実行させ、
前記生成されたセンサデータに少なくとも部分的に基づいて、前記第１のロボットタスクの実行中に障害物を検出し、
前記検出された障害物に少なくとも部分的に応答して、前記ロボットが前記第１のロボットタスクを実行しないように、前記１つ以上のアクチュエータを作動させ、
前記検出された障害物の少なくとも一部と前記ロボットの１つ以上の選択可能な位置とを示す警告を含む支援ビューを前記ユーザインターフェースに表示し、
前記ユーザインターフェースを介して、前記ロボットの前記１つ以上の選択可能な位置のうちの選択された１つを受信し、
前記ロボットの前記１つ以上の選択可能な位置のうちの選択された１つに少なくとも部分的に基づいて前記アクチュエータを作動させ、前記第１のロボットタスクと実質的に同様のタスクを実行し続ける、ように構成されている、ロボット。
【請求項９】
前記ロボットが、前記ロボットを監視するように構成された遠隔ネットワークに通信可能に結合された通信ユニットをさらに含む、請求項８に記載のロボット。
【請求項１０】
前記プロセッサが、前記障害物を識別するようにさらに構成されている、請求項８に記載のロボット。
【請求項１１】
前記プロセッサが、機械学習プロセスを通じて前記障害物を識別することを学習するようにさらに構成されている、請求項１０に記載のロボット。
【請求項１２】
前記ロボットが、床掃除機を含む、請求項８に記載のロボット。
【請求項１３】
前記第１のロボットタスクが、所定経路のナビゲーションを含む、請求項８に記載のロボット。
【請求項１４】
前記ロボットの前記選択可能な位置が、前記ロボットの異なる軌道を含む、請求項８に記載のロボット。
【請求項１５】
床掃除ロボットを支援する方法であって、
前記床掃除ロボットが掃除を妨害されていることをグラフィカルに表す支援ビューを表示することと、
前記支援ビューを介して動作命令を受信することであって、動作命令が、ユーザインターフェースに前記ロボットの複数の走行する行路を表示することと、前記表示された行路の選択を受信することと、を含む、受信することと、
前記床掃除ロボットに、前記受信された動作命令に従って掃除させることと、を含む、方法。
【請求項１６】
前記支援ビューを表示することが、
前記ロボットのセンサからデータを受信することと、
前記受信されたデータに少なくとも部分的に基づいて支援イベントを識別することと、
前記識別された支援イベントを示すグラフィックを生成することと、をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記支援ビューを遠隔ネットワークに送信することをさらに含む、請求項１５に記載の方法。
【請求項１８】
前記床掃除ロボットに前記掃除させることが、
前記床掃除ロボットに所定行路に沿ってナビゲートさせることと、
前記床掃除ロボットに前記所定行路に沿って床を洗浄させることと、をさらに含む、請求項１５に記載の方法。
【請求項１９】
前記支援ビューの前記表示から少なくとも所定の時間、前記受信された動作命令に従って前記床掃除ロボットに前記掃除させることを遅延することをさらに含む、請求項１５に記載の方法。
【請求項２０】
前記受信された動作命令に従って前記床掃除ロボットに前記掃除させることが、前記ロボット上の支援ボタンが押されたことを示す信号を受信した後に行われる、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本出願は、同じ名称の２０１７年２月２日に出願された米国特許出願第１５／４２３，４４２号に対する優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。
【０００２】
著作権
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権者は、特許商標庁の特許ファイルまたは記録に記載されているような本特許文書または本特許開示の、いかなる人物によるファクシミリ複製にも異論を唱えないが、それ以外のすべての著作権を留保する。
【０００３】
背景
本出願は、概して、ロボット工学に関し、より具体的には、ロボット装置を支援するためのシステムおよび方法に関する。
【背景技術】
【０００４】
場合によっては、ロボットは、直接のオペレータ制御をほとんどまたは全く伴わずに、自律的に動作することができる。ただし、これらのロボットは自律的に動作する一方、これらのロボットは、それらが身動きできなくなり得、かつ／またはエラーを生じ得、かつ／または外部の原因（例えば、封鎖された行路）により前進することができない状況に陥る場合がある。
【０００５】
多くの現代的なロボットは、接続性および監視をほとんど伴わない制御された環境内で稼働する。したがって、オペレータはロボットのニーズを知らないことが多く、ロボットには助けを求めるための確固とした手順がない。場合によっては、これは、ロボットが損傷を引き起こすことおよび／またはロボットの他の準最適の挙動につながり得る。さらに、場合によっては、ロボットは、オペレータがロボットを支援する能力を妨げることさえある回復手順に従うことがある。したがって、ロボットを支援するための改善されたシステムおよび方法が必要とされている。
【発明の概要】
【０００６】
前述のニーズは、とりわけ、自律ナビゲーションにおける動的経路計画のための装置および方法を提供する本開示によって満たされる。本明細書に記載されている例示的な実装は、革新的な特色を有しており、そのうちのいずれも、それらの望ましい属性に対して不可欠ではなく、または単独でその責任を担うものでもない。特許請求の範囲を限定することなく、有利な特徴のうちのいくつかをここで要約する。
【０００７】
一態様では、ロボットを動作させるための方法が開示されている。例示的な一実装形態では、この方法は、環境内でロボットにタスクを実行させることと、ロボットがタスクを実行するときに、ロボットの１つ以上のセンサを使用して環境に関するデータを生成することと、データから、ロボットがタスクを実行することを少なくとも部分的に妨害されていると判定することと、ロボットが少なくとも部分的に妨害されているとの判定の後の所定の第１の遅延後に、ロボットがタスクを続行することができないことを少なくとも部分的に示す第１の警告を表示することと、警告の表示の後の所定の第２の遅延後に、ロボットにタスクを実行させることを試行することと、ロボットにタスクを実行させる試行の後の所定の第３の遅延後に、ロボットが少なくとも部分的に妨害されていることを少なくとも部分的に示す第２の警告を表示することと、を含む。
【０００８】
一変形形態では、タスクが、床を掃除することを含む。別の変形形態では、この方法は、オペレータから動作命令を受信することと、動作命令に少なくとも部分的に基づいてタスクの実行を続行することと、を含む。別の変形形態では、オペレータからの動作命令の受信は、ロボットのボタンが押されたとの判定を受信することを含み、ボタンが押されたことは、障害物にかかわらずタスクの実行を進行させる命令である。別の変形形態では、オペレータから動作命令を受信することが、走行する行路を表示することと、表示された行路の選択を受信することと、を含む。
【０００９】
別の変形形態では、この方法は、外部センサからデータを受信することと、外部センサからのデータに少なくとも部分的に基づいて、ロボットがタスクを実行することを依然として少なくとも部分的に妨害されているかどうかを判定することと、をさらに含む。別の変形形態では、この方法は、物体認識により、ロボットが少なくとも部分的に妨害されていることを識別することをさらに含む。
【００１０】
別の態様では、ロボットが開示されている。例示的な一実装形態では、ロボットは、環境に関するセンサデータを生成するように構成された１つ以上のセンサと、第１のロボットタスクを実行するように構成された１つ以上のアクチュエータと、情報を表示および受信するように構成されたユーザインターフェースと、プロセッサと、を含み、プロセッサは、１つ以上のアクチュエータに第１のロボットタスクを実行させ、センサデータに少なくとも部分的に基づいて、第１のロボットタスクの実行中に障害物を検出し、検出された障害物に少なくとも部分的に応答して、ロボットが第１のロボットタスクを実行しないように、１つ以上のアクチュエータを作動させ、検出された障害物の少なくとも一部とロボットの１つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示し、ユーザインターフェースを介して、ロボットの１つ以上の選択可能な位置のうちの選択された１つを受信し、ロボットの１つ以上の選択可能な位置のうちの選択された１つに少なくとも部分的に基づいてアクチュエータを作動させ、第１のロボットタスクと実質的に同様のタスクを実行し続ける、ように構成されている。
【００１１】
一変形形態では、ロボットが、ロボットを監視するように構成された遠隔ネットワークに通信可能に結合された通信ユニットをさらに含む。別の変形形態では、プロセッサが、障害物を識別するようにさらに構成されている。別の変形形態では、プロセッサが、機械学習プロセスを通じて障害物を識別することを学習するようにさらに構成されている。別の変形形態では、ロボットが、床掃除機（floor cleaner）を含む。別の変形形態では、ロボットタスクが、ナビゲーションである。別の変形形態では、ロボットの選択可能な位置が、ロボットの軌道を含む。
【００１２】
さらに別の態様では、床掃除ロボットを支援するための方法が開示されている。例示的な一実装態様では、この方法は、床掃除ロボットが掃除を妨害されていることをグラフィカルに表す支援ビューを表示することと、支援ビューを介して動作命令であって、ユーザインターフェースにロボットの複数の走行する行路を表示する、動作命令を受信し、および表示された行路の選択を受信することと、床掃除ロボットに、動作命令に従って掃除させることと、を含む。
【００１３】
一変形形態では、支援ビューを表示することが、ロボットのセンサからデータを受信することと、受信されたデータに少なくとも部分的に基づいて支援イベントを識別することと、識別された支援イベントを示すグラフィックを生成することと、をさらに含む。
【００１４】
別の変形形態では、この方法は、支援ビューを遠隔ネットワークに送信することをさらに含む。別の変形形態では、床掃除ロボットに掃除させることが、床掃除ロボットに所定行路に沿ってナビゲートさせることと、床掃除ロボットに所定行路に沿って床を洗浄させることと、を含む。
【００１５】
別の変形形態では、この方法は、支援ビューの表示から少なくとも所定の時間、動作命令に従って床掃除ロボットに掃除させることを遅延させることをさらに含む。
【００１６】
別の変形形態では、動作命令に従って床掃除ロボットに掃除させることは、ロボット上の支援ボタンが押されたことを示す信号を受信した後に行われる。
【００１７】
さらに別の態様では、非一時的なコンピュータ可読記憶装置が開示されている。例示的な一実装形態では、非一時的なコンピュータ可読記憶装置は、複数の命令を格納しており、これらの命令は、ロボットを動作させるように処理装置によって実行可能である。この命令は、処理装置によって実行されると、処理装置に、１つ以上のアクチュエータにロボットタスクを実行させ、センサデータに少なくとも部分的に基づいて、ロボットタスクの実行中に障害物を検出し、検出された障害物に少なくとも部分的に応答して、ロボットがロボットタスクを実行しないように、１つ以上のアクチュエータを作動させ、検出された障害物の少なくとも一部とロボットの１つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示し、ユーザインターフェースを介して、ロボットの１つ以上の選択可能な位置のうちの選択された１つを受信し、ロボットの１つ以上の選択可能な位置のうちの選択された１つに少なくとも部分的に基づいてアクチュエータを作動させ、タスクを実行し続ける、ことを行わせるように構成されている。
【００１８】
さらに別の態様では、ロボットを支援するためのシステムが開示されている。例示的な一実装形態では、システムは、タスクを実行するように構成されたロボットであって、ロボットは、ロボットの環境に関するデータを収集する１つ以上のセンサを有し、ロボットは、１つ以上のセンサのデータ中に検出された環境内の障害物に遭遇すると支援要求を送信する、ロボットと、ロボットの環境の少なくとも一部に関するデータを収集するように構成された外部センサと、ロボットおよび外部センサに通信可能に結合された遠隔ネットワークであって、遠隔ネットワークは、ロボットから支援要求を受信し、支援要求に応答して外部センサからデータを取得し、ロボットをどのように支援するかを決定するように構成されている、遠隔ネットワークと、を含む。
【００１９】
一変形形態では、ロボットをどのように支援するかを決定することが、ロボットが前進することができるかどうかを判定することをさらに含む。
【００２０】
さらに別の態様では、遠隔ネットワークが開示されている。例示的な一実装形態では、遠隔ネットワークは、センサデータとロボットからの支援の要求とを受信するように構成された通信ユニットと、プロセッサであって、受信されたセンサデータ中の対象のイベントを識別し、イベントに関するより多くの情報を取得するかどうかを決定し、より多くの情報を取得するかどうかの決定に少なくとも部分的に基づいて、イベントに関するデータを外部センサから要求し、外部センサからのデータに少なくとも部分的に基づいて、ロボットを支援するためにアクセスポイントに支援要求を送信する、ように構成された、プロセッサとを含む。
【００２１】
さらに別の態様では、ロボットの外部のセンサが開示されている。例示的な一実装形態では、このセンサは、ロボットの環境の少なくとも一部に関するデータを収集し、データ中の支援イベントを検出し、支援イベントを解決するためにロボットと通信する、ように構成されている。
【００２２】
一変形形態では、センサは、支援イベントを解決するために遠隔ネットワークと通信するようにさらに構成されている。
【００２３】
本開示のこれらおよび他の目的、特徴、および特性、ならびに構造の関連要素および部品の組み合わせの動作方法および機能、および製造の経済性は、そのいずれもが本明細書の一部を構成する、添付図面を参照しつつ以下の詳細な説明および添付の特許請求の範囲を検討することによって、さらに明らかになるであろう。本明細書において、類似の参照符号は様々な図面における対応部分を示す。しかしながら、図面は、例示および説明のみを目的としたものであり、本開示の限定の定義として意図されるものではないことが、明確に理解されるべきである。本明細書および特許請求の範囲で使用される場合、単数形「ａ」、「ａｎ」および「ｔｈｅ」は、文脈がそうでないことを明確に示さない限り、複数の指示物が含まれる。
【図面の簡単な説明】
【００２４】
開示された態様は、添付の図面と併せて以下で説明され、開示される態様を限定するためでなく例示するために提供され、類似の名称は類似の要素を示す。
【００２５】
【図１】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【図２Ａ】本開示のいくつかの実装形態による、ロボットのロボットフットプリントを例示する上面図である。
【図２Ｂ】本開示のいくつかの実装形態による、物体の周りを無駄にナビゲートするロボットの上面図である。
【図３】本開示のいくつかの動作原理による、ロボットの機能ブロック図である。
【図４】本開示のいくつかの実装形態による、遠隔ネットワークと通信可能および／または動作可能に結合されたロボットを含むシステムの機能ブロック図である。
【図５】本開示のいくつかの実装形態による、支援要求を発行するための例示的な方法のプロセスフロー図である。
【図６Ａ−６Ｃ】本開示のいくつかの実装形態による支援ビューを示すディスプレイである。
【図７】本開示のいくつかの実装形態による、ロボットに関する情報を提供する外部センサの側面図である。
【図８】本開示のいくつかの実装形態による、支援プロセスを例示する機能ブロック図である。
【図９】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【図１０】本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法のプロセスフロー図である。
【図１１】本開示のいくつかの実装形態による、ロボットを支援するための例示的な方法のプロセスフロー図である。
【００２６】
本明細書に開示されているすべての図面は著作権により保護されている。（著作権）Ｃｏｐｙｒｉｇｈｔ  ２０１７  Ｂｒａｉｎ  Ｃｏｒｐｏｒａｔｉｏｎ。無断転用禁止。
【発明を実施するための形態】
【００２７】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に記載される。しかしながら、本開示は、多くの異なる形態で具現化することができ、本開示全体を通して提示される任意の具体的な構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であるように、また、本開示の範囲を当業者に完全に伝えるように提供される。本明細書の教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して実装されるか、またはそれと組み合わせられて実装されるかにかかわらず、本明細書に開示された新規のシステム、装置、および方法の任意の態様を包含することを意図していることを理解するはずである。例えば、本明細書に記載の任意の数の態様を使用して、装置を実装するか、または方法を実践することができる。加えて、本開示の範囲は、本明細書に記載された開示の様々な態様に加えて、あるいはそれ以外の他の構造、機能、または構造および機能を使用して実施されるような装置または方法を包含するように意図されている。本明細書に開示される任意の態様は、特許請求項の１つ以上の要素によって実装され得ることを理解されたい。
【００２８】
特定の態様が本明細書に記載されているが、これらの態様の多くの変形および置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利益および利点が述べられているが、本開示の範囲は、特定の利益、用途、および／または目的に限定されることを意図しない。詳細な説明および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は、添付の特許請求の範囲およびそれの均等物によって定義される
【００２９】
本開示は、ロボットの改善された遠隔操作および／または監視を提供する。本明細書で使用される場合、ロボットは、複雑な一連の行動を自動的に成し遂げるように構成された機械的および／または仮想エンティティを含むことができる。場合によっては、ロボットは、コンピュータプログラムおよび／または電子回路によってガイドおよび／または命令される機械であり得る。場合によっては、ロボットは、ナビゲーション用に構成された電子機械コンポーネントを含んでもよく、ロボットは、ある場所から別の場所に移動することができる。そのようなナビゲーションロボットは、自律走行および／または自動運転車、床掃除機、探査車（ｒｏｖｅｒ）、ドローン、飛行機、ボート、カートなどを含むことができる。
【００３０】
場合によっては、ロボットは、１つ以上のタスクを実行するように自動化された、電気器具、機械、および／または機器を含むことができる。例えば、それらが自律的に動作することを可能にするために、電気器具、機械、および／または機器にモジュールを取り付けることができる。いくつかの実装形態では、モジュールは、電気器具、機械、および／または機器の自律運動を駆動するモーターを含むことができる。場合によっては、モジュールは、既存のコントローラ、アクチュエータ、ユニット、および／または電気器具のコンポーネントに制御信号を送信するなどにより、スプーフィングに少なくとも部分的に基づいて、電気器具、機械、および／または機器を動作させる。モジュールは、データを受信および生成するためのセンサおよび／またはプロセッサを含むことができる。モジュールはまた、センサデータを処理し、制御信号を送信し、および／または他の方法で、既存のコントローラ、ユニット、および／または、電気器具、機械、および／または機器のコンポーネントを制御するために、プロセッサ、アクチュエータ、および／または本明細書に記載のコンポーネントのいずれかを含むことができる。そのような電気器具、機械、および／または機器は、フォークリフト、タグボート、ボート、飛行機、産業機器、床掃除機、ストッキング機、家電製品などを含むことができる。
【００３１】
本明細書で言及されるように、床掃除機は、手動制御される（例えば、駆動または遠隔制御される）、および／または自律的である（例えば、直接のユーザ制御をほとんどまたは全く用いない）床掃除機を含むことができる。例えば、床掃除機は、清掃作業員、管理人、および／または他の人が操作する床洗浄機、および／または、環境を自律的にナビゲートおよび／または掃除するロボット床洗浄機を含むことができる。同様に、床掃除機はまた、真空掃除機（vacuum）、蒸気掃除機、バフィングマシン、モップ、ポリッシャ、スイーパ、バーニッシャ、および／または床を掃除するように意図されたデバイスを含むことができる。
【００３２】
本開示のシステムおよび方法の様々な実施形態および変形形態の詳細な説明がここで提供される。本明細書で説明する多くの例はロボット式床掃除機に言及している場合があるが、本明細書に含まれる記載されたシステムおよび方法は任意の種類のロボットに適用可能であることが理解されよう。本明細書に記載された技術の無数の他の例示的な実装形態または使用は、本開示の内容が与えられれば、当業者によって容易に想定されるであろう。
【００３３】
有利なことに、本開示のシステムおよび方法は少なくとも、（ｉ）不測の状況であってもロボットが環境内で安全に動作できるようにし、（ｉｉ）ロボットが期待される挙動を呈することを可能にすることにより、ロボットに快適さを提供し（例えば、人間および／または動物による）、（ｉｉｉ）不所望な停止を伴わないロボットの円滑な動作を可能にし、（ｉｖ）ロボットの効率的な操縦を提供する。他の利点は、本開示の内容を与えられた当業者によって容易に認識することができる。
【００３４】
例えば、ロボットは、環境をナビゲートし、データを収集し、かつ／または行動を実行することができる。例示として、ロボットは、環境をナビゲートしながら床を掃除する床掃除機であり得る。ロボットは、データを収集および／または生成することができる。例えば、ロボットは、図３を参照して本開示において後で記載されるように、ロボットの環境を感知するセンサを有することができる。これらのセンサは、環境に関するデータを生成できる。ロボットは、オン／オフ時間、速度、状態、ソフトウェアバージョン、動作（例えば、掃除などの行動／動作の実行）、メンテナンスなど、ロボットの性能を監視するセンサを有することもできる。これらのセンサは、ロボットに関するデータを生成することができる。ロボットはまた、ロボットの環境および／またはロボットが自律的に環境をナビゲートすることを可能にする経路に関する情報を含むマップ関連データ（例えば、マップ作成および／または位置特定に関連する、および／またはそれに使用できるデータ）を生成することができる。
【００３５】
ロボットは、ロボットに問題を引き起こすイベントに遭遇し得る。場合によっては、この問題は、ロボットにソフトウェアおよび／またはハードウェアの性能関連の問題があるエラーであり得る。場合によっては、この問題は、ロボットがどのように行動すべきかを決定することが可能であるようにロボットがオペレータからの追加入力を求めるように構成されたシナリオであり得る。場合によっては、これらの問題は、ロボットの１つ以上のセンサによって検出することができる。有利なことに、イベントが発生したと判定し、適切に支援を要求することにより、オペレータの経験を改善し、および／またはロボットの動作に対する信頼を高めることができる。さらに、支援のための適切なシステムおよび方法は、ロボットに指定されたタスクの効率的な動作を可能にすることができる。
【００３６】
図１は、本開示のいくつかの実施態様による、ロボットの動作のための例示的な方法１００のプロセスフロー図である。ブロック１０２は、タスクを実行することを含む。例えば、そのようなタスクは、ナビゲーション、クリーニング、物体の移動、物体の輸送、探索、マッピング、構築、イメージング、診断、および／またはロボットに所望される任意の活動などの、ロボットに関連する機能であり得る。場合によっては、オペレータがロボットを使用してそのようなタスクを実行することができる。
【００３７】
ブロック１０４は、タスクの実行中にエラーおよび／または支援イベントを検出することを含む。本明細書で使用される場合、支援は、ロボットのオペレータ支援が望ましい状況に関連し得る。例えば、オペレータ支援は、オペレータの指示、コマンド、状態などに関連し得る。場合によっては、支援はエラーに起因するシナリオに関連し得る。例えば、エラーには、ロボットの１つ以上の機能の障害をもたらすロボットの多数の出来事を含めることができる。
【００３８】
例示として、致命的なエラーには、破滅的な故障、接続の喪失、緊急シャットダウン、破壊、および、ロボットにほとんどまたはすべての機能を失わせる他の出来事を含めることができる。場合によっては、破滅的な故障が発生すると、ロボットが行い得ることはあまりないことがある。場合によっては、オペレータは、ロボットが再び機能する前にロボットの一部を修理および／または交換する必要があり得る。
【００３９】
別の例示として、エラーには内部エラーを含めることができ、これは、ロボットのソフトウェアまたはハードウェアの内部機能に関連するエラーであり得る。例えば、これらの内部エラーには、ソフトウェアコンポーネントのクラッシュ、スタックエラーおよび／またはオーバーフロー、メモリギャップおよび／またはメモリエラー、ソフトウェアコンポーネントのハングアップおよび／またはフリーズなどを含めることができる。別の例として、内部エラーには、機械的電気的エラーおよび／または故障を含めることができ、アクチュエータ、電源システム、コントローラ／コンピュータ、リレー、コネクタ、ケーブルなどの、ロボットの機械および／または電気システムに関連するものなどがある。内部エラーには、衝突および／または誤識別された衝突（例えば、ソフトウェアおよび／またはハードウェアのミスにより、ロボットが衝突していないのに何かに衝突したとロボットが判定する場合）を含めてもよい。
【００４０】
別の例示として、支援は、ロボットが移動、動作、および／または他の所望の活動などのタスクを進行させることに失敗することに関連し得る。例えば、ロボットが特定の活動を進行させることを阻害される場合がある。いくつかの実装形態では、ロボットは、ナビゲーション、クリーニング、物体の移動、物体の輸送、探索、マッピング、構築、イメージング、診断、および／またはロボットに任意の所望の活動などのタスクを実行するように構成できる。いくつかの実装形態では、ロボットは、封鎖（例えば、障害物の存在）、タスク関連物体（例えば、ロボットが輸送することになっている物体）の喪失／損傷／破壊、ロボットの環境上の危険／障害、こぼし（例えば、ロボットまたは環境によって引き起こされる）、環境および／または環境内の物体／人に対する危険、および／または、ロボットがタスクを実行することを阻止し得る外部の出来事などの、外部の出来事によって、タスクを完了することが阻害され得る。いくつかの実装形態では、ロボットは、（例えば、図２Ａを参照して記載したロボットの事前定義されたロボット自体のフットプリントパラメータのクリアランス量などの、ロボットの所定の制限に少なくとも部分的に基づいて）ロボットがタスクを進行させることができないという認識（例えば、ロボットのセンサからのデータに少なくとも部分的に基づく）、ゴースト障害物の検出（例えば、ロボットに、存在しない障害物が見える）、ノイズ（例えば、センサノイズ、反射、および／または信号への他の望ましくない追加／変更）、非定位、スリップ（例えば、ロボットが物体に衝突および／または接近し得る何らかの場所を含め、誤って他の何らかの場所であるとロボットが誤判定し得る走行距離測定のエラー）、ロボットの事前定義されたロボット自体のフットプリントパラメータ内で検出された障害物などの、内部の出来事によって、タスクを完了することを阻害され得る。
【００４１】
ロボットの事前定義されたロボット自体のフットプリントを例示するために、図２Ａは、本開示のいくつかの実装形態によるロボット２００のロボットフットプリント２０２を例示する上面図である。ロボット２００は、事前定義された本体形状および寸法を有することができる。ロボット２００は、前面２０４Ａ、右面２０４Ｃ、左面２０４Ｄ、および背面２０４Ｂなどの複数の面を備えた本体を含むことができる。ロボット２００はまた、上面および底面を有することができる。当業者であれば、本開示の内容が与えられれば、ロボット２００が、形状（例えば、長方形、ピラミッド形、人型、または任意の他の設計形状）によって変わり得る、ロボット２００の表面に対応する他の面もまた有することができることを理解するはずである。例示として、前面２０４Ａは、ロボット２００の前方に向いている側に位置付けることができ、前方に向いている側は、ロボット２００の前方への移動の方向において前方にある。背面２０４Ｂは、ロボット２００の後方に向いている側に位置付けることができ、後方に向いている側は、前方に向いている側と実質的に反対方向に向いている側である。右面２０４Ｃは、前面２０４Ａに対して右側とすることができ、左面２０４Ｄは、前面２０４Ａに対して左側とすることができる。
【００４２】
ロボット２００の実際の本体が例示されている。ただし、フットプリント２０２は、ロボット２００がタスクをどのようにナビゲートおよび／または実行することができるかを決定するロボット２００のソフトウェアおよび／またはハードウェアで構成されたロボット２００のサイズであり得る。例示として、フットプリント２０２は、（図示のように）前面２０４Ａ、右面２０４Ｃ、左面２０４Ｄ、および／または背面２０４Ｂを超えて広がり、これが、ソフトウェアおよび／またはハードウェアにおけるロボット２００のサイズがどのようなもの（例えば、フットプリント２０２）であるとロボット２００が認識するかということと、ロボット２００の実際のサイズがどのようなものであるかということとの差を作る。これにより、ロボット２００および／または環境内の物体の間のクリアランスが付与され得る。有利なことに、フットプリント２０２により、ナビゲーションのための安全バッファが付与され得る。フットプリント２０２のサイズおよび／または形状は、所望のクリアランス、環境の複雑さ、支援に対する許容範囲、衝突のリスク（例えば、衝突の発生、衝突の損傷の量、など）、および／または他の要因を含む、いくつかの要因に少なくとも部分的に基づき得る。図示のように、フットプリント２０２は長方形であるが、フットプリント２０２は、正方形、三角形、長方形、平行四辺形の非対称形状、曲線など、望ましい任意の形状を取ることができる。さらに、フットプリント２０２は、２次元として見た平面図で例示されている。ただし、場合によっては、フットプリント２０２は、ロボット２００の複数の表面からのロボット２００のロボット２００の認識を反映する３次元であり得る。
【００４３】
図示のように、いくつかの実装形態では、フットプリント２０２は、ロボット２００の実際のサイズより大きくなり得る。当業者であれば、本開示の内容が与えられれば、ロボット２００に対するフットプリント２０２の各面からのクリアランスの量は、異なる点で独立して変化することができ、フットプリント２０２は、ロボット２００とは異なる形状であり、全体に非対称なクリアランスおよび／または変動を有し得ることを理解することができる。いくつかの実装形態では、フットプリント２０２は、ロボット２００とサイズおよび／または形状が実質的に同様であり、クリアランスを作らないことが可能である。有利なことに、この実質的な類似性を有することにより、ロボット２００は、物体の周りを厳密にナビゲートし、および／または支援を最小限に抑えることを可能にすることができる。しかしながら、この実質的な類似性を有することは、ロボット２００のマッピングおよび／またはナビゲーションにおけるノイズおよび／または異常による衝突のリスクを高める可能性がある。
【００４４】
場合によっては、ロボット２００は空間に収まることができるが、フットプリント２０２がロボット２００に、ロボット２００が収まらないと認識させることができる。そのような場合、フットプリント２０２が空間を横切ることができないために停止しているロボット２００は、支援シナリオを生じさせることができる。次に、オペレータは、ロボット２００が実際に空間を横断することができるかどうかを判定し、それに応じてロボット２００に命令することができる。
【００４５】
別の例示として、支援はロボットが身動きできなくなることに関連し得る。例えば、ロボットは、ロボットがタスクの実行に制限を有する場合、身動きできなくなり得る。例示として、ロボットは、ロボットが自律的にナビゲートすることができない領域に入り得る。そのようなことは、逆方向に移動できないこと、および／または特定の方向（例えば、左、右、前、後ろなど）に動作できないことを含む、ナビゲーション制限をロボットが有する場合に当てはまり得る。そのような場合、オペレータは、ロボットの制限内で行動を組み合わせて脱出する、および／またはロボットを物理的に回転させるように、ロボットに命令を与えることを所望してもよい。別の例として、ロボットは、物体を複数回通過して前進することを無駄に試行することがある。ロボットはまた、内部エラーおよび／または他の原因により身動きできなくなることがある。
【００４６】
本開示のいくつかの実装形態では、支援は、命令および／またはロボットとの相互作用を含むことができる。例えば、オペレータは、ロボットを移動させること（例えば、ロボットを制御すること、ロボットに接触すること、ロボットを収拾すること、ロボットを回転させることなど）、ロボットに前進するように伝えること、ロボットをリセットすること、および／または他の支援によって、エラーおよび／または支援のイベントに応答することができる。
【００４７】
当業者であれば、本開示の内容が与えられれば、ロボットを支援することが望ましいことがある任意の数の事例があり、本開示のシステムおよび方法はそれらの状況のいずれにも容易に適応可能であることを理解するはずである。
【００４８】
図２Ｂは、本開示のいくつかの実装形態による、無駄に物体２５０の周りをナビゲートしているロボット２００の上面図である。ロボット２００は最初に経路２５２Ａに沿って進むことができる。物体２５０は、経路２５２Ａに沿って位置する位置２５４Ａにあり得る。ロボットは、（例えば、図３を参照して記載されるようなセンサユニット３１２の）１つ以上のセンサを使用して物体を検出することができる。その結果、ロボット２００は、ロボット２００が計画している間にクリアであるように見え得る経路２５２Ｂに沿って進むことにより、位置２５４Ａの周りをナビゲートすることを試行することができる。しかしながら、ロボット２００が経路２５２Ｂに沿って進むことを試行するとき、物体２５０は位置２５４Ｂに移動し得る。したがって、ロボット２００は前進を妨げられ得る。場合によっては、ロボット２００は再び経路２５２Ａに経路変更することができる。ただし、その後、物体２５０は、ロボット２００が経路変更することができる前に位置２５４Ａに戻ることができる。この経路変更は、無駄に複数回行われることが可能である。したがって、ロボット２００は、所定の数の経路変更試行後に支援を要求することができる。所定の数の経路変更試行は、ロボット２００が支援を要請する前に所望される時間の量、ロボット２００が検討している場合のロボット２００の外観（例えば、公衆の前で混乱しているように見えることは、ロボットにとって望ましくない場合があり、したがって、支援が要請される前に所望される経路変更が少なくなり得る）、所望の支援数（例えば、安全および／または他の理由で支援が多いほうが、またはロボットのオペレータへの依存性を低下させるために支援が少ないほうが望ましい場合がある）、経路変更の頻度、問題を解決するための経験的な経路変更数、および／または他の考慮事項に、少なくとも部分的に基づいて決定することができる。
【００４９】
図１に戻ると、ブロック１０６は、支援を要請することを含むことができる。支援を要請することには、ロボットにおける支援を示す表示、オペレータへのメッセージの送信（例えば、無線信号または有線信号を介して）、遠隔操作センターへの通信、および／または支援の少なくとも一部を示す任意の通信の送信が含まれる。支援は、オペレータがロボットを物理的に支援し（例えば、ロボットの移動、障害物の移動、ロボットのタスクに関連する物体の移動など）、および／またはロボットに対する指示を発行（例えば、ユーザインターフェース、無線信号、有線信号などを介して）することにより、行われ得る。
【００５０】
図３は、本開示のいくつかの動作原理による、ロボット２００の機能ブロック図である。図３に例示されるように、ロボット２００は、コントローラ３０４、メモリ３０２、ユーザインターフェースユニット３１８、マッピングおよび位置特定ユニット３２４、センサユニット３１２、アクチュエータユニット３２０、および通信ユニット３２２、ならびに他のコンポーネントおよびサブコンポーネント（例えば、それらのいくつかは例示されなくてもよい）を含むことができる。図３には特定の実装形態が例示されているが、本開示の内容が与えられた当業者には容易に分かるように、アーキテクチャは特定の実装形態において変更され得ることが理解できる。本明細書で使用される場合、ロボット２００は、本開示に記載される任意のロボットの少なくとも一部を代表することができる。
【００５１】
コントローラ３０４は、ロボット２００によって実行される様々な動作を制御することができる。コントローラ３０４は、１つ以上のプロセッサ（例えば、マイクロプロセッサ）および他の周辺機器を含むことができる。本明細書で使用される場合、プロセッサ、マイクロプロセッサ、および／またはデジタルプロセッサは、限定はしないが、デジタル信号プロセッサ（「ＤＳＰ」）、縮小命令セットコンピュータ（「ＲＩＳＣ」）、汎用（「ＣＩＳＣ」）プロセッサ、マイクロプロセッサ、ゲートアレイ（例えば、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」））、プログラマブルロジックデバイス（「ＰＬＤ」）、再構成可能コンピュータファブリック（「ＲＣＦ」）、アレイプロセッサ、セキュアマイクロプロセッサ、専用プロセッサ（例えば、ニューロモルフィック（ｎｅｕｒｏｍｏｒｐｈｉｃ）プロセッサ）、および特定用途向け集積回路（「ＡＳＩＣ」）などの任意の種類のデジタル処理装置を含むことができる。そのようなデジタルプロセッサは、単一の一体型集積回路ダイに含まれてもよく、または複数のコンポーネントにわたって分散されてもよい。
【００５２】
コントローラ３０４は、メモリ３０２に動作可能および／または通信可能に結合され得る。メモリ３０２は、読み取り専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、不揮発性ランダムアクセスメモリ（「ＮＶＲＡＭ」）、プログラム可能な読み取り専用メモリ（「ＰＲＯＭ」）、電気的消去可能でプログラム可能な読み取り専用メモリ（「ＥＥＰＲＯＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、モバイルＤＲＡＭ、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）、ダブルデータレートＳＤＲＡＭ（「ＤＤＲ／２  ＳＤＲＡＭ」）、拡張データ出力（「ＥＤＯ」）ＲＡＭ、高速ページモードＲＡＭ（「ＦＰＭ」）、低遅延ＤＲＡＭ（「ＲＬＤＲＡＭ」）、スタティックＲＡＭ（「ＳＲＡＭ」）、「フラッシュ」メモリ（例えば、ＮＡＮＤ／ＮＯＲ）、メモリスタメモリ、擬似スタティックＲＡＭ（「ＰＳＲＡＭ」）などを含むがこれらに限定されない、デジタルデータを格納するように構成された任意の種類の集積回路または他の記憶デバイスを含み得る。メモリ３０２は、コントローラ３０４に命令およびデータを提供することができる。例えば、メモリ３０２は、ロボット２００を動作させるために処理装置（例えば、コントローラ３０４）により実行可能である複数の命令が格納された非一時的なコンピュータ可読記憶装置および／または媒体であり得る。場合によっては、命令は、処理装置によって実行されたときに、処理装置に本開示に記載された様々な方法、特徴、および／または機能を実行させるように構成され得る。したがって、コントローラ３０４は、メモリ３０２内に格納されたプログラム命令に基づいて論理演算および算術演算を実行することができる。場合によっては、メモリ３０２の命令および／またはデータは、ハードウェア、ロボット２００内にローカルに位置するもの、およびロボット２００から遠隔に位置するもの（例えば、クラウド、サーバ、ネットワークなど）の組み合わせに格納できる。
【００５３】
いくつかの実装形態では、センサユニット３１２は、ロボット２００内および／またはロボット２００の周囲の特性を検出することができるシステムおよび／または方法を含むことができる。センサユニット３１２は、複数のセンサおよび／またはセンサの組み合わせを含むことができる。センサユニット３１２は、ロボット２００の内部または外部にあるセンサを含むことができ、および／または、部分的に内部および／または部分的に外部にあるコンポーネントを含むことができる。場合によっては、センサユニット３１２は、ソナー、光検出および測距（「ＬＩＤＡＲ」）センサ、レーダ、レーザ、カメラ（ビデオカメラ（例えば、赤−青−緑（「ＲＧＢ」）カメラ、赤外線カメラ、３Ｄカメラ、サーマルカメラなどを含む）、飛行時間（「ＴＯＦ」）カメラ、アンテナ、動き検出器、マイクロフォン、および／または当技術分野において既知の任意の他のセンサなどの１つ以上の外受容センサを含むことができる。いくつかの実装形態では、センサユニット３１２は、生の測定値（例えば、電流、電圧、抵抗、ゲートロジックなど）および／または変換された測定値（例えば、距離、角度、障害物内の検出点など）を収集することができる。場合によっては、測定値は、集約および／または要約することができる。センサユニット３１２は、測定値に少なくとも部分的に基づいてデータを生成することができる。そのようなデータは、マトリックス、アレイ、待ち行列、リスト、アレイ、スタック、バッグなどのデータ構造に格納することができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ぶことができる。
【００５４】
いくつかの実装形態では、センサユニット３１２は、ロボット２００の内部特性を測定することができるセンサを含むことができる。例えば、センサユニット３１２は、ロボット２００の温度、電力レベル、状態、および／または任意の他の特性を測定することができる。場合によっては、センサユニット３１２は、ロボット２００の走行距離測定を使用して場所を決定するように構成することができる。例えば、センサユニット３１２は、加速度計、慣性測定ユニット（「ＩＭＵ」）、走行距離計、ジャイロスコープ、スピードメータ、カメラ（例えば、視覚的走行距離測定を使用する）、時計／タイマなどのセンサを含むことができる、固有受容センサを含むことができる。走行距離測定は、ロボット２００の自律ナビゲーションおよび／または他の自律的な行動を容易にすることができる。この走行距離測定は、初期の場所に対するロボット２００の位置の測定値を含むことができる（例えば、位置が、ロボットの場所、変位、および／または向きを含み、時には本明細書で使用されるような姿勢という用語と交換可能であり得る場合）。そのようなデータは、マトリックス、アレイ、待ち行列、リスト、アレイ、スタック、バッグなどのデータ構造に格納することができる。いくつかの実装形態では、センサデータのデータ構造は、画像と呼ぶことができる。
【００５５】
マッピングおよび位置特定ユニット３２４は、センサユニット３１２からセンサデータを受信して、ロボット２００をマップに位置特定することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット３２４は、ロボット２００がそれ自体をマップの座標内でおよび／または場所（例えば、初期化場所、終了場所、ビーコン、基準点など）に対して位置特定することを可能にする位置特定システムおよび方法を含むことができる。マッピングおよび位置特定ユニット３２４はまた、グラフ（例えば、位置グラフ）および／またはマップを生成することなどによって、ロボット２００によって取得された測定値を処理することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット３２４は、コントローラ３０４の少なくとも一部であり得る。
【００５６】
いくつかの実装形態では、ユーザインターフェースユニット３１８は、ユーザがロボット２００と対話できるように構成することができる。例えば、ユーザインターフェース３１８は、タッチパネル、ボタン、キーパッド／キーボード、ポート（例えば、汎用シリアルバス（「ＵＳＢ」）、デジタルビジュアルインターフェース（「ＤＶＩ」）、ディスプレイポート、イーサーター（Ｅ−Ｓａｔａ）、ファイアワイヤ（Ｆｉｒｅｗｉｒｅ）、ピーエス２（ＰＳ／２）、シリアル（Ｓｅｒｉａｌ）、ブイジーエイ（ＶＧＡ）、スカジー（ＳＣＳＩ）、オーディオポート、高品位マルチメディアインターフェース（「ＨＤＭＩ」）、パーソナルコンピュータメモリカード国際協会（「ＰＣＭＣＩＡ」）ポート、メモリカードポート（例えば、セキュアデジタル（「ＳＤ」）およびミニＳＤ）、および／またはコンピュータ可読媒体用のポート）、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および／または有線でまたは無線で結合されているかにかかわらず、ユーザがデータおよび／またはコマンドを入力および／または受信するための任意のインターフェースを含むことができる。ユーザインターフェースユニット３１８は、限定はしないが、液晶ディスプレイ（「ＬＣＤ」）、発光ダイオード（「ＬＥＤ」）ディスプレイ、ＬＥＤ・ＬＣＤディスプレイ、面内スイッチング（「ＩＰＳ」）ディスプレイ、陰極線管、プラズマディスプレイ、高精細（「ＨＤ」）パネル、４Ｋディスプレイ、レティナ（ｒｅｔｉｎａ）ディスプレイ、有機ＬＥＤディスプレイ、タッチスクリーン、サーフェイス、キャンバス、および／または視覚的表現のための当技術分野において既知の任意のディスプレイ、テレビ、モニタ、パネル、および／またはデバイスを含むことができる。いくつかの実装形態では、ユーザインターフェースユニット３１８は、ロボット２００の本体上に位置付けされ得る。いくつかの実装形態では、ユーザインターフェースユニット３１８は、ロボット２００の本体から離れて位置付けすることができるが、（例えば、送信機、受信機、および／もしくは送受信機を含む通信ユニットを介して）ロボット２００と直接、または（例えば、ネットワーク、サーバ、および／またはクラウドを通じて）間接的に通信可能に結合することができる。
【００５７】
いくつかの実装態様では、通信ユニット３２２は、１つ以上の受信機、送信機、および／または送受信機を含むことができる。通信ユニット３２２は、限定はしないが、１つ以上のブルートゥース（ＢＬＵＥＴＯＯＴＨ（登録商標））、ジグビー（ＺＩＧＢＥＥ（登録商標））、ワイファイ（Ｗｉ−Ｆｉ）、誘導無線データ伝送、無線周波数、無線伝送、無線周波数識別（「ＲＦＩＤ」）、近距離通信（「ＮＦＣ」）、赤外線、ネットワークインターフェース、３Ｇ（３ＧＰＰ／３ＧＰＰ２）などのセルラ技術、高速ダウンリンクパケットアクセス（「ＨＳＤＰＡ」）、高速アップリンクパケットアクセス（「ＨＳＵＰＡ」）、時分割多重アクセス（「ＴＤＭＡ」）、符号分割多元接続（「ＣＤＭＡ」）（例えば、ＩＳ−９５Ａ、広帯域符号分割多元接続（「ＷＣＤＭＡ」）など）、周波数ホッピングスペクトラム拡散（「ＦＨＳＳ」）、直接シーケンス拡散スペクトル「ＤＳＳＳ」）、移動体通信のためのグローバルシステム（「ＧＳＭ」）、パーソナルエリアネットワーク（「ＰＡＮ」）（例えば、ＰＡＮ／８０２．１５）、マイクロ波アクセスの世界的な相互運用性（「ＷｉＭＡＸ」）、８０２．２０、ロングタームエボリューション（「ＬＴＥ」）（例えば、ＬＴＥ／ＬＴＥ−Ａ）、時分割ＬＴＥ（「ＴＤ−ＬＴＥ」）、移動体通信のためのグローバルシステム（「ＧＳＭ」）、狭帯域／周波数分割多元接続（「ＦＤＭＡ」）、直交周波数分割多重（「ＯＦＤＭ」）、アナログセルラ、セルラデジタルパケットデータ（「ＣＤＰＤ」）、衛星システム、ミリ波またはマイクロ波システム、音響、赤外線（例えば、赤外線データ協会規格（「ＩｒＤＡ」））、および／または任意の他の形式の無線データ伝送などの伝送プロトコルを送信／受信するように構成することができる。
【００５８】
本明細書で使用される場合、ネットワークインターフェースは、ファイアワイヤ（ＦｉｒｅＷｉｒｅ）（例えば、ＦＷ４００、ＦＷ８００、ＦＷＳ８００Ｔ、ＦＷＳ１６００、ＦＷＳ３２００など）、ユニバーサルシリアルバス（「ＵＳＢ」）（例えば、ＵＳＢ１．Ｘ、ＵＳＢ２．０、ＵＳＢ３．０、ＵＳＢ  Ｔｙｐｅ−Ｃなど）、イーサネット（例えば、１０／１００、１０／１００／１０００（ギガビットイーサネット）、１０−Ｇｉｇ−Ｅなど）、同軸同盟技術によるマルチメディア（「ＭｏＣＡ」）、コアックスシーズ（Ｃｏａｘｓｙｓ）（例えば、ＴＶＮＥＴ（商標））、無線周波数チューナ（例えば、帯域内（ｉｎ−ｂａｎｄ）または帯域外（ＯＯＢ）、ケーブルモデムなど）、Ｗｉ−Ｆｉ（８０２．１１）、ＷｉＭＡＸ（例えば、ＷｉＭＡＸ（８０２．１６））、ＰＡＮ（例えば、ＰＡＮ／８０２．１５）、セルラ（例えば、３Ｇ、ＬＴＥ／ＬＴＥ−Ａ／ＴＤ−ＬＴＥ／ＴＤ−ＬＴＥ、ＧＳＭなど）、ＩｒＤＡファミリなどのものを含むがこれらに限定されない、コンポーネント、ネットワーク、またはプロセスを有する任意の信号、データ、またはソフトウェアインターフェースを含むことができる。本明細書で使用される場合、Ｗｉ−Ｆｉは、ＩＥＥＥ  ８０２．１１規格、ＩＥＥＥ  ８０２．１１規格の変形、ＩＥＥＥ  ８０２．１１規格に関連する規格（例えば、８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ／ａｄ／ａｆ／ａｈ／ａｉ／ａｊ／ａｑ／ａｘ／ａｙ）、および／または他の無線規格のうちの１つ以上を含むことができる。
【００５９】
通信ユニット３２２はまた、信号線および接地を有する任意のケーブルなどの有線接続を介して伝送プロトコルを利用して送信／受信するように構成され得る。例えば、そのようなケーブルは、イーサネットケーブル、同軸ケーブル、ユニバーサルシリアルバス（「ＵＳＢ」）、ファイアワイヤ（ＦｉｒｅＷｉｒｅ）、および／または当技術分野において既知の任意の接続を含むことができる。そのようなプロトコルは、例えば、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動通信ネットワーク、クラウド、サーバなどの外部システムと通信するために通信ユニット３２２によって使用され得る。通信ユニット３２２は、数字、文字、英数字、および／または記号を含む信号を送受信するように構成され得る。場合によっては、例えば、１２８ビットもしくは２５６ビット鍵などのアルゴリズム、および／または高度暗号化規格（「ＡＥＳ」）、ＲＳＡ、データ暗号化規格（「ＤＥＳ」）、トリプルＤＥＳなどの規格に準拠する他の暗号化アルゴリズムを使用して、信号を暗号化することができる。通信ユニット３２２は、ステータス、コマンド、および他のデータ／情報を送受信するように構成され得る。例えば、通信ユニット３２２は、ユーザオペレータと通信して、そのユーザがロボット２００を制御することを可能にすることができる。通信ユニット３２２は、ロボット２００がデータ、状態、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ／ネットワーク（例えば、遠隔ネットワーク）と通信することができる。サーバはまた、ロボット２００を遠隔的に監視および／または制御するために使用することができるコンピュータ（複数可）および／または装置（複数可）に通信可能に結合することができる。通信ユニット３２２はまた、ロボット２００用のサーバから更新（例えば、ファームウェアまたはデータの更新）、データ、状態、コマンド、および他の通信を受信することができる。
【００６０】
アクチュエータユニット３２０は、場合によってはタスクを実行するために作動させるために使用される任意のシステムを含むことができる。例えば、アクチュエータユニット３２０は、駆動される磁石システム、モーター／エンジン（例えば、電気モーター、燃焼機関、蒸気機関、および／または当技術分野において既知の任意の種類のモーター／エンジン）、ソレノイド／ラチェットシステム、圧電システム（例えば、インチワームモーター）、磁歪素子、ジェスティキュレーション、および／または当技術分野において既知の任意のアクチュエータを含むことができる。いくつかの実装形態において、アクチュエータユニット３２０は、推進を動力化するなど、ロボット２００の移動を可能にするシステムを含むことができる。例えば、電動推進は、ロボット２００を前方または後方に移動させることができ、かつ／または少なくとも部分的にロボット２００を回転させる（例えば、左、右、および／または他の任意の方向に）のに使用することができる。例示として、アクチュエータユニット３２０は、ロボット２００が移動しているかまたは停止している場合に制御し、および／またはロボット２００がある場所から別の場所にナビゲートすることを可能にすることができる。アクチュエータユニット３２０はまた、水のオン／オフ、ブラシのオン／オフ、水の噴霧、真空掃除機のオン／オフ、真空掃除機ホース位置の移動、付属物（例えば、ロボットの腕、脚、手、足など）の移動、および／または任意の他の行動など、ロボット２００の他の器具を作動させるように構成することができる。
【００６１】
図３に関して記載されたユニット（メモリ３０２、コントローラ３０４、センサユニット３１２、ユーザインターフェースユニット３１８、アクチュエータユニット３２０、通信ユニット３２２、マッピングおよび位置特定ユニット３２４、および／または他のユニットを含む）のうちの１つ以上は、統合システムなどにおいてロボット２００に統合することができる。しかしながら、いくつかの実装形態では、これらのユニットのうちの１つ以上は、取り付け可能なモジュールの一部であり得る。このモジュールは、それがロボットとして挙動するように自動化するために既存の装置に取り付けることができる。したがって、ロボット２００に関して本開示で記載されている特徴は、既存の装置に取り付けることができ、および／または統合システムにおいてロボット２００に統合することができるモジュール内でインスタンス化することができる。さらに、場合によっては、当業者であれば、本開示の内容が与えられれば、本開示に記載されている特徴の少なくとも一部をクラウド、ネットワーク、および／またはサーバなどで遠隔的に機動することができることを理解するはずである。場合によっては、コントローラ３０４は、図３に例示されるユニットのうちの１つ以上を含むように実行することができ、および／またはロボット２００によって実行される他の行動はコントローラ３０４によって処理することができる。
【００６２】
いくつかの実装形態では、ロボット２００は、遠隔ネットワークに通信可能に結合され得る。図４は、本開示のいくつかの実装形態による、遠隔ネットワーク４０２と通信可能および／または動作可能に結合されたロボット２００を含むシステム４００の機能ブロック図である。遠隔ネットワーク４０２は、制限もしくは定義された期間、または無制限もしくは不定の期間にわたって、仮想マシン、プロセス、または他のリソースをインスタンス化するために呼び出すことができる、ハードウェア、ソフトウェア、サービス、および／またはリソースの集合を含むことができる。遠隔ネットワーク４０２は、インターネットにアクセスするデバイスおよび／またはサーバを含む、複数のデバイス、システム、および／またはサーバと通信可能および／または動作可能に結合することができる。アクセスポイント４０４Ａおよび４０４Ｂなどのアクセスポイントのうちの１つ以上は、コンピュータ、モバイルデバイス、タブレット、スマートフォン、携帯電話、携帯情報端末、ファブレット、電子書籍リーダー、スマートウォッチ、セットトップボックス、インターネットストリーミングデバイス、ゲーム機、スマート家電、および／または、インターネットおよび／または任意のネットワークプロトコルにアクセスできる任意のデバイスを含むがこれらに限定されない、デバイス、システム、および／またはサーバであり得る。２つのアクセスポイントが例示されているが、所望に応じてより多くのまたはより少ないアクセスポイントがあってもよい。
【００６３】
本明細書で使用される場合、遠隔ネットワーク４０２を操作することができる、すなわち、遠隔ネットワーク４０２は、情報を受信、処理、および／または送信することができる、内蔵コンピュータを有することができる。これらのコンピュータは、自律的におよび／または１人以上の人間のオペレータによる制御下で、動作することができる。同様に、遠隔ネットワーク４０２は、遠隔ネットワーク４０２を操作するために同様に使用することができる、アクセスポイント（例えば、アクセスポイント４０４Ａおよび４０４Ｂ）を有することができる。アクセスポイントは、情報を受信、処理、および／または送信することができる、コンピュータおよび／または人間のオペレータを有することができる。したがって、本明細書における遠隔ネットワーク４０２の動作への言及は、人間のオペレータおよび／またはコンピュータのオペレータに適用することができる。
【００６４】
いくつかの実装形態では、ロボット２００と実質的に同様の１つ以上のロボットは、遠隔ネットワーク４０２と通信可能および／または動作可能に結合することができる。これらのロボットの各々は、状態、コマンド、および／または動作データを遠隔ネットワーク４０２に通信することができる。遠隔ネットワーク４０２はまた、状態、コマンド、および／または動作データを、ロボットのうちのこれらの１つ以上に格納し、および／または通信することができる。
【００６５】
当業者であれば、本開示の内容が与えられれば、本開示の一部がロボット２００、ネットワーク４０２、および／またはアクセスポイント４０４Ａおよび／または４０４Ｂによって実行され得ることを理解するはずである。特定の例は、ロボット２００、ネットワーク４０２、および／またはアクセスポイント４０４Ａおよび／または４０４Ｂのうちの１つ以上を参照して記載され得るが、例の特徴は、実質的に同様の結果を達成するように、ロボット２００、ネットワーク４０２、および／またはアクセスポイント４０４Ａおよび／または４０４Ｂ中に分散され得ることは理解できるはずである。
【００６６】
図５は、本開示のいくつかの実装形態による、支援要求を発行するための例示的な方法５００のプロセスフロー図である。ブロック５０２は、エラーおよび／または支援イベントを検出することを含む。エラーおよび／または支援イベントは、センサユニット３１２のうちの１つ以上を使用して検出することができる。例えば、センサユニット３１２の外受容センサは、ロボット２００の環境に関するエラーおよび／または支援イベントを検出することができる。例示として、エラーおよび／または支援イベントは、ロボット２００がタスクを進行させることに失敗することに関連し得る。場合によっては、ロボット２００は、センサユニット３１２のセンサ（例えば、ＬＩＤＡＲ、ソナー、カメラなど）を使用して、物体（例えば、アイテム、障害物、人、平らな物体、大きな物体、ガラスなど）を検出することができる。
【００６７】
例えば、センサユニット３１２のうちのいくつかのセンサは、ロボット２００の環境の特徴を検出するためにエネルギーを放出し、受け取る。そのようなエネルギーには、音、光、電磁波などのうちの１つ以上を含めることができる。例示として、センサは、受信機において光を放出および測定することにより環境の特性を検出することができる、ＬＩＤＡＲとすることができる。障害物の存在は、ＬＩＤＡＲを使用することにより検出することができる。いくつかの実装形態では、マッピングおよび位置特定ユニット３２４は、障害物がロボット２００のグローバルパスまたはローカルパスに沿って落ちることを判定することができる。したがって、ロボット２００は、行路が妨げられていると判定することができる。他の例には、ソナーにより使用される音波が含まれる。また、様々なカメラが発光および受光し、および／またはフィルタを使用して特定の周波数の光を検査してもよい。
【００６８】
場合によっては、物体の特性を検出し、および／またはセンサユニット３１２のセンサからのデータをセンサデータのライブラリ内の識別された物体と照合することなどにより、物体および／または障害物をロボット２００によって識別することができる。場合によっては、ロボット２００は物体を具体的に識別せずに、物体の存在を検出するのみであってもよい。別の例として、センサユニット３１２の固有受容センサは、ロボット２００に関連するエラーおよび／または支援イベントを検出することができる。固有受容センサは、ロボット２００が支援を所望し得るロボット２００の特性を検出することができる。いくつかの実装形態では、ロボット２００がエラーおよび／または支援イベントを検出すると、ロボット２００はエラーおよび／または支援イベントを識別することができる。他のエラーおよび支援イベントは、図１の方法１００のブロック１０４を参照して記載されたものと実質的に同様であり得る。
【００６９】
場合によっては、メモリ３０２は、センサデータのライブラリを格納することができる。場合によっては、センサデータを少なくとも部分的に支援イベントおよび／またはエラーに関連付けることができる。いくつかの実装形態では、このライブラリは、異なる組成（例えば、材料、反射特性、分子構造など）、異なる照明条件、角度、サイズ、距離、明瞭度（例えば、ぼやけている、遮られている／隠れている、フレームから部分的に外れているなど）、色、周囲、および／または他の条件を有する物体に関連するセンサデータなどの、異なる条件の支援イベントおよび／またはエラーに関連するセンサデータを含むことができる。ライブラリ内のセンサデータは、センサ（例えば、センサユニット３１２のセンサまたは任意の他のセンサ）によって取得され、および／または、異なる照明条件、角度、サイズ、距離、明瞭度（例えば、ぼやけている、遮られている／隠れている、フレームから部分的に外れているなど）、色、周囲、および／または他の条件からのライブラリセンサデータ（例えば、これらのライブラリデータを全体的にデジタルで、および／または実際のセンサデータから始めて、生成／シミュレートする（例えば、仮想世界で）ことができる）を生成／シミュレートするように構成されたコンピュータプログラムを用いるなどして自動的に生成され得る。ライブラリ内の画像の数は、利用可能なデータの量、ロボット２００が動作する周囲環境の変動性、物体の複雑さ、物体の外観の変動性、ロボットの物理的特性、センサの特性、および／または利用可能なストレージ空間の量（例えば、ライブラリ、メモリ３０２、および／またはローカルまたは遠隔ストレージ内）のうちの１つ以上に少なくとも部分的に依存し得る。いくつかの実装形態では、ライブラリの少なくとも一部はネットワーク（例えば、クラウド、サーバ、分散ネットワークなど）に格納されてもよく、および／またはメモリ３０２内に完全に格納されなくてもよい。さらに別の例として、個々のロボットによって捕捉されたデータが他のロボットと集合的に共有されるように、様々なロボット（例えば、共通の製造者、ユーザ、ネットワークなどによるロボットに共通に関連付けられる）をネットワーク化することができる。そのような方法で、これらのロボットは、エラーおよび／または支援イベントを容易に検出および／または識別する能力を促進するために、センサデータを学習および／または共有するように構成することができる。
【００７０】
いくつかの実装形態では、センサデータの所定のパターンおよび／またはロボット２００によって学習されたパターンにより、ロボット２００は発生したエラーおよび／または支援イベントを識別することができる。例えば、エラーおよび／または支援イベントには、致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなることなどの、エラーのカテゴリを含めることができる。エラーのカテゴリの他の識別はまた、バッテリー切れ、行く手の障害物、洗浄液不足、スタックエラー、過熱、検知された人、および／またはエラーの任意の所定の識別などの特定のものを含んで、事前に設定され得る。場合によっては、ロボット２００は、ロボット２００のセンサで検出された人、動物、物体、および／または他体を識別および／または認識するように構成することができる。当業者であれば、本開示の内容が与えられれば、エラーおよび／または支援イベントに、所望に応じて所定の識別を与えることができることを理解するはずである。例えば、ロボット２００が人、動物、物体、および／または他体を検出するかどうかに基づいて、所望される支援の種類は異なり得る。ロボット２００は、ロボット２００が検出／識別するものに基づく論理演算に従うことができる。人および／または動物は、タスクを実行する際にロボット２００の軌道から遠ざかることができる。したがって、場合によっては、ロボット２００が人および／または動物を検出する場合、ロボット２００は、人および／または動物が遠ざかるのを待つことができる。場合によっては、ロボット２００は、人および／または動物に遠ざかる時間を付与するために、支援イベントおよび／またはエラーを全く発行しなくてもよく、および／または、より長い待機（例えば、所定の時間）の後、支援イベントおよび／またはエラーを発行してもよい。別の例として、ロボット２００がロボット２００の行路内のボックスおよび／または静止物体を識別する場合、ロボット２００は、ボックスおよび／または静止物体はたいてい遠ざからないため、ロボット２００はより早く（例えば、所定の時間）支援イベントおよび／またはエラーを発行してもよい。
【００７１】
例示として、ロボット２００は、センサユニット３１２の特定のセンサを使用して致命的エラーおよび／または内部エラーを検出することができる。例えば、電気スイッチ、光センサ、および／または当技術分野において既知の他のセンサを使用して、ロボット２００内の流体が所望のレベルを下回るときを測定することができる。ロボット２００は、試験手順の実施を含む、ロボット２００の様々な構成要素を監視することができる。したがって、ロボット２００は、エラーが発生するときを検出することができる。
【００７２】
別の例示として、ロボット２００は、ロボット２００がタスクを進行させることに失敗することなどの他のエラーを検出することができる。場合によっては、ロボット２００は、ＬＩＤＡＲ、ソナー、カメラ（例えば、ＴＯＦカメラ、ＲＢＧカメラなど）、および／または物体を検出するように構成された任意の他のセンサなどの外受容センサを使用して障害物を検出することができる。場合によっては、ロボット２００が外受容センサのデータにローカルに現れる１つ以上のポイントによって物体を検出することができる場合など、ローカル計画を通じて物体を検出することができる。このローカル計画は、ロボット２００の軌道内の物体の存在を検出することなどによって、ロボットが外受容センサの範囲内の空間をナビゲートするために使用することができる。このようにして、ロボット２００は、物体への衝突を回避することができる。場合によっては、ロボット２００は、ロボット２００のグローバル計画を通じて物体を検出することができ、ロボット２００はグローバルマップから物体を検出することができる。別の例示として、ロボット２００は、ロボット２００の状態（例えば、固有受容センサからのデータに少なくとも部分的に基づいて生成された状態）から身動きできないことを検出することができる。
【００７３】
いくつかの実装形態では、エラーおよび／または支援イベントの検出は、時間窓に少なくとも部分的に基づくことができる。例示として、物体はロボット２００の前に移動し、その後遠ざかることができる。場合によっては、エラーおよび／または支援イベントが単一の測定に基づいている場合、ロボット２００は、センサデータ内の画素が物体の存在を示すときに物体を検出することができる。ただし、これは望ましくない場合がある。ロボット２００は、停止しないようにある程度の堅牢性を有し、ロボット２００が物体に遭遇するたびにエラーおよび／または支援イベントに関する警告を生成することが望ましい場合がある。さらに、センサの単一の測定に依存してエラーおよび／または支援イベントを検出することは、ノイズの影響を大きく受け得る。例えば、測定値の短時間のおよび／または一時的な変動により、誤検出が発生し得る（例えば、物体が検出された、流体が低いと認識された）。したがって、エラーおよび／または支援イベントの検出は、場合によっては、時間窓内のセンサからの持続的および／または測定パターンに少なくとも部分的に依存し得る。
【００７４】
時間窓の長さは、所望に応じて事前に設定することができる。場合によっては、長さは、誤検出、検出に失敗する危険性、経験的データ、環境的特徴、および／または他の考慮事項に対する許容範囲に少なくとも部分的に基づくことができる。場合によっては、エラーおよび／または支援イベントをオペレータの支援なしで解決するための十分な時間を与えるために、時間の長さをおよそ１５秒にすることができる。
【００７５】
いくつかの実装形態では、ロボット２００は、ロボット２００がエラーおよび／または支援イベントを検出する前に停止させることができる。例示として、場合によっては、ロボット２００が障害物を検出した場合（例えば、腕を移動させる、またはナビゲートすることなどにより、作動している間）、ロボット２００は停止することができる。次いで、ロボット２００は、他の一連の行動を実施して、エラーおよび／または支援イベントが発生したかどうかを確認することができる。例えば、ロボット２００は、障害物の周りに経路があるかどうかを判定することができる。ロボット２００が取ることができるとロボット２００が判定する別の一連の行動がない場合、ロボット２００は停止位置に留まることができる。場合によっては、障害物が遠ざかることがあり、ロボットが前進することができる。他の場合には、障害物が持続することがあり、ロボット２００がエラーおよび／または支援イベントを検出することがある。
【００７６】
場合によっては、ロボット２００を停止させることには、タスクの実行を停止することが含まれる。例えば、ロボット２００は、ブラシ、真空掃除機、手足、流体出力、車輪などを移動させるように構成されたアクチュエータなどの、タスクを実行するアクチュエータを有することができる。これらの作動は、特定のシナリオにおいて、ロボット２００の環境に有害であり、および／またはロボット２００を損耗させ得る。例示として、ロボット２００が床掃除機である場合、ロボット２００は床を磨くブラシを有することができる。ロボット２００が移動していない場合、ブラシはある期間、実質的に同じ場所で稼働する可能性があり、この稼働は、ブラシが床に損傷を与えることにつながり得る。したがって、停止することは、アクチュエータを作動させてブラシデッキを持ち上げること、および／またはブラシの回転を停止することを含むことができる。この同じ例のさらなる例示として、床掃除機はまた、床に水を置いて掃除することが可能であってもよい。ロボット２００が移動していない場合、背面の真空掃除機がすべての水を収拾せず、こぼしを発生させる可能性がある。本開示のいくつかの実装形態では、ロボット２００は、弁を遮断し、および／または他の方法でロボット２００が床に水を置くことを阻止することができる。この同じ例のさらなる例示として、床掃除機の真空掃除機は、長期間同じ場所に放置されると摩耗する可能性がある。本開示のいくつかの実装形態では、ロボット２００は真空掃除機を止めることができる。別の例として、ロボット２００は、運動のために稼働するモーターを有してもよい。ロボット２００がタスクを実行していないときにモーターをオンのままにすると、モーターの損耗、汚染、および／または他の損害につながり得る。
【００７７】
いくつかの実装形態では、ある場合に検出されたエラーおよび／または支援イベントは、他の場合に検出されたエラーおよび／または支援イベントではなくてもよい。例えば、ロボット２００は、オペレータが１回の反復でエラーおよび／または支援イベントをどのように扱うかを学習および／または観察し、同じエラーおよび／または支援イベントが後で発生する場合に実質的に同様の行動を実行することができる。例示として、（例えば、複数の反復のうちの）第１の反復では、ロボット２００は方法５００を実行することができる。ロボット２００は、ブロック５０２で、オペレータにより取られた行動を、検出されたエラーおよび／または支援イベントを生じさせた状況と関連付けることができる。後続の反復では、ロボット２００が実質的に同様の状況を検出すると、ロボット２００は、そのような状況に関連付けられた行動を取るべきであると判定することにより、方法５００のブロックの少なくとも一部を実行することを回避することができる。場合によっては、ロボット２００は、反復機械学習プロセスを通じてなど、複数の反復にわたってオペレータにより取られた行動を関連付けることを学習することができる。
【００７８】
ブロック５０４は、エラーおよび／または支援イベントに関する警告を生成することを含む。警告は、ユーザインターフェースユニット３１８、遠隔ネットワーク４０２、および／またはアクセスポイント４０４Ａおよび／または４０４Ｂに現れ得る。警告には、エラーおよび／または支援イベントが発生したという一般的な記述を含めることができ、および／または警告には、エラーおよび／または支援イベントの識別を含めることができる。
【００７９】
いくつかの実装形態では、支援が現れる場所を決定するために論理演算を実行することができる。いくつかの実装形態では、そのような論理演算は、コントローラ３０４を使用することなどにより、ロボット２００によって実行することができる。論理演算は、ロボット２００のセンサデータ、環境条件、環境内の識別された物体、識別されたエラーおよび／または支援イベント、および／または、エラーおよび／または支援イベントの状況の任意の他のインジケータなどの状況に少なくとも部分的に基づいて、支援が現れる場所を決定することができる。例示として、支援イベントが狭すぎる進路である場合（およびロボット２００が通過できるかどうか不明である場合）、ロボット２００は遠隔ネットワーク４０２に支援を発行することができる。次いで、遠隔ネットワーク４０２（および／または遠隔ネットワーク４０２のオペレータ）は、ロボット２００が通過できるかどうか、および／またはロボット２００に前進するように伝えることができるかどうかを判定することができる。ロボット２００が少なくとも部分的に遠隔ネットワーク４０２の決定に基づいて通過できない場合、遠隔ネットワーク４０２は、オペレータ（例えば、ユーザインターフェースユニット３１８および／またはアクセスポイント４０４Ａおよび／または４０４Ｂで支援要求を見ることができる）に支援要求を発行することができる。このようにして、オペレータは、（例えば、物体および／またはロボット２００を移動させることにより）ロボット２００を支援することができる。別の例として、封鎖された行路は、遠隔ネットワーク４０２（および／または遠隔ネットワーク４０２のオペレータ）による決定を必要としなくてもよく、ロボット２００および／または物体を移動させ得る物理的オペレータにより迅速に向けることにより、より素早い支援が行われ得る。したがって、ロボット２００は、遠隔ネットワーク４０２が支援するのを待機する代わりに、支援をユーザインターフェース３１８および／またはアクセスポイント４０４Ａおよび／または４０４Ｂに（例えば、ロボット２００および／またはアクセスポイント４０４Ａおよび／または４０４Ｂ間で直接、および／またはネットワーク４０２を通じて）渡すことができる。
【００８０】
いくつかの実装形態では、論理演算は、同時に支援を送信する場所を決定することができる。例えば、ロボット２００は、複数の遠隔ネットワーク４０２、ユーザインターフェースユニット３１８、アクセスポイント４０４Ａおよび／または４０４Ｂ、および／または他のデバイスに支援を発行することができ、支援は実質的に同時に発行される。同様に、このような場合、支援は階層を有さなくてもよく、任意のデバイスからの支援が同様に扱われる。
【００８１】
いくつかの実装形態では、遠隔ネットワーク４０２、ユーザインターフェースユニット３１８、アクセスポイント４０４Ａおよび／または４０４Ｂ、および／または他のデバイスに対する支援は、応答の権限に関して、および／または支援が要求される順序に関して、少なくとも部分的に特徴付けられる階層などの階層を有することができる。
【００８２】
例えば、権限に基づいた階層を実装することができる。そのような場合、ロボット２００は、１つのデバイスにより入力される重みを他のデバイスよりも大きく設定することができる。例えば、ユーザインターフェースユニット３１８はロボット２００に配置されている。したがって、ユーザインターフェースユニット３１８を介して入力された支援は、現在の状況により適切であると認識することができる。したがって、いくつかの実装形態では、ユーザインターフェースユニット３１８からの命令は、他から受信された命令よりも優先させることができる。
【００８３】
別の例として、場合によっては、遠隔ネットワーク４０２は、少なくとも部分的に集中管理センターとして特徴付けられ得る。したがって、遠隔ネットワーク４０２（および／または遠隔ネットワーク４０２のオペレータ）による命令は、複数のロボットにわたる経験の少なくとも一部を反映することができる。場合によっては、そのような命令は他から受信された命令よりも優先させることができる。場合によっては、アクセスポイント４０４Ａおよび／または４０４Ｂ、および／または他のデバイスのうちの１つ以上を、階層内で最高（例えば、最も権威ある）に指定することができる。例えば、アクセスポイント４０４Ａは、ロボット２００の専門知識を有することができる開発者、製造者などによって操作することができる。有利なことに、権限に基づいた階層を有することにより、ロボット２００が異なる命令を分類し、および／またはより最適な行動を実行することを可能にすることができる。
【００８４】
別の例として、いくつかの実装形態では、支援が要求される順序によって階層を特徴付けることができる。例えば、場合によっては、他のデバイスに対して最初に遠隔ネットワーク４０２に支援を発行することができる。有利なことに、これにより、オペレータを邪魔することなく少なくともいくつかの問題を解決することにより、ユーザ体験を向上させることができる。遠隔ネットワーク４０２が応答しない、および／または適切な命令および／または支援を与えることができない場合（例えば、物理的な相互作用が望ましい）、支援は、ユーザインターフェースユニット３１８、アクセスポイント４０４Ａおよび／または４０４Ｂ、および／または他のデバイスに向けることができる。別の例として、より多くの状況知識を有する人（例えば、現場にいる人）が最初に問題に対処することを可能にするために、最初にユーザインターフェースユニット３１８に支援を発行することができる。場合によっては、安全性および／または他の考慮事項により、即座の現場支援が望ましい場合がある。有利なことに、支援が要求される順序によって特徴付けられる階層を有することにより、リソースに負担をかけずに支援の効率的な解決を可能にすることができる。場合によっては、各支援が発行される間隔に所定の遅延が生じることがある。そのような所定の遅延は、支援を扱う時間の量、デバイスの応答時間（例えば、ユーザインターフェースユニット３１８を操作する人および／またはコンピュータ、遠隔ネットワーク４０２、アクセスポイント４０４Ａおよび／または４０４Ｂ、および／または他のデバイス）、応答時間の経験的証拠、ワークフローの最適化、および／または他の考慮事項に、少なくとも部分的に基づいて決定することができる。
【００８５】
いくつかの実装形態では、エラーおよび／または支援イベントに関する警告をテキスト形式にすることができる。例示として、警告は、オペレータにエラーおよび／または支援イベントを知らせるためにロボット２００のオペレータに送信されるテキストメッセージであり得る。警告は、ＳＭＳ、インターネット、ラジオ、光、電場、および／または任意の他の形式の通信（例えば、通信ユニット３２２を使用する）を介して送信することができる。有利なことに、ロボット２００の一部のオペレータが他のタスクを実行し、および／または他のロボットを管理してもよいため、警告をオペレータに送信することにより、オペレータがロボット２００から離れることおよび／または他のタスクを実行することを可能にすることができる。
【００８６】
例示として、図６Ａは、本開示のいくつかの実装形態に従って支援が必要であることを示すディスプレイ６００である。ディスプレイ６００は、ユーザインターフェースユニット３１８、遠隔ネットワーク４０２、および／またはアクセスポイント４０４Ａおよび／または４０４Ｂに表示することができる。いくつかの実装形態では、ディスプレイ６００は、ロボット２００に通信可能に結合された（例えば、アクセスポイント４０４Ａおよび／または４０４Ｂの）スタンドアロンデバイス上にあり得る。場合によっては、スタンドアロンデバイスは、ロボット２００を支援するために使用されるため、支援デバイスと呼ぶことができる。
【００８７】
ディスプレイ６００は、支援が必要であることを表示するパネル６０２を有することができる。パネル６０２はまた、「エラーが検出されました」、「支援が必要です」、および／または、エラーおよび／または支援イベントの少なくとも一部を示す他のテキストなどの、他のテキストを表示するために使用することができる。
【００８８】
パネル６１４は、エラーおよび／または支援イベントがある理由をさらに明確に表示することができる。例えば、図６Ａに例示されるように、パネル６１４は、ロボット２００が行路から外れており、行路に障害物があることを示している。当業者であれば、本開示の内容が与えられれば、パネル６１４が、発生したエラーおよび／または支援イベントの少なくとも一部を示す任意のテキストを表示することができることを理解するはずである。例えば、パネル６１４は、致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および／または、エラーおよび／または支援イベントを生じさせ得る任意の他のイベントの少なくとも一部を示す情報を表示することができる。
【００８９】
パネル６１２は、オペレータおよび／または任意の他のユーザの方向を表示することができる。場合によっては、方向は、エラーおよび／または支援イベントに少なくとも部分的に基づいて状況に応じたものにすることができる。例えば、ロボット２００（例えば、ディスプレイ６００にロボットアイコン６０８として表示することができる）が障害物を通過するのを支援する必要がある場合、パネル６１２は、オペレータおよび／または他のユーザに障害物に対処する命令を表示することができる。例えば、図６Ａに例示されるように、パネル６１２は、「障害物を除去するか、私を通過させ、次に背面にある青いボタンを押してください」と明示することができる。この例では、ロボット２００の背面にある青色のボタンは、オペレータおよび／または他のユーザがエラーおよび／または支援イベントに処置を施したことをロボット２００に示すなど、ロボット２００にフィードバックを与えるためにユーザが押す外部ボタンとすることができる。場合によっては、ボタンはユーザが押下する物理的なボタンとすることができる。ボタンは、所望に応じて任意の色にすることができる。ボタンは、ユーザインターフェースユニット３１８を介した入力などの、デジタルボタンおよび／またはロボット２００への他の入力機構であり得る。いくつかの実装形態では、ボタンは、ボタンがロボット２００を支援することの少なくとも一部であるため、支援ボタンと呼ぶことができる。いくつかの実装形態では、ロボット２００が他の手段（例えば、ディスプレイ６００）を介して命令を受信する場合でも、ボタンが押されるまでロボット２００は前進しない（および／またはロボット２００、遠隔ネットワーク４０２、アクセスポイント４０４Ａおよび／または４０４Ｂは、ボタンが押されたことを少なくとも部分的に示す信号を受信する）。いくつかの実装形態では、ボタンは、ロボット２００に、ロボット２００が動作を続行することとなる場所を再定位および検出させることができる。例えば、ロボット２００を移動させた場合、ロボット２００は、マッピングおよび位置特定ユニット３２４を使用して、ロボット２００がどこにあり、ロボット２００がどの行路を取るべきかを決定することができる。いくつかの実装形態では、ボタンがなくてもよく、ロボット２００は、センサユニット３１２からのデータからオペレータおよび／または他のユーザがエラーおよび／または支援イベントに処置を施したと判定することができる。同様に、ロボット２００がエラーおよび／または支援イベントが解決されたと判定すると、ロボット２００は、マッピングおよび位置特定ユニット３２４を使用して、ロボット２００がどこにあり、ロボット２００がどの行路を取るべきかを決定することができる。当業者であれば、本開示の内容が与えられれば、パネル６１２内の命令がエラーおよび／または支援イベントに対処するために与えられた任意の命令を含むことができることを理解するはずである。追加の例として、パネル６１２は、オペレータおよび／またはユーザに、液体を充填すること、ロボット２００の一部（例えば、プロペラ、ブラシ、車輪など）を調整すること、ロボット２００を移動させること、ロボット２００の環境の態様を移動させること、ロボット２００を回転させること、および／または他の命令を命令することができる。
【００９０】
パネル６０４は、エラーおよび／または支援イベントに関するオペレータおよび／または他のユーザのためのさらなる情報を含むことができる。例えば、パネル６０４は、エラーおよび／または支援イベントの視覚的描写を含むことができる。図６Ａに例示されるように、ロボット２００は行路から外れており、および／または障害物によって妨害されている。したがって、ロボットアイコン６０８は、行路６１０から外れて表示される。いくつかの実装形態では、ロボットアイコン６０８をパネル６０４内の他のグラフィックスに対して配置して、ロボット２００の位置および／または姿勢を少なくとも部分的に示すことができる。場合によっては、ロボットアイコン６０８は、ロボット２００が行路６１０により例示される行路から外れていることを反映するために、行路６１０から外すことができる。場合によっては、ロボット２００が行路６１０により例示される行路上にあることを反映するために、ロボットアイコン６０８を行路６１０上とすることができる。
【００９１】
いくつかの実装形態では、パネル６０４は、センサユニット３１２および／または外部センサの１つ以上のセンサからのデータなどのセンサデータを含むことができる。有利なことに、センサデータはオペレータにコンテキストを与えることができる。いくつかの実装形態では、センサデータは、ロボット２００がエラーおよび／または支援イベントを検出したときに見たものの少なくとも一部を示す画像および／またはビデオを含む。
【００９２】
アイコン６１６は、障害物の位置を表示することができる。例えば、アイコン６１６をロボットアイコン６０８に対してパネル６０４内に配置して、ロボット２００に対する障害物の相対的な場所、向き、位置、および／または姿勢の少なくとも一部を示すことができる。いくつかの実装形態では、ロボット２００が障害物を検出した場所を示すインジケータがある場合がある。例えば、インジケータ６０６は、アイコン６１６に対して配置され、ロボット２００が障害物を検出した場所の少なくとも一部を示す。場合によっては、インジケータ６０６は、アイコン６０８で示される障害物などの障害物を検出したときのロボット２００の視野を示す視野を含むことができる。
【００９３】
いくつかの実装形態では、ディスプレイ６００はまた、支援のためのプロセスを例示することができる。例示として、図６Ｂは、本開示のいくつかの実装形態による、ロボット２００が行路から外れており、ロボット２００の行路に障害物があることを示す表示図である。ディスプレイ６００において、行路６３０は、ロボット２００（ロボットアイコン６０８として示される）が進むように構成された行路を示す。アイコン６２６は、ロボット２００の行路上の相対的な場所を例示している。アイコン６２８は、障害物を避けるためにロボット２００が前進すべき場所を例示している。場合によっては、オペレータは、駆動、運搬、操作、および／または他の方法で並進させるなどにより、インジケータ６２６で示される場所にロボット２００を移動させることができる。アイコン６２２は、ディスプレイ６００の視認者がディスプレイ６００をズームインおよび／またはズームアウトすることを可能にし得るズームアイコンであり、視認者が状況をよりよく評価することができるようにする。
【００９４】
図６Ｃは、本開示のいくつかの実装形態による支援後のロボット２００の続行を示す表示図である。図６Ｃでは、ロボット２００は、図６Ｂに例示されているアイコン６２８の場所に前進している。したがって、ロボット２００は、行路６３０によって例示される行路に沿って前進することができる。
【００９５】
図５に戻ると、ブロック５０６は、エラーおよび／または支援イベントに対処したかどうかを判定することを含む。ロボット２００は、１つ以上の方法で支援を受けたかどうかを判定することができる。いくつかの実装形態では、ロボット２００は、センサユニット３１２の１つ以上のセンサを使用して、エラーおよび／または支援イベントが解決されたかどうかを判定することができる。例えば、ロボット２００は、センサユニット３１２のうちの１つ以上を使用して、障害物がもはや邪魔にならない、液体が満たされている、ハードウェアおよび／またはソフトウェアが修復されている、および／または致命的なエラー、内部エラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および／または、エラーおよび／または支援イベントを生じさせ得る任意の他のイベントに、対処したかどうかを判定することができる。
【００９６】
場合によっては、ロボット２００は、図６Ａを参照して説明したボタンなどのボタンを有することができる。支援が与えられた場合、オペレータおよび／または他のユーザはボタンを押すことができる。
【００９７】
場合によっては、外部ソースを使用して、エラーおよび／または支援イベントが解決されたかどうかを判定することができる。例えば、遠隔ネットワーク４０２は、ロボット２００のセンサデータおよび／または他のデータをレビューして、エラーおよび／または支援イベントが解決されたかどうかを判定することができる。別の例として、外部ソースには他のセンサを含めることができる。例示として、ロボット２００は、カメラ（例えば、防犯カメラ、サーマルカメラ、閉回路テレビカメラ、および／または他のカメラ）、動き検出器、マイクロフォン、モノのインターネットデバイス、および／または他のセンサなどの他のセンサを考慮して動作させることができる。これらのセンサは、ロボット２００のセンサによって収拾されない可能性がある追加情報を提供することができる。有利なことに、そのような外部ソースは、ロボット２００がとにかく動作している環境に存在し得る。したがって、外部ソースは追加のインストール、コスト、リソースなどを必要としなくてもよい。
【００９８】
図７は、本開示のいくつかの実装形態による、ロボット２００に関する情報を提供する外部センサ７００の側面図である。図示のように、１つの外部センサである外部センサ７００が示されている。ただし、いくつかの実装形態では、複数の外部センサをロボット２００の周囲に配置することができる。
【００９９】
いくつかの実装形態では、エラーおよび／または支援イベントが解決されたかどうかを判断するために、外部センサからのデータを使用することができる。いくつかの実装形態では、環境内のセンサは事前登録および／または事前定義することができる。例えば、ロボット２００および／または遠隔ネットワーク４０２は、ロボット２００の環境内の外部センサのリスト（例えば、メモリに格納されている）を有することができる。ロボットがエラーおよび／または支援イベントが解決されたかどうかを判断しているとき、ロボット２００および／または遠隔ネットワーク４０２は、リスト上の１つ以上の外部センサに信号を送信することができる。例えば、信号は、（例えば、データを送信する）コマンド、質問、クエリ、および／または外部センサ（例えば、外部センサ７００）にセンサデータを送信させる他の信号であり得る。場合によっては、ロボット２００が外部センサに近接することにより、リストを更新することができる。例えば、ロボット２００は、ＢＬＵＥＴＯＯＴＨ、無線周波数、近接場通信、および／または他の形態の無線通信などの所定範囲を有する信号を、そのような信号の範囲内の外部センサに送信することができる。有利なことに、外部センサがそのような信号の範囲内にある場合、ロボット２００が外部センサの視野内にある可能性が高まる。
【０１００】
いくつかの実装形態では、外部センサはロボット２００を認識することができる。例えば、カメラは、ロボット２００を識別するように構成された認識ソフトウェアを有することができる。外部センサがエラーおよび／または支援イベントのためにロボット２００が停止したことを検出すると、外部センサはロボット２００および／または遠隔ネットワーク４０２にデータをプッシュすることができる。認識ソフトウェアを援助するために、ロボット２００は、ロボット２００にエラーおよび／または支援イベントがあるというさらなる指示を有することができる。例えば、ロボット２００は、所定の特性（例えば、ターン／オフ周波数、色、強度など）で点灯するライト、画面表示、熱シグネチャ、音、および／または、ロボット２００にエラーおよび／または支援要求がある場合に外部センサの様式により観察可能となる他のしるしを有することができる。有利なことに、ロボット２００は、エラーおよび／または支援イベントが発生したことをロボット２００の近くのオペレータに知らせるために、外部で観察可能なエラーおよび／または支援イベントのしるしを有する。
【０１０１】
外部センサはまた、センサデータのパターンを認識することにより、エラーおよび／または支援イベントの存在を検出することができる。例えば、外部センサは、ロボット２００のセンサユニット３１２に関して説明したのと実質的に同様の方法で、障害物、こぼし、内部エラー、致命的なエラー、ロボットがタスクを進行させることに失敗すること、ロボットが身動きできなくなること、および／または、エラーおよび／または支援イベントを生じさせ得る任意の他のイベントを検出することができ、センサは外部センサの代わりである。例示として、外部センサがカメラである場合、外部センサからのセンサデータは、外部センサ、ロボット２００、および／または遠隔ネットワーク４０２によって処理され得る。したがって、外部センサ、ロボット２００、および／または遠隔ネットワーク４０２は、センサデータ内の所定のパターンを識別することにより、エラーおよび／または支援イベントの存在を検出することができる。例示として、サーマルカメラは、こぼしを検出し、外部センサの視野内にこぼしが存在するかどうかを判定することができる。別の例示として、カメラはロボット２００の前にある障害物を検出し、障害物が移動したかどうかを判定することができる。別の例示として、カメラはロボット２００の位置を検出し、ロボット２００が移動したかどうかを判定することができる。ロボット２００の移動は、ロボット２００が支援され、および／またはエラーが解決されたことを少なくとも部分的に示すことができる。
【０１０２】
いくつかの実装形態では、ロボット２００は、ロボット２００が外部センサからエラーおよび／または支援イベントを示すセンサ情報を受信すると、エラーおよび／または支援イベントが解決されていないと判定することができる。例えば、外部センサが、エラーおよび／または支援イベントがあるときにロボット２００および／または遠隔ネットワーク４０２に情報をプッシュするように構成されている場合、ロボット２００が外部センサからセンサ情報を受信したという事実は、エラーおよび／または支援イベントが解決されていないことを部分的に示すことができる。
【０１０３】
エラーおよび／または支援イベントが解決されたとロボット２００が判定した場合、ブロック５０８に例示されるように、ロボット２００は動作を続行することができる。動作を続行することは、ロボット２００が実行していたおよび／または実行するはずのタスクを実行することを含むことができる。動作を続行することはまた、ロボット２００の通常動作であり得る。場合によっては、ロボット２００は、エラーおよび／または支援イベントをより完全に解決するために、追加のメンテナンス、修理、および／または支援を受けることができる。結果として、続行される動作は、機能が損なわれたロボット２００の続行される動作を含むことができる。場合によっては、ロボット２００を修理センターに移動させるなどして、追加の保守、修理、および／または支援を受けるようにロボット２００を動作させることができる。場合によっては、ロボット２００は動作を続行する前に初期化を実行することができる。例えば、ロボット２００は、オペレータによって移動させることができ、マッピングおよび位置特定ユニット３２４を使用して再定位することができる。ロボット２００はまた、動作を進行させる前に、ロボット２００の１つ以上の構成要素および／または全体の状態を決定するために、ロボット２００のセンサを再較正し、および／または状態チェックを実行することができる。
【０１０４】
ブロック５０６で、エラーおよび／または支援イベントが解決されていないとロボット２００が判定した場合、ブロック５１０を実行することができる。ブロック５１０は、エラーおよび／または支援イベントに対処することを試行することと、エラーおよび／または支援イベントに対処したかどうかを判定することと、を含むことができる。エラーおよび／または支援イベントに対処する試行は、ブロック５０６および／またはブロック５０４に対して所定の遅延の後に行うことができる。有利なことに、そのような遅延は、エラーおよび／または支援イベントに対処する時間を与えることができる（例えば、オペレータおよび／または遠隔ネットワーク４０２によって）。場合によっては、そのような遅延により、エラーおよび／または支援イベントにすでに対処している場合、ロボット２００のリソースが消費されないようにすることができる。さらに、エラーおよび／または支援イベントに対処することを試行すると、場合によっては、オペレータがエラーおよび／または支援イベントに対処する試行を妨げ得る。
【０１０５】
いくつかの実装形態では、所定の遅延は、エラーおよび／または支援イベントに対処するのにどのくらいの時間がかかるか、オペレータが警告を受信するのにどのくらいの長さの時間がかかるかの経験的証拠、センサユニット３１２により検出されるような環境の変化、外部センサにより検出されるような環境の変化、ダウンタイムの結果（例えば、ユーザ／オペレータの信頼の喪失）、および／または他の要因、のうちの１つ以上に少なくとも部分的に基づいて決定することができる。場合によっては、所定の遅延は、１、２、３、４、５、６、７、８、９、１０、またはそれより多い秒数などの僅かな秒数の短い場合がある。場合によっては、所定の遅延は数分または数時間のオーダーなどのように長くなる場合がある。
【０１０６】
いくつかの実装形態では、ブロック５１０は、ユーザ入力のためにディスプレイ６００を表示することを含むことができる。いくつかの実装形態では、図６Ａ〜図６Ｃのディスプレイ６００は動的であり得る。例えば、ディスプレイ６００は、ロボット２００のオペレータがコマンドをロボット２００に送信することができる支援ビューであり得る。例えば、オペレータは、ロボット２００が取るべき行路を選択することができる。別の例示として、ユーザは、ディスプレイ６００上の行路６１０を選択して、ロボット２００に行路６１０に戻るおよび／または前進するように伝えることができる。いくつかの実装形態では、ユーザは、新たな行路を入力することなどにより（例えば、タッチスクリーン上での描画および／またはディスプレイ６００への任意の他の入力方法）、ロボット２００にどこに行くべきかを例示することができる。別の例示として、ユーザはボタンを押下してロボット２００に前進するように伝えることができる。
【０１０７】
場合によっては、複数の走行する行路が利用可能であると、エラーおよび／または支援イベントが発生し得る。例えば、ロボット２００は、実質的に同様の領域を複数回通過して、複数の行路を作成し得る。場合によっては、ロボット２００は、ロボット２００がどの行路を取るべきかを判定するのが難しい場合がある。次に、オペレータは、提示された複数の行路から適切なパスを選択することができる。
【０１０８】
いくつかの実装形態では、行路６１０と実質的に同様の複数の行路など、複数の行路がディスプレイ６００に現れ得る。次に、オペレータは、ロボット２００が取るべき所望の行路を選択することができる。場合によっては、行路の代わりに、位置、場所、姿勢、向きなどを選択のためにディスプレイ６００に表示することができる。いくつかの実装形態では、オペレータは、（例えば、ユーザインターフェースユニット３１８の）タッチ画面および／または他の入力機構を使用して行路を描くなどして、行路を入力することができる。
【０１０９】
いくつかの実装形態では、ディスプレイ６００に表示される行路は、トレーニングおよび／またはユーザ入力によって決定することができる。例えば、オペレータは、任意に与えられた経路、場所、姿勢、位置、向きなどへの代替行路を手動で入力することができる。いくつかの実装形態では、ロボット２００が進み得る、１つ以上の経路、場所、姿勢、位置、向きなどを決定することなどにより、そのような代替行路を自動的に生成し、当該代替行路を選択可能にすることができる。代替行路のうちのいくつかの場合では、ロボット２００は表示する所定数をランダムに選択することができる。場合によっては、ロボット２００は、行路を進む頻度（例えば、一般的なナビゲーションでは、より多く進んだ行路が選ばれる可能性がより高いと想定される可能性があるが、まだ進んでいない行路が所望される、床掃除などのいくつかの用途では、より少なく進んだ行路を選ぶことができる）、所定の選好、ランダムな生成、統計的確率、および／または任意の他の方法に少なくとも部分的に基づいて、表示する代替行路を選択することができる。
【０１１０】
いくつかの実装形態では、ブロック５１０はロボット２００による回復を含むことができ、ここでロボット２００は、問題を解決することを試行する。例えば、ロボット２００は、エラーおよび／または支援イベントに対処するために、アクチュエータユニット３２０のうちの１つ以上のアクチュエータを作動させることができる。例示として、場合によっては、エラーおよび／または支援イベントは、１つ以上のセンサのノイズの結果であり得る。場合によっては、ノイズは障害物のように見え、ロボット２００に障害物がタスクの実行を阻止していると誤信させ得る。次いで、ロボット２００は、回転、前方への移動、後方への移動、および／または他の移動などの小さな移動を行うことができる。そのような移動により、場合によっては、ロボット２００が障害物の検出がノイズによるものであったと判定し、エラーおよび／または支援イベントを解決する（および／または対処したエラーおよび／または支援イベントを考慮する）ことが可能になり得る。場合によっては、ロボット２００は、ロボット２００の動作のエラーをリセットするプロセスを再起動、較正、再定位、および／または実行することができる。
【０１１１】
エラーおよび／または支援イベント（および／またはユーザがエラーおよび／または支援イベントに対処することが可能である）に対処した場合、ロボット２００はブロック５０８で動作を続行することができる。有利なことに、ロボット２００がエラーおよび／または支援イベントに対処することができる場合、ロボット２００は、ほとんどまたは全くオペレータ入力なしで動作を続行し、潜在的に、より良いユーザ体験を作ることができる。
【０１１２】
エラーおよび／または支援イベントに対処していない場合、ロボット２００は、ブロック５０４でエラーおよび／または支援イベントに関する警告を生成することができる。有利なことに、警告は、支援が必要であることをオペレータ／ユーザに気付かせることができる。いくつかの用途では、所定の遅延を実装することができる。有利なことに、所定の警告は、エラーおよび／または支援イベントに対処する時間を付与することができる。いくつかの実装形態では、所定の遅延は、エラーおよび／または支援イベントを解決するのにかかる時間（例えば、プロセスロボット２００が取得するおよび／またはユーザが取得する）、エラーおよび／または支援イベントに対処することに関する経験的データ、ロボット２００の環境が変化する速度、安全性の懸念、および他の要因のうちの１つ以上により決定することができる。例として、いくつかの実装形態では、遅延は、３０、６０、９０、１２０、またはそれより多い秒数であり得る。
【０１１３】
図８は、本開示のいくつかの実装形態による支援プロセスを例示する機能ブロック図である。ブロック８０２は障害物検出を含む。いくつかの実装形態では、障害物検出は、センサユニット３１２のうちの１つ以上のセンサによって実行することができる。例示として、センサは、ロボット２００が進んでいるときに、ロボット２００の行路内の障害物を検出することができる。障害物は、ロボット２００の軌道に沿って立ち塞がるアイテムとして現れ得る。いくつかの実装形態では、ロボット２００は、センサユニット３１２のうちの１つ以上のセンサを使用して、物体認識を含むブロック８２０により障害物を識別することができる。物体認識は、センサユニット３１２のうちの１つ以上のセンサからのデータを物体の識別と関連付ける機械学習を含むことができる。
【０１１４】
所定の時間遅延８１０の後、ロボット２００は、ブロック８０４に従って障害物に関する警告を発行することができる。所定の時間遅延８１０は、ブロック５０２を参照して説明した時間窓と実質的に同様であり得る。有利なことに、所定の時間遅延８１０により、ロボット２００が障害物に関する警告を発行する前に、障害物を遠ざけたり、および／または障害物そのものを解決したりすることができる。
【０１１５】
ブロック８０４で発行される警告は、ＳＭＳ８１６を介した、および／または支援ビュー８１８での、遠隔ネットワーク８１４への警告を含むことができる。支援ビュー８１８は、ディスプレイ６００など、警告を表示するおよび／またはコマンドを受信するためのシステムおよび方法を含むことができる。
【０１１６】
所定の時間遅延８０８の後、ロボット２００はブロック８０６で回復を試行することができる。所定の時間遅延８０８は、ブロック５０６を参照して説明した所定の遅延と実質的に同様であり得る。有利なことに、所定の時間遅延８０８はまた、障害物が排除されるための時間を付与し、および／またはロボット２００を他の方法で支援することを可能にすることができる。回復は、ブロック５１０を参照して記載されたものと実質的に同様の行動などによる、オペレータの支援またはロボット２００が取る行動を含むことができる。
【０１１７】
ロボット２００がブロック８０６で回復できない場合、プロセスは時間遅延８１２の後に再びブロック８０２に戻ることができる。有利なことに、時間遅延８１２は、ブロック８０６でロボット２００が回復する時間を与えることができる。いくつかの実装形態では、時間遅延８１２は、エラーおよび／または支援イベントを解決するのにかかる時間（例えば、ロボット２００が取得するおよび／またはユーザが取得するプロセス）、経験的データ、ロボット２００の環境が変化する速度、安全性の懸念、およびその他の要因のうちの１つ以上により決定することができる。例として、いくつかの実装形態では、遅延は３０、６０、９０、１２０、またはそれより多い秒数であり得る。
【０１１８】
図９は、本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法９００のプロセスフロー図である。ブロック９０２は、ロボットに環境内でタスクを実行させることを含む。ブロック９０４は、ロボットがタスクを実行するときに、ロボットの１つ以上のセンサを使用して環境に関するデータを生成することを含む。ブロック９０６は、データから、ロボットがタスクを実行することを少なくとも部分的に妨害されていると判定することを含む。ブロック９０８は、ロボットが少なくとも部分的に妨害されているとの判定の後の所定の第１の遅延後に、ロボットがタスクを続行することができないことを少なくとも部分的に示す第１の警告を表示することを含む。ブロック９１０は、警告の表示の後の所定の第２の遅延後に、ロボットにタスクを実行させることを試行することを含む。ブロック９１２は、ロボットにタスクを実行させる試行の後の所定の第３の遅延後に、ロボットが少なくとも部分的に妨害されていることを少なくとも部分的に示す第２の警告を表示することを含む。
【０１１９】
図１０は、本開示のいくつかの実装態様による、ロボットの動作のための例示的な方法１０００のプロセスフロー図である。ブロック１００２は、ロボットの１つ以上のアクチュエータに第１のロボットタスクを実行させることを含む。ブロック１００４は、センサデータに少なくとも部分的に基づいて、第１のロボットタスクの実行中に障害物を検出することを含む。ブロック１００６は、検出された障害物に少なくとも部分的に応答して、ロボットが第１のロボットタスクを実行しないように、１つ以上のアクチュエータを作動させることを含む。ブロック１００８は、検出された障害物の少なくとも一部とロボットの１つ以上の選択可能な位置とを示す警告を含む支援ビューをユーザインターフェースに表示することを含む。ブロック１０１０は、ユーザインターフェースを介して、ロボットの１つ以上の選択可能な位置のうちの選択された１つを受信することを含む。ブロック１０１２は、ロボットの１つ以上の選択可能な位置のうちの選択された位置に少なくとも部分的に基づいてアクチュエータを作動させること、および第１のロボットタスクと実質的に同様のタスクを実行し続けることを含む。
【０１２０】
図１１は、本開示のいくつかの実装形態による、ロボットの動作のための例示的な方法１１００のプロセスフロー図である。ブロック１１０２は、床掃除ロボットが掃除を妨害されていることをグラフィカルに表す支援ビューを表示することを含む。ブロック１１０４は、支援ビューを介して、ロボットの複数の走行する行路をユーザインターフェースに表示すること、および表示された行路の選択を受信することを含む。ブロック１１０６は、床掃除ロボットに、動作命令に従って掃除させることを含む。
【０１２１】
本明細書で使用される場合、コンピュータおよび／またはコンピューティングデバイスは、パーソナルコンピュータ（「ＰＣ」）およびミニコンピュータ（デスクトップ、ラップトップ、もしくはそれ以外のものかにかかわらず）、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末（「ＰＤＡ」）、携帯型コンピュータ、埋め込み式コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、Ｊ２ＭＥ搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信もしくはエンターテインメントデバイス、ならびに／または一組の命令を実行し、入力データ信号を処理することが可能である任意の他のデバイスを含み得るが、これらに限定されない。
【０１２２】
本明細書で使用される場合、コンピュータプログラムおよび／またはソフトウェアは、機能を実行する任意のシーケンスまたは人間または機械が認識できるステップを含み得る。そのようなコンピュータプログラムおよび／またはソフトウェアは、例えば、Ｃ／Ｃ＋＋、Ｃ＃、Ｆｏｒｔｒａｎ、ＣＯＢＯＬ、ＭＡＴＬＡＢ（商標）、ＰＡＳＣＡＬ、ＧＯ、ＲＵＳＴ、ＳＣＡＬＡ、Ｐｙｔｈｏｎ、アセンブリ言語、マークアップ言語（例えば、ＨＴＭＬ、ＳＧＭＬ、ＸＭＬ、ＶｏＸＭＬ）などを含む任意のプログラム言語または環境、ならびに、コモンオブジェクトリクエストブローカーアーキテクチャ（「ＣＯＲＢＡ」）、ＪＡＶＡ（商標）（Ｊ２ＭＥ，ジャバビーンズ（Ｊａｖａ  Ｂｅａｎｓ）などを含む）、バイナリランタイム環境（例えば、「ＢＲＥＷ」）などのオブジェクト指向環境によって提供することができる。
【０１２３】
本明細書で使用される場合、接続、リンク、および／またはワイヤレスは、エンティティ間の情報交換を可能にする、任意の２つ以上のエンティティ間の（物理的または論理的／仮想的）因果関係を含むことができる。
【０１２４】
本開示のある特定の態様は、方法の具体的な一連のステップに関して記載されているが、これらの記載は、本開示のより広範な方法の単なる例示であり、特定の用途によって必要に応じて変更され得ることが認識されるであろう。ある特定の状況下では、ある特定のステップが不要または任意になることがあり得る。さらに、開示された実装形態にある特定のステップまたは機能が追加されてもよく、または２つ以上のステップの実行順序は並べ換えられてもよい。そのような変形はすべて、本明細書に開示および特許請求されている開示の範囲内に包含されると見なされる。
【０１２５】
上記の詳細な説明は、様々な実装形態に適用されたような、本開示の新規な特徴を示し、説明し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更が、当業者により、本開示から逸脱することなくなされ得ることが理解されるであろう。前述の説明は、本開示を実施することについて現在企図されている最良の様式である。この説明は、決して限定することを意味するものではなく、むしろ本開示の一般原理の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して判定されるべきである。
【０１２６】
図面および前述の説明において本開示を詳細に例示および記載してきたが、そのような例示および説明は、限定的ではなく例証的または例示的であると見なされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態および／または実装形態に対する変形は、図面、本開示および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され、達成され得る。
【０１２７】
本開示のある特定の特徴または態様を説明するときに特定の用語を使用することは、その用語が関連付けられている、本開示の特徴または態様の任意の具体的な特徴を含むよう限定されるように、その用語が本明細書において再定義されていることを意味すると解釈されるべきではない。本出願において使用される用語および語句、ならびにその変形は、とりわけ添付の特許請求の範囲において、他に明示的に述べられていない限り、限定的とは対照的に開放式として解釈されるべきである。前述の例として、「含む（ｉｎｃｌｕｄｉｎｇ）」という用語は、「限定することなく含む（ｉｎｃｌｕｄｉｎｇ，ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」、「含むがこれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」などを意味すると読まれるべきであり、本明細書で使用される「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、「含む（ｉｎｃｌｕｄｉｎｇ）」、「含有する（ｃｏｎｔａｉｎｉｎｇ）」、または「によって特徴付けられる（ｃｈａｒａｃｔｅｒｉｚｅｄ  ｂｙ）」と同義であり、包括的かつ開放式であり、追加の列挙されていない要素または方法ステップを排除するものではなく、「有する（ｈａｖｉｎｇ）」という用語は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、「など（ｓｕｃｈ  ａｓ）」という用語は「限定されることなく、〜など（ｓｕｃｈ  ａｓ，ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」と解釈されるべきであり、「含む（ｉｎｃｌｕｄｅｓ）」という用語は、「含むがこれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、「実施例（ｅｘａｍｐｌｅ）」という用語は、考察における項目の例示的な例を提供するために使用され、それらの網羅的または限定的なリストではなく、「実施例として、しかし限定することなく（ｅｘａｍｐｌｅ，ｂｕｔ  ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」として解釈されるべきであり、「知られている」、「普通の（ｎｏｒｍａｌ）」、「標準的な（ｓｔａｎｄａｒｄ）」などの形容詞および同様の意味の用語は、記載された項目を所与の期間または所与の時点で利用可能な物品に限定すると解釈されるべきではないが、代わりに、現在または将来いつでも利用可能または既知の可能性がある既知、通常、または標準の技術を網羅するように読まれるべきであり、かつ、「好ましくは（ｐｒｅｆｅｒａｂｌｙ）」、「好ましい（ｐｒｅｆｅｒｒｅｄ）」、「所望の（ｄｅｓｉｒｅｄ）」、または「望ましい（ｄｅｓｉｒａｂｌｅ）」などの用語の使用、および類似の意味の単語は、ある特定の特徴が本開示の構造または機能にとって重要、必須、またはさらに重要であることを意味すると理解すべきではないが、代わりに、単に特定の実施形態において利用されてもされなくてもよい代替または追加の特徴を強調することを意図したものとして理解すべきである。同様に、接続詞「および（ａｎｄ）」でつなげられた項目のグループは、それらの項目の各々がそのグループ内に存在することを要求するものとして読まれるべきではなく、むしろ、特に明記しない限り、「および／または」として読まれるべきである。同様に、接続詞「または（ｏｒ）」でつなげられた項目のグループは、そのグループ間の相互排他性を必要とするものとして読まれるべきではなく、むしろ、特に明記しない限り、「および／または」として読まれるべきである。「約（ａｂｏｕｔ）」または「およそ（ａｐｐｒｏｘｉｍａｔｅ）」などの用語は同義語であり、その用語によって修飾された値がそれに関連する理解された範囲を有することを示すために使用され、その範囲は±２０％、±１５％、±１０％、±５％、または±１％であり得る。「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」という用語は、結果（例えば、測定値）が目標値に近いことを示すために使用され、ここでは、近いとは、結果が、その値の８０％以内、その値の９０％以内、その値の９５％以内、またはその値の９９％以内であることを意味し得る。また、本明細書で使用される場合、「定義された（ｄｅｆｉｎｅｄ）」または「決定された（ｄｅｔｅｒｍｉｎｅｄ）」は、「事前定義された（ｐｒｅｄｅｆｉｎｅｄ）」もしくは「所定の（ｐｒｅｄｅｔｅｒｍｉｎｅｄ）」、および／または別様に決定された値、条件、閾値、測定値などを含み得る。
【図１】
2020507164.tif 000003
【図２Ａ】
2020507164.tif 000004
【図２Ｂ】
2020507164.tif 000005
【図３】
2020507164.tif 000006
【図４】
2020507164.tif 000007
【図５】
2020507164.tif 000008
【図６Ａ】
2020507164.tif 000009
【図６Ｂ】
2020507164.tif 000010
【図６Ｃ】
2020507164.tif 000011
【図７】
2020507164.tif 000012
【図８】
2020507164.tif 000013
【図９】
2020507164.tif 000014
【図１０】
2020507164.tif 000015
【図１１】
2020507164.tif 000016
【手続補正書】
【提出日】令和1年10月17日(2019.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットを動作させるための方法であって、
環境内で前記ロボットにタスクを実行させることと、
前記ロボットに結合された１つ以上のセンサからのデータに少なくとも部分的に基づいて、支援イベントの発生を検出することと、
少なくとも１つのアクチュエータに信号を送信して前記タスクの実行を停止することによって前記支援イベントが対処されるのを、第１の時間遅延の間、待機することと、
前記支援イベントが前記第１の時間遅延内に対処されなければ、少なくとも１つのアクチュエータを作動させて回復を実行することによって、前記第１の時間遅延に続く第２の時間遅延の間、前記支援イベントに自律的に対処することを試行することと、
前記第２の時間遅延後に前記支援イベントが依然として対処されなければ、第１の警告を決定することと、を含む、前記方法。
【請求項２】
物体、障害物、誤検出、または前記タスクの完了を妨害している前記ロボットの内部特性の検出に基づいて、前記支援イベントを検出することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１の時間遅延後に支援ビューにおいて第２の警告を生成することであって、前記第２の警告が、前記ロボットが前記タスクの完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ことをさらに含む、請求項１に記載の方法。
【請求項４】
前記第１の警告が、前記ロボットの１人以上の人間のオペレータへのＳＭＳ通知を含み、前記ＳＭＳ通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含み、
前記タスクが、前記ロボットを床上でナビゲートすることを含み、
前記支援イベントが、前記床上での前記ロボットのナビゲーションを少なくとも部分的に妨害する物体に基づいて検出される、請求項１に記載の方法。
【請求項５】
前記ロボットの人間のオペレータが前記ロボットに結合されたボタンを押して前記タスクを続行するように前記ロボットを構成することを含む、前記支援イベントに対処することと、
１つ以上のアクチュエータに信号を送信することによって前記回復を実行して前記支援イベントに対処することと、をさらに含む、請求項１に記載の方法。
【請求項６】
ロボットシステムであって、
コンピュータ可読命令が格納されたメモリと、
少なくとも１つのプロセッサと、を含み、前記少なくとも１つのプロセッサが、前記コンピュータ可読命令を実行して、
環境内で前記ロボットシステムにタスクを実行させ、
前記ロボットシステムに結合された１つ以上のセンサからのデータに少なくとも部分的に基づいて、支援イベントの発生を検出し、
少なくとも１つのアクチュエータに信号を送信して前記タスクの実行を停止することによって前記支援イベントが対処されるのを、第１の時間遅延の間、待機し、
前記支援イベントが前記第１の時間遅延内に対処されなければ、少なくとも１つのアクチュエータを作動させて回復を実行することによって、前記第１の時間遅延に続く第２の時間遅延の間、前記支援イベントに自律的に対処することを試行し、
前記第２の時間遅延後に前記支援イベントが依然として対処されなければ、第１の警告を決定するように構成されている、前記ロボットシステム。
【請求項７】
前記少なくとも１つのプロセッサが、前記コンピュータ可読命令を実行して、
物体、障害物、誤検出、または前記タスクの完了を妨害している前記ロボットシステムの内部特性の検出に基づいて、前記支援イベントを検出し、
前記第１の時間遅延後に支援ビューにおいて第２の警告を生成し、前記第２の警告が、前記ロボットシステムが前記タスクの完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ようにさらに構成されている、請求項６に記載のシステム。
【請求項８】
前記第１の警告が、前記ロボットシステムの１人以上の人間のオペレータへのＳＭＳ通知を含み、前記ＳＭＳ通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含む、請求項６に記載のシステム。
【請求項９】
前記タスクが床上でナビゲートすることを含み、
前記支援イベントが、前記ロボットシステムによる前記床上でのナビゲーションを少なくとも部分的に妨害する物体に基づいて検出される、請求項６に記載のシステム。
【請求項１０】
前記ロボットシステムの人間のオペレータが前記ロボットシステムに結合されたボタンを押して前記タスクを続行するように前記ロボットシステムを構成することを含む、前記支援イベントに対処することをさらに含む、請求項６に記載のシステム。
【請求項１１】
複数の命令を格納した非一時的コンピュータ可読記憶装置であって、前記複数の命令が、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサを、
環境内でロボットにタスクを実行させ、
前記ロボットに結合された１つ以上のセンサからのデータに少なくとも部分的に基づいて、支援イベントの発生を検出し、
少なくとも１つのアクチュエータに信号を送信して前記タスクの実行を停止することによって前記支援イベントが対処されるのを、第１の時間遅延の間、待機し、
前記支援イベントが前記第１の時間遅延内に対処されなければ、少なくとも１つのアクチュエータに信号を送信して回復を実行することによって、前記第１の時間遅延に続く第２の時間遅延の間、前記支援イベントに自律的に対処することを試行し、
前記第２の時間遅延後に前記支援イベントが依然として対処されなければ、第１の警告を決定するように構成する、前記非一時的コンピュータ可読記憶装置。
【請求項１２】
前記１つ以上のプロセッサが、前記複数の命令を実行して、
物体、障害物、誤検出、または前記タスクの完了を妨害している前記ロボットの内部特性の検出に基づいて、前記支援イベントを検出し、
前記第１の時間遅延後に支援ビューにおいて第２の警告を生成し、前記第２の警告が、前記ロボットが前記タスクの完了を少なくとも部分的に妨害されていることを示し、前記支援ビューが遠隔ネットワークに送信される、ようにさらに構成されている、請求項１１に記載の非一時的コンピュータ可読記憶装置。
【請求項１３】
前記第１の警告が、前記ロボットの１人以上の人間のオペレータへのＳＭＳ通知を含み、前記ＳＭＳ通知が、少なくとも部分的に、前記支援イベントが発生している理由を示すデータを含む、請求項１１に記載の非一時的コンピュータ可読記憶装置。
【請求項１４】
前記タスクが床上でナビゲートすることを含み、
前記支援イベントが、前記ロボットによる前記床上でのナビゲーションを少なくとも部分的に妨害する物体に基づいて検出される、請求項１１に記載の非一時的コンピュータ可読記憶装置。
【請求項１５】
前記第２の警告が、前記第２の時間遅延に続く第３の時間遅延後、かつ前記支援イベントの継続的な検出に応答して、前記ロボットが前記タスクを実行することができないことに対応している、請求項１２に記載の非一時的コンピュータ可読記憶装置。
【国際調査報告】
2020507164.tif 000017
2020507164.tif 000018
2020507164.tif 000019