(57)【要約】  経路を自律走行するようにロボットを訓練するためのシステムおよび方法。一実施形態において、ロボットは、初期化場所の初期配置を検出し得る。ロボットは初期化場所から開始し、ナビゲート可能経路および周囲環境の地図を、ナビゲート可能経路のユーザ制御による実演中に作成し得る。実演後、ロボットは、初期化場所内の第２の配置を後に検出し得、その後、ナビゲート可能経路を自律的にナビゲートし得る。ロボットは、その後、作成された地図に関連した誤りを続けて検出し得る。このロボットに関連した方法およびシステムもまた、開示している。【選択図】図１Ｃ
2019522301.tif 000002
【特許請求の範囲】
【請求項１】
非一時的コンピュータ可読記憶媒体であって、そこに記憶された複数の命令を有し、前記命令はロボットを動作させるために処理装置によって実行可能であり、前記処理装置によって実行されたとき、前記命令は前記処理装置に、
初期化場所の前記ロボットの第１の配置を検出することと、
ナビゲート可能経路および周囲環境の地図を、前記初期化場所から開始する前記ロボットに向けて前記ナビゲート可能経路の実演中に作成することと、
前記初期化場所の前記ロボットの第２の配置を検出することと、
前記ロボットに、前記初期化場所から前記ナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることを行わせるように構成されている、非一時的コンピュータ可読記憶媒体。
【請求項２】
前記命令が前記処理装置によって実行されたとき、前記処理装置に、前記作成された地図に誤りが無いか評価することと、前記誤りに少なくとも部分的に基づいて前記ロボットに対して前記ナビゲート可能経路を再び実演することをユーザに要求することをさらに行わせる、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３】
前記誤りは、前記地図内の前記ナビゲート可能経路の不連続部および前記地図内の前記周囲環境の不連続部のうちの少なくとも一方を含む、請求項２に記載の非一時的コンピュータ可読記憶媒体。
【請求項４】
前記命令は、前記処理装置によって実行されたとき、前記処理装置に、前記ナビゲート可能経路を自律的にナビゲートしながら一時的に配置された障害物を回避するための命令を前記ロボットに下すことをさらに行わせる、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項５】
前記処理装置に、ユーザインターフェースから前記ナビゲート可能経路の選択を受信させるように構成された命令をさらに備える、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項６】
前記ロボットが床清掃機である、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項７】
前記作成された地図は、前記ナビゲート可能経路上で前記ロボットによって実施される動作の少なくとも一部を表す表示を含む、請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項８】
前記動作が床清掃である、請求項７に記載の非一時的コンピュータ可読記憶媒体。
【請求項９】
ロボットを動作させる方法であって、
初期化場所の前記ロボットの初期配置を検出することと、
前記初期化場所から開始する前記ロボットに向けた、ナビゲート可能経路および周囲環境の地図の作成を、前記ナビゲート可能経路の実演中に引き起こすことと、
前記初期化場所の前記ロボットの後続配置を検出することと、
前記ロボットに、前記初期化場所から前記ナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることを含む方法。
【請求項１０】
前記作成された地図に誤りが無いか評価することと、前記誤りに少なくとも部分的に基づいて、前記ロボットに対して前記ナビゲート可能経路を再び実演するための、ユーザへの要求を発行することをさらに含む、請求項９に記載の方法。
【請求項１１】
前記実演がユーザから制御信号を受信することを含む、請求項９に記載の方法。
【請求項１２】
ナビゲート可能経路および周囲環境の前記地図の作成が、３次元センサを用いた前記周囲環境の検知をさらに含む、請求項９に記載の方法。
【請求項１３】
前記ロボットに自律的にナビゲートさせることが、ユーザインターフェースから前記ナビゲート可能経路の選択を受信することをさらに含む、請求項９に記載の方法。
【請求項１４】
前記ロボットに自律的にナビゲートさせることが、前記ナビゲート可能経路および前記周囲環境の前記地図を使用してナビゲートすることを含む、請求項９に記載の方法。
【請求項１５】
前記作成された地図上に、前記ナビゲート可能経路上で前記ロボットによって実施される動作をマッピングすることをさらに含む、請求項９に記載の方法。
【請求項１６】
前記動作が床を清掃することを含む、請求項１５に記載の方法。
【請求項１７】
非一時的コンピュータ可読記憶媒体であって、そこに記憶された複数の命令を有し、前記命令はロボットを動作させるために処理装置によって実行可能であり、前記処理装置によって実行されたとき、前記命令は前記処理装置に、初期化場所から開始する前記ロボットに向けて前記ナビゲート可能経路の実演中にナビゲート可能経路および周囲環境の地図を作成させるように構成されている、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記作成された地図が、前記ナビゲート可能経路上で前記ロボットによって実施される動作の少なくとも一部を表す表示をさらに含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記動作が床の清掃である、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記ナビゲーション経路の前記実演がコンピュータシミュレーションである、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
ロボットであって、
ナビゲート可能経路および周囲環境の地図を、初期化場所から開始する前記ロボットに向けて前記ナビゲート可能経路の実演中に作成するように構成されたマッピングおよび定位ユニットと、
前記地図を使用して前記ロボットを自律的にナビゲートするように構成されたナビゲーションユニットを備えるロボット。
【請求項２２】
前記ナビゲーションユニットが、前記ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定するようにさらに構成されている、請求項２１に記載のロボット。
【請求項２３】
前記ロボットのセンサ範囲内の物体の少なくとも一部を示すセンサデータを生成するように構成されたセンサユニットをさらに備え、前記ナビゲーションユニットが前記生成されたセンサデータに少なくとも部分的に基づいて自律的にナビゲートするようにさらに構成されている、請求項２１に記載のロボット。
【請求項２４】
ブラシを作動させるように構成された第１のアクチュエータユニットをさらに備える、請求項２１に記載のロボット。
【請求項２５】
前記地図上の位置を前記第１のアクチュエータユニットの作動と関連付けるように構成されたプロセッサをさらに備える、請求項２４に記載のロボット。
【請求項２６】
サーバと通信するように構成された通信ユニットをさらに備え、前記ロボットは、前記地図を前記サーバに送信し、前記地図の品質を示す検証結果を受信する、請求項２１に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本出願は、同一名称の２０１６年５月１１日に出願された同時係属中の米国特許出願第１５／１５２，４２５号の優先権の利益を主張するものであり、これは、その全体の参照によって本明細書に組み込まれる。
【０００２】
著作権
本特許文書の開示の一部分は、著作権保護の対象となる資料を含有する。著作権者は、特許商標庁の特許ファイルまたは記録に現れるように、特許文書または特許開示のいずれか一方による複製に異論を唱えないが、それ以外の場合は全ての著作権の一切の権利を留保する。
［技術分野]
【０００３】
背景
本出願は、概して、特に、ロボットシステムおよびその利用方法に関する。具体的には、一態様において、本開示は、経路を自律走行するようにロボットを訓練および動作させるためのシステムおよび方法に関する。
【背景技術】
【０００４】
現在、ロボットのプログラミングは、多くの場合、ロボットが遭遇し得る、あらゆる状況を予測するか、または予測しようとする網羅的なコーディングを含み得る。かかるアプローチは、時間、エネルギー、およびコンピュータ資源の観点からコストがかかるのみならず、このアプローチはまた、ロボットの能力を制限する可能性もある。例えば、多くのロボットは、予測可能または画定済みの条件を有する制御された環境でのみ有効であり得る。これらのロボットは、動的に変化する環境および／またはロボットが特別にプログラムされていない新しい環境において有効ではない場合がある。ロボットが汎用的能力を有するようにプログラムされている場合、ロボットは多くの異なるタスクで有用であり得るが、それらのタスクのうちの任意の特定のタスクで有効ではないか、または非効率的であり得る。反対に、特定のタスクを有効かつ効率的に実施するようにプログラムされるロボットは、それらのタスクに限定され、他のタスクを実施することができない場合がある。同様に、多くの現在のロボットは、それらをプログラムする、および動作させるために、専門技術者および他の高度に熟練した作業者を必要とし得る。この要件は、ロボットを動作させる時間およびコストを増加させる。
【０００５】
これらの課題は、経路内を走行するようにロボットをプログラミングする際に特に顕著である。例えば、第１の地点から第２の地点まで所望される進路を自律的にナビゲートするようにロボットをプログラムするために、プログラマは、地図をプログラムし、またロボットがそれらの地点に走行するべき順序または論理と共に、ロボットが走行するべき地図上の各点を識別する必要があり得る。そのプログラマは、各環境に対してロボットをプログラムし、環境の地図と共に、所望される各経路または全経路を入力する必要があり得る。これに代えて、プログラマが、経路を決定するようにロボットに対する汎用的規則および論理をプログラムする場合、そのロボットは、任意の特定の経路を辿る際に遅く、非効率であり得る。いずれの場合においても、かかるプログラミングは、時間がかかり、またロボットを動作させるために高度に熟練した作業者を必要とし得る。したがって、経路を走行するようにロボットをプログラミングするための改善されたシステムおよび方法に対する必要性が存在する。
【発明の概要】
【０００６】
上記の必要性は、特に、自律ナビゲーション用のロボットを訓練および操作させるための装置および方法を提供する、本開示によって満たされる。本明細書に説明される実装例は、革新的な特徴を有し、それらのうちの単一のものは、不可欠ではないか、またはそれらの所望される属性の単独の要因ではない。特許請求の範囲を限定することなく、有利な特徴のうちのいくつかが、ここで要約されることになる。
【０００７】
本開示のいくつかの実装において、ロボットは、実演によって経路を学習し、その後、自律的にナビゲートしながら実演された経路を繰り返し得る。
【０００８】
第１の態様においてロボットが開示される。一代表的実装において、ロボットは、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成するように構成されたマッピングおよび定位ユニットを含む。ロボットはまた、地図を使用してロボットを自律的にナビゲートするように構成されたナビゲーションユニットも含む。
【０００９】
一変形例において、ロボットのナビゲーションユニットはまた、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定するようにも構成されている。
【００１０】
別の変形例において、ロボットは、ロボットのセンサ範囲内の物体の少なくとも一部を示すセンサデータを生成するように構成されたセンサユニットをさらに含み、ロボットのナビゲーションユニットは、生成されたセンサデータに少なくとも部分的に基づいて自律的にナビゲートするようにさらに構成されている。
【００１１】
別の変形例において、ロボットは、ブラシを作動させるように構成された第１のアクチュエータユニットをさらに有する。別の変形例において、ロボットはまた、ロボットを旋回させるように構成された第２のアクチュエータユニットも有する。
【００１２】
別の変形例において、ロボットは、地図上の位置を第１のアクチュエータユニットの作動と関連付けるように構成されたプロセッサをさらに有する。別の変形例において、ロボットは、地図上の位置を第２のアクチュエータユニットの作動と関連付けるように構成されたプロセッサを含む。
【００１３】
別の変形例において、ロボットは、ユーザ作成された地図の選択を受信するように構成されたユーザインターフェースを含み、ロボットは、受信された選択に少なくとも部分的に基づいて自律的にナビゲートする。
【００１４】
別の変形例において、ロボットは、地図内の誤りを補正するように構成された地図評価ユニットをさらに有する。別の変形例において、誤りの補正は、地図内の誤りのうちの少なくとも１つを補正された地図の少なくとも一部分と関連付ける機械学習を含む。
【００１５】
別の変形例において、ロボットは、サーバと通信するように構成された通信ユニットをさらに含み、ロボットは、地図をサーバに送信し、地図の品質の検証を受信する。
【００１６】
第２の態様において、ロボットを訓練する方法が開示される。一代表的実施形態において、方法は、初期化場所のロボットの第１の配置を検出することと、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成することと、初期化場所のロボットの第２の配置を検出することと、ロボットに、初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることと、を含む。
【００１７】
一変形例において、方法は、作成された地図の誤りを評価することと、誤りに少なくとも部分的に基づいて、ロボットに対してナビゲート可能経路を再び実演するようにユーザに要求することと、をさらに含む。
【００１８】
別の変形例において、方法は、地図内の誤り補正することをさらに含む。別の変形例において、方法は、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定することをさらに含む。
【００１９】
別の変形例において、方法は、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けることをさらに含む。
【００２０】
別の変形例において、方法は、作成された地図上に、ナビゲート可能経路上でロボットによって実施される動作をマッピングすることをさらに含む。
【００２１】
第３の態様において、ロボットを使用する方法が開示される。一代表的実施形態において、方法は、初期化場所のロボットの第１の配置を検出することと、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成することと、初期化場所のロボットの第２の配置を検出することと、ロボットに、初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることと、を含む。
【００２２】
一変形例において、方法は、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けることをさらに含む。
【００２３】
別の変形例において、方法は、作成された地図上に、ナビゲート可能経路上でロボットによって実施される動作をマッピングすることをさらに含む。
【００２４】
第４の態様において、非一時的コンピュータ可読媒体が開示される。一代表的実装において、非一時的コンピュータ可読記憶媒体が、そこに記憶された複数の命令を有して開示される。命令は、ロボットを動作させるために処理装置によって実行可能であり、命令は、処理装置によって実行されたとき、処理装置に、初期化場所のロボットの第１の配置を検出することと、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成することと、初期化場所のロボットの第２の配置を検出することと、ロボットに、初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることと、を行わせるように構成されている。
【００２５】
一変形例において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、作成された地図の誤りを評価することと、誤りに少なくとも部分的に基づいて、ロボットに対してナビゲート可能経路を再び実演することをユーザに要求することと、をさらに行わせる命令を含む。
【００２６】
別の変形例において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、地図内の誤りを補正することをさらに行わせる命令を含む。
【００２７】
他の変形例において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、ナビゲート可能経路を自律的にナビゲートしながら一時的に配置された障害物を回避するための命令をロボットに提供することをさらに行わせる命令を含む。
【００２８】
別の変形例において、非一時的コンピュータ可読記憶媒体は、実行されたとき、処理装置に、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせないことを決定することをさらに行わせる命令を含む。
【００２９】
別の変形例において、非一時的なコンピュータ可読記憶媒体は、実行されたとき、処理装置に、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けることをさらに行わせる命令を含む。
【００３０】
別の変形例において、ナビゲート可能経路および周囲環境の地図の作成は、センサを用いて周囲環境を検知するように構成された命令をさらに含む。
【００３１】
別の変形例において、非一時的コンピュータ可読記憶媒体は、実行されたとき、処理装置に、サーバと通信することをさらに行わせる命令を含み、ロボットは、地図をサーバに送信し、地図の品質の検証を受信する。
【００３２】
第５の態様において、環境およびロボットが開示される。一代表的実装において、ロボットは、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成するように構成されたマッピングおよび定位ユニットを含む。ロボットはまた、地図を使用してロボットを自律的にナビゲートするように構成されたナビゲーションユニットも含む。
【００３３】
一変形例において、ロボットのナビゲーションユニットはまた、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定するようにも構成されている。この決定は、環境の障害物を回避する決定を含む。
【００３４】
別の変形例において、ロボットは、ロボットのセンサ範囲内の物体の少なくとも一部を示すセンサデータを生成するように構成されたセンサユニットをさらに含み、ロボットのナビゲーションユニットは、生成されたセンサデータに少なくとも部分的に基づいて環境を自律的にナビゲートするようにさらに構成されている。
【００３５】
別の変形例において、ロボットは、清掃のためのブラシを作動させるように構成された第１のアクチュエータユニットをさらに有する。別の変形例において、ロボットはまた、環境内でロボットを旋回させるように構成された第２のアクチュエータユニットも有する。
【００３６】
別の変形例において、ロボットは、地図上の位置を第１のアクチュエータユニットの作動と関連付けるように構成されたプロセッサをさらに有する。別の変形例において、ロボットは、地図上の位置を第２のアクチュエータユニットの作動と関連付けるように構成されたプロセッサを含む。
【００３７】
本開示で説明される追加の態様および実装が存在する。例えば、いくつかの実施形態は、非一時的コンピュータ可読記憶媒体であって、そこに記憶された複数の命令を有する、非一時的コンピュータ可読記憶媒体を含み、命令は、ロボットを動作させるために処理装置によって実行可能であり、命令は、処理装置によって実行されたとき、処理装置に、初期化場所のロボットの第１の配置を検出することと、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に作成することと、初期化場所のロボットの第２の配置を検出することと、ロボットに、初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることと、を行わせるように構成されている。
【００３８】
いくつかの実装において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、作成された地図の誤りを評価することと、誤りに少なくとも部分的に基づいて、ロボットに対してナビゲート可能経路を再び実演することをユーザに要求することと、をさらに行わせる命令を含む。いくつかの実装において、誤りは、地図内のナビゲート可能経路の不連続部および地図内の周囲環境の不連続部のうちの少なくとも一方を含む。いくつかの実装において、誤りは、少なくとも重複する物体を含む。いくつかの実装において、誤りは、閉ループを形成することの失敗を含む。いくつかの実装において、誤りは、地図内の所定の誤りパターンを含む。
【００３９】
いくつかの実装において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、地図内の誤りを補正することをさらに行わせる命令を含む。いくつかの実装において、誤りの補正は、地図内の誤りのうちの少なくとも１つを補正された地図の少なくとも一部分と関連付ける機械学習を含む。
【００４０】
いくつかの実装において、非一時的コンピュータ可読記憶媒体は、処理装置によって実行されたとき、処理装置に、ナビゲート可能経路を自律的にナビゲートしながら一時的に配置された障害物を回避するための命令をロボットに提供することをさらに行わせる命令を含む。いくつかの実装において、非一時的コンピュータ可読記憶媒体は、実行されたとき、処理装置に、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせないことを決定することをさらに行わせる命令を含む。いくつかの実装において、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせないことを決定することは、障害物を回避する決定を含む。
【００４１】
いくつかの実装において、ロボットは、ユーザインターフェースからナビゲート可能経路の選択を受信させるように構成された命令をさらに備える。いくつかの実装において、非一時的なコンピュータ可読記憶媒体は、実行されたとき、処理装置に、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けることをさらに行わせる命令を含む。
【００４２】
いくつかの実装において、ロボットに自律的にナビゲートさせることは、処理装置に、ナビゲート可能経路および周囲環境の地図の初期化場所に対する関連付けに少なくとも部分的に基づいてナビゲート可能経路を決定させるように構成された命令をさらに含む。いくつかの実装において、ロボットに自律的にナビゲートさせることは、処理装置に、作成された地図に少なくとも部分的に基づいてナビゲートさせるように構成された命令をさらに含む。いくつかの実装において、ロボットは、床清掃機である。いくつかの実装において、ロボットは、床洗浄機である。
【００４３】
いくつかの実装において、作成された地図は、ナビゲート可能経路上のロボットによって実施された動作の少なくとも一部を表す表示を含む。いくつかの実装において、動作は、床を清掃することである。いくつかの実装において、動作は、旋回である。
【００４４】
いくつかの実装において、ナビゲート可能経路および周囲環境の地図の作成は、センサを用いて周囲環境を検知するように構成された命令をさらに含む。いくつかの実装において、ナビゲート可能経路および周囲環境の地図の作成は、３次元センサを用いて周囲環境を検知するように構成された命令をさらに含む。
【００４５】
いくつかの実装において、非一時的コンピュータ可読記憶媒体は、実行されたとき、処理装置に、サーバと通信することをさらに行わせる命令を含み、ロボットは、地図をサーバに送信し、地図の品質の検証を受信する。
【００４６】
別の例として、いくつかの実装は、ロボットを動作させる方法を含み、方法は、初期化場所のロボットの第１の配置を検出することと、ナビゲート可能経路および周囲環境の地図の作成を、初期化場所から始まるロボットに対するナビゲート可能経路の実演中に引き起こすことと、初期化場所のロボットの第２の配置を検出することと、ロボットに、初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることと、を含む。
【００４７】
いくつかの実装において、方法は、作成された地図の誤りを評価することと、誤りに少なくとも部分的に基づいて、ロボットに対してナビゲート可能経路を再び実演するようにユーザに要求することと、をさらに含む。いくつかの実装において、作成された地図の誤りを評価することは、重複する物体を識別することを含む。いくつかの実装において、作成された地図の誤りを評価することは、閉ループを形成することの失敗を識別することを含む。いくつかの実装において、作成された地図の誤りを評価することは、地図内の所定のパターンを識別することを含む。いくつかの実装において、方法は、地図をサーバに送信することと、地図の品質の少なくとも一部を示す信号をサーバから受信することと、をさらに含む。
【００４８】
いくつかの実装において、方法は、地図内の誤りを補正することをさらに含む。いくつかの実装において、誤りを補正することは、地図内の誤りのうちの少なくとも１つを、補正された地図の少なくとも一部分と関連付ける機械学習を含む。
【００４９】
いくつかの実装において、本方法は、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定することをさらに含む。いくつかの実装において、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定することは、障害物を回避することを決定することを含む。
【００５０】
いくつかの実装において、実演は、ユーザから制御信号を受信することを含む。いくつかの実装において、ナビゲート可能経路および周囲環境の地図を作成することは、センサを用いて周囲環境を検知することを含む。いくつかの実装において、ナビゲート可能経路および周囲環境の地図を作成することは、３次元センサを用いて周囲環境を検知することをさらに含む。
【００５１】
いくつかの実装において、ロボットに自律的にナビゲートさせることは、ユーザインターフェースからナビゲート可能経路の選択を受信することをさらに含む。いくつかの実装において、ロボットに自律的にナビゲートさせることは、ナビゲート可能経路および周囲環境の地図を使用してナビゲートすることを含む。
【００５２】
いくつかの実装において、方法は、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けることをさらに含む。
【００５３】
いくつかの実装において、方法は、ナビゲート可能経路および周囲環境の地図の初期化場所に対する関連付けに少なくとも部分的に基づいてナビゲート可能経路を決定することをさらに含む。
【００５４】
いくつかの実装において、方法は、作成された地図上に、ナビゲート可能経路上でロボットによって実施される動作をマッピングすることをさらに含む。いくつかの実装において、動作は、床を清掃することを含む。いくつかの実装において、動作は、旋回することを含む。
【００５５】
別の例として、いくつかの実装は、非一時的コンピュータ可読記憶媒体であって、そこに記憶された複数の命令を有する、非一時的コンピュータ可読記憶媒体を含み、命令は、ロボットを動作させるために処理装置によって実行可能であり、命令は、処理装置によって実行されたとき、処理装置に、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まる、ロボットに対するナビゲート可能経路の実演中に作成させるように構成されている。
【００５６】
いくつかの実装において、作成された地図は、ナビゲート可能経路上のロボットによって実施された動作の少なくとも一部を表す表示をさらに含む。いくつかの実装において、動作は、床を清掃することである。いくつかの実装において、ロボットは床清掃機である。いくつかの実装において、ナビゲーション経路の実演は、コンピュータシミュレーションである。
【００５７】
別の例として、いくつかの実装は、ロボットを含み、ロボットは、ナビゲート可能経路および周囲環境の地図を、初期化場所から始まる、ロボットに対するナビゲート可能経路の実演中に作成するように構成されたマッピングおよび定位ユニットと、地図を使用してロボットを自律的にナビゲートするように構成されたナビゲーションユニットと、を備える。
【００５８】
いくつかの実装において、ナビゲーションユニットは、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定するようにさらに構成されている。いくつかの実装において、自律的にナビゲートしない決定は、障害物を回避する決定を含む。
【００５９】
いくつかの実装において、ロボットは、ロボットのセンサ範囲内の物体の少なくとも一部を示すセンサデータを生成するように構成されたセンサユニットをさらに備え、ナビゲーションユニットは、生成されたセンサデータに少なくとも部分的に基づいて自律的にナビゲートするようにさらに構成されている。
【００６０】
いくつかの実装において、ロボットは、ブラシを作動させるように構成された第１のアクチュエータユニットをさらに備える。いくつかの実装において、ロボットは、ロボットを旋回させるように構成された第２のアクチュエータユニットをさらに備える。
【００６１】
いくつかの実装において、ロボットは、地図上の位置を第１のアクチュエータユニットの作動と関連付けるように構成されたプロセッサをさらに備える。いくつかの実装において、ロボットは、地図上の位置を第２のアクチュエータユニットの作動と関連付けるように構成されたプロセッサをさらに備える。
【００６２】
いくつかの実装において、ロボットは、ユーザ作成された地図の選択を受信するように構成されたユーザインターフェースをさらに備え、ロボットは、受信された選択に少なくとも部分的に基づいて自律的にナビゲートする。
【００６３】
いくつかの実装において、ロボットは、地図内の誤りを補正するように構成された地図評価ユニットをさらに備える。いくつかの実装において、誤りの補正は、地図内の誤りのうちの少なくとも１つを補正された地図の少なくとも一部分と関連付ける機械学習を含む。
【００６４】
いくつかの実装において、誤りは、少なくとも重複する物体を含む。いくつかの実装において、誤りは、閉ループを形成することの失敗を含む。いくつかの実装において、誤りは、地図内の所定のパターンを含む。
【００６５】
いくつかの実装において、地図評価ユニットは、地図内の誤りを補正するようにさらに構成されている。いくつかの実装において、誤りの補正は、地図内の誤りのうちの少なくとも１つを補正された地図の少なくとも一部分と関連付ける機械学習を含む。
【００６６】
いくつかの実装において、プロセッサは、ナビゲート可能経路および周囲環境の地図を初期化場所と関連付けるようにさらに構成されている。
【００６７】
いくつかの実装において、プロセッサは、ナビゲート可能経路および周囲環境の地図の初期化場所に対する関連付けに少なくとも部分的に基づいてナビゲート可能経路を決定するようにさらに構成されている。いくつかの実装において、ナビゲーションユニットは、自律的にナビゲートするロボットの作用をさらに構成され、処理装置に、作成された地図に少なくとも部分的に基づいてナビゲートさせるように構成された命令をさらに含む。
【００６８】
いくつかの実装において、ロボットは、サーバと通信するように構成された通信ユニットをさらに備え、ロボットは、地図をサーバに送信し、地図の品質の検証を受信する。
【００６９】
本開示のこれらおよび他の目的、特徴、および特性と共に、構造の関連要素および部品の組み合わせの動作および機能の方法ならびに製造の経済性は、添付の図面を参照して、以下の説明および添付の特許請求の範囲の検討に際してより明らかになり、それらの全てが、本明細書の一部を形成し、同様の参照番号は、様々な図の対応する部分を示す。しかしながら、図面が、例示および説明のみの目的のためのものであり、本開示の限定の定義として意図されるものではないことが明白に理解されるべきである。本明細書および特許請求の範囲に使用される、「ａ」、「ａｎ」および「ｔｈｅ」の単数形は、文脈上、別途明確に指示されない限り、複数の指示対象を含む。
【図面の簡単な説明】
【００７０】
開示された態様は、添付の図面と併せて以下に説明され、開示される態様を例示するために提供され、限定するために提供されるものではなく、同様の呼称は、同様の要素を示す。
【００７１】
【図１Ａ】本開示の実施形態による、ロボットによって自律的にナビゲートされる経路の一例の俯瞰図である。
【図１Ｂ】本開示の実施形態による、ロボットに対して経路を実演するユーザを例示する図１Ａに例示された経路の例の俯瞰図である。
【図１Ｃ】本開示の原理による、ロボットが物体を回避する、図１Ａおよび図１Ｂに示されるロボットによって自律的にナビゲートされる経路の代替例の俯瞰図である。
【図２】本開示の原理による、経路の一例を自律的にナビゲートするようにロボットを訓練するための代表的方法のプロセスフロー図である。
【図３】本開示のいくつかの実装による、一代表的ロボットの機能ブロック図である。
【図４】本開示の原理による、代表的ロボットが学習し、その後、経路の一例を走行する、代表的方法のプロセスフロー図である。
【図５Ａ】本開示の原理による、経路の一例を教示または選択するためにユーザから入力を受信するための一代表的ユーザインターフェースである。
【図５Ｂ−５Ｄ】本開示の原理による、初期化場所を検出し、かつ配向の一例および位置の一例を初期化する代表的ロボットの俯瞰図である。
【図５Ｅ】本開示の原理による、ロボットがエネルギーパターンを放射する、代表的ロボットの俯瞰図である。
【図６Ａ】本開示の原理による、ロボットのための代表的自律ナビゲーション経路を実演しながらロボットを制御するユーザを例示する側面図である。
【図６Ｂ】本開示の原理による、床洗浄機のための代表的本体形態の様々な側面図を例示する。
【図６Ｃ】本開示の原理による、ロボットのための代表的本体形態の様々な側面図を例示する。
【図６Ｄ】本開示の原理による、ロボットがその周囲を検知している間にロボットを制御するユーザの俯瞰図である。
【図７Ａ−７Ｂ】本開示の原理による、環境内を走行する際にロボットによって生成された様々な地図の例を例示する。
【図８Ａ−８Ｂ】本開示の原理による、地図に現れ得るマッピングされた物体の様々な例を例示し、図８Ａは、互いに実質的に平行である一組の物体の例を実演し、一方で図８Ｂは、互いに実質的に平行ではない別の一組の物体の例を実演する。
【図８Ｃ】本開示の原理による、実質的に平行な物体のための地図を検索するために使用されるマスクの俯瞰図である。
【図９Ａ】本開示の原理による、地図の経路部分間の代表的経路不連続部の俯瞰図である。
【図９Ｂ】本開示の原理による、地図の物体部分間の物体不連続部の俯瞰図である。
【図９Ｃ】本開示の原理による、経路不連続部および物体不連続部の両方を含む代表的不連続部を有するマッピングされた部分の俯瞰図である。
【図１０】本開示の原理による、代表的な重複する物体を有するマッピングされた部分の俯瞰図である。
【図１１Ａ】本開示の原理による、初期化場所の例が終了場所の例と実質的に同様の代表的閉ループ経路内を走行しているロボットの俯瞰図である。
【図１１Ｂ】本開示の原理による、ロボットが、マッピングの誤りを補正された経路と関連付ける、代表的なマッピングの誤りである。
【図１２】本開示の原理による、経路選択に使用され得るユーザインターフェースの例である。
【図１３】本開示の原理による、ロボットを動作させるための代表的方法のプロセスフロー図である。
【００７２】
本明細書に開示されるすべての図は、Ｂｒａｉｎ社が著作権（２０１７年）を有する。無断転写を禁ずる。
【発明を実行するための形態】
【００７３】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下により完全に説明される。しかしながら、本開示は、多くの異なる形態で具現化されることができ、本開示全体を通して提示される任意の特定の構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であり、本開示の範囲を当業者に完全に伝えることになるように提供される。本明細書の教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して、またはそれらと組み合わされて実装されるか否かにかかわらず、本明細書に開示された新規のシステム、装置、および方法の任意の態様を包含するように意図されることを認めるべきである。例えば、本明細書に明らかにされる任意の数の態様を使用して、装置が実装され得るか、または方法が実施され得る。加えて、本開示の範囲は、本明細書に明らかにされる様々な態様に加えて、またはそれら以外の他の構造、機能、または構造および機能を使用して実施される、かかる装置または方法を包含するように意図される。本明細書に開示される任意の態様が、特許請求の範囲の１つ以上の要素によって実装され得ることが理解されるべきである。
【００７４】
特定の実装が本明細書に説明されているが、これらの実装の多くの変形および置換は、本開示の範囲内に収まる。実装のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、用途、および／または目的に限定されるように意図されない。詳細な説明および図面は、限定ではなく本開示の単なる例示であり、開示の範囲は、添付の特許請求の範囲およびその等価物によって定義される。
【００７５】
本開示は、自律ナビゲーション用のロボットを動作させる改良されたシステムおよび方法を提供する。本明細書に使用される際、ロボットは、複雑な一連の動作を自動的に実行するように構成された機械的または仮想的実体を含み得る。いくつかの場合において、ロボットは、コンピュータプログラムまたは電子回路によってガイドされる電気機械的機械であり得る。いくつかの場合において、ロボットは、自律ナビゲーション用に構成される電気機械的機械を含み得、ロボットは、少しのユーザ制御、またはユーザ制御なしで１つの場所から別の場所に動き得る。かかる自律ナビゲートロボットとしては、自律自動車、床清掃機（例えば、床洗浄機、掃除機等）、ローバ、ドローン等が挙げられ得る。いくつかの実装において、本開示に説明されるシステムおよび方法のうちのいくつかは、仮想環境に実装され得、仮想ロボットは、物理世界の特性を有するシミュレートされた環境内（例えば、コンピュータシミュレーション内）で実演された経路を学習し得る。それらの経路を学習した後、ロボットは、その後、本開示に開示されるシステムおよび方法を使用して、シミュレートされた環境および／または現実の世界で学習された経路を自律的にナビゲートし得る。
【００７６】
本開示の様々な実施形態、ならびにシステムおよび方法の変形の詳細な説明が、ここで提供される。ロボット床清掃機の文脈で主に論じられるが、本明細書に含有される、説明されたシステムおよび方法が、例えば、任意の自律ナビゲートロボットを含む他のロボットで使用され得ることが認められよう。本明細書に説明された技術の無数の他の代表的実装または用途は、本開示の内容が与えられた当業者によって容易に想定されるであろう。
【００７７】
有利には、本開示のシステムおよび方法は、少なくとも、（ｉ）環境特有のプログラミングの必要性を低減または排除する、（ｉｉ）高度に熟練した技術者がロボットをプログラムする必要性を低減または排除する、（ｉｉｉ）汎用的にプログラムされたロボットからアプリケーション特有の性能を提供する、（ｉｖ）タスク特有のプログラミング（例えば、清掃のために障害物にどの程度近づくようにナビゲートするか等の必要性を除去または低減する、（ｖ）ロボットの効果的な自律ナビゲーションを可能にする。他の利点は、本開示の内容が与えられた当業者によって容易に認識可能である。
【００７８】
例えば、実演によって経路を走行するようにロボットを訓練することで、ユーザは、事前に全ての経路をプログラムする必要がない。有利には、これは、ユーザが事前に予期していなかった環境をナビゲートするように、ユーザがロボットを訓練することを可能にし得る。また、ユーザは、ロボットを訓練するために任意の特定の専門的技術を利用しなくてもよい。例えば、ユーザは、コンピュータ科学を知る必要がなく、および／またはロボットをプログラムするやり方を学ぶ必要がない場合もある。代わりに、ユーザは、ユーザがロボットにさせることを所望するタスクを実施するやり方を単に知っていればよい。例えば、ロボットが床清掃機である場合、ユーザは、ユーザがロボットに実演し得る、床を清掃するやり方を単に知っていればよい。
【００７９】
いくつかの状況において、経路を走行するようにロボットを訓練することは、ロボットが仕様に対する特定のタスクを、それらの仕様の各々を識別およびプログラムすることを必要とせずに、実施することを可能にし得る。例示として、ロボットが床洗浄ユニットである場合、床洗浄ユニットが、壁、棚等から一定の距離を駆動することが望ましい場合がある。ユーザは、ロボットを訓練する際にそれらの距離を実演し、ロボットは、いくつかの場合において、それらの距離を繰り返し得る。
【００８０】
さらに、ナビゲート可能経路を学習し得るロボットを訓練することは、ロボットが、特定の環境を効率的にナビゲートするように具体的にプログラムされることを可能にし得るが、一方でまた、多くの環境で実施するように汎用的にプログラムされることも可能にし得る。有利には、これは、かかるロボットが、特定の用途に最適化されることと、様々な用途で実施する能力および柔軟性を依然として有することとの両方の利益を有することを可能にする。
【００８１】
いくつかの実装において、地図および経路は、ナビゲーション前に検証および／または確認され得る。この検証および／または確認は、事故、ならびに／またはロボットが、地図および／もしくは経路の品質が悪いために、壁および／もしくは障害物に衝突する可能性のある状況を防止し得る。
【００８２】
図１Ａは、本開示の実装を通して、ロボット１０２によって自律的にナビゲートされる経路１０６の一例の俯瞰図を例示する。ロボット１０２は、様々な物体１０８、１１０、１１２、１１８を含み得る環境１００を通して自律的にナビゲートし得る。ロボット１０２は、初期化場所１０４で開始し、終了場所１１４で終了し得る。
【００８３】
例示として、いくつかの実装において、ロボット１０２は、ロボット床洗浄機、真空掃除機、スチーマ、モップ、スイーパ等のロボット床清掃機であり得る。環境１００は、清掃されることが所望される床を有する空間であり得る。例えば、環境１００は、店舗、倉庫、オフィスビル、家屋、貯蔵施設等であってもよい。物体１０８、１１０、１１２、１１８のうちの１つ以上は、棚、ディスプレイ、物体、アイテム、人、動物、あるいは床上にあるか、またはそうでなければ環境を通してナビゲートするロボットの能力を妨げ得る、任意の他の実体もしくは物であり得る。経路１０６は、ロボット１０２によって走行される清掃進路であり得る。経路１０６は、経路１０６の一例に例示されるように、物体１０８、１１０、１１２、１１８の間を織りなす進路に追従し得る。例えば、物体１０８、１１０、１１２、１１８が、店舗内の棚である場合、ロボット１０２は、店舗の通路に沿って進み、通路の床を清掃し得る。しかしながら、他の経路もまた、考えられ、例えば、限定されるものではないが、開放床エリアおよび／またはユーザが床を清掃するために使用することになる任意の清掃進路に沿って前後に織りなす。したがって、図１Ａ、図１Ｂおよび図１Ｃにそれぞれ例示される経路１０６、１１６、１２６のうちの１つ以上は、例示されるように異なって見え、単に例示的な例としての意味をもち得る。例示されるように、環境１００の一例が示されているが、環境１００が、任意の数の形態および配置（例えば、部屋または建物の任意のサイズ、構成およびレイアウトの）を採用し得、この開示によって限定されないことが認められるべきである。
【００８４】
経路１０６において、ロボット１０２は、その始点となり得る初期化場所１０４で始まり、それが清掃を停止し得る終了場所１１４に到達するまで経路１０６に沿って清掃し得る。終了場所１１４は、図６Ａを参照して説明されるユーザ６０４によって指定され得る。いくつかの場合において、終了場所１１４は、ロボット１０２が床の所望されるエリアを洗浄した後の経路１０６内の場所であり得る。いくつかの場合において、終了場所１１４は、初期化場所１０４と同一または実質的に同様であり得、そのため、ロボット１０２は、清掃で実質的に閉ループを実施し、その開始点である初期化場所１０４の近くで終了する。いくつかの場合において、終了場所１１４は、一時的駐車場、保管室またはクローゼット等の、ロボット１０２の保管用の場所であり得る。いくつかの場合において、終了場所１１４は、ユーザ６０４が清掃および訓練ロボット１０２を停止することを決定した地点であり得る。ロボット１０２は、経路１０６に沿った全地点を清掃してもよく、または清掃しなくてもよい。例えば、ロボット１０２がロボット床洗浄機である場合、ロボット１０２の洗浄システム（例えば、水流、清掃ブラシ等）は、経路１０６のいくつかの部分のみで動作し、他の部分および／またはいくつかの軌道（例えば、経路１０６に沿って一定の方向または特定のシーケンスで動いている間）では動作しない場合がある。これは、床のいくつかのエリアのみが清掃されるべきであるが、他のエリアはそうではないときに望ましい場合がある。かかる場合において、ロボット１０２は、ユーザ６０４が、清掃するようにロボット１０２に実演したエリアで清掃システムをオンにし、そうでないエリアで清掃システムをオフにし得る。
【００８５】
図１Ｂは、ロボット１０２が環境１００内の経路１０６を自律走行する前にロボット１０２に経路１１６を実演するユーザ６０４の俯瞰図を例示する。経路１１６を実演する際、ユーザは、初期化場所１０４でロボット１０２を始動させ得る。ロボット１０２は、その後、物体１０８、１１０、１１２、１１８の周囲を縫うように進み得る。ロボット１０２は、終了場所１１４で最終的に終了し得る。いくつかの場合において、自律的にナビゲートされた経路１０６は、実演された経路１１６と全く同一であり得る。いくつかの場合において、経路１０６は、経路１１６と正確に同一でなくてもよいが、実質的に同様であり得る。例えば、ロボット１０２が経路１０６をナビゲートする際、ロボット１０２は、そのセンサ（例えば、図５Ｂ〜Ｅを参照して説明されることになる、センサ５６０Ａ〜Ｄおよび／またはセンサ５６８Ａ〜Ｂ）を、その周囲に関する場所を検知するために使用する。かかる検知は、いくつかの事例において不正確であり得、これは、ロボット１０２が、実演され、ロボット１０２が追従するように訓練された正確な経路をナビゲートしないことを引き起こし得る。いくつかの場合において、棚の移動および／または棚上のアイテムの変化等の、環境１００に対する小さな変化は、ロボット１０２が、経路１０６を自律的にナビゲートするときに経路１１６から逸脱することを引き起こし得る。別の例として、図１Ｃに例示されるように、ロボット１０２は、経路１２６を自律的にナビゲートするときに物体１３０、１３２の周囲を旋回することによって物体１３０、１３２を回避し得、これは、実演された経路１１６に少なくとも部分的に基づく、ロボット１０２によって走行される別の経路であり得る。物体１３０、１３２は、ユーザが経路１１６を実演するときには存在していなかった（かつ回避されなかった）場合がある。例えば、物体１３０、１３２は、一時的に配置され得る、および／もしくは一時の物体／アイテム、ならびに／または環境１００に対する一時のおよび／もしくは動的な変化であり得る。別の例として、ユーザ６０４が、経路１１６を実演する不十分な仕事を行った可能性がある。例えば、ユーザ６０４が、壁、棚、物体、障害物等にぶつけた、および／または衝突させた場合がある。これらの場合において、ロボット１０２は、壁、棚、物体、障害物等にぶつかる、および／または衝突する等を補正し得る１つ以上の動作をメモリ（メモリ３０２）内に記憶し得る。ロボット１０２が、その後、経路１２６として実演された経路１１６を自律的にナビゲートするとき、ロボット１０２は、自律的にナビゲートするときに、かかる動作を補正し得、それらを実施しない（例えば、壁、棚、物体、障害物等にぶつからない、および／または衝突しない）。このようにして、ロボット１０２は、実演された経路等の、ナビゲート可能な経路の少なくとも一部分を自律的にナビゲートしないことを決定し得る。いくつかの実装において、いくつかの実装において、ナビゲート可能経路の少なくとも一部分を自律的にナビゲートしないことを決定することは、障害物および／または物体を回避するときを決定することを含む。
【００８６】
上述したように、ユーザが経路１１６を実演する際、ユーザは、経路１１６に沿って、どこ（例えば、どの位置で）、および／またはどの軌道に沿って、清掃するか（続いて、いつロボット１０２が経路１０６を自律的に清掃するか）についてロボット１０２を訓練するために、ロボット１０２の清掃システムをオンまたはオフにするか、または他の動作を実施し得る。ロボットは、これらの動作をメモリ３０２内に記録し、その後に自律的にナビゲートするときにそれらの動作を実施し得る。これらの動作としては、旋回すること、水のオン／オフを切り換えること、水を噴霧すること、吸引のオン／オフを切り換えること、吸引ホース位置を移動させること、アームをジェスチャ動作させること、リフトを昇降させること、センサを移動させること、センサのオン／オフを切り換えること等の、ロボット１０２が実施し得る任意の動作が挙げられ得る。
【００８７】
図２は、経路１０６を自律的にナビゲートするためにロボット１０２を訓練するための代表的方法２００のプロセスフロー図を例示する。部分２０２は、初期化場所１０４にロボット１０２を位置付けることを含む。ロボット１０２の初期化場所１０４へのこの第１の配置は、ロボット１０２を初期化場所１０４に移動させるようにロボット１０２を駆動、遠隔制御、押す、またはそうでなければ制御する、管理人、守衛、または任意の他の人員であり得るユーザ６０４によって実施され得る（図６を参照して後で説明される）。例えば、ユーザ６０４は、制御信号をロボット１０２に送信させ得る。ロボット１０２は、移動のための命令としてこれらの制御信号を受信し得る。
【００８８】
図２に戻ると、部分２０４は、ロボット１０２にナビゲーション経路１１６を実演することを含む。図１Ｂを使用する例示によると、ユーザ６０４は、限定されるものではないが、経路１１６に沿ってロボット１０２を駆動、遠隔制御、押す、またはそうでなければ制御することによって、ロボット１０２に実演し得る。例えば、ユーザ６０４は、制御信号をロボット１０２に送信させ得る。ロボット１０２は、移動のための命令としてこれらの制御信号を受信し得る。複数のこれらの運動は、実演された経路を共に形成し得る。このようにして、ユーザ６０４は、移動のための所望される経路をロボット１０２に実演し得る。ロボット床清掃機の文脈において、実演された経路１１６は、床を清掃するための所望される経路であり得る。このようにして、ユーザ６０４は、ロボット１０２に床を清掃するやり方を訓練する。
【００８９】
図２に戻ると、部分２０６は、ロボット１０２を初期化場所１０４に再度位置付けることを含む。ロボット１０２の初期化場所１０４へのこの第２の配置は、部分２０４の実演の実質的に直後等の部分２０４の後の時点で起こり得るか、または数時間後、数日後、数週間後、またはユーザ６０４が床を清掃することを所望するいずれかのとき等の後の時点で起こり得る。
【００９０】
図２に戻ると、部分２０８は、自律ナビゲーションを開始することを含む。いくつかの場合において、ユーザが自律ナビゲーションを開始した後、ロボット１０２は、実演された経路１１６と実質的に同様であり得る経路１０６（またはいくつかの場合において経路１２６）に沿って走行し得る。いくつかの実装において、ユーザ６０４は、図１１Ａを参照して説明されることになるように、実演された経路をユーザインターフェース上で選択し得る。図１Ａを使用する例示によると、ロボット１０２は、その後、経路１０６、または経路１０６と実質的に同様の経路を、初期化場所１０４から終了場所１１４まで自律的にナビゲートし得る。
【００９１】
図３は、いくつかの実装のロボット１０２の例の機能ブロック図を例示する。図３に例示されるように、ロボット１０２は、コントローラ３０４、メモリ３０２、電源３０６、および操作ユニット３０８を含み、これらの各々は、相互にならびに相互の構成要素および／もしくは部分構成要素に動作可能ならびに／または通信可能に連結され得る。コントローラ３０４は、ロボット１０２によって実施される様々な動作を制御する。具体的な実装が図３に例示されるが、本アーキテクチャが、本開示の内容を考慮して当業者にとって容易に明らかである一定の実装に変更され得ることが認められる。
【００９２】
コントローラ３０４は、１つ以上のプロセッサ（例えば、マイクロプロセッサ）および他の周辺機器を含み得る。本明細書に使用される際、プロセッサ、マイクロプロセッサ、およびデジタルプロセッサという用語は、限定されるものではないが、デジタル信号プロセッサ（「ＤＳＰ」）、縮小命令セットコンピュータ（「ＲＩＳＣ」）、汎用（「ＣＩＳＣ」）プロセッサ、マイクロプロセッサ、ゲートアレイ（例えば、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）、プログラマブルロジックデバイス（ＰＬＤ）、再構成可能コンピュータファブリック（「ＲＣＦ」）、アレイプロセッサ、セキュアマイクロプロセッサ、および特定用途向け集積回路（「ＡＳＩＣ」）等の、任意のタイプのデジタル処理デバイスを含み得る。かかるデジタルプロセッサは、単一の集積回路ダイに含有されてもよく、複数の構成要素にわたって分散されてもよい。
【００９３】
コントローラ３０４は、メモリ３０２に動作可能および／または通信可能に連結され得る。メモリ３０２は、任意のタイプの集積回路、または、限定されるものではないが、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、不揮発性ランダムアクセスメモリ（「ＮＶＲＡＭ」）、プログラマブル読み出し専用メモリ（「ＰＲＯＭ」）、電気的消去可能プログラマブル読み出し専用メモリ（「ＥＥＰＲＯＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、モバイルＤＲＡＭ、同期ＤＲＡＭ（「ＳＤＲＡＭ」）、ダブルデータレートＳＤＲＡＭ（「ＤＤＲ／２  ＳＤＲＡＭ」）、拡張データ出力ＲＡＭ（「ＥＤＯ」）、高速ページモードＲＡＭ（「ＦＰＭ」）、低遅延ＤＲＡＭ（「ＲＬＤＲＡＭ」）、スタティックＲＡＭ（「ＳＲＡＭ」）、「フラッシュ」メモリ（例えば、ＮＡＮＤ／ＮＯＲ）、メモリスタメモリ、擬似スタティックＲＡＭ（「ＰＳＲＡＭ」）等を含む、デジタルデータを記憶するために適合された記憶デバイスを含み得る。メモリ３０２は、コントローラ３０４に命令とデータを提供し得る。例えば、メモリ３０２は、非一時的コンピュータ可読記憶媒体であり得、そこに記憶された複数の命令を有し、命令は、ロボット１０２を動作させるために処理装置（例えば、コントローラ３０４）によって実行可能である。いくつかの場合において、命令は、処理装置によって実行されたときに、処理装置に、本開示に説明される様々な方法、特徴、および／または機能を実施させるように構成され得る。したがって、コントローラ３０４は、メモリ３０２内に記憶されたプログラム命令に基づいて論理演算および算術演算を実施し得る。
【００９４】
操作ユニット３０８は、本開示に説明された様々な動作を実施するために、コントローラ３０４、または任意の他のコントローラに連結され得る。操作ユニット３０８内のモジュールのうちの１つ以上が、いくつかの実装に含められ得るか、またはいずれも含められなくてもよい。この開示全体を通して、様々なコントローラおよび／またはプロセッサに対する参照がなされ得る。いくつかの実装において、単一のコントローラ（例えば、コントローラ３０４）は、説明された様々なコントローラおよび／またはプロセッサとして機能し得る。他の実装において、操作ユニット３０８のうちの１つ以上に対して特に使用されるコントローラおよび／またはプロセッサ等の、異なるコントローラおよび／またはプロセッサが使用され得る。コントローラ３０４は、操作ユニット３０８への離散信号およびアナログ信号を含む、電力信号、制御信号、センサ信号、質問信号、状態信号、データ信号、電気信号および／または任意の他の望ましい信号等の、信号を送信および／または受信し得る。コントローラ３０４は、操作ユニット３０８を調整および／もしくは管理する、ならびに／またはタイミングを設定する（例えば、同期または非同期）、オン／オフを切り換える、電力量を制御する、ネットワーク命令および／もしくは更新を受信／送信する、ファームウェアを更新する、質問信号を送信する、状態を受信および／もしくは送信する、ならびに／またはロボット１０２の特徴を動作させるための任意の動作を実施し得る。
【００９５】
操作ユニット３０８は、ロボット１０２の機能を実施する様々なユニットを含み得る。例えば、操作ユニット３０８のユニットは、マッピングおよび定位ユニット３１２、センサユニット３１４、地図評価ユニット３２４、アクチュエータユニット３１８、通信ユニット３１６、ナビゲーションユニット３２６、およびユーザインターフェースユニット３２２を含み得る。操作ユニット３０８は、ロボット１０２の様々な機能を提供する他のユニットも備え得る。いくつかの場合において、操作ユニット３０８のユニットは、ソフトウェアもしくはハードウェア、またはソフトウェアおよびハードウェアの両方で具体化され得る。例えば、いくつかの場合において、操作ユニット３０８のユニットは、コントローラによって実行されるコンピュータ実装命令を含み得る。いくつかの場合において、操作ユニット３０８のユニットは、ハードコードされた論理を含み得る。いくつかの場合において、操作ユニット３０８のユニットは、コントローラによって実行されるコンピュータ実装命令およびハードコードされた論理の両方を含み得る。操作ユニット３０８が少なくとも部分的にソフトウェアに実装される場合、操作ユニット３０８は、１つ以上の機能を提供するように構成されたコードのユニット／モジュールを含み得る。
【００９６】
いくつかの実装において、センサユニット３１４は、ロボット１０２内および／またはロボット１０２の周囲の特性を検出し得るシステムを備え得る。センサユニット３１４は、ロボット１０２の内部または外部にある、ならびに／または部分的に内部および／もしくは部分的に外部である構成要素を有するセンサを含み得る。センサユニット３１４は、ソナー、ライダ、レーダ、レーザ、ビデオカメラ、赤外線カメラ、３Ｄセンサ、３Ｄカメラ、および／または当該技術分野で既知の任意の他のセンサ等の外受容性センサを含み得る。センサユニット３１４はまた、加速度計、慣性測定ユニット、オドメータ、ジャイロスコープ、速度計等の外受容性センサも含み得る。いくつかの実装において、センサユニット３１４は、生の測定値（例えば、電流、電圧、抵抗ゲート論理等）および／または変換された測定値（例えば、距離、角度、障害物の検出点等）を収集し得る。
【００９７】
いくつかの実装において、マッピングおよび定位ユニット３１２は、ロボット１０２が環境１００（または任意の他の環境）をナビゲートする際、環境１００の地図７００（図７Ａ〜７Ｂを参照して説明されることになる）（または任意の環境の任意の他の生成された地図）を計算的に構築および更新し得るシステムおよび方法を含み得る。マッピングおよび定位ユニット３１２は、環境１００をマッピングすること、およびロボット１０２を地図７００内に定位させる（例えば、位置を見出す）ことの両方を行い得る。同時に、マッピングおよび定位ユニット３１２は、地図７００（例えば、マッピングされた経路７１６）内の実演された経路（例えば、経路１１６）を記録し得る。マッピングは、センサユニット３１４によって少なくとも部分的に取得されたデータを、環境１００の少なくとも一部を表現する、２次元（「２Ｄ」）、３次元（「３Ｄ」）、および／または４次元（「４Ｄ」）地図に加えることによって実施され得る。例えば、地図７００は、ロボット１０２によって検出された障害物および／または物体の少なくとも一部を表現する図示を含み得る。地図７００はまた、図７Ａ〜図７Ｂを参照して説明されることになるように、マッピングされた地図７１６等の実演された経路を記録する場合もある。例えば、マッピングされた経路７１６は、初期化場所１０４等の基準に対するロボット１０２の相対位置に少なくとも部分的に基づく座標（例えば、２Ｄ地図内のｘおよびｙ、ならびに３Ｄ地図内のｘ、ｙ、およびｚ）を含み得る。座標は、初期化場所１０４等の基準に対する任意の所与の点でのロボット１０２の配向（例えば、変位角）を含み得る。本明細書に使用される際、位置という用語は、その通常の、かつ慣習的な意味を有する。例えば、いくつかの場合において、位置は、物体、ロボット１０２等の変位、座標等に関する場所を含み得る。いくつかの場合において、位置はまた、物体、ロボット１０２等の配向も含み得る。したがって、いくつかの場合において、位置および姿勢という用語は、場所、変位、および配向のうちの１つ以上を含むように互換的に使用され得る。実演プロセスを通して作成された地図７００は、ロボット１０２が１つ以上の実演／訓練で検知した環境全体を実質的に記録し得る。このため、地図７００をグローバル地図と呼ぶ場合がある。いくつかの場合において、地図７００は、実演後に地図７００が実質的に構成されないという点で静的であり得る。いくつかの実装において、地図７００およびマッピングされた経路７１６はまた、別個に生成され（例えば、コンピュータを使用するユーザによって）、ロボット１０２上に更新されてもよい。
【００９８】
マッピングおよび定位ユニット３１２は、センサユニット３１４からセンサデータを受信して、地図７００内のロボット１０２を定位し得る（例えば、位置付け得る）。いくつかの実装において、マッピングおよび定位ユニット３１２は、ロボット１０２が地図７００の座標内にそれ自身を定位することを可能にする定位システムおよび方法を含み得る。センサ３１４からのデータに少なくとも部分的に基づいて、マッピングおよび定位ユニット３１２は、環境１００の地図７００の座標内のロボット１０２の位置を推定し得る。地図７００の座標によってロボット１０２を定位させる能力は、ロボット１０２が、地図７００を使用して環境１００をナビゲートし、マッピングされた経路７１６上のロボット１０２の場所に接近することを可能にする。
【００９９】
いくつかの実装において、通信ユニット３１６は、１つ以上の受信機、送信機、および／または送受信機を含み得る。通信ユニット３１６は、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＺＩＧＢＥＥ（登録商標）、Ｗｉ−Ｆｉ、誘導無線データ送信、無線周波数、無線送信、無線周波数識別（「ＲＦＩＤ」）、近距離無線通信（「ＮＦＣ」）、汎ヨーロッパデジタル移動通信システム（「ＧＳＭ」）、赤外線、ネットワークインターフェース、３Ｇ（３ＧＰＰ／３ＧＰＰ２）等のセル方式技術、高速ダウンリンクパケットアクセス（「ＨＳＤＰＡ」）、高速アップリンクパケットアクセス（「ＨＳＵＰＡ」）、時分割多元接続（「ＴＤＭＡ」）、符号分割多元接続（「ＣＤＭＡ」）（例えば、ＩＳ−９５Ａ、広帯域符号分割多元接続（「ＷＣＤＭＡ」）等）、周波数ホッピングスペクトラム拡散（「ＦＨＳＳ」）、ダイレクトシーケンススペクトラム拡散（「ＤＳＳＳ」）、汎ヨーロッパデジタル移動通信システム（「ＧＳＭ」）、パーソナルエリアネットワーク（「ＰＡＮ」）（例えば、ＰＡＮ／８０２．１５）、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（「ＷｉＭＡＸ」）、８０２．２０、ロングタームエボリューション（「ＬＴＥ」）（例えば、ＬＴＥ／ＬＴＥ−Ａ）、時分割ＬＴＥ（「ＴＤ−ＬＴＥ」）、汎ヨーロッパデジタル移動通信システム（「ＧＳＭ」）、狭帯域／周波数分割多元接続（「ＦＤＭＡ」）、直交周波数分割多重方式（「ＯＦＤＭ」）、アナログセル方式、セル方式デジタルパケットデータ（「ＣＤＰＤ」）、衛星システム、ミリ波またはマイクロ波システム、音響、赤外線（例えば、赤外線データ協会（「ＩｒＤＡ」））、および／または無線データ伝送の任意の他の形態等の、伝送プロトコルを送信／受信するように構成され得る。
【０１００】
本明細書に使用される際、ネットワークインターフェースは、任意の信号、データ、あるいは、限定されるものではないが、ＦｉｒｅＷｉｒｅ（例えば、ＦＷ４００、ＦＷ８００、ＦＷＳ８００Ｔ、ＦＷＳ１６００、ＦＷＳ３２００等）、ユニバーサルシリアルバス（「ＵＳＢ」）（例えば、ＵＳＢ１．Ｘ、ＵＳＢ２．０、ＵＳＢ３．０、ＵＳＢタイプＣ等）、イーサネット（例えば、１０／１００、１０／１００／１０００（ギガビットイーサネット）、１０−Ｇｉｇ−Ｅ等）、同軸ケーブルマルチメディア協会（ＭｏＣＡ）、Ｃｏａｘｓｙｓ（例えば、ＴＶＮＥＴＴＭ）、無線周波数チューナ（インバンドまたは００Ｂ、ケーブルモデム等）、Ｗｉ−Ｆｉ（８０２．１１）、ＷｉＭＡＸ（例えば、ＷｉＭＡＸ（８０２．１６））、ＰＡＮ（例えば、ＰＡＮ／８０２．１５）、セル方式（例えば、３Ｇ、ＬＴＥ／ＬＴＥ−Ａ／ＴＤ−ＬＴＥ／ＴＤ−ＬＴＥ、ＧＳＭ等）、ＩｒＤＡ系統群等のものを含む、構成要素、ネットワーク、またはプロセスを有する、ソフトウェアインターフェースを含み得る。本明細書に使用される際、Ｗｉ−Ｆｉは、ＩＥＥＥ標準８０２．１１、ＩＥＥＥ標準８０２．１１の変種、ＩＥＥＥ標準８０２．１１（例えば、８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ／ａｄ／ａｆ／ａｈ／ａｉ／ａｊ／ａｑ／ａｘ／ａｙ）に関する標準、および／または他の無線標準を含み得る。
【０１０１】
通信ユニット３１６はまた、単一線および接地を有する任意のケーブル等の有線接続を介して伝送プロトコルを送信／受信するように構成されてもよい。例えば、かかるケーブルは、イーサネットケーブル、同軸ケーブル、ユニバーサルシリアルバス（「ＵＳＢ」）、ＦｉｒｅＷｉｒｅ、および／または当該技術分野で既知の任意の接続を含み得る。かかるプロトコルは、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動通信ネットワーク、クラウド、サーバ等のような、外部システムに通信するために通信ユニット３１６によって使用され得る。通信ユニット３１６は、数字、文字、英数字、および／または記号からなる信号を送信および受信するように構成され得る。いくつかの場合において、信号は、１２８ビットまたは２５６ビット鍵等のアルゴリズム、および／または高度暗号化標準（「ＡＥＳ」）、ＲＳＡ、データ暗号化標準（「ＤＥＳ」）、トリプルＤＥＳ等のような標準に準拠する他の暗号アルゴリズムを使用して暗号化され得る。通信３１６は、状態、コマンド、および他のデータ／情報を送信および受信するように構成され得る。例えば、通信ユニット３１６は、ユーザがロボット１０２を制御することを可能にするようにユーザコントローラと通信し得る。通信ユニット３１６は、ロボット１０２がデータ、状態、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ／ネットワークと通信し得る。サーバはまた、ロボット１０２を遠隔で監視および／または制御するために使用され得る、コンピュータおよび／またはデバイスに通信可能に連結されてもよい。通信ユニット３１６はまた、ロボット１０２および／またはその操作ユニット３０８のサーバからの更新（例えば、ファームウェアまたはデータの更新）、データ、状態、コマンド、および他の通信を受信してもよい。
【０１０２】
いくつかの実装において、アクチュエータユニット３１８は、電気モータ、ガスモータ、駆動磁石システム、ソレノイド／ラチェットシステム、圧電システム（例えば、インチワームモータ）、磁歪素子、ジェスチャ、および／または当該技術分野で既知のアクチュエータを駆動する任意の方式等のアクチュエータを含み得る。例示として、かかるアクチュエータは、環境１００または任意の他の環境を通してナビゲートするために、ロボット１０２用の車輪または他の変位可能化ドライバ（例えば、機械脚、ジェットエンジン、プロペラ、油圧技術等）を作動させ得る。いくつかの場合において、アクチュエータユニット３１８は、床清掃のためのブラシを起動すること、スキージを移動させること（例えば、上、下、左、右、前、後に移動させること）、水のオン／オフを切り換えること、水を噴霧すること、吸引のオン／オフを切り換えること、吸引ホース位置を移動させること、アームをジェスチャ動作させること、リフトを昇降させること、カメラおよび／もしくはセンサユニット３１４の任意のセンサを切り換えること、ならびに／または動作を実施するためにロボット１０２に所望される任意の運動等の、動作および／または動作固有タスクのために構成されたアクチュエータを含み得る。
【０１０３】
いくつかの実装において、ユーザインターフェースユニット３２２は、ユーザ（例えば、ユーザ６０４または任意の他のユーザ）がロボット１０２と対話することを可能にするように構成され得る。例えば、ユーザインターフェースユニット３２２は、無線または有線を通して連結されるかどうかにかかわらず（限定されるものではないが、例えば、通信ユニット３１６を参照して、本開示に説明された無線または有線接続のいずれかを含む）、データおよび／またはコマンドを入力および／または受信するために、タッチパネル、ボタン、キーパッド／キーボード、ポート（例えば、ＵＳＢ、ＤＶＩ、ディスプレイポート、Ｅ−Ｓａｔａ、Ｆｉｒｅｗｉｒｅ、ＰＳ／２、ＶＧＡ、ＳＣＳＩ、オーディオポート、ＨＤＭＩ、ＰＣＭＣＩＡポート、メモリカードポート（例えば、ＳＤおよびｍｉｎｉＳＤ）、および／またはコンピュータ可読媒体用のポート）、マウス、ローラボール、コンソール、バイブレータ、オーディオトランスデューサ、および／またはユーザのための任意のインターフェースを含み得る。ユーザインターフェースユニット３２２は、限定されるものではないが、ＬＣＤ、ＬＥＤディスプレイ、ＬＥＤ  ＬＣＤディスプレイ、ＩＰＳ、ブラウン管、プラズマディスプレイ、ＨＤパネル、４Ｋディスプレイ、Ｒｅｔｉｎａディスプレイ、有機ＬＥＤディスプレイ、タッチ画面、表面、キャンバス、ならびに／または視覚的表現のための当分野で既知の任意のディスプレイ、テレビ、モニタ、パネル、および／もしくはデバイス等の、ディスプレイを含み得る。いくつかの実装において、ユーザインターフェースユニット３２２は、ロボット１０２の本体上に位置付けられ得る。いくつかの実装において、ユーザインターフェースユニット３２２は、ロボット１０２の本体から離れて位置付けられてもよいが、直接的または間接的に（例えば、ネットワークまたはクラウドを介して）ロボット１０２に通信可能に連結され得る（例えば、通信ユニット３１６を介して）。
【０１０４】
いくつかの実装において、地図評価ユニット３２４は、比較器、信号プロセッサ、画像プロセッサ、および他のソフトウェアまたはハードウェア構成要素を含み得る。図７Ａ〜７Ｂ、８Ａ〜８Ｃ、９Ａ〜９Ｃ、１０、１１を参照して説明されることになるように、地図評価ユニット３２４は、地図７００（または他の地図）を分析および評価して、マッピングの誤りを検出し、地図７００の品質（例えば、高い、良好、容認可能、不十分、および／または任意の他の指定）、および／または自律ナビゲーションに対する地図７００の有用性を決定し得る。いくつかの場合において、地図７００または任意の他の地図の品質を分析する際に、地図評価ユニット３２４は、マッピングの誤りが存在したこと、および／または地図が不十分な品質であることを決定し得る。その結果、ロボット１０２は、ユーザインターフェースユニット３２２を使用して、または通信ユニット３１６を介して、ユーザ（例えば、ユーザ６０４）に、経路（例えば、経路１１６）を再実演するか、またはそうでなければ環境１００を再マッピングすることを促し得る。
【０１０５】
いくつかの実装において、ナビゲーションユニット３２６は、ナビゲートするためにロボット１０２に対する方向の命令を提供するように構成された構成要素および／またはソフトウェアを含み得る。ナビゲーションユニット３２６は、マッピングおよび定位ユニット３１２、センサユニット３１４からのセンサデータ、および／または他の操作ユニット３０８によって生成された地図および定位情報を処理し得る。例えば、ナビゲーションユニット３２６は、マッピングおよび定位ユニット３１２から地図７００を受信し得る。ナビゲーションユニット３２６はまた、経路７１６を含む、地図７００内のロボット１０２の場所の少なくとも一部を示し得る、マッピングおよび定位ユニット３１２からの定位情報も受信し得る。ナビゲーションユニット３２６はまた、ロボット１０２の周囲の物体の少なくとも一部を示し得るセンサユニット３１４からのセンサデータも受信し得る。地図、場所、およびセンサデータのうちの１つ以上を使用して、ナビゲーションユニット３２６は、ナビゲートする場所をロボット１０２に命令し得る（例えば、前、左、右、後に進む等）。
【０１０６】
いくつかの実施形態において、電源３０６は、限定されるものではないが、リチウム、リチウムイオン、ニッケル−カドミウム、ニッケル−金属水素化物、ニッケル−水素、炭素−亜鉛、酸化銀、亜鉛−炭素、亜鉛−空気、酸化水銀、アルカリ、または当分野で既知の任意の他のタイプの電池を含む、１つ以上の電池を含み得る。一定の電池は、無線（例えば、共振回路および／または共振タンク回路によって）および／または外部電源へのプラグ接続等によって、充電され得る。電源３０６はまた、壁コンセント、ならびに太陽光、風力、水、原子力、水素、ガソリン、天然ガス、化石燃料、機械的エネルギー、蒸気、および／または任意の動力源を電気に変換する電子デバイスを含む、任意のエネルギー供給源であってもよい。
【０１０７】
いくつかの実装において、オペレーティングシステム３１０は、メモリ３０２、コントローラ３０４、電源３０６、操作ユニット３０８内のモジュール、ならびに／またはロボット１０２の任意のソフトウェア、ハードウェアおよび／または特徴を管理するように構成され得る。例えば、限定されるものではないが、オペレーティングシステム３１０は、ロボット１０２のハードウェアリソースを管理するためのデバイスドライバを含み得る。
【０１０８】
上述されたように、ロボット１０２の上述されたコンポーネントのいずれかは、ソフトウェアおよび／またはハードウェアで具体化され得る。例えば、ユニット／モジュールは、コンピュータ上で動作されたハードウェアの断片および／またはコードの断片であり得る。
【０１０９】
図４は、ロボット１０２が経路を学習し、その後、その経路を走行する、代表的方法４００のプロセスフロー図を例示する。例えば、教示段階４１４の部分４０２、４０４、４０６において、ロボット１０２は、ユーザ６０４によって実演された経路１１６を学習し得る。続いて、自律段階４１６の部分４０８、４１０、４１２において、ロボット１０２は、経路１０６または経路１２６に沿って自律的にナビゲートし得る。
【０１１０】
いくつかの実装において、ロボット１０２は、図５Ａに例示されるユーザインターフェース５００内の入力５７４から入力を受信することによって教示段階４１４を開始し得る。ユーザインターフェース５００は、画面を有するモバイルデバイス、専用デバイス、または任意の他のデバイスであり得るディスプレイ５７６上に現れ、ユーザ入力を受け入れるように構成され得る。いくつかの場合において、ディスプレイ５７６は、ロボット１０２のユーザインターフェースユニット３２２の一部であり得る。いくつかの場合において、ディスプレイ５７６は、限定されるものではないが、ロボット１０２の通信ユニット３１６を通して通信可能に連結される等の、ロボット１０２に通信可能に連結された別個のディスプレイであってもよい。入力５７４は、ボタン、ラジオボタン、プルダウンメニュー、テキスト入力、ならびに／または当分野で既知のユーザが情報および／もしくはコマンドを入れる任意の方式を含み得る。ユーザインターフェース５００はまた、本開示で後に説明されることになる、自律段階４１６を開始するために使用され得る入力５７２も含み得る。入力５７２は、ボタン、ラジオボタン、プルダウンメニュー、テキスト入力、または当分野で既知のユーザが情報および／もしくはコマンドを入力する任意の方式を含み得る。
【０１１１】
図４に戻ると、部分４０２において、ロボット１０２は、初期化場所１０４を検出し、ロボット１０２の位置および／または配向を初期化し得る。いくつかの実装において、初期化場所１０４は、床および／または床配置図に対する位置である。例えば、初期化場所１０４は、ロボット１０２がより後の経路初期化（例えば、学習された経路を呼び戻す際の）のために訓練する経路の初期化場所を使用し得るように、ユーザによって画定され得る（例えば、物理的またはデジタルに描写および／またはマーク付けされる）いくつかの実装において、ロボット１０２は、ユーザがロボット１０２を停止させた場所に少なくとも部分的に基づいて、ロボット１０２が初期化場所１０４にあることを検出し得る。したがって、ロボット１０２は、ユーザが停止し、続いて、ロボット１０２を訓練している場所（部分４０４を参照して説明されることになるように）が初期化場所１０４であることを仮定し得る。いくつかの実装において、初期化場所１０４に、または実質的にその近くに送信機（例えば、ＲＦＩＤ、ＮＦＣ、ＢＬＵＥＴＯＯＴＨ（登録商標）、無線伝送、無線周波数フィールド、および／または本開示に説明された任意の他の通信プロトコルを使用して送信する送信機）が存在し得る。ロボット１０２が、ロボット１０２が送信機上、または実質的にその近くにあることを検出したとき、ロボット１０２は、ロボット１０２が初期化場所１０４にあることを検出し得る。いくつかの場合において、送信機は、ロボット１０２が送信機からの通信を、開始場所にあるときのみ、検出し得るように、動作可能な範囲を有し得る。例示的な例として、ＮＦＣの伝送範囲は、１０センチメートル以下であり得る。したがって、ロボット１０２がＮＦＣを介して伝送を受信するとき、ロボット１０２は、それが初期化場所１０４内に位置付けられていることを検出し得る。いくつかの実装において、ロボット１０２は、送信機からの伝送を受信し、信号強度の減衰に少なくとも部分的に基づいて送信機までの距離を計算し得る。このようにして、ロボット１０２は、それが送信機にどの程度近いかを検出し得、その結果、送信機および／または初期化場所１０４に対するロボット１０２の位置を検出し得る。いくつかの実装において、ロボット１０２は、複数の送信機の信号強度を三角測量することによって、その場所を決定し得る。いくつかの実装において、初期化場所１０４は、床上の標示（例えば、マーキング、記号、線等）によって画定され得る。ロボット１０２の１つ以上のセンサ（例えば、センサユニット３１４のうちの）が、床の標示を検出したとき、ロボット１０２は、ロボット１０２が初期化場所１０４に位置付けられていることを検出し得る。
【０１１２】
いくつかの実装において、カメラが、天井に位置付けられ、カメラは、ロボット１０２に通信可能に連結され得る（例えば、通信ユニット３１６を通して）。いくつかの場合において、カメラは、センサユニット３１４の一部であり得る。カメラは、画像処理および／または機械学習を通してロボット１０２の位置／姿勢を決定し、位置／姿勢をロボット１０２に通信し得る。いくつかの場合において、カメラは、画像処理および／または機械学習を通してロボット１０２が初期化場所１０４にあるときを認識し、ロボット１０２が初期化場所１０４にあることをロボット１０２に通信することになる。
【０１１３】
いくつかの場合において、ユーザ６０４は、床上の画定された位置によってロボット１０２を位置付け得るが、ロボット１０２は、周囲物体に対する初期化場所１０４の関係によって初期化場所１０４を検出および登録することになる。例示的な例として、ロボット１０２は、図５Ｂ〜図５Ｄを参照して説明されることになるように、センサ５６０Ａ〜５６０Ｄのうちの１つ以上によって周囲物体５１２、５４６、５４８、５５０のうちの１つ以上を検出することによって初期化場所１０４を検出し得る。いくつかの実装において、より具体的には、ロボット１０２は、センサ５６０Ａ〜５６０Ｄのうちの１つ以上によって図５Ｂ〜５Ｄを参照して説明されることになるように、点５９０、５９２、５９４、５９６、５９８等の、１つ以上の周囲物体５１２、５４６、５４８、５５０上の１つ以上の位置を検出することによって初期化場所１０４を検出し得る。初期化場所１０４にある間、ロボット１０２は、その配向および位置を初期化し得る。
【０１１４】
いくつかの実装において、初期化位置１０４から、ロボット１０２は、初期化位置１０４にあるロボット１０２の存在を検出する、ならびに／または１つ以上の周囲物体に対するロボット１０２の相対位置および／もしくは配向を決定し得る。かかる実装において、初期化位置１０４内のロボット１０２の存在を検出し、かつその配向および／または位置を初期化するために、ロボット１０２は、少なくとも部分的に、そのセンサ（例えば、センサユニット３１４）を使用して、その周囲を検知し得る。これらのセンサは、物体（例えば、アイテム、壁等）、床、天井、人員および物、標示、表面等の、周囲環境の特性を検知し得る。その周囲で検知された物体の相対位置および／または配向は、ロボットがその初期化場所に対するその方角を取得することを可能にし得る。
【０１１５】
例示的な例として、図５Ｂ〜５Ｄは、初期化場所１０４内のロボット１０２の例の俯瞰図を例示し、ロボット１０２は、初期化場所１０４内のその存在を検出する、ならびに／またはその配向および／もしくは位置を検知し得る。図５Ｂに例示されるように、ロボット１０２は、初期化場所１０４内に位置付けられ得る。ロボット１０２は、前側５０２、右側５０８、左側５０６、および後側５０４等の、複数の側部を有する本体を含み得る。ロボット１０２はまた、上側５６４および底側（図示せず）を有してもよい。当業者は、ロボット１０２が、ロボット１０２の表面に対応する、形状（例えば、矩形、ピラミッド形、人間型、または任意の他の設計形状）によって異なり得る他の側部を同様に有し得ることを認めるべきである。例示として、前側５０２は、ロボット１０２の前方側に位置付けられ得、前方側は、ロボット１０２の前方運動の方向の前方にある。後側５０４は、ロボット１０２の後方側に位置付けられ得、後方側は、前方側の実質的に反対方向を向く側部である。右側５０８は、前側５０２に対して右手側であり得、左側５０６は、前側５０２に対して左手側であり得る。
【０１１６】
ロボット１０２は、１つ以上の前側５０２、右側５０８、左側５０６、および／または後側５０４に沿って位置付けられた１つ以上のセンサ５６０Ａ〜５６０Ｄ（センサユニット３１４の一部であり得る、および／または本開示に説明される任意のセンサと実質的に同様であり得る）を有し得る。センサ５６０Ａ〜５６０Ｄは、外受容性センサを備え得る。いくつかの場合において、センサ５６０Ａ〜５６０Ｄの各々は、周囲環境１００の異なる特性を検出し得る複数のセンサを含み得る。ロボット１０２はまた、固有受容性センサを含み得る、１つ以上のセンサ５６８Ａ、５６８Ｂを有してもよい。当業者は、より多くのセンサが使用され、異なるタイプのセンサおよび／または異なるセンサ範囲（例えば、環境１００のより狭い範囲またはより広い範囲を検出する用に位置するセンサ）が所望される、図５Ｂ〜５Ｄに例示されるものとは異なる位置にあり得ることを認めるべきである。
【０１１７】
センサ５６０Ａ〜５６０Ｄは、側部（例えば、前側５０２、右側５０８、左側５０６、および後側５０４、上側５６４、底側（図示せず）、ならびに／または任意の他の側部）に直交するように位置付けられるか、または角度を有して配置され得る。角度は、検知されることを所望される物体、および範囲、焦点面、関心領域、および／またはセンサ５６０Ａ〜５６０Ｄの各々の他の特性によって決定され得る。非限定的な例として、ソナーセンサは、ソナーセンサからの広がり（例えば、マルチローブパターン、ファン、またはセンサの他の特徴的な形状）で展開する音響信号を放射し得る。例えば、図５Ｅは、ロボット１０２の俯瞰図を例示し、ロボット１０２は、エネルギーパターン５８０Ｂを放射および／または受信する。エネルギーパターン５８０Ｂは、本質的に例示的であり、信号の実際の波形または伝送の表現ではない。その代わりに、エネルギーパターン５８０Ｂは、いくつかの場合において前側１０４からセンサ５６０Ｂによって放射および／またはその後反射され受信されるエネルギーを示し、エネルギーパターン５８０Ｂの広がりにわたる物体の検出を可能にする。エネルギーパターン５８０Ｂは、センサ５６０Ｂのタイプによって使用される特徴的なエネルギーであり得る。例えば、センサ５６０Ｂがライダである場合、エネルギーパターン５８０Ｂは、センサ５６０Ｂから放射された（およびいくつかの場合においてその後反射され受信される）複数の光波のパターンのうちの少なくとも一部を表し得る。センサ５６０Ｂがソナーセンサである場合、エネルギーパターン５８０Ｂは、センサ５６０Ｂによって放射された（いくつかの場合においてその後反射され受信される）音波のパターンであり得る。センサ５６０Ｂがカメラである場合、周辺光またはセンサ５６０Ｂのフラッシュからの光が、物体を照らし得、センサ５６０Ｂは、反射光を検出し得る。したがって、いくつかの場合において、エネルギーパターン５８０Ｂは、放射されたエネルギーを表わさず、センサ５６０Ｂによって放射されるエネルギーがない場合、受信されたエネルギーを表し得る。センサ５６０Ｂが赤外線センサまたは赤外線を検出する３Ｄカメラである場合、エネルギーパターン５８０Ｂは、センサ５６０Ｂによって放射された（およびその後反射され受信される）赤外線光のパターンであり得る。赤外線センサの場合において、センサ５６０Ｂはまた、反射された周囲の赤外光を認識するためにフィルタを使用してもよい。別の例として、センサ５６０Ｂは、３次元で環境を検知するために、エネルギーを放射および受信するように構成された３Ｄセンサであってもよい。当業者は、他のセンサが使用され得、エネルギーパターン５８０Ｂが、センサ５６０Ｂによって放射、反射、および／または受信される特徴的なエネルギーを少なくとも部分的に表し得ることを認めるべきである。
【０１１８】
ソナーセンサの例は、広がりがロボット１０２から所望される領域または範囲を包含するように、センサ５６０Ａ〜５６０Ｄのうちの１つ以上として位置付けられ得る。測定値（例えば、距離および／または角度測定値）は、センサ５６０Ａ〜５６０Ｄに関して、またはロボット１０２の重心もしくは任意の他の設計位置等の、ロボット１０２の本体上の他の位置に関して取得され得る。
【０１１９】
図５Ｂに戻ると、１つ以上のセンサ５６０Ａ〜５６０Ｄを使用して、ロボット１０２は、その周囲環境内の物体５１２を検出し、物体５１２に対するロボット１０２の位置および／または配向を概算し得る。例えば、物体５１２は、障害物（例えば、アイテム、壁等）であり得る。物体５１２から、ロボット１０２は、物体５１２上の点５９０までの距離５１６を測定し得、これは、インチ、フィート、メートル、または任意の他の測定単位（例えば、メトリック、ＵＳ、または他の測定システムの測定）等の、標準単位を使用する絶対距離測定であり得る。いくつかの実装において、距離５１６は、目盛、ピクセル、センサの範囲のパーセンテージ等のような、相対（または非絶対）単位で測定され得る。いくつかの実装において、距離５１６は、初期化場所１０４、物体５１２、センサ５６０Ａ〜５６０Ｄのうちのいずれか１つ、ロボット１０２の重心、または任意の他の決定された場所等の、基準点に対するｘおよびｙ座標で表現され得る。かかる場合において、ｘ座標は、第１の軸に対する基準点までの距離であり得、ｙ座標は、第２の軸の基準までの距離であり得、第１の軸に直交する第２の軸は、直交座標系を形成する。いくつかの場合において、距離５１６は、上述されたｘおよびｙ座標、ならびにｚ座標を含む、３次元で測定され得、ｚ座標は、第３の軸の基準点までの距離であり得る。
【０１２０】
いくつかの実装において、１つ以上のセンサ５６０Ａ〜５６０Ｄは、物体５１２の点５９０の距離５１６を測定または概算し得る。例えば、センサ５６０Ａは、元の放射された音波とその音波のセンサ５６０Ａへの反射との時間差を測定することによって距離を測定し得るソナーセンサであってもよく、放射された音波と反射された音波との間の時間差は、音速を使用して距離にスケール変更され得る。
【０１２１】
いくつかの実装において、１つ以上のセンサ５６０Ａ〜５６０Ｄは、後で説明されることになるように、地図７００を作成し得、地図７００は、物体５１２、および、いくつかの実装において、学習された経路を含む。距離５１６は、地図７００上の相対単位を使用すること、または地図７００の相対単位を絶対距離測定値にスケール変更すること等によって、地図７００上で取得された概算測定値に少なくとも部分的に基づいて概算され得る。
【０１２２】
ロボット１０２はまた、初期化場所１０４のその配向を概算し得る。いくつかの実装において、ロボット１０２は、初期化場所１０４内の点、物体５１２、センサ５６０Ａ〜５６０Ｄ、ロボット１０２の重心、または任意の他の決定された位置に対する等の、基準点に対する相対角度５１４を概算し得る。角度５１４は、度、ラジアン、または任意の単位で測定され得る。いくつかの実装において、角度５１４は、水平面（例えば、上述された距離５１６または他の測定値の直交座標系）等の２Ｄ平面に対して測定され得る。いくつかの実装において、ロボット１０２に対する物体５１２のロール、ヨー、およびピッチのうちの１つ以上等の追加の角度が、測定され得る。
【０１２３】
例示的な例として、ロボット１０２は、物体５１２に対する角度５１４を測定し得る。物体５１２に対する距離５１６を概算し得るやり方と同様、１つ以上のセンサ５６０Ａ〜５６０Ｄは、物体５１２に対する角度５１４を概算し得る。例えば、センサ５６０Ａは、受信された反射エネルギーの角度に基づいて、センサ５６０Ａに対する物体５１２の配向（例えば、角度５１４）を決定し得るソナーセンサであり得る。上述されたように、いくつかの実装において、１つ以上のセンサ５６０Ａ〜５６０Ｄは、物体５１２を含み得る地図７００を作成し得る。角度５１４は、地図７００上の相対単位を使用するか、またはそれらを測定された距離に対する相対単位にスケール変更する等によって、地図７００上で取得された概算測定値に少なくとも部分的に基づいて概算され得る。
【０１２４】
いくつかの実装において、ロボット１０２は、物体５１２に対するその位置および／もしくは配向（例えば、距離５１６および／もしくは角度５１４）、ならびに／またはその中の点５９０をメモリ３０２内に記録し、物体５１２および／もしくは点５９０に対するその位置を初期化位置１０４と関連付け得る。このようにして、ロボット１０２は、その後、初期化位置１０４を検出することと、続いて初期化位置１０４に戻るときに物体５１２および／または点５９０に対して位置を初期化することとの両方を行い得る。初期化位置１０４の検出および位置の初期化は、マッピングおよび定位ユニット３１２によって実施され得る。
【０１２５】
図５Ｃは、初期化場所１０４内で角度を有して位置付けられたロボット１０２の俯瞰図を例示する。このとき、ロボット１０２のセンサ５６０Ａは、図５Ｂを参照して説明された、センサ５６０Ａが距離５１６および角度５１４を測定したやり方と実質的に同様のシステムおよび方法を使用して、物体５１２の点５９１までの角度５１８での距離５２４を測定し得る。加えて、図５Ｃは、複数のセンサ５６０Ａ〜５６０Ｄが物体５１２に対する距離および角度を独立して測定し得ることを例示する。例えば、センサ５６０Ｂは、図５Ｂを参照して説明された、ロボット１０２のセンサ５６０Ａが距離５１６および角度５１４を測定したやり方と実質的に同様のシステムおよび方法を使用して物体５１２の点５９２に対する距離５２２および角度５２０を測定し得る。このようにして、ロボット１０２は、初期化位置１０４を検出する、および／または物体５１２に対するロボット１０２の位置および／または配向を初期化し得る。いくつかの実装において、ロボット１０２は、物体５１２に対するロボット１０２の位置および／もしくは配向（例えば、距離５１６、５２２および角度５１４、５２０のうちの１つ以上）、ならびに／またはその中の点５９１、５９２をメモリ３０２内に記録し、物体５１２および／または点５９１、５９２に対するロボットの１０２位置および／または配向を初期化位置１０４と関連付け得る。したがって、ロボット１０２は、その後、初期化位置１０４を検出することと、続いて初期化位置１０４に戻るときに物体５１２および／または点５９１、５９２に対してロボットの１０２位置および／または配向を初期化することとの両方を行い得る。
【０１２６】
図５Ｄは、複数の物体５１２、５４６、５４８、５５０の例が、初期化場所１０４を検出する、ならびに／またはロボット１０２の配向および／もしくは位置を初期化するために使用されるロボット１０２の例の俯瞰図を例示する。図５Ｂを参照して説明された、ロボット１０２のセンサ５６０Ａが距離５１６および角度５１４を測定したやり方と実質的に同様のシステムおよび方法を使用すると、ロボット１０２はまた、物体５４６の点５９４に対する距離５５８および角度５４０、物体５４８の点５９６に対する距離５５４および角度５４２、ならびに物体５５０の点５９８に対する距離５５６および角度５４４も測定し得る。このようにして、ロボット１０２は、初期化位置１０４を検出し、１つ以上の物体５１２、５４６、５４８、５５０、および／またはその中のポイント５９０、５９４、５９６、５９８に対する、ロボット１０２の位置および／または配向を初期化し得る。いくつかの実装において、ロボット１０２は、物体５１２、５４６、５４８、５５０のうちの１つ以上の点５９０、５９４、５９６、５９８に対する、その位置および／または配向（例えば、距離５１６、５５８、５５４、５５６および／または角度５１４、５４０、５４２、５４４）をメモリ３０２内に記録し、物体５１２、５４６、５４８、５５０のうちの１つ以上、および／またはその中の点５９０、５９４、５９６、５９８に対する、ロボット１０２の位置および／または配向を初期化位置１０４と関連付け得る。したがって、ロボット１０２は、その後、初期化場所１０４を検出することと、続いて初期化位置１０４に戻るときにロボット１０２の位置および／または配向を初期化することとの両方を行い得る。
【０１２７】
初期化場所１０４を検出するために複数の物体５１２、５４６、５４８、５５０を使用することは、ロボット１０２が初期化場所１０４により正確に位置することを可能にする際に有利であり得る。複数の物体５１２、５４６、５４８を使用することはまた、追加の一意性を初期化場所１０４に提供し得、これは、ロボット１０２が初期化場所１０４を検出することを補助する、および／またはロボット１０２が異なる場所を初期化場所１０４として間違える機会を低減し得る。
【０１２８】
ロボット１０２が物体に対する距離および角度を測定する際、図５Ｂ〜図５Ｄを参照して説明されたように、ロボット１０２は、外受容性センサ５６８Ａ〜５６８Ｂを初期化し得る。センサ５６８Ａ〜５６８Ｂの初期化は、センサ５６８Ａ〜５６８Ｂをゼロに合わせること、センサ５６８Ａ〜５６８Ｂを初期値に設定すること、またはセンサ５６８Ａ〜５６８Ｂの現在値をメモリ３０２内に記憶することを含み得る。いくつかの実装において、外受容性センサ５６８Ａ〜５６８Ｂは、基準点に対して初期化し得る。例示的な例として、ロボット１０２は、点５９０が原点（２Ｄ地図内の（０、０）または３Ｄ地図内の（０、０、０））として扱われるように、点５９０に対して外受容性センサ５６８Ａ〜５６８Ｂを初期化し得る。したがって、ロボット１０２は、点５９０に対する距離５１６および角度５１４を測定し、原点に対するロボット１０２の初期位置および／または配向を決定し得る。この決定は、マッピングおよび定位ユニット３１２によって実施され得る。いくつかの実装において、距離５１６および／または角度５１４を使用すると、ロボット１０２は、その後、ベクトル（例えば、距離５１６および角度５１４）に対して三角法を使用して、その座標（例えば、２Ｄ地図内の（ｘ、ｙ）または３Ｄ地図内（ｘ、ｙ、ｚ））を決定し得る。例えば、ｘ座標は、いくつかの場合において、距離５１６によって乗算された角度５１４の余弦であり得る。ｙ座標は、いくつかの場合において、距離５１６によって乗算された角度５１４の正弦であり得る。限定されるものではないが、点５９１、５９２、５９４、５９６、５９８のうちの１つ等の別の点が、原点として同様に使用されてもよく、図５Ｂ〜５Ｄに関して例示および／または説明されたように対応するベクトル（例えば、距離５１６、５１８、５２２、５５８、５５４、５５６および／または角度５１４、５１８、５２０、５４０、５４２、５４４）と共に三角法に使用されてもよい。いくつかの場合において、複数の点（例えば、点５９０、５９１、５９２、５９４、５９６、５９８のうちの２つ以上）がロボット１０２を初期化し得るように、複数の原点が存在してもよい。複数の原点を使用することは、複数の地図を作成すること、計算の簡素化のために選択する複数の原点を提供すること、１つ以上が不正確な読み取り値を有する場合のセンサのチェックを提供すること、および他の利益のために望ましい場合がある。
【０１２９】
有利には、センサ５６８Ａ〜５６８Ｂは、オドメトリを使用するセンサ５６８Ａ〜５６８Ｂのこの初期化に対して、ロボット１０２の運動（例えば、走行した距離および旋回量）を追跡し得る。例えば、センサ５６８Ａ〜５６８Ｂは、ロボット１０２の角度旋回を検出し得る１つ以上のオドメータ（例えば、車輪エンコーダ（例えば、ロータリエンコーダ）、ビジュアルオドメトリ、コンパス、全地球測位システム（ＧＰＳ）、慣性測定ユニット（ＩＭＵ）、ライダ、３Ｄカメラ（例えば、赤色、緑色、青色、深度（「ＲＧＢ−Ｄ」）カメラ）等）を含み得る。ＩＭＵは、加速度計、磁力計、角速度センサ等を含み得る。例えば、センサ５６８Ａがライダを含む場合、変位（および対応する位置）は、異なる時間の異なる画像の位置の差に基づいて決定され得る。ＲＧＢ−Ｄカメラが使用される場合、スキャンマッチングが、位置を決定するために使用され得る。センサ５６８Ａ〜５６８Ｂはまた、ロボット１０２によって走行された距離を測定するために１つ以上のオドメータを含み得る。
【０１３０】
図４の方法４００に戻ると、部分４０４において、ロボット１０２は、経路１１６および環境１００の地図７００を記録しながら、経路１１６（図１Ｂに例示された）に沿ってユーザ制御下で走行し得る。図６Ａは、ロボット１０２の例を制御するユーザ６０４の例の側面図を例示する。ユーザ６０４は、管理人、守衛、またはロボット１０２を使用し得る任意の他の人員であり得る。例示されるように、ロボット１０２は、店舗、倉庫、オフィスビル、家屋、貯蔵施設等の床を清掃するように構成された床清掃機であり得る。したがって、ロボット１０２は、ロボット１０２の下および／または周囲の床を清掃するように構成されたブラシ６０８を有し得る。
【０１３１】
ロボット１０２は、動作および／または作動を地図７００上の位置および／または軌道と関連付ける（例えば、後で実施する）ように訓練され得る。例えば、ブラシ６０８は、アクチュエータユニット３１８によって作動され得、ブラシ６０８は、アクチュエータユニット３１８によって、オン／オフを切り換える、および／または上昇／下降され得る。ロボット１０２は、経路７１６および地図７００を記録しながら、ユーザがブラシ６０８を制御する際にブラシ６０８の作動を学習し得る。いくつかの実装において、地図７００は、地図７００および／またはその中の経路７１６上の１つ以上の位置および／または軌道でのブラシ６０８の作動のためのアクチュエータ命令を含み得る。いくつかの実装において、ロボット１０２はまた、１つ以上のスキージ６１６を有してもよい。スキージ６１６は、床を清掃するか、または擦るために、ゴムで縁取られた刃等のゴム片であり得る。アクチュエータユニット３１８はまた、スキージ６１６を上昇／下降させるために使用されてもよい。したがって、ロボット１０２は、経路１１６および地図７００を記録しながら、ユーザがスキージ６１６を制御する際にスキージ６１６の作動を学習し得る。いくつかの実装において、地図７００は、地図７００上の１つ以上の場所および／または軌道でのスキージ６１６の作動のためのアクチュエータ命令を含み得る。水のオン／オフを切り換えること、水を噴霧すること、吸引のオン／オフを切り換えること、吸引ホース位置を移動させること、アームをジェスチャ動作させること、リフトを昇降させること、カメラおよび／もしくはセンサユニット３１４の任意のセンサを切り換えること、ならびに／または動作を実施するためにロボット１０２に所望される運動等の、洗浄機の他の器具、または任意の他のロボット形態の作動もまた、同様に学習され得る。
【０１３２】
いくつかの実装において、動作および／またはアクチュエータ命令が地図７００および／またはその中の経路７１６上の位置と関連付けられる場合、自律的にナビゲートしながら、ロボット１０２は、それらの位置を通過する毎に、それらの動作および／またはアクチュエータ命令を実施し得る。いくつかの実装において、動作および／またはアクチュエータ命令が、地図７００上の位置および軌道、ならびに／またはその中の経路７１６と関連付けられる場合、自律的にナビゲートしながら、ロボット１０２は、経路内の同一方向および／または同一の相対的時間で、ある位置を通過するときに、それらの動作および／またはアクチュエータ命令を実施し得る。したがって、これらの実装において、ロボット１０２は、ある位置を通過する毎に（例えば、同一物理的場所を複数回、周回および通過する場合）、それらの動作および／またはアクチュエータ命令を実施しないが、ロボット１０２が経路内の特定の方向または特定の事例のいずれかの位置（例えば、場所）を通過するときのみ、かかる動作および／またはかかるアクチュエータ命令を実施し得る。
【０１３３】
当業者は、ロボット１０２が床洗浄機であったとしても、ロボット１０２がいくつかの異なる形態を有し得ることを認めるべきである。図６Ｂは、床洗浄機用の本体形態の例の側面図を例示する。これらは、様々な本体形態をさらに例示するが、ロボット１０２をいかなる特定の本体形態またはさらに床洗浄機にも制限しないことを意図する非限定的な例である。本体形態６５２の例は、使用者が床を清掃するために本体形態６５２の後ろを押し得る小さいフレームを有する直立形状を有する。いくつかの場合において、本体形態６５２は、清掃において使用者を補助し得るが、本体形態６５２の自立運動も可能にし得る、電動推進力を有し得る。本体形態６５４は、本体形態６５２よりも大きい構造的形状を有する。本体形態６５４は、操舵以外に、本体形態６５４に対してユーザ労力がほとんどまたは全くない状態で移動することを可能にするように電動化され得る。ユーザは、本体形態６５４を移動させる際にそれを操舵し得る。本体形態６５６は、シート、ペダル、およびステアリングホイールを含み得、ユーザは、本体形態６５６が清掃する際に、車両のように本体形態６５６を運転し得る。本体形態６５８は、本体形態６５６よりも大きい形状を有し得、複数のブラシを有し得る。本体形態６６０は、ユーザが本体形態６６０を運転する際にユーザが座る、部分的または完全に覆われたエリアを有し得る。本体形態６６２は、ユーザが本体形態６６２を運転しながらユーザが立つ、足場を有し得る。
【０１３４】
さらに、本開示で説明されるように、ロボット１０２は、そもそも床洗浄機でなくてもよい。追加の例示のために、限定ではなく、図６Ｃは、ロボット１０２の本体形態のいくつかの追加例を例示する。例えば、本体形態６６４は、ロボット１０２が起立店舗用掃除機である例を例示する。本体形態６６６は、ロボット１０２が人体と実質的に同様の外観を有する人間型ロボットである例を例示する。本体形態６６８は、ロボット１０２がプロペラを有するドローンである例を例示する。本体形態６７０は、ロボット１０２が車輪および客室を有する車両形状を有する例を例示する。本体形態６７２は、ロボット１０２がローバである例を例示する。
【０１３５】
図６Ａに戻ると、ロボット１０２は、ユーザ６０４による制御のための任意の数の方式で構成され得る。例示されるように、ユーザ６０４は、ロボット１０２の後ろを歩行し、操舵ホイール６１０を使用してロボット１０２を操舵し得る。他の実装において、ロボット１０２は、ユーザ６０４がロボット１０２の座席または起立する足場に乗ってロボット１０２を制御し得る、搭乗型床清掃機（図示せず）であってもよい。いくつかの実装において、ユーザ６０４は、無線リモート、モバイルデバイス、ジョイスティック、または当分野で既知のナビゲーション用の任意の他の装置等の、遠隔制御によって、ロボット１０２を遠隔に制御し得る。この制御は、左旋回、右旋回、前進（例えば、前方方向に進むように、ガスペダルを使用するか、またはロボット１０２に命じる）、後退（例えば、後方方向に進むように、逆ペダルを使用するか、またはロボット１０２に命じる）、オン／オフの切り換え、ブラシの上昇／下降、水のオン／オフの切り換え等を含み得る。いくつかの実装において、ユーザ６０４は、ロボット１０２の運動の駆動、ブラシの上昇／下降、水のオン／オフの切り換え等を行う、アクチュエータユニット３１８を制御し得る。他の実装において、ロボット１０２は、床清掃機ではなく、本開示に説明された他のロボットのいずれかであり得る。
【０１３６】
図６Ｄは、ユーザ６０４がロボット１０２の例を制御し、ロボット１０２がその周囲を検知する際の俯瞰図を示す。ロボット１０２は、ロボットが経路１１６をナビゲートする際に、物体を検出し、かつロボット１０２の周囲をマッピングするために、センサ５６０Ａ〜５６０Ｄおよび他のセンサのうちの１つ以上を使用し得る。例えば、ロボット１０２は、エネルギー波５８０Ａ、５８０Ｃを放射し得る。エネルギー５８０Ｂは、図５Ｅを参照すると共に、本開示の全体を通していずれかの場所に、先に説明された。エネルギー波５８０Ａ、５８０Ｃは、エネルギー波５８０Ｂと実質的に同様であり得、エネルギー波５８０Ａは、センサ５６０Ａに対応し、エネルギー波５８０Ｃは、センサ５６０Ｃに対応する。
【０１３７】
図７Ａは、ロボット１０２の例が環境１００内を走行する際にロボット１０２によって生成される地図７００および経路７１６の例を例示する。いくつかの実装において、地図７００の生成は、マッピングおよび定位ユニット３１２によって実施され得る。地図７００は、ピクセルを含み得、各ピクセルは、環境１００のマッピングされたエリアに対応する。地図７００内のピクセル数は、地図７００の解像度に基づいて決定され得る。例えば、地図７００は、様々なディスプレイサイズ（例えば、３．５インチ、１０インチ、２０インチ、および／または当分野で既知の画面の任意の他の対角線画面寸法）およびディスプレイ解像度（例えば、８００×６００、１０２４×７６８、１３６０×７６８、１６８０×１０５０、１９２０×１２００、２５６０×１４４０、３８４０×２１６０、または当分野で既知の任意の既知のディスプレイ解像度）の画面上で閲覧され得る。地図７００を表示する画面はまた、矩形、または円形、三角形、六角形、または任意の他の形状を含む、非矩形であり得る。これらの画面は、ユーザインターフェースユニット３２２の一部であり得る。地図７００は、環境１００と実質的に同様のレイアウトであり得、地図７００の各ピクセルは、環境１００内の場所にほぼ等しいものであり得る。
【０１３８】
いくつかの実装において、地図７００のピクセルは、１つ以上の状態を有し得、ピクセル状態は、そのピクセルによって表される環境１００内の位置／場所の特性の少なくとも一部を示す。例えば、地図７００のピクセルは、二値であり得、第１のピクセル状態（例えば、ピクセル値）は、障害物のない（例えば、ナビゲート可能）場所の少なくとも一部を示し、第２のピクセル状態は、通行止めの（例えば、ナビゲート不可能）場所の少なくとも一部を示す。例示として、ゼロ（０）のピクセル値は、障害物のない場所の少なくとも一部を示し得、１のピクセル値は、通行止めの場所の少なくとも一部を示し得る。
【０１３９】
いくつかの実装において、上述の二値状態の代わりに、またはそれに加えて、地図７００のピクセルは、不明場所（例えば、情報のない位置／場所）の少なくとも一部を示すピクセル状態、走行されるべきではない位置／場所の少なくとも一部を示すピクセル状態、ナビゲート可能経路（経路７１６）の一部である少なくとも一部を示すピクセル状態、ロボット１０２が走行したエリアの少なくとも一部を示すピクセル状態、ロボット１０２が走行していないエリアの少なくとも一部を示すピクセル状態、物体の少なくとも一部を示すピクセル状態、溜水の少なくとも一部を示すピクセル状態、および／または地図７００上の位置／場所の任意の他の分類のうちの１つ以上等の他のピクセル状態を有し得る。
【０１４０】
地図７００のピクセルはまた、単一値よりも多い値、またはピクセル状態を記憶してもよい。例えば、地図７００の各ピクセルは、ベクトルまたは行列内に記憶された値等の複数の値を記憶してもよい。これらの値は、位置が経路７１６に沿ってある点（例えば、ピクセル）で測定されたとき、ロボット１０２の位置／姿勢（例えば、場所および／または配向を含む）の少なくとも一部を示す値を含み得る。これらの値はまた、ロボット１０２が位置／場所を清掃するべきであるか、もしくは清掃するべきではないかどうか、またはロボット１０２によって取られるべき他の動作を含んでもよい。
【０１４１】
ロボット１０２は、経路１１６（図１Ｂに図示される）に沿って走行し得、経路７１６として地図７００に反映され得る。ロボット１０２は、地図７００上のロボットインジケータ７０２によって表され得、地図７００内のロボットインジケータ７０２の位置は、環境１００内のロボット１０２の相対位置を少なくとも部分的に反映し得る。各場所において、ロボット１０２は、経路１１６に沿って走行し、ロボット１０２は、初期化場所１０４または別の基準点（例えば、物体５１２、５４６、５４８、５５０、点５９０、５９１、５９２、５９４、５９６、５９８、および／または初期化場所１０４での初期化中に使用される任意の他の基準点ロボット１０２）に対するその位置および／または配向を決定し得る。これらのマッピングおよび定位機能は、マッピングおよび定位ユニット３１２によって実施され得る。初期化場所１０４は、マッピングされた位置７２４として地図７００上に表され得る。終了場所１１４は、マッピングされた位置７２６として地図７００上に表され得る。例えば、ロボット１０２は、オドメトリを使用して初期化場所１０４（または別の基準点）からのその距離を測定または概算し得、ロボット１０２は、固有受容性センサ５６８Ａ〜５６８Ｂ（例えば、車輪エンコーダ（例えば、ロータリエンコーダ）、ビジュアルオドメトリ、ＩＭＵ（加速度計、磁力計、角速度センサ等を含む）を使用して、初期化場所１０４でのその初期化からのその運動を追跡する。例示的な例として、固有受容性センサ５６８Ａ〜５６８Ｂのうちの１つ以上は、ロボット１０２の車輪の回転に基づいて距離を測定または推定する車輪エンコーダであり得る。別の例示的な例として、ビジュアルオドメータが、カメラによって撮影された連続画像を通してロボット１０２の走行距離および／または配向を測定または推定するために使用され得る。ビジュアルオドメータは、オプティカルフロー場（例えば、Ｌｕｃａｓ−Ｋａｎａｄｅ法または他の方法を使用して）を構築し、カルマンフィルタまたは投影を使用すること等によって、カメラの運動を推定し得る。別の非限定的な例として、ＩＭＵが、ロボット１０２の位置および／または配向を測定または推定し得る。
【０１４２】
ロボット１０２は、ロボット１０２が環境１００を通してナビゲートするときと実質的に同様の方式でロボットインジケータ７０２が地図７００に沿って進行する際に、地図７００内の経路７１６を記録し得る。有利には、いくつかの実装において、地図７００および経路７１６が、共に作成され、ロボット１０２は、環境１００をマッピングし、経路７１６を実質的に同様の時間に記録する。したがって、いくつかの実装において、地図７００および経路７１６は、共に対にされ得、各々記録された経路は、特定の地図のみで記憶される。
【０１４３】
経路１１６の一部である各場所において、ロボット１０２は、地図７００内の経路７１６上の対応するピクセルを、ピクセルがナビゲート可能経路の一部であることを示すピクセル状態に変更し得る。同時に、ロボット１０２はまた、図５Ａ〜５Ｅに関してセンサ５６０Ａ〜５６０Ｄを参照して説明されたものと実質的に同様のシステムおよび方法を使用して、１つ以上のセンサ５６０Ａ〜５６０Ｄを使用して物体に対するロボット１０２の位置および／または配向を測定してもよい。このようにして、ロボット１０２は、地図７００を生成するために、棚または壁等の物体に対するロボット１０２の位置および／または配向を検出および／または測定し得、ロボット１０２は、ロボット１０２によるこれらの測定および検出に少なくとも部分的に基づいてピクセル状態を変更し得る。
【０１４４】
ロボット１０２が物体を検出する場合において、ロボット１０２は、センサ５６０Ａ〜５６０Ｄを使用して、ロボット１０２に対して複数の方向にあるそれらの物体の位置および／または配向を検出および／または測定し得る。同時に、ロボット１０２は、センサ５６８Ａ〜５６８Ｂを使用して、ロボット１０２の位置（例えば、走行距離）および／または配向を推定し得る。ロボット１０２が環境内を移動すると、異なる物体が、そのセンサの範囲内に入り得る。例えば、ロボット１０２の前側５０２に位置付けられ得るセンサ５６０Ｂは、範囲７０４を有し得る。例えば、ロボット１０２は、前側５０２の物体を範囲７０４まで検出し得る。同様に、センサ５６０Ａ、５６０Ｃ、５６０Ｄは、各々範囲を有し、その範囲内の物体を検出し得る。ロボット１０２が、物体を検出し、ロボット１０２からの相対位置および／または配向を決定すると、ロボット１０２は、検出された物体に対応するピクセルの場所を地図７００上に示し得る。かかるピクセルは、それらのピクセルが物体対応する少なくとも一部を示す状態（例えば、通行止めの場所または物体を示すピクセル状態）に切り換えられ得る。
【０１４５】
ロボット１０２が、ピクセル基本単位で地図７００を生成するため、地図７００は、一定のアーチファクトを有し得る。例えば、平滑に見える壁は、センサによって受信された信号に少なくとも部分的に基づいてギザギザに見える場合がある。例えば、センサ５６０Ａ、５６０Ｄが、ソナー、ライダ、または音、光、または表面からの他の要素の反射率に依存する他のセンサを含む場合、表面内に変動性が存在し得る。運動アーチファクトまたは他のアーチファクトおよび／または歪みもまた、存在し得る。
【０１４６】
いくつかの場合において、センサ５６０Ａ〜５６０Ｄは、一定のエリアを検知しない場合がある。例えば、物体が、エリアを検知するロボット１０２の有効性を妨げる場合があり、またはエリアが、死角（例えば、センサの測定範囲によってカバーされない配置）に現れる場合がある。別の非限定的な例として、ボックス７０６が、ロボット１０２が地図７００上で旋回７０８を行った際に、ロボット１０２によって取得された地図７００の測定値を強調する。ロボット１０２が旋回した際、センサ５６０Ａ〜５６０Ｄは、ボックス７０６によって白色にマークされたエリア（例えば、ナビゲート可能場所として）測定したが、一定の物体がセンサの範囲を妨げ、ボックス７０６に例示される細長い破断した外観を作成した。
【０１４７】
ロボット１０２は、初期化場所１０４から終了場所１１４まで経路１１６に沿って走行するので、ロボット１０２は、ロボット１０２のセンサの範囲内の経路１１６および経路１１６の周囲環境１００の表現を含む地図７００を生成し得る。図７Ｂは、一度完成した地図７００の例を例示する。有利には、ロボット１０２は、マッピングされた経路７１６を記録し、１回の実演で地図７００内のマッピングされた経路７１６の周囲環境をマッピングし得る。したがって、地図７００は、ロボット１０２が、わずか１回の実演で、再度自律的に経路１１６（または経路１１６と実質的に同様の経路）をナビゲートすることを可能にする。
【０１４８】
他の現代のシステムおよび方法は、ユーザアップロード地図を要求するか、地図上で経路を描写するか、または環境をマッピングする複数の実演を利用し得る。これらのシステムおよび方法は、ユーザにとって負担になる場合がある。例えば、これらのシステムおよび方法は、ユーザが、それらのシステムおよび方法が機能するために満足な様式で全てのステップを実施し得る場合でさえ、煩雑であり、不十分なユーザ体験を提供し得る。マッピングされた経路７１６を記録し、１回の実演で地図７００内の周囲環境をマッピングするロボット１０２を有することは、ユーザが最小限のユーザ対話でロボット１０２を訓練および／またはプログラムすることを可能にする点で有利であり得る。この能力はまた、比較的少ないユーザ実演に基づいて多くの環境に容易に適応可能である点でも有利である。
【０１４９】
図４に戻ると、部分４０６において、ロボット１０２は、地図７００内のマッピングの誤りを決定し得る。この決定は、地図評価ユニット３２４によって実施され得る。有利には、ロボット１０２が、望ましくは、地図７００を生成する単一の実演後、自律的に経路１０６を走行する場合（例えば、自律段階４１６）、地図７００（経路７１６を含む）内のマッピングの誤りが存在しているかどうかを決定することは、ロボット１０２が、例えば、衝突、誤り、および／または間違ったもしくは不正確なマッピングの任意のマイナスの結果を回避することを可能にし得る。ロボット１０２が、地図７００に著しいマッピングの誤りが存在していること、および／または地図７００の品質が不十分であることを見出した場合、ロボット１０２は、警告、警報、助言および／または他の表示をユーザ（例えば、ユーザ６０４または別のユーザ）に送信して（例えば、ユーザインターフェースユニット３２２を介して）、地図が不十分な品質であることを示し得る。いくつかの場合において、ロボット１０２は、経路を再度実演する（例えば、部分４０２、４０４を再度実施することによって）ように、警告、警報、助言または他の標示をユーザに送信し得る。有利には、自律ナビゲーションの前に地図７００の誤りを決定すること、および／または品質を評価することは、ロボット１０２が障害物にぶつからず、またはロボット１０２のマッピングによって動かなくならないことを確実にすることによって、時間を節約し、損傷を防止し得る。
【０１５０】
ロボット１０２がマッピングの誤りを検出する、および／または地図７００（経路７１６を含む）の品質を評価し得る、いくつかの方式が存在し、各方式は、単独で、または組み合わせて実装される。特に、全てのマッピングの誤りまたはマッピングの誤りの存在が、地図７００の品質が不十分であること、および／または自律的にナビゲートするために使用されることができないことを意味するものではない。実際に、地図７００は、多くの誤りを有してもよく、それでもなお自律ナビゲーションのための使用に適合する場合がある。むしろ、部分４０６は、ロボット１０２が地図７００に少なくとも部分的に基づいて自律的にナビゲートすることができないか、またはするべきではない程、地図７００が、著しい欠陥を有するかどうかを決定するために使用され得る。上記のものは、ロボット１０２がかかる評価を行い得る方式のいくつかの例示的な例を与える。いくつかの実装において、マッピングの誤りを検出する際、および／または地図７００の品質を評価する際に、ロボット１０２は、地図７００内の誤りの少なくとも一部の特性を考慮し得る。有利には、いくつかの場合において、ロボット１０２は、ユーザ６０４による入力および／または労力がほとんどまたは全くない状態で、マッピングの誤りを検出する、および／または地図７００の品質を評価し得る。これは、ロボット１０２のユーザ６０４に対する自律性をさらに強化および補強するシームレスな体験を作り出し得る。
【０１５１】
例示的な例として、いくつかの実装において、ロボット１０２は、地図７００および／または経路７１６を検証するために、地図７００をサーバ、制御センター、モバイルデバイス、および／またはユーザ／閲覧者の任意のインターフェースに送信し得る。閲覧者は、画面、コンピュータモニタ、テレビ等のようなディスプレイ、および／またはユーザインターフェース３２２内の任意のディスプレイ上で地図７００を閲覧することができる。閲覧者はまた、ロボット１０２に返信する場合もあり、かかる返信は、地図７００および／または経路７１６が自律ナビゲーションに対して容認可能であるか否かの少なくとも一部を示し得る。いくつかの場合において、ロボット１０２は、通信ユニット３１６を使用して地図７００を送信し得、通信ユニット３１６は、地図７００を送信し、地図７００および／または経路７１６が自律ナビゲーションのための使用に対して容認可能であるか否かの少なくとも一部を示す通信を受信し得る。いくつかの場合において、ユーザ（例えば、ユーザインターフェースユニット３２２）のインターフェースは、ロボット１０２上にあり得、ユーザは、地図７００および／または経路７１６を閲覧し、地図７００および／または経路７１６が自律的なナビゲーションに対して容認可能である否かの少なくとも一部を示す入力を提供し得る。
【０１５２】
別の例示的な例として、いくつかの実装において、ロボット１０２は、経路７１６を含む地図７００内の特定の所定パターン（例えば、所定の誤りのパターン）を探し得、特定の所定パターンの有無は、マッピングの誤りおよび／または地図７００の品質の少なくとも一部を示し得る。例示的な例として、ロボット１０２が店舗内で動作する床清掃機である場合、ロボット１０２は、商品を展示する棚を表し得る、１つ以上の一連の略平行な物体１０８、１１０、１１２（図１Ａ〜１Ｃに例示される）を予想および／または探すように構成され得る。地図７００に表されるように、物体１０８、１１０、１１２は、図８Ａに例示されるように、マッピングされた物体８０８、８１０、８１２として平行に現れ得る。したがって、ロボット１０２が、代わりに、図８Ｂに例示されるように、マッピングされた物体８５８、８６０、８６２をマッピングする場合、ロボット１０２は、地図７００内に誤りが存在していることを見出し得る。
【０１５３】
ロボット１０２は、かかる特定のパターンをピクセル毎の基本単位または領域毎の基本単位で検出し得る。いくつかの場合において、ロボット１０２は、区分化、エッジ検出、形状認識、および／または他の技術等の画像処理を使用して、地図７００内の１つ以上の物体８５８、８６０、８６２を識別し得る。一度、物体８５８、８６０、８６２が識別されると、ロボット１０２は、物体８５８、８６０、８６２が物体８５８、８６０、８６２のうちの他の物体と略平行であるか否かを決定するために様々な方法を使用し得る。ロボット１０２は、その後、物体８５８、８６０、８５２の間の距離および／または相対角度等の、物体８５８、８６０、８６２の配向および／または位置を測定し得る。測定された配向および／または位置に少なくとも部分的に基づいて、ロボット１０２は、物体８５８、８６０、８６２が略平行であるか否かを決定し得る。
【０１５４】
例示的な例として、ロボット１０２は、物体８５８、８６０、８６２を画定する（例えば、対応するピクセルを見出す）ために、シード処理または領域形成法を使用し得る。これらのピクセルによって、ロボット１０２は、その後、物体８５８、８６０、８６２内の複数の点を識別し得る。例示的な例として、ロボット１０２は、物体８６２内の点８６８、８６６、８６４および物体８６０の点８９０、８９２、８９４を識別し得る。ロボット１０２は、物体８６２の点８６４、８６６、８６８の各々と物体８６０の点８９０、８９２、８９４との間の距離を測定し、それらの距離を比較して、物体８６０、８６２が略平行であるかどうかを少なくとも部分的に決定し得る。例えば、点８６６および点８９２と、点８６８および点８９４との間の距離の差が所定の閾値（例えば、限定されるものではないが、５％、１０％、１５％の差等の測定値または略平行な棚の実際の場所の考えられる偏差を示す閾値）を超える場合、ロボット１０２は、物体８６０、８６２が略平行ではないことを見出し得る。いくつかの場合において、所定の閾値は、メモリ３０２内に記憶され得る。距離の差が所定の閾値以下である場合、ロボット１０２は、それらが略平行であることを見出し得る。当業者は、ロボット１０２が、点８６４、８６６、８６８、８９０、８９２、８９４、および／または物体８６０、８６２内の他の点を使用して、距離および距離の間の差の同様の計算を行い得ることを認めるべきである。ロボット１０２は、物体８５８、８６０、８６２の各々もしくはいずれか、および／または存在し得る任意の他の物体の間の同様の比較を行い得る。ロボット１０２が、予想が物体１０８、１１０、１１２、１１８等の平行な物体であった、１つ以上の実質的に平行ではない物体を見出した場合、ロボット１０２は、地図７００内のマッピングの誤りを検出する、および／または地図７００の品質が良好ではないことを見出し得る。いくつかの場合において、ロボット１０２は、その後、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１５５】
別の実装例において、図８Ｃは、物体８０８、８１０、８１２等の平行な物体の地図７００を検索するために使用され得るマスク８７０の一例を例示する。マスク８７０は、行列として視覚化され得る構造的テンプレートであり得、行列の各セルは、地図７００のピクセルまたはピクセルグループ、およびそれらの対応するピクセル状態を表す。当分野の一定の用途で使用されるように、マスク８７０はまた、フィルタとも呼ばれ得る。マスク８７０は、メモリ３０２内に記憶される、および／または地図７００を処理するように構成されたソフトウェアの一部であり得る。いくつかの実装において、マスク８７０は、地図７００および物体８０８、８１０、８１２のサイズに少なくとも部分的に基づいて、サイズ決めされ得る（例えば、ｘ方向にｍピクセル、ｙ方向にｎピクセルのｍ×ｎ行列として）。例えば、マスク８７０のサイズは、地図７００の総ピクセル寸法のパーセンテージ（例えば、５％、１０％、１５％、２０％、２５％以上）に少なくとも部分的に基づいて、または物体８０８、８１０、８１２の既知の概算測定値に少なくとも部分的に基づいて、事前決定され得る。いくつかの場合において、マスク８７０は、検索方法の反復を通してサイズが変化し得、マスク８７０は、第１のサイズとして地図７００を検索し始め、その後、第２のサイズとして再び地図７００を検索し、第３のサイズとして再び地図７００を検索し、所定の回数について以下同様である。例えば、マスク８７０は、より大きなマスクとして開始し、後続の反復でより小さいマスクになり得る。図８Ｃに例示されるマスク８７０のサイズは、例示目的のためのものであり、一定の縮尺ではない場合があることに留意されたい。
【０１５６】
マスク８７０は、地図７００にわたって、および地図７００の周囲を見渡し、かつマスク８７０の内容を地図７００のものと比較することによって地図７００を検索し得る。例えば、マスク８７０は、行列であり得、行列の各々は、地図７００のピクセル状態（例えば、障害物のない（例えば、ナビゲート可能）場所、通行止め（例えば、ナビゲート不可能場所）、不明場所、走行するべきではない、ナビゲート可能経路の一部、走行された、走行されていない、物体、水、および／または本開示に説明される地図７００の任意の他の分類）に少なくとも部分的に対応する値を有する。行列のセル８７２、または任意の他のセル（例えば、右上隅のセル、左下隅のセル、右下隅のセル、中央のセル、またはマスク８７０内の任意の他のセル）は、地図７００のピクセルのうちの１つ以上または全部と連続的に整列し得る。そのセルが地図７００の各ピクセルと整列すると、マスク８７０の他のセルもまた、地図７００内の周囲ピクセルと整列し得る。地図７００からの整列された各ピクセルは、マスク８７０とそれが整列された地図７００の領域との間の類似性を検出するために、マスク８７０の対応するピクセルと比較され得る。
【０１５７】
例示されるように、マスク８７０は、平行な物体（例えば、物体８０８、８１０、８１２のうちの２つ）の少なくとも一部を示し得る、構造体８７６、８７８を画定する。構造体８７６、８７８のセル（例えば、セル８７６）は、検索された物体の一定の特性を示す値を有し得る。例えば、構造体８７６、８７８のセルの各々は、地図７００の物体の少なくとも一部を示す（例えば、地図７００内の物体のピクセル状態の少なくとも一部を示す）値を有し得る。構造体８７６、８７８の間は、構造体８８０であり得、そのピクセルは、障害物のない場所を示す値を有し得る。このようにして、いくつかの実装において、構造体８７６、８７８は、棚を表し得、構造体８８０は、それらの間の通路を表し得る。マスク８７０の各セルは、したがって、地図７００の予想されるピクセルを示す値を有し得る。マスク８７０内のセルの指定は、地図７００が検索されるピクセルのパターンを反映し得る。いくつかの実装において、反復検索において、マスク８７０は、配向を回転および／または変更し得る。有利には、これは、マスク８７０が、ある角度で傾斜され得るアイテムについて、および／またはある角度で傾斜され得る地図７００自体について、地図７００を検索することを可能にし得る。
【０１５８】
マスク８７０が、マスク８７０の構造体におけるマスク８７０のセル値と実質的に一致する（例えば、７０％、８０％、９０％以上の所定の一致閾値を有する）地図７００内のピクセルグループを識別する場合、ロボット１０２は、ロボット１０２がマスク８７０と地図７００との間の一致、および／またはかかる一致の場所を見出したことの表示（例えば、メッセージ、値、またはコマンド）を生成し得る。いくつかの場合において、過小な一致が見出された場合（例えば、見出されることが予想されるアイテムの所定の数に基づいて）、ロボット１０２は、地図７００内のマッピングの誤りを検出する、および／または地図７００が良好な品質ではないと決定し得る。いくつかの場合において、過大な一致が見出された場合（例えば、マスク８７０が望ましくない構造体を識別するように構成されているとき）、ロボット１０２はまた、地図７００のマッピングの誤りを検出する、および／または地図７００が良好な品質ではないと決定し得る。いずれの場合においても、ロボット１０２は、その後、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１５９】
別の例として、いくつかの実装において、ロボット１０２は、地図７００および／または経路７１６内の不連続の点を探し得る。例えば、図９Ａは、マッピングされた部分９００の例の経路部分９０２Ａの例と経路部分９０２Ｂの例との間の経路不連続部９０４の例を例示する。マッピングされた部分９００は、地図７００の一部分であり得る。マッピングされた部分９００は、物体９０６Ａ〜９０６Ｂ、およびそれらの間の障害物のない空間９０８を含み得る。障害物のない空間９０８内で、経路は、経路部分９０２Ａおよび経路部分９０２Ｂによって例示される。経路部分９０２Ａと経路部分９０２Ｂとの間は、経路不連続部９０４である。経路不連続部９０４は、ロボット１０２が経路部分９０２Ａから経路部分９０２Ｂまで、またはその逆に、いずれの空間の中間にも移動せず、移動しなかった可能性があるため、誤りの少なくとも一部を示し得る。いくつかの場合において、経路不連続部９０４は、ロボット１０２が経路部分９０２Ａから経路部分９０２Ｂまで問題なく障害物のない空間９０８にわたって走行し得るため、マッピングされた経路７１６をナビゲートするロボット１０２に対して問題にはならない場合がある。しかしながら、経路不連続部９０４は、それ自体によって、または他の経路不連続部および／もしくは誤りとの組み合わせで、マッピングの誤り、および／または地図７００の品質（例えば、地図７００の品質が不十分であること）の少なくとも一部を示し得る。
【０１６０】
マッピングの誤りを検出する際、および／または地図７００の品質を評価する際、ロボット１０２は、経路不連続部９０４のサイズ（例えば、経路不連続部９０４のピクセル数、距離等）および他の経路不連続部が地図７００内の他の場所に存在するかどうかも考慮し得る。いくつかの場合において、経路不連続部９０４のサイズが所定のサイズ閾値（例えば、メモリ３０２内に記憶される）を超える場合、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。所定のサイズ閾値は、インチ、フィート、メートル、または任意の他の測定単位（例えば、メトリック、ＵＳ、または測定の他のシステムの測定）等の標準単位を使用して絶対距離測定で測定されるか、または目盛、ピクセル、センサの範囲のパーセンテージ等のような、相対（または非絶対）単位で測定され得る。この所定のサイズ閾値は、ロボット１０２のセンサ（例えばセンサユニット３１４のうちの）の信号分解能および／または忠実度、環境１００の複雑さ、ロボット１０２による経路不連続部とマッピングの誤り／不十分な地図品質との間の経験的相関、経路不連続部９０４によってナビゲートするロボット１０２の能力、および／または他の因子を含む、１つ以上の因子を少なくとも部分的に決定され得る。例えば、ロボット１０２のセンサの信号分解能および／または忠実度が低い場合、ロボット１０２は、マッピングでいくつかの経路不連続部（例えば、経路不連続部９０４）が存在するであろうことを予想し得、かかる経路不連続部は、より大きいサイズであり得る。これらの経路不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示さない場合があり、したがって、所定のサイズ閾値は、比較的高くなり得る。これに対し、ロボット１０２のセンサの信号分解能および／または忠実度が高い場合、経路不連続部９０４は、予想外であり得、小さいサイズの経路不連続部でさえ、地図の誤りおよび／または不十分な地図品質の少なくとも一部を示し得、したがって、所定のサイズ閾値は、比較的低くなり得る。別の例として、高度に複雑な環境１００は、ロボット１０２のマッピングおよび定位性能（例えば、マッピングおよび定位ユニット３１２の）を損なわせる場合があり、不連続部９０４が予想され得、したがって、所定のサイズ閾値は、比較的高くなり得る。これに対し、比較的単純な環境１００は、ロボット１０２のマッピングおよび定位性能を損なわない場合があり、経路不連続部９０４は、予想されない場合があり、したがって、所定のサイズ閾値は、比較的低くなり得る。別の例として、環境の安全性が懸念される場合、所定のサイズ閾値は、比較的低くなり得る。別の例として、ロボット１０２は、地図品質（および／またはマッピングの誤りの欠如）が独立して評価された（例えば、ユーザまたは他の人員によって）先行地図（またはサーバ上に集約された地図）を有し得る。ロボット１０２は、その後、不連続部９０４および／または他の経路不連続部に少なくとも部分的に基づいて、マッピングの誤りを検出する際、および／または地図７００の品質を評価する際の所定のサイズ閾値を決定する際に経路不連続部のサイズ間の相関を考慮し得る。別の例として、所定のサイズ閾値は、地図７００をナビゲートするロボット１０２の能力に少なくとも部分的に基づき得る。経路不連続部９０４が所定のサイズ閾値よりも大きくなった後、ロボット１０２は、もはや地図７００をナビゲートすることができなくなる場合があり、したがって、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。検出された誤りおよび／または不十分な品質の決定のいずれの場合においても、ロボット１０２は、その後、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６１】
同様に、経路不連続部９０４は、地図７００の複数の経路不連続部のうちの１つであり得る。ロボット１０２は、これらの他の経路不連続部を考慮し得る。経路不連続部の数が所定の数の閾値（例えば、メモリ３０２に記憶される）を超える場合、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。例えば、この所定の数の閾値は、ロボット１０２のセンサ（例えばセンサユニット３１４のうちの）の信号分解能および／または忠実度、環境１００の複雑さ、ロボット１０２による経路不連続部とマッピングの誤り／地図品質との間の経験的相関、経路不連続部９０４によってナビゲートするロボット１０２の能力、および／または他の因子を含む、１つ以上の因子を少なくとも部分的に決定され得る。例えば、ロボット１０２のセンサの信号分解能および／または忠実度が低い場合、ロボット１０２は、マッピングでいくつかの経路不連続部（例えば、経路不連続部９０４）が存在するであろうことを予想し得る。これらの経路不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示さない場合があり、したがって、所定の数の閾値は、比較的高くなり得る。これに対し、ロボット１０２のセンサの信号分解能および／または忠実度が高い場合、不連続部９０４は、予想外であり得、経路不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示し得、したがって、所定の数の閾値は、比較的低くなり得る。別の例として、高度に複雑な環境１００は、ロボット１０２のマッピングおよび定位性能（例えば、マッピングおよび定位ユニット３１２の）を損なわせる場合があり、経路不連続部９０４が予想され得、したがって、所定の数の閾値は、比較的高くなり得る。これに対し、比較的単純な環境１００は、ロボット１０２のマッピングおよび定位性能を損なわない場合があり、経路不連続部９０４は、予想されない場合があり、したがって、所定の数の閾値は、比較的低くなり得る。別の例として、環境の安全性が懸念される場合、所定の数の閾値は、比較的低くなり得る。別の例として、ロボット１０２は、地図品質（および／またはマッピングの誤りの欠如）が独立して評価された（例えば、ユーザまたは他の人員によって）先行地図（またはサーバ上に集約された地図）を有し得る。ロボット１０２は、その後、不連続部９０４および／または他の経路不連続部に少なくとも部分的に基づいて、マッピングの誤りを検出する際、および／または地図７００の品質を評価する際の所定の数の閾値を決定する際に経路不連続部の数の間の相関を考慮し得る。別の例として、所定の数の閾値は、地図７００をナビゲートするロボット１０２の能力に少なくとも部分的に基づき得る。経路不連続部の所定の数の閾値が経路不連続部９０４と実質的に合致した後、ロボット１０２は、もはや地図７００をナビゲートすることができなくなる場合があり、したがって、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。検出された誤りおよび／または不十分な品質の決定のいずれの場合においても、ロボット１０２は、その後、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６２】
いくつかの場合において、上に説明された所定のサイズ閾値と所定の数の閾値とが組み合わせて使用される、混成閾値が使用され得る。例えば、所定の数の閾値は、これを超えると、地図７００がマッピングの誤りを含有する、および／または不十分な品質であるように決定されるが、所定のサイズ閾値を超える経路不連続部の数に少なくとも部分的に基づき得る。マッピングの誤りが検出される、および／または地図７００の品質が不十分であるように決定された場合において、ロボット１０２は、その後、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６３】
図９Ｂは、マッピングされた部分９２０の例の物体部分９２６Ａの例と物体部分９２６Ｂの例との間の物体不連続部９２４の例を例示する。マッピングされた部分９２０は、地図７００の一部分であり得る。例示されるように、経路部分９２２は、任意の経路不連続部を有しない場合がある。しかしながら、物体部分９２６Ａと物体部分９２６Ｂとの間には、物体の一部分がマッピングされていない物体不連続部９２４が存在し得る。物体不連続部９２４は、物体不連続部９２４が、マッピングされるべきであった位置の地図部分９２４のマッピングされていない部分である可能性があるため、誤りを示し得る。いくつかの場合において、物体不連続部９２４は、ロボット１０２が、経路部分９２２を通ってナビゲートする際に、そのセンサによって物体の存在を検出し得るため、ナビゲートするロボット１０２にとって問題にならない場合がある。しかしながら、物体不連続部９２４は、それ自体によって、または他の不連続部および／もしくはマッピングの誤りの他の特性と組み合わせて、マッピングの誤りおよび／または不十分な品質の地図を示し得る。
【０１６４】
図９Ａを参照して説明されたマッピングの誤りの検出および／または品質の評価と同様、地図７００を評価する際、ロボット１０２は、物体不連続部９２４のサイズ（例えば、物体不連続部９２４のピクセル数、距離等）および他の物体不連続部が地図７００内の他の場所に存在するかどうかも考慮し得る。いくつかの場合において、物体不連続部９２４のサイズが所定のサイズ閾値（例えば、メモリ３０２内に記憶される）を超える場合、ロボット１０２は、地図７００がマッピングの誤りを有する、および／または品質が不十分であると決定し得る。例えば、この所定のサイズ閾値は、ロボット１０２のセンサ（例えばセンサユニット３１４のうちの）の信号分解能および／または忠実度、環境１００の複雑さ、ロボット１０２による物体不連続部とマッピングの誤り／地図品質との間の経験的相関、物体不連続部９２４によってナビゲートするロボット１０２の能力、および／または他の因子を含む、１つ以上の因子を少なくとも部分的に決定され得る。例えば、ロボット１０２のセンサの信号分解能および／または忠実度が低い場合、ロボット１０２は、マッピングでいくつかの物体不連続部（例えば、物体不連続部９０４）が存在するであろうことを予想し得、かかる物体不連続部は、より大きいサイズであり得る。これらの物体不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示さない場合があり、したがって、所定のサイズ閾値は、比較的高くなり得る。これに対し、ロボット１０２のセンサの信号分解能および／または忠実度が高い場合、物体不連続部９２４は、予想外であり得、小さいサイズの不連続部でさえ、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示し得、したがって、所定のサイズ閾値は、比較的低くなり得る。別の例として、高度に複雑な環境１００は、ロボット１０２のマッピングおよび定位性能（例えば、マッピングおよび定位ユニット３１２の）を損なわせる場合があり、物体不連続部９２４が予想され得、したがって、所定のサイズ閾値は、比較的高くなり得る。これに対し、比較的単純な環境１００は、ロボット１０２のマッピングおよび定位性能を損なわない場合があり、物体不連続部９２４は、予想されない場合があり、したがって、所定のサイズ閾値は、比較的低くなり得る。別の例として、環境の安全性が懸念される場合、所定のサイズ閾値は、比較的低くなり得る。別の例として、ロボット１０２は、地図品質（および／またはマッピングの誤りの欠如）が独立して評価された（例えば、ユーザまたは他の人員によって）先行地図（またはサーバ上に集約された地図）を有し得る。ロボット１０２は、その後、物体不連続部９２４および他の物体不連続部に少なくとも部分的に基づいて、マッピングの誤りを検出する際、および／または地図７００の品質を評価する際の所定のサイズ閾値を決定する際に物体不連続部のサイズ間の相関を考慮し得る。別の例として、所定のサイズ閾値は、地図７００をナビゲートするロボット１０２の能力に少なくとも部分的に基づき得る。物体不連続部９２４が所定のサイズよりも大きくなった後、ロボット１０２は、もはや地図７００をナビゲートすることができなくなる場合があり、したがって、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。検出された誤りおよび／または不十分な品質の決定のいずれの場合においても、ロボット１０２は、その後、経路を再度実演することをユーザに促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６５】
同様に、物体不連続部９２４は、地図７００の複数の物体不連続部のうちの１つであり得る。ロボット１０２は、これらの他の物体不連続部を考慮し得る。物体不連続部の数が所定の数の閾値（例えば、メモリ３０２に記憶される）を超える場合、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。例えば、この所定の数の閾値は、ロボット１０２のセンサ（例えばセンサユニット３１４のうちの）の信号分解能および／または忠実度、環境１００の複雑さ、ロボット１０２による物体不連続部とマッピングの誤り／地図品質との間の経験的相関、物体不連続部９２４によってナビゲートするロボット１０２の能力、および／または他の因子を含む、１つ以上の因子を少なくとも部分的に決定され得る。例えば、ロボット１０２のセンサの信号分解能および／または忠実度が低い場合、ロボット１０２は、マッピングでいくつかの物体不連続部（例えば、不連続部９０４）が存在するであろうことを予想し得る。これらの物体不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質を示さない場合があり、したがって、所定の数の閾値は、比較的高くなり得る。これに対し、ロボット１０２のセンサの信号分解能および／または忠実度が高い場合、物体不連続部９２４は、予想外であり得、物体不連続部の存在は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示し得、したがって、所定の数の閾値は、比較的低くなり得る。別の例として、高度に複雑な環境１００は、ロボット１０２のマッピングおよび定位性能（例えば、マッピングおよび定位ユニット３１２の）を損なわせる場合があり、物体不連続部９２４が予想され得、したがって、所定の数の閾値は、比較的高くなり得る。これに対し、比較的単純な環境１００は、ロボット１０２のマッピングおよび定位性能を損なわない場合があり、物体不連続部９２４は、予想されない場合があり、したがって、所定の数の閾値は、比較的低くなり得る。別の例として、環境の安全性が懸念される場合、所定の数の閾値は、比較的低くなり得る。別の例として、ロボット１０２は、地図品質（および／またはマッピングの誤りの欠如）が独立して評価された（例えば、ユーザまたは他の人員によって）先行地図（またはサーバ上に集約された地図）を有し得る。ロボット１０２は、その後、物体不連続部９２４および他の不連続部に少なくとも部分的に基づいて、マッピングの誤りを検出する際、および／または地図７００の品質を評価する際の所定の数の閾値を決定する際に物体不連続部の数の間の相関を考慮し得る。別の例として、所定の数の閾値は、地図７００をナビゲートするロボット１０２の能力に少なくとも部分的に基づき得る。物体不連続部の所定の数が物体不連続部９２４と実質的に合致した後、ロボット１０２は、もはや地図７００をナビゲートすることができなくなる場合があり、したがって、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。検出された誤りおよび／または不十分な品質の決定のいずれの場合においても、ロボット１０２は、その後、経路を再度実演することをユーザに促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６６】
いくつかの場合において、上に説明された所定のサイズ閾値と所定の数の閾値とが組み合わせて使用される、混成閾値が使用され得る。例えば、所定の数の閾値は、これを超えると、地図７００がマッピングの誤りを有し、および／または不十分な品質であるように決定されるが、所定のサイズ閾値を超える物体不連続部の数に少なくとも部分的に基づき得る。マッピングの誤りが検出される、および／または地図７００の品質が不十分であるように決定された場合において、ロボット１０２は、その後、経路を再度実演することをユーザ７０４に促し得る（例えば、ユーザインターフェースユニット３２２を介して）。
【０１６７】
図９Ｃは、経路不連続部および物体不連続部の両方を含む、不連続部９３４を有するマッピングされた部分９２０の例を例示する。マッピングされた部分９２０は、地図７００の一部分であり得る。不連続部９３４は、経路部分９３０と経路部分９３２との間の不連続部であり得る。不連続部９３４はまた、物体９３６の不連続部でもあり得る。図９Ａ〜９Ｃを参照して説明されたように、経路不連続部および物体不連続部の両方は、マッピングの誤りおよび／または不十分な地図品質の少なくとも一部を示し得る。ロボット１０２が地図７００を評価するとき、ロボット１０２は、マッピングの誤りを検出する際、および／または地図７００の品質を決定する際、経路不連続部または物体不連続部のいずれか、または共に両方を考慮し得る。
【０１６８】
別の例として、いくつかの実装において、ロボット１０２は、マッピングの誤りを検出する際、および／または地図７００の品質を決定する際、地図７００内のアイテム（例えば、経路、障害物、または他の物体）間の重なり量を評価し得る。図１０は、重なる物体１００２、１００４、１００６を有するマッピングされた部分１０００の例を例示する。マッピングされた部分１０００は、地図７００の一部分であり得る。例示されるように、物体１００２、１００４、１００６は、地図７００を作成している間にロボット１０２が検出した壁、物体、棚等であり得る。ロボット１０２の測定された位置付けおよび配向に少なくとも部分的に基づいて、ロボット１０２は、物体１００２、１００４、１００６をマッピングした。物体１００２、１００４、１００６の各々の推定された位置および／または配向が互いに重なり合うため、ロボット１０２は、マッピングに誤りが存在したと決定し得る。かかる重なりのエリアを識別する際、ロボット１０２は、ピクセル毎または領域毎に地図７００を検査し得る。いくつかの場合において、ロボット１０２は、地図７００内の所定の形状（例えば、所定の形状を探すために修正されたマスク８７０と実質的に同様の）を見出すためにマスクおよび／またはフィルタを使用し得る。所定の形状は、物体の場所および／またはセンサの誤りの以前に観察された変形等の、マッピングの際のロボット１０２の既知の誤りに少なくとも部分的に基づき得る。
【０１６９】
重なりはまた、ピクセルもしくはピクセルの領域内および／またはその周囲の検出された物体１００２、１００４、１００６の濃い濃度によって少なくとも部分的に識別されてもよい。いくつかの場合において、ロボット１０２は、地図７００内の形状、すなわち形状の異常を検出し得る。例えば、ロボット１０２は、空間１００８等の閉じ込められた空間を検出し得る。いくつかの場合において、空間１００８は、障害物のない、走行される、および／またはナビゲート可能空間であり得る。空間１００８は、マッピングされる際に空間１００８へのアクセスをロボット１０２が有さないため、通常、物体１００２、１００４、１００６の間には生じない。したがって、ロボット１０２は、空間１００８を検出した場合、地図７００がマッピングの誤りを有する、および／または品質が不十分であると決定し得る。別の例として、ロボット１０２は、ギザギザの突出部分１０１０、１０１２を検出し得る。形状の異常は、かかる突出部分が、通常、環境１００内で生じないため、ロボット１０２が、物体１００２、１００４、１００８のうちの１つ以上に誤ったマッピングが存在していると決定することを可能にし得る。したがって、突出部分１０１０、１０１２の異常に少なくとも部分的に基づいて、ロボット１０２は、マッピングの誤りを検出する、および／または地図７００の品質が不十分であると決定し得る。
【０１７０】
重なりを認識することを通して識別可能なマッピングの誤りの別の例として、ロボット１０２（および／またはロボット１０２が走行する経路）は、物体を通り抜けるように地図７００内で表され得る。ロボット１０２が物体を通り抜ける可能性は低いため、かかる出来事は、マッピングの誤りの少なくとも一部を示し得る。
【０１７１】
別の例として、ロボット１０２は、地図７００を、ロボット１０２のセンサのうちの少なくとも１つからのデータと比較することによって、マッピングの誤りおよび／または地図７００の品質を識別し得る。例えば、いくつかの実装において、地図７００は、センサ５６０Ａ〜５６０Ｄのうちの１つ以上およびセンサ５６８Ａ〜５６８Ｂのうちの１つ以上を少なくとも部分的に使用して生成された。しかしながら、地図７００の正確さのチェックは、地図７００を、センサ５６０Ａ〜５６０Ｄおよびセンサ５６８Ａ〜５６８Ｂの全てよりも少ないものによって記録されたデータと比較し得る。１つの例示的な例として、センサ５６８Ａ〜Ｂのうちの１つ以上は、ロボット１０２のオドメトリを決定し得る。オドメトリのみに基づくロボット１０２の経路の表現は、オドメトリフレーム内の地図と考えられ得る。オドメトリフレーム内のこの地図は、比較器、減法、および／または本開示の地図を比較する任意の他の方法を使用すること等によって、地図７００と比較され得る。オドメトリフレーム内の地図と地図７００との間の偏差が所定の閾値（例えば、４０％、５０％、６０％、または不十分な地図品質に対する相関の経験的決定に少なくとも部分的に基づいて決定される任意のパーセンテージを超える）、ロボット１０２は、マッピングの誤り存在したこと、および／または地図７００の品質が不十分であったことを決定し得る。
【０１７２】
別の例として、いくつかの実装において、ロボット１０２は、閉ループ（例えば、終了場所が初期化場所と実質的に同様である）で走行するように構成され得る。ロボット１０２が、常に閉ループで走行するとは限らないことが留意されるべきである。例えば、図１Ａは、初期化場所１０４が終了場所１１４と実質的に同一場所にないように例示されたため、閉ループを形成しなかった経路を例示した。図１１Ａは、場所１１０２が初期化場所および終了場所の両方である、閉ループ経路１１０４の例で走行するロボット１０２を例示する。この場合において、経路１１０４の地図が場所１１０２に近接する初期化場所および終了場所を有しなかった場合、ロボット１０２は、マッピングの誤りを検出する、および／または地図の品質が不十分であったと決定し得る。いくつかの場合において、所定の距離閾値（例えば、メモリ３０２内に記憶された）が存在し得る。マッピングされた初期化場所および終了場所が所定の距離閾値内にない場合（例えば、初期化場所と終了場所との間の距離が所定の距離閾値を超えない場合）、ロボット１０２はマッピングの誤りを検出する、および／または地図の品質が不十分であると決定し得る。この所定の距離閾値は、地図のサイズ（例えば、所定の距離閾値は、地図サイズのパーセンテージであり得る）、センサ分解能および／もしくは忠実度、ならびに／または他の因子に少なくとも部分的に基づいて決定され得る。
【０１７３】
別の実装例として、ロボット１０２は、メモリ３０２内に記憶された環境のアップロードされた地図を有し得る。ロボット１０２は、その後、地図７００をアップロードされた地図と比較し得る。例示として、ロボット１０２は、ピクセル毎または領域毎に地図７００をアップロードされた地図と比較する地図評価ユニット３２４の１つ以上の比較器を利用し得る。いくつかの実装において、アップロードされた地図および／または地図７００は、その比較を容易にするためにサイズ変更され得る。地図７００がピクセル毎または領域毎にアップロードされた地図と同様であるように見出されない場合、ロボット１０２は、マッピングの誤りが存在している、および／または地図７００の品質が不十分であると決定し得る。その結果、ロボット１０２は、経路を再度実演することをユーザ６０４に促し得る（例えば、ロボット１０２は、部分４０４を再度実施し得る）。
【０１７４】
いくつかの実装において、類似性のパーセンテージがアップロードされた地図と地図７００との間で計算され得、類似性のパーセンテージは、アップロードされた地図が地図７００にどの程度類似しているかを少なくとも部分的に反映する。類似性のパーセンテージが所定の閾値（例えば、７０％、８０％、９０％、またはアップロードされた地図と地図７００との間の実質的な類似性の少なくとも一部を示す任意のパーセンテージ）未満に収まる場合、ロボット１０２は、マッピングの誤りが存在している、および／またはその地図７００の品質が不十分であると決定し得る。その結果、ロボット１０２は、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェース３２２を介して）（例えば、ロボット１０２は、部分４０４を再度実施し得る）。
【０１７５】
いくつかの実装において、アップロードされた地図は、形状（例えば、物体または障害物のない空間の形状）を分析され得る。地図７００は、少なくとも部分的に、それらの同一形状が地図７００内に存在するかどうかを決定するために、それらの同一形状を分析され得る。マスクおよび／またはフィルタが、いくつかの実装において検索のために使用され得る（例えば、形状を探すために修正されたマスク８７０と実質的に同様である）。アップロードされた地図からの形状が、地図７００内に見出されなかった場合、ロボット１０２は、マッピングの誤りが存在している、および／または地図７００の品質が不十分であると決定し得る。その結果、ロボット１０２は、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェース３２２を介して）（例えば、ロボット１０２は、部分４０４を再度実施し得る）。同様に、地図７００は、形状（例えば、物体または障害物のない空間の形状）を分析され得、アップロードされた地図は、それらの同一形状が存在するかどうかを確認するために分析される。同一方式において、ロボット１０２が、アップロードされた地図内に地図７００から検出された形状を見出さなかった場合、ロボット１０２は、マッピングの誤りが存在している、および／または地図７００の品質が不十分であると決定し、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェース３２２を介して）（例えば、ロボット１０２は、部分４０４を再度実施し得る）。
【０１７６】
いくつかの実装において、ロボット１０２は、環境１００の一定の予想される特性／特徴に対して地図７００を分析し得る。例えば、食料雑貨店または同様の環境において、ロボット１０２は、通路および／または棚の列を予想し得る。ロボット１０２が、通路および／または棚の列を示す物体を検出しないか、または過小もしくは過多に検出する場合、ロボット１０２は、地図７００の品質が不十分である、および／または地図７００がマッピングの誤りを含有し得ると決定し得る。別の例として、環境の複雑さに対する一定のレベルの予想が存在し得る。地図７００が、過多な旋回または過小な旋回を有する場合、ロボット１０２は、地図７００の品質が不十分である、および／または地図７００がマッピングの誤りを含有し得ると決定し得る。別の例として、環境１００は、予想されるサイズを有し得る。地図７００のサイズが過大または過小である場合、ロボット１０２は、地図７００の品質が不十分である、および／または地図７００がマッピングの誤りを含有し得ると決定し得る。地図７００が環境１００の所定の予想される特性／特徴を有していない上記の場合のいずれかにおいて、ロボット１０２は、地図７００を検証するようにユーザ（例えば、ユーザ６０４またはサーバ上の地図にアクセスを有するユーザ）に促し得る。したがって、ロボットは、地図をサーバに送信し、地図の品質の検証を受信し得る。
【０１７７】
いくつかの実装において、機械学習アルゴリズムが使用され得、ロボット１０２（例えば、ロボット１０２のコントローラ３０４）は、良好な地図および品質の悪い地図を識別することを学習する。例えば、ロボット１０２は、良好な地図および品質の悪い地図として識別されている（例えば、手動ラベル付けまたは機械ラベル付けされている）地図のライブラリを有し得る。当分野で既知の教師ありまたは教師なしのアルゴリズムを使用して、ロボット１０２は、その後、特性を関連付けることを学習し得、ロボット１０２は、良好な地図または品質の悪い地図を示すようにそのライブラリにわたって決定し得る。したがって、ロボット１０２が、地図を品質の悪い地図として識別した場合、ロボット１０２は、マッピングの誤りが存在している、および／または地図７００の品質が不十分であると決定し、経路を再度実演することをユーザ６０４に促し得る（例えば、ユーザインターフェース３２２を介して）（例えば、ロボット１０２は、部分４０４を再度実施し得る）。
【０１７８】
いくつかの場合において、ロボット１０２はまた、不十分な品質の地図７００内の誤りを訂正することもできる。例えば、いくつかの場合において、ロボット１０２が閉ループ（例えば、閉ループ経路１１０４）で正確に走行しなかった場合、初期化場所と終了場所との間の差が、ロボット１０２のオドメトリを補正するために使用され得る。例えば、ロボット１０２は、初期化場所と終了場所との間の差を取得し、オドメトリが現実からどの程度ドリフトされているかをその差が示すことを決定し得る。したがって、ロボット１０２は、決定されたドリフトを考慮に入れて、記録された経路を調節し得る。
【０１７９】
別の例として、一定のマッピングの誤りは、ロボット１０２が、１つ以上の誤りを補正する地図７００のバージョンであり得る、補正された地図の少なくとも一部分と関連付け得るパターンを結果として生じ得る。図１１Ｂは、ロボット１０２の例が、マッピングの誤りの一例を補正された経路１１０８の一例と関連付ける一例を例示する。例えば、地図７００は、マッピングされた経路１１０６Ａ〜１１０６Ｎ等の、実質的に同様の形状の一連のドリフトされた経路を含有し得、Ｎは、任意の数のマッピングされた経路１１０６Ａ〜１１０６Ｎがマッピングされ得ることを示す。ロボット１０２は、かかるドラフトされた、マッピングされた経路１１０６Ａ〜１１０６Ｎが、ユーザ６０４が同一経路を何度もナビゲートすることの少なくとも一部を示し得ることを決定し得る。結果として、ロボット１０２は、その後、マッピングされた経路１１０６Ａ〜１１０６Ｎを、マッピングされた経路１１０８に補正し得、これは、ユーザ６０４が同一経路を繰り返しナビゲートすることを示す。地図７００が、マッピングされた経路１１０６Ａ〜１１０６Ｎを含有した場合、ロボット１０２は、マッピングされた経路１１０６Ａ〜１１０６Ｎを、地図７００内のマッピングされた経路１１０８に補正し得る。同様に、他の誤りパターン（例えば、ドリフトおよび／または他の誤り）が存在し得、その識別情報は、ロボット１０２がそれらを自動的に補正し得るように、ロボット１０２にプログラムされ得る。したがって、ロボット１０２は、地図７００の誤りを補正し得る。
【０１８０】
ロボット１０２はまた、機械学習を使用して、誤りをそれらの誤りの補正と関連付けることを学習することもできる。例えば、ロボット１０２は、メモリ３０２および／またはサーバ上に誤りを含む地図を記憶し得る。例示として、いくつかの場合において、ユーザ６０４は、最初に経路を実演し得る。経路および周囲環境で作成された地図は、マッピングの誤りを含有し得る。マッピングの誤りに直面したとき、ユーザ６０４は、環境および／または経路を再マッピングし得る。したがって、ロボット１０２は、不十分な品質の地図のバージョン（例えば、正常なナビゲーションを妨げることになるマッピングの誤りを含む）、および品質が不十分ではないバージョン（例えば、正常なナビゲーションを妨げることになるマッピングの誤りを含まない）を有し得る。ロボット１０２は、その後、不十分な品質の地図の少なくとも一部分を、不十分な品質ではない再マッピングされたバージョンの対応する部分と関連付け得る。１つ以上の実質的に同様の関連付けに基づいて、ロボット１０２は、生じたマッピングの誤りを識別し、かつその後、一度マッピングの誤りを認識すると、補正された地図の少なくとも一部分を生成すること学習し得る。
【０１８１】
図４に戻ると、教示段階４１４の後、ロボット１０２は、その後、自律段階４１６に進み得る。部分４０８において、ロボット１０２は、初期化場所１０４を検出し、ロボット１０２の位置および／または配向を初期化し得る。いくつかの実装において、ユーザは、ロボット１０２を駆動すること、ロボット１０２を遠隔制御すること、ロボット１０２を操舵すること、ロボット１０２を押すこと、および／またはアクチュエータユニット３１８を駆動する任意の制御等の任意の他の制御によって、ロボット１０２を初期化場所１０４に移動させ得る。いくつかの実装において、ロボット１０２は、自律的に初期化場所１０４に戻り得る。例えば、ロボット１０２は、初期化場所１０４の場所をメモリ３０２内に記憶し（例えば、図５Ｂ〜５Ｅを参照して上に説明されたように）、その場所に戻り得る。
【０１８２】
いくつかの実装において、ロボット１０２は、図５Ｂ〜５Ｅおよび本開示全体を通していずれかの場所を参照して説明された、部分４０２における初期化場所１０４を検出するために使用したシステムおよび方法と実質的に同様の方式で初期化場所１０４を検出し得る。いくつかの場合において、ロボット１０２が部分４０８において初期化場所１０４に戻ったとき、例えば、物体５１２、５４６、５４８、５５０のうちの１つ以上に対するロボット１０２の位置がメモリ３０２に記憶されていることになる（例えば、部分４０２から）。ロボット１０２が、物体５１２、５４６、５４８、５５０の１つ以上に対して同一相対場所にロボット１０２があることを検出したとき、ロボット１０２は、ロボット１０２が初期化場所１０４にあると決定し得る。いくつかの実装において、ロボット１０２は、ユーザがロボット１０２を停止させた場所に少なくとも部分的に基づいて、ロボット１０２が初期化場所１０４にあることを検出し得る。したがって、ロボット１０２は、ユーザが停止し、続いて、部分４１０を参照して説明されることになるように、経路を選択した場所が初期化場所１０４であることを仮定し得る。いくつかの実装において、初期化場所１０４に、または実質的にその近くに送信機（例えば、ＲＦＩＤ、ＮＦＣ、ＢＬＵＥＴＯＯＴＨ（登録商標）、無線伝送、無線周波数フィールド、および／または本開示に説明された任意の他の通信プロトコルを使用して送信する送信機）が存在し得る。ロボット１０２が、ロボット１０２が送信機上、または実質的にその近くにあることを検出したとき、ロボット１０２は、ロボット１０２が初期化場所１０４にあることを検出し得る。いくつかの場合において、送信機は、ロボット１０２が送信機からの通信を、開始場所にあるときのみ、検出し得るように、動作可能な範囲を有し得る。例示的な例として、ＮＦＣの伝送範囲は、１０センチメートル以下であり得る。したがって、ロボット１０２がＮＦＣを介して伝送を受信するとき、ロボット１０２は、それが初期化場所１０４内に位置付けられていることを検出し得る。いくつかの実装において、ロボット１０２は、送信機からの伝送を受信し、信号強度の減衰に少なくとも部分的に基づいて送信機までの距離を計算し得る。このようにして、ロボット１０２は、それが送信機にどの程度近いかを検出し得、その結果、送信機および／または初期化場所１０４に対するロボット１０２の位置を検出し得る。いくつかの実装において、ロボット１０２は、複数の送信機の信号強度を三角測量することによって、その場所を決定し得る。いくつかの実装において、初期化場所１０４は、床上の標示（例えば、マーキング、記号、線等）によって画定され得る。ロボット１０２の１つ以上のセンサ（例えば、センサユニット３１４のうちの）が、床の標示を検出したとき、ロボット１０２は、ロボット１０２が初期化場所１０４に位置付けられていることを検出し得る。
【０１８３】
部分４１０において、ロボット１０２は、その後、記録された経路を選択して、自律的にナビゲートし得る。いくつかの実装において、ロボット１０２による記録された経路（例えば、経路１１６）の選択は、ユーザ入力に少なくとも部分的に基づき得る。例えば、ユーザは、ディスプレイ５７６上のユーザインターフェース５００（図５Ａに例示される）上の入力５７２を選択し得、入力５７２は、ユーザがロボット１０２の記録された経路を選択することを可能にする。入力５７２を選択した後、図１２に例示されるインターフェース１２００が現れ得る。図１２は、経路選択のために使用され得る、インターフェース１２００の例を例示する。インターフェース１２００は、選択可能な入力１２０２Ａ〜１２０２Ｆとして表示される選択のための複数の経路を提示し得る。ユーザは、タッチ（例えば、ディスプレイ５７６がタッチ画面を含む場合）および／またはユーザインターフェースユニット３２２の任意の他の入力機構を介して、選択可能な入力１２０２Ａ〜１２０２Ｆのうちの１つを選択し得る。例えば、いくつかの実装において、入力１２０２Ｆは、ロボット１０２によって学習された、マッピングされた経路７１６と対応し得る。ユーザが入力１２０２Ｆを選択するとき、ロボット１０２は、その後、ユーザの選択に少なくとも部分的に基づいて、地図７００およびマッピングされた経路７１６（経路１１６のユーザの実演に基づく）を選択し得る。
【０１８４】
いくつかの実装において、ロボット１０２は、それが部分４０８で検出した初期化場所に基づいて、記録された経路を自律的に選択し得る。例えば、初期化場所１０４は、実演された経路１１６（またはマッピングされた経路７１６としてマッピングされたもの）のみと関連付けられ得る。同様に、ロボット１０２は、他の実演された経路と関連付けられた他の初期化場所を有し得る。有利には、複数の初期化場所を有することは、ユーザが、様々な経路を実演することを可能にし、かつロボット１０２が、様々な経路を通って自律的に移動することを可能にし得る。さらに、ロボット１０２が初期化場所に基づいて記録された経路を自動的に選択するようにすることによって、ロボット１０２は、最小限の追加のユーザ入力でより迅速に自律ナビゲーションを開始し得る。
【０１８５】
図４を参照すると、部分４１２において、ロボット１０２は、その後、部分４１０で選択され記録された経路に沿って自律的に走行し得る。例えば、ロボット１０２は、地図７００およびマッピングされた経路７１６を使用して自律的に走行し得る。
【０１８６】
経路７１６を追従することにおいて、ロボット１０２は、少なくとも地図７００、経路７１６、ならびにセンサ５６０Ａ〜５６０Ｄおよびセンサ５６８Ａ〜５６８Ｂからのデータのうちの１つ以上を処理し得る、少なくともナビゲーションユニット３２６に依拠し得る。図６Ｄおよび本開示のいずれかの場所を参照して例示および説明されるように、センサ５６０Ａ〜５６０Ｄは、ロボット１０２がその周囲の物体を検知することを可能にし得る。このようにして、ロボット１０２は、地図７００および近くの物体の検出に少なくとも部分的に基づいてナビゲートし得、ロボット１０２は、検出された物体を回避し得る。例えば、これらの物体は、一時的に配置され得る、および／もしくは一時のアイテム、ならびに／または環境に対する一時のおよび／もしくは動的な変化であり得る。近くの物体の検出はまた、ロボット１０２が地図７００上で検出する物体の位置の決定に少なくとも部分的に基づいて、地図７００上でロボット１０２自体を定位することを可能にすることもできる。
【０１８７】
ロボット１０２はまた、少なくとも図５Ｂ〜５Ｄを参照して説明されるように、原点に対するその位置／姿勢（例えば、距離および／または配向）を少なくとも部分的に決定するために、オドメトリ用のセンサ５６８Ａ〜５６８Ｂを利用することもできる。少なくとも地図７００、経路７１６、センサ５６０Ａ〜５６０Ｄ、およびセンサ５６８Ａ〜５６８Ｂのうちの１つ以上を使用することによって、ロボット１０２は、図１Ａに例示されたような経路１０６、ＦＩＧ．１Ｃに例示された経路１２６、または環境１００、もしくは他の環境を通る他の自律経路を、少なくとも方法４００を利用して自律的に走行し得る。
【０１８８】
また、経路１０６に沿って自律的に走行している間、ロボット１０２は、部分４０４の間に学習された、および／または地図７００内に記録された、ブラシ９０８および／またはスキージ６１６等の、ロボット１０２上の様々な器具を作動させ得る。水のオン／オフを切り換えること、水を噴霧すること、吸引のオン／オフを切り換えること、吸引ホース位置を移動させること、アームをジェスチャ動作させること、リフトを昇降させること、カメラおよび／もしくはセンサユニット３１４の任意のセンサを切り換えること、ならびに／または動作を実施するためにロボット１０２に所望される運動等の、洗浄機、または任意の他のロボット形態の器具の学習された動作の作動もまた、同様に実施され得る。
【０１８９】
図１３は、ロボット１０２の例を動作させるための方法１３００の一例を例示する。部分１３０２は、初期化場所内のロボットの第１の配置を検出することを含む。部分１３０４は、初期化場所から開始するロボットへのナビゲート可能経路の実演中に、ナビゲート可能経路および周囲環境の地図を作成することを含む。部分１３０６は、初期化場所内のロボットの第２の配置を検出することを含む。部分１３０８は、ロボットに初期化場所からナビゲート可能経路の少なくとも一部分を自律的にナビゲートさせることを含む。
【０１９０】
本明細書に使用される際、コンピュータおよび／またはコンピューティングデバイスは、限定されるものではないが、デスクトップ、ラップトップ、もしくはその他のいずれかの、パーソナルコンピュータ（「ＰＣ」）およびミニコンピュータ、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末（「ＰＤＡ」）、ハンドヘルドコンピュータ、組込み型コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、Ｊ２ＭＥ搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信またはエンターテインメントデバイス、および／または一式の命令を実行し、かつ着信データ信号を処理することができる任意の他のデバイスを含み得る。
【０１９１】
本明細書に使用される際、コンピュータプログラムおよび／またはソフトウェアは、機能を実施する任意のシーケンスまたはヒトもしくは機械認識可能ステップを含み得る。かかるコンピュータプログラムおよび／またはソフトウェアは、例えば、Ｃ／Ｃ＋＋、Ｃ＃、Ｆｏｒｔｒａｎ、ＣＯＢＯＬ、ＭＡＴＬＡＢ（商標）、ＰＡＳＣＡＬ、Ｐｙｔｈｏｎ、アセンブリ言語、マークアップ言語（例えば、ＨＴＭＬ、ＳＧＭＬ、ＸＭＬ、ＶｏＸＭＬ）等、およびコモンオブジェクトリクエストブローカアーキテクチャ（「ＣＯＲＢＡ」）、ＪＡＶＡ（商標）（Ｊ２ＭＥ、Ｊａｖａ  Ｂｅａｎｓ等を含む）、バイナリランタイム環境（例えば、ＢＲＥＷ）等のようなオブジェクト指向環境を含む、任意のプログラミング言語または環境で表現され得る。
【０１９２】
本明細書に使用される際、接続、リンク、伝送チャネル、遅延線、および／または無線は、実体間で情報交換を可能にする任意の２つ以上の実体（物理的または論理的／仮想的のいずれか）間の因果リンクを含み得る。
【０１９３】
本開示の一定の態様が、方法の特定の一連のステップに関して説明されるが、これらの説明は本開示の広範な方法の単なる例示であり、特定の用途によって要求される際に修正され得ることが認識されるであろう。一定のステップは、一定の状況下で、不必要または任意であり得る。加えて、一定のステップまたは機能性が、開示された実装、または置換された２つ以上のステップの実施順序に追加されてもよい。全てのかかる変形は、本明細書に開示され主張される開示内に含まれるとみなされる。
【０１９４】
上記の詳細な説明が、様々な実装に適用されるように本開示の新規な特徴を示し、説明し、指摘してきたが、例示されたデバイスまたはプロセスの形態および詳細の様々な省略、置換、および変更が、本開示から逸脱することなく当業者によってなされ得ることが理解されるであろう。上記の説明は、本開示を実行する、現在考えられる最良の形態である。この説明は、決して限定を意味するものではなく、むしろ本開示の一般原理の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して決定されるべきである。
【０１９５】
本開示は、図面および上記の説明において詳細に例示および説明されてきたが、かかる例示および説明は、例示的または代表的であって限定的ではないとみなされるべきである。本開示は、開示された実施形態に限定されない。開示された実施形態に対する変形は、図面、開示および添付の特許請求の範囲の検討から、主張された開示を実施する際に当業者によって理解および成立され得る。
【０１９６】
本開示の一定の特徴または態様を説明するときの特定の用語の使用が、その用語が関連付けられる本開示の特徴または態様の任意の具体的特性を含むために制限されるように、用語が本明細書で再定義されることを意味するようにとられるべきではないことが留意されるべきである。特に明記されない限り、本出願で使用される用語および語句、ならびにその変形は、特に添付の特許請求の範囲において、限定ではなく非限定として解釈されるべきである。上記の例として、「含む」という用語は、「限定するものではないが、含む」、「含むが、これに限定されない」等を意味するように読まれるべきであり、本明細書で使用される「備える」という用語は、「含む」、「含有する」または「によって特徴づけられる」と同義語であり、包括的または非限定であり、追加の列挙されていない要素または方法ステップを排除するものではなく、「有する」という用語は、「少なくとも有する」と解釈されるべきであり、「等の」という用語は、「限定するものではないが、〜等の」と解釈されるべきであり、「含む」という用語は、「含むが、これに限定されない」と解釈されるべきであり、「例」という用語は、その網羅的または限定的なリストではなく、論述中の項目の代表的な事例を提供するために使用され、「限定ではなく、例」として解釈されるべきであり、「既知」、「通常」、「標準」等の形容詞および同様の意味の用語は、説明された項目を所定の期間または所定の時点で利用可能な項目に限定するように解釈されるべきではなく、代わりに、現在または将来の任意の時点で利用可能または既知であり得る、既知、通常、または標準の技術を包含するように読まれるべきであり、「好ましくは」、「好ましい」、「所望される」、または「望ましい」のような用語の使用、および同様の意味を有する単語は、一定の特徴が、本開示の構造または機能にとって決定的、本質的またはさらに重要であることを意味するものとして理解されるべきではなく、代わりに、特定の実施形態で利用されてもよく、または利用されなくてもよい代替的または追加的な特徴を強調することを単に意図するように理解されるべきである。同様に、接続詞「および」によって繋げられた項目のグループは、グループ内に存在するそれらの項目のうちの各々および全てのものを必要とするように読まれるべきではなく、別途明確に記述されない限り、「および／または」として読まれるべきである。同様に、接続詞「または」によって繋げられた項目のグループは、そのグループ間の相互排他性を必要とするように読まれるべきではなく、別途明確に記述されない限り、「および／または」として読まれるべきである。「約」または「略」等の用語は、同義語であり、該用語によって修飾された値が、それと関連付けられた、±２０％、±１５％、±１０％、±５％、または±１％であり得る、理解される範囲を有することを示すために使用される。「実質的に」という用語は、結果（例えば、測定値）が目標値に近いことを示すために使用され、近いとは、結果が、値の８０％以内、値の９０％いない、値の９５％以内、または値の９９％以内であることを意味し得る。また、本明細書に使用される「画定された」または「決定された」は、��画定済みの」もしくは「所定の」および／または別途決定された値、条件、閾値、測定値等を含み得る。
【図１Ａ】
2019522301.tif 000003
【図１Ｂ】
2019522301.tif 000004
【図１Ｃ】
2019522301.tif 000005
【図２】
2019522301.tif 000006
【図３】
2019522301.tif 000007
【図４】
2019522301.tif 000008
【図５Ａ】
2019522301.tif 000009
【図５Ｂ】
2019522301.tif 000010
【図５Ｃ】
2019522301.tif 000011
【図５Ｄ】
2019522301.tif 000012
【図５Ｅ】
2019522301.tif 000013
【図６Ａ】
2019522301.tif 000014
【図６Ｂ】
2019522301.tif 000015
【図６Ｃ】
2019522301.tif 000016
【図６Ｄ】
2019522301.tif 000017
【図７Ａ】
2019522301.tif 000018
【図７Ｂ】
2019522301.tif 000019
【図８Ａ】
2019522301.tif 000020
【図８Ｂ】
2019522301.tif 000021
【図８Ｃ】
2019522301.tif 000022
【図９Ａ】
2019522301.tif 000023
【図９Ｂ】
2019522301.tif 000024
【図９Ｃ】
2019522301.tif 000025
【図１０】
2019522301.tif 000026
【図１１Ａ】
2019522301.tif 000027
【図１１Ｂ】
2019522301.tif 000028
【図１２】
2019522301.tif 000029
【図１３】
2019522301.tif 000030
【国際調査報告】
2019522301.tif 000031