(57)【要約】【課題】使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供することを目的とする。【解決手段】記憶部，演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、演算処理部に、加速度センサからの出力信号を取得する取得ステップと、加速度センサからの出力信号の特徴に基づいて、加速度センサからの出力信号の特徴に対応する使用者の体の向きに対する移動方向および移動状態を判定テーブルを利用して判定する判定ステップとを実行させることにより、上記課題を解決する。【選択図】図１
2007325722.tif 000002
【特許請求の範囲】
【請求項１】
記憶部，演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
【請求項２】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記３軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記３軸方向の加速度の振幅値および前記３軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項１記載の移動量検出プログラム。
【請求項３】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度が最大となる最大値時間，前記３軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記３軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項１記載の移動量検出プログラム。
【請求項４】
前記判定テーブルは、前記使用者の移動状態ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記３軸方向の加速度の最大値および最小値の差である加速度の振幅値，前記使用者の歩行周期を前記３軸方向ごとに算出し、
前記判定ステップは、前記３軸方向の加速度の振幅値，前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする請求項１乃至３何れか一項記載の移動量検出プログラム。
【請求項５】
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動量検出プログラム及び移動量検出装置に係り、特に使用者の移動量を検出する自律型の移動量検出プログラム及び移動量検出装置に関する。
【背景技術】
【０００２】
自律型の移動量検出装置における移動方向の検出および体の向きの検出は、例えば特許文献１〜３に記載されるように、現状、ジャイロセンサおよび磁気センサを利用し、ジャイロセンサおよび磁気センサから得られる情報を単独あるいは融合することで得られる方位角から推定されるものであった。
【特許文献１】特許第３３１４９１７号
【特許文献２】特開２０００−９７７２２号公報
【特許文献３】特開２００４−１４１６６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、自律型の移動量検出装置は、体の向きを移動方向とする仮定により位置を検出するか、もしくは体の向きに対する移動方向を予め設定して位置を検出するため、体の向きと異なる方向に移動する、横歩き，後退を行った場合、正確な移動量の検出ができないという問題があった。また、例えば走っているのか、歩いているのか、といった移動状態を加味しなければ、正確な移動量の検出ができないという問題があった。
【０００４】
即ち、自律型の移動量検出装置は移動方向及び移動状態に応じた検出、計算を行わなければ正確な移動量の検出ができないという問題があった。
【０００５】
本発明は、上記の点に鑑みなされたもので、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、記憶部，演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップとを実行させる移動量検出プログラムであることを特徴とする。
【０００７】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記３軸方向の加速度の振幅値の比が表されており、前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記３軸方向の加速度の振幅値および前記３軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【０００８】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度が最大となる最大値時間，前記３軸方向の加速度が最小となる最小値時間の発現順が表されており、前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記３軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【０００９】
前記判定テーブルは、前記使用者の移動状態ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、前記算出ステップは、前記３軸方向の加速度の最大値および最小値の差である加速度の振幅値，前記使用者の歩行周期を前記３軸方向ごとに算出し、前記判定ステップは、前記３軸方向の加速度の振幅値，前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴としてもよい。
【００１０】
また、上記課題を解決するため、本発明は、使用者の移動量を検出する移動量検出装置であって、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部とを有することを特徴とする。
【００１１】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１２】
上述の如く、本発明によれば、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供可能である。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【００１４】
図１は、本発明による移動量検出装置の一実施例のハードウェア構成図である。図１の移動量検出装置は、センサ部１０１，演算処理部１０２，記憶部１０３，表示部１０４及び通信部１０５を有する構成である。移動量検出装置は、図１の構成を有する専用装置であってもよいし、センサ部１０１からの出力信号を入力可能であり、演算処理部１０２，記憶部１０３，表示部１０４及び通信部１０５を有するＰＤＡ（Personal Digital Assistant）やＰＣ（Personal Computer）などの装置であってもよい。
【００１５】
センサ部１０１は、加速度センサ１０６，磁気センサ１０７，ジャイロセンサ１０８等を有し、移動量検出装置を装着している使用者の動作を検出する。演算処理部１０２は使用者の体の向き，使用者の体の向きに対する移動方向，使用者の移動状態を演算処理によって求める。
【００１６】
記憶部１０３は、ハードディスクやフラッシュメモリなどの記憶デバイスであり、入力情報１０９，出力情報１１０，及び演算処理に必要な設定パラメータ１１１，判定テーブル１１２，演算アルゴリズム１１３を記憶している。表示部１０４は液晶ディスプレイなどの表示デバイスである。通信部１０５は、演算処理によって求められた使用者の体の向き，使用者の体の向きに対する移動方向，使用者の移動状態、または演算処理に必要な設定パラメータ１１１，判定テーブル１１２，演算アルゴリズム１１３を、外部の装置と送受信する。
【００１７】
移動量検出プログラムは移動量検出装置を制御する各種プログラムの少なくとも一部である。移動量検出プログラムは例えば記録媒体の配布やネットワークからのダウンロードなどによって提供される。移動量検出プログラムを記録した記録媒体は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１８】
また、移動量検出プログラムを記録した記録媒体がドライブ装置（図示せず）にセットされると、移動量検出プログラムは記録媒体からドライブ装置を介して記憶部１０３にインストールされる。ネットワークからダウンロードされる移動量検出プログラムは、通信部１０５を介して記憶部１０３にインストールされる。
【００１９】
移動量検出装置は、インストールされた移動量検出プログラムを記憶部１０３に記憶させると共に、必要なファイル，データ等を記憶部１０３に記憶させる。演算処理部１０２は記憶部１０３に記憶された移動量検出プログラムに従って、後述するような各種処理を実現している。
【００２０】
図２はセンサ部からの出力信号を入力する処理を表したフローチャートである。図３は使用者の軸をＸ軸，Ｙ軸及びＺ軸の３軸方向で表した説明図である。
【００２１】
まず、ステップＳ１に進み、演算処理部１０２はセンサ部１０１の加速度センサ１０６から３軸の加速度情報を受信する。演算処理部１０２は受信した３軸の加速度情報を、記憶部１０３の設定パラメータ１１１に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部１０３の入力情報１０９として記憶する。
【００２２】
ステップＳ２に進み、演算処理部１０２はセンサ部１０１の磁気センサ１０７から３軸の磁気情報を受信する。演算処理部１０２は、受信した３軸の磁気情報を、記憶部１０３の設定パラメータ１１１に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部１０３の入力情報１０９として記憶する。
【００２３】
ステップＳ３に進み、演算処理部１０２はセンサ部１０１のジャイロセンサ１０８から３軸のジャイロ情報を受信する。演算処理部１０２は、受信した３軸のジャイロ情報を、記憶部１０３の設定パラメータ１１１に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部１０３の入力情報１０９として記憶する。
【００２４】
そして、演算処理部１０２はステップＳ３の処理が終わると、再びステップＳ１の処理に戻ってステップＳ１〜Ｓ３の処理を繰り返し行う。したがって、記憶部１０３には３軸の加速度情報，磁気情報およびジャイロ情報が入力情報１０９として、自動的に記憶されていく。
【００２５】
図４は移動量を検出する処理を表したフローチャートである。まず、ステップＳ１１に進み、演算処理部１０２は一定時間待機する。一定時間待機したあと、演算処理部１０２はステップＳ１２に進み、記憶部１０３の入力情報１０９として記憶されている３軸の加速度情報から、使用者の体の向きに対する移動方向を算出する。そして、演算処理部１０２は算出した使用者の体の向きに対する移動方向を、記憶部１０３の出力情報１１０として記憶する。なお、ステップＳ１２の詳細は後述する。
【００２６】
ステップＳ１３に進み、演算処理部１０２は、記憶部１０３の入力情報１０９として記憶されている３軸の加速度情報から、使用者の移動状態を算出する。演算処理部１０２は算出した使用者の移動状態を、記憶部１０３の出力情報１１０として記憶する。なお、ステップＳ１３の詳細は後述する。
【００２７】
ステップＳ１４に進み、演算処理部１０２は、記憶部１０３の入力情報１０９として記憶されている３軸の加速度情報から、使用者の移動距離を算出する。演算処理部１０２は算出した使用者の移動距離を、記憶部１０３の出力情報１１０として記憶する。なお、ステップＳ１４の詳細は後述する。
【００２８】
ステップＳ１５に進み、演算処理部１０２は、記憶部１０３の入力情報１０９として記憶されている３軸の磁気情報およびジャイロ情報から、使用者の体の向きを算出する。演算処理部１０２は算出した使用者の体の向きを、記憶部１０３の出力情報１１０として記憶する。なお、ステップＳ１５の詳細は後述する。
【００２９】
ステップＳ１６に進み、演算処理部１０２は記憶部１０３の出力情報１１０として記憶した使用者の体の向きに対する移動方向，移動距離，体の向きから、使用者の位置を算出する。演算処理部１０２は算出した使用者の位置を、記憶部１０３の出力情報１１０として記憶する。
【００３０】
ステップＳ１７に進み、演算処理部１０２は記憶部１０３の出力情報１１０として記憶した使用者の体の向きに対する移動方向，移動距離，体の向き及び位置の情報を、通信部１０５を介して外部の装置に送信する。そして、演算処理部１０２はステップＳ１７の処理が終わると、再びステップＳ１１の処理に戻ってステップＳ１１〜Ｓ１７の処理を一定時間毎に繰り返し行う。したがって、移動量検出装置は一定時間毎に、使用者の体の向きに対する移動方向，移動距離，体の向き及び位置の情報を、通信部１０５を介して外部の装置に送信できる。
【００３１】
次に、ステップＳ１２の処理の詳細について説明する。図５は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図５のフローチャートは３軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【００３２】
まず、ステップＳ２１に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＸ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ２２に進み、Ｘ軸の加速度情報の最小値と最大値との差を計算し、その差をＸ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００３３】
ステップＳ２３に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＹ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ２４に進み、Ｙ軸の加速度情報の最小値と最大値との差を計算し、その差をＹ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００３４】
ステップＳ２５に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＺ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ２６に進み、Ｚ軸の加速度情報の最小値と最大値との差を計算し、その差をＺ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００３５】
ステップＳ２７に進み、演算処理部１０２は記憶部１０３の出力情報１１０として記憶したＸ軸，Ｙ軸，Ｚ軸の振幅値から、Ｙ軸の振幅値／Ｘ軸の振幅値，Ｙ軸の振幅値／Ｚ軸の振幅値を計算して、記憶部１０３の出力情報１１０に記憶する。
【００３６】
ステップＳ２８に進み、演算処理部１０２は記憶部１０３の出力情報１１０として記憶したＸ軸，Ｙ軸，Ｚ軸の振幅値、Ｙ軸の振幅値／Ｘ軸の振幅値、Ｙ軸の振幅値／Ｚ軸の振幅値を、記録部１０３の判定テーブル１１２に記録されている使用者の体の向きに対する移動方向を算出するための表１の判定テーブルを比較して、図３に示す前進２０１，後進２０２，横歩き２０３といった使用者の体の向きに対する移動方向を算出する。演算処理部１０２は算出した使用者の体の向きに対する移動方向を、記憶部１０３の出力情報１１０として記憶する。
【００３７】
【表１】
2007325722.tif 000003
例えば表１のＹ軸振幅値の移動方向判定テーブルで、Ｙ軸の下限振幅値が０．２０以上である場合、演算処理部１０２は使用者の体の向きに対する移動方向として横歩きを算出できる。ところで、表１からも分かるように、図５のフローチャートでは使用者の体の向きに対する移動方向として、前後方向（前進，後進）又は左右方向（横歩き）の何れかしか区別できない。
【００３８】
図６のフローチャートでは使用者の体の向きに対する移動方向として、前進，後進，横歩き（左），横歩き（右）を区別できる。図６は使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。図６のフローチャートは３軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【００３９】
まず、ステップＳ３１に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＸ軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部１０２は、Ｘ軸の最小値時間と最大値時間とを記憶部１０３の出力情報１１０として記憶する。
【００４０】
ステップＳ３２に進み、演算処理部１０２は、記憶部１０３の入力情報１０９として記憶されているＹ軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部１０２は、Ｙ軸の最小値時間と最大値時間とを記憶部１０３の出力情報１１０として記憶する。
【００４１】
ステップＳ３３に進み、演算処理部１０２は、記憶部１０３の入力情報１０９として記憶されているＺ軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部１０２は、Ｚ軸の最小値時間と最大値時間とを記憶部１０３の出力情報１１０として記憶する。
【００４２】
ステップＳ３４に進み、演算処理部１０２はＸ軸の最大値の次に、どの軸の最大値又は最小値が来るかで、使用者の体の向きに対する移動方向の判定を行う。Ｘ軸の最大値の次にＹ軸の最大値が来た場合、演算処理部１０２はステップＳ３５に進み、使用者の体の向きに対する移動方向が横歩き（左）と算出する。Ｘ軸の最大値の次にＹ軸の最小値が来た場合、演算処理部１０２はステップＳ３６に進み、使用者の体の向きに対する移動方向が横歩き（右）と算出する。
【００４３】
図７に示すように、Ｚ軸の最大値の次にＸ軸の最大値が来た場合、演算処理部１０２はステップＳ３７に進み、使用者の体の向きに対する移動方向が後進と算出する。図７は使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【００４４】
図８に示すように、Ｚ軸の最大値の次にＸ軸の最小値が来た場合、演算処理部１０２はステップＳ３８に進み、使用者の体の向きに対する移動方向が前進と算出する。図８は使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。なお、ステップＳ３５〜Ｓ３８以外の場合、演算処理部１０２はステップＳ３９に進み、使用者の体の向きに対する移動方向が不明と算出する。演算処理部１０２はステップＳ３５〜Ｓ３９により算出された使用者の体の向きに対する移動方向を記憶部１０３の出力情報１１０として記憶する。
【００４５】
次に、ステップＳ１３の処理の詳細について説明する。図９は使用者の移動状態を算出する処理を表したフローチャートである。図９のフローチャートは３軸の加速度情報から使用者の移動状態を算出する例を表している。
【００４６】
まず、ステップＳ４１に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＸ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ４２に進み、Ｘ軸の加速度情報の最小値と最大値との差を計算し、Ｘ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００４７】
ステップＳ４３に進み、演算処理部１０２は記憶部１０３の設定パラメータ１１１に予め設定しておいた歩行検出のためのスレッショルド値を読み出す。演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＸ軸の加速度情報からスレッショルド値を超える山を検出し、検出した山の数を歩数として算出する。
【００４８】
ステップＳ４４に進み、演算処理部１０２は加速度情報を蓄積した時間（データ蓄積時間）／歩数を計算し、計算結果を歩行周期として、記憶部１０３の出力情報１１０に記憶する。
【００４９】
ステップＳ４５に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＹ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ４６に進み、Ｙ軸の加速度情報の最小値と最大値との差を計算し、Ｙ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００５０】
ステップＳ４７に進み、演算処理部１０２は記憶部１０３の入力情報１０９として記憶されているＺ軸の加速度情報の最小値と最大値とを検出する。演算処理部１０２はステップＳ４８に進み、Ｚ軸の加速度情報の最小値と最大値との差を計算し、Ｚ軸の振幅値として記憶部１０３の出力情報１１０に記憶する。
【００５１】
ステップＳ４９に進み、演算処理部１０２は記憶部１０３の出力情報１１０として記憶したＸ軸，Ｙ軸，Ｚ軸の振幅値と、歩行周期とを、記録部１０３の判定テーブル１１２に記録されている使用者の移動状態を算出する為の表２の判定テーブルを比較して、走行，歩行，忍び歩きといった使用者の移動状態を算出する。演算処理部１０２は算出した使用者の移動状態を、記憶部１０３の出力情報１１０として記憶する。
【００５２】
【表２】
2007325722.tif 000004
例えば表２のＸ軸の振幅値−歩行周期（波長）の移動状態判定テーブルで、Ｘ軸の下限振幅値が０．９０以上かつ波長の上限値が０．４０以下である場合、演算処理部１０２は使用者の移動状態として走行を算出できる。図１０はＸ軸の振幅値−歩行周期（波長）の移動状態判定テーブルを視覚的に表したグラフである。図１０のグラフでは、Ｘ軸の下限振幅値が０．９０以上かつ波長の上限値が０．４０以下である領域１００１に含まれる場合に、移動状態として走行が算出される。
【００５３】
次に、ステップＳ１４の処理の詳細について説明する。図１１は使用者の移動距離を算出する処理を表したフローチャートである。図１１のフローチャートは３軸の加速度情報から使用者の移動距離を算出する例を表している。
【００５４】
まず、ステップＳ５１に進み、演算処理部１０２は後述するように注目軸を選択し、記憶部１０３の出力情報１１０として記憶する。ステップＳ５２に進み、演算処理部１０２は注目軸の加速度情報から最小値と最大値とを検出する。ステップＳ５３に進み、演算処理部１０２は注目軸の加速度情報の最小値と最大値との差を計算し、注目軸の振幅値として記憶部１０３の出力情報１１０として記憶する。
【００５５】
ステップＳ５４に進み、演算処理部１０２はステップＳ１２で算出した使用者の体の向きに対する移動方向（例えば前進，後進，横歩き）に基づいた近似式を、記録部１０３の演算アルゴリズム１１３に記録されている使用者の体の向きに対する移動距離算出の為の近似式を表した表３の演算アルゴリズムから選択する。演算処理部１０２は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部１０３の出力情報１１０に記憶する。
【００５６】
【表３】
2007325722.tif 000005
なお、ステップＳ１４の処理は図１２のように行ってもよい。図１２は使用者の移動距離を算出する処理を表したフローチャートである。図１２のフローチャートは３軸の加速度情報から使用者の移動距離を算出する例を表している。なお、ステップＳ６１〜Ｓ６３の処理は図１１のステップＳ５１〜Ｓ５３の処理と同様であるため、説明を省略する。
【００５７】
ステップＳ６４に進み、演算処理部１０２はステップＳ１３で算出した使用者の移動状態（例えば走行，歩行，忍び歩き）に基づいた近似式を、記録部１０３の演算アルゴリズム１１３に記録されている使用者の移動状態に対する移動距離算出の為の近似式を表した表３と同様な演算アルゴリズムから選択する。演算処理部１０２は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部１０３の出力情報１１０に記憶する。
【００５８】
次に、ステップＳ５１及びＳ６１の処理の詳細について説明する。図１３は注目軸を選択する処理を表したフローチャートである。図１３のフローチャートは３軸の加速度情報から移動距離算出のための注目軸を選択する例を表している。
【００５９】
まず、ステップＳ７１に進み、演算処理部１０２は例えばステップＳ１２において使用者の体の向きに対する移動方向（例えば前進，後進，横歩き）を算出する。ステップＳ７２に進み、演算処理部１０２は使用者の体の向きに対する前進，後進，横歩きといった移動方向に基づいた注目軸を、記録部１０３の判定テーブル１１２に記録されている使用者の体の向きに対する移動方向と、移動距離算出のための注目軸（選択軸）とが対応付けられた表４の判定テーブルから選択する。
【００６０】
【表４】
2007325722.tif 000006
なお、上記説明では図５，図６に示したように、使用者の体の向きに対する移動方向を算出する処理を二通り示しているが、図５，図６に示した処理を図１４に示すように両方実行することにより、使用者の体の向きに対する移動方向の算出精度を向上させることもできる。
【００６１】
図１４は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図１４のフローチャートは、３軸の加速度情報から使用者の体の向きに対する移動方向を高精度に算出する例を表している。
【００６２】
ステップＳ８１に進み、演算処理部１０２は図５のフローチャートに示す処理により使用者の体の向きに対する移動方向をＹ軸の振幅値，Ｚ軸の振幅値，Ｙ軸の振幅値／Ｘ軸の振幅値、Ｙ軸の振幅値／Ｚ軸の振幅値ごとに算出する。
【００６３】
ステップＳ８２に進み、演算処理部１０２はＹ軸の振幅値，Ｚ軸の振幅値，Ｙ軸の振幅値／Ｘ軸の振幅値、Ｙ軸の振幅値／Ｚ軸の振幅値ごとの重み付けパラメータを、記録部１０３の設定パラメータ１１１に記録されている表５のような重み付けパラメータから取得する。そして、演算処理部１０２はＹ軸の振幅値，Ｚ軸の振幅値，Ｙ軸の振幅値／Ｘ軸の振幅値、Ｙ軸の振幅値／Ｚ軸の振幅値ごとに算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部１０３の出力情報１１０として記憶する。
【００６４】
【表５】
2007325722.tif 000007
ステップＳ８３に進み、演算処理部１０２は図６のフローチャートに示す処理により使用者の体の向きに対する移動方向を算出する。
【００６５】
ステップＳ８４に進み、演算処理部１０２は使用者の体の向きに対する移動方向ごとの重み付けパラメータを、記録部１０３の設定パラメータ１１１に記録されている表５と同様な重み付けパラメータから取得する。そして、演算処理部１０２は算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部１０３の出力情報１１０として記憶する。
【００６６】
ステップＳ８５に進み、演算処理部１０２はステップＳ８２の処理結果とステップＳ８４の処理結果とを、前進，後進，横歩きといった使用者の体の向きに対する移動方向ごとに足し合わせ、最も確からしい（例えば数値が大きい）使用者の体の向きに対する移動方向を選択することで、使用者の体の向きに対する移動方向を高精度に算出できる。
【００６７】
以上、本発明は移動量検出装置において、センサ部１０１からの出力信号に対して演算処理を行い、外部からの信号（例えばＧＰＳ信号など）を使用することなく、移動量検出装置を装着している使用者の体の向き及びその向きに対する移動方向の検出を可能としている。
【００６８】
なお、本発明は３軸の加速度情報の位相差を解析することにより、使用者の体の向きに対する移動方向を検出することができ、３軸の磁気センサおよびジャイロセンサから得られる使用者の体の向きの情報を加えることで、体の向きと異なる方向に移動するといった横歩きや後進に対応して、自動的に使用者の体の向き及び使用者の体の向きに対する移動方向の検出が可能となる。
【００６９】
また、使用者の体の向きに対する移動方向，移動状態に応じて移動距離計算を行うことにより、移動距離の誤差を小さくすることができる。また、移動距離計算を行うときの加速度の注目軸を選択することにより、３軸全てで計算を行うよりも計算処理量が小さくなると共に、移動距離の誤差も小さくすることができる。さらに、移動距離計算を行うときに重み付けによる評価を用いることにより、移動方向の算出誤差を小さくすることが可能である。
【００７０】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
記憶部，演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
（付記２）
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記３軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記３軸方向の加速度の振幅値および前記３軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記１記載の移動量検出プログラム。
（付記３）
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、３軸方向の加速度が最大となる最大値時間，前記３軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として３軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記３軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記１記載の移動量検出プログラム。
（付記４）
前記判定テーブルは、前記使用者の移動状態ごとに、３軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記３軸方向の加速度の最大値および最小値の差である加速度の振幅値，前記使用者の歩行周期を前記３軸方向ごとに算出し、
前記判定ステップは、前記３軸方向の加速度の振幅値，前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする付記１乃至３何れか一項記載の移動量検出プログラム。
（付記５）
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記２又は３記載の移動量検出プログラム。
（付記６）
前記判定ステップで判定した前記使用者の移動状態に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記２又は３記載の移動量検出プログラム。
（付記７）
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記３軸方向のうちの１軸方向を前記判定テーブルから読み出して前記使用者の移動量を算出する為の注目軸として選択する注目軸選択ステップを更に備えることを特徴とする付記２又は３記載の移動量検出プログラム。
（付記８）
前記判定ステップは、前記加速度センサからの出力信号の特徴に基づいて、前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向を異なる方法で前記判定テーブルから算出し、算出した前記使用者の体の向きに対する移動方向を前記方法に応じて重み付けして前記使用者の体の向きに対する移動方向を判定することを特徴とする付記１記載の移動量検出プログラム。
（付記９）
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【００７１】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明による移動量検出装置の一実施例のハードウェア構成図である。
【図２】センサ部からの出力信号を入力する処理を表したフローチャートである。
【図３】使用者の軸をＸ軸，Ｙ軸及びＺ軸の３軸方向で表した説明図である。
【図４】移動量を検出する処理を表したフローチャートである。
【図５】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【図６】使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。
【図７】使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【図８】使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。
【図９】使用者の移動状態を算出する処理を表したフローチャートである。
【図１０】Ｘ軸の振幅値−歩行周期（波長）の移動状態判定テーブルを視覚的に表したグラフである。
【図１１】使用者の移動距離を算出する処理を表したフローチャートである。
【図１２】使用者の移動距離を算出する処理を表したフローチャートである。
【図１３】注目軸を選択する処理を表したフローチャートである。
【図１４】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【符号の説明】
【００７３】
１０１    センサ部
１０２    演算処理部
１０３    記憶部
１０４    表示部
１０５    通信部
１０６    加速度センサ
１０７    磁気センサ
１０８    ジャイロセンサ
１０９    入力情報
１１０    出力情報
１１１    設定パラメータ
１１２    判定テーブル
１１３    演算アルゴリズム
【図１】
2007325722.tif 000008
【図２】
2007325722.tif 000009
【図３】
2007325722.tif 000010
【図４】
2007325722.tif 000011
【図５】
2007325722.tif 000012
【図６】
2007325722.tif 000013
【図７】
2007325722.tif 000014
【図８】
2007325722.tif 000015
【図９】
2007325722.tif 000016
【図１０】
2007325722.tif 000017
【図１１】
2007325722.tif 000018
【図１２】
2007325722.tif 000019
【図１３】
2007325722.tif 000020
【図１４】
2007325722.tif 000021