スケジュール
短期的なスケジュール
- 速度を変えてUnityでアニメーション
- データをとる
- アニメーションをつける
- エレベーターと歩きを判別する
- データをとる
- グラフ化
- フーリエ変換
- 判別する
進捗
速度を変えてUnityでアニメーション
前回
速度差を再現したけど分からづらかった
データをとる
場所
1号館 5階-7階
取り方
- 腰にポーチをつける
- Pixel5 (Android)
- Pyphox
- 気圧センサー
- 加速度センサー
- 角速度センサー
5-6階: 歩く(1段ずつ)
6-7階: 走る(2段ずつ)
速度差をつけた動作のアニメーション
(実際の4倍速になっている)
速度に応じて歩幅も変わっている
=> 加速度を元に歩幅を計算する
“二乗平均誤差(RMSE)を出す” で使用した式
step = 0.1 * norm - 0.5
加速度を元に歩幅を変えたアニメーション
いい感じ
進行方向を計算から求める
進行方向の求め方
UnityEngine.Vector3 current = positions[currentIndex]; // 現在の座標
UnityEngine.Vector3 next = positions[currentIndex + 1]; // 次の座標
UnityEngine.Vector3 vector = next - current;
// 進行方向
float angleY = MathF.Atan2(vector.x, vector.z) * 180 / Mathf.PI;
進行方向を表示したアニメーション
(移動ツールの矢印を表示している)
いずれ オブジェクト自体を変形させて進行方向をわかりやすくしたい
エレベーターと歩きを判別する
データをとる
場所
1号館 5階-7階
取り方
- 腰にポーチをつける
- Pixel5 (Android)
- Pyphox
- 気圧センサー
- (加速度センサー)
- (角速度センサー)
気圧センサーの値
移動平均フィルターをかけたもの
前後40サンプル(0.1s)
エレベーターと徒歩の差 を出す方法
フーリエ変換する
フーリエ変換とは
異なる波数の波がどれくらい含んでいるかがわかる
=> 徒歩の場合は歩きの振動の周波数が現れる?
フーリエ変換したグラフ
0Hz
で盛り上がっているが他はほぼ 0
原因
- フーリエ変換のやり方の問題
- => 調べても間違ってはなさそう
- データの問題
- => 別のデータで試してみる
さまざまな音をフーリエ変換したグラフ
(ハッカソンに向けて)
=> プログラムは合ってた0Hz
が大きすぎて相対的に小さくなっている?
拡大したグラフ
0 ~ 800000
=> 0 ~ 10
移動平均フィルターをかけたもの
前後40サンプル(0.1s)
メモ
エレベーターと徒歩の差
フーリエ変換(外山先輩より)
エレベーターと徒歩は気圧だけよりも、加速度などと組み合わせてやる
歩いていないのに気圧さがっている
=> エレベーター
一定間隔で区切って判定する
=> スライド
1段飛ばしは難しい
階段の場合は歩幅を定数でやると良い
フーリエの特徴的な点はスマホを取り出した時ので使えない
1.4Hz
あたりに特徴が出るのが理想