(57)【特許請求の範囲】
【請求項１】
移動体デバイスの位置を推定するための方法において、
エリアに対応するルーティンググラフを取得することと、
前記エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集することと、
前記軌跡情報から軌跡グラフを形成することと、
前記軌跡グラフを前記ルーティンググラフと比較して、前記ルーティンググラフのマッチングサブセットを決定することとを含み、
前記軌跡グラフは、前記エリアを通る前記移動体デバイスの動きをノードと辺とにより示し、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示し、
前記軌跡グラフを前記ルーティンググラフと比較することは、
少なくとも前記軌跡グラフに対するしきい値類似度を示す、前記ルーティンググラフのサブセットの数を決定することと、
前記ルーティンググラフの複数のサブセットが、少なくとも前記軌跡グラフに対するしきい値類似度を示すと決定することに応答して、
前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得することと、
前記軌跡情報と前記補足軌跡情報との組み合わせに基づいて、前記軌跡グラフを更新することと、
前記ルーティンググラフの複数のサブセットと前記更新された軌跡グラフとを比較して、前記ルーティンググラフのマッチングサブセットを決定することと、
前記ルーティンググラフのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定することとを含む方法。
【請求項２】
前記軌跡グラフを形成することは、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別することと、
前記識別された方向転換を前記軌跡グラフ中の前記ノードとして規定することと、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の前記辺として規定することとを含む請求項１記載の方法。
【請求項３】
前記軌跡グラフを前記ルーティンググラフと比較することは、ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフと比較することを含む請求項１記載の方法。
【請求項４】
前記ルーティンググラフのサブセットのいずれも、少なくとも前記軌跡グラフに対するしきい値類似度を示さないと決定することに応答して、
前記軌跡グラフを改善して、改善された軌跡グラフを取得することと、
前記改善された軌跡グラフを前記ルーティンググラフと比較することとをさらに含む請求項１記載の方法。
【請求項５】
前記軌跡グラフを改善することは、
前記軌跡グラフのうちの１つ以上のノードを誤ったノードとして識別することと、
前記誤ったノードを前記軌跡グラフから取り除いて、更新された軌跡グラフを取得することとを含む請求項４記載の方法。
【請求項６】
前記ルーティンググラフの複数のサブセットが、少なくとも前記軌跡グラフに対するしきい値類似度を示すと決定することに応答して、
前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理することをさらに含む請求項１記載の方法。
【請求項７】
前記移動体デバイスの表示スクリーン上に、前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する前記複数のマッチング仮説に関連するグラフィカルな情報を表示することをさらに含む請求項６記載の方法。
【請求項８】
前記補足軌跡情報を取得することを繰り返すことと、
前記軌跡情報と前記補足軌跡情報とを組み合わせることと、
前記更新された軌跡グラフを構築することと、
前記ルーティンググラフの単一のサブセットが前記更新された軌跡グラフにマッチングするまで、前記ルーティンググラフの複数のサブセットと前記更新された軌跡グラフとを比較することとをさらに含む請求項１記載の方法。
【請求項９】
前記補足軌跡情報に関係付けられている前記移動体デバイスのさらなる動きがある際に、前記移動体デバイスのディスプレイスクリーン上に、ガイドする動き情報を表示して、前記移動体デバイスのユーザを支援することをさらに含む請求項１記載の方法。
【請求項１０】
前記移動体デバイスの位置を推定することは、前記エリアに関連する前記移動体デバイスの位置を推定することを含む請求項１記載の方法。
【請求項１１】
前記移動体デバイスの位置を推定することは、地球に関して前記移動体デバイスの位置を推定することを含む請求項１記載の方法。
【請求項１２】
位置推定を促進する移動体デバイスにおいて、
エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集する手段と、
前記軌跡情報から軌跡グラフを形成する手段と、
前記エリアに対応するルーティンググラフを取得する手段と、
前記軌跡グラフを前記ルーティンググラフと比較して、前記ルーティンググラフのマッチングサブセットを決定する手段とを具備し、
前記軌跡グラフは、前記エリアを通る前記移動体デバイスの動きをノードと辺とにより示し、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示し、
前記軌跡グラフを前記ルーティンググラフと比較する手段は、少なくとも前記軌跡グラフに対するしきい値類似度を示す、前記ルーティンググラフのサブセットの数を決定する手段を備え、
前記移動体デバイスはさらに、
前記ルーティンググラフの複数のサブセットが、少なくとも前記軌跡グラフに対するしきい値類似度を示すと決定することに応答して、前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理する手段を具備し、
前記複数のマッチング仮説を管理する手段は、
前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得する手段と、
前記軌跡情報と前記補足軌跡情報との組み合わせに基づいて、更新された軌跡グラフを構築する手段と、
前記ルーティンググラフの複数のサブセットと前記更新された軌跡グラフとを比較して、前記ルーティンググラフのマッチングサブセットを決定する手段と、
前記ルーティンググラフのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定する手段とを備える移動体デバイス。
【請求項１３】
前記軌跡グラフを形成する手段は、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別する手段と、
前記識別された方向転換を前記軌跡グラフ中の前記ノードとして規定する手段と、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の前記辺として規定する手段とを備える請求項１２記載の移動体デバイス。
【請求項１４】
前記軌跡グラフを前記ルーティンググラフと比較する手段は、ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフと比較する手段を備える請求項１２記載の移動体デバイス。
【請求項１５】
プロセッサに、請求項１ないし１１のうちのいずれかの方法を実行させるように構成されているプロセッサ実行可能命令を備えるプロセッサ読取可能記憶媒体。
【発明の詳細な説明】
【背景】
【０００１】
［０００１］
ワイヤレス通信技術における進歩は、今日のワイヤレス通信デバイスの汎用性を大幅に増加させてきた。これらの進歩は、ワイヤレス通信デバイスを、シンプルな移動体電話機およびページャから、マルチメディア記録および再生、イベントスケジューリング、ワード処理、ｅ−コマース等のような、幅広いさまざまな機能性が可能な精巧なコンピューティングデバイスへと進化させた。結果として、今日のワイヤレス通信デバイスのユーザは、従来、複数のデバイスまたはより大きな非ポータブル機器のいずれかを必要とした広い範囲のタスクを、単一のポータブルデバイスから実行できる。
【０００２】
［０００２］
ワイヤレス通信デバイスの位置を取得して、ワイヤレス通信デバイスを位置付けるために、さまざまなアプリケーションが利用される。例えば、ロケーションベースサービス（ＬＢＳ）は、関係するデバイスのロケーションを活用して、デバイス上で実行する１つ以上のアプリケーションに対する制御を提供する。ワイヤレス通信デバイスに関して実現されるＬＢＳ機能性のアプリケーションは、とりわけ、パーソナルナビゲーション、ソーシャルネットワーキング、コンテンツ（例えば、広告、サーチ結果等）のターゲット化を含んでいる。
【概要】
【０００３】
［０００３］
移動体デバイスの位置を推定するための方法をここで説明する。方法は、エリアに対応するルーティンググラフを取得することと、エリアを通る移動体デバイスの動きに対応する軌跡情報を収集することと、軌跡情報から軌跡グラフを形成することと、軌跡グラフをルーティンググラフのうちの少なくとも１つのサブセットと比較して、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定することと、ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、移動体デバイスの位置を推定することとを含み、ルーティンググラフは、エリアを通る通行可能パスを示す。
【０００４】
［０００４］
位置推定を促進する移動体デバイスをここで説明する。移動体デバイスは、エリアを通る移動体デバイスの動きに対応する軌跡情報を収集するように構成されている軌跡監視モジュールと、軌跡監視モジュールに通信可能に結合され、軌跡情報から軌跡グラフを形成するように構成されている軌跡グラフ化モジュールと、軌跡グラフ化モジュールに通信可能に結合され、エリアに対応するルーティンググラフを取得し、軌跡グラフをルーティンググラフのうちの少なくとも１つのサブセットと比較し、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するように構成されているグラフマッチングモジュールと、グラフマッチングモジュールに通信可能に結合され、ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、移動体デバイスの位置を推定するように構成されている位置推定モジュールとを含み、ルーティンググラフは、エリアを通る通行可能パスを示す。
【０００５】
［０００５］
ここで説明する位置推定を促進する別の移動体デバイスは、エリアを通る移動体デバイスの動きに対応する軌跡情報を収集する手段と、軌跡情報から軌跡グラフを形成する手段と、エリアに対応するルーティンググラフを取得する手段と、軌跡グラフをルーティンググラフのうちの少なくとも１つのサブセットと比較して、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定する手段と、ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、移動体デバイスの位置を推定する手段とを含み、ルーティンググラフは、エリアを通る通行可能パスを示す。
【０００６】
［０００６］
ここで説明するプロセッサ読取可能記憶媒体は、プロセッサに、エリアを通る移動体デバイスの動きに対応する軌跡情報を収集させ、軌跡情報から軌跡グラフを発生させ、エリアに対応するルーティンググラフを取得させ、軌跡グラフをルーティンググラフのうちの少なくとも１つのサブセットと比較させて、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定させ、ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、移動体デバイスの位置を推定させるように構成されているプロセッサ実行可能な命令を含み、ルーティンググラフは、エリアを通る通行可能パスを示す。
【０００７】
［０００７］
ここで説明する別の移動体デバイスは、エリアに対応するルーティンググラフに関連するデータを記憶するように構成されているメモリと、メモリに通信可能に結合され、エリアを通る移動体デバイスの動きに対応する軌跡情報を収集するように、軌跡情報から軌跡グラフを形成するように、軌跡グラフをルーティンググラフのうちの少なくとも１つのサブセットと比較して、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するように、ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、移動体デバイスの位置を推定するように構成されているプロセッサとを含み、ルーティンググラフは、エリアを通る通行可能なパスを示す。
【０００８】
［０００８］
ここで説明するアイテムおよび／または技術は、以下の能力のうちの１つ以上とともに、言及していない他の能力を提供してもよい。位置と移動軌跡との間の関連は、ポジショニング効率および精度を向上させるために活用される。エリアに関する移動体デバイスの位置は、エリアに対する移動軌跡情報とマップデータとのみに基づいて推定することができ、ポジショニング能力が欠如しているデバイスに対して、または、衛星ベースのまたはネットワークベースのポジショニングサービスが利用できないエリアにおいて、ポジショニングを可能にする。他の能力を提供してもよく、本開示にしたがったすべてインプリメンテーションが、議論する能力のすべては言うまでもなく、何らかの特定の能力を提供しなければならないとは限らない。さらに、上記で着目した効果が、着目した以外の手段によって達成することが可能であってもよく、着目したアイテム／技術が、必ずしも着目した効果をもたらさなくてもよい。
【図面の簡単な説明】
【０００９】
【図１】［０００９］  図１は、屋内領域に関係付けられているワイヤレス通信環境の概略ダイヤグラムである。
【図２】［００１０］  図２は、図１中に示す移動局の１つの実施形態のコンポーネントのブロックダイヤグラムである。
【図３】［００１１］  図３は、デバイスの軌跡に基づいて、移動体デバイスの位置を推定するためのシステムのブロックダイヤグラムである。
【図４】［００１２］  図４は、エリアを表すマップデータからルーティンググラフを構築するためのシステムのブロックダイヤグラムである。
【図５】［００１３］  図５は、図４中に示すシステムによって実行されるグラフ構築機能の例示的な図である。
【図６】［００１４］  図６は、図３中に示す軌跡監視モジュールのうちの１つの実施形態のコンポーネントのブロックダイヤグラムである。
【図７】［００１５］  図７は、図３中に示す軌跡グラフ化モジュールによって実行されるグラフ構築機能の例示的な図である。
【図８】［００１６］  図８は、図３中に示すグラフマッチングモジュールによって実行されるマッチング機能の例示的な図である。
【図９】［００１７］  図９は、複数の仮説追跡を使用して、移動体デバイスの位置を推定するシステムのブロックダイヤグラムである。
【図１０】［００１８］  図１０は、図９中に示す複数の仮説追跡システムに関連して使用してもよいディスプレイの例示的な図である。
【図１１】［００１９］  図１１は、軌跡情報を使用して、移動体デバイスの位置を推定するそれぞれのプロセスのブロックフローダイヤグラムである。
【図１２】図１２は、軌跡情報を使用して、移動体デバイスの位置を推定するそれぞれのプロセスのブロックフローダイヤグラムである。
【詳細な説明】
【００１０】
［００２０］
ここで説明するのは、移動体デバイスの移動軌跡を追跡し、追跡した軌跡を使用して、移動体デバイスの位置を推定するためのシステムおよび方法である。屋内ポジショニングシステムの文脈で、さまざまな実施形態をここで説明するが、ここで説明するシステムおよび方法は、より一般的に、移動体デバイスの軌跡を監視して、移動体デバイスの位置を望ましく推定する任意のシナリオに拡張することができる。一般的に、デバイスロケーションは屋内または屋外であってもよい。いくつかの実施形態において、ここで説明する軌跡ベースの技術を介して推定した位置は、衛星ポジショニングシステム、ネットワーク測定、またはこれらに類するものに基づいて取得した位置推定と組み合わせて使用することができる。軌跡ベースの位置推定は、他の手段によって取得した位置推定を向上させる代わりに、および／または、他の手段によって取得した位置推定を向上させるために、このような実施形態において使用してもよく、逆もまた同じである。
【００１１】
［００２１］
ここで説明するシステムおよび方法は、ワイヤレス通信システムにおいて動作する１つ以上の移動体デバイスを介して動作する。図１を参照すると、ワイヤレス通信システム１００は、１つ以上の基地トランシーバ局（ＢＴＳ）、ここでは１つのＢＴＳ１４と、ワイヤレスアクセスポイント（ＡＰ）１６とを含んでいる。ＢＴＳ１４およびＡＰ１６は、ここでは移動体デバイス１２と呼ぶ、さまざまなワイヤレス通信デバイスに対して通信サービスを提供する。ＢＴＳ１４および／またはＡＰ１６によって担当されるワイヤレス通信デバイスは、現在存在しようと将来開発されようと、パーソナルデジタルアシスタント（ＰＤＡ）や、スマートフォンや、ラップトップ、デスクトップ、またはタブレットコンピュータ、自動車コンピューティングシステム等のようなコンピューティングデバイスを含むことができるが、これらに限定されない。
【００１２】
［００２２］
システム１００は、複数の搬送波（異なる周波数の波形信号）上の動作をサポートしてもよい。マルチ搬送波送信機は、複数の搬送波上で同時に変調信号を送信できる。各変調信号は、コード分割多元接続（ＣＤＭＡ）信号、時分割多元接続（ＴＤＭＡ）信号、直交周波数分割多元接続（ＯＦＤＭＡ）信号、単一搬送波周波数分割多元接続（ＳＣ−ＦＤＭＡ）信号、等であってもよい。各変調信号は、異なる搬送波上で送られてもよく、パイロット、オーバーヘッド情報、データ等を運んでもよい。
【００１３】
［００２３］
ＢＴＳ１４およびＡＰ１６は、アンテナを介して、システム１００中の移動体デバイス１２とワイヤレスに通信することができる。ＢＴＳ１４はまた、基地局、ノードＢ、進化型ノードＢ（ｅＮＢ）等と呼ばれるかもしれない。ＡＰ１６はまた、アクセスノード（ＡＮ）、ホットスポット等と呼ばれるかもしれない。ＢＴＳ１４は、複数の搬送波を介して移動体デバイス１２と通信するように構成されている。ＢＴＳ１４は、セルのような、それぞれの地理エリアに対する通信カバレッジを提供できる。ＢＴＳ１４のセルを基地局アンテナの関数として、複数のセクタに区分することができる。
【００１４】
［００２４］
システム１００は、マクロ基地局１４のみを含んでいてもよく、あるいは、例えば、マクロ、ピコ、および／または、フェムト基地局等の、異なるタイプの基地局１４を有することができる。マクロ基地局は、比較的大きい地理的エリア（例えば半径数キロメートル）をカバーでき、サービスに加入している端末による無制限アクセスを可能にしてもよい。ピコ基地局は、比較的小さい地理的エリア（例えばピコセル）をカバーでき、サービスに加入している端末による無制限アクセスを可能にしてもよい。フェムトまたは家庭基地局は、比較的小さい地理的エリア（例えばフェムトセル）をカバーでき、フェムトセルとの関係付けを有する端末（例えば家庭におけるユーザのための端末）による制限アクセスを可能にしてもよい。
【００１５】
［００２５］
ＢＴＳ１４とＡＰ１６の両方が、システム１００中に示されているが、ワイヤレス通信環境は、ＢＴＳ１４とＡＰ１６の両方を含んでいる必要はなく、ＢＴＳ１４、ＡＰ１６、または両方を、任意の数またはコンフィギュレーションで含んでいてもよい。一般的に、ＢＴＳ１４は、移動体通信のためのグローバルシステム（ＧＳＭ（登録商標））、ユニバーサル移動体電気通信システム（ＵＭＴＳ）、ロングタームエボリューション（ＬＴＥ（登録商標））および／または第３世代パートナーシッププロジェクト（３ＧＰＰ（登録商標））によって開発された他のテクノロジー、ＣＤＭＡ２０００および／または３ＧＰＰ２によって開発されたような他のテクノロジー等のような、１つ以上セルラ無線アクセステクノロジーを介して通信をサポートする。ＡＰ１６は、一般的にＩＥＥＥ（電気電子技術者協会）８０２．１１仕様（例えば、Ｗｉ−Ｆｉ）およびこれに類するものに基づいた１つ以上のテクノロジーを介して通信をサポートする。しかしながら、ＢＴＳ１４およびＡＰ１６は、これらのテクノロジーに限定されず、追加のまたは代替の機能性を用いてもよい。さらに、単一のデバイスが、ＢＴＳ１４およびＡＰ１６両方の、いくつかまたはすべての機能性を含んでいてもよい。
【００１６】
［００２６］
システム１００においてさらに示すように、移動体デバイス１２は、ショッピングモール、学校、あるいは、他の屋内または屋外エリアのような、現場（エリア、領域）１１０内に位置していてもよい。ここで、ＡＰ１６は、現場１１０内に位置しており、現場１１０のそれぞれのエリア（部屋、店舗等）に対する通信カバレッジを提供している。システム１００中のＡＰ１６へのアクセスは、オープンであってもよく、あるいは、代替的に、アクセスを、パスワード、暗号化キー、または他の信用証明により保護することができる。
【００１７】
［００２７］
移動体デバイス１２は、システム１００を通して分散させることができる。移動体デバイス１２は、端末、アクセス端末（ＡＴ）、移動局、ユーザ機器（ＵＥ）、加入者ユニット等として呼ばれることがある。移動体デバイス１２は、上記でリストアップしたおよび／または他の何らかのデバイスのようなさまざまなデバイスを含むことができる。
【００１８】
［００２８］
図１中にさらに示すように、移動体デバイス１２は、例えば、衛星ポジショニングシステム（ＳＰＳ）衛星１２０を通して、ＳＰＳからナビゲーション信号を受信してもよい。ＳＰＳ衛星１２０は、単一複数グローバルナビゲーション衛星システム（ＧＮＳＳ）にまたは複数のこのようなシステムに関係付けることができる。ＳＰＳ衛星１２０に関係付けられているＧＮＳＳは、グローバルポジショニングシステム（ＧＰＳ）、ガリレオ、グロナス、北斗（コンパス）等を含むことができるが、これらに限定されない。ＳＰＳ衛星１２０は、衛星、宇宙船（ＳＶ）等とも呼ばれる。
【００１９】
［００２９］
移動体デバイス１２は、図内の他の通信エンティティに基づき、および／または、移動体デバイス１２に利用可能な情報に基づき、さまざまな技術を使用して、システム１００内の移動体デバイス１２の現在の位置の、部分的または完全な推定を取得するように構成されていてもよい。例えば、移動体デバイス１２は、１つ以上のワイヤレスローカルエリアネットワーク（ＬＡＮ）や、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＺｉｇＢｅｅ（登録商標）等のようなネットワーキングテクノロジーを利用するパーソナルエリアネットワーク（ＰＡＮ）に関係付けられているＡＰ１６から、ＳＰＳ衛星１２０から、取得した情報を使用して、ならびに／あるいは、マップサーバ１２４から取得したマップ制約データを使用して、移動体デバイス１２の位置を推定できる。
【００２０】
［００３０］
追加的にまたは代替的に、ここで説明する技術は、デバイス１２の移動軌跡に基づいて、移動体デバイス１２の位置を推定できるようにする。一般的に、デバイス１２の移動軌跡は、そして拡張によって、デバイス１２のユーザの移動軌跡は、移動体デバイスの相対移動を追跡することによって取得される。さまざまなテクノロジーを適用して、デバイス移動を追跡してもよい。これらは、ビジュアル走行距離計インプリメンテーション、慣性センサベースのアプローチ、またはこれらに類するものを含むが、これらに限定されない。ビジュアル走行距離計に関して、デバイス１２の軌跡は、カメラおよび／またはデバイス１２における他のイメージセンサによって、予め定められた時間内に捕捉されたイメージ内のビジュアル特徴（例えば、規則的または不規則な間隔で捕捉された静止イメージ、捕捉されたビデオの中の隣接または周期イメージフレーム、等）をマッチングすることによって取得される。センサベースの走行距離計に対して、デバイス１２の軌跡は、加速度計、ジャイロスコープ、磁力計、または他の方向センサによって取得された測定を介して取得される。いくつかのインプリメンテーションにおいて、技術的に一般的に既知であるようなさまざまなメカニズムを適用して、方向センサの精度に影響するドリフティングおよび／または他の要因を補償してもよい。ビジュアルおよびセンサベースの走行距離計アプローチの組み合わせ、ならびに／あるいは、現在存在するかまたは将来存在するかのいずれかである他の何らかの軌跡追跡メカニズムのような、他の技術も可能である。
【００２１】
［００３１］
いくつかの事例において、所定のデバイス１２の軌跡と位置との間の関連は明確ではないかもしれない。例えば、デバイス１２の移動軌跡は、絶対位置情報の知識なしで取得されることが多い。結果として、デバイス１２の軌跡が既知であるケースにおいてでさえ、デバイス１２の絶対位置は、既知ではないかもしれない。ここで説明する技術は、マップデータおよび／または他の補足データを使用して、移動軌跡と絶対位置との間の関連を明確にし、それによって、ユーザ位置を移動軌跡から推定できるようにする。
【００２２】
［００３２］
次に、図２を参照すると、移動体デバイス１２は、プロセッサ２０と、ソフトウェア２４を含むメモリ２２と、ディスプレイ２６と、アンテナ２８と、ＳＰＳ受信機３０と、方向センサ３２と、イメージセンサ３４とを含んでいるコンピュータシステムを具備している。アンテナ２８は、１つ以上の関係付けられているワイヤレス通信ネットワーク中の他のエンティティ、例えば、図１中に示すような、セルラネットワークに関係付けられているＢＴＳ１４、局所的通信ネットワークに関係付けられているＡＰ１６等に対して、双方向の通信機能性を提供する。アンテナ２８は、（示されていない）受信機、送信機、またはトランシーバとは無関係に、あるいは、（示されていない）受信機、送信機、またはトランシーバの支援により、動作してもよい。いくつかのインプリメンテーションにおいて、アンテナ２８の異なるアンテナを、異なる通信システムのために使用してもよい。ここで、アンテナ２８は、ＢＴＳ１４と通信するためのアンテナと、ＡＰ１６と通信するためのアンテナとを含んでいる。他のインプリメンテーションにおいて、所定の通信システムとの通信のために使用されるアンテナ２８は、オプション的に、送信（Ｔｘ）アンテナと受信（Ｒｘ）アンテナとにさらに分割してもよい。代替的に、アンテナ２８のそれぞれ１つのアンテナは、割り当てられたシステムまたはシステムの組み合わせに対する送信と受信との両方のために使用することができる。図２中に示されているデバイス１２は、（示されていない）１つ以上の関係付けられているＳＰＳアンテナを介してＳＰＳ信号を受信するためのＳＰＳ受信機３０も含んでいるが、ここで説明するように、デバイス１２は、ＳＰＳ受信機３０なしでまたは限定された機能性を有するＳＰＳ受信機のいずれかにより、ここで説明する技術を実行するように動作可能であることがある。
【００２３】
［００３３］
プロセッサ２０は、好ましくは、インテリジェントなハードウェアデバイス、例えば、ＡＲＭ（登録商標）、Ｉｎｔｅｌ（登録商標）コーポレーションまたはＡＭＤ（登録商標）によって作られた中央処理ユニット（ＣＰＵ）のようなＣＰＵ、マイクロ制御装置、特定用途向け集積回路（ＡＳＩＣ）等であることが好ましい。プロセッサ２０は、移動体デバイス１２中で分散させることができる、複数の別々の物理エンティティを含むことができる。メモリ２２は、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリーメモリ（ＲＯＭ）を含んでいる。メモリ２２は、ソフトウェア２４を記憶する非一時的プロセッサ読取可能記憶媒体であり、ソフトウェア２４は、実行されるときに、（説明は、機能を実行するプロセッサ２０のみを言及するかもしれないが、）ここで説明するさまざまな機能をプロセッサ２０に実行させるように構成されているプロセッサ読取可能命令を含む、プロセッサ読取可能、プロセッサ実行可能ソフトウェアコードである。代替的に、ソフトウェア２４は、プロセッサ２０によって直接実行可能ではないかもしれないが、例えば、コンパイルされて実行されるときに、機能をプロセッサ２０に実行させるように構成されている。メモリ２２を構成することができる媒体は、ＲＡＭ、ＲＯＭ、ＦＬＡＳＨ、ディスクドライブ等を含むが、これらに限定されない。
【００２４】
［００３４］
ディスプレイ２６は、デバイス１２のユーザにより見るための情報をレンダリングする手段および／またはメカニズムを備えている。ディスプレイ２６は、情報を示すスクリーンのような物理的表面を、ならびに／あるいは、デバイス１２に関係付けられていない表面上に情報を投影するプロジェクタまたは他の手段を含んでいてもよい。ディスプレイ１２は、デバイス１２に物理的に統合されていてもよく、あるいは、例えば、ディスプレイモニタまたはこれに類するもののケースにおいて、デバイス１２の外部にあり、デバイス１２に通信可能に結合されていてもよい。さらに、ディスプレイ２６は、タッチスクリーンであってもよく、ならびに／あるいは、そうでなければ、入力機能性および／またはデバイス１２の他の機能と統合されていてもよい。
【００２５】
［００３５］
方向センサ３２は、所定の基準方向に関してデバイス１２の相対方向に関連する測定を行って、さらなる処理のために、この情報をプロセッサ２０および／またはデバイス１２の他のエレメントに伝える。方向センサ３２は、リニア加速度計、ジャイロスコープ、磁力計（コンパス）等を含んでいてもよいが、これらに限定されない。一般的にリニア加速度計は、重力に関連してリニア加速を測定し、ジャイロスコープは、角度／回転加速を測定し、磁力計は、磁北に関するデバイス１２の向きを測定する。リニア加速度計および／またはジャイロスコープは、複数の軸（例えば、リニア加速度計については地球に関してｘ−ｙ−ｚ軸または北−東−下軸、ジャイロスコープに関してロール−ピッチ−ヨー軸、等）に沿って加速を測定するように構成されている複数軸加速度計であってもよく、または、代替的に、１つ以上の単一軸加速度計を使用してもよい。さらに、磁力計によってなされる測定は、磁気偏角および／または磁北と真北との間の差に対処するための他の補正ファクターによって（例えば、磁力計自体によっておよび／または関係付けられているプロセッサ２０によって）調節してもよい。
【００２６】
［００３６］
イメージセンサ３４は、デバイス１２の観点でエリアのイメージを捕捉して処理するための、カメラおよび／または他のデバイスを含んでいる。一般的に、カメラは、１つ以上のレンズを含む光学系を含んでおり、１つ以上のレンズは、イメージを捕捉するカメラの視野をひとまとめに規定する。レンズおよび／または光学系の他のコンポーネントは、デバイス１２内に収容することができ、あるいは、例えばレンズ付属品またはこれに類するもののように、デバイス１２の外部にすることができる。光学系は、イメージ捕捉ユニットに通信可能に結合されており、イメージ捕捉ユニットは、相補形金属酸化膜半導体（ＣＭＯＳ）を、電荷結合素子（ＣＣＤ）を、および／または、プロセッサ２０のようなデバイス１２の１つ以上の処理エンティティに転送される電気情報に光学イメージを変換する他のテクノロジーを含む。イメージセンサ３４は、１つのカメラを、または、デバイス１２の前側に沿って配置されている前面向きカメラとデバイス１２の後側に沿って配置されている背面向きカメラとのような、複数のカメラを含んでいてもよい。複数のカメラがデバイス１２において存在する場合、カメラは、相互依存して、または、互いに独立して動作できる。
【００２７】
［００３７］
方向センサ３２および／またはイメージセンサ３４は、プロセッサ２０および／またはメモリ２２と通信して、センサ測定に、捕捉されたイメージもしくはビデオに、またはこれらに類するものに関係付けられているメタデータを発生させ、あるいは、そうでなければ、取得できる。イメージに関係付けられている、または、イメージにリンク付けされているメタデータは、イメージのさまざまな特性に関する情報を含んでいる。例えば、メタデータは、イメージが捕捉された、時間、日付、および／またはロケーション、イメージのディメンションまたは解像度、イメージを捕捉するために使用されるカメラおよび／または移動体デバイス１２の識別子等を含んでいる。カメラにより利用されるメタデータは、エクスチェンジャブルイメージファイルフォーマット（ＥＸＩＦ）タグまたはこれに類するもののような適切なフォーマットで発生され、および／または記憶される。方向センサ３２および／またはイメージセンサ３４は、アンテナ２８も利用して、センサ３２、３４によって取得した情報の、関係する通信ネットワーク内の１つ以上の他のエンティティへの送信を促進できる。
【００２８】
［００３８］
ここで、方向センサ３２および／またはイメージセンサ３４を利用して、デバイス１２の移動軌跡に関連するデータを取得し、データは、（例えば、エリアまたは領域に関して）移動体デバイスの位置を推定するためにここで説明するようにその後利用される。例えば、方向センサ３２を利用して、上記で説明したセンサベースの走行距離計を実現してもよく、イメージセンサ３４を利用して、上記で説明したビジュアル走行距離計を実現してもよい。他のインプリメンテーションも、ここで説明するであろうように、可能である。
【００２９】
［００３９］
次に図３を参照すると、デバイス１２の軌跡に基づいて移動体デバイス１２の位置を推定するためのシステム３００は、軌跡監視モジュール３０２、軌跡グラフ化モジュール３０４、グラフマッチングモジュール３０６、位置推定モジュール３０８を含んでいる。軌跡監視モジュール３０２は、エリアを通るデバイス１２の動きに対応する軌跡情報を収集する。この軌跡情報は、軌跡グラフ化モジュール３０４に提供され、軌跡グラフ化モジュール３０４は、軌跡情報から軌跡グラフを形成する。軌跡グラフは、グラフマッチングモジュール３０６によって、デバイス１２が位置付けられているエリアに対応するルーティンググラフと比較される。ここで説明する技術を利用することにより、グラフマッチングモジュール３０６は、軌跡グラフ化モジュール３０４により生成された軌跡グラフを、ルーティンググラフのうちの少なくとも１つのサブセットとマッチングする。このマッチングサブセットは、その後、移動体デバイス１２の位置を推定するために、位置推定モジュールによって利用される。位置推定モジュール３０８によって実行される処理の結果、移動体デバイスおよびそのユーザの過去の軌跡と、デバイス１２およびユーザの現在のロケーションとが、デバイス１２が位置付けられているエリアのマップに関して識別される。
【００３０】
［００４０］
図３中に示すシステム３００の動作より前に、エリアまたは領域に対応するルーティンググラフが、エリアに対するデータマップに基づいて構築される。ルーティンググラフの構成のためのシステム４００を図４中に示す。システム４００は、マップデータ処理モジュール４０２、ルート抽出モジュール４０４、およびグラフ構築モジュール４０６を含んでいる。モジュール４０２、４０４、４０６は、システム３００、例えば移動体デバイス１２も実現するデバイスによって実現してもよい。代替的に、システム４００は、サーバにおいてまたは移動体デバイス１２に通信可能に結合されている他のコンピューティングエンティティにおいて実現してもよく、システム４００によって生成されるルーティング情報は、周期的におよび／または移動体デバイス１２によって必要とされるときに、移動体デバイス１２に通信してもよい。さらに他の実施形態では、例えば、移動体デバイス１２の初期コンフィギュレーションにおいてや、ルーティング情報に関係付けられているポジショニングアプリケーションのインストールにおいて等で、移動体デバイス１２のメモリ２２にその後送信されることになる、エリアまたはエリアの集合に対するルーティング情報をシステム４００は発生させてもよい。移動体導体デバイス１２の外部のシステム４００から移動体デバイス１２のメモリ２２へのルーティング情報の転送は、例えば、システム４００と、デバイス１２またはルーティング情報が記憶されるコンピュータ記憶媒体との間の直接のワイヤードまたはワイヤレス通信を介して直接生じてもよく、あるいは、例えば、システムから仲介コンピューティングデバイスにルーティング情報を最初に転送し、その後に情報を同期化し、および／または、そうでなければ仲介コンピュータピューティングデバイスから移動体デバイス１２に情報を転送することにより、間接的に生じてもよい。
【００３１】
［００４１］
マップデータ処理モジュール４０２は、エリアに対応するマップデータを受け取り、マップデータは、構造ファイル（例えば、コンピュータ援用製図（ＣＡＤ）ファイルまたはこれに類するもの）、イメージファイル（例えば、ベクトルイメージまたはラスターイメージ）等のような、コンピュータファイルの形態であってもよい。マップデータは、追加的にまたは代替的に、（例えば、拡張可能マークアップ言語（ＸＭＬ）ファイルまたはこれに類するものとして与えられる）エリアの特性の非グラフィカル表現として、および／または、他の手段として提供してもよく、あるいは、（例えば、拡張可能マークアップ言語（ＸＭＬ）ファイルまたはこれに類するものとして与えられる）エリアの特性の非グラフィカル表現によって、および／または、他の手段によって補足してもよい。他のマップデータフォーマットも可能である。ルート抽出モジュール４０４によるマップデータのさらなる処理を可能にするために、マップデータ処理モジュール４０２は、フォーマット変換、イメージ処理、および／または、正規化等のような初期処理動作を実行する。いくつかのインプリメンテーションにおいて、マップデータ処理モジュール４０２は、システム４００から省略してもよく、マップデータは代わりにルート抽出モジュール４０４に直接提供してもよい。
【００３２】
［００４２］
マップデータ処理モジュール４０４は、１つ以上の技術を利用して、マップデータによって描かれたエリアに関係付けられているオープンスペース（例えば、部屋、廊下等）の骨格を取得する。この骨格は、次に、マップデータに対応するエリアを通る通過可能パスを表すルーティンググラフを構築するために、グラフ構築モジュール４０６によって利用される。
【００３３】
［００４３］
図５は、マップイメージの形態で提供されるマップデータが、ルート抽出モジュール４０４とグラフ構築モジュール４０６とによって処理される技術を図示している。図５中のダイヤグラム５０２は、ポジショニングが所望のように実行されるエリアのマップに対応するイメージである。マップイメージを、マップデータ処理モジュール４０２を介して上記で説明したように処理してもよいが、この処理は、いくつかのインプリメンテーションにおいて省略してもよい。さらに、マップイメージは、システム４００によって使用可能な任意のフォーマットのものであってもよい。このようなフォーマットは、ビットマップイメージフォーマットや、グラフィックスインターチェンジフォーマット（ＧＩＦ）や、ポータブルネットワークグラフィックス（ＰＮＧ）や、ＪＰＥＧ等のようなラスター化されたイメージフォーマット、スケーラブルベクトルグラフィックス（ＳＶＧ）のようなベクトル化イメージフォーマット、またはこれらに類するもの等を含んでいてもよいが、これらに限定されない。
【００３４】
［００４４］
ここで、ルート抽出モジュール４０４はイメージモルフォロジを利用して、マップイメージ上に描かれた通過可能ルートを抽出する。モルフォロジは、形状に基づいてイメージを処理する、広いセットのイメージ処理動作である。モルフォロジ動作は構造エレメントを入力イメージに適用して、同じサイズの出力イメージを生成させる。モルフォロジ動作において、出力イメージ中の各ピクセルの値は、入力イメージ中の対応するピクセルとその隣接するものとの比較に基づいている。
【００３５】
［００４５］
マップイメージに関してルート抽出モジュール４０４によって利用されるモルフォロジ動作は、イメージダイレーションで開始し、オリジナルのイメージ中の破線および／または亀裂を補正する。一般的にイメージダイレーションは、イメージ中のオブジェクトの境界にピクセルを追加する。これは、オブジェクト境界上のピクセルを取り除くエロージョンとは対照的である。イメージ中のオブジェクトに追加されるまたはイメージ中のオブジェクトから取り除かれるピクセルの数は、イメージを処理するために使用される構造エレメントのサイズおよび形状に依存する。モルフォロジのダイレーションおよびエロージョン動作において、出力イメージ中の何らかの所定のピクセルの状態は、入力イメージ中の対応するピクセルおよびその隣接するものにルールを適用することによって決定される。ピクセルを処理するために使用されるルールは、ダイレーションまたはエロージョンとして動作を規定する。
【００３６】
［００４６］
ダイレーションに続いて、マップイメージ上で分類が実行され、マップによって描かれている領域内部エリアを領域外部エリアと識別する。次に、モルフォロジのエロージョンがイメージ上で実行され、黒い線としてイメージ中に描かれ、０の関係値を有する平行壁のような、密接に位置付けられている構造が、組み合わされる。さらに詳細には、エロージョンは、入力ピクセルの隣接するものの中のすべてのピクセルの最低値となるように出力ピクセルの値をさせる。したがって、バイナリ（例えば、黒と白）イメージにおいて、ピクセルのうちのいずれかが０に設定される場合に、出力ピクセルは、０に設定される。
【００３７】
［００４７］
エロージョンに続いて、モルフォロジの骨格化を使用して、マップイメージ中に描かれるすべての可能性あるパスを取得する。骨格化は、オブジェクトの境界上のピクセルを取り除くが、オブジェクトをばらばらにはさせない。残りのピクセルは、イメージ骨格を構成する。最終的に、骨格化されたイメージ上でモルフォロジの収縮を実行し、すべての主要なパスを取得する。ここで「主要なパス」は、マップイメージ中でループを形成するパスとして規定される。主要なパスは、典型的に、行き止まりにも出口にもつながらない主要な廊下であるが、他の主要なパスも提示し、識別することができる。収縮することは、オブジェクトを点まで減少させ、ピクセルを取り除くので、穴のないオブジェクトは点まで収縮し、穴を有するオブジェクトは、各穴と外部の境界との間の中間の接続リングまで収縮する。骨格化および収縮の結果を、ダイヤグラム５０４において示しており、線は骨格化を通して見つけたパスを表し、太線は、収縮を介して識別された主要なパスを表す。
【００３８】
［００４８］
上記の説明は、イメージモルフォロジを介したルート抽出モジュール４０４の動作に関連するが、対象のエリアに対するルーティング情報をルート抽出モジュール４０４が取得する、何らかの技術も利用できる。他の方法でここで明示的に述べない限り、ここで説明するインプリメンテーションは、エリアを通る通過可能パスを識別または利用するための、この、または、他の何らかの技術を限定するようには意図していない。
【００３９】
［００４９］
ルート抽出モジュール４０４を介して、対象のエリアを通る通過可能ルートまたはパスを識別すると、グラフ構築モジュール４０６は、識別されたルートを利用して、エリアに対応するルーティンググラフを構築する。グラフ構築モジュール４０６によって構築されたルーティンググラフの例を、図５中のダイヤグラム５０６によって示している。ここで、グラフ構築モジュール４０６は、ルート抽出モジュール４０４によって識別された主要なパスに基づいて、エリアに対するルーティンググラフを構築し、ルート抽出モジュール４０４によって識別された他のパスは、廃棄される。しかしながら、代替的に、グラフ構築モジュール４０６は、非主要パスのうちのいくつかまたはすべてを使用することができ、ならびに／あるいは、エリアに関係付けられている他の何らかのパス情報を使用することができる。
【００４０】
［００５０］
ルート抽出モジュール４０４からルーティング情報を受け取ると、グラフ構築モジュール４０６は、識別されたルートに沿って、グラフノードをさまざまな点に割り当てる。ある角度定数αに対して（９０±α）度の角度で、ルーティング情報中の２つの線セグメントを接続する点、または、少なくともしきい値長さ（例えば、０．３０４８メートル（１０フィート）等）の３つ以上の線セグメントを接続する分岐点のいずれかとして、ノードは識別される。ルーティンググラフの、簡略化および頑強性との間のトレードオフの観点で、グラフ中のノードの数を管理するために、パラメータαが選ばれる。１つのインプリメンテーションにおいて、αは、おおよそ２０度になるように選ばれる。他のインプリメンテーションも可能である。
【００４１】
［００５１］
要するに、システム４００の結果は、エリア内の対象の点（例えば、交点等）に対応するノードと、ノードを接続するパスを表す辺とを含む、所定のエリアに対するルーティンググラフである。エリア内のユーザの位置を推定するために、ユーザに対応する軌跡情報を追跡し、エリアに対するルーティンググラフと比較する。次に図６を参照すると、軌跡監視モジュール３０２のインプリメンテーションをさらに詳細に示している。図２に関して上記で説明したように、軌跡監視モジュール３０２は、加速度計６０２、ジャイロスコープ６０４、磁力計６０６のような、１つ以上の方向センサ３２、ならびに／あるいは、カメラ６１２またはこれに類するもののような、１つ以上のイメージセンサ３４を含んでいる。方向センサ３２とイメージセンサ３４の両方が、図６中に示されているが、軌跡監視モジュール３０２のうちのいくつかのインプリメンテーションは、センサ３２、３４の１セットのみを含んでいればよい。さらに方向センサは、任意の数または構成のセンサ６０２、６０４、６０４を含んでいてもよく、イメージセンサは、任意の数のまたは構成のカメラ６１２ならびに／あるいは他のセンサを含んでいてもよい。
【００４２】
［００５２］
センサ３２、３４によって収集された生データは、軌跡グラフ化モジュール３０４への後続する通信のために、軌跡データ処理モジュール６２０によって処理される。軌跡データ処理モジュール６２０は、プロセッサ２０を通して、および／または、移動体デバイス１２に関係付けられている他の何らかの適切な手段により実現される。代替的に、軌跡データ処理モジュール６２０は、センサ３２、３４に関係付けられているデバイスとは異なる、コンピューティングデバイスと関係付けられていてもよい。例えば、センサ測定は、軌跡データ処理モジュール６２０を実現するサーバに送信されてもよく、処理されたデータがおよび／または処理されたデータを介して取得されたデータが、必要に応じて、センサ３２、３４に関係付けられているデバイスに送り返されてもよい。他のインプリメーションも可能である。
【００４３】
［００５３］
軌跡データ処理モジュール６２０は、センサ３２、３４によって提供された測定を利用して、経時的にセンサ３２、３４の軌跡を取得する。ここで使用するように、ユーザおよび／またはデバイスに適用される用語「軌跡」は、監視された時間期間に渡るユーザおよび／またはデバイスの動きに関係付けられた、ユーザおよび／またはデバイスのロケーションのプロットされた履歴を指す。軌跡データ処理モジュール６２０は、上記で説明したような、ビジュアル走行距離計、センサベースの走行距離計、またはビジュアルおよびセンサベースの技術の組み合わせ（例えば、ビジュアル慣性走行距離計）のような技術を使用して、このロケーション履歴を取得する。例えば、ビジュアル走行距離計処理に対して、軌跡データ処理モジュール６２０は、１つ以上のイメージセンサ３４によって捕捉されたイメージを受け取り、イメージ中の１つ以上のオブジェクトおよび／または他の特徴を識別する。時間的に異なる点において捕捉されたイメージ中のこれらのイメージ特徴の相対位置は、イメージセンサ３４の動きを推測するために使用され、動きから軌跡を計算できる。センサベースの走行距離計処理に対して、軌跡データ処理モジュール６２０は、時間期間に渡り収集された方向測定（例えば、加速度計６０２またはジャイロスコープ６０４からの加速度測定、磁力計６０６からの磁力測定、等）を受け取り、方向測定中に監視された変化に基づいて、デバイスの相対移動を計算する。ビジュアル慣性走行距離計では、２つの点の間の相対移動を推定する際に、最適な解決法を見つけるために、イメージの特徴とセンサデータの両方が使用される。
【００４４】
［００５４］
軌跡監視モジュール３０２によって実行された処理の結果、デバイス１２の軌跡のグラフィカルな推定が、図７中のダイヤグラム７０２によって示すように取得される。この推定は、軌跡グラフ化モジュール３０４によって処理され、軌跡グラフが形成される。軌跡グラフ化モジュール３０４による処理は、スライディングウインドウおよび／または他の平滑化技術を使用して、軌跡監視モジュール３０２によって提供される軌跡データを平滑化することにより開始する。ダイヤグラム７０４は、ダイヤグラム７０２において示す初期軌跡データ上で実行されるような平滑化の結果を図示している。次に、平滑化された軌跡中の方向転換を識別し、軌跡グラフ中の潜在的なノードとして分類する。上記で説明したようなルーティンググラフ上のノード識別に類似して、軌跡グラフ化モジュール７０４によって、（９０±α）度間の角度で２つの主要な線セグメントを接続する点として、軌跡上のノードを識別することができる。ここで、ルーティンググラフの構築のための基準と類似した基準を使用して、パラメータαを選ぶが、異なる基準も使用できる。規定されたノードに基づいて、軌跡グラフ中の辺は、グラフ中のノードを接続する直線パスとして規定される。ダイヤグラム７０６は、ダイヤグラム７０２中に示す軌跡情報から構築された軌跡グラフを図示している。
【００４５】
［００５５］
一度ルーティンググラフがエリアに対して構築されると、エリア内のデバイス１２の移動軌跡が識別され、軌跡グラフがデバイス軌跡から構築され、グラフマッチングモジュール３０６は、軌跡グラフとルーティンググラフのいくつかのサブセットとのマッチングを試行する。グラフマッチングモジュール３０６によって実行するマッチングの例は、図８中のダイヤグラム８００によって示されている。
【００４６】
［００５６］
軌跡グラフとの少なくともしきい値類似度を示す、ルーティンググラフのうちの少なくとも１つのサブセットを識別するために、グラフマッチングモジュール３０６は、軌跡グラフをルーティンググラフと比較する。ここで、軌跡グラフとルーティンググラフの間の比較は、最大共通辺サブグラフ問題の変形として実行される。軌跡グラフとルーティンググラフとの間のマッチングは、ノード間の辺の長さ、隣接ノードの、数、距離および／または方向、辺の方向（このようなデータが利用可能な場合）等のような、ノードまたは辺の基準に基づいていてもよい。いくつかのインプリメンテーションにおいて、ルーティンググラフ中の各頂点から開始する深度優先サーチを使用して、例えば、すべての潜在的マッチングのうちの最も高い全体スコアを有するグローバルソリューションを発見することにより、ルーティンググラフと軌跡グラフとの間のマッチングを発見できる。グラフを比較するための他の技術も使用できる。例えば、ルーティンググラフと軌跡グラフの両方は平面であることから、グラフマッチングモジュール３０６によって、１つ以上の多項式時間アルゴリズムを使用できる。他のアルゴリズムも可能である。
【００４７】
［００５７］
グラフマッチングモジュール３０６は、軌跡グラフとルーティンググラフのサブセットとの間の一意的なマッチングが最初に見つからない場合、１つ以上の適応測定を付加的に実行してもよい。例えば、軌跡グラフおよびルーティンググラフの比較が、結果として、十分な信頼度を有するマッチングでない場合、グラフマッチングモジュール３０６は、各サブセットから１つ以上のノードを省略することにより、軌跡グラフのそれぞれのサブセットに対するマッチングを反復してもよい。軌跡グラフから１つ以上のノードを省略した後に、軌跡グラフとルーティンググラフのサブセットとの間に十分な信頼のマッチングが見つかる場合、省略されたノードは、誤ったノードとして分類して、外してもよい。初期マッチング動作より前または初期マッチング動作の間のいずれかにおいて、軌跡グラフ中のノードを誤ったノードとして分類するために、グラフマッチングモジュール３０６は、アウトライアー検出に対する１つ以上の技術も利用してもよい。
【００４８】
［００５８］
軌跡グラフとルーティンググラフとの間の初期比較が結果としてルーティンググラフの複数のマッチングサブセットとなる場合、別の適応測定として、グラフマッチングモジュール３０６は複数仮説追跡を用いてもよい。これは、例えば、ビルティングのまたは他の関係付けられているエリアの複数の部分が類似した形状および／またはサイズを有するとき、生じるかもしれない。図９は、複数のマッチング仮説を解明するために、グラフマッチングモジュール３０６によって利用することができるシステム９００を図示している。ここで、グラフマッチングモジュール３０６は、複数仮説分析モジュール９０２を利用して、単一の仮説に対して上記で説明した方法で、複数のルーティング仮説を同時に追跡する。複数仮説分析モジュール９０２は、ユーザが見るために、複数のルーティング仮説に関連するグラフィカルな情報を、関係するデバイス１２におけるディスプレイ２６に付加的に提供する。デバイス１２のユーザが動くにつれて、新たな走行距離情報が利用可能になる。複数仮説分析モジュール９０２は、この追加情報を利用して、より少ない仮説がディスプレイ２６上に残るように、（可能な場合）いくつかの仮説をなくす。
【００４９】
［００５９］
加えて、グラフマッチングモジュール３０６は、複数仮説分析モジュール９０２と組み合わせて軌跡ガイド９０４を利用して、他の定めた方法で、方向転換するようにおよび／または動くように、明示的または黙示的のいずれかでユーザをガイドでき、これにより、軌跡マップ上に追加のノードを発生させて、軌跡グラフとルーティンググラフとの間の一意的なマッピングの計算を支援する。明示的なガイド情報のケースにおいて、軌跡ガイド９０４は、複数の仮説と組み合わせて見るために、動きの提案をディスプレイ２６に提供する。このようなディスプレイの例は、図１０中のダイヤグラム１０００によって示されており、ダイヤグラム１０００では、２つのポジショニング仮説１００２、１００４のセットと、明示的なガイド命令、ここでは左に曲がる命令１００６と、がユーザに表示されている。ユーザがエリアを通って動くと、新たな軌跡データに基づいていそうにないと決定された以前に取得したルーティング推定は、グラフマッチングモジュール３０６による考察から、および、ディスプレイ２６における図からなくされる。
【００５０】
［００６０］
図１０中に示したものに対して、他のディスプレイコンフィギュレーションおよび／または表示情報も利用できる。さらに、明示的ガイド命令の代替として、グラフマッチングモジュール３０６によるガイドは、ポジショニング仮説、例えば仮説１００２、１００４の表示に基づいて黙示的であってもよい。さらに、軌跡ガイド９０４は、図９中で、複数仮説分析モジュール９０２とは別のモジュールとして図示されているが、軌跡ガイド９０４の機能性は、いくつかのインプリメンテーションにおいて、複数仮説分析モジュール９０２の機能性と組み合わせてもよく、または、（例えば、黙示的なガイドのケースでは）軌跡ガイドを省略してもよい。
【００５１】
［００６１］
図３に戻ると、軌跡グラフとルーティンググラフのサブセットとの間の一意的なマッチングがグラフマッチングモジュール３０６によっていったん取得されると、位置推定モジュール３０８は、マッチング結果に基づいて、移動体デバイス１２のロケーションを推定する。位置推定モジュール３０８によって取得されたロケーションは、相対ロケーション、例えば、エリアに関連するおよび／またはエリアに関して規定された座標系に関連するロケーション、あるいは、絶対ロケーションであってもよい。エリア内のデバイス１２の相対ロケーションを決定するために、位置推定モジュール３０８は、グラフマッチングモジュール３０６によって実行されたマッチングとマップデータとに基づいて、エリアに関するデバイスの過去の軌跡を識別し、軌跡に対応するもっとも最近の点を取得し、最も最近の軌跡の点を、マップデータによって表わされたロケーションに関連付ける。加えて、エリアの、緯度／経度座標および／またはアドレスや、あるいは、位置推定モジュール３０８が、エリアに関する、例えば地球に関するデバイス１２の相対位置を、絶対ロケーションに関連付けることができるようにするのに十分な他の情報のような、エリアに対応するロケーション情報により、エリアに関する相対ロケーションを補足することによって、位置推定モジュール３０８は、デバイス１２の絶対ロケーションを決定してもよい。デバイス１２の相対および／または絶対ロケーションを決定すると、決定したロケーションはまた、（例えば、ディスプレイ２６上に）表示してもよく、および／または、デバイス１２における他の動作に対して使用してもよい。いくつかのインプリメンテーションにおいて、位置推定モジュールは、軌跡ベースの位置推定を、（例えば、アンテナ２８において受信した信号に基づく）ネットワーク測定を介して、（例えば、ＳＰＳ受信機３０を介して受信した信号に基づく）ＳＰＳ測定を介して、および、これらに類するものを介して取得された１つ以上の位置推定により補足してもよい。
【００５２】
［００６２］
図１〜図１０をさらに参照して図１１を参照すると、軌跡情報を使用して、移動体デバイス１２の位置を推定するプロセス１１００は、示すステージを含んでいる。しかしながら、プロセス１１００は、単なる例示であり、限定するものではない。プロセス１１００は、例えば、ステージを追加、除去、再構成、組み合わせ、および／または、同時に実行することにより、変更できる。示し、説明するプロセス１１００に対するさらに他の変更も可能である。
【００５３】
［００６３］
ステージ１１０２において、エリア（例えばビルディングまた他の領域）を通る通過可能パスを表すルーティンググラフを取得する。ここで、ルーティンググラフは、システム４００に関して上記で説明したように構築される。ルーティンググラフは、プロセス１１００の残りのステージ１１０４、１１０６、１１０８、１１１０が実行される時間に構築し、取得してもよい。代替的に、ルーティンググラフは、ステージ１１０２において先に取得してもよく、必要とされるまで記憶させていてもよい。
【００５４】
［００６４］
ステージ１１０４において、エリアを通る移動体デバイス１２の動きに対応する軌跡情報を、例えば軌跡監視モジュール３０２によって収集する。軌跡情報を提供できる何らかのセンサからの測定および／または情報に基づいて、何らかの適切な技術を使用して、軌跡情報を収集できる。例えば、上記で説明した技術のような、視覚ベースのまたは方向センサベースの軌跡追跡技術および／または他の技術を使用できる。
【００５５】
［００６５］
ステージ１１０６において、例えば軌跡グラフ化モジュール３０４によって、ステージ１１０４で取得した軌跡情報から軌跡グラフを形成する。図７に関して上記で説明したように、軌跡情報によって示されたしきい値範囲内の角度（例えば、所定のパラメータαに対して９０±α度）の方向転換を識別し、識別した方向転換を、軌跡グラフ中のノードとして規定し、識別した方向転換間の、直線セグメントをまたは動きの他の表現を軌跡グラフ中の辺として規定することによって、ステージ１１０６において、軌跡グラフが形成される。
【００５６】
［００６６］
ステージ１１０８において、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するために、例えばグラフマッチングモジュール３０６によって、ステージ１１０６において形成された軌跡グラフを、ステージ１１０２において取得したルーティンググラフのうちの少なくとも１つのサブセットと比較する。ここで、比較とマッチングは、図８に関して上記で説明したように実行される。軌跡グラフをルーティンググラフのサブセットと比較する際に利用できる要素は、例えば、２つのノード間の辺の長さと、隣接ノードの、数、距離、方向と、辺の方向等を含んでいる。
【００５７】
［００６７］
ステージ１１１０において、移動体デバイス１２の位置は、ステージ１１０８において識別したような、ルーティンググラフのマッチングサブセットに少なくとも部分的に基づいて、例えば、位置推定モジュール３０８によって、推定される。推定された位置は、上記で説明したような、エリアに関する相対位置または絶対位置であってもよい。
【００５８】
［００６８］
次に、図１〜図１０をさらに参照して図１２を参照すると、軌跡情報を使用して、移動体デバイス１２の位置を推定する別のプロセス１２００は、示すステージを含んでいる。しかしながら、プロセス１２００は、単なる例示であり、限定するものではない。プロセス１２００は、例えば、ステージを追加、除去、再構成、組み合わせ、および／または、同時に実行することにより、変更できる。示し、説明するプロセス１２００に対するさらに他の変更も可能である。
【００５９】
［００６９］
ステージ１２０２において、エリアを通る通行可能パスを表すルーティンググラフを取得する。ステージ１２０４において、エリアを通る移動体デバイス１２の動きに対応する軌跡情報を収集する。ステージ１２０６において、ステージ１２０４において収集した軌跡情報から軌跡グラフを形成する。プロセス１２００のステージ１２０２、１２０４、１２０６は、プロセス１１００のステージ１１０２、１１０４、１１０６に関して上記で説明した方法と類似した方法で実行する。
【００６０】
［００７０］
ステージ１２０８において、ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するために、例えばグラフマッチングモジュール３０６により、ステージ１２０６において形成した軌跡グラフを、ステージ１２０２において取得したルーティンググラフと比較する。プロセス１２００はその後、１２０８において実行した比較とマッチングの結果として、軌跡グラフとの少なくともしきい値マッチングを示すルーティンググラフのサブセットの数に基づいて、１２１０において分岐する。
【００６１】
［００７１］
ステージ１２０８において、ルーティンググラフのマッチングサブセットがまったく識別されない場合、プロセス１２００はステージ１２１０からステージ１２１２に分岐する。ステージ１２１２において、上記で説明したように、例えば、軌跡グラフの１つ以上のノードを誤ったノードとして識別することと、誤ったノードを軌跡グラフから取り除いて、更新された軌跡グラフを取得することとによって、軌跡グラフを改善する。軌跡グラフを改善すると、プロセス１２００はステージ１２０８に戻り、ルーティンググラフと更新した（改善した）軌跡グラフとに対して、試行したマッチングを繰り返す。
【００６２】
［００７２］
ルーティンググラフの一意的なマッチングサブセットがステージ１２０８において識別される場合、プロセス１２００は、ステージ１２１０からステージ１２１４に分岐する。ステージ１２１４において、例えば上記で説明した技術を使用して、ルーティンググラフの一意的なマッチングサブセットに少なくとも部分的に基づいて、移動体デバイス１２の位置を推定し、プロセス１１００のステージ１１１０と類似した方法で、移動体デバイス１２の相対または絶対ロケーションを決定する。
【００６３】
［００７３］
ステージ１２０８において、ルーティンググラフの複数のマッチングサブセットが識別される場合、プロセス１２００は、ステージ１２１０からステージ１２１６に分岐する。図９〜１０に関して上記で説明したように、ステージ１２１６において、複数の仮説分析を通して、複数の識別されたルーティンググラフサブセットのうちの一意的な１つのルーティンググラフサブセットが識別される。一般的に、複数の仮説分析は、ステージ１２０８において識別されたルーティンググラフのマッチングサブセットのそれぞれ１つに対応する複数のマッチング仮説を管理することによって進む。これらの複数の仮説を単一の、一意的なマッチングへと解明するために、（例えば、図１０中に示すような、デバイス１２のユーザに提供されるガイド情報に基づいて）エリアを通る移動体デバイス１２のさらなる動きに対応する補足軌跡情報が取得されて、元の軌跡情報と組み合わされ、マッチングは、ルーティンググラフのサブセットと、組み合わされた軌跡情報とのマッチングに進む。追加の軌跡情報を取得して、追加の軌跡情報に対するマッチングを実行するプロセスは、マッチングがルーティンググラフの一意的なサブセットに収束するまで繰り返してもよい。ステージ１２１６において、複数の仮説分析を通して一意的なマッチングが一度取得されると、上記で説明したように、移動体デバイス１２の位置を推定することにより、プロセス１２００は、ステージ１２１４において終わる。
【００６４】
［００７４］
上記で議論した方法、システムおよびデバイスは、例である。さまざまな代替コンフィギュレーションは、適切に、さまざまな手順またはコンポーネントを省略、置換、または追加してもよい。例えば、代わりの方法で、上記の議論とは異なる順序でステージを実行してもよく、さまざまなステージを追加、省略、または組み合わせてもよい。また、ある特定のコンフィギュレーションに関して説明した特徴を、さまざまな他のコンフィギュレーションにおいて組み合わせてもよい。コンフィギュレーションの異なる態様およびエレメントを、類似した方法で組み合わせてもよい。また、テクノロジーは進化することから、エレメントのうちの多くは例であり、本開示または特許請求の範囲の範囲を限定するものではない。
【００６５】
［００７５］
説明において、（インプリメンテーションを含む）例示的なコンフィギュレーションの完全な理解を提供するために、特定の詳細が与えられている。しかしながら、コンフィギュレーションは、これらの特定の指定の詳細なしに実施することができる。例えば、周知の回路、プロセス、アルゴリズム、構造および技術は、コンフィギュレーションを曖昧にすることを避けるために、不必要な詳細なしで示されている。この説明は、例示的なコンフィギュレーションのみを提供し、特許請求の範囲の、範囲、適用可能性またはコンフィギュレーションを限定しない。むしろ、コンフィギュレーションの先行する説明は、説明した技術の実現を可能にする説明を当業者に提供するだろう。本開示の精神および範囲から逸脱することなく、エレメントの機能およびアレンジメントにおいて、さまざまな変更を行ってもよい。
【００６６】
［００７６］
コンフィギュレーションを、フローダイヤグラムまたはブロックダイヤグラムとして描かれるプロセスとして説明してもよい。それぞれは、シーケンシャルなプロセスとして動作を説明するかもしれないが、動作の多くは、並行して、または、同時に実行することができる。加えて、動作の順序は再構成してもよい。プロセスは、図面中には含まれていない追加のステップを有していてもよい。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または、これらの何らかの組み合わせによって実現してもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実行されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体のような非一時的コンピュータ読取可能媒体中に記憶されていてもよい。プロセッサは、説明したタスクを実行してもよい。
【００６７】
［００７７］
特許請求の範囲中を含む、ここで使用したように、「のうちの少なくとも１つ」で始まる項目のリストで使用される「または」は、例えば「Ａ、Ｂ、またはＣのうちの少なくとも１つ」のリストが、Ａ、またはＢ、またはＣ、またはＡＢ、またはＡＣ、またはＢＣ、またはＡＢＣ（すなわち、ＡおよびＢおよびＣ）、あるいは１つよりも多い特徴との組み合わせ（例えば、ＡＡ、ＡＡＢ、ＡＢＢＣ等）を意味するように、選言的なリストを示す。
【００６８】
［００７８］
いくつかの例示的なコンフィギュレーションを説明してきたが、本開示の精神から逸脱することなく、さまざまな修正、代替構造、および均等物を使用してもよい。例えば、上記のエレメントは、より大きなシステムのコンポーネントであってもよく、他のルールが、本発明のアプリケーションよりも優先されてもよく、または、そうでなければ本発明のアプリケーションを修正してもよい。また、多くのステップは、上記のエレメントが考慮される前に、間に、または後に、取り掛かってもよい。したがって、上記の説明は、特許請求の範囲の範囲を境界付けるものではない。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  移動体デバイスの位置を推定するための方法において、
エリアに対応するルーティンググラフを取得することと、
前記エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集することと、
前記軌跡情報から軌跡グラフを形成することと、
前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較して、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定することと、
前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定することとを含み、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示す方法。
［２］  前記軌跡グラフを形成することは、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別することと、
前記識別された方向転換を前記軌跡グラフ中のノードとして規定することと、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の辺として規定することとを含む［１］記載の方法。
［３］  前記比較することは、ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較することを含む［１］記載の方法。
［４］  前記比較することは、少なくとも前記軌跡グラフに対するしきい値類似度を示す、前記ルーティンググラフのサブセットの数を決定することを含む［１］記載の方法。
［５］  前記ルーティンググラフのサブセットのいずれも、少なくとも前記軌跡グラフに対するしきい値類似度を示さないと決定することに応答して、
前記軌跡グラフを改善して、改善された軌跡グラフを取得することと、
前記改善された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較することとをさらに含む［４］記載の方法。
［６］  前記軌跡グラフを改善することは、
前記軌跡グラフのうちの１つ以上のノードを誤ったノードとして識別することと、
前記誤ったノードを前記軌跡グラフから取り除いて、更新された軌跡グラフを取得することとを含む［５］記載の方法。
［７］  前記ルーティンググラフの複数のサブセットが、少なくとも前記軌跡グラフに対するしきい値類似度を示すと決定することに応答して、
前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理することをさらに含む［４］記載の方法。
［８］  前記移動体デバイスの表示スクリーン上に、前記複数のマッチング仮説を表示することをさらに含む［７］記載の方法。
［９］  前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得することと、
前記軌跡情報と前記補足軌跡情報とを組み合わせて、組み合わされた軌跡情報を取得することと、
前記組み合わされた軌跡情報に基づいて、更新された軌跡グラフを構築することと、
前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較することとをさらに含む［７］記載の方法。
［１０］  前記補足軌跡情報を取得することを繰り返すことと、
前記軌跡情報と前記補足軌跡情報とを組み合わせることと、
前記更新された軌跡グラフを構築することと、
前記ルーティンググラフの単一のサブセットが前記更新された軌跡グラフにマッチングするまで、前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較することとをさらに含む［９］記載の方法。
［１１］  前記補足軌跡情報に関係付けられている前記移動体デバイスのさらなる動きがある際に、前記移動体デバイスのディスプレイスクリーン上に、ガイドする動き情報を表示して、前記移動体デバイスのユーザを支援することをさらに含む［９］記載の方法。
［１２］  前記移動体デバイスの位置を推定することは、前記エリアに関連する前記移動体デバイスの位置を推定することを含む［１］記載の方法。
［１３］  前記移動体デバイスの位置を推定することは、地球に関して前記移動体デバイスの位置を推定することを含む［１］記載の方法。
［１４］  位置推定を促進する移動体デバイスにおいて、
エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集するように構成されている軌跡監視モジュールと、
前記軌跡監視モジュールに通信可能に結合され、前記軌跡情報から軌跡グラフを形成するように構成されている軌跡グラフ化モジュールと、
前記軌跡グラフ化モジュールに通信可能に結合され、エリアに対応するルーティンググラフを取得し、前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較し、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するように構成されているグラフマッチングモジュールと、
前記グラフマッチングモジュールに通信可能に結合され、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定するように構成されている位置推定モジュールとを具備し、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示す移動体デバイス。
［１５］  前記軌跡グラフ化モジュールは、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別することと、
前記識別された方向転換を前記軌跡グラフ中のノードとして規定することと、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の辺として規定することとによって、前記軌跡グラフを形成するようにさらに構成されている［１４］記載の移動体デバイス。
［１６］  前記グラフマッチングモジュールは、ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較するようにさらに構成されている［１４］記載の移動体デバイス。
［１７］  前記ルーティンググラフのサブセットのいずれも、前記軌跡グラフにマッチングしないと決定することに応答して、
前記グラフマッチングモジュールは、改善された軌跡グラフを生成させ、前
前記改善された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較するように、前記軌跡グラフ化モジュールに命令するようにさらに構成されている［１４］記載の移動体デバイス。
［１８］  前記軌跡グラフ化モジュールは、
前記軌跡グラフのうちの１つ以上のノードを誤ったノードとして識別することと、
前記誤ったノードを前記軌跡グラフから取り除くこととによって、前記改善された軌跡グラフを生成させるようにさらに構成されている［１７］記載の移動体デバイス。
［１９］  前記グラフマッチングモジュールは、前記グラフマッチングモジュールによって、前記軌跡グラフにマッチングすると決定された、前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理するように構成されている複数仮説分析モジュールを備える［１４］記載の移動体デバイス。
［２０］  前記複数仮説分析モジュールは、前記移動体デバイスの表示スクリーン上に、前記複数のマッチング仮説を表示するようにさらに構成されている［１９］記載の移動体デバイス。
［２１］  前記複数仮説分析モジュールは、
前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報の収集を命令するようにと、
前記軌跡情報と前記補足軌跡情報とを組み合わせて、組み合わされた軌跡情報を取得するようにと、
前記組み合わされた軌跡情報に基づいて、更新された軌跡グラフを発生させるように命令するようにと、
前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較するようにさらに構成されている［１９］記載の移動体デバイス。
［２２］  前記複数仮説分析モジュールは、前記ルーティンググラフの単一のサブセットが前記更新された軌跡グラフにマッチングするまで反復して動作するようにさらに構成されている［２１］記載の移動体デバイス。
［２３］  前記グラフマッチングモジュールは、
前記複数仮説分析モジュールに通信可能に結合され、前記補足軌跡情報に関係付けられている前記移動体デバイスのさらなる動きがある際に、前記移動体デバイスのディスプレイスクリーン上に、ガイドする動き情報を表示して、前記移動体デバイスのユーザを支援するように構成されている軌跡ガイドをさらに備えている［２１］記載の移動体デバイス。
［２４］  前記グラフマッチングモジュールは、サーバコンピュータピューディングデバイスから前記ルーティンググラフを取得する［１４］記載の移動体デバイス。
［２５］  前記ルーティンググラフを記憶するように構成されているメモリをさらに具備し、
前記グラフマッチングモジュールは、前記メモリから前記ルーティンググラフを取得するようにさらに構成されている［１４］記載の移動体デバイス。
［２６］  前記位置推定モジュールに通信可能に結合され、衛星ポジショニング測定を受信するように構成されている衛星ポジショニングシステム（ＳＰＳ）受信機をさらに具備し、前記位置推定モジュールは、前記ルーティンググラフのうちの前記少なくとも１つのマッチングサブセットと前記衛星ポジショニング測定とに基づいて、前記移動体デバイスの位置を推定するようにさらに構成されている［１４］記載の移動体デバイス。
［２７］  前記位置推定モジュールに通信可能に結合され、関係付けられているワイヤレス通信システムからネットワークポジショニング測定を受信するように構成されている１つ以上のアンテナをさらに具備し、
前記位置推定モジュールは、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットと前記ネットワークポジショニング測定とに基づいて、前記移動体デバイスの位置を推定するようにさらに構成されている［１４］記載の移動体デバイス。
［２８］  位置推定を促進する移動体デバイスにおいて、
エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集する手段と、
前記軌跡情報から軌跡グラフを形成する手段と、
前記エリアに対応するルーティンググラフを取得する手段と、
前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較して、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定する手段と、
前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定する手段とを具備し、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示す移動体デバイス。
［２９］  前記軌跡グラフを形成する手段は、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別する手段と、
前記識別された方向転換を前記軌跡グラフ中のノードとして規定する手段と、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の辺として規定する手段とを備える［２８］記載の移動体デバイス。
［３０］  前記比較する手段は、ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較する手段を備える［２８］記載の移動体デバイス。
［３１］  前記ルーティンググラフのサブセットのいずれも、前記軌跡グラフにマッチングしないと決定することに応答して、前記軌跡グラフを改善する手段と、
前記改善された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較する手段とをさらに具備する［２８］記載の移動体デバイス。
［３２］  前記軌跡グラフを改善する手段は、
前記軌跡グラフのうちの１つ以上のノードを誤ったノードとして識別する手段と、
前記誤ったノードを前記軌跡グラフから取り除き、それによって、更新された軌跡グラフを取得する手段とを備える［３１］記載の移動体デバイス。
［３３］  前記ルーティンググラフの複数のサブセットが、前記軌跡グラフにマッチングすると決定することに応答して、前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理する手段をさらに具備する［２８］記載の移動体デバイス。
［３４］  前記移動体デバイスにおいて、前記複数のマッチング仮説を表示する手段をさらに具備する［３３］記載の移動体デバイス。
［３５］  前記複数のマッチング仮説を管理する手段は、
前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得する手段と、
前記軌跡情報と前記補足軌跡情報とを組み合わせて、組み合わされた軌跡情報を取得する手段と、
前記組み合わされた軌跡情報に基づいて、更新された軌跡グラフを構築する手段と、
前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較する手段とを備える［３３］記載の移動体デバイス。
［３６］  前記複数のマッチング仮説を管理する手段は、前記ルーティンググラフの単一のサブセットが前記更新された軌跡グラフにマッチングするまで反復して動作する［３５］記載の移動体デバイス。
［３７］  プロセッサ読取可能記憶媒体において、プロセッサに、
エリアを通る移動体デバイスの動きに対応する軌跡情報を収集させ、
前記軌跡情報から軌跡グラフを発生させ、
前記エリアに対応するルーティンググラフを取得させ、
前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較させて、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定させ、
前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定させるように構成されているプロセッサ実行可能な命令を含み、
前記ルーティンググラフは、前記エリアを通る通行可能パスを示すプロセッサ読取可能記憶媒体。
［３８］  前記プロセッサに前記軌跡グラフを発生させるように構成されている命令は、前記プロセッサに、
しきい値範囲内の角度の、前記軌跡情報中に示される方向転換を識別させるようにと、
前記識別された方向転換を前記軌跡グラフ中のノードとして規定させるようにと、
前記識別された方向転換間の動きのセグメントを前記軌跡グラフ中の辺として規定させるようにさらに構成されている［３７］記載のプロセッサ読取可能記憶媒体。
［３９］  前記プロセッサに比較させるように構成されている命令は、前記プロセッサに、
ノード間の辺の長さと、隣接ノードの数、距離、方向と、または、辺の方向とのうちの少なくとも１つに基づいて、前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較させるようにさらに構成されている［３７］記載のプロセッサ読取可能記憶媒体。
［４０］  前記プロセッサに、
前記ルーティンググラフのサブセットのいずれも、前記軌跡グラフにマッチングしないと決定することに応答して、前記軌跡グラフを改善させるようにと、
前記改善された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較させるように構成されている命令をさらに含む［３７］記載のプロセッサ読取可能記憶媒体。
［４１］  前記プロセッサに前記軌跡グラフを改善させるように構成されている命令は、前記プロセッサに、
前記軌跡グラフのうちの１つ以上のノードを誤ったノードとして識別させるようにと、
前記誤ったノードを前記軌跡グラフから取り除いて、更新された軌跡グラフを取得させるようにさらに構成されている［４０］記載のプロセッサ読取可能記憶媒体。
［４２］  前記ルーティンググラフの複数のサブセットが、前記軌跡グラフにマッチングすると決定することに応答して、前記プロセッサに、
前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理させるように構成されている命令をさらに含む［３７］記載のプロセッサ読取可能記憶媒体。
［４３］  前記プロセッサに前記複数のマッチング仮説を管理させるように構成されている命令は、前記プロセッサに、
前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得させ、
前記軌跡情報と前記補足軌跡情報とを組み合わせて、組み合わされた軌跡情報を取得させ、
前記組み合わされた軌跡情報に基づいて、更新された軌跡グラフを構築させ、
前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較させるようにさらに構成されている［４２］記載のプロセッサ読取可能記憶媒体。
［４４］  前記プロセッサに前記複数のマッチング仮説を管理させるように構成されている命令は、前記ルーティンググラフの単一のサブセットが更新された軌跡グラフとマッチングするまで、前記プロセッサによって、反復して実行されるようにさらに構成されている［４２］記載のプロセッサ読取可能記憶媒体。
［４５］  移動体デバイスにおいて、
エリアに対応するルーティンググラフに関連するデータを記憶するように構成されているメモリと
前記メモリに通信可能に結合され、
前記エリアを通る前記移動体デバイスの動きに対応する軌跡情報を収集するようにと、
前記軌跡情報から軌跡グラフを形成するようにと、
前記軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較して、前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットを決定するようにと、
前記ルーティンググラフのうちの少なくとも１つのマッチングサブセットに少なくとも部分的に基づいて、前記移動体デバイスの位置を推定するように構成されているプロセッサとを具備し、
前記ルーティンググラフは、前記エリアを通る通行可能なパスを示す移動体デバイス。
［４６］  前記プロセッサは、少なくとも前記軌跡グラフに対するしきい値類似度を示す、前記ルーティンググラフのサブセットの数を決定するようにさらに構成されている［４５］記載の移動体デバイス。
［４７］  前記ルーティンググラフのサブセットのいずれも、少なくとも前記軌跡グラフに対するしきい値類似度を示さないと決定することに応答して、前記プロセッサは、
前記軌跡グラフを改善して、改善された軌跡グラフを取得するようにと、
前記改善された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較するように構成されている［４６］記載の移動体デバイス。
［４８］  前記ルーティンググラフの複数のサブセットが、少なくとも前記軌跡グラフに対するしきい値類似度を示すと決定することに応答して、前記プロセッサは、
前記ルーティンググラフの複数のサブセットのうちのそれぞれ１つに対応する複数のマッチング仮説を管理するように構成されている［４６］記載の移動体デバイス。
［４９］  前記プロセッサは、前記エリアを通る前記移動体デバイスのさらなる動きに対応する補足軌跡情報を取得するように、
前記軌跡情報と前記補足軌跡情報とを組み合わせて、組み合わされた軌跡情報を取得するように、
前記組み合わされた軌跡情報に基づいて、更新された軌跡グラフを構築するように、
前記更新された軌跡グラフを前記ルーティンググラフのうちの少なくとも１つのサブセットと比較するようにさらに構成されている［４８］記載の移動体デバイス。
［５０］  前記プロセッサに通信可能に結合されたディスプレイスクリーンをさらに具備し、
前記プロセッサは、前記補足軌跡情報に関係付けられている前記移動体デバイスのさらなる動きがある際に、前記ディスプレイスクリーン上に、ガイドする動き情報を表示して、前記移動体デバイスのユーザを支援するようにさらに構成されている［４９］記載の移動体デバイス。
【図１】
0006339200.tif 000002
【図２】
0006339200.tif 000003
【図３】
0006339200.tif 000004
【図４】
0006339200.tif 000005
【図５】
0006339200.tif 000006
【図６】
0006339200.tif 000007
【図７】
0006339200.tif 000008
【図８】
0006339200.tif 000009
【図９】
0006339200.tif 000010
【図１０】
0006339200.tif 000011
【図１１】
0006339200.tif 000012
【図１２】
0006339200.tif 000013