佐藤さとる

佐藤さとる

梶研 [センシングはじめました]

2023年04月18日

センシングはじめました

出席率

スケジュール

短期的な予定

長期的な予定

未定 (歩行軌跡の可視化をしてみたい)

Androidアプリ開発 お試し

参考サイト

リポジトリ

AndroidSensor

変更点

加速度から距離を出してみる

加速度センサーの値を取る

スマホをx軸正の方向に30cm動かした

環境

Pythonでグラフ化する

加速度グラフを距離グラフにする

※間違い

x軸の加速度, 速度,距離グラフ (誤り1)

速度, 距離グラフ の形がおかしい

微分積分 を逆に認識していた

(気付くのに3時間掛かった...)

x軸の加速度, 速度,距離グラフ (誤り2)

miss2.png (166.4 kB)

形はそれっぽくなった

値が明らかに大きすぎる

→サンプリング周波数を考慮していなかった

面積分のイメージ

a.png (20.8 kB)

面積分は1本1本の面積を足していくもの

面積ではなく長さ(図で言う縦)を足していた

→ 全ての値に x0.01(100Hz) する

最終的なグラフ

move-60cm.png (165.6 kB)

歩数推定

加速度センサーの値を取る(歩行)

まっすぐ5歩

(スマホのz軸正が上向き、y軸正が左向きになるように腰の位置で手に持つ)

グラフ化 & フィルター

平滑化フィルター

平滑化1
walk2-avg5.png (334.9 kB)
(N0 + N-1 + N-2 + N-3 + N-4) / 5

(N0が現在の値)

サンプリング周波数100Hzなので、5つの平均ではあまり意味がない?

平滑化2
walk2-avg10.png (319.5 kB)
(N0 + N-1 + N-2 + ... + N-9) / 10

だいぶ滑らかになったが、1歩に対し頂点が複数ある

平滑化3
walk2-avg20.png (317.2 kB)
(N0 + N-1 + N-2 + ... + N-19) / 20

1歩に対し1頂点になった。

(平滑化フィルターだけでいいのだろうか)

過去との平均の為、波が大きく後ろにずれた。

より良いやり方があるらしい

歩数推定(esa)

rolling_mean = data.rolling(window=10).mean()

加速度のノルムのグラフ

smooth-x3.png (77.6 kB)
norm: そのままのデータ
自作関数: さっきまでのやり方
pandas.rolling(): 良さそうなやり方

pandas.rolling() を上手く使ったほうが良い

歩数を取得する

ピーク検出

step.png (64.9 kB)

赤丸が 6つ

→ 6歩?

正しくは5歩

原因

5歩ののちに立ち止まる時の足を揃える動作も含まれてしまった

データを取り直す

進路関係

なし