【STA24】膨大なデータ処理の分類備忘録<pythonでないと出来ない>

STA24は、スキー滑走5日分のデータですが、過去のSTAの5倍以上の膨大なデータがログされてます。
しかも過去のSTAデータは、抜けなど失敗が多く歩留まりが20%程度だったのに対して、
STA24は、90%以上の歩留まりですので、実質的には、過去STAの数十倍のデータが存在してます。
binaryデータで386MBありますので、CSVファイルで数値に変換すると3倍以上で1GBのcsvデータとなります。
4月からpythonでのデータ処理学習を初めて、6月まで2か月試行錯誤して、
データの解析方法が決まってきたので、環境となるベースプログラム群を作成しました。

●解析環境整備

●データの分類
データを角度系と座標系の2ジャンルに大別して解析を2系統で行う。

ジャンル 内容
ジャンルA:角度系 headMot,Heading,yaw,pitch,roll角を対象として、片足の解析行う。
A-1:IMU yaw角補正
A-2:roll円ターン評価
A-3:切り替え動作解析
A-4:機械学習の試行
A-1:時系列でroll角とHeading誤差の相関が顕著、rollと誤差の相関高い
A-2:roll角とyaw角の関係が円弧で閉じる原理なので、円弧の形状でターンのパターンが無数に表現できる
A-3:Nutral(切り替え)ポイント前後の動作解析 板の角付けと方向、ズレ角の関係で、その後のターンとの影響解析
A-4:上記データ解析を機械学習させたらどうなるかを試していく
ジャンルB:3次元座標系 relPosの精密位置データでtrajectory線図で両足の動作解析
B-1:ターン中の動作と軌跡円弧
B-2:3次元のTrajectory線図で、フォールライン中心に動作解析
検討中

 ●事例(5月~6月までのPythonプログラムでわかったこと)

①まずは、時系列のグラフを眺める
観察1:Headingとyawは、ぴったりと重なって見えるが誤差H-Ysa360(オレンジ線)をみると
左ターン中が誤差が大きくなってターン終了で誤差ゼロになる 誤差のピークがターンによってばらつく
赤い四角の範囲が誤差範囲。15度も誤差が発生しているターンがある、外れ値をいかに検出するか課題。

観察2:headMotのピークとHeading,yawのピークがずれている。roll角のゼロクロス点は、headMotに一致。

 

②ペアプロットで相関係数一覧表示
観察1:線形性が見られるパラメータペアは、headMotdiff(速度方向微分=角速度相当)と
roll(r=(r=0.747)、H-Ysa360(r=-0.594),skid(r=-0.606),skidya(r=-0.592)、の4個パラメータと相関係数高い
rollとの相関も多い skid(r=0.873) skidyaw(r=0.862)  H-Ysa360(r=-0.65)とskidとの相関が非常にたかい

観察2:正規分布するパラメータなら、他のパラメータと線形性を持ちやすい。

観察3:yaw-Heading360は、相関0.999でほぼ直線であるが、実際は誤差が問題となっている点でIMU誤差の
求められる精度は、統計値のレベルではない点で、機械学習でも精度の良い解がでないかもしれない。

 

 

●機械学習のトライ
Heading角とyaw角の誤差をターゲットとして、2分割でSVM linear機械学習させてみましたが、
データセットによって精度が95%から50%とばらついて、とても使えるレベルではありませんでした。
時系列グラフでroll,headMotdiffとの相関があるので、機械学習でも結果がでるかと思ったのですが
出てこないので、訓練データの与え方を左ターンだけに絞ってみたら直観と同じくなるかもしれないので
後日、再度SVMにトライします。

●物理、力学観点で方向付け必要
Pythonの膨大な処理ライブラリーを試せばキリがないほど、結果がでますが
その結果が、有意義なのかは、スキー滑走の現象を物理、力学的な観点で整理しないと真実を見失うので、重点的に物理、力学観点で判定していきます。そのために各パラメータのとるべき値を決める

 

●以後
データ処理以外に、新しいWiFiモジュールのSTA24システム制作しないといけないので7月から制作はじめるので
6月末までにデータ解析の目途をつけたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です