(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１の進行方向を取得するために予め定められた条件を満たしているか否かを判定する安定度判定手段と、
第１のタイミングにおいて、前記情報処理装置に加えられた第１の加速度に基づいて、前記情報処理装置が向いている第１の方向を取得する第１方向取得手段と、
前記予め定められた条件を満たしている場合に、前記第１の加速度に基づいて、前記第１のタイミングにおける前記情報処理装置の前記第１の進行方向を取得する第１進行方向取得手段と、
前記第１のタイミングの後の第２のタイミングにおいて、前記情報処理装置に加えられた第２の加速度に基づいて、前記情報処理装置が向いている第２の方向を取得する第２方向取得手段と、
前記第１の方向と前記第２の方向と、前記第１の進行方向と、に基づいて、前記第２のタイミングにおける前記情報処理装置の第２の進行方向を取得する第２進行方向取得手段と、
を備える情報処理装置。
【請求項２】
前記第２進行方向取得手段は、前記第１の方向及び第２の方向の差分に基づいて前記第１の進行方向を変更し、前記変更された第１の進行方向を前記第２の進行方向として取得する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１の加速度に基づいて、前記情報処理装置を保持するユーザの行動を推定する行動推定手段を備え、
前記第１進行方向取得手段は、前記行動推定手段の推定結果に応じた方向推定方法によって、前記第１の進行方向を取得する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記行動推定手段は、前記第１の加速度に基づいて推定される前記ユーザの行動が、下り歩行、上り歩行及び走行のいずれであるかを推定する、
請求項３に記載の情報処理装置。
【請求項５】
前記行動推定手段は、前記第１の方向及び前記第１の進行方向の加速度それぞれについて、前記各加速度の大きさが走行判定用の加速度閾値以上であって、前記各加速度のピークの時間間隔を示すピッチが走行判定用の閾値以下である場合に、前記ユーザが走行していると判定するとともに、前記各加速度の大きさが走行判定用の加速度閾値未満、または、前記各加速度のピークの時間間隔を示すピッチが走行判定用の閾値未満である場合には、前記ユーザが歩行していると判定する、
請求項４に記載の情報処理装置。
【請求項６】
前記第１方向取得手段は、予め設定した時間内に取得された前記第１の加速度の鉛直成分の平均値を、前記第１の方向として取得する、
請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記安定度判定手段は、前記第１の進行方向が予め設定された頻度以上に入れ替わる状態、及び前記第１の方向のブレが予め設定された角度以上となる状態の少なくとも一方である場合、前記第１の進行方向が安定して取得される条件を満たしていないと判定する、
請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記安定度判定手段は、下り歩行であるか否かを判定する下り歩行判定処理を実行し、前記下り歩行判定処理により、下り歩行であると判定された場合は、前記第１の進行方向が安定して取得される条件を満たしていないと判定する、
請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記第１方向取得手段は、前記安定度判定手段により、前記第１の進行方向が安定して取得される条件を満たしていると判定された場合に、前記第１の方向を取得する、
請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記第１進行方向取得手段は、
前記第１の加速度に対して、前記行動推定手段により推定された前記ユーザの行動が歩行である場合、前記第１の加速度の水平成分に対して、第１の周波数帯域を通過させるとともに、推定された前記ユーザの行動が走行である場合に、前記第１の加速度の水平成分に対して、前記第１の周波数帯域より高い第２の周波数帯域を通過させるフィルタ処理を実行し、
前記行動推定手段により推定された前記ユーザの行動毎に、前記第１の方向及び前記フィルタ処理された前記第１の加速度に基づいて、異なる進行方向推定方法により、前記第１の進行方向を取得する、
請求項３記載の情報処理装置。
【請求項１１】
前記第１進行方向取得手段は、
前記行動推定手段により推定された前記ユーザの行動が下り歩行である場合、前記第１の方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で最も近い、または時間軸における過去方向で２番目に近い加速度の水平成分のピークの方向を前方と推定する処理を実行し、
前記行動推定手段により推定された前記ユーザの行動が下り歩行でない場合、前記第１の方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で２番目に近い、または時間軸における過去方向で最も近い加速度の水平成分のピークの方向を前方と推定する処理を実行する、
請求項１０に記載の情報処理装置。
【請求項１２】
前記第１進行方向取得手段は、前記行動推定手段により推定された前記ユーザの行動が走行である場合、前記第１の方向が上方向のピークを示すタイミングに対して、同じ半周期の期間に属する加速度の水平成分のピークの方向を前方と推定する処理を実行する、
請求項１０に記載の情報処理装置。
【請求項１３】
前記第２の進行方向を示すベクトルを、前記第２のタイミングで取得された前記第２の方向によって規定される水平面に射影し、当該水平面において、前記第２の進行方向を示すベクトルの向きから設定された角度内にある複数の加速度のベクトルに基づいて、平均化された進行方向を推定する平均進行方向推定手段をさらに備える、
請求項１乃至１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記第２の進行方向を示すベクトルを、前記第２のタイミングで取得された前記第２の方向によって規定される水平面に射影した向きに対し、前記平均化された進行方向の向きが一定の差分以上である状態が閾値時間以上連続した場合に、当該差分を進行方向のオフセットとして取得するオフセット取得手段を備える、
請求項１３に記載の情報処理装置。
【請求項１５】
前記平均進行方向推定手段は、前記平均化された進行方向に、前記オフセット取得手段によって取得された前記差分を加算することにより、進行方向を補正する処理を実行する、
請求項１４に記載の情報処理装置。
【請求項１６】
情報処理装置で実行される進行方向取得方法であって、
第１の進行方向を取得するために予め定められた条件を満たしているか否かを判定し、
第１のタイミングにおいて、前記情報処理装置に加えられた第１の加速度に基づいて、前記情報処理装置が向いている第１の方向を取得し、
前記予め定められた条件を満たしている場合に、前記第１の加速度に基づいて、前記第１のタイミングにおける前記情報処理装置の前記第１の進行方向を取得し、
前記第１のタイミングの後の第２のタイミングにおいて、前記情報処理装置に加えられた第２の加速度に基づいて、前記情報処理装置が向いている第２の方向を取得し、
前記第１の方向と前記第２の方向と、前記第１の進行方向と、に基づいて、前記第２のタイミングにおける前記情報処理装置の第２の進行方向を取得する、
進行方向取得方法。
【請求項１７】
情報処理装置として用いられるコンピュータに、
第１の進行方向を取得するために予め定められた条件を満たしているか否かを判定する安定度判定機能と、
第１のタイミングにおいて、前記情報処理装置に加えられた第１の加速度に基づいて、前記情報処理装置が向いている第１の方向を取得する第１方向取得機能と、
前記予め定められた条件を満たしている場合に、前記第１の加速度に基づいて、前記第１のタイミングにおける前記情報処理装置の前記第１の進行方向を取得する第１進行方向取得機能と、
前記第１のタイミングの後の第２のタイミングにおいて、前記情報処理装置に加えられた第２の加速度に基づいて、前記情報処理装置が向いている第２の方向を取得する第２方向取得機能と、
前記第１の方向と前記第２の方向と、前記第１の進行方向と、に基づいて、第２の進行方向を取得する第２進行方向取得機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、進行方向取得方法及びプログラムに関する。
【背景技術】
【０００２】
従来、加速度センサの入力信号に基づいて、歩行者の現在位置を自律的に推定する技術が知られている。
例えば、特開２０１２−２４２１７９号公報には、加速度センサにより検出された加速度に基づいて、歩行者の進行方向を推定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２４２１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、加速度センサの入力信号から進行方向を推定するアルゴリズムにおいて、進行するコースによっては進行方向の推定精度が低下することがあり、この場合、正確な現在位置の推定結果を得ることも困難となる。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、より適切に進行方向を取得することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一態様の情報処理装置は、
情報処理装置であって、
第１の進行方向を取得するために予め定められた条件を満たしているか否かを判定する安定度判定手段と、
第１のタイミングにおいて、前記情報処理装置に加えられた第１の加速度に基づいて、前記情報処理装置が向いている第１の方向を取得する第１方向取得手段と、
前記予め定められた条件を満たしている場合に、前記第１の加速度に基づいて、前記第１のタイミングにおける前記情報処理装置の前記第１の進行方向を取得する第１進行方向取得手段と、
前記第１のタイミングの後の第２のタイミングにおいて、前記情報処理装置に加えられた第２の加速度に基づいて、前記情報処理装置が向いている第２の方向を取得する第２方向取得手段と、
前記第１の方向と前記第２の方向と、前記第１の進行方向と、に基づいて、前記第２のタイミングにおける前記情報処理装置の第２の進行方向を取得する第２進行方向取得手段と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、より適切に進行方向を取得することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
【図２】本発明の一実施形態に係る情報処理装置の外観図及び使用形態図であり、（ａ）は、図１の情報処理装置の外観図であり、（ｂ）はその使用形態の一例を示す図である。
【図３】図１の情報処理装置の機能的構成のうち、進行方向推定処理を実行するための機能的構成を示す機能ブロック図である。
【図４】最新の進行方向ベクトルの算出方法を示す模式図である。
【図５】水平面に射影された最新の進行方向ベクトルを示す模式図である。
【図６】平均進行方向θの推定に用いる加速度ベクトルの範囲を示す模式図である。
【図７】図３の機能的構成を有する図１の情報処理装置が実行する進行方向推定処理の流れを説明するフローチャートである。
【図８】ユーザの行動における鉛直方向及び前後方向の加速度（縦軸）と時間（横軸）との対応関係を示す模式図であり、（ａ）は、下り歩行時における加速度と時間との対応関係、（ｂ）は、平地・登り歩行時における加速度と時間との対応関係、（ｃ）は走行時における加速度と時間との対応関係を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を用いて説明する。
【００１０】
［ハードウェア構成］
図１は、本発明の一実施形態に係る情報処理装置１のハードウェアの構成を示すブロック図である。
情報処理装置１の外観は、例えば図２（ａ）に示すようにスマートフォンとして構成され、使用時には、図２（ｂ）に示すように、ユーザＵＳの腰等の体幹に近い部位に装着される。
【００１１】
情報処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、バス１４と、入出力インターフェース１５と、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）部１６と、センサ部１７と、入力部１８と、出力部１９と、記憶部２０と、通信部２１と、ドライブ２２と、を備えている。
【００１２】
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラム、または、記憶部２０からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。例えば、ＣＰＵ１１は、後述する進行方向推定処理のためのプログラムに従って、進行方向推定処理を実行する。
【００１３】
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００１４】
ＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インターフェース１５も接続されている。入出力インターフェース１５には、ＧＰＳ部１６、センサ部１７、入力部１８、出力部１９、記憶部２０、通信部２１及びドライブ２２が接続されている。
【００１５】
ＧＰＳ部１６は、アンテナを含み複数のＧＰＳ衛星から送信されるＧＰＳ信号を受信して、情報処理装置１の位置情報を取得する。
センサ部１７は、３軸加速度センサ、地磁気センサ及び気圧センサ等の各種センサを備えている。
【００１６】
入力部１８は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部１９は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
記憶部２０は、ハードディスクあるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種画像のデータを記憶する。
通信部２１は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。
【００１７】
ドライブ２２には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア３１が適宜装着される。ドライブ２２によってリムーバブルメディア３１から読み出されたプログラムは、必要に応じて記憶部２０にインストールされる。また、リムーバブルメディア３１は、記憶部２０に記憶されている画像のデータ等の各種データも、記憶部２０と同様に記憶することができる。
【００１８】
［機能的構成］
次に、情報処理装置１の機能的構成のうち、進行方向推定処理を実行するための機能的構成を、図３を参照して説明する。
図３は、このような図１の情報処理装置１の機能的構成のうち、進行方向推定処理を実行するための機能的構成を示す機能ブロック図である。
進行方向推定処理とは、センサからの入力信号に基づいて、ユーザに装着された情報処理装置１において第１のタイミングで推定された基準となる鉛直方向及び進行方向を所定の推定方法で推定し、その後の装着の向きのずれ等に起因する進行方向の基準からの変化を、第１のタイミングの後のタイミングで逐次推定される鉛直方向の基準からの変化を基に、当該所定の推定方法を介することなく推定して、現在位置を地図上に表示する一連の処理をいう。
【００１９】
進行方向推定処理が実行される場合、図３に示すように、ＣＰＵ１１において、加速度取得部５１と、鉛直方向推定部５２と、行動推定部５３と、解析安定度判定部５４と、フィルタ処理部５５と、進行方向推定部５６と、回転オフセット取得部５７と、現在位置算出部５８と、表示制御部５９とが機能する。
【００２０】
また、記憶部２０の一領域には、地図データ記憶部７１が設定される。
地図データ記憶部７１には、進行方向推定処理において表示される地図のデータが記憶される。
【００２１】
加速度取得部５１は、所定時間毎（例えば０．２秒毎）にセンサ部１７から加速度データを取得する。
鉛直方向推定部５２は、第１のタイミング及び第１のタイミング以降の第２のタイミングにて加速度取得部５１が取得した加速度データに基づいて、情報処理装置１の姿勢を基準姿勢とした場合の鉛直方向ベクトルを算出する。
具体的には、鉛直方向推定部５２は、第１のタイミングにて加速度取得部５１が取得した加速度データ（鉛直成分）において、予め設定した時間（例えば、４秒等）の平均値を算出することにより、基準とする鉛直方向ベクトル（以下、「基準鉛直方向ベクトル」と呼ぶ。）を算出する。
また、鉛直方向推定部５２は、この第１のタイミングで取得した基準鉛直方向ベクトルの算出後、この基準鉛直方向ベクトルと同様の算出方法によって、第２のタイミングで逐次、鉛直方向ベクトル（以下、「最新の鉛直方向ベクトル」と呼ぶ。）を算出する。
【００２２】
行動推定部５３は、加速度データに基づいて、推定されるユーザの行動が歩行であるか走行であるかの判定を行う。
なお、人間が走行する場合には、ユーザの両足が同時に地表から離れ、人間が歩行する場合には、ユーザの両足が同時に地表から離れることがないため、本実施形態における「歩行」と「走行」とは、このような観点で区別される。
具体的には、行動推定部５３は、取得した鉛直方向及び前後方向の加速度それぞれについて、各加速度の大きさが走行判定用の加速度閾値以上であって、各加速度のピークが示すピッチ（ピークの時間間隔）が走行判定用のピッチ閾値以下である場合に、ユーザが走行していると判定する。他方、行動推定部５３は、各加速度の大きさが走行判定用の加速度閾値未満、または、各加速度のピークが示すピッチが走行判定用のピッチ閾値未満である場合には、ユーザが歩行していると判定する。ここで、鉛直方向及び前後方向の加速度に関する走行判定用の加速度閾値及びピッチ閾値は、実験値やシミュレーション値を基に設定することができる。
【００２３】
解析安定度判定部５４は、現在の状況が、後述する基準進行方向ベクトルが安定して算出される条件（以下、「安定算出条件」と呼ぶ。）に合致しているか否かを判定するための解析安定度判定処理を実行する。具体的には、解析安定度判定部５４は、解析安定度判定処理を実行することにより、算出される進行方向ベクトルの向き（進行方向の前後）が予め設定された頻度（例えば毎秒３回）以上に入れ替わる状態や、算出される基準鉛直方向ベクトルのブレが予め設定された角度（例えば３０度）以上となる状態である場合に、現在の状況が、基準進行方向ベクトルの安定算出条件に合致していないと判定する。なお、下り道の歩行時には、平地または登り道の歩行時と比較して、進行方向の推定結果に誤差が生じる傾向があるため、解析安定度判定部５４において、下り歩行時は、基準進行方向ベクトルが安定して算出される条件に合致していないと判定することとしてもよい。このとき、下り歩行であることを判定する場合、気圧センサを用いたり、地図データにおける勾配を参照したり、ＧＰＳを用いて取得された高度の変化を参照したり、あるいは、下り道を歩行する際の加速度等の波形モデルと検出値とをパターンマッチングした行動推定結果を参照したりしてもよい。また、これらを組み合わせて下り歩行であることを判定してもよい。
【００２４】
フィルタ処理部５５は、加速度取得部５１が取得した加速度データに対して、行動推定部５３において推定したユーザの行動に応じたフィルタ処理を実行する。
具体的には、フィルタ処理部５５は、行動推定部５３において推定したユーザの行動が歩行である場合、取得した加速度データ（水平成分）に対して、２．０Ｈｚを中心して所定範囲の周波数帯域を通過させるバンドパスフィルタ（歩行用バンドパスフィルタ）による処理を実行する。フィルタ処理部５５は、行動推定部５３において推定したユーザの行動が走行である場合に、取得した加速度データ（水平成分）に対して、３．０Ｈｚを中心として所定範囲の周波数帯域を通過させるバンドパスフィルタ（走行用バンドパスフィルタ）による処理を実行する。
【００２５】
進行方向推定部５６は、ユーザの行動（例えば、下り歩行、平地・登り歩行または走行等）毎に、鉛直方向推定部５２が算出した鉛直方向ベクトル及びフィルタ処理部５５がフィルタ処理した後の加速度データに基づいて、異なる進行方向推定方法（例えば、下り歩行時用の進行方向推定方法、平地・登り歩行時用の進行方向推定方法または走行時用の進行方向推定方法等）によって、鉛直方向ベクトルの極値（ピーク）のタイミングと加速タイミングとの関係から、基準とする進行方向ベクトル（以下、「基準進行方向ベクトル」と呼ぶ。）を算出する。
【００２６】
具体的には、行動推定部５３においてユーザが下り道を進行していると判定した場合、進行方向推定部５６は、図８（ａ）に示すように、鉛直方向ベクトルが上方向の極値（ピーク）を示すタイミングＰｖ１に対して、時間軸における未来方向で最も近いＰｈ３（または時間軸における過去方向で２番目に近いＰｈ１）加速度データ（水平成分）の極値の方向を前方と推定する。また、図８（ｂ）に示すように、行動推定部５３においてユーザが下り道を進行していない（平地または登りである）と判定した場合、進行方向推定部５６は、鉛直方向ベクトルが上方向の極値（ピーク）を示すタイミングＰ’ｖ１に対して、時間軸における未来方向で２番目に近いＰ’ｈ３（または時間軸における過去方向で最も近いＰ’ｈ１）加速度データ（水平成分）の極値の方向を前方と推定する。一方、図８（ｃ）に示すように、行動推定部５３がユーザの行動を走行であると判定した場合、進行方向推定部５６は、鉛直方向ベクトルが上方向の極値（ピーク）を示すタイミングＰ’’ｖ１に対して、同じ半周期の期間に属する加速度データ（水平成分）の極値Ｐ’’ｈ１の方向を前方と推定する。
なお、進行方向推定部５６における進行方向の推定方法は、上述の方法の他、種々の方法を用いることが可能である。
【００２７】
また、進行方向推定部５６は、基準鉛直ベクトルと、基準進行方向ベクトルと、最新の鉛直方向ベクトルとに基づいて、逐次、進行方向ベクトル（以下、「最新の進行方向ベクトル」と呼ぶ。）を算出する。このとき、進行方向推定部５６は、基準進行方向ベクトルとは異なる算出方法によって、最新の進行方向ベクトルを算出する。
【００２８】
具体的には、進行方向推定部５６は、進行するコースによらず、また、装置の姿勢変化（装着位置のずれ、ユーザの姿勢の変化等）が生じても、鉛直方向と水平面上の進行方向の関係性は維持されることに鑑み、どのような状態でも推定が容易な鉛直方向ベクトルの基準からの変化を用いて、最新の進行方向ベクトルを推定する。
図４は、最新の進行方向ベクトルの算出方法を示す模式図である。
図４に示すように、進行方向推定部５６は、基準鉛直方向ベクトルを最新の鉛直方向ベクトルに変換する回転行列（以下、「相対回転行列」と呼ぶ。）を取得し、基準進行方向ベクトルを相対回転行列によって回転させることにより、最新の進行方向ベクトルを算出する。
これにより、基準進行方向ベクトルとは異なる算出方法によって、進行するコースや装置の姿勢変化に対してロバストに最新の進行方向ベクトルを算出することができる。
【００２９】
さらに、進行方向推定部５６は、最新の鉛直方向ベクトルによって規定される水平面に対して、最新の進行方向ベクトルを射影し、水平面上でのローカル座標における進行方向の角度θｂａｓｅを取得する。なお、ローカル座標は、地表面に設定されている絶対座標に対して、情報処理装置１に設定されている相対的な座標である。
図５は、水平面に射影された最新の進行方向ベクトルを示す模式図である。
図５に示す例では、ローカル座標のｘ軸に対して、最新の進行方向ベクトルの射影ベクトルは、角度θｂａｓｅだけ右回転した状態となっている。
【００３０】
進行方向推定部５６は、最新の鉛直方向ベクトルによって規定される水平面に、加速度取得部５１によって取得された加速度データが表す最新（例えば直近の１秒分）の複数の加速度ベクトルを射影し、各加速度ベクトルについて、水平面上でのローカル座標における角度θｔｍｐを算出する。そして、進行方向推定部５６は、それらの加速度ベクトルのうち、角度θｔｍｐが角度θｂａｓｅに近いもの（例えば角度θｂａｓｅを中心に±９０度の範囲のもの）を、ベクトルの長さを重みとして加重平均し、加重平均したベクトルのローカル座標における角度θを算出することで、平均化された進行方向（以下、「平均進行方向」と呼ぶ。）θを推定する。
【００３１】
図６は、平均進行方向θの推定に用いる加速度ベクトルの範囲を示す模式図である。
図６に示すように、本実施形態では、角度θｂａｓｅを中心に±９０度の範囲に含まれる加速度ベクトルを平均進行方向θの推定に用いている。
これにより、ローカル座標における直進のみならず、前方への斜め歩き等のイレギュラーな進行方向となる場合についても、広く進行方向として捉えることができる。また、基準進行方向ベクトルの推定精度に対する要求を低下させることができ、より正確な進行方向を推定することができる。
なお、進行方向推定部５６は、後述するように、回転オフセット取得部５７によって、ローカル座標における進行方向のオフセットが設定されている場合、そのオフセットを平均進行方向θに加算することにより、進行方向の補正を行う。
【００３２】
回転オフセット取得部５７は、ローカル座標の水平面上において、最新の進行方向ベクトルの射影から取得された進行方向の角度θｂａｓｅと、加速度ベクトルの射影を加重平均して推定された平均進行方向θとを比較し、ローカル座標における進行方向のオフセットを取得する。
具体的には、回転オフセット取得部５７は、水平面上において、角度θｂａｓｅと平均進行方向θとの差（θ−θｂａｓｅ）を逐次算出し、一定の差分以上の状態が一定時間（例えば数十秒）以上連続した場合、その差分を進行方向のオフセットθｏｆｆｓｅｔとして設定する。そして、以降の進行方向推定の際に、進行方向推定部５６によって、進行方向のオフセットθｏｆｆｓｅｔが加算されることで、進行方向の補正が行われる。これにより、情報処理装置１の姿勢変化が鉛直方向ベクトルを中心とする回転である場合にも、進行方向のオフセットとして、その回転を補正することができ、情報処理装置１の姿勢変化に対してロバストに進行方向を推定することが可能となる。
【００３３】
現在位置算出部５８は、進行方向の推定結果に応じて、水平方向の加速度のデータから現在位置を算出する。これにより、ＧＰＳ等の測位システムを利用することなく、自律的に現在位置が算出される。
表示制御部５９は、地図データ記憶部７１に記憶された地図のデータを参照し、現在位置算出部５８によって算出された現在位置を地図上に表示する。
【００３４】
［動作］
次に、動作を説明する。
図７は、図３の機能的構成を有する図１の情報処理装置１が実行する進行方向推定処理の流れを説明するフローチャートである。
進行方向推定処理は、所定の時間以上、ＧＰＳ部１６においてＧＰＳ信号を受信できない場合に開始され、ＧＰＳ部１６においてＧＰＳ信号を受信可能となるまで、繰り返し実行される。
【００３５】
ステップＳ１１において、加速度取得部５１は、所定時間毎（例えば０．２秒毎）にセンサ部１７から加速度データを取得する。
ステップＳ１２において、解析安定度判定部５４は、基準進行方向ベクトルの安定算出条件を判定するための解析安定度判定処理を実行する。具体的には、解析安定度判定部５４は、解析安定度判定処理によって、算出される進行方向ベクトルの向き（進行方向の前後）が予め設定された頻度（例えば毎秒３回）以上に入れ替わる状態であるか否か、及び、算出される基準鉛直方向ベクトルのブレが予め設定された角度（例えば３０度）以上となる状態であるか否かを判定する。なお、解析安定度判定処理によって、下り道の歩行であるか否かを判定することとしてもよい。
【００３６】
ステップＳ１３において、解析安定度判定部５４は、現在の状況が、基準進行方向ベクトルの安定算出条件に合致しているか否かの判定を行う。
現在の状況が、基準進行方向ベクトルの安定算出条件に合致している場合、ステップＳ１３においてＹＥＳと判定されて、処理はステップＳ１４に移行する。
一方、現在の状況が、基準進行方向ベクトルの安定算出条件に合致していない場合、ステップＳ１３においてＮＯと判定されて、処理はステップＳ１５に移行する。
【００３７】
ステップＳ１４において、鉛直方向推定部５２は、加速度取得部５１が取得した加速度データに基づいて、基準鉛直方向ベクトルを算出する。また、進行方向推定部５６は、ユーザの行動毎に、鉛直方向推定部５２が算出した鉛直方向ベクトル及びフィルタ処理部５５がフィルタ処理した後の加速度データに基づいて、異なる進行方向推定方法によって、鉛直方向ベクトルの極値（ピーク）のタイミングと加速タイミングとの関係から、基準進行方向ベクトルを算出する。
【００３８】
ステップＳ１５において、解析安定度判定部５４は、一度でも基準進行方向ベクトルの安定算出条件に合致していると判定されたか否か（即ち、安定算出条件を充足済みであるか否か）の判定を行う。なお、安定算出条件を充足済みであるか否かを判定する期間は、進行方向推定処理開始以降の期間とすることや、一定の時間（例えば５分）毎とすること等が可能である。
一度でも基準進行方向ベクトルの安定算出条件に合致していると判定された場合、ステップＳ１５においてＹＥＳと判定されて、処理はステップＳ１６に移行する。
一方、一度も基準進行方向ベクトルの安定算出条件に合致していると判定されていない場合、ステップＳ１５においてＮＯと判定されて、進行方向推定処理が繰り返される。
【００３９】
ステップＳ１６において、鉛直方向推定部５２は、加速度取得部５１が取得した加速度データ（鉛直成分）において、予め設定した時間（例えば、４秒等）の平均値を算出することにより、基準鉛直方向ベクトルを算出する。
ステップＳ１７において、進行方向推定部５６は、基準鉛直ベクトルと、基準進行方向ベクトルと、最新の鉛直方向ベクトルとに基づいて、最新の進行方向ベクトルを算出する。
【００４０】
ステップＳ１８において、進行方向推定部５６は、最新の鉛直方向ベクトルによって規定される水平面に対して、最新の進行方向ベクトルを射影し、水平面上でのローカル座標における進行方向の角度θｂａｓｅを取得する。
【００４１】
ステップＳ１９において、回転オフセット取得部５７は、ローカル座標における進行方向のオフセットθｏｆｆｓｅｔを設定済みであるか否かの判定を行う。
ローカル座標における進行方向のオフセットθｏｆｆｓｅｔを設定済みである場合、ステップＳ１９においてＹＥＳと判定されて、処理はステップＳ２０に移行する。
一方、ローカル座標における進行方向のオフセットθｏｆｆｓｅｔを設定済みでない場合、ステップＳ１９においてＮＯと判定されて、処理はステップＳ２１に移行する。
【００４２】
ステップＳ２０において、進行方向推定部５６は、回転オフセット取得部５７によって設定されたローカル座標における進行方向のオフセットを進行方向の角度θｂａｓｅに加算することにより、進行方向の補正を行う。
ステップＳ２０の後、処理はステップＳ２１に移行する。
ステップＳ２１において、進行方向推定部５６は、平均進行方向θを推定する。具体的には、進行方向推定部５６は、最新の鉛直方向ベクトルによって規定される水平面に、加速度取得部５１によって取得された加速度データが表す最新（例えば直近の１秒分）の複数の加速度ベクトルを射影し、水平面における角度θｔｍｐが角度θｂａｓｅに近いもの（例えば角度θｂａｓｅを中心に±９０度の範囲のもの）を、ベクトルの長さを重みとして加重平均し、その結果得られるベクトルのローカル座標における角度θを算出することで、平均進行方向θを推定する。
【００４３】
ステップＳ２２において、回転オフセット取得部５７は、ローカル座標の水平面上において、最新の進行方向ベクトルの射影から取得された進行方向の角度θｂａｓｅと、加速度ベクトルの射影を加重平均して推定された平均進行方向θとを比較し、ローカル座標における進行方向のオフセットθｏｆｆｓｅｔを取得する。
【００４４】
ステップＳ２３において、回転オフセット取得部５７は、ローカル座標における進行方向のオフセットθｏｆｆｓｅｔがあるか否かの判定を行う。
ローカル座標における進行方向のオフセットθｏｆｆｓｅｔがある場合、ステップＳ２３においてＹＥＳと判定されて、処理はステップＳ２４に移行する。
一方、ローカル座標における進行方向のオフセットθｏｆｆｓｅｔがない場合、ステップＳ２３においてＮＯと判定されて、進行方向推定処理が繰り返される。
【００４５】
ステップＳ２４において、回転オフセット取得部５７は、取得されたローカル座標における進行方向のオフセットθｏｆｆｓｅｔを設定する。
ステップＳ２４の後、進行方向推定処理が繰り返される。
【００４６】
このような処理により、加速度データに基づいて基準鉛直方向ベクトルを推定し、基準鉛直方向ベクトルに対して所定の進行方向推定方法によって基準進行方向ベクトルを推定した後、逐次推定される鉛直方向ベクトルの基準鉛直方向ベクトルからの変化に対応して、進行方向ベクトルが推定される。
そのため、進行するコースや装置の姿勢変化に対してロバストに最新の進行方向ベクトルを算出することができる。
したがって、より適切に進行方向を推定することが可能となる。
【００４７】
また、基準進行方向ベクトルを推定する場合に、ユーザの行動（下り道を歩行している場合、平地または登り道を歩行している場合、あるいは、走行している場合等）に応じて、ユーザの進行方向を推定するための進行方向推定方法が切り替えられる。
したがって、ユーザの状況に応じて、より正確に進行方向を推定することができる。
【００４８】
また、最新の鉛直方向ベクトルによって規定される水平面に、最新の複数の加速度ベクトルが射影され、それら加速度ベクトルの射影において、水平面における角度θｔｍｐが、最新の進行方向ベクトルの射影によって表される進行方向の角度θｂａｓｅに近いものが、ベクトルの長さを重みとして加重平均される。さらに、加重平均の結果得られるベクトルのローカル座標における角度θを算出することで、平均進行方向θが推定される。
したがって、ローカル座標における直進のみならず、前方への斜め歩き等のイレギュラーな進行方向となる場合についても、広く進行方向として捉えることができる。また、基準進行方向ベクトルの推定精度に対する要求を低下させることができ、より正確な進行方向を推定することができる。
【００４９】
また、水平面上において、角度θｂａｓｅと平均進行方向θとの差（θ−θｂａｓｅ）が逐次算出され、一定の差分以上の状態が一定時間（例えば数十秒）以上連続した場合、その差分を進行方向のオフセットθｏｆｆｓｅｔとして設定される。そして、以降の進行方向推定の際に、進行方向のオフセットθｏｆｆｓｅｔを加算することで、進行方向の補正が行われる。
したがって、情報処理装置１の姿勢変化が鉛直方向ベクトルを中心とする回転である場合にも、進行方向のオフセットとして、その回転を補正することができ、情報処理装置１の姿勢変化に対してロバストに進行方向を推定することが可能となる。
【００５０】
以上のように構成される情報処理装置１は、ＣＰＵ１１を備える。
ＣＰＵ１１は、第１のタイミングにおいて、加速度センサによって取得された加速度に基づいて、前記情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第１の鉛直方向として推定する第１鉛直方向推定処理を実行する。
また、ＣＰＵ１１は、第１のタイミングで推定された鉛直方向に対応する第１の進行方向を推定する第１進行方向推定処理を実行する。
また、ＣＰＵ１１は、第１のタイミングの後の第２のタイミングにおいて、加速度センサによって取得された加速度に基づいて、情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第２の鉛直方向として推定する第２鉛直方向推定処理を実行する。
また、ＣＰＵ１１は、第１の鉛直方向と第２の鉛直方向との差分に基づいて修正された第１の進行方向を第２の進行方向として推定する第２進行方向推定処理を実行する。
これにより、推定が容易な鉛直方向の変化を用いて、進行するコースや装置の姿勢変化に対してロバストに最新の進行方向ベクトルを算出することができる。
したがって、より適切に進行方向を推定することが可能となる。
【００５１】
また、ＣＰＵ１１は、取得された加速度に基づいて、ユーザの行動を推定する行動推定処理を実行する。
また、ＣＰＵ１１は、第１進行方向推定処理において、行動推定処理の推定結果に応じた方向推定方法によって、第１の進行方向を推定する処理を実行する。
これにより、第１の進行方向を推定する場合に、ユーザの行動（下り道を歩行している場合、平地または登り道を歩行している場合、あるいは、走行している場合等）に応じて、ユーザの進行方向を推定するための推定方法が切り替えられる。
したがって、ユーザの状況に応じて、より正確に進行方向を推定することができる。
【００５２】
また、ＣＰＵ１１は、行動推定処理において、取得された加速度データに基づいて、推定されるユーザの行動が下り歩行、上り歩行及び走行のいずれであるかの判定を行う処理を実行する。
これにより、下り歩行、上り歩行及び走行において、より正確に進行方向を推定することができる。
【００５３】
また、ＣＰＵ１１は、行動推定処理において、取得した第１の鉛直方向及び第１の進行方向の加速度それぞれについて、各加速度の大きさが走行判定用の加速度閾値以上であって、各加速度のピークの時間間隔を示すピッチが走行判定用の閾値以下である場合に、ユーザが走行していると判定するとともに、各加速度の大きさが走行判定用の加速度閾値未満、または、各加速度のピークの時間間隔を示すピッチが走行判定用の閾値未満である場合には、ユーザが歩行していると判定する処理を実行する。
これにより、走行であるか歩行であるかをより正確に判定することが可能となる。
【００５４】
また、ＣＰＵ１１は、第１鉛直方向推定処理において、予め設定した時間内に取得された加速度データの鉛直成分の平均値を、第１の鉛直方向として取得する処理を実行する。
これにより、ばらつきを抑制して、より適切に第１の鉛直方向を推定することができる。
【００５５】
また、ＣＰＵ１１は、第１の進行方向が安定して推定される条件を満たしているか否かを判定する安定度判定処理を実行する。
これにより、より正確に第１の進行方向を推定することができる。
【００５６】
また、ＣＰＵ１１は、安定度判定処理において、推定される第１の進行方向が予め設定された頻度以上に入れ替わる状態、及び推定された第１の鉛直方向のブレが予め設定された角度以上となる状態の少なくとも一方である場合、第１の進行方向が安定して推定される条件を満たしていないと判定する処理を実行する。
これにより、第１の進行方向の入れ替わり及び第１の鉛直方向のブレの状態に基づいて、明確な判定基準によって、第１の進行方向が安定して推定される状態であるか否かを判定することができる。
【００５７】
また、ＣＰＵ１１は、安定度判定処理において、下り歩行であるか否かを判定する下り歩行判定処理と、下り歩行判定処理により、下り歩行であると判定された場合は、第１の進行方向が安定して推定される条件を満たしていないと判定する処理を実行する。
これにより、第１の進行方向が安定して推定される条件に適していない行動をユーザが行っている場合に、第１の進行方向が推定されることを抑制することができる。
【００５８】
ＣＰＵ１１は、第１進行方向推定処理において、取得された加速度データに対して、行動推定処理により推定したユーザの行動が歩行である場合、取得された加速度データの水平成分に対して、第１の周波数帯域を通過させるとともに、推定されたユーザの行動が走行である場合に、取得された加速度データの水平成分に対して、第１の周波数帯域より高い第２の周波数帯域を通過させるフィルタ処理を実行する。
また、ＣＰＵ１１は、第１進行方向推定処理において、行動推定処理により推定されたユーザの行動毎に、推定された第１の鉛直方向及びフィルタ処理された加速度データに基づいて、異なる進行方向推定方法により、第１の進行方向を推定する処理を実行する。
これにより、ユーザの行動に応じて、より正確に第１の進行方向を推定することができる。
【００５９】
また、ＣＰＵ１１は、第１進行方向推定処理において、行動推定処理により下り歩行していると判定した場合、第１の鉛直方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で最も近い、または時間軸における過去方向で２番目に近い加速度データの水平成分のピークの方向を前方と推定する処理を実行する。
また、ＣＰＵ１１は、行動推定処理により下り歩行していないと判定した場合、第１の鉛直方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で２番目に近い、または時間軸における過去方向で最も近い加速度データの水平成分のピークの方向を前方と推定する処理を実行する。
これにより、下り歩行時及び平地または登り歩行時における進行方向をより適切に推定することが可能となる。
【００６０】
また、ＣＰＵ１１は、第１進行方向推定処理において、行動推定処理により走行していると判定した場合、第１の鉛直方向が上方向のピークを示すタイミングに対して、同じ半周期の期間に属する加速度データの水平成分のピークの方向を前方と推定する処理を実行する。
これにより、走行時における進行方向をより適切に推定することが可能となる。
【００６１】
また、ＣＰＵ１１は、第２の進行方向を示すベクトルを、第２のタイミングで推定された鉛直方向によって規定される水平面に射影し、当該水平面において、第２の進行方向を示すベクトルの向きから設定された角度内にある複数の加速度のベクトルに基づいて、平均化された進行方向を推定する平均進行方向推定処理を実行する。
これにより、直進のみならず、前方への斜め歩き等のイレギュラーな進行方向となる場合についても、広く進行方向として捉えることができる。また、第１の進行方向の推定精度に対する要求を低下させることができ、より正確な進行方向を推定することができる。
【００６２】
ＣＰＵ１１は、第２の進行方向を示すベクトルを、第２のタイミングで推定された鉛直方向によって規定される水平面に射影した向きに対し、平均化された進行方向の向きが一定の差分以上である状態が閾値時間以上連続した場合に、当該差分を進行方向のオフセットとして取得するオフセット取得処理を実行する。
これにより、情報処理装置１の姿勢変化が鉛直方向を中心とする回転である場合にも、進行方向のオフセットとして、その回転を取得することができる。
【００６３】
ＣＰＵ１１は、平均進行方向推定処理において、平均化された進行方向に、オフセット取得処理によって取得された差分を加算することにより、進行方向を補正する処理を実行する。
これにより、情報処理装置１の姿勢変化が鉛直方向を中心とする回転である場合にも、進行方向のオフセットとして、その回転を補正することができ、情報処理装置１の姿勢変化に対してロバストに進行方向を推定することが可能となる。
【００６４】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００６５】
上述の実施形態では、安定算出条件に合致しているか否かを判定する場合に、算出される進行方向ベクトルの向き（進行方向の前後）が予め設定された頻度（例えば毎秒３回）以上に入れ替わる状態や、算出される基準鉛直方向ベクトルのブレが予め設定された角度（例えば３０度）以上となる状態である場合に、現在の状況が、基準進行方向ベクトルの安定算出条件に合致していないと判定するものとした。これに対し、安定算出条件を設定するために、平坦な道をユーザが歩行する際の加速度データを予め取得しておき、安定算出条件を判定する際に、予め取得された加速度データの波形と、検出された現在の加速度データの波形とをマッチングすることとしてもよい。
これにより、そのユーザに合わせた安定算出条件を取得して、より適切に基準進行方向ベクトルを算出することが可能となる。
【００６６】
また、上述の実施形態では、回転オフセット取得部５７は、加速度取得部５１によって取得された加速度データに基づいて、水平面上において、角度θｂａｓｅと平均進行方向θとの差（θ−θｂａｓｅ）を逐次算出し、一定の差分以上の状態が一定時間（例えば数十秒）以上連続した場合、その差分を進行方向のオフセットθｏｆｆｓｅｔとして設定するものとして説明した。これに対し、加速度取得部５１によって取得された加速度データに代えて、あるいは、加速度取得部５１によって取得された加速度データとともに、地図データや、ジャイロセンサによって取得される角速度データに基づいて、進行方向や進行方向の変化等を算出し、進行方向のオフセットを設定することとしてもよい。
これにより、多様な手段によって進行方向のオフセットを設定することが可能となる。
【００６７】
また、上述の実施形態において、進行方向推定処理は、ＧＰＳ信号を受信できない場合に実行することとしたが、これに限られない。即ち、ＧＰＳ信号を受信できる場合においても、進行方向推定処理を併せて行い、ＧＰＳ信号に基づく進行方向と進行方向推定処理に基づく進行方向のうち、より信頼できる進行方向を採用してもよい。
【００６８】
また、上述の実施形態では、本発明が適用される情報処理装置１は、スマートフォンを例として説明したが、特にこれに限定されない。
例えば、本発明は、加速度センサを備え、体幹近くに装着可能な電子機器一般に適用することができる。具体的には、例えば、本発明は、歩数計、ウェアラブル端末、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
【００６９】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図３の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理装置１に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図３の例に限定されない。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００７０】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【００７１】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図３のリムーバブルメディア３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア３１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ），Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ（ブルーレイディスク）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図１のＲＯＭ１２や、図１の記憶部２０に含まれるハードディスク等で構成される。
【００７２】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【００７３】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００７４】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
処理部を有する情報処理装置であって、
前記処理部が、
第１のタイミングにおいて、加速度センサによって取得された加速度に基づいて、前記情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第１の鉛直方向として推定する第１鉛直方向推定処理と、
前記第１のタイミングで推定された鉛直方向に対応する第１の進行方向を推定する第１進行方向推定処理と、
前記第１のタイミングの後の第２のタイミングにおいて、前記加速度センサによって取得された加速度に基づいて、前記情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第２の鉛直方向として推定する第２鉛直方向推定処理と、
前記第１の鉛直方向と前記第２の鉛直方向との差分に基づいて修正された前記第１の進行方向を第２の進行方向として推定する第２進行方向推定処理と、を実行する、情報処理装置。
［付記２］
前記処理部はさらに、前記取得された加速度に基づいて、ユーザの行動を推定する行動推定処理を実行し、
前記第１進行方向推定処理において、前記行動推定処理の推定結果に応じた方向推定方法によって、前記第１の進行方向を推定する処理を実行する付記１に記載の情報処理装置。
［付記３］
前記処理部は、前記行動推定処理において、前記取得された加速度データに基づいて、推定されるユーザの行動が下り歩行、上り歩行及び走行のいずれであるかの判定を行う処理を実行する付記２に記載の情報処理装置。
［付記４］
前記処理部は、前記行動推定処理において、前記取得した第１の鉛直方向及び第１の進行方向の加速度それぞれについて、前記各加速度の大きさが走行判定用の加速度閾値以上であって、前記各加速度のピークの時間間隔を示すピッチが走行判定用の閾値以下である場合に、ユーザが走行していると判定するとともに、前記各加速度の大きさが走行判定用の加速度閾値未満、または、前記各加速度のピークの時間間隔を示すピッチが走行判定用の閾値未満である場合には、ユーザが歩行していると判定する処理を実行する、付記３に記載の情報処理装置。
［付記５］
前記処理部は、前記第１鉛直方向推定処理において、予め設定した時間内に取得された前記加速度の鉛直成分の平均値を、前記第１の鉛直方向として取得する処理を実行する付記１乃至４のいずれかに記載の情報処理装置。
［付記６］
前記処理部はさらに、前記第１の進行方向が安定して推定される条件を満たしているか否かを判定する安定度判定処理を実行する、付記１乃至５のいずれかに記載の情報処理装置。
［付記７］
前記処理部は、前記安定度判定処理において、前記推定される第１の進行方向が予め設定された頻度以上に入れ替わる状態、及び前記推定された第１の鉛直方向のブレが予め設定された角度以上となる状態の少なくとも一方である場合、前記第１の進行方向が安定して推定される条件を満たしていないと判定する処理を実行する、付記６に記載の情報処理装置。
［付記８］
前記処理部は、前記安定度判定処理において、下り歩行であるか否かを判定する下り歩行判定処理と、前記下り歩行判定処理により、下り歩行であると判定された場合は、前記第１の進行方向が安定して推定される条件を満たしていないと判定する処理を実行する、付記６に記載の情報処理装置。
［付記９］
前記処理部は、第１進行方向推定処理において、前記取得された加速度データに対して、前記行動推定処理により推定したユーザの行動が歩行である場合、前記取得された加速度データの水平成分に対して、第１の周波数帯域を通過させるとともに、前記推定されたユーザの行動が走行である場合に、前記取得された加速度データの水平成分に対して、前記第１の周波数帯域より高い第２の周波数帯域を通過させるフィルタ処理を実行し、
前記第１進行方向推定処理において、前記行動推定処理により推定されたユーザの行動毎に、前記推定された第１の鉛直方向及び前記フィルタ処理された加速度データに基づいて、異なる進行方向推定方法により、前記第１の進行方向を推定する処理を実行する、付記２記載の情報処理装置。
［付記１０］
前記処理部は、前記第１進行方向推定処理において、前記行動推定処理により下り歩行していると判定した場合、前記第１の鉛直方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で最も近い、または時間軸における過去方向で２番目に近い加速度データの水平成分のピークの方向を前方と推定する処理を実行し、
前記行動推定処理により下り歩行していないと判定した場合、前記第１の鉛直方向が上方向のピークを示すタイミングに対して、時間軸における未来方向で２番目に近い、または時間軸における過去方向で最も近い加速度データの水平成分のピークの方向を前方と推定する処理を実行する、付記９に記載の情報処理装置。
［付記１１］
前記処理部は、前記第１進行方向推定処理において、前記行動推定処理により走行していると判定した場合、前記第１の鉛直方向が上方向のピークを示すタイミングに対して、同じ半周期の期間に属する前記加速度データの水平成分のピークの方向を前方と推定する処理を実行する、付記９に記載の情報処理装置。
［付記１２］
前記処理部はさらに、前記第２の進行方向を示すベクトルを、前記第２のタイミングで推定された鉛直方向によって規定される水平面に射影し、当該水平面において、前記第２の進行方向を示すベクトルの向きから設定された角度内にある複数の加速度のベクトルに基づいて、平均化された進行方向を推定する平均進行方向推定処理を実行する付記１に記載の情報処理装置。
［付記１３］
前記処理部はさらに、前記第２の進行方向を示すベクトルを、前記第２のタイミングで推定された鉛直方向によって規定される水平面に射影した向きに対し、前記平均化された進行方向の向きが一定の差分以上である状態が閾値時間以上連続した場合に、当該差分を進行方向のオフセットとして取得するオフセット取得処理を実行する付記１２に記載の情報処理装置。
［付記１４］
前記処理部は、前記平均進行方向推定処理において、前記平均化された進行方向に、前記オフセット取得処理によって取得された前記差分を加算することにより、進行方向を補正する処理を実行する付記１３に記載の情報処理装置。
［付記１５］
情報処理装置で実行される進行方向推定方法であって、前記情報処理装置が、
第１のタイミングで取得された加速度に基づいて、前記情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第１の鉛直方向として推定し、
前記第１の鉛直方向に対応する第１の進行方向を推定し、
前記第１のタイミングの後の第２のタイミングで取得された加速度に基づいて、前記情報処理装置の姿勢を基準姿勢とした場合の鉛直方向を第２の鉛直方向として推定し、
前記第１の鉛直方向と第２の鉛直方向との差分に基づいて修正された前記第１の進行方向を第２の進行方向として推定する、進行方向推定方法。
［付記１６］
情報処理装置として用いられるコンピュータに、
第１のタイミング及び前記第１のタイミング以降の第２のタイミングにて取得された加速度に基づいて、鉛直方向を推定する鉛直方向推定機能と、
前記第１のタイミングで推定された鉛直方向に対応する第１の進行方向を推定する第１進行方向推定機能と、
前記第１のタイミングで推定された鉛直方向と、前記第１の進行方向と、前記第２のタイミングで推定された鉛直方向とに基づいて、第２の進行方向を推定する第２進行方向推定機能と、
を実現させるプログラム。
【符号の説明】
【００７５】
１・・・情報処理装置，１１・・・ＣＰＵ，１２・・・ＲＯＭ，１３・・・ＲＡＭ，１４・・・バス，１５・・・入出力インターフェース，１６・・・ＧＰＳ部，１７・・・センサ部，１８・・・入力部，１９・・・出力部，２０・・・記憶部，２１・・・通信部，２２・・・ドライブ，３１・・・リムーバブルメディア，５１・・・加速度取得部，５２・・・鉛直方向推定部，５３・・・行動推定部，５４・・・解析安定度判定部，５５・・・フィルタ処理部，５６・・・進行方向推定部，５７・・・回転オフセット取得部，５８・・・現在位置算出部，５９・・・表示制御部，７１・・・地図データ記憶部，ＵＳ・・・ユーザ
【図１】
0006662129.tif 000002
【図２】
0006662129.tif 000003
【図３】
0006662129.tif 000004
【図４】
0006662129.tif 000005
【図５】
0006662129.tif 000006
【図６】
0006662129.tif 000007
【図７】
0006662129.tif 000008
【図８】
0006662129.tif 000009