梶研 05/10 - 05/16
スケジュール Unityでアニメーション 進捗 Unityでアニメーション c#スクリプトの注意点 ファイル名とクラス名を一致させなければならない
(2時間無駄にした…)
オブジェクトの移動(キーボード) this.transform.position = new Vector3(x, y,z);
単純な移動はこれだけ
軌跡に沿ったオブジェクトの移動 void Start() { ... while (!reader.EndOfStream) { string[] line = reader.ReadLine().Split(','); float x = float.Parse(line[1]); float y = float.Parse(line[2]); float z = float.Parse(line[3]); positions.Add(new Vector3(x, z, y)); } ... } void Update() { // アニメーションを実行する timer += Time.deltaTime * 4; if (timer >= 1f) { Debug.Log(timer); currentIndex++; if (currentIndex >= positions.
梶研 05/03 - 05/09
スケジュール 3次元の歩行軌跡 計測 二次元グラフ化 三次元グラフ化(Python) 三次元グラフ化(Unity) 進捗 計測 4号館別館の1階(階段前)から3階(トイレ前)へ
使用機器など Android Xperia Phyphox 加速度センサー 角速度センサー 気圧センサー 二次元グラフ化 各センサーの値 (前後40サンプルの移動平均フィルターをかけてある)
二次元グラフ(加速度, 角速度) 1-2階と2-3階が1.5mほどずれている
=> 階段の歩幅と平坦部の歩幅が異なるから?
三次元グラフ化(Python) 気圧から高さを出す 1気圧の環境で 1hPa 下がると 10m 上があるとして計算
三次元グラフ 三次元グラフ(横から) 階段を登っている様子はわかるが、沈んでしまっている(?)
=> もっと平滑化すべき?
平滑化を強めた(?)グラフ 前後160サンプルで平滑化
やりすぎだが、フィルター次第で綺麗にできる問題だと分かった
三次元グラフ化(Unity) Pythonで座標をcsvで書き出して、c#で読み込む
c#スクリプト
少数16桁ある場合は System.Globalization.NumberStyles.Float が必要となる
float.Parse(line[0], System.Globalization.NumberStyles.Float); 動かしながら見れるようになった
メモ kajilab.net 論文 > 梶克彦,河口信夫,安定センシング区間検出に基づく3次元歩行軌跡推定手法, 情報処理学会論文誌,Vol.57, No.1, pp.12-24,2016. (特選論文)
直線や直角,並行な部分を割り出して綺麗にする研究
長期的にみてやる
情報処理学会 入っておくと良い
TODO: - 直線や直角,並行な部分を割り出して綺麗にする - Unity で時間通りのアニメーションにする
梶研 04/26 - 05/02
スケジュール 二乗平均誤差(RMSE)を出す 計測 グラフ化 二乗平均誤差を出す 誤差を減らす 3次元の歩行軌跡 計測 グラフ化 進捗 計測 5歩 + 90度左 + 8歩(大きく) + (3歩)
歩幅に合わせて合わせて目印をつけ、歩く
実測した軌跡 加速度, 角速度, 角度グラフ 1歩を赤丸でプロット
角速度を積分して角度を出した
ピークの条件 高さ 11m/s^2 以上 間隔 0.3s 以上(30サンプル) 顕著度(?)の閾値 3.5以上 signal.find_peaks(df_acc[‘low_norm’], height=11, distance=30, prominence=3.5)
いい感じ…?
軌跡 90度左向いたはずが明らかに無い
原因 角度のグラフ をみてみると… 約6.2rad => 約360度
(先週の記録は 約1.75rad)
角速度を見てみると先週の約10倍
角度を *0.1 してみる
軌跡(角度*0.1) なぜ *0.1 する必要があるかは分からない
=> 反対に いくつ掛ければ90度になるか を考えてみる
軌跡(角度*0.26) ぐねぐねしてるけど理想はこんな感じ
梶研 04/19 - 04/25
スケジュール 歩行軌跡の可視化 データを取得する 加速度, 角速度をグラフ化 歩行軌跡を表示する 加速度の大きさに合わせて歩幅を変えてみる 進捗 データを取得する 使用機器等 iPhone 12 iOSアプリを制作 前回使用した phyphox は2つ以上のデータの取得ができなさそうだった
(やり方あった)
charGPTに聞きながら作った 結局使わなかった
取得方法 腰にポーチを付けてスマホを入れた
画面(z軸)を正面に、ジャイロのx軸左回りを正
10歩 + 左90度 + 5歩
加速度, 角速度をグラフ化 使用言語等 Python 3.10.10 pandas matplotlib numpy signal itertools 加速度と角速度, 角度のグラフ 1歩を赤丸でプロット
角速度を積分して角度を出した
条件 高さ 11m/s^2 以上 間隔 0.3s 以上(30サンプル) 歩行軌跡を表示する アルゴリズム 0歩の時点を (0, 0) とする
1歩 70cm とする
1歩進んだ時の角度(α)を出す
α度の方向に70cm進んだ位置にプロット
梶研 04/11 - 04/18
スケジュール Androidアプリ開発 お試し Android Stdio の設定 加速度センサーを見るアプリをつくる ファイル出力する ファイルをPCに移す 加速度から距離を出してみる 加速度センサーの値を取る(直線運動) Pythonでグラフ化する 加速度グラフを距離グラフにする 相対時間にする 歩数推定 加速度センサーの値を取る(歩行) Pythonでグラフ化し、フィルターをかける 歩数を取得する 進捗 Androidアプリ開発 お試し 参考サイト 01_HelloAndroid 02_Sensor 03_Output リポジトリ AndroidSensor
変更点 APIレベルに合わせたコードに変更 TextView を行ごとに分割した 加速度から距離を出してみる 加速度センサーの値を取る スマホをx軸正の方向に約[TODO]cm動かした 環境 端末 iPhone 12 センサー取得アプリ phyphox Pythonでグラフ化する グラフ化 Python3.10.10 使用ライブラリ pandas matplotlib numpy 加速度グラフを距離グラフにする 加速度[m/s^2] を微分すると 速度[m/s] になる 速度[m/s] を微分すると 距離[m] になる 問題点 速度グラフ, 距離グラフ の形がおかしい 微分 と 積分 を逆に認識していた 速度, 距離の値が大きすぎる サンプリング周波数(100Hz)を考慮していなかった 最終的なグラフ 歩数推定 加速度センサーの値を取る(歩行) まっすぐ5歩 スマホのz軸正が上向き、y軸正が左向きになるように腰の位置で手に持った Pythonでグラフ化し、フィルターをかける 平滑化フィルター > (N0 + N-1 + N-2 + N-3 + N-4) / 5