以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本発明はセンサ端末を体に装着しランニング時のセンサデータを取得し、その取得したセンサデータの分析及び表示に関する発明である。
図1に、センサ端末101の装着例を示す。センサ端末101は、図1(a)に示されるようにランナー(利用者)100の胸部、又は図1(c)に示されるようにランナー100の腰の後ろに装着しているが、その他に首筋等、ランナーを正面視して左右方向の中心線に沿った位置である左右均等な位置に装着してもよい。
図1(b)及び(c)は、分析、表示方法の例を示す図である。図1(b)は、ランニング終了後にセンサ端末101で取得したセンサデータをパーソナルコンピュータ102に転送して表示する組合せを示している。図1(c)は、ランニング中にセンサ端末101で取得したセンサデータをリアルタイムで解析し、無線通信することで、解析結果を腕時計やいわゆるスマートフォン等の携帯可能な表示機器103に表示させる組合せを示している。
図2は、本実施形態に係る運動解析装置のハードウェア構成例を示すブロック図である。図2(a)は、センサ端末101のハードウェア構成例を示し、図2(b)は、図1(b)のパーソナルコンピュータ102又は図1(c)の表示機器103に対応するデータ分析・表示端末200のハードウェア構成例を示す。
図2(a)において、センサ端末101は、ジャイロセンサ201、加速度センサ202、GPS(Global Positioning System:全地球測位網)受信機203、気圧センサ207、コントローラ204、メモリ205、及び通信部206を備える。また、特には図示しないが、簡単な操作スイッチやタッチパネル式の表示部を備えてもよい。
ジャイロセンサ201は、その測定軸(本実施形態では、測定軸はランナー100(図1)の体軸に実質的に平行な軸を含む互いに直交する3軸である)に沿った回転運動の回転方向の角速度を検出する。なお、角速度を検出できる手段であれば、ジャイロセンサ201には限られない。
加速度センサ202は、その測定軸(上記3軸)の延伸3方向の各加速度を検出する。なお、加速度を検出できる手段であれば、何でもよい。
GPS受信機203は、緯度データ、経度データ、速度データ、距離データ等を検出する。なお、走行距離及び速度データを検出できる手段であれば何でもよい。
気圧センサ207は、気圧値を検出する。
コントローラ204は、ジャイロセンサ201、加速度センサ202、及びGPS受信機203がそれぞれ出力するセンサデータを取得し、メモリ205に保存する。また、コントローラ204は、メモリ205に保存されたセンサデータを、通信部206を介してデータ分析・表示端末200に送信する。
次に、図2(b)において、データ分析・表示端末200は、コントローラ211、メモリ212、通信部213、操作指定部210、及び表示部214を備える。操作指定部210及び表示部214は、例えばキーボードと液晶ディスプレイ、又は一体式のタッチパネルである。
コントローラ211は、図2(a)のセンサ端末101より、通信部213を介してセンサデータを受け取って、メモリ212に保持する。
図3は、図2(a)のハードウェア構成例を有するセンサ端末101が実行する、データ収集処理の例を示すフローチャートである。この処理は、コントローラ204がメモリ205に記憶されたデータ収集処理プログラムを実行する処理として実現される。ランナー100がランニングを開始すると、データ収集処理が起動する。ランナー100がランニングを開始したことの検出は、GPS受信機203や加速度センサ202によるランナー100の位置の移動の検出に基づいて行うものであってもよいし、ランナー100が例えば特には図示しない操作スイッチに設けられたスタートボタンスイッチやタッチパネルに設けられたスタートボタンをタップしたことを検出して行うものであってもよい。
まず、コントローラ204は、ジャイロセンサ201、加速度センサ202、及びGPS受信機203の各機器を起動し、センシング動作を開始させる。これにより、各センサの状態が、センサデータ取得中となる(図3のステップS301)。
次に、コントローラ204は、ランナー100が特には図示しない操作スイッチやタッチパネルにより運動条件を指定したか否かを判定する(ステップS302)。ランナー100が指定する運動条件は例えば、当該運動条件を指定したときに、独走(単独走)しているか又は集団走であるか、あるいは練習走か競技会での走行か等、各種センサデータからは読み取ることができない運動条件である。ランナー100は例えば、特には図示しない表示パネルに表示される運動条件の選択肢の中からタップして選ぶ方法で、運動条件を入力することができる。
ステップS302の判定がYESになると、コントローラ204は、ユーザが指定した運動条件を入力又は変更する(ステップS303)。その後、コントローラ204は、ステップS301の処理に戻る。
ステップS302の判定がNOならば、コントローラ204は、ユーザの例えば特には図示しない操作スイッチ等の指示により計測が終了したか否かを判定する(ステップS304)。
ステップS304の判定がYESならば、コントローラ204は、データ収集処理を終了する。
ステップS304の判定がNOならば、コントローラ204は、ステップS301の処理に戻る。
コントローラ204は、ステップS301において、ジャイロセンサ201、加速度センサ202、及びGPS受信機203がそれぞれ出力するセンサデータを取得し、ステップS303でユーザが指定した運動条件(独走/集団走の別など)とともに、メモリ205に保存する。また、コントローラ204は、定期的(例えば数秒から数十秒おき)に、又はランニング終了時のユーザの指示により、メモリ205に保存されたセンサデータを、通信部206を介してデータ分析・表示端末200に送信し、その後、メモリ205の記憶内容をクリアする。
次に、図2のデータ分析・表示端末200が実行するデータ分析処理について説明する。図4は、図2のコントローラ211が実行するデータ分析処理の例を示すフローチャートである。この処理は、コントローラ211がメモリ212に記憶されたデータ分析処理プログラムを実行する処理として実現される。この処理は、例えばユーザ(ランナー100)の指示により起動される。
まず、コントローラ211は、取得部の機能(ステップS401)を実行する。この機能において、コントローラ211は、ジャイロセンサ201、加速度センサ202、GPS受信機203、及び気圧センサ207がそれぞれ出力し、センサ端末101から送られてきてメモリ212に保持されている各センサデータに基づいて、以下に説明する各状態値を取得する(ステップS401)。
図5は、図4のステップS401の各状態値取得処理の詳細例を示すフローチャートである。
まず、コントローラ211は、それぞれセンサ端末101から送られてきてメモリ212に保持されている、ジャイロセンサ201、加速度センサ202、GPS受信機203、及び気圧センサ207の各センサデータを入力する(ステップS501)。
次に、コントローラ211は、それぞれランナー100による運動のパフォーマンスを示す状態値の一種である区間速度、及び、センサデータから求められる運動条件の一種である走行距離を算出する(ステップS502)。具体的には、コントローラ211は、ステップS501で入力したGPS受信機203からのセンサデータに基づいて、現時点の詳細位置を算出することにより、ランニング開始地点からの走行距離[キロメートル]を算出して、順次メモリ212に記録してゆく。また、コントローラ211が有する特には図示しないタイマによるランニング開始からの単位時間(例えば1分間)毎の走行距離から、区間速度[メートル/秒]を算出して、順次メモリ212に記録してゆく。なお、コントローラ211は、GPS受信機203からのセンサデータに加えて、例えば加速度センサ202やジャイロセンサ201からの各センサデータを参照することにより、より正確な走行距離や区間速度を算出するようにしてもよい。
次に、コントローラ211は、それぞれランナー100のフォームを示す状態値の一種であるピッチ、ストライド、及びランナー100の上下動、左右動を算出する(ステップS503)。ここで、ピッチは、単位時間(例えば1分間)あたりのランナー100のランニング時の歩数である。ストライドは、ランナー100のランニング時の歩幅である。上下動は、ランナー100の体軸の延伸方向(後述する図6の説明を参照)の移動量[センチメートル]である。左右動は、ランナー100の体軸に対して左右方向に直交する軸の延伸方向(後述する図6の説明を参照)の移動量[センチメートル]である。
ピッチ、ストライド、及び上下動、左右動の算出方法について、以下に説明する。まず、図6は、本実施形態に適用されるジャイロセンサ201及び加速度センサ202における3軸方向を示す説明図である。本実施形態において、加速度センサ202は、ランナー100の運動中の動作速度の変化の割合(加速度)を計測する。本実施形態においては、加速度センサ202は、3軸加速度センサを有し、互いに直交する3軸方向の各々に沿った加速度成分を検出して加速度データとして出力する。すなわち、ランナー100に対して、上下方向に延伸する軸をx軸とし、下向き(地面方向)の加速度成分を+の向きと規定する。ここで、x軸は概ねランナー100の体軸の延伸方向に一致する。また、ランナー100に対して、左右方向に延伸する軸をy軸とし、左手方向の加速度成分を+の向きと規定する。また、ランナー100に対して、前後方向に延伸する軸をz軸とし、前方向(進行方向)の加速度成分を+の向きと規定する。加速度センサ202により取得された加速度データは、コントローラ211により生成される時間データに関連付けられる。
ジャイロセンサ201は、ランナー100の運動中の動作方向の変化(角速度)を計測する。本実施形態においては、ジャイロセンサ201は、3軸角速度センサを有し、互いに直交する3軸について、各軸に沿った回転運動の回転方向に生じる角速度成分を検出して角速度データとして出力する。ここでは、図6に示されるように、互いに直交するx、y、zの3軸について、各軸の加速度成分の+方向に向かって右回り方向に生じる角速度成分を+の向きと規定する。ここで、x軸の回転方向に生じる角速度成分は、概ねランナー100の体軸の周りに生じる角速度に一致する。ジャイロセンサ201により取得された角速度データは、コントローラ211により生成される時間データに関連付けられる。
次に、コントローラ211が、図5のステップS503において、軸推定処理を実行する。図7は、軸推定処理の説明図である。センサ端末101を腰に装着した場合を例にすると、ランナー100は走っている時は、図7(a)に示されるように、前傾したり左右に傾いたりしている。加速度センサ202やジャイロセンサ201のデータをもとにこの傾きを推定し、図7(b)に示されるように、地球の中心から伸びる鉛直方向に対する軸に沿ったデータ、即ち、水平方向(地面の接線方向)に沿ってy軸及びz軸を取り、鉛直方向をx軸方向とした軸座標データに変換するのが軸推定処理である。この推定方式の一例として、例えば加速度センサ202の3軸出力とジャイロセンサ201の3軸出力をカルマンフィルタやローパスフィルタに入力することにより、地面(水平面)に対する加速度の3軸データと、角速度の3軸データを算出することができる。なお、本実施形態では、カルマンフィルタやローパスフィルタ以外の軸推定方式を採用してもよい。
次に、コントローラ211は、図5のステップS503において、周期推定処理を実行する。図8は、周期推定処理の説明図である。一般に、ランニングにおいては、例えば図8の上段に示すように、一方の足の蹴り出し(図では左足の離地)から、他方の足の接地(右足の接地)及び蹴り出し(右足の離地)、一方の足の接地(左足の接地)を経て、再び一方の足の蹴り出し(左足の離地)を行う、左右各1歩の計2歩分を1周期(ランニング周期)として定義することができる。一方、一連のランニング動作において、加速度センサ202により取得され軸推定処理により修正された加速度データのうち上下方向の加速度成分は、例えば図8の下段に示すように、左右の一歩毎に周期性を有する信号波形を示す。このことから、上下方向の加速度成分における2周期分が、ランニング動作における1周期(ランニング周期)に対応することになる。従って、加速度センサ202により取得され軸推定処理により修正された上下方向の加速度成分に基づいて、ランナー100が行ったランニング動作における1周期(右足と左足を交互に1回ずつ動かす一連の動作期間)毎の動作データを安定的に切り出すことができる。これとともに、当該一周期の時間を正確に計測することができる。なお、周期推定処理として、他の方式が採用されてもよい。コントローラ211は、この2歩分の1周期を算出することにより、単位時間あたりのランナー100の歩数すなわちピッチ[歩/分]を算出することができる。
次に、コントローラ211は、図5のステップS503において、上述のようにして算出したピッチと、図5のステップS502で算出した区間速度とに基づいて、ストライドを算出する。いま、区間速度[メートル/秒]を1分間あたりの速度に換算し、ピッチは1分間あたりのランナー100の歩数であるから、1歩あたりの歩幅すなわちストライド[メートル]は、「1分間あたりの速度÷ピッチ」として算出することができる。
更に、コントローラ211は、図5のステップS503において、ランナー100の上下動を算出する。前述した周期推定処理により、加速度センサ202により取得され前述した軸推定処理により修正された加速度データのうち上下方向の加速度成分は、例えば図8の下段に示されるように得られるから、これを積分することによりランナー100の上下動[センチメートル]を算出することができる。
加えて、コントローラ211は、図5のステップS503において、ランナー100の左右動を算出する。前述した周期推定処理により、加速度センサ202により取得され前述した軸推定処理により修正された加速度データのうち左右方向の加速度成分も、上下方向の加速度成分と同様に得られるから、これを積分することによりランナー100の左右動[センチメートル]を算出することができる。
コントローラ211は、図5のステップS503において、以上のようにして算出したピッチ[歩/分]、ストライド[メートル]、上下動[センチメートル]、及び左右動[センチメートル]を、メモリ212に順次記録してゆく。
図5の説明に戻り、コントローラ211は、図5のステップS501で入力した気圧センサ207からのセンサデータに基づいて、ランニング時の環境を示す状態値の一種である相対高度[メートル]を算出し、メモリ212に順次記録してゆく(ステップS504)。
そして、コントローラ211は、ステップS504で算出した相対高度を、ステップS502で算出した走行距離で微分し、アークサインを算出することにより、やはりランニング時の環境を示す状態値の一種である傾斜角度[度]を算出し、メモリ212に順次記録してゆく(ステップS505)。
以上説明したの処理により、コントローラ211は、図5に例示されるフローチャートで示される図4のステップS401の各状態値取得処理を終了し、取得部の機能を終了する。
以上の取得部の機能により、パフォーマンスを示す状態値である区間速度[メートル/秒]、及び、センサデータから求められる運動条件の一種である走行距離走行距離[キロメートル]が取得される。また、それぞれランナー100のフォームを示す状態値である、ピッチ[歩/分]、ストライド[メートル]、上下動[センチメートル]、及び左右動[センチメートル]が取得される。更に、それぞれランニング時の環境を示す状態値である、相対高度[メートル]及び傾斜角度[度]が取得される。このほか、取得部の機能として、ブレーキ成分又は接地時間等のフォームを示す状態値や、心拍数等のパフォーマンスを示す状態値が取得されてもよい。
図4の説明に戻り、次に図2のデータ分析・表示端末200のコントローラ211は、ステップS401で取得された各状態値の中から、2つの状態値の種別を、第1状態値種別及び第2状態値種別として指定する(ステップS402)。この動作は、コントローラ211が、操作指定部210及び表示部214を介してユーザ(ランナー100)に指定させてもよいし、予め定められた手順に従って自動的に選択してもよい。この結果、コントローラ211は例えば、第1状態値種別としてパフォーマンスを示す状態値である区間速度[メートル/秒]を指定し、第2状態値種別としてフォームを示す状態値であるストライド[メートル]を指定する。
次に、コントローラ211は、運動条件指定部の機能(ステップS403)を実行する。この機能において、コントローラ211は、操作指定部210及び表示部214を介してユーザ(ランナー100)に、運動条件を次の中から指定させる。
(1)走行区間。ステップS401内の図5のステップS502で算出された
走行距離[キロメートル]を、例えば1000[メートル]単位毎に
区切った区間として指定される。
(2)独走又は集団走のどちらであるか。ランナー100がランニング中に
図3のステップ302→S303で任意に入力した値として指定される。
(3)カーブ区間走行中又は直線区間走行中のどちらかであるか。
これについては、後述する。
ユーザは例えば、運動条件として、走行区間を指定する。
次に、コントローラ211は、表示制御部の機能(ステップS404〜S410)を実行する。
まず、コントローラ211は、ステップS402で指定した第1状態値種別及び第2状態値種別に対応するステップS401で算出された第1状態値及び第2状態値の組を、ステップS403でユーザに指定させた運動条件に基づいてグルーピングする(ステップS404)。ステップS401では、例えば走行距離[キロメートル]毎に第1状態値である区間速度[メートル/秒]と第2状態値であるストライド[メートル]が取得されている。そこで、コントローラ211は、この区間速度とストライドの組を、例えば1000[メートル]毎に区切った走行区間に分けてグルーピングする。
そして、コントローラ211は、この結果得られるグループ毎に、図2の表示部214上で各グループに対応する第1グラフ領域を描画するステップS405からS409の一連の処理を、ステップS410で全グループ処理したと判定されるまで、繰り返し実行する。
ステップS405からS409までの一連の処理において、まず、コントローラ211は、ステップS404のグルーピングにより得られる走行区間毎のグループのうちから1つのグループを選択し、その1つのグループに対応して図2のデータ分析・表示端末200の表示部214に表示させる第1グラフ領域(第1平面座標)を生成する(ステップS405)。
次に、コントローラ211は、ステップS405で生成した第1グラフ領域上で、第1状態値種別例えば区間速度をX軸(横軸)、第2状態値種別例えばストライド[メートル]をY軸(縦軸)として、ステップS401で取得されて現在のグループに分類されている第1状態値と第2状態値の組をプロットする(ステップS406)。
次に、コントローラ211は、ステップS405で生成した第1グラフ領域上に、事前に取得したユーザ本人のセンサデータに基づいて生成された標準データを重ねて表示させる(ステップS407)。
続いて、コントローラ211は、ステップS405で生成した第1グラフ領域上に、ステップS406でプロットした第1状態値と第2状態値の組を近似する第1近似式のグラフを重ねて表示させる(ステップS408)。
更に、コントローラ211は、ステップS405で生成した第1グラフ領域上に、ステップS407で表示した標準データを近似する第2近似式のグラフを重ねて表示させる(ステップS409)。
その後、コントローラ211は、ステップS404でグルーピングした全てのグループについて、ステップS405からS409までの一連の処理が完了したか否かを判定する(ステップS410)。
ステップS410の判定がNOならば、ステップS405の処理に戻る。
ステップS410の判定がYESならば、表示制御部の機能(ステップS404〜S410)を終了する。
図9から図11は、図4のステップS403で指定された運動条件が走行区間、ステップS402で指定された第1状態値種別が区間速度[メートル/秒]、第2状態値種別がストライド[メートル]である場合の、ステップS404にて走行区間でグルーピングされた各グループ毎の、ステップS405〜S410により表示部214上で描画される第1グラフ領域の表示例を示す図である。図9(a)は走行区間が0から1000[メートル]までのグループの表示例、図9(b)は走行区間が1000から2000[メートル]までのグループの表示例、図10(a)は走行区間が2000から3000[メートル]までのグループの表示例、図10(b)は走行区間が3000から4000[メートル]までのグループの表示例、図11は走行区間が4000から5000[メートル]までのグループの表示例である。各グループの第1グラフ領域の表示例において、801は取得された第1状態値(区間速度)と第2状態値(ストライド)の組のプロット例、802は図12に例示されるように予め得られている標準データのプロット例、803は取得値のプロット群801に対応する第1近似式、804は標準データのプロット群802に対応する第2近似式である。
以上の第1グラフ領域を図2の表示部214に描画する表示制御部の機能に加えて、コントローラ211は、表示制御部の追加機能(ステップS411、S412)を実行する。
この追加機能において、コントローラ211はまず、第2グラフ領域を描画するか否かを操作指定部210及び表示部214を介してユーザに指定させる(ステップS411)。
ステップS411の判定がYESの場合、コントローラ211は、表示部214上に第2グラフ領域(第2平面座標)を生成し、その第2グラフ領域上で、運動条件に対応する状態値種別をX軸、操作指定部210及び表示部214を介してユーザに選択させたパフォーマンスを示す状態値の状態値種別をY軸として、これら2つの状態値種別に対応するステップS401で取得された状態値の組をプロットする(ステップS412)。ステップS411の判定がNOの場合には、ステップS412による第2グラフ領域の描画は実行されない。例えば、コントローラ211は、運動条件である走行区間に対応する状態値種別である走行距離[キロメートル]をX軸、パフォーマンスを示す状態値種別である区間速度[メートル/秒]をY軸とする図13に例示される第2グラフ領域を描画する。
以上のようにして、ステップS404からS410までの表示制御部の機能により、運動条件例えば走行区間でグルーピングされたグループ毎の、第1状態値例えば区間速度と第2状態値例えばストライドの関係を示す第1グラフ領域が、それぞれ図9から図11に例示されるように、表示部214上に表示される。また、ステップS411とS412の表示制御部の追加機能により、運動条件例えば走行区間に対応する例えば走行距離の状態値とパフォーマンスを示す例えば区間速度の状態値との関係を示す第2グラフ領域が、表示部214上に表示される。なお、表示部214上への表示形態としては、各グループ毎の第1グラフ領域と第2グラフ領域を縮小して同時に並列表示してもよいし、各グラフ領域をユーザが順次切り替えて表示させてもよい。このような表示形態により、例えば各グループの第1グラフ領域中の各グラフ(第1グラフ)に対する第1の分析方法として、ユーザ(ランナー100)は、各グループの第1グラフを第2グラフ領域中のグラフ(第2グラフ)と見比べることができる。この見比べの結果、例えば図13に例示される第2グラフ1301を、破線1302として表示される全区間にわたる平均の区間速度と比較することにより、走行距離が3000[メートル]を過ぎた辺りからペースが落ちていることがわかる。これに対して、走行区間でグルーピングされた図9から図11の5区間の第1グラフを見ると、図10(a)、(b)及び図11に示されるように、実際には、走行距離が2000[メートル]を過ぎた辺りから、ペースを維持するために標準データ802よりも取得値801のほうがストライドが大きくなっていて、普段の走りができていないことがわかる。すなわち、本実施形態では、図13に例示されるように単純に運動条件に対応する状態値とパフォーマンスを示す状態値とを比較するだけでなく、運動条件毎にグルーピングされたグループ毎に、パフォーマンスを示す状態値とフォームを示す状態値とを比較することも可能となり、運動条件、パフォーマンス、フォームの観点から詳細なランニングの分析を行うことが可能となる。
図4のフローチャートにおいて、コントローラ211は更に、判定部の機能(ステップS413〜S415)を実行する。
この機能において、コントローラ211はまず、ステップS408で算出した取得値に対応する第1近似式と、ステップS409で算出した標準データに対応する第2近似式の平均距離を計算する(ステップS413)。
次に、コントローラ211は、ステップS413で計算した平均距離が既定値以上であるか否かを判定する(ステップS414)。
ステップS414の判定がYESならば、コントローラ211は、例えば表示部214の第1グラフ領域上で取得値のプロット群に対応する第2近似式(図9から図11の803)を視覚的に変化(点滅、変色)させることにより、あるいは特には図示しないアンプ及びスピーカから音声メッセージにより、報知を行う(ステップS415)。ステップS414の判定がNOならば、ステップS415の報知は実行しない。
以上の処理の後、コントローラ211は、図4のフローチャートで例示されるデータ分析処理を終了する。
以上のようにして、各グループの第1グラフ領域中の各第1グラフに対する第2の分析方法として、取得値のプロット群に対応する第1近似式(図9から図11の803)と標準データのプロット群に対応する第2近似式(図9から図11の804)の乖離の度合いを判定することができる。これに基づいて、例えば図10(a)、(b)、又は図11のような走行区間が後半になる場合では、第1近似式803が第2近似式804から既定値以上乖離しているとして、ユーザへの報知がなされる。これにより、ユーザは、運動条件である走行区間が後半になるに従って、区間速度を維持しようとしてストライドが大きくなる傾向があることを認識することができる。
なお、上記判定部の機能において、「センサデータ範囲内」での乖離度が算出されてもよい。例えば、図9の例において、区間速度(X軸)が4.8〜5.2[メートル/秒]の間での直線近似式間の平均距離を求める。近似式は直線でなくてもよい。また、標準データの近似式を求め、所定範囲内(例えば、図9のX=4.8〜5.2)での2つの近似式の平均距離を求めてもよい。
図14は、図4のステップS403でユーザにより指定された運動条件が独走/集団走、ステップS402で指定された第1状態値種別が区間速度[メートル/秒]、第2状態値種別がストライド[メートル]である場合の、ステップS404にて独走又は集団走のいずれであるかによってグルーピングされた各グループ毎の、ステップS405〜S410により表示部214上で描画される第1グラフ領域の表示例を示す図である。図14(a)は独走グループの表示例、図14(b)は集団走グループの表示例である。
各グループの第1グラフ領域の表示例において、801は、図4のステップS401で取得された第1状態値(区間速度)と第2状態値(ストライド)の組の、図4のステップS406によるプロット例である。802は、予め得られている標準データの、図4のステップS407によるプロット例である。803は、取得値のプロット群801に対応して図4のステップS408で算出される第1近似式の表示例である。804は、標準データのプロット群802に対応して図4のステップS409で算出される第2近似式の表示例である。
独走/集団走の運動条件は、図3のステップS302→S303でユーザによりランニング中に指定されたものであり、図4のステップS401の第1状態値(区間速度)、及び第2状態値(ストライド)の組の取得時に、一緒に取得できている。従って、図4のステップS404において、第1状態値(区間速度)、及び第2状態値(ストライド)の各組を、独走又は集団走の運動条件に基づいて、独走中の各状態値のグループと、集団で走行中の各状態値のグループとにグルーピングすることができる。
図14に例示される第1グラフ領域の表示の後に、コントローラ211が、前述した判定部の機能(図4のステップS413〜S415)を実行することにより、図14(a)の独走グループの場合と、図14(b)の集団走グループの場合のそれぞれにおいて、取得値のプロット群に対応する第1近似式803と標準データのプロット群に対応する第2近似式804の乖離の度合いを判定することができる。これに基づいて、例えば図14(b)の集団走の場合では、第1近似式803が第2近似式804から既定値以上乖離しているとして、ユーザへの報知がなされる。これにより、ユーザは、運動条件が集団走である場合に、集団に引っ張られて自分の普段の走り以上にストライドが大きくなる傾向があることを認識することができる。
図15は、図4のステップS401で取得される状態値である走行距離と相対高度の関係、走行距離と傾斜角度の関係、及び走行距離と傾斜角度及び上下動の関係を示す図である。図5のステップS504及びS505で説明したように、図5(a)の走行距離と相対高度の関係において、気圧センサ207から得られる相対高度を走行距離で微分しアークサインを算出することによって、図5(b)の関係を有する傾斜角度を算出することができる。更に、図5(c)において、図5(b)で示した走行距離と傾斜角度の関係1501に、図5のステップS503で算出される上下動の関係1502を重ねてプロットすると、ランニング走路の傾斜角度とランナー100の上下動は、相関関係があることがわかる。
そこで、図4のステップS403で運動条件として走行区間を指定し、ステップS402で第1状態値種別を傾斜角度[度]、第2状態値種別を上下動[センチメートル]に指定する。この結果、図16に例示されるような、図4のステップS404にて走行区間でグルーピングされた或るグループについてステップS405〜S410により表示部214上で描画される第1グラフ領域の表示例を得ることができる。中央のラインとして、標準データも同時に表示されている。このような表示形態により、走路の傾斜角度とランナー100の体の上下動との関係が走行区間毎にどのように変化するかを分析することができる。
上述の実施形態では、第1状態値種別と第2状態値種別の組の例として、パフォーマンスを示す状態値の種別である区間速度とフォームを示す状態値の種別であるストライドとを第1グラフとして対比させた(図9〜図11、図14)。あるいは、環境を示す状態値である傾斜角度とフォームを示す状態値の種別である上下動とを第1グラフとして対比させた(図16)。これに対して、他のパフォーマンス又は環境を示す状態値と他のフォームを示す状態値とを対比させてもよい。他のパフォーマンスを示す状態値としては、区間速度のほかに、心拍数等を選択できる。他の環境を示す状態値としては、傾斜角度のほかに、相対高度を選択できる。他のフォームを示す状態値としては、ストライド、上下動のほかに、ピッチ、ブレーキ成分、左右動、又は接地時間等を選択できる。なお、運動条件としては、図4のステップS403で前述したように、走行区間、独走又は集団走の別、カーブ区間走行中又は直線区間走行中の別等を選択できる。
図17は、図4のステップS403で指定された運動条件が走行区間、ステップS402で指定された第1状態値種別が区間速度[メートル/秒]、第2状態値種別がピッチ[歩/分]である場合の、ステップS404にて走行区間でグルーピングされた各グループ毎の、ステップS405〜S410により表示部214上で描画される第1グラフ領域の表示例を示す図である。図17(a)は走行区間が0から1000[メートル]までのグループの表示例、図17(b)は走行区間が1000から2000[メートル]までのグループの表示例、図17(c)は走行区間が2000から3000[メートル]までのグループの表示例、図17(d)は走行区間が3000から4000[メートル]までのグループの表示例、図17(e)は走行区間が4000から5000[メートル]までのグループの表示例である。図17において、取得された第1状態値(区間速度)と第2状態値(ピッチ)の組のプロット群、標準データのプロット群、取得値のプロット群に対応する第1近似式、標準データのプロット群に対応する第2近似式の関係は、図9の場合と同様である。図17に例示される第1グラフ領域の表示の後に、コントローラ211が、前述した判定部の機能(図4のステップS413〜S415)を実行することにより、走行区間の各グループにおいて、取得値のプロット群に対応する第1近似式と標準データのプロット群に対応する第2近似式の乖離の度合いを判定することができる。これに基づいて、例えば図17(c)、(d)、(e)のような走行区間が後半になる場合では、第1近似式が第2近似式から既定値以上乖離しているとして、ユーザへの報知がなされる。これにより、ユーザは、運動条件である走行区間が後半になるに従って、ピッチが減少して区間速度を維持できなくなる傾向があることを認識することができる。
運動条件としては、図4のステップS403で前述したように、カーブ区間走行中又は直線区間走行中の別が選択された場合、例えば特願2014−133635号出願、特願2014−133769号出願に開示されているトラックマッチングによる推定法により、カーブ区間走行中に検出したセンサデータと、直線区間走行中に検出したセンサデータとをグルーピングすることができる。
図18は、データ分析・表示端末200が実行する標準データ生成処理の例を示すフローチャートである。この処理は、コントローラ211がメモリ212に記憶された制御プログラムを実行する処理として実現される。
まず、コントローラ211は、第1状態値種別(第1グラフ領域のX軸)をユーザ(ランナー100)に選択させるよう促す表示を表示部214に表示する。ユーザは、例えば操作指定部210のタッチパネル上で、パフォーマンスを示す状態値の種別である走行距離、区間速度、又は環境を示す状態値の種別である相対高度、傾斜角度等の中から1つを第1状態値種別として選択(タップ)する(ステップS1801)。
次に、コントローラ211は、第2状態値種別(第1グラフ領域のY軸)をユーザに選択させるよう促す表示を表示部214に表示する。ユーザは、例えば操作指定部210のタッチパネル上で、フォームを示す状態値の種別であるピッチ、ストライド、上下動、左右動等の中から1つを第1状態値種別として選択(タップ)する(ステップS1802)。
続いて、コントローラ211は、第1状態値と第2状態値の組の集計範囲をユーザに選択させるよう促す表示を表示部214に表示する。ユーザは、例えば操作指定部210のタッチパネル上で、例えばランニング期間(いつからいつまで)の指定等により、集計範囲を選択(タップ)する(ステップS1803)。ここで、ユーザは、集計範囲の一部として運動条件を指定することもできる。ユーザは、標準データを生成するときに、この運動条件を指定することにより、例えば走行区間毎の取得結果、独走時の取得結果、集団走時の取得結果、練習走時の取得結果、又は競技会での走行時の取得結果等のみを集計して標準データを生成するように、絞込み指定を行うことができる。
コントローラ211は、ステップS1801からS1803の指定に基づいて、メモリ212上のステップS1803にて指定された集計範囲に記憶されている第1状態値と第2状態値の取得データの組を集計することにより、第1状態値(X軸)と第2状態値(Y軸)の相関関係を示すデータを生成する(ステップS1804)。
次に、コントローラ211は、ステップS1804で生成されたデータの分散と標準偏差を算出する(ステップS1805)。
そして、コントローラ211は、ステップS1805で算出された標準偏差に基づいて、所定の標準偏差の範囲外にある分布両端のデータを除外する(ステップS1806)。
コントローラ211は、ステップ1106の除外で残ったデータを用いて、X軸の離散値毎のY軸の平均値を算出し、X軸及びY軸の算出結果の組とともに、その平均値を標準データとしてメモリ212に記憶させる。このようにして算出された標準データが、図4のステップS407で用いられる。
以上説明した実施形態では、ジャイロセンサ201、加速度センサ202、GPS受信機203、及び気圧センサ207のセンサデータ出力に基づいて、走行距離、区間速度、ピッチ、ストライド、上下動、相対高度、傾斜角度等の各状態値がランニング中に算出されて記録されたが、これに限られるものではなく、さまざまなセンサデータの出力や算出結果として物理量を採用することができる。
なお、以上説明した実施形態をまとめると、ランナー100の運動のパフォーマンスを示す状態値としては、速度、及び、心拍数のうちのいずれかを含んで良く、運動時の環境を示す状態値としては、相対高度、及び、傾斜角度のうちのいずれかを含んで良く、運動のフォームを示す状態値としては、ピッチ、上下動、ブレーキ成分、左右動、及び、接地時間のうちのいずれかを含んで良い。さらに、ランナー100が運動する際の運動条件としては、当該運動がランニングであるときには、当該ランニングの走行区間、当該ランニング中に独走又は集団走のいずれであるか、及び、当該ランニング中にカーブ区間走行中又は直線区間走行中のどちらであるか、のいずれかを含んで良い。
以上のようにして、本実施形態では、自分の運動中のフォーム情報、生体情報やパフォーマンス情報、環境情報に関する複数のセンサデータの算出結果を組み合わせて、様々な観点の相関関係を分析、表示することが可能となる。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
ユーザの運動に伴ってセンサから出力されたセンサデータに基づいて、前記運動に関連する第1状態を表す複数の第1状態値、及び、前記運動に関連する第2状態を表す複数の状態値であって前記複数の第1状態値と組をなす複数の第2状態値を取得する取得部と、
前記運動時の運動条件を指定する運動条件指定部と、
前記取得部により取得した複数組の状態値を、前記運動条件に基づいて分けられた複数のグループであってかつそれぞれが複数組の状態値を含む前記複数のグループに分けて、前記複数のグループに分けられた前記複数組の状態値を、比較対象となる標準データとともに、一方の軸が前記運動の第1状態を表しかつ他方の軸が前記運動の第2状態を表す第1平面座標上にプロットし、前記グループ毎に分けて、第1の表示として、表示部に表示させる表示制御部と、
を備える表示制御装置。
(付記2)
前記運動条件は、前記運動中に前記ユーザにより指定できる、付記1に記載の表示制御装置。
(付記3)
前記表示制御部は、
出力された前記センサデータを、一方の軸が前記運動条件を表しかつ他方の軸が前記運動のパフォーマンスを表す第2平面座標上にプロットし、第2の表示として、表示部に表示させる、
付記1又は2に記載の表示制御装置。
(付記4)
前記表示制御部は、前記グループ毎に分けられた結果同じ前記第1平面座標上にプロットされる前記第1状態値と前記第2状態値の複数組の値に基づいて第1近似式を取得して前記第1平面座標上に表示し、前記標準データの第2近似式を取得して前記第1平面座標上に表示し、
前記第1近似式及び前記第2近似式の差が既定値に比較して大きいか否かを判定する判定部を更に備える、
付記1ないし3の何れかに記載の表示制御装置。
(付記5)
前記第1状態値は、前記運動のパフォーマンス又は前記運動時の環境を示す状態値であり、
前記第2状態値は、前記運動のフォームを示す状態値である、
付記1ないし4の何れかに記載の表示制御装置。
(付記6)
ユーザの運動に伴ってセンサから出力されたセンサデータに基づいて、前記運動に関連する第1状態を表す複数の第1状態値、及び、前記運動に関連する第2状態を表す複数の状態値であって前記複数の第1状態値と組をなす複数の第2状態値を取得し、
前記運動時の運動条件を指定し、
前記取得した複数組の状態値を、前記運動条件に基づいて分けられた複数のグループであってかつそれぞれが複数組の状態値を含む前記複数のグループに分けて、前記複数のグループに分けられた前記複数組の状態値を、比較対象となる標準データとともに、一方の軸が前記運動の第1状態を表しかつ他方の軸が前記運動の第2状態を表す第1平面座標上にプロットし、前記グループ毎に分けて、第1の表示として、表示部に表示させる、
表示制御方法。
(付記7)
ユーザの運動に伴ってセンサから出力されたセンサデータに基づいて、前記運動に関連する第1状態を表す複数の第1状態値、及び、前記運動に関連する第2状態を表す複数の状態値であって前記複数の第1状態値と組をなす複数の第2状態値を取得するステップと、
前記運動時の運動条件を指定するステップと、
前記取得した複数組の状態値を、前記運動条件に基づいて分けられた複数のグループであってかつそれぞれが複数組の状態値を含む前記複数のグループに分けて、前記複数のグループに分けられた前記複数組の状態値を、比較対象となる標準データとともに、一方の軸が前記運動の第1状態を表しかつ他方の軸が前記運動の第2状態を表す第1平面座標上にプロットし、前記グループ毎に分けて、第1の表示として、表示部に表示させるステップと、
をコンピュータに実行させるためのプログラム。