(57)【要約】【課題】単純な演算処理により、情報処理装置を携帯するユーザの動作状態を判定する。【解決手段】情報処理装置を、３次元空間の加速度を検出する加速度センサと、加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、重力成分ベクトルの信号に時間遅延を付与する時間遅延部と、ローパスフィルタにより抽出された重力成分ベクトルの信号と時間遅延部により時間遅延を付与された重力成分ベクトルの信号との内積値を算出する内積値算出部と、所定の動作における内積値の時間変化を示すテンプレートをあらかじめ記憶するテンプレート記憶部と、テンプレートを用いて、所定時間にわたって内積演算処理部により算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、所定の動作が発生したか否かを判定する動作判定部とを備える構成とする。【選択図】図１
2015084943.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間の加速度を検出する加速度センサと角速度を検出する角速度センサを有する情報処理装置であって、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するハイパスフィルタと、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との内積値を算出する第１の内積値算出部と、
前記角速度センサのセンサ出力と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との内積値を算出する第２の内積値算出部と、
前記第１の内積値算出部により算出された内積値と前記第２の内積値算出部により算出された内積値を用いて、前記情報処理装置を携帯する運動体の動作状態を特定する動作状態特定部と
を有する情報処理装置。
【請求項２】
前記運動体が歩行する場合に、前記第１の内積値算出部により算出された内積値の時間変化と前記第２の内積値算出部により算出された内積値の時間変化との間の位相差に基づいて、前記運動体の利き足を特定する請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記加速度センサのセンサ出力の絶対値を取得する絶対値算出部を有し、
前記動作状態特定部は、前記第１の内積値算出部により算出された内積値の時間変化の周期に基づいて特定される前記運動体の移動周期と前記絶対値算出部により算出された絶対値の大きさに基づいて特定される前記運動体に発生した無重力状態の有無とから前記運動体の動作状態を特定する請求項１に記載の情報処理装置。
【請求項４】
前記動作状態特定部は、前記運動体が歩行する場合に、前記第２の内積値算出部により算出された内積値の所定期間における積分値に基づいて前記運動体の正面の方位を推定し、前記推定した方位と前記歩行の移動単位の距離により前記運動体の位置を推定する請求項１に記載の情報処理装置。
【請求項５】
前記運動体が左右の手を有し、前記動作状態特定部は、前記運動体が歩行する場合に、前記第１の内積値算出部により算出された内積値と所定の閾値との大小比較に基づいて、前記運動体が左右の手を固定して歩行しているか否かを特定する請求項１に記載の情報処理装置。
【請求項６】
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第１の外積算出部と、
前記第１の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第２の外積算出部と、
前記第２の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第３の内積値算出部と、
を有し、
前記動作状態特定部は、前記第３の内積値算出部により算出された内積値の所定の周期ごとの総和について、１周期前との総和の比に基づいて前記運動体の移動バランスを特定する
請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第３の外積算出部と、
前記第３の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第４の外積算出部と、
前記第４の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第４の内積値算出部と、
を有し、
前記動作状態特定部は、前記第４の内積値算出部により算出された内積値の時間変化における所定の周期ごとの周期の時間幅に基づいて前記運動体の移動バランスを特定する
請求項１に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第５の外積算出部と、
前記第５の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第６の外積算出部と、
前記第６の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第５の内積値算出部と、
を有し、
前記動作状態特定部は、前記第５の内積値算出部により算出された内積値の時間変化における所定の周期ごとの振幅の大小に基づいて前記運動体の移動バランスを特定する
請求項１に記載の情報処理装置。
【請求項９】
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第７の外積算出部と、
前記第７の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第６の内積値算出部と、
を有し、
前記動作状態特定部は、前記第６の内積値算出部により算出された内積値と、前記第６の内積値算出部により算出された内積値の所定時間の平均値との大小関係に基づいて、前記運動体の移動に異常状態が発生したか否かを特定する
請求項１に記載の情報処理装置。
【請求項１０】
３次元空間における情報処理装置の加速度及び角速度を検出するステップと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するステップと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するステップと、
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の内積値を算出するステップと、
前記検出された角速度と前記抽出された重力成分ベクトルの信号との第２の内積値を算出するステップと、
前記第１の内積値と前記第２の内積値を用いて、前記情報処理装置を携帯する運動体の動作状態を特定するステップと
を有する情報処理方法。
【請求項１１】
３次元空間における情報処理装置の加速度及び角速度を検出するステップと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するステップと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するステップと、
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の内積値を算出するステップと、
前記検出された角速度と前記抽出された重力成分ベクトルの信号との第２の内積値を算出するステップと、
前記第１の内積値と前記第２の内積値を用いて、前記情報処理装置を携帯する運動体の動作状態を特定するステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示の発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年普及している携帯電話端末等の情報処理装置には、その高機能化に伴い、さまざまなセンサが搭載されている。例えば、加速度センサや角速度センサを有する装置は、センサの出力値に基づいて、装置の現在の状態を判定する。特許文献１、２では、加速度センサや角速度センサの出力値を利用して、情報処理装置を携帯するユーザの歩行状態や姿勢を判定する方法等が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５７３９５号公報
【特許文献２】特開２００２−３２８１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、情報処理装置を携帯するユーザの動作状態を判定する際に、情報処理装置及びセンサの座標系、いわゆるローカル座標系と、グローバル座標系とは軸が一致しないため、各センサのセンサ出力に対して座標変換を施す必要がある。
【０００５】
携帯電話端末等の情報処理装置には、ユーザの操作を処理したり通信を実行したりするためのメインマイコンと、加速度センサ等からの出力情報を処理するサブマイコンを備えるものがある。メインマイコンは、装置全体の制御の他、例えばゲームやブラウザ等のユーザが実行するアプリケーションも動作させるため高性能である。一般に、マイコンの性能と消費電力は比例関係にあると考えてよい。そして、情報処理装置において駆動時間（電池の持続時間）は重要な要素の１つである。情報処理装置における消費電力を抑えれば、情報処理装置の駆動時間を長くすることができる。そこで、メインマイコンはできるだけ休止状態にされる。そのため、通常は、メインマイコンで常時加速度センサの出力をモニタリングしない構成が採用される。
【０００６】
そこで、情報処理装置のサブマイコンが使用される。一般に、サブマイコンの消費電力はメインマイコンの１／２００〜１／１０００程度である。すなわち、サブマイコンは常時動作状態としても、電力浪費の観点からは支障がない。ただし、サブマイコンの性能は非力であり、整数の四則演算とメモリ操作といった単純な処理であれば実行できる。サブマイコンを用いてユーザの行動評価を常時行うためには、上記のような単純な演算に基づいて必要な処理を行う。
【０００７】
例えば、加速度センサの座標系で出力された値を、上下左右前後のいわゆるグローバル座標系における値に変換する場合、回転行列を利用した演算を行うことでそのような変換を行うことができる。この変換は、通常は三角関数を用いて行う。しかし、上述のように、整数の四則演算とメモリ操作程度の処理が可能なサブマイコンでは、処理負荷の高い三角関数の演算等を行うことはできない。
【０００８】
本件開示の技術は、上記に鑑みてなされたものであり、その目的とするところは、単純な演算処理により、情報処理装置を携帯する運動体の動作状態を判定することである。
【課題を解決するための手段】
【０００９】
本件開示の情報処理装置は、１つの側面では、３次元空間の加速度を検出する加速度センサと角速度を検出する角速度センサと、加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、加速度センサのセンサ出力から加速度センサの振動成分ベクトルの信号を抽出するハイパスフィルタと、ローパスフィルタにより抽出された重力成分ベクトルの信号とハイパスフィルタにより抽出された振動成分ベクトルの信号との内積値を算出する第１の内積値算出部と、角速度センサのセンサ出力とローパスフィルタにより抽出された重力成分ベクトルの信号との内積値を算出する第２の内積値算出部と、第１の内積値算出部により算出された内積値と第２の内積値算出部により算出された内積値を用いて、情報処理装置を携帯する運動体の動作状態を特定する動作状態特定部とを有する。
【発明の効果】
【００１０】
本件開示の技術によれば、単純な演算処理により、情報処理装置を携帯する運動体の動作状態を判定することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、一実施形態における携帯電話端末のハードウェア構成を示す概略構成図である。
【図２】図２は、一実施形態における携帯電話端末の機能部を示す機能構成図である。
【図３Ａ】図３Ａは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図３Ｂ】図３Ｂは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図４Ａ】図４Ａは、一実施形態におけるユーザの歩行状態を示す模式図である。
【図４Ｂ】図４Ｂは、一実施形態におけるユーザの歩行状態を示す模式図である。
【図５Ａ】図５Ａは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図５Ｂ】図５Ｂは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図６Ａ】図６Ａは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図６Ｂ】図６Ｂは、一実施形態におけるユーザの矢状面、冠状面、横断面を示す模式図である。
【図７】図７は、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図８】図８は、一実施形態におけるサブマイコンの一部の構成を示す概略構成図である。
【図９Ａ】図９Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図９Ｂ】図９Ｂは、一実施形態におけるユーザの位置及び方位を示す模式図である。
【図１０】図１０は、一実施形態においてサブマイコンが実行するフローチャートである。
【図１１Ａ】図１１Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１１Ｂ】図１１Ｂは、一実施形態における角速度の時間変化を示すグラフである。
【図１２Ａ】図１２Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１２Ｂ】図１２Ｂは、一実施形態におけるユーザの歩行状態と角速度の関係を示すグラフである。
【図１３Ａ】図１３Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１３Ｂ】図１３Ｂは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１３Ｃ】図１３Ｃは、一実施形態におけるユーザの歩行状態と角速度の関係を示すグラフである。
【図１４】図１４は、一実施形態における馬の歩容を例示する図である。
【図１５】図１５は、一実施形態におけるサブマイコンの一部の構成を示す概略構成図である。
【図１６Ａ】図１６Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１６Ｂ】図１６Ｂは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１６Ｃ】図１６Ｃは、一実施形態においてサブマイコンが実行するフローチャートである。
【図１７】図１７は、一実施形態における馬の歩容判定の実験結果の例を示すグラフである。
【図１８】図１８は、一実施形態における馬体と携帯端末との位置関係を例示する図である。
【図１９Ａ】図１９Ａは、一実施形態における、馬の上下方向の角速度の向きの時間変化を示す模式図である。
【図１９Ｂ】図１９Ｂは、一実施形態における、馬の上下方向の角速度の向きの時間変化を示す模式図である。
【図２０】図２０は、一実施形態におけるサブマイコンの一部の構成を示す概略構成図である。
【図２１】図２１は、一実施形態における馬の上下方向の動きと左右方向の回転の関係を示すグラフである。
【図２２Ａ】図２２Ａは、一実施形態においてサブマイコンが実行するフローチャートである。
【図２２Ｂ】図２２Ｂは、一実施形態においてサブマイコンが実行するフローチャートである。
【図２３】図２３は、一実施形態における馬の手前判定の実験結果の例を示すグラフである。
【図２４】図２４は、一実施形態におけるサブマイコンの一部の構成を示す概略構成図である。
【発明を実施するための形態】
【００１２】
以下、第１の実施形態における携帯電話端末及びその制御方法について、図面を参照しながら説明する。本実施形態では、運動体である人（ユーザ）が携帯電話端末を携帯している場合を想定する。
【００１３】
図１に示すように、本実施形態における携帯電話端末１０は、アンテナ１０１、ＲＦ（Radio Frequency）部１０２、メインマイコン１０３、サブマイコン１０４、ボタン１０
５、ディスプレイ１０６、タッチパネル１０７、ＲＯＭ（Read Only Memory）１０８、ＲＡＭ（Random-Access Memory）１０９、加速度センサ１１０、角速度センサ１１１を備える。なお、携帯電話端末１０が、情報処理装置の一例に相当する。ただし、本実施形態に開示された技術は、携帯電話端末１０に限定されず、情報処理装置一般に適用できる。
【００１４】
携帯電話端末１０は、アンテナ１０１を経由して基地局等の外部の無線送受信装置（図示せず）と無線通信を行う。ＲＦ部１０２は、外部の無線送受信装置との送受信において、送信時にベースバンド信号を周波数帯（ＲＦ帯）に変調し、受信時にこれらの周波数帯の信号をベースバンド信号に復調する。
【００１５】
メインマイコン１０３は、ＲＯＭ１０８に記憶された制御プログラム１０８ａを実行して、携帯電話端末１０が有する各種機能を実現する。サブマイコン１０４は、加速度センサ１１０及び角速度センサ１１１のセンサ出力を演算処理し、携帯電話端末１０のユーザの座標系、すなわちグローバル座標系の加速度や角速度に変換する。
【００１６】
ボタン１０５は、ユーザが携帯電話端末１０の操作に使用するハードウェアキーである。ディスプレイ１０６は、携帯電話端末１０において実行される各種処理の結果等の種々の情報を表示する。また、ディスプレイ１０６は、メインマイコン１０３やサブマイコン１０４により実行される種々の処理の処理結果や処理状態、コンテンツ等を表示する。タッチパネル１０７は、ユーザのタッチ操作等を受け付ける。タッチパネル１０７はディスプレイ１０６と重なるように配置されている。ユーザは、タッチパネル１０７を指等でタッチ操作等することで、ディスプレイ１０６に表示されたアイコン等の表示項目の選択等を行う。
【００１７】
ＲＯＭ１０８は、携帯電話端末１０において実行される各種プログラムを格納する。ＲＡＭ１０９は、メインマイコン１０３やサブマイコン１０４が種々の処理を実行する際に一時的な記憶領域として使用される。すなわち、ＲＡＭ１０９はワークエリアとして用いられ、各種プログラムや端末番号等の携帯電話端末の固有情報が格納される。また、ＲＡＭ１０９には、ユーザが入力した設定やプログラムの情報、ディスプレイ１０６等を介してユーザに提供されるデータ等が格納される。
【００１８】
メインマイコン１０３は、高速演算処理を実行することができるが、消費電力が大きい。したがって、常時動作状態に保つことは好ましくないため、メインマイコン１０３の動作時間には一定の制限が課せられ、一時的に休止状態に移行される。ところで、ユーザの動作状態を判定する場合、ユーザの動作データを常時取得し、取得した動作データに基づいて動作状態を判定する。
【００１９】
そこで、本実施形態では、サブマイコン１０４は、少なくともユーザの動作が発生している間は動作状態に保たれ、加速度センサ１１０や角速度センサ１１１のセンサ出力を受け取り、センサ出力を演算処理してグローバル座標系の加速度データを生成する。サブマイコン１０４は、四則演算等の単純な演算処理やＲＯＭ１０８やＲＡＭ１０９等のメモリへのアクセス処理等の処理負荷が低い処理を実行する。
【００２０】
したがって、メインマイコン１０３は、必要な場合に動作状態にされ、サブマイコン１０４が常時もしくは長時間にわたりユーザの動作状態の判定結果に基づいて、ユーザにわかりやすい値に変換したり統計情報を作成したりして、生成した情報をディスプレイ１０６に表示する。なお、生成した情報は、アンテナ１０１を介して外部に送信してもよい。
【００２１】
本実施形態では、携帯電話端末１０のＲＯＭ１０８に記憶されているアプリケーション等が、ＣＰＵ１０３によって実行される。このようなアプリケーション等の実行により、図２に示すように、携帯電話端末１０は、内積値算出部２０１、外積算出部２０２、絶対値算出部２０３、動作状態特定部２０４として機能する。ただし、内積値算出部２０１、外積算出部２０２、絶対値算出部２０３、動作状態特定部２０４のいずれか１つ以上が、ハードウェア回路であってもよい。
【００２２】
次に、本実施形態において、携帯電話端末１０のサブマイコン１０４において実行される、ユーザが行った所定の動作を判定するための構成、アルゴリズム及び処理について説明する。
【００２３】
図３Ａ及び図３Ｂは、携帯電話端末を携帯するユーザの姿勢が不明な場合に、加速度センサのセンサ出力から、ユーザの座標系における上下方向（鉛直方向）の加速度情報を取り出す方法の一例を示す図である。ここでは、ユーザが歩行中である場合を想定している。図３Ａに示すように、互いに直交するＸ軸、Ｙ軸、Ｚ軸が携帯電話端末のローカル座標系を構成する。図３Ａにおいて、加速度センサのセンサ出力ＡはＡ＝（ｘ，ｙ，ｚ）Tで
与えられる。なお、Ｔは転置行列を意味する。そして、図３Ａに示すように、加速度センサのセンサ出力Ａは、ユーザの歩行に伴う振動Ｓと重力加速度Ｇの合成と考えることができる。
【００２４】
ここで、人間の歩行について概説する。図４Ａ及び図４Ｂは、人間の歩行における体幹と両足の動きを模式的に表す図である。図４Ａは、人間の歩行を真上（鉛直上方）から見た図であり、図４Ｂは、人間の歩行を真横（水平方向）から見た図である。体幹２０は、人間の股関節から頭部までの部分に対応し、脚２０Ｌ、２０Ｒはそれぞれ左脚と右脚に対応する。図４Ａ及び図４Ｂに示すように、人間は、歩行中、左右の脚２０Ｌ、２０Ｒが交互に地面に着き、体幹２０は上下、左右、前後の各方向にそれぞれ揺れる。また、図４Ａ及び図４Ｂに示すように、体幹２０の上下動の周期は、左右の脚２０Ｌ、２０Ｒの一方が地面から離れて再び着き、さらに他方が地面から離れて再び着くまでの期間と一致する。一方、体幹２０の左右の揺れについては、左脚２０Ｌが地面に着いている間は人間の左方向に揺れ、右脚２０Ｒが地面に着いている間は人間の右方向に揺れる。したがって、人間の歩行時における体幹２０の左右の揺れの周期は、上下動の周期の２倍の周期、すなわち１／２の周波数である。
【００２５】
また、人間は、歩行中、左脚２０Ｌまたは右脚２０Ｒを地面に着地させる瞬間が最も下方向の加速度が大きくなる。そして、左脚２０Ｌまたは右脚２０Ｒの着地後、体幹２０を上昇させる時に上方向の加速度が発生し、体幹２０が到達する最上点で当該上方向の加速度が最小になり、以後は代わりに下方向の加速度が発生する。また、左右方向の加速度については、左脚２０Ｌを着地させると左方向の加速度が発生し、右脚２０Ｒを着地させると右方向の加速度が発生する。
【００２６】
図３Ａ及び図３Ｂに戻ると、図４Ａ及び図４Ｂを用いて説明したように、ユーザの歩行に伴う振動Ｓは、所定の周期の繰り返し運動であると言える。したがって、加速度センサのセンサ出力Ａを、適切なカットオフ周波数のローパスフィルタ（ＬＰＦ）やハイパスフィルタ（ＨＰＦ）に通すと、センサ出力Ａを振動成分ベクトルＳと重力加速度ベクトルＧとに分離することができる。歩行に伴う上下方向の加速度は、振動成分ベクトルＳにおける重力加速度ベクトルＧと平行なベクトルＶで表せる。ベクトルＶの大きさをｖとし、振動成分ベクトルＳと重力加速度ベクトルＧのなす角をθとすると、ｖは以下の式で与えられる。
v = |S| cosθ ・・・（１）
【００２７】
ここで振動成分ベクトルＳと重力加速度ベクトルＧの内積について考える。内積は、ベクトルのｘ、ｙ、ｚ成分同士を乗算した後に、乗算した各成分の和を求めることで得られる。なお、振動成分ベクトルＳと重力加速度ベクトルＧの内積は、定義より以下の式で与えられる。
S ・ G = |S| |G| cosθ ・・・（２）
【００２８】
式（２）を式（１）に当てはめると、以下の式（３）が得られる。
v = S ・ G / |G| ・・・（３）
【００２９】
ここで重力加速度ベクトルＧの大きさ｜Ｇ｜は、地球上ではほぼ一定である。すなわち、加速度センサのセンサ出力Ａに対して、ＬＰＦとＨＰＦを通し、各フィルタの出力の内積を取ることでユーザの歩行運動に伴う上方向の加速度に比例した数値と下方向の加速度に比例した数値とを得ることができる。なお、上記では、ユーザが歩行中であることを想定して説明した。しかし、ユーザが歩行以外の動作を行う場合も、上記のアルゴリズムを踏まえて、加速度センサのセンサ出力Ａに対して、ＬＰＦとＨＰＦを通すことで、振動成分ベクトルと重力加速度ベクトルがそれぞれ得られる。
【００３０】
次に、図５Ａ及び図５Ｂは、携帯電話端末を携帯するユーザの姿勢が不明な場合に、加速度センサのセンサ出力から、ユーザの座標系における水平方向（左右方向）の加速度情報を取り出す方法の一例を示す図である。ここでも、ユーザが歩行中である場合を想定している。また、加速度センサのセンサ出力Ａが、ユーザの歩行に伴う振動成分ベクトルＳと重力加速度ベクトルＧの合成と考えることは、図３Ａ及び図３Ｂと同じである。ここで振動成分ベクトルＳが、重力加速度ベクトルＧに平行なベクトルＶと、ベクトルＶに直交するベクトルＨとの和であると考えると、ベクトルＨはユーザの歩行に伴う振動成分ベクトルＳの水平方向の成分と考えることができる。
【００３１】
ここで、ベクトルＨの大きさ｜Ｈ｜を得ることを目的として、振動成分ベクトルＳと重力加速度ベクトルＧとの外積を考える。内積と同様、外積も四則演算によって得られるため、サブマイコン１０４のようにメインマイコン１０３に比べて処理性能の低いマイコンでも計算することができる。図５Ｂに示すように、振動成分ベクトルＳと重力加速度ベクトルＧの外積は定義より、ベクトルＳ及びＧと直交する方向で、ベクトルＳ及びＧによって形成される平行四辺形の面積Ｚと等しい大きさのベクトルである。すなわち、振動成分ベクトルＳと重力加速度ベクトルＧの外積は、以下の式（４）で与えられる。
Z = |S × G| ・・・（４）
【００３２】
図５Ｂに示すように、平行四辺形の面積Ｚは、｜Ｇ｜×｜Ｈ｜とも記述できる。これを式（４）に当てはめると、以下の式（５）が得られる。
|H| = Z / |G| = |S × G| / |G| ・・・（５）
【００３３】
上記の通り、｜Ｇ｜が地球上ではほぼ一定である。したがって、加速度センサのセンサ出力Ａに対して、ＬＰＦとＨＰＦを通すことで得られる振動成分ベクトルと重力加速度ベクトルとの外積を取って絶対値を求めれば、歩行に伴う振動の水平成分の大きさに比例した数値を得ることができる。
【００３４】
次に、図６Ａは、携帯電話端末を携帯するユーザの姿勢が不明な場合に、加速度センサのセンサ出力から、ユーザの座標系における上下、左右、前後の各方向の加速度情報を取り出す方法の一例を示す図である。ここでも、ユーザが歩行中である場合を想定している。この方法では、図５Ａ及び５Ｂに示す方法により、振動成分ベクトルＳが上下方向及び水平方向に分離されているとする。なお、本方法では、ユーザの歩行が定常状態（等速度運動）に入ると、ユーザの体幹の前後方向の加速度はほとんど発生しないことを利用している。ユーザの体幹の前後方向に加速度が発生しないと考えた場合、図５Ａ及び図５Ｂにおいて得られる水平方向の加速度｜Ｈ｜は左右方向の加速度の大きさを示している。
【００３５】
さらに、図６Ｂに示すように、ユーザの体幹のいわゆる矢状面、冠状面、横断面を考えた場合、振動成分ベクトルＳは、ユーザの体幹の冠状面に存在する。したがって、振動成分ベクトルＳと重力加速度ベクトルＧとの外積Ｆは、ユーザの体幹の前方向（正面側）も
しくは後ろ方向（背面側）を向く。外積Ｆの前後方向は、振動成分ベクトルＳの左右方向の向きに依存する。ここで、ユーザの体幹の前方向を向くベクトルＫが既知であると仮定すると、ベクトルＦとＫとの内積が正である場合、ベクトルＦは前方向を向くことがわかる。また、ベクトルＦとＫとの内積が負である場合、ベクトルＦは後ろ方向を向くことがわかる。なお、ベクトルＦが前方向を向く場合は、振動成分ベクトルＳは、ユーザの体幹の右方向（右手側）を向く。また、ベクトルＦが後ろ方向を向く場合は、振動成分ベクトルＳは、ユーザの体幹の左方向（左手側）を向く。
【００３６】
さらに、以下の式（６）により、ユーザの体幹の左右方向の加速度について、右方向と左方向とを区別することが可能となる。
h = sign(F・K) |H| ・・・（６）
ここで、「ｓｉｇｎ（Ｆ・Ｋ）」は、ベクトルＦとベクトルＫとの内積の正負を示す。したがって、式（６）により｜Ｈ｜に内積の符号を付加することで、ベクトルＨがユーザの体幹の右方向の加速度ベクトルであるか左方向の加速度ベクトルであるかがわかる。
【００３７】
次に、図７は、携帯電話端末を携帯するユーザの姿勢が不明な場合に、加速度センサのセンサ出力から、ユーザのグローバル座標系における上下、左右、前後の各方向の加速度情報を具体的な値と共に取り出す方法の一例を示す図である。ここでも、ユーザが歩行中である場合を想定している。図６Ａ及び図６Ｂに示す例では、定常状態においては前後方向の加速度は発生しないと想定した。しかし、図７に示す例では、高分解能の加速度センサを用いることで、前後方向の加速度における微細な変動も検出することができる。
【００３８】
ここで、図４Ａ及び図４Ｂに示すように、前後方向の変動は上下方向の変動と同期している。そして、下方向に加速するときは前方向に、上方向に加速するときは後ろ方向に加速している（下前と上後ろと考えてもよい）。さらに、左右方向の変動の周期は上下方向及び前後方向の変動周期の２倍である。そこで、この特性を利用し、図７に示す例では、バンドパスフィルタを用いて加速度センサのセンサ出力を、前後方向の加速度と上下方向の加速度が主となるベクトルＳ1と左右方向の加速度に若干の前後方向の加速度が含まれ
るベクトルＳ2に分離する。さらに、適当な外積演算により前後方向の加速度と左右方向
の加速度を、いずれも正負が不明である状態で抽出する。前後方向の加速度と左右方向の加速度の正負は、抽出した前後方向の加速度ベクトルと左右方向の加速度ベクトルについて、上下方向の加速度ベクトルとの位相差を用いることで決定することができる。
【００３９】
上記の加速度センサのセンサ出力を利用する方法は、携帯電話端末を携帯するユーザの姿勢が不明な状態で、加速度センサから得られる加速度情報をグローバル座標系における各軸方向の加速度情報に分離する。ところで、センサによって得られる動作情報としては、加速度の他に角速度がある。角速度情報は、角速度センサ（ジャイロ）を用いることで取得できる。しかし、角速度センサのセンサ出力から得られる角速度情報も、上記の加速度情報と同様に、センサ出力そのものからはグローバル座標系におけるどの軸周りの値であるかは不明である。そこで、角速度センサのセンサ出力をユーザのいわゆるピッチ軸、ロール軸、ヨー軸の各軸周りの角速度に変換する。なお、一般に、端末内において加速度センサの検出軸と角速度センサの検出軸は一致するように取り付けられているため、本実施形態でも各検出軸は一致していると想定する。仮に各検出軸が一致していない場合は、あらかじめ適当な校正手段によって２つの検出軸のずれを計測し、計測したずれに応じた座標変換行列をいずれかのセンサの出力値に施せば、各検出軸が一致しているものとして各センサ出力を扱うことができる。
【００４０】
携帯電話端末内の角速度センサのセンサ座標系Σ１について、互いに直交するＸＹＺの３軸を設定し、センサ座標系Σ１におけるＸ軸、Ｙ軸、Ｚ軸の各軸方向の角速度センサのセンサ出力値をそれぞれｘｒ、ｙｒ、ｚｒとする。また、携帯電話端末を携帯するユーザ
の座標系、いわゆるグローバル座標系Σ２について、互いに直交するピッチ軸、ロール軸、ヨー軸の３軸を設定し、グローバル座標系Σ２におけるピッチ軸ロールＹ軸、ヨー軸の各軸方向の角速度センサのセンサ出力値をそれぞれｐ、ｒ、ｙとする。
【００４１】
そして、角速度センサのセンサ出力の値ＳＬ（＝（ｘｒ、ｙｒ、ｚｒ）T）を、ユーザ
のピッチ軸、ロール軸、ヨー軸周りの角速度ＳＧ（＝（ｐ、ｒ、ｙ）T）に変換すること
は、センサ座標系Σ１からグローバル座標系Σ２への座標変換を行うことと等価である。ここで、ＳＬからＳＧへの変換は、座標系Σ１及びΣ２の座標変換行列Ｒを用いてＹ＝ＲＸを演算すればよい。ここでＲは３×３行列で、以下の行列で表される。
【数１】
2015084943.tif 000003
【００４２】
座標変換行列Ｒの各要素ａ００〜ａ２２は、上記２座標系の各軸についての相対角度を適当な三角関数を用いた演算を通して得ることができる。なお、この演算は周知のものであるため、ここでは詳細な説明は省略する。ただし、上述の通り、三角関数等の演算をサブマイコンで行うことは望ましくない。そこで、センサ座標系Σ１から見たΣ２のＸＹＺ各軸の向きをそれぞれ単位ベクトルｅx、ｅy、ｅzで表したとする。するとベクトルｅx、ｅy、ｅzの各要素は、座標変換行列Ｒの各要素を用いてｅx＝（ａ００、ａ０１、ａ０２
）T、ｅy＝（ａ１０、ａ１１、ａ１２）T、ｅz＝（ａ２０、ａ２１、ａ２２）Tと表現す
ることができる。すなわち、ベクトルｅx、ｅy、ｅzが分かりさえすれば、角速度センサ
のセンサ出力の値から、グローバル座標系におけるピッチ軸、ロール軸、ヨー軸の各角速度に変換することができる。
【００４３】
図８に、本実施形態における携帯電話端末１０のサブマイコン１０４が有する回路の一部を示す。図９Ａに示すように、加速度センサ１１０のセンサ出力Ａは、ＬＰＦ１０４ｃとＨＰＦ１０４ｄに入力される。上述の通り、ＬＰＦ１０４ｃからは重力加速度ベクトルＧが出力され、ＨＰＦ１０４ｄからは振動成分ベクトルＳが出力される。
【００４４】
また、図８に示すように、サブマイコン１０４は、外積演算処理部１０４ｅ、乗算処理部１０４ｆ、ＬＰＦ１０４ｇ、符号判定部１０４ｈ、内積演算処理部１０４ｉを有する。外積演算処理部１０４ｅは、ＬＰＦ１０４ｃから出力されるベクトルＧとＨＰＦ１０４ｄから出力されるベクトルＳの外積を求める。なお、外積演算処理部１０４ｅが第１、第３、第５、第７の外積算出部の一例に相当する。乗算処理部１０４ｆは、外積Ｓ×Ｇに＋１又は−１の係数を乗算する。また、ＬＰＦ１０４ｇは、乗算処理部１０４ｆの出力の平均値を求める。外積Ｓ×Ｇは、前後方向のベクトルであるから、乗算処理部１０４ｆで係数＋１又は−１を乗算すると、前後方向のうちの１方向のベクトルを求めることができる。したがって、ＬＰＦ１０４ｇからは、前後方向のうちの１方向のベクトルが出力される。そして、内積演算処理部１０４ｉが、その前後方向のうちの１方向のベクトルと外積演算処理部１０４ｅから出力される外積Ｓ×Ｇとの内積を求める。
【００４５】
内積演算処理部１０４ｉにおいて、内積の符号は、外積Ｓ×Ｇが前方向（すなわち、振動成分ベクトルＳが右方向）であれば＋１となり、外積Ｓ×Ｇが後ろ方向（すなわち、振動成分ベクトルＳが左方向）であれば−１となる。よって、この符号を符号判定部１０４
ｈで検出し、＋１又は−１を乗算処理部１０４ｆに送ることで、ＬＰＦ１０４ｇからは前方向を示すベクトルＨが得られる。なお、ここでは便宜上、ベクトルＨは「前」方向を示すベクトルであるとしているが、乗算処理部１０４ｆ、ＬＰＦ１０４ｇ、符号判定部１０４ｈ、内積演算処理部１０４ｉのループにおける初期値の設定次第では、ここで説明した「前」方向は「後ろ」方向を示す可能性もある。以下の説明では、ＬＰＦ１０４ｇから出力されるベクトルＨの方向は、グローバル座標系Σ２のロール軸（Ｙ軸）における前方向であるとする。
【００４６】
ところで、ＬＰＦ１０４ｃから出力されるベクトルＧの方向は、グローバル座標系Σ２のヨー軸（Ｚ軸）方向に等しい。内積演算処理部１０４ｊは、ＬＰＦ１０４ｃから出力されるベクトルＧと角速度センサ１１１のセンサ出力の値Ｘとの内積を演算する。なお、内積演算処理部１０４ｊが第２の内積値算出部の一例に相当する。当該内積は以下の式（７）で与えられる。
G・X = |G|ez・X = g y ・・・（７）
【００４７】
ここでｇは重力加速度の大きさであり、地上ではほぼ一定値である。そのため、内積演算処理部１０４ｊの出力値は、ヨー軸周りの回転の角速度を定数倍したものと等しい。したがって、内積演算処理部１０４ｊにおける式（７）により、ヨー軸周りの角速度が算出される。
【００４８】
次に、前方向ベクトルＨはセンサ座標系から見た前方向の単位ベクトルｅyと適当な実
数ｋ1を用いて式（８）のように表せる。
H = k1 ey ・・・（８）
｜Ｈ｜は、ベクトルＳの方向や大きさに依存するためｋ1は一定値ではない。しかしＬＰ
Ｆ１０４ｇの時定数を十分大きくすることで、ＬＰＦ１０４ｇから出力されるベクトルＨの大きさは、平均化されて所定の短時間において一定値になるとみなせる。このベクトルＨと角速度センサ１１１のセンサ出力の値Ｘの内積を計算すると、以下の式（９）が得られる。本実施形態では、内積演算処理部１０４ｍが式（９）の演算を行う。なお、内積演算処理部１０４ｍが、第６の内積値算出部の一例に相当する。
H・X = k1 ey・X= k1 r ・・・（９）
すなわち、短時間的には、式（９）により得られる内積値は、グローバル座標系Σ２におけるロール軸周りの角速度の大きさに比例すると考えられる。ただし、ｋ1がほぼ一定値
であるとみなすことはできても、実際の角速度の大きさは不明である。そこで、本実施形態では、ロール軸周りの角速度の正負を角速度に関連した値として利用して、ユーザの動作を判定する。詳細については後述する。
【００４９】
さらに、前方向ベクトルＨと重力加速度ベクトルＧとの外積Ｋを考えると、外積Ｋは、グローバ座標系における右方向もしくは左方向を示すベクトルである。本実施形態では、外積演算処理部１０４ｋにより外積Ｋが算出される。なお、外積演算処理部１０４ｋが、第２、第４、第６の外積算出部の一例に相当する。なお、そこで、外積Ｋと角速度センサ１１１のセンサ出力の値Ｘとの内積を取ると、以下の式（１０）が得られる。本実施形態では、内積演算処理部１０４ｌが式（１０）の演算を行う。なお、内積演算処理部１０４ｌが、第３、第４、第５の内積値算出部の一例に相当する。
K・X = k2 ex・X = k2 p ・・・（１０）
したがって、式（１０）により得られる内積値は、グローバル座標系Σ２におけるピッチ軸周りの角速度に関連した値を取り出すことができる。
【００５０】
次に、本実施形態において、サブマイコン１０４において算出された、ヨー軸周りの角速度、ロール軸周りの角速度に関連した情報、ピッチ軸周りの角速度に関連した情報を用いて、携帯電話端末１０を携帯するユーザの種々の動作を判定する処理例について説明す
る。
【００５１】
図９Ａは、図８に示す回路により得られたヨー軸周りの角速度ωｙを用いて、屋内ナビゲーションを行う例においてサブマイコン１０４で実行される処理のフローチャートを示す。なお、以下の説明ではステップをＳと略記する。屋内ナビゲーションで重要なことは、図９Ｂに示すように、適当な基点を取り、基点を原点Ｏとして設定したＸＹ座標におけるユーザＵの相対位置（ｘ，ｙ）を知ることである。ユーザＵの位置が分かれば、屋内のどこにいるかがわかり、適切なナビゲーションサービスを提供することができる。図９Ａに示すフローチャートのＳ１０１〜Ｓ１０９の処理は、適当なサンプリングタイム（ΔＴ）毎に繰り返し呼ばれるループである。なお、当該サンプリングタイムは、ユーザの歩行周期に対して短いサイクルで１ループが完了するように適宜設定される。
【００５２】
Ｓ１０１では、サブマイコン１０４は、ユーザのヨー軸周りの各速度ωｙを取得する。次いで処理はＳ１０２に進む。Ｓ１０２では、サブマイコン１０４は、周知の手段により、ユーザＵが前を向いている方向を特定できたかどうかを確認する。これは例えば、屋内の特定の扉からユーザＵが入退室したことやユーザＵが廊下を歩いていることをＲＦＩＤ等の外部装置を用いて検知し、検知結果と地図情報とをマッチング処理等することによって、ユーザＵが現在どの方向を向いているか、すなわち図９Ｂに示す現在の方位θを推定できる。推定に成功した場合（Ｓ１０２：Ｙ）、サブマイコン１０４は、推定方位を現在の方位θとみなす（Ｓ１０３）。推定に失敗した場合（Ｓ１０２：Ｎ）、サブマイコン１０４は、現在の方位θに対し、上記のサンプリング期間ΔＴ内における角速度の積分値を加算する（Ｓ１０４）。Ｓ１０３、Ｓ１０４の処理が終了すると、処理はＳ１０５に進められる。
【００５３】
Ｓ１０５では、サブマイコン１０４がユーザＵの現在の歩数を算出する。Ｓ１０５の処理では、携帯電話端末１０が外部装置である歩数計の計算結果を取得して、サブマイコン１０４がその計算結果を利用する。次いで、処理はＳ１０６に進められる。Ｓ１０６では、Ｓ１０２と同様、周知の手段により、ユーザＵの現在位置を推定できたかどうかを確認する。ユーザの現在位置の推定に成功した場合（Ｓ１０６：Ｙ）、処理はＳ１０７に進められて推定位置を現在位置とみなす。ユーザの現在位置の推定に失敗した場合（Ｓ１０６：Ｎ）、処理はＳ１０８に進められ、サブマイコン１０４は、Ｓ１０５において計算結果を取得した歩数計の歩数がカウントアップされたか否かを判定する。サブマイコン１０４は、歩数計がカウントアップされたと判定した場合（Ｓ１０８：Ｙ）、ユーザＵの１歩にかかる移動距離Ｌを基に、現在位置（ｘ、ｙ）を更新する（Ｓ１０９）。ここで、移動距離Ｌは、ユーザＵの身長等を基に算出してもよいし、Ｓ１０７の処理における推定位置と現在位置との差分を用いて適宜推定してもよい。したがってＳ１０４やＳ１０９の処理により、ユーザの方位推定（Ｓ１０２）や位置推定（Ｓ１０６）が成功しない場合でも、ユーザのヨー軸周りの角速度を用いて、これらの方位や位置を推定することができる。
【００５４】
次に、図１０に、ユーザが台車を押しているか現在歩行中であるか歩行していないかをそれぞれ判定するフローチャートを示す。一般に、人間が台車やベビーカー等の運搬車を押しているときは、両手を運搬車に固定して移動するため、通常の歩行に比べて当該人間のヨー軸周りの回転、すなわち角速度が小さくなる傾向がある。そこで、図１０に示す処理により、ユーザが台車を押しているか現在歩行中であるか歩行していないかを判定する。
【００５５】
Ｓ２０１では、サブマイコン１０４は、ユーザのヨー軸周りの各速度ωｙを取得する。次いで処理はＳ２０２に進められる。Ｓ２０２において、サブマイコン１０４は、加速度センサ１１０等を用いてユーザが現在歩行中であるか否かを判定する。この判定処理は、外部の歩数計等の計算結果を用いることで得られ、周知の処理であるため詳細な説明は省
略する。サブマイコン１０４は、ユーザが現在歩行中でないと判定した場合（Ｓ２０２：Ｎ）、台車押しの確度の値ｃａｒｔを０にして（Ｓ２１０）、非歩行と判定する（Ｓ２１１）。
【００５６】
一方、サブマイコン１０４は、Ｓ２０２において歩行中であると判定した場合（Ｓ２０２：Ｙ）、ヨー軸周りの角速度ωｙの絶対値が所定の閾値よりも大きいか否かを判定する。角速度ωｙの絶対値が所定の閾値よりも大きい場合（Ｓ２０３：Ｙ）、サブマイコン１０４は、台車押しの確度をＮ１だけ上げる（Ｓ２０４）。Ｓ２０５、Ｓ２０６では、サブマイコン１０４は、台車押しの確度が所定の値Ｎ２より大きくならないよう制限する処理を行う。さらに、Ｓ２０７、Ｓ２０８では、サブマイコン１０４は、台車押しの確度が０でない値を取る場合、台車押しの確度をデクリメントする。そして、サブマイコンは、台車押しの確度が所定の閾値Ｎ３より大きいか否かを判定し（Ｓ２０９）、台車押しの確度がＮ３より大きければ（Ｓ２０９：Ｙ）台車押しと判定し（Ｓ２１３）、台車押しの確度がＮ３以下であれば（Ｓ２０９：Ｎ）歩行中と判定する（Ｓ２１２）。以上の処理により、ユーザのヨー軸周りの角速度ωｙに基づいて台車押しの確度の値を所定の範囲内（０〜Ｎ２）で推移させることで、ユーザが台車を押しているか現在歩行中であるか歩行していないかを判定することができる。
【００５７】
次に、図１１Ａに、ユーザの歩行状態、具体的には歩行時の体の左右のバランスを診断するフローチャートを示す。なお、本フローチャートを実行するにあたり、事前にユーザが歩行中か否かの判定がなされており、サブマイコン１０４は、ユーザが歩行中であると判定された場合に本フローチャートを実行する。また、本フローチャートは、所定のサンプリング間隔で繰り返し実行される。
【００５８】
Ｓ３０１では、サブマイコン１０４は、図８に示すようにユーザのロール軸周りの角速度ωｒに関連する情報を算出する。ここで「関連する」とは、具体的には、上述の通り、角速度ωｒの値は実際のロール軸周りの角速度ではなく、実際のロール軸周りの角速度を定数倍したものであるという意味である。なお、以下では、便宜上角速度ωｒに関連する情報を角速度ωｒとして説明する。次いで処理はＳ３０２に進められる。
【００５９】
Ｓ３０２では、サブマイコン１０４は、現在の角速度ωｒと１サンプリング前の角速度ωｒ'との積が負であるか否かを判定する。なお、ωｒ'は後述のＳ３１０にて代入される値であるが、ωｒ'の初期値は適宜設定することができる。Ｓ３０２の処理においてωｒ
×ωｒ'が負であるということは、図１１Ｂに示すように、ωｒの時間変化を示すグラフ
がゼロクロスしている（ωｒの値の符号が変化する）ことを意味する。そこで、図１１Ｂに示すようにωｒの半周期分の総和、すなわち中心からの移動量と関連する数値をｓｕｍとして、当該グラフがゼロクロスしない（Ｓ３０２：Ｎ）間はｓｕｍにωｒを加算し続ける（Ｓ３０９）。
【００６０】
図１１Ｂに示すように、周期によってはｓｕｍが負の値として積算される場合があるので、グラフがゼロクロスしたときに（Ｓ３０２：Ｙ）、サブマイコン１０４は、Ｓ３０３でｓｕｍの値を正にした後、半周期前の総和ｓｕｍ'との比を取ってバランスを算出する
（Ｓ３０５、Ｓ３０６）。なお、サブマイコン１０４は、Ｓ３０４でｓｕｍとｓｕｍ'の
大きさを判定し、大きい値を小さい値で除算することで、バランスは常に１より大きな値として算出される。したがって、算出された値が１に近づくほど、歩行時における体の左右のバランスがよいといえる。
【００６１】
本フローチャートでは、バランスを算出した後、次回バランス算出のために現在の総和ｓｕｍを前総和ｓｕｍ'に代入し（Ｓ３０７）、現在の総和ｓｕｍにはＳ３０１において
得られたωｒを代入する（Ｓ３０８）。以上の処理により、ユーザのロール軸周りの角速
度に関連する情報の時間変化の周期を利用することで、ユーザの歩行時の体の左右のバランスを診断することができる。なお、上記の処理例では、半周期分の総和を求めているが、総和を求める時間範囲は半周期に限らず適宜決めることができる。また、上記の処理例では、総和の比に基づいて歩行時の体の左右のバランスを算出しているが、図１１Ｂに示すように、グラフの最大値の比（ｈ／ｈ'）や時間の比（ｔ／ｔ'）に基づいてバランスを算出する構成としてもよい。
【００６２】
次に、図１２Ａに、ユーザの歩行時に転倒しそうになる等の異常状態が発生したか否かを判定するフローチャートを示す。なお、本フローチャートを実行するにあたり、事前にユーザが歩行中か否かの判定がなされており、サブマイコン１０４は、ユーザが歩行中であると判定された場合に本フローチャートを実行する。また、本フローチャートは、所定のサンプリング間隔で繰り返し実行される。
【００６３】
図１２Ｂは、携帯電話端末１０のローカル座標系におけるｘ軸とユーザのグローバル座標系におけるピッチ軸とを合わせて、ユーザが歩行した際に転倒しそうになったときのｘ軸周りの角速度の時間変化を示すグラフである。図に示すように、異常状態が発生する、すなわちユーザが転倒しそうになると、それまでの歩行状態における角速度の変化に比べて角速度が特徴的な変化を示すことがわかる。そこで、サブマイコン１０４は、図１２Ａに示すフローチャートを実行することで、ユーザの歩行中に異常状態が発生したか否かを判定することができる。なお、図１２Ｂでは、説明の便宜上、携帯電話端末１０のローカル座標系におけるｘ軸とユーザのグローバル座標系におけるピッチ軸とを合わせているが、図８を参照しながら説明したように、これらの軸を合わせなくても本フローチャートの処理を正常に実行することができる。
【００６４】
Ｓ４０１では、サブマイコン１０４は、サブマイコン１０４は、図８に示すようにユーザのピッチ軸周りの角速度ωｐに関連する情報を算出する。ここで「関連する」とは、具体的には、上述の通り、角速度ωｐの値は実際のピッチ軸周りの角速度ではなく、実際のピッチ軸周りの角速度を定数倍したものであるという意味である。なお、以下では、便宜上角速度ωｐに関連する情報を角速度ωｐとして説明する。次いで処理はＳ４０２に進められる。
【００６５】
Ｓ４０２では、サブマイコン１０４は、Ｓ４０１で算出したωｐの絶対値ωｐ'を取る
。次いで処理はＳ４０３に進められる。Ｓ４０３では、サブマイコン１０４は、Ｓ４０２で算出したωｐ'にローパスフィルタ（図示せず）を通した結果ψを算出する。なお、ロ
ーパスフィルタの時定数を歩行周期より十分長く設定することで、ψは当該時定数により定まる時間範囲で平均したピッチ軸周りの角速度の振幅値が得られる。次いで処理はＳ４０４に進められる。Ｓ４０４では、サブマイコン１０４は、Ｓ４０２で算出したωｐ'が
、Ｓ４０３で算出した平均角速度の振幅値ψをｋ倍（ｋは正の整数）した値より大きいかどうか判断する。ωｐ'がψのｋ倍より大きければ（Ｓ４０４：Ｙ）、サブマイコン１０
４は、異常状態が発生したと判定する（Ｓ４０５）。ωｐ'がψのｋ倍以下であれば（Ｓ
４０４：Ｎ）、サブマイコン１０４は本フローチャートの処理を終了する。以上の処理により、ユーザのピッチ軸周りの角速度の時間変化を追跡し、当該加速度が異常な変化を示したときを検出してユーザの歩行が異常状態にあるとみなすことができる。
【００６６】
次に、図１３Ａ及び図１３Ｂに、ユーザが、例えばトランクケース等の大きな荷物を片手で持ち上げて歩いているか否かを判定するフローチャートを示す。なお、図１３Ａのフローチャートにおける「１」及び「２」は、それぞれ図１３Ｂのフローチャートの「１」及び「２」と連続している。図１３Ｃは、ユーザが荷物を運搬しているときのユーザのグローバル座標系におけるロール軸周りの角速度の時間変化を示すグラフである。図に示すように、荷物運搬時はロール軸周りの角速度のバランスが悪くなる。具体的には、半周期
にかかる時間や最大振幅に現れる。図では、一方の半周期にかかる時間が他方の半周期にかかる時間より短く、その最大振幅が大きくなっており（「短く大きい」）、他方の半周期においては最大振幅が一方の半周期における最大振幅が小さくなっている（「長く小さい」）。
【００６７】
そこで、本フローチャートでは、ロール軸周りの角速度のバランスを評価することで、ユーザが荷物を片手で持ち上げて歩いているか否かを判定する。なお、本フローチャートを実行するにあたり、事前にユーザが歩行中か否かの判定がなされており、サブマイコン１０４は、ユーザが歩行中であると判定された場合に本フローチャートを実行する。また、本フローチャートは、所定のサンプリング間隔で繰り返し実行される。
【００６８】
Ｓ５０１では、サブマイコン１０４は、図８に示すようにユーザのロール軸周りの角速度ωｒに関連する情報を算出する。ここで「関連する」とは、具体的には、上述の通り、角速度ωｒの値は実際のロール軸周りの角速度ではなく、実際のロール軸周りの角速度を定数倍したものであるという意味である。なお、以下では、便宜上角速度ωｒに関連する情報を角速度ωｒとして説明する。次いで処理はＳ５０２に進められる。
【００６９】
Ｓ５０２では、図１１Ａ及び図１１Ｂに示す場合と同様、ωｒの時間変化を示すグラフがゼロクロスしている（ωｒの値の符号が変化する）か否かを判定する。ゼロクロスが発生していない場合（Ｓ５０２：Ｎ）、カウンタの値ｃｎｔをインクリメントする（Ｓ５０３）。なお、ｃｎｔの値はゼロクロスが発生したときにＳ５１３で０にされる。Ｓ５０３の処理の後、サブマイコン１０４は、Ｓ５０４〜Ｓ５０７において、現在の角速度ωｒの値と本フローチャートを開始してからの角速度ωｒの最大値又は最小値とを比較することで、角速度ωｒの最大値と最小値を求める。Ｓ５０８では、サブマイコン１０４は、現在の角速度ωｒの値を１サンプリング前の角速度ωｒ'の値とする。
【００７０】
Ｓ５０２において、ωｒの時間変化を示すグラフがゼロクロスしている場合（Ｓ５０２：Ｙ）、処理はＳ５０９に進められる。Ｓ５０９〜Ｓ５１１では、ωｒの時間変化における半周期前のカウンタの値ｃｎｔ'と現在のカウンタの値ｃｎｔの比を周期のバランスの
値ｃａｒｒｙ１として計算する。図１３Ｂでは、カウンタの値のうち大きい値を小さい値で除算しており、ｃａｒｒｙ１の値は１より大きい値となるため、ｃａｒｒｙ１の値が１に近づくほどユーザの歩行において体の左右のバランスがよいことがわかる。すなわち、周期のバランスを計算することで、図１３Ｃに示すグラフでいえば、半周期にかかる時間が長短を交互に繰り返しているか否かがわかる。
【００７１】
Ｓ５１２、Ｓ５１３では、半周期前のカウンタの値ｃｎｔ'を現在のカウンタの値で置
き換えた後に現在のカウンタの値ｃｎｔを初期値である０に戻す。次いで処理はＳ５１４に進められる。上述の通り、ωｒは半周期ごとに正と負の値を交互に取る。また、Ｓ５０４〜Ｓ５０７で得られる最大値と最小値は、一方がゼロクロスが発生する直前の半周期におけるωｒの振幅のピークを示し、他方が当該半周期の１つ前の半周期におけるωｒの振幅のピークを示す。そこで、Ｓ５１４〜Ｓ５１６では、これらの最大値と最小値の比を振幅のバランスの値ｃａｒｒｙ２として計算する。Ｓ５１７〜Ｓ５１９では、次回のｃａｒｒｙ２の計算のために、当該半周期の１つ前の半周期におけるωｒの振幅のピークを示す最大値又は最小値を特定して、その値を０にする。
【００７２】
上記の処理によって得られたｃａｒｒｙ１とｃａｒｒｙ２は、それぞれωｒの時間変化のバランスを表している。そして、ｃａｒｒｙ１の場合は閾値Ｔｈ１、ｃａｒｒｙ２の場合は閾値Ｔｈ２と比較し、ｃａｒｒｙ１とｃａｒｒｙ２の一方もしくは両方が閾値より大きい値を取る場合は、バランスが悪い歩行である、すなわちユーザが荷物運搬中である（ここでの例では、荷物を片手で持ち上げて歩いている）と判定する（Ｓ５２０、Ｓ５２１
）。以上の処理により、ユーザのロール軸周りの角速度の各周期の時間幅や各周期における振幅の大きさに基づいて、ユーザの歩行のバランスを評価することで荷物運搬中か否かを判定することができる。
【００７３】
なお、ｃａｒｒｙ１とｃａｒｒｙ２のいずれか一方を用いて荷物運搬中か否かを判定する場合は、他方に関する演算処理は行わなくてもよい。例えばＳ５２０において、ｃａｒｒｙ１を評価する場合、ｃａｒｒｙ２の値を得るための処理（Ｓ５０４〜Ｓ５０７、Ｓ５１４〜Ｓ５１９）は省略できる。逆に、Ｓ５２０においてｃａｒｒｙ２を評価する場合は、ｃａｒｒｙ１を得るための処理（Ｓ５０３、Ｓ５０９〜Ｓ５１３）は省略できる。さらに、上記の処理例では、Ｓ５２０でｃａｒｒｙ１やｃａｒｒｙ２の値が閾値より大きいと判定したときに、Ｓ５２１でユーザは荷物運搬中であると判定しているが、図１０のＳ２０３〜Ｓ２１３に示すように確度の概念を用いて荷物運搬中であるか否かを判定する構成とすることもできる。
【００７４】
次に、第２の実施形態について図面を参照しながら説明する。なお、本実施形態でも、第１の実施形態の携帯電話端末１０と同様の構成を有する携帯端末１０’を使用し、以下の説明では、第１の実施形態と同等の構成は同一の符号を用いて詳細な説明を省略する。第２の実施形態では、四脚動物、一例として馬の歩容を判定する。馬等の四脚動物は、移動速度によって歩容、すなわち走り方・歩き方が変わってくる。図１４に、馬の代表的な歩容、（１）ウォーク（ｗａｌｋ）、（２）トロット（ｔｒｏｔ）、（３）カンター（ｃａｎｔｅｒ）、（４）ギャロップ（ｇａｌｌｏｐ）を示す。図１４では、図中左側に各歩容の馬の脚の位置関係を模式的に示し、各歩容の「１」〜「８」で示す期間における各脚（右前（脚）、左前（脚）、右後（脚）、左後（脚））の接地の有無をそれぞれの模式図の右隣に示す。なお、馬の歩容としては、他にウェイブ、ペース、バウンド等も挙げられるが、図に示す４歩容ほどは一般的でないため、ここでは触れない。
【００７５】
ここで図１４からわかるように、カンターの「７」〜「８」に示す期間、ギャロップの「４」及び「８」に示す期間は馬体が完全に宙に浮いている。また、図１４では、トロットにおいて、「１」や「４」に示す期間では４脚とも接地しているように見えるが、実際のデータを詳細に確認すると、これらの期間では脚の切り替えが素早く行われており、馬体が宙に浮いている時間が存在することがわかっている。
【００７６】
つまり、馬体が宙に浮いているということは、馬体に取り付けられた加速度センサには無重力状態が生じているといえる。したがって、馬が移動している場合に、加速度センサが無重力状態を検知したとき、馬はトロット、カンター、ギャロップのいずれかの状態にあるとみなすことができる。そこで、本実施形態では、携帯電話端末１０を馬の体に取り付け、加速度センサ１１０のセンサ出力を用いて、サブマイコン１０４が馬の歩容を判定する。
【００７７】
図１５に、本実施形態におけるサブマイコン１０４の一部の構成を示す。サブマイコン１０４は、ＬＰＦ１０４ｎ、ＨＰＦ１０４ｏ、内積演算処理部１０４ｐ、１０４ｑを有する。加速度センサ１１０のセンサ出力は、ＬＰＦ１０４ｎ、ＨＰＦ１０４ｏ、内積演算処理部１０４ｑにそれぞれ入力される。また、ＬＰＦ１０４ｎ、ＨＰＦ１０４ｏの各出力は内積演算処理部１０４ｐに入力される。ＬＰＦ１０４ｎ、ＨＰＦ１０４ｏ、内積演算処理部１０４ｐによる一連の処理は、第１の実施形態と同じであるため説明を省略する。ＬＰＦ１０４ｎ、ＨＰＦ１０４ｏからは、重力加速度成分ベクトルＧ’’、振動成分ベクトルＳ’’がそれぞれ出力される。したがって、内積演算処理部１０４ｐからは馬のグローバル座標系における上下方向の振動成分ベクトルの大きさが出力される。一方、内積演算処理部１０４ｑは、加速度センサ１１０のセンサ出力自体について内積演算を施す、すなわちセンサ出力の絶対値の２乗を算出する。なお、内積演算処理部１０４ｑが、絶対値算出
部の一例に相当する。便宜上、内積演算処理部１０４ｐから得られる出力の値をα、内積演算処理部１０４ｑから得られる出力の値をβとする。
【００７８】
図１６Ａ〜図１６Ｃに、上記の処理により得られる値α、βを用いて、馬の歩容を判定するフローチャートを示す。なお、本フローチャートは、図１５に示す処理により得られた値α、βを用いて所定の間隔ごとに繰り返し実行される。Ｓ６０１において、サブマイコン１０４は、内積演算処理部１０４ｐからの出力値αに基づいて歩行中か否か判定する。当該判定処理は周知であるため説明を省略する。馬が歩行中であると判定された場合（Ｓ６０１：Ｙ）、処理はＳ６０２に進められる。また、馬が歩行中でないと判定された場合（Ｓ６０１：Ｎ）、処理はＳ６１９に進められる。Ｓ６１９では、サブマイコン１０４は、トロットの確度ｎ＿ｔｒｏｔ、走行の確度ｎ＿ｒｕｎ、ギャロップの確度ｎ＿ｇａｌｌｏｐを０にした後、馬が歩行中でないと判定 する（Ｓ６２０）。ここで、走行の確度
ｎ＿ｒｕｎとは、後述するように、現在の馬の歩容がトロットもしくはカンターのいずれかであると判定するために用いられる値である。
【００７９】
Ｓ６０２〜Ｓ６０６では、サブマイコン１０４は、馬の歩行周期を算出する。まず、サブマイコン１０４は、上下方向の加速度の値αが極小値を取っているかどうかを判定する（Ｓ６０２）。図１６Ｂに、Ｓ６０２における処理のフローチャートを示す。Ｓ７０１〜Ｓ７０３では、サブマイコン１０４は、上下方向の加速度の値αについて過去３つのサンプルの値を保持する。図中、３つのサンプルの値のうち、時間的に古いものから順に「ｌｅｆｔ」、「ｍｉｄ」、「ｒｉｇｈｔ」とする。Ｓ７０４では、サブマイコン１０４は、３つのサンプルの値のうち「ｍｉｄ」の値が小さいか否かを判定する。厳密には、Ｓ６０２では現在のαの値が極小値であるか否かではなく、１サンプル前のαの値が極小を取ったか否かを判定しているが、原理的には問題ない。なお、Ｓ７０１〜Ｓ７０４の処理でαの値が極小値を取ったか否かを判定するために、αが滑らかな時間変化を示すようＳ７０１〜Ｓ７０４の処理の前に適宜フィルタリングを適用してもよい。
【００８０】
Ｓ６０２において、αが極小値を取っていないと判定された場合（Ｓ６０２：Ｎ）、サブマイコン１０４は、歩行周期のカウンタｃｎｔをインクリメントする（Ｓ６０３）。また、αが極小値を取ったと判定された場合（Ｓ６０２：Ｙ）、サブマイコン１０４は、処理をＳ６０４に進める。αが極小値を取ったと判定されたときの歩行周期のカウンタｃｎｔの値は、αが前回極小値を取ってから今回極小値を取るまでにＳ６０２、Ｓ６０３により積算された値である。したがって、ｃｎｔの値が小さければ、現在の馬の歩容は歩行周期の短いトロットである可能性が高くなる。そこで、ｃｎｔの値が所定の閾値よりも小さい場合（Ｓ６０４：Ｙ）、トロットの確度ｎ＿ｔｒｏｔを値Ｎ１だけ加算する（Ｓ６０５）。Ｓ６０５の処理を行った後及びｃｎｔの値が所定の閾値以上である場合（Ｓ６０４：Ｎ）、ｃｎｔの値を初期値である０に戻す（Ｓ６０６）。
【００８１】
続いて、Ｓ６０７〜Ｓ６１０では、サブマイコン１０４は、内積演算処理部１０４から得られる出力の値βが所定の閾値より小さい場合は（Ｓ６０７：Ｙ）走行の確度ｎ＿ｒｕｎを値Ｎ２だけ加算し（Ｓ６０８）、βが所定の閾値より大きい場合は（Ｓ６０９：Ｙ）ギャロップの確度ｎ＿ｇａｌｌｏｐを値Ｎ３だけ加算する（Ｓ６１０）。次いで処理はＳ６１１に進められる。
【００８２】
Ｓ６１１では、具体的には図１６Ｃに示すように、上記の確度のいずれかをＡとし、上限をＮとした場合に、Ｓ８０１〜Ｓ８０４により値ＡがＮを超えないようにする処理を行う。Ｓ８０１〜Ｓ８０４の処理により、Ｓ６０５、Ｓ６０８、Ｓ６１０により加算された上記の各確度の値は、Ｓ６０４、Ｓ６０７、Ｓ６０９の判定がＮである場合に小さい値となる。すなわち、馬がトロット、カンター、ギャロップのいずれかを止めた後は、時間の経過とともに対応する確度が下がっていく。Ｓ６１１の処理の後、処理はＳ６１２に進め
られる。Ｓ６１２〜Ｓ６１８では、各確度を所定の閾値と比較し、確度が所定の閾値より大きい場合に、現在の馬の歩容がその確度に対応する歩容であると判定する。
【００８３】
図１７に、本実施形態における歩容判定の実験結果の一例を示す。図中、４００のグラフは、取得した加速度センサ１１０のセンサ出力の時系列情報を示す。また、４０１及び４０２のグラフは、図１５に示す処理を行った後の上下振動αと絶対値の２乗βの時間変化をそれぞれ示す。
【００８４】
時刻４０５において、加速度の大きさがＳ６０７で用いられる閾値より小さくなってきている。したがって、Ｓ６０８の処理により走行の確度ｎ＿ｒｕｎが上がってきている（図中４０７）。ここで、４０３のグラフは、上下方向の振動の極小値の間隔４０８をプロットしたものである。時刻４０９以降、歩行周期が短くなってきており（４１０）、Ｓ６０４、Ｓ６０５の処理によりトロットの確度ｎ＿ｔｒｏｔ（４１１）が上がってきている。
【００８５】
時刻４１２において、走行の確度ｎ＿ｒｕｎ及びトロットの確度ｒ＿ｔｒｏｔがＳ６１４及びＳ６１５で用いられる閾値４１３を超えたことから、歩容をトロットと判定している（４１４：ｔｒｏｔ）。また、時刻４１５において歩行周期が長くなってきたため、Ｓ６０４におけるＮの判定及びＳ６１１の処理によりトロットの確度ｎ＿ｔｒｏｔが下がってきているが、まだ閾値４１３より大きいため、歩容はトロットであると判定され続けている。次いで、時刻４１６において、加速度の絶対値の値βが大きくなって閾値４１７に達するようになってきたため、Ｓ６０９及びＳ６１０の処理によりギャロップの確度ｎ＿ｇａｌｌｏｐが上がってきている。そして、時刻４１８において、トロットの確度ｎ＿ｔｒｏｔが閾値４１３より小さくなったため、Ｓ６１４及びＳ６１５の処理により歩容はカンターであると判定される（４１９）。さらに、時刻４２０において、ギャロップの確度ｎ＿ｇａｌｌｏｐがＳ６１２で用いられる閾値を超えたため、歩容はギャロップであると判定される（４２１）。
【００８６】
次に、第３の実施形態について図面を参照しながら説明する。なお、本実施形態でも、第１の実施形態の携帯電話端末１０と同様の構成を有する携帯端末１０’’を使用し、以下の説明では、第１の実施形態と同等の構成は同一の符号を用いて詳細な説明を省略する。第３の実施形態では、一例として馬の手前を判定する。カンターやギャロップでは、馬の左右の脚の動きが非対称であり、前脚のうちどちらをより前に出したかによって、右手前と左手前という区分がある。一般に、馬がトラックを走る場合に、右カーブでは右手前が、左カーブでは左手前がそれぞれ有利と言われているが、人間の右利きと左利きのように、個々の馬によって得意とする手前が異なると言われている。したがって、特に競走馬の世界では歩容に加えて手前という概念も重視されている。そこで、本実施形態では、対象とする運動体（ここでは一例として馬）の現在の利き足を特定する処理を行う。
【００８７】
本実施形態では、図１８に示すように、馬の前両脚の間の胸板に携帯端末１０’’を装着する。したがって、本実施形態では、右脚が前に出るときは携帯端末１０’’が図の矢印の方向に回転し、左脚が前に出るときはその逆の方向に回転する。図１９Ａ及び図１９Ｂに、馬体の上下方向の動きと携帯端末１０’’の回転の関係を示す。図１９Ａは、馬が右手前で移動している場合を示し、図１９Ｂは、馬が左手前で移動している場合を示す。なお、馬は図中の「１」から「８」に順次進んでいく。また、図中、実線が右脚を示し、破線が左脚を示す。
【００８８】
図２０に、本実施形態におけるサブマイコン１０４の一部の構成を示す。本実施形態において、サブマイコン１０４は、ＬＰＦ１０４ｒ、ＨＰＦ１０４ｓ、内積演算処理部１０４ｔ、１０４ｕを有する。加速度センサ１１０のセンサ出力は、ＬＰＦ１０４ｒ、ＨＰＦ
１０４ｓにそれぞれ入力される。また、ＬＰＦ１０４ｒ、ＨＰＦ１０４ｓの各出力は内積演算処理部１０４ｕに入力される。ＬＰＦ１０４ｒの出力は内積演算処理部１０４ｔにも入力される。ＬＰＦ１０４ｒ、ＨＰＦ１０４ｓ、内積演算処理部１０４ｕによる一連の処理は、第１の実施形態と同じであるため説明を省略する。さらに、角速度センサ１１１のセンサ出力が、内積演算処理部１０４ｔに入力される。
【００８９】
内積演算処理部１０４ｔからは、図８を参照しながら説明したように、ここでは馬のグローバル座標系における上下方向の軸周りの角速度が出力される。ＬＰＦ１０４ｒ、ＨＰＦ１０４ｓからは、重力加速度成分ベクトルＧ’’’、振動成分ベクトルＳ’’’がそれぞれ出力される。したがって、内積演算処理部１０４ｕからは馬のグローバル座標系における上下方向の振動成分ベクトルの大きさが出力される。なお、内積演算処理部１０４ｔが、第１の内積値算出部の一例に相当する。便宜上、内積演算処理部１０４ｔから得られる出力の値をγ、内積演算処理部１０４ｕから得られる出力の値をδとする。
【００９０】
図２１は、内積演算処理部１０４ｔから得られる出力の値をγ、内積演算処理部１０４ｕから得られる出力の値をδの時間変化を示すグラフである。馬の上下方向の加速度の変化と手前に応じて、上下方向の振動の変化と回転方向の角速度の変化の位相差が１８０°ずれている。したがって、上下方向の振動成分ベクトルの大きさδの極大極小時に上下方向の軸周りの角速度の大きさγとの積を取り、その値が正か負かを判別することで、上記のずれを検出することができる。
【００９１】
図２２Ａ及び図２２Ｂに、本実施形態における、手前判定のフローチャートを示す。なお、本フローチャートは、図２０に示す処理により得られた値γ、δを用いて所定の間隔ごとに繰り返し実行される。Ｓ９０１では、δが極値を示すか否かを判定する。具体的には、図２２ＢのＳ１００１〜Ｓ１００５の処理によって、δが極値を示すかを判定する。Ｓ１００１〜Ｓ１００５の処理は、図１６Ｂと同様であるため、ここでは説明を省略する。δが極値を示さない場合（Ｓ９０１：Ｎ）、サブマイコン１０４は、γとδの積を演算し、この積をｋとして保持する（Ｓ９１２）。δが極値を示す場合（Ｓ９０１：Ｙ）、サブマイコン１０４は、ｋの値の正負を判定する（Ｓ９０２）。ここで、サブマイコン１０４が保持するｋの値は、Ｓ９０１〜Ｓ９１７の一連の処理を１サイクルとした場合に、１サイクル前の処理でサブマイコン１０４が算出したｋの値である。これは、上述したようにＳ９０２の処理で極値を示すか否かの判定対象となるのは、実際には１サンプル前のｋの値であるためである。
【００９２】
ｋが正の場合（Ｓ９０２：Ｙ）、手前確度ｒｌが左手前らしさを示しているかどうか確認する（Ｓ９０３）。本実施形態では、手前確度ｒｌの値が正の場合に左手前の確度が高く、手前確度ｒｌの値が負の場合は右手間の確度が高いとする。一例として、手前確度ｒｌの値は、その初期値を０とし、Ｓ９０５〜Ｓ９１１の処理により変動する。Ｓ９０３において、手前確度ｒｌが０以上、すなわち左手前らしいのであれば、手前確度ｒｌに値Ｎ４を加算する（Ｓ９０４）。本実施形態では、Ｓ９０５、Ｓ９０６の処理により手前確度ｒｌが値Ｎ５より大きくならないよう制限している。
【００９３】
一方、ｋが正の値で手前確度ｒｌが負の値、すなわち右手前らしさを表している場合（Ｓ９０２：Ｙ、Ｓ９０３：Ｎ）、手前確度ｒｌを２分の１にする（Ｓ９０７）。なお、ｋが負の値の場合も（Ｓ９０２：Ｎ）、図２３Ａに示すように、加算と減算、手前確度ｒｌを−Ｎ５と比較する等の違いはあるものの、Ｓ９０３〜Ｓ９０７と同様の処理をする（Ｓ９０７〜Ｓ９１１）。Ｓ９０６、Ｓ９０７、Ｓ９１１の処理の後、処理はＳ９１２に進められる。さらに、Ｓ９１２の処理の後、処理はＳ９１３に進められる。
【００９４】
Ｓ９１３〜Ｓ９１７では、手前確度ｒｌを所定の閾値と比較し、手前確度ｒｌが所定の
閾値より大きければ（Ｓ９１３：Ｙ）、左手前であると判定する（Ｓ９１７）。また、手前確度ｒｌにマイナスを付した値−ｒｌが所定の閾値より小さければ（Ｓ９１４：Ｙ）、右手前であると判定する（Ｓ９１６）。さらに、Ｓ９１３、Ｓ９１４において手前確度ｒｌの値が所定の閾値よりも大きくもなく、−ｒｌが所定の閾値よりも小さくもなければ、手前は不確定であると判定する（Ｓ９１５）。
【００９５】
図２３に、本実施形態における手前判定の実験結果を示す。７０１及び７０２のグラフは、加速度センサのセンサ出力の時間変化を示す。また、７０３及び７０４のグラフは、角速度センサのセンサ出力の時間変化を示す。さらに、７０５、７０６は、図２０に示す処理によって得られた上下方向の軸周りの角速度γと上下方向の振動成分ベクトルの大きさδを示す。なお、図２３に示すように、γとδの値の時間変化が７０５のグラフでは逆位相に、また、７０６のグラフでは同位相になっている。さらに、７０７及び７０８のグラフは、それぞれ手前確度ｒｌの時間変化を示し、７０７のグラフでは時間経過とともに手前確度ｒｌが小さくなり、７０８のグラフでは時間経過とともに手前確度ｒｌが大きくなっている。
【００９６】
図２３に示すように、時刻７０９又は７１０において、Ｓ９１３又はＳ９１４において手前確度ｒｌが閾値７１１又は７１２を越え（Ｓ９１３：Ｙ又はＳ９１４：Ｙ）、それぞれ右手前、左手前と判定されている。そして、その後時刻７１３、７１４において、７０５又は７０６のグラフから分かるようにγとδの位相差が安定しなくなり、このため手前確度が低くなってＳ９１３〜Ｓ９１５の処理により手前が不確定と判定されている。
【００９７】
以上が本実施形態に関する説明であるが、上記の情報処理装置の構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記では、人や馬の歩行や走行を対象に動作状態を判定しているが、判定対象とする運動体は人や馬に限られない。
【００９８】
また、例えば、第１の実施形態のサブマイコン１０４について、ピッチ軸周りの角速度に関連した情報とロール軸周りの角速度に関連した情報を算出する回路として、図２４に示す回路を採用することもできる。図２４に示すように、サブマイコン１０４は、ＬＰＦ１００４ａ、バンドパスフィルタ（ＢＰＦ）１００４ｂ、内積演算処理部１００４ｃ、１００４ｈ、１００４ｊ、１００４ｐ、１００４ｑ、外積演算処理部１００４ｄ、１００４ｉ、乗算部１００４ｅ、１００４ｌ、１００４ｎ、１００４ｏ、符号判定部１００４ｇ、１００４ｍ、移相フィルタ１００４ｋを有する。ここでは、図２４に示す回路の主な特徴について説明する。内積演算処理部１００４ｃからはユーザの上下方向の加速度ベクトルの大きさが出力される。また、内積演算処理部１００４ｊからはユーザの前後方向の加速度ベクトルの大きさが出力される、内積演算処理部１００４ｃの出力に対して移相フィルタ１００４ｋにより所定量位相をずらし、乗算部１００４ｌで内積演算処理部１００４ｊの出力と乗算することで、符号判定部１００４ｍにより、ユーザの前後方向のベクトルＫ及び左右方向のベクトルＨの正負を決定することができる。
【００９９】
したがって、乗算部１００４ｎからは左ベクトルＬが、乗算部１００４ｏからは前ベクトルＦが得られる。なお、図２４に示す回路の初期値次第では、乗算部１００４ｎからは右ベクトルが、乗算部１００４ｏからは後ろベクトルがそれぞれ得られる。さらに、これらのベクトルと角速度センサ１１１のセンサ出力との内積を求めることで、内積演算処理部１００４ｐ、１００４ｑからは、回転方向が確定したピッチ軸周りの角速度に関連した情報とロール軸周りの角速度に関連した情報がそれぞれ出力される。
【０１００】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記情報処理装置の設定
を行うための管理ツール、ＯＳその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。ここで、設定とは、例えばボタン機能の割付等を意味する。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、携帯電話端末等である。
【０１０１】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。
【０１０２】
以上の実施形態に関し、さらに以下の付記を開示する。
【０１０３】
（付記１）
３次元空間の加速度を検出する加速度センサと角速度を検出する角速度センサを有する情報処理装置であって、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するハイパスフィルタと、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との内積値を算出する第１の内積値算出部と、
前記角速度センサのセンサ出力と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との内積値を算出する第２の内積値算出部と、
前記第１の内積値算出部により算出された内積値と前記第２の内積値算出部により算出された内積値を用いて、前記情報処理装置を携帯する運動体の動作状態を特定する動作状態特定部と
を有する情報処理装置。
【０１０４】
（付記２）
前記運動体が歩行する場合に、前記第１の内積値算出部により算出された内積値の時間変化と前記第２の内積値算出部により算出された内積値の時間変化との間の位相差に基づいて、前記運動体の利き足を特定する付記１に記載の情報処理装置。
【０１０５】
（付記３）
前記情報処理装置は、前記加速度センサのセンサ出力の絶対値を取得する絶対値算出部を有し、
前記動作状態特定部は、前記第１の内積値算出部により算出された内積値の時間変化の周期に基づいて特定される前記運動体の移動周期と前記絶対値算出部により算出された絶対値の大きさに基づいて特定される前記運動体に発生した無重力状態の有無とから前記運動体の動作状態を特定する付記１に記載の情報処理装置。
【０１０６】
（付記４）
前記動作状態特定部は、前記運動体が歩行する場合に、前記第２の内積値算出部により算出された内積値の所定期間における積分値に基づいて前記運動体の正面の方位を推定し、前記推定した方位と前記歩行の移動単位の距離により前記運動体の位置を推定する付記
１に記載の情報処理装置。
【０１０７】
（付記５）
前記運動体が左右の手を有し、前記動作状態特定部は、前記運動体が歩行する場合に、前記第１の内積値算出部により算出された内積値と所定の閾値との大小比較に基づいて、前記運動体が左右の手を固定して歩行しているか否かを特定する付記１に記載の情報処理装置。
【０１０８】
（付記６）
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第１の外積算出部と、
前記第１の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第２の外積算出部と、
前記第２の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第３の内積値算出部と
を有し、
前記動作状態特定部は、前記第３の内積値算出部により算出された内積値の所定の周期ごとの総和について、１周期前との総和の比に基づいて前記運動体の移動バランスを特定する
付記１に記載の情報処理装置。
【０１０９】
（付記７）
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第３の外積算出部と、
前記第３の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第４の外積算出部と、
前記第４の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第４の内積値算出部と
を有し、
前記動作状態特定部は、前記第４の内積値算出部により算出された内積値の時間変化における所定の周期ごとの周期の時間幅に基づいて前記運動体の移動バランスを特定する
付記１に記載の情報処理装置。
【０１１０】
（付記８）
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第５の外積算出部と、
前記第５の外積算出部により算出された外積と前記ローパスフィルタにより抽出された重力成分ベクトルの信号との外積を演算する第６の外積算出部と、
前記第６の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第５の内積値算出部と
を有し、
前記動作状態特定部は、前記第５の内積値算出部により算出された内積値の時間変化における所定の周期ごとの振幅の大小に基づいて前記運動体の移動バランスを特定する
付記１に記載の情報処理装置。
【０１１１】
（付記９）
前記情報処理装置は、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記ハイパスフィルタにより抽出された振動成分ベクトルの信号との外積を演算する第７の外積算出部と、
前記第７の外積算出部により算出された外積と前記角速度センサのセンサ出力との内積値を算出する第６の内積値算出部と
を有し、
前記動作状態特定部は、前記第６の内積値算出部により算出された内積値と、前記第６の内積値算出部により算出された内積値の所定時間の平均値との大小関係に基づいて、前記運動体の移動に異常状態が発生したか否かを特定する
付記１に記載の情報処理装置。
【０１１２】
（付記１０）
３次元空間における情報処理装置の加速度及び角速度を検出するステップと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するステップと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するステップと、
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の内積値を算出するステップと、
前記検出された角速度と前記抽出された重力成分ベクトルの信号との第２の内積値を算出するステップと、
前記第１の内積値と前記第２の内積値を用いて、前記情報処理装置を携帯する運動体の動作状態を特定するステップと
を有する情報処理方法。
【０１１３】
（付記１１）
前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第１の内積値の時間変化と前記第２の内積値の時間変化との間の位相差に基づいて、前記運動体の利き足を特定する、付記１０に記載の情報処理方法。
【０１１４】
（付記１２）
前記検出された加速度の絶対値を取得するステップをさらに有し、
前記運動体の動作状態を特定するステップは、前記第１の内積値の時間変化の周期に基づいて特定される前記運動体の移動周期と前記絶対値の大きさに基づいて特定される前記運動体に発生した無重力状態の有無とから前記運動体の動作状態を特定する
付記１０に記載の情報処理方法。
【０１１５】
（付記１３）
前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第２の内積値の所定期間における積分値に基づいて前記運動体の正面の方位を推定し、前記推定した方位と前記歩行の移動単位の距離により前記運動体の位置を推定する付記１０に記載の情報処理方法。
【０１１６】
（付記１４）
前記運動体が左右の手を有し、前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第１の内積値と所定の閾値との大小比較に基づいて、前記運動体が左右の手を固定して歩行しているか否かを特定する付記１０に記載の情報処理方法。
【０１１７】
（付記１５）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の外積を演算するステップと、
前記第１の外積と前記抽出された重力成分ベクトルの信号との第２の外積を演算する
ステップと、
前記第２の外積と前記検出された角速度との第３の内積値を算出するステップと
を有し、
前記運動体の動作状態を特定するステップは、前記第３の内積値の所定の周期ごとの総和について、１周期前との総和の比に基づいて前記運動体の移動バランスを特定する
付記１０に記載の情報処理方法。
【０１１８】
（付記１６）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第３の外積を演算するステップと、
前記第３の外積と前記抽出された重力成分ベクトルの信号との第４の外積を演算するステップと、
前記第４の外積と前記検出された角速度センサとの第４の内積値を算出するステップと
を有し、
前記運動体の動作状態を特定するステップは、前記第４の内積値の時間変化における所定の周期ごとの周期の時間幅に基づいて前記運動体の移動バランスを特定する
付記１０に記載の情報処理方法。
【０１１９】
（付記１７）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第５の外積を演算するステップと、
前記第５の外積と前記抽出された重力成分ベクトルの信号との第６の外積を演算するステップと、
前記第６の外積と前記検出された角速度との第５の内積値を算出するステップと
を有し、
前記運動体の動作状態を特定するステップは、前記第５の内積値の時間変化における所定の周期ごとの振幅の大小に基づいて前記運動体の移動バランスを特定する
付記１０に記載の情報処理方法。
【０１２０】
（付記１８）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第７の外積を演算するステップと、
前記第７の外積と前記検出された角速度との第６の内積値を算出するステップと
を有し、
前記運動体の動作状態を特定するステップは、前記第６の内積値と、前記第６の内積値の所定時間の平均値との大小関係に基づいて、前記運動体の移動に異常状態が発生したか否かを特定する
付記１０に記載の情報処理方法。
【０１２１】
（付記１９）
３次元空間における情報処理装置の加速度及び角速度を検出するステップと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するステップと、
前記加速度センサのセンサ出力から前記加速度センサの振動成分ベクトルの信号を抽出するステップと、
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の内積値を算出するステップと、
前記検出された角速度と前記抽出された重力成分ベクトルの信号との第２の内積値を算出するステップと、
前記第１の内積値と前記第２の内積値を用いて、前記情報処理装置を携帯する運動体の
動作状態を特定するステップと
をコンピュータに実行させるためのプログラム
【０１２２】
（付記２０）
前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第１の内積値の時間変化と前記第２の内積値の時間変化との間の位相差に基づいて、前記運動体の利き足を特定する、付記１９に記載のプログラム。
【０１２３】
（付記２１）
前記検出された加速度の絶対値を取得するステップをさらにコンピュータに実行させ、
前記運動体の動作状態を特定するステップは、前記第１の内積値の時間変化の周期に基づいて特定される前記運動体の移動周期と前記絶対値の大きさに基づいて特定される前記運動体に発生した無重力状態の有無とから前記運動体の動作状態を特定する
付記１９に記載のプログラム。
【０１２４】
（付記２２）
前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第２の内積値の所定期間における積分値に基づいて前記運動体の正面の方位を推定し、前記推定した方位と前記歩行の移動単位の距離により前記運動体の位置を推定する付記１９に記載のプログラム。
【０１２５】
（付記２３）
前記運動体が左右の手を有し、前記運動体の動作状態を特定するステップは、前記運動体が歩行する場合に、前記第１の内積値と所定の閾値との大小比較に基づいて、前記運動体が左右の手を固定して歩行しているか否かを特定する付記１９に記載のプログラム。
【０１２６】
（付記２４）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第１の外積を演算するステップと、
前記第１の外積と前記抽出された重力成分ベクトルの信号との第２の外積を演算するステップと、
前記第２の外積と前記検出された角速度との第３の内積値を算出するステップと
をさらにコンピュータに実行させ、
前記運動体の動作状態を特定するステップは、前記第３の内積値の所定の周期ごとの総和について、１周期前との総和の比に基づいて前記運動体の移動バランスを特定する
付記１９に記載のプログラム。
【０１２７】
（付記２５）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第３の外積を演算するステップと、
前記第３の外積と前記抽出された重力成分ベクトルの信号との第４の外積を演算するステップと、
前記第４の外積と前記検出された角速度センサとの第４の内積値を算出するステップと
をさらにコンピュータに実行させ、
前記運動体の動作状態を特定するステップは、前記第４の内積値の時間変化における所定の周期ごとの周期の時間幅に基づいて前記運動体の移動バランスを特定する
付記１９に記載のプログラム。
【０１２８】
（付記２６）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第５の外積を演算するステップと、
前記第５の外積と前記抽出された重力成分ベクトルの信号との第６の外積を演算するステップと、
前記第６の外積と前記検出された角速度との第５の内積値を算出するステップと
をさらにコンピュータに実行させ、
前記運動体の動作状態を特定するステップは、前記第５の内積値の時間変化における所定の周期ごとの振幅の大小に基づいて前記運動体の移動バランスを特定する
付記１９に記載のプログラム。
【０１２９】
（付記２７）
前記抽出された重力成分ベクトルの信号と前記抽出された振動成分ベクトルの信号との第７の外積を演算するステップと、
前記第７の外積と前記検出された角速度との第６の内積値を算出するステップと、
をさらにコンピュータに実行させ、
前記運動体の動作状態を特定するステップは、前記第６の内積値と、前記第６の内積値の所定時間の平均値との大小関係に基づいて、前記運動体の移動に異常状態が発生したか否かを特定する
付記１９に記載のプログラム。
【符号の説明】
【０１３０】
１０    携帯電話端末
１０’、１０’’    携帯端末
１０４    サブマイコン
１０４ｃ、１０４ｈ、１０４ｒ、１００４ａ    ＬＰＦ
１０４ｄ、１０４ｏ、１０４ｓ  ＨＰＦ
１００４ｂ    ＢＰＦ
１０４ｅ、１０４ｋ、１００４ｄ、１００４ｉ    外積演算処理部
１０４ｊ、１０４ｌ、１０４ｍ、１０４ｐ、１０４ｑ、１０４ｔ、１０４ｕ、１００４ｃ、１００４ｊ、１００４ｐ、１００４ｑ    内積演算処理部
１００４ｌ、１００４ｎ、１００４ｏ    乗算部
１００４ｍ    符号判定部
１０８    ＲＯＭ
１０９    ＲＡＭ
１１０    加速度センサ
１１１    角速度センサ
２０１    内積値算出部
２０２    外積算出部
２０３    絶対値算出部
２０４    動作状態特定部
【図１】
2015084943.tif 000004
【図２】
2015084943.tif 000005
【図３Ａ】
2015084943.tif 000006
【図３Ｂ】
2015084943.tif 000007
【図４Ａ】
2015084943.tif 000008
【図４Ｂ】
2015084943.tif 000009
【図５Ａ】
2015084943.tif 000010
【図５Ｂ】
2015084943.tif 000011
【図６Ａ】
2015084943.tif 000012
【図６Ｂ】
2015084943.tif 000013
【図７】
2015084943.tif 000014
【図８】
2015084943.tif 000015
【図９Ａ】
2015084943.tif 000016
【図９Ｂ】
2015084943.tif 000017
【図１０】
2015084943.tif 000018
【図１１Ａ】
2015084943.tif 000019
【図１１Ｂ】
2015084943.tif 000020
【図１２Ａ】
2015084943.tif 000021
【図１２Ｂ】
2015084943.tif 000022
【図１３Ａ】
2015084943.tif 000023
【図１３Ｂ】
2015084943.tif 000024
【図１３Ｃ】
2015084943.tif 000025
【図１４】
2015084943.tif 000026
【図１５】
2015084943.tif 000027
【図１６Ａ】
2015084943.tif 000028
【図１６Ｂ】
2015084943.tif 000029
【図１６Ｃ】
2015084943.tif 000030
【図１７】
2015084943.tif 000031
【図１８】
2015084943.tif 000032
【図１９Ａ】
2015084943.tif 000033
【図１９Ｂ】
2015084943.tif 000034
【図２０】
2015084943.tif 000035
【図２１】
2015084943.tif 000036
【図２２Ａ】
2015084943.tif 000037
【図２２Ｂ】
2015084943.tif 000038
【図２３】
2015084943.tif 000039
【図２４】
2015084943.tif 000040