移動量検出プログラム及び移動量検出装置
【課題】使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供することを目的とする。
【解決手段】記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、演算処理部に、加速度センサからの出力信号を取得する取得ステップと、加速度センサからの出力信号の特徴に基づいて、加速度センサからの出力信号の特徴に対応する使用者の体の向きに対する移動方向および移動状態を判定テーブルを利用して判定する判定ステップとを実行させることにより、上記課題を解決する。
【解決手段】記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、演算処理部に、加速度センサからの出力信号を取得する取得ステップと、加速度センサからの出力信号の特徴に基づいて、加速度センサからの出力信号の特徴に対応する使用者の体の向きに対する移動方向および移動状態を判定テーブルを利用して判定する判定ステップとを実行させることにより、上記課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動量検出プログラム及び移動量検出装置に係り、特に使用者の移動量を検出する自律型の移動量検出プログラム及び移動量検出装置に関する。
【背景技術】
【0002】
自律型の移動量検出装置における移動方向の検出および体の向きの検出は、例えば特許文献1〜3に記載されるように、現状、ジャイロセンサおよび磁気センサを利用し、ジャイロセンサおよび磁気センサから得られる情報を単独あるいは融合することで得られる方位角から推定されるものであった。
【特許文献1】特許第3314917号
【特許文献2】特開2000−97722号公報
【特許文献3】特開2004−141669号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、自律型の移動量検出装置は、体の向きを移動方向とする仮定により位置を検出するか、もしくは体の向きに対する移動方向を予め設定して位置を検出するため、体の向きと異なる方向に移動する、横歩き,後退を行った場合、正確な移動量の検出ができないという問題があった。また、例えば走っているのか、歩いているのか、といった移動状態を加味しなければ、正確な移動量の検出ができないという問題があった。
【0004】
即ち、自律型の移動量検出装置は移動方向及び移動状態に応じた検出、計算を行わなければ正確な移動量の検出ができないという問題があった。
【0005】
本発明は、上記の点に鑑みなされたもので、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明は、記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップとを実行させる移動量検出プログラムであることを特徴とする。
【0007】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【0008】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【0009】
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴としてもよい。
【0010】
また、上記課題を解決するため、本発明は、使用者の移動量を検出する移動量検出装置であって、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部とを有することを特徴とする。
【0011】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【0012】
上述の如く、本発明によれば、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供可能である。
【発明を実施するための最良の形態】
【0013】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【0014】
図1は、本発明による移動量検出装置の一実施例のハードウェア構成図である。図1の移動量検出装置は、センサ部101,演算処理部102,記憶部103,表示部104及び通信部105を有する構成である。移動量検出装置は、図1の構成を有する専用装置であってもよいし、センサ部101からの出力信号を入力可能であり、演算処理部102,記憶部103,表示部104及び通信部105を有するPDA(Personal Digital Assistant)やPC(Personal Computer)などの装置であってもよい。
【0015】
センサ部101は、加速度センサ106,磁気センサ107,ジャイロセンサ108等を有し、移動量検出装置を装着している使用者の動作を検出する。演算処理部102は使用者の体の向き,使用者の体の向きに対する移動方向,使用者の移動状態を演算処理によって求める。
【0016】
記憶部103は、ハードディスクやフラッシュメモリなどの記憶デバイスであり、入力情報109,出力情報110,及び演算処理に必要な設定パラメータ111,判定テーブル112,演算アルゴリズム113を記憶している。表示部104は液晶ディスプレイなどの表示デバイスである。通信部105は、演算処理によって求められた使用者の体の向き,使用者の体の向きに対する移動方向,使用者の移動状態、または演算処理に必要な設定パラメータ111,判定テーブル112,演算アルゴリズム113を、外部の装置と送受信する。
【0017】
移動量検出プログラムは移動量検出装置を制御する各種プログラムの少なくとも一部である。移動量検出プログラムは例えば記録媒体の配布やネットワークからのダウンロードなどによって提供される。移動量検出プログラムを記録した記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【0018】
また、移動量検出プログラムを記録した記録媒体がドライブ装置(図示せず)にセットされると、移動量検出プログラムは記録媒体からドライブ装置を介して記憶部103にインストールされる。ネットワークからダウンロードされる移動量検出プログラムは、通信部105を介して記憶部103にインストールされる。
【0019】
移動量検出装置は、インストールされた移動量検出プログラムを記憶部103に記憶させると共に、必要なファイル,データ等を記憶部103に記憶させる。演算処理部102は記憶部103に記憶された移動量検出プログラムに従って、後述するような各種処理を実現している。
【0020】
図2はセンサ部からの出力信号を入力する処理を表したフローチャートである。図3は使用者の軸をX軸,Y軸及びZ軸の3軸方向で表した説明図である。
【0021】
まず、ステップS1に進み、演算処理部102はセンサ部101の加速度センサ106から3軸の加速度情報を受信する。演算処理部102は受信した3軸の加速度情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0022】
ステップS2に進み、演算処理部102はセンサ部101の磁気センサ107から3軸の磁気情報を受信する。演算処理部102は、受信した3軸の磁気情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0023】
ステップS3に進み、演算処理部102はセンサ部101のジャイロセンサ108から3軸のジャイロ情報を受信する。演算処理部102は、受信した3軸のジャイロ情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0024】
そして、演算処理部102はステップS3の処理が終わると、再びステップS1の処理に戻ってステップS1〜S3の処理を繰り返し行う。したがって、記憶部103には3軸の加速度情報,磁気情報およびジャイロ情報が入力情報109として、自動的に記憶されていく。
【0025】
図4は移動量を検出する処理を表したフローチャートである。まず、ステップS11に進み、演算処理部102は一定時間待機する。一定時間待機したあと、演算処理部102はステップS12に進み、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の体の向きに対する移動方向を算出する。そして、演算処理部102は算出した使用者の体の向きに対する移動方向を、記憶部103の出力情報110として記憶する。なお、ステップS12の詳細は後述する。
【0026】
ステップS13に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の移動状態を算出する。演算処理部102は算出した使用者の移動状態を、記憶部103の出力情報110として記憶する。なお、ステップS13の詳細は後述する。
【0027】
ステップS14に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の移動距離を算出する。演算処理部102は算出した使用者の移動距離を、記憶部103の出力情報110として記憶する。なお、ステップS14の詳細は後述する。
【0028】
ステップS15に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の磁気情報およびジャイロ情報から、使用者の体の向きを算出する。演算処理部102は算出した使用者の体の向きを、記憶部103の出力情報110として記憶する。なお、ステップS15の詳細は後述する。
【0029】
ステップS16に進み、演算処理部102は記憶部103の出力情報110として記憶した使用者の体の向きに対する移動方向,移動距離,体の向きから、使用者の位置を算出する。演算処理部102は算出した使用者の位置を、記憶部103の出力情報110として記憶する。
【0030】
ステップS17に進み、演算処理部102は記憶部103の出力情報110として記憶した使用者の体の向きに対する移動方向,移動距離,体の向き及び位置の情報を、通信部105を介して外部の装置に送信する。そして、演算処理部102はステップS17の処理が終わると、再びステップS11の処理に戻ってステップS11〜S17の処理を一定時間毎に繰り返し行う。したがって、移動量検出装置は一定時間毎に、使用者の体の向きに対する移動方向,移動距離,体の向き及び位置の情報を、通信部105を介して外部の装置に送信できる。
【0031】
次に、ステップS12の処理の詳細について説明する。図5は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図5のフローチャートは3軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【0032】
まず、ステップS21に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS22に進み、X軸の加速度情報の最小値と最大値との差を計算し、その差をX軸の振幅値として記憶部103の出力情報110に記憶する。
【0033】
ステップS23に進み、演算処理部102は記憶部103の入力情報109として記憶されているY軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS24に進み、Y軸の加速度情報の最小値と最大値との差を計算し、その差をY軸の振幅値として記憶部103の出力情報110に記憶する。
【0034】
ステップS25に進み、演算処理部102は記憶部103の入力情報109として記憶されているZ軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS26に進み、Z軸の加速度情報の最小値と最大値との差を計算し、その差をZ軸の振幅値として記憶部103の出力情報110に記憶する。
【0035】
ステップS27に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値から、Y軸の振幅値/X軸の振幅値,Y軸の振幅値/Z軸の振幅値を計算して、記憶部103の出力情報110に記憶する。
【0036】
ステップS28に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値、Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値を、記録部103の判定テーブル112に記録されている使用者の体の向きに対する移動方向を算出するための表1の判定テーブルを比較して、図3に示す前進201,後進202,横歩き203といった使用者の体の向きに対する移動方向を算出する。演算処理部102は算出した使用者の体の向きに対する移動方向を、記憶部103の出力情報110として記憶する。
【0037】
【表1】
例えば表1のY軸振幅値の移動方向判定テーブルで、Y軸の下限振幅値が0.20以上である場合、演算処理部102は使用者の体の向きに対する移動方向として横歩きを算出できる。ところで、表1からも分かるように、図5のフローチャートでは使用者の体の向きに対する移動方向として、前後方向(前進,後進)又は左右方向(横歩き)の何れかしか区別できない。
【0038】
図6のフローチャートでは使用者の体の向きに対する移動方向として、前進,後進,横歩き(左),横歩き(右)を区別できる。図6は使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。図6のフローチャートは3軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【0039】
まず、ステップS31に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、X軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0040】
ステップS32に進み、演算処理部102は、記憶部103の入力情報109として記憶されているY軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、Y軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0041】
ステップS33に進み、演算処理部102は、記憶部103の入力情報109として記憶されているZ軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、Z軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0042】
ステップS34に進み、演算処理部102はX軸の最大値の次に、どの軸の最大値又は最小値が来るかで、使用者の体の向きに対する移動方向の判定を行う。X軸の最大値の次にY軸の最大値が来た場合、演算処理部102はステップS35に進み、使用者の体の向きに対する移動方向が横歩き(左)と算出する。X軸の最大値の次にY軸の最小値が来た場合、演算処理部102はステップS36に進み、使用者の体の向きに対する移動方向が横歩き(右)と算出する。
【0043】
図7に示すように、Z軸の最大値の次にX軸の最大値が来た場合、演算処理部102はステップS37に進み、使用者の体の向きに対する移動方向が後進と算出する。図7は使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【0044】
図8に示すように、Z軸の最大値の次にX軸の最小値が来た場合、演算処理部102はステップS38に進み、使用者の体の向きに対する移動方向が前進と算出する。図8は使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。なお、ステップS35〜S38以外の場合、演算処理部102はステップS39に進み、使用者の体の向きに対する移動方向が不明と算出する。演算処理部102はステップS35〜S39により算出された使用者の体の向きに対する移動方向を記憶部103の出力情報110として記憶する。
【0045】
次に、ステップS13の処理の詳細について説明する。図9は使用者の移動状態を算出する処理を表したフローチャートである。図9のフローチャートは3軸の加速度情報から使用者の移動状態を算出する例を表している。
【0046】
まず、ステップS41に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS42に進み、X軸の加速度情報の最小値と最大値との差を計算し、X軸の振幅値として記憶部103の出力情報110に記憶する。
【0047】
ステップS43に進み、演算処理部102は記憶部103の設定パラメータ111に予め設定しておいた歩行検出のためのスレッショルド値を読み出す。演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報からスレッショルド値を超える山を検出し、検出した山の数を歩数として算出する。
【0048】
ステップS44に進み、演算処理部102は加速度情報を蓄積した時間(データ蓄積時間)/歩数を計算し、計算結果を歩行周期として、記憶部103の出力情報110に記憶する。
【0049】
ステップS45に進み、演算処理部102は記憶部103の入力情報109として記憶されているY軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS46に進み、Y軸の加速度情報の最小値と最大値との差を計算し、Y軸の振幅値として記憶部103の出力情報110に記憶する。
【0050】
ステップS47に進み、演算処理部102は記憶部103の入力情報109として記憶されているZ軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS48に進み、Z軸の加速度情報の最小値と最大値との差を計算し、Z軸の振幅値として記憶部103の出力情報110に記憶する。
【0051】
ステップS49に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値と、歩行周期とを、記録部103の判定テーブル112に記録されている使用者の移動状態を算出する為の表2の判定テーブルを比較して、走行,歩行,忍び歩きといった使用者の移動状態を算出する。演算処理部102は算出した使用者の移動状態を、記憶部103の出力情報110として記憶する。
【0052】
【表2】
例えば表2のX軸の振幅値−歩行周期(波長)の移動状態判定テーブルで、X軸の下限振幅値が0.90以上かつ波長の上限値が0.40以下である場合、演算処理部102は使用者の移動状態として走行を算出できる。図10はX軸の振幅値−歩行周期(波長)の移動状態判定テーブルを視覚的に表したグラフである。図10のグラフでは、X軸の下限振幅値が0.90以上かつ波長の上限値が0.40以下である領域1001に含まれる場合に、移動状態として走行が算出される。
【0053】
次に、ステップS14の処理の詳細について説明する。図11は使用者の移動距離を算出する処理を表したフローチャートである。図11のフローチャートは3軸の加速度情報から使用者の移動距離を算出する例を表している。
【0054】
まず、ステップS51に進み、演算処理部102は後述するように注目軸を選択し、記憶部103の出力情報110として記憶する。ステップS52に進み、演算処理部102は注目軸の加速度情報から最小値と最大値とを検出する。ステップS53に進み、演算処理部102は注目軸の加速度情報の最小値と最大値との差を計算し、注目軸の振幅値として記憶部103の出力情報110として記憶する。
【0055】
ステップS54に進み、演算処理部102はステップS12で算出した使用者の体の向きに対する移動方向(例えば前進,後進,横歩き)に基づいた近似式を、記録部103の演算アルゴリズム113に記録されている使用者の体の向きに対する移動距離算出の為の近似式を表した表3の演算アルゴリズムから選択する。演算処理部102は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部103の出力情報110に記憶する。
【0056】
【表3】
なお、ステップS14の処理は図12のように行ってもよい。図12は使用者の移動距離を算出する処理を表したフローチャートである。図12のフローチャートは3軸の加速度情報から使用者の移動距離を算出する例を表している。なお、ステップS61〜S63の処理は図11のステップS51〜S53の処理と同様であるため、説明を省略する。
【0057】
ステップS64に進み、演算処理部102はステップS13で算出した使用者の移動状態(例えば走行,歩行,忍び歩き)に基づいた近似式を、記録部103の演算アルゴリズム113に記録されている使用者の移動状態に対する移動距離算出の為の近似式を表した表3と同様な演算アルゴリズムから選択する。演算処理部102は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部103の出力情報110に記憶する。
【0058】
次に、ステップS51及びS61の処理の詳細について説明する。図13は注目軸を選択する処理を表したフローチャートである。図13のフローチャートは3軸の加速度情報から移動距離算出のための注目軸を選択する例を表している。
【0059】
まず、ステップS71に進み、演算処理部102は例えばステップS12において使用者の体の向きに対する移動方向(例えば前進,後進,横歩き)を算出する。ステップS72に進み、演算処理部102は使用者の体の向きに対する前進,後進,横歩きといった移動方向に基づいた注目軸を、記録部103の判定テーブル112に記録されている使用者の体の向きに対する移動方向と、移動距離算出のための注目軸(選択軸)とが対応付けられた表4の判定テーブルから選択する。
【0060】
【表4】
なお、上記説明では図5,図6に示したように、使用者の体の向きに対する移動方向を算出する処理を二通り示しているが、図5,図6に示した処理を図14に示すように両方実行することにより、使用者の体の向きに対する移動方向の算出精度を向上させることもできる。
【0061】
図14は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図14のフローチャートは、3軸の加速度情報から使用者の体の向きに対する移動方向を高精度に算出する例を表している。
【0062】
ステップS81に進み、演算処理部102は図5のフローチャートに示す処理により使用者の体の向きに対する移動方向をY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとに算出する。
【0063】
ステップS82に進み、演算処理部102はY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとの重み付けパラメータを、記録部103の設定パラメータ111に記録されている表5のような重み付けパラメータから取得する。そして、演算処理部102はY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとに算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部103の出力情報110として記憶する。
【0064】
【表5】
ステップS83に進み、演算処理部102は図6のフローチャートに示す処理により使用者の体の向きに対する移動方向を算出する。
【0065】
ステップS84に進み、演算処理部102は使用者の体の向きに対する移動方向ごとの重み付けパラメータを、記録部103の設定パラメータ111に記録されている表5と同様な重み付けパラメータから取得する。そして、演算処理部102は算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部103の出力情報110として記憶する。
【0066】
ステップS85に進み、演算処理部102はステップS82の処理結果とステップS84の処理結果とを、前進,後進,横歩きといった使用者の体の向きに対する移動方向ごとに足し合わせ、最も確からしい(例えば数値が大きい)使用者の体の向きに対する移動方向を選択することで、使用者の体の向きに対する移動方向を高精度に算出できる。
【0067】
以上、本発明は移動量検出装置において、センサ部101からの出力信号に対して演算処理を行い、外部からの信号(例えばGPS信号など)を使用することなく、移動量検出装置を装着している使用者の体の向き及びその向きに対する移動方向の検出を可能としている。
【0068】
なお、本発明は3軸の加速度情報の位相差を解析することにより、使用者の体の向きに対する移動方向を検出することができ、3軸の磁気センサおよびジャイロセンサから得られる使用者の体の向きの情報を加えることで、体の向きと異なる方向に移動するといった横歩きや後進に対応して、自動的に使用者の体の向き及び使用者の体の向きに対する移動方向の検出が可能となる。
【0069】
また、使用者の体の向きに対する移動方向,移動状態に応じて移動距離計算を行うことにより、移動距離の誤差を小さくすることができる。また、移動距離計算を行うときの加速度の注目軸を選択することにより、3軸全てで計算を行うよりも計算処理量が小さくなると共に、移動距離の誤差も小さくすることができる。さらに、移動距離計算を行うときに重み付けによる評価を用いることにより、移動方向の算出誤差を小さくすることが可能である。
【0070】
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
(付記2)
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記3)
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記4)
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、
前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする付記1乃至3何れか一項記載の移動量検出プログラム。
(付記5)
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記6)
前記判定ステップで判定した前記使用者の移動状態に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記7)
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記3軸方向のうちの1軸方向を前記判定テーブルから読み出して前記使用者の移動量を算出する為の注目軸として選択する注目軸選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記8)
前記判定ステップは、前記加速度センサからの出力信号の特徴に基づいて、前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向を異なる方法で前記判定テーブルから算出し、算出した前記使用者の体の向きに対する移動方向を前記方法に応じて重み付けして前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記9)
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【0071】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【0072】
【図1】本発明による移動量検出装置の一実施例のハードウェア構成図である。
【図2】センサ部からの出力信号を入力する処理を表したフローチャートである。
【図3】使用者の軸をX軸,Y軸及びZ軸の3軸方向で表した説明図である。
【図4】移動量を検出する処理を表したフローチャートである。
【図5】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【図6】使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。
【図7】使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【図8】使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。
【図9】使用者の移動状態を算出する処理を表したフローチャートである。
【図10】X軸の振幅値−歩行周期(波長)の移動状態判定テーブルを視覚的に表したグラフである。
【図11】使用者の移動距離を算出する処理を表したフローチャートである。
【図12】使用者の移動距離を算出する処理を表したフローチャートである。
【図13】注目軸を選択する処理を表したフローチャートである。
【図14】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【符号の説明】
【0073】
101 センサ部
102 演算処理部
103 記憶部
104 表示部
105 通信部
106 加速度センサ
107 磁気センサ
108 ジャイロセンサ
109 入力情報
110 出力情報
111 設定パラメータ
112 判定テーブル
113 演算アルゴリズム
【技術分野】
【0001】
本発明は、移動量検出プログラム及び移動量検出装置に係り、特に使用者の移動量を検出する自律型の移動量検出プログラム及び移動量検出装置に関する。
【背景技術】
【0002】
自律型の移動量検出装置における移動方向の検出および体の向きの検出は、例えば特許文献1〜3に記載されるように、現状、ジャイロセンサおよび磁気センサを利用し、ジャイロセンサおよび磁気センサから得られる情報を単独あるいは融合することで得られる方位角から推定されるものであった。
【特許文献1】特許第3314917号
【特許文献2】特開2000−97722号公報
【特許文献3】特開2004−141669号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、自律型の移動量検出装置は、体の向きを移動方向とする仮定により位置を検出するか、もしくは体の向きに対する移動方向を予め設定して位置を検出するため、体の向きと異なる方向に移動する、横歩き,後退を行った場合、正確な移動量の検出ができないという問題があった。また、例えば走っているのか、歩いているのか、といった移動状態を加味しなければ、正確な移動量の検出ができないという問題があった。
【0004】
即ち、自律型の移動量検出装置は移動方向及び移動状態に応じた検出、計算を行わなければ正確な移動量の検出ができないという問題があった。
【0005】
本発明は、上記の点に鑑みなされたもので、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明は、記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップとを実行させる移動量検出プログラムであることを特徴とする。
【0007】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【0008】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴としてもよい。
【0009】
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴としてもよい。
【0010】
また、上記課題を解決するため、本発明は、使用者の移動量を検出する移動量検出装置であって、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部とを有することを特徴とする。
【0011】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【0012】
上述の如く、本発明によれば、使用者の移動量を正確かつ容易に検出可能な移動量検出プログラム及び移動量検出装置を提供可能である。
【発明を実施するための最良の形態】
【0013】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。
【0014】
図1は、本発明による移動量検出装置の一実施例のハードウェア構成図である。図1の移動量検出装置は、センサ部101,演算処理部102,記憶部103,表示部104及び通信部105を有する構成である。移動量検出装置は、図1の構成を有する専用装置であってもよいし、センサ部101からの出力信号を入力可能であり、演算処理部102,記憶部103,表示部104及び通信部105を有するPDA(Personal Digital Assistant)やPC(Personal Computer)などの装置であってもよい。
【0015】
センサ部101は、加速度センサ106,磁気センサ107,ジャイロセンサ108等を有し、移動量検出装置を装着している使用者の動作を検出する。演算処理部102は使用者の体の向き,使用者の体の向きに対する移動方向,使用者の移動状態を演算処理によって求める。
【0016】
記憶部103は、ハードディスクやフラッシュメモリなどの記憶デバイスであり、入力情報109,出力情報110,及び演算処理に必要な設定パラメータ111,判定テーブル112,演算アルゴリズム113を記憶している。表示部104は液晶ディスプレイなどの表示デバイスである。通信部105は、演算処理によって求められた使用者の体の向き,使用者の体の向きに対する移動方向,使用者の移動状態、または演算処理に必要な設定パラメータ111,判定テーブル112,演算アルゴリズム113を、外部の装置と送受信する。
【0017】
移動量検出プログラムは移動量検出装置を制御する各種プログラムの少なくとも一部である。移動量検出プログラムは例えば記録媒体の配布やネットワークからのダウンロードなどによって提供される。移動量検出プログラムを記録した記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【0018】
また、移動量検出プログラムを記録した記録媒体がドライブ装置(図示せず)にセットされると、移動量検出プログラムは記録媒体からドライブ装置を介して記憶部103にインストールされる。ネットワークからダウンロードされる移動量検出プログラムは、通信部105を介して記憶部103にインストールされる。
【0019】
移動量検出装置は、インストールされた移動量検出プログラムを記憶部103に記憶させると共に、必要なファイル,データ等を記憶部103に記憶させる。演算処理部102は記憶部103に記憶された移動量検出プログラムに従って、後述するような各種処理を実現している。
【0020】
図2はセンサ部からの出力信号を入力する処理を表したフローチャートである。図3は使用者の軸をX軸,Y軸及びZ軸の3軸方向で表した説明図である。
【0021】
まず、ステップS1に進み、演算処理部102はセンサ部101の加速度センサ106から3軸の加速度情報を受信する。演算処理部102は受信した3軸の加速度情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0022】
ステップS2に進み、演算処理部102はセンサ部101の磁気センサ107から3軸の磁気情報を受信する。演算処理部102は、受信した3軸の磁気情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0023】
ステップS3に進み、演算処理部102はセンサ部101のジャイロセンサ108から3軸のジャイロ情報を受信する。演算処理部102は、受信した3軸のジャイロ情報を、記憶部103の設定パラメータ111に記憶されているオフセット値およびゲイン値を使用してアナログ情報からデジタル情報に変換し、記憶部103の入力情報109として記憶する。
【0024】
そして、演算処理部102はステップS3の処理が終わると、再びステップS1の処理に戻ってステップS1〜S3の処理を繰り返し行う。したがって、記憶部103には3軸の加速度情報,磁気情報およびジャイロ情報が入力情報109として、自動的に記憶されていく。
【0025】
図4は移動量を検出する処理を表したフローチャートである。まず、ステップS11に進み、演算処理部102は一定時間待機する。一定時間待機したあと、演算処理部102はステップS12に進み、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の体の向きに対する移動方向を算出する。そして、演算処理部102は算出した使用者の体の向きに対する移動方向を、記憶部103の出力情報110として記憶する。なお、ステップS12の詳細は後述する。
【0026】
ステップS13に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の移動状態を算出する。演算処理部102は算出した使用者の移動状態を、記憶部103の出力情報110として記憶する。なお、ステップS13の詳細は後述する。
【0027】
ステップS14に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の加速度情報から、使用者の移動距離を算出する。演算処理部102は算出した使用者の移動距離を、記憶部103の出力情報110として記憶する。なお、ステップS14の詳細は後述する。
【0028】
ステップS15に進み、演算処理部102は、記憶部103の入力情報109として記憶されている3軸の磁気情報およびジャイロ情報から、使用者の体の向きを算出する。演算処理部102は算出した使用者の体の向きを、記憶部103の出力情報110として記憶する。なお、ステップS15の詳細は後述する。
【0029】
ステップS16に進み、演算処理部102は記憶部103の出力情報110として記憶した使用者の体の向きに対する移動方向,移動距離,体の向きから、使用者の位置を算出する。演算処理部102は算出した使用者の位置を、記憶部103の出力情報110として記憶する。
【0030】
ステップS17に進み、演算処理部102は記憶部103の出力情報110として記憶した使用者の体の向きに対する移動方向,移動距離,体の向き及び位置の情報を、通信部105を介して外部の装置に送信する。そして、演算処理部102はステップS17の処理が終わると、再びステップS11の処理に戻ってステップS11〜S17の処理を一定時間毎に繰り返し行う。したがって、移動量検出装置は一定時間毎に、使用者の体の向きに対する移動方向,移動距離,体の向き及び位置の情報を、通信部105を介して外部の装置に送信できる。
【0031】
次に、ステップS12の処理の詳細について説明する。図5は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図5のフローチャートは3軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【0032】
まず、ステップS21に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS22に進み、X軸の加速度情報の最小値と最大値との差を計算し、その差をX軸の振幅値として記憶部103の出力情報110に記憶する。
【0033】
ステップS23に進み、演算処理部102は記憶部103の入力情報109として記憶されているY軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS24に進み、Y軸の加速度情報の最小値と最大値との差を計算し、その差をY軸の振幅値として記憶部103の出力情報110に記憶する。
【0034】
ステップS25に進み、演算処理部102は記憶部103の入力情報109として記憶されているZ軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS26に進み、Z軸の加速度情報の最小値と最大値との差を計算し、その差をZ軸の振幅値として記憶部103の出力情報110に記憶する。
【0035】
ステップS27に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値から、Y軸の振幅値/X軸の振幅値,Y軸の振幅値/Z軸の振幅値を計算して、記憶部103の出力情報110に記憶する。
【0036】
ステップS28に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値、Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値を、記録部103の判定テーブル112に記録されている使用者の体の向きに対する移動方向を算出するための表1の判定テーブルを比較して、図3に示す前進201,後進202,横歩き203といった使用者の体の向きに対する移動方向を算出する。演算処理部102は算出した使用者の体の向きに対する移動方向を、記憶部103の出力情報110として記憶する。
【0037】
【表1】
例えば表1のY軸振幅値の移動方向判定テーブルで、Y軸の下限振幅値が0.20以上である場合、演算処理部102は使用者の体の向きに対する移動方向として横歩きを算出できる。ところで、表1からも分かるように、図5のフローチャートでは使用者の体の向きに対する移動方向として、前後方向(前進,後進)又は左右方向(横歩き)の何れかしか区別できない。
【0038】
図6のフローチャートでは使用者の体の向きに対する移動方向として、前進,後進,横歩き(左),横歩き(右)を区別できる。図6は使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。図6のフローチャートは3軸の加速度情報から使用者の体の向きに対する移動方向を算出する例を表している。
【0039】
まず、ステップS31に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、X軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0040】
ステップS32に進み、演算処理部102は、記憶部103の入力情報109として記憶されているY軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、Y軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0041】
ステップS33に進み、演算処理部102は、記憶部103の入力情報109として記憶されているZ軸の加速度情報が最小となる最小値時間と最大となる最大値時間とを検出する。演算処理部102は、Z軸の最小値時間と最大値時間とを記憶部103の出力情報110として記憶する。
【0042】
ステップS34に進み、演算処理部102はX軸の最大値の次に、どの軸の最大値又は最小値が来るかで、使用者の体の向きに対する移動方向の判定を行う。X軸の最大値の次にY軸の最大値が来た場合、演算処理部102はステップS35に進み、使用者の体の向きに対する移動方向が横歩き(左)と算出する。X軸の最大値の次にY軸の最小値が来た場合、演算処理部102はステップS36に進み、使用者の体の向きに対する移動方向が横歩き(右)と算出する。
【0043】
図7に示すように、Z軸の最大値の次にX軸の最大値が来た場合、演算処理部102はステップS37に進み、使用者の体の向きに対する移動方向が後進と算出する。図7は使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【0044】
図8に示すように、Z軸の最大値の次にX軸の最小値が来た場合、演算処理部102はステップS38に進み、使用者の体の向きに対する移動方向が前進と算出する。図8は使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。なお、ステップS35〜S38以外の場合、演算処理部102はステップS39に進み、使用者の体の向きに対する移動方向が不明と算出する。演算処理部102はステップS35〜S39により算出された使用者の体の向きに対する移動方向を記憶部103の出力情報110として記憶する。
【0045】
次に、ステップS13の処理の詳細について説明する。図9は使用者の移動状態を算出する処理を表したフローチャートである。図9のフローチャートは3軸の加速度情報から使用者の移動状態を算出する例を表している。
【0046】
まず、ステップS41に進み、演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS42に進み、X軸の加速度情報の最小値と最大値との差を計算し、X軸の振幅値として記憶部103の出力情報110に記憶する。
【0047】
ステップS43に進み、演算処理部102は記憶部103の設定パラメータ111に予め設定しておいた歩行検出のためのスレッショルド値を読み出す。演算処理部102は記憶部103の入力情報109として記憶されているX軸の加速度情報からスレッショルド値を超える山を検出し、検出した山の数を歩数として算出する。
【0048】
ステップS44に進み、演算処理部102は加速度情報を蓄積した時間(データ蓄積時間)/歩数を計算し、計算結果を歩行周期として、記憶部103の出力情報110に記憶する。
【0049】
ステップS45に進み、演算処理部102は記憶部103の入力情報109として記憶されているY軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS46に進み、Y軸の加速度情報の最小値と最大値との差を計算し、Y軸の振幅値として記憶部103の出力情報110に記憶する。
【0050】
ステップS47に進み、演算処理部102は記憶部103の入力情報109として記憶されているZ軸の加速度情報の最小値と最大値とを検出する。演算処理部102はステップS48に進み、Z軸の加速度情報の最小値と最大値との差を計算し、Z軸の振幅値として記憶部103の出力情報110に記憶する。
【0051】
ステップS49に進み、演算処理部102は記憶部103の出力情報110として記憶したX軸,Y軸,Z軸の振幅値と、歩行周期とを、記録部103の判定テーブル112に記録されている使用者の移動状態を算出する為の表2の判定テーブルを比較して、走行,歩行,忍び歩きといった使用者の移動状態を算出する。演算処理部102は算出した使用者の移動状態を、記憶部103の出力情報110として記憶する。
【0052】
【表2】
例えば表2のX軸の振幅値−歩行周期(波長)の移動状態判定テーブルで、X軸の下限振幅値が0.90以上かつ波長の上限値が0.40以下である場合、演算処理部102は使用者の移動状態として走行を算出できる。図10はX軸の振幅値−歩行周期(波長)の移動状態判定テーブルを視覚的に表したグラフである。図10のグラフでは、X軸の下限振幅値が0.90以上かつ波長の上限値が0.40以下である領域1001に含まれる場合に、移動状態として走行が算出される。
【0053】
次に、ステップS14の処理の詳細について説明する。図11は使用者の移動距離を算出する処理を表したフローチャートである。図11のフローチャートは3軸の加速度情報から使用者の移動距離を算出する例を表している。
【0054】
まず、ステップS51に進み、演算処理部102は後述するように注目軸を選択し、記憶部103の出力情報110として記憶する。ステップS52に進み、演算処理部102は注目軸の加速度情報から最小値と最大値とを検出する。ステップS53に進み、演算処理部102は注目軸の加速度情報の最小値と最大値との差を計算し、注目軸の振幅値として記憶部103の出力情報110として記憶する。
【0055】
ステップS54に進み、演算処理部102はステップS12で算出した使用者の体の向きに対する移動方向(例えば前進,後進,横歩き)に基づいた近似式を、記録部103の演算アルゴリズム113に記録されている使用者の体の向きに対する移動距離算出の為の近似式を表した表3の演算アルゴリズムから選択する。演算処理部102は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部103の出力情報110に記憶する。
【0056】
【表3】
なお、ステップS14の処理は図12のように行ってもよい。図12は使用者の移動距離を算出する処理を表したフローチャートである。図12のフローチャートは3軸の加速度情報から使用者の移動距離を算出する例を表している。なお、ステップS61〜S63の処理は図11のステップS51〜S53の処理と同様であるため、説明を省略する。
【0057】
ステップS64に進み、演算処理部102はステップS13で算出した使用者の移動状態(例えば走行,歩行,忍び歩き)に基づいた近似式を、記録部103の演算アルゴリズム113に記録されている使用者の移動状態に対する移動距離算出の為の近似式を表した表3と同様な演算アルゴリズムから選択する。演算処理部102は、選択した近似式に注目軸の振幅値を入力し、使用者の移動距離を算出して、記憶部103の出力情報110に記憶する。
【0058】
次に、ステップS51及びS61の処理の詳細について説明する。図13は注目軸を選択する処理を表したフローチャートである。図13のフローチャートは3軸の加速度情報から移動距離算出のための注目軸を選択する例を表している。
【0059】
まず、ステップS71に進み、演算処理部102は例えばステップS12において使用者の体の向きに対する移動方向(例えば前進,後進,横歩き)を算出する。ステップS72に進み、演算処理部102は使用者の体の向きに対する前進,後進,横歩きといった移動方向に基づいた注目軸を、記録部103の判定テーブル112に記録されている使用者の体の向きに対する移動方向と、移動距離算出のための注目軸(選択軸)とが対応付けられた表4の判定テーブルから選択する。
【0060】
【表4】
なお、上記説明では図5,図6に示したように、使用者の体の向きに対する移動方向を算出する処理を二通り示しているが、図5,図6に示した処理を図14に示すように両方実行することにより、使用者の体の向きに対する移動方向の算出精度を向上させることもできる。
【0061】
図14は使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。図14のフローチャートは、3軸の加速度情報から使用者の体の向きに対する移動方向を高精度に算出する例を表している。
【0062】
ステップS81に進み、演算処理部102は図5のフローチャートに示す処理により使用者の体の向きに対する移動方向をY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとに算出する。
【0063】
ステップS82に進み、演算処理部102はY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとの重み付けパラメータを、記録部103の設定パラメータ111に記録されている表5のような重み付けパラメータから取得する。そして、演算処理部102はY軸の振幅値,Z軸の振幅値,Y軸の振幅値/X軸の振幅値、Y軸の振幅値/Z軸の振幅値ごとに算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部103の出力情報110として記憶する。
【0064】
【表5】
ステップS83に進み、演算処理部102は図6のフローチャートに示す処理により使用者の体の向きに対する移動方向を算出する。
【0065】
ステップS84に進み、演算処理部102は使用者の体の向きに対する移動方向ごとの重み付けパラメータを、記録部103の設定パラメータ111に記録されている表5と同様な重み付けパラメータから取得する。そして、演算処理部102は算出した使用者の体の向きに対する移動方向に、取得した重み付けパラメータを掛け合わせて記憶部103の出力情報110として記憶する。
【0066】
ステップS85に進み、演算処理部102はステップS82の処理結果とステップS84の処理結果とを、前進,後進,横歩きといった使用者の体の向きに対する移動方向ごとに足し合わせ、最も確からしい(例えば数値が大きい)使用者の体の向きに対する移動方向を選択することで、使用者の体の向きに対する移動方向を高精度に算出できる。
【0067】
以上、本発明は移動量検出装置において、センサ部101からの出力信号に対して演算処理を行い、外部からの信号(例えばGPS信号など)を使用することなく、移動量検出装置を装着している使用者の体の向き及びその向きに対する移動方向の検出を可能としている。
【0068】
なお、本発明は3軸の加速度情報の位相差を解析することにより、使用者の体の向きに対する移動方向を検出することができ、3軸の磁気センサおよびジャイロセンサから得られる使用者の体の向きの情報を加えることで、体の向きと異なる方向に移動するといった横歩きや後進に対応して、自動的に使用者の体の向き及び使用者の体の向きに対する移動方向の検出が可能となる。
【0069】
また、使用者の体の向きに対する移動方向,移動状態に応じて移動距離計算を行うことにより、移動距離の誤差を小さくすることができる。また、移動距離計算を行うときの加速度の注目軸を選択することにより、3軸全てで計算を行うよりも計算処理量が小さくなると共に、移動距離の誤差も小さくすることができる。さらに、移動距離計算を行うときに重み付けによる評価を用いることにより、移動方向の算出誤差を小さくすることが可能である。
【0070】
本発明は、以下に記載する付記のような構成が考えられる。
(付記1)
記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
(付記2)
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記3)
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記4)
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、
前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする付記1乃至3何れか一項記載の移動量検出プログラム。
(付記5)
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記6)
前記判定ステップで判定した前記使用者の移動状態に応じて、前記使用者の移動量を算出する為の近似式を選択する近似式選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記7)
前記判定ステップで判定した前記使用者の体の向きに対する移動方向に応じて、前記3軸方向のうちの1軸方向を前記判定テーブルから読み出して前記使用者の移動量を算出する為の注目軸として選択する注目軸選択ステップを更に備えることを特徴とする付記2又は3記載の移動量検出プログラム。
(付記8)
前記判定ステップは、前記加速度センサからの出力信号の特徴に基づいて、前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向を異なる方法で前記判定テーブルから算出し、算出した前記使用者の体の向きに対する移動方向を前記方法に応じて重み付けして前記使用者の体の向きに対する移動方向を判定することを特徴とする付記1記載の移動量検出プログラム。
(付記9)
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【0071】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【0072】
【図1】本発明による移動量検出装置の一実施例のハードウェア構成図である。
【図2】センサ部からの出力信号を入力する処理を表したフローチャートである。
【図3】使用者の軸をX軸,Y軸及びZ軸の3軸方向で表した説明図である。
【図4】移動量を検出する処理を表したフローチャートである。
【図5】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【図6】使用者の体の向きに対する移動方向を算出する処理を表した他の例のフローチャートである。
【図7】使用者の体の向きに対する移動方向が後進と算出される場合の加速度情報を表したグラフである。
【図8】使用者の体の向きに対する移動方向が前進と算出される場合の加速度情報を表したグラフである。
【図9】使用者の移動状態を算出する処理を表したフローチャートである。
【図10】X軸の振幅値−歩行周期(波長)の移動状態判定テーブルを視覚的に表したグラフである。
【図11】使用者の移動距離を算出する処理を表したフローチャートである。
【図12】使用者の移動距離を算出する処理を表したフローチャートである。
【図13】注目軸を選択する処理を表したフローチャートである。
【図14】使用者の体の向きに対する移動方向を算出する処理を表したフローチャートである。
【符号の説明】
【0073】
101 センサ部
102 演算処理部
103 記憶部
104 表示部
105 通信部
106 加速度センサ
107 磁気センサ
108 ジャイロセンサ
109 入力情報
110 出力情報
111 設定パラメータ
112 判定テーブル
113 演算アルゴリズム
【特許請求の範囲】
【請求項1】
記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
【請求項2】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項1記載の移動量検出プログラム。
【請求項3】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項1記載の移動量検出プログラム。
【請求項4】
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、
前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする請求項1乃至3何れか一項記載の移動量検出プログラム。
【請求項5】
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【請求項1】
記憶部,演算処理部を含むコンピュータにおいて実行される、使用者の移動量を検出する移動量検出プログラムであって、
前記記憶部は、使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶しており、
前記演算処理部に、前記加速度センサからの出力信号を取得する取得ステップと、
前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する判定ステップと
を実行させる移動量検出プログラム。
【請求項2】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記3軸方向の加速度の振幅値の比が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の振幅値および前記3軸方向の加速度の振幅値の比を算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項1記載の移動量検出プログラム。
【請求項3】
前記判定テーブルは、前記使用者の体の向きに対する移動方向ごとに、3軸方向の加速度が最大となる最大値時間,前記3軸方向の加速度が最小となる最小値時間の発現順が表されており、
前記取得ステップは、前記加速度センサからの出力信号として3軸方向の加速度をそれぞれ取得し、
前記判定ステップは、前記3軸方向の加速度の最大値時間および最小値時間をそれぞれ算出し、前記判定テーブルから、前記使用者の体の向きに対する移動方向を判定することを特徴とする請求項1記載の移動量検出プログラム。
【請求項4】
前記判定テーブルは、前記使用者の移動状態ごとに、3軸方向の加速度の最大値および最小値の差である加速度の振幅値および前記使用者の歩行周期が表されており、
前記算出ステップは、前記3軸方向の加速度の最大値および最小値の差である加速度の振幅値,前記使用者の歩行周期を前記3軸方向ごとに算出し、
前記判定ステップは、前記3軸方向の加速度の振幅値,前記使用者の歩行周期に基づいて、前記判定テーブルから、前記使用者の移動状態を判定することを特徴とする請求項1乃至3何れか一項記載の移動量検出プログラム。
【請求項5】
使用者の移動量を検出する移動量検出装置であって、
使用者の体の向きに対する移動方向および移動状態ごとに、加速度センサからの出力信号の特徴が表された判定テーブルを記憶している記憶部と、
前記加速度センサからの出力信号を取得し、前記加速度センサからの出力信号の特徴に基づいて、前記判定テーブルから前記加速度センサからの出力信号の特徴に対応する前記使用者の体の向きに対する移動方向および移動状態を判定する演算処理部と
を有する移動量検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2007−325722(P2007−325722A)
【公開日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願番号】特願2006−158668(P2006−158668)
【出願日】平成18年6月7日(2006.6.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願日】平成18年6月7日(2006.6.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]