- 締切済み
オイラー角回転後座標系の回転について
オイラー角で回転させた座標系を作成。 その座標系を更に回転させた場合の、 オイラー角を求めたいのですが、上手く行きません。 そこで質問させて下さい。 【やりたい事】 (1)まずは、右手系座標系AをZYXオイラー角(φ,θ,ψ)で回転した座標系A'を作成する。 1.最初にZ軸周りにφ回転 2.Y'軸(Y軸をZ軸周りにφ回転したもの)周りにθ回転 3.X''軸(X軸をY'軸周りにθ回転したもの)周りにψ回転 (2)次に回転後座標系A'を回転前座標系AのX軸周りにβ回転したモノを座標系A''とする。 座標系A’’のZYXオイラー角を求めたい。 (AをA''に一致する様に回転した時のZYXオイラー角を求めたいです。) 上記の様な角度は算出できるのでしょうか? 説明が分かりづらく申し訳御座いませんが、 ご回答何卒よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- spring135
- ベストアンサー率44% (1487/3332)
回答No.1
次の2つのurlを参照してください。 要は回転行列を掛け算していけばよいわけです (1) http://ja.wikipedia.org/wiki/%E5%9B%9E%E8%BB%A2%E8%A1%8C%E5%88%97 (2) http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html
お礼
spring135様 ご回答ありがとうございます。 補足の内容に誤りがありましたので、 訂正させて下さい。 【誤】 |CφCθ CφSθSΨ-SφCΨ CφSθCΨ+SφSΨ | = |CbSφCθ+SbSθ Cb(SφSθSΨ+CφCΨ)-CbCθSΨ Cb(CφSθCΨ-CφSΨ)-SbCθCΨ | |SbSφCθ-CbSθ Sb(SφSθSΨ+CφCΨ)+CbCθSΨ Sb(CφSθCΨ-CφSΨ)+CbCθCΨ | 【正】 |CφCθ CφSθSΨ-SφCΨ CφSθCΨ+SφSΨ | = |CbSφCθ+SbSθ Cb(SφSθSΨ+CφCΨ)-SbCθSΨ Cb(CφSθCΨ-CφSΨ)-SbCθCΨ | |SbSφCθ-CbSθ Sb(SφSθSΨ+CφCΨ)+CbCθSΨ Sb(CφSθCΨ-CφSΨ)+CbCθCΨ | 以上、よろしくお願いします。
補足
spring135様 早速のご回答ありがとうございます。 教えて頂いた内容を元に考えたのですが、 以下のイメージでしょうか? (文中に【質問】を書かせて頂きました。) (1)の処理は、 Rx''(Ψ):x''軸でΨ回転する回転行列 Ry'(θ):y'軸でθ回転する回転行列 Rz(φ):z軸でφ回転する回転行列 とした場合、 M=Rx''(Ψ)Ry'(θ)Rz(φ) で回転行列が求まると思いますが、 【質問1】(2)の処理は、 Rx(β):x軸でβ回転する回転行列 の場合、 M'=Rx(β)Rx''(Ψ)Ry'(θ)Rz(φ) としてよろしいのでしょうか? 【質問2】最終的なオイラー角の求め方 |CφCθ CφSθSΨ-SφCΨ CφSθCΨ+SφSΨ| M = |SφCθ SφSθSΨ+CφCΨ CφSθCΨ-CφSΨ| |-Sθ CθSΨ CθCΨ | |1 0 0 ||CφCθ CφSθSΨ-SφCΨ CφSθCΨ+SφSΨ| M’ = |0 Cb -Sb||SφCθ SφSθSΨ+CφCΨ CφSθCΨ-CφSΨ| |0 Sb Cb||-Sθ CθSΨ CθCΨ | |CφCθ CφSθSΨ-SφCΨ CφSθCΨ+SφSΨ | = |CbSφCθ+SbSθ Cb(SφSθSΨ+CφCΨ)-CbCθSΨ Cb(CφSθCΨ-CφSΨ)-SbCθCΨ | |SbSφCθ-CbSθ Sb(SφSθSΨ+CφCΨ)+CbCθSΨ Sb(CφSθCΨ-CφSΨ)+CbCθCΨ | そして、求めたM'は、 座標系A→座標系A'' の回転行列なので、 求めたいオイラー角(r,p,y)をとした時に M'を以下とみなし、 |CyCp CySpSr-SyCr CySpCr+SySr| M' = |SyCp SySpSr+CyCr CySpCr-CySr| |-Sp CpSr CpCr | から r=atan(±r32,±r33) p=atan(-r31,sqrt(r32*r32+r33*r33)) y=atan(±r21,±r11) とすれば良いのでしょうか? (p=±90°時の縮退問題はあると思いますが。) 以上、細かい点で申し訳ございませんが、 アドバイス頂けませんでしょうか。 よろしくお願いします。