梶研 05/31 - 06/06

スケジュール 短期的なスケジュール エレベーターと歩きを判別する データをとる 歩いているかを判別する 上り下りしているかを判別する エレベーターと歩きを判別する 正解データと比較 追加でデータとる 技育CAMP ハッカソン テーマ決め 開発練習 7/9 キックオフ 7/16 本番 エレベーターと歩きを判別する(続き) 変更点 上り下りしているかの判別方法 1秒ごとに区切り, 回帰直線を求める. 参考: スマートフォンを用いた階段利用判定 傾きの絶対値が 0.012以上 の場合は上り下りしているとみなす(青色) 0.012未満 の場合は止まっているとみなす(黄色) 傾きの絶対値のグラフ 平滑化フィルター 移動平均フィルター ではなく メディアンフィルター を使用した. 実際とのズレが縮まった 気圧と判別結果 灰: 元データ 青: 移動平均フィルター(前後120サンプル) 黒: メディアンフィルター(前後120 + 1サンプル) 結果 青: 歩いている || 上り下りしている 黄: 止まっている 赤: 階段 青: エレベーター 黄: 歩行 緑: 待機 気圧と正解データを見比べると, エレベータを降りた後も 上り下りしている判定になっている => 傾いているから, プログラムではなくデータが悪い(?) => エレベータを降りた時など, 一度止まるとよい より多くのデータ データ2 青: 歩いている || 上り下りしている 黄: 止まっている 赤: 階段 青: エレベーター 黄: 歩行 緑: 待機 データ3 青: 歩いている || 上り下りしている 黄: 止まっている 赤: 階段 青: エレベーター 黄: 歩行 緑: 待機 データ3 青: 歩いている || 上り下りしている 黄: 止まっている 赤: 階段 青: エレベーター 黄: 歩行 緑: 待機 メモ 気圧センサーとステップ 気圧値と回帰直線 梶克彦,河口信夫,安定センシング区間検出に基づく3次元歩行軌跡推定手法, 情報処理学会論文誌,Vol....

2023-6-6 · 1 min · 126 words · SatooRu

梶研 05/24 - 05/30

スケジュール 短期的なスケジュール エレベーターと歩きを判別する データをとる 歩いているかを判別する 上り下りしているかを判別する エレベーターと歩きを判別する 正解データと比較 改善 技育CAMP ハッカソン 7/9 キックオフ 7/16 本番 エレベーターと歩きを判別する データをとる 場所 1号館 5階-7階 取り方 腰にポーチをつける Pixel5 (Android) Pyphox 気圧センサー 加速度センサー 角速度センサー 歩いているかを判別する 加速度(ノルム)のグラフ 重力加速度を除いている df[“x”] = df[“x”] - df[“x”].mean() df[“y”] = df[“y”] - df[“y”].mean() df[“z”] = df[“z”] - df[“z”].mean() 方法 1秒ごとに区切り、それぞれの分散を計算する 判別基準 分散が 0.1以上 の場合は歩いているとみなす(青色) 0.1未満 の場合は止まっているとみなす(黄色) 色分けしたグラフ 上り下りしているかを判別する 気圧のグラフ 青 : 元のデータ 黒 : 移動平均フィルター(前後20サンプル) 方法 1秒ごとに区切り、それぞれの平均を出して、一秒後との差を出す 判別基準 分散が 0.015以上 の場合は歩いているとみなす(青色) 0.015未満 の場合は止まっているとみなす(黄色)...

2023-5-30 · 1 min · 156 words · SatooRu

梶研 05/17 - 05/23

スケジュール 短期的なスケジュール 速度を変えて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....

2023-5-23 · 1 min · 148 words · SatooRu

梶研 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.Count) currentIndex = 0; transform.position = positions[currentIndex]; timer = 0; } } GIFアニメみたい...

2023-5-16 · 2 min · 235 words · SatooRu

梶研 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 で時間通りのアニメーションにする

2023-5-9 · 1 min · 64 words · SatooRu