グラフィックでデータを視覚的に見やすくしたので、ターンの解析結果とリンクさせて表示することでターンの理解を深めました。
ポイント1:ターンのRとアスペクト比で描いた弧を表現(クロソイド解析は後日)
ポイント2:ターンの平均値(横滑り角と速度と加速度)を見て動作の概要表現
ポイント3:斜度、道のり、フォールラインなど1本の滑りのデータでセッション全体を表現
※STAグラフィック解析シリーズ記事
RTKデータ解析用グラフィック機能開発ーその1ー<自動追尾機能便利>
RTKデータ解析用グラフィック機能開発ーその2ー<ソースBITMAP表示基礎>
RTKデータ解析用グラフィック機能開発ーその3ー<自動追尾機能の中身>
RTKデータ解析用グラフィック機能開発ーその4ー<ターンの解析手法>
RTKデータ解析用グラフィック機能開発ーその5ー<8か月の集大成>
※2022年2月追記 本記事から8か月経過して下記作品でターン解析まとめました。
※2021年7月12日スキーの曲げセンサ開発開始しました。
【ロードセル】銅板でロードセル作ってみたその1<曲げ測定用>
●ターン解析の考え方
●ターン構造体
1本のターンに多くのパラメータが存在するので、構造体でターンを表現してます。
‘*******************Turns 構造体******************************************************** | 解説 |
Private Structure Turns | 1つのターンのパラメータ構造体 |
’全体 | |
Public skiRL As String ‘左右スキーの指定(0)番に収納 | データが右スキーか左スキーか目印 |
Public turnNo As Integer ‘ターン番号 | ターン番号 |
Public direction As String ‘ターン方向 R L | ターンの方向 右ターン 左ターン |
Public lastNo As Integer ‘ターンの数(0)番に収納 | セッション全体のターン数 |
Public startNo, endNo As Integer ‘開始データ行No | ターン開始RTKデータ番号と終了RTKデータ番号 |
Public initX, initY, endX, endY As Integer ‘開始座標、終了座標 X:lon Y:lat | ターン開始点と終了点の経度緯度座標値 |
Public turnTime As Double ‘ターン時間 | ターンの消費時間 |
Public turnTimesum As Double ‘累積ターン経過時間 | セッション開始からこのターンまでの経過時間 |
‘ターン弧 | |
Public Radius As Double ‘簡易円近似半径 | ターン半径の簡易円近時 |
Public theta As Double ‘fallLine 角度 | ターンのフォールラインの傾き フォールラインは始点と終点を結んだ直線 |
Public minorDia, majorDia As Integer ‘ターン半円の縦短径、横長径 | ターンの短径、長径 |
Public Aspectratio As Double ‘ターン弧のアスペクト比 | ターンのアスペクト比 |
Public fallen As Double ‘fallLine長さ | フォールラインの長さ |
Public fallensum As Double ‘ fallLineの累計 | セッション開始からのフォールライン累計 |
Public initHeight, endHeight As Double | 開始点の標高と終点の標高 |
Public fallHeight As Double ‘fallLineの標高差 | 始点と終点の標高差 |
Public fallHeightsum As Double ‘fallLine標高差の累計 | セッション開始からの標高差 |
Public Slopedeg As Double ‘fallLineの斜度deg | ターンの始点から終点の傾斜角 |
Public Arclen As Double ‘円弧長 | ターンの円弧長 |
Public Arclensum As Double ‘円弧長の累計 | セッション開始から円弧長の累計 |
‘Speed | |
Public Speed() As Double ‘Speed配列 | ターン内のベース速度データ配列 |
Public inSpeed, outSpeed, aveSpeed, maxSpeed, minSpeed As Double | 開始点速度、終点速度、最高速度、最小速度、平均速度 |
‘Heading Skidding | |
Public headMot() As Double ‘headMot角配列 | ベースの進行方向角配列 |
Public headSki() As Double ‘ski角配列 | スキーの方向角配列 |
Public Skid() As Double ‘Skid角配列 | 横滑り角の配列 |
Public maxHeadmot, minHeadmot, dHeadmot As Double ‘headMot角各種 | 最大進行角、最小進行角、進行角振れ幅 |
Public maxSkid, minSkid, aveSkid, dSkid As Double | 最大横滑り角、最小横滑り角、平均横滑り角、横滑り角振れ幅 |
‘G Acceleration | |
Public Gacc() As Double ‘平均加速度 | ターン中の平均遠心力加速度 |
Public Gaccmax, Gaccmin, Gaccave As Double | 最大加速度、最小加速度、平均加速度 |
End Structure |
●ターン径の簡易計算
本格的には、クロソイド曲線を用いた理論的な解析が必要です。後日の楽しみにします。
鉄道線路、道路の設計では、必須の考え方ですので、スキーターンも緩和状態から円弧を描くので
クロソイド領域がありますので、あてはまる理論だと思います。
学会論文たくさんあります。t.ly/DYHx
●遠心力加速度計算
●STAプログラムターン解析部
手順1:SDカードから読み取った左右データをCSVファイルに合体してまとめておく、データエラーは修正しておく。
手順2:まとめたCSVファイルを読み込んで、みたい滑走範囲をグラフに表示して確認
手順3:フォーム下部のTurnCutter17ボタンを押してターンを抽出して右下のRichTextBoxに表示してターン数を確認する。
手順4:フォーム右下のTurnTableボタンを押して、dgv2にターン解析結果を表示する。
手順5:フォーム左のplotBボタンを押すと、滑走データをBITMAP展開して、手動アニメーション表示しながらターンデータ群を表示してターン解析ができる。
●プログラム備忘録
STA22_Graphic_TurnTable_rev23.vb
ソリューションフォルダー毎ZIPしてあります。STA22_Graphic_TurnTable_rev23
shell32を使っているので、プロジェクトー参照の追加で Microsoft Shell Controll & Automaticを追加します。
①ターン構造体をdgv2に一括表示(dgv1は、RTKデータ)
②スクロールバーをスライド
ターンの平均パラメータをグラフ上に表示して谷足のデータを直観的に見てターンの傾向を判定できるようにした
「このターンは、横滑りが10度以下で小さく良かったが、ターン弧が浅い(アスペクト比が0.21)なので
深いターンをしてないため横Gが1.1Gと小さい。」
目指すべきターンは。深い(アスペクト比0.3以上)横滑り角5度以下、横G2G、速度35Km/h以上となった。
●以後
ターンの指標がほぼ出そろったので、STAの核心部はほぼ完成したと考えてます。
次には、ターンを作る入力とSTA結果を対比させて、スキーのたわみと力の入れ方を計測することで、自分の技術の向上が客観的に図れるようにします。