(57)【特許請求の範囲】
【請求項１】
ユーザの位置を判定するためのモバイルコンピューティングデバイスであって、前記モバイルコンピューティングデバイスは、
前記モバイルコンピューティングデバイスの慣性特性を検知する複数の慣性センサと、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する歩行分類モジュールであって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、歩行分類モジュールと、
検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出するステップ検出モジュールと、
前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する進行方向判定モジュールと、
判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する位置判定モジュールと
を備え、
前記ユーザの前記歩行を判定することは、決定木及び検知された前記慣性特性に基づいて、前記ユーザの前記歩行を分類することを含み、
前記決定木は、検知された前記慣性特性の複数のパラメータに基づいて、前記ユーザの前記歩行を、前記第１の歩行又は前記第２の歩行として識別し、
前記複数のパラメータには、前記モバイルコンピューティングデバイスの振り子運動の平均間隔、前記モバイルコンピューティングデバイスの振り子運動の平均ピーク、及び予め定義された期間における前記モバイルコンピューティングデバイスの軸方向運動量が含まれる、モバイルコンピューティングデバイス。
【請求項２】
前記ユーザが前記物理的なステップをしたことを検出することは、
前記ユーザの前記歩行が、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す前記第２の歩行であるという判定に応答して、検知された前記慣性特性に基づき、前記モバイルコンピューティングデバイスの加速度を判定することと、
第１のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第１の加速度関数を生成することと、
第２のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第２の加速度関数を生成することであって、前記第１のローパスフィルタは前記第２のローパスフィルタより高いカットオフ周波数を有する、生成することと、
前記第１の加速度関数及び前記第２の加速度関数に基づいて、正弦関数を判定することと、
前記正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別することと
を含む、請求項１に記載のモバイルコンピューティングデバイス。
【請求項３】
ユーザの位置を判定するためのモバイルコンピューティングデバイスであって、前記モバイルコンピューティングデバイスは、
前記モバイルコンピューティングデバイスの慣性特性を検知する複数の慣性センサと、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する歩行分類モジュールであって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、歩行分類モジュールと、
検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出するステップ検出モジュールと、
前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する進行方向判定モジュールと、
判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する位置判定モジュールと
を備え、
前記ユーザが前記物理的なステップをしたことを検出することは、
前記ユーザの前記歩行が、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す前記第２の歩行であるという判定に応答して、検知された前記慣性特性に基づき、前記モバイルコンピューティングデバイスの加速度を判定することと、
第１のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第１の加速度関数を生成することと、
第２のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第２の加速度関数を生成することであって、前記第１のローパスフィルタは前記第２のローパスフィルタより高いカットオフ周波数を有する、生成することと、
前記第１の加速度関数及び前記第２の加速度関数に基づいて、正弦関数を判定することと、
前記正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別することと
を含む、モバイルコンピューティングデバイス。
【請求項４】
前記正弦関数の独立変数は、前記ユーザの腕と重力の方向との間の角度を示す、請求項２または３に記載のモバイルコンピューティングデバイス。
【請求項５】
前記第１の加速度関数は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って生成され、前記第２の加速度関数は、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って生成され、前記正弦関数は、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って判定され、ここで、
ＳＡ（ｋ）は、前記第１の加速度関数であり、
ＳＢ（ｋ）は、前記第２の加速度関数であり、
γ１は、前記第１のローパスフィルタの第１のフィルタリングパラメータであり、
γ２は、前記第２のローパスフィルタの第２のフィルタリングパラメータであり、
αｍａｇ（ｋ）は、ステップｋでの前記加速度の大きさであり、
αｍａｇ（ｋ−１）は、直前のステップｋ−１での前記加速度の大きさである、請求項２または３に記載のモバイルコンピューティングデバイス。
【請求項６】
前記方向における前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することは、前記方向における前記モバイルコンピューティングデバイスの速度を判定することを含む、請求項１から５のいずれか一項に記載のモバイルコンピューティングデバイス。
【請求項７】
前記方向における前記モバイルコンピューティングデバイスの前記速度を判定することは、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスの加速度を判定することと、
前記モバイルコンピューティングデバイスの判定された前記加速度を、前記モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換することと、
地球座標系における速度を判定するために地球座標系における前記加速度を積分することであって、前記加速度の積分の間隔は、判定された前記ユーザの前記歩行に対応するユーザ歩行モデルに基づいている、積分することと
を含む、請求項６に記載のモバイルコンピューティングデバイス。
【請求項８】
ユーザの位置を判定するためのモバイルコンピューティングデバイスであって、前記モバイルコンピューティングデバイスは、
前記モバイルコンピューティングデバイスの慣性特性を検知する複数の慣性センサと、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する歩行分類モジュールであって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、歩行分類モジュールと、
検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出するステップ検出モジュールと、
前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する進行方向判定モジュールと、
判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する位置判定モジュールと
を備え、
前記方向における前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することは、前記方向における前記モバイルコンピューティングデバイスの速度を判定することを含み、
前記方向における前記モバイルコンピューティングデバイスの前記速度を判定することは、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスの加速度を判定することと、
前記モバイルコンピューティングデバイスの判定された前記加速度を、前記モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換することと、
地球座標系における速度を判定するために地球座標系における前記加速度を積分することであって、前記加速度の積分の間隔は、判定された前記ユーザの前記歩行に対応するユーザ歩行モデルに基づいている、積分することと
を含み、
前記第１の歩行の場合の前記加速度の積分の間隔は、前記第２の歩行の場合の前記加速度の積分の間隔と異なる、モバイルコンピューティングデバイス。
【請求項９】
検知された前記慣性特性に基づいて、前記ユーザの前記未補正進行方向を判定するために、磁気測定値を利用するかどうかを判定する磁気歪み検出モジュールをさらに備える、請求項１から８のいずれか一項に記載のモバイルコンピューティングデバイス。
【請求項１０】
前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することは、前記磁気測定値を利用しないという判定に応答して、前記モバイルコンピューティングデバイスの加速度及び方向を示すデータに基づき、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することを含み、
前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することは、前記磁気測定値を利用するという判定に応答して、前記モバイルコンピューティングデバイスの前記加速度及び前記方向を示すデータ、並びに前記モバイルコンピューティングデバイスの近辺の磁場に基づき、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定することを含む、請求項９に記載のモバイルコンピューティングデバイス。
【請求項１１】
前記磁気測定値を利用するかどうかを判定することは、
前記モバイルコンピューティングデバイスの加速度を判定することと、
前記モバイルコンピューティングデバイスの近辺の磁場を検知することと、
前記加速度の大きさが加速度閾値を超えていない、且つ前記磁場の大きさが磁気閾値を超えていないという判定に応答して、前記加速度の方向と前記磁場の方向との間の伏角を判定することと、
前記伏角を期待伏角と比較することと
を含む、請求項９に記載のモバイルコンピューティングデバイス。
【請求項１２】
前記ユーザの前記歩行を判定し、前記ユーザが前記物理的なステップをしたことを検出し、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定し、前記ユーザの前記推定位置を判定することは、
前記ユーザの歩行を判定し、前記ユーザが物理的なステップをしたことを検出し、前記モバイルコンピューティングデバイスの未補正進行方向を判定し、前記ユーザが進んだ複数の一連の物理的なステップのそれぞれに対して、前記ユーザの推定位置を判定することを含む、請求項１から１１のいずれか一項に記載のモバイルコンピューティングデバイス。
【請求項１３】
判定された前記ユーザの前記未補正進行方向と、前記ユーザの直前の物理的なステップにおける前記モバイルコンピューティングデバイスの直前の方向に対する、前記モバイルコンピューティングデバイスの方向の変化とに基づいて、前記ユーザの進行方向を判定するためにカルマンフィルタを適用するカルマンフィルタモジュールをさらに備え、
前記ユーザの前記推定位置を判定することは、判定された前記ユーザの前記進行方向に基づいて前記ユーザの前記推定位置を判定することを含む、請求項１２に記載のモバイルコンピューティングデバイス。
【請求項１４】
モバイルコンピューティングデバイスによりユーザの位置を判定するための方法であって、
前記モバイルコンピューティングデバイスにより、及び前記モバイルコンピューティングデバイスの検知された慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する段階であって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、判定する段階と、
前記モバイルコンピューティングデバイスにより、検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出する段階と、
前記モバイルコンピューティングデバイスにより、前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する段階と、
前記モバイルコンピューティングデバイスにより、判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する段階と
を備え、
前記ユーザの前記歩行を判定する段階は、決定木及び検知された前記慣性特性に基づいて、前記ユーザの前記歩行を分類する段階を含み、
前記決定木は、検知された前記慣性特性の複数のパラメータに基づいて、前記ユーザの前記歩行を、前記第１の歩行又は前記第２の歩行として識別し、
前記複数のパラメータには、前記モバイルコンピューティングデバイスの振り子運動の平均間隔、前記モバイルコンピューティングデバイスの振り子運動の平均ピーク、及び予め定義された期間における前記モバイルコンピューティングデバイスの軸方向運動量が含まれる、方法。
【請求項１５】
前記ユーザが前記物理的なステップをしたことを検出する段階は、
前記ユーザの前記歩行が、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す前記第２の歩行であるという判定に応答して、検知された前記慣性特性に基づき、前記モバイルコンピューティングデバイスの加速度を判定する段階と、
第１のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第１の加速度関数を生成する段階と、
第２のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第２の加速度関数を生成する段階であって、前記第１のローパスフィルタは前記第２のローパスフィルタより高いカットオフ周波数を有する、生成する段階と、
前記第１の加速度関数及び前記第２の加速度関数に基づいて、正弦関数を判定する段階と、
前記正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別する段階と
を含む、請求項１４に記載の方法。
【請求項１６】
モバイルコンピューティングデバイスによりユーザの位置を判定するための方法であって、
前記モバイルコンピューティングデバイスにより、及び前記モバイルコンピューティングデバイスの検知された慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する段階であって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、判定する段階と、
前記モバイルコンピューティングデバイスにより、検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出する段階と、
前記モバイルコンピューティングデバイスにより、前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する段階と、
前記モバイルコンピューティングデバイスにより、判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する段階と
を備え、
前記ユーザが前記物理的なステップをしたことを検出する段階は、
前記ユーザの前記歩行が、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す前記第２の歩行であるという判定に応答して、検知された前記慣性特性に基づき、前記モバイルコンピューティングデバイスの加速度を判定する段階と、
第１のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第１の加速度関数を生成する段階と、
第２のローパスフィルタを前記モバイルコンピューティングデバイスの前記加速度に適用して、第２の加速度関数を生成する段階であって、前記第１のローパスフィルタは前記第２のローパスフィルタより高いカットオフ周波数を有する、生成する段階と、
前記第１の加速度関数及び前記第２の加速度関数に基づいて、正弦関数を判定する段階と、
前記正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別する段階と
を含む、方法。
【請求項１７】
前記第１の加速度関数は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って生成され、前記第２の加速度関数は、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って生成され、前記正弦関数は、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って判定され、ここで、
ＳＡ（ｋ）は、前記第１の加速度関数であり、
ＳＢ（ｋ）は、前記第２の加速度関数であり、
γ１は、前記第１のローパスフィルタの第１のフィルタリングパラメータであり、
γ２は、前記第２のローパスフィルタの第２のフィルタリングパラメータであり、
αｍａｇ（ｋ）は、ステップｋでの前記加速度の大きさであり、
αｍａｇ（ｋ−１）は、直前のステップｋ−１での前記加速度の大きさである、請求項１５または１６に記載の方法。
【請求項１８】
前記方向における前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階は、前記方向における前記モバイルコンピューティングデバイスの速度を判定する段階を含む、請求項１４から１７のいずれか一項に記載の方法。
【請求項１９】
前記方向における前記モバイルコンピューティングデバイスの前記速度を判定する段階は、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスの加速度を判定する段階と、
前記モバイルコンピューティングデバイスの判定された前記加速度を、前記モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換する段階と、
地球座標系における速度を判定するために地球座標系における前記加速度を積分する段階であって、前記加速度の積分の間隔は、判定された前記ユーザの前記歩行に対応するユーザ歩行モデルに基づいている、積分する段階と
を含む、請求項１８に記載の方法。
【請求項２０】
モバイルコンピューティングデバイスによりユーザの位置を判定するための方法であって、
前記モバイルコンピューティングデバイスにより、及び前記モバイルコンピューティングデバイスの検知された慣性特性に基づいて、前記モバイルコンピューティングデバイスのユーザの歩行を判定する段階であって、前記歩行は、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に保持していることを示す第１の歩行、及び、前記ユーザが歩行中に前記モバイルコンピューティングデバイスを前記ユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、判定する段階と、
前記モバイルコンピューティングデバイスにより、検知された前記慣性特性及び判定された前記ユーザの前記歩行に基づいて、前記ユーザが物理的なステップをしたことを検出する段階と、
前記モバイルコンピューティングデバイスにより、前記物理的なステップの方向を示す、前記モバイルコンピューティングデバイスの未補正進行方向を判定する段階と、
前記モバイルコンピューティングデバイスにより、判定された前記ユーザの前記未補正進行方向、前記ユーザの推定歩幅、及び直前の物理的なステップにおける前記ユーザの直前の位置に基づいて、前記ユーザの推定位置を判定する段階と
を備え、
前記方向における前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階は、前記方向における前記モバイルコンピューティングデバイスの速度を判定する段階を含み、
前記方向における前記モバイルコンピューティングデバイスの前記速度を判定する段階は、
検知された前記慣性特性に基づいて、前記モバイルコンピューティングデバイスの加速度を判定する段階と、
前記モバイルコンピューティングデバイスの判定された前記加速度を、前記モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換する段階と、
地球座標系における速度を判定するために地球座標系における前記加速度を積分する段階であって、前記加速度の積分の間隔は、判定された前記ユーザの前記歩行に対応するユーザ歩行モデルに基づいている、積分する段階と
を含み、
前記第１の歩行の場合の前記加速度の積分の間隔は、前記第２の歩行の場合の前記加速度の積分の間隔と異なる、方法。
【請求項２１】
前記モバイルコンピューティングデバイスにより、検知された前記慣性特性に基づいて、前記ユーザの前記未補正進行方向を判定するために、磁気測定値を利用するかどうかを判定する段階をさらに備える、請求項１４から２０のいずれか一項に記載の方法。
【請求項２２】
前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階は、前記磁気測定値を利用しないという判定に応答して、前記モバイルコンピューティングデバイスの加速度及び方向を示すデータに基づき、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階を含み、
前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階は、前記磁気測定値を利用するという判定に応答して、前記モバイルコンピューティングデバイスの前記加速度及び前記方向を示すデータ、並びに前記モバイルコンピューティングデバイスの近辺の磁場に基づき、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階を含む、請求項２１に記載の方法。
【請求項２３】
前記磁気測定値を利用するかどうかを判定する段階は、
前記モバイルコンピューティングデバイスの加速度を判定する段階と、
前記モバイルコンピューティングデバイスの近辺の磁場を検知する段階と、
前記加速度の大きさが加速度閾値を超えていない、且つ前記磁場の大きさが磁気閾値を超えていないという判定に応答して、前記加速度の方向と前記磁場の方向との間の伏角を判定する段階と、
前記伏角を期待伏角と比較する段階と
を含む、請求項２２に記載の方法。
【請求項２４】
前記ユーザの前記歩行を判定する段階、前記ユーザが前記物理的なステップをしたことを検出する段階、前記モバイルコンピューティングデバイスの前記未補正進行方向を判定する段階、及び前記ユーザの前記推定位置を判定する段階は、
前記ユーザの歩行を判定する段階、前記ユーザが物理的なステップをしたことを検出する段階、前記モバイルコンピューティングデバイスの未補正進行方向を判定する段階、及び前記ユーザが進んだ複数の一連の物理的なステップのそれぞれに対して、前記ユーザの推定位置を判定する段階を含む、請求項１４から２３のいずれか一項に記載の方法。
【請求項２５】
請求項１４から２４のいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項２６】
請求項２５に記載のプログラムを格納する、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルナビゲーション及び位置追跡システムは一般に、スマートフォンなどのモバイルコンピューティングデバイスに含まれている。例えば、モバイルコンピューティングデバイスは、例えば、モバイルコンピューティングデバイスの全地球測位システム（ＧＰＳ）回路を用い、地図を参照して、各位置の間でユーザを案内するのに用いられることがある。しかし、そのようなシステムは、ネットワーク接続性及び／又はＧＰＳ接続性の必要に起因して、屋外用途に限定されることが頻繁にある。屋内ナビゲーション及び位置追跡の解決策は、ＧＰＳ及び／又は外部センサに頼ることなく、モバイルコンピューティングデバイスの位置を追跡することであることが多い。
【０００２】
モバイルコンピューティングデバイスは通常、データを収集するいくつかの慣性センサを含んでおり、データは、ユーザの推定位置など、ユーザの様々な状況を判定するために、例えば、内蔵された慣性測定ユニット（ＩＭＵ）により解析されてよい。「推測航法」とは、ユーザの現在位置を、直前に判定した位置、推定速度、及び経過時間に基づいて計算する１つの典型的なプロセスであり、これらは、慣性センサがもたらすセンサデータに基づいて判定されてよい。加速度計及び磁気計などの内蔵された慣性センサによって、モバイルコンピューティングデバイスが、ナビゲーション目的に（すなわち、歩行者推測航法のために）、ユーザのステップをカウントし、コンパスの測定値を記録することが可能になる。歩行者推測航法（ＰＤＲ）で、屋内ナビゲーションが可能となり、（例えばＧＰＳナビゲーションと比較して）電力消費が少なく、必要な事前情報も少なくて済むが、歩行者推測航法を正確に実行するには、いくつかの課題がある。例えば、建物内の大きな磁気歪みがある場所、及び／又はユーザの手の動きが、典型的なＰＤＲアルゴリズムのトレースを不正確にさせることがある。
【図面の簡単な説明】
【０００３】
本明細書で説明される概念が、添付の図に、限定としてではなく、例として示されている。説明を簡潔且つ明確にする目的で、図に示される要素は、必ずしも縮尺通りに描かれてはいない。適切とみなされる場合、対応する要素又は類似した要素を示すために、参照符号が各図の間で繰り返されている。
【０００４】
【図１】ユーザの位置を判定するための、モバイルコンピューティングデバイスの少なくとも１つの実施形態に関する簡略ブロック図である。
【０００５】
【図２】図１のモバイルコンピューティングデバイスの環境に関する、少なくとも１つの実施形態の簡略ブロック図である。
【０００６】
【図３】図１のモバイルコンピューティングデバイスを様々な方向で保持するユーザの簡略説明図である。
【０００７】
【図４】ユーザの位置を判定するための方法に関する、少なくとも１つの実施形態の簡略フロー図である。
【図５】ユーザの位置を判定するための方法に関する、少なくとも１つの実施形態の簡略フロー図である。
【図６】ユーザの位置を判定するための方法に関する、少なくとも１つの実施形態の簡略フロー図である。
【０００８】
【図７】磁気計による測定を利用するかどうかを判定するための方法に関する、少なくとも１つの実施形態の簡略フロー図である。
【０００９】
【図８】通常歩行モデルの簡略図である。
【００１０】
【図９】スイング歩行モデルの簡略図である。
【００１１】
【図１０】ユーザのステップ検出についての簡略図のセットである。
【００１２】
【図１１】図１のモバイルコンピューティングデバイスの環境に関する、少なくとも１つの実施形態の簡略ブロック図である。
【発明を実施するための形態】
【００１３】
本開示の概念は、様々な修正形態及び代替形態が可能であるが、それらの特定の実施形態が、例として図面に示されており、ここで詳細に説明されることになる。しかし、本開示の概念を開示される特定の形態に限定する意図はなく、むしろ、本開示及び添付された特許請求の範囲に適合する全ての修正形態、均等な形態、及び代替形態を包含することが意図されていることを理解されたい。
【００１４】
「１つの実施形態」、「ある実施形態」、「例示の実施形態」などへの本明細書における言及は、説明された実施形態が特定の特徴、構造、又は特性を含んでよいが、あらゆる実施形態が、その特定の特徴、構造、又は特性を含んでも、必ずしも含まなくてもよいことを示している。さらに、そのような語句は、必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、又は特性が、ある実施形態に関連して説明されている場合、明示的に説明されていてもいなくても、他の実施形態に関連して、そのような特徴、構造、又は特性をもたらすことは、当業者の知識の範囲内であるとされている。さらに、「少なくとも１つのＡ、Ｂ、及びＣ」という形態で列挙されたものに含まれる項目群は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ｂ及びＣ）、又は（Ａ、Ｂ、及びＣ）を意味し得ることを理解されたい。同様に、「Ａ、Ｂ、又はＣのうち少なくとも１つ」という形態で列挙された項目群は、（Ａ）、（Ｂ）、（Ｃ）、（Ａ及びＢ）、（Ｂ及びＣ）、又は（Ａ、Ｂ、及びＣ）を意味し得る。
【００１５】
開示された実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア、又はこれらの任意の組み合わせで実装されてよい。開示された実施形態は、１つ又は複数の一時的若しくは非一時的機械可読（例えば、コンピュータ可読）記憶媒体によって記憶されている、又はそこに格納されている命令としても実装されてよく、これらの命令は、１つ又は複数のプロセッサにより読み出され、実行されてよい。機械可読記憶媒体は、任意のストレージデバイス、メカニズム、又は機械が可読な形態で情報を格納又は送信するための他の物理構造として具現化されてよい（例えば、揮発性メモリ若しくは不揮発性メモリ、メディアディスク、又は他のメディアデバイス）。
【００１６】
図面には、いくつかの構造又は方法の特徴が、特定の構成及び／又は順序で示されていることがある。しかし、そのような特定の構成及び／又は順序は、必須でなくてよいことを理解されたい。むしろ、いくつかの実施形態において、そのような特徴は、説明図に示されたものと異なる方式及び／又は順序で構成されてもよい。さらに、特定の図に構造又は方法の特徴が含まれることで、そのような特徴が全ての実施形態に必要とされていると暗示することを意味するのではなく、いくつかの実施形態において、他の特徴を含まなくてよく、又は他の特徴と組み合わされてもよい。
【００１７】
次に図１を参照すると、歩行者推測航法の技法を用いてユーザの位置を判定するための、モバイルコンピューティングデバイス１００が示されている。使用時に、下記においてより詳細に説明されるように、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００の複数のセンサからセンサデータを収集して処理するように構成されている。例えば、これらのセンサは、モバイルコンピューティングデバイス１００の加速度、方向、及び／又は他の慣性特性（例えば、磁場）と関連したデータを収集することができる。センサデータの解析に基づいて、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００のユーザが（例えば、歩行している間に）物理的なステップをした時点を判定する。モバイルコンピューティングデバイス１００は、ユーザの様々な進行方向（例えば、未補正進行方向、推定進行方向など）、モバイルコンピューティングデバイス１００及びユーザの方向（例えば、互いに対して及び／又は直前の方向に対して）、並びにユーザが移動した距離（例えば、ユーザの推定歩幅に基づく）を判定する。さらに、モバイルコンピューティングデバイス１００は、ユーザが通常歩行（例えば、モバイルコンピューティングデバイス１００を、ユーザの横など、ほぼ同じ位置に保持して歩行）か、スイング歩行（例えば、モバイルコンピューティングデバイス１００をユーザの横で前後に揺り動かしながら歩行）かを判定することができる。さらに、モバイルコンピューティングデバイス１００は、ユーザが著しい磁気歪みの場所の近辺にいるかどうかを判定することができる。本明細書で説明されるように、モバイルコンピューティングデバイス１００は、ユーザの歩行に応じて、及び／又は著しい磁気歪みが確認されたかどうかに応じて、ユーザの位置を推定する様々な技法を利用してよいことが理解されよう。本明細書で説明されるこれらの技術が有用であり、屋内及び屋外の両方の位置追跡に等しく適用されることをさらに理解されたい。
【００１８】
モバイルコンピューティングデバイス１００は、本明細書で説明される機能を実行することが可能な任意の種類のコンピューティングデバイスとして、具現化されてよい。例えば、モバイルコンピューティングデバイス１００は、スマートフォン、携帯電話、ウェアラブルコンピューティングデバイス、携帯情報端末、モバイルインターネットデバイス、タブレットコンピュータ、ネットブック、ノートブック、ウルトラブック、ラップトップコンピュータ、及び／又は他のモバイルコンピューティング／通信デバイスとして具現化されてよい。図１に示されるように、例示のモバイルコンピューティングデバイス１００には、プロセッサ１１０、入出力（「Ｉ／Ｏ」）サブシステム１１２、メモリ１１４、データストレージ１１６、及び１つ又は複数のセンサ１１８が含まれる。もちろん、他の実施形態において、モバイルコンピューティングデバイス１００は、典型的なコンピューティングデバイスに一般に見られるコンポーネント（例えば、様々な入出力デバイス及び／又は他のコンポーネント）など、他の又は追加のコンポーネントを含んでよい。さらに、いくつかの実施形態において、例示のコンポーネントのうち１つ又は複数が、別のコンポーネントに組み込まれてよく、そうでなければ別のコンポーネントの一部を形成してもよい。例えば、いくつかの実施形態において、メモリ１１４又はその一部は、プロセッサ１１０に組み込まれてよい。
【００１９】
プロセッサ１１０は、本明細書で説明される機能を実行することが可能な、任意の種類のプロセッサとして具現化されてよい。例えば、プロセッサは、シングルコア若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、又は他のプロセッサ若しくは処理／制御回路として具現化されてよい。同様に、メモリ１１４は、本明細書で説明される機能を実行することが可能な、任意の種類の揮発性メモリ若しくは不揮発性メモリ、又はデータストレージとして具現化されてよい。動作時に、メモリ１１４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなど、モバイルコンピューティングデバイス１００の動作中に用いられる様々なデータ及びソフトウェアを格納してよい。メモリ１１４は、Ｉ／Ｏサブシステム１１２を介して、プロセッサ１１０に通信可能に結合されており、Ｉ／Ｏサブシステム１１２は、モバイルコンピューティングデバイス１００のプロセッサ１１０、メモリ１１４、及び他のコンポーネントとの入出力動作を容易にする回路及び／又はコンポーネントとして具現化されてよい。例えば、Ｉ／Ｏサブシステム１１２は、メモリコントローラハブ、入出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板配線など）、並びに／又は入出力動作を容易にする他のコンポーネント及びサブシステムとして具現化されてよく、そうでなければこれらを含んでよい。いくつかの実施形態において、Ｉ／Ｏサブシステム１１２は、システムオンチップ（ＳｏＣ）の一部を形成して、モバイルコンピューティングデバイス１００のプロセッサ１１０、メモリ１１４、及び他のコンポーネントと共に単一の集積回路チップに組み込まれてよい。
【００２０】
データストレージ１１６は、例えば、メモリデバイス及びメモリ回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、又は他のデータストレージデバイスなど、データの短期又は長期保管用に構成された任意の種類の１つ又は複数のデバイスとして具現化されてよい。例示の実施形態において、データストレージ１１６及び／又はメモリ１１４は、１つ又は複数のユーザ歩行モデル１３０、決定木１３２、派生データ（例えば、ユーザ位置ウェイポイント）、及び／又は、例えば、図２に関して後述されるように、モバイルコンピューティングデバイス１００の動作中に有用な様々な他のデータを格納してよい。
【００２１】
例示の実施形態において、センサ１１８は、モバイルコンピューティングデバイス１００の加速度、方向、及び／又は他の慣性特性と関連したデータを生成し、作り出し、又は収集することが可能な任意の種類のセンサとして具現化されてよい。もちろん、いくつかの実施形態において、センサ１１８は、本明細書で説明される機能を実行するときに、モバイルコンピューティングデバイス１００により用いられ得る他のデータを収集してよい。様々な実施形態において、センサ１１８は、例えば、慣性センサ、近接センサ、光学センサ、光センサ、音声センサ、温度センサ、モーションセンサ、圧電センサ、圧力センサ、及び／又は、下記においてより詳細に説明されるように、モバイルコンピューティングデバイス１００のユーザの位置を判定するにあたって、有用なデータを生成する他の種類のセンサとして具現化されてよく、そうでなければこれらを含んでよい。例えば、例示の実施形態において、センサ１１８には、１つ又は複数の加速度計１２４、１つ又は複数のジャイロスコープ１２６、及び１つ又は複数の磁気計１２８が含まれる。それぞれの加速度計１２４は、（例えば、モバイルコンピューティングデバイス１００の３次元軸のそれぞれに沿った）モバイルコンピューティングデバイス１００の加速度及び／又は他の動きを測定するように構成された、任意のセンサ、回路、及び／又は他のコンポーネントとして具現化されてよい。それぞれのジャイロスコープ１２６は、予め定義された座標系に対するモバイルコンピューティングデバイス１００の角度方向を測定するように構成された、任意のセンサ、回路、及び／又は他のコンポーネントとして具現化されてよい。すなわち、ジャイロスコープ１２６は、モバイルコンピューティングデバイス１００のロール角、ピッチ角、及び／又はヨー角を測定することができる。それぞれの磁気計１２８は、モバイルコンピューティングデバイス１００が（例えば、真北に対して）向いている方向を判定するにあたって有用な、磁場及び／又は他の情報を測定するように構成された任意のセンサ、回路、及び／又は他のコンポーネント（例えば、コンパス）として具現化されてよい。もちろん、モバイルコンピューティングデバイス１００は、センサ１１８の使用を容易にするように構成された、コンポーネント及び／又はデバイス（例えば、慣性測定ユニット）も含んでよい。後述されるように、いくつかの実施形態において、モバイルコンピューティングデバイス１００は、磁気歪みが確認された場合に、（例えば、磁気計を用いずに）測定値／判定値を生成する１つの慣性測定ユニット（ＩＭＵ）と、磁気歪みが確認されなかった場合に測定値／判定値を生成する別のＩＭＵとを含んでよい。
【００２２】
いくつかの実施形態において、モバイルコンピューティングデバイス１００は通信回路１２０も含んでよい。通信回路１２０は、モバイルコンピューティングデバイス１００と他のリモートデバイスとの間でネットワーク（不図示）を通じた通信をできるようにすることが可能な、任意の通信回路、デバイス、又はこれらの集合として具現化されてよい。通信回路１２０は、任意の１つ又は複数の通信技術（例えば、無線通信又は有線通信）、及び関連プロトコル（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ（登録商標）など）を用い、例えば、ネットワークの種類に応じて、そのような通信を行うように構成されてよく、ネットワークは、モバイルコンピューティングデバイス１００とリモートデバイスとの間の通信を容易にすることが可能な、任意の種類の通信ネットワークとして具現化されてよい。
【００２３】
モバイルコンピューティングデバイス１００は、いくつかの実施形態において、１つ又は複数の周辺デバイスも含んでよい。周辺デバイス１２２は、任意の数の追加周辺デバイス又はインタフェースデバイスを含んでよい。周辺デバイス１２２に含まれる特定のデバイスは、例えば、モバイルコンピューティングデバイス１００の種類及び／又は使用目的によって決まってよい。
【００２４】
次に図２を参照すると、使用時に、モバイルコンピューティングデバイス１００が、ユーザの位置を判定するための環境２００を確立する。後述されるように、モバイルコンピューティングデバイス１００は、ユーザの進行方向を推定し、ユーザの推定進行方向、ユーザの推定歩幅、及びユーザの直前の位置（例えば、ステップする前の、ユーザの進行方向が計算されたユーザの位置）に基づいてユーザの推定位置を判定する。いくつかの実施形態において、モバイルコンピューティングデバイス１００は、ユーザのそれぞれの物理的なステップに応答して、ユーザの進行方向を判定してよく、及び／又はユーザの位置を推定してよいことを理解されたい。下記においてより詳細に説明されるように、モバイルコンピューティングデバイス１００は、磁気歪み及び／又はユーザによるモバイルコンピューティングデバイス１００の様々な動き（例えば、スイング歩行、傾斜、回転など）を考慮してよい。さらに、ユーザの１つ又は複数のステップに対する判定された進行方向、及び／又はユーザの判定位置は、様々な基準に基づいて無視されてよく、そうでなければ補正されてよい。
【００２５】
モバイルコンピューティングデバイス１００の例示の環境２００には、センサ処理モジュール２０２、進行方向判定モジュール２０４、及び位置判定モジュール２０６が含まれる。さらに、センサ処理モジュール２０２には、歩行分類モジュール２０８、磁気歪み検出モジュール２１０、ステップ検出モジュール２１２、及び慣性測定モジュール２１４が含まれる。示されるように、例示のステップ検出モジュール２１２には、通常歩行ステップ検出モジュール２１６及びスイング歩行ステップ検出モジュールが含まれる。さらに、例示の進行方向判定モジュール２０４には、未補正進行方向推定モジュール２２０、運動管理モジュール２２２、及びカルマンフィルタモジュール２２４が含まれる。さらに、位置判定モジュール２０６には、歩幅推定モジュール２２６及び位置補正モジュール２２８が含まれる。
【００２６】
環境２００のそれぞれのモジュールは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとして具現化されてよい。例えば、環境２００の様々なモジュール、ロジック、及び他のコンポーネントは、モバイルコンピューティングデバイス１００のプロセッサ１１０、又は他のハードウェアコンポーネントの一部を形成してよく、そうでなければそれらによって確立されてもよい。したがって、いくつかの実施形態において、環境２００のモジュール群のうち１つ又は複数が、回路又は電気デバイスの集合として具現化されてよい（例えば、センサ処理回路、進行方向判定回路、位置判定回路、歩行分類回路、磁気歪み回路、ステップ検出回路、慣性測定回路、通常歩行ステップ検出回路、スイング歩行ステップ検出回路、未補正進行方向推定回路、運動管理回路、カルマンフィルタ回路、歩幅推定回路、及び／又は、位置補正回路）。さらに、いくつかの実施形態において、例示のモジュール群のうち１つ又は複数が、別のモジュールの一部を形成してよく、及び／又は、例示のモジュール群のうち１つ又は複数が互いに独立していてよい。さらに、いくつかの実施形態において、モジュール群のうち１つ又は複数（例えば、運動管理モジュール２２２、カルマンフィルタモジュール２２４、及び／又は位置補正モジュール２２８）が環境２００から省略されてよい。いくつかの実施形態において、モバイルコンピューティングデバイス１００は代替的に、環境２００のモジュール／回路と類似したモジュール／回路を含む図１１に示されるような環境１１００を含んでよい。したがって、これらのモジュール／回路のそれぞれについての説明は、説明を明確にするために省略されている。
【００２７】
センサ処理モジュール２０２は、センサ１１８により収集されたデータを解析するか、又は処理する。上述されたように、例示のセンサ処理モジュール２０２には、歩行分類モジュール２０８、磁気歪み検出モジュール２１０、ステップ検出モジュール２１２、及び慣性測定モジュール２１４が含まれる。歩行分類モジュール２０８は、ユーザの歩行を分類するように構成されている。具体的には、例示の実施形態において、歩行分類モジュール２０８は、ユーザの歩行が通常歩行を示しているか、又はスイング歩行を示しているかを判定する。本明細書で説明されるように、「通常歩行」は、モバイルコンピューティングデバイス１００をユーザの横、又はユーザの身体若しくは胴に対して安定した別の位置に保持しながら歩行するユーザを含んでよく、「スイング歩行」は、モバイルコンピューティングデバイス１００をユーザの横に沿って前後に、及び／又は別の好適な方向に揺り動かす（例えば、振り子運動状態にある）ユーザを含んでよい。本明細書には２つの歩行分類だけが説明されているが、他の実施形態において、歩行分類モジュール２０８は、ユーザの歩行に関して追加及び／又は代替の分類を利用してよい。
【００２８】
いくつかの実施形態において、上述されたようなデータストレージ１１６に格納され得る決定木１３２又は好適な確率モデルに基づいて、歩行分類モジュール２０８はユーザの歩行を分類してよい。決定木１３２は、（例えば、ユーザが通常歩行又はスイング歩行であると知られているいくつかの場合において得られた）トレーニングデータのセットに基づいて、モバイルコンピューティングデバイス１００又は別のコンピューティングデバイスにより生成されてよいことを理解されたい。具体的には、機械学習アルゴリズムが、決定木１３２を生成するのに利用されてよい。歩行分類モジュール２０８は、ユーザの歩行に関する様々な検知特性を解析してよく、歩行分類モジュール２０８は、ユーザの歩行を、慣性特性の点で通常歩行又はスイング歩行と相関させるように構成されてよい。いくつかの実施形態において、決定木１３２は、例えば、モバイルコンピューティングデバイス１００の振り子運動の平均間隔、モバイルコンピューティングデバイス１００の振り子運動の平均ピーク、予め定義された期間におけるモバイルコンピューティングデバイス１００の軸方向運動の量、及び／又は他の好適なパラメータを含む、複数のパラメータ／特徴を利用してよい。
【００２９】
磁気歪み検出モジュール２１０は、ユーザの進行方向（例えば、未補正進行方向）を判定するにあたって、磁気測定値（例えば、磁場データ）を利用するかどうかを判定するように構成されている。例えば、いくつかの実施形態において、磁気歪み検出モジュール２１０は、モバイルコンピューティングデバイス１００が（例えば、許容閾値を超える磁気歪みをもたらす）大規模な磁場の近辺にいるかどうかを判定してよい。その場合、磁気歪み検出モジュール２１０は、磁気計による測定を利用しない（例えば、加速度及び方向／ジャイロスコープの慣性データだけに頼る）と判定してよい。
【００３０】
ステップ検出モジュール２１２は、ユーザがいつ物理的なステップをしたかを検出する。上述されたように、例示のステップ検出モジュール２１２には、通常歩行ステップ検出モジュール２１６及びスイング歩行ステップ検出モジュール２１８が含まれる。例示の実施形態において、ステップ検出モジュール２１２は、ユーザの歩行を通常歩行又はスイング歩行として分類することに基づいて、通常歩行ステップ検出モジュール２１６を利用するか、スイング歩行ステップ検出モジュール２１８を利用するかを判定する。いくつかの実施形態において、通常歩行ステップ検出モジュール２１６及びスイング歩行ステップ検出モジュール２１８は、並行して動作してよく、それに応じてステップ検出モジュール２１２は、歩行分類モジュール２０８の判定に基づき、適切なモジュール２１６、２１８を選択してよい。
【００３１】
例示の実施形態において、通常歩行ステップ検出モジュール２１６は、ユーザが物理的なステップをしたかどうかを、加速度計１２４から収集したセンサデータに基づいて（例えば、モバイルコンピューティングデバイス１００の加速度の大きさの変化を解析することで）判定する。他の実施形態において、通常歩行ステップ検出モジュール２１６は、センサ１１８の別のセットにより収集されたセンサデータに基づいて、ユーザの物理的なステップを検出してよい。いくつかの実施形態において、ステップ検出モジュール２１２は、歩数計又は類似のモジュールとして具現化されてよいことを理解されたい。
【００３２】
スイング歩行ステップ検出モジュール２１８はまた、加速度計１２４から収集したセンサデータに基づいて、ユーザが物理的なステップをしたかどうかを判定する。具体的には、図１０に示され、また後述されるように、スイング歩行ステップ検出モジュール２１８は、第１のローパスフィルタ（例えば、高いカットオフ周波数を有する）をモバイルコンピューティングデバイス１００の検知された加速度に適用して、第１の加速度関数を生成してよく、また第２のローパスフィルタ（例えば、低いカットオフ周波数を有する）を当該加速度に適用して、第２の加速度関数を生成してよい。さらに、スイング歩行ステップ検出モジュール２１８は、第１の加速度関数及び第２の加速度関数に基づいて正弦関数を判定してよく、また正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別してよい。いくつかの実施形態において、第１の加速度関数（すなわち、高いカットオフ周波数に基づく）は正弦波形であってよく、第２の加速度関数（すなわち、低いカットオフ周波数に基づく）は歩行中のユーザの平均加速度を示してよい。
【００３３】
より具体的には、いくつかの実施形態において、スイング歩行ステップ検出モジュール２１８は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って第１の加速度を判定し、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って第２の加速度関数を判定し、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って正弦関数を判定してよい。ここで、ＳＡ（ｋ）は第１の加速度関数であり、ＳＢ（ｋ）は第２の加速度関数であり、γ１は第１のローパスフィルタのフィルタリングパラメータであり、γ２は第２のローパスフィルタのフィルタリングパラメータであり、αｍａｇ（ｋ）はステップｋでの加速度の大きさであり、αｍａｇ（ｋ−１）は直前のステップｋ−１での加速度の大きさである。角度θは、例示の実施形態において、ユーザの腕と重力の方向との間の角度を示すことを理解されたい。いくつかの実施形態において、フィルタリングパラメータは、１／８及び１／３２に等しくてよい。
【００３４】
図１０に示されるように、グラフ１０００は、モバイルコンピューティングデバイス１００の加速度の大きさを時間と共にプロットしており、グラフ１００２は、スイング歩行中の正弦関数ｃｏｓ（θｋ）を時間と共にプロットしている。いくつかの実施形態において、加速度に基づいたグラフ１０００のピークは、正弦関数に基づいたグラフ１００２のピークほど明白ではないことを理解されたい。いくつかの実施形態において、スイング歩行ステップ検出モジュール２１８は、スイング歩行中のユーザの物理的なステップを示した、グラフ１０００及び１００２のうち一方又は両方のピークのそれぞれを識別してよい。さらに、いくつかの実施形態において、グラフ１０００、１００２は、ユーザがモバイルコンピューティングデバイス１００を前後に揺り動かしている時点を判定するのに利用されてもよい。例えば、いくつかの実施形態において、グラフ１０００の小さいピーク１００４の直後にグラフ１００２のピーク１００６が続くことで、モバイルコンピューティングデバイス１００を前方に揺り動かしていることが示されてよく、グラフ１０００の大きいピーク１００８の直後にグラフ１００２のピーク１０１０が続くことで、モバイルコンピューティングデバイスを後方に揺り動かしていることが示されてよい。もちろん、他の実施形態において、スイング歩行ステップ検出モジュール２１８が、スイング歩行中のユーザのステップを検出するために、他の好適な技法を利用してよいことを理解されたい。
【００３５】
図２に戻って参照すると、慣性測定モジュール２１４は、モバイルコンピューティングデバイス１００の慣性特性と関連したセンサデータを処理するように構成されている。例えば、慣性測定モジュール２１４は、センサデータを進行方向判定モジュール２０４が使用できる形式に変換してよい。いくつかの実施形態において、慣性測定モジュール２１４は、モバイルコンピューティングデバイス１００の加速度計１２４、ジャイロスコープ１２６、磁気計１２８、及び／又は他のセンサ１１８によって収集されたデータを処理し、例えば、加速度、傾斜、及び方向など、モバイルコンピューティングデバイス１００の運動特性を判定するように構成された、１つ又は複数の慣性測定ユニット（ＩＭＵ）として具現化されてよい。
【００３６】
本明細書に説明されるように、いくつかの実施形態において、慣性測定モジュール２１４は、著しい磁気歪み（すなわち、閾値を超えた歪み）が確認された場合に、（磁気計１２８のデータではなく）加速度計１２４及びジャイロスコープ１２６のデータを利用する第１のＩＭＵと、そのような磁気歪みが確認されていない場合に、加速度計１２４、ジャイロスコープ１２６、及び磁気計１２８のデータを利用する第２のＩＭＵとを含んでよい。いくつかの実施形態において、第１のＩＭＵは、回転ベクトルセンサとして具現化されてよい。特定の実施形態に応じて、これらのＩＭＵは並行して動作してよく、又は、慣性測定モジュール２１４は、適切なＩＭＵを選択した後、それに応じてデータを生成してよい。他の実施形態において、単一のＩＭＵが利用されてよく、慣性測定モジュール２１４は、磁気歪みが存在する状況において、磁気計１２８のデータを無視してよい。慣性測定モジュール２１４は、独立したモジュールとして具現化されてよく、又はモバイルコンピューティングデバイス１００に関する１つ又は複数の他のモジュール／回路の一部を形成してよいことを理解されたい。
【００３７】
進行方向判定モジュール２０４は、ユーザの進行方向を推定するために様々なデータを解析し、その結果は、ユーザの位置を判定及び／又は追跡するために、位置判定モジュール２０６により用いられてよい。上述されたように、例示の実施形態において、進行方向判定モジュール２０４には、未補正進行方向推定モジュール２２０、運動管理モジュール２２２、及びカルマンフィルタモジュール２２４が含まれる。
【００３８】
未補正進行方向推定モジュール２２０は、モバイルコンピューティングデバイス１００の検知された慣性特性、及び／又は（例えば、慣性測定モジュール２１４からの）処理されたセンサデータ、並びにユーザが物理的なステップをしたという（例えば、ステップ検出モジュール２１２からの）インジケーションに基づいて、モバイルコンピューティングデバイス１００の「未補正」進行方向を判定する。例示の実施形態において、未補正進行方向推定モジュール２２０は、モバイルコンピューティングデバイス１００及び／又はユーザの進行方向、並びにモバイルコンピューティングデバイス１００の直前の方向に対するモバイルコンピューティングデバイス１００の方向を、例えば、モバイルコンピューティングデバイス１００の検知された慣性特性に基づいて判定する。例えば、未補正進行方向推定モジュール２２０は、直前のステップ（例えば、ユーザの最後から２番目のステップ）におけるモバイルコンピューティングデバイス１００の方向に対する、現在のステップにおけるモバイルコンピューティングデバイス１００の方向の変化を判定してよい。
【００３９】
後述されるように、いくつかの実施形態において、未補正進行方向推定モジュール２２０は、モバイルコンピューティングデバイス１００の検知された加速度を地球座標系に変換し、モバイルコンピューティングデバイス１００の方向速度を判定するために加速度を積分する。状況によっては、未補正進行方向推定モジュール２２０は、モバイルコンピューティングデバイス１００及びユーザが同じ速度で移動し、したがって、モバイルコンピューティングデバイス１００の速度の大きさ及び／又は方向の推定が、ユーザの速度の大きさ及び／又は方向を近似してよいと仮定することを理解されたい。例示の実施形態において、モバイルコンピューティングデバイス１００の進行方向は、モバイルコンピューティングデバイス１００の判定速度の方向として判定されるか、そうでなければそれに基づいて判定される。しかし、他の実施形態において、モバイルコンピューティングデバイス１００の判定速度の大きさは、モバイルコンピューティングデバイス１００の進行方向を判定することにも用いられてよい。後述されるように、未補正進行方向推定モジュール２２０は、ユーザの現在の歩行と対応するユーザ歩行モデル１３０（例えば、通常歩行モデル、又はスイング歩行モデル）に基づいて、速度を判定してよい。
【００４０】
場合によっては、モバイルコンピューティングデバイス１００がユーザに対して固定された方向に維持されるように、ユーザは、モバイルコンピューティングデバイス１００を自分の前に保持してよい。これらの状況では、モバイルコンピューティングデバイス１００の動きは概して、ステップ動作（すなわち、ユーザの歩く動きに関連した動作）に限定される。しかし、典型的な状況では、ユーザはモバイルコンピューティングデバイス１００を無造作に保持することがあり、その結果、取り付け位置（すなわち、モバイルコンピューティングデバイス１００が保持されている方向）が時間と共に変化し得る。例えば、ユーザは、モバイルコンピューティングデバイス１００を縦長方向（すなわち、ユーザに対して０度）から横長方向（すなわち、ユーザに対して９０度）に回転させ、モバイルコンピューティングデバイス１００を自分のポケットに入れ、モバイルコンピューティングデバイス１００を傾け（例えば、前方／下方に、又は後方／上方に）、歩行している間にモバイルコンピューティングデバイス１００を（例えば、ユーザの横に対して）揺り動かし、及び／又は、そうでなければモバイルコンピューティングデバイス１００の位置を変えることがある。典型的なＰＤＲの実施態様では、誤差を最小化／低減しつつ、そのような非ステップ動作を処理することには困難がある（すなわち、グラウンドトゥルースと比較した場合）ことを理解されたい。
【００４１】
運動管理モジュール２２２は、進行方向判定モジュール２０４がユーザの進行方向をより正確に推定することを可能にするために、様々な非ステップ動作（例えば、ユーザによるモバイルコンピューティングデバイス１００の傾斜及び回転）を考慮する。そうするために、運動管理モジュール２２２は、ユーザの手の動きを検出してよい。具体的には、例示の実施形態において、運動管理モジュール２２２が、モバイルコンピューティングデバイス１００の方向に対するモバイルコンピューティングデバイス１００の傾斜（すなわち、非水平面における回転）を直前のステップで検出した場合、運動管理モジュール２２２は、検出された物理的なステップを無視する。後述されるように、モバイルコンピューティングデバイス１００は、ユーザの進行方向を推定するのにカルマンフィルタを利用してよい。換言すると、運動管理モジュール２２２は、検出されたステップと関連したデータがカルマンフィルタによって処理されないようにしてよく、又はそうでなければ、カルマンフィルタはそのデータを受け付けない。モバイルコンピューティングデバイス１００が、次のステップで相対傾斜を持たない場合、運動管理モジュール２２２は再度、カルマンフィルタにデータが送信されて、カルマンフィルタにより処理されることを可能にしてよい。いくつかの実施形態において、運動管理モジュール２２２は相対傾斜の閾値量を確立してよく、ステップを無視するには、運動がそれを超えなければならないことを理解されたい。そのような実施形態は、例えば、歩く動き、及び／又は進行方向推定の精度に影響を与えない動きと共通する小量の傾斜を考慮してよい。いくつかの実施形態において、モバイルコンピューティングデバイス１００を傾斜させるそのような動きが、本明細書で説明されるように補償されない場合、結果として、ガウスノイズ又はホワイトノイズを近似しない状態遷移誤差εｋをもたらし得る。
【００４２】
運動管理モジュール２２２はまた、水平面に沿った回転運動も考慮する。水平面に沿ったモバイルコンピューティングデバイス１００の大きな回転運動は、ユーザの動き、したがってユーザの進行方向と関連しても、関連しなくてもよいことを理解されたい。例えば、大きな回転運動（例えば、９０度）は、ユーザが向きを変えること、ユーザがモバイルコンピューティングデバイス１００を自身に対して回転させること、又はこれらの動きの組み合わせと関連することがある。水平回転と関連した傾斜がない場合、及び／又は傾斜が基準閾値を超えていない場合、運動管理モジュール２２２は、上述されたように、カルマンフィルタによるデータの処理を妨げない。
【００４３】
そうではなく、この回転運動が考慮されないままの場合、モバイルコンピューティングデバイス１００のユーザに対する動きは、不正確なユーザの進行方向推定につながり得ることを理解されたい。例示の実施形態において、水平回転運動が基準閾値（例えば、７５度、９０度、１００度など）を超えた場合、運動管理モジュール２２２は、後述されるように、モバイルコンピューティングデバイス１００の相対方向（Ｏｋ−Ｏｋ−１）に関連した測定をもはや当てにしない。１つの特定の実施形態において、基準閾値は９０度の回転であり、その理由は、１度の物理的なステップで９０度回転するのは不自然であり、したがって普通起こらないからである。したがって、運動管理モジュール２２２は、カルマンフィルタを再初期化し、フィルタの状態共分散Ｐを増加させることで、カルマンフィルタの誤差の許容範囲を拡大する。換言すると、運動管理モジュール２２２は、後述されるカルマンフィルタの初期化及びパラメータを少なくとも部分的に処理する適応型コントローラとして働くことができる。状況によっては、運動管理モジュール２２２は、モバイルコンピューティングデバイス１００の非ステップ動作を考慮しなくてよい（又は十分に考慮しなくてよい）ことをさらに理解されたい。
【００４４】
カルマンフィルタモジュール２２４は、モバイルコンピューティングデバイス１００の未補正進行方向、及びモバイルコンピューティングデバイス１００の方向の変化（すなわち、直前のステップでの方向に対するモバイルコンピューティングデバイス１００の方向）に基づいて、ユーザの進行方向を判定するためにカルマンフィルタを適用するように構成されている。上述されたように、カルマンフィルタモジュール２２４は、（例えば、運動管理モジュール２２２とともに）カルマンフィルタからの様々なデータを受け付けなくてよく、（例えば、測定／検出されたユーザの第１のステップの前に）カルマンフィルタを初期化してよく、及び／又は、様々な時点でカルマンフィルタを再初期化してよい。例示の実施形態において、カルマンフィルタモジュール２２４は、下記に図３を参照して説明されている例示のＰＤＲモデルに基づいて、ユーザのリアルタイムの進行方向を推定するために、カルマンフィルタを適用する。
【００４５】
次に図３を参照すると、ユーザ３００が、異なる物理的なステップ３０２、３０４、３０６で様々な進行方向（Ｈｋ−１、Ｈｋ、Ｈｋ＋１）を向いて示されており、ある座標系に対して様々な方向（Ｏｋ−１、Ｏｋ、Ｏｋ＋１）にモバイルコンピューティングデバイス１００を保持している。例示のステップ３０２、３０４、３０６において、Ｏｋは、ステップｋにおける水平面内のモバイルコンピューティングデバイス１００の方向であり、Ｈｋは、ステップｋにおけるユーザの進行方向であり、Ｒｋは、ステップｋにおけるデバイスの方向とユーザの進行方向との間の相対角度であることを理解されたい。より具体的には、第１のステップ３０２で、ユーザ３００は当該座標系に対して０度の進行方向Ｈｋ−１にあり、モバイルコンピューティングデバイス１００は０度の方向Ｏｋ−１にあり、両者の間に画定される相対角度Ｒｋ−１は０度である。第２のステップ３０４で、ユーザ３００は０度の進行方向Ｈｋにあり、モバイルコンピューティングデバイス１００は９０度の方向Ｏｋにあり、相対角度Ｒｋは９０度である。さらに、第３のステップ３０６で、ユーザ３００は４５度の進行方向Ｈｋ＋１にあり、モバイルコンピューティングデバイス１００は１３５度の方向Ｏｋ＋１にあり、相対角度Ｒｋ＋１は９０度である。
【００４６】
ステップｋではＨｋ＝Ｏｋ＋Ｒｋであり、ステップｋにおけるユーザの進行方向の変化は、Ｈｋ−Ｈｋ−１＝（Ｏｋ−Ｏｋ−１）＋（Ｒｋ−Ｒｋ−１）に従い、ＰＤＲモデルで計算されてよいことを理解されたい。例示のＰＤＲモデルにおいて、Ｏｋ−Ｏｋ−１は、モバイルコンピューティングデバイス１００のステップｋにおける（すなわち、ステップｋ−１に対する）方向の変化を表し、検知されたモバイルコンピューティングデバイス１００の慣性特性に基づいて、慣性測定モジュール２１４により判定されてよい。さらに、Ｒｋ−Ｒｋ−１は、ステップｋにおける（すなわち、ステップｋ−１に対する）ユーザ３００とモバイルコンピューティングデバイス１００との間の相対角度の変化を表す。ほとんどの状況で、Ｒｋ−Ｒｋ−１は０となるが、それは、ほとんどのユーザがＰＤＲ中にモバイルコンピューティングデバイス１００の取り付け位置／方向を頻繁に変えないからである。
【００４７】
カルマンフィルタが、定義された状態遷移関数及び測定関数ｙｋに基づいて、フィルタ状態ｘｋを推定するのに適用されてよいことを理解されたい。例示の実施形態において、フィルタ状態ｘｋは、ユーザの進行方向Ｈｋと定義されている。換言すると、ｘｋ＝Ｈｋである。上述されたＰＤＲモデルに基づいて、状態遷移関数が、ｘｋ＝ｘｋ−１＋Ｏｋ−Ｏｋ−１＋εｋと定義されており、εｋはステップｋでの状態遷移誤差である。さらに、上述されたように、ｘｋは、ステップｋにおける判定されたユーザの進行方向であり、Ｏｋは、ステップｋにおけるモバイルコンピューティングデバイス１００の方向である。例示の実施形態において、状態遷移誤差は、Ｏｋ−Ｏｋ−１の判定に関連した測定誤差、及びモバイルコンピューティングデバイス１００の位置／方向変化の誤差Ｒｋ−Ｒｋ−１を含む。例示の実施形態において、カルマン関数は（例えば、フィルタの安定性を確保するために）Ｒｋ−Ｒｋ−１＝０と仮定することを理解されたい。しかし、そうならない場合があるので、運動管理モジュール２２２は、上述されたように、Ｒｋ−Ｒｋ−１≠０の状況を処理してよい。さらに、測定関数ｙｋは、ｙｋ＝ｘｋ＋δｋと定義されてよく、ここで、ｙｋは、上述されたようにモバイルコンピューティングデバイス１００の未補正進行方向であり、δｋは、モバイルコンピューティングデバイス１００の加速度の積分に関連した測定誤差である。
【００４８】
図２に戻ると、例示の実施形態において、カルマンフィルタモジュール２２４は、上述されたように、状態遷移関数ｘｋ＝ｘｋ−１＋Ｏｋ−Ｏｋ−１＋εｋと、測定関数ｙｋ＝ｘｋ＋δｋとを有する線形カルマンフィルタを適用することで、ユーザの推定進行方向を判定してよい。他の実施形態において、カルマンフィルタモジュール２２４は、ユーザの進行方向を判定するために、カルマンフィルタの他の変形形態を適用してよい。例えば、いくつかの実施形態において、カルマンフィルタモジュール２２４は、状態遷移関数ｘｋ＝Ｈｋ−Ｈｋ−１＝Ｏｋ−Ｏｋ−１＋εｋと、測定関数ｙｋ＝ｘｋ＋Ｈｋ−１＋δｋとを有するカルマンフィルタを適用してよく、ここで、Ｈｋは、ステップｋにおけるユーザの推定進行方向であり、ｘｋは、ステップｋにおける推定進行方向の変化であり、Ｏｋは、ステップｋにおけるモバイルコンピューティングデバイスの方向であり、εｋは、ステップｋにおける状態遷移誤差であり、ｙｋは、ステップｋにおけるモバイルコンピューティングデバイスの判定された進行方向（例えば、方向速度）であり、δｋは、ステップｋにおけるモバイルコンピューティングデバイスの加速度の積分と関連した測定誤差である。さらに他の実施形態において、カルマンフィルタモジュール２２４及び／又は進行方向判定モジュール２０４は、追加的に又は代替的に、上述されたＰＤＲモデルに基づいて、別のフィルタ（例えば、推定用の別のディスクリートフィルタ）を適用してよい。
【００４９】
位置判定モジュール２０６は、判定されたユーザの進行方向、ユーザの推定歩幅、直前の物理的なステップにおけるユーザの位置に基づいて、ユーザの推定位置を判定する。例えば、位置判定モジュール２０６は、ユーザが、判定されたユーザの進行方向の方向に、直前の位置からユーザの歩幅に対応する距離だけ離れたところに位置していると判定してよい。上述されたように、例示の実施形態において、位置判定モジュール２０６には、歩幅推定モジュール２２６及び位置補正モジュール２２８が含まれる。
【００５０】
歩幅推定モジュール２２６は、ユーザ歩行モデル１３０に基づいて、ユーザの推定歩幅を判定する。特定の実施形態に応じて、ユーザ歩行モデル１３０は、ユーザの歩幅の推定を含む汎用モデル（例えば、１つのサイズが全てのモデルに適合する）であってよく、又はユーザ歩行モデル１３０は、ユーザ固有のモデルであってもよい。例示の実施形態において、歩幅推定モジュール２２６は、本明細書で説明されたように、現在ユーザが普通に歩行しているか、又はスイング歩行をしているかに基づいて、適切なユーザ歩行モデル１３０（例えば、通常歩行又はスイング歩行）を選択してよい。さらに、いくつかの実施形態において、ユーザ固有のユーザ歩行モデル１３０が生成されてよく、又はユーザとの「トレーニング期間」の後に、汎用モデルが適応されてよい。例えば、モバイルコンピューティングデバイス１００は、一定のステップをするようにユーザに要請して、移動した距離を測定してよい。さらに、いくつかの実施形態において、ユーザ歩行モデル１３０は、ユーザが歩行しているのか、ジョギングしているのか、走っているのか、そうでなければ速く歩いているのかに応じて、歩幅を変えることを含んでよく、これは、センサ１１８により収集されたセンサデータの解析に基づいて判定されてよい。他の実施形態において、歩幅推定モジュール２２６は、（例えば、ユーザ歩行モデル１３０を用いても、用いなくても）モバイルコンピューティングデバイス１００のセンサ１１８により収集されたデータに基づいて、ユーザの推定歩幅を判定してよい。
【００５１】
位置補正モジュール２２８は、様々な要因に基づいて、ユーザの推定位置を補正するように構成されている。上述されたように、カルマンフィルタは（例えば、水平回転運動の基準閾値を超える、モバイルコンピューティングデバイス１００の回転運動に応答して）運動管理モジュール２２２及び／又はカルマンフィルタモジュール２２４により再初期化されてよい。カルマンフィルタは、再初期化の後に、収束し安定するために一定期間を必要とすることを理解されたい。したがって、カルマンフィルタが収束しつつある時点で判定されたユーザの位置は、ユーザの動き次第で不正確になる場合がある。
【００５２】
したがって、例示の実施形態において、位置補正モジュール２２８は、カルマンフィルタが再初期化され、収束したという判定に応答して、判定されたユーザの推定位置を補正する。例えば、位置補正モジュール２２８は、カルマンフィルタの再初期化後にユーザが閾値数のステップ（例えば、２歩、３歩、５歩、１０歩、２０歩、５０歩など）をすると、再初期化後のステップのうち１つ又は複数に対して、ユーザの推定位置を補正してよい。例示の実施形態において、位置補正モジュール２２８は、再初期化後の最後のステップ（例えば、閾値ステップ）から最初のステップに戻るまでユーザの進行方向を再計算し、ユーザの進行方向を更新することによって、及び、再初期化後の最初のステップからユーザが行った最後のステップ（例えば、閾値ステップ）まで、更新されたユーザの進行方向でユーザの位置を再計算することによって、ユーザの位置を「バックステップ（ｂａｃｋｓｔｅｐ）」してよい。１回又は複数回バックステップした後に、カルマンフィルタは安定する（すなわち、再び再初期化されない限り）。位置補正モジュール２２８は、他の実施形態において、判定されたユーザの進行方向及び／又は位置を別の方法で補正してよいことを理解されたい。
【００５３】
次に図４〜図６を参照すると、モバイルコンピューティングデバイス１００は、使用時に、（例えばＰＤＲを用いて）ユーザの位置を判定するための方法４００を実行してよい。例示の方法４００は、図４のブロック４０２で始まり、ここでは、モバイルコンピューティングデバイス１００は、ユーザの場所／位置を追跡するかどうか（すなわち、ＰＤＲを開始するかどうか）を判定する。追跡する場合、モバイルコンピューティングデバイス１００は、ブロック４０６において追跡を初期化する。例えば、ブロック４０６において、モバイルコンピューティングデバイス１００は、上述されたように、適切なパラメータ、状態遷移関数、及び測定関数に基づいてカルマンフィルタを初期化する。もちろん、初期化中に、モバイルコンピューティングデバイス１００は、メモリ１１４又はデータストレージ１１６からユーザ歩行モデル１３０を引き出し、モバイルコンピューティングデバイス１００のセンサ１１８及び１つ若しくは複数のモジュール（例えば、慣性測定モジュール２１４）を初期化し、並びに／又は、他の初期化手順及び構成手順を実行してよい。
【００５４】
ブロック４０８において、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００の慣性特性、及び／又は他の特性を検知する。例えば、上述されたように、モバイルコンピューティングデバイス１００は、加速度、角度方向（例えば、ロール角、ピッチ角、及びヨー角）、磁場、並びに／又は、モバイルコンピューティングデバイス１００の他の慣性特性、方向特性、若しくは他の特性（例えば、ＰＤＲ解析に関連する特性）を検知してよい。
【００５５】
ブロック４１０において、モバイルコンピューティングデバイス１００は、検知された慣性特性に基づいて、ユーザの未補正進行方向を判定するために、磁気計の測定値を利用するかどうかを判定する。利用するには、モバイルコンピューティングデバイス１００は、図７に示されるように、磁気計の測定値を利用するかどうかを判定するための方法７００を実行してよい。例示の方法７００はブロック７０２で始まり、ここでは、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００の検知された加速度の大きさを加速度閾値と比較する。例示の実施形態において、加速度閾値は、典型的な歩行で経験する加速度より大きい（例えば、重力のほぼ１．２倍）。ブロック７０４において、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００により検出された磁場の大きさを磁気閾値と比較する。いくつかの実施形態において、磁気閾値は、モバイルコンピューティングデバイス１００が受けることになりそうな磁気歪みを上回る値になるように決定されている。
【００５６】
図７に示されるように、いくつかの実施形態において、モバイルコンピューティングデバイス１００は、ブロック７０６、７１０を並行して実行してよいが、他の実施形態において、ブロック７０６、７１０は順次に実行されてよい。ブロック７０６において、モバイルコンピューティングデバイス１００は、加速度の大きさが加速度閾値を超えているかどうかを判定する。超えている場合、モバイルコンピューティングデバイス１００は、方法７００を終わらせる（例えば、好適な誤差処理を実行する）と判定してよい。いくつかの実施形態において、加速度閾値を超えるモバイルコンピューティングデバイス１００の加速度（例えば、「激しい」動き）は、加速度計１２４によって生成された加速度データが重力の方向を判定できないような動きに対してバイアスされている状態に対応してよいことを理解されたい。しかし、モバイルコンピューティングデバイス１００が、モバイルコンピューティングデバイス１００の加速度が加速度閾値を超えていないと判定した場合、ブロック７０８において、モバイルコンピューティングデバイス１００は、検知された慣性特性に基づいて重力の方向を判定する。
【００５７】
ブロック７１０において、モバイルコンピューティングデバイス１００は、検知された磁場の大きさが磁気閾値を超えているかどうかを判定する。超えている場合、モバイルコンピューティングデバイス１００は、（例えば、モバイルコンピューティングデバイス１００の近辺の「強い」磁場の結果として）著しい磁気歪みが存在すると判定し、本方法は、モバイルコンピューティングデバイス１００が磁気計の測定値を利用しないと判定するブロック７２２に進む。しかし、モバイルコンピューティングデバイス１００が、検知された磁場が磁気閾値を超えていないと判定した場合、モバイルコンピューティングデバイス１００は、ブロック７１２において、検知された磁場の方向を判定する。
【００５８】
ブロック７１４において、モバイルコンピューティングデバイス１００は、重力の方向と磁場の方向との間の伏角を判定する。例えば、モバイルコンピューティングデバイス１００は、重力と関連したベクトルと、検知された磁場と関連したベクトルとの間の角度を判定してよい。そのような角度は、本明細書では、「ｄｉｐ  ａｎｇｌｅ（伏角）」、「ｍａｇｎｅｔｉｃ  ｉｎｃｌｉｎａｔｉｏｎ（磁気傾斜）」、又は「ｍａｇｎｅｔｉｃ  ｄｉｐ（伏角）」と呼ばれることがあることを理解されたい。ブロック７１６において、モバイルコンピューティングデバイス１００は、判定伏角をモバイルコンピューティングデバイス１００の期待伏角（例えば、予め定められた期待値／格納値）と比較する。多くの実施形態において、磁気歪みが存在しない状態では、伏角は比較的一定となることを理解されたい。したがって、磁気歪みがない（又は、許容閾値までの低い磁気歪みである）場合、判定伏角と期待伏角との間の差は比較的小さいはずである。ブロック７１８において、モバイルコンピューティングデバイス１００は、判定伏角と期待伏角との間の差が、そのような差の許容される予め定められた閾値を超えているかどうかを判定する。超えている場合、モバイルコンピューティングデバイス１００は、（例えば、確認された又は疑われる磁気歪みに起因して）ブロック７２２において進行方向推定に磁気測定値を利用しないと判定する。しかし、モバイルコンピューティングデバイス１００が、その差が閾値を超えていないと判定した場合、モバイルコンピューティングデバイス１００は、ユーザの進行方向を推定するにあたって、（例えば、磁気計１２８の）磁気測定値を利用してよい。
【００５９】
図４に戻ると、ブロック４１２において、モバイルコンピューティングデバイス１００は、検知された慣性特性に基づいて、どのユーザ歩行モデル１３０を利用するかを判定する。例示の実施形態では、ブロック４１４において、モバイルコンピューティングデバイス１００は、スイング歩行モデルを利用するか、通常歩行モデルを利用するかを、センサ１１８から受信したデータに基づいて判定する。例示の実施形態において、通常歩行モデル８００（図８を参照のこと）及びスイング歩行モデル９００（図９を参照のこと）は、例えば、これらの歩行に関連した慣性特性の差に起因して、著しく異なることを理解されたい。
【００６０】
図８に示されるように、通常歩行モデル８００は、２つの踵接地イベント８０２及び２つの足指離地イベント８０４を含む全歩行周期を示す。踵接地イベント８０２は、ユーザが歩行時にステップをしたとき、前方の足の踵を地面に接地した状態に対応し、足指離地イベント８０４は、ユーザがステップをしたとき、後方の足の足指を地面から持ち上げた状態に対応する。加速度（加速度計１２４により検知される）の大きさのピークは概して、踵接地イベント８０２のときに発生することを理解されたい。さらに、モバイルコンピューティングデバイス１００がユーザの身体に「取り付け」られている場合、又は別の方法でユーザの身体に対して安定した位置に（例えば、ユーザの横に）保持されている場合、モバイルコンピューティングデバイス１００は、足指離地イベント８０４の後に加速し、踵接地イベント８０２の前に減速する。ユーザがスイング歩行をしている場合に通常歩行モデル８００を用いると、スイング歩行と関連した異なる運動学に起因して、誤差をもたらすことがあることを理解されたい。例えば、身体の歩行データが、手を揺り動かすデータによって歪むことがあり、これにより、誤ったＰＤＲ進行方向推定及び位置判定がもたらされる。
【００６１】
図９に示されるように、スイング歩行モデル９００も、２つの踵接地イベント８０２及び２つの足指離地イベント８０４を含む全歩行周期を示す。さらに、スイング歩行モデル９００は、ユーザの腕が揺れる動きを示し、したがって、このモデルはまた、ユーザがモバイルコンピューティングデバイス１００を後方に（すなわち、進行方向と反対の方向へ）揺り動かす後方スイングイベント９０２と、ユーザがモバイルコンピューティングデバイス１００を前方に（すなわち、進行方向へ）揺り動かす前方スイングイベント９０４とを示す。例示のモデル９００は、モバイルコンピューティングデバイス１００がユーザの右手に保持されていると仮定しており、その右手は、例えば、振り子運動で揺れ動いていることを理解されたい。もちろん、ユーザが代わりにモバイルコンピューティングデバイス１００を左手に保持している、モデル９００と類似したモデルが実施形態に使用されてよい。例示のスイング歩行モデル９００において、モバイルコンピューティングデバイス１００は、ユーザの手が後方に揺れ動くときに、歩行方向に沿って（すなわち、ユーザの進行方向の前方に）加速し、ユーザの手が前方に揺れ動くときに、歩行方向に沿って減速する。もちろん、ユーザ歩行モデル１３０は、ユーザの歩行の行程全体にわたって変化してよい（例えば、通常歩行とスイング歩行との間を行ったり来たりする）ことを理解されたい。したがって、そのような実施形態において、モバイルコンピューティングデバイス１００は、進行方向推定を実行する場合に、ユーザ歩行モデル１３０を変えてよい。
【００６２】
図４に戻ると、ブロック４１６において、（例えば、ＩＭＵからの）センサデータに基づいて、ユーザがいつ物理的なステップをしたかを判定し、ユーザが通常歩行であるか、又はスイング歩行であるかに応じて、適切なユーザ歩行モデル１３０を判定する。センサデータはさらに、本明細書で説明されるように、様々な特性（例えば、モバイルコンピューティングデバイス１００の未補正進行方向）を判定するために解析されてよい。モバイルコンピューティングデバイス１００が、ユーザが物理的なステップをしなかったと判定した場合、方法４００はブロック４０８に戻り、ここで、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００のセンサ１１８からデータを継続して収集する。換言すると、モバイルコンピューティングデバイス１００は、ユーザのステップが検出されるまで待機してよい。モバイルコンピューティングデバイス１００が、ユーザがステップをしたと判定した場合、方法４００は図５のブロック４１８に進み、ここで、モバイルコンピューティングデバイス１００は、ユーザの未補正進行方向（すなわち、モバイルコンピューティングデバイス１００の進行方向）を判定する。そうするときに、上述されたように、モバイルコンピューティングデバイス１００は、ブロック４２０において、モバイルコンピューティングデバイス１００の検知された加速度に基づいて、モバイルコンピューティングデバイス１００の水平速度方向を判定してよい。例えば、ユーザの現在の歩行に応じて、ブロック４２２では、モバイルコンピューティングデバイス１００は、通常歩行モデル８００に基づいてモバイルコンピューティングデバイス１００の水平速度方向を判定してよく、ブロック４２４では、モバイルコンピューティングデバイス１００は、スイング歩行モデル９００に基づいてモバイルコンピューティングデバイス１００の水平速度方向を判定してよい。
【００６３】
具体的には、上述されたように、モバイルコンピューティングデバイス１００は、センサ１１８でモバイルコンピューティングデバイス１００の加速度を検知する。検知された加速度は、モバイルコンピューティングデバイス１００、又はモバイルコンピューティングデバイス１００の加速度を検知するセンサ１１８の座標系に対して定義されることを理解されたい。例示の実施形態において、モバイルコンピューティングデバイス１００は、回転行列によって、検知された加速度をモバイルコンピューティングデバイス１００の座標系から地球座標系に変換する。回転行列は、２つの座標系の間のマッピングを定義する。例えば、地球座標系における新たな加速度αｅｔは、αｅｔ＝Ａｔαｔに従って判定されてよく、ここで、Ａｔは回転行列であり、αｔはモバイルコンピューティングデバイスにより検知された加速度である。回転行列は、好適なアルゴリズム又は技法を用いて計算されてよいことを理解されたい。
【００６４】
例示の実施形態において、モバイルコンピューティングデバイス１００は、地球座標系の加速度を短期間で積分（又は合計）することで、モバイルコンピューティングデバイス１００の速度（すなわち、ベクトル量）を判定する。拡大された期間で積分又は合計すると、上述されたように、通常、著しい誤差δｋがもたらされることが理解されよう。したがって、いくつかの実施形態において、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００の瞬間速度の近似値を求め、誤差の導入を最小化しようとして、非常に短い期間Δｔで加速度を合計する。地球座標系における速度は、ｖｅｔ＝ΣαｅｔΔｔに従って判定されてよい。例示の実施形態において、積分の間隔は、用いられている特定のユーザ歩行モデル１３０に依存することを理解されたい。上述されたように、モバイルコンピューティングデバイス１００は、ユーザが通常歩行であるか、又はスイング歩行であるかに応じて（図８〜図９を参照のこと）、様々な間隔の間に加速する。したがって、例示の実施形態において、加速度の積分は、通常歩行モデル８００が利用されているか、又はスイング歩行モデル９００が利用されているかに応じて、様々な値をもたらし得ることを理解されたい。
【００６５】
例示の実施形態において、モバイルコンピューティングデバイス１００は、地球座標系の速度を水平面（例えば、ユーザが歩いた地面に一致する水平面）に投影して、ユーザが歩いた方向におけるモバイルコンピューティングデバイス１００の水平速度を判定する。例示の実施形態において、判定された水平速度方向は、本明細書で説明されたように、未補正進行方向であることが理解されよう。上述されたように、いくつかの実施形態において、モバイルコンピューティングデバイス１００の進行方向は、判定された水平速度の大きさを無視してよい。
【００６６】
ブロック４２６において、モバイルコンピューティングデバイス１００は、傾斜（すなわち、非水平回転）が検出されているかどうかを判定する。傾斜が検出されている場合、モバイルコンピューティングデバイス１００は、ブロック４２８において、検出されたステップを無視し、次に方法４００は図４のブロック４０８に戻り、ここで、モバイルコンピューティングデバイス１００は、慣性特性を継続して検知して、別のステップが検出されるまで待機する。上述されたように、モバイルコンピューティングデバイス１００は基準閾値を利用し、傾斜の量が基準閾値を超えた場合にのみ、ユーザのステップを無視してよいことを理解されたい。
【００６７】
傾斜が検出されなかった場合、又は傾斜が基準閾値を超えていない場合、モバイルコンピューティングデバイス１００は、大きな回転が検出されたかどうかをブロック４３０において判定する。大きな回転が検出された場合、モバイルコンピューティングデバイス１００は、ブロック４３２において、カルマンフィルタを再初期化する。そうするときに、モバイルコンピューティングデバイス１００は、ブロック４３４において、フィルタリングパラメータを修正してよい。例えば、上述されたように、モバイルコンピューティングデバイス１００は、カルマンフィルタの誤差の許容範囲を拡大するために、カルマンフィルタの状態共分散を増加させてよい。上述されたように、モバイルコンピューティングデバイス１００は、「大きな」回転を構成する水平回転運動の量に対する基準閾値を確立してよい。換言すると、モバイルコンピューティングデバイス１００が閾値を超える量で回転した場合、モバイルコンピューティングデバイス１００はカルマンフィルタを再初期化する。しかし、モバイルコンピューティングデバイス１００が閾値を超える量で回転しなかった場合、モバイルコンピューティングデバイス１００は、ブロック４３２においてカルマンフィルタを再初期化しない。したがって、上述されたように、モバイルコンピューティングデバイス１００は、モバイルコンピューティングデバイス１００の回転運動に応じて、カルマンフィルタのパラメータを調整できる適応型コントローラとして働く。
【００６８】
モバイルコンピューティングデバイス１００がカルマンフィルタを再初期化するかどうかにかかわらず、方法４００は図６のブロック４３６に進み、ここで、モバイルコンピューティングデバイス１００はユーザの進行方向を推定する。そうするために、上述されたように、モバイルコンピューティングデバイス１００は、ブロック４３８において、モバイルコンピューティングデバイス１００の判定された方向変化Ｏｋ−Ｏｋ−１、モバイルコンピューティングデバイス１００の判定された未補正進行方向ｙｋ、及びフィルタリングパラメータ（例えば、カルマンフィルタが再初期化されたかどうかに基づく状態共分散）に基づいて、カルマンフィルタを適用してよい。具体的には、ブロック４４０及び４４２にそれぞれ示されるように、モバイルコンピューティングデバイス１００は、状態遷移関数ｘｋ＝ｘｋ−１＋Ｏｋ−Ｏｋ−１＋εｋと、測定関数ｙｋ＝ｘｋ＋δｋとを有するカルマンフィルタを、上述されたように適用してよい。カルマンフィルタの出力は、上述されたように、ユーザの進行方向として定義されている状態ｘｋであることを理解されたい。さらに、いくつかの実施形態において、モバイルコンピューティングデバイス１００は、ユーザの進行方向を判定するために、異なるフィルタ（例えば、上述されたカルマンフィルタの変形版）を適用してよい。
【００６９】
ブロック４４４において、モバイルコンピューティングデバイス１００は、ユーザの歩幅（すなわち、水平方向におけるユーザのストライドの長さ）を判定する。例えば、モバイルコンピューティングデバイス１００は、ユーザ歩行モデル１３０又は他の好適なユーザステップモデルに基づいて、ユーザの歩幅を判定してよい。上述されたように、いくつかの実施形態において、歩幅はユーザの特定の歩行に依存してよく、その場合、ユーザは、特定の歩行モデル（例えば、通常歩行モデル又はスイング歩行モデル）に基づいて歩幅を判定してよいことを理解されたい。他の実施形態において、モバイルコンピューティングデバイス１００は、汎用のユーザステップモデルを利用してよい。ブロック４４６において、モバイルコンピューティングデバイス１００は、ユーザの進行方向及びユーザの歩幅に基づいてユーザの位置を判定する。いくつかの実施形態において、モバイルコンピューティングデバイス１００は、ユーザの直前のステップにおけるユーザの直前に判定された位置から、ユーザの進行方向に、ユーザがある距離（すなわち、歩幅）だけ離れて位置していると判定してよい。
【００７０】
ブロック４４８において、モバイルコンピューティングデバイス１００は、ユーザの位置を補正するかどうかを判定する。上述されたように、カルマンフィルタは、モバイルコンピューティングデバイス１００の大きな水平回転の検出に応答して、再初期化されてよい。これらの状況では、カルマンフィルタは、収束して再び安定するのに、一定の時間／ステップがかかり得る。したがって、モバイルコンピューティングデバイス１００は、カルマンフィルタの再初期化後に、判定されたユーザの位置を閾値数のステップだけ補正（例えば、バックステップ）すると決定してよい。ブロック４５０において、モバイルコンピューティングデバイス１００は、ユーザの位置を補正する。例示の実施形態において、モバイルコンピューティングデバイス１００は、ユーザの進行方向及び位置計算をバックステップすることで補正する。例えば、ブロック４５２において、モバイルコンピューティングデバイス１００は、ユーザの位置をバックステップして、新たな位置を計算してよい。具体的には、モバイルコンピューティングデバイス１００は、再初期化後に、最後のステップから最初のステップに戻ってユーザの進行方向を再計算し、ユーザの進行方向を更新してよい。さらに、モバイルコンピューティングデバイス１００は、再初期化後の最初のステップからユーザが進んだ最後のステップ（例えば、閾値のステップ）まで、更新されたユーザの進行方向でユーザの位置を再計算してよい。方法４００は図４のブロック４０８に戻り、ここで、モバイルコンピューティングデバイス１００は、ユーザによる次のステップが検出されるのを待つ。
【００７１】
本明細書で説明されたように、モバイルコンピューティングデバイス１００は、進行方向推定、カルマンフィルタ、及びユーザの非ステップ動作（例えば、傾斜及び大きな回転）に対する適応型制御を用いて、段階を追って、ユーザの位置を追跡してよい。ユーザによるステップが検出されたことに応答して、ユーザの新たな位置が、ユーザの直前の位置、推定されたユーザの進行方向、及びユーザの推定歩幅に基づいて計算される。磁気歪み、及びユーザの歩く動きに関連しないモバイルコンピューティングデバイス１００の動き（例えば、ユーザに対するモバイルコンピューティングデバイス１００のスイング、傾斜、及び回転）が、モバイルコンピューティングデバイス１００によって適切に処理される。さらに、特定の状況において、上述されたように、モバイルコンピューティングデバイス１００はユーザの判定位置を補正してよい。
［実施例］
【００７２】
本明細書で開示された技術の例示の実施例が、下記に提供されている。これらの技術の実施形態が、後述される実施例のうち任意の１つ又は複数、及びそれらの実施例の任意の組み合わせを含んでよい。
【００７３】
実施例１は、ユーザの位置を判定するためのモバイルコンピューティングデバイスを含み、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスの慣性特性を検知する複数の慣性センサと、検知された慣性特性に基づいて、モバイルコンピューティングデバイスのユーザの歩行を判定する歩行分類モジュールであって、歩行は、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に保持していることを示す第１の歩行、及び、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、歩行分類モジュールと、検知された慣性特性及び判定されたユーザの歩行に基づいて、ユーザが物理的なステップをしたことを検出するステップ検出モジュールと、物理的なステップの方向を示す、モバイルコンピューティングデバイスの未補正進行方向を判定する進行方向判定モジュールと、判定されたユーザの未補正進行方向、ユーザの推定歩幅、及び直前の物理的なステップにおけるユーザの直前の位置に基づいて、ユーザの推定位置を判定する位置判定モジュールとを備える。
【００７４】
実施例２は、実施例１の主題を含んでおり、ユーザの歩行を判定することは、決定木及び検知された慣性特性に基づいて、ユーザの歩行を分類することを含み、決定木は、検知された慣性特性の複数のパラメータに基づいて、ユーザの歩行を、第１の歩行又は第２の歩行として識別する。
【００７５】
実施例３は、実施例１及び２のいずれかの主題を含んでおり、複数のパラメータには、モバイルコンピューティングデバイスの振り子運動の平均間隔、モバイルコンピューティングデバイスの振り子運動の平均ピーク、及び予め定義された期間におけるモバイルコンピューティングデバイスの軸方向運動量のうち少なくとも１つが含まれる。
【００７６】
実施例４は、実施例１から３のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことを検出することは、ユーザの歩行が、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行であるという判定に応答して、検知された慣性特性に基づき、モバイルコンピューティングデバイスの加速度を判定することと、第１のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第１の加速度関数を生成することと、第２のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第２の加速度関数を生成することであって、第１のローパスフィルタは第２のローパスフィルタより高いカットオフ周波数を有する、生成することと、第１の加速度関数及び第２の加速度関数に基づいて、正弦関数を判定することと、正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別することとを含む。
【００７７】
実施例５は、実施例１から４のいずれかの主題を含んでおり、正弦関数の独立変数は、ユーザの腕と重力の方向との間の角度を示す。
【００７８】
実施例６は、実施例１から５のいずれかの主題を含んでおり、第１の加速度関数は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って生成され、第２の加速度関数は、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って生成され、正弦関数は、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って判定され、ここで、ＳＡ（ｋ）は、第１の加速度関数であり、ＳＢ（ｋ）は、第２の加速度関数であり、γ１は、第１のローパスフィルタの第１のフィルタリングパラメータであり、γ２は、第２のローパスフィルタの第２のフィルタリングパラメータであり、αｍａｇ（ｋ）は、ステップｋでの加速度の大きさであり、αｍａｇ（ｋ−１）は、直前のステップｋ−１での加速度の大きさである。
【００７９】
実施例７は、実施例１から６のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの未補正進行方向を判定することは、その方向におけるモバイルコンピューティングデバイスの速度を判定することを含む。
【００８０】
実施例８は、実施例１から７のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの速度を判定することは、検知された慣性特性に基づいて、モバイルコンピューティングデバイスの加速度を判定することと、モバイルコンピューティングデバイスの判定された加速度を、モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換することと、地球座標系における速度を判定するために地球座標系における加速度を積分することであって、加速度の積分の間隔は、判定されたユーザの歩行に対応するユーザ歩行モデルに基づいている、積分することとを含む。
【００８１】
実施例９は、実施例１から８のいずれかの主題を含んでおり、検知された慣性特性に基づいて、ユーザの未補正進行方向を判定するために、磁気測定値を利用するかどうかを判定する磁気歪み検出モジュールをさらに含む。
【００８２】
実施例１０は、実施例１から９のいずれかの主題を含んでおり、モバイルコンピューティングデバイスの未補正進行方向を判定することは、磁気測定値を利用しないという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータに基づき、モバイルコンピューティングデバイスの未補正進行方向を判定することを含み、モバイルコンピューティングデバイスの未補正進行方向を判定することは、磁気測定値を利用するという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータ、並びにモバイルコンピューティングデバイスの近辺の磁場に基づき、モバイルコンピューティングデバイスの未補正進行方向を判定することを含む。
【００８３】
実施例１１は、実施例１から１０のいずれかの主題を含んでおり、磁気測定値を利用するかどうかを判定することは、モバイルコンピューティングデバイスの加速度を判定することと、モバイルコンピューティングデバイスの近辺の磁場を検知することと、加速度の大きさが加速度閾値を超えていない、且つ磁場の大きさが磁気閾値を超えていないという判定に応答して、加速度の方向と磁場の方向との間の伏角を判定することと、伏角を期待伏角と比較することとを含む。
【００８４】
実施例１２は、実施例１から１１のいずれかの主題を含んでおり、ユーザの歩行を判定し、ユーザが物理的なステップをしたことを検出し、モバイルコンピューティングデバイスの未補正進行方向を判定し、ユーザの推定位置を判定することは、ユーザの歩行を判定し、ユーザが物理的なステップをしたことを検出し、モバイルコンピューティングデバイスの未補正進行方向を判定し、ユーザが進んだ複数の一連の物理的なステップのそれぞれに対して、ユーザの推定位置を判定することを含む。
【００８５】
実施例１３は、実施例１から１２のいずれかの主題を含んでおり、判定されたユーザの未補正進行方向と、ユーザの直前の物理的なステップにおけるモバイルコンピューティングデバイスの直前の方向に対する、モバイルコンピューティングデバイスの方向の変化とに基づいて、ユーザの進行方向を判定するためにカルマンフィルタを適用するカルマンフィルタモジュールをさらに含み、ユーザの推定位置を判定することは、判定されたユーザの進行方向に基づいてユーザの推定位置を判定することを含む。
【００８６】
実施例１４は、実施例１から１３のいずれかの主題を含んでおり、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したかどうかを判定し、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したという判定に応答して、カルマンフィルタを再初期化する運動管理モジュールをさらに含む。
【００８７】
実施例１５は、実施例１から１４のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことの検出に応答して、モバイルコンピューティングデバイスが非水平方向に傾斜しているかどうかを判定し、モバイルコンピューティングデバイスが非水平方向に傾斜しているという判定に応答して、検出された物理的なステップを無視する運動管理モジュールをさらに含む。
【００８８】
実施例１６は、実施例１から１５のいずれかの主題を含んでおり、位置判定モジュールはさらに、ユーザ歩行モデルに基づいてユーザの推定歩幅を判定する。
【００８９】
実施例１７は、モバイルコンピューティングデバイスによりユーザの位置を判定するための方法を含み、本方法は、モバイルコンピューティングデバイスにより、及びモバイルコンピューティングデバイスの検知された慣性特性に基づいて、モバイルコンピューティングデバイスのユーザの歩行を判定する段階であって、歩行は、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に保持していることを示す第１の歩行、及び、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、判定する段階と、モバイルコンピューティングデバイスにより、検知された慣性特性及び判定されたユーザの歩行に基づいて、ユーザが物理的なステップをしたことを検出する段階と、モバイルコンピューティングデバイスにより、物理的なステップの方向を示す、モバイルコンピューティングデバイスの未補正進行方向を判定する段階と、モバイルコンピューティングデバイスにより、判定されたユーザの未補正進行方向、ユーザの推定歩幅、及び直前の物理的なステップにおけるユーザの直前の位置に基づいて、ユーザの推定位置を判定する段階とを備える。
【００９０】
実施例１８は、実施例１７の主題を含んでおり、ユーザの歩行を判定する段階は、決定木及び検知された慣性特性に基づいて、ユーザの歩行を分類する段階を含み、決定木は、検知された慣性特性の複数のパラメータに基づいて、ユーザの歩行を、第１の歩行又は第２の歩行として識別する。
【００９１】
実施例１９は、実施例１７及び１８のいずれかの主題を含んでおり、複数のパラメータには、モバイルコンピューティングデバイスの振り子運動の平均間隔、モバイルコンピューティングデバイスの振り子運動の平均ピーク、及び予め定義された期間におけるモバイルコンピューティングデバイスの軸方向運動量のうち少なくとも１つが含まれる。
【００９２】
実施例２０は、実施例１７から１９のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことを検出する段階は、ユーザの歩行が、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行であるという判定に応答して、検知された慣性特性に基づき、モバイルコンピューティングデバイスの加速度を判定する段階と、第１のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第１の加速度関数を生成する段階と、第２のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第２の加速度関数を生成する段階であって、第１のローパスフィルタは第２のローパスフィルタより高いカットオフ周波数を有する、生成する段階と、第１の加速度関数及び第２の加速度関数に基づいて、正弦関数を判定する段階と、正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別する段階とを含む。
【００９３】
実施例２１は、実施例１７から２０のいずれかの主題を含んでおり、正弦関数の独立変数は、ユーザの腕と重力の方向との間の角度を示す。
【００９４】
実施例２２は、実施例１７から２１のいずれかの主題を含んでおり、第１の加速度関数は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って生成され、第２の加速度関数は、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って生成され、正弦関数は、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って判定され、ここで、ＳＡ（ｋ）は、第１の加速度関数であり、ＳＢ（ｋ）は、第２の加速度関数であり、γ１は、第１のローパスフィルタの第１のフィルタリングパラメータであり、γ２は、第２のローパスフィルタの第２のフィルタリングパラメータであり、αｍａｇ（ｋ）は、ステップｋでの加速度の大きさであり、αｍａｇ（ｋ−１）は、直前のステップｋ−１での加速度の大きさである。
【００９５】
実施例２３は、実施例１７から２２のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの未補正進行方向を判定する段階は、その方向におけるモバイルコンピューティングデバイスの速度を判定する段階を含む。
【００９６】
実施例２４は、実施例１７から２３のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの速度を判定する段階は、検知された慣性特性に基づいて、モバイルコンピューティングデバイスの加速度を判定する段階と、モバイルコンピューティングデバイスの判定された加速度を、モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換する段階と、地球座標系における速度を判定するために地球座標系における加速度を積分する段階であって、加速度の積分の間隔は、判定されたユーザの歩行に対応するユーザ歩行モデルに基づいている、積分する段階とを含む。
【００９７】
実施例２５は、実施例１７から２４のいずれかの主題を含んでおり、検知された慣性特性に基づいて、ユーザの未補正進行方向を判定するために、磁気測定値を利用するかどうかを、モバイルコンピューティングデバイスにより判定する段階をさらに含む。
【００９８】
実施例２６は、実施例１７から２５のいずれかの主題を含んでおり、モバイルコンピューティングデバイスの未補正進行方向を判定する段階は、磁気測定値を利用しないという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータに基づき、モバイルコンピューティングデバイスの未補正進行方向を判定する段階を含み、モバイルコンピューティングデバイスの未補正進行方向を判定する段階は、磁気測定値を利用するという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータ、並びにモバイルコンピューティングデバイスの近辺の磁場に基づき、モバイルコンピューティングデバイスの未補正進行方向を判定する段階を含む。
【００９９】
実施例２７は、実施例１７から２６のいずれかの主題を含んでおり、磁気測定値を利用するかどうかを判定する段階は、モバイルコンピューティングデバイスの加速度を判定する段階と、モバイルコンピューティングデバイスの近辺の磁場を検知する段階と、加速度の大きさが加速度閾値を超えていない、且つ磁場の大きさが磁気閾値を超えていないという判定に応答して、加速度の方向と磁場の方向との間の伏角を判定する段階と、伏角を期待伏角と比較する段階とを含む。
【０１００】
実施例２８は、実施例１７から２７のいずれかの主題を含んでおり、ユーザの歩行を判定する段階、ユーザが物理的なステップをしたことを検出する段階、モバイルコンピューティングデバイスの未補正進行方向を判定する段階、及びユーザの推定位置を判定する段階は、ユーザの歩行を判定する段階、ユーザが物理的なステップをしたことを検出する段階、モバイルコンピューティングデバイスの未補正進行方向を判定する段階、及び、ユーザが進んだ複数の一連の物理的なステップのそれぞれに対して、ユーザの推定位置を判定する段階を含む。
【０１０１】
実施例２９は、実施例１７から２８のいずれかの主題を含んでおり、判定されたユーザの未補正進行方向と、ユーザの直前の物理的なステップにおけるモバイルコンピューティングデバイスの直前の方向に対する、モバイルコンピューティングデバイスの方向の変化とに基づいて、ユーザの進行方向を判定するためにカルマンフィルタをモバイルコンピューティングデバイスにより適用する段階をさらに含み、ユーザの推定位置を判定する段階は、判定されたユーザの進行方向に基づいてユーザの推定位置を判定する段階を含む。
【０１０２】
実施例３０は、実施例１７から２９のいずれかの主題を含んでおり、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したかどうかを、モバイルコンピューティングデバイスにより判定する段階と、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したという判定に応答して、カルマンフィルタをモバイルコンピューティングデバイスにより再初期化する段階とをさらに含む。
【０１０３】
実施例３１は、実施例１７から３０のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことの検出に応答して、モバイルコンピューティングデバイスが非水平方向に傾斜しているかどうかをモバイルコンピューティングデバイスにより判定する段階と、モバイルコンピューティングデバイスが非水平方向に傾斜しているという判定に応答して、検出された物理的なステップをモバイルコンピューティングデバイスにより無視する段階とをさらに含む。
【０１０４】
実施例３２は、実施例１７から３１のいずれかの主題を含んでおり、ユーザ歩行モデルに基づいてユーザの推定歩幅をモバイルコンピューティングデバイスにより判定する段階をさらに含む。
【０１０５】
実施例３３は、プロセッサと、プロセッサにより実行された場合、実施例１７から３２のいずれかの方法をコンピューティングデバイスに実行させる複数の命令を内部に格納したメモリとを備えた、コンピューティングデバイスを含む。
【０１０６】
実施例３４は、格納された複数の命令を含む１つ又は複数の機械可読記憶媒体を含み、これらの命令は、実行されたことに応答して、実施例１７から３２のいずれかの方法を実行するコンピューティングデバイスをもたらす。
【０１０７】
実施例３５は、実施例１７から３２のいずれかの方法を実行するための手段を備えるコンピューティングデバイスを含む。
【０１０８】
実施例３６は、ユーザの位置を判定するためのモバイルコンピューティングデバイスを含み、モバイルコンピューティングデバイスは、モバイルコンピューティングデバイスの慣性特性を検知する複数の慣性センサと、検知された慣性特性に基づいて、モバイルコンピューティングデバイスのユーザの歩行を判定するための手段であって、歩行は、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に保持していることを示す第１の歩行、及び、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行のうち一方である、判定するための手段と、検知された慣性特性及び判定されたユーザの歩行に基づいて、ユーザが物理的なステップをしたことを検出するための手段と、物理的なステップの方向を示す、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段と、判定されたユーザの未補正進行方向、ユーザの推定歩幅、及び直前の物理的なステップにおけるユーザの直前の位置に基づいて、ユーザの推定位置を判定するための手段とを備える。
【０１０９】
実施例３７は、実施例３６の主題を含んでおり、ユーザの歩行を判定するための手段は、決定木及び検知された慣性特性に基づいて、ユーザの歩行を分類するための手段を含み、決定木は、検知された慣性特性の複数のパラメータに基づいて、ユーザの歩行を、第１の歩行又は第２の歩行として識別する。
【０１１０】
実施例３８は、実施例３６及び３７のいずれかの主題を含んでおり、複数のパラメータには、モバイルコンピューティングデバイスの振り子運動の平均間隔、モバイルコンピューティングデバイスの振り子運動の平均ピーク、及び予め定義された期間におけるモバイルコンピューティングデバイスの軸方向運動量のうち少なくとも１つが含まれる。
【０１１１】
実施例３９は、実施例３６から３８のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことを検出するための手段は、ユーザの歩行が、ユーザが歩行中にモバイルコンピューティングデバイスをユーザの横に沿って揺り動かしていることを示す第２の歩行であるという判定に応答して、検知された慣性特性に基づき、モバイルコンピューティングデバイスの加速度を判定するための手段と、第１のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第１の加速度関数を生成するための手段と、第２のローパスフィルタをモバイルコンピューティングデバイスの加速度に適用して、第２の加速度関数を生成するための手段であって、第１のローパスフィルタは第２のローパスフィルタより高いカットオフ周波数を有する、生成するための手段と、第１の加速度関数及び第２の加速度関数に基づいて、正弦関数を判定するための手段と、正弦関数の各ピークを、異なる物理的なステップに対応するものとして識別するための手段とを含む。
【０１１２】
実施例４０は、実施例３６から３９のいずれかの主題を含んでおり、正弦関数の独立変数は、ユーザの腕と重力の方向との間の角度を示す。
【０１１３】
実施例４１は、実施例３６から４０のいずれかの主題を含んでおり、第１の加速度関数は、ＳＡ（ｋ）＝γ１×αｍａｇ（ｋ）＋（１−γ１）×αｍａｇ（ｋ−１）に従って生成され、第２の加速度関数は、ＳＢ（ｋ）＝γ２×αｍａｇ（ｋ）＋（１−γ２）×αｍａｇ（ｋ−１）に従って生成され、正弦関数は、ｃｏｓ（θｋ）＝｜ＳＡ（ｋ）×ＳＢ（ｋ）｜／（｜ＳＡ（ｋ）｜×｜ＳＢ（ｋ）｜）に従って判定され、ここで、ＳＡ（ｋ）は、第１の加速度関数であり、ＳＢ（ｋ）は、第２の加速度関数であり、γ１は、第１のローパスフィルタの第１のフィルタリングパラメータであり、γ２は、第２のローパスフィルタの第２のフィルタリングパラメータであり、αｍａｇ（ｋ）は、ステップｋでの加速度の大きさであり、αｍａｇ（ｋ−１）は、直前のステップｋ−１での加速度の大きさである。
【０１１４】
実施例４２は、実施例３６から４１のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの未補正進行方向を判定するための手段は、その方向におけるモバイルコンピューティングデバイスの速度を判定するための手段を含む。
【０１１５】
実施例４３は、実施例３６から４２のいずれかの主題を含んでおり、その方向におけるモバイルコンピューティングデバイスの速度を判定するための手段は、検知された慣性特性に基づいて、モバイルコンピューティングデバイスの加速度を判定するための手段と、モバイルコンピューティングデバイスの判定された加速度を、モバイルコンピューティングデバイスの座標系から、地球座標系における加速度に変換するための手段と、地球座標系における速度を判定するために地球座標系における加速度を積分するための手段であって、加速度の積分の間隔は、判定されたユーザの歩行に対応するユーザ歩行モデルに基づいている、積分するための手段とを含む。
【０１１６】
実施例４４は、実施例３６から４３のいずれかの主題を含んでおり、検知された慣性特性に基づいて、ユーザの未補正進行方向を判定するために、磁気測定値を利用するかどうかを判定するための手段をさらに含む。
【０１１７】
実施例４５は、実施例３６から４４のいずれかの主題を含んでおり、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段は、磁気測定値を利用しないという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータに基づき、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段を含み、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段は、磁気測定値を利用するという判定に応答して、モバイルコンピューティングデバイスの加速度及び方向を示すデータ、並びにモバイルコンピューティングデバイスの近辺の磁場に基づき、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段を含む。
【０１１８】
実施例４６は、実施例３６から４５のいずれかの主題を含んでおり、磁気測定値を利用するかどうかを判定するための手段は、モバイルコンピューティングデバイスの加速度を判定するための手段と、モバイルコンピューティングデバイスの近辺の磁場を検知するための手段と、加速度の大きさが加速度閾値を超えていない、且つ磁場の大きさが磁気閾値を超えていないという判定に応答して、加速度の方向と磁場の方向との間の伏角を判定するための手段と、伏角を期待伏角と比較するための手段とを含む。
【０１１９】
実施例４７は、実施例３６から４６のいずれかの主題を含んでおり、ユーザの歩行を判定するための手段、ユーザが物理的なステップをしたことを検出するための手段、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段、及びユーザの推定位置を判定するための手段は、ユーザの歩行を判定するための手段、ユーザが物理的なステップをしたことを検出するための手段、モバイルコンピューティングデバイスの未補正進行方向を判定するための手段、及び、ユーザが進んだ複数の一連の物理的なステップのそれぞれに対して、ユーザの推定位置を判定するための手段を含む。
【０１２０】
実施例４８は、実施例３６から４７のいずれかの主題を含んでおり、判定されたユーザの未補正進行方向と、ユーザの直前の物理的なステップにおけるモバイルコンピューティングデバイスの直前の方向に対する、モバイルコンピューティングデバイスの方向の変化とに基づいて、ユーザの進行方向を判定するためにカルマンフィルタを適用するための手段をさらに含み、ユーザの推定位置を判定するための手段は、判定されたユーザの進行方向に基づいてユーザの推定位置を判定するための手段を含む。
【０１２１】
実施例４９は、実施例３６から４８のいずれかの主題を含んでおり、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したかどうかを判定するための手段と、モバイルコンピューティングデバイスが基準閾値を超える量で水平面に沿って回転したという判定に応答して、カルマンフィルタを再初期化するための手段とをさらに含む。
【０１２２】
実施例５０は、実施例３６から４９のいずれかの主題を含んでおり、ユーザが物理的なステップをしたことの検出に応答して、モバイルコンピューティングデバイスが非水平方向に傾斜しているかどうかを判定するための手段と、モバイルコンピューティングデバイスが非水平方向に傾斜しているという判定に応答して、検出された物理的なステップを無視するための手段とをさらに含む。
【０１２３】
実施例５１は、実施例３６から５０のいずれかの主題を含んでおり、ユーザ歩行モデルに基づいてユーザの推定歩幅を判定するための手段をさらに含む。
【図１】
0006745017.tif 000002
【図２】
0006745017.tif 000003
【図３】
0006745017.tif 000004
【図４】
0006745017.tif 000005
【図５】
0006745017.tif 000006
【図６】
0006745017.tif 000007
【図７】
0006745017.tif 000008
【図８】
0006745017.tif 000009
【図９】
0006745017.tif 000010
【図１０】
0006745017.tif 000011
【図１１】
0006745017.tif 000012