(57)【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングプラットフォームを用いて、
屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定することと、
前記モバイルデバイスのユーザインターフェースから受信された少なくとも１つの入力に少なくとも部分的に基づいて中間地点の１つまたは複数のロケーションのうちの少なくとも１つを取得することと、前記１つまたは複数の中間地点の前記ロケーションが、前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて定義され、前記１つまたは複数の中間地点はさらに、前記モバイルデバイスのユーザが従う予定ルートのルーティング方向に少なくとも部分的に基づいて判断され、前記中間地点は、前記屋内環境内の１つまたは複数の物体の配置に関して定義され、
前記推定された軌道のドリフトを補正するために、前記１つまたは複数の中間地点の前記１つまたは複数のロケーションに少なくとも部分的に基づいて前記推定された軌道に作用することと
を備え、
前記推定された軌道に前記作用することが、
少なくとも部分的に、コスト関数に少なくとも部分的に基づく個別回転割当てアルゴリズムを使用して、前記推定された軌道のドリフトを補正すること
をさらに備え、前記個別回転割当てアルゴリズムは、前記中間地点を、前記１つまたは複数のセンサー測定値から取得されたオドメトリ情報中の検出されたステッピングアクションに割り当てる、方法。
【請求項２】
前記軌道を前記推定することは、
前記モバイルデバイスにおける少なくとも１つの加速度計から取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、動きモードに関連する少なくとも１つのアクションの発生を検出することと、
前記少なくとも１つのアクションの前記発生に少なくとも部分的に基づいて、ある時間期間中に前記モバイルデバイスが移動した距離、または前記時間期間中の前記モバイルデバイスの速度のうちの少なくとも１つを推定することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記動きモードが二足歩行移動モードを備え、前記少なくとも１つのアクションが少なくとも１つのステッピングアクションを備え、
前記少なくとも１つのステッピングアクションの、推定ストライド長、または推定ストライド頻度のうちの少なくとも１つに少なくとも部分的に基づいて、移動した前記距離、または前記速度のうちの少なくとも１つを推定すること
をさらに備える、請求項２に記載の方法。
【請求項４】
移動した前記距離、または前記速度のうちの少なくとも１つを推定することが、
ステップカウントを積算すること
をさらに備える、請求項３に記載の方法。
【請求項５】
前記軌道を前記推定することは、
前記モバイルデバイスにおけるジャイロスコープ、または前記モバイルデバイスにおける磁力計のうちの少なくとも１つから取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、前記モバイルデバイスの配向の変化が発生したのか発生しなかったのかを判断することと、
前記配向の前記変化が発生したのか発生しなかったのかの前記判断に少なくとも部分的に基づいて前記モバイルデバイスの現在のヘッディングを推定することと
をさらに備える、請求項１に記載の方法。
【請求項６】
前記モバイルデバイスの前記現在のヘッディングを前記推定することが、
少なくとも１つの前に推定されたヘッディングに少なくとも部分的に基づいて前記モバイルデバイスの前記現在のヘッディングを推定すること
をさらに備える、請求項５に記載の方法。
【請求項７】
前記推定された軌道に前記作用することが、
少なくとも部分的に、粒子フィルタを使用して、前記推定された軌道のドリフトを補正すること
をさらに備え、
前記粒子フィルタは、前記電子マップ上の前記モバイルデバイスの推定位置、前記モバイルデバイスの推定ヘッディング、ある時間期間中に前記モバイルデバイスが移動した推定距離、または前記時間期間中の前記モバイルデバイスの推定速度のうちの少なくとも１つに少なくとも部分的に基づいて、粒子状態を維持し、
前記推定ヘッディングは、回転量に比例するようにモデル化されたヘッディングエラーに関連付けられる、請求項１に記載の方法。
【請求項８】
前記粒子フィルタが、前記推定された軌道からしきい値超だけそれる伝搬粒子を除去することに少なくとも部分的に基づいて粒子状態を維持する、および／または、
前記粒子フィルタが、前記モバイルデバイスにおいて取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて粒子を伝搬する、請求項７に記載の方法。
【請求項９】
前記コスト関数は、ある時間期間中の前記推定された軌道と比較される前記モバイルデバイスの配向の差に対応するコスト、または前記時間期間中に前記モバイルデバイスが移動した推定された距離に対する前記推定された軌道上の連続する中間地点間の距離に対応するコストのうちの少なくとも１つを考慮に入れる、請求項１に記載の方法。
【請求項１０】
前記コスト関数が、マッチングコストを最小限に抑えるための動的関数を使用して計算される、請求項９に記載の方法。
【請求項１１】
前記少なくとも１つのコンピューティングプラットフォームが前記モバイルデバイス中に設けられ、
前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記推定された軌道と前記電子マップとに少なくとも部分的に基づいて前記モバイルデバイスのロケーションを推定すること
をさらに備え、
前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記モバイルデバイスの少なくとも１つのユーザ出力デバイスを介して前記モバイルデバイスの前記推定されたロケーションの提示を開始すること
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記推定することが、前記屋内環境の前記電子マップに少なくとも部分的に基づいて、前記屋内環境における複数の潜在的な軌道から前記軌道を推定することを備える、請求項１に記載の方法。
【請求項１３】
前記推定することが、信号ベース測位情報を使用せずに前記モバイルデバイスの前記軌道を推定することを備える、請求項１に記載の方法。
【請求項１４】
屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定するための手段と、
前記モバイルデバイスのユーザインターフェースから受信された少なくとも１つの入力に少なくとも部分的に基づいて中間地点の１つまたは複数のロケーションのうちの少なくとも１つを取得するための手段と、前記１つまたは複数の中間地点の前記ロケーションが、前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて定義され、前記１つまたは複数の中間地点はさらに、前記モバイルデバイスのユーザが従う予定ルートのルーティング方向に少なくとも部分的に基づいて判断され、前記中間地点は、前記屋内環境内の１つまたは複数の物体の配置に関して定義され、
前記推定された軌道のドリフトを補正するために、前記１つまたは複数の中間地点の前記１つまたは複数のロケーションに少なくとも部分的に基づいて前記推定された軌道に作用するための手段と
を備え、
前記推定された軌道に作用するための前記手段が、
少なくとも部分的に、コスト関数に少なくとも部分的に基づく個別回転割当てアルゴリズムを使用して、前記推定された軌道のドリフトを補正するための手段
をさらに備え、前記個別回転割当てアルゴリズムは、前記中間地点を、前記１つまたは複数のセンサー測定値から取得されたオドメトリ情報中の検出されたステッピングアクションに割り当てる、装置。
【請求項１５】
請求項１乃至１３のいずれかの方法ステップを実行するようにコンピューティングプラットフォーム中の１つまたは複数の処理ユニットによって実行可能なコンピュータ実装可能命令を記憶した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
これは、その全体が参照により本明細書に組み込まれる、２０１２年１０月２２日に出願された、「MAP-ASSISTED SENSOR-BASED POSITIONING OF MOBILE DEVICES」の米国非仮特許出願第１３／６５７，４２８号に対する優先権を主張するＰＣＴ出願である。
【技術分野】
【０００２】
[0001]本明細書で開示する主題は、電子デバイスに関し、より詳細には、１つまたは複数のモバイルデバイスのマップ支援センサーベース測位（map-assisted sensor-based positioning）を行うかまたはさもなければサポートするために１つまたは複数のコンピューティングプラットフォームにおいて使用する方法、装置および製造品に関する。
【背景技術】
【０００３】
[0002]モバイルフォン、ノートブック、コンピュータなどのモバイルデバイスは一般に、たとえば、信号ベース測位システムおよび／または対応する信号のほんの数例を挙げると、衛星測位システム（たとえば、ＧＰＳなど）、アドバンストフォワードリンクトライラテレーション（ＡＦＬＴ：advanced forward-link trilateration）など、いくつかの技術のいずれか１つを使用して高度の精度でロケーションおよび／または位置を推定する能力を有する。高精度ロケーション情報を使用して、モバイルデバイスのアプリケーションは、たとえば、ほんの２、３の例を挙げると、車両／歩行者ナビゲーション、ロケーションベース探索など、多くの異なるサービスをユーザに与え得る。ここで、（たとえば、ＧＰＳおよび／または他の信号ベース測位システムから取得された）高精度信号ベースロケーション情報は、グローバル座標系（たとえば、緯度および経度または地球中心ｘｙｚ座標）に従って処理され得る。グローバル座標系を基準とする（referenced）信号ベースロケーション情報のそのような使用は、いくつかのサービス（たとえば、屋外車両ナビゲーション）を提供するのに有用であり得るが、グローバル座標系を基準とするそのような信号ベースロケーション情報は、屋内歩行者ナビゲーションなど、他のタイプのサービスでは実際的でないことがある。
【０００４】
[0003]オフィスビル、ショッピングモール、空港、スタジアムなど、いくつかの屋内環境では、いくつかの例示的な信号ベース測位技法は、たとえば、モバイルデバイスによって受信され、測位目的のために使用され得るワイヤレス信号を送信する、ワイヤレスネットワークアクセスポイント、セルラーネットワーク基地局、特殊目的ビーコン送信機など、様々な地上ベースワイヤレス信号送信デバイスを利用し得る。たとえば、モバイルデバイスが、送信機から信号ベース測位信号を受信し、それに基づいて送信機と受信機との間の擬似距離（a pseudorange）を判断し得る。したがって、たとえば、測位は、トライラテレーション（trilateration）および／または他の知られている信号ベース測位技法に基づいて行われ得る。しかしながら、すべての屋内環境が信号ベース測位システムによって適切にサポートされ得るとは限らない。その上、いくつかの事例では、モバイルデバイスが信号ベース測位技法を使用するのを回避することが有益であり得る。
【発明の概要】
【０００５】
[0004]屋内環境内でモバイルデバイスの軌道（trajectory）を推定するために実装され得る様々な方法、装置および／または製造品が提供される。
【０００６】
[0005]たとえば、いくつかの態様によれば、少なくとも１つのコンピューティングプラットフォームを用いて、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道を推定することと、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用することとを備える、方法が実装され得る。
【０００７】
[0006]いくつかのさらなる態様によれば、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道を推定するための手段と、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用するための手段とを備える、装置が提供され得る。
【０００８】
[0007]さらに他の態様によれば、メモリと、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道を推定することと、メモリを介してアクセス可能な屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用することとを行うための１つまたは複数の処理ユニットとを備える、コンピューティングプラットフォームが提供され得る。
【０００９】
[0008]また別の態様によれば、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道を推定することと、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用することと、を行うようにコンピューティングプラットフォーム中の１つまたは複数の処理ユニットによって実行可能なコンピュータ実装可能命令を記憶した非一時的コンピュータ可読媒体。
【００１０】
[0009]以下の図を参照しながら非限定的で非網羅的な態様について説明し、別段に規定されていない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。
【図面の簡単な説明】
【００１１】
【図１】[0010]例示的な実装形態による、それのうちの１つまたは複数がモバイルデバイスのマップ支援センサーベース測位をサポートし得る、コンピューティングデバイスとモバイルデバイスとを含む例示的な環境を示す概略ブロック図。
【図２】[0011]例示的な実装形態による、モバイルデバイスのマップ支援センサーベース測位をサポートするためのコンピューティングデバイス中の例示的なコンピューティングプラットフォームのいくつかの特徴を示す概略ブロック図。
【図３】[0012]例示的な実装形態による、モバイルデバイスのマップ支援センサーベース測位をサポートするためのモバイルデバイス中の例示的なコンピューティングプラットフォームのいくつかの特徴を示す概略ブロック図。
【図４】[0013]例示的な実装形態による、モバイルデバイスのマップ支援センサーベース測位をサポートするプロセスのいくつかの態様を示すプロセスフロー。
【図５】[0014]例示的な実装形態による、歩行またはランニングしながらモバイルデバイスを携帯している人の慣性センサー測定値に関連する、あるステップ検出データを示すグラフ。
【図６】[0015]例示的な実装形態による、歩行またはランニングしながらモバイルデバイスを携帯している人の慣性センサー測定値に関連する、あるステップ頻度データを示すグラフ。
【図７】[0016]例示的な実装形態による、屋内環境をナビゲートしながらモバイルデバイスを携帯している人の慣性センサー測定値および／または環境センサー測定値に関連する、ある角度軌道データを示すグラフ。
【図８】[0017]例示的な実装形態による、オドメトリ（odometry）情報に少なくとも部分的に基づいて調整された図７の角度軌道データに基づく、調整された軌道データを示すグラフ。
【図９】[0018]別の例示的な実装形態による、屋内環境をナビゲートしながらモバイルデバイスを携帯している人の慣性センサー測定値および／または環境センサー測定値に関連する、ある角度軌道データを示すグラフ。
【図１０】[0019]例示的な実装形態による、オドメトリ情報に少なくとも部分的に基づいて調整された図９の角度軌道データに基づく、調整された軌道データを示すグラフ。
【図１１】[0020]例示的な実装形態による、屋内環境の電子マップにおいて識別されたいくつかの物体の視覚表現と、初期軌道データに基づく初期ルート、および電子マップにおいて識別された物体のうちの１つまたは複数に少なくとも部分的に基づいて調整された初期軌道データに基づくさらに調整されたルートを示すオーバーレイとを示す図。
【図１２】[0021]例示的な実装形態による、中間地点（waypoint）のシーケンスを通って進む（lead through）、変化する軌道を有するルートの視覚表現を示す図。
【図１３】[0022]例示的な実装形態による、図１２の場合のルートに従って人が取るステップの視覚表現を示す図。
【図１４】[0023]例示的な実装形態による、センサー測定値から取得された配向（orientation）データと、動的関数によって割り当てられた適合（fitted）回転（turn）モデリング情報とを示すグラフおよび拡大図。
【図１５】[0024]いくつかの例示的な実装形態による、いくつかの追加の例示的な屋内環境と、いくつかの初期ルートおよび対応する調整されたルートを示すオーバーレイとを示す図。
【図１６】いくつかの例示的な実装形態による、いくつかの追加の例示的な屋内環境と、いくつかの初期ルートおよび対応する調整されたルートを示すオーバーレイとを示す図。
【発明を実施するための形態】
【００１２】
[0025]本明細書の例によって示されるように、１つまたは複数のモバイルデバイスのマップ支援センサーベース測位を行うかまたはさもなければサポートするために１つまたは複数のコンピューティングプラットフォームにおいて使用する様々な方法、装置および製造品が実装され得る。
【００１３】
[0026]いくつかの態様によれば、マップ支援センサーベース測位のための本明細書で提供する技法は、いくつかの信号ベース測位技法が何らかの理由でサポートされ得ないおよび／または不利であり得る（may be adverse）環境内で特に利益があり得る。たとえば、いくつかの屋内環境では、ＳＰＳ信号に依拠する信号ベース測位技法が、追加の信号減衰（signal attenuation）などによりうまく機能しないことがある。さらに、いくつかの屋内環境は、いくつかの信号ベース測位技法において通常ならば（otherwise）有用であり得るアクセスポイントおよび／または他のワイヤレス送信機がないことがある。さらに、いくつかの事例では、モバイルデバイスが、そのような信号ベース測位技法によって使用され得るワイヤレス信号を含めてワイヤレス信号を送信および／または受信するのを回避することが望ましいことがある。たとえば、モバイルデバイスは、通信インターフェースまたはそれの一部分が何回動作させられるかを低減することによって、電力消費量を低減し得る。別の例では、いくつかの環境では、モバイルデバイスが、たとえば、他の電子デバイスに干渉することを回避するために、および／または他の理由で、それの通信インターフェースの全部または一部をアクティブにしないことが有益であり得る。いくつかの状況では、たとえば、所与の環境のグランドトゥルース（a ground truth）などに対応する情報が取得される（たとえば、新しくなる、更新されるなど）および／または適用される（たとえば、使用される、テストされる、検証されるなど）ことがあるなど、ワイヤレスシグナリングを使用しない処理のいくつかの他の利益が達成され得る。したがって、そのような新しいおよび／または改良された情報は、環境またはそれの一部分内のいくつかの特徴をマッピングするかまたはさもなければ識別するために使用される様々な他のプロセスに有益であり得る。したがって、そのような新しいおよび／または改良された情報は、たとえば、後処理（post-processing）および／またはポスト測位（post-positioning）の使用のために提供される１つまたは複数のシステムまたは機能において適用され得る。
【００１４】
[0027]したがって、時々、モバイルデバイスは、いくつかの通信インターフェースほど多くの電力を消費しないおよび／または他のデバイスに干渉しないことがある１つまたは複数のオンボードセンサー、たとえば、慣性センサー、環境センサーなど、またはそれらの何らかの組合せからセンサー測定値を取得することが有益であり得る。いくつかの事例では、センサー測定値は、特定の環境内のモバイルデバイスの軌道および／または位置を推定するために使用され得る。たとえば、１つまたは複数の慣性センサー（たとえば、１つまたは複数の加速度計、ジャイロスコープなど）および／または１つまたは複数の環境センサー（たとえば磁力計または同様の他のデバイス、たとえば気圧計）からのセンサー測定値は、特定の環境内でナビゲートしながらモバイルデバイスのユーザによって動き回されるときにモバイルデバイスが受けるいくつかの移動に対応し得る。たとえば、１つまたは複数の加速度計は、モバイルデバイスのユーザが歩行またはランニングしながらステップを取っているときにモバイルデバイスが受ける力に基づいてセンサー測定値を生成し得る。たとえば、１つまたは複数の加速度計は、モバイルデバイスのユーザが加速、減速、回転などするときにモバイルデバイスが受ける力に基づいてセンサー測定値を生成し得る。たとえば、ジャイロスコープは、モバイルデバイスのユーザが特定の環境内の様々な物体の間をナビゲートするとき、モバイルデバイスの配向の変化に対応するセンサー測定値を生成し得る。たとえば、磁力計は、動き回っている、たとえば、歩行しながら回転していたり、起立しながら旋回していたり（pivoting）などするユーザによって生じるいくつかの方向変化に対応するセンサー測定値を生成し得る。たとえば、いくつかの事例では、気圧計は、動き回っている、たとえば、階段を上っていたり、エレベータまたはエスカレータに乗っていたりなどするユーザによって生じる高度のいくつかの変化に対応するセンサー測定値を生成し得る。
【００１５】
[0028]１つまたは複数のセンサーを備えることに加えて、モバイルデバイスは、環境内で動き回る人の能力に何らかの影響を及ぼす環境内のいくつかの物体を示し得る１つまたは複数の電子マップの全部または一部でさらにプロビジョニングされ得る（may be further provisioned）。例として、（たとえば、１つまたは複数の自然および／または人工構造物の全部または一部を備える）屋内環境用の電子マップは、その屋内環境に関係する様々な物体を識別し得る。たとえば、建築物用の電子マップは、壁および／または他の同様の物理的特徴によって分離された、建築物内の様々な領域を識別し得る。したがって、建築物用の例示的な電子マップは、様々な部屋、廊下、入口、出口、階段、エレベータ、窓などを有する間取り図を識別するコンピュータ支援設計（ＣＡＤ）図面などを備え得る。いくつかの事例では、例示的な電子マップは、たとえば、デスク、キュービクル（cubicles）、ディスプレイケース、アプライアンス（appliances）など、いくつかの物体をさらに示し得る。さらに他の事例では、例示的な電子マップに関連付けられた１つまたは複数のデータファイルが、屋内構造内をナビゲートしているユーザに有用であり得る追加の情報を備え得る。たとえば、屋内構造内の特定の領域に関連付けられ得るいくつかのサービス、または場合によっては人またはエンティティを示す、ロケーションベースサービス情報および／または何らかの形態のメタデータが与えられ得る。当業者は、上記で説明したもの以外の物体が電子マップ中で識別され得ることを諒解されよう。さらに、当業者は、電子マップがモバイルデバイス以外のデバイスまたはロケーションにおいて、たとえばサーバまたはワークステーションにおいてプロビジョニングされ得ること、および電子マップが屋内エリア以外のエリアを記述し得ることを諒解されよう。たとえば、電子マップは、都市または公園内の屋外スタジアムまたは経路（pathways）を記述し得る。したがって、以下の実施形態では屋内環境および／またはマップに関して説明することがあるが、いくつかの実施形態は、他の環境内でまたは他の電子マップとともに使用され得る。
【００１６】
[0029]いくつかの実装形態では、ユーザおよび／または何らかの他のエンティティが、電子マップまたはそれに関連付けられた何らかのデータファイルの一部分にアノテーションを付ける（annotate）かまたはさもなければ強調する（enhance）ことに関係し得るおよび／またはさもなければそのために使用され得る追加の情報を与えることが可能であり得る。たとえば、いくつかの実装形態では、ユーザが屋内環境内で全体的にまたは部分的に従い得る１つまたは複数の予定ルートに関連付けられ得る、１つまたは複数の開始および／または終了ロケーション、および／または中間地点を、ユーザまたは何らかの他のエンティティが定義することを可能にする、１つまたは複数のアプリケーションが提供され得る。たとえば、表示マップレンダリング内の情報の表示に関するおよび／または電子マップに関連する（たとえば、１つまたは複数のボタンおよびノブ、キーパッド、タッチスクリーン、マイクロフォン、カメラなどを介した）ユーザ入力を受け付けるためのアプリケーションが提供され得る。したがって、たとえば、ユーザは、人々または注目するポイント、あるいは場合によっては間取り図の全部または一部分の視覚表現などのリストを提示され得、所望の開始ポイントおよび／または終了ポイントおよび／または１つまたは複数の中間地点などをプログラムするように何らかの方法で応答し得る。いくつかの例示的な実装形態では、モバイルデバイスは、（たとえば、オンボードおよび／または外部サービスアプリケーションなどから）特定の目的地へのルーティング方向を取得し得る。モバイルデバイスのユーザがそのようなルーティング方向に従うと仮定すると、１つまたは複数の中間地点は、そのようなルーティング方向に少なくとも部分的に基づいて判断され得る。
【００１７】
[0030]電子マップおよび／または他の同様の情報および／またはコンピュータ実装可能命令を表す１つまたは複数のデータファイルは、たとえば、（たとえば、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクを介して）１つまたは複数の他のコンピューティングデバイスから取得され、および／または様々な形態の非一時的コンピュータ可読媒体（たとえば、光ディスク、磁気ディスク、電子メモリデバイス、機械可読オブジェクトなど）から取得され得る。
【００１８】
[0031]いくつかの例示的な実装形態によれば、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道を推定することと、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用することとを行うための、１つまたは複数のコンピューティングプラットフォームが、たとえば、コンピューティングデバイスおよび／またはモバイルデバイス内に設けられ得る。
【００１９】
[0032]例示的な実装形態では、コンピューティングプラットフォームが、モバイルデバイスにおける少なくとも１つの加速度計から取得された１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、動きモードに関連する少なくとも１つのアクションの発生を検出することによって、モバイルデバイスの軌道を推定し得る。例として、例示的な動きモードは、歩行中またはランニング中の人によって携帯されたモバイルデバイスが受け得る二足歩行移動など、１つまたは複数の形態の二足歩行移動に関係し得る。別の例では、特定の動きモードは、エレベータまたはエスカレータに乗っている人および／または何らかの方法で進ませられている（being propelled）人によって携帯されている間にモバイルデバイスが受け得る移動に関係し得る。
【００２０】
[0033]少なくとも１つのそのような検出されたアクションの発生に少なくとも部分的に基づいて、コンピューティングプラットフォームは、ある時間期間中にモバイルデバイスが移動した距離、その時間期間中のモバイルデバイスの速度、および／または他の同様の動き関連情報を推定し得る。例として、動きモードが何らかの形態の二足歩行移動モードを備えると仮定すると、検出されたアクションは、１つまたは複数のステッピングアクション（stepping actions）を含み得る。したがって、コンピューティングプラットフォームは、たとえば、推定ストライド長、推定ストライド頻度（estimated stride frequency）など、または１つまたは複数の検出されたステッピングアクションに関連するそれらの何らかの組合せに少なくとも部分的に基づいて、移動した距離および／または速度を推定し得る。いくつかの例示的な実装形態では、コンピューティングプラットフォームは、ステップカウントを積算することと角速度を積算することとによって、移動した距離および／または速度を推定し得る。
【００２１】
[0034]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、モバイルデバイスにおけるジャイロスコープおよび／または磁力計から取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて、モバイルデバイスの配向の変化が発生したのか発生しなかったのかを判断することに少なくとも部分的によって、モバイルデバイスの軌道を推定し得る。ここで、たとえば、コンピューティングプラットフォームは、変化が発生したのか発生しなかったのかの判断に少なくとも部分的に基づいて、モバイルデバイスの現在のヘッディング（current heading）を推定し得る。たとえば、コンピューティングプラットフォームは、少なくとも１つの前に推定されたヘッディングに少なくとも部分的に基づいて現在のヘッディングを推定し得る。
【００２２】
[0035]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、電子マップにおいて識別された屋内環境内の１つまたは複数の物体の配置に関して定義され得る１つまたは複数の中間地点の１つまたは複数のロケーションを使用することに少なくとも部分的によって推定された軌道に作用し得る。いくつかの事例では、コンピューティングプラットフォームは、たとえば、モバイルデバイスのユーザインターフェースから受信された少なくとも１つの入力に少なくとも部分的に基づいて中間地点のロケーションのうちの少なくとも１つを取得し得る。いくつかの事例では、コンピューティングプラットフォームは、たとえば、電子マップに少なくとも部分的に基づいて１つまたは複数の中間地点のロケーションのうちの１つまたは複数を判断し得る。
【００２３】
[0036]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、推定された軌道において生じ、場合によっては時間とともにアグリゲートされ得るドリフト（drift）を補正することに少なくとも部分的によって、推定された軌道に作用し得る。たとえば、いくつかの実装形態では、軌道を推定し、ドリフトなどのいくつかのエラーを訂正するために、粒子フィルタ（particle filter）などが実装され得る。いくつかの事例では、粒子フィルタは、たとえば、電子マップおよび／またはその中で識別された何らかの物体に対するモバイルデバイスの推定位置、モバイルデバイスの推定ヘッディング、ある時間期間中にモバイルデバイスが移動した推定距離、ある時点におけるまたはある時間期間中のモバイルデバイスの推定速度など、あるいはそれらの何らかの組合せに少なくとも部分的に基づいて、粒子状態を維持し得る。
【００２４】
[0037]いくつかの事例では、推定ヘッディングは、推定回転特性（estimated turn characteristic）に少なくとも部分的に基づくヘッディングエラーを考慮に入れ、および／またはさもなければそれに関連付けられ得る。いくつかの事例では、粒子フィルタは、モバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて１つまたは複数の粒子を伝搬し得る。いくつかの事例では、粒子フィルタは、推定された軌道および／または他のラインからしきい値測定値超だけ（by more than a threshold measurement）それる（stray）伝搬粒子（propagated particles）を除去することに少なくとも部分的に基づいて粒子状態を維持し得る。
【００２５】
[0038]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、コスト関数などに少なくとも部分的に基づき得る個別回転割当て（discrete turn assignment）を使用して、推定された軌道のドリフトを補正することに少なくとも部分的によって、推定された軌道に作用し得る。たとえば、コスト関数は、何らかの時間期間中のモバイルデバイスの配向の差またはそれの欠如のコスト、何らかの時間期間中にモバイルデバイスが移動した推定距離に対して連続する中間地点間の距離（a distance between consecutive waypoints）をマッチングするコスト（マッチングコスト）など、あるいはそれらの何らかの組合せを考慮に入れ得る。いくつかの事例では、コスト関数は、たとえば、少なくとも部分的に、マッチングコストを最小限に抑えるための動的関数を使用して計算され得る。
【００２６】
[0039]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、推定された軌道と電子マップとの少なくとも一部分に少なくとも部分的に基づいてモバイルデバイスのロケーションを推定し得る。いくつかの例示的な実装形態では、コンピューティングプラットフォームは、たとえば、モバイルデバイス、および／または場合によっては何らかの他のコンピューティングデバイスの少なくとも１つのユーザ出力デバイスを介して、推定ロケーション、推定軌道、推定到着時間、推定速度など、またはそれらの何らかの組合せの提示を開始し得る。
【００２７】
[0040]いくつかの例示的な実装形態では、推定された軌道は、複数の潜在的な経路（potential paths）および／または制約に基づき得る。いくつかの実施形態では、たとえば、電子マップは、（たとえば、コスト関数などを介して）可能性が最も高い経路を判断するように探索され得る。したがって、いくつかの事例では、モバイルデバイスのロケーションは、測位のためのワイヤレス信号を使用せずに取得され得る。たとえば、本明細書の実施形態は、モバイルデバイスの概略位置をアプリオリに知ることもしくは概略位置を最初に判断すること（もしくは、たとえば近くの特徴（nearby features）に基づいて、潜在的な位置間の曖昧さを除去すること（disambiguating between potential positions））、および／または特定の経路に従わなければならないことに限定されない。そうではなく、実施形態は、たとえば電子マップ（もしくはそれの制約）およびモバイルデバイスの１つまたは複数のセンサーに基づいて、電子マップに対応する環境内の可能性があるルートまたは経路を判断するために、たとえばそのような情報が利用可能でないかあるいはこの情報を判断または収集しないことが有益である他の状況において使用され得る。したがって、モバイルデバイスのルートまたは位置は、いくつかの実施形態では、環境内のモバイルデバイスの概略位置またはルートが未知であるときでも推論され得る。
【００２８】
[0041]次に図１に注目すると、図１は、例示的な実装形態による、それのうちの１つまたは複数がモバイルデバイス１０４のマップ支援センサーベース測位をサポートし得る、コンピューティングデバイス１０２とモバイルデバイス１０４とを含む例示的な環境１００を示す概略ブロック図である。
【００２９】
[0042]図示のように、コンピューティングデバイス１０２は、屋内環境１４０内のモバイルデバイス１０４に関してマップ支援センサーベース測位を行うための装置１１２を備える。装置１１２は、たとえば１つまたは複数のネットワーク１２０を介して、直接および／または間接的に１つまたは複数の他のリソース（デバイス）１３０と通信し得る１つまたは複数のコンピューティングプラットフォームを表し得る。装置１１２は、（たとえば、ワイヤレス通信リンク１０３によって示されるように）直接的に、および／または（たとえば、（１つまたは複数の）ネットワーク１２０を介して、およびワイヤレス通信リンク１２１によって示されるように）間接的に、モバイルデバイス１０４と通信し得る。コンピューティングデバイス１０２はこの例ではたまたま屋内環境１４０の外部に位置するものとして示されているが、いくつかの他の実装形態では、コンピューティングデバイス１０２および／または装置１１２の全部または一部は屋内環境１４０内に位置し得ることを認識されたい。
【００３０】
[0043]（１つまたは複数の）ネットワーク１２０は、コンピューティングデバイス１０２と１つまたは複数の他のリソース（デバイス）１３０との間の通信をサポートする、様々な相互接続されたデバイスを有する１つまたは複数の通信システムおよび／またはデータネットワークを備え得る。述べたように、（１つまたは複数の）ネットワーク１２０は、コンピューティングデバイス１０２とモバイルデバイス１０４との間の通信をさらにサポートし得る。たとえば、コンピューティングデバイス１０２とモバイルデバイス１０４との間の通信によって、あるデータおよび／または命令がそれらの間で交換されることが可能になり得る。一例では、モバイルデバイス１０４に搭載された１つまたは複数のセンサーから取得された１つまたは複数のセンサー測定値がコンピューティングデバイス１０２内の装置１１２に送信され得、および／または、少なくとも部分的に装置１１０によって判断された、推定軌道および／または他の測位情報の全部または一部が、コンピューティングデバイス１０２、および／または場合によっては１つまたは複数の他のリソース（デバイス）１３０に送信され得る。逆に、別の例では、少なくとも部分的にコンピューティングデバイス１０２中の装置１１２によって判断された、推定軌道および／または他の測位情報の全部または一部が、モバイルデバイス１０４に送信され得る。
【００３１】
[0044]本明細書で使用する「モバイルデバイス」は、屋内環境内で、たとえばユーザによって直接あるいは間接的に動き回らされ得る任意の電子デバイスを表し得る。いくつかの実施形態では、モバイルデバイスは、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクを介して１つまたは複数の他のデバイスと通信するように構成され得る。いくつかの例としては、セルフォン、スマートフォン、コンピュータ（たとえば、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータなどのパーソナルコンピュータ）、ナビゲーションエイド、トラッキングデバイス、デジタルブックリーダー、ゲームデバイス、音楽および／またはビデオプレーヤデバイス、カメラ、機械、ロボットなどがある。
【００３２】
[0045]他のリソース（デバイス）１３０は、コンピューティングデバイス１０２および／またはモバイルデバイス１０４がいくつかのデータファイルおよび／または命令をそれから取得し得、および／またはコンピューティングデバイス１０２および／またはモバイルデバイス１０４がいくつかのデータファイルおよび／または命令をそれに与え得る、１つまたは複数のコンピューティングプラットフォームを表し得る。たとえば、いくつかの事例では、電子マップなどの全部または一部が、１つまたは複数の他のリソース（デバイス）１３０からコンピューティングデバイス１０２および／またはモバイルデバイス１０４によって取得され得る。たとえば、いくつかの事例では、装置１１２および／または装置１１０において使用する命令のセットの全部または一部が他のリソース（デバイス）１３０から取得され得る。
【００３３】
[0046]例示的な環境１００は、いくつかの実施形態では、モバイルデバイス１０４に１つまたは複数の衛星測位システム（ＳＰＳ：satellite positioning system）信号１５１を送信し得るＳＰＳ１５０をさらに含む。ＳＰＳ１５０は、たとえば、１つまたは複数のＧＮＳＳ、１つまたは複数の領域ナビゲーション衛星システムなど、あるいはそれらの何らかの組合せを表し得る。さらに、ＳＰＳ１５０および／またはＳＰＳ信号１５１は、信号ベース測位において使用するためのワイヤレス信号を送信する１つまたは複数の地上ベースワイヤレス送信デバイスを表し得る。したがって、たとえば、ＳＰＳ１５０はワイヤレスアクセスポイント、基地局などを表し得、ＳＰＳ信号１５１は、信号ベース測位において使用するための対応するワイヤレス信号を表し得る。ＳＰＳ信号１５１は、時々、モバイルデバイス１０４によって収集され、モバイルデバイスの位置ロケーションを推定するために使用され得る。
【００３４】
[0047]しかしながら、述べたように、ただしいくつかの事例では、屋内環境の全部または一部がそのような信号ベース測位信号のカバレージエリアの外部にあり得、および／またはモバイルデバイス１０４は、そのような信号ベース測位信号が受信可能であり得ないかまたは無視され得るモードで動作していることがある。したがって、そのような信号ベース測位信号がない場合、装置１１０および／または装置１１２は、本明細書で提供する例示的な技法に従ってマップ支援センサーベース測位を実行することを試み得る。
【００３５】
[0048]屋内環境１４０は、１つまたは複数の自然および／または人工構造物に関連付けられた１つまたは複数の屋内環境の全部または一部を表し得る。図示のように、屋内環境１４０は、モバイルデバイス１０４をもつユーザの移動に何らかの方法で作用し得る１つまたは複数の物体１４２を備え得る。さらに、図示のように、モバイルデバイス１０４の全部または一部は、屋内環境１４０に関連付けられた電子マップの全部または一部に対して判断され得る推定ロケーションに対応し得る、屋内環境１４０内の実際の物理的ロケーション１４４を有し得る。
【００３６】
[0049]次に図２に注目すると、図２は、例示的な実装形態による、モバイルデバイスのマップ支援センサーベース測位をサポートするためのコンピューティングデバイス１０２中の例示的なコンピューティングプラットフォーム２００のいくつかの特徴を示す概略ブロック図である。
【００３７】
[0050]図示のように、コンピューティングプラットフォーム２００は、（たとえば、本明細書で提供する技法に従って、装置１１２の一部として、など）データ処理を実行するための、１つまたは複数の接続２０６を介してメモリ２０４に結合された１つまたは複数の処理ユニット２０２を備え得る。（１つまたは複数の）処理ユニット２０２は、たとえば、ハードウェアまたはハードウェアとソフトウェアとの組合せで実装され得る。（１つまたは複数の）処理ユニット２０２は、データコンピューティング手順またはプロセスの少なくとも一部分を実行するように構成可能な１つまたは複数の回路を表し得る。限定ではなく例として、処理ユニットは、１つまたは複数のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイなど、またはそれらの任意の組合せを含み得る。
【００３８】
[0051]メモリ２０４は任意のデータ記憶機構を表し得る。メモリ２０４は、たとえば、１次メモリ２０４−１および／または２次メモリ２０４−２を含み得る。１次メモリ２０４−１は、たとえば、ランダムアクセスメモリ、読取り専用メモリなどを備え得る。この例では処理ユニットとは別個のものとして示されているが、１次メモリの全部または一部は、コンピューティングプラットフォーム２００内の（１つまたは複数の）処理ユニット２０２または他の同様の回路内に設けられるか、あるいはさもなければそのような回路と共設／結合され（co-located/coupled）得ることを理解されたい。２次メモリ２０４−２は、たとえば、１次メモリと同じまたは同様のタイプのメモリ、および／または１つまたは複数のデータ記憶デバイスまたはシステム、たとえば、ディスクドライブ、光ディスクドライブ、テープドライブ、固体メモリドライブなどを備え得る。
【００３９】
[0052]いくつかの実装形態では、２次メモリは、非一時的コンピュータ可読媒体２８０を動作可能に受容するか、またはさもなければそれに結合するように構成され得る。メモリ２０４および／または非一時的コンピュータ可読媒体２８０は、たとえば、本明細書で提供する本技法および／または例示的な装置１１２（図１）および／または例示的なプロセス４００（図４）による、データ処理に関連する命令２８２を備え得る。
【００４０】
[0053]コンピューティングプラットフォーム２００は、たとえば、１つまたは複数の通信インターフェース２０８をさらに備え得る。（１つまたは複数の）通信インターフェース２０８は、たとえば、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクを介した、たとえば、（１つまたは複数の）ネットワーク１２０、モバイルデバイス１０４、および／または他のリソース（デバイス）１３０（図１）への接続性を与え得る。ここで示すように、（１つまたは複数の）通信インターフェース２０８は、１つまたは複数の受信機２１０、１つまたは複数の送信機２１２など、またはそれらの何らかの組合せを備え得る。（１つまたは複数の）通信インターフェース２０８は、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクをサポートするために必要とされ得る１つまたは複数の通信プロトコルを実装し得る。
【００４１】
[0054]（１つまたは複数の）処理ユニット２０２および／または命令２８２は、たとえば、装置１１２、１つまたは複数のセンサー測定値２２０、１つまたは複数の推定軌道２２２、１つまたは複数の電子マップ２２４、動きモード２２６、移動した推定距離２２８、時間期間２３０、推定速度２３２、ステッピングアクション２３４、ステップカウント２３６、角速度２３８、配向２４０、推定された現在のヘッディング２４２、１つまたは複数の推定された前のヘッディング２４４、１つまたは複数の推定ロケーション２４６、１つまたは複数の中間地点２４８（および／またはそれらのロケーション）、ドリフト２５０などの１つまたは複数のエラー、粒子フィルタ２５２、粒子状態２５４、１つまたは複数の伝搬粒子２５６、ストライド頻度２５８、１つまたは複数の中間地点距離２６０、ヘッディングエラー２６２、１つまたは複数のコスト関数２６４、動的関数２６６、マッチングコスト２６８、１つまたは複数の回転特性２７０、１つまたは複数の個別回転割当て２７２、１つまたは複数のしきい値測定値２７４などの１つまたは複数のしきい値、１つまたは複数のストライド長２７６など、あるいはそれらの何らかの組合せなど、メモリ２０４に時々記憶され得る１つまたは複数の信号を与えるか、またはさもなければそれに関連付けられ得る。図２に示された要素のうちの１つまたは複数は、いくつかの実施形態では省略され得る。たとえば、要素２２０〜２７６のうちの１つまたは複数が省略され得る。
【００４２】
[0055]次に図３に注目すると、図３は、例示的な実装形態による、モバイルデバイス１０４のマップ支援センサーベース測位をサポートするためのモバイルデバイス１０４中の例示的なコンピューティングプラットフォーム３００のいくつかの特徴を示す概略ブロック図である。
【００４３】
[0056]図示のように、コンピューティングプラットフォーム３００は、（たとえば、本明細書で提供する技法、および／または装置１１０などに従って）データ処理を実行するための、１つまたは複数の接続３０６を介してメモリ３０４に結合された１つまたは複数の処理ユニット３０２を備え得る。（１つまたは複数の）処理ユニット３０２は、たとえば、ハードウェアまたはハードウェアとソフトウェアとの組合せで実装され得る。（１つまたは複数の）処理ユニット３０２は、データコンピューティング手順またはプロセスの少なくとも一部分を実行するように構成可能な１つまたは複数の回路を表し得る。限定ではなく例として、処理ユニットは、１つまたは複数のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールドプログラマブルゲートアレイなど、またはそれらの任意の組合せを含み得る。
【００４４】
[0057]メモリ３０４は任意のデータ記憶機構を表し得る。メモリ３０４は、たとえば、１次メモリ３０４−１および／または２次メモリ３０４−２を含み得る。１次メモリ３０４−１は、たとえば、ランダムアクセスメモリ、読取り専用メモリなどを備え得る。この例では処理ユニットとは別個のものとして示されているが、１次メモリの全部または一部は、モバイルデバイス１０４内の（１つまたは複数の）処理ユニット３０２または他の同様の回路内に設けられるか、あるいはさもなければそのような回路と共設／結合され得ることを理解されたい。２次メモリ３０４−２は、たとえば、１次メモリと同じまたは同様のタイプのメモリ、および／または１つまたは複数のデータ記憶デバイスまたはシステム、たとえば、ディスクドライブ、光ディスクドライブ、テープドライブ、固体メモリドライブなどを備え得る。
【００４５】
[0058]いくつかの実装形態では、２次メモリは、非一時的コンピュータ可読媒体３８０を動作可能に受容するか、またはさもなければそれに結合するように構成され得る。メモリ３０４および／または非一時的コンピュータ可読媒体３８０は、たとえば、本明細書で提供する本技法および／または例示的な装置１１０（図１）および／または例示的なプロセス４００（図４）による、データ処理に関連する命令３８２を備え得る。
【００４６】
[0059]コンピューティングプラットフォーム３００は、たとえば、１つまたは複数の通信インターフェース３０８をさらに備え得る。（１つまたは複数の）通信インターフェース３０８は、たとえば、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクを介した、たとえば、（１つまたは複数の）ネットワーク１２０、コンピューティングデバイス１０２、および／または他のリソース（デバイス）１３０（図１）への接続性を与え得る。ここで示すように、（１つまたは複数の）通信インターフェース３０８は、１つまたは複数の受信機３１０、１つまたは複数の送信機３１２など、またはそれらの何らかの組合せを備え得る。（１つまたは複数の）通信インターフェース３０８は、１つまたは複数のワイヤードおよび／またはワイヤレス通信リンクをサポートするために必要とされ得る１つまたは複数の通信プロトコルを実装し得る。（１つまたは複数の）通信インターフェース３０８は、いくつかの例示的な事例では、時々、モバイルデバイス１０４のロケーションを推定するために処理され得る、ＳＰＳ信号１５２および／または他の信号ベース測位信号を受信することが可能な１つまたは複数の受信機をさらに備え得る。
【００４７】
[0060]いくつかの例示的な実装形態によれば、（１つまたは複数の）通信インターフェース２０８、（１つまたは複数の）通信インターフェース３０８、および／または（１つまたは複数の）ネットワーク１２０中の他のリソースは、たとえば、ワイヤレスワイドエリアネットワーク（ＷＷＡＮ）、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）、ワイヤレスパーソナルエリアネットワーク（ＷＰＡＮ）などの様々なワイヤレス通信ネットワークとともに使用することが可能であり得る。「ネットワーク」および「システム」という用語は、本明細書では互換的に使用され得る。ＷＷＡＮは、符号分割多元接続（ＣＤＭＡ）ネットワーク、時分割多元接続（ＴＤＭＡ）ネットワーク、周波数分割多元接続（ＦＤＭＡ）ネットワーク、直交周波数分割多元接続（ＯＦＤＭＡ）ネットワーク、シングルキャリア周波数分割多元接続（ＳＣ−ＦＤＭＡ）ネットワークなどであり得る。ＣＤＭＡネットワークは、ほんのいくつかの無線技術を挙げれば、ｃｄｍａ２０００、広帯域ＣＤＭＡ（Ｗ−ＣＤＭＡ（登録商標））、時分割同期符号分割多元接続（ＴＤ−ＳＣＤＭＡ）などの１つまたは複数の無線アクセス技術（ＲＡＴ）を実装し得る。ここで、ｃｄｍａ２０００は、ＩＳ−９５規格、ＩＳ−２０００規格、およびＩＳ−８５６規格に従って実装される技術を含み得る。ＴＤＭＡネットワークは、モバイル通信用グローバルシステム（ＧＳＭ（登録商標）：Global System for Mobile Communications）、デジタルアドバンストモバイルフォンシステム（Ｄ−ＡＭＰＳ：Digital Advanced Mobile Phone System）、または何らかの他のＲＡＴを実装し得る。ＧＳＭおよびＷ−ＣＤＭＡは、「第３世代パートナーシッププロジェクト」（３ＧＰＰ：3rd Generation Partnership Project）と称する団体からの文書に記載されている。ｃｄｍａ２０００は、「第３世代パートナーシッププロジェクト２」（３ＧＰＰ２：3rd Generation Partnership Project 2）と称する団体からの文書に記載されている。３ＧＰＰおよび３ＧＰＰ２の文書は公的に入手可能である。たとえば、ＷＬＡＮはＩＥＥＥ８０２．１１ｘネットワークを含み得、ＷＰＡＮは、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワーク、ＩＥＥＥ８０２．１５ｘを含み得る。ワイヤレス通信ネットワークは、たとえば、ロングタームエボリューション（ＬＴＥ：Long Term Evolution）、アドバンストＬＴＥ、ＷｉＭＡＸ（登録商標）、ウルトラモバイルブロードバンド（ＵＭＢ：Ultra Mobile Broadband）など、いわゆる次世代技術（たとえば、「４Ｇ」）を含み得る。さらに、（１つまたは複数の）通信インターフェース２０８および／または（１つまたは複数の）通信インターフェース３０８は、１つまたは複数の他のデバイスとの赤外線ベース通信をさらに提供し得る。
【００４８】
[0061]モバイルデバイス１０４は、たとえば、１つまたは複数の入力／出力ユニット３１４をさらに備え得る。入力／出力ユニット３１４は、１つまたは複数の他のデバイスおよび／またはモバイルデバイス１０４のユーザから入力を取得し、および／またはそれに出力を与えるために使用され得る１つまたは複数のデバイスまたは他の同様の機構を表し得る。したがって、たとえば、入力／出力ユニット３１４は、１つまたは複数のユーザ入力を受信するために使用され得る様々なボタン、スイッチ、タッチパッド、トラックボール、ジョイスティック、タッチスクリーン、マイクロフォン、カメラなどを備え得る。いくつかの事例では、入力／出力ユニット３１４は、ユーザのための視覚出力、可聴出力、および／または触覚出力を生成する際に使用され得る様々なデバイスを備え得る。
【００４９】
[0062]モバイルデバイス１０４は、たとえば、１つまたは複数のセンサー３１６を備え得る。たとえば、（１つまたは複数の）センサー３１６は、環境１００および／またはモバイルデバイス１０４の態様を検出するのに有用であり得る、１つまたは複数の慣性センサー、１つまたは複数の環境センサーなどを表し得る。したがって、たとえば、（１つまたは複数の）センサー３１６は、１つまたは複数の加速度計、１つまたは１つまたは複数のジャイロスコープまたはジャイロメータ、１つまたは複数の磁力計など、１つまたは複数の気圧計、１つまたは複数の温度計などを備え得る。さらに、いくつかの事例では、（１つまたは複数の）センサー３１６は、マイクロフォン、カメラ、光センサーなど、１つまたは複数の入力デバイスを備え得る。
【００５０】
[0063]（１つまたは複数の）処理ユニット３０２および／または命令３８２は、たとえば、装置１１０、１つまたは複数のセンサー測定値２２０、１つまたは複数の推定軌道２２２、１つまたは複数の電子マップ２２４、動きモード２２６、移動した推定距離２２８、時間期間２３０、推定速度２３２、ステッピングアクション２３４、ステップカウント２３６、角速度２３８、配向２４０、推定された現在のヘッディング２４２、１つまたは複数の推定された前のヘッディング２４４、１つまたは複数の推定ロケーション２４６、１つまたは複数の中間地点２４８（および／またはそれらのロケーション）、ドリフト２５０などの１つまたは複数のエラー、粒子フィルタ２５２、粒子状態２５４、１つまたは複数の伝搬粒子２５６、ストライド頻度２５８、１つまたは複数の中間地点距離２６０、ヘッディングエラー２６２、１つまたは複数のコスト関数２６４、動的関数２６６、マッチングコスト２６８、１つまたは複数の回転特性２７０、１つまたは複数の個別回転割当て２７２、１つまたは複数のしきい値測定値２７４などの１つまたは複数のしきい値、１つまたは複数のストライド長２７６など、あるいはそれらの何らかの組合せなど、メモリ３０４に時々記憶され得る１つまたは複数の信号を与えるか、またはさもなければそれに関連付けられ得る。図３に示されている例示的なデータおよび／または命令は図２に示されている例示的なデータおよび／または命令と同じ参照番号を共有するが、いくつかの事例では、そのような例示的なデータおよび／または命令の全部または一部は明確に異なり得ることに留意されたい。図３に示された要素のうちの１つまたは複数は、いくつかの実施形態では省略され得る。たとえば、要素２２０〜２７６のうちの１つまたは複数が省略され得る。
【００５１】
[0064]次に図４に注目すると、図４は、例示的な実装形態による、モバイルデバイスのマップ支援センサーベース測位をサポートするために１つまたは複数のコンピューティングプラットフォームにおいて使用するプロセス４００を示す例示的な図である。プロセス４００は、たとえば、全体的または部分的に、装置１１０および／または装置１１２（図１）、コンピューティングプラットフォーム２００（図２）、および／またはコンピューティングプラットフォーム３００（図３）で実装され得る。
【００５２】
[0065]例示的なブロック４０２において、屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいてモバイルデバイスの軌道が推定され得る。たとえば、１つまたは複数のセンサー３１６を使用して取得された１つまたは複数のセンサー測定値２２０に少なくとも部分的に基づいて、１つまたは複数の推定軌道２２２（図２および図３参照）が判断され得る。
【００５３】
[0066]いくつかの事例では、ブロック４０４において、モバイルデバイスが移動した推定距離２２８、モバイルデバイスの推定速度２３２、推定された現在のヘッディング２４２、配向２４０など、またはそれらの何らかの組合せが判断され得る。たとえば、いくつかの実装形態では、１つまたは複数のセンサー測定値２２０に少なくとも部分的に基づいてモバイルデバイスについて判断されたかまたはさもなければ推論された動きのタイプを示し得る動きモード２２６が判断され得る。たとえば、いくつかの実装形態では、動きモードは、モバイルデバイスが、歩行中、ランニング中、および／またはさもなければ何らかの示された方法で移動中の人によって携帯されている可能性があることを示し得る。したがって、いくつかの実装形態では、動きモードは、たとえば、モバイルデバイス、たとえばモバイルデバイス１０４に搭載された、および／またはコンピューティングプラットフォーム３００によって実装された、１つまたは複数のセンサー３１６によって観測される検出された移動および／または力の１つまたは複数の特性によって判断された、人の歩行中またはランニング中のストライドを示し得る、検出されたステッピングアクション２３４および／またはストライド頻度２５８に対応し得る。いくつかの実装形態では、ステップカウント２３６は、この場合も、１つまたは複数のセンサー３１６によって観測される検出された移動および／または力に基づいて判断され得る。特定のステッピングアクションおよび／またはステップカウントは、特定の推定ストライド長２７６（たとえば、ステップ間の距離）に対応し得、それは順に、移動した距離を推定する際に考慮され得る。同様に、移動した推定距離２２８を用いて、時間期間２３０中のモバイルデバイスの少なくとも平均移動速度を判断することが可能であり得る。さらに、いくつかの実装形態では、特定の時間においておよび／または特定の時間期間にわたってモバイルデバイスの推定速度２３２を判断することが可能であり得る。さらに、いくつかの実装形態では、センサー測定値２２０を使用して、たとえば、モバイルデバイスの軌道または他の推定された動きに対応するおよび／または環境に関する配向２４０を判断し得る。たとえば、磁力計センサーは、地球の磁界に関する特定の配向、たとえば、磁北、南などを示すセンサー測定値を与え得る。同様に、いくつかの実装形態では、１つまたは複数のセンサー測定値２２０に基づいて角速度２３８が判断されるかまたはさもなければ推定され得る。ここで、たとえば、ジャイロスコープおよび／または他の同様の慣性センサー、および／またはいくつかの他の環境センサーによって方向変化が検出され得る。適用可能なセンサー測定値２２０が与えられれば、および／またはモバイルデバイスの前の位置および／または軌道に関する何らかの情報がわかっていれば、モバイルデバイスに関する様々な測位および／または移動情報が判断されるかまたはさもなければ推定され得ることを認識されたい。したがって、いくつかの実装形態では、たとえば、１つまたは複数の前のヘッディング２４４、および／またはロケーション２４６などとともに１つまたは複数のセンサー測定値に基づいて、モバイルデバイスの現在のヘッディング２４２が判断され得る。たとえば、いくつかの実装形態では、現在のヘッディング２４２は、環境および／またはモバイルデバイスに対応する何らかの基準点または基準システムに対する特定の方向を示し得る。たとえば、環境に関連する現在のヘッディング２４２は、磁北からの角度方向などに対応し得る。たとえば、モバイルデバイスに関連する現在のヘッディング２４２は、内部基準軸からの角度などに対応し得る。
【００５４】
[0067]いくつかの態様によれば、例示的なブロック４０２および／または例示的なブロック４０４において実行される推定は、モバイルデバイスに関連する信号ベース測位情報を使用せずに実行され得ることに留意されたい。
【００５５】
[0068]例示的なブロック４０６において、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて何らかの方法で、少なくとも推定された軌道に作用する。たとえば、１つまたは複数の電子マップ２２４は、モバイルデバイスを携帯している人が何らかの方法でその中を動き回り得る屋内環境内のいくつかのエリアを示し得る。たとえば、１つまたは複数の電子マップ２２４は、壁または他の同様の物体によって分離されたいくつかのルートまたは経路、いくつかの空間への入口、部屋、階段、エレベータなどを定義し得る。いくつかの実装形態では、１つまたは複数の電子マップ２２４は、屋内環境内をナビゲートしている人が従い得る、可能性があるかまたは可能なルートを示し得るルータビリティ図式（routability graph）などを備え得る。たとえば、ルータビリティ図式は、特定のルートまたは経路に沿って従われ得る、あるノードから次のノードに通じる１つまたは複数の相互接続エッジとともに、屋内環境内の特定のロケーションに関係する複数のノードを含み得る。
【００５６】
[0069]いくつかの事例では、ブロック４０８において、少なくとも部分的に、推定された軌道に作用するために、１つまたは複数の中間地点の１つまたは複数のロケーションが使用され得る。たとえば、いくつかの実装形態では、推定された軌道に作用するために１つまたは複数の中間地点２４８および／またはそれらのロケーションが適用され得る。いくつかの事例では、１つまたは複数の中間地点２４８の１つまたは複数のロケーションが、たとえば、ユーザ入力から取得されおよび／または電子マップの全部または一部に基づいて判断され得る。いくつかの実装形態では、１つまたは複数の中間地点距離２６０、たとえば中間地点までの距離または中間地点からの距離／あるいは中間地点間の距離が考慮に入れられ得る。いくつかの事例では、ブロック４１０において、少なくとも部分的に、推定された軌道に作用する際に、推定された軌道に関連する、ドリフト２５０、ヘッディングエラー２６２などの１つまたは複数のエラーが補正され得る。
【００５７】
[0070]これを考慮して、モバイルデバイスの軌道を推定するために使用され得る粒子フィルタなどに作用し得る何らかの方法で１つまたは複数のエラーが考慮されることを可能にするいくつかの例を以下に提示する。たとえば、粒子フィルタ２５２は、ドリフト２５０などの１つまたは複数のエラーを考慮に入れながら、１つまたは複数の伝搬粒子２５６を使用して粒子状態２５４を判断し得る。さらに、以下の例で提示するように、モバイルデバイスの軌道を判断する際に、装置１１０／１１２は、たとえば、１つまたは複数のコスト関数２６４、動的関数２６６、マッチングコスト２６８など、またはそれらの何らかの組合せを適用し得る。
【００５８】
[0071]本明細書で提供する技法を用いて、いくつかの例示的な実装形態では、１つまたは複数の回転特性２７０、１つまたは複数の個別回転割当て２７２など、またはそれらの何らかの組合せが判断され、モバイルデバイスの推定された軌道に作用するために使用され得る。
【００５９】
[0072]さらに、例示的なブロック４１２において、推定された軌道と電子マップとに少なくとも部分的に基づいてモバイルデバイスのロケーションが推定され得る。例示的なブロック４１４において、モバイルデバイスに関係する推定ロケーションおよび／または他の推定測位情報の全部または一部の提示が開始され得る。ここで、たとえば、提示は、少なくとも１つのユーザ出力デバイスを介したオーディオおよび／または視覚出力を備え得る。いくつかの事例では、提示は、１つまたは複数の他のデバイスに１つまたは複数のメッセージを送信することを備え得る。特定の例では、モバイルデバイスに関連付けられた人は、本明細書で提供するいくつかの技法を使用してそれらの人が屋内環境をナビゲートするときに追跡され得る。たとえば、警備員または郵便配達人、または場合によっては子供のロケーションおよび／またはルート／経路が、プロセス４００において提示した技法などの技法を使用して屋内環境内で追跡され得る。さらに、そのような技法はまた、たとえば、コンテナ、機械など、人ではない物体に関連付けられたモバイルデバイスを追跡することおよび／またはそれの位置を特定することに適用され得る。いくつかの実施形態では、そのような位置特定および／または追跡は、たとえばモバイルデバイス１０４および／またはコンピューティングデバイス１０２において、リアルタイムで実行される。いくつかの実施形態では、そのような位置特定および／または追跡は、たとえばメモリ２０４および／または３０４に記憶されたデータに基づいて、ルートまたはルートの一部分をすでに移動した後に実行される。いくつかの実施形態では、モバイルデバイスに記憶されたデータは、経路が予想ルートと実質的に整合する（aligned）かどうかを判断するために、モバイルデバイスが経路に沿って移送された後に分析される。
【００６０】
[0073]いくつかの実施形態では、図４に示されたブロックのうちの１つまたは複数が省略されるかまたは並べ替えられ得る。たとえば、いくつかの実施形態では、ブロック４１２とブロック４１４の一方または両方が省略される。いくつかの実施形態では、ブロック４０４、４０８、および４１０のうちの１つまたは複数が代わりにまたはさらに省略される。
【００６１】
[0074]いくつかの実施形態では、ブロック４０２、４０４、４０６、４０８、４１０、４１２、および４１４のうちの１つまたは複数が、たとえばメモリ２０４もしくは３０４および／またはコンピュータ可読媒体２８０もしくは３８０と組み合わせた処理ユニット２０２および／または３０２によって実行または実装され得る。いくつかの実施形態では、たとえばブロック４０２、４０４、４０６、４０８、４１０、４１２、および４１４のうちの１つまたは複数がコンピューティングデバイス１０２において実行され得るように、情報および／または測定値が、モバイルデバイス１０４における通信インターフェース３０８から送信され、コンピューティングデバイス１０２の通信インターフェース２０８において受信され得る。いくつかの実施形態では、そのような送信および受信は省略される。
【００６２】
[0075]以下のセクションは、全体的または部分的に、それぞれ前のセクションで説明した例示的な装置１１０、例示的な装置１１２、例示的なコンピューティングプラットフォーム２００、例示的なコンピューティングプラットフォーム３００のうちの１つまたは複数で、および／または例示的なプロセス４００もしくはそれの何らかの部分の一部として実装され得るいくつかの例示的な技法を提示することを意図したものである。
【００６３】
[0076]以下の例示的な技法は、コンシューマグレードまたはより良いグレードの慣性および／または環境センサーならびに基本的および／またはより高度な電子マップ情報および／またはそれに関連する中間地点を使用して正確な測位を達成し得る、いくつかの例示的なアルゴリズムおよび／または他の同様の実装可能な技法を示している。
【００６４】
[0077]多くのモバイルフォンおよび他の同様のモバイルデバイスは現在、動きを検出し、したがって、いくつかの条件下で測位情報を与えるために使用され得る、センサー（たとえば、加速度計、ジャイロスコープ、磁力計など）を装備している。信号ベース測位技法と比較して、いくつかの実装形態におけるセンサーベース測位は、より著しくエネルギー効率的であり得る。しかしながら、いくつかの事例では、対応する慣性測位が、角速度とステップカウントとを積算することを伴い得、それにより、たとえば、場合によっては、ユーザの体に対するモバイルデバイス、したがって（１つまたは複数の）センサーの位置の推定におけるセンサー雑音および／またはエラーに起因して、ドリフトエラーが大きくなり得る。たとえば、いくつかのセンサーは、ユーザの体に対するモバイルデバイスの位置に応じて、同じユーザの動きについて大幅に異なるセンサー測定値を生成し得る。
【００６５】
[0078]いくつかの態様によれば、屋内環境測位に関して、本明細書で提供するいくつかの例示的な技法は、いくつかの起こり得るドリフトエラーを低減するために、屋内環境の電子マップ内で識別された様々な物体を活用し得る。前述のように、いくつかの例示的な実装形態によれば、本明細書で提供する様々な技法は、モバイルデバイスに搭載された１つまたは複数のセンサーのセンサー測定値からオドメトリ（odometry）および／または他の同様の情報を取得し得る。本技法は、いくつかのドリフトエラーを低減（たとえば、補正）しようとする試みにおいて、１つまたは複数の電子マップ内で与えられる（および／またはさもなければそれを使用して取得された）何らかの情報をさらに利用し得る。
【００６６】
[0079]いくつかの例示的な実装形態では、電子マップ情報は、たとえば、ルートの一部としてあらかじめ決定されたおよび／または場合によっては１つまたは複数の他の測位技法によって過去に識別された、何らかの電子マップ情報に基づいて、ユーザ入力から取得され得る時々の位置フィックス（position fixes）の形態で、中間地点のセットを備え得る。いくつかの実装形態によれば、本明細書で提供する技法の全部または一部は、１つまたは複数の他のデバイスを支援する１つまたは複数のデバイスにおいて実装され、単一のデバイスにおいて実装され、スタンドアロンナビゲーションにおいて使用するために実装され、１つまたは複数の他の測位システムグランドトゥルース情報などを与える際に使用するために実装され、１つまたは複数の他のポスト測位またはトラッキング目的のために実装され得る。
【００６７】
[0080]いくつかの態様によれば、１つまたは複数のセンサーを使用して慣性オドメトリ情報が取得され得る。たとえば、いくつかの実装形態では、たとえば、１つまたは複数の加速度計からのセンサー測定値を使用して、ユーザのステップを検出しおよび／または１つまたは複数のステップ長を推定するために使用され得る技法が提供される。たとえば、いくつかの実装形態では、たとえば、１つまたは複数のジャイロスコープおよび／または１つまたは複数の磁力計などを使用して、モバイルデバイスの配向を推定しおよび／またはさもなければその変化を識別するために使用され得る技法が提供される。さらに、いくつかの例示的な実装形態によれば、ドリフトエラーをできる限り低減するために、電子マップおよび／またはそれに関係する中間地点に少なくとも部分的に基づくマッチング能力が考慮に入れられ得る。たとえば、いくつかの実装形態では、そのようなマッチング能力を実装するために粒子フィルタおよび／または他の同様のフィルタおよび／またはアルゴリズムが使用され得る。別の例では、いくつかの実装形態では、そのようなマッチング能力を実装するために個別回転割当てアルゴリズムなどが使用され得る。
【００６８】
[0081]いくつかの例示的な実装形態では、屋内環境および／またはそれの電子マップに対するモバイルデバイスの軌道および／または位置を推定するために、コンピューティングプラットフォームは、（１つまたは複数の）ユーザ入力から少なくとも部分的に取得され得る、以前に通過した経路（previously traversed path）の全部または一部に関する情報に、１つまたは複数のセンサーからのセンサー測定値を組み合わせ得る。予想される、より定常状態の重力ベクトルからｚ軸を判断するために、たとえば、調整されたｚ軸ジャイロなど、たとえば、いくつかのセンサー測定値を積算することによって少なくとも部分的に基づいて、推定ヘッディングが判断され得る。たとえば、１つまたは複数の加速度計から取得されたセンサー測定値によって少なくとも部分的に基づいて、ステップ頻度が推定され得る。いくつかの事例では、ステップ頻度を推定する際に有用であり得るいくつかのセンサー測定値は、たとえば、センサー測定値中に存在する雑音の量に応じて、積算されることも積算されないこともある。いくつかの例示的な実装形態では、ステップ頻度（ｆ）とストライド長（ｌ）とを関係付けるために、１つまたは複数の動きモーター他の同様のモデルが実装され得る。たとえば、いくつかの実装形態では、ストライド長ｌが、少なくとも部分的に、ｌ＝ｋｆaなどの関数に基づいて判断され得、ここにおいて、パラメータｋおよび／またはａは、推定（たとえば、プリプログラム）されおよび／または時間とともにユーザごとに学習（たとえば、動的にプログラム）され得る。いくつかの例示的な実装形態では、異なる動きモードについて複数の同様の関数および／またはパラメータが与えられ得る。たとえば、ストライド長および／または頻度は、ユーザが歩行中であるのかランニング中であるのかに応じて異なり得る。
【００６９】
[0082]次に図５および図６に注目すると、図５および図６は、何らかのステッピングアクションに関連する情報を判断する際に使用され得る例示的な慣性センサー測定値のプロットを示す例示的なグラフ５００および６００を提示している。
【００７０】
[0083]グラフ５００は、たとえば、ステップを検出するために使用され得るいくつかのセンサー測定値を示している。ここで、たとえば、水平軸は時間を表し、垂直軸は、重力を補償した後の加速度計から取得された加速度の大きさ（プロットライン５０２）を表す。このデータは、ステップを検出するためにしきい値ベースフィルタを通過させられ（プロットライン５０４）、ここで、ａ＋１は歩行の立脚期（stance phase）を示し、−１は遊脚期（swing phase）を示す。＋１とそれに続く−１とのサイクルが１つのステップとして計数される。
【００７１】
[0084]グラフ６００は、たとえば、たとえば[0071]において説明したように検出され得るステップカウントから計算されたステップ頻度（プロットライン６０２）を示している。水平軸は時間を表し、垂直軸は、たとえば、検出されたステップの数の移動ウィンドウ平均として計算され得る、固定時間間隔中のステップの数である、ステップ頻度である。
【００７２】
[0085]図７に、例示的な実装形態による、屋内環境をナビゲートしながらモバイルデバイスを携帯している人について、ジャイロスコープ、または磁力計などのセンサー、または何らかの他のソースから取得され得る、角度方位情報（angular orientation information）のみから推定された例示的な軌道に対応するプロットライン７０２を示すグラフ７００を示す。ここで、たとえば、水平軸および垂直軸は、推定位置の座標を表し得る。この位置推定は、移動した距離または直線速度（linear velocities）に関する情報を使用しないので、軌道のスケーリングは著しいエラーを有し得ることに留意されたい。
【００７３】
[0086]図８に、例示的な実装形態による、オドメトリ情報などに少なくとも部分的に基づいて作用されたグラフ７００の例示的な角度軌道データに少なくとも部分的に基づく、例示的な調整された軌道に対応するプロットライン８０２を示すグラフ８００を示す。ここで、たとえば、水平軸および垂直軸は、推定位置の座標を表し得る。この例示的なデータでは、グラフ７００に示された軌道は、グラフ６００に示されているように計算されたステップ頻度を使用して、スケーリングエラーについて補正されている。
【００７４】
[0087]別の例として、図９に、別の例示的な実装形態による、屋内環境をナビゲートしながらモバイルデバイスを携帯している人の慣性センサー測定値および／または環境センサー測定値に関連する、ある例示的な角度軌道データに対応するプロットライン９０２を示すグラフ９００を示す。ここで、たとえば、水平軸および垂直軸は、推定位置の座標を表し得る。図１０に、例示的な実装形態による、オドメトリ情報などに少なくとも部分的に基づいて作用するグラフ９００の例示的な角度軌道データに少なくとも部分的に基づく、例示的な調整された軌道１００２を示すグラフ１０００を示す。この場合も、水平軸および垂直軸は、推定位置の座標を表し得る。図９および図１０は、図７および図８と同様であるが、データの異なるセットに基づく。
【００７５】
[0088]いくつかの例示的な実装形態によれば、軌道において生じ、場合によっては、センサー測定値を積算した結果としてアグリゲートし得る、ドリフトなどのエラーを低減するかまたはさもなければ補正するために、マッチング能力が与えられ得る。いくつかの例示的な実装形態によれば、１つのマッチング能力は、電子マップなど、および／または１つまたは複数のユーザ入力から（たとえば、オフラインで、動的になど、またはそれらの何らかの組合せで）取得され得る中間地点のロケーションを利用し得る。いくつかの例示的な実装形態では、この例示的なマッチング能力は、タイミング情報を考慮する必要がなく、中間地点のロケーションのシーケンスのみを考慮する必要があることに留意されたい。述べたように、いくつかの実装形態では、マッチング能力をサポートするおよび／またはさもなければ与えるために粒子フィルタなどが実装され得る。いくつかの他の実装形態では、能力をサポートするおよび／またはさもなければ与えるために個別回転割当てアルゴリズムなどが実装され得る。
【００７６】
[0089]マッチング能力をサポートするおよび／またはさもなければ与えるために粒子フィルタなどが実装され得るいくつかの例示的な実装形態では、（たとえば、電子マップ上にあるが、必ずしも識別された物体に関して実現可能な（feasible）軌道ラインに沿うとは限らない）位置、ヘッディング角度、ストライド長／頻度関係式（frequency relation）のためのスケーリングおよびべき指数（exponent）係数など、またはそれらの何らかの組合せを備える、粒子状態が生成され得る。例示的な粒子フィルタは、たとえば、軌道からの位置およびヘッディングを初期化し、たとえば、軌道の全体的な長さだけ調整して、スケーリングおよびべき指数を公称値（nominal value）の周りに分布させ得る。ステッピングアクションについておよび／または何らの他の時点において、例示的な粒子フィルタは、たとえば、状態の小さいランダム変動を可能にしながらセンサー測定値に従って粒子を伝搬し、場合によっては、実現可能な軌道ラインからしきい値測定値（たとえば、０．６メートルなど）だけそれたと見なされ得る粒子を効果的に除去（たとえば、廃棄、重み付け解除（de-weight）など）し、リサンプリングし得る。いくつかの実装形態によれば、例示的なリサンプリングにおいて、粒子フィルタは、１つまたは複数の実現可能な軌道ラインからより小さいアグリゲート偏差（smaller aggregate deviations）をもつより多くの粒子を選択的に重み付けし得る。あるロケーションに従って、例示的なリサンプリングにおいて、粒子フィルタは、（たとえば、前に学習したパラメータを有する）軌道にさらに進むにつれていくつかの偏差を減衰させ（attenuate）得る。いくつかの実装形態によれば、粒子フィルタは、回転量に比例するようにヘッディングエラーをモデル化し得る（たとえば、回転アクションは、非回転アクションよりもエラーを受けやすくなり得る）。いくつかの実装形態によれば、粒子フィルタは、残存している粒子の履歴を維持し得、それにより、より正確な後続の軌道および／または位置の推定が可能になり得る。いくつかの実装形態によれば、粒子フィルタは、特に１つまたは複数のパラメータ値を強調することに規定時間を超えて焦点を当てる（focus overtime）ために何らかの方法で反復し得る。
【００７７】
[0090]次に図１１に注目すると、図１１は、例示的な実装形態による、屋内環境の電子マップにおいて識別されたいくつかの物体の視覚表現と、初期軌道データに基づく初期ルート１１０２、および電子マップにおいて識別された物体のうちの１つまたは複数に少なくとも部分的に基づいて調整された初期軌道データに基づくさらに調整されたルート１１０４を示すオーバーレイとを示す図１１００である。図示のように、何らかのドリフトエリアによって作用されているかのようにしか見えないが、実際にはユーザが通過することができないいくつかの物体（たとえば、オフィス壁など）を経路が通過するという点で実現不可能である経路を提示するようにも見える、初期ルート１１０２。しかしながら、マッチング能力を与えることが可能な例示的な粒子フィルタを実装することによって、調整されたルート１１０４においてドリフトエアが低減されるだけでなく、中間地点のロケーションを考慮に入れる得られた推定軌道が、電子マップにおいて識別された物体対する１つまたは複数の実現可能な経路にマッチングする。
【００７８】
[0091]いくつかの例示的な実装形態によれば、個別回転割当てアルゴリズムなどが実装され得る。たとえば、いくつかの実装形態では、個別回転割当てアルゴリズムは、コスト関数を最小限に抑えるために、示された軌道における中間地点を、オドメトリ情報などの中の検出されたステッピングアクションに割り当て得る。いくつかの実装形態では、個別回転割当てアルゴリズムは、たとえば、ストライドモデルなどに従って、１つまたは複数の実現可能な経路の１つまたは複数のセグメント内に検出されたステッピングアクションを分布させ得る。いくつかの例示的な実装形態によれば、例示的なコスト関数は、１つまたは複数の前のセグメントと比較される角度偏移、および／または公称値、平均値などからのスケーリング／べき指数変化を考慮に入れ得る。いくつかの例示的な実装形態によれば、ソリューションは、たとえば、できる限り、正確および／またはよりロバストなソリューションを提供し、および／または複雑さを低減するために、動的プログラミングを利用する。
【００７９】
[0092]次に図１２および図１３に注目する。図１２は、例示的な実装形態による、（角度θ1、θ2、θ3、およびθ4によって表される）いくつかの回転を取りながら、中間地点（ｗ1，ｗ2，ｗ3，ｗ4）のロケーションのシーケンスを通って進む軌道の（距離ｄ1、ｄ2、ｄ3、ｄ4によって表される）変化するセクションを有するルート１２００の視覚表示を示す図である。図１３は、例示的な実装形態による、取られるステップが黒丸（solid circles）によって表されており、いくつかのステップが中間地点（ｗ1，ｗ2，ｗ3，ｗ4）のロケーションにマッチングされている、ルート１３００の視覚表現を示す図である。
【００８０】
[0093]例示的なルート１２００および１３００に関して、個別回転割当てアルゴリズムは、個別回転割当ての適用に従って、（たとえば、ドリフトなどを低減するために）推定された軌道に作用し得る。たとえば、ルート１２００に示されているように、中間地点が、慣性オドメトリ分析における検出されたステップに、コスト関数を最小限に抑える方法で割り当てられ得る。たとえば、ルート１３００に示されているように、検出されたステップは、ストライドモデルに従って軌道のセグメントに沿って分布され得る。述べたように、コスト関数および／または他の同様のモデルは、前のセグメントと比較されるいくつかの角度偏移（angular deviations）と、ステップまたはストライドに関連する公称／平均値からのスケーリング／べき指数変化とを考慮に入れ得る。たとえば、ルート１２００は、角度（θ）と距離（ｄ）とによって表され得、コスト関数を使用して、ラベル付きの丸で囲まれた黒点によって表されるルート１３００のような一連の検出されたステップ（ｗ1，ｗ2，ｗ3，ｗ4）にマッチングされ得る、中間地点（ｗ）のセットを示している。
【００８１】
[0094]したがって、さらなる例として、以下を仮定する。
【００８２】
１．軌道：中間地点のシーケンス（ｗ1，ｗ2，．．．ｗk）、ただし、各ｗi＝＜θi，ｄi＞は角度と距離とに関連付けられ得る、
２．慣性オドメトリ：ステップのシーケンス（ｓ1，ｓ2，．．．ｓn）、ただし、各ｓj＝＜φj，ｌj＞は角度と距離とに関連付けられ得る。
【００８３】
ステップへの中間地点のマッピングｆ：（ｗ1，ｗ2，．．．ｗk）→（ｓ1，ｓ2，．．．ｓn）は、以下の例示的なコスト関数を最小限に抑えるように判断され得る。
【数１】
0006336992.tif 000002
【００８４】
[0095]例示的な成分ｃorientationは、中間地点のロケーションに対する「マッチングされた」軌道の配向の差のコストを表し得る。たとえば、中間地点ｗi＝＜θi，ｄi＞がステップｓj＝＜φj，ｌj＞に割り当てられた場合、コストは単に｜θi−φj｜であり得る。しかしながら、ユーザステップにおいて回転が漸進的に発生し得、したがって、コストは、単一のステップの配向を使用して効果的に計算されることが可能でないことがある。したがって、いくつかの実装形態では、２はコストを計算し、たとえば、回転における配向の変化のためのガウスモデルなどを使用して、隣接するポイントの配向を考慮に入れ得る。
【００８５】
[0096]一例として、図１４に注目すると、図１４は、例示的な実装形態による、センサー測定値から取得された配向データ１４０４と、たとえば、動的関数などによって割り当てられ得る、適合回転モデリング情報１４０６とを示すグラフ１４００および拡大図１４０２である。これらの図において、水平軸は秒での時間を表し、垂直軸はラジアンでの配向角度の変化を表す。
【００８６】
[0097]例示的な成分ｃscalingは、たとえば、ストライドモデルと慣性センサーデータとを使用して推定される距離に対して中間地点の連続ロケーションの間の距離をマッチングさせるコスト（マッチングコスト）を表し得る。したがって、たとえば、ｗi-1＝＜θi-1，ｄi-1＞がｓj＝＜φj，ｌj＞に割り当てられ、ｗi＝＜θi，ｄi＞がｓk＝＜φk，ｌk＞に割り当てられた場合、
【数２】
0006336992.tif 000003
【００８７】
、および
【数３】
0006336992.tif 000004
【００８８】
[0098]したがって、いくつかの例示的な実装形態では、解は、たとえば、以下のように、最適なサブ構造を活用することによって、動的関数などを使用して計算され得る。
【数４】
0006336992.tif 000005
【００８９】
ただし、Ｃ（ｉ，ｊ）は、（ｗi，ｗi+1，．．．ｗk）を（ｓj，ｓj+1，．．．ｓn）にマッチングさせる最小コストである。
【００９０】
[0099]さらなる例として、図１５および１６に、動的関数を使用して最小限に抑えられたコスト関数を有する例示的な個別回転割当てアルゴリズムの実装形態の結果としての、いくつかの例示的な実装形態による、いくつかの初期ルート（１５０２および１６０２）と、対応する調整されたルート（１５０４および１６０４）とを示すオーバーレイとともに、いくつかの追加の例示的な屋内環境を示す、例示的な図１５００および１６００をそれぞれ提示する。図示のように、調整されたルート１５０４および１６０４のみが、例示的な屋内環境に示された様々な物体に関して連続的に実現可能な経路を提示している。
【００９１】
[00100]いくつかのさらなる例示的な実装形態によれば、中間地点のロケーションを利用しないことがあるいくつかのマッチング能力が与えられ得る。ここで、たとえば、粒子フィルタなどは、代わりに電子マップにおいて与えられた情報に基づいて動作して、必ずしも明示的中間地点を考慮に入れる必要があるとは限らない。いくつかの事例では、たとえば、動的プログラミングソリューションは、たとえば、電子マップにおいて識別されたいくつかの物体に関して、屋内環境内をナビゲートするユーザの能力に関して１つまたは複数の実現可能な経路に少なくとも部分的に基づく１つまたは複数の中間地点、および／または中間地点のシーケンスを仮定し得る。いくつかの例示的な事例では、１つまたは複数のそのような中間地点はまた、ユーザに関連する推定ストライド長、推定ストライド頻度、推定速度など、またはそれらの何らかの組合せを考慮に入れ、および／またはさもなければそれらに少なくとも部分的に基づいて選択され得る。いくつかの実装形態では、少なくとも部分的に、状況を仮定すれば不正確であると見なされ得る軌道および／または実現可能な経路を削除または重み解除するか、あるいはさもなければ識別するために、たとえば、電子マップ中の（および屋内環境における実際のロケーションに対応する）ロケーションに対する回転制約および／または他の同様の情報が使用され得る。
【００９２】
[00101]いくつかの態様によれば、そのようなマップベースの実現可能な経路および中間地点の選択技法は、高度に制約された場所（highly constrained locales）を有する屋内環境、たとえば、オフィスビルのために特に価値および利益があり得る。実際、そのような技法は、特に、特定の電子マップタイプ、構造物タイプ、間取り図、ユーザ、モバイルデバイス、センサー、コンピューティングプラットフォームなどに関する性能および／または精度の最適化であり得る。いくつかの事例では、そのような技法の全部または一部は前処理演算（a preprocessing operation）において実行され得る。ここで、たとえば、いくつかの実装形態では、および電子マップは、いくつかの共通のまたはさもなければ予想される中間地点のいくつかの実現可能な経路および／またはロケーションを示し得る、対応するおよび／または特殊目的のルーティング図式などを生成するような方法で前処理され得る。
【００９３】
[00102]いくつかの例示的な実装形態によれば、コンピューティングプラットフォームは、たとえば、最近生成されたセンサー測定値を用いた粒子フィルタなどを使用して、リアルタイムマッチング能力を実装するように与えられ得る。いくつかの例示的な実装形態では、十分な処理能力が与えられれば、動的プログラミング手法がリアルタイムで実装されることが可能であり得る。
【００９４】
[00103]いくつかの態様によれば、コンピューティングプラットフォームは、センサーベースオドメトリおよび電子マップ情報および／または他の定義された中間地点を使用してポスト測位を行い得る。本明細書で提示するように、いくつかの例示的な実装形態では、（１つまたは複数の）動的プログラミングベースの回転割当てアルゴリズムは、少なくとも部分的に、屋内環境の電子マップに関連する中間地点のロケーションおよび／または他の同様の情報を慣性センサーオドメトリ、環境センサーオドメトリなど、またはそれらの何らかの組合せにマッチングさせるように実装され得る。本明細書で提示するように、いくつかの例示的な実装形態では、粒子フィルタなど、および／または他の同様のアルゴリズムは、少なくとも部分的に、できる限りより良い軌道および／または位置推定値を促し、ドリフトエラーなどのエラーを低減し、および／または場合によってはストライドスケーリング係数および／または他の同様の情報を考慮に入れるように実装され得る。いくつかの実装形態では、１つまたは複数のセンサー測定値が、モバイルデバイスによって取得され、たとえば、軌道を判断するための電子マップへの比較など、後の使用のために記憶され得ることを理解されたい。そのようなセンサー測定値は、たとえば、モバイルデバイスの１つまたは複数の測位／ナビゲーション能力をサポートすること、１つまたは複数の電子マップの全部または一部を生成および／または更新することなど、様々な使用のために、たとえば、モバイルデバイス内で使用されおよび／または１つまたは複数の他のコンピューティングプラットフォームに通信され得る。
【００９５】
[00104]いくつかのさらなる態様によれば、コンピューティングプラットフォームは、たとえば、いくつかの電子マップ情報および／または中間地点のあらかじめ定義されたロケーションなどとともに、センサー測定値ベースのオドメトリなどを使用して、より多くのリアルタイム測位能力を与え得る。いくつかの実装形態では、粒子フィルタなどが、たとえば、いくつかの電子マップおよび／または中間地点制約を強制することによってモバイルデバイスの軌道および／または位置を推定するように実装され得る。いくつかの実装形態では、動的プログラミングソリューションが、たとえば、モバイルデバイスの軌道および／または位置を推定するのをサポートする電子マップ内の複数の実現可能な経路を探査するように実装され得る。
【００９６】
[00105]したがって、いくつかの態様によれば、本明細書で提供する技法は、モバイルデバイスに搭載されて取得された１つまたは複数のセンサー測定値に基づいて推定された軌道を判断する際に考慮されるべき屋内環境内の複数の潜在的な経路、ただしいくつかの実施形態では、すべての潜在的な経路を考慮に入れ得る。その上、推定された軌道は、時々、１つまたは複数のセンサー測定値に少なくとも部分的に関連するエラーを備え、および／またはそれから生じ得る。ただし、そのようなエラーの影響は、屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて推定された軌道に作用することによって低減され得る。したがって、たとえば本明細書で指摘したように、いくつかの実装形態では、ドリフト２５０は、電子マップに基づいてモバイルデバイスの推定された軌道が作用されるとき、少なくとも部分的に補正されるかまたはさもなければ考慮に入れられ得る。したがって、モバイルデバイスの軌道および／または状態は、常に利用可能であるとは限らない信号ベース測位技法を使用せずに推定され得る。
【００９７】
[00106]いくつかの態様によれば、コンピューティングプラットフォームは、リアルタイム測位能力および／またはポスト測位能力の組合せを提供し得る。いくつかの実装形態では、そのような能力は、複数のデバイスの間で分散させられ、および／または１つまたは複数のコンピューティングプラットフォームを有する単一のデバイス内で実行され得る。いくつかの例示的な実装形態によれば、センサー測定値と電子マップ情報とに基づいて屋内環境内のモバイルデバイスの軌道および／または位置を推定する本明細書で提供する技法は、信号ベース測位信号の使用および／または考慮なしに実装され得る。
【００９８】
[00107]本明細書で説明した方法は、特定の特徴および／または例に従って適用例に応じて様々な手段によって実装され得る。たとえば、そのような方法は、ソフトウェアとともにハードウェア、ファームウェア、および／またはそれらの組合せで実装され得る。ハードウェア実装の場合、たとえば、処理ユニットは、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）、デジタル信号プロセッサ（ＤＳＰ）、デジタル信号処理デバイス（ＤＳＰＤ）、プログラマブル論理デバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明した機能を実行するように設計された他のデバイスユニット、および／またはそれらの組合せの中で実装され得る。
【００９９】
[00108]上記の詳細な説明では、特許請求する主題の完全な理解を与えるために多数の具体的な詳細を記載した。ただし、特許請求する主題は、これらの具体的な詳細なしに実施され得ることが当業者には理解されよう。他の事例では、特許請求する主題を不明瞭にしないように、当業者に知られているであろう方法および装置については詳細に説明していない。
【０１００】
[00109]上記の詳細な説明のいくつかの部分は、特定の装置あるいは特殊目的コンピューティングデバイスまたはプラットフォームのメモリ内に記憶された２値デジタル電子信号の演算のアルゴリズムまたは記号表現（symbolic representations）に関して提示した。この特定の明細書のコンテキストでは、特定の装置などの用語は、プログラムソフトウェアからの命令に従って特定の機能を実行するようにプログラムされた後の汎用コンピュータを含む。アルゴリズム記述または記号表現は、信号処理または関連技術の当業者がそれらの仕事（work）の本質を他の当業者に伝達するために使用する技法の例である。アルゴリズムは、本明細書では、また一般に、所望の結果につながる自己矛盾のない一連の演算または同様の信号処理であると考えられる。このコンテキストでは、演算または処理は物理量の物理的操作を伴う。必ずしもそうとは限らないが、一般に、電子信号は情報を表すので、そのような量は、記憶、転送、組合せ、比較、または他の方法で操作されることが可能な電気信号または磁気信号の形態をとり得る。主に一般的な用法という理由で、そのような信号をビット、データ、値、要素、記号、文字、項、数、数字、情報などと呼ぶことが時々便利であることがわかっている。ただし、これらおよび同様の用語はすべて、適切な物理量に関連付けられるべきであり、便宜的なラベルにすぎないことを理解されたい。別段に明記されていない限り、以下の説明から明らかなように、本明細書全体にわたって、「処理する」、「算出する」、「計算する」、「判断する」、「確立する」、「取得する」、「識別する」、「適用する」などの用語を利用する説明は、専用コンピュータまたは同様の専用電子コンピューティングデバイスなど、特定の装置のアクションまたはプロセスを指すことを諒解されたい。したがって、本明細書のコンテキストでは、専用コンピュータまたは同様の専用電子コンピューティングデバイスは、専用コンピュータまたは同様の専用電子コンピューティングデバイスのメモリ、レジスタ、または他の情報記憶デバイス、送信デバイス、またはディスプレイデバイス内の、電子的または磁気的な物理量として一般に表される信号を操作または変換することが可能である。この特定の特許出願のコンテキストでは、「特定の装置」という用語は、プログラムソフトウェアからの命令に従って特定の機能を実行するようにプログラムされた後の汎用コンピュータを含み得る。
【０１０１】
[00110]本明細書で使用する「および」、「または」、および「および／または」という用語は、そのような用語が使用されるコンテキストに少なくとも部分的に依存することも予想される様々な意味を含み得る。一般に、「または」がＡ、ＢまたはＣなどのリストを関連付けるために使用される場合、ここで包含的な意味で使用されるＡ、Ｂ、およびＣを意味し、ならびにここで排他的な意味で使用されるＡ、ＢまたはＣを意味するものとする。さらに、本明細書で使用する「１つまたは複数」という用語は、単数形の任意の特徴、構造、もしくは特性について説明するために使用され得るか、または複数の特徴、構造もしくは特性、または特徴、構造もしくは特性の何らかの他の組合せについて説明するために使用され得る。ただし、これは例示的な例にすぎないこと、および特許請求する主題はこの例に限定されないことに留意されたい。
【０１０２】
[00111]現在例示的な特徴と考えられることについて例示し説明したが、特許請求する主題から逸脱することなく、様々な他の変更が行われ得、均等物が代用され得ることが、当業者には理解されよう。さらに、本明細書で説明した中心概念から逸脱することなく、特許請求する主題の教示に特定の状況を適合させるための多くの変更が行われ得る。
【０１０３】
［00112]したがって、特許請求する主題は、開示する特定の例に限定されず、そのような特許請求する主題はまた、添付の特許請求の範囲内に入るすべての態様とそれらの均等物とを含み得るものとする。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］少なくとも１つのコンピューティングプラットフォームを用いて、
屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定することと、
前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて前記推定された軌道に作用することと
を備える方法。
［Ｃ２］前記軌道を前記推定することは、
前記モバイルデバイスにおける少なくとも１つの加速度計から取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、動きモードに関連する少なくとも１つのアクションの発生を検出することと、
前記少なくとも１つのアクションの前記発生に少なくとも部分的に基づいて、ある時間期間中に前記モバイルデバイスが移動した距離、または前記時間期間中の前記モバイルデバイスの速度のうちの少なくとも１つを推定することと
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ３］前記動きモードが二足歩行移動モードを備え、前記少なくとも１つのアクションが少なくとも１つのステッピングアクションを備え、
前記少なくとも１つのステッピングアクションの、推定ストライド長、または推定ストライド頻度のうちの少なくとも１つに少なくとも部分的に基づいて、移動した前記距離、または前記速度のうちの少なくとも１つを推定すること
をさらに備える、［Ｃ２］に記載の方法。
［Ｃ４］移動した前記距離、または前記速度のうちの少なくとも１つを推定することが、
ステップカウントを積算すること
をさらに備える、［Ｃ３］に記載の方法。
［Ｃ５］前記軌道を前記推定することは、
前記モバイルデバイスにおけるジャイロスコープ、または前記モバイルデバイスにおける磁力計のうちの少なくとも１つから取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、前記モバイルデバイスの配向の変化が発生したのか発生しなかったのかを判断することと、
前記配向の前記変化が発生したのか発生しなかったのかの前記判断に少なくとも部分的に基づいて前記モバイルデバイスの現在のヘッディングを推定することと
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ６］前記モバイルデバイスの前記現在のヘッディングを前記推定することが、
少なくとも１つの前に推定されたヘッディングに少なくとも部分的に基づいて前記モバイルデバイスの前記現在のヘッディングを推定すること
をさらに備える、［Ｃ５］に記載の方法。
［Ｃ７］前記推定された軌道に前記作用することが、
前記電子マップにおいて識別された前記１つまたは複数の物体のうちの少なくとも１つに少なくとも部分的に基づいて定義された１つまたは複数の中間地点の１つまたは複数のロケーションを使用すること
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ８］前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記モバイルデバイスのユーザインターフェースから受信された少なくとも１つの入力に少なくとも部分的に基づいて前記１つまたは複数の中間地点の前記１つまたは複数のロケーションのうちの少なくとも１つを取得すること
をさらに備える、［Ｃ７］に記載の方法。
［Ｃ９］前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記電子マップに少なくとも部分的に基づいて前記１つまたは複数の中間地点の前記１つまたは複数のロケーションのうちの少なくとも１つを判断すること
をさらに備える、［Ｃ７］に記載の方法。
［Ｃ１０］前記推定された軌道に前記作用することが、
少なくとも部分的に、粒子フィルタを使用して、前記推定された軌道のドリフトを補正すること
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ１１］前記粒子フィルタは、前記電子マップ上の前記モバイルデバイスの推定位置、前記モバイルデバイスの推定ヘッディング、ある時間期間中に前記モバイルデバイスが移動した推定距離、または前記時間期間中の前記モバイルデバイスの推定速度のうちの少なくとも１つに少なくとも部分的に基づいて、粒子状態を維持する、［Ｃ１０］に記載の方法。
［Ｃ１２］前記推定ヘッディングが、推定回転特性に少なくとも部分的に基づくヘッディングエラーに関連付けられる、［Ｃ１１］に記載の方法。
［Ｃ１３］前記粒子フィルタが、前記推定された軌道からしきい値測定値超だけそれる伝搬粒子を除去することに少なくとも部分的に基づいて粒子状態を維持する、［Ｃ１０］に記載の方法。
［Ｃ１４］前記粒子フィルタが、前記モバイルデバイスにおいて取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて粒子を伝搬する、［Ｃ１０］に記載の方法。
［Ｃ１５］前記推定された軌道に前記作用することが、
少なくとも部分的に、コスト関数に少なくとも部分的に基づく個別回転割当てを使用して、前記推定された軌道のドリフトを補正すること
をさらに備える、［Ｃ１］に記載の方法。
［Ｃ１６］前記コスト関数は、ある時間期間中の前記推定された軌道と比較される前記モバイルデバイスの配向の差に対応するコスト、または前記時間期間中に前記モバイルデバイスが移動した推定された距離に対する前記推定された軌道上の連続する中間地点間の距離に対応するコストのうちの少なくとも１つを考慮に入れる、［Ｃ１５］に記載の方法。
［Ｃ１７］前記コスト関数が、マッチングコストを最小限に抑えるための動的関数を使用して計算される、［Ｃ１５］に記載の方法。
［Ｃ１８］前記少なくとも１つのコンピューティングプラットフォームが前記モバイルデバイス中に設けられる、［Ｃ１］に記載の方法。
［Ｃ１９］前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記推定された軌道と前記電子マップとに少なくとも部分的に基づいて前記モバイルデバイスのロケーションを推定すること
をさらに備える、［Ｃ１８］に記載の方法。
［Ｃ２０］前記少なくとも１つのコンピューティングプラットフォームを用いて、
前記モバイルデバイスの少なくとも１つのユーザ出力デバイスを介して前記モバイルデバイスの前記推定されたロケーションの提示を開始すること
をさらに備える、［Ｃ１９］に記載の方法。
［Ｃ２１］前記推定することが、前記屋内環境の前記電子マップに少なくとも部分的に基づいて、前記屋内環境における複数の潜在的な軌道から前記軌道を推定することを備える、［Ｃ１］に記載の方法。
［Ｃ２２］前記推定することが、信号ベース測位情報を使用せずに前記モバイルデバイスの前記軌道を推定することを備える、［Ｃ１］に記載の方法。
［Ｃ２３］屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定するための手段と、
前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて前記推定された軌道に作用するための手段と
を備える装置。
［Ｃ２４］メモリと、
屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定することと、
前記メモリを介してアクセス可能な前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて前記推定された軌道に作用することと
を行うための１つまたは複数の処理ユニットと
を備えるコンピューティングプラットフォーム。
［Ｃ２５］前記１つまたは複数の処理ユニットは、
前記モバイルデバイスにおける少なくとも１つの加速度計から取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、動きモードに関連する少なくとも１つのアクションの発生を検出することと、
前記少なくとも１つのアクションの前記発生に少なくとも部分的に基づいて、ある時間期間中に前記モバイルデバイスが移動した距離、または前記時間期間中の前記モバイルデバイスの速度のうちの少なくとも１つを推定することと
をさらに行うためのものである、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ２６］前記動きモードが二足歩行移動モードを備え、前記少なくとも１つのアクションが少なくとも１つのステッピングアクションを備え、前記１つまたは複数の処理ユニットが、
前記少なくとも１つのステッピングアクションの、推定ストライド長、または推定ストライド頻度のうちの少なくとも１つに少なくとも部分的に基づいて、移動した前記距離、または前記速度のうちの少なくとも１つを推定すること
をさらに行うためのものである、［Ｃ２５］に記載のコンピューティングプラットフォーム。
［Ｃ２７］前記１つまたは複数の処理ユニットが、
さらにステップカウントを積算すること
によって、移動した前記距離、または前記速度のうちの少なくとも１つを推定することをさらに行うためのものである、［Ｃ２６］に記載のコンピューティングプラットフォーム。
［Ｃ２８］前記１つまたは複数の処理ユニットは、
前記モバイルデバイスにおけるジャイロスコープ、または前記モバイルデバイスにおける磁力計のうちの少なくとも１つから取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて、前記モバイルデバイスの配向の変化が発生したのか発生しなかったのかを判断することと、
前記配向の前記変化が発生したのか発生しなかったのかの前記判断に少なくとも部分的に基づいて前記モバイルデバイスの現在のヘッディングを推定することと
をさらに行うためのものである、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ２９］前記１つまたは複数の処理ユニットが、
少なくとも１つの前に推定されたヘッディングに少なくとも部分的に基づいて前記モバイルデバイスの前記現在のヘッディングを推定すること
をさらに行うためのものである、［Ｃ２８］に記載のコンピューティングプラットフォーム。
［Ｃ３０］前記１つまたは複数の処理ユニットが、前記電子マップにおいて識別された前記１つまたは複数の物体のうちの少なくとも１つに少なくとも部分的に基づいて定義された１つまたは複数の中間地点の１つまたは複数のロケーションに少なくとも部分的に基づいて前記推定された軌道に作用することを行うためのものである、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ３１］前記１つまたは複数の処理ユニットが、
前記モバイルデバイスのユーザインターフェースから受信され、前記メモリを介してアクセス可能な少なくとも１つの入力に少なくとも部分的に基づいて前記１つまたは複数の中間地点の前記１つまたは複数のロケーションのうちの少なくとも１つを取得すること
をさらに行うためのものである、［Ｃ３０］に記載のコンピューティングプラットフォーム。
［Ｃ３２］前記１つまたは複数の処理ユニットが、
前記電子マップに少なくとも部分的に基づいて前記１つまたは複数の中間地点の前記１つまたは複数のロケーションのうちの少なくとも１つを判断すること
をさらに行うためのものである、［Ｃ３０］に記載のコンピューティングプラットフォーム。
［Ｃ３３］前記１つまたは複数の処理ユニットが、少なくとも部分的に、粒子フィルタを使用して、前記推定された軌道のドリフトを補正することによって少なくとも部分的に基づいて、前記推定された軌道に作用することをさらに行うためのものである、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ３４］前記粒子フィルタは、前記電子マップ上の前記モバイルデバイスの推定位置、前記モバイルデバイスの推定ヘッディング、ある時間期間中に前記モバイルデバイスが移動した推定距離、または前記時間期間中の前記モバイルデバイスの推定速度のうちの少なくとも１つに少なくとも部分的に基づいて、粒子状態を維持する、［Ｃ３３］に記載のコンピューティングプラットフォーム。
［Ｃ３５］前記推定ヘッディングが、推定回転特性に少なくとも部分的に基づくヘッディングエラーに関連付けられる、［Ｃ３４］に記載のコンピューティングプラットフォーム。
［Ｃ３６］前記粒子フィルタが、前記推定された軌道からしきい値測定値超だけそれる伝搬粒子を除去することに少なくとも部分的に基づいて粒子状態を維持する、［Ｃ３３］に記載のコンピューティングプラットフォーム。
［Ｃ３７］前記粒子フィルタが、前記モバイルデバイスにおいて取得された前記１つまたは複数のセンサー測定値のうちの少なくとも１つに少なくとも部分的に基づいて粒子を伝搬する、［Ｃ３３］に記載のコンピューティングプラットフォーム。
［Ｃ３８］前記１つまたは複数の処理ユニットが、少なくとも部分的に、コスト関数に少なくとも部分的に基づく個別回転割当てを使用して、前記推定された軌道のドリフトを補正することに少なくとも部分的によって、前記推定された軌道に作用することを行うためのものである、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ３９］前記コスト関数は、ある時間期間中の前記推定された軌道と比較される前記モバイルデバイスの配向の差に対応するコスト、または前記時間期間中に前記モバイルデバイスが移動した推定された距離に対する前記推定された軌道上の連続する中間地点間の距離に対応するコストのうちの少なくとも１つを考慮に入れる、［Ｃ３８］に記載のコンピューティングプラットフォーム。
［Ｃ４０］前記コスト関数が、マッチングコストを最小限に抑えるための動的関数を使用して計算される、［Ｃ３８］に記載のコンピューティングプラットフォーム。
［Ｃ４１］前記コンピューティングプラットフォームが前記モバイルデバイス中に設けられる、［Ｃ２４］に記載のコンピューティングプラットフォーム。
［Ｃ４２］前記１つまたは複数の処理ユニットが、
前記推定された軌道と前記電子マップとに少なくとも部分的に基づいて前記モバイルデバイスのロケーションを推定すること
をさらに行うためのものである、［Ｃ４１］に記載のコンピューティングプラットフォーム。
［Ｃ４３］前記モバイルデバイスが少なくとも１つのユーザ出力デバイスをさらに備え、前記１つまたは複数の処理ユニットが、前記少なくとも１つのユーザ出力デバイスを介して前記モバイルデバイスの前記推定されたロケーションの提示を開始することをさらに行うためのものである、［Ｃ４２］に記載のコンピューティングプラットフォーム。
［Ｃ４４］屋内環境内のモバイルデバイスにおいて取得された１つまたは複数のセンサー測定値に少なくとも部分的に基づいて前記モバイルデバイスの軌道を推定することと、
前記屋内環境の電子マップにおいて識別された１つまたは複数の物体に少なくとも部分的に基づいて前記推定された軌道に作用することと
を行うようにコンピューティングプラットフォーム中の１つまたは複数の処理ユニットによって実行可能なコンピュータ実装可能命令を記憶した非一時的コンピュータ可読媒体。
【図１】
0006336992.tif 000006
【図２】
0006336992.tif 000007
【図３】
0006336992.tif 000008
【図４】
0006336992.tif 000009
【図５】
0006336992.tif 000010
【図６】
0006336992.tif 000011
【図７】
0006336992.tif 000012
【図８】
0006336992.tif 000013
【図９】
0006336992.tif 000014
【図１０】
0006336992.tif 000015
【図１１】
0006336992.tif 000016
【図１２】
0006336992.tif 000017
【図１３】
0006336992.tif 000018
【図１４】
0006336992.tif 000019
【図１５】
0006336992.tif 000020
【図１６】
0006336992.tif 000021