説明

状態判定装置および状態判定プログラム

【課題】消費電力を低減させること。
【解決手段】携帯機器100は、マイコン170を有する。マイコン170は、加速度センサ160のセンサ値の低周波数成分と、加速度センサ160のセンサ値の高周波数成分との内積を算出する内積演算部を有する。また、マイコン170は、上記低周波数成分と高周波数成分の外積を算出する外積演算部を有する。マイコン170は、内積演算部の演算結果と、外積演算部の演算結果とを基にして、携帯機器100の状態を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態判定装置等に関する。
【背景技術】
【0002】
近年の携帯機器は非常に高性能化してきており、様々な機能を有している。例えば、携帯機器は、通話するための機能、インターネットをブラウズするための機能、ゲーム機能等を有している。
【0003】
また最近の携帯機器には、加速度センサが取り付けられている。携帯機器は、加速度センサから出力されるセンサ値に基づいて、携帯機器が今どのような状態であるのかを判定する。例えば、携帯機器の状態とは、携帯機器を保持するユーザが歩いている状態や、ユーザが電車、バス、自動車等に乗っている状態に対応する。以下において、携帯端末が状態を認識することを状態認識と表記する。この状態認識は、ライフログやコンテキスト連動サービスなどのアプリに利用される。
【0004】
ここで、携帯機器は、一つ以上のメインCPU(Central Processing Unit)を有しており、このメインCPUが上述した各種の機能を担う。
【0005】
しかし、メインCPUは高性能であるが故に、消費電力が大きいという欠点がある。携帯機器はバッテリーで駆動するため、携帯機器をできるだけ長く駆動させるためには、メインCPUの消費電力をできるだけ低減させることが求められる。このため、従来の携帯機器は、メインCPUの状態を通常時には休止状態としておき、必要なときにだけメインCPUを稼働させている。
【0006】
携帯機器は、必要最小限の機能を持ったマイコンを有している。メインCPUの状態が休止状態の場合には、携帯機器はマイコンを稼働させ、メインCPUの代わりをさせる。このマイコンは、メインCPUと比較して性能は低いが、消費電力も低い。このため、メインCPUの機能の一部の処理を代わりに実行させることで、消費電力を低下させることができる。このマイコンが得意とする演算は、整数の四則演算、メモリ操作、整数の大小比較、条件分岐である。整数の四則演算は、加算、減算、積算、除算である。
【0007】
また、マイコンは、平方根や三角関数を扱う演算を得意としないが、演算することはできる。例えば、xの平方根rを求める場合には、下記の式(1)の演算を繰り返し実行すればよい。このような演算を実行することで、マイコンは、演算時間はかかるものの平方根を求めることができる。
r=(x/r+r)×0.5・・・(1)
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平6−324067号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来技術では、マイコンがメインCPUの代わりに状態認識を行うことができず、消費電力を低減させることができないという問題があった。
【0010】
状態認識を行うためには、例えば、三角関数の演算が必要となる。非力なマイコンは、三角関数の演算を得意としないため、演算結果を得るまでに時間がかかってしまう。状態認識を行う場合には、迅速に状態を判定することが求められるため、演算時間の長いマイコンを用いることができず、メインCPUを動作させ、状態認識を行う他なかった。また、状態認識は、常時行うことが多い。このため、メインCPUを継続的に動作させることになり、消費電力を低減させることができなかった。
【0011】
開示の技術は、上記に鑑みてなされたものであって、消費電力を低減させることができる状態判定装置および状態判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
開示の状態判定装置は、加速度センサの出力値の低周波数成分と、加速度センサの出力値の高周波数成分との内積を算出する内積演算部を有する。また、開示の装置は、低周波数成分と、高周波数成分との外積を算出する外積演算部を有する。また、開示の装置は、内積演算部の計算結果と、外積演算部の計算結果とを基にして、移動状態を判定する状態判定部を有することを要件とする。
【発明の効果】
【0013】
開示の状態判定装置によれば、消費電力を低減させることができる。
【図面の簡単な説明】
【0014】
【図1】図1は、本実施例にかかる携帯機器の構成を示す図である。
【図2】図2は、鉛直方向の加速度の大きさと水平方向の加速度の大きさを示す図である。
【図3】図3は、鉛直方向の加速度の大きさと水平方向の加速度の大きさとの関係を示す図である。
【図4】図4は、Zn−GおよびRを内積と外積で得る原理について説明するための図である。
【図5】図5は、マイコンの構成を示す図である。
【図6】図6は、RからRaveが生成されるまでの信号の変化を示す図である。
【図7】図7は、LPFの構成を示す機能ブロック図である。
【図8】図8は、HPFの構成を示す図である。
【図9】図9は、本実施例にかかるマイコンの処理手順を示すフローチャートである。
【図10】図10は、LPFの処理手順を示すフローチャートである。
【図11】図11は、角度pおよび角度rと重力ベクトルXgとの関係を示す図である。
【図12】図12は、加速度センサの座標系と重力方向および鉛直進行方向の座標系とを示す図である。
【発明を実施するための形態】
【0015】
実施例の説明を行う前に、発明者が考案した、マイコンによる状態認識の方法について説明する。なお、以下に説明する方法は、周知技術ではない。
【0016】
携帯機器がどのような姿勢で把持されているのか不明な場合には、加速度センサの座標系で出力されたセンサ値を重力方向と水平方向の座標系に変換する。以下に、加速度センサの座標系で出力されたセンサ値を、重力方向と水平方向の座標系に変換する処理を示す。また、以下ではセンサ値を加速度ベクトルとして説明する。
【0017】
まず、加速度センサの座標系から見た重力方向を推定する。加速度センサは加速度を検知するものなので、当然重力加速度も検出する。このため、加速度センサが静止している場合には、加速度センサは重力ベクトルと等しい値を出力する。ここで、重力ベクトルは、重力加速度のベクトル表記であり、大きさは1Gと等しい。
【0018】
携帯機器を動かすと、加速度センサが出力する加速度ベクトルXsは動きに応じた値となる。この加速度ベクトルXsに時定数の大きなローパスフィルタをかけることで、重力ベクトルXgを得ることができる。この重力ベクトルXgを求める演算は、例えば、式(2)を演算することと等しい。
Xg=kXs+(1−k)Xg・・・(2)
【0019】
式(2)のkは、0〜1に含まれる定数であり、kの値は時定数によって決まる。時定数が大きいほど、kの値は小さくなる。また、加速度ベクトルXsを式(3)に示すものとし、重力ベクトルを式(4)に示すものとする。
Xs=(xs、ys、zs)・・・(3)
Xg=(xg、yg、zg)・・・(4)
【0020】
続いて、加速度ベクトルXsを鉛直方向と鉛直方向に垂直な2軸で表現された座標系でどのように見えるのかを演算する。加速度センサの座標系から見た重力ベクトルXgに対し、図11に示す角度pと角度rとを定義する。図11は、角度pおよび角度rと重力ベクトルXgとの関係を示す図である。
【0021】
図11において、線分1aは、重力ベクトルXgをxz平面に射影した線分である。角度pは、z軸と線分1aとの間の角度である。角度rは、線分1aと重力ベクトルXgとの間の角度である。このように角度pと角度rを定義すると、以下の式(5)〜(8)が成り立つ。
【数1】

【数2】

【数3】

【数4】

【0022】
式(5)〜(6)の関係から回転行列Rp、Rrを作成することができる。回転行列Rpは、式(9)に示すものとなる。回転行列Rrは、式(10)に示すものとなる。
【数5】

【数6】

【0023】
上記の回転行列Rp、Rrを用いることで、加速度ベクトルXsを、重力方向をz軸とした新しい座標系で表現することができる。新しい座標系の加速度ベクトルを加速度ベクトルXnと表記する。加速度ベクトルXnと、回転行列Rp、Rr、加速度ベクトルXsとの関係は、式(11)に示すものとなる。なお、加速度ベクトルXnは、式(12)で表される。
Xn=Rp−1Rr−1Xs・・・(11)
Xn=(xn、yn、zn)・・・(12)
【0024】
加速度ベクトルXnのx、y、z成分のうち、x、y成分が水平方向の成分となる。また、z成分が鉛直方向の成分となる。ここで、加速度ベクトルXnのx、y成分は、携帯機器を保持するユーザの進行方向と必ずしも一致していない。
【0025】
このため、x、y成分の加減速パターンから適当なアルゴリズムを用いて、x、y成分と真の進行方向とのずれを算出する。真の進行方向とx、y成分とのずれをyawとする。例えば、大きく長い加速度が発生する方向を進行方向とし、この進行方向を基にしてyawを算出する。得られたyawを用いて式(9)、(10)と同様に適当な三角関数の演算を行えばz軸周りの回転行列を導出できる。そこからRyaw−1Xnを演算することで、z軸が鉛直方向、x軸が進行方向、y軸が進行方向および鉛直方向と垂直な方向の座標系から、加速度センサが得た加速度ベクトルがとのように見えるか知ることができる。
【0026】
図12は、加速度センサの座標系と重力方向および鉛直進行方向の座標系とを示す図である。図12において、座標系10で表現された加速度ベクトルXsを座標系11の表現に変換するためには、式(11)で求めたXnに対し、座標系11のZ軸周りにyawだけ回転させればよい。この演算が前段落でき記述したRyaw−1Xnであり、式(11)と合わせるとRyaw−1Rp−1Rr−1Xsと表現できる。このようにして求めた座標系11で表現された加速度ベクトルに基づいて、状態認識は行われる。
【0027】
上記のように、状態認識を行うためには、加速度センサの座標系で出力されたセンサ値を重力方向と水平方向の座標系に変換することになる。そして、重力方向と水平方向の座標系に変換するためには、yawおよびRyawを算出することになる。このyawおよびRyawを算出するためには、マイコンが苦手とする三角関数の演算が必要となる場合がある。なお、テーブル参照法やテーラ展開などを用いれば、マイコンは、三角関数の演算を行うことはできるが、メモリの消費量や繰り返し演算などマイコンにかかる負荷が大きく、演算時間も長くなってしまう。
【0028】
続いて、本願の開示する状態判定装置および状態判定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0029】
本実施例にかかる携帯機器の構成について説明する。携帯機器は、状態判定装置の一例である。図1は、本実施例にかかる携帯機器の構成を示す図である。図1に示すように、この携帯機器100は、無線受信モジュール110、入力装置120、マイク130、ディスプレイ140、スピーカ150、加速度センサ160、マイコン170、メインCPU180、記憶部190を有する。
【0030】
無線受信モジュール110は、例えば、他の携帯機器や無線基地局と通信を行う装置である。入力装置120は、携帯機器に各種の情報を入力する入力装置である。ユーザは、この入力装置120を操作して、データを携帯機器に入力する。入力装置120は、入力ボタンやタッチパネルに対応する。マイク130は、例えば、ユーザの音声を集音してメインCPU180に出力する装置である。
【0031】
ディスプレイ140は、メインCPU180から出力されるデータを表示する装置である。スピーカ150は、メインCPU180から取得するデータに応じて、音声や音楽などを出力する装置である。加速度センサ160は加速度を測定し、測定結果となるセンサ値をマイコン170に出力する。
【0032】
マイコン170は、センサ値を基にして携帯機器の状態認識を行う装置である。本実施例にかかるマイコン170は、上記に示したような三角関数を用いた演算を行わず、マイコンの得意な演算を利用して状態認識を行う。マイコン170は、状態認識の結果をメインCPU180に出力する。
【0033】
メインCPU180は、例えば、通信機能、通話機能、インターネットブラウズ機能、マルチメディア機能などを有する装置である。また、メインCPU180は、例えば、状態認識の結果の履歴を記憶部190に記憶する。記憶部190は、各種のデータを記憶する記憶装置である。メインCPU180は、消費電力を抑えるため常時稼働することはなく、必要な場合にだけ稼働し、各種の処理を実行するものとする。例えば、入力装置120からの入力を受け付けた場合に、メインCPU180は動作を開始し、所定の処理が終了した後に休止状態となる。
【0034】
次に、図1に示したマイコン170について具体的に説明する。このマイコン170は、センサ値に基づいて、鉛直方向の加速度の大きさと水平方向の加速度の大きさを求め、状態認識を行う。この鉛直方向の加速度の大きさを求める演算や、水平方向の加速度の大きさを求める演算は、マイコンの不得意な三角関数の演算等を含まない。
【0035】
状態認識を厳密に行う場合には、前述のように三角関数の演算を行うこととなるが、鉛直方向の加速度の大きさと水平方向の加速度とを用いるだけで、状態認識を十分な精度で行うことができる。
【0036】
図2は、鉛直方向の加速度の大きさと水平方向の加速度の大きさを示す図である。図2において、Zn−Gは、鉛直方向の加速度の大きさを示す。Rは、水平方向の加速度の大きさを示す。Xsは、加速度ベクトルを示す。Xgは、重力ベクトルを示す。重力ベクトルXgの大きさをGとする。
【0037】
図3は、鉛直方向の加速度の大きさと水平方向の加速度の大きさとの関係を示す図である。図3において、ベクトルXmは、加速度ベクトルXsから重力ベクトルXgを引いたものに対応する。重力ベクトルXgとベクトルXmとのなす角をθとすると、鉛直方向の加速度の大きさZn−Gは、式(13)のように示される。また、水平方向の加速度の大きさは、式(14)のように示される。
Zn−G=|Xm|cosθ・・・(13)
R=|Xm|sinθ・・・(14)
【0038】
上記の式(13)および式(14)は、三角関数を用いなくても重力ベクトルXgとベクトルXmを利用することで算出することができる。具体的に、式(13)の計算は、重力ベクトルXgとベクトルXmとの内積を計算することに等しい。また、式(14)の計算は、重力ベクトルXgとベクトルXmの外積を計算することに等しい。
【0039】
ここで、Zn−GおよびRを内積と外積で得る原理について説明する。図4は、Zn−GおよびRを内積と外積で得る原理について説明するための図である。
【0040】
まず、重力ベクトルXgおよびベクトルXmの内積から、Zn−Gを求める原理について説明する。重力ベクトルXgおよびベクトルXmの内積は、各ベクトルの成分を積和することで求められ、その値は|Xg||Xm|cosθに等しいことが知られている。例えば、重力ベクトルXgの成分を(xg、yg、zg)、ベクトルXmの成分を(xn、yn、zn)とすると、式(15)が成り立つ。また、Xgの大きさが1Gであることに着目すると、加速度の単位をGとすれば式(15)は式(16)と等しいこととなる。
【数7】

【数8】

【0041】
式(16)の右辺と、式(13)の右辺は等しいので、重力ベクトルXgおよびベクトルXmの内積から、Zn−Gの大きさを求めることができる。Zn−Gの大きさは、図4の20aに対応する。
【0042】
次に、重力ベクトルXgおよびベクトルXmの外積から、Rを求める原理について説明する。重力ベクトルXgおよびベクトルXmの外積は、各ベクトルの成分を積差することで求められ、その大きさは図4に示す平行四辺形の面積20bと等しい。平行四辺形の面積20bは、底辺20cを重力ベクトルXgの大きさ|Xg|とし、高さ20dを|Xm|sinθとすると、式(17)によって求められる。また、Xgの大きさが1Gであることに着目すると、加速度の単位をGで表現すると式(17)は式(18)と等しいこととなる。
S=|Xg||Xm|sinθ・・・(17)
S=|Xm|sinθ・・・(18)
【0043】
式(18)の右辺と、式(14)の右辺は等しいので、重力ベクトルXgおよびベクトルXmの外積から、Rのベクトル値を求めることができる。Rのベクトル値から平方根の演算を使うことなく、Rの大きさを求める方法は後述する。
【0044】
以上、鉛直方向の加速度の大きさと水平方向の加速度の大きさをベクトルの内積および外積で求められることを示した。次に、マイコン170の構成について説明する。図5は、マイコンの構成を示す図である。図5に示すように、このマイコン170は、LPF171a、171bと、演算部172と、内積演算部173と、外積演算部174と、変換部175、HPF176と、絶対値抽出部177と、状態判定部178を有する。
【0045】
LPF(Low Pass Filter)171aは、加速度センサ160からセンサ値を取得し、取得したセンサ値の低周波数成分を抽出する装置である。LPF171aは、センサ値の低周波数成分を、演算部172、内積演算部173、外積演算部174に出力する。加速度センサから取得するセンサ値は、上記の加速度ベクトルXsに対応する。また、センサ値の低周波数成分は、上記の重力ベクトルXgに対応する。LPF171aは、低周波数成分算出部の一例である。
【0046】
演算部172は、加速度センサ160から出力されるセンサ値からこのセンサ値の低周波数成分を減算することで、センサ値から高周波数成分を抽出する装置である。センサ値の高周波数成分は、上記のベクトルXmに対応する。演算部172は、センサ値の高周波数成分を、内積演算部173および外積演算部174に出力する。演算部172は、高周波数成分算出部の一例である。
【0047】
内積演算部173は、重力ベクトルXgに対応する低周波数成分と、ベクトルXmに対応する高周波数成分との内積を演算する装置である。内積演算部173は、演算結果を状態判定部178に出力する。内積演算部173の演算結果は、鉛直方向の加速度の大きさ「Zn−G」に対応する。
【0048】
ここで、重力ベクトルXgとベクトルXmとの内積の演算について示す。重力ベクトルXgの成分を(xg、yg、zg)とし、ベクトルXmの成分を(xm、ym、zm)とする。内積演算部173は、式(18a)により、Zn−Gを算出する。
Zn−G=xg×xm+yg×ym+zg×zm・・・(18a)
【0049】
外積演算部174は、重力ベクトルXgに対応する低周波数成分と、ベクトルXmに対応する高周波数成分との外積を演算する装置である。外積演算部174は、演算結果を変換部175に出力する。外積演算部174の演算結果は、水平方向の加速度ベクトルに対応する。
【0050】
ここで、重力ベクトルXgとベクトルXmとの外積の演算について示す。重力ベクトルXgの成分を(xg、yg、zg)とし、ベクトルXmの成分を(xm、ym、zm)とする。外積演算部174は、式(19)により、水平方向の加速度ベクトルを算出する。
水平方向の加速度ベクトル=(yg×zm−zg×ym、zg×xm−xg×zm、xg×ym−yg×xm)・・・(19)
【0051】
変換部175は、水平方向の加速度ベクトルをスカラー値に変換する装置である。水平方向の加速度ベクトルの成分を(x、y、z)とすると、変換部175は、x×x+y×y+z×zを演算する。
【0052】
変換部175が演算したスカラー値は、水平方向の加速度の大きさRを2乗した値「R」に等しい。変換部175は、演算結果をHPF176に出力する。変換部175の演算結果「R」がHPF176、絶対値抽出部177、LPF171bを通過することで、演算結果「R」は、「Rave」となる。「Rave」は、水平方向の加速度ベクトルRに相当する値である。
【0053】
HPF(High Pass Filter)176は、変換部175の演算結果「R」の高周波数成分を抽出する装置である。HPFは、Rの高周波成分を絶対値抽出部177に出力する。
【0054】
絶対値抽出部177は、高周波数成分の絶対値を抽出する装置である。絶対値抽出部177は、高周波数成分の絶対値を、LPF171bに出力する。
【0055】
LPF171bは、絶対値の低周波数成分を抽出する装置である。LPF171bは、絶対値の低周波数成分を状態判定部178に出力する。この絶対値の低周波数成分は、上記のRaveに対応する。
【0056】
図6は、RからRaveが生成されるまでの信号の変化を示す図である。図6において、信号3aは、変換部175の演算結果Rに対応するものである。信号3aがHPF176に入力されることで、信号3aの高周波数成分が抽出され、信号3bとなる。
【0057】
信号3bが絶対値抽出部177に入力されることで、信号3bのマイナス値がプラスに変換され、信号3cとなる。信号3cがLPF171bに入力されることで、信号3cの低周波数成分が抽出され、信号3dとなる。この信号3dが上記のRaveに対応する。
【0058】
状態判定部178は、内積演算部173から出力される値と、LPF171bから出力される値に基づいて状態認識を行い、状態認識の結果をメインCPU180に出力する装置である。上述したように、内積演算部173から出力される値は、鉛直方向の加速度の大きさ「Zn−G」に対応する。また、LFP171bから出力される値は「Rave」に対応する。
【0059】
具体的に、状態判定部178は、「Rave」の値と閾値とを比較して、携帯機器100が乗り物によって移動している可能性があるか否かを判定した後に、「Zn−G」の周波数に応じて、詳細な状態を判定する。以下に、状態判定部178の処理を順に説明する。
【0060】
まず、状態判定部178は、Raveの値と閾値とを比較し、携帯機器100が乗り物によって移動している可能性があるか否かを判定する。Raveの値が閾値以下の場合には、状態判定部178は、歩行者によって移動している可能性があると判定する。Raveは水平方向の加速度の大きさに対応するため、このRaveの値が小さければ、携帯機器の移動はそれほど大きくないため、乗り物で移動していないと推測できる。
【0061】
これに対して、状態判定部178は、Raveの値が閾値以上の場合には、Raveの値が所定の範囲の値であるか否かを判定する。Raveの値が所定の範囲の値である場合には、状態判定部178は、乗り物によって移動している可能性があると判定する。
【0062】
状態判定部178が、歩行者によって移動している可能性があると判定した後の処理について説明する。この場合には、状態判定部178は、Zn−Gの周波数が「1〜3Hz」に含まれるか否かを判定する。状態判定部178は、Zn−Gの周波数が「1〜3Hz」に含まれる場合に、歩行者によって移動していると判定し、判定結果をメインCPU180に出力する。
【0063】
状態判定部178が、乗り物によって移動している可能性があると判定した後の処理について説明する。この場合には、状態判定部178は、Zn−Gの周波数が「1.3〜2.5Hz」に含まれるか否かを判定する。状態判定部178は、Zn−Gの周波数が「1.5〜2.5Hz」に含まれる場合に、バスによって移動していると判定し、判定結果をメインCPU180に出力する。
【0064】
一方、Zn−Gの周波数が「1.3〜2.5Hz」に含まれない場合には、状態判定部178は、Zn−Gの周波数が「2.5〜3Hz」に含まれるか否かを判定する。状態判定部178は、Zn−Gの周波数が「2.5〜3Hz」に含まれる場合に、電車によって移動していると判定し、判定結果をメインCPU180に出力する。
【0065】
一方、Zn−Gの周波数が「2.5〜3Hz」に含まれない場合には、状態判定部178は、Zn−Gの周波数が「3〜6.3Hz」に含まれるか否かを判定する。状態判定部178は、Zn−Gの周波数が「3〜6.3Hz」に含まれる場合に、自動車によって移動していると判定し、判定結果をメインCPU180に出力する。状態判定部178がZn−Gの周波数と比較する閾値は、管理者が適宜変更しても構わない。
【0066】
なお、状態判定部178は、Zn−Gの周波数を求める場合には、Zn−Gのピーク値から次ぎのピーク値までのサンプリング数を求め、このサンプリング数と、予め定められたサンプリング周期とを乗算することで、周波数を求める。サンプリング数をn、サンプリングの半周期をTとすると、Zn−Gの周波数Fは、式(20)によって求められる。
F=1/2Tn・・・(20)
【0067】
状態判定部178が、ピーク値を判定する処理の一例について説明する。状態判定部178は、Zn−Gの値、Z1の値、Z2の値を比較する。ここで、Z1の値は、1つ前のZn−Gの値に対応する。Z2の値は2つ前のZn−Gの値に対応する。状態判定部178は、「Z2<Z1」かつ「Zn−G<Z1」となる場合、または、「Z1<Z2」かつ「Z1<Zn−G」となる場合にZ1の値をピーク値と判定する。
【0068】
次に、図5に示したLPF171aの構成について説明する。図7は、LPFの構成を示す機能ブロック図である。図7に示すように、LPF171は、データ取得部30、記憶部31、平均化部32を有する。
【0069】
データ取得部30は、加速度センサ160からセンサ値を取得し、センサ値を記憶部31に記憶する装置である。
【0070】
記憶部31は、N個の記憶領域DIM[i]を有する。例えば、記憶部31は、センサ値を記憶領域DIM[0]、DIM[1]、・・・、DIM[N−1]に順次記憶する。また、記憶部31は、記憶領域DIM[i]の全てにセンサ値が記憶された後に、新たなセンサ値を記憶する場合には、DIM[i]のうち、最古のセンサ値を記憶するDIM[i]に新たなセンサ値を順次記憶する。
【0071】
平均化部32は、記憶部31の各DIM[i]に記憶されたセンサ値の平均値を算出し、算出した平均値を演算部172、内積演算部173、外積演算部174に出力する。
【0072】
なお、図5に示したLPF171bの構成は図7に示したLPF171aの構成と同様である。ただし、LPF171bが取り扱うデータは、絶対値抽出部177から出力されるデータである。
【0073】
次に、図5に示したHPF176の構成について説明する。図8は、HPFの構成を示す図である。図8に示すように、このHPF176は、LPF171c、演算部172aを有する。
【0074】
LPF171cは、変換部175から出力されるデータから低周波数成分を抽出する。LPF171cは、低周波数成分を演算部172aに出力する。LPF171cの構成は、図7に示したLPF171aの構成と同様である。
【0075】
演算部172aは、変換部175から出力されたデータから、このデータの低周波数成分を減算することで、データから高周波数成分を抽出する装置である。演算部172aは、データの高周波数成分を絶対値抽出部177に出力する。
【0076】
次に、本実施例にかかるマイコン170の処理手順について説明する。図9は、本実施例にかかるマイコンの処理手順を示すフローチャートである。図9に示す処理は、例えば、マイコン170が持つタイマ割り込み機能により実行される。
【0077】
図9に示すように、マイコン170は、センサ値を取得し(ステップS101)、フィルタ処理を実行し(ステップS102)、Zn−GおよびRaveを算出する(ステップS103)。ステップS102,S103の処理は、図5のLPF171a,171b、演算部172、内積演算部173、外積演算部174、変換部175、HPF176、絶対値抽出部177が実行する処理に対応する。
【0078】
マイコン170は、Z1がピーク値ではない場合には(ステップS104,No)、nに1を加算する(ステップS105)。マイコン170は、Z2にZ1の値を代入し、Z1にZn−Gの値を代入し(ステップS106)、ステップS101に再度移行する。
【0079】
ところで、ステップS104において、Z1がピーク値の場合には(ステップS104,Yes)、マイコン170は、1/2Tnを計算することで周波数Fを算出する(ステップS107)。
【0080】
マイコン170は、Raveの値が閾値以下である場合には(ステップS108,Yes)、周波数Fの値が1〜3Hzに含まれるか否かを判定する(ステップS109)。マイコン170は、周波数Fの値が1〜3Hzに含まれる場合には(ステップS109,Yes)、状態を「歩行」と判定し(ステップS110)、ステップS118に移行する。一方、マイコン170は、周波数Fの値が1〜3Hzに含まれない場合には(ステップS109,No)、ステップS118に移行する。
【0081】
ところで、ステップS108において、Raveの値が閾値より大きい場合には(ステップS108,No)、Raveの値が所定の範囲の値か否かを判定する(ステップS111)。マイコン170は、Raveの値が所定の範囲の値の場合には(ステップS111,Yes)、周波数Fの値が1.3〜2.5Hzに含まれるか否かを判定する(ステップS112)。
【0082】
周波数Fの値が1.3〜2.5Hzに含まれる場合には(ステップS112,Yes)、マイコン170は、状態を「バスで移動」と判定し(ステップS113)、ステップS118に移行する。一方、周波数Fの値が1.3〜2.5Hzに含まれない場合には(ステップS112,No)、マイコン170は、周波数Fの値が2.5Hz〜3Hzに含まれるか否かを判定する(ステップS114)。
【0083】
周波数Fの値が2.5Hz〜3Hzに含まれる場合には(ステップS114,Yes)、マイコン170は、状態を「電車で移動」と判定し(ステップS115)、ステップS118に移行する。一方、周波数Fの値が2.5Hz〜3Hzに含まれない場合には(ステップS114,No)、マイコン170は、周波数Fの値が3Hz〜6.3Hzに含まれるか否かを判定する(ステップS116)。
【0084】
周波数Fの値が3Hz〜6.3Hzに含まれる場合には(ステップS116,Yes)、状態を「自動車で移動」と判定し(ステップS117)、nを0に設定し(ステップS118)、ステップS105に移行する。一方、周波数Fの値が3Hz〜6.3Hzに含まれない場合には(ステップS116,No)、ステップS118に移行する。また、ステップS111において、Raveの値が所定の範囲の値でない場合には(ステップS111,No)、マイコン170は、ステップS118に移行する。
【0085】
なお、マイコン170は、ステップS103において、Zn−GおよびRaveを算出した後に、Zn−GおよびRaveの低周波数成分を算出し、これを利用しても良い。このように、マイコン170が低周波数成分を算出することで、Zn−GおよびRaveのノイズを除去することができる。また、歩行、バス、電車、自動車の特徴量がそれぞれ強調されるように各乗り物個別にフィルタ定数を調整し、各乗り物専用のZn−G、Raveを算出し、判定に用いても良い。
【0086】
次に、本実施例にかかるLPF171aの処理手順について説明する。図10は、LPFの処理手順を示すフローチャートである。図10に示す処理は、例えば、LPF171aが加速度センサ160からセンサ値を取得したことを契機に実行される。
【0087】
図10に示すように、LPF171aは、センサ値を取得し(ステップS201)、iに1を加算する(ステップS202)。LPF171aは、iの値がNの値以上の場合には(ステップS203,Yes)、iの値を0に設定し(ステップS204)、ステップS205に移行する。
【0088】
一方、LPF171aは、iの値がNの値未満の場合には(ステップS203,No)、合計値SUMからDIM[i]の値を減算し(ステップS205)、DIM[i]にセンサ値を登録する(ステップS206)。
【0089】
LPF171aは、合計値SUMにDIM[i]の値を加算し(ステップS207)、合計値SUMをNで割った値を出力する(ステップS208)。
【0090】
次に、本実施例にかかる携帯機器100の効果について説明する。携帯機器100の状態を判定するためには、鉛直方向の加速度の大きさと水平方向の加速度の大きさを求めればよい。ここで、鉛直方向の加速度の大きさは、センサ値の低周波数成分と高周波数成分との内積により求めることができる。また、水平方向の加速度の大きさは、センサ値の低周波数成分と高周波数成分との外積により求めることができる。内積および外積の演算は、マイコン170の得意な四則演算である。このため、本実施例にかかる携帯機器100のマイコン170は、メインCPU180に頼らなくても、上記内積および外積の演算を行い、演算結果から状態認識を行うことができる。従って、携帯機器100の状態認識を行う場合に、メインCPU180を常時動作しなくてもよくなり、携帯機器100の消費電力を低減させることができる。
【0091】
また、携帯機器100のLPF171aは、加速度センサ160から出力するセンサ値を平均化することで、センサ値の低周波数成分を算出する。また、演算部172は、センサ値からLPF171aの低周波数成分を減算することで、センサ値の高周波数成分を算出する。このため、簡単な四則演算により、センサ値の低周波数成分および高周波数成分を算出することができるため、マイコン170の回路構成を単純にできる。
【0092】
また、携帯機器100のマイコン170は、Zn−Gのピーク値を求め、ピーク値間のサンプリング数を基にして、鉛直方向の振動数を算出し、各閾値と比較して状態を判定する。このため、マイコン170は、複雑な演算を行うことなく振動数を算出することができ、閾値比較も処理負荷が小さいため、遅延することなく携帯機器100の状態を判定することができる。
【0093】
また、携帯機器100のマイコン170は、Raveの値を基にして、携帯機器100が乗り物によって移動しているか否かを判定する。このため、マイコン170は、鉛直方向の振動数が、歩行している場合の振動数と、バスや電車に乗っている場合の振動数が類似している場合でも、正確に状態を判定することができる。
【0094】
ところで、図1に示した携帯機器100の構成や、図5に示したマイコン170の構成は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、図5に示す例では、マイコン170は、LPF171a、171b、HPF176を有している。しかし、LPFやHPFをマイコン170以外の外部チップで実現しても良い。
【0095】
また、LPF171a,171b、内積演算部173、外積演算部174、HPF176、絶対値抽出部177、状態判定部178は、集積装置に対応する。この集積装置は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)に対応する。また、図5に示した各装置の機能をプログラムで実現させても良い。
【0096】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0097】
(付記1)加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出する内積演算部と、
前記低周波数成分と、前記高周波数成分との外積を算出する外積演算部と、
前記内積演算部の算出結果と、前記外積演算部の算出結果とを基にして、移動状態を判定する状態判定部と
を有することを特徴とする状態判定装置。
【0098】
(付記2)前記加速度センサの出力値を平均化することで、前記低周波数成分を算出する低周波数成分算出部と、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出する高周波数成分算出部とを更に有することを特徴とする付記1に記載の状態判定装置。
【0099】
(付記3)前記状態判定部は、前記内積演算部の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積演算部の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第1の閾値とを比較することで、前記移動状態を判定することを特徴とする付記1または2に記載の状態判定装置。
【0100】
(付記4)前記状態判定部は、前記外積演算部の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第2の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第1の閾値とを比較して乗り物の種別をさらに判定することを特徴とする付記1、2または3に記載の状態判定装置。
【0101】
(付記5)コンピュータに、
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出し、
前記低周波数成分と、前記高周波数成分との外積を算出し、
内積の算出結果と外積の算出結果とを基にして、前記加速度センサの移動状態を判定する処理を実行させる状態判定プログラム。
【0102】
(付記6)前記加速度センサの出力値を平均化することで、前記低周波数成分を算出し、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出することを特徴とする付記5に記載の状態判定プログラム。
【0103】
(付記7)前記内積の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第1の閾値とを比較することで、前記移動状態を判定することを特徴とする付記5または6に記載の状態判定プログラム。
【0104】
(付記8)前記外積の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第2の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第1の閾値とを比較して乗り物の種別をさらに判定することを特徴とする付記5、6または7に記載の状態判定プログラム。
【符号の説明】
【0105】
100 携帯機器
120 入力装置
130 マイク
140 ディスプレイ
150 スピーカ
160 加速度センサ
170 マイコン
180 メインCPU

【特許請求の範囲】
【請求項1】
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出する内積演算部と、
前記低周波数成分と、前記高周波数成分との外積を算出する外積演算部と、
前記内積演算部の算出結果と、前記外積演算部の算出結果とを基にして、移動状態を判定する状態判定部と
を有することを特徴とする状態判定装置。
【請求項2】
前記加速度センサの出力値を平均化することで、前記低周波数成分を算出する低周波数成分算出部と、前記加速度センサの出力値から前記低周波数成分を減算することで、前記高周波数成分を算出する高周波数成分算出部とを更に有することを特徴とする請求項1に記載の状態判定装置。
【請求項3】
前記状態判定部は、前記内積演算部の算出結果の値が極大点から極小点となるまでのサンプリング数または前記内積演算部の算出結果の極小点から極大点となるまでのサンプリング数を基にして、重力方向の振動数を算出し、該振動数と前記移動状態を識別するための第1の閾値とを比較することで、前記移動状態を判定することを特徴とする請求項1または2に記載の状態判定装置。
【請求項4】
前記状態判定部は、前記外積演算部の算出結果から低周波成分および高周波数成分を取り除いた値と乗り物に乗って移動しているか否かを識別するための第2の閾値とをさらに比較して、乗り物によって移動しているか否かを判定し、乗り物で移動している場合には、前記振動数と前記第1の閾値とを比較して乗り物の種別をさらに判定することを特徴とする請求項1、2または3に記載の状態判定装置。
【請求項5】
コンピュータに、
加速度センサの出力値の低周波数成分と、前記加速度センサの出力値の高周波数成分との内積を算出し、
前記低周波数成分と、前記高周波数成分との外積を算出し、
内積の算出結果と外積の算出結果とを基にして、前記加速度センサの移動状態を判定する処理を実行させる状態判定プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate