(57)【特許請求の範囲】
【請求項１】
屋内空間におけるポータブル携帯用デバイスの位置を判定する方法であって、
屋内空間の地図を特定し、その地図は複数の制約に基づいており、
プロセッサにより、粒子の第１のセットを生成し、この粒子の第１のセットの各々の粒子は、前記地図における位置を表し、かつ尤度値に関連し、
ジャイロスコープを含む方位デバイスからデータを受信し、
前記受信したデータに基づいて運動の方向及び速度を判定し、
前記運動の方向及び速度を前記粒子の第１セットのそれぞれに適用し、
前記粒子の第１のセットの各特定の粒子の前記尤度値を、この特定の粒子が前記複数の制約の一つ以上に反するか否かに基づいて調節し、
前記粒子の第１のセットに関連した前記尤度値に基づいて粒子の第２セットを生成し、
前記粒子の第２のセットの全ての粒子が互いに閾値半径の範囲内にあるとき、前記粒子の第２セットの平均代表的位置に最も近接する前記粒子の第２のセットのうちの特定の粒子を選択し、及び、
前記選択された粒子の代表的な位置に基づいて前記屋内空間内の前記ポータブル携帯用デバイスの実際の位置を特定することを含む方法。
【請求項２】
請求項１の方法において、前記複数の制約は、ユーザーが歩行しないであろう領域を規定する壁である方法。
【請求項３】
請求項１の方法において、前記複数の制約は、ユーザーが歩行することを許される領域を規定する軌道である方法。
【請求項４】
請求項１の方法において、前記地図は方向計に関連しており、前記複数の粒子のそれぞれの粒子に前記運動の方向及び速度を適用することは前記方向計に基づいている方法。
【請求項５】
請求項１の方法において、前記粒子の第１のセットの各々の粒子は、デバイス方位を更に表し、前記方法は、
前記受信したデータに基づいて方位を特定し、及び、
前記粒子の第１のセットの各々の特定の粒子の前記尤度値を調節することは、更に、各々の粒子に関連した方位が前記特定された方位に一致する方位に関係しているか否かに基づくことを更に含む方法。
【請求項６】
請求項１の方法において、前記選択された特定の粒子の代表的な方位を前記ポータブル携帯用デバイスの実際の方位として特定することを更に含む請求項１の方法。
【請求項７】
請求項１の方法において、前記方位デバイスがコンパスを更に含む方法。
【請求項８】
請求項１の方法において、前記方位デバイスが加速度計を更に含む方法。
【請求項９】
請求項１の方法において、前記運動の方向及び速度を前記受信したデータに基づいて判定することが、加速度計を万歩計として用いることに更に基づく方法。
【請求項１０】
請求項１の方法において、前記粒子の第１のセットと前記粒子の第２セットとの各々は、同一の数の粒子を含む方法。
【請求項１１】
請求項１の方法において、前記粒子の第２セットは、
前記粒子の第１のセットに関連した前記尤度値に基づいて前記粒子の第１セットの粒子を選択し、及び、
選択された粒子の代表的位置を最小値によって調節することにより生成される方法。
【請求項１２】
請求項１１の方法において、前記粒子の第１セットの各々の粒子は、デバイス方位を更に表し、前記方法は、
前記受信したデータに基づいて方位を特定し、及び、
前記粒子の第１のセットのそれぞれの尤度値を、各々の粒子に関連した代表的方位が、特定された方位に一致する方位と関係しているか否かに基づいて調節すると共に、前記粒子の第２のセットは、前記粒子の第１のセットの前記選択された粒子の前記代表的方位の各々を最小方位値によって調節することにより生成されることを更に含む方法。
【請求項１３】
請求項１の方法において、前記粒子の第２のセットは、前記粒子の第１のセットに関連する前記尤度値が最小尤度閾値を満たすか否かに基づいて前記粒子の第１のセットから粒子を除去することによって生成される方法。
【請求項１４】
屋内空間におけるポータブル携帯用デバイスの位置を判定するデバイスであって、
屋内空間の地図を記憶するメモリであり、その地図は複数の制約に基づいているメモリと、
前記メモリに結合されたプロセッサとを備え、そのプロセッサは、
粒子の第１のセットを生成し、この粒子の第１のセットの各々の粒子は、前記地図における位置を表し、かつ尤度値に関連し、
方位デバイスにより生成されたデータを受信し、
前記受信したデータに基づいて運動の方向及び速度を判定し、
前記運動の方向及び速度を前記粒子の第１セットのそれぞれに適用し、
前記粒子の第１のセットの各特定の粒子の前記尤度値を、この特定の粒子が前記複数の制約の一つ以上に反するか否かに基づいて調節し、
前記粒子の第１のセットに関連した前記尤度値に基づいて粒子の第２セットを生成し、
前記粒子の第２のセットの全ての粒子が互いに閾値半径の範囲内にあるならば、前記粒子の第２セットの平均代表的位置に最も近接する前記粒子の第２のセットのうちの特定の粒子を選択し、及び、
前記選択された粒子の代表的な位置に基づいて前記屋内空間内の前記ポータブル携帯用デバイスの実際の位置を特定するように操作可能であるデバイス。
【請求項１５】
請求項１４のデバイスにおいて、前記複数の制約は、ユーザーが歩行しないであろう領域を規定する壁であるデバイス。
【請求項１６】
請求項１４のデバイスにおいて、前記複数の制約は、ユーザーが歩行することを許される領域を規定する軌道であるデバイス。
【請求項１７】
請求項１４のデバイスにおいて、前記粒子の第１のセットの各々の粒子は、デバイス方位を更に表すと共に、前記プロセッサは更に、
前記受信したデータに基づいて方位を特定し、及び、
前記粒子の第１のセットの各々の特定の粒子の前記尤度値を、各々の特定の粒子に関連した方位が前記特定された方位に一致する方位に関係しているか否かに基づいて調節するように操作可能であるデバイス。
【請求項１８】
請求項１４のデバイスにおいて、前記プロセッサは、前記受信されたデータに基づく前記運動の方向及び速度を、加速度計を万歩計として用いることに更に基づいて判定するように更に作動可能であるデバイス。
【請求項１９】
請求項１４のデバイスにおいて、前記粒子の第１のセットと前記粒子の第２セットとの各々は、同一の数の粒子を含むデバイス。
【請求項２０】
請求項１４のデバイスにおいて、前記プロセッサは、前記粒子の第２セットを、
前記粒子の第１のセットに関連した前記尤度値に基づいて前記粒子の第１セットの粒子を選択し、及び、
選択された粒子の代表的位置を最小値により調節することにより生成されるように更に操作可能であるデバイス。
【請求項２１】
請求項２０のデバイスにおいて、前記粒子の第１セットの各々の粒子は、デバイス方位を更に表すと共に、前記プロセッサは、
前記受信したデータに基づいて方位を特定し、及び、
前記粒子の第１のセットのそれぞれの尤度値を、各々の粒子に関連した代表的方位が、特定された方位に一致する方位と関係しているか否かに基づいて調節すると共に、前記粒子の第２のセットは、前記粒子の第１のセットの前記選択された粒子の前記代表的方位の各々を最小方位値によって調節することにより生成されるように更に操作可能であるデバイス。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
関連出願の相互参照
【０００２】
本出願は、米国特許出願番号第１３/１０７，３１６号（２０１１年５月１３日出願）の継続であり、その開示事項は参照により本明細書に組み込まれている。
背景
【０００３】
様々なナビゲーション・システムは、ユーザーに何処で曲がるかの指令を与える。これらのシステムは、携帯ＧＰＳデバイス、携帯電話又は車両搭載デバイスを含む。ユーザーは一つ以上の位置を入力して、入力された位置に基づく経路と何処で曲がるかの指令を受け取る。ユーザーは、一つ以上の位置に到達するために何処で曲がるかの指令に従い得る。
【０００４】
これらのナビゲーション・システムは複数のＧＰＳ衛星から情報を受け取る能力に依存している。これは航法援助を提供するデバイスの現在の位置の識別を可能とする。しかしながら、屋内間では、モバイル機器は、例えば、モール内の建物又は店舗における会議室への先進的な屋内ナビゲーションなどの特徴を可能にする正確な位置特定を要求し得る。屋内環境においては、正確な位置特定は、ＧＰＳ衛星からの充分な信号の不足のために困難である。
【０００５】
ロボット工学の分野では、地図以外のその位置に関して情報がないロボットの位置を特定するのに、粒子フィルタ又は他の確率論的アプローチを使用し得る。これは一般に「誘拐されたロボット問題（ｋｉｄｎａｐｐｅｄ  ｒｏｂｏｔ  ｐｒｏｂｌｅｍ）」と称されている。これらのロボットは、測定をするために精巧なカメラ及びレーザーを用いる。これらの測定は粒子フィルタに関連して用いられて、単独の可能性がある位置だけが残されるまで、可能性がある地図位置の数を減らす。しかしながら、多くの最新のスマートフォンは相当量の技術的向上を取り入れているが、これらは誘拐されたロボット問題を解決するために一般的に利用されている精巧なカメラ及びレーザーを通常は含まない。
概要
【０００６】
本開示事項の態様は一般に屋内位置特定、例えば、ＧＰＳ又は他の位置特定信号は利用できない場合、に関する。より詳しくは、態様は複数の制約を含む地図に関してクライアント・デバイスの現在の位置を特定するためにクライアント・デバイスの方向を確認するのに用いられるデバイスに関連して複数の粒子を用いることに関する。一つの例では、地図は、ユーザーが建物内を歩行しないであろう場所を表す一連の壁に基づき得る。他の例においては、地図は、ユーザーが建物内を歩行し得る場所を表す一連の軌道に基づき得る。
【０００７】
本開示事項の一つの態様は、屋内空間内でポータブル携帯用デバイスの位置を決定する方法を与える。この方法は、プロセッサにより、粒子の第１のセットを生成することを含む。粒子の第１のセットの各々の粒子は、地図上の位置を表し、尤度値に関係している。この方法は、ジャイロスコープを含む方向デバイスからデータを受信すること、受信されたデータに基づいて運動の方向及び速度を決定すること、運動の方向及び速度を粒子の第１セットのそれぞれに適用すること、特定の粒子が複数の制約の一つ以上に反するか否かに基づいて、粒子の第１セットの各々の特定の粒子の尤度値を調整すること、粒子の第１のセットに関連する尤度値に基づいて粒子の第２のセットを生成すること、粒子の第２セットの全ての粒子が互いの閾値半径内にあるならば、粒子の第２のセットの平均代表的位置に最も近い粒子の第２セットの特定の粒子を選択し、選択された粒子の代表的な位置に基づいて屋内空間内のポータブル携帯用デバイスの実際の位置を特定することも含む。
【０００８】
一つの実施形態においては、複数の制約は壁であり、これはユーザーが歩行しないであろう領域を規定する。他の例においては、複数の制約は軌道であり、これはユーザーが歩行することを許される領域を規定する。更に他の例においては、地図は方向指令計と関係しており、運動の方向及び速度を複数の粒子の各々の粒子に適用することは方向指令計に基づく。更なる例においては、粒子の第１のセットの各粒子は、デバイスの方位も表し、この方法は、受信されたデータに基づき方位を特定することも含み、粒子の第１のセットの各特定の粒子の尤度値を調整することは、各々の特定の粒子に関連した方位が特定された方位に一致する方位に関連しているか否かにも関係している。更に他の例においては、この方法は、選択された特定の粒子の代表的な方位をクライアント・デバイスの実際の方位として特定することも含む。更なる例においては、方向デバイスは、コンパスも含む。他の例においては、方向デバイスは、加速度計も含む。更に他の例においては、受信されたデータに基づいて運動の方向及び速度を決定することは、万歩計として加速度計を使用することにも基づく。他の例においては、粒子の第１のセットと粒子の第２セットとの各々は、同じ数の粒子を含む。他の例においては、粒子の第２のセットは、粒子の第１のセットに関連した尤度値に基づいて粒子の第１のセットの粒子を選択すると共に、選択された粒子の代表的位置を最小値によって調整することにより生成される。更に他の例では、粒子の第１のセットの各粒子もデバイス方位を表し、この方法は、受信されたデータに基づいて方位を特定し、各々の粒子に関連した方位が特定された方位に一致する方位に関連するか否かに基づいて粒子の第１のセットのそれぞれの尤度値を調整し、粒子の第２のセットは粒子の第１のセット選択された粒子の代表的方位の各々を最小方位値により調整することによって生成されることも含む。他の例においては、粒子の第２のセットは、粒子の第１のセットに関連した尤度値が最小尤度閾値を満足するか否かに基づいて粒子の第１のセットから粒子を取り除くことにより生成される。
【０００９】
本開示事項の他の態様は、屋内空間内のポータブル携帯用デバイスの位置を決定するためのデバイスを提供する。このデバイスは、屋内区間の地図を記憶しているメモリを含む。地図は、複数の制約に基づいている。このデバイスは、メモリに結合されたプロセッサも含む。そのプロセッサは粒子の第１のセットを生成するために操作可能であり、粒子の第１のセットの各粒子は地図上の位置を表し、且つ尤度値に関連し、方向デバイスにより生成されたデータを受信し、受信されたデータに基づいて運動の方向及び速度を決定し、運動の方向及び速度を粒子の第１のセットのそれぞれに適用し、特定の粒子が複数の制約の一つ以上に反するか否かに基づいて、粒子の第１のセットの各々の特定の粒子の尤度値を調整し、粒子の第１のセットに関連した尤度値に基づいて粒子の第２のセットを生成し、粒子の第２のセットの全ての粒子が互いの閾値半径の範囲内であるならば、粒子の第２のセットの平均代表的位置に最も近い粒子の第２セットの特定の粒子を選択し、選択された粒子の代表的な位置に基づいて屋内空間におけるポータブル携帯用デバイスの実際の位置を特定する。
【００１０】
一つの例においては、複数の制約は壁であり、これはユーザーが歩行しないであろう領域を規定する。他の例においては、複数の制約は軌道であり、これはユーザーが歩行することを許される領域を規定する。更に他の例においては、粒子の第１のセットの各々の粒子もデバイス方位を表し、プロセッサは受信されたデータに基づいて方位を特定するためにも操作可能であり、各々の特定の粒子に関連した方位が特定された方位に一致した方位と関連しているか否かに基づいて粒子の第１セットの各々の特定の粒子の尤度値を調整する。更なる例においては、プロセッサは、受信されたデータに基づいて運動の方向及び速度を決定するように更に万歩計として加速度計を使用することに基づいて更に操作可能である。他の例においては、粒子の第１のセットと粒子の第２セットとの各々は、同じ数の粒子を含む。更に他の例においては、プロセッサは、粒子の第１セットに関連した尤度値に基づいて粒子の第１セットの粒子を選択すると共に、選択された粒子の代表的位置を最小値により調整することにより、粒子の第２のセットを生成するように更に操作可能である。更なる例においては、粒子の第１セットの各粒子もデバイス方位を表し、プロセッサは、受信されたデータに基づいて方位を特定し、各々の粒子に関連した方位が特定された方位に一致する方位に関連しているか否かに基づいて粒子の第１セットのそれぞれの尤度値を調節するようにも操作可能であり、粒子の第２のセットは、粒子の第１のセットの選択された粒子の代表的方位の各々を最小方位値によって調整することにより生成される。
【図面の簡単な説明】
【００１１】
【図１】図１は例示的実施形態による機能的概略図である。
【００１２】
【図２】図２は例示的実施形態によるシステムの図解概略図である。
【００１３】
【図３】図３は例示的実施形態による屋内空間の地図である。
【００１４】
【図４】図４は例示的実施形態による屋内空間の他の地図である。
【００１５】
【図５】図５は例示的実施形態による屋内空間の更に他の地図である。
【００１６】
【図６】図６は例示的実施形態による屋内空間の更に他の地図である。
【００１７】
【図７】図７は例示的実施形態による屋内空間の更なる地図である。
【００１８】
【図８】図８は更なる例示的実施形態による屋内空間の更なる地図である。
【００１９】
【図９】図９は更なる例示的実施形態による屋内空間の更なる地図である。
【００２０】
【図１０】図１０は例示的実施形態による屋内空間の他の地図である。
【００２１】
【図１１】図１１は例示的実施形態による屋内空間の更に他の地図である。
【００２２】
【図１２】図１２は例示的実施形態によるフロー図である。
【００２３】
【図１３】図１３は例示的実施形態による屋内空間の地図である。
【００２４】
【図１４】図１４は例示的実施形態による屋内空間の他の地図である。
【００２５】
【図１５】図１５は例示的実施形態による屋内空間の更に他の地図である。
【００２６】
【図１６】図１６は例示的実施形態による屋内空間の更に別の地図である。
【００２７】
【図１７】図１７は例示的実施形態による屋内空間の更なる地図である。
【００２８】
【図１８】図１８は更なる例示的実施形態による屋内空間の更なる地図である。
【００２９】
【図１９】図１９は更なる例示的実施形態による屋内空間の更なる地図である。
【００３０】
【図２０】図２０は例示的実施形態によるフロー図である。
【００３１】
【図２１】図２１は例示的実施形態による粒子である。
【００３２】
【図２２】図２２Ａ及び図２２Ｂは例示的実施形態によるフロー図である。詳細な説明
【００３３】
一つの態様において、屋内位置の地図は、複数の制約を含み得る。これらの制約は、例えば壁又は軌道を含み得る。壁はユーザーが建物内を歩行しないであろう場所を表し、一方、軌道は屋内位置内の可能な経路を表し得る。
【００３４】
地図には複数の粒子が存在し得る。各々の粒子は、クライアント・デバイスの状態、例えば地図に関してクライアント・デバイスの可能性がある位置を表す。データは、クライアント・デバイスが向き付けられている方向を判定するためのデバイス、例えばジャイロスコープ、加速度計及び／又はコンパスから受信される。データは、運動の方位及び速度を決定するのに用いられる。決定された方位及び速度は、複数の粒子の各々に適用される。制約に反する粒子、例えば壁に接触するか、或いは軌道を逸れるか離れる粒子は除去し得る。クライアント・デバイスが動き続けて、加速度計データが受信されると、粒子は除去し続け得る。一旦、単独の粒子だけが残るならば、その粒子はクライアント・デバイスの現在の位置を決定するのに使用し得る。例えば、残りの粒子によって表される可能性がある位置は、クライアント・デバイスの現在の位置であると決定される場合がある。
【００３５】
図１−２で示すように、例示的なシステム１００は、コンピュータ１１０、１７０、及び１７１を含み得る。コンピュータ１１０は、プロセッサ１２０、メモリ１３０及び汎用コンピュータに一般的に見られる他の構成要素を包含し得る。
【００３６】
コンピュータ１１０のメモリ１３０は、プロセッサ１２０により実行し得る指令１３１を含めて、プロセッサ１２０によりアクセス可能な情報を記憶する。
メモリはデータ１３２も含み、これはプロセッサにより取り出され、操作され、記憶され得る。メモリは、プロセッサでアクセス可能な情報を記憶することができる任意の形式、例えばハード・ドライブ、メモリカード、ＲＯＭ、ＲＡＭ、ＤＶＤ、ＣＤ−ＲＯＭ、書き込み可能、及び読み出し専用メモリとし得る。プロセッサ１２０は、任意の公知のプロセッサ、例えばインテル社又はアドバンスト・マイクロ・デバイセズが提供しているプロセッサとし得る。これに代えて、プロセッサはＡＳＩＣのような専用コントローラである場合がある。
【００３７】
指令１３１は、プロセッサにより直接に（例えば機械語）又は間接的に（例えばスクリプト）実行される指令の任意のセットとし得る。これに関連して、用語「指令」、「ステップ」及び「プログラム」は、本明細書では相互に置換可能に使用され得る。指令はプロセッサによる直接処理のためにオブジェクト・コード・フォーマットで、或いは、スクリプト又は要求に応じて解釈されるか、事前にコンパイルされる独立したソースコード・モジュールの集合を含む任意の他のコンピュータ言語で記憶し得る。指令の機能、方法及びルーチンは、以下で更に詳細に説明される。
【００３８】
データ１３２は、指令１３１に応じてプロセッサ１２０により取り出され、記憶され、又は修正され得る。例えば、システム及び方法は任意の特定のデータ構造により制限されないが、データは、コンピュータ・レジスター、複数の異なるフィールド及び記録を有するテーブルとしての関係データベース内、又はＸＭＬ文書でに記憶し得る。データは、任意のコンピュータ可読フォーマットでフォーマットされることもあり、これは例えばバイナリ値、アスキー又はユニコードであるが、これらに限定されるものではない。更に、データは、関連した情報（例えば数量、説明文、プロプライエタリー・コード、ポインター、他のメモリ（他のネットワーク位置を含む）に記憶されたデータへの参照）を特定するのに充分な任意の情報又は関連したデータを計算する機能により用いられる情報を含み得る。
【００３９】
図１はプロセッサとメモリとが同一ブロック内にあるものとして機能的に描かれているが、当業者には、プロセッサとメモリとは、実際には、同一の物理的ハウジング内に保管し得るか又はされない複数のプロセッサとメモリを含み得ることが理解されるであろう。例えば、指令及びデータの一部は、取り外し可能なＣＤ−ＲＯＭ又は読み込み専用コンピューター・チップ内の他のものに記憶し得る。指令及びデータの一部又は全ては、プロセッサから物理的に離隔しているが、依然としてプロセッサによりアクセス可能な場所に記憶し得る。同様に、プロセッサは実際には複数のプロセッサの集合を含む場合があり、これらは並行して作動することもあれば、しないこともある。
【００４０】
コンピュータ１１０はネットワーク１９５の一つのノードに存在することがあり、直接的及び間接的にネットワークの他のノードと通信することができる。
例えば、コンピュータ１１０は、ネットワーク１９５を介してクライアント・デバイス１７０−１７１と通信することができるウェブ・サーバを含む場合があり、サーバー１１０はネットワーク１９５を用いてクライアント・デバイス１７０のディスプレイ上でユーザー１９０へ情報を送信して表示する。サーバー１１０は複数のコンピュータ、例えば負荷分散サーバー・ファームからなる場合があり、これはデータを受信し、処理し、及びクライアント・デバイスへ送信する目的で、ネットワークの異なるノードと情報を交換する。この例では、クライアント・デバイスは代表的には、サーバー１１０を含むコンピュータの何れよりもネットワークの異なるノードに依然として存在する。
【００４１】
各々のクライアント・デバイスはサーバー１１０と同様に、プロセッサ１６０、メモリ１６１、指令１６２及びデータ１４０を有して構成し得る。各々のクライアント・コンピュータ１７０-７１は、個人１９０−９１による使用のために意図されたパーソナル・コンピュータである場合があり、パーソナル・コンピュータに普通に見られる全ての内部構成要素、例えば中央処理装置（ＣＰＵ）、ディスプレイ・デバイス１６３（例えば、スクリーンを有するモニター、プロジェクター、タッチ・スクリーン、小型ＬＣＤスクリーン、テレビジョン、又はプロセッサにより処理された情報を表示するように動作可能な電子機器などの他のデバイス）、ＣＤ−ＲＯＭ、ハード・ドライブ、ユーザー入力１６４（例えば、マウス、キーボード、タッチ・スクリーン又はマイクロフォン）、スピーカー、モデム及び／又はネットワーク・インターフェース・デバイス（電話、ケーブル又はそれ以外のもの）、及びこれらの要素を相互に接続するために用いられる全ての構成要素を有する。更に、本明細書に説明されるシステム及び方法によるコンピュータは、指令を処理して、データを人間へ及び人間から送信することができる任意のデバイス及び他のコンピュータ（汎用コンピュータ、ＰＤＡ、局所的記憶能力の無いネットワーク・コンピュータ、テレビジョン用のセット・トップ・ボックス、及び他のネットワーク化デバイスを含む）から成り得る。
【００４２】
コンピュータ１７０-７１は標準サイズのパーソナル・コンピュータから成り得るが、システム及び方法はまた、インターネットのようなネットワーク上でデータをサーバーと無線で交換可能なモバイル機器に関連して使用し得る。例示としてのみ、クライアント・デバイス１７１は、無線対応ＰＤＡ、携帯型若しくは車載ナビゲーション装置、タブレットＰＣ、ネットブック、或いはインターネットを介して情報を得ることができる携帯電話とし得る。ユーザーは、例えば小型キーボード、キーパッド又はタッチ・スクリーンを用いて情報を入力し得る。
【００４３】
サーバー１１０とクライアント・コンピュータ１７０−７１とは、例えばネットワーク１９５上で直接的及び間接的な通信ができる。数台のコンピュータのみが図１−２に描かれているが、代表的なシステムは、多数の接続されたコンピュータを含むことができ、各々の異なるコンピュータはネットワーク１９５の異なるノードにあることが理解されたい。ネットワーク、及び介在ノードは、インターネット、ワールド・ワイド・ウェブ、イントラネット、仮想プライベート・ネットワーク、ワイド・エリア・ネットワーク、ローカル・ネットワーク、一つ以上の会社への通信プロトコル・プロプライエタリを用いるプライベート・ネットワーク、イーサネット、ＷｉＦｉ（例えば８０２．１１、８０２．１１ｂ，ｇ，ｎ又は他のそのような規格）、及びＨＴＴＰ、並びに前述の様々な組合せを含めて、様々な構成及びプロトコルから成り得る。このような通信は、データを他のコンピュータへ及び他のコンピュータから送信する能力のある任意のデバイス、例えばモデム（例えば、ダイヤルアップ、ケーブル又は光ファイバー）及び無線インタフェースにより促進し得る。
【００４４】
情報が上述したように送信又は受信されるときに特定の利点が得られるが、システム及び方法の他の態様は、情報の送信の如何なる特定の方法に限定されるものではない。例えば、或る態様においては、情報は媒体、例えばディスク、テープ又はＣＤ−ＲＯＭを介して送り得る。更に、幾つかの機能は、単独のプロセッサを有する単独のクライアント・デバイスで起きるものとして示されているが、システム及び方法の様々な態様は複数のコンピュータ、例えば、ネットワーク１９５上の通信情報により実施し得る。
【００４５】
図１に示すように、クライアント・デバイスは、地理的位置を判定するために、地理的位置構成要素１６５も含み得る。例えば、クライアント・デバイス１７０は、このデバイスの緯度、経度及び高度位置を判定するために、ＧＰＳレシーバーを含み得る。従って、クライアント・デバイスが例えば物理的に移動することによって位置を変えると、ＧＰＳレシーバーは新たな現在の位置を判定し得る。構成要素１６５は、クライアント・デバイス１７０において受信された他の信号（例えば、クライアント・デバイスが携帯電話であるならば、一つ以上の携帯電話塔から携帯電話のアンテナで受信された信号）に基づいてデバイスの位置を判定するためのソフトウェアも含み得る。
【００４６】
クライアント・デバイス１７１は、このデバイスが指向している方向を判定するために、方位デバイス１６６、例えば加速度計、ジャイロスコープ、コンパス、ソフトウェア又はこれらの任意の組合せも含み得る。例えば、加速度計は、例えば、毎秒毎秒ごとのメートルで測定されるクライアント・デバイスに対する重力の効果を検出するために使用し得る。例示としてのみ、クライアント・デバイスは加速度計からの入力を用いて、重力の方向又はそれに垂直な面に関するクライアント・デバイスのピッチ、偏揺れ又は横揺れ（又はその変化）を判定し得る。その点で、ここに記載した方位データのクライアント・デバイスの提供は、自動的にクライアント・デバイスへ与え得ることが理解されよう。
【００４７】
方位デバイスから受信された方位データは、様々な方式で使用し得る。例えば、加速度計又はジャイロスコープは、加速値の平均を走ることにより何れの方向が下方（地球へ向かって）であるかを特定する万歩計として使用し得る。単純な段差検出器は、下方方向における成分が経験的に決定された閾値よりも大きいたびに、段差が生じたことを決定することにより構成し得る。
【００４８】
クライアント・デバイスは、地図情報１４２にアクセスし得る。この地図情報は、クライアント・デバイスに局所的に記憶され得る。これに代えて、地図情報が無いか、或いは地図情報の一部のみをクライアント・デバイスに局所的に記憶させる場合があり、一方、地図情報の大部分はサーバーにより維持される。この例においては、任意の更なる地図情報を必要に応じてサーバーから要請し得る。以下により詳細に説明するように、地図情報は建物内の空間を表している一連の地図を含み得る。一つの例においては、地図情報は、ユーザーが建物内を歩行しないであろう（若しくは歩行することができない）場所を表している一連の壁に基づき得る。他の例においては、地図情報は、ユーザーが建物内を歩行し得る場所を表している一連の軌道に基づき得る。
【００４９】
クライアント・デバイスはまた、粒子情報１４４にアクセスし得る。粒子情報は、複数の粒子を含み得る。各々の粒子は、クライアント・デバイスの可能性がある状態に対応する状態情報に関係している場合がある。例えば、特定の粒子は、識別子、位置座標、及び方位情報と関係している場合がある。以下に更に詳細に説明するように、クライアント・デバイスは加速度計、コンパス、万歩計等から受信される情報に基づいて状態情報を操作し得る。
【００５０】
以下に説明して且つ図に図解した操作に加えて、ここで様々な操作について説明する。以下の操作は以下に説明する正確な順序で実行される必要がないことを理解されたい。むしろ、様々なステップは、異なる順序で、又は、同時に取り扱い得る。幾つかのステップは、特に明記しない限り省略されることもある。
壁例
【００５１】
クライアント・デバイスは建物内に位置する場合があって、ＧＰＳ決定位置を得ることができない場合がある。これに応じて、クライアント・デバイスは、屋内空間の地図にアクセスし得る。上述したように、地図は、ユーザーが建物内を歩行しないであろう場所を表している一連の壁を含み得る。図３に示すように、地図３００は複数の壁３１０−３１７を含むことがあり、これは空間、例えば部屋１及び２並びに廊下３を規定し、ここではユーザーが歩行することができ（更に厳密にはクライアント・デバイスが位置し得る）、入口／出口３２０、及び戸口３３０を規定する。この例では、地図は座標系、ＡＥ及び０−９を含むことがあり、同じ軸の座標間の距離は１メートルを表す。地図は、地図の方位を示す地図ポインター３０５も含み得る。
【００５２】
クライアント・デバイスは、粒子により地図に存在し得る。各々の粒子は、クライアント・デバイスの可能性がある位置を表し得る。地図は粒子で実際に「満たされる」必要は無いことが理解されよう。粒子は、各々がクライアント・デバイスの可能性がある位置及び様々な他の特質を表すデータ・ポイントのリスト又は表として単純に生成し得る。図４に示すように、地図４００は複数の粒子を含み、その各々は、クライアント・デバイスが位置することができる地図座標と、クライアント・デバイスがその特定の地図座標にあるという見込みを示す値（「尤度値」）を表す。例えば、粒子４１０は地図座標Ａ１を代表し、粒子４２０は地図座標Ｅ７を代表する。
【００５３】
図４の粒子の数、サイズ、及び配置が単なる例示であることが理解されよう。使用される粒子の数がより多い程、位置評価の正確さのレベルはより大きい。更に、より大きな空間は、より多数の粒子を必要とするであろう。例えば、粒子は平方フィートにつき概ね２個の粒子の比率で生成されることがあり、即ち、概ね５００平方フィートの空間には１０００個の粒子が存在することがあり、一方、概ね３００平方フィートの他の空間には、６００個の粒子が存在し得る。
更に、各々の粒子は、点又は領域（１平方フィート）等を代表し得る。
【００５４】
この場合も、図４は粒子を地図４００を通じて均一に分散するように描いているが、粒子は様々な方式で配置し得る。例えば、粒子は無作為に位置を割り当て得るか、個々が最も位置しそうな位置に一緒に集中し得る。図３に戻ると、或る領域（平方フィート又はメートル等）につきより多くの粒子が、廊下２（長い幅が狭い廊下）とは対照的に、部屋１（大きな開放空間）内の位置に関係し得る。同様に、或る領域につきより多くの粒子が、部屋２の外側縁へ向かう（壁３１２−３１６に沿って）につれて、部屋２の中央へ向かって位置し得る。
【００５５】
ユーザーが屋内空間の周りを歩行又は移動するにつれて、ユーザーの動きは、クライアント・デバイスの方位を検出するためのデバイスを経て追跡し得る。
例えば、上述したように、加速度計又はジャイロスコープは、ユーザーがいつ移動しているかを判定するように万歩計として使用し得る。従って、クライアント・デバイスは、方位デバイスからの情報に基づいてクライアント・デバイスの方位及び速度を推定することができる場合がある。
【００５６】
方位デバイスからデータに基づいてユーザーの移動を判定した後に、粒子の各々に対する運動の効果を決定し得る。一つの例においては、図５−図１１に示されるように、粒子が地図と関連した或る制約に反するたびに、粒子に関連した値は、その値が或る閾値を下回るように調節し得るので、その結果として、粒子が除去される。
【００５７】
例えば、図５の地図５００に示すように、クライアント・デバイスが東へ１メートル移動したならば、各々の粒子は東へ１メートル「移動」され得る。従って、Ａ１を表している粒子は位置Ａ２へ「移動」され得るか、更に厳密には粒子の表す位置が変化し得る。東へ１メートル移動している位置Ａ１に移動する粒子が無いならば、この位置はもはや粒子によって表されず、図においては破線形式で示されている。
【００５８】
各々の粒子がクライアント・デバイスの移動の方向及び速度に基づいて「移動した」後、尤度値は粒子が壁へ進んだか否かに基づいて調節し得る。例えば、位置Ｂ４における粒子が東へ１メートル移動するならば、粒子は壁３１３へ進むであろう。粒子の尤度値は調節されることがあり、例えば、低減される。
【００５９】
次いで各々の粒子の尤度値は、閾値と比較され得る。一つの例においては、
一つの例においては、任意の特定の粒子の見込みが閾値を下回るならば、粒子は除去し得る。明確にするために、粒子が東へ１メートル「移動される」ならば、以前に位置Ｂ４にあった粒子は壁３１３を通じて移動し、その関連する尤度値は、例えば、閾値より下に低減し得る。従って、図５に示すように、位置Ｂ５は、もはや粒子によって表されない。同様に、Ｂ１，Ｃ１，Ｄ１，及びＥ１も破線で表され、これらの位置は同様な理由により、もはや粒子によって表されない。
【００６０】
明確にするために、図６の地図６００は、Ａ１，Ｂ１，Ｃ１，Ｄ１，Ｅ１，Ｂ２，Ｃ２，Ｄ２，及びＥ２において位置していた粒子が、それらの尤度値が閾値より下に低減されることにより除去された後の残りの粒子位置を描く。
【００６１】
再び、ユーザーが移動し続けると、クライアント・デバイスはその移動の方位及び速度を判定し続け得る。図７の地図７００に示すように、クライアント・デバイスが方向を変えて、南に１メートル移動するならば、粒子の各々はクライアント・デバイスの移動を反映して「移動」し得る。壁、例えば壁区画３１２，３１４又は３１６へ進むそれらの粒子は、それらの尤度値が閾値を下回るように低減されるにつれて、除去し得る。従って、位置Ａ２，Ａ３，Ａ４，Ａ５，Ａ６，Ａ７，Ａ８，Ａ９，Ｂ６，Ｂ８，及びＢ９の粒子は、図７には点線で示されている。
【００６２】
位置Ｅ２における粒子が南へ１メートル移動するならば、粒子は入口／出口３２０を通じて移動する。この粒子がクライアント・デバイスの実際の現在の位置を表していたならば、このクライアント・デバイスは入口／出口３２０を通じて移動する。従って、次いでクライアント・デバイスは建物の外にある。一旦外に出ると、クライアント・デバイスはＧＰＳ信号を受信することができる。ＧＰＳ信号は、クライアント・デバイスの現在の位置を特定するのに使用し得る。従って、クライアント・デバイスは、それがもはや建物内には無いと判定して、ＧＰＳ信号に基づいてその現在の位置を判定し続け得る。
【００６３】
クライアント・デバイスが建物を退去せず、建物内を移動し続けるならば、粒子を除去し続け得る。従って、図８に示すように、東へ更に１ｍ移動するならば、これは更なる粒子が壁へ進むと、これらの尤度値は閾値より下へ低減され、それらの粒子の除去をもたらす。図７へ戻ると、南へ１メートルの移動した後には、位置Ｂ８を表す粒子はもはや存在しない。しかしながら、一旦ユーザーが東へ１メートルするならば、図８の地図８００で示すように、粒子８１０はいまやこの位置を表す。
【００６４】
クライアント・デバイスは、基本的な方向にだけ移動する必要はない。むしろ、ユーザーは様々な方向へ移動し得る。しかしながら、この移動が地図の壁へ進む粒子をもたらすならば、これらの粒子も除去し得る。例えば、図９の地図９００に示すように、クライアント・デバイスは、北東へ約１．４メートル移動した。その結果、粒子も北東へ約１．４メートル移動する。再び、壁へ進む粒子は、それらの尤度値が閾値より下へ低減されるにつれて除去し得る。図１０の地図１０００で示すように、ユーザーは南東へ約１．４メートル移動した。この場合も、壁へ進む粒子は、それらの尤度値が閾値より下へ低減されるにつれて除去し得る。
【００６５】
クライアント・デバイスにより移動した距離は、ユーザーの速度に基づいて変化し得る。この移動した距離、更に厳密にはクライアント・デバイスの速度は、上述したように万歩計として方位デバイスを用いることによって判定し得る。例えば、図１１に示すように、いまユーザーが１秒で南へ２メートル移動し、一方、前の例においては、ユーザーは１秒で１メートルのみ移動し得るであった。この場合も、残りの粒子に移動を適用した後に、壁へ進む任意の粒子は、それらの尤度値が閾値より下へ低減されるにつれて除去し得る。
【００６６】
粒子が上述のように尤度値に基づいて除去され、一旦粒子の数が或る最小限の数に達するならば、例えば、単独の粒子のみが残ると、残りの粒子の位置はクライアント・デバイスの実際の位置であると判定し得る。例えば、図１１に示すように、粒子が南へ２メートル移動した後、以前Ｄ９及びＥ９に位置していた（図１０を参照）粒子が壁３１２へ進んで除去されて、単独の粒子のみが位置Ｅ９に残る。従って、残りの粒子の位置、Ｅ９は、クライアント・デバイスの実際の位置であると判定し得る。
【００６７】
クライアント・デバイスのこの実際の位置は、クライアント・デバイスにおいて処理が実時間でなされるならば、クライアント・デバイスの現在の位置となり得る。例えば、情報がサーバーへ送られて、処理が後に実行されるならば、これはクライアント・デバイスの先の位置でもあり得る。
【００６８】
図１２の例示的フロー図１２００は、上述のプロセスの態様を表す。例えば、ブロック１２０２において、複数の壁を含む屋内位置の地図が特定される。ブロック１２０４において、地図には複数の粒子が存在する。各々の粒子は、地図に関してクライアント・デバイスの可能性がある位置を表す。各々の粒子は、クライアント・デバイスが代表的な位置にどのくらい期待できるかを表す尤度値にも関係している。データは、ブロック１２０６においてジャイロスコープ（又は他の方位デバイス）から受信される。このデータは、ブロック１２０８において、移動の方向及び移動の速度を判定するのに用いられる。判定された方位及び速度は、ブロック１２１０において、複数の粒子の各々へ適用される。次いで各々の特定の粒子に関連した尤度値は、ブロック１２１２において、判定された方位及び速度を除去する適用の結果として、特定の粒子が壁に接触するか又は壁を通じて移動するかに基づいて調節される。次いで一つ以上の粒子は、ブロック１２１４において、関連した尤度値が閾値を下回るならば除去される。粒子が除去された後、複数の粒子の一つより多くの粒子がブロック１２１６において残っているならば、処理はブロック１２０６へ戻り、ここでは新たな加速度計データが受信される。この場合も、このデータは、ブロック１２０８において、移動の新たな方位及び速度を判定するのに用いられる。次いで、この移動の新たな方向及び速度は、ブロック１２１０において、残りの複数の粒子の各々に適用される。各々の粒子に関連した尤度値は、ブロック１２１２において、粒子が壁に接触するか、壁を通じて移動するかに基づいて調節される。この場合も、閾値を下回る尤度値に関連した粒子は、ブロック１２１４において除去される。
【００６９】
ブロック１２１６に戻ると、壁と接触した粒子を除去した後に複数の粒子のうちの一つの粒子だけが残るならば、次いで残りの粒子はブロック１２１８においてクライアント・デバイスの現在の位置を判定するのに用いられる。例えば、残りの粒子によって表される可能性がある位置は、クライアント・デバイスの実際の位置であると判定し得る。上述したように、上述の操作は上述の正確な順序で実行される必要はなく、むしろ、様々なステップは、異なる順序で、或いは、同時に取り扱い得る。ステップは、特に明記しない限り省略されることもある。
【００７０】
他の例においては、以下により詳細に説明されるように、壁例の残りの粒子の全てが互いの閾値半径の範囲内にあるならば、残りの粒子の平均位置が判定され得る。残りの粒子の平均位置に最も近い位置を表している粒子は、クライアント・デバイスの位置として特定し得る。
【００７１】
代替例においては、或る閾値を下回る粒子を除去するよりはむしろ、粒子の数は同じままに留まり得る。この例（これはより複雑であるが、上述のモデルよりもより強固である）においては、粒子は尤度値を調節することによって報酬を加算されるか又はペナルティを課されるかもしれないが、何らかの閾値に基づいて除去されることはない。例えば、粒子が壁を通過しなかったならば、この粒子はより高い報酬（又はより低いペナルティ）を受け得る。様々な評価システムが類似した結果に影響を及ぼすのに用いられ得ることが理解されよう。例えば、同様なシステムは、粒子が壁へ進むときに粒子値が増加される所で使用し得る。
【００７２】
時々、粒子は置換により再サンプリングし得る。例えば、新たなステップがなされるか、又は、期間が経過するたびに、粒子を再分布し得る。粒子の再サンプリングされたセットは、粒子の第１セットと関連した値に基づいて選択される。例えば、図５に戻ると、東への１ステップをなした後に、位置Ｂ５乃至Ｅ５における粒子は、壁３１３を通り抜けるためにペナルティを課され得る。同様に、位置Ｂ４乃至Ｅ４における粒子は、壁３１３を通り抜けることに対して報酬を受け得る。従って、現在位置Ｂ４に位置する粒子は、現在Ｂ５に位置する粒子より大きな尤度値に関係している場合がある。粒子が再サンプリングされる（又は再分布される）とき、位置Ｂ４の粒子はＢ５の粒子よりも次世代のために選択される傾向にあり得る。
【００７３】
子（Ｃｈｉｌｄ）世代が親世代と同数の粒子を含むまで、粒子はそれらの値に基づいて選択される。例えば、図４においては、４５個の粒子がある。ステップがなされた後、４５個の粒子が選択されるであろう。より高い尤度値を有する粒子は、より選択される傾向にあり、複数回選択し得る。例えば、５個の全粒子Ｓ，Ｔ，Ｕ，Ｖ，及びＷがあり得るとして、ここでＳ＝（Ｘｓ，Ｙｓ），Ｔ＝（Ｘｔ，Ｙｔ），Ｕ＝（Ｘｕ，Ｙｕ），Ｖ＝（Ｘｖ，Ｙｖ），及びＷ＝（Ｘｗ，Ｙｗ）である。これらの粒子の各々は、それぞれ５，１０，５，１，及び１の尤度値に関係している場合がある。Ｓが５／１７で選択されそうなとき、Ｔは１０/１７回等で選択されそうである。そこで、例えば、粒子Ｔが３回選択されることがあり、一方、粒子Ｓ及びＵが二回選択され得る。他の例においては、粒子Ｔが二回選択されることがあり、一方、粒子Ｓ及びＵは一回選択され、かつ、粒子Ｗは一回選択される。
【００７４】
次いで、再サンプリングの間に選択された各々の粒子は、或る少量の程度の変化を与えられる。例えば、Ｔ＝（Ｘｔ，Ｙｔ）に位置する粒子が二回選択されるならば、の二つの新たな「子」粒子が生成されて、選択された粒子の位置（ｘ及びｙ値）へ僅かに調整され得る。この例においては、結果は、Ｔ１＝（Ｘｔ１，Ｙｔ１）及びＴ２＝（Ｘｔ２，Ｙｔ２）となることがあり、ここでＸｔ１及びＸｔ２は、Ｘｔからの若干の僅か変化を表し、Ｙｔ１及びＹｔ２はＹｔからの若干の僅かな変化を表す。この僅かなノイズを各々の新たな「子」粒子に加えることによって、システムは方位デバイス計算、その他における僅かなエラーについて自動的に調整される。
【００７５】
粒子の次世代は、方位デバイスにより検出された運動に基づいて調節される尤度値と更に関係している場合がある。或る期間又は幾つかの数のステップの後、粒子は再サンプリングされて、粒子の新世代は上述のように生成し得る。
【００７６】
ここでは、クライアント・デバイスの現在の位置を特定するために、粒子の数が幾つかの少数へ減少するまで待つのではなく、粒子は、（与えられた世代における）全ての粒子が或る小さな経験的に互いからの派生距離の範囲内になるまで再サンプリングされ続け得る。例えば、後続の再サンプリング、及び各々粒子に関連した位置への調整の後、結局、全ての粒子は互いの或る小さな、例えば数メートル又はそれ未満の半径の範囲内になり得る。
【００７７】
この分類は、「クラスタリング」と称されることがある。例えば、図５の例に戻ると、東へ１ステップ移動した後に、壁３１３又は３１６を通過して移動して地図５００を離れた粒子は、サンプリングの間に選択されそうにない。このように、新世代の粒子は、実線で示されている粒子から選択される傾向がある。結局、クライアント・デバイスの移動と粒子の再サンプリングとの組み合わせは、粒子の位置のクラスタリングをもたらす場合がある。図８を参照すると、結局、粒子は二つの主要な集団８７０及び８７５へ配置される。１８個の粒子のみが実線で示されているが、この特定の例においては、１８個の粒子が４５個の粒子に関連した領域を表すことが理解されるであろう。
【００７８】
集団８７０内の粒子が再サンプリングする間に選択されることはありそうになくなって、図１０の集団１０７０内の位置だけが残り得る。図１０に示すように、粒子の全ては、集団９１０内に位置する。従ってここでは、全ての粒子が２メートル半径内に位置する。この場合も、３個のみが実線で示されているが、この特定の例においては、３個の粒子が４５個の粒子と関連した領域を表すことが理解されるであろう。
【００７９】
一旦粒子が閾値半径内にあるならば、クライアント・デバイスの実際の位置を判定し得る。例えば、粒子の平均代表的位置を判定し得る。この平均位置に最も近い粒子は、クライアント・デバイスの現在の位置を表す粒子として選択し得る。
【００８０】
図１０の単純な例を用いると、位置Ｃ９，Ｄ９，及びＥ９を表す３個の粒子が示されている（この例においては、３個の粒子が全ての粒子の位置を表すと仮定する）。これらの粒子は、２メートルの閾値半径１０８０の範囲内にある。
粒子の平均位置は、半径１０８０の中心１０９０である（これは粒子が線に沿って均一に分布するためである）。位置Ｄ９を表す粒子は、この点に最も近接して位置するクライアント・デバイスの現在の位置として選択し得る。
【００８１】
単純化の目的で、上述の例は、空間座標のみを表している粒子を使用する。
しかしながら、粒子はクライアント・デバイスの可能性がある位置のみならず、可能性のある方位も表し得る。この場合、粒子の初期セットは、様々な開始位置のみならず、様々な初期も反映し得る。方位は、上述したように尤度値を調節するためにも使用し得る。例えば、図２１Ａに示すように、一組の粒子は、一つ以上の地図位置を先ず表し得る。８個の粒子は、単独、又は各々が僅かに異なる方位を有する複数の位置を表し得る。クライアント・デバイスのコンパスが、クライアント・デバイスは東へ移動していることを判定するのに用いられるならば、東以外の方位に関連する粒子は、尤度値を下方へ調節することにより、ペナルティを課され、一方、方位東を有する粒子はそれらに関連する尤度値を上方へ調節することによって報酬を受け得る。従って、粒子３は報酬を得て、粒子１-２及び４-８はペナルティを課されて、それらに関連する尤度値はそれに応じて調整され得る。上述のように、尤度値が或る閾値を下回るならば、粒子は除去し得る。
【００８２】
或いは、粒子が再サンプリングされるならば、正しい方位を有する粒子はより高い尤度値を持つことがあり、次世代のためにより選択される傾向にある場合がある。この場合も、生成された任意の子粒子は、親から僅かな方位変化を含み得る。上述の例に戻ると、粒子Ｔは方位Ｈｔも含むことがあるので、Ｔ＝（Ｘｔ、Ｙｔ，Ｈｔ）である。Ｔから生成される子粒子は、Ｔ１’＝ （Ｘｔ、Ｙｔ，Ｈｔ）である場合があり、ここでＸｔ１はＸｔからの若干の僅かな変化を表し、Ｙｔ１はＹｔからの若干の僅かな変化を表し、Ｈｔ１はＨｔからの若干の僅かな変化を表す。一旦粒子が上述のようにそれら全てが閾値半径に内に収まるように集まるならば、クライアント・デバイスの実際の位置として特定された選択された粒子は、方位デバイスの現在の方位を特定するためにも使用し得る。
【００８３】
他の信号、例えば無線ネットワーク・アクセス・ポイント信号又は携帯電話等三角測量位置決めも、粒子の尤度値を調節するために使用し得る。例えば、屋内位置の地図は、一つ以上の無線ネットワーク・アクセス・ポイントの位置及び信号強度を含み得る。これらのアクセス・ポイントは、アクセス・ポイントを特定する媒体アクセス制御（「ＭＡＣ」）アドレスのようなデータを含むビーコン・メッセージを送信し得る。これらのビーコン・メッセージは、尤度値を調節する目的で、クライアント・デバイスにより受信及び記録し得る。クライアント・デバイスにより受信された任意の無線ネットワーク・データは、識別情報及び信号強度に限定されることがあり、更なる情報を含む必要がないことが理解されよう。例えば、ネットワーク・トラフィックに包含される情報、例えば個人情報は、集められる必要がなく、実際のところ、無線ネットワークのユーザーのプライバシーを保護するために実質的に削除し得る。
【００８４】
例えば、クライアント・デバイスは、地図により無線ネットワーク・アクセス・ポイントからビーコン・メッセージを受信する位置にある。地図によりアクセス・ポイントの範囲内にない位置を表す粒子は、ペナルティを課され得る。同様に、地図により無線ネットワーク・アクセス・ポイントの範囲内にある粒子は報酬を受け得る。この場合も、より高い尤度値に関連した粒子は、除去されそうにないか、或いは、より再サンプリングされる傾向にある。
軌道例
【００８５】
他の例においては、クライアント・デバイスは、建物内に位置する場合があり、ＧＰＳフィックスを得ることができないことがある。これに応じて、クライアント・デバイスは、屋内空間の地図にアクセスし得る。図１３に示されるように、地図１３００は座標系Ａ−Ｆ及び０−９を含むことがあり、同一の軸の座標間の距離は１メートルを表す。地図３００の場合のように壁によって規定されるよりはむしろ、地図１３００は複数の軌道、例えば軌道１３４０，１３５０，１３６０，及び１３７０を含むことがあり、これらはユーザーが建物内を歩行し得る経路を表す。各々の軌道は、識別子と関係している場合がある。
ここでは、軌道は終点と関連した座標に基づいて特定され得る。従って、軌道１３４０は軌道Ａ１−Ａ−２又はＡ２−Ａ１として特定され、軌道１３５０は軌道Ｄ９−Ｅ９又はＥ９−Ｄ９と特定され、軌道１３６０は軌道Ｅ２−Ｆ２又はＦ２−Ｅ２、その他として特定され得る。
【００８６】
地図１３００の特徴は、地図３００−１１００とは視覚的に異なるけれども、地図３００-１１００と同じ屋内空間を規定する。灰色線１３１０−１３１７は、もはや地図１３００内に含まれない壁３１０-３１７を表す。例えば、軌道１３７０及び１３８０は戸口３３０に通じる経路を表し、軌道１３６０は入口/出口３２０に通じる経路を表し得る。地図は、屋内空間の方向を示す地図指針１３０５も含み得る。
【００８７】
クライアント・デバイスは、粒子により地図に存在し得る。各々の粒子は、クライアント・デバイスの可能性がある位置を表し得る。地図１３００は、軌道上に、粒子円１３９０−１３９２のような黒い円によって表された複数の粒子も含む。粒子は均一に分布するものとして描かれているが、様々な配置を用いることができ、例えば、粒子は無作為に位置を割り当てられるか、又は個々が最も存在しそうな位置における軌道に沿って一緒に凝集し得る。
【００８８】
粒子の各々は、クライアント・デバイスが位置することができるそれぞれの軌道に沿って地図座標を表し得る。上述のように、各々の粒子は、方位、無線ネットワーク及び他の信号情報にも関係している場合がある。しかしながら、単純化のために、これらの更なる信号は本例では使用されないが、これらの信号が使用される場合もあることが理解されるであろう。粒子の各々は、そのそれぞれの座標によって特定されることもあり、Ｃ９としての粒子円１３９０、Ｅ７としての粒子円１３９１、及びＡ３における粒子円１３９２である。
【００８９】
クライアント・デバイスが屋内空間の周りに移動するにつれて、クライアント・デバイスの運動は上述のようにクライアント・デバイスの方位デバイスにより追跡し得る。図１４-１８は、屋内空間を通じる図３及び図５−１１と同様な運動を表す。
【００９０】
方位デバイスから情報に基づいてクライアント・デバイスの運動（現在の方位及び速度）を決定した後に、粒子の各々に対する運動の効果を判定し得る。この場合も、一つの例においては、図１４−１８に示すように、粒子が地図に関連した或る制約に反する（軌道を逸れて移動する）たびに、粒子に関連した値は、この値が或る閾値を下回るように調節されることがあり、その結果、粒子を除去し得る。例えば、図１４の地図１４００に示されるように、ユーザーが東へ１メートル移動するならば、各々の粒子は軌道に沿って東へ１メートル「移動される」であろう。従って、Ａ１を表している粒子は軌道Ａ１−Ａ２に沿って位置Ａ２へ移動され、Ａ２を表している粒子は軌道Ａ２−Ａ３に沿って位置Ａ３などへ移動され得る。東へ１メートル移動して位置Ａ１（白で示される）に移動する粒子が無いため、この位置はもはや粒子（又は黒い円）によって表されない。同様に、Ｂ１，Ｃ１，Ｄ１，及びＥ１における粒子も、これらの位置はもはや粒子によって表されないため、白で表される。
【００９１】
各々の粒子がクライアント・デバイスの運動の方向及び速度に基づいて「移動した」後、尤度値は粒子が壁へ進んだか否かに基づいて調節され得る。例えば、位置Ｂ４における粒子が東へ１メートル移動するならば、この粒子は壁３１３へ進むであろう。位置Ｂ４においては、東へ１メートル延伸する軌道は無い。従って、粒子Ｂ４が東へ１メートル移動するならば、それは軌道を逸れて移動するであろう。粒子の尤度値は調節されることがあり、例えば、低減される。
【００９２】
次いで、各々の粒子の尤度値は閾値と比較され得る。一つの例においては、特定の粒子の尤度値が閾値よりも下へ減少するならば、この粒子は除去し得る。
壁に接触した粒子が除去された上述の例と同様に、軌道を逸れて移動した粒子は、それらの尤度値が閾値より下に減少するにつれて除去し得る。従って、粒子Ｂ４の尤度値は閾値より下にあり、これは除去し得る。従って、この粒子は位置Ｂ５へ移動せず、Ｂ５位置はもはや粒子によって表されず、むしろ白である。同様に本来は位置Ｃ４，Ｄ４，及び４Ｅにおける粒子は、東へ１メートル移動されるならば、軌道を逸れるであろう。従って、位置Ｃ５，Ｄ５，及びＥ５も、それらの位置がもはや粒子によっても表されないにつれて、白で示される。
【００９３】
再度、クライアント・デバイスが建物内を移動するにつれて、クライアント・デバイスはその運動の方位及び速度を判定し続け得る。図１５の地図１５００に示すように、クライアント・デバイスが方向を変えて、南へ１メートル移動するならば、粒子の各々はクライアント・デバイスのこの運動を反映して、「移動」され得る。この場合も、軌道を逸れる残りの粒子（図１４から）は、それらの尤度値が閾値の下に低減されるにつれて除去し得る。従って、図１５において、位置Ａ２，Ａ３，Ａ４，Ａ５，Ａ６，Ａ７，Ａ８，Ａ９，Ｂ６，Ｂ８，及びＢ９はいまや白で示される。
【００９４】
位置Ｅ２における粒子が軌道Ｅ２−Ｆ２に沿って南へ１メートル移動するならば、粒子は入口／出口３２０を通じて移動するであろう。この粒子がクライアント・デバイスの実際の現在の位置を表していたならば、クライアント・デバイスは入口／出口３２０を通じて移動したであろう。従って、次いでクライアント・デバイスは、建物の外にある。一旦外へ出たならば、クライアント・デバイスは、ＧＰＳ信号を受信することができる。ＧＰＳ信号は、クライアント・デバイスの現在の位置を特定するのに使用し得る。従って、クライアント・デバイスは、それがもはや建物内にはないと判定され、ＧＰＳ信号に基づいてその現在の位置を決定し続け得る。
【００９５】
ユーザーが建物を出なくて、かつ、ユーザーが建物内を移動し続けるならば、粒子はクライアント・デバイスの運動に基づいて「移動され」、除去され続け得る。従って、図１６に示すように、東へ更に１メートル移動することは、それらの尤度値が閾値よりも下へ減少するにつれて、更なる粒子の除外をもたらす。図１５へ戻ると、南へ１メートル移動した後は、もはや位置Ｂ８を表す粒子は無い。しかしながら、一旦ユーザーが東へ１メートル移動するならば、図１６の地図１６００で示すように、粒子１５１０はいまやこの位置を表す。図 １７及び図１８の地図１７００及び１８００に示すように、クライアント・デバイスが北東へ約１．４メートル移動した後、南東へ約１．４４メートル移動するならば、残りの粒子の多くは軌道を逸れて、２個の粒子だけが残り、それらは位置Ｃ９及びＤ９を表している。最後に、クライアント・デバイスが南へ２メートル移動するならば、図１８の位置Ｄ９の粒子は軌道を逸れて移動し、図１９に示すように、位置Ｅ９を表す粒子のみが残る。
【００９６】
この場合も、一旦粒子の数が或る最小限の数に達するならば、例えば、１個の粒子のみが残り、残りの粒子の位置はクライアント・デバイスの位置であると判定される場合がある。図１９に戻ると、１個の粒子のみが位置Ｅ９に残る。次いでこの位置は、クライアント・デバイスの位置であると判定される場合がある。
【００９７】
図２０の例示的なフロー図２０００は、上述のプロセスの態様を描いている。
例えば、ブロック２００２において、複数の軌道を含む屋内位置の地図が特定される。軌道は、屋内位置内の可能性がある経路を規定する。ブロック２００４において、地図には複数の粒子が存在している。各々の粒子は、地図に関してクライアント・デバイスの可能性がある位置を表す。各々の粒子は、クライアント・デバイスが代表的な位置にどの程度存在しそうかを示す尤度値とも関係している。データは、ブロック２００６において加速度計（又は他の方位デバイス）から受信される。データは、ブロック２００８において運動の方向及び運動の速度を判定するのに用いられる。判定された方位及び速度は、ブロック２０１０において複数の粒子の各々へ適用される。各々の特定の粒子に関連する尤度値は次いで、判定された方位及び速度を適用した結果として軌道を逸れて移動した粒子が除去されたか否かに基づいて、ブロック２０１２において調節される。次いで、ブロック２０１４において、一つ以上の粒子が、それらの関連する尤度値が閾値よりも低下するならば、除去される。
【００９８】
ブロック２０１４において、粒子が除去された後、複数の粒子のうちの一つより多くの粒子が残っているならば、処理はブロック２００６へ戻り、ここでは新たな加速度計データが受信される。この場合も、このデータは、ブロック２００８において運動の新たな方位及び速度を判定するのに用いられる。この運動の新たな方向及び速度のこの新しい方向は、ブロック２０１０において残りの複数の粒子の各々に適用される。各粒子に関連する尤度値は、ブロック１２１２において、粒子が軌道を逸れて移動するか否かに基づいて調節される。この場合も、閾値を下回る閾値に関連した粒子は、ブロック２０１４において除去される。
【００９９】
ブロック２０１６に戻ると、軌道を逸れて移動した粒子を除去した後、複数の粒子のうちの一つの粒子だけが残るならば、この残りの粒子はブロック２０１６においてクライアント・デバイスの実際の位置を判定するのに用いられる。
例えば、残りの粒子によって表される可能性がある位置は、クライアント・デバイスの実際の位置であると判定し得る。上述のように、上述の操作は、上述した正確な順序で実行される必要はなく、むしろ、様々なステップは、異なる順序で、又は、同時に取り扱い得る。ステップは、特に明記しない限り省略されることもある。
【０１００】
他の例においては、上述したように、一旦軌道例の残りの粒子の全てが互いの閾値半径の範囲内にあるならば、残りの粒子の平均位置を判定し得る。残りの粒子の平均位置に最も近い位置を表している粒子は、クライアント・デバイスの位置として特定し得る。
【０１０１】
壁地図に関する上述の代替例と同様に、或る閾値よりも下にある尤度値と関連した粒子を除去するよりはむしろ、粒子の数は同一のままに留まり得る。粒子は、移動しているクライアント・デバイスが検出されるたびに、尤度値を調節することによって報酬を受けるかペナルティを課され得る。例えば、粒子が軌道を逸れて移動しなければ、粒子は軌道を逸れて移動したときよりもより高い報酬（又は低いペナルティ）を受け得る。この場合も、様々な評価システムが同様な結果に影響を及ぼすために使用し得ることが理解されよう。例えば、同様なシステムも、粒子が軌道を逸れて移動して粒子値が増大するところで使用し得る。
【０１０２】
時々、粒子は置換により再サンプリングし得る。例えば、新たなステップがなられるか、或いは、期間が経過するたびに、粒子は再分布し得る。粒子の再サンプリングされたセットは、粒子の第１のセットと関連した値に基づいて選択される。この場合も、より高い尤度値を有する粒子は、より低い尤度値を有する粒子よりもよりしばしば選択され得る。
【０１０３】
再サンプリングの間に選択された各々の粒子について、新たな粒子は、位置（及び、適用できるならば方位）の僅かな調節で発生し得る。例えば、図１４を参照すると、位置B６における粒子は、再サンプリングの間に選択し得る。
位置Ｂ６において粒子から生成される子粒子は、軌道Ａ３−Ｂ３，Ｂ３−Ｃ３，Ａ２−Ｂ３，Ｂ３−Ｃ４，Ａ４−Ｂ３，又はＣ２−Ｂ３に沿った位置を表し得る。この場合も、新たな粒子は、僅かな方位変化に関係している場合もある。
【０１０４】
粒子のこの次世代は、方位デバイスにより検出される運動に基づいて調節される尤度値と更に関係している場合がある。或る期間又は或る数のステップの後、粒子は再サンプリングされて、粒子の新世代は上述のように生成し得る。
【０１０５】
一旦全ての粒子（所定の世代における）が互いから或る小さな、経験的に派生した距離の範囲内にあるならば、クライアント・デバイスの実際の位置を判定し得る。例えば、後続の再サンプリング、及び粒子の各々に関連した位置に対する調整の後、結局、全ての粒子は、互いの或る小半径の範囲内、例えば数メートル以下になることがある。図１８を参照すると、全ての粒子は、クラスタ１８７０内に位置する。このように、全ての粒子は、２メートル半径の範囲内に位置する。この場合も、３個のみが実線の円で示されるが、この特定の例では、３個の粒子が４５個の粒子に関連した領域を表すことが理解されるであろう。次いで、閾値範囲内の中の粒子の平均位置を判定し得る。上述の例のように、この平均位置に最も近い粒子は、クライアント・デバイスの現在の位置を表している粒子として選択し得る。
【０１０６】
再び図１８の単純な例を用いると、位置Ｃ９，Ｄ９，及びＥ９を表す３個の粒子が示されている（この例では、３個の粒子が全ての粒子の位置を表すと仮定する）。これらの粒子は、２メートルの閾値半径１８８０の範囲内にある。
粒子の平均位置は、閾値半径１８８０の中心にある（この場合も、これは３個の粒子が線に沿って均一に分布しているからである）。位置Ｄ９を表す粒子は、クライアント・デバイスがこの点に最も近くに位置するものとして、クライアント・デバイスの現在の位置を表すものとして選択され得る。クライアント・デバイスの実際の位置として特定されたこの選択された粒子は、方位デバイスの現在の方位を特定するのにも使用し得る。
【０１０７】
図２２Ａ及び図２２Ｂの代表的なフロー図２２００は、上述の方法の態様を描く。例えば、ブロック２２０２において、屋内位置の地図は複数の制約を含む。上述のように、制約は壁又は軌道を含み得る。ブロック２２０４において、地図には複数の粒子が存在している。各々の粒子は、地図に関してクライアント・デバイスの可能性がある位置を表す。或る例では、粒子はクライアント・デバイスの可能性がある方位も表し得る。各々の粒子は、クライアント・デバイスが代表的な位置にどれくらい存在しそうかを示す尤度値にも関係している。
【０１０８】
データは、ブロック２２０６においてジャイロスコープ（又は他の方位デバイス）から受信される。データは、ブロック２２０８において運動の方向と（方位）及び運動の速度を判定するのに用いられる。判定された方向及び速度は、ブロック２２１０において複数の粒子の各々に適用される。各々の特定の粒子に関連する尤度値は、次いで、ブロック２２１２において、特定の粒子が地図の制約に反するか否か、例えば壁に接触若しくは壁を通じて移動するか、又は軌道を逸れて移動するかに基づいて調節される。或る例においては、尤度値は、粒子の方位が判定された方位と一致しているか否かに基づいて調節され得る。この場合も、上述したように、他の信号も尤度値を調節するために使用し得る。
【０１０９】
ブロック２２１４において、再サンプリングする時間であるか否かが判定される。例えば、サーバー又はクライアント・デバイスは、ステップがなされたか否か、或いは、或る期間が経過したか否かを判定し得る。そうでなければ、方法はブロック２２０６に戻り、更なるデータが方位デバイス等から受信される。再サンプリングする時間であるならば、方法は図２２Ｂのブロック２２１６において続き、ここでは粒子の第１のセットの複数の粒子が、関連する尤度値に基づいて選択される。次いで、粒子の次のセットが、ブロック２２１８において、選択された粒子の代表的位置（及び或る例においては方位）を或る最小値によって調節することにより生成される。
【０１１０】
ブロック２２２０において、粒子の次のセットの全ての粒子が互いからの或る閾値距離又は閾値半径の範囲内にあるか否かが判定される。そうでないならば、方法は再び図２２Ａのブロック２２０６に戻り、更なるデータが方位デバイス等から受信される。次のセットの全ての粒子が閾値半径の範囲内にあるならば、粒子の次のセットの粒子の平均代表的位置はブロック２２２２において判定される。次いで、平均代表的位置に最も近い位置を表している粒子は、ブロック２２２４において選択される。次いで、選択された粒子の代表的位置は、ブロック２２２６において、クライアント・デバイスの実際の位置（及び或る例においては方位）として特定される。
【０１１１】
上述した特徴のこれらの及び他の変形例並びに組み合わせは、特許請求の範囲に規定された要旨から逸脱しない範囲で利用することができ、実施形態の上状の説明は、特許請求の範囲による要旨の限定のためではなく、例示の目的として解釈すべきである。本明細書に開示された例の条件（及び「例えば」、「含む」等で表現された条件）は、請求された主題の特定の例に対する限定として解釈すべきではなく、むしろ、例は多くの可能な実施形態の一つのみを例示することを意図している。更に、異なる図面中の同一の参照番号は、同一又は類似の要素を特定し得る。
産業の適用可能性
【０１１２】
本開示事項は、例えば、ＧＰＳ又は他の局地化信号は利用できない場所で、クライアント・デバイスの屋内位置を判定するのに用いることができる。
【図１】
0005622968.tif 000002
【図２】
0005622968.tif 000003
【図３】
0005622968.tif 000004
【図４】
0005622968.tif 000005
【図５】
0005622968.tif 000006
【図６】
0005622968.tif 000007
【図７】
0005622968.tif 000008
【図８】
0005622968.tif 000009
【図９】
0005622968.tif 000010
【図１０】
0005622968.tif 000011
【図１１】
0005622968.tif 000012
【図１２】
0005622968.tif 000013
【図１３】
0005622968.tif 000014
【図１４】
0005622968.tif 000015
【図１５】
0005622968.tif 000016
【図１６】
0005622968.tif 000017
【図１７】
0005622968.tif 000018
【図１８】
0005622968.tif 000019
【図１９】
0005622968.tif 000020
【図２０】
0005622968.tif 000021
【図２１】
0005622968.tif 000022
【図２２Ａ】
0005622968.tif 000023
【図２２Ｂ】
0005622968.tif 000024