回転行列とオイラー角、ハマってますが、のんびり眺めながら気長にいじっているのでコツコツと進めます。
実験も進めないといけないので、歩行とIMUの測定、サマースキー用レガース準備を進めます。
まだまだ、中途半端ですが、備忘録しながら進めていくので、記録として投稿しておきます。
※2023年9月12日
学習方法を変更してIMUの実測値で回転行列からオイラー角計算して、比較する方法でやってみましたが、
IMU内蔵のEuler出力より精度が悪い結果となってしまいました。更に、固定角回転方式で、zyxで回すと最後のx軸が、どうしても固定角のx軸で回らないという矛盾が発生してしまって、それについて、WEB上で解説している記事がなくて、困ってます。ということで、独学独習では、厳しいので、独学でも資料がそろっていて、できそうな、Quarternionの学習に乗り換える準備をしてます。
【IMU】回転行列とオイラー角はいじらないほうが良いと感じた<JAXAの論文学習>
●現在まで理解したこと
①剛体の姿勢は、1本の軸の回転だけで表現できる
=>3次元回転を分解して様々な座標系と順序で回転させても、結局同じ姿勢なので、回転行列の積は1個の回転行列に収束されるので、1個の回転行列で剛体の姿勢は表現できてしまいます。
②センサ座標(センサ内)はオイラー回転で表現したほうが判り易い、基準座標(地平面)は、固定角回転で表現したほうが判り易い
③オイラー角は、回転角度を入力して作成した回転行列のデータ値から、各要素位置の三角関数式から、単独の角度表示されているものを選び出して、逆三角関数計算して求める。
回転行列からオイラー角計算は、下記参考リンクに感謝
判り易かったのは、5記事あります。それぞれが微妙に表現が違うので、たくさん見ないといけません。
1:飛行機の絵で、ローカル座標と絶対座標で説明されている成形外科医様のブログ に感謝
https://programming-surgeon.com/script/euler-angle/
2:EL-MENTブログ様です。http://el-ement.com/blog/2018/05/19/euler-angles/
3:回転行列の基本はSKY技術研究所様 https://www.sky-engin.jp/blog/rotation-matrix/
4:SKY様のオイラー角とは https://www.sky-engin.jp/blog/eulerian-angles/
5:DailyTech様 オイラー角、回転行列 https://daily-tech.hatenablog.com/entry/2017/11/19/025248
●マクロの進化(学習の進展とともに、どんどん改造してます)
前回のrev01では、固定角回転での回転行列変換を3面グラフに表示するだけでした。
=>今回のrev030では、固定角回転とオイラー回転の2セットの回転行列を3面グラフ表示して6枚のグラフで
比較できるようにしてます。
更に、オイラー回転で回した回転行列の逆行列からオイラー角を計算してその結果を固定角回転セットに代入して、オイラー回転セットと同じ姿勢になることを確認できるようにしました。
Exvcel2021ですが、グラフにバグがあって、データ書き換えると線の色が変わってしまい、誤解が多いです。
Excelどんどん悪くなってます。
3D_Rotation_rev030オイラー角計算
●結果
上の3面グラフが固定角回転での姿勢図で、下の3面がオイラー回転での姿勢角入力した姿勢図が一致します。
手順1:下のオイラー回転セットに、センサを回した値X軸0度、Y軸10度、Z軸30度を入力して回します。
手順2:上記角度で作成した回転行列Rxyzは、センサ座標(センサ上)から基準座標(地平面)への座標変換する行列です。Rxyzの逆行列Rxyz-1は、基準座標からセンサ座標へ変換する回転行列です。
手順3:Rxyzからオイラー角を計算する公式に代入して、求めたオイラー角を固定角へ代入して、グラフにする
■計算
公式は、整形外科医様のブログのXYZ系でのオイラー角公式をそのまま計算しました。感謝
https://programming-surgeon.com/script/euler-angle/
このページの一番最後のほうにあります。