(57)【要約】第１および第２の通信可能に結合されるハードウェアコンポーネントを有するシステム上において、点マップを更新するためのコンピュータ実装方法は、第１のコンポーネントが、第１のプロセスを第１の状態における点マップ上において実施し、第１の変更を生成するステップを含む。本方法はまた、第２のコンポーネントが、第２のプロセスを第１の状態における点マップ上において実施し、第２の変更を生成するステップを含む。本方法はさらに、第２のコンポーネントが、第２の変更を第１の状態における点マップに適用し、第２の状態における第１の更新された点マップを生成するステップを含む。
2021530812.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２の通信可能に結合されるハードウェアコンポーネントを有するシステム上において、点マップを更新するためのコンピュータ実装方法であって、
前記第１のコンポーネントが、第１のプロセスを第１の状態における前記点マップ上において実施し、第１の変更を生成することと、
前記第２のコンポーネントが、第２のプロセスを前記第１の状態における前記点マップ上において実施し、第２の変更を生成することと、
前記第２のコンポーネントが、前記第２の変更を前記第１の状態における前記点マップに適用し、第２の状態における第１の更新された点マップを生成することと、
前記第１のコンポーネントが、前記第１の変更を前記第２のコンポーネントに送信することと、
前記第２のコンポーネントが、前記第１の変更を前記第２の状態における前記第１の更新された点マップに適用し、第３の状態における第２の更新された点マップを生成することと
を含む、方法。
【請求項２】
前記第２のコンポーネントが、前記第２の変更を前記第１のコンポーネントに送信することと、
前記第１のコンポーネントが、前記第２の変更を前記第１の状態における前記点マップに適用し、前記第２の状態における前記第１の更新された点マップを生成することと、
前記第１のコンポーネントが、前記第１の変更を前記第２の状態における前記第１の更新された点マップに適用し、前記第３の状態における前記第２の更新された点マップを生成することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のコンポーネントが、前記第１および第２の変更に基づいて、変更順序を生成することと、
前記第１のコンポーネントが、前記変更順序に基づいて、前記第１の変更を前記第２の状態における前記更新された点マップに適用する前に、前記第２の変更を前記第１の状態における前記点マップに適用することと
をさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のコンポーネントが、前記第２の変更を前記第１の状態における前記点マップに適用することは、前記第１のコンポーネントが、変更前の第１の状態を生成することを含み、
前記第１のコンポーネントが、前記第１の変更を前記第２の状態における前記第１の更新された点マップに適用することは、前記第１のコンポーネントが、変更前の第２の状態を生成することを含む、
請求項２に記載の方法。
【請求項５】
前記第２のコンポーネントが、前記第２の変更を前記第１の状態における前記点マップに適用することは、前記第２のコンポーネントが、変更前の第１の状態を生成することを含み、
前記第２のコンポーネントが、前記第１の変更を前記第２の状態における前記第１の更新された点マップに適用することは、前記第２のコンポーネントが、変更前の第２の状態を生成することを含む、
請求項１に記載の方法。
【請求項６】
前記第１のコンポーネントが、前記第１および第２の変更に基づいて、変更順序を生成することと、
前記第１のコンポーネントが、前記変更順序を前記第２のコンポーネントに送信することと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記第２のコンポーネントが、前記変更順序に基づいて、前記第１の変更を前記第２の状態における前記更新された点マップに適用する前に、前記第２の変更を前記第１の状態における前記点マップに適用することをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のプロセスは、追跡、マップ点削除、ＶＩＯ、マッピング、新しいキーフレーム／キーリグフレームの挿入、新しいマップ点の挿入、新しい観察の挿入、バンドル調整、疎マップ幾何学形状の修正、オンライン較正、再位置特定、新しい軌道特徴の追加、新しいＢｏＷインデックスの追加、ループ閉鎖、疎マップ幾何学形状の修正、マップマージ、および同時稠密最適化から成る群から選択される、請求項１に記載の方法。
【請求項９】
前記点マップは、前記システムが位置する物理的場所に対応する、請求項１に記載の方法。
【請求項１０】
前記物理的場所は、部屋である、請求項９に記載の方法。
【請求項１１】
前記物理的場所は、部屋内のセルである、請求項９に記載の方法。
【請求項１２】
前記点マップは、より大きい点マップの一部である、請求項１に記載の方法。
【請求項１３】
前記第１のコンポーネントは、複合現実システムの頭部搭載型視聴覚ディスプレイコンポーネントであり、
前記第２のコンポーネントは、前記複合現実システムの胴体搭載型処理コンポーネントである、
請求項１に記載の方法。
【請求項１４】
前記第２のコンポーネントが、前記第２の変更を前記第１の状態における前記点マップに適用する前に、前記第１および第２の変更を調和させることをさらに含む、請求項１に記載の方法。
【請求項１５】
前記第１および第２のコンポーネントは、第３のコンポーネントに通信可能に結合され、前記方法はさらに、
前記第３のコンポーネントが、第３のプロセスを前記第１の状態における前記点マップ上において実施し、第３の変更を生成することと、
前記第１および第２のコンポーネントが、それぞれ、前記第１および第２の変更を前記第３のコンポーネントに送信することと、
前記第３のコンポーネントが、前記第３の変更を前記第３の状態における前記第２の更新された点マップに適用し、第４の状態における第３の更新された点マップを生成することと
を含む、請求項１に記載の方法。
【請求項１６】
前記第１のコンポーネントは、複合現実システムの頭部搭載型視聴覚ディスプレイコンポーネントであり、
前記第２のコンポーネントは、前記複合現実システムの胴体搭載型処理コンポーネントであり、
前記第３のコンポーネントは、クラウドベースの処理コンポーネントである、
請求項１５に記載の方法。
【請求項１７】
前記第２のコンポーネントが、前記第２の変更を生成する前に、前記第１の変更を前記第１のコンポーネントから受信することをさらに含む、請求項１に記載の方法。
【請求項１８】
前記第２のコンポーネントは、データ記憶のためのリムーバブル媒体を備える、請求項１に記載の方法。
【請求項１９】
頭部搭載型視聴覚ディスプレイコンポーネントと、前記ディスプレイコンポーネントに通信可能に結合される胴体搭載型処理コンポーネントとを有するシステム上において、点マップを更新するためのコンピュータ実装方法であって、前記方法は、
前記処理コンポーネントが、前記点マップを複数の点マップサブユニットに分割することと、
前記処理コンポーネントが、前記複数の点マップサブユニットの第１のサブセットを前記ディスプレイコンポーネントに送信することと、
前記処理コンポーネントが、前記ディスプレイコンポーネントの移動に応答して、前記複数の点マップサブユニットの第２のサブセットを前記ディスプレイコンポーネントに送信することと
を含む、方法。
【請求項２０】
前記ディスプレイコンポーネントが、前記複数の点マップサブユニットの第１のサブセットを記憶することと、
前記ディスプレイコンポーネントが、その移動を検出することと、
前記ディスプレイコンポーネントが、移動データを前記処理コンポーネントに送信することと、
前記ディスプレイコンポーネントが、前記移動に基づいて、前記複数の点マップサブユニットの第１のサブセットの一部を削除することと、
前記ディスプレイコンポーネントが、前記複数の点マップサブユニットの第２のサブセットを受信することと、
前記ディスプレイコンポーネントが、前記複数の点マップサブユニットの第２のサブセットを記憶することと
をさらに含む、請求項１９に記載の方法。
【請求項２１】
前記複数の点マップサブユニットの第１のサブセットおよび前記複数の点マップサブユニットの第２のサブセットの部分は、実質的に同一サイズを有する、請求項２０に記載の方法。
【請求項２２】
前記複数の点マップサブユニットの第２のサブセットは、前記移動の方向に対応し、
前記複数の点マップサブユニットの第１のサブセットの部分は、前記移動の方向と反対の第２の方向に対応する、
請求項２０に記載の方法。
【請求項２３】
前記複数の点マップサブユニットは、３Ｄアレイである、請求項２０に記載の方法。
【請求項２４】
前記３Ｄアレイは、３×３×１アレイ、１０×１０×１アレイ、または６×６×３アレイである、請求項２３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、複数のコンポーネントマッピングおよびマップ同期システムと、それを使用して、複数のコンポーネントを横断してマッピングし、マッピングを同期させる方法とに関する。
【背景技術】
【０００２】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実（ＶＲ）」または「拡張現実（ＡＲ）」体験のための「複合現実」（ＭＲ）システムの開発を促進しており、デジタル的に再現された画像またはその一部が、現実であるように見える、またはそのように知覚され得る様式でユーザに提示される。ＶＲシナリオは、典型的には、実際の実世界の視覚的入力に対して透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。ＡＲシナリオは、典型的には、ユーザの周囲の実世界の可視化（すなわち、実世界視覚入力に対する透過性）の拡張として、デジタルまたは仮想画像情報の提示を伴う。故に、ＡＲシナリオは、実世界視覚的入力に対する透過性を伴って、デジタルまたは仮想画像情報の提示を伴う。
【０００３】
ＭＲシステムは、典型的には、色データを生成および表示し、これは、ＭＲシナリオの現実性を増加させる。これらのＭＲシステムの多くは、カラー画像に対応する異なる（例えば、原）色または「フィールド」（例えば、赤色、緑色、および青色）におけるサブ画像を高速で連続して順次投影することによって、色データを表示する。カラーサブ画像を十分に高レート（例えば、６０Ｈｚ、１２０Ｈｚ等）で投影することは、平滑なカラーＭＲシナリオをユーザの脳に送達し得る。
【０００４】
種々の光学システムは、ＭＲ（ＶＲおよびＡＲ）シナリオを表示するために、カラー画像を含む画像を種々の深度において生成する。いくつかのそのような光学システムは、２０１４年１１月２７日に出願された米国実用特許出願第１４／５５５，５８５号（弁理士整理番号第ＭＬ．２００１１．００号）（その内容は、完全に記載される場合と同様に、参照することによってその全体として明示的かつ完全に本明細書に組み込まれる）に説明される。
【０００５】
ＡＲ／ＭＲを有効にする、頭部装着型ディスプレイデバイスは、実および仮想オブジェクトの両方の同時視認を提供する。「光学シースルー」ディスプレイを用いることで、ユーザは、ディスプレイシステム内の透明（または半透明）要素を通して見え、直接、環境内の実オブジェクトからの光を視認することができる。透明要素は、多くの場合、「コンバイナ」と称され、ディスプレイからの光を実世界のユーザのビューにわたって重畳し、ディスプレイからの光は、仮想コンテンツの画像を環境内の実オブジェクトのシースルービューにわたって投影される。カメラが、頭部装着型ディスプレイデバイス上に搭載され、ユーザによって視認されている場面の画像またはビデオを捕捉し得る。
【０００６】
ＡＲ／ＭＲシステムにおけるもの等の現在の光学システムは、仮想コンテンツを光学的にレンダリングする。コンテンツは、空間内の個別の位置に位置する実際の物理的オブジェクトに対応しないという点で、「仮想」である。代わりに、仮想コンテンツは、ユーザの眼に指向される光ビームによって刺激されるとき、頭部装着型ディスプレイデバイスのユーザの脳（例えば、視覚中枢）内にのみ存在する。
【０００７】
いくつかのＡＲ／ＭＲシステムは、実世界環境のマップ（例えば、トポロジマップ、幾何学的マップ、疎点マップ等）を使用して、ＡＲ／ＭＲシナリオのためのパス可能世界モデルを生成する。パス可能世界モデルは、実世界環境内の実世界オブジェクトを伴う相互作用を促進する（例えば、仮想オブジェクトを実世界ソファ上に表示する）。疎マップは、「安定」座標系に対する視覚姿勢を算出するための基本構築ブロックである。環境特徴は、３Ｄ疎マップ内の基準点となる。センサに対する基準点の位置は、センサの位置または姿勢を定義する。疎マップは、複数のシステムコンポーネントからのデータを使用して構築されることができる。予備マップは、追跡が、実世界環境内の仮想オブジェクトの永続性を促進することを可能にする（「ピクセルスティック」）。いくつかのＡＲ／ＭＲマッピング関連方法は、ユーザおよび／またはＡＲ／ＭＲデバイスの位置および姿勢を決定するために、トポロジマップを使用したＡＲ／ＭＲデバイスの位置特定を伴う。いくつかのＡＲ／ＭＲマッピング関連方法は、幾何学的マップを使用して、ＡＲ／ＭＲデバイスの実世界オブジェクトのモデル化を伴い、仮想オブジェクトのより正確かつ現実的提示を可能にする。いくつかのＡＲ／ＭＲシステムは、同時位置特定およびマッピング技法を使用して、（可能性として考えられる動的）実世界環境のマップを生成および／または更新する。
【０００８】
実施例として、位置特定は、頭部装着型ディスプレイデバイスを装着しているユーザが、仮想オブジェクトが現れるエリアの周囲を歩きながら、仮想オブジェクトをディスプレイ上で視認することを可能にする。更新された位置および姿勢データを用いることで、仮想オブジェクトは、視点毎にレンダリングされ、ユーザに、実空間を占有するオブジェクトの周囲を歩いているという知覚を与えることができる。頭部装着型ディスプレイデバイスが、複数の仮想オブジェクトを提示するために使用される場合、頭部姿勢の測定が、場面をレンダリングし、ユーザの動的に変化する位置および姿勢に合致させ、増加された没入感を提供するために使用されることができる。
【０００９】
マップは、多くの方法および技法を使用して、生成、修正、および／または最適化されることができる。これらの技法のうちのいくつかは、新しいデータを伴う。新しいデータ技法の１つのそのようなグループは、集合的に、追跡と呼ばれ、マップ点統計の更新を含み、これは、マップ点削除をトリガし得る。別の新しいデータ技法は、視覚慣性オドメトリ（「ＶＩＯ」）であって、これは、慣性制約を疎点マップに適用することを含む。新しいデータ技法のさらに別のグループは、集合的に、マッピングと呼ばれ、これは、新しいキーリグフレーム（「キーフレーム」または「リグフレーム」）、マップ点、および観察を挿入することを含む。新しいデータ技法のさらに別のグループは、集合的に、再位置特定と呼ばれ、これは、新しい軌道特徴およびＢａｇ  ｏｆ  Ｗｏｒｄｓ（「ＢｏＷ」）インデックスの追加を含む。新しいデータ技法の別のグループは、集合的に、マップマージと呼ばれ、これは、異なるＡＲ／ＭＲセッションからの疎マップデータを組み込むことを含む。新しいデータ技法のさらに別のグループは、集合的に、同時稠密最適化と呼ばれ、これは、稠密マップデータを組み込むことを含む。
【００１０】
他のマッピング技法は、既存のマップの最適化を伴う。最適化技法の１つのそのようなグループは、集合的に、バンドル調整と呼ばれ、これは、疎マップ幾何学形状の修正およびオンライン較正を含む。最適化技法の別のグループは、集合的に、ループ閉鎖と呼ばれ、これは、疎マップ幾何学形状の修正を含む。
【００１１】
種々のＡＲ／ＭＲマッピング関連方法および技法は、２０１５年５月７日に出願された米国実用特許出願第１４／７０５，９８３号（弁理士整理番号第ＭＬ．２００Ｖ７．３１０号）および２０１５年５月５日に出願された１４／７０４，８４４号（弁理士整理番号第ＭＬ．２００２０．３０４号）（その内容は、完全に記載される場合と同様に、参照することによってその全体として明示的かつ完全に本明細書に組み込まれる）に説明される。
【００１２】
上記に説明されるように、マッピングは、ＡＲ／ＭＲシステム機能を促進する。複数のコンポーネントＡＲ／ＭＲシステムのコンポーネント（例えば、頭部装着型ディスプレイ（「ウェアラブル」）およびベルト装着型または身体装着型処理コンポーネント（「電源パック」））を横断してマップを同期させることは、コヒーレントかつ一貫したＡＲ／ＭＲシナリオを促進する。マップ同期は、処理電力、メモリ、帯域幅、データソース、待ち時間、および複数のオペレーティングシステム、プロセッサ、およびアーキテクチャ等のあるシステム限界を含意する
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許出願第１４／５５５，５８５号明細書
【発明の概要】
【課題を解決するための手段】
【００１４】
一実施形態では、第１および第２の通信可能に結合されるハードウェアコンポーネントを有するシステム上において、点マップを更新するためのコンピュータ実装方法は、第１のコンポーネントが、第１のプロセスを第１の状態における点マップ上において実施し、第１の変更を生成するステップを含む。本方法はまた、第２のコンポーネントが、第２のプロセスを第１の状態における点マップ上において実施し、第２の変更を生成するステップを含む。本方法はさらに、第２のコンポーネントが、第２の変更を第１の状態における点マップに適用し、第２の状態における第１の更新された点マップを生成するステップを含む。さらに、本方法は、第１のコンポーネントが、第１の変更を第２のコンポーネントに送信するステップを含む。加えて、本方法は、第２のコンポーネントが、第１の変更を第２の状態における第１の更新された点マップに適用し、第３の状態における第２の更新された点マップを生成するステップを含む。
【００１５】
１つ以上の実施形態では、本方法はまた、第２のコンポーネントが、第２の変更を第１のコンポーネントに送信するステップを含む。本方法はさらに、第１のコンポーネントが、第２の変更を第１の状態における点マップに適用し、第２の状態における第１の更新された点マップを生成するステップを含む。さらに、本方法は、第１のコンポーネントが、第１の変更を第２の状態における第１の更新された点マップに適用し、第３の状態における第２の更新された点マップを生成するステップを含む。本方法はまた、第１のコンポーネントが、第１および第２の変更に基づいて、変更順序を生成するステップと、第１のコンポーネントが、変更順序に基づいて、第１の変更を第２の状態における更新された点マップに適用する前に、第２の変更を第１の状態における点マップに適用するステップとを含んでもよい。第１のコンポーネントが、第２の変更を第１の状態における点マップに適用するステップは、第１のコンポーネントが、変更前の第１の状態を生成するステップを含んでもよい。第１のコンポーネントが、第１の変更を第２の状態における第１の更新された点マップに適用するステップは、第１のコンポーネントが、変更前の第２の状態を生成するステップを含んでもよい。第２のコンポーネントが、第２の変更を第１の状態における点マップに適用するステップは、第２のコンポーネントが、変更前の第１の状態を生成するステップを含んでもよく、第２のコンポーネントが、第１の変更を第２の状態における第１の更新された点マップに適用するステップは、第２のコンポーネントが、変更前の第２の状態を生成するステップを含んでもよい。
【００１６】
１つ以上の実施形態では、本方法はまた、第１のコンポーネントが、第１および第２の変更に基づいて、変更順序を生成するステップと、第１のコンポーネントが、変更順序を第２のコンポーネントに送信するステップとを含む。本方法はまた、第２のコンポーネントが、変更順序に基づいて、第１の変更を第２の状態における更新された点マップに適用する前に、第２の変更を第１の状態における点マップに適用するステップを含んでもよい。第１のプロセスは、追跡、マップ点削除、ＶＩＯ、マッピング、新しいキーフレーム／キーリグフレームの挿入、新しいマップ点の挿入、新しい観察の挿入、バンドル調整、疎マップ幾何学形状の修正、オンライン較正、再位置特定、新しい軌道特徴の追加、新しいＢｏＷインデックスの追加、ループ閉鎖、疎マップ幾何学形状の修正、マップマージ、および同時稠密最適化から成る群から選択されてもよい。
【００１７】
１つ以上の実施形態では、点マップは、システムが位置する、物理的場所に対応する。物理的場所は、部屋または部屋内のセルであってもよい。点マップは、より大きい点マップの一部であってもよい。
【００１８】
１つ以上の実施形態では、第１のコンポーネントは、複合現実システムの頭部搭載型視聴覚ディスプレイコンポーネントであって、第２のコンポーネントは、複合現実システムの胴体搭載型処理コンポーネントである。本方法はまた、第２のコンポーネントが、第２の変更を第１の状態における点マップに適用する前に、第１および第２の変更を調和させるステップを含んでもよい。
【００１９】
１つ以上の実施形態では、第１および第２のコンポーネントは、第３のコンポーネントに通信可能に結合される。本方法はまた、第３のコンポーネントが、第３のプロセスを第１の状態における点マップ上において実施し、第３の変更を生成するステップを含む。本方法はさらに、第１および第２のコンポーネントが、それぞれ、第１および第２の変更を第３のコンポーネントに送信するステップを含む。さらに、本方法は、第３のコンポーネントが、第３の変更を第３の状態における第２の更新された点マップに適用し、第４の状態における第３の更新された点マップを生成するステップを含む。第１のコンポーネントは、複合現実システムの頭部搭載型視聴覚ディスプレイコンポーネントであってもよく、第２のコンポーネントは、複合現実システムの胴体搭載型処理コンポーネントであってもよく、第３のコンポーネントは、クラウドベースの処理コンポーネントであってもよい。本方法はまた、第２のコンポーネントが、第２の変更を生成する前に、第１の変更を第１のコンポーネントから受信するステップを含んでもよい。第２のコンポーネントは、データ記憶のためのリムーバブル媒体を含んでもよい。
【００２０】
別の実施形態では、複合現実システムは、頭部搭載型視聴覚ディスプレイコンポーネントと、ディスプレイコンポーネントに通信可能に結合される、胴体搭載型処理コンポーネントとを含む。ディスプレイコンポーネントは、第１のプロセスを第１の状態における点マップ上において実施し、第１の変更を生成し、第１の変更を処理コンポーネントに送信するように構成される。処理コンポーネントは、第２のプロセスを第１の状態における点マップ上において実施し、第２の変更を生成し、第２の変更を第１の状態における点マップに適用し、第２の状態における第１の更新された点マップを生成し、第１の変更を第２の状態における第１の更新された点マップに適用し、第３の状態における第２の更新された点マップを生成するように構成される。
【００２１】
１つ以上の実施形態では、処理コンポーネントはさらに、第２の変更をディスプレイコンポーネントに送信するように構成される。ディスプレイコンポーネントはまた、第２の変更を第１の状態における点マップに適用し、第２の状態における第１の更新された点マップを生成し、第１の変更を第２の状態における第１の更新された点マップに適用し、第３の状態における第２の更新された点マップを生成するように構成される。ディスプレイコンポーネントはまた、第１および第２の変更に基づいて、変更順序を生成し、変更順序に基づいて、第１の変更を第２の状態における更新された点マップに適用する前に、第２の変更を第１の状態における点マップに適用するように構成されてもよい。
【００２２】
１つ以上の実施形態では、ディスプレイコンポーネントはさらに、第１および第２の変更に基づいて、変更順序を生成し、変更順序を処理コンポーネントに送信するように構成される。処理コンポーネントはまた、変更順序に基づいて、第１の変更を第２の状態における更新された点マップに適用する前に、第２の変更を第１の状態における点マップに適用するように構成されてもよい。第１のプロセスは、追跡、マップ点削除、ＶＩＯ、マッピング、新しいキーフレーム／キーリグフレームの挿入、新しいマップ点の挿入、新しい観察の挿入、バンドル調整、疎マップ幾何学形状の修正、オンライン較正、再位置特定、新しい軌道特徴の追加、新しいＢｏＷインデックスの追加、ループ閉鎖、疎マップ幾何学形状の修正、マップマージ、および同時稠密最適化から成る群から選択されてもよい。
【００２３】
１つ以上の実施形態では、点マップは、システムが位置する、物理的場所に対応する。物理的場所は、部屋または部屋内のセルであってもよい。点マップは、より大きい点マップの一部であってもよい。
【００２４】
１つ以上の実施形態では、処理コンポーネントはさらに、第２の変更を第１の状態における点マップに適用する前に、第１および第２の変更を調和させるように構成される。ディスプレイおよび処理コンポーネントは、オンラインコンポーネントに通信可能に結合されてもよい。ディスプレイおよび処理コンポーネントは、それぞれ、第１および第２の変更をオンラインコンポーネントに送信するように構成されてもよい。オンラインコンポーネントは、第３のプロセスを第１の状態における点マップ上において実施し、第３の変更を生成し、第３の変更を第３の状態における第２の更新された点マップに適用し、第４の状態における第３の更新された点マップを生成するように構成されてもよい。
【００２５】
１つ以上の実施形態では、ディスプレイコンポーネントは、変更順序を生成し、変更順序に基づいて、変更を適用し、変更順序を処理コンポーネントに送信するように構成される、ディスプレイコンポーネントマップマネージャを含む。ディスプレイコンポーネントはまた、第１の変更を処理コンポーネントに送信するように構成される、ディスプレイコンポーネント変更ライタを含む。ディスプレイコンポーネントはさらに、変更を受信するように構成される、ディスプレイコンポーネント変更リーダを含む。ディスプレイコンポーネントマップマネージャはまた、変更前の状態を生成するように構成されてもよい。ディスプレイコンポーネントマップマネージャは、変更バッファを含んでもよい。
【００２６】
１つ以上の実施形態では、処理コンポーネントは、変更順序を受信し、変更順序に基づいて、変更を適用するように構成される、処理コンポーネントマップマネージャを含む。処理コンポーネントはまた、第２の変更をディスプレイコンポーネントに送信するように構成される、処理コンポーネント変更ライタを含む。処理コンポーネントはさらに、変更を受信するように構成される、処理コンポーネント変更リーダを含む。処理コンポーネントマップマネージャはまた、変更前の状態を生成するように構成されてもよい。処理コンポーネントマップマネージャは、変更バッファを含んでもよい。処理コンポーネントは、データ記憶のためのリムーバブル媒体を含んでもよい。
【００２７】
さらに別の実施形態では、頭部搭載型視聴覚ディスプレイコンポーネントと、ディスプレイコンポーネントに通信可能に結合される、胴体搭載型処理コンポーネントとを有する、システム上において、点マップを更新するためのコンピュータ実装方法は、処理コンポーネントが、点マップを複数の点マップサブユニットに分割するステップを含む。本方法はまた、処理コンポーネントが、複数の点マップサブユニットの第１のサブセットをディスプレイコンポーネントに送信するステップを含む。本方法はさらに、処理コンポーネントが、ディスプレイコンポーネントの移動に応答して、複数の点マップサブユニットの第２のサブセットをディスプレイコンポーネントに送信するステップを含む。
【００２８】
１つ以上の実施形態では、本方法はまた、ディスプレイコンポーネントが、複数の点マップサブユニットの第１のサブセットを記憶するステップと、ディスプレイコンポーネントが、その移動を検出するステップと、ディスプレイコンポーネントが、移動データを処理コンポーネントに送信するステップとを含み、本方法はさらに、ディスプレイコンポーネントが、移動に基づいて、複数の点マップサブユニットの第１のサブセットの一部を削除するステップと、ディスプレイコンポーネントが、複数の点マップサブユニットの第２のサブセットを受信するステップと、ディスプレイコンポーネントが、複数の点マップサブユニットの第２のサブセットを記憶するステップとを含む。複数の点マップサブユニットの第１のサブセットおよび複数の点マップサブユニットの第２のサブセットの部分は、実質的に同一サイズを有してもよい。
【００２９】
１つ以上の実施形態では、複数の点マップサブユニットの第２のサブセットは、移動の方向に対応し、複数の点マップサブユニットの第１のサブセットの部分は、移動の方向と反対の第２の方向に対応する。複数の点マップサブユニットは、３Ｄアレイであってもよい。３Ｄアレイは、３×３×１アレイ、１０×１０×１アレイ、または６×６×３アレイであってもよい。
【００３０】
さらに別の実施形態では、複合現実システムは、頭部搭載型視聴覚ディスプレイコンポーネントと、ディスプレイコンポーネントに通信可能に結合される、胴体搭載型処理コンポーネントとを含む。処理コンポーネントは、点マップを複数の点マップサブユニットに分割し、複数の点マップサブユニットの第１のサブセットをディスプレイコンポーネントに送信し、ディスプレイコンポーネントの移動に応答して、複数の点マップサブユニットの第２のサブセットをディスプレイコンポーネントに送信するように構成される。ディスプレイコンポーネントは、複数の点マップサブユニットの第１のサブセットを記憶し、その移動を検出し、移動データを処理コンポーネントに送信し、移動に基づいて、複数の点マップサブユニットの第１のサブセットの一部を削除し、複数の点マップサブユニットの第２のサブセットを受信し、複数の点マップサブユニットの第２のサブセットを記憶するように構成される。
【００３１】
１つ以上の実施形態では、複数の点マップサブユニットの第１のサブセットおよび複数の点マップサブユニットの第２のサブセットの部分は、実質的に同一サイズを有する。複数の点マップサブユニットの第２のサブセットは、移動の方向に対応してもよく、複数の点マップサブユニットの第１のサブセットの部分は、移動の方向と反対の第２の方向に対応してもよい。複数の点マップサブユニットは、３Ｄアレイであってもよい。３Ｄアレイは、３×３×１アレイ、１０×１０×１アレイ、または６×６×３アレイであってもよい。
【００３２】
別の実施形態では、ＵＳＢケーブルを横断してデータを通信するためのシステムは、ライタと、リーダと、セルのアレイを含む、データ構造とを含む。アレイの各セルは、所有者インジケータと、状態インジケータと、セルデータとを含む。
【００３３】
１つ以上の実施形態では、セルのアレイは、複数のマップセルと、少なくとも１つの遷移セルとを含む。本システムはまた、マップの各セルに対応する複数のポインタと、マップのポインタまたはセルのカウントとを含む、セルリストを含んでもよい。
【００３４】
さらに別の実施形態では、ライタと、リーダと、セルのアレイであって、アレイの各セルは、所有者インジケータと、状態インジケータと、セルデータとを含む、セルのアレイを含む、データ構造とを含む、システムを使用して、ＵＳＢケーブルを横断してデータを通信するための方法は、全ての所有者インジケータを「所有者なし」に設定し、全ての状態インジケータを「無効」に設定することによって、データ構造を初期化するステップを含む。本方法はまた、ＵＳＢケーブルを横断して転送されるべきセルを識別するステップを含む。本方法はさらに、セルの所有者インジケータを「ｃｏｍｍ２」に設定するステップを含む。さらに、本方法は、セルの状態インジケータを「ＵＳＢ」に設定するステップを含む。加えて、本方法は、ＵＳＢケーブルを横断してセルを転送するステップを含む。本方法はまた、ＵＳＢケーブルを横断してセルを転送後、セルの所有者インジケータを「マップ」に設定するステップを含む。本方法はさらに、ＵＳＢケーブルを横断してセルを転送後、セルの状態インジケータを「マップ」に設定するステップを含む。
【００３５】
１つ以上の実施形態では、本方法はまた、システムが、「マップ」に設定される所有者インジケータを有する、各セルに対応する複数のポインタと、「マップ」に設定される所有者インジケータを有する、複数のセルのポインタのカウントとを含む、セルリストを読み取るステップを含む。本方法はまた、書込が、要求アレイを取り込むステップを含んでもよい。本方法はさらに、セルの所有者インジケータを「所有者なし」に設定し、セルの状態インジケータを「無効」に設定することによって、セルを無効にするステップを含んでもよい。さらに、本方法は、セルの所有者インジケータを「ｃｏｍｍ２」に設定し、セルの状態インジケータを「ＵＳＢ」に設定することによって、セルを送信するステップを含んでもよい。
【００３６】
本開示の付加的および他の目的、特徴、および利点は、詳細な説明、図、および請求項に説明される。
【図面の簡単な説明】
【００３７】
図面は、本開示の種々の実施形態の設計および可用性を図示する。図は、正確な縮尺で描かれておらず、類似構造または機能の要素は、図全体を通して類似参照番号によって表されることに留意されたい。本開示の種々の実施形態の前述および他の利点および目的を得る方法をより深く理解するために、簡単に前述された開示の詳細な説明が、付随の図面に図示されるその具体的実施形態を参照することによって与えられるであろう。これらの図面は、本開示の典型的実施形態のみを描写し、したがって、その範囲の限定として見なされないことを理解した上で、本開示は、付随の図面の使用を通して付加的具体性および詳細とともに記載および説明されるであろう。
【００３８】
【図１】図１−４は、いくつかの実施形態による、そのＶＲ／ＡＲ／ＭＲシステムおよびサブシステムを図式的に描写する。
【図２】図１−４は、いくつかの実施形態による、そのＶＲ／ＡＲ／ＭＲシステムおよびサブシステムを図式的に描写する。
【図３】図１−４は、いくつかの実施形態による、そのＶＲ／ＡＲ／ＭＲシステムおよびサブシステムを図式的に描写する。
【図４】図１−４は、いくつかの実施形態による、そのＶＲ／ＡＲ／ＭＲシステムおよびサブシステムを図式的に描写する。
【００３９】
【図５】図５は、いくつかの実施形態による、ＶＲ／ＡＲ／ＭＲシステムの焦点平面を描写する。
【００４０】
【図６】図６は、いくつかの実施形態による、パス可能世界モデルの簡略化されたビューを描写する。
【００４１】
【図７】図７は、いくつかの実施形態による、パス可能世界モデルを使用してレンダリングする方法を描写する。
【００４２】
【図８】図８は、いくつかの実施形態による、トポロジマップを描写する。
【００４３】
【図９】図９は、いくつかの実施形態による、トポロジマップを使用した位置特定のプロセスのための高レベルフロー図を描写する。
【００４４】
【図１０】図１０は、いくつかの実施形態による、種々のキーフレーム間の接続としての幾何学的マップを描写する。
【００４５】
【図１１】図１１は、いくつかの実施形態による、幾何学的マップの上部に層化されたトポロジマップを描写する。
【００４６】
【図１２】図１２は、いくつかの実施形態による、波伝搬バンドル調整を実施するプロセスのための高レベルフロー図を描写する。
【００４７】
【図１３】図１３は、いくつかの実施形態による、仮想キーフレームを通して見られるようなマップ点、キーフレーム、およびマップ点からキーフレームまでのレンダリングラインを描写する。
【００４８】
【図１４】図１４は、いくつかの実施形態による、検索ではなく、レンダリングに基づいて、マップ点を見出すプロセスのための高レベルフロー図を描写する。
【００４９】
【図１５】図１５は、いくつかの実施形態による、複数のＡＲ／ＭＲシステムを含む、マッピングシステムを図式的に描写する。
【００５０】
【図１６】図１６は、いくつかの実施形態による、マルチコンポーネントマッピングシステムを使用した非同期マッピング方法のためのワークフローを描写する。
【００５１】
【図１７】図１７Ａ−１７Ｄは、いくつかの実施形態による、複数の例示的ループ閉鎖動作を描写する。
【００５２】
【図１８】図１８は、いくつかの実施形態による、マップ管理を伴うマルチコンポーネントマッピングシステムを使用した非同期マッピング方法のためのワークフローを描写する。
【００５３】
【図１９】図１９は、いくつかの実施形態による、マッピングおよびマップ同期のためのＡＲ／ＭＲシステムを図式的に描写する。
【００５４】
【図２０】図２０は、いくつかの実施形態による、変更順序を生成する、マッピングおよびマップ同期のためのＡＲ／ＭＲシステムのウェアラブルマップマネージャを図式的に描写する。
【００５５】
【図２１】図２１は、いくつかの実施形態による、変更順序に基づいて、複数の受信された状態変更を適用する、マッピングおよびマップ同期のためのＡＲ／ＭＲシステムの電源パックマップマネージャを図式的に描写する。
【００５６】
【図２２】図２２は、いくつかの実施形態による、複数の受信された状態変更を処理し、変更順序を生成する、マッピングおよびマップ同期のためのＡＲ／ＭＲシステムのウェアラブルマップマネージャを図式的に描写する。
【００５７】
【図２３】図２３は、いくつかの実施形態による、変更順序に基づいて、複数の受信された状態変更を処理する、マッピングおよびマップ同期のためのＡＲ／ＭＲシステムの電源パックマップマネージャを図式的に描写する。
【００５８】
【図２４】図２４および２５は、いくつかの実施形態による、複数のコンポーネントマッピングシステムにおけるセルストリーミング方法を図式的に描写する。
【図２５】図２４および２５は、いくつかの実施形態による、複数のコンポーネントマッピングシステムにおけるセルストリーミング方法を図式的に描写する。
【００５９】
【図２６】図２６および２７は、いくつかの実施形態による、ゼロコピーデータ転送のためのデータ構造を描写する。
【図２７】図２６および２７は、いくつかの実施形態による、ゼロコピーデータ転送のためのデータ構造を描写する。
【００６０】
【図２８】図２８は、いくつかの実施形態による、例証的コンピューティングシステムを図式的に描写する、ブロック図である。
【発明を実施するための形態】
【００６１】
本開示の種々の実施形態は、単一実施形態または複数の実施形態における、複数のコンポーネントシステム内のマッピングおよびマップ同期のためのシステム、方法、および製造品を対象とする。本開示の他の目的、特徴、および利点は、詳細な説明、図、および請求項に説明される。
【００６２】
ここで、種々の実施形態が、当業者が本開示を実践することを可能にするように、本開示の例証的実施例として提供される、図面を参照して詳細に説明される。留意すべきこととして、以下の図および実施例は、本開示の範囲を限定することを意味するものではない。本開示のある要素が、公知の構成要素（または方法またはプロセス）を使用して部分的または完全に実装され得る場合、本開示の理解のために必要なそのような公知の構成要素（または方法またはプロセス）のそれらの部分のみが、説明され、そのような公知の構成要素（または方法またはプロセス）の他の部分の詳細な説明は、本開示を曖昧にしないように、省略されるであろう。さらに、種々の実施形態は、例証として本明細書に参照される構成要素の現在および将来的公知の均等物を包含する。
【００６３】
システム間で変調する、頭部搭載型視聴覚ディスプレイシステムとユーザの物理的接触は、ＡＲ／ＭＲシステムから独立して実装され得るが、下記のいくつかの実施形態は、例証目的のみのために、ＡＲ／ＭＲシステムに関連して説明される。本明細書に説明されるシステムを変調させる接触はまた、ＶＲシステムでも同じ様式で使用され得る。
（問題およびソリューションの説明）
【００６４】
マッピングは、多くのＡＲ／ＭＲシステム機能の基本であって、複数のコンポーネントＡＲ／ＭＲシステムのコンポーネントを横断したマップ同期は、コヒーレントかつ一貫したＡＲ／ＭＲシナリオのための安定マッピングを促進する。処理電力、メモリ、帯域幅、データソース、コンポーネント待ち時間、および複数のオペレーティングシステム、プロセッサ、およびアーキテクチャ等のシステム限界は、マッピングの間、全体的システム待ち時間をもたらし得、これは、ＡＲ／ＭＲシステム性能に悪影響を及ぼし得る。
【００６５】
例えば、いくつかのウェアラブルでは、追跡は、マップデータおよび関連処理のかなりの部分を消費し、マッピングは、生産されるマップデータの大部分をウェアラブル上で生成する。さらに、いくつかのウェアラブルは、マッピングのためのデータを提供する、正面に面した（「ＦＯＶ」）カメラを有する。故に、待ち時間が重要となるジョブおよびＦＯＶカメラデータを使用するジョブは、ウェアラブル上で起動されることが好ましい。しかしながら、ウェアラブルは、限定されたメモリおよび処理予算／電力を有する。例えば、多くのウェアラブルは、大実世界エリア／空間に関する疎点マップ全体を記憶することができない。また、多くのウェアラブルは、大規模な幾何学的最適化（例えば、グローバルバンドル調整、ループ閉鎖等）を実践的時間量において起動することができない。
【００６６】
電源パックは、典型的には、ウェアラブルより多くのメモリ（ＳＤカード等のある持続的メモリを含む）および処理電力を有する。故に、電源パックは、より多くのマップデータ（大実世界エリアに関する疎点マップデータと、限定される実世界エリアに関する稠密点マップデータとを含む）および処理電力へのアクセスを有し、大規模幾何学的最適化（例えば、グローバルバンドル調整、ループ閉鎖等）を起動する。電源パックは、稠密点マップデータを伴う最適化を起動するためにさえ十分な処理電力を有し得る。しかしながら、マップデータは、リンク（例えば、ＵＳＢ）を通してウェアラブルから電源パックに進行し得、更新されたマップは、リンクを通して電源パックからウェアラブルに進行し得る。ＵＳＢ等のリンクは、容認不可能なシステム待ち時間をもたらす、限定された帯域幅を有し得る。例えば、待ち時間に敏感なジョブ（例えば、頭部姿勢関連ジョブ）は、電源パックにおける処理を伴わずに、ウェアラブルで実施されることが好ましい。
【００６７】
いくつかのＡＲ／ＭＲシステムはまた、クラウドベースの記憶装置および処理コンポーネントを含む。クラウドコンポーネントは、大量の持続的記憶および処理電力へのアクセスを有し得る。クラウドコンポーネントはまた、先行時間における異なるシステムまたは同一システムによって生産された同一実世界エリア／環境の疎および稠密点マップへのアクセスを有し得る。異なるシステムからのデータは、クラウド上にマップのメッシュとして記憶され、より大きいスケールの最適化を可能にし得る。故に、クラウドコンポーネントは、複数のセッションからの疎および稠密点マップデータを伴う、処理集約的である最適化を実施することができる。しかしながら、クラウドコンポーネントと電源パックおよびウェアラブルとの間のネットワーク接続は、常時、利用可能であるわけではない。故に、待ち時間に敏感なジョブ（例えば、頭部姿勢関連ジョブ）は、クラウドコンポーネントの関与を伴って実施されることが好ましい。いくつかの実施形態では、マッピングの第４の層が、クラウドコンポーネント層の上部に存在し得る。
【００６８】
さらに、これらのＡＲ／ＭＲシステムコンポーネントは、異なるプラットフォーム、アーキテクチャ、および編成構造を伴う。例えば、これらのシステムコンポーネント（ウェアラブル、電源パック、クラウド）は、異なるプロセッサアーキテクチャ、メモリ階層、および記憶モデル（例えば、ウェアラブルのためのＭｙｒｉａｄ／Ｓｔｒｅａｍｉｎｇ  Ｈｙｂｒｉｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｖｅｃｔｏｒ  Ｅｎｇｉｎｅ（「ＳＨＡＶＥ」）、電源パックのためのＮＶｉｄｉａ／ＡＲＭ、クラウドのためのＰＣ）を有し得る。システムコンポーネントはまた、異なるフレームワーク環境／オペレーティングシステム（例えば、ウェアラブルのためのｍｉｎｏｔａｕｒ、電源パックのためのｍａｌｌｅｕｓ、クラウドのための種々のＯＳ）を有し得る。さらに、システムコンポーネントは、異なるコードベース、解放プロセス等（例えば、特に、ウェアラブルと電源パックとの間対クラウド）を有し得る。これらのコンポーネント差異は、マップ同期をさらに複雑にし得る。
【００６９】
本明細書に説明される実施形態は、処理結果を変更としてフォーマット化し、変更順序を利用することによって、全てのシステムコンポーネントのために並列処理を可能にする、マップデータ処理パイプラインを含む。本処理パイプラインは、システム待ち時間を低減させ、システムコンポーネントが、マップデータの連続処理を待機する間のシステムコンポーネント休止時間を最小限にしながら、最良合致ジョブを実施することを可能にする。実施形態はまた、独立して、転送可能かつ操作可能なマップサブユニットを含む、マップデータフォーマット／構造を含む。本マップデータフォーマット／構造は、ウェアラブルが、電源パックが実世界エリアの疎点マップを定義する複数のマップサブユニットを記憶する間、マップサブユニットのサブセットに作用することを可能にする。実施形態はさらに、所有権および状態情報を含む、帯域幅限定チャネルを横断してデータを転送するためのデータフォーマット／構造を含む。本マップデータフォーマット／構造は、そのような帯域幅限定チャネル（例えば、ＵＳＢ）を横断してより効率的データ転送を可能にする。
（例証的ＶＲ、ＡＲ、および／またはＭＲシステム）
【００７０】
続く説明は、システムを変調させる接触が実践され得る、例証的ＶＲ、ＡＲ、および／またはＭＲシステムに関する。しかしながら、実施形態はまた、他のタイプのディスプレイシステム（他のタイプのＶＲ、ＡＲ、および／またはＭＲシステムを含む）における用途にも適しており、したがって、実施形態は、本明細書に開示される例証的システムのみに限定されないことを理解されたい。
【００７１】
ＶＲ、ＡＲ、および／またはＭＲ仮想画像システム１００の種々のコンポーネントは、図１−４に描写される。仮想画像生成システム１００は、エンドユーザ５０によって装着される、フレーム構造１０２と、ディスプレイサブシステム１１０がエンドユーザ５０の眼の正面に位置付けられるように、フレーム構造１０２によって担持される、ディスプレイサブシステム１１０と、スピーカ１０６がエンドユーザ５０の外耳道に隣接して位置付けられる（随意に、別のスピーカ（図示せず）が、エンドユーザ５０の他方の外耳道に隣接して位置付けられ、ステレオ／調節可能音制御を提供する）ように、フレーム構造１０２によって担持される、スピーカ１０６とを備える。ディスプレイサブシステム１１０は、エンドユーザ５０の眼に、高レベルの画質および３次元知覚を伴い、かつ２次元コンテンツを提示することも可能である、物理的現実に対する拡張として快適に知覚され得る、光パターンを提示するように設計される。ディスプレイサブシステム１１０は、単一コヒーレント場面の知覚を提供する、フレームのシーケンスを、高周波数で提示する。
【００７２】
図示される実施形態では、ディスプレイサブシステム１１０は、「光学シースルー」ディスプレイを採用し、それを通してユーザは、透明（または半透明）要素を介して、直接、実オブジェクトからの光を視認することができる。透明要素は、多くの場合、「コンバイナ」と称され、ディスプレイからの光を実世界のユーザのビューにわたって重畳する。この目的を達成するために、ディスプレイサブシステム１１０は、部分的に透明なディスプレイを備える。ディスプレイは、周囲環境からの直接光が、ディスプレイを通して、エンドユーザ５０の眼に伝送されるように、エンドユーザ５０の眼と周囲環境との間のエンドユーザの５０視野内に位置付けられる。
【００７３】
図示される実施形態では、画像投影アセンブリは、光を部分的に透明なディスプレイに提供し、それによって、周囲環境からの直接光と組み合わせられ、ディスプレイからユーザの眼５０に伝送される。投影サブシステムは、光ファイバ走査ベースの投影デバイスであってもよく、ディスプレイは、その中に投影サブシステムからの走査される光が、例えば、無限遠（例えば、腕の長さ）より近い単一光学視認距離における画像、複数の離散光学視認距離または焦点平面における画像、および／または立体３Ｄオブジェクトを表すために複数の視認距離または焦点平面にスタックされた画像層を生産するように投入される、導波管ベースのディスプレイであってもよい。ライトフィールド内のこれらの層は、ヒト副視覚系に持続的に現れるようにともに十分に近接してスタックされてもよい（すなわち、１つの層が隣接する層の乱信号円錐域内にある）。加えて、または代替として、ピクチャ要素が、２つ以上の層を横断して混成され、それらの層が、より疎らにスタックされる（すなわち、１つの層が隣接する層の乱信号円錐域の外側にある）場合でも、ライトフィールド内の層間の遷移の知覚される連続性を増加させてもよい。ディスプレイサブシステム１１０は、単眼または両眼用であってもよい。
【００７４】
仮想画像生成システム１００はまた、エンドユーザ５０の頭部５４の位置および移動および／またはエンドユーザ５０の眼位置および眼球間距離を検出するためにフレーム構造１０２に搭載される、１つ以上のセンサ（図示せず）を含んでもよい。そのようなセンサは、画像捕捉デバイス（カメラ等）、マイクロホン、慣性測定ユニット、加速度計、コンパス、ＧＰＳユニット、無線デバイス、および／またはジャイロスコープを含んでもよい。これらのセンサの多くは、その上にそれらが添着されるフレーム１０２が、ひいては、ユーザの頭部、眼、および耳に実質的に固定されるという仮定に基づいて動作する。
【００７５】
仮想画像生成システム１００はまた、ユーザ配向検出モジュールを含んでもよい。ユーザ配向モジュールは、エンドユーザ５０の頭部５４の瞬間位置を検出し（例えば、フレーム１０２に結合されるセンサを介して）、センサから受信された位置データに基づいて、エンドユーザ５０の頭部５４の位置を予測してもよい。エンドユーザ５０の頭部５４の瞬間位置を検出することは、エンドユーザ５０が見ている、具体的実際のオブジェクトの決定を促進し、それによって、その実際のオブジェクトに関連して生成されるべき具体的仮想オブジェクトのインジケーションを提供し、その中に仮想オブジェクトが表示されるべき位置のインジケーションをさらに提供する。ユーザ配向モジュールはまた、センサから受信された追跡データに基づいて、エンドユーザ５０の眼を追跡してもよい。
【００７６】
仮想画像生成システム１００はまた、多種多様な形態のいずれかをとり得る、制御サブシステムを含んでもよい。制御サブシステムは、いくつかのコントローラ、例えば、１つ以上のマイクロコントローラ、マイクロプロセッサまたは中央処理ユニット（ＣＰＵ）、デジタル信号プロセッサ、グラフィック処理ユニット（ＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）等の他の集積回路コントローラ、プログラマブルゲートアレイ（ＰＧＡ）、例えば、フィールドＰＧＡ（ＦＰＧＡ）、および／またはプログラマブル論理コントローラ（ＰＬＵ）を含む。
【００７７】
仮想画像生成システム１００の制御サブシステムは、中央処理ユニット（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）、１つ以上のフレームバッファ、および３次元場面データを記憶するための３次元データベースを含んでもよい。ＣＰＵは、全体的動作を制御してもよい一方、ＧＰＵは、３次元データベース内に記憶される３次元データからフレームをレンダリングし（すなわち、３次元場面を２次元画像に変換し）、これらのフレームをフレームバッファ内に記憶してもよい。１つ以上の付加的集積回路は、フレームバッファの中へのフレームの読込および／またはそこからの読出およびディスプレイサブシステム１１０の画像投影アセンブリの動作を制御してもよい。
【００７８】
仮想画像生成システム１００の種々の処理コンポーネントは、分散型サブシステム内に物理的に含有されてもよい。例えば、図１−４に図示されるように、仮想画像生成システム１００は、有線導線または無線コネクティビティ１３６等によってディスプレイサブシステム１１０およびセンサに動作可能に結合される、ローカル処理およびデータモジュール１３０を含んでもよい。ローカル処理およびデータモジュール１３０は、フレーム構造１０２（図１）に固定して取り付けられる、ヘルメットまたは帽子５６（図２）に固定して取り付けられる、エンドユーザ５０の胴体５８に除去可能に取り付けられる（図３）、またはベルト結合式構成においてエンドユーザ５０の腰部６０に除去可能に取り付けられる（図４）等、種々の構成において搭載されてもよい。仮想画像生成システム１００はまた、これらの遠隔モジュール１３２、１３４が、相互に動作可能に結合され、ローカル処理およびデータモジュール１３０へのリソースとして利用可能であるように、有線導線または無線コネクティビティ１３８、１４０等によってローカル処理およびデータモジュール１３０に動作可能に結合される、遠隔処理モジュール１３２および遠隔データリポジトリ１３４を含んでもよい。
【００７９】
ローカル処理およびデータモジュール１３０は、電力効率的プロセッサまたはコントローラおよびフラッシュメモリ等のデジタルメモリを備えてもよく、その両方とも、可能性として処理または読出後、ディスプレイサブシステム１１０への通過のために、センサから捕捉された、および／または遠隔処理モジュール１３２および／または遠隔データリポジトリ１３４を使用して入手および／または処理された、データの処理、キャッシュ、および記憶を補助するために利用されてもよい。遠隔処理モジュール１３２は、データおよび／または画像情報を分析および処理するように構成される、１つ以上の比較的に強力なプロセッサまたはコントローラを備えてもよい。遠隔データリポジトリ１３４は、比較的に大規模デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータは、記憶され、全ての算出は、ローカル処理およびデータモジュール１３０内で実施され、任意の遠隔モジュールからの完全に自律的使用を可能にする。
【００８０】
上記に説明される種々のコンポーネント間の結合１３６、１３８、１４０は、ワイヤまたは光学連通を提供するための１つ以上の有線インターフェースまたはポート、または無線通信を提供するためのＲＦ、マイクロ波、およびＩＲ等を介した１つ以上の無線インターフェースまたはポートを含んでもよい。いくつかの実装では、全ての通信は、有線であってもよい一方、他の実装では、全ての通信は、無線であってもよい。なおもさらなる実装では、有線および無線通信の選択肢は、図１−４に図示されるものと異なり得る。したがって、有線または無線通信の特定の選択肢は、限定と見なされるべきではない。
【００８１】
いくつかの実施形態では、ユーザ配向モジュールは、ローカル処理およびデータモジュール１３０内に含有される一方、ＣＰＵおよびＧＰＵは、遠隔処理モジュール内に含有される。代替実施形態では、ＣＰＵ、ＧＰＵ、またはその一部は、ローカル処理およびデータモジュール１３０内に含有されてもよい。３Ｄデータベースは、遠隔データリポジトリ１３４と関連付けられる、またはローカルで配置されることができる。
【００８２】
いくつかのＶＲ、ＡＲ、および／またはＭＲシステムは、個別の深度平面から生じるように現れる画像を生成するための深度平面情報を内蔵する、複数の体積位相ホログラム、表面レリーフホログラム、または光誘導光学要素を使用する。言い換えると、回折パターンまたは回折光学要素（「ＤＯＥ」）が、コリメートされた光（略平面波面を伴う光ビーム）が、ＬＯＥに沿って実質的に全内部反射されるにつれて、複数の場所において回折パターンと交差し、ユーザの眼に向かって出射するように、光誘導光学要素（「ＬＯＥ」、例えば、平面導波管）内に内蔵される、またはその上にインプリント／エンボス加工されてもよい。ＤＯＥは、特定の深度平面から生じるように現れるように、それを通してＬＯＥから出射する光が輻輳されるように構成される。コリメートされた光は、光学集光レンズ（「集光器」）を使用して生成されてもよい。
【００８３】
例えば、第１のＬＯＥは、光学無限遠深度平面（０ジオプタ）から生じるように現れる、コリメートされた光を眼に送達するように構成されてもよい。別のＬＯＥは、２メートルの距離（１／２ジオプタ）から生じるように現れる、コリメートされた光を送達するように構成されてもよい。さらに別のＬＯＥは、１メートルの距離（１ジオプタ）から生じるように現れる、コリメートされた光を送達するように構成されてもよい。スタックされたＬＯＥアセンブリを使用することによって、複数の深度平面が、作成され得、各ＬＯＥは、特定の深度平面から生じるように現れる、画像を表示するように構成されることを理解されたい。スタックは、任意の数のＬＯＥを含んでもよいことを理解されたい。しかしながら、少なくともＮ個のスタックされたＬＯＥが、Ｎ個の深度平面を生成するために要求される。さらに、Ｎ、２Ｎ、または３Ｎ個のスタックされたＬＯＥが、ＲＧＢカラー画像をＮ個の深度平面に生成するために使用されてもよい。
【００８４】
３−Ｄ仮想コンテンツをユーザに提示するために、ＶＲ、ＡＲ、および／またはＭＲシステムは、Ｚ方向に（すなわち、ユーザの眼から離れるように直交して）種々の深度平面から生じるように現れるように、仮想コンテンツの画像をユーザの眼の中に投影する。言い換えると、仮想コンテンツは、ＸおよびＹ方向（すなわち、ユーザの眼の中心視軸に直交する２Ｄ平面）において変化し得るだけではなく、また、ユーザが、オブジェクトが、非常に近接して、または無限距離に、またはその間の任意の距離にあるように知覚し得るように、Ｚ方向においても変化するように現れ得る。他の実施形態では、ユーザは、複数のオブジェクトを、同時に、異なる深度平面において知覚し得る。例えば、ユーザには、仮想ドラゴンが、無限遠から現れ、ユーザに向かって走って来るように見え得る。代替として、ユーザには、同時に、ユーザから３メートル離れた距離における仮想鳥と、ユーザから腕の長さ（約１メートル）における仮想コーヒーカップとが見え得る。
【００８５】
多平面焦点システムは、画像をユーザの眼からＺ方向における個別の固定距離に位置する複数の深度平面のいくつかまたは全て上に投影することによって、可変深度の知覚を作成する。ここで図５を参照すると、多平面焦点システムは、フレームを固定された深度平面１５０（例えば、図５に示される６つの深度平面１５０）に表示し得ることを理解されたい。ＭＲシステムは、任意の数の深度平面１５０を含むことができるが、１つの例示的多平面焦点システムは、６つの固定された深度平面１５０をＺ方向に有する。仮想コンテンツを６つの深度平面１５０のうちの１つ以上のものに生成する際、３−Ｄ知覚が、ユーザがユーザの眼から可変距離における１つ以上の仮想オブジェクトを知覚するように作成される。ヒトの眼は、遠く離れてあるように現れるオブジェクトより距離がより近いオブジェクトに敏感であることを前提として、より多くの深度平面１５０が、図５に示されるように、眼のより近くに生成される。他の実施形態では、深度平面１５０は、相互から離れるように等距離に設置されてもよい。
【００８６】
深度平面位置１５０は、メートル単位で測定される焦点距離の逆数に等しい屈折力の単位である、ジオプタ単位で測定されてもよい。例えば、いくつかの実施形態では、深度平面１は、１／３ジオプタ離れてもよく、深度平面２は、０．３ジオプタ離れてもよく、深度平面３は、０．２ジオプタ離れてもよく、深度平面４は、０．１５ジオプタ離れてもよく、深度平面５は、０．１ジオプタ離れてもよく、深度平面６は、無限遠（すなわち、０ジオプタ離れる）を表し得る。他の実施形態は、深度平面１５０を他の距離／ジオプタに生成してもよいことを理解されたい。したがって、仮想コンテンツを方略的に設置された深度平面１５０に生成する際、ユーザは、仮想オブジェクトを３次元で知覚することが可能である。例えば、ユーザは、別の仮想オブジェクトが深度平面６における無限遠に現れる間、第１の仮想オブジェクトが深度平面１内に表示されるとき、それを近くにあると知覚し得る。代替として、仮想オブジェクトは、最初に、深度平面６に、次いで、深度平面５に、そして、仮想オブジェクトがユーザの非常に近く現れるまでそのように続くように表示されてもよい。上記の実施例は、例証目的のために有意に簡略化されていることを理解されたい。別の実施形態では、全６つの深度平面は、ユーザから離れるように特定の焦点距離上に集中されてもよい。例えば、表示されるべき仮想コンテンツが、ユーザから０．５メートル離れたコーヒーカップである場合、全６つの深度平面は、コーヒーカップの種々の断面において生成され、ユーザに、コーヒーカップの高粒度の３−Ｄビューを与え得る。
【００８７】
いくつかの実施形態では、ＶＲ、ＡＲ、および／またはＭＲシステムは、多平面焦点システムとして機能し得る。言い換えると、全６つのＬＯＥは、光源が画像情報をＬＯＥ１、次いで、ＬＯＥ２、次いで、ＬＯＥ３等に急速に伝達する状態において、６つの固定された深度平面から生じるように現れる画像が、高速で連続して生成されるように、同時に照明されてもよい。例えば、光学無限遠における空の画像を備える、所望の画像の一部が、時間１において投入されてもよく、光のコリメーションを留保するＬＯＥ（例えば、図５からの深度平面６）が、利用されてもよい。次いで、より近い木の枝の画像が、時間２において投入されてもよく、１０メートル離れて深度平面から生じるように現れる画像を作成するように構成される、ＬＯＥ（例えば、図５からの深度平面５）が、利用されてもよい。次いで、ペンの画像が、時間３において投入されてもよく、１メートル離れて深度平面から生じるように現れる画像を作成するように構成される、ＬＯＥが、利用されてもよい。本タイプのパラダイムは、ユーザの眼および脳（例えば、視覚野）が入力を同一画像の全ての部分であると知覚するように、高速時間シーケンシャル（例えば、３６０Ｈｚ）方式で繰り返されることができる。
【００８８】
ＶＲ、ＡＲ、および／またはＭＲシステムは、Ｚ軸（すなわち、深度平面）に沿って種々の場所から生じるように現れ、３−Ｄ体験／シナリオのための画像を生成する、画像を投影してもよい（すなわち、光ビームを発散または収束させることによって）。本願で使用されるように、光ビームは、限定ではないが、光源から照射される光エネルギー（を含む、可視および不可視光エネルギー）の指向性投影を含む。種々の深度平面から生じるように現れる画像を生成することは、その画像のためのユーザの眼の輻輳・開散運動（ｖｅｒｇｅｎｃｅ）および遠近調節（ａｃｃｏｍｍｏｄａｔｉｏｎ）に一致し、輻輳・開散運動−遠近調節競合を最小限にまたは排除する。
（例示的パス可能世界モデル）
【００８９】
図６は、いくつかの実施形態による、パス可能世界モデル２０００のコンポーネントを図示する。ユーザ２００１が、環境を通して歩くにつれて、ユーザの個々のＡＲシステム２０１０は、情報（例えば、画像、場所情報、位置、および配向情報等）を捕捉し、姿勢がタグ付けされた画像を通して情報を保存する。例証される実施形態では、オブジェクト２０２０（テーブルに類似する）の画像が、撮影されてもよく、マップ点２００４は、捕捉された画像に基づいて収集されてもよい。これは、環境についての情報を捕捉した複数のキーフレーム（例えば、カメラ）２００２によって示されるように、パス可能世界モデルのコアを形成する。
【００９０】
図６に示されるように、任意の所与の時間点における空間についての情報を捕捉する、複数のキーフレーム２００２が存在してもよい。例えば、キーフレームは、特定の視点から情報を捕捉する、別のユーザのＡＲシステムであってもよい。別のキーフレームは、定常視点を通して画像および点２００４を捕捉する、部屋ベースのカメラ／センサシステムであってもよい。複数の視点からの画像および点を三角測量することによって、３Ｄ空間内の実オブジェクトの位置および配向が、決定されてもよい。
【００９１】
いくつかの実施形態では、パス可能世界モデル２００８は、ラスタ画像、点および記述子クラウド、および多角形／幾何学的定義（本明細書では、パラメータ幾何学形状と称される）の組み合わせである。本情報の全ては、クラウドにアップロードされ、そこから読み出され、その区分は、ユーザが歩いたであろう特定の空間に対応する。図６に示されるように、パス可能世界モデルはまた、クラウドまたはユーザの個々のシステム２０１０上で機能し、複数のユーザの種々のキーフレームを通して捕捉された点および姿勢がタグ付けされた画像に基づいて、環境内のオブジェクトを認識する、多くのオブジェクト認識器２０１２を含有する。本質的に、複数のキーフレーム２００２を通して物理世界についての情報を継続して捕捉することによって、パス可能世界は、常時、成長し、実世界の既存の物理オブジェクトに関係する仮想コンテンツをレンダリングする方法を決定するために、検討されてもよい（継続的にまたは必要に応じて）。情報をユーザの環境から収集することによって、パス可能世界２００６の断片が、構築／拡張され、同時にまたは将来的に、１人以上のＡＲユーザに「パス」されてもよい。
【００９２】
非同期通信が、ユーザの個別の個々のＡＲシステムとクラウドベースのコンピュータ（例えば、サーバコンピュータ）との間に確立される。言い換えると、ユーザの個々のＡＲシステムは、常時、ユーザの周囲についての情報をクラウドに更新し、パス可能世界についてクラウドから情報を受信する。したがって、各ＡＲユーザが、画像を捕捉し、捕捉された画像に基づいて、オブジェクトを認識する必要なく、非同期システムを有することによって、システムがより効率的となることが可能となる。世界のその部分についてすでに存在する情報は、自動的に、個々のＡＲシステムに通信される一方、新しい情報は、クラウドに更新される。パス可能世界モデルは、クラウドまたは他の形態のネットワーキングコンピューティングまたはピアツーピアシステム上に存在するだけではなく、また、ユーザの個々のＡＲシステム上の両方に存在することを理解されたい。
【００９３】
いくつかの実施形態では、ＡＲシステムは、ローカル構成要素（例えば、電源パック等の計算構成要素１３０）および遠隔構成要素（例えば、クラウドベースのコンピュータ１３２）のための異なるレベルの分解能を採用してもよい。これは、遠隔構成要素（例えば、クラウドサーバ上に常駐するリソース）が、典型的には、ローカル構成要素より計算能力が高いためである。クラウドベースのコンピュータは、多くの異なる個々のＡＲシステムおよび／または１つ以上の空間または部屋ベースのセンサシステムによって収集されたデータを取り上げ、本情報を利用して、パス可能世界モデルに追加してもよい。クラウドベースのコンピュータは、最良（例えば、最も有用な）情報のみを持続的世界モデルの中に集約してもよい。言い換えると、冗長情報および／または準最適品質情報は、システムの品質および／または性能を低下させないように、タイムリーに廃棄され得る。
【００９４】
図１０は、いくつかの実施形態による、パス可能世界モデルと相互作用する例示的方法２１００を図示する。２１０２では、ユーザの個々のＡＲシステムは、世界内のユーザの場所および配向を検出してもよい。いくつかの実施形態では、場所は、以下にさらに詳細に説明されるであろうように、システムのトポロジマップによって導出されてもよい。いくつかの実施形態では、場所は、ＧＰＳまたは任意の他の位置特定ツールによって導出されてもよい。パス可能世界は、常時、個々のＡＲシステムによってアクセスされてもよいことを理解されたい。
【００９５】
別の実施形態では（図示せず）、ユーザは、別のユーザの空間へのアクセスを要求し、他のユーザに対応するパス可能世界のその区分および関連付けられたパラメータ情報にアクセスするようにシステムを促してもよい。したがって、パス可能世界のための多くのトリガが存在し得る。しかしながら、最も単純レベルでは、パス可能世界は、常時、複数のユーザシステムによって更新およびアクセスされ、それによって、常時、情報をクラウドに追加し、そこから受信することを理解されたい。
【００９６】
前述の実施例に従って、既知のユーザの場所に基づいて、２１０４では、システムは、ユーザの位置および意図される方向の両方を通信する、ユーザの周囲の物理面積を示す半径を引き出してもよい。次に、２１０６では、システムは、ユーザの予期される位置に基づいて、パス可能世界の断片を読み出してもよい。いくつかの実施形態では、パス可能世界の断片は、以前のキーフレームを通して取得された空間の幾何学的マップと、クラウド内に記憶された捕捉された画像およびデータとからの情報を含有してもよい。２１０８では、ＡＲシステムは、ユーザの環境からの情報をパス可能世界モデルの中にアップロードする。２１１０では、アップロードされた情報に基づいて、ＡＲシステムは、ユーザの位置と関連付けられたパス可能世界をユーザの個々のＡＲシステムにレンダリングする。
【００９７】
本情報は、仮想コンテンツが、コヒーレント様式でユーザの実周囲と有意義に相互作用することを可能にする。例えば、仮想「モンスタ」が、実世界の特定の建物から生じるようにレンダリングされてもよい。または、別の実施例では、ユーザは、友人（同様に、ＡＲシステムを装着している）が同一物理座標内で仮想オブジェクトを見つけるように、実世界の物理座標に関係する仮想オブジェクトを残してもよい。そのような能力（およびより多くのもの）を可能にするために、ＡＲシステムが、常時、パス可能世界にアクセスし、情報を読み出し、アップロードすることが重要である。パス可能世界は、物理空間の実座標に関係する仮想および／またはデジタルコンテンツをレンダリングする際に必ず利用される、実空間の持続的デジタル表現を含有することを理解されたい。ＡＲシステムは、実世界および／または仮想世界の座標を維持し得ることを理解されたい。いくつかの実施形態では、第三者は、実世界のマップ（例えば、座標）を維持してもよく、ＡＲシステムは、世界の実オブジェクトに関係する仮想コンテンツをレンダリングするために、マップを検討し、１つ以上のパラメータを決定してもよい。
【００９８】
パス可能世界モデル自体は、ユーザに表示されるコンテンツをレンダリングしないことを理解されたい。むしろ、これは、クラウド内の実世界の持続的デジタル表現を動的に読み出し、更新する、高レベル概念である。いくつかの実施形態では、導出された幾何学的情報は、ゲームエンジン上にロードされ、これは、次いで、パス可能世界と関連付けられたコンテンツをレンダリングする。したがって、ユーザが特定の空間内に居るかどうかにかかわらず、その特定の空間は、デジタル表現を任意のユーザによってアクセスされ得るクラウド内に有する。パス可能世界の本断片は、空間の物理幾何学形状および空間の画像についての情報、空間を占有する種々のアバタについての情報、仮想オブジェクトについての情報、および他の様々な情報を含有してもよい。
【００９９】
本明細書にさらに詳細に説明されるように、１つ以上のオブジェクト認識器は、パス可能世界モデルを検証または「クロール」し、パラメータ幾何学形状に属する点をタグ付けしてもよい。パラメータ幾何学形状、点、および記述子は、パス可能世界モデルの中にパッケージ化され、物理世界または環境の一部に対応する情報の短待ち時間パスまたは通信を可能にしてもよい。いくつかの実施形態では、ＡＲシステムは、２つの階層構造を実装することができ、パス可能世界モデルは、第１の階層において、高速後処理を可能にするが、次いで、その枠組みの中には、第２の階層（例えば、高速特徴）がある。いくつかの実施形態では、第２の階層構造は、フレーム毎ベースの３次元（３Ｄ）特徴マッピングを行うことによって、分解能を増加させることができる。
（トポロジマップ）
【０１００】
パス可能世界モデルの一体部分は、実世界の非常に細部の面積のマップを作成することである。例えば、物理オブジェクトに関係する仮想コンテンツをレンダリングするために、非常に詳細な位置特定が、要求される。そのような位置特定は、単に、ＧＰＳまたは従来の場所検出技法を通して達成されない場合がある。例えば、ＡＲシステムは、ユーザが居る物理場所の座標のみを要求するのではなく、例えば、ユーザが位置する建物の部屋を正確に把握する必要があり得る。本情報に基づいて、ＡＲシステムは、その部屋に対するデータ（例えば、部屋内の実オブジェクトの具体的幾何学形状、部屋に対するマップ点、部屋の幾何学的情報等）を読み出し、識別された部屋の実オブジェクトに関係する仮想コンテンツを適切に表示してもよい。しかしながら、同時に、本精密な粒度の細かい位置特定は、あまりに多くのリソースが不必要に消費されないように、費用効果的様式で行われなければならない。
【０１０１】
この目的を達成するために、ＡＲシステムは、ＧＰＳまたは抽出された点および姿勢タグ付けされた画像から作成された詳細な幾何学的マップ（例えば、幾何学的点は、非常に具体的であり、故に、最もコストがかかり得る）を読み出す代わりに、位置特定目的のために、トポロジマップを使用してもよい。いくつかの実施形態では、トポロジマップは、クラウドから容易にアクセス可能であって、空間のフィンガプリントおよび種々の空間間の関係のみを提示する、実世界内の物理空間の簡略化された表現である。トポロジマップについてのさらなる詳細は、以下にさらに提供されるであろう。
【０１０２】
いくつかの実施形態では、ＡＲシステムは、トポロジマップをパス可能世界モデル上に層化し、例えば、ノードを位置特定してもよい。トポロジマップは、種々のタイプの情報、例えば、空間内の点クラウド、画像、オブジェクト、全地球測位システム（ＧＰＳ）データ、Ｗｉ−Ｆｉデータ、ヒストグラム（例えば、部屋のカラーヒストグラム）、受信された信号強度（ＲＳＳ）データ等をパス可能世界モデル上に層化することができる。これは、情報の種々の層（例えば、より高レベル層と相互作用するための情報のより詳細な層）が、容易に読み出され得るように、相互に関連して設置されることを可能にする。本情報は、フィンガプリントデータと見なされ得る。言い換えると、場所（例えば、特定の部屋）に一意であるために十分に具体的に設計される。
【０１０３】
前述のように、種々のユーザ間で確実にパスされ得る完全仮想世界を作成するために、ＡＲシステムは、異なるタイプのユーザの周囲についての情報（例えば、マップ点、特徴、姿勢タグ付けされた画像、場面内のオブジェクト等）を捕捉する。本情報は、必要に応じて読み出され得るように、処理され、クラウド内に記憶される。前述のように、パス可能世界モデルは、ラスタ画像、点および記述子クラウド、および多角形／幾何学的定義（本明細書では、パラメータ幾何学形状と称される）の組み合わせである。したがって、ユーザの個々のＡＲシステムを通して捕捉された非常に多くの情報が、仮想世界を作成する際に、高品質および正確度を可能にすることを理解されたい。
【０１０４】
言い換えると、種々のＡＲシステム（例えば、ユーザ特有の頭部搭載式システム、部屋ベースのセンサシステム等）は、常時、個別のＡＲシステムの即時環境に対応するデータを捕捉しているため、任意の時点における実世界についての非常に詳細かつ正確な情報が、高度な確実性を伴って把握され得る。本量の情報は、位置特定目的のために、ＡＲアプリケーションのホストのために非常に有用であるが、ユーザに最も関連するパス可能世界の断片を見つけるために、その多くの情報を通してソートすることは、非常に非効率的であって、貴重な処理能力を犠牲にする。
【０１０５】
この目的を達成するために、ＡＲシステムは、本質的に、特定の場面または特定の箇所についてのあまり粒度の細かくない情報を提供する、トポロジマップを作成する。いくつかの実施形態では、トポロジマップは、全地球測位システム（ＧＰＳ）データ、Ｗｉ−Ｆｉデータ、ヒストグラム（例えば、部屋のカラーヒストグラム）、受信された信号強度（ＲＳＳ）データ等を通して導出されてもよい。例えば、トポロジマップは、種々の部屋／面積／空間のヒストグラム（例えば、カラーヒストグラム）によって作成され、トポロジマップ上のノードに縮小されてもよい。例えば、ユーザが部屋または空間の中に歩いていくと、ＡＲシステムは、単一画像（または他の情報）を撮影し、画像のカラーヒストグラムを構築してもよい。あるレベルでは、特定の空間のヒストグラムは、経時的に大部分が一定であろうことを理解されたい（例えば、部屋の壁の色、オブジェクトの色等）。言い換えると、各部屋または空間は、任意の他の部屋または箇所と異なる、別個のシグネチャを有する。本一意のヒストグラムは、他の空間／面積の他のヒストグラムと比較され、識別されてもよい。本時点で、ＡＲシステムは、ユーザが居る部屋を把握しており、残りの粒度の細かい情報は、容易にアクセスされ、ダウンロードされてもよい。
【０１０６】
したがって、ヒストグラムは、種々のカメラ（キーフレーム）によって捕捉された全特徴および点についての特定の情報を含有しないであろうが、システムは、ヒストグラムに基づいて、ユーザが居る場所を直ちに検出し、次いで、その特定の部屋または箇所と関連付けられた全てのより特定の幾何学的情報を読み出し得る。言い換えると、そのパス可能世界モデルを包含する、膨大な量の幾何学的およびパラメータ情報を通してソートするのではなく、トポロジマップは、ＡＲユーザを位置特定するための迅速かつ効率的方法を可能にする。位置特定に基づいて、ＡＲシステムは、識別された場所に最も関連する、キーフレームおよび点を読み出す。例えば、システムは、ユーザが建物の会議室に居ることを決定した後、システムは、次いで、クラウド内に記憶された全ての幾何学的情報を通して検索するのではなく、会議室と関連付けられた全てのキーフレームおよび点を読み出してもよい。
【０１０７】
ここで図８を参照すると、トポロジマップ４３００の例示的実施形態が、提示される。前述のように、トポロジマップ４３００は、ノード４３０２およびノード４３０２間の接続４３０４（例えば、接続線によって表される）のコレクションであり得る。各ノード４３０２は、別個のシグネチャまたはフィンガプリント（例えば、ＧＰＳ情報、カラーヒストグラムまたは他のヒストグラム、Ｗｉ−Ｆｉデータ、ＲＳＳデータ等）を有する、特定の場所（例えば、オフィス建物の会議室）を表し、線は、それらの間の接続を表し得る。接続は、地理的接続に関係しなくてもよく、むしろ、単に、共有デバイスまたは共有ユーザであってもよいことを理解されたい。例えば、第１のユーザは、第１のノードから第２のノードに歩いていってもよい。本関係は、ノード間の接続を通して表されてもよい。ＡＲユーザの数が増加するにつれて、ノードおよびノード間の接続もまた、比例して増加し、種々の場所についてのより精密な情報を提供するであろう。
【０１０８】
いったんＡＲシステムが、トポロジマップのノードを識別すると、システムは、次いで、ノードに関する幾何学的情報の集合を読み出し、その空間の実オブジェクトに関係する仮想コンテンツの表示方法／場所を決定してもよい。したがって、トポロジマップを幾何学的マップ上に層化することは、特に、位置特定および関連情報のみをクラウドから効率的に読み出すことに有用である。
【０１０９】
いくつかの実施形態では、ＡＲシステムは、第１および第２の姿勢タグ付けされた画像として、グラフ理論的文脈において、同一場面の一部の個別のカメラによって捕捉された２つの画像を表すことができる。本文脈におけるカメラは、異なる場面の画像を撮影する単一カメラを指し得る、または２つの異なるカメラであってもよいことを理解されたい。例えば、カメラの両方の視野内にある点であり得る、姿勢タグ付けされた画像間には、ある接続強度が存在する。いくつかの実施形態では、クラウドベースのコンピュータは、そのようなグラフ（例えば、図８のものに類似する幾何学的世界のトポロジ表現）を構築してもよい。グラフ内のノードおよびエッジの総数は、画像内の点の総数よりはるかに小さい。
【０１１０】
より高いレベルの抽象化では、ＡＲシステムによって監視される他の情報が、ともにハッシュ化されることができる。例えば、クラウドベースのコンピュータは、全地球測位システム（ＧＰＳ）場所情報、Ｗｉ−Ｆｉ場所情報（例えば、信号強度）、物理空間のカラーヒストグラム、および／またはユーザの周囲の物理オブジェクトについての情報のうちの１つ以上のものをともにハッシュ化してもよい。より多くのデータ点が存在するほど、コンピュータは、統計的に、その空間に対して一意の識別子を有するであろう可能性が高い。この場合、空間は、統計的に定義された概念である。
【０１１１】
実施例として、オフィスは、例えば、多数の点および二十数枚の姿勢タグ付けされた画像として表される、空間であってもよい。同一空間は、容易にハッシュ化され得る、ある数のノード（例えば、５、２５、１００、１０００等）のみを有するグラフとして、トポロジ的に表されてもよい。グラフ理論は、例えば、２つの空間間のアルゴリズム的に最短の経路として、接続性の表現を可能にする。
【０１１２】
したがって、システムは、幾何学形状を暗黙的トポロジを有する姿勢タグ付けされた画像に変換することによって、具体的幾何学形状を抽象化する。システムは、情報の他の断片、例えば、カラーヒストグラムプロファイルおよびＷｉ−Ｆｉ信号強度を追加することによって、抽象化レベルをより高くする。これは、システムが、場所と関連付けられた幾何学形状の全てを理解または処理する必要なく、ユーザの実際の実世界場所を識別することをより容易にする。
【０１１３】
図９は、トポロジマップを構築する例示的方法２４００を図示する。最初に、２４０２では、ユーザの個々のＡＲシステムは、特定の場所の第１の視点から画像を捕捉してもよい（例えば、ユーザが建物の部屋の中に歩いていき、画像が、その視点から捕捉される）。２４０４では、カラーヒストグラムが、捕捉された画像に基づいて生成されてもよい。前述で述べられたように、システムは、任意の他のタイプの識別情報（例えば、Ｗｉ−Ｆｉデータ、ＲＳＳ情報、ＧＰＳデータ、窓の数等）を使用してもよいが、カラーヒストグラムが、例証目的のために、本実施例では使用される。
【０１１４】
次に、２４０６では、システムは、カラーヒストグラムをクラウド内に記憶されたカラーヒストグラムのデータベースと比較することによって、ユーザの場所を識別するための検索を起動する。２４１０では、カラーヒストグラムがクラウド内に記憶された既存のカラーヒストグラムと一致するかどうかを決定するための決定が行われる。カラーヒストグラムが、カラーヒストグラムのデータベースの任意のカラーヒストグラムと一致しない場合、作製されたトポロジ内にノードとして記憶され得る（２４１４）。カラーヒストグラムが、データベースの既存のカラーヒストグラムに一致する場合、クラウド内にノードとして記憶される（２４１２）。カラーヒストグラムが、データベース内の既存のカラーヒストグラムと一致する場合、場所が、識別され、適切な幾何学的情報が、個々のＡＲシステムに提供される。
【０１１５】
同一実施例を継続すると、ユーザは、別の部屋または別の場所の中に歩いていき得、そこで、ユーザの個々のＡＲシステムが、別の写真を撮影し、他の場所の別のカラーヒストグラムを生成する。カラーヒストグラムが、以前のカラーヒストグラムまたは任意の他のカラーヒストグラムと同一である場合、ＡＲシステムは、ユーザの場所を識別する。カラーヒストグラムが、記憶されたヒストグラムと同一ではない場合、別のノードが、トポロジマップ上に作成される。加えて、第１のノードおよび第２のノードは、同一ユーザ（または同一カメラ／同一の個々のユーザシステム）によって撮影されたため、２つのノードは、トポロジマップ内で接続される。
【０１１６】
位置特定の補助に加え、トポロジマップはまた、幾何学的マップ内の誤差および／または逸失情報を改良／修復するために使用されてもよい。いくつかの実施形態では、トポロジマップは、特定の箇所の幾何学的マップまたは幾何学的構成内でループ閉鎖ストレスを見つけるために使用されてもよい。前述のように、任意の所与の場所または空間に対して、１つ以上のＡＲシステムによって撮影された画像（１人のユーザの個々のＡＲシステムまたは複数のユーザのＡＲシステムによって捕捉された複数の視野画像）は、特定の空間の多数のマップ点をもたらす。例えば、単一部屋は、種々のカメラ（または種々の位置に移動する１つのカメラ）の複数の視点を通して捕捉された数千のマップ点に対応し得る。
【０１１７】
ＡＲシステムは、前述のように、マップ点を利用して、オブジェクトを認識し（オブジェクト認識器を通して）、実世界の種々のオブジェクトの幾何学形状のより包括的写真を記憶するために、パス可能世界モデルに追加する。いくつかの実施形態では、種々のキーフレームから導出されるマップ点は、画像を捕捉したカメラの姿勢および配向を三角測量するために使用されてもよい。言い換えると、収集されたマップ点は、画像を捕捉するキーフレーム（例えば、カメラ）の姿勢（例えば、位置および配向）を推定するために使用されてもよい。
【０１１８】
しかしながら、多数のマップ点およびキーフレームを前提として、マップ点に基づいて、キーフレーム位置の本計算内にいくつかの誤差（例えば、ストレス）が必ず存在することを理解されたい。これらのストレスを考慮するために、ＡＲシステムは、バンドル調整を行ってもよい。バンドル調整は、マップ点およびキーフレームの精緻化または最適化を可能にし、幾何学的マップ内のストレスを最小限にする。
【０１１９】
例えば、図１０に図示されるように、例示的幾何学的マップが、提示される。図１０に示されるように、幾何学的マップは、全て相互に接続される、キーフレーム２５０２の集合であってもよい。キーフレーム２５０２は、種々のマップ点が幾何学的マップのために導出される、視点を表してもよい。例証される実施形態では、幾何学的マップの各ノードは、キーフレーム（例えば、カメラ）を表し、種々のキーフレームは、接続線２５０４を通して相互に接続される。
【０１２０】
例証される実施形態では、異なるキーフレーム間の接続の強度は、接続線２５０４の太さによって表される。例えば、図１０に示されるように、ノード２５０２ａと２５０２ｂとの間の接続線は、ノード２５０２ａとノード２５０２ｆとの間の接続線と比較して、より太い接続線２５０４として描写される。ノード２５０２ａとノード２５０２ｄとの間の接続線はまた、２５０２ｂとノード２５０２ｄとの間の接続線より太くなるように描写される。いくつかの実施形態では、接続線の太さは、それらの間で共有される特徴またはマップ点の数を表す。例えば、第１のキーフレームおよび第２のキーフレームが、ともに近接する場合、それらは、多数のマップ点（例えば、ノード２５０２ａおよびノード２５０２ｂ）を共有し得、したがって、より太い接続線を用いて表され得る。当然ながら、幾何学的マップを表す他の方法も同様に、使用されてもよいことを理解されたい。
【０１２１】
例えば、線の強度は、別の実施形態では、キーフレーム間の地理的近接に基づいてもよい。したがって、図１０に示されるように、各幾何学的マップは、多数のキーフレーム２５０２および相互へのその接続を表す。ここで、ストレスが幾何学的マップの特定の点内で識別されたと仮定すると、バンドル調整が、ストレスをストレス２５０６の識別された点から半径方向に押し出すことによって、ストレスを軽減するために行われてもよい。ストレスは、以下にさらに詳細に説明されるであろうように、ストレス点から伝搬する波２５０８（例えば、ｎ＝１、ｎ＝２等）内で半径方向に押し出される。
【０１２２】
以下の説明は、波伝搬バンドル調整を行う例示的方法を図示する。以下の全ての実施例は、波伝搬バンドル調整のみを参照し、他のタイプのバンドル調整も同様に、他の実施形態では、使用されてもよいことを理解されたい。最初に、特定のストレス点が、識別される。図１０の例証される実施形態では、中心（ノード２５０２ａ）を識別されたストレス点と見なす。例えば、システムは、幾何学的マップの特定の点におけるストレスが特に大きい（例えば、残余誤差等）ことを決定してもよい。ストレスは、２つの理由のうちの１つに基づいて識別されてもよい。１つ目は、最大残余誤差は、幾何学的マップに対して定義され得る。特定の点における残余誤差が、所定の最大残余誤差を上回る場合、バンドル調整が、開始されてもよい。２つ目は、バンドル調整は、以下にさらに説明されるであろうように、ループ閉鎖ストレスの場合に（トポロジマップがマップ点の不整合を示すとき）開始され得る。
【０１２３】
ストレスが識別されると、ＡＲシステムは、ストレス点から開始して、それを特定のストレス点を囲繞するノードのネットワークを通して半径方向に伝搬させ、誤差を均一に分布させる。例えば、例証される実施形態では、バンドル調整は、誤差を識別されたストレス点の周囲のｎ＝１（識別されたストレス点であるノード２５０２ａから１度の分離）まで分布させてもよい。例証される実施形態では、ノード２５０２ｂ−２５０２ｇは全て、ストレス点ノード２５０２ａの周囲のｎ＝１波の一部である。
【０１２４】
ある場合には、これは、十分であり得る。他の実施形態では、ＡＲシステムは、ストレスをさらに伝搬させ、ストレスが均一に分布されるまで、ストレスが半径方向にますます押し出されるように、ストレスをｎ＝２（識別されたストレス点であるノード２５０２ａから２度の分離）またはｎ＝３（識別されたストレス点であるノード２５０２ａから３度の分離）まで押し出してもよい。したがって、バンドル調整を行うことは、幾何学的マップ内のストレスを低減させる重要な方法である。理想的には、ストレスは、より優れた結果のために、ｎ＝２またはｎ＝３まで押し出される。
【０１２５】
いくつかの実施形態では、波は、より小さい漸増で伝搬されてもよい。例えば、波がストレス点の周囲のｎ＝２まで押し出された後、バンドル調整が、ｎ＝３とｎ＝２との間の面積内で行われ、半径方向に伝搬されることができる。波漸増を制御することによって、本反復波伝搬バンドル調整プロセスは、大量のデータ上で起動され、システム上のストレスを低減させることができる。随意の実施形態では、各波は一意であるため、波（例えば、バンドル調整された）によって触れられたノードは、波が幾何学的マップの調節された区分上に再伝搬しないように着色されてもよい。別の実施形態では、ノードは、同時波が幾何学的マップ内の異なる点から伝搬／生じ得るように着色されてもよい。
【０１２６】
前述のように、トポロジマップをキーフレームおよびマップ点の幾何学的マップ上に層化することは、特に、ループ閉鎖ストレスを見つける際に重要であり得る。ループ閉鎖ストレスは、整合されるべきであるが、不整合である、異なる時間に捕捉されたマップ点間の相違を指す。例えば、ユーザがブロックの周囲を歩き、同一箇所に戻る場合、第１のキーフレームの位置から導出されたマップ点および収集されたマップ点から外挿される最後のキーフレームの位置から導出されたマップ点は、理想的には、同じであるはずである。しかしながら、異なるマップ点に基づく姿勢（キーフレームの位置）の計算に固有のストレスを前提として、多くの場合、誤差が存在し、システムは、第１のキーフレームから推定されるキー点が最後のキーフレームから導出されるマップ点と幾何学的に整合されないため、ユーザが同一位置に戻ったことを認識しない。これは、ループ閉鎖ストレスの実施例であり得る。
【０１２７】
この目的を達成するために、トポロジマップが、幾何学的マップ内のループ閉鎖ストレスを見つけるために使用されてもよい。以前の実施例に戻って参照すると、トポロジマップと幾何学的マップの併用は、トポロジマップが、ユーザが開始点に戻ったことを示し得るため（例えば、カラーヒストグラムに基づいて）、ＡＲシステムが幾何学的マップ内のループ閉鎖ストレスを認識することを可能にする。例えば、図１１の層化されたマップ２６００を参照すると、トポロジマップのノード（例えば、２６０４ａおよび２６０４ｂ）は、幾何学的マップのノード（例えば、２６０２ａ−２６０２ｆ）の上部に層化される。図１１に示されるように、トポロジマップは、幾何学的マップの上部に設置されると、キーフレームＢ（ノード２６０２ｇ）がキーフレームＡ（ノード２６０２ａ）と同一であることを示唆し得る。これに基づいて、ループ閉鎖ストレスは、検出され得、システムは、キーフレームＡおよびＢが同一ノード内でともにより近接すべきであることを検出し、システムは、次いで、バンドル調整を行ってもよい。したがって、ループ閉鎖ストレスを識別したことによって、ＡＲシステムは、次いで、前述のもの等のバンドル調整技法を使用して、バンドル調整を識別されたストレス点に行ってもよい。
【０１２８】
トポロジマップおよび幾何学的マップの層化に基づいてバンドル調整を行うことは、システムが、システム内の全てのキーフレームを読み出す代わりに、バンドル調整が行われる必要があるキーフレームのみを読み出すことを確実にすることを理解されたい。例えば、ＡＲシステムが、トポロジマップに基づいて、ループ閉鎖ストレスが存在することを識別する場合、システムは、単に、トポロジマップのその特定のノードまたは複数のノードと関連付けられたキーフレームを読み出し、幾何学的マップの全てのキーフレームではなく、それらのキーフレームのみにバンドル調整を行い得る。再び、これは、システムが、効率的となり、システムに不必要に負担をかけ得る、不必要情報を読み出すことをさせないことを可能にする。
【０１２９】
ここで図１２を参照すると、トポロジマップに基づいてループ閉鎖ストレスを補正するための例示的方法２７００が、説明される。２７０２では、システムは、幾何学的マップの上部に層化されたトポロジマップに基づいて、ループ閉鎖ストレスを識別してもよい。いったんループ閉鎖ストレスが識別されると、２７０４では、システムは、ループ閉鎖ストレスが生じたトポロジマップのノードと関連付けられたキーフレームの集合を読み出してもよい。トポロジマップのそのノードのキーフレームを読み出した後、システムは、２７０６において、バンドル調整を幾何学的マップ内のその点で開始してもよい。２７０８では、ストレスは、図１０に示される技法と同様に、識別されたストレス点から伝搬され、ｎ＝１（次いで、ｎ＝２、ｎ＝３等）まで波内に半径方向に分布される。
（マッピング）
【０１３０】
仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、実世界に関係する仮想オブジェクトを正確に描写することが重要である。この目的を達成するために、前述のように、種々の頭部装着式ＡＲシステムから捕捉されたマップ点は、実世界の種々の点および特徴についての情報を伝達する新しい写真を追加することによって、常時、パス可能世界モデルに追加される。点および特徴に基づいて、前述のように、また、キーフレーム（例えば、カメラ等）の姿勢および位置を外挿することができる。これは、ＡＲシステムが特徴（２Ｄ点）およびマップ点（３Ｄ点）の集合を収集することを可能にするが、また、新しい特徴およびマップ点を見つけ、より正確なバージョンのパス可能世界をレンダリングすることが重要となり得る。
【０１３１】
新しいマップ点および／または特徴を見つける方法の１つは、１つの画像の特徴を別の画像に対して比較することであり得る。各特徴は、それに結び付けられる標識または特徴記述子を有し得る（例えば、色、識別子等）。１つの写真内の特徴の標識と別の写真の比較は、環境内の自然特徴を一意に識別する方法の１つであり得る。例えば、それぞれ、約５００個の特徴を捕捉する、２つのキーフレームが存在する場合、１つのキーフレームの特徴と他のキーフレームを比較することは、新しいマップ点を決定するのに役立ち得る。しかしながら、これは、２つのみのキーフレームが存在するときに実行可能な解決策であり得るが、それぞれ、数百万個の点を捕捉する、複数のキーフレームが存在するとき、多くの処理パワーを消耗するという、非常に大きな検索問題となる。言い換えると、Ｍ個のキーフレームが存在し、それぞれ、Ｎ個の不一致特徴を有する場合、新しい特徴の検索は、ＭＮ２（Ｏ（ＭＮ２））の演算を伴う。残念ながら、これは、非常に大きな検索動作である。
【０１３２】
そのような大きな検索動作を回避する、新しい点を見つけるアプローチの１つは、検索ではなく、レンダリングによるものである。言い換えると、Ｍ個のキーフレームの位置が既知であって、そのそれぞれがＮ個の点を有すると仮定すると、ＡＲシステムは、Ｍ個のキーフレームのＮ個の特徴からの線（または円錐）を投影し、種々の２Ｄ点の３Ｄ位置を三角測量してもよい。ここで図１３を参照すると、本特定の実施例では、６個のキーフレーム２８０２が存在し、線または光線が、６個のキーフレームから個別のキーフレームから導出される点２８０４にレンダリングされる（グラフィックカードを使用して）。いくつかの実施形態では、新しい３Ｄマップ点が、レンダリングされた線の交差点に基づいて、決定されてもよい。言い換えると、２つのレンダリングされた線が交差するとき、３Ｄ空間内のその特定のマップ点のピクセル座標は、１または０の代わりに、２であり得る。したがって、特定の点における線の交差点が大きい数であるほど、３Ｄ空間内の特定の特徴に対応するマップ点が存在する可能性がより高くなる。いくつかの実施形態では、図１３に示されるような本交差点アプローチは、３Ｄ空間内の新しいマップ点を見つけるために使用されてもよい。
【０１３３】
最適化目的のために、キーフレームから線をレンダリングするのではなく、三角錐が、代わりに、より正確な結果のために、キーフレームからレンダリングされ得ることを理解されたい。三角錐は、Ｎ個の特徴（例えば、２８０４）に対してレンダリングされた線が、三角錐の二等分線を表し、円錐の辺が、Ｎ番目の特徴の両側に投影されるように投影される。いくつかの実施形態では、２つの辺縁に対する半角は、レンズマッピング機能をＮ番目の特徴の両辺に行う、カメラのピクセルピッチによって定義されてもよい。
【０１３４】
円錐の内部は、二等分線が最も明るく、Ｎ番目の特徴の両辺の縁が０の集合となり得るように、陰影されてもよい。カメラバッファは、明るいスポットが新しい特徴の候補場所を表し得るが、カメラ分解能およびレンズ較正の両方を考慮するような総和バッファであってもよい。言い換えると、線ではなく、円錐を投影することは、あるキーフレームが、より近い距離に特徴を捕捉し得たその他より遠くにあるという事実を補償するのに役立ち得る。本アプローチでは、より遠くにあるキーフレームからレンダリングされた三角錐は、より近くにあるキーフレームからレンダリングされたものより大きくなる（かつ大半径を有する）であろう。総和バッファは、３Ｄマップ点を決定するために適用されてもよい（例えば、マップの最も明るいスポットは、新しいマップ点を表してもよい）。
【０１３５】
本質的に、ＡＲシステムは、光線または円錐をあるＭ個の数の以前のキーフレーム内のＮ個の数の不一致特徴からＭ＋１個のキーフレームのテクスチャの中に投影し、キーフレーム識別子および特徴識別子をエンコードし得る。ＡＲシステムは、現在のキーフレーム内の特徴から別のテクスチャを構築し、第１のテクスチャを第２のテクスチャでマスクし得る。色は全て、制約のための検索に対する候補対合である。本アプローチは、有利なこととして、制約のためのＯ（ＭＮ２）検索をＯ（ＭＮ）レンダリングに変換した後、小規模なＯ（（＜Ｍ）Ｎ（＜＜Ｎ））検索が続く。
【０１３６】
別のアプローチでは、新しいマップ点は、既存のＮ個の特徴を視認する仮想キーフレームを選択することによって決定されてもよい。言い換えると、ＡＲシステムは、マップ点を視認すべき仮想キーフレームを選択し得る。例えば、ＡＲシステムは、前述のキーフレーム投影を使用するが、｛Ｍ，Ｎ｝標識が探されるＭ個のキーフレームの法線のＰＣＡ（主成分分析）に基づいて、新しい「キーフレーム」を取り上げてもよい（例えば、ＰＣＡ導出キーフレームは、標識を導出すべき最適ビューを与えるであろう）。
【０１３７】
ＰＣＡを既存のＭ個のキーフレームに行うことは、既存のＭ個のキーフレームに最も直交する新しいキーフレームを提供する。したがって、仮想キーフレームを最も直交する方向に位置付けることは、３Ｄ空間内に新しいマップ点を見つけるべき最良視点を提供し得る。別のＰＣＡを行うことは、次の最も直交する方向を提供し、さらなる別のＰＣＡを行うことは、さらに別の直交方向を提供する。したがって、３回のＰＣＡを行うことは、Ｎ個の特徴を有する既存のＭ個のキーフレームに基づいて、マップ点を構築すべき３Ｄ空間内のｘ、ｙ、およびｚ座標を提供し得ると理解されたい。
【０１３８】
図１４は、マップ点をＭ個の既知のキーフレームから決定するための例示的方法２９００を説明する。最初に、２９０２では、ＡＲシステムは、特定の空間と関連付けられたＭ個のキーフレームを読み出す。前述のように、Ｍ個のキーフレームは、特定の空間を捕捉した既知のキーフレームを指す。次に、２９０４では、キーフレームの法線のＰＣＡが、Ｍ個のキーフレームの最も直交する方向を見つけるために行われる。ＰＣＡは、それぞれ、Ｍ個のキーフレームに直交する、３つの主成分を生成し得ることを理解されたい。次に、２９０６では、ＡＲシステムは、３Ｄ空間内で最小であって、また、全てのＭ個のキーフレームのビューに最も直交する主成分を選択する。
【０１３９】
２９０８では、キーフレームに直交する主成分を識別した後、仮想キーフレームは、選択された主成分の軸に沿って設置されてもよい。いくつかの実施形態では、仮想キーフレームは、その視野が全てのＭ個のキーフレームを含むように十分に離れて設置されてもよい。
【０１４０】
次に、２９１０では、ＡＲシステムは、光線（または円錐）がＭ個のキーフレームのそれぞれからＮ番目の特徴までレンダリングされるように、特徴バッファをレンダリングしてもよい。特徴バッファは、明るいスポット（Ｎ個の線が交差するピクセル座標）がＮ個の特徴の候補場所を表すように、総和バッファであってもよい。前述の同一プロセスは、マップ点がｘ、ｙ、およびｚ軸上で見つけられるように、全３つのＰＣＡ軸を用いて繰り返されてもよいことを理解されたい。
【０１４１】
次に、２９１２では、システムは、画像内の全ての明るいスポットを仮想「特徴」として記憶してもよい。次に、２９１４では、第２の「標識」バッファが、仮想キーフレームにおいて作成され、線（または円錐）をスタックし、その｛Ｍ，Ｎ｝標識を保存してもよい。次に、２９１６では、「マスク半径」が、特徴バッファ内の各明るいスポットの周囲に描写されてもよい。マスク半径は、仮想カメラの角度ピクセル誤差を表すことを理解されたい。ＡＲシステムは、各明るいスポットの周囲の結果として生じる円形を充填し、標識バッファを結果として生じるバイナリ画像でマスクしてもよい。随意の実施形態では、円形は、円形の中心が明るいが、輝度が円形の周縁でゼロまで減退するように、勾配フィルタを適用することによって充填されてもよい。
【０１４２】
現時点でマスクされた標識バッファでは、主光線が、各三角形の｛Ｍ，Ｎ｝個の要素から成る標識を使用して収集されてもよい。円錐／三角形が、光線の代わりに使用される場合、ＡＲシステムは、三角形の両辺が円形の内側に捕捉される、三角形のみを収集し得ることを理解されたい。したがって、マスク半径は、本質的に、低条件の光線または大発散を有する光線（例えば、視野（ＦＯＶ）の縁にある光線または遠くから発出する光線）を排除する、フィルタとして作用する。
【０１４３】
最適化目的のために、標識バッファは、円錐／三角形内で生成された以前に使用された同一陰影を用いてレンダリングされてもよい。別の随意の最適化実施形態では、三角形密度は、三角形の広がり（辺）をチェックする代わりに、１からゼロまでスケーリングされてもよい。したがって、非常に発散する光線は、マスクされた領域の内側の雑音レベルを効果的に上昇させるであろう。ローカル閾値検出をマークの内側で起動することは、完全にマークの内側にあるそれらの光線のみから重心を引き出すことは自明であろう。
【０１４４】
２９１８では、マスク／最適化された光線ｍのコレクションが、バンドル調整器に送られ、新しく決定されたマップ点の場所を推定および／または補正してもよい。本システムは、採用されるレンダリングバッファのサイズに機能的に限定されることを理解されたい。例えば、キーフレームが広範に分離される場合、結果として生じる光線／円錐は、より低い分解能を有するであろう。
【０１４５】
代替実施形態では、ＰＣＡ分析を使用して、直交方向を見つけるのではなく、仮想キーフレームは、Ｍ個のキーフレームのうちの１つの場所に設置されてもよい。これは、Ｍ個のキーフレームがカメラの最良分解能で空間をすでに捕捉しているため、より単純かつより効果的解決策であり得る。ＰＣＡが、仮想キーフレームを設置すべき直交方向を見つけるために使用される場合、前述のプロセスは、仮想カメラを各ＰＣＡ軸に沿って設置し、軸のそれぞれ内のマップ点を見つけることによって繰り返される。
【０１４６】
新しいマップ点を見つけるさらに別の例示的方法では、ＡＲシステムは、新しいマップ点を仮定してもよい。ＡＲシステムは、最初に、Ｍ個のキーフレーム上のＰＣＡ分析から３つの主成分を読み出してもよい。次に、仮想キーフレームは、各主成分に設置されてもよい。次に、特徴バッファは、ちょうど前述のように、３つの仮想キーフレームのそれぞれにレンダリングされてもよい。主成分は、定義上、相互に直交するため、各カメラから外向きに描写される光線は、３Ｄ空間内の点において相互に衝突し得る。
【０１４７】
いくつかのインスタンスでは、光線の複数の交差点が存在し得ることを理解されたい。したがって、現時点で、各仮想キーフレーム内にＮ個の特徴が存在し得る。次に、幾何学的アルゴリズムが、異なる光線間の交差点を見つけるために使用されてもよい。本幾何学的アルゴリズムは、Ｎ３個の光線が存在し得るため、一定時間アルゴリズムであってもよい。マスキングおよび最適化は、３Ｄ空間内のマップ点を見つけるための前述と同一様式で行われてもよい。
（世界モデル精緻化）
【０１４８】
いくつかの実施形態では、ＡＲシステムは、別個の小世界モデル区画をより大きいコヒーレント区画の中にステッチしてもよい。これは、小モデルおよび大モデルの２つのレベルで生じてもよい。小モデルは、ローカルユーザレベル（例えば、計算構成要素、例えば、ベルトパック上）に対応する。一方、大モデルは、「世界全体」モデル化のための大規模またはシステム全体レベル（例えば、クラウドシステム）に対応する。これは、パス可能世界モデル概念の一部として実装されることができる。
【０１４９】
例えば、第１のユーザによって装着される個々のＡＲシステムは、第１のオフィスについての情報を捕捉する一方、第２のユーザによって装着される個々のＡＲシステムは、第１のオフィスと異なる第２のオフィスについての情報を捕捉する。捕捉された情報は、クラウドベースのコンピュータにパスされてもよく、これは、最終的に、個々のＡＲデバイスとともに歩き回る種々のユーザによってサンプリングまたは収集される実空間の包括的一貫した表現を構築する。クラウドベースのコンピュータは、経時的使用を介して、パス可能世界モデルを徐々に構築する。異なる地理的場所は、人口集中地域を最も中心として構築され、最終的に、より郊外地を充填するであろうことが予期される。
【０１５０】
クラウドベースのコンピュータは、例えば、ＧＰＳ、Ｗｉ−Ｆｉ、部屋のカラーヒストグラム、および部屋内の全ての自然特徴にハッシュを行い、写真とともに並べ、前述のように、事物の接続性のトポロジである、トポロジグラフを生成してもよい。クラウドベースのコンピュータは、トポロジを使用して、領域をともにステッチすべき場所を識別してもよい。代替として、クラウドベースのコンピュータは、特徴のハッシュ（例えば、トポロジマップ）を使用して、例えば、ある箇所において、別の箇所における幾何学的構成に一致する幾何学的構成を識別し得る。
（例示的マッピングシステム）
【０１５１】
図１５は、いくつかの実施形態による、第１および第２のＡＲ／ＭＲシステム２２０、２３０を含む、マッピングシステム２００を図式的に描写する。第１および第２のＡＲ／ＭＲシステム２２０、２３０は、それぞれ、第１および第２のネットワーク２４０、２４２によって、クラウド処理コンポーネント２１０に通信可能に結合される。２つのネットワーク２４０、２４２が、図１５に描写されるが、マッピングシステム２００の種々のコンポーネントが、より多いまたはより少ないネットワークによって、相互に通信可能に結合されてもよい。第１および第２のネットワーク２４０、２４２はそれぞれ、例えば、無線またはセルラーネットワーク、プライベート通信ネットワーク（例えば、携帯電話ネットワーク）、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、および／または１つ以上のコンピューティングデバイスが相互に通信することを可能にすることが可能な他の技術であってもよい。
【０１５２】
第１および第２のＡＲ／ＭＲシステム２２０、２３０はそれぞれ、個別のＵＳＢコネクタ２２６、２３６を用いてウェアラブル２２４、２３４に通信可能に結合される、電源パック２２２、２３２を有する。電源パック２２２、２３２は、ｍａｌｌｅｕｓ  ＯＳを起動させる、ＮＶｉｄｉａ／ＡＲＭアーキテクチャを有してもよい。ウェアラブル２２４、２３４は、ｍｉｎｏｔａｕｒ  ＯＳを起動させる、Ｍｙｒｉａｄ／ＳＨＡＶＥアーキテクチャを有してもよい。クラウド処理コンポーネント２１０は、サーバ（例えば、ウィンドウ）ＯＳを起動させる、ＰＣアーキテクチャを有してもよい。
【０１５３】
第１および第２のＡＲ／ＭＲシステム２２０、２３０はそれぞれ、マッピングおよびマップ同期をそれ自体の上で実施することができる。加えて、第１および第２のＡＲ／ＭＲシステム２２０、２３０は、クラウド処理コンポーネント２１０を通して通信される、他のシステム２３０、２２０からのデータを使用して、マッピングおよびマップ同期を実施することができる。複数のＡＲ／ＭＲシステム２２０、２３０からのデータを共有することは、マッピングの正確度を増加させる。しかしながら、マッピングのための入力データの量を増加させることは、プロセッサ負荷を増加させる。
（例示的マッピング／マップ同期方法）
【０１５４】
マップは、静的ではなく、代わりに、常に生成され、修正され、最適化する。したがって、マップの本状態は、経時的に変動する。さらに、データ局所性（すなわち、マッピング動作のためのデータのソースは、ウェアラブルおよび電源パック等の種々のコンポーネントである）およびプラットフォーム制約（例えば、処理電力およびメモリ）等の要因は、あるワークロード／ジョブをウェアラブル２２４、電源パック２２２、およびクラウド処理コンポーネント２１０等の種々のシステムコンポーネントに分散させることをより効率的にする。種々のコンポーネント間のＡＲ／ＭＲシステム２２０の接続性および接続における通信待ち時間（例えば、ネットワーク２４０およびＵＳＢ２２６）は、コンポーネントを横断してマップ同期を達成するために、有意な待ち時間をもたらす。例えば、いくつかのＡＲ／ＭＲシステムでは、マップは、各マップ関連動作の間、「ロック」され、次いで、更新されたマップのコピーが、次の動作のために、コンポーネントを横断して分散される。本待ち時間／遅れは、多くのＡＲ／ＭＲシステムにとって容認不可能である。マップ管理は、異なる時間における異なるマップ関連ワークロードおよび異なるマッピングシステムコンポーネントの同期待ち時間を考慮する。
【０１５５】
システムコンポーネント間の並列処理（例えば、ＳＨＡＶＥＳ）は、システム待ち時間を低減させることができる。しかしながら、上記に説明されるシステムコンポーネント間の差異は、並列処理の実装を複雑にする。これらの複雑性のうちのいくつかは、異なる時間におけるシステムコンポーネントのトリガ、システムコンポーネントのための異なる処理レート、およびシステムコンポーネントが作用する異なるデータセットを含む。非同期並列処理は、複数のリーダおよびライタの管理および同一マップ上での動作等の種々の考慮点を含意する。同時プロセスの数を最小限にすることは、システム複雑性を低減させるが、しかしながら、ある程度の非同期並列処理は、マッピングシステム性能を改良する。
（非同期並行マッピングワークフロー）
【０１５６】
図１６は、いくつかの実施形態による、マルチコンポーネントマッピングシステムのための非同期マッピング方法３００のためのワークフローを描写する。新しいデータおよび最適化を伴う、種々のマップ修正技法が、方法３００を使用して、並行して行われることができる。上記に説明されるように、新しいデータ技法は、追跡、ＶＩＯ、マッピング、再位置特定、マップマージ、および同時稠密最適化を含むことができる。最適化を伴うマップ修正技法は、バンドル調整およびループ閉鎖を含む。新しいデータ技法は、新しいデータのソースであるシステムコンポーネントにおいて、効率的に実施される。最適化技法は、処理集約的であって、したがって、電源パックにおいてより効率的に実施される。最適化の間、特別の考慮が、持続的点および稠密マッピングのために要求される。
【０１５７】
時間「ｔ」３１０では、バンドル調整（最適化）動作３２０が、疎マップのスナップショット上で作業するステップから開始する。バンドル調整３２０は、処理集約的動作であるため、バンドル調整３２０は、完了するために比較的に長時間量ΔＴ３２２がかかる。上記に議論されるように、処理集約的バンドル調整３２０は、電源パックによって行われてもよい。
【０１５８】
バンドル調整３２０の実行の間、別のコンポーネント（例えば、ウェアラブル）は、マップ点削除３３０（例えば、マップ点が誤対応であることが決定されたため）を実行してもよい。マップ点削除３３０は、時間「ｔ＋１」３１２において、疎マップの後のスナップショット上で作業を開始する。マップ点削除３３０は、比較的にあまり処理集約的動作ではないため、マップ点削除３３０は、バンドル調整３２０の間に完了されることができる。時間「ｔ＋２」３１４では、ウェアラブルは、マップ点削除３３０を完了している。
【０１５９】
マップ点削除３３０が完了された後、システムは、バンドル調整３２０の間、他の動作を実施してもよい。最後に、時間「ｔ＋ΔＴ」３１６では、バンドル調整が、完了される。本ワークフロー３００は、複数のマップ関連動作（バンドル調整３２０、マップ点削除３３０等）が、マッピングシステムの異なるコンポーネントによって並行して実行され、それによって、マッピングシステムにおける待ち時間／遅れの量を低減させることを可能にする。複数のマップ関連動作の並列実行は、下記にさらに詳細に説明される。特に、削除されたマップ点がまた、バンドル調整動作の一部である場合、２つの動作（バンドル調整３２０とマップ点削除３３０）間に競合が存在し得る。
（非同期並行マッピングの間のデータ競合）
【０１６０】
図１７Ａ−１７Ｄは、非同期並行マッピングとデータ競合をもたらし得る、複数の例示的ループ閉鎖動作を描写する。図１７Ａは、６つのキーリグフレーム４１０、４１１、４１２、４１３、４１４、４１５、および４１６をマップ４０１内のドットとして描写する。ループ４１８が、キーリグフレーム４１０と４１０’との間で検出される。
【０１６１】
図１７Ｂは、キーリグフレーム４２２、４２３、４２４、４２５、および４２６を移動させ、新しいマップ４０２を生成することによって、固定された原点４１０を伴う、ループ４１８の閉鎖を描写する。
【０１６２】
図１７Ｃは、固定された原点４１０を伴う、ループ４１８の閉鎖を描写する。非同期ワークロードに起因して、ループ４３８が、キーリグフレーム４３３の生成に対応する時間に検出される。したがって、ループ４３８は、キーリグフレーム４３２および４３３を移動させることによって閉鎖される。１つ以上の別個のワークロードが、キーリグフレーム４３４、４３５、および４３６を生成する。キーリグフレーム４３３におけるループ閉鎖に続く、キーリグフレーム４３４、４３５、および４３６の生成から生じる、マップ４０３は、図１７Ａおよび１７Ｂにおけるマップ４０１、４０２と非常に異なる形状を有する。
【０１６３】
図１７Ｄは、いくつかの実施形態による、新しい位置４４０への原点４１０の移動を可能にしながらのループ４１８の閉鎖を描写する。本ループ閉鎖は、異常形状を生成せずに、キーリグフレーム４４１、４４２、４４３、４４４、４４５、および４４６の生成の間に実施されることができる。例えば、図１７Ｄにおけるマップ４０４は、図１７Ｃにおけるマップ４０３と比較して、図１７Ａおよび１７Ｂにおけるマップ４０１、４０２にはるかに近い。
【０１６４】
マップ管理設計は、非同期ワークロードとのこれらおよび多数の他の可能性として考えられるマッピング競合等の競合の認識および解決／調和を含む。解決／調和は、状態変更を生成するために使用される初期状態が依然として有効であるかどうかと、状態変更を適用すべきかどうかとの決定を含む。これらの競合は、データおよび時間依存であって、マップ管理における解決／調和プロセスをさらに複雑にする。
（マップ管理との非同期並行マッピングワークフロー）
【０１６５】
図１８は、いくつかの実施形態による、マップ管理とのマルチコンポーネントマッピングシステムのための非同期マッピング方法５００のためのワークフローを描写する。マッピング方法５００は、マップマネージャ（下記に説明される）によって維持されるが、必ずしも、状態の時間インデックス集合として表されない、一意のタイムラインを含む。図１８は、３つの状態５１０、５１２、５１４を含む。「＋」演算子５１６は、次の状態を生成するための前の状態への変更（例えば、「Δ０」５２２）の適用を表す。
【０１６６】
変更は、方法５００における種々のマップ動作によって生産される。例えば、マッピング動作５２０は、入力として、マッピング動作５２０の実行時の状態（すなわち、状態ゼロ５１０）および外部データ５１８を受信する。状態ゼロ５１０は、マップが空の特殊状態であり得る。マッピング動作５２０の出力は、方法５００における全てのマップ動作と同様に、新しい状態ではなく、むしろ、状態変更（すなわち、Δ０５２２）である。同様に、バンドル調整動作５３０は、入力として、バンドル調整動作５３０の実行時の状態（すなわち、状態１５１２）および他のデータ（図示せず）を受信する。バンドル調整動作５３０の出力は、別の状態変更（すなわち、Δ１５３２）である。さらに、複数の他のマップ動作５４０は、個別の複数の状態変更５４２を出力することができる。
【０１６７】
「＋」動作５１６は、種々の状態変更（すなわち、Δ０５２２、Δ１５３２、Δ…５４２）を前の状態に適用し、次の状態を生成する。例えば、状態変更Δ０５２２は、状態ゼロ５１０に適用され、状態１５１２を生成する。同様に、状態変更Δ１５３２は、状態１５１２に適用され、状態２５１４を生成する。状態変更５２２、５３２、５４２は、競合が存在しない限り、状態進行の順序で適用される。状態と状態変更との間の競合が、検出される場合、状態と状態変更との間の競合は、「＋」動作５１６の間、解決／調和される。競合解決は、競合のタイプがマップに適用される修正に依存するため、実装依存である。
【０１６８】
システムコンポーネントは、種々の状態５１０、５１２、５１４のスナップショットおよび種々のマッピング動作５２０、５３０、５４０による使用のために必要とされ得るような他のデータを読み取る。同様に、システムコンポーネントは、種々のマッピング動作５２０、５３０、５４０から生じるマップへの修正を含有する、状態変更５２２、５３２、５４２を書き込む。状態変更５２２、５３２、５４２は、新しいマップ状態５１２、５１４を作成するために受信された直後に適用される。マップ状態に依存する動作を実行する、種々のコンポーネントは、状態変更をサブスクライブすることができる。
【０１６９】
故に、所与のマップ状態は、初期状態および状態変更のシーケンスの順序によって決定されることができる。例えば、初期状態ゼロ５１０および状態変更５２２および５３２を前提として、マップ状態は、状態ゼロ５１０「＋」状態変更５２２「＋」状態変更５３２として定義されることができる。その結果、グローバルに一致される初期マップ状態および状態変更の順序は、異なるシステムコンポーネントが、異なるプラットフォーム上で異なるレートで起動しながら、マッピング動作を実施し、状態変更を生成することを可能にする。
【０１７０】
マップマネージャは、初期マップ状態および状態変更の順序を決定し、本マッピングデータを全てのシステムコンポーネントに送信／プッシュ配信／ブロードキャスト／複製し、一貫したマップをシステムの全てのコンポーネント間に維持しながら、非同期並行マッピングを可能にする。各システムコンポーネントは、システム内で生産された全ての状態変更に最終的にアクセスするであろう、マップマネージャを有する。順序付けられた状態変更は、全てのシステムコンポーネントおよびその中のマップマネージャに接続する、仮想バスとして機能する。
【０１７１】
図１９は、マッピングおよびマップ同期のためのＡＲ／ＭＲシステム６００を描写する。システム６００は、ＵＳＢ通信リンク６３０によって相互およびクラウド処理コンポーネント６４０に通信可能に結合される、ウェアラブル６１０と、電源パック６２０とを含む。ウェアラブル６１０および電源パック６２０はそれぞれ、マップマネージャ６１２、６２２と、リーダ６１４、６２４と、ライタ６１６、６２６とを含む。マップマネージャ６１２、６２２、リーダ６１４、６２４、およびライタ６１６、６２６はそれぞれ、全てのシステムコンポーネントに接続する仮想バスを形成する、ＵＳＢ通信リンク６３０に通信可能に結合される。
【０１７２】
リーダ６１４、６２４は、ＵＳＢ通信リンク６３０およびその個別のコンポーネント６１０、６２０内の他のソースからのデータを受信する。リーダ６１４、６２４によって受信されるデータは、状態変更を含む。リーダ６１４、６２４は、受信されたデータをマップマネージャ６１２、６２２に送信する。
【０１７３】
マップマネージャ６１２、６２２は、リーダ６１４、６２４から受信されたデータを処理する。ウェアラブル６１０内のマップマネージャ６１２は、上記に説明されるように、初期状態からの状態変更の順序に対応する、変更順序６１８を生成する。変更順序６１８は、状態変更が種々の状態に適用されるべきときに基づいて生成される。本順序は、概して、ウェアラブルマップマネージャ６１２が状態変更を受信する、時間に関連する。１つを上回る状態変更が、ウェアラブルマップマネージャ６１２に一度に到着する場合、マップマネージャ６１２は、状態変更を同時に書き込む順序を決定する。
【０１７４】
ウェアラブル６１０内のマップマネージャ６１２は、変更順序６１８を電源パック６２０内のマップマネージャ６２２に送信する。変更順序６１８は、システムコンポーネント６１０、６２０および仮想バス６３０が、マップマネージャ６１２、６２２が、変更順序６１８と異なるシーケンスにおいて、状態変更を異なるシステムコンポーネント６１０、６２０から受信し得るように、非同期して機能することを可能にする。変更順序６１８は、マップマネージャ６１２、６２２が、受信された状態変更を一致する順序で適用し、システムコンポーネント６１０、６２０を横断してマップを同期させることを可能にする。
【０１７５】
いくつかの実施形態では、変更順序６１８に基づく状態変更の並替は、特定のマップマネージャを含むシステムコンポーネントによって生成された状態変更の順序を相互に対して変更させない。さらに、状態変更は、仮想バス６３０をより効率的に利用するために、特定のシステムコンポーネント内のマップ（例えば、下記に説明されるように、ウェアラブル内に記憶されるより小さいマップ）に関連するデータのみを含むように修正されることができる。
【０１７６】
マップマネージャ６１２、６２２は、データをライタ６１６、６２６に送信する。そのようなデータは、状態変更と、いくつかの実施形態では、変更順序６１８とを含んでもよい。ライタ６１６、６２６は、ひいては、データを仮想バス６３０に送信する。仮想バス６３０は、各コンポーネント６１０、６２０が、最終的に、全ての状態変更および変更順序６１８を受信するように、変更順序６１８の状態変更をシステムコンポーネント６１０、６２０間に分散させる。マップは、静的ではないため、システムコンポーネント６１０、６２０は、常に、マップ更新を仮想バス６３０を横断して相互に送信する。仮想バス６３０はまた、そこに接続される複数のマッピングシステムを横断した使用のためのその独自のマップを保ち得る、クラウド処理コンポーネント６４０に接続する。クラウド処理コンポーネント６４０は、他のシステムコンポーネント６１０、６２０内のもののようなマップマネージャと、リーダと、ライタ（図示せず）とを有してもよい。
【０１７７】
図２０は、複数の受信された状態変更を分析することによって変更順序７５０を生成する、ウェアラブルマップマネージャ７１０を描写する。状態変更は、マッピング状態変更７２０と、バンドル調整状態変更７３０と、ループ閉鎖状態変更７４０とを含む。状態変更は、異なるシステムコンポーネントによって生成されてもよい。例えば、マッピング状態変更７２０のうちのいくつかは、ウェアラブルによって生成されてもよく、バンドル調整状態変更７３０およびループ閉鎖状態変更７４０は、電源パックによって生成されてもよい。各状態変更は、ライタおよびシーケンスカウントまたはタイムスタンプを識別する、構成キーによって一意に識別されることができる。例えば、各ライタが、状態変更を生産する場合、構成キーは、以下となり得る。
マッピング：マップデルタ（０）、マップデルタ（１）
バンドル調整：バンドル調整（０）、バンドル調整（１）
ループ閉鎖：ループ閉鎖（０）、ループ閉鎖（１）
【０１７８】
ウェアラブルマップマネージャ７１０は、受信された状態変更を分析し、変更順序７５０を生成する。上記に列挙された構成キーの実施例を継続すると、変更順序は、それらの状態変更のグローバル順序もまた表す、状態変更の単一ストリームとして通信されてもよい。例示的変更順序は、「マップデルタ（０）、バンドル調整（０）、マップデルタ（１）、ループ閉鎖（０）、バンドル調整（１）、ループ閉鎖（１）」である。他のマップマネージャおよびシステムは、最終的に、変更順序７５０の同一状態変更をウェアラブルマップマネージャ７１０から受信する。
【０１７９】
図２１は、受信された変更順序８５０に基づいて複数の受信された状態変更を適用する、電源パックマップマネージャ８１０を描写する。状態変更は、マッピング状態変更８２０、バンドル調整状態変更８３０、およびループ閉鎖状態変更８４０を含む。状態変更は、異なるシステムコンポーネントによって生成されてもよい。例えば、マッピング状態変更８２０のうちのいくつかは、ウェアラブルによって生成されてもよく、バンドル調整状態変更８３０およびループ閉鎖状態変更８４０は、電源パックによって生成されてもよい。変更順序８５０は、ウェアラブルマップマネージャによって生成され、仮想バスを通して受信されている場合がある。受信された状態変更８２０、８３０、８４０を受信された変更順序８５０内にエンコーディングされたシーケンスで適用するために、電源パックマップマネージャ８１０は、変更順序８５０によって呼び出されるまで受信された状態変更８２０、８３０、８４０を記憶するための複数のバッファ８２２、８３２、８４２を含む。変更順序８５０に従った次の状態変更が、利用可能である場合、電源パックマップマネージャ８１０は、次の変更を適用するであろう。変更順序８５０に従った次の変更が、利用不可能である場合、電源パックマップマネージャ８１０は、次の状態変更が受信されるまで待機し、非同期様式で動作するであろう。状態変更が、変更順序８５０の前に到着する場合、電源パックマップマネージャ８１０は、変更順序８５０が到着するまで待機し、非同期様式で動作するであろう。
【０１８０】
状態変更を状態に適用するための上記に説明される「＋」動作は、システムコンポーネントを横断して実質的に同様であるように構成される。これは、状態変更が、異なるシステムコンポーネントを横断して分散および適用されることを可能にする。「＋」動作は、本デバイスのためのバイナリをマニフェストから削除することによって、ウェアラブルおよび電源パックによる実行のために構成されることができる。クラウド処理コンポーネントのために、「＋」動作は、マニフェストからのクラウドバイナリの削除または「＋」演算子の明示的バージョニング等によって構成されることができる。
【０１８１】
図２２は、複数の受信された状態変更を処理する、ウェアラブルマップマネージャ９１０を描写する。状態変更は、追跡状態変更９２０、マッピング状態変更９３０、およびバンドル調整状態変更９４０を含む。状態変更は、異なるシステムコンポーネントによって生成されてもよい。例えば、追跡状態変更９２０およびマッピング状態変更９３０のうちのいくつかは、ウェアラブルによって生成されてもよく、バンドル調整状態変更９４０は、電源パックによって生成されてもよい。ウェアラブルマップマネージャ９１０は、変更順序９５０を受信された状態変更９２０、９３０、９４０から生成する。マップのロックを最小限にするために、ウェアラブルマップマネージャ９１０はまた、リーダジョブ、すなわち、事前追跡９２４、事前マップ９３４、および事前バンドル調整９４４を実行し、個別の状態変更のためのマップのスナップショットを作成する。
【０１８２】
図２３は、受信された変更順序１０５０に基づいて複数の受信された状態変更１０２０を処理する、電源パックマップマネージャ１０１０を描写する。状態変更は、異なるシステムコンポーネントによって生成されてもよく、変更順序は、ウェアラブルによって生成されてもよい。電源パックマップマネージャ１０１０は、変更順序１０５０を受信された状態変更１０２０、１０３０、１０４０から生成する。マップのロックを最小限にするために、電源パックマップマネージャ１０１０はまた、リーダジョブ、すなわち、事前ループ閉鎖１０２４、事前姿勢１０３４、および事前ストリーミング１０４４を実行し、個別の状態変更のためのマップのスナップショットを作成する。スナップショットは、特定のリーダジョブのために必要とされるデータのみを含んでもよい。スナップショットが、撮影された後、マップマネージャは、異なるリーダジョブをマップ上で実行してもよい。スナップショットを生成することは、実際のマップ処理がオフラインで生じ、それによって、処理するためにマップがロックされる時間量を最小限にすることを可能にする。
【０１８３】
電源パックマップマネージャ１０１０は、変更順序１０５０に基づいて、状態変更１０２０を実行し、以前に実行されたリーダジョブ１０２４、１０３４、１０４４およびそれによって生成されたスナップショットに対応する下流ジョブをトリガする。下流ジョブをトリガすることは、ループ閉鎖１０２６、軌道更新１０３６、およびセルストリーミング１０４６を含む。
【０１８４】
上記に説明される実施形態は、マップマネージャ、状態変更、および変更順序を含む、マッピングシステムを使用して、非同期並行マッピングを促進し、システムコンポーネントを横断してマップを同期させる。これは、システム待ち時間／遅れを低減させ、それによって、改良されたリアルタイムシステム性能を有効にする。
（セルストリーミング）
【０１８５】
図２４および２５は、複数のコンポーネントマッピングシステム内のセルストリーミング方法を描写する。本方法は、より小さいマップ１１００をウェアラブル内により小さいマップ１１００を含む、より大きいマップ（図示せず）を電源パックまたはクラウド処理コンポーネント（図示せず）内に記憶することによって、ウェアラブルのメモリ限界に対処する。
【０１８６】
図２４に示されるように、より大きいマップは、複数のマップサブユニット／セル１１１０、１１１２に分割されており、より小さいマップ１１００は、複数のマップサブユニット１１１０、１１１２の第１のサブセットを含む。より小さいマップ１１００は、３×３×１サブユニット３Ｄアレイであって、各サブユニット１１１０、１１１２は、約７ｍ×７ｍ×７ｍである。他の実施形態では、より小さいマップ（図示せず）は、１０×１０×１サブユニット３Ｄアレイまたは６×６×３  ３Ｄサブユニットアレイであってもよい。より小さいマップ１１００はまた、マッピングシステム／ユーザの現在の場所に対応する、中心マップサブユニット１１１２を含む。
【０１８７】
図２５は、マッピングシステム／ユーザの移動に伴う、前の中心マップサブユニット１１１２から更新された中心マップサブユニット１１１２’へのセルのストリーミングを示す。図２５に描写される更新されたより小さいマップ１１００’は、より多様なマップサブユニット１１１０、１１１２、１１１２’、１１１４、１１１６を含む。これらの新しいマップサブユニット１１１２’、１１１４、１１１６は、図２４に示されるマップサブユニット１１１０、１１１２と同じである。例えば、各マップサブユニット１１１０、１１１２、１１１２’、１１１４、１１１６は、約７ｍ×７ｍ×７ｍである。マッピングシステム／ユーザが、更新された中心マップサブユニット１１１２’を移動させると、マップサブユニット１１１４は、１つを上回るマップサブユニットをマッピングシステム／ユーザから離れさせる。故に、マップサブユニット１１１４から成る図２４におけるより小さいマップ１１００を定義する、複数のマップサブユニットの第１のサブセットの一部は、ウェアラブルのメモリから削除される。
【０１８８】
ウェアラブルはまた、複数のサブユニットの第１のサブセットからの残りのマップサブユニット１１１０、１１１２および複数のマップサブユニット１１１６の第２のサブセットが更新された中心マップサブユニット１１１２’を完全に囲繞するように、複数のマップサブユニット１１１６の第２のサブセットを受信する（例えば、電源パックから）。複数のマップサブユニット１１１６の第２のサブセットは、上記に説明されるように、マップサブユニット１１１４を削除することによって利用可能になるウェアラブルのメモリ内に記憶される。
【０１８９】
図２４および２５に描写される方法は、ウェアラブルが、新しいマップサブユニットをロードする前に、必要とされないマップサブユニットアンロードすることによって、ウェアラブル内の限定されたメモリにかかる需要を最小限にしながら、種々のマッピング機能のために必要とされるマップサブユニットにアクセスすることを可能にする。本方法は、中心マップユニットからＸ−Ｙ平面における各方向に少なくとも１つのマップサブユニットを維持する。故に、マップサブユニットは、入替プロセスの間、マッピング機能（例えば、追跡）のためのいくつかのマップデータを維持しながら、入れ替えられることができる。図２４および２５に描写される移動は、対角線移動であるが、Ｘ−Ｙ平面における任意の他の移動の後に、上記に説明される方法に従って、ウェアラブル内のより小さいマップの更新が続くことができる。
【０１９０】
図２４および２５に描写される方法または他の類似方法を使用して、疎マップは、以下のように表され得る。疎マップ（ｔ）＝｛セル１（ｔ）、セル２（ｔ）、…、セルＮ（ｔ）｝。上記に説明されるように、状態変更は、疎マップに適用され、疎マップ（ｔ＋１）＝疎マップ（ｔ）「＋」状態変更（ｔ）をもたらすことができる。「＋」演算子が、分散性質を有するとき、状態変更は、以下のように、疎マップに適用されることができる。
疎マップ（ｔ）「＋」状態変更（ｔ）＝｛セル１（ｔ）、セル２（ｔ）、…、セルＮ（ｔ）｝「＋」状態変更（ｔ）
＝｛セル１（ｔ）「＋」状態変更（ｔ）、セル２（ｔ）「＋」状態変更（ｔ）、…、セルＮ（ｔ）「＋」状態変更（ｔ）｝
＝｛セル１（ｔ＋１）、セル２（ｔ＋１）、…、セルＮ（ｔ＋１）｝
＝疎マップ（ｔ＋１）
したがって、状態変更は、完全疎マップ内の全てのセルの状態にアクセスせずに、個人レベルで適用されることができる（例えば、ウェアラブルにおけるように）。
【０１９１】
セルストリーミングの間、マップサブユニット／セルのスナップショットが、電源パックからウェアラブルにコピーされる。いくつかのマップのサイズに起因して、最後のマップサブユニットが、ウェアラブルにおいて受信されるまでに、ウェアラブルによって受信された第１のマップサブユニットは、電源パックにおいて実施されるマッププロセスに対して古くなり得る。セルあたり状態変更方法を使用すると、状態変更は、ウェアラブルによって受信された第１のマップユニットに適用され、それらを最新にすることができる。
【０１９２】
上記に説明されるセルストリーミング方法はまた、ウェアラブルが、ローカル環境の完全疎マップの一部のみを記憶しながら、マップ関連機能を実施することを可能にする。マッピングシステム／ユーザの移動に基づいて、マップサブユニットを電源パックからストリーミングすることによって、メモリ使用量は、多くのマップ機能を実施するためにウェアラブルのために十分なマップデータを維持しながら、ウェアラブル内で最小に保たれる。
（ゼロコピーデータ転送）
【０１９３】
図２６および２７は、ＵＳＢコネクタ等の比較的に低帯域幅通信チャネルを横断したゼロコピーデータ転送のためのデータ構造を描写する。ゼロコピーデータ転送は、図２４および２５に描写され、上記に説明される、セル入替機構において使用され、ウェアラブルと電源パックとの間のＵＳＢ通信チャネルにおける待ち時間を低減させることができる。描写されるデータ構造およびゼロコピーデータ転送を使用すると、ＵＳＢ通信チャネルは、種々のマッピング動作において使用されるであろう、データを、直接、システムコンポーネントメモリの中に書き込むことができる。これは、ＵＳＢ通信チャネルからのデータが、最初に、システムコンポーネント内のバッファに書き込まれ、次いで、バッファからシステムコンポーネントメモリに書き込まれる、現在のシステムに優る改良である。したがって、ゼロコピーデータ転送は、データをコピーするためのメモリ使用量およびプロセッサ使用量の両方を低減させる。
【０１９４】
ゼロコピーデータ転送は、所有権およびセル状態データインジケータ／タグを使用する。図２６に示されるように、特定のセルの所有権は、「なし」、「マップ」、または「ＵＳＢ」であることができる。同様に、特定のセルの状態は、「無効」、「マップ」、または「ＵＳＢ」であることができる。マップは、それぞれ、個々の所有者および状態を有する、セルのアレイであってもよい。マップはまた、セルがマップに進入し、そこから退出するにつれた、遷移状況を網羅するために十分なセルを含んでもよい。
【０１９５】
最初に、セルは、「なし」の所有権と、「無効」の状態とを有している場合がある。セルが、ＵＳＢ接続を経由して転送されているとき、その所有権は、「ＵＳＢ」または「Ｃｏｍｍ２」に設定され、その状態は、「ＵＳＢ」に設定される。転送が、完了し、セルが、システムによって使用されているとき、その所有権および状態は両方とも、「マップ」に設定される。セルは、リーダおよびライタを使用して、種々のマッピング動作／ジョブによってアクセスされることができる。ライタの単一インスタンスのみが、マッピングシステム内で許容され得る。リーダの複数のインスタンスが、マッピングシステム内で許容され得るが、同時読取および書込は、許容され得ない。
【０１９６】
特定のマップ動作／ジョブが、開始すると、フレームワークは、リーダおよび／またはライタを、必要に応じて、対応するシステムコンポーネントに通過させるであろう。セルリストは、マップによって現在所有されている全てのセルへのポインタと、それらのセルのカウントとを含む。マップ動作／ジョブの終了時、ライタは、要求アレイを取り込むであろう。要求アレイは、フレームワークに、３つの機能のうちの１つをマップの各セルに実施するように命令する。無効化要求は、セルを所有権「なし」および状態「無効」としてマークする。送信要求は、転送のためのセルを所有権「ＵＳＢ」または「Ｃｏｍｍ２」および状態「ＵＳＢ」としてマークする。転送が、完了した後、送信要求は、セルを所有権「なし」および状態「無効」としてマークする。デバッグ要求は、それを「無効」としてマークせずに、セルを送信する。したがって、デバッグの間、システムコンポーネントは、セルを変更しない。
【０１９７】
所有権は、ＵＳＢ通信チャネル（「ＵＳＢ」）とセル（「マップ」）上で作業するシステムコンポーネントとの間で転送可能である。所有権は、セル内のデータをコピーせずに、単純ポインタ動作を用いて変更され得るため、転送されているセルの所有権の変更は、プロセッサおよびメモリに対して比較的に低コストである。
（システムアーキテクチャ概要）
【０１９８】
図２８は、本開示の実施形態を実装するために好適な例証的コンピューティングシステム１２００のブロック図である。コンピュータシステム１２００は、プロセッサ１２０７、システムメモリ１２０８（例えば、ＲＡＭ）、静的記憶デバイス１２０９（例えば、ＲＯＭ）、ディスクドライブ１２１０（例えば、磁気または光学）、通信インターフェース１２１４（例えば、モデムまたはＥｔｈｅｒｎｅｔ（登録商標）カード）、ディスプレイ１２１１（例えば、ＣＲＴまたはＬＣＤ）、入力デバイス１２１２（例えば、キーボード）、およびカーソル制御等のサブシステムおよびデバイスを相互接続する、情報を通信するためのバス１２０６または他の通信機構を含む。
【０１９９】
本開示の一実施形態によると、コンピュータシステム１２００は、プロセッサ１２０７が、システムメモリ１２０８内に含有される１つ以上の命令の１つ以上のシーケンスを実行することによって、具体的動作を実施する。そのような命令は、静的記憶デバイス１２０９またはディスクドライブ１２１０等の別のコンピュータ可読／使用可能媒体から、システムメモリ１２０８の中に読み取られてもよい。代替実施形態では、有線回路網は、本開示を実装するためのソフトウェア命令の代わりに、またはそれと組み合わせて使用されてもよい。したがって、本開示の実施形態は、ハードウェア回路網および／またはソフトウェアの任意の具体的組み合わせに限定されない。一実施形態では、用語「論理」は、本開示の全部または一部を実装するために使用される、ソフトウェアまたはハードウェアの任意の組み合わせを意味するものとする。
【０２００】
用語「コンピュータ可読媒体」または「コンピュータ使用可能媒体」は、本明細書で使用されるように、実行のために命令をプロセッサ１２０７に提供することに関わる、任意の媒体を指す。そのような媒体は、限定ではないが、不揮発性媒体および揮発性媒体を含む、多くの形態をとり得る。不揮発性媒体は、例えば、ディスクドライブ１２１０等の光学または磁気ディスクを含む。揮発性媒体は、システムメモリ１２０８等の動的メモリを含む。
【０２０１】
一般的形態コンピュータの可読媒体は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ（登録商標）−ＥＰＲＯＭ（例えば、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ）、任意の他のメモリチップまたはカートリッジ、またはそこからコンピュータが読み取り得る、任意の他の媒体を含む。
【０２０２】
本開示のある実施形態では、本開示を実践するための命令のシーケンスの実行は、単一コンピュータシステム１２００によって実施される。本開示の他の実施形態によると、通信リンク１２１５（例えば、ＬＡＮ、ＰＴＳＮ、または無線ネットワーク）によって結合される、２つ以上のコンピュータシステム１２００は、相互に協働して本開示を実践するために要求される命令のシーケンスを実施してもよい。
【０２０３】
コンピュータシステム１２００は、通信リンク１２１５および通信インターフェース１２１４を通して、プログラム、すなわち、アプリケーションコードを含む、メッセージ、データ、および命令を伝送および受信してもよい。受信されたプログラムコードは、受信されるとともにプロセッサ１２０７によって実行され、および／または後の実行のためにディスクドライブ１２１０または他の不揮発性記憶装置内に記憶されてもよい。記憶媒体１２３１内のデータベース１２３２は、データインターフェース１２３３を介してシステム１２００によってアクセス可能なデータを記憶するために使用されてもよい。
【０２０４】
本開示は、主題デバイスを使用して行われ得る方法を含む。方法は、そのような好適なデバイスを提供するという行為を含んでもよい。そのような提供は、エンドユーザによって行われてもよい。換言すれば、「提供する」行為は、単に、ユーザが、主題方法において必須デバイスを提供するように、取得し、アクセスし、接近し、位置付けし、設定し、起動し、電源を入れ、または別様に作用することを要求する。本明細書で記載される方法は、論理的に可能である記載された事象の任意の順番で、および事象の記載された順番で実行されてもよい。
【０２０５】
本開示の例示的側面が、材料選択および製造に関する詳細とともに、上記で記載されている。本開示の他の詳細に関して、これらは、上記で参照された特許および出版物と関連して理解されるとともに、概して、当業者によって把握または理解され得る。同じことが、一般的または論理的に採用されるような付加的な行為の観点から、本開示の方法ベースの側面に関して当てはまり得る。
【０２０６】
加えて、本開示は、種々の特徴を随意的に組み込む、いくつかの実施例を参照して説明されているが、本開示は、本開示の各変形例に関して考慮されるように説明および指示されるものに限定されるものではない。種々の変更が、説明される本開示に行われてもよく、本開示の真の精神および範囲から逸脱することなく、（本明細書に記載されるか、またはいくらか簡潔にするために含まれないかどうかにかかわらず）均等物が置換されてもよい。加えて、値の範囲が提供される場合、その範囲の上限と下限との間の全ての介在値、およびその規定範囲内の任意の他の規定または介在値が、本開示内に包含されることを理解されたい。
【０２０７】
また、説明される本発明の変形例の任意の随意的な特徴が、独立して、または本明細書で説明される特徴のうちのいずれか１つ以上のものと組み合わせて、記載および請求され得ることが考慮される。単数形の項目の言及は、複数形の同一項目が存在する可能性を含む。より具体的には、本明細書で、および本明細書に関連付けられる請求項で使用されるように、「１つの（「ａ」、「ａｎ」）」、「該（ｓａｉｄ）」、および「前記（ｔｈｅ）」という単数形は、特に規定がない限り、複数形の指示主題を含む。換言すると、冠詞の使用は、上記の説明および本開示と関連付けられる請求項で、対象項目の「少なくとも１つ」を可能にする。さらに、そのような請求項は、任意の随意的な要素を除外するように起草され得ることに留意されたい。したがって、この記述は、請求項の要素の記載に関連する「だけ」、「のみ」、および同等物等のそのような排他的用語の使用、または「否定的」制限の使用のための先行詞としての機能を果たすことを目的としている。
【０２０８】
そのような排他的用語を使用することなく、本開示と関連付けられる請求項での「備える」という用語は、所与の数の要素がそのような請求項で列挙されるか、または特徴の追加をそのような請求項に記載される要素を変換するものとして見なすことができるかにかかわらず、任意の付加的な要素の包含を可能にするものとする。本明細書で特に定義される場合を除いて、本明細書で使用される全ての技術および科学用語は、請求項の有効性を維持しながら、可能な限り広義の一般的に理解されている意味を与えられるものである。
【０２０９】
本開示の範疇は、提供される実施例および／または主題の明細書に限定されるものではなく、むしろ、本開示と関連付けられる請求項の範囲のみによって限定されるものとする。
【０２１０】
前述の明細書では、本開示は、その具体的実施形態を参照して説明された。しかしながら、種々の修正および変更が、本開示のより広範な精神および範囲から逸脱することなく、そこに成され得ることは明白となるであろう。例えば、前述のプロセスフローは、プロセスアクションの特定の順序を参照して説明される。しかしながら、説明されるプロセスアクションの多くの順序は、本開示の範囲または動作に影響を及ぼすことなく、変更されてもよい。明細書および図面は、故に、限定的意味ではなく、例証的であると見なされるものとする。
【図１】
2021530812.tif 000003
【図２】
2021530812.tif 000004
【図３】
2021530812.tif 000005
【図４】
2021530812.tif 000006
【図５】
2021530812.tif 000007
【図６】
2021530812.tif 000008
【図７】
2021530812.tif 000009
【図８】
2021530812.tif 000010
【図９】
2021530812.tif 000011
【図１０】
2021530812.tif 000012
【図１１】
2021530812.tif 000013
【図１２】
2021530812.tif 000014
【図１３】
2021530812.tif 000015
【図１４】
2021530812.tif 000016
【図１５】
2021530812.tif 000017
【図１６】
2021530812.tif 000018
【図１７Ａ】
2021530812.tif 000019
【図１７Ｂ】
2021530812.tif 000020
【図１７Ｃ】
2021530812.tif 000021
【図１７Ｄ】
2021530812.tif 000022
【図１８】
2021530812.tif 000023
【図１９】
2021530812.tif 000024
【図２０】
2021530812.tif 000025
【図２１】
2021530812.tif 000026
【図２２】
2021530812.tif 000027
【図２３】
2021530812.tif 000028
【図２４】
2021530812.tif 000029
【図２５】
2021530812.tif 000030
【図２６】
2021530812.tif 000031
【図２７】
2021530812.tif 000032
【図２８】
2021530812.tif 000033
【国際調査報告】
2021530812.tif 000034
2021530812.tif 000035
2021530812.tif 000036