SatooRu's Profile

全ての記事梶研の進捗日常の記録制作物一覧

梶研 [二乗平均誤差を出す]

2023年5月2日

thumbnail

二乗平均誤差を出す

出席率

  • 3年セミナー:??%

スケジュール

短期的な予定

  • 二乗平均誤差(RMSE)を出す
    • 計測
    • グラフ化
    • 二乗平均誤差を出す
    • 誤差を減らす

長期的な予定

未定
ハッカソンに参加したい

進捗報告

計測

5歩 + 90度左 + 8歩(大きく) + (3歩)
歩幅に合わせて合わせて目印をつけ、歩く

実測した軌跡

trajectory.png (7.5 kB)

単位は cm

加速度, 角速度, 角度グラフ

output_1.png (293.2 kB)

1歩を赤丸でプロット
角速度を積分して角度を出した

ピーク(1歩)の条件

  • 高さ 11m/s^2 以上
  • 間隔 0.3s 以上(30サンプル)
  • 顕著度(?)の閾値 3.5以上

signal.find_peaks(df_acc['low_norm'], height=11, distance=30, prominence=3.5)

軌跡

output_2.png (31.0 kB)

90度左向いたはずが明らかに無い

原因

角度のグラフ をみてみると... 約6.2rad(約360度)
(先週の記録は `約1.75rad`)

角速度は先週の約10倍

角度を *0.1 してみる

軌跡(角度*0.1)

output_3.png (152.5 kB)

ぽくなったが、なぜ *0.1 する必要があるかは分からない
=> 反対に いくつ掛ければ90度になるか を考えてみる

軌跡(角度*0.26)

output_4.png (115.9 kB)

ぐねぐねしてるけど理想はこんな感じ

0.26 って何者...

1 / 0.26 = 3.84

3.14?
=> 弧度法と度数法の云々かと思ったけど違った

積分 & 値が大きくなる => サンプリング周波数?

計測時間 13.312s
サンプル数 5445

13.312 / 5445 = 0.002444811754

0.26 * 0.01 に似ている...

5445 / 13.312 = 409.02944711538

サンプリング周波数 `約400Hz`
=> iPhoneの100Hz のまま計算していた

output_5.png (116.6 kB)

だいたい理想のグラフになった

実際の軌跡も表示したグラフ

output_6.png (87.2 kB)

大きくずれているがひとまず置いておく

二乗平均誤差を出してみる

計算方法

各点同士の差の合計を点の数で割る

√((x1 - x2)^2 + (y1 - y2)^2) / n

(TeX書けるようになりたいな...)

結果

RMSE : 1.8939717262144389
=> 平均で 約1.89m の誤差

大きすぎる

誤差を減らしてみる

加速度(ノルム)をx軸, 実際の歩幅をy軸として散布図に描画

歩幅と加速度の関係

output_7.png (38.0 kB)

全然きれいにならない(理想は一直線)
=> あらかじめ付けた印に合わせて歩幅を変えたから?

ひとまず無理やり一次関数にする

無理やり一次関数にしたグラフ

output_8.png (45.9 kB)

step = 0.1 * norm - 0.5

この式を使って軌跡を描く
output_9.png (94.0 kB)

まだ大きくずれている

軌跡が一番ぽくなったグラフ

output_10.png (94.8 kB)

RMSE: 0.997

まだ大きくずれている
軌跡はぽいが、歩幅が明らかにおかしい

RMSEが最小となったグラフ

output_11.png (98.9 kB)

RMSE: 0.788

step = 0.269 * norm - 0.3.043

それでも 0.788 は大きすぎる...
=> データの取り方の問題?

今回
印を付ける → 印に合わせて歩く

変更
普通に歩く → 動画から歩幅を割り出す

余談

IMG_3965.jpeg (3.1 MB) IMG_3990.jpeg (3.0 MB) IMG_4018.jpeg (3.2 MB)

シス研にてピザとかホットケーキとかたませんとか食べたりetc.
4月から飛ばしすぎた...

GCF で LINE BOT 作ってあそんだ