以下、本実施形態について説明する。まず、本実施形態の概要を説明し、次に本実施形態のシステム構成例について説明する。そして、本実施形態の手法についての具体例を詳細に説明し、フローチャートを用いて本実施形態の処理の流れについて説明する。最後に、本実施形態の手法の作用と効果についてまとめる。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.概要
まず本実施形態の概要について説明する。近年、歩行する人や走行する車両、飛行する航空機等の位置及び軌跡を推定する手法としてデッドレコニング(DR)が用いられている。これは、GPS(Global Positioning System)等のように絶対的な位置情報を取得する手法とは異なり、既知の初期値に対する変動(移動量)を推定する相対的な位置推定手法である。
歩行する人を対象としてデッドレコニングを行う場合には、その人の所与の部位に加速度センサーを装着し、装着した加速度センサーのセンサー情報に基づいて変動を推定することが考えられる。ただし、デッドレコニングを行うためには、移動した距離だけではなく、進行方向も推定する必要がある。そのため、本実施形態では、より正確に移動体の進行方向を推定することを目的としている。
ここで、歩行者の歩行動作を観察すると、人の歩行は、長いスパンで見ればあたかも等速運動に近いものと捉えられるが、1歩1歩を短いスパンで見れば加速と減速を繰り返す運動となっていることが分かる。
例えば図1は、歩行者が1歩進む間に検出される加速度の様子を模式的なグラフにより表したものである。図1のグラフでは、縦軸が検出加速度の大きさ、横軸がサンプル数を表している。図1では、P6からP3の点までは加速度が小さくなり続けており、P3からP0の点までは加速度が大きくなり続けていることが分かる。また、別の見方をすれば、P6及びP5、P0の点では加速度が正であるため、歩行者が加速しており、P4からP1の点までは加速度が負であるため、歩行者が減速していることが分かる。なお、減速していることを表す加速度と対になる指標を減速度という。
さらに、歩行者の歩行動作を詳細に観察すると、歩行中に検出される加速度において、歩行者の進行方向が最も顕著に現れるのは、加速時、もしくは減速時であることも加えて分かる。また、多くの場合、歩行者は水平方向に進むため、進行方向は検出加速度の水平方向成分に現れることは明らかである。つまり、加速時、もしくは減速時における検出加速度の水平方向成分を知ることができれば、より正確に進行方向を推定できるということになる。
移動体の加減速の変化を捉える具体例として、例えば前述した特許文献1には、検出加速度の水平方向成分(人の前後左右)を求め、求めた検出加速度の水平方向成分のピークを検出し、検出したピーク値を用いて進行方向を推定する手法が開示されている。このように検出加速度の水平方向成分のピークを検出することで、加速と減速の切り替わりを知ることができる。つまり、ピークの前後で加速、減速が発生していることが分かる。なお、検出加速度の水平方向成分は、例えばNED座標を基準としたものであり、これにより北方向を基準とした進行方向を推定することができる。
しかし、歩行による進行方向への加速度の変化は非常に小さく、歩行時の左右へのふらつきなどによる加速度の変化と同程度、またはそれ以下である場合もある。そのため、前述した特許文献1の手法には、左右へのふらつきなどによる加速度の変化と進行方向への加速度の変化とを区別することが難しいという第1の問題点がある。したがって、本来検出したいピークが、ノイズ等によるピークに埋もれてしまう可能性がある。この場合には、正確なピーク検出が難しく、正しい進行方向を推定できないことがある。
また、ピーク検出が正常に行えたとしても、ピーク時の検出加速度の水平方向成分そのものにノイズがのっている可能性もある。そのため、前述した特許文献1の手法には、検出加速度の水平方向成分そのものにノイズがのっている場合にも正確な進行方向の推定が難しくなるという第2の問題点も存在する。ここで、ノイズとは、加速度センサーが持つ特有の初期バイアス(オフセット)成分等のことであり、推定誤差を発生させる原因となるものである。
そこで本実施形態では、加速度のピーク検出において、特許文献1のように検出加速度の水平方向成分のピークを検出したり、他の手法において用いられている周波数解析を行ったりしてピークを検出するのではなく、3軸加速度の合成ベクトルにおけるピークを検出することにより、歩行動作における加減速区間を特定する。
これにより、ピーク検出対象の加速度の大きさに比べて、歩行時の左右へのふらつきなどによる加速度の変化を相対的に小さくして、区別を容易にし、前述した第1の問題点を回避することができる。また、周波数解析等も行わないため、歩行周期の正確さに依存せず進行方向の推定を行うことが可能となる。
さらに、本実施形態では、検出加速度の水平方向成分そのものから進行方向を求めるのではなく、検出加速度の水平方向成分の傾き(単位時間当たりの変化量)から進行方向を推定する。具体的には、後述するように、連続して加速もしくは減速している区間において、水平面上の座標軸であるX軸とY軸それぞれの加速度の傾き(変化量)を求める。例えば図1の検出加速度がX軸方向成分のみを表すものであれば、Δ0〜Δ2が検出加速度のX軸方向成分の変化量に相当する。そして、軸毎に加速度の傾きの変化量の積算値(合計値、積算変化量)を求め、求めた積算変化量に基づいて、進行方向を推定する。
これにより、加速度の初期バイアス成分による推定誤差を除去することができ、前述した第2の問題点を回避して、より正確に加速度のピーク検出等を行うことが可能となる。
2.システム構成例
次に、図2に本実施形態の状態検出装置の構成例を示す。
状態検出装置100は、水平方向成分抽出部110と、進行方向特定部120と、ステップ検出部130と、サンプリング部140と、を含む。なお、状態検出装置100は、図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。また、本実施形態の状態検出装置100の一部又は全部の機能は、状態検出装置を含む電子機器と通信により接続されたサーバーにより実現されてもよい。
また、図2の加速度センサー200は例えば3軸加速度センサーである。加速度センサー200は、例えば外力によって抵抗値が増減する素子等で構成され、三軸の加速度情報を検知する。本実施形態では加速度センサーの装着位置や姿勢に関する自由度が高いことを前提とするため、加速度センサーの座標系と、処理に用いる座標系(例えば重力方向、北方向、東方向を軸とするNED座標系)とは異なることが一般的である。
次に状態検出装置100の各部で行われる処理について説明する。
まず、水平方向成分抽出部110は、加速度センサーから取得される検出加速度に基づいて、検出加速度の水平方向成分を求める。また、水平方向成分抽出部110は、座標変換処理部111を含んでもよい。
座標変換処理部111は、加速度センサーの座標系から、処理に用いる座標系への座標変換処理を行う。具体的に座標変換処理部111は、加速度センサーの座標系から、処理に用いる座標系への変換を行う座標変換行列を求め、当該座標変換行列に基づく変換を行う。座標変換行列は基準姿勢に対する加速度センサー(或いは加速度センサーを搭載した端末)の姿勢に基づいて求められる。姿勢に関する情報は、クォータニオンから求めればよく、クォータニオンは加速度センサーのセンサー情報から求めればよい。なお、クォータニオンを求める際に他のセンサー(例えば地磁気センサーやジャイロセンサー等)のセンサー情報を用いてもよい。また、センサー情報をそのまま用いるのではなく、デッドレコニング等の処理に用いられるカルマンフィルターの出力等を利用することで、より精度の高いクォータニオンを算出することも可能である。
次に、進行方向特定部120は、検出加速度の水平方向成分の変化量特定処理を行い、求めた水平方向成分の変化量の積算処理を行い、積算処理の結果に基づいて進行方向特定処理を行う。また、進行方向特定部120は、変化量特定処理部121や積算処理部123、DC成分抽出処理部125、進行方向特定処理部127を含んでもよい。
変化量特定処理部121は、検出加速度の水平方向成分の変化量特定処理を行う。積算処理部123は、変化量特定処理部121により求められた検出加速度の水平方向成分の変化量の積算処理を行い、積算変化量を求める。DC成分抽出処理部125は、積算処理部123により求められた積算変化量に基づいて、DC成分抽出処理を行う。進行方向特定処理部127は、積算変化量に基づいて進行方向特定処理を行う。また、進行方向特定部120がDC成分抽出処理部125を含む場合には、進行方向特定処理部127は、積算変化量のDC成分に基づいて進行方向特定処理を行う。なお、変化量特定処理や積算処理、DC成分抽出処理、進行方向特定処理の詳細については後述する。
そして、ステップ検出部130は、検出加速度に基づいて歩行又は走行のステップ検出処理を行う。ステップは狭義にはユーザーの歩行又は走行における一歩に相当するものである。詳細については後述する。また、ステップ検出部130は、変化量特定処理部131を含んでもよい。
変化量特定処理部131は、検出加速度の変化量特定処理を行う。なお、変化量特定処理部131は、変化量特定処理部121とは異なり、検出加速度の水平方向成分の変化量ではなく、検出加速度の3軸合成ベクトルの変化量の特定処理を行う。
さらに、サンプリング部140は、進行方向を特定するために用いる検出加速度の選択処理を行う。前述した進行方向特定部120は、サンプリング部140により選択された検出加速度について、進行方向特定処理を行う。
なお、水平方向成分抽出部110と、進行方向特定部120と、ステップ検出部130と、サンプリング部140等の機能は、各種プロセッサー(CPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。また、水平方向成分抽出部110、進行方向特定部120、ステップ検出部130は、図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。
3.本実施形態の手法
次に、本実施形態の手法について説明する。
3.1. 歩行又は走行時の位置と速度と加速度の関係
まず本実施形態の手法の前提として、歩行又は走行時の位置と速度と加速度の関係について、図3(A)〜図3(C)を用いて説明する。図3(A)〜図3(C)は、人の右足の位置に注目したグラフである。
図3(A)に示すように、右足を前に出している区間RST1(又はRST2)では、右足の位置が前に移動する。一方、左足を前に出している区間LST1(又はLST2)では、右足の位置に変化はない。なお、タイミングST1からタイミングED1までの区間RST1、タイミングST2からタイミングED2までの区間LST2が1ステップ(1歩)の区間となる。なおLST1とLST2も左足の1ステップ区間となる。
右足が図3(A)のように移動した時には、右足の速度は図3(B)のようになっている。前述したように、1歩1歩を短いスパンで見た時には、人は加速と減速を繰り返しながら歩行(又は走行)している。さらに詳細に観察すると、区間RST1では点SUP1を、区間RST2では点SUP2を境界(頂点)として加速と減速が切り替わっている。
したがって、右足が図3(A)のように移動した時には、右足の加速度は図3(C)のようになっている。つまり、歩行者の加速度を観察すると、人が1歩踏み出す間(RST1)に、グラフの正方向の加速度のピークAUP1と、負方向の加速度のピークADP1が存在することが分かる。区間RST2においても同様である。
なお、程度の差はあるものの、検出加速度の3軸合成ベクトルの大きさでも、各座標軸成分の大きさでも、歩行時にはこのような傾向が観測される。
3.2. 3軸加速度の合成ベクトルと水平方向成分
次に、歩行時における3軸加速度の合成ベクトルと水平方向成分の関係について説明する。まず、前提として本実施形態では、式(1)に表すような互いに直交するX軸、Y軸、Z軸の3軸の検出加速度を用いる。式(1)においては、xがX軸成分、yがY軸成分、zがZ軸成分を表す。
そして、図4に北向きに歩行したときの加速度合成ベクトル(図4のPower)と、NED座標系における検出加速度の水平方向成分(図4のN成分とE成分)を示す。なお、図4の検出加速度の各成分は、式(1)の検出加速度をNED座標系に座標変換した後の成分に対応する。すなわち、加速度センサーが水平面から傾いて装着又は実装されているような場合には、検出加速度から進行方向を算出する際に、姿勢を現すクォータニオン(姿勢情報)を用いて、端末中心のボディー座標系から地表面中心のワールド(NED)座標系に変換する必要があり、座標変換後の検出加速度の合成ベクトルANEDは、式(2)のようになる。式(2)においては、xNがN軸成分、yEがE軸成分、zDがD軸成分を表す。
図4を見ると、進行方向が北であるため、水平方向成分の加速度がN成分に現れていることが分かる。また合成ベクトルと水平方向成分の関係を見てみると、合成ベクトルのピークA1に対して水平方向成分のピークA3が若干早く現れている。このような関係は、その他のピークにおいても観測することができる。例えば合成ベクトルのピークA2に対して水平方向成分のピークA4が若干早く現れている。なお、図4では、A1はユーザーの足が最も上がったときに対応し、A2は着地のときに対応する。
つまり、3軸加速度合成ベクトルの上ピーク(A1等)を選択開始タイミングとして進行方向への加速度を所定の数だけ検出しようとした場合、進行方向への正の加速度だけでなく、負の加速度(すなわち正の減速度)まで検出してしまう可能性が高い。逆に、下ピーク(A2等)を選択開始タイミングにすれば正の加速度だけを検出することが容易になる。しかし統計的には、歩行動作においては、加速時よりも減速時の方が、より進行方向を強く表す傾向があることが分かった。したがって、より正しい進行方向を推定するためには、3軸加速度の合成ベクトルの上ピークを選択開始タイミングとして、減速度を選択して用いた方が良いと言える。
一方で、3軸加速度の合成ベクトルではなく、水平方向成分の加速度合成ベクトルを用いた方がより簡単に検出できるようにも思えるが、ボディー座標系で検出された加速度を、ワールド座標系の水平方向成分へ変換するためには、前述したように端末の姿勢を用いて座標系を変換する必要がある。このときの姿勢情報に誤差が含まれると、正しくピークを検出できない可能性がある。したがって、3軸加速度合成ベクトルを用いることが望ましい。
3.3. ステップ検出
次に実際のステップ検出部130でのステップ検出処理について説明する。本実施形態ではステップとして信号値のピーク(上ピーク及び下ピーク)を検出する。そして、前述したようにピーク検出の精度を向上させるため、信号値の小さい水平方向成分ではなく、比較的信号値の大きい合成加速度を用いるものとする。
ピーク値の検出手法は任意であるが、例えば図5に示した手法を用いればよい。ステップ検出部130への入力は、加速度センサーでのセンサー情報取得レート(例えば16Hz)に対応するタイミングで行われることが想定され、図5のT0,T1等は1つ1つの入力値に相当する。ここでは判定対象となる入力値と、その前後3サンプルの値を比較してピーク検出を行う。上ピークの検出であれば、判定対象が前後3サンプルよりも大きく、且つ判定対象の値が所与の閾値(例えば0.4等)より大きい場合に、当該判定対象のサンプルを上ピークとして認識する。下ピークは逆に、判定対象が前後3サンプルよりも小さく、且つ判定対象の値が所与の閾値(例えば0.4等)より小さい場合に、当該判定対象のサンプルを下ピークとして認識すればよい。
なお、下ピークの検出後、上ピークが検出されずに下ピークが再度検出される(つまり下ピークが連続する)場合等には、何らかの例外処理が必要な状況(例えば典型的な歩行運動とは異なる運動が行われている、センサー情報の検出が正常に行われていない等)である可能性があるため、下ピークの検出条件として、前述のものに加えて対応する上ピークが検出済みであることを考慮してもよい。このようにすると、下ピークが検出されたことをもって、ユーザーの運動或いはセンサー情報の取得等がある程度正常に行われていることが担保できるため、その後の処理における例外処理をなくす、或いは簡易的なものにすることが可能になる。
ステップ検出部130は前述の処理により検出した上ピークと下ピークに関する情報をステップ情報として出力する。ステップ情報は、例えば上ピークの検出タイミング及び下ピークの検出タイミングに対応して出力されるパルス信号であってもよいし、ピーク検出タイミングに対応するタイムスタンプを含むデータであってもよい。また、処理によってはピーク検出タイミングにおける合成加速度の値等を含んでもよい。
なお、ステップとはユーザーの歩行走行の1歩1歩に相当するものであるから、ステップの検出だけであれば上ピークと下ピークの一方だけを出力すればよい。よって、出力先によってはステップ情報を簡素化することも可能であり、ステップ情報は多様な形態により実現できる。
以上のステップ検出処理の詳細を図6のフローチャートを用いて説明する。この処理が開始されると、まず加速度センサーからの検出加速度を取得する(S201)。3軸加速度であれば、各軸の値(x,y,z)を取得することになる。そして、検出加速度に基づいて、合成加速度を算出する(S202)。合成の手法は任意であるが、ここでは最新の合成加速度P0として各軸の値の二乗和の平方根を用いている。なお、図6のフローチャートには不図示であるが、算出した合成加速度に対してフィルター処理を行ってもよい。
次に、取得した最新の合成加速度の値と、過去のタイミングでの合成加速度の値を用いてピークを検出する。具体的には、nタイミング前の合成加速度をPnとした場合に、P0〜P6の値を用いて、P3と他の値の比較、及びP3と所与の閾値との比較を行う。これはP3を基準として考えれば、前後3サンプルの値との比較処理に他ならない。
P3がP0〜P2の各値、及びP4〜P6の各値よりも大きく、且つ所与の閾値(ここでは0.4)よりも大きいかの判定を行い(S203)、条件を満たす場合にはP3を上ピークとして検出する(S204)。S203でNoの場合には、P3がP0〜P2の各値、及びP4〜P6の各値よりも小さく、且つ所与の閾値(ここでは0.4)よりも小さいかの判定を行い(S205)、条件を満たす場合にはP3を下ピークとして検出する(S206)。S205でNoの場合には、上ピークも下ピークも検出されなかったものとする。
その後S207で次のタイミングでの処理に備える。なお、比較処理に必要となる過去の合成加速度の情報を保持しておけばよく(ここでは過去6サンプル分を保持)、S207での処理は図6に示したように、変数Pnの更新処理として行われるものに限定されない。
3.4. 加速度の変化量の算出と積算処理
3軸加速度の合成ベクトルの上ピークを検出できた場合には、NED座標系におけるN軸とE軸のそれぞれにおいて、加速度の水平方向成分の傾き(変化量)を求める。そして、座標軸毎に、続けて取得された加速度の変化量を所定の数だけ積算して積算変化量を求める。すなわち、N軸についての積算変化量は式(3)により、ΔNaddとして求められ、E軸についての積算変化量は式(4)により、ΔEaddとして求められる。
なお、式(3)及び(4)において、ΔxN,iは、i番目に検出された加速度のN軸成分の変化量であり、ΔyE,jは、j番目に検出された加速度のE軸成分の変化量である。また、initは積算処理を開始する加速度のインデックス(初期値)であり、正の整数である。さらに、mは積算処理を行うサンプル数であり、正の整数である。
図1等を見れば分かるように、加速度の傾きは前述した加速度センサーの初期バイアス成分を含まない。また、積算変化量は、加速度の傾きを積算した値であるため、積算変化量も初期バイアス成分を含まない。したがって、これらの積算変化量を利用することによって、加速度センサーにおけるバイアス影響を排除した推定が可能となる。
3.5. 進行方向の推定
前節で求めた水平方向成分における加速度の傾きは、歩行動作における加速、減速と同様の性質を持つ。例えば急に止まれば、加速度の傾きは負になり、加速度も小さくなる。積算変化量も同様にこのような性質を持つ。すなわち、歩行動作における加速、減速を積算変化量に置き換えて考えることができる。よって、各座標軸の積算変化量のなす角から進行方向を推定することが可能である。
すなわち、例えば式(5)、式(6)のようなベクトルN、Eを用いれば、本実施形態において求める進行方向は、図7に示すθとして表すことができる。θは、NED座標系における北とのずれを表す角度である。なお、式(5)のベクトルNは、NED座標系において、式(3)で求めたN軸についての積算変化量をN軸成分とし、その他の成分を0とするベクトルである。同様に、式(6)のベクトルEは、NED座標系において、式(4)で求めたE軸についての積算変化量をE軸成分とし、その他の成分を0とするベクトルである。
そして、θは式(7)により求めることが可能である。なお、このような処理は、図2においては進行方向特定処理部127において行われる。
4.処理の流れ
以下では、図8のフローチャートを用いて、本実施形態の全体の処理の流れについて説明する。
まず、3軸加速度合成ベクトルのピークを検出する。図4に示されるように、3軸加速度合成ベクトルのピークでは単位時間辺りの変化量(グラフの傾き)が0になる。そこで、まず現在を含めた前7サンプルの前7サンプルにおいて、3軸加速度合成ベクトルの変化量を算出する(S101)。
次に、算出した変化量のうち、変化量が(ほぼ)0であるサンプル(ピーク)があるか否かを判定する(S102)。なお、ピーク検出処理としては、ステップS101及びS102で示す方法以外にも、例えば前述した図6に示したピーク検出処理などを行ってもよい。
算出した変化量の中に、変化量が(ほぼ)0となるサンプルがないと判定した場合には、次のサンプリングタイミングを待ち(S103)、サンプリングタイミングとなった時点でステップS101から処理をやり直す。
一方、ステップS102において、算出した変化量の中に、変化量が(ほぼ)0となるサンプルがあると判定した場合には、変化量が(ほぼ)0となったタイミングを選択開始タイミングとして、選択開始タイミング以降の区間からサンプリング(選択処理)を行い、N個の検出加速度を選択する(S104)。ここでは、例えばN=3とする。式(3)、(4)に置き換えれば、N=m=3である。
そして、サンプリングされたN個の検出加速度の水平方向成分を抽出し(S105)、抽出したN個の水平方向成分の変化量を算出する(S106)。この際に、電子機器の姿勢を表すクォータニオンを用いて、検出加速度をボディー座標系(加速度センサー座標系)からワールド座標系(運動解析座標系)へ変換する。なお、加速度センサー座標系とは、加速度センサー200が加速度を検出する際に基準とするローカル座標系(ボディー座標系)のことをいう。一方、運動解析座標系とは、運動解析処理を行う場合に、基準として用いる座標系のことをいう。
さらに、算出した変化量を座標軸毎に積算する(S107)。すなわち、水平面を表すX軸とY軸の2軸について、それぞれ検出加速度の変化量の積算値(積算変化量)を算出する。つまり、式(3)のΔxN,iと、式(4)のΔyE,jを算出する。
次に、算出した積算変化量のそれぞれについてDC成分抽出処理を行い(S108)、抽出した積算変化量のDC成分に基づいて進行方向特定処理を行う(S109)。ここで、進行方向特定処理では、図7に示すように、例えば式(5)のベクトルと式(6)のベクトルとがなす角θの角度情報を求め、求めた角度情報に基づいて進行方向を特定する。なお、DC成分抽出処理については後述する。
最後に、進行方向の2歩平均を行い、人が歩く際に右足と左足を交互に前に出すことによる体の向きの変化(誤差)を除去する。より詳細な説明は後述するが、ここでは、前回特定した進行方向と今回特定した進行方向の中間を指す方向を特定(平均処理)し(S110)、平均処理により特定された方向を進行方向として出力する(S111)。なお、この際に、算出した3軸加速度の合成ベクトル、検出加速度の水平方向成分、進行方向等をそれぞれ保存(記憶)しておいてもよい。そして、次のサンプリングタイミングを待ち(S103)、サンプリングタイミングとなった時点でステップS101から処理をやり直す。
5.評価結果
ここでは、本手法による評価結果を示す。評価条件は以下の通りである。第1に、3軸加速度センサーを搭載した端末を手に持つ。第2に、歩行者は端末を進行方向へ向けて、できるだけ固定させた状態で歩行する。第3に、歩行者USが進行する方位は、図9に示すように、北から東におよそ80度傾いた方向である。第4に、基準となる方位は、地磁気センサーを用いて算出したものを採用する。第5に、図8のフローチャートに示したステップS108とステップS110の処理は行っていない。
図10には、歩行時に検出した3軸加速度合成ベクトルの値を示している。なお、横軸はサンプル数である。また、異なる進行方向推定機会に取得されたデータについては、異なる系列データを用いて表している。さらにここでは、説明のため、系列データを限定して図示しているが、実際にはさらに多くの系列データを用いている。ただし、全ての系列データを用いた場合にも、ここで説明するような傾向と同様の傾向を観測することができる。
前述したように3軸加速度の合成ベクトルの上ピークを選択開始タイミングとする場合には、図10に示すように、歩行時に検出された7サンプルの合成ベクトルの中に上ピークが現れており、これ以降の区間で水平方向成分の合成ベクトルが減速していれば良い。
次に、図11に加速度の水平方向成分の合成ベクトルの推移を示す。図11では、図10において、3軸加速度の合成ベクトルのピークを検出した時点からの水平方向成分をプロットしている。すなわち、図10の4サンプル目が図11の1サンプル目に対応している。図11からわかるように、全サンプルにおいて3サンプル目までは減速していることが分かる。本実施形態では、ピーク検出から3サンプル間の傾きを求めて、その和がなす角を進行方向としており、その結果が図12に示したものとなる。
図12は、上記条件において進行方向の推定を行った結果である。図12では、図8のフローチャートで推定が可能となる条件を満たした場合に推定結果がプロットされる。したがって、横軸は検出加速度のサンプル数ではなく、歩行中において進行方向を推定した回数を示している。また、縦軸は絶対方位(degree)である。結果を見ると、時折ばらつくものの、進行方向であるおよそ80度を指し示していることがわかる。
なお参考として、加速度の水平方向成分の傾きではなく、ピーク時の加速度の水平方向成分そのものがなす角を進行方向とした場合の結果を図13に示す。なお、曲線S1は上記で示した本実施形態による結果、曲線S2がピーク検出時の水平方向成分そのものから求める手法(比較手法)による結果である。
大きくばらつく点は同じであるものの、比較手法では、真の進行方向に対してオフセットがあるような結果となってしまうことから、本実施形態の方が正確に推定できていることが分かる。
6.本実施形態の手法のまとめ
以上の本実施形態の状態検出装置100は、加速度センサー200から取得される検出加速度に基づいて、検出加速度の水平方向成分を求める水平方向成分抽出部110と、検出加速度の水平方向成分の変化量特定処理を行い、求めた水平方向成分の変化量の積算処理を行い、積算処理の結果に基づいて進行方向特定処理を行う進行方向特定部120と、を含む。
ここで、検出加速度とは、加速度センサー200により検出される加速度のことをいう。例えば、検出加速度は、前述した式(1)のようなベクトルAで表される。ただし、検出加速度は、3軸の加速度を成分とするベクトル(後述する3軸の加速度合成ベクトル)であるとは限らない。
また、検出加速度の水平方向成分とは、水平面を表す2つの座標軸成分のことをいう。具体的には、前述した式(2)におけるN軸成分とE軸成分が水平方向成分となる。
さらに、検出加速度の水平方向成分の変化量とは、単位時間当たりに水平方向成分が変化する量のことであり、例えば検出加速度の水平方向成分を微分して得られる量のことをいう。言い換えれば、図4に示すような検出加速度の水平方向成分を表す曲線の任意の点における傾きのことをいう。なお、変化量を求める際の単位時間は所定の値に置き換えてもよい。また、前述した式(3)、(4)では、ΔxN、i、ΔyE、jにより表される。
またここで、積算処理の結果とは、例えば後述する積算変化量等のことをいう。
このように、検出加速度の水平方向成分の大きさではなく、検出加速度の水平方向成分の変化量に基づいて進行方向を推定することで、加速度センサーから取得される加速度に含まれる初期バイアス成分を除去することが可能となり、推定誤差を低減することが可能となる。さらに、変化量の積算処理を行うことにより、各加速度検出タイミングにおける加速度の変化量のばらつきを抑制して、より正しい進行方向を推定することも可能となる。また、初期バイアス成分を除去するためのフィルター処理等を行う必要がないため、事前にフィルター処理を行う手法に比べて計算量を低減することも可能となる。
また、変化量特定処理及び積算処理としては、具体的に以下のような処理を行っても良い。
水平方向成分抽出部110は、検出加速度に基づいて、検出加速度の第1の座標軸成分と第2の座標軸成分とを求めてもよい。そして、進行方向特定部120は、変化量特定処理として、第1の座標軸成分の変化量である第1の変化量と第2の座標軸成分の変化量である第2の変化量とを求める処理を行い、積算処理として、第1の変化量の積算処理を行って、第1の積算変化量を求め、第2の変化量の積算処理を行って、第2の積算変化量を求める処理を行い、第1の積算変化量と第2の積算変化量とに基づいて、進行方向特定処理を行ってもよい。
ここで、検出加速度の第1の座標軸成分とは、例えば水平面を表す2つの座標軸のうち、一方の座標軸の加速度成分のことをいう。また、検出加速度の第2の座標軸成分とは、例えば水平面を表す2つの座標軸のうち、第1の座標軸とは異なる他方の座標軸の加速度成分のことをいう。さらに具体的には、前述した式(1)において、Z軸方向が鉛直方向と一致する場合には、例えばX軸成分が第1の座標軸成分であり、Y軸成分が第2の座標軸成分である。前述した式(2)においては、例えばN軸成分が第1の座標軸成分であり、E軸成分が第2の座標軸成分である。なお、ここではZ軸方向が鉛直方向と一致する場合を例にあげたが、必ずしもそうである必要はなく、第1の座標軸と第2の座標軸とが水平面に対して並行でなくてもよい。
そして、第1の積算変化量は、例えば前述した式(3)のΔNaddであり、第2の積算変化量は、例えば式(4)のΔEaddである。
これにより、積算処理の結果として、第1の積算変化量と第2の積算変化量とを求めること等が可能になり、後述する簡単な手法で進行方向特定処理を行うこと等が可能になる。
また、進行方向特定処理としては、具体的に以下のような処理を行っても良い。
進行方向特定部120は、第1の積算変化量を第1の座標軸成分とするベクトルであり、第1の座標軸に沿ったベクトルである第1のベクトルと、第2の積算変化量を第2の座標軸成分とするベクトルであり、第2の座標軸に沿ったベクトルである第2のベクトルとがなす角の角度情報を求め、求めた角度情報に基づいて進行方向を特定する処理を行ってもよい。
ここで、第1のベクトルは、例えば前述した式(5)のベクトルNであり、第2のベクトルとは、例えば前述した式(6)のベクトルEである。
また、第1のベクトルと第2のベクトルとがなす角とは、例えば図7のθである。
そして、角度情報とは、前述した式(7)により求められる角度θのことである。ただし、角度情報はこれに限定されるものではなく、数学的にこれと等価な情報であればよい。
またここで、進行方向とは、歩行者等の移動体が進行する方向のことをいい、本実施形態では北を基準とした方角を用いる。ただし、これも数学的にこれと等価な情報であれば表現方法は問わない。
これにより、例えば2つのベクトルのなす角の角度を求めるという、単純な方法で進行方向を求めること等が可能になる。
ここで、本実施形態で問題としているのは人の歩行又は走行である。人は体の構成上、右足を踏み出したときと左足を踏み出したときとで、腰の回転方向が異なる。具体的には、右足を踏み出したときには腰は反時計回りに回転するし、左足を踏み出したときには時計回りに回転する。よって、長いスパンで見たときの進行方向に対して、右足踏み出し時の進行方向は左方向にずれ、左足踏み出し時の進行方向は右にずれることになる。
そのため、加速度センサーを搭載した端末を腰に装着した場合等では、センサーが腰の回転を検出してしまうことになる。この結果例えば、図14の1歩毎θに示したように、踏み出し足によって推定した進行方向が大きく異なってしまう。よって、ユーザーはまっすぐ歩いているにもかかわらず、デッドレコニングにより描いた軌跡が三角波のような形状になる等の影響が考えられ好ましくない。
そこで本実施形態では、右足踏み出し時と左足踏み出し時とで進行方向情報の平均化処理を行い、ばらつきを解消する。
すなわち、進行方向特定部120は、前回の進行方向特定処理において求められた角度情報(進行方向情報)により表される角度と、今回の進行方向特定処理において求められた角度情報(進行方向情報)により表される角度の平均角度を算出し、算出した平均角度に基づいて進行方向を特定してもよい。
なお、腰から離れた部位に端末を装着することで、ばらつきを抑えることが可能であるが、前述したように本実施形態では装着に関する制約を緩和することを前提としているため、平均化処理を考慮する必要性は高いといえる。
具体的にここでは、2歩の平均値を求めて進行方向情報とする。例えば処理対象ステップでの進行方向情報と、1つ前のステップでの進行方向情報の平均化処理を行えばよい。このようにすることで、図14の2歩平均θに示したように推定した進行方向を安定させることができる。ただし、平均化処理の手法はこれに限定されるものではなく、過去1ステップだけではなく、過去nステップの進行方向情報も用いて平均値(すなわち移動平均値)を求めてもよいし、その際には単純平均だけではなく重み付け平均であってもよい。ただし、ここでの平均化処理は右足と左足との違いを問題としている以上、右足踏み出し時の進行方向情報同士で平均化処理を行っても効果は得られない。つまり、右足踏み出し時の進行方向情報と左足踏み出し時の進行方向情報を少なくとも1つずつ用いる必要がある。
以下、平均化処理の詳細を図15のフローチャートを用いて説明する。なお、ここでの処理は例えば積算処理等により進行方向情報An_sumとAe_sumが算出されていることを前提としている。よって図15の処理は、進行方向情報の算出レートに対応したタイミングにつき1回行われるものであり、狭義には1ステップに1回行われる。
この処理が開始されると、まず進行方向情報An_sumとAe_sumを取得する(S301)。そして、1ステップ前で取得した進行方向情報An_sum_oldとAe_sum_old(平均化処理前の値)を用いて平均化処理を行って平均化処理後の進行方向情報として出力する(S302)。なお、S302ではそれぞれを2で除算せずに単純な和を求めているが、進行方向の推定にはN成分とE成分の比が保たれていればよいため、特に問題はない。当然、それぞれを2で除算したものを平均化処理後の進行方向情報としてもよい。
そして、S303において次のステップの処理に備える。この例であれば1ステップ前の進行方向情報を保持しておけば充分であるが、平均化処理の内容によってはnステップ前までのデータを保持しておいてもよい。
これにより、例えば、右足踏み出し時と左足踏み出し時とで角度情報の平均化処理を行い、推定される進行方向のばらつきを解消すること等が可能になる。
上述した手法により進行方向を求めるため、積算変化量の絶対値は大きい程良い。積算変化量の絶対値が小さい場合には、ノイズ等の誤差により、特定される進行方向の誤差も大きくなってしまうためである。そのため、より精度の高い進行方向推定を行うためには、積算変化量の算出方法が重要であり、積算変化量の算出に当たっては、どのタイミングの検出加速度の水平成分方向をサンプリングするかが重要であると言える。
そこで、本実施形態では、ステップ検出処理を行い、ステップ検出結果に基づいて、検出加速度のサンプリング区間(選択範囲)を特定(限定)する。
すなわち、本実施形態の状態検出装置100は、検出加速度に基づいて歩行又は走行のステップ検出処理を行うステップ検出部130と、進行方向を特定するために用いる検出加速度の選択処理を行うサンプリング部140と、を含んでもよい。そして、サンプリング部140は、ステップ検出処理の結果に基づいて、異なるタイミングにおいて検出された検出加速度の中から、N個(Nは2以上の整数)の検出加速度を選択する選択処理を行ってもよい。また、水平方向成分抽出部110は、選択されたN個の検出加速度の水平方向成分を求めてもよい。さらに、進行方向特定部120は、求められたN個の水平方向成分に基づいて変化量特定処理を行い、求めた水平方向成分の変化量の積算処理を行って、進行方向を求めてもよい。
また、ここでステップ検出処理におけるステップとは、狭義には歩行者等の1歩1歩の間隔のことをいうが、本実施形態ではそれに限定されることはなく、1歩の間に含まれる検出加速度のピーク値等であってもよい。すなわち、広義には、歩行者等のステップを識別することが可能な情報である。
これにより、検出加速度の選択範囲を限定すること等が可能となる。したがって、検出加速度の選択範囲を限定して、進行方向特定処理において誤差が出にくくなるような積算変化量を求めること等が可能になる。
また、検出加速度の選択範囲をさらに細かく特定するために、以下のような手法を行っても良い。
すなわち、ステップ検出部130は、ステップ検出処理として検出加速度の変化量特定処理を行ってもよい。そして、サンプリング部は、選択処理として、取得された検出加速度の変化量が所定の閾値よりも小さくなるタイミングを選択開始タイミングとして設定し、選択開始タイミング以降に検出された検出加速度の中から、N個の検出加速度を選択する処理を行ってもよい。
ここで、選択開始タイミングとは、N個の検出加速度を選択する範囲(区間)の開始タイミングのことをいう。実際に検出加速度を選択し始める際には、選択開始タイミングから多少のタイムラグがあってもよく、必ずしも選択開始タイミングに実際に検出加速度をサンプリングしなければならないわけではない。
これにより、選択開始タイミングを特定して、さらに厳密に検出加速度の選択範囲を限定すること等が可能となる。
ここで、本実施形態において、最も理想的な選択開始タイミングは、前述したように3軸加速度の合成ベクトルが上ピークとなったタイミングである。つまり、図4ではA1のタイミングである。
そこで、サンプリング部140は、選択処理として、取得された検出加速度の変化量がゼロ(略ゼロ)になるタイミングを選択開始タイミングとして設定し、選択開始タイミング以降に検出された検出加速度の中から、N個の検出加速度を選択する処理を行ってもよい。すなわち、サンプリング部140は、選択処理として、検出加速度が最大となるタイミング以降に検出された検出加速度の中から、N個の検出加速度を選択してもよい。
これにより、前述した理由で、選択開始タイミングとして最適なタイミングを指定すること等が可能となる。
なお、本実施形態では、所定数の検出加速度を選択した時点で選択処理を終了するため、選択終了タイミングを明確に定めていないが、統計上では検出加速度が単調減少となる範囲から所定数の検出加速度を選択することが望ましい。そのため、そのようなサンプリング数(式(3)、(4)ではm)を設定することが望ましい。
また、前述した最も理想的な選択開始タイミングは、3軸加速度の合成ベクトルを基準とするものであるため、当然これを用いてステップ検出処理を行った方が良い。
そこで、ステップ検出部130は、ステップ検出処理として、検出加速度を表す3軸の加速度合成ベクトルに基づいて変化量特定処理を行ってもよい。
ここで、3軸の加速度合成ベクトルとは、例えば前述した式(1)のベクトルAである。
これにより、ピーク検出対象の加速度の大きさに比べて、歩行時の左右へのふらつきなどによる加速度の変化を相対的に小さくして、区別を容易にすること等が可能となる。また、周波数解析等も行わないため、歩行周期の正確さに依存せず進行方向の推定を行うこと等が可能となる。
また、従来手法では加速度の水平方向成分を取得するために、加速度センサー200を搭載した端末の装着位置や姿勢に制約があった。例えば、3軸加速度センサーの1つの軸を重力方向と一致させ、残り2軸により表される平面が水平面と一致する状態を維持する等の制約である。従来手法であれば加速度センサー200のセンサー情報そのままで、或いは単純な座標変換を行うだけで、水平方向成分を取得できるため処理は容易だが、ユーザーは端末の姿勢等を常に考慮せねばならず、利便性等の面で問題があった。
そこで本出願人は、端末の姿勢等に関して自由度を高めることを前提とする。
すなわち、水平方向成分抽出部110は、加速度センサー200が設けられた電子機器の姿勢情報に基づいて、検出加速度の座標変換処理を行い、座標変換処理後の検出加速度の水平方向成分を求めてもよい。
具体的には、座標変換処理として、クォータニオン等を用いて、端末姿勢に応じた座標変換行列を求め、座標変換後の値から水平方向成分を求める。
このようにすることで端末の装着部位は、胸ポケット、ズボンのポケット、トートバッグやウエストバッグ、腰等、多くの箇所から自由に選択可能であり、その際の姿勢も問わない。また、体幹に対してある程度固定されていればよいため、状況によっては手で把持していてもよい。具体的には、端末(携帯電話等)の表示部を見ている状態で安定していれば当該端末を手で把持していても問題がない。
ここで、上述してきた手法を用いたとしても、横揺れ等の影響により推定した進行方向が不安定になる可能性がある。特に端末を手で把持した場合には、体幹に対する手の相対位置を一定に保つことは難しく、横揺れの影響は大きい。
そこで本実施形態では、DC成分を抽出するフィルター処理を行って、進行方向が不安定になることを抑制する。
すなわち、進行方向特定部120は、積算処理の結果として得られる積算変化量に対してDC成分抽出処理を行い、DC成分抽出処理によって得られた積算変化量のDC成分に基づいて、進行方向特定処理を行ってもよい。
ただし、単純にDC成分を抽出するだけではユーザーが方向転換をした場合等の進行方向の変化まで抑制してしまい好ましくない。よって、変化の抑制度合いに対応するパラメーター(例えばフィルターのゲイン)を適切に調整する必要がある。
次に具体的にDC成分抽出処理について説明する。本実施形態では端末の装着部位、姿勢の自由度を高めている。よって、腰や胸ポケットに装着するように、端末姿勢が比較的安定し、水平方向における進行方向以外の加速度の検出を抑えることができるケースがある一方で、手で把持するように端末姿勢が不安定となるケースもある。例えば手で把持した場合には、手の横揺れ等により推定された進行方向が全く安定しない。具体例を図16のoriginalに示す。なお、図16の縦軸は角度(radian)であり、本実施形態の角度範囲は−π〜πである。よって、+πと−πは同じ方向を表すものであり、+3付近から−3付近へと大きく値が変動していたとしても、実際の推定進行方向の変化は大きいとは限らず、本実施形態で問題としている進行方向の不安定さとは関係ないものである。
図16は時刻0から、θ=3(rad)で表される方向へ歩行し、時刻35付近でθ=−2(rad)で表される方向へ進路を変えて歩行した場合の推定進行方向の変動を表したものである。実際の運動は安定していたにも関わらず、図16のoriginalに示したように、横揺れ等の影響で推定した進行方向は不安定になっている。
よって本実施形態では推定した進行方向を安定させるために、変動を抑制するDC成分抽出フィルターを用いる。ここで用いられるフィルターは図17に示したものである。図17のフィルターは出力値に1タイミングの遅延をかけて(つまり1タイミング前の出力値を用いて)、入力値との差分を取り、差分値にゲインをかける。そしてゲインをかけた値と入力値との差分を出力値とするものである。ゲインをかける対象は、1タイミング前の出力と、現在の入力との差分であるから、値の変動に相当するものである。よって、ゲインを1とすれば、入力値から変動値を引く処理になるため、出力値は変動が除去されたものとなる。つまり、このフィルターのゲインは変動の抑制度合いを表すものであり、1に近いほど変動を抑制し、値が小さいほど変動を容認するものになる。
そして、図17のフィルターのゲインを0.9に固定した場合の出力値が、図16のDC成分抽出である。originalに比べて不安定さは解消されていることが分かる。
これにより、例えば、歩行時の横揺れ等の影響により推定した進行方向が不安定になることを軽減すること等が可能になる。
また、以上の本実施形態は、前述してきた状態検出装置を含む電子機器にも適用できる。
例えば図18に示したように、状態検出装置100と、加速度センサー200と、出力部300と、記憶部400と、通信部500と、操作部600と、を含む電子機器が考えられる。なお、電子機器は図18の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加したりするなどの種々の変形実施が可能である。また、図18では状態検出装置100は、加速度センサー200と出力部300を含まないものとしたが、これに限定されるものではない。さらに、本実施形態の電子機器の一部又は全部の機能は、電子機器と通信により接続されたサーバーにより実現されてもよい。
次に電子機器の各部で行われる処理について説明する。状態検出装置100及び加速度センサー200は、前述した通りであるため、説明を省略する。
出力部300は、算出した進行方向等の情報を出力する。出力部300は例えば、液晶ディスプレイや有機ELディスプレイなどにより実現される表示部であってもよい。記憶部400は、各部のワーク領域となるもので、その機能はRAM等のメモリーやHDD(ハードディスクドライブ)などにより実現できる。通信部500は、外部機器等との通信を行うものであり、無線により実現されてもよいし有線により実現されてもよい。操作部600は、ユーザーが電子機器の各種操作を行うためのものであり、各種ボタンやGUI等により実現できる。
電子機器は、腕時計型のデバイスであってもよいし、スマートフォン等のデバイスであってもよい。また、図18に示された各部が一体として形成される必要はなく、例えば、加速度センサー200を別体としてもよい。そのようにすれば、出力部300(狭義には表示部)を有する部分はユーザーからの視認が容易な箇所に設けることができ、且つ加速度センサー200は装着の利便性或いは取得信号の正確性等を考慮して装着することが可能になる。
なお、本実施形態の状態検出装置等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態の状態検出装置等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
さらに具体的には、図19に示したように、加速度センサー200と、出力部300と、記憶部400と、通信部500と、操作部600と、処理部700と、情報記憶媒体800を含むシステムにおいて、上記プログラムは情報記憶媒体800に記憶される。そして、情報記憶媒体800に記憶されたプログラムは処理部700(例えばCPU等)に読み出され、当該プログラムにより指示される処理が行われる。図19のシステムとしては例えばスマートフォン等が考えられる。本実施形態にかかるプログラムは、スマートフォンの情報記憶媒体に記憶され、当該スマートフォンのCPU等により実行されることになる。
以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、状態検出装置、電子機器及びプログラムの構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。