トップページに戻る
 
file Re: 次期Shadeに望むもの ( No.52 )
日時: 2003/07/24 20:35
名前: つる
参照: http://homepage3.nifty.com/STEP/

えーと、私も、自信なくなってしまったので、 (^^;)ネットでいろいろ探したのですが、
オイラー角やジンバルロックについて明確な定義をしている文献にはあたりませんでした・・・

ただ、ジンバルロックというのは、航空機などのジャイロで生じる問題で、
円盤が3つ繋がっていて、それぞれが回転するような機器で、
回転しているうちに、回転軸が重なってしまうことだそうです。
(宇宙系のテーマパークにある、人が載って、ぐるぐる回って、無重力!とかいう機械ですね。。)
これは、つまり、Shadeの回転ジョイントを内包させる機構で起こ問題です。

気になったのは、オイラー角は、X軸、Y軸、Z軸による回転というのは確からしいのですが、
回転ジョイントの入れ子構造も、それぞれのローカル座標においては、ローカル軸と同じ軸で回転してるわけですから、、
ローカル軸においては、オイラー角で回転してるんですね・・・
こういうのをオイラー角というのかどうかは不明です。。

この、軸が重なる現象以外にも、ネットでジンバルロックと呼ばれている現象はあるみたいですが・・・
グローバルな、常に直行した3軸でオイラー角による制御でも、プログラミングの仕方によっては、ジンバルロックのような、意図せず起こる不具合があって、そういうのも、ジンバルロックと呼んでる人も、(ネットでは)いるみたいです。


>>オイラー角でZ軸:90度→Y軸:90度→X軸:90度→Y軸:-90度で
>>元に戻るはずですが、最後のプロセスはジンバルロックを起こして動かせません。
>Shadeの座標系では、
>Z軸:90度→Y軸:90度→X軸:-90度→Y軸:-90度
>とやらないと元に戻らないようですね。

オイラー角というのが、グローバルな軸による回転という意味なら、平山さんのいう通りに回転させないと無理です。
これは、Shadeに限らず、どんな座標系でも同じです。
回転ジョイントでの話しでしたら、例の通り、回転ジョイントの入れ子構造の順番によって、どこでジンバルロックを起こすかはまちまちです。といいますか、回転ジョイントを1個だけ内包する回転ジョイントを90度回転させると、必ず、回転軸は絶対に重なってしまうので、その状態での回転の自由度は減ってしまいます。このことをジンバルロックというみたいです。


平山さんの、1)〜4)ですが、
1)〜3)はだいたいそういう理解でいいと思います。
(だいたいと言ったのは、細かい用語について的確な定義があいまいなので、正確に述べるには数学的な式が必要になると思うためです。)

4)は、どうなんでしょう。。。できそうな気もするんですが・・・


以下、グローバルな3軸によるオイラー角の回転で、任意軸による回転を行う方法です。
まず、回転軸をグローバルなZ軸と重なるように、グローバルなX、Y軸で回転させます。
Z軸で回転させます。
先ほどとは逆に、Y軸、X軸の順番に、逆回転させます。
これだけです。
すべて、オイラー角による回転ですが、ボールジョイントと全く同じ回転が出来ます。