(57)【要約】  ロボットマッピングのためのシステムおよび方法が、開示される。いくつかの例示的な実装態様において、ロボットは、環境内を進行することができる。環境内を進行することから、ロボットは、複数のノードを含むグラフを作成することができ、各ノードは、環境内の場所でロボットのセンサによって取得された走査像に対応する。いくつかの例示的な実装態様において、ロボットは、グラフから環境のマップを生成することができる。いくつかの場合において、マップの生成を容易にするために、ロボットは、グラフを実質的に同様の場所で開始および終了するように制約することができる。ロボットはまた、走査像間の重複を識別することから判定された、拡張走査グループ上で走査マッチングを実行して、マップ内の特徴の場所をさらに判定することもできる。【選択図】図１２
2020502627.tif 000002
【特許請求の範囲】
【請求項１】
ロボットであって、
複数のノードにおける環境の走査像を取得するように構成されたセンサであって、各ノードが、場所と関連付けられている、センサと、
マッピングおよび位置特定ユニットであって、
前記取得された走査像に少なくとも部分的に基づいて、前記ノードのグラフを作成するように、
前記複数のノードのグループに少なくとも部分的に基づいて、拡張走査グループを判定するように、かつ
前記拡張走査グループ上で走査マッチングを実行するように構成されている、マッピングおよび位置特定ユニットと、を備える、ロボット。
【請求項２】
前記マッピングおよび位置特定ユニットが、実質的に同様の場所で開始および終了するように前記グラフを制約するようにさらに構成されている、請求項１に記載のロボット。
【請求項３】
前記マッピングおよび位置特定ユニットが、各ノードの前記場所と関連付けられた信頼度を判定するようにさらに構成されている、請求項１に記載のロボット。
【請求項４】
前記マッピングおよび位置特定ユニットが、各ノードの前記信頼度および場所に少なくとも部分的に基づいて、コスト関数を生成するようにさらに構成され、前記マッピングおよび位置特定ユニットが、最小の前記コスト関数を解くことに基づいて、前記グラフ内の各ノードの前記場所を判定する、請求項３に記載のロボット。
【請求項５】
前記グラフからマップをレンダリングするようにさらに構成されているプロセッサをさらに備え、前記マップが、前記走査像の光線追跡に少なくとも部分的に基づいて、レンダリングされている、請求項１に記載のロボット。
【請求項６】
前記ロボットを場所間で移動させるように構成されたアクチュエータをさらに備える、請求項１に記載のロボット。
【請求項７】
前記ロボットのユーザ制御のために構成されたユーザインターフェースをさらに備える、請求項１に記載のロボット。
【請求項８】
前記ロボットを自律的にナビゲートするように構成されたナビゲーションユニットをさらに備える、請求項１に記載のロボット。
【請求項９】
非一時的なコンピュータ可読記憶装置であって、その中に記憶された複数の命令を有し、前記命令が、ロボットを操作するための処理装置によって実行可能であり、前記命令が、前記処理装置によって実行されるとき、前記処理装置に、
センサに、複数のノードにおける環境の走査像を生成させることであって、前記複数のうちの各ノードが、場所と関連付けられる、生成させることと、
前記生成された走査像に基づいて、前記複数のノードのグラフを作成させることと、
前記複数のノードのグループと関連付けられた走査像から少なくとも部分的に基づいて、拡張走査グループを判定させることと、
前記拡張走査グループ上で走査マッチングを実行させることと、を行わせるように構成されている、非一時的なコンピュータ可読記憶装置。
【請求項１０】
前記処理装置によって実行されるとき、前記処理装置に、前記グラフを実質的に同様の場所で開始および終了するようにさらに制約させる、１つ以上の命令をさらに含む、請求項９に記載の非一時的なコンピュータ可読記憶装置。
【請求項１１】
各拡張走査グループが、３つ以上の走査像を含む、請求項９に記載の非一時的なコンピュータ可読記憶装置。
【請求項１２】
前記処理装置によって実行されるとき、前記処理装置に、各ノードの前記場所と関連付けられた信頼度に少なくとも部分的に基づいて、コスト関数をさらに判定させる、１つ以上の命令をさらに含む、請求項９に記載の非一時的なコンピュータ可読記憶装置。
【請求項１３】
前記処理装置によって実行されるとき、前記処理装置に、前記コスト関数の最小化に少なくとも部分的に基づいて、マップをさらに生成させる、１つ以上の命令をさらに含む、請求項１２に記載の非一時的なコンピュータ可読記憶装置。
【請求項１４】
ロボットによってマップを生成する方法であって、
環境内を、前記ロボットによって、進行することと、
複数のノードを含むグラフを作成することであって、各ノードが、前記環境内の場所で前記ロボットのセンサによって取得された走査像に対応する、作成することと、
前記グラフを、実質的に同様の場所で開始および終了するように制約することと、
前記複数のノードのグループから少なくとも部分的に判定された拡張走査グループ上で走査マッチングを実行することと、
前記走査マッチングに少なくとも部分的に基づいて、ある範囲の可能な場所を前記複数のノードの各々と関連付けることと、
可能な場所の各範囲と関連付けられた信頼度を判定することと、
前記関連付けられた信頼度に少なくとも部分的に基づいて、前記複数のノードの可能性の高い場所を見出すように前記グラフを最適化することと、
前記最適化されたグラフから前記マップを生成することと、を含む、方法。
【請求項１５】
前記マップの前記生成が、前記センサによって取得された前記走査像を用いた光線追跡を含み、前記走査像が、前記複数のノードと関連付けられている、請求項１４に記載の方法。
【請求項１６】
前記グラフを最適化することが、
（１）前記複数のノードの各々の相対場所、および（２）前記複数のノードの各々と関連付けられた前記信頼度に少なくとも部分的に基づいて、コスト関数を生成することと、
最小の前記コスト関数を解くことと、を含む、請求項１４に記載の方法。
【請求項１７】
前記グラフを、前記実質的に同様の場所で開始および終了するように制約することが、ホームロケータを考慮して前記グラフを開始および終了するように制約することをさらに含む、請求項１４に記載の方法。
【請求項１８】
前記環境内を、前記ロボットによって前記進行することが、ユーザ制御の下でナビゲートすることをさらに含む、請求項１４に記載の方法。
【請求項１９】
前記関連付けられた信頼度が、所与のノードが所与の場所内にあるという確率を少なくとも部分的に示す確率分布を使用することをさらに含む、請求項１４に記載の方法。
【請求項２０】
前記複数のノードのグループから少なくとも部分的に判定された前記拡張走査グループが、
基準場所としてルートノードを選択することと、
他のノードで取得された走査像内で、別個の特徴の測定値における可能な重複を見出すことと、
それらのそれぞれ他のノードにおいて、前記走査像の重複する別個の特徴に少なくとも部分的に基づいて、前記他のノードを拡張された走査像グループにグループ化することと、をさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本出願は、２０１６年１１月１日に出願された、同一表題の、同一所有者かつ同時係属中の米国特許出願第１５／３４０，８０７号に対する優先権の利益を主張するものであり、その内容全体が参照により本明細書に組み込まれる。
【０００２】
著作権
本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。著作権所有者は、特許商標庁の特許ファイルまたは記録に記載されているような特許文書または特許開示のいずれかによるファクシミリ複製には異論を唱えないが、それ以外の全ての著作権を留保する。
【０００３】
本出願は、概して、ロボット工学に関し、より具体的には、ロボットマッピングのためのシステムおよび方法に関する。
【背景技術】
【０００４】
いくつかの場合において、ロボットは、環境をマッピングする。これらのマップは、ロボットが自律的にナビゲートすることを可能にする。ロボットがその環境をマッピングする際、ロボットはその環境の特徴を検出し、後で参照するためにそれらの特徴を思い出すために、（例えばセンサを使用して）その感覚に頼る。しかしながら、マッピングは、とりわけ、環境ノイズ、センサノイズ、および環境における不正確さ、あいまいさ（例えば、実質的に同様の特徴）、センサドリフト、ならびに他の問題に起因して遅く、かつ困難なプロセスであり得る。
【０００５】
マッピングにおける不正確さは、ロボットが、ナビゲーション中に迷う、または環境を全くナビゲートできなくなることを引き起こす場合がある。いくつかの場合において、マッピングの問題は、ロボットが環境内の物体または人物と衝突し、またはロボットが実行しなければならなかった目的の達成の失敗を引き起こすことがある。その結果、当技術分野において、マッピングの不正確さを修正し、環境および／またはロボットが進行したルートを表現するマップを生成することができるシステムおよび方法を開発する必要がある。
【０００６】
さらなる課題として、多くの場合、手頃な価格、軽量、およびできる限り小さいロボットが望ましい。したがって、システムおよび方法は、計算上効率的であり、センサおよびプロセッサを含む、低コスト（例えば、おそらくより精度が低い）ハードウェア上で実行可能であることが望ましい。
【発明の概要】
【０００７】
前述の必要性は、とりわけ、自律ナビゲーションにおけるマッピングのための装置および方法を提供する本開示によって満たされる。本明細書に記載されている例示的な実装態様は、革新的な特徴を有しており、そのうちの単一のものが、それらの望ましい属性に対して不可欠ではなく、または単独でその責を担うものでもない。特許請求の範囲を限定することなく、有利な特徴のうちのいくつかをここで要約する。
【０００８】
第１の態様において、ロボットによってマップを生成する方法が、開示されている。例示的な一実装態様において、本方法は、環境内でロボットによって進行することと、複数のノードを含むグラフを作成することであって、各ノードが環境内の場所でロボットのセンサによって取得された走査像に対応する、作成することと、グラフを実質的に同様の場所で開始および終了するように制約することと、複数のノードのグループから少なくとも部分的に判定された拡張走査グループ上で走査マッチングを実行することと、走査マッチングに少なくとも部分的に基づいて、ある範囲の可能な場所を複数のノードの各々と関連付けることと、可能な場所の各範囲と関連付けられた信頼度を判定することと、信頼度に少なくとも部分的に基づいて、複数のノードの可能性の高い場所を見出すようにグラフを最適化することと、最適化されたグラフからマップをレンダリングすることと、を含む。
【０００９】
一変形態様において、マップの生成は、センサによって取得された走査像を用いた光線追跡を含み、その走査像は複数のノードと関連付けられる。別の変形態様において、グラフを最適化することは、（１）複数のノードの各々の相対場所、および（２）複数のノードの各々と関連付けられた信頼度に少なくとも部分的に基づいて、コスト関数を生成することと、最小のコスト関数を解くことと、を含む。
【００１０】
別の変形態様において、グラフを実質的に同様の場所で開始および終了するように制約することは、ホームロケータを考慮してグラフを開始および終了するように制約することをさらに含む。別の変形態様において、環境内を進行することは、ユーザの制御下でナビゲートすることを含む。
【００１１】
別の変形態様において、関連付けられた信頼度は、所与のノードが所与の場所内にあるという少なくとも部分的な確率を示す確率分布を使用することをさらに含む。
【００１２】
別の変形態様において、複数のノードのグループから少なくとも部分的に判定された拡張走査グループは、基準場所としてルートノードを選択することと、他のノードで取得された走査像内で、別個の特徴の測定値における重複の可能性を見出すことと、それらのそれぞれ他のノードにおいて、走査像の重複する別個の特徴に少なくとも部分的に基づいて、他のノードを拡張された走査像グループにグループ化することと、をさらに含む。
【００１３】
第２の態様において、ロボットが開示されている。例示的な一実装態様において、ロボットは、ノードで環境の走査像を取得するように構成されたセンサと、ここで各ノードは場所と関連付けられ、少なくとも部分的に取得された走査像に基づいて、ノードのグラフを作成し、複数のノードのグループに少なくとも部分的に基づいて、拡張走査グループを判定し、拡張走査グループに対して走査マッチングを実行するように構成された、マッピングおよび位置特定ユニットと、を含む。
【００１４】
一変形態様において、マッピングおよび位置特定ユニットは、実質的に同様の場所で開始および終了するようにグラフを制約するようにさらに構成される。別の変形において、マッピングおよび位置特定ユニットは、各ノードの場所と関連付けられた信頼度を判定するようにさらに構成される。
【００１５】
別の変形態様において、マッピングおよび位置特定ユニットは、各ノードの信頼度および場所に少なくとも部分的に基づいて、コスト関数を生成するようにさらに構成され、マッピングおよび位置特定ユニットは、グラフ内の各ノードの場所を、最小のコスト関数を解くことに基づいて判定する。
【００１６】
別の変形態様において、プロセッサは、グラフからマップをレンダリングするようにさらに構成され、マップは走査像の光線追跡に少なくとも部分的に基づいて、レンダリングされる。
【００１７】
別の変形態様において、ロボットは、場所間でロボットを移動させるように構成されたアクチュエータをさらに含む。別の変形態様において、ロボットは、ロボットのユーザ制御用に構成されたユーザインターフェースをさらに含む。
【００１８】
別の変形態様において、ロボットは、ロボットを自律的にナビゲートするように構成されたナビゲーションユニットをさらに含む。
【００１９】
第３の態様において、非一時的なコンピュータ読み取り可能な記憶装置が、開示される。一実施形態において、非一時的なコンピュータ可読記憶装置は、その中に記憶された複数の命令を有し、命令は、ロボットを操作するために処理装置によって実行可能である。命令は、処理装置によって実行されると、センサに複数のノードにおいて環境の走査像を生成させ、ここで複数の各ノードは、場所と関連付けられ、および生成された走査像に基づいて複数のノードのグラフを作成し、複数のノードのグループと関連付けられた走査像から少なくとも部分的に基づいて拡張走査グループを判定し、拡張走査グループ上で走査マッチングを実行するように構成される。
【００２０】
一変形態様において、命令は、処理装置に、グラフを実質的に同様の場所で開始および終了するように制約させる。
【００２１】
別の変形態様において、各拡張走査グループは、３つ以上の走査像を含む。
【００２２】
別の変形態様において、命令は、処理装置に、各ノードの場所の信頼度に少なくとも部分的に基づいて、コスト関数をさらに判定させる。
【００２３】
別の変形態様において、命令は、処理装置に、コスト関数を最小化することに少なくとも部分的に基づいて、マップをさらに生成させる。
【００２４】
本開示のこれら、および他の目的、特徴、および特性ならびに構造の関連要素の操作および機能の方法ならびに部品の組み合わせおよび製造の経済性は、それらの全てが本明細書の一部分を形成し、同様の参照番号は様々な図における対応する部分を示す、添付の図面を参照し、次の説明および添付の特許請求の範囲を考慮することにより、より明らかになるであろう。しかしながら、図面は、例示および説明の目的のみのためであり、本開示の限界の画定を意図するものではないことは、明白に理解されるべきである。本明細書および特許請求の範囲で使用されているように、「ａ」、「ａｎ」および「ｔｈｅ」の単数形は、文脈上他に明確に指示されない限り、複数の指示対象を含む。
【図面の簡単な説明】
【００２５】
開示された態様は、添付の図面と併せて以下で説明され、開示される態様を例示するために提供され、限定するために提供されるものではなく、同様の名称は同様の要素を示す。
【００２６】
【図１】本開示の原理による、ロボットの例示的な本体形態の様々な側面図を示す。
【図２】本開示のいくつかの実装態様による、オペレータが経路を明示した際のロボットの頭上図である。
【図３】いくつかの実装態様における例示的なロボットの機能ブロック図を示す。
【図４Ａ】本開示のいくつかの実装態様による、環境内を進行する際に、ロボットによって生成された上面図マップおよびルートである。
【図４Ｂ】本開示のいくつかの実装態様による、ロボットの周囲および進行ルートを正確には反映していないマップである。
【図５】本開示のいくつかの実装態様による、マップを作成するための例示的な方法のプロセスフロー図である。
【図６Ａ】本開示のいくつかの実装態様による、グラフ内のルートに沿って、ロボットの離散化された測定値を含む図の上面図である。
【図６Ｂ】本開示のいくつかの実装態様による、図６Ａに示されたルートの続きを含むグラフの図の上面図である。
【図６Ｃ】本開示のいくつかの実装態様による、図６Ｂからのグラフに対する制約を示す図であり、開始場所および終了場所は、同じおよび／または実質的に同じ場所にある。
【図７Ａ】本開示のいくつかの実装態様による、拡張走査グループを作成するための例示的な方法のプロセスフロー図である。
【図７Ｂ】本開示のいくつかの実装態様による、走査マッチング変換の概念図である。
【図８】本開示のいくつかの実装態様による、図６Ｃに示されたグラフ上の拡張走査グループの走査マッチングの例示的な結果を示す。
【図９】本開示のいくつかの実装態様による、図６Ａに示されたグラフからのノードへの／からのばねを示す。
【図１０】本開示のいくつかの実装態様による、走査像から構築されているマップのピクセルの図である。
【図１１】本開示のいくつかの実装態様による、マップを作成するための例示的な方法のプロセスフロー図である。
【図１２】本開示のいくつかの実装態様による、ロボットを操作するための例示的な方法のプロセスフロー図である。
【００２７】
本明細書に開示されているすべての図面は著作権により保護されている。（Ｃ）Ｃｏｐｙｒｉｇｈｔ  ２０１７  Ｂｒａｉｎ  Ｃｏｒｐｏｒａｔｉｏｎ。全著作権所有。
【発明を実施するための形態】
【００２８】
本明細書に開示された新規なシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でより完全に記載される。しかしながら、本開示は、多くの異なる形態で具現化することができ、本開示を通して提示される具体的な構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全であり、本開示の範囲を当業者に完全に伝えるように提供される。本明細書の教示に基づいて、当業者は、本開示の任意の他の態様とは独立して実装されるか、組み合わせられて実装されるかにかかわらず、本開示の範囲が、本明細書に開示された新規のシステム、装置、および方法の任意の態様を包含することを意図していることを理解するはずである。例えば、本明細書に記載の任意の数の態様を使用して、装置を実装することができ、または方法を実施することができる。その上、本開示の範囲は、本明細書に記載された開示の様々な態様に加えて、またはそれ以外の他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含するように意図されている。本明細書に開示される任意の態様は、特許請求項の１つ以上の要素によって実装態様され得ることを理解されたい。
【００２９】
特定の態様が本明細書に記載されているが、これらの態様の多くの変形および置換が本開示の範囲内に含まれる。好ましい態様のいくつかの利点および利益が述べられているが、本開示の範囲は、特定の利点、用途および／または目的に限定されることを意図しない。詳細な説明および図面は、限定ではなく本開示の単なる例示であり、開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００３０】
本開示は、ロボットマッピングのための改善されたシステムおよび方法を提供する。本明細書で使用されるように、ロボットは、複雑な一連の動作を自動的に成し遂げるように構成された機械的または仮想的エンティティを含むことができる。いくつかの場合において、ロボットは、コンピュータプログラムまたは電子回路によってガイドされる機械であってもよい。いくつかの場合において、ロボットは、ロボットがある場所から別の場所に移動できるナビゲーション用に構成された電子機械コンポーネントを含むことができる。そのようなナビゲートロボットは、自律型自動車、床清掃機、ローバー（ｒｏｖｅｒ）、ドローン、カートなどを含むことができる。
【００３１】
本明細書で言及されるように、床清掃機は、手動制御（例えば、駆動制御または遠隔制御）および／または自律（例えば、ユーザ制御をほとんどまたは全く用いない）床清掃機を含むことができる。例えば、床清掃機は、管理者、管理人、または他の人が操作する床洗浄機、および／または環境を自律的にナビゲートおよび／または清掃するロボット床洗浄機を含むことができる。同様に、床清掃機はまた、掃除機、スチーマ、バッファ、モップ、ポリッシャ、スイーパ、バニッシャなどを含み得る。
【００３２】
当業者は、本明細書で言及されるように、ロボットが多くの異なる外観／形態を有することができることを理解するであろう。図１は、本開示の原理による、ロボットの例示的な本体形態の様々な側面図を示す。これらは、様々な本体形態をさらに示すことを意味し、本明細書に記載のロボットを任意の特定の本体形態に制限しない非限定的な実施例である。例えば、本体形態１００は、ロボットがスタンド式店舗用掃除機である実施例を示す。本体形態１０２は、ロボットが人体に実質的に類似した外観を有する人型ロボットである実施例を示す。本体形態１０４は、ロボットがプロペラを有するドローンである実施例を示す。本体形態１０６は、ロボットが車輪および客室を有する車両形状を有する実施例を示す。本体形態１０８は、ロボットがローバーである実施例を示す。
【００３３】
本体形態１１０は、ロボットが電動床洗浄機である実施例であり得る。本体形態１１２は、シート、ペダル、およびステアリングホイールを有する電動床洗浄機であり得、ユーザは、本体形態１１２が掃除をする際に、車のように本体形態１１２を駆動することができるが、本体形態１１２はまた自律的に操作することもできる。フォークリフト、タグボート、ボート、飛行機などの、ロボット化することができる産業用機械を含む他の本体形態もさらに企図される。
【００３４】
本開示のシステムおよび方法の様々な実装態様および変形例の詳細な説明がここで提供される。本明細書で考察される多くの例は、ロボット床清掃機の文脈にあるが、本明細書に記載されているシステムおよび方法は、他のロボットでも使用できることが理解されよう。本明細書に記載された技術の無数の他の例示的な実装態様または使用は、本開示の内容が与えられれば、当業者によって容易に想定されるであろう。
【００３５】
有利なことに、本開示のシステムおよび方法は少なくとも、（ｉ）ロボットによる正確なルートおよび／または環境マッピングを提供し、（ｉｉ）ロボットをナビゲートする際の処理能力、エネルギ、および／または他のリソースの消費を減らすことができる計算効率を提供し、（ｉｉｉ）ロボットの構築により低コストのハードウェアの使用を可能にする。他の利点は、本開示の内容を与えられた当業者が容易に認識することができる。
【００３６】
例えば、自律的にナビゲートすることができる多くの現在のロボットは、目標へのルートおよび／または経路をナビゲートするようにプログラムされている。これらのルートおよび／または経路をナビゲートするために、これらのロボットはマップを作成することができ、これはロボットがそのセンサで、ある時点で直接観察することができるものを超えて、マップが、環境の１つ以上の部分を識別するという点でグローバルソリューションと時々称されることがある。これらのロボットは、ロボットの周囲の狭い領域（例えば、数メートル程度）における局所的な検出を使用して、マップならびにルートに沿った環境との関係を生成し、そこでロボットはそのセンサによって検出された障害物および／または他の特徴を判定することができる。自律的にナビゲートするとき、ロボットは、次いでグローバルソリューションと物体の局所的検出の両方を利用することによって衝突を回避し、および／またはその目的を達成することができる。
【００３７】
実例として、ロボット（例えば、床清掃機、自律走行車、または他のロボット）は、デモンストレーションによってプログラムすることができる。床清掃機の実施例において、オペレータは、所望の環境内の所望のルートに沿ってロボットを制御することができる。したがって、ロボットは、オペレータがそれを制御しながら、その場所（例えば、グローバルマップ上の箇所および／または環境の特徴に対する姿勢）を記録したマップを生成することができる。ロボットは、走行距離測定およびそのセンサ（例えば、光検出および測距（「ＬＩＤＡＲ」）センサおよび／または本開示に記載されている任意の他のセンサによる走査像）を使用してマップを生成することができる。その後、ロボットは、例えば、ほとんどまたは全くオペレータ制御なしで、ルートを自律的にナビゲートすることができる。
【００３８】
この図におけるロボットにとっての課題は、ロボットがデモンストレーション後にルートを自律的にナビゲートするために利用し得る、正確なマップを構築することである。デモンストレーションプロセスは、特定の姿勢および／または軌道、ならびに物体の識別と関連付けられた、複雑な移動および動作一式（例えば、方向転換、停止、駐車、方向指示器および他の信号のオン／オフ、ブラシの上げ下げ、水流のオン／オフ、掃除機のオン／オフなど）を含むことができる。デモンストレーションの間、ロボットのマッピングは、完全に正確ではない可能性があり（例えば、ドリフト、ノイズ、および／またはエラーを受けやすい）、ロボットは、環境の本当の状態を正確に反映するように、マップがどのように見えるべきかを判定する必要があり得る。
【００３９】
図２は、本開示のいくつかの実装態様による、オペレータが経路を明示した際のロボット２０２の頭上図である。このように、図２は、ロボット２０２がマッピングしながら、環境２００内を実際に進行する経路を示すことができる。ロボット２０２は、本開示に記載された任意のロボットとすることができる。実例として、ロボット２０２は、ロボット式床洗浄機、掃除機、スチーマ、バッファ、モップ、ポリッシャ、スイーパ、バニッシャ等のロボット式床清掃機とすることができる。環境２００は、ロボット２０２がナビゲートする空間であり得る。ロボット式床清掃機の実施例において、環境２００は、清掃が所望される床を有する空間とすることができる。例えば、環境２００は、店、倉庫、オフィスビル、家、貯蔵施設などであり得る。１つ以上の物体２０８、２１０、２１２、２１８は、棚、ディスプレイ、物体、品物、人、動物、または床上にあり得、または別様にロボット２０２が環境２００を通してナビゲートする能力を妨げる可能性がある任意の他の実体もしくは物であり得る。したがって、ルート２０６は、ロボット２０２によって進行された清掃経路となり得る。ルート２０６は、ルート２０６の実施例において示されるように、物体２０８、２１０、２１２、および２１８の間を通り抜ける経路をたどることができる。例えば、物体２０８、２１０、２１２、および２１８が店内の棚である場合、ロボット２０２は、店の通路に沿って進み、通路の床を清掃することができる。しかしながら、限定はしないが、（例えば、ユーザが手動で床清掃機を操作している場合）開放床領域および／またはユーザが床を清掃するために使用することができる任意の清掃経路に沿って前後に通り抜けること等の、他のルートもまた考えられる。したがって、ルート２０６は、単に例示的な実施例として意図されており、例示されているものとは異なって見える場合もある。また、示されるように、環境２００の一実施例が示されているが、環境２００は（例えば、任意のサイズ、構成、および／または部屋ならびに／もしくは建物のレイアウトの）任意の数の形態および配置を取り得、本開示の例示的な図によって限定されないことが理解されるべきである。
【００４０】
ルート２０６において、ロボット２０２は、初期場所２２２から始まることができ、これはロボット２０２の開始点／場所とすることができる。いくつかの場合において、ホームロケータ２２０は、初期場所２２２の近くに、実質的に近くに、および／または初期位置２２２に位置決めすることができる。例えば、ホームロケータ２２０は、初期場所２２２に隣接して位置決めすることができ、またはロボット２０２のセンサが初期場所２２２からホームロケータ２２０を検出することができるように、ロボット２０２の少なくとも１つのセンサの範囲内にし得る。次いで、オペレータは、ロボット２０２がロボット２０２の動作を停止することができる終了場所に到達するまで、ロボット２０２にルート２０６を明示することができる。終了場所は、ユーザによって指定することができ、および／またはロボット２０２によって判定され得る。いくつかの場合において、終了場所は、ロボット２０２が床の所望の領域を清掃した後のルート２０６内の場所とすることができる。前述のように、ルート２０６は，閉ループまたは開ループとすることができる。例示的な実施例として、終了場所は、一時的な駐車スポット、保管室／クローゼットなど等の、ロボット２０２のための保管用の場所であり得る。いくつかの場合において、終了場所は、ユーザがロボット２０２に対して訓練および／またはプログラミング作業を行う点であり得る。いくつかの場合において、終了場所は、初期場所２２２と同じおよび／または実質的に同様であり得る。例えば、ロボット２０２は、ホームロケータ２２０を検出することによって、初期場所２２２と同じおよび／または実質的に同様の位置への復帰を検出することができる。
【００４１】
床清掃機（例えば、床洗浄機、掃除機など）の文脈において、ロボット２０２は、ルート２０６に沿ったあらゆる点で清掃してもしなくてもよい。実例として、ロボット２０２がロボット式床洗浄機である場合、ロボット２０２の清掃システム（例えば、水流、清掃ブラシなど）は、ルート２０６のある部分においてのみ動作し、他の部分では動作し得ないことがある。例えば、ロボット２０２は、特定の動作（例えば、回転、水のオン／オフ、水の噴霧、掃除機のオン／オフ、バキュームホース位置の移動、アームの動き、リフトの上げ／下げ、センサの移動、センサのオン／オフなど）を、明示されたルートに沿って、特定の位置および／または軌道（例えば、ルート２０６に沿って特定の方向または特定の順序で移動しながら）と関連付けることができる。床清掃機の文脈において、そのような関連付けは、フロアのいくつかの領域のみが清掃されるが、他および／またはいくつかの軌道内は清掃されないとき、望ましい場合がある。このような場合、ロボット２０２は、ユーザがロボット２０２に対して清掃をするように明示した領域で清掃システムをオンにし、そうでなければ清掃システムをオフにすることができる。
【００４２】
図３は、いくつかの実装態様における例示的なロボット２０２の機能ブロック図を示す。示されるように、ロボット２０２は、コントローラ２５４、メモリ２５２、電源２５６、および操作ユニット２５０を含み、これらの各々は、相互に、かつ相互のコンポーネントならびに／もしくはサブコンポーネントに、動作可能および／または通信可能に結合され得る。コントローラ２５４は、ロボット２０２によって実行される様々な動作を制御する。特定の実装態様が図３に示されるが、本開示の内容が与えられれば当業者には容易に明らかであるように、アーキテクチャは特定の実装態様において変更され得る。
【００４３】
コントローラ２５４は、１つ以上のプロセッサ（例えば、マイクロプロセッサ）および他の周辺機器を含むことができる。本明細書で使用される場合、プロセッサ、マイクロプロセッサ、およびデジタルプロセッサという用語は、デジタル信号プロセッサ（「ＤＳＰ」）、縮小命令セットコンピュータ（「ＲＩＳＣ」）、汎用（「ＣＩＳＣ」）プロセッサ、マイクロプロセッサ、ゲートアレイ（例えば、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」））、プログラマブルロジックデバイス（「ＰＬＤ」）、再構成可能コンピュータファブリック（「ＲＣＦ」）、アレイプロセッサ、セキュアマイクロプロセッサ、および特定用途向け集積回路（ＡＳＩＣ）などのこれらに限定されない任意の種類のデジタル処理装置を含み得る。そのようなデジタルプロセッサは、単一の集積回路ダイに含まれてもよく、複数のコンポーネントにわたって分散されてもよい。
【００４４】
コントローラ２５４は、メモリ２５２に動作可能および／または通信可能に結合されてもよい。メモリ２５２は、読み取り専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、不揮発性ランダムアクセスメモリ（「ＮＶＲＡＭ」）、プログラマブル読み取り専用メモリ（「ＰＲＯＭ」）、電気的消去可能プログラマブル読み取り専用メモリ（「ＥＥＰＲＯＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、モバイルＤＲＡＭ、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）、ダブルデータレートＳＤＲＡＭ（「ＤＤＲ／２ＳＤＲＡＭ」）、拡張データ出力ＲＡＭ（「ＥＤＯ」）、高速ページモード（「ＦＰＭ」）ＲＡＭ、低遅延ＤＲＡＭ（「ＲＬＤＲＡＭ」）、スタティックＲＡＭ（「ＳＲＡＭ」）、フラッシュメモリ（例えば、ＮＡＮＤ／ＮＯＲ）、メモリスタメモリ、擬似スタティックＲＡＭ（「ＰＳＲＡＭ」）などを含むが、これらに限定されない、デジタルデータを格納するのに適合した任意の種類の集積回路または他の記憶デバイスを含み得る。メモリ２５２は、コントローラ２５４に命令およびデータを提供することができる。例えば、メモリ２５２は、ロボット２０２を操作させるために処理装置（例えば、コントローラ２５４）によって実行可能な、複数の命令が格納された非一時的なコンピュータ可読記憶媒体であってもよい。いくつかの場合において、命令は、処理装置によって実行されたときに、処理装置に本開示に記載の様々な方法、特徴、および／または機能を行わせるように構成することができる。したがって、コントローラ２５４は、メモリ２５２内に格納されたプログラム命令に基づいて論理演算および算術演算を行うことができる。
【００４５】
操作ユニット２５０は、本開示に記載されている様々な動作を実行するために、コントローラ２５４、または他の任意のコントローラに結合することができる。いくつかの実装態様において、操作ユニット２５０内の１つ以上のモジュールを含めることができ、またはモジュールが含まれることはない場合もある。この開示を通して、様々なコントローラおよび／またはプロセッサが参照されることがある。いくつかの実装態様において、単一のコントローラ（例えば、コントローラ２５４）が、記載された様々なコントローラおよび／またはプロセッサとして機能することができる。別の実装態様において、特に１つ以上の操作ユニット２５０に対して使用される、ならびに／もしくはその一部として使用されるコントローラおよび／またはプロセッサ等の、異なるコントローラおよび／またはプロセッサが、使用される場合もある。コントローラ２５４は、電力信号、制御信号、センサ信号、疑問信号、ステータス信号、データ信号、電気信号、および／または操作ユニット２５０への離散信号ならびにアナログ信号を含む、任意の他の望ましい信号等の信号を、送信および／または受信することができる。コントローラ２５４は、操作ユニット２５０を調整および／または管理し、および／またはタイミングを（例えば、同期的もしくは非同期的に）設定し、電源をオン／オフし、パワーバジェットを制御し、ネットワーク命令および／または更新を受信／送信し、ファームウェアを更新し、疑問信号を送信し、ステータスを受信および／または送信し、ならびに／もしくはロボット２０２の特徴を実行するための任意の操作を実行することができる。
【００４６】
操作ユニット２５０は、ロボット２０２の機能を実行する様々なユニットを含むことができる。例えば、操作ユニット２５０のユニットは、マッピングおよび位置特定ユニット２６２、センサユニット２６４、アクチュエータユニット２６８、通信ユニット２６６、ナビゲーションユニット２７６、ならびにユーザインターフェースユニット２７２を含み得る。操作ユニット２５０はまた、ロボット２０２の様々な機能を提供する他のユニットを含むことができる。いくつかの場合において、操作ユニット２５０のユニットは、ソフトウェアまたはハードウェア、および／もしくはソフトウェアとハードウェアの両方でインスタンス化することができる。例えば、いくつかの場合において、操作ユニット２５０のユニットは、コントローラによって実行されるコンピュータ実装命令を含むことができる。いくつかの場合において、操作ユニット２５０のユニットは、ハードコードされたロジックを含むことができる。いくつかの場合において、操作ユニット２５０のユニットは、コントローラによって実行されるコンピュータ実装命令とハードコードされたロジックの両方を含むことができる。操作ユニット２５０が少なくとも部分的にソフトウェア内で実装される場合、操作ユニット２５０は、１つ以上の機能を提供するように構成されたコードのユニット／モジュールを含むことができる。
【００４７】
いくつかの実装態様において、センサユニット２６４は、ロボット２０２の内部および／または周囲の特性を検出することができるシステムを備えることができる。センサユニット２６４は、ロボット２０２の内部または外部にあり、および／または部分的に内部ならびに／もしくは部分的に外部のコンポーネントを有するセンサを含むことができる。センサユニット３１４は、ソナー、ＬＩＤＡＲ、レーダ、レーザ、ビデオカメラ、赤外線カメラ、３Ｄセンサ、３Ｄカメラ、および／または当技術分野で既知の他の任意のセンサ等の外付けセンサを含むことができる。センサユニット２６４はまた、加速度計、慣性測定ユニット、走行距離計、ジャイロスコープ、速度計など等の、固有受容性のセンサを含むことができる。いくつかの実装態様において、センサユニット２６４は、生の測定値（例えば、電流、電圧、抵抗ゲートロジックなど）および／または変換された測定値（例えば、距離、角度、障害物内の検出点など）を収集することができる。
【００４８】
いくつかの実装態様において、マッピングおよび位置特定ユニット２６２は、環境のマップ（例えば、図４Ａおよび図４Ｂを参照して説明されるようなマップ３００および４００、ならびに／またはロボット２０２によって作成される任意の他のマップ）、および／またはロボット２０２が環境をナビゲートする際のルートを計算的に構築および更新することができるシステムおよび方法を含み得る。例示的な実施例として、マッピングおよび位置特定ユニット２６２は、環境２００をマッピングし、ある時点の１つ以上の点でマップ３００内のロボット２０２を位置特定する（例えば、位置および／または姿勢を見出す）ことができる。同時に、マッピングおよび位置特定ユニット２６２は、明示されたルートをマップ３００内に記録することができる（例えば、マッピングされたルート３０６）。
【００４９】
マッピングおよび位置特定ユニット２６２はまた、センサユニット２６４からセンサデータを受信して、ロボット２０２をマップ内に位置特定することができる。いくつかの実装態様において、マッピングおよび位置特定ユニット２６２は、ロボット２０２がそれ自体をマップの座標内に位置特定することを可能にする位置特定システムおよび方法を含むことができる。本開示においてさらに説明されるように、マッピングおよび位置特定ユニット２６２はまた、グラフおよび／またはマップを生成することによって等、ロボット２０２によって取得された測定値を処理することができる。
【００５０】
いくつかの実装態様において、通信ユニット２６６は、１つ以上の受信機、送信機、および／またはトランシーバを含むことができる。通信ユニット２６６は、ブルートゥース（ＢＬＵＥＴＯＯＴＨ（登録商標））、ジグビー（ＺＩＧＢＥＥ（登録商標））、ワイファイ（Ｗｉ−Ｆｉ）、誘導無線データ伝送、無線周波数、無線伝送、無線周波数識別（「ＲＦＩＤ」）、近距離通信（「ＮＦＣ」）、赤外線、ネットワークインターフェース、３Ｇ（３ＧＰＰ／３ＧＰＰ２）等のセルラ技術、高速ダウンリンクパケットアクセス（「ＨＳＤＰＡ」）、高速アップリンクパケットアクセス（「ＨＳＵＰＡ」）、時分割多重アクセス（「ＴＤＭＡ」）、符号分割多元アクセス（「ＣＤＭＡ」）（例えば、ＩＳ−９５Ａ、広帯域符号分割多元アクセス（「ＷＣＤＭＡ」）など）、周波数ホッピングスペクトラム拡散（「ＦＨＳＳ」）、直接シーケンス拡散スペクトラム「ＤＳＳＳ」）、モバイル通信のためのグローバルシステム（「ＧＳＭ」）、パーソナルエリアネットワーク（「ＰＡＮ」）（例えば、ＰＡＮ／８０２．１５）、マイクロ波アクセスの世界的な相互運用性（「ＷｉＭＡＸ」）、８０２．２０、ロングタームエボリューション（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ、「ＬＴＥ」）（例えば、ＬＴＥ／ＬＴＥ−Ａ）、時分割ＬＴＥ（「ＴＤ−ＬＴＥ」）、モバイル通信のためのグローバルシステム（「ＧＳＭ」）、ナローバンド／周波数分割多元性アクセス（「ＦＤＭＡ」）、直交周波数分割多重（「ＯＦＤＭ」）、アナログセルラ、セルラデジタルパケットデータ（「ＣＤＰＤ」）、衛星システム、ミリ波またはマイクロ波システム、音響、赤外線（例えば、赤外線データ結合（「ＩｒＤＡ」））、および／またはワイヤレスデータ伝送の任意の他の形式等の、伝送プロトコルを送信／受信するように構成され得る。
【００５１】
本明細書において使用される際、ネットワークインターフェースは、限定するわけではないが、ファイヤワイヤ（ＦｉｒｅＷｉｒｅ）（例えば、ＦＷ４００、ＦＷ８００、ＦＷＳ８００Ｔ、ＦＷＳ１６００、ＦＷＳ３２００など）、ユニバーサルシリアルバス（「ＵＳＢ」）（例えば、ＵＳＢ１．Ｘ、ＵＳＢ２．０、ＵＳＢ３．０、ＵＳＢ  Ｔｙｐｅ−Ｃなど）、イーサネット（例えば、１０／１００、１０／１００／１０００（ギガビットイーサネット）、１０−Ｇｉｇ−Ｅなど）、同軸ケーブルマルチメディア協会（「ＭｏＣＡ」）、コアックスシーズ（Ｃｏａｘｓｙｓ）（例えば、ＴＶＮＥＴ（商標））、無線周波数チューナー（例えば、インバンド（ｉｎ−ｂａｎｄ）またはＯＯＢ、ケーブルモデムなど）、ワイファイ（Ｗｉ−Ｆｉ）（８０２．１１）、ワイマックス（ＷｉＭＡＸ）（例えば、ＷｉＭＡＸ（８０２．１６））、パン（ＰＡＮ）（例えば、ＰＡＮ／８０２．１５）、セルラ（例えば、３Ｇ、ＬＴＥ／ＬＴＥ−Ａ／ＴＤ−ＬＴＥ／ＴＤ−ＬＴＥ、ＧＳＭなど）、ＩｒＤＡファミリなどを含む、コンポーネント、ネットワーク、またはプロセスとの任意の信号、データ、もしくはソフトウェアインターフェースを含むことができる。本明細書において使用される際、ワイファイ（Ｗｉ−Ｆｉ）は、１つ以上のＩＥＥＥ−Ｓｔｄ．８０２．１１、ＩＥＥＥ−Ｓｔｄ．８０２．１１の変形、ＩＥＥＥ−Ｓｔｄ．８０２．１１に関連する規格（例えば、８０２．１１ａ／ｂ／ｇ／ｎ／ａｃ／ａｄ／ａｆ／ａｉ／ａｊ／ａｑ／ａｘ／ａｙ）、および／または他の無線規格を含むことができる。
【００５２】
通信ユニット２６６はまた、信号線および接地を有する任意のケーブル等の有線接続を介して伝送プロトコルを送信／受信するように構成することもできる。例えば、このようなケーブルは、イーサネットケーブル、同軸ケーブル、汎用シリアルバス（「ＵＳＢ」）、ファイヤワイヤ、および／または当該技術分野で既知の任意の接続を含むことができる。このようなプロトコルは、コンピュータ、スマートフォン、タブレット、データキャプチャシステム、移動通信ネットワーク、クラウド、サーバなどの外部システムと通信するために通信ユニット２６６によって使用することができる。通信ユニット２６６は、数字、文字、英数字、および／または記号を含む信号を送受信するように構成することができる。いくつかの場合において、１２８ビットまたは２５６ビットキー等のアルゴリズム、および／または高度暗号化規格（「ＡＥＳ」）、ＲＳＡ、データ暗号化規格（「ＤＥＳ」、トリプルＤＥＳなど等の規格に準拠する他の暗号化アルゴリズムを使用して、信号を暗号化することができる。通信ユニット２６６は、ステータス、コマンド、および他のデータ／情報を送受信するように構成することができる。例えば、通信ユニット２６６は、ユーザがロボット２０２を制御することを可能にするために、ユーザコントローラと通信することができる。通信ユニット２６６は、ロボット２０２がデータ、ステータス、コマンド、および他の通信をサーバに送信することを可能にするために、サーバ／ネットワークと通信することができる。サーバはまた、ロボット２０２を遠隔で監視および／または制御するために使用することができる、コンピュータ（複数可）および／またはデバイス（複数可）に通信可能に結合することができる。通信ユニット２６６はまた、ロボット２０２用のサーバおよび／またはその操作ユニット２５０から、更新（例えば、ファームウェアまたはデータの更新）、データ、ステータス、コマンド、および他の通信を受信することができる。
【００５３】
いくつかの実装態様において、１つ以上の操作ユニット２５０は、ロボット２０２から遠隔でインスタンス化され得る。例えば、マッピングおよび位置特定ユニット２６２は、クラウド内に位置付けられてもよく、および／または通信ユニット２６６を通じてロボット２０２に接続されてもよい。接続は、直接の場合があり、および／またはサーバならびに／もしくはネットワークを介する場合もある。したがって、本開示の機能の実装態様はまた、通信ユニット２６６を使用してデータを転送することができ、プロセスの１つ以上の部分が遠隔で完了され得る、遠隔対話を含むと理解されるべきである。
【００５４】
いくつかの実装態様において、アクチュエータユニット２６８は、電気モータ、ガスモータ、駆動磁石システム、ソレノイド／ラチェットシステム、圧電システム（例えば、インチワームモータ）、磁歪要素、ジェスチャリング、および／または当該技術分野で既知の任意のアクチュエータ駆動方法等のアクチュエータを含むことができる。実例として、このようなアクチュエータは、車輪または他の変位可能ドライバ（例えば、機械的脚部、ジェットエンジン、プロペラ、油圧など）を作動させることができる。例えば、アクチュエータユニット２６８は、ロボット２０２が環境２００および／または他の任意の環境を通って、移動ならびに／もしくはナビゲートすることを可能にすることができる。いくつかの場合において、アクチュエータユニット２６８は、床清掃のためのブラシの動員、スキージの移動（例えば、上、下、左、右、前、後への移動）、水のオン／オフ、水の噴霧、掃除機のオン／オフ、バキュームホース位置の移動、アームの動き、リフトの上げ／下げ、カメラならびに／もしくはセンサユニット２６４のいずれのセンサの回転、および／またはロボット２０２が動作を実行するために所望されたいずれの移動等の、動作および／または動作特有の作業のために構成されたアクチュエータを含むことができる。
【００５５】
いくつかの実装態様において、ユーザインターフェースユニット２７２は、ユーザ（例えば、ユーザ６０４またはいずれの他のユーザ）がロボット２０２と対話することを可能にするように構成することができる。例えば、ユーザインターフェースユニット２７２は、タッチパネル、ボタン、キーパッド／キーボード、ポート（例えば、ユーエスビー（ＵＳＢ）、デジタルビジュアルインターフェース（「ＤＶＩ」）、ディスプレイポート、イーサーター（Ｅ−Ｓａｔａ）、ファイヤワイヤ（Ｆｉｒｅｗｉｒｅ）、ピーエス２（ＰＳ／２）、シリアル（Ｓｅｒｉａｌ）、ビデオグラフィックスアレイ（「ＶＧＡ」）、スモールコンピュータシステムインターフェース（「ＳＣＳＩ」）、オーディオポート、高品位マルチメディアインターフェース（「ＨＤＭＩ」）、パーソナルコンピュータメモリカード国際協会（「ＰＣＭＣＩＡ」）ポート、メモリカードポート（例えば、ＳＤおよびミニＳＤ）、および／またはコンピュータ可読媒体用のポート）、マウス、ローラーボール、コンソール、バイブレータ、オーディオトランスデューサ、および／または、ワイヤレスで、またはワイヤを通じて結合されていようとなかろうと、ユーザがデータならびに／もしくはコマンドを入力および／または受信するための任意のインターフェース（限定するわけではないが、通信ユニット２６６を参照する等、本開示において説明されたいずれの無線または有線通信を含む）を含むことができる。ユーザインターフェースユニット２７２は、限定するわけではないが、液晶ディスプレイ（「ＬＣＤ」）、発光ダイオード（「ＬＥＤ」）ディスプレイ、ＬＥＤ  ＬＣＤディスプレイ、面内スイッチング（「ＩＰＳ」）、陰極線管、プラズマディスプレイ、高精細（「ＨＤ」）パネル、４Ｋディスプレイ、網膜ディスプレイ、有機ＬＥＤディスプレイ、タッチスクリーン、表面、キャンバス、および／または任意のディスプレイ、テレビ、モニタ、パネルならびに／もしくは視覚的表現のための当該技術分野で既知のデバイス等のディスプレイを含むことができる。いくつかの実装態様において、ユーザインターフェースユニット２７２は、ロボット２０２の本体上に位置決めすることができる。いくつかの実装態様において、ユーザインターフェースユニット２７２は、ロボット２０２の本体から離れて位置決めすることができるが、ロボット２０２に（例えば、通信ユニット２６６を介して）直接、または（例えば、ネットワークまたはクラウドを通じて）間接的に通信可能に結合することができる。
【００５６】
いくつかの実装態様において、ナビゲーションユニット２７６は、ロボット２０２がナビゲートするための方向命令を提供するように構成された、コンポーネントおよび／またはソフトウェアを含むことができる。ナビゲーションユニット２７６は、マッピングおよび位置特定ユニット２６２によって生成されたマップおよび位置特定情報、センサユニット２６４からのセンサデータ、および／または他の操作ユニット２５０を処理することができる。例えば、ナビゲーションユニット２７６は、マッピングおよび位置特定ユニット２６２からマップ３００を受信することができる。ナビゲーションユニット２７６はまた、ルート３０６を含む、マップ３００内のロボット２０２の場所の少なくとも一部を示すことができる、マッピングおよび位置特定ユニット２６２から位置特定情報を受信することができる。ナビゲーションユニット２７６はまた、ロボット２０２の周囲の物体を少なくとも部分的に示すことができるセンサユニット２６４からセンサデータを受信することもできる。マップ、場所、およびセンサデータのうちの１つ以上を使用して、ナビゲーションユニット２７６は、ロボット２０２に、どこにナビゲートするか（例えば、前進、左、右、後、および／または任意の他の方向）を命令することができる。
【００５７】
ナビゲーションユニット２７６はまた、床清掃のためのブラシの動員、スキージの移動（例えば、上、下、左、右、前、後ろへの移動）、水のオン／オフ、水の噴霧、掃除機のオン／オフ、バキュームホース位置の移動、アームの動き、リフトの上げ／下げ、カメラおよび／またはセンサユニット２６４の任意のセンサの回転、ならびに／もしくはロボット２０２によって取得されたいずれの動作等の、動作および／または動作特有の作業を実装することができる。いくつかの場合において、そのような動作および／または動作特有の作業は、マップ内に示され、アクチュエータユニット２６８によって実行することができる。
【００５８】
いくつかの実装態様において、電源２５６は、限定するわけではないが、リチウム、リチウムイオン、ニッケル−カドミウム、ニッケル−金属水素、ニッケル−水素、炭素−亜鉛、酸化銀、亜鉛−炭素、亜鉛−空気、酸化水銀、アルカリ、または当技術分野で既知の他の任意の種類の電池を含む、１つ以上の電池を含み得る。特定の電池は、無線で（例えば、共振回路ならびに／もしくは共振タンク回路によって）、および／または外部電源に差し込むことによって充電可能とすることができる。電源２５６はまた、太陽光線、風、水、原子力、水素、ガソリン、天然ガス、化石燃料、機械的エネルギ、蒸気、および／または任意の電源を電気に変換する、壁コンセントならびに電子デバイスを含む、任意のエネルギ供給源であり得る。
【００５９】
いくつかの実装態様において、操作システム２７０は、メモリ２５２、コントローラ２５４、電源２５６、操作ユニット２５０内のモジュール、および／またはロボット２０２の任意のソフトウェア、ハードウェア、ならびに／もしくは特徴を管理するように構成することができる。例えば、および限定するわけではなく、操作システム２７０は、ロボット２０２のためのハードウェアリソースを管理するためのデバイスドライバを含むことができる。
【００６０】
前述のように、ロボット２０２の前述のコンポーネントのいずれも、ソフトウェアおよび／またはハードウェア内でインスタンス化することができる。例えば、ユニット／モジュールは、コンピュータ上で実行される１つのハードウェアおよび／または１つのコードであり得る。
【００６１】
図４Ａは、本開示のいくつかの実装態様による、環境２００内を進行する際に、ロボット２０２によって生成された上面図マップ３００およびルート３０６である。いくつかの実装態様において、マップ３００の生成は、マッピングおよび位置特定ユニット２６２によって実行することができる。マップ３００は、ピクセルを含み得、各ピクセルは、環境２００のマップされた領域に対応する。マップ３００内のピクセル数は、マップ３００の解像度に基づいて、判定することができる。マップ３００は、環境２００とレイアウトにおいて実質的に同様となり得、マップ３００内の各ピクセルは、環境２００内の場所に近づけることができる。ロボット２０２は、ロボットインジケータ３０２としてマップ３００上に現れることができる。各ピクセルは、領域を表現することができ、その領域は均一でも不均一でもよい。例えば、ピクセルは、１つの面積単位、ｎ×ｍまたはｎ×ｎ面積単位、もしくは不均一な面積単位を表現することができる。
【００６２】
マッピングは、センサユニット２６４によって少なくとも部分的に取得されたデータを、環境２００を少なくとも部分的に表現する二次元（「２Ｄ」）、三次元（「３Ｄ」）、および／または四次元（「４Ｄ」）マップに与えることによって実行することができる。例えば、マップ３００は、ロボット２０２によって検出された障害物および／または物体を少なくとも部分的に表現する描写を含むことができる。マップ３００はまた、ユーザ制御下にある間に、ロボット２０２が学習したルート等の、デモンストレーションされたルートを記録することができる。例えば、マッピングされたルート３２２は、初期化場所２２２等の参照に対する、ロボット２０２の相対位置、配向、および／または姿勢（例えば、場所、変位、および配向のうちの１つ以上を含む）に少なくとも部分的に基づいて、座標（例えば、２Ｄマップにおけるｘおよびｙ、３Ｄマップにおけるｘ、ｙ、およびｚ）を含むことができる。例えば、姿勢は、（ｘ、ｙ、シータ）座標を有することができる。本明細書で使用される際、位置という用語は、その通常の慣習的意味を有する。例えば、いくつかの場合において、位置は、物体、ロボット２０２などの変位、座標などに関する場所を含むことができる。いくつかの場合において、位置はまた、物体、ロボット２０２などの配向を含むことができる。したがって、いくつかの場合において、位置および姿勢という用語は、場所、変位、および配向のうちの１つ以上を含むように交換可能に使用され得る。デモンストレーションプロセスを通して作成されたマップ３００は、ロボット２０２が１つ以上のデモンストレーション／トレーニングにおいて感知した、環境の一部および／または実質的に全体の環境を記録することができる。このため、マップ３００をグローバルマップと呼ぶ人もいる。いくつかの場合において、マップ３００は、デモンストレーション／トレーニングの後に、マップ３００が実質的に更新されないことがあるという点で静的であり得る。いくつかの実装態様において、マップ３００およびマッピングされたルート３０６はまた、別々に（例えば、コンピュータを使用しているユーザによって）生成され得、かつロボット２０２上にアップロードされる場合もある。
【００６３】
いくつかの実装態様において、マップ３００のピクセル（および／または３Ｄにおけるボクセル）は、１つ以上の状態を有することができ、ピクセル状態は、そのピクセルによって表現された環境２００内の位置／場所の特性を少なくとも部分的に示す。例えば、マップ３００のピクセルは、バイナリであり得、第１のピクセル状態（例えば、ピクセル値）が、少なくとも部分的にはっきりした（例えば、ナビゲート可能な）場所を示し、第２のピクセル状態が、少なくとも部分的にブロックされた（例えばナビゲートできない）場所を示す。実例として、ゼロ（０）のピクセル値は、少なくとも部分的にはっきりした場所を示すことができ、一（１）のピクセル値は、少なくとも部分的にブロックされた場所を示すことができる。
【００６４】
いくつかの実装態様において、前述のバイナリ状態の代わりに、またはそれに加えて、マップ３００のピクセルは、少なくとも部分的に未知の場所（例えば、情報の無い位置／場所）を示すピクセル状態、少なくとも部分的に進行すべきではない位置／場所を示すピクセル状態、少なくとも部分的にナビゲーション可能なルートの一部であることを示すピクセル状態、少なくとも部分的にロボット２０２が進行している領域を示すピクセル状態、少なくとも部分的にロボット２０２が進行していない領域を示すピクセル状態、少なくとも部分的に物体を示すピクセル状態、少なくとも部分的に静止水を示すピクセル状態、および／またはマップ３００上の位置／場所のいずれの他の分類、のうちの１つ以上等の他のピクセル状態を有することができる。いくつかの実装態様において、ピクセル状態、および／またはピクセルと関連付けられたデータは、床清掃のためのブラシの動員、スキージの移動（例えば、上、下、左、右、前、後ろへの移動）、水のオン／オフ、水の噴霧、掃除機のオン／オフ、バキュームホース位置の移動、アームの動き、リフトの上げ／下げ、カメラおよび／またはセンサユニット２６４の任意のセンサの回転、ならびに／もしくはロボット２０２によるいずれの他の動作等の、少なくとも部分的な動作および／または動作特有の作業を示すことができる。
【００６５】
マップ３００のピクセルはまた、単一の値またはピクセル状態よりも多くを記憶することができる。例えば、マップ３００の各ピクセルは、ベクトルおよび／またはマトリクス内に記憶された値等の複数の値を記憶することができる。これらの値は、位置がルート３０６に沿った点（例えば、ピクセル）において測定されたときの、ロボット２０２の少なくとも部分的な位置／姿勢（例えば、場所および／または配向を含む）を示す値を含むことができる。これらの値はまた、ロボット２０２が、位置／場所を清掃すべきかまたは清掃するべきではないか、および／またはロボット２０２によって取得されるべき他の動作／動作特有の作業を含むことができる。
【００６６】
ロボット２０２は、ルート３０６としてマップ３００内に反映することができるルート（例えば、図２に描かれた２０６）に沿って進行することができる。ロボット２０２がルートに沿って進行する各場所において、ロボット２０２は、いくつかの場合において、初期化場所（例えば、初期化場所２２２）、ホームロケータ（例えば、ホームロケータ２２０）、および／または別の参照点に対して、その位置および／または配向を判定することができる。これらのマッピングおよび位置特定機能は、マッピングおよび位置特定ユニット２６２によって実行することができる。初期化場所は、マップ３００上でマップ位置３２２として表現することができる。いくつかの場合において、マッピングされた位置３２２は、ホームロケータ（いくつかの実装態様において、マップ３００上のピンポイントでもあり得る、および／またはその中に別様に表現され得る）に対して判定することができる。
【００６７】
例えば、ロボット２０２は、初期化場所２０２から開始してからのロボット２０２の動きを追跡するために、センサユニット２６４の固有受容センサ（例えば、ホイールエンコーダ（例えば、回転エンコーダ）、視覚的な走行距離測定、慣性測定ユニット（「ＩＭＵ」）、（加速度計、磁力計、角速度センサを含む）など）を使用する、走行距離測定を使用して初期化場所２０４（または別の参照点）からの距離を測定または概算することができる。例示的な実施例として、１つ以上の固有受容センサは、ロボット２０２の車輪の回転に基づいて、距離を測定および／または推定する車輪エンコーダとすることができる。別の例示的な実施例として、視覚走行距離計が、カメラによって取得された連続的な画像を通してロボット２０２の進行距離および／または配向を測定もしくは推定するために使用され得る。視覚走行距離計は、（例えば、Ｌｕｃａｓ-Ｋａｎａｄｅ方法または他の方法を使用して）オプティカルフロー場を構築し、および／またはＫａｌｍａｎフィルタまたは投影を使用することなどによって等、カメラの動きを推定することができる。別の非限定的な実施例として、ＩＭＵは、ロボット２０２の位置および／または配向を測定および／または推定するために使用することができる。
【００６８】
ロボット２０２は、ロボット２０２が環境２００を通じてナビゲートするのと実質的に同様の方法で、（例えば図６Ａおよび他の場所に見られるように）ロボットインジケータ３０２がマップ３００に沿って進むにつれて、マップ３００内でルート３０６を記録することができる。有利なことに、いくつかの実装態様において、マップ３００およびルート３０６は、共に作成することができ、ロボット２０２は、環境２００をマッピングし、ルート３０６を実質的に同じ時間で記録する。したがって、いくつかの実装態様において、マップ３００およびルート３０６は、共に対にすることができ、各記録されたルートは、特定のマップの状態でのみ記憶される。
【００６９】
ルート３０６の一部である各場所は、マップ３００内のルート３０６上のピクセルに対応することができ、ルート３０６のピクセル状態は、ピクセルがナビゲート可能なルートの一部であることを示す。ロボット２０２が進行する際、ロボット２０２はまた、１つ以上のセンサユニット２６４を使用して、物体に対するロボット２０２の位置および／または配向を測定することができる。これらの測定は、ノードとして表現される、離散時間および／または場所で行うことができる。ロボット２０２はまた、その環境を検出するために１つ以上のセンサユニット２６４を使用して走査像を取得することができる。このようにして、ロボット２０２は、棚または壁等の、物体に対するロボット２０２の位置ならびに／もしくは配向を、検出および／または測定することができる。
【００７０】
ロボット２０２が物体を検出する場合において、ロボット２０２は、ロボット２０２に対する複数の方向において、これらの物体の位置ならびに／もしくは配向を検出および／または測定するために、センサユニット２６４を使用することができる。同時に、ロボット２０２は、ロボット２０２の位置および／または配向を推定するために、センサユニット２６４を使用することができる。ロボット２０２が環境内を移動するにつれて、異なる物体が、センサユニット２６４のセンサの範囲内に入る可能性がある。例えば、センサは、ロボット２０２の前面内に位置決めすることができ、所定の範囲を有することができる。例えば、ロボット２０２は、前面から所定の範囲までの物体を検出することができる。同様に、他のセンサは、各々範囲を有し、それらの範囲内の物体を検出することができる。これらのセンサは、前面、後面、左側面、右面、側面、底面、上面、および／または前述の任意の組み合わせに位置決めすることができる。
【００７１】
いくつかの場合において、センサユニット２６４は、特定の領域を感知しないことがある。例えば、物体は、ある領域を感知するためのロボット２０２の有用性を妨げることがあり、またはその領域が死角（例えば、センサの測定範囲によって覆われていない場所）内に現れることがある。
【００７２】
マップ３００内にマッピングされた環境は、環境２００として図２に示されたものよりも大きい設定である。ルート３０６は、水平に示された、通路間の経路を通じてトラバースすることを含む、通路のトラバースおよび他の移動を含む。マップ３００に示されるように、ロボット２０２は、各通路上を複数回駆動して、通路をトラバースしながら床を清掃することができる。
【００７３】
いくつかの場合において、図４Ａは、本開示のいくつかの実装態様による、完成上面図マップ３００であり得る。ロボット２０２は、マッピングされた位置３２２で始まり、かつ終了することができる。図４Ａの完成したマップ３００は、完成した正確なマップを示す。しかしながら、センサユニット２６４によって収集されたデータを単にマップ上にプロットすることによって、グラウンドトゥルースと実質的に同様のマップを作成することは簡単ではない。センサユニット２６４のセンサは、ノイズ、測定ドリフトなどを有する。その結果、センサユニット２６４のセンサは、環境内の特徴を必ずしも明確に識別するわけではない。センサユニット２６４のセンサはまた、ロボット２０２の位置および／または姿勢を必ずしも明確に識別するわけではない。
【００７４】
センサユニット２６４による識別は明確ではないかもしれないので、ロボット２０２は、その位置および／または環境２００の特徴の位置を確率的に判定することができる。マッピング中にロボット２０２が環境２００を通って移動する際、ロボット２０２は、内部ロボットコマンド（例えば、前進、左、右、後退、回転など）に加えて、センサユニット２６４からのセンサデータを記録することができる。センサユニット２６４からのセンサデータはまた、相対位置を判定するための走査マッチングを通じる等、それ自体または他のデータと比較することもできる。結果として、ロボット２０２は、（例えば、マッピングおよび位置特定ユニット２６２を使用して）少なくともセンサデータ、走査マッチング、および内部ロボットコマンドを与えられたマップの事後確率分布関数を構築することができる。他の要因もまた、考慮され得る。
【００７５】
測定値の曖昧さのために、ロボット２０２は、修正されない場合、その周囲の進行されたルートを反映しないマップを生成することができる。図４Ｂは、本開示のいくつかの実装態様による、ロボット２０２の周囲および進行ルートを正確には反映していないマップ４００である。ノイズ、センサドリフト、および他の要因のために、マップ４００は、歪んで見える。結果として、ルート４０６は、至る所を通るように見える。ルート４０６の周囲のマッピングされた環境は、広がってそれ自体と重なり合っているように見え、その特徴はグラウンドトゥルースを反映していない。比較すると、マップ４００は、マップ３００に修正することができ、マップ４００は、実際にはマップ３００と同じ環境およびルートのマップであるが、しかしながら、マップ４００は歪んでおり、マップ３００は現実をより正確に反映している。観察することができるように、環境は、実際には一連の通路を備える（例えば、柱として現れる）。
【００７６】
図５は、本開示のいくつかの実装態様による、マップを作成するための例示的な方法５５０のプロセスフロー図である。例えば、ブロック５５２は、ノードを含有するグラフを作成することを含む。ブロック５５４は、グラフを実質的に同じ場所で開始および終了するように制約することを含む。ブロック５５６は、ノードにおける走査像から判定された拡張走査グループ上で、走査マッチングを実行することを含む。ブロック５５８は、各ノードの場所における信頼度を判定することを含む。ブロック５６０は、各ノードの場所を判定するために、コスト関数を作成し、かつ解くことを含む。ブロック５６２は、位置付けられたノードからの走査像から、マップをレンダリングすることを含む。このプロセスフロー図は、例示的な目的のためだけに提供される。いくつかの場合において、１つ以上のブロックが、プロセスにおいて省略することができる。さらに、本開示において記載されるように、様々な他のブロックを、追加および／または代替として使用することができる。
【００７７】
図５のブロック５２２のノードを含有するグラフを作成することは、いくつかの場合において、ロボット２０２が環境内を進行する際に、マッピングおよび位置特定ユニット２６２ならびに／またはコントローラ２５４によって実行され得る。さらなる例示として、図６Ａは、本開示のいくつかの実装態様による、グラフ６００内のルート６２２に沿ったロボット２０２（図２に示された）の離散化された測定値を含む図の上面図である。ルート６２２は、例示目的のために使用される。いくつかの場合において、ルート６２２は、離散ノード６０２Ａ〜６０２Ｄから、ロボットインジケータ３０２としてグラフ６００のグラフ空間内に示される、ロボット２０２によって判定されたノードを接続するルートおよび／または軌道の表現であり得る。したがって、本明細書の図に示されるように、ルートは、参照を容易にするために描かれているが、しかしながら、本明細書に記載のシステムおよび方法は、ルートが判定される前および／または後に適用され得る。
【００７８】
ロボット２０２が、グラフ６００内に示されるルート６２２によって表現されたルートに沿ってナビゲートする際、センサユニット２６４を使用することよって等、ノード６０２Ａ〜６０２Ｄ（再び、グラフ６００のマップ空間内に示される）で測定値を取得することができる。当業者であれば、複数のノードがあり得、そのうちの多くが、センサユニット２６４のセンサの解像度、ロボット２０２の速度（例えば、ロボットインジケータ３０２によって表現される）、センサユニット２６４のセンサのノイズおよび／またはエラー、ロボット２０２の所定の調整（例えば、ノード距離または確立ノード間の時間の設定）などに少なくとも部分的に基づいて、判定することができることを理解するであろう。図６Ａは、例示的なルート６２２の一例示的な構成を示すにすぎない。例えば、ノード間の距離は、標準的な単位（例えば、ミリメートル、センチメートル、メートル、インチ、フィートなど）または相対的な単位（クリック数、ピクセル数、長さなど）で事前に定義されるパラメータとして設定することができる。距離は、所望の解像度に基づいて、判定することができ、それは所望の精度、記憶サイズ、ノイズなどの考慮事項に依存し得る。例えば、より少ないノードは、より少ない記憶空間を占有するが、より多くのノードより少ない情報を提供することができる。ノード６０２Ａ〜６０２Ｄからの情報の収集、ならびにマッピングに使用される１つ以上のシステムおよび方法は、マッピングおよび位置特定ユニット２６２ならびに／またはコントローラ２５４によって実行することができる。
【００７９】
ノード６０２Ａ〜６０２Ｄの各々は、ロボット２０２による測定値（例えば、走査像）の位置を表現することができる。ノード６０２Ａ〜６０２Ｄの各々は、（例えば、ロボット２０２の（ｘ、ｙ、θ）等の測定値を含む）姿勢と関連付けることができる。ロボット２０２の姿勢は、場所および／または配向（例えば、初期化場所２２２および／またはホームロケータ２２０）ならびに／もしくは環境２００の特徴に対して相対的であり得る。姿勢は、レーザ走査像、ＬＩＤＡＲ、走行距離測定、および／またはセンサユニット２６４の任意の他のセンサによって得られたデータから判定することができる。さらに、いくつかの場合において、ノードは、例えば、ロボット２０２が、同じ場所を複数回通過するとき等、実質的に同様のスポット上に位置決めすることができる。
【００８０】
ノード６０２Ａ〜６０２Ｄ間の各縁部は、それぞれ範囲６０４Ａ〜６０４Ｄとしてノード６０２Ａ〜６０２Ｄの各々に示された、関連付けられた確率関数および／または確率分布を有することができる。いくつかの場合において、範囲６０４Ａ〜６０４Ｄは、事後確率分布を使用して計算することができる。いくつかの場合において、範囲６０４Ａ〜６０４Ｄは、平均計算位置と共分散から導き出すことができる。いくつかの場合において、確率分布は、ノードの不確実性がマトリクス（例えば、共分散マトリクス）等の、１つ以上のデータ構造内に記憶され得る、ベイジアンフレームワークを使用して計算することができる。当業者は、範囲６０４Ａ〜６０４Ｄがまた、クロス分散、分散、カイ二乗分布、および／または、例えば、同時位置特定およびマッピング（「ＳＬＡＭ」）ならびに／もしくは当技術分野で既知の姿勢を判定するための他の技術において使用される他の任意の統計的方法等、他の統計的方法を使用して計算され得ることを理解するであろう。いくつかの場合において、範囲６０４Ａ〜６０４Ｄは、各ノード６０２Ａ〜６０２Ｄの周囲の領域を少なくとも部分的に表現することができ、グラフ６００に対するロボット２０２の実際の場所（例えば、ロボットインジケータ３０２として示される）は、その領域内にあり得る。例えば、示されるようなノード６０２Ｂを位置付ける代わりに、ノード６０２Ｂは、範囲６０４Ｂ内の位置および／または配向を含む、範囲６０４Ｂ内のいずれかの場所に、異なる姿勢を伴い、実際に位置付けることができる。いくつかの場合において、範囲６０４Ａ〜６０４Ｄのうちのいずれか１つ内の各位置は、関連付けられた確率を有することができ、いくつかの位置は、他の位置よりも可能性が高い。いくつかの場合において、複合ノイズ、センサドリフト、および他の要因に起因して、範囲６０４Ａ〜６０４Ｄの後続の範囲は、示されるようなロボットインジケータ３０２の位置から見て、より大きくなる可能性があり、ノード６０２Ａ〜６０２Ｄの位置決めのより高い不確実性を表現する。しかしながら、別個の特徴の識別、走査マッチング、較正、外部識別等のいくつかの要因は、範囲６０４Ａ〜６０４Ｄの先行するものと比較して、１つ以上の範囲６０４Ａ〜６０４Ｄのサイズを実際に縮小することができる。
【００８１】
図６Ｂは、本開示のいくつかの実装態様による、図６Ａのルート６２２の続きを含む、グラフ６５０の図の上面図である。示されるように、ロボット２０２は、グラフ６５０上で表現されるように、ノード６０２Ａで始めることができる。ノード６０２Ａは、ホームロケータのマッピングされた／グラフ化された位置とすることができ、インジケータ６２０に対して位置決めすることができる。図６を参照して記載されるように、ロボット２０２は、ノード６０２Ａ〜６０２Ｄをマッピングすることができる。しかしながら、起こり得る１つの課題は、ロボットがルート６２２を進むにつれてエラーが累積する可能性があることである。例えば、範囲は、ノード６２２Ａ（その位置は、インジケータ６２０等の、ホームロケータに対して判定されてもよい）の場所から見て全体にわたって拡大し続ける可能性がある。実例として、範囲６２８は、範囲６０４Ｄより大きい場合があり、ノード６２２Ｂに関連付けられた範囲６２４は、さらに大きい可能性がある。したがって、より大きな範囲を伴い、それらのノードの場所内によりあいまいさが増す可能性がある。その結果、従来のＳＬＡＭおよび／または任意の他のアルゴリズムを使用してグラフ６５０を最適化することは、計算コストが高くなりおよび／または不正確になる可能性がある。最適化を見出そうとすると、計算、時間、および処理のコストが高くなる可能性がある。
【００８２】
いくつかの実装態様において、図５のブロック５５４の実質的に同じ場所で開始および終了するようにグラフを制約することは、マッピングおよび位置特定ユニット２６２、および／またはコントローラ２５４によって実行することができる。図６Ｃは、本開示のいくつかの実施態様による、図６Ｂからのグラフ６９０に対する制約を示し、開始場所および終了場所は、同じおよび／または実質的に同じ場所にある。グラフ６９０は、グラフ６５０からのノードを示し、ここでノード６２２Ａおよび６２２Ｂは、実質的に同じ場所内にあるように制約される。いくつかの実装態様において、ノード６２２Ａおよび６２２Ｂは、グラフ６９０、およびその中のノードを、同じおよび／または実質的に同様の場所で始まりかつ終了するグラフに制約するために、同じならびに／もしくは実質的に同じ場所内にあり得る。いくつかの場合において、同じおよび／または実質的に同じで終了するグラフは、インジケータ６２０によって示されるように、ホームロケータの検出によって判定することができる。これらの場合、ロボット２０２がルート６２２の始まりおよび／または終了で、同じホームロケータ（例えば、グラフ６９０上のインジケータ６２０によって表現された）を検出する場合、そのような検出は、少なくとも部分的にノード６２２Ａおよび６２２Ｂが、同じおよび／または実質的に同じ場所内にあることを示すことができる。
【００８３】
いくつかの実装態様において、ｘ距離、ｙ距離、ｚ距離、角度などに関する１つ以上のしきい値に基づく等、実質的に同様のものを事前に判定することができる。例えば、標準的な単位（例えば、インチ、メートル、度、および／または他の標準的な単位）、または相対的な単位（例えば、クリック、ピクセル、長さなど）に基づくもの等、距離および／または角度しきい値があり得る。しきい値は、センサユニット２６４のセンサの解像度、センサユニット２６４のセンサからのノイズ、センサユニット２６４のセンサからのセンサドリフト、グラフ化／マッピングにおける許容誤差、性能の経験的証拠、参照特徴（例えば、ホームロケータならびに／もしくは他の物体）および／または他の要因の表示に少なくとも部分的に基づいて、判定することができる。
【００８４】
有利なことに、この制約は、曖昧さを減少させることができる。それぞれ開始位置および終了位置である、ノード６２２Ａおよび６２２Ｂの既知の（および／または想定される）位置から作業することで、エラー伝播は、次いで両方向において取得され得る。したがって、例示として、範囲６２６は、図６Ｂの類似のノード形態から著しく減少し、最大範囲は、範囲６２８等の、他の場所である。注目すべきことに、ノード場所のあいまいさのこの減少は、グラフ６５０と比較してグラフ６９０を最適化する際の計算、時間、および処理コストをさらに低減することができる。範囲８０４Ａ、８０４Ｂ、および８０４Ｃは、図８を参照してさらに詳細に考察されるであろう。
【００８５】
いくつかの場合において、場所の信頼度は、走査マッチング等の、他の方法を通じて判定することができる。実例として、ロボット２０２は、走査マッチングを使用することができ、これは、ノードの組から複数の走査像（例えば、レーザ走査像）を登録してそれらの相対位置を判定することを含むことができる。いくつかの場合において、走査マッチングは、走査像とグラフ／マップ、走査像と走査像、および／またはグラフ／マップとグラフ／マップを最適に整列させる剛体変換（例えば、並進ならびに／もしくは回転を使用）を判定するために使用することができる。
【００８６】
実例として、２つのノードｘ０およびｘ１から環境を感知するロボットは、ＬＩＤＡＲ走査像ｚ０およびｚ１を得ることができる。これらのＬＩＤＡＲ走査像は、環境の走査像を捕捉することができる。例えば、環境の一部がｘ０とｘ１の両方から視認可能である場合、走査マッチングは、点ｚ１がｚ０と整列するように突出させるであろう剛体変換を見出すために使用することができる。いくつかの形式において、走査マッチングは、ＳＬＡＭおよびその他等のマッピングアルゴリズム内で使用されている。
【００８７】
いくつかの場合において、ブロック５５６のノードにおける走査像から判定された拡張走査グループ上の走査マッチングの実行は、マッピングおよび位置特定ユニット２６２ならびに／またはコントローラ２５４によって実行することができる。図７Ａは、本開示のいくつかの実装態様による、拡張走査グループを作成するための例示的な方法７００のプロセスフロー図である。ブロック７２０は、ルートノードを選択することを含む。ルートノードは、他のノードが見られるノード（例えば、位置、距離、姿勢、角度など、および／またはルートノードに対する確実性）を含むことができる。ブロック７２２は、ノードからの測定値内の可能な重複を見出すことを含む。ノードからの測定値の重複は、走査像が共通の特徴を有する、および／または近接している場合の重複を含み得る。例えば、重複は、同じ特徴を捕捉したノードからの走査像を含めることができる。実例として、ロボット２０２がナビゲートする際、ロボット２０２は、センサユニット２６４を使用して、その環境内で測定値を取得することができる。いくつかの場合において、このような測定値は、走査像ＬＩＤＡＲを使用して行うことができる。したがって、走査像ＬＩＤＡＲは、ロボット２０２がナビゲートする際のその範囲内の物体の測定値を取得することができる。ロボット２０２が走査像を取得するノードの近接性に基づいて、個々の走査像は、時間および／または空間の異なる点で、同じ物体を捕捉することができる（例えば、第１の走査像は、ロボット２０２がそれに近づく際の物体を含むことができ、第２の走査像は、ロボット２０２が近くにある際の物体を含むことができ、第３の走査像は、ロボット２０２がそれを通過する際の物体を含むことができ、第４の走査像は、ロボット２０２がさらに遠くに移動する際の物体を含むことができる。）このようにして、これらの重複測定値は、環境内の同じ特徴の異なる態様を捕捉することができる。さらに、これらの測定値はまた、時間および／または空間において実質的に近接することがある。例えば、近接性は、互いに連続して隣接するノード、または所定数のノード内にあるノードを含むことができる。近接性はまた、センサ解像度、捕捉時間、ロボット２０２の速度などに少なくとも部分的に基づいて、判定されたしきい値時間等の、所定のしきい値時間内にある時間も含むことができる。
【００８８】
ブロック７２４は、拡張走査グループを形成するために、少なくとも部分的に重複に基づいて、ノードのグループを作成することを含む。各拡張走査グループは、２、３、４、５、またはそれ以上のノード等の、所定数のノードを含むことができる。ノードの数は、走査マッチングの所望の精度、各走査像のデータサイズ、計算リソースなどに少なくとも部分的に基づいて、選択することができる。多くの場合において、３つのノードが、より多くの走査像および走査マッチングを実行することの複雑さによって提供される情報量のバランスをとるために使用することができる。
【００８９】
いくつかの場合において、すべてのノードがグループ内にあるとは限らない。グループを見出すことは、別個の特徴を含む、および／またはそれに近接するグループ化ノードのみをさらに含むことができる。別個の特徴は、特徴的および／または識別可能であり得る特徴を含むことができる。例えば、全体にわたってほぼ同一の壁を有する廊下は、別個の特徴を含まないかもしれない。実例として、別個の特徴は、物体、障害物、備品、および／または場所を少なくともいくつかの他の場所と区別可能にすることができる任意の態様を含むことができる。有利なことに、別個の特徴を有するグループのみが使用される場合、ロボット２０２は、有用なおよび／またはあいまいさの少ない情報を提供するはずの走査像マッチ上に焦点を合わせることによって、システムリソースの消費をさらに低減させることができる。有利なことに、別個の特徴に頼ることは、誤検出を低減させることができる。
【００９０】
いくつかの場合において、同じノードが、複数の拡張走査グループ内で使用される場合がある。いくつかの場合において、異なる拡張走査グループが、同じノードを含むことができる。しかしながら、いくつかの場合において、各ノードが、１つの拡張走査グループ内にのみ属するように制限される場合がある。したがって、ノードが特定のグループ内に属するかどうかを判定することは、さまざまな実装態様において含まれる、１つ以上の要因に依存する。実装されるこれらの要素の各々の相対的な重量は、環境、別個の特徴（および／またはその欠如）、経験的な性能測定値などに少なくとも部分的に基づいて、実装態様間で調整することができる。第１の要素は、ノードからの走査像において捕捉された別個の特徴の量を含むことができる。例えば、あるノードからの走査像においてより多くの別個の特徴の測定値が捕捉される場合、そのノードからのその走査像は、別個の特徴の測定がより少ない他のノードからの他の走査像の代わりに、同様により多くの別個の特徴の測定値を有する拡張走査グループ内に含まれやすくなるであろう。第２の要因は、他のノードへの近接性を含むことができる。互いに近接しているノードは、拡張走査グループ内に共に含まれる可能性が高くなる。近接性は、センサ解像度、ノードの密度（例えば、空間内にいくつのノードがあるか、近接性が、所与の空間内のノードがより少ないときと比較して、所与の空間内のノードがより多い状況において、より近いとして定義され得る）、経験的結果などに、少なくとも部分的に基づいて、判定された距離および／または角度しきい値に少なくとも部分的に基づくことができる。第３の要因は、走査像内の他の別個の特徴の存在を含むことができる。例えば、ノードにおける走査像は、複数の別個の特徴の測定値を有することができる。一致を最適化するために、より拡張された走査像グループを有することが好ましい場合がある。したがって、拡張走査グループを完成するためにより多くの走査像が所望される場合、別様に拡張走査グループを作成するには少なすぎとなるであろう、走査像の組に割り当てられた複数の別個の特徴を伴う走査像を有することが、好ましい。そのような状況において、ロボット２０２は、較正され得るため、より広範囲の走査像グループが生成される可能性が高い。一方で、他の場合において、より大きな拡張走査グループを有することは、計算速度にとって有利であり得る。第４の要素は、拡張走査グループのサイズを含むことができる。前述のように、各拡張走査グループは、所定のサイズにすることができる。したがって、ノードからの特定の走査像が、ノードからの他の走査像に属するかどうかを判定することは、拡張走査グループのサイズに依存する。
【００９１】
いくつかの場合において、再帰的および／または反復的グループ化アルゴリズムが、走査像を拡張走査グループに一致させるために使用することができる。いくつかの場合において、１つ以上の性能基準に基づいて、拡張走査グループの各セットを評価することができる。性能基準は、上記の要因のうちの１つ以上に基づくことができる。いくつかの場合において、最小カット、グラフ理論、および／または他のグループ化アルゴリズム等の、アルゴリズムは、グラフのノード、および関連付けられた走査像を拡張走査グループに分割するように実装することができる。
【００９２】
一度グループが識別されると、（例えば、マッピングおよび位置特定ユニット２６２の一部として）走査像整合器が、走査像の場所および／または配向を判定するために使用され得る。図７Ｂは、本開示のいくつかの実装態様による、走査マッチング変換の概念図である。いくつかの場合において、複数のノードが、走査整合器内で使用され、拡張走査グループを形成することができる。拡張走査グループを他の拡張走査グループと比較して、相対的並進（およびその結果として、場所）および／または回転を判定することができる。有利なことに、拡張走査グループは、より多くのコンテキスト（例えば、情報、データなど）を提供すること、および／または、グラフ／マップ最適化の速度、グラウンドトゥルースに対するグラフ／マップの精度、および最適化の計算コストおよび他のリソースコストのうちの１つ以上を改善することができる。より大きな走査像グループが、ある場所に一致している場合、ロボット２０２は、走査マッチングに関与するノードの場所に比較的高い信頼度を有することができる。いくつかの場合において、拡張走査グループと前の走査像とのマッチング等、信頼度は、前の走査像の信頼度と少なくとも一致することができる。いくつかの場合において、拡張された走査像グループおよび前の走査像が、実質的に同様の場所および／または配向を有するロボット２０２によって記録された場合、より高い信頼度であり得る。さらに、いくつかの場合において、既知の情報を含めることができ、グラフ内の特徴の場所は先験的に既知である。したがって、このような情報は、さらに信頼度を高めることができる。
【００９３】
走査マッチングは、拡張走査グループの別の拡張走査グループへの重複に少なくとも部分的に基づいて、場所を識別することができる。重複は、相関、反復比較、交差領域、関連付け（例えば、点から点、点から特徴、特徴から特徴など）、回帰アルゴリズム、最近点アルゴリズム（例えば、反復最近点（「ＩＣＰ」））、最近傍探索アルゴリズムなど等の、当技術分野で既知のアルゴリズムによって判定することができる。
【００９４】
実例として、フレーム７０２Ａは、ノード７０８Ａ、７１０Ａ、および７１２Ａ、ならびにノード７０８Ａ、７１０Ａ、および７１２Ａにおける走査像に基づいて、検出された特徴７０４Ａおよび７０６Ａを示す。変換機能７１４は、フレーム７０２Ａの走査マッチングを実行することができる剛体変換を示す。変換機能７１４は、フレーム７０２Ａにおいて走査像／ノードの並進および／または回転移動を実行することができる。結果として、フレーム７０２Ｂは、ノード７０８Ａ、７１０Ａ、および７１２Ａとしてのバージョンをノード７０８Ｂ、７１０Ｂ、および７１２として並進および回転され、ならびに検出された特徴７０４Ａおよび７０６Ａのバージョンを検出された特徴７０４Ｂおよび７０６Ｂとして並進および回転されたバージョンを示す。いくつかの実装態様において、変換関数７１４は、剛体変換ではなく、ノード７０８Ａ、７１０Ａ、および７１２Ａのうちの１つ以上および／または検出された特徴７０４Ａ、および７０４Ｂの相対位置は、互いに対して変化し得る。
【００９５】
いくつかの場合において、図５のブロック５５８の下で各ノードの場所における信頼度を判定することは、マッピングおよび位置特定ユニット２６２および／またはコントローラ２５４によって実行することができる。図８は、本開示のいくつかの実装態様による、図６Ｃ内に示されたグラフ上の拡張走査グループの走査マッチングの例示的な結果を示す。拡張走査グループ８００は、ノード８０２Ａ、８０２Ｂ、および８０２Ｃを含む。走査像整合器が、ノード８０２Ａ、８０２Ｂ、および８０２Ｃの位置決めを識別したので、それらの位置は、高い信頼度で判定される。結果として、範囲８０４Ａ、８０４Ｂ、および８０４Ｃは、より高い信頼度を反映して狭くなり得る。したがって、ロボット２０２は、走査マッチング、（例えば、範囲６０２Ａ、６０２Ｂ、６０２Ｃ、６０２Ｄ、６２６、および／または６２８、ならびに／もしくはロボット２０２によって計算された他の範囲によって反映されるような）誤差の伝播、および／または他の要素に少なくとも部分的に基づいて、信頼度を判定することができる。
【００９６】
信頼度が判定されると、図５のブロック５６０の下で各ノードの場所を判定するためのコスト関数を作成することおよび解くことは、マッピングおよび位置特定ユニット２６２ならびに／またはコントローラ２５４によって実行することができる。いくつかの場合において、グラフの１つ以上のノードは、ノード間の空間的関係およびその関係における信頼度（例えば、共分散および／または他の統計的分類における）を特徴付ける、概念的なばね（例えば、接続）を有することができる。信頼度は、図６Ａ〜図６Ｃ、および図８に示される範囲に少なくとも部分的に基づくことができる。
【００９７】
図９は、本開示のいくつかの実装態様による、図６Ａからのグラフ６００からのノード６０２Ａへの／からのばねを示す。示されるように、ノード６０２Ａは、ばね６５０ＡＢ、６５０ＡＣ、および６５０ＡＤによって、ノード６０２Ｂ、６０２Ｃ、および６０２Ｄを含む複数のノードに接続される。ノード６０２Ａはまた、それぞれのグラフ６００内の他のノードのいずれかおよび／またはすべてに接続することができる。しかしながら、いくつかの場合において、マップのすべてのノードが接続されるわけではない。必要に応じて、いくつかのノードは、非現実的なマップの生成を防止および／または軽減するために切断されてもよい。例えば、いくつかの実装態様において、ノードは、誤差、所定のしきい値不確実性を超えること、所定のしきい値不確実性を下回ること、および／または任意の他の所定の制約ならびに／もしくは制限に少なくとも部分的に基づいて、選択的に切断することができる。
【００９８】
ばね９５０ＡＢ、９５０ＡＣ、および９５０ＡＤの各々は、（１）ノード６０２Ａと他端部における対応するノードとの間の相対位置（例えば、ばね９５０ＡＤに対するノード６０２Ｄ、ばね９５０ＡＣに対するノード６０２Ｃ、およびばね９５０ＡＢに対するノード６０２Ｂ）および／または（２）相対的な位置決めの信頼度、のうちの１つ以上を含むことができる。
【００９９】
実例として、相対場所は、複数の相対説明を含むことができる。二次元（例えば、２Ｄ走査像によって取得されたものなど）において、相対場所は、１つ以上のΔｘ、Δｙ、およびΔθの形態における等、水平方向、垂直方向、および／または角度を含むことができる。異なる座標系および／または寸法を伴うもの等の、相対場所を表現する他の方法もまた、考えられる。例えば、三次元において、相対場所は、Δｘ、Δｙ、Δｚ、Δθ、Δｒ、Δθ、Δφなどのうちの１つ以上で説明することができる。当業者は、二次元、三次元、四次元、および／または任意の次元において相対位置および／または配向を説明するための多くの方法があるということを理解するであろう。信頼度は、共分散マトリクスとして表現することができる。実例として、共分散マトリクスは、ノードの場所の要素間の共分散を含むことができる（例えば、ばね６５０ＡＤに対してノード６０２Ａとノード６０２Ｄとの間、ばね６５０ＡＣに対してノード６０２Ａとノード６０２Ｃとの間、ばね６５０ＡＢに対してノード６０２Ａとノード６０２Ｂとの間）。いくつかの実装態様において、信頼度はまた、分散、試料分散、相関など等の当技術分野で既知の他の統計的指標で表現することもできる。信頼度は、図６Ａ〜図６Ｃおよび図８に関して計算された範囲等の、範囲に部分的に依存することができる。
【０１００】
いくつかの場合において、ばねは、コスト関数を定義することができ、グラフを最適化することは、ばねによって定義されるシステムの位置エネルギを最小化することを含む。このようにして、最適マップを見出すことはまた、（例えば、確率分布に基づいて）コスト関数を最小化すること、および／または各ノードの実質的に最尤位置を見出すこととして、説明することもできる。コスト関数を解くことは、最小二乗回帰法、非線形最小二乗最適化、摂動論、重み付き最小二乗法、カルマンフィルタ、および／またはコスト関数を解くための当技術分野で既知の他の任意の方法を利用することができる。実質的に物理的ばねと同様に、平衡構成は、各ノード上の正味の力が実質的にゼロおよび／または極小値に等しいものである。ばねは、重量および／または配向として表現することができる。
【０１０１】
一度グラフ（例えば、グラフ６００、６５０、および／または６９０、ならびに／もしくはロボット２０２によって生成された任意のグラフ）内のノードの位置が決まると、ロボット２０２は、グラフをマッピングおよび位置特定ユニット２６２で処理することによって等、マップ（例えば、マップ３００、５００Ａ、および／または５００Ｂ、ならびに／もしくはロボット２０２によって生成された任意のマップ）を構築することができる。
【０１０２】
図５のブロック５６２の位置付けられたノードからの走査像からのマップのレンダリングは、マッピングおよび位置特定ユニット２６２ならびに／またはコントローラ２５４によって実行することができる。例えば、図１０は、本開示のいくつかの実装態様による、走査像から構築されているマップのピクセルの図である。実例として、マトリクス１０００は、マップ上の場所に対応するセルを含む。いくつかの場合において、各セルは、ピクセルに対応することができる。マトリクス１０００内のセル内のノード１００４Ａおよび１００４Ｂは、ノード１００４Ａおよび１００４Ｂの相対場所を少なくとも部分的に示す。場所は、参照点および／または座標系からの標準単位（例えば、センチメートル、メートル、および／または任意の他の標準測定値）ならびに／もしくは相対単位（例えば、ピクセル、クリック数、および／または任意の他の相対測定値）に基づくことができる。ノード１００４Ａおよび１００４Ｂは、例示目的で提供される。ノードの位置決め、数、および／または間隔は、ロボット２０２が環境をトラバースする際に、ロボット２０２によって取得された走査像に依存することができる。
【０１０３】
各走査像は、ノードにおけるロボット２０２の周囲の物体の相対位置を少なくとも部分的に示す情報を提供することができる。いくつかの場合において、走査像（例えば、走査像ＬＩＤＡＲからの走査像）は、測定値を物体に提供することができる。例えば、いくつかの場合において、光線追跡が、使用され得、ロボット２０２から空間を横切って延在する光線に沿った物体の場所は、物体の場所および／または配向を識別するために使用することができる。マトリクス１０００において、線１００６等の点線は、少なくとも光線の一部を示している。物体が光線に沿って検出されるとき、セル１００２等のセルは、印を付けることができる。視覚的な実例のために、マーク１００８は、セル１００２に対応する場所で物体が検出されたことを少なくとも部分的に示す「Ｘ」である。
【０１０４】
対照的に、光線が物体のない場所を通過する場合、対応するセルは、マーク１０１０で示すように、「Ｏ」で印を付けることができる。光線が通過していない場所に対応するセルには、マークを付けることができない。他の指定も、考えられる。当業者であれば、セルは所望の方法で印を付けることができることを理解するであろう。付加的に、各セルを別のデータ構造と関連付けることによって、および／またはより多くの次元を有するデータ構造を使用することによって等、より多くの情報が、各セルと関連付けることができる。例えば、ロボット２０２によるルートの場所、行動の性能ならびに／もしくは行動特有の作業、環境の特性（例えば、水、カーペット、反射、および／または他の任意の記載）、禁止区域、および／または他等の付加情報もまた、１つ以上のセルと関連付けることができる。このような付加情報は、（例えば、センサユニット２６４のセンサからの）走査像から導き出すことができ、および／または別々に導き出し、かつマップに挿入することができる。このような付加情報は、この段階で、および／またはマップ構築後に追加することができる。
【０１０５】
したがって、走査像から観察することができる複数の光線追跡を通して、様々なノードでロボット２０２によって見られる物体の場所を、マッピングすることができる。共に、ノードからの走査像の蓄積は、マップを作成することができる。いくつかの場合において、ノードにおける走査像間に重複がある可能性がある。いくつかの場合において、このような重複する走査像は、物体の位置決めにおいて一致することができる。しかしながら、いくつかの場合において、重複する走査像が一致せず、矛盾する情報を提供することがある。いくつかの場合において、これらは、測定値および／または移動物体における誤差に起因し得る。したがって、確率は、識別されたセルに割り当てることができる。いくつかの場合において、確率は、物体を検出した走査像数（またはいくつかの場合において、物体を検出しなかった走査像数）を走査像の総数で割ったものとして計算することができる。このようにして、加重平均、統計的試験、分散、および／または矛盾する情報の不確実性を反映する他の任意の統計的方法等の、他の統計も同様に使用することができる。いくつかの場合において、所定の統計的しきい値に基づいて、物体の存在および／または不在をマップ内で判定することができる。例えば、所定の統計的しきい値が満たされる（設定方法に応じて超えるか超えないかのいずれかである）場合、物体の場所は、生成されたマップ（例えば、マップ３００、５００Ａ、または５００Ｂ、および／またはロボット２０２によって生成された他の任意のマップ）で充填されるであろう。実例として、所定の統計的しきい値がパーセンテージである場合、場所内の物体を識別する走査像のパーセンテージが所定のパーセンテージ（例えば、６０、７０、８０、９０、および／または所望の確実性に基づく任意の他のパーセンテージ）を超える場合、その場所は、次いでマップ内の物体に対応するものとして識別されるであろう。別の実例として、物体の不在を識別する場合において、場所内のどの物体も所定のパーセンテージ（例えば、６０、７０、８０、９０、および／または他の任意の割合）を超えないことを識別する場合、場所は、次いでマップ内の物体（例えば、空の空間）に対応していないと識別されるであろう。同様の統計分析が、本開示に記載されている、他の／付加情報のいずれかを識別する際に使用することができる。当業者であれば、所定の統計的しきい値は、ポジティブ（例えば、物体および／または特性の存在）および／またはネガティブ（例えば、物体および／または特性の欠如）のいずれかにおいて、多くの方法で画定することができるということを認識するであろう。有利なことに、統計的アプローチをとることは、いくつかの走査像にのみ現れるが、他には現れない可能性のある、移動する物体を除外することができる。
【０１０６】
いくつかの実装態様において、付加処理が、マップおよび／またはグラフ上で実行され得る。例えば、いくつかの場合において、ピクセル状態は、ロボット２０２がある領域を通じてナビゲートすることができるかどうか、少なくとも部分的に示すことができる。いくつかの場合において、明示中に特定の場所が適切に観察され得ず、環境内の物体が移動する可能性があり、および／または測定値に不確実性がある場合がある。ユーザインターフェースユニット２７２を使用して、ユーザは、付加情報を追加するために、マップおよび／またはグラフを編集することができる。例えば、ユーザは、マップを編集して、ロボット２０２がトラバースすることができる領域、および／またはロボット２０２がトラバースすることができない領域を識別することができる。
【０１０７】
ロボット２０２は、ユーザ入力から学習することができる。例えば、ロボット２０２は、（ｉ）元のマップおよび／またはグラフ、（ｉｉ）ユーザ入力を伴うマップおよび／またはグラフ、（ｉｉｉ）他のマップおよび／またはグラフ、のうちの１つ以上を含むライブラリをメモリ２５２に記憶することができる。いくつかの場合において、ライブラリは、約１、５、１０、１００、１０００、１００００、１００，０００、１，０００，０００、１０，０００，０００、または任意の数のメイおよび／またはグラフを含有することができる。いくつかの実装態様において、ライブラリは、ネットワーク（例えば、クラウド、サーバなど）に格納されてもよく、メモリ２５２内に保存されなくてもよい。ライブラリは、（例えば、機械学習アルゴリズムに基づいて）使用されて、元のマップ／グラフとユーザ入力を伴うマップ／グラフとの間の１つ以上の関連付けを判定するために、ロボット２０２を訓練することができる。このようにして、ロボット２０２は、ライブラリ内のユーザ入力に起因してどのような変更が加えられたかを学習することができ、実質的に同様のシナリオに遭遇したとき、実質的に同様の変更を加えることができる。
【０１０８】
いくつかの実装態様において、ロボット２０２はまた、環境内でのその後のナビゲーション中に既存のグラフおよび／またはマップにも変更を加えることができる。例えば、ロボット２０２は、新しいグラフおよび／またはマップ内の付加データおよび／または走査像を収集し、その付加データおよび／または走査像を使用して、既存のグラフおよび／またはマップを補足することができる。
【０１０９】
実例として、ロボット２０２は、第１の期間において、第１のホームロケータから始まって、第１のルートに沿って移動する、第１のグラフおよび／またはマップを生成することができる。後の、第２の期間では、ロボット２０２は、第１のホームロケータから始まって、第１の期間内で収集されなかったデータ（例えば、走査像）を除いて、第２のグラフおよび／またはマップをそこに生成する、第１のルートに実質的に同様の経路に沿って進行することができる。有利なことに、ロボット２０２が第１の期間および第２の期間内に、第１のホームロケータで開始した場合、ロボット２０２は、その位置特定を使用して、第１のグラフおよび／またはマップ、ならびに第２のグラフおよび／またはマップからの走査像を共に結び付けることができる。このようにして、ロボット２０２は、第２のグラフおよび／またはマップ内で測定された、第１のグラフおよび／またはマップに付加適用範囲を追加することができ、ならびに／もしくはその逆も可能である。
【０１１０】
いくつかの実装態様において、異なるホームロケータが、第１のグラフおよび／またはマップ、ならびに第２のグラフおよび／またはマップの開始点として使用される場合、ロボット２０２は、各々からの走査像をより容易に組み合わせるために、それらを共通の座標系に変換することができる。
【０１１１】
図１１は、本開示のいくつかの実装態様による、ロボットによってマップを生成するための例示的な方法１１００のプロセスフロー図である。ブロック１１０２は、環境内を、ロボットによって進行することを含む。ブロック１１０４は、複数のノードを含むグラフを作成することを含み、各ノードは、環境内のある場所でロボットのセンサによって取得された走査像に対応する。ブロック１１０６は、グラフを実質的に同様の場所で開始および終了するように制約することを含む。ブロック１１０８は、複数のノードのグループから少なくとも部分的に判定された拡張走査グループ上で走査マッチングを実行することを含む。ブロック１１１０は、走査マッチングに少なくとも部分的に基づいて、ある範囲の可能な場所を複数のノードの各々と関連付けることを含む。ブロック１１１２は、可能な場所の各範囲と関連付けられた信頼度を判定することを含む。ブロック１１１４は、信頼度に少なくとも部分的に基づいて、複数のノードの可能性の高い場所を見出すようにグラフを最適化することを含む。ブロック１１１６は、最適化されたグラフからマップを生成することを含む。
【０１１２】
図１２は、本開示のいくつかの実装態様による、ロボットを操作するための例示的な方法１２００のプロセスフロー図である。ブロック１２０２は、センサに、複数のノードにおける環境の走査像を生成させることを含み、複数のノードのうちの各ノードは、場所と関連付けられる。ブロック１２０４は、生成された走査像に基づいて複数のノードのグラフを作成することを含む。ブロック１２０６は、複数のノードのグループと関連付けられた走査像から少なくとも部分的に基づいて、拡張走査グループを判定することを含む。ブロック１２０８は、拡張走査グループ上で走査マッチングを実行することを含む。
【０１１３】
本明細書で使用されるように、コンピュータおよび／またはコンピューティングデバイスは、これらに限定されないが、  パーソナルコンピュータ（「ＰＣ」）およびミニコンピュータデスクトップ、ラップトップ、もしくはそれ以外、メインフレームコンピュータ、ワークステーション、サーバ、携帯情報端末（「ＰＤＡ」）携帯型コンピュータ、埋め込み式コンピュータ、プログラマブルロジックデバイス、パーソナルコミュニケータ、タブレットコンピュータ、モバイルデバイス、ポータブルナビゲーションエイド、Ｊ２ＭＥ搭載デバイス、携帯電話、スマートフォン、パーソナル統合通信またはエンターテインメントデバイス、および／または、一組の命令を実行し、入力してくるデータ信号を処理することが可能である、任意の他のデバイスを含むことができる。
【０１１４】
本明細書で使用されるように、コンピュータプログラムおよび／またはソフトウェアは、機能を行う任意のシーケンスまたは人間もしくは機械認識ステップを含むことができる。このようなコンピュータプログラムおよび／またはソフトウェアは、例えばＣ／Ｃ＋＋、Ｃ＃、Ｆｏｒｔｒａｎ、ＣＯＢＯＬ、ＭＡＴＬＡＢ（登録商標）、ＰＡＳＣＡＬ、Ｐｙｔｈｏｎ、アセンブリ言語、マークアップ言語（例えば、ＨＴＭＬ、ＳＧＭＬ、ＸＭＬ、ＶｏＸＭＬ）など、ならびにＣｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（「ＣＯＲＢＡ」）、ＪＡＶＡ（登録商標）（Ｊ２ＭＥ、Ｊａｖａ  Ｂｅａｎｓなどを含む）、Ｂｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＢＲＥＷ）などを含む任意のプログラミング言語または環境で表現することができる。
【０１１５】
本明細書で使用されるように、接続、リンク、伝送チャネル、遅延線、および／またはワイヤレスは、エンティティ間の情報交換を可能にする、任意の２つ以上のエンティティ間の（物理的または論理的／仮想的）因果関係を含むことができる。
【０１１６】
本開示のある特定の態様は、方法の具体的な一連のステップに関して記載されているが、これらの記載は、本開示の広範な方法の単なる例示であり、特定の用途によって要求されるように変更され得ることが認識されるであろう。ある特定の状況では、ある特定のステップが不要またはオプションになることがあり得る。付加的に、開示された実装態様にある特定のステップまたは機能が追加されてもよく、または２つ以上のステップの実行順序が置換されてもよい。そのような変形は全て、本明細書に開示および特許請求されている開示の範囲内に包含されると見なされる。
【０１１７】
上記の詳細な説明は、様々な実装態様に適用される本開示の新規な特徴を示し、記載し、指摘したが、例示されたデバイスまたはプロセスの形態および詳細における様々な省略、置換、および変更が、本開示から逸脱することなくなされ得ることは当業者により理解される。前述の説明は、本開示を実施することについて現在企図されている最良の様式である。この説明は、決して限定することを意味するものではなく、むしろ本開示の一般原則の例示として解釈されるべきである。本開示の範囲は、特許請求の範囲を参照して判定されるべきである。
【０１１８】
本開示を図面および前述の説明において詳細に例示および記載してきたが、そのような例示および説明は説明的または例示的であり、限定的ではないと見なされるべきである。本開示は、開示された実装態様に限定されない。開示された実装態様に対する変形は、図面、本開示および添付の特許請求の範囲の検討から、特許請求された開示を実施する際に当業者によって理解され達成され得る。
【０１１９】
本開示のある特定の特徴または態様を説明するときに特定の用語を使用することは、その用語が関連付けられている、本開示の特徴または態様の任意の具体的な特徴を含むよう限定されるように、その用語が本明細書において再定義されていることを意味すると解釈されるべきではない。本出願において使用される用語および語句、ならびにその変形は、とりわけ添付の特許請求の範囲において、他に明示的に述べられていない限り、限定とは対照的に無制限として解釈されるべきである。前記の実例として、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「非限定的に含む（ｉｎｃｌｕｄｉｎｇ、ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」または「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ）」などを意味するものとして読まれるべきであり、本明細書で使用される場合、用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」は、「含む（ｉｎｃｌｕｄｉｎｇ、ｃｏｎｔａｉｎｉｎｇ）」または「を特徴とする（ｃｈａｒａｃｔｅｒｉｚｅｄ  ｂｙ）」と同義であり、包括的または非限定的であり、追加の記載のない要素または方法ステップを排除するものではなく、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」として解釈されるべきであり、用語「などの（ｓｕｃｈ  ａｓ）」は、「などの、これらに限定されない（ｓｕｃｈ  ａｓ、ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」として解釈されるべきであり、用語「例（ｅｘａｍｐｌｅ）」は、議論の中のアイテムの例示的なインスタンスを提供するために使用され、その包括的または限定的なリストではなく、「例であるが、限定されない（ｅｘａｍｐｌｅ、ｂｕｔ  ｗｉｔｈｏｕｔ  ｌｉｍｉｔａｔｉｏｎ）」と解釈されるべきであり、「既知の（ｋｎｏｗｎ）」、「通常の（ｎｏｒｍａｌ）」、「標準的な（ｓｔａｎｄａｒｄ）」、および同様な意味の用語などの形容詞は、記載のアイテムを、所与の期間に、または所与の時間において利用可能なアイテムに限定するものとして解釈されるべきではなく、代わりに今または将来の任意の時間に利用可能または既知となり得る既知の、通常の、または標準的な技術を包含するものとして理解されるべきであり、「好ましくは（ｐｒｅｆｅｒａｂｌｙ）」、「好ましい（ｐｒｅｆｅｒｒｅｄ）」、または「望ましい（ｄｅｓｉｒｅｄ、ｄｅｓｉｒａｂｌｅ）」などの用語および同様な意味の語の使用は、本開示の構造または機能にとって特定の特徴が非常に重要である、不可欠である、またはさらには重要であることを示唆するものとして解釈されるべきではなく、代わりに特定の実装態様で使用され得るまたはされなくてもよい代替的または追加的な特徴を強調することを単に意図するに過ぎないと解釈されるべきである。同様に、接続詞「および（ａｎｄ）」にリンクされた項目の群は、それらの項目の各々および、ひとつひとつがその群内に存在することを要求するものとして読まれるべきではなく、特に明記しない限り「および／または（ａｎｄ／ｏｒ）」として読まれるべき��ある。同様に、接続詞「または（ｏｒ）」にリンクされた項目の群は、そのグループ間の相互排他性を必要とするものとして読まれるべきではなく、別段の明記がない限り、「および／または（ａｎｄ／ｏｒ）」として読まれるべきである。「約（ａｂｏｕｔ）」または「およそ（ａｐｐｒｏｘｉｍａｔｅ）」などの用語は同義語であり、その用語によって修飾された値がそれに関連する理解された範囲を有することを示すために使用され、その範囲は±２０％、±１５％、±１０％、±５％、または±１％、であり得る。「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」という用語は、結果（例えば、測定値）が目標値に近いことを示すために使用され、ここでは、結果は、その値の８０％以内、その値の９０％以内、その値の９５％以内、またはその値の９９％以内である。また、本明細書で使用されるとき、「定義された（ｄｅｆｉｎｅｄ）」または「判定された（ｄｅｔｅｒｍｉｎｅｄ）」は、「事前定義された（ｐｒｅｄｅｆｉｎｅｄ）」または「所定の（ｐｒｅｄｅｔｅｒｍｉｎｅｄ）」および／または他の方法で判定された値、条件、しきい値、測定値などを含み得る。
【図１】
2020502627.tif 000003
【図２】
2020502627.tif 000004
【図３】
2020502627.tif 000005
【図４Ａ】
2020502627.tif 000006
【図４Ｂ】
2020502627.tif 000007
【図５】
2020502627.tif 000008
【図６Ａ】
2020502627.tif 000009
【図６Ｂ】
2020502627.tif 000010
【図６Ｃ】
2020502627.tif 000011
【図７Ａ】
2020502627.tif 000012
【図７Ｂ】
2020502627.tif 000013
【図８】
2020502627.tif 000014
【図９】
2020502627.tif 000015
【図１０】
2020502627.tif 000016
【図１１】
2020502627.tif 000017
【図１２】
2020502627.tif 000018
【国際調査報告】
2020502627.tif 000019