佐藤さとる

佐藤さとる

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

2023年05月02日

二乗平均誤差を出す

出席率

スケジュール

短期的な予定

長期的な予定

未定

ハッカソンに参加したい

進捗報告

計測

5歩 + 90度左 + 8歩(大きく) + (3歩)

歩幅に合わせて合わせて目印をつけ、歩く

実測した軌跡

単位は cm

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

output_1.png (293.2 kB)

1歩を赤丸でプロット

角速度を積分して角度を出した

ピーク(1歩)の条件

signal.findpeaks(dfacc['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月から飛ばしすぎた...

<video controls width="480" alt="名称未設定.mp4 (4.8 MB)" src="https://esa-storage-tokyo.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/13979/2023/05/02/148142/6885fd1e-f945-4c30-9da6-307293f04bad.mp4"></video>

GCF で LINE BOT 作ってあそんだ