投稿

3月, 2010の投稿を表示しています

万歩計文化の謎

SmartTraining1.7.xでおかしかった万歩計の感度を修正するまでいろいろとコメントを頂きました。 その際、日本語圏とそれ以外の国での万歩計の地位が微妙に違うような気がしました。 これまで、ずっと日本語圏の方からのコメントは凄く少なかったんです。 逆にそれ以外の国(英語しか理解できませんが)からはいろんな意味で非常にアツいコメントをたくさんいただいていました。 1.7.xのリリース後は、逆に日本語圏の方からのコメントをたくさんいただきました。主に万歩計の感度に関して。英語圏の方からはそれほどコメントは頂きませんでした。 ひょっとして、万歩計って日本だけ? ちょっと謎です。 さて、今週末は志賀スタンプラリー、レッツリトライです。

万歩計ロジック

ここ何週間か、歩きまくりました。 万歩計の加速度データ取るために。 デバッグより何よりこれが時間かかりました。 ようやくSmartTraining 1.8.0リリースしました。 結局、現時点での歩数の測り方はこうなってます。 ①XYZ方向の加速度の絶対値を合計します。  →端末がどの角度でセットされるかわからないため。 ②前後5つの生データ(①)の平均をとって高周波成分をフィルタします。  →意外とこれは不要だったかも、と後になって思いました。歩く、走るだとそんなに悪影響を及ぼす高周波成分は多くない。 ③①から②を引いてハイパスフィルタかまします。 ④③で出た加速度を微分して加速度値の山を見つけます。また、山の値を確保Xします。山が来るたび、Xを確保しなおします。 ⑤加速度の山が来るたび、Xで割って正規化します。  →これにより運動強度が途中で変化しても固定の感度値に頼らず万歩計が追従できるようにします。  →今回のバージョンから万歩計感度が無くなったのはこのためです。  →ただし、急激な運動強度変化直後は反応できません。そんなの気にしない。 ⑥⑤の値が一定の割合以上であれば、振動とみなして歩数カウントします。  →歩数カウント後、一定時間不感タイムを設けます。   これにより加速度の山前後の微妙なブレの影響を回避します。 コードはまだまだ汚いので出すとしても整理して落ち着いてからかなぁ。 それにしても加速度の扱いは微妙すぎて自分には難しい。 もっとスキルある人だったら楽勝なんでしょうねぇ。 誰かもっといい方法教えてください。