クォータニオンのおさらい その2

このページではまだクォータニオンを知らない人のために、クォータニオンでどのように回転を記述するかについて簡単にまとめておきます。

クォータニオンによる回転の表現
ある単位ベクトル \(\vec{a}\) とある実数 \(\theta\) を使って
$$ r = \left( \cos \frac{\theta}{2},\ \sin \frac{\theta}{2} \vec{a} \right),\ |\vec{a}| = 1 $$
を作ると、これはベクトル \(\vec{a}\) を回転軸として、角度 \(\theta\) だけ回転させるクォータニオンとなります。

ただし、普通のかけ算で回転が計算できるわけではありません。\(\overline{r}\) を \(r\) のベクトル成分を反転させたもの
$$ \overline{r} = \left( \cos \frac{\theta}{2},\ -\sin \frac{\theta}{2} \vec{a} \right) $$
とすると、
$$ q’ = rq\overline{r} $$
によって、クォータニオン \(q\) のベクトル成分を回転させたクォータニオン \(q’\) を得ることができます。

クォータニオンによる回転の合成
回転Aをあらわすクォータニオン \(r_A\) と回転Bをあらわすクォータニオン \(r_B\) があったときに、回転Aに続いて回転Bを行なう回転は
$$ q” = r_B(r_Aq\overline{r_A}\,)\overline{r_B} $$
となるわけですが、簡単な計算によって
$$ \overline{r_A}\,\overline{r_B} = \overline{r_Br_A} $$
となることがわかるので、
$$ q” = (r_Br_A)q(\overline{r_Br_A}) $$
となり、回転Aと回転Bを合成したクォータニオンは
$$ r_Br_A $$
と書けることがわかります。

さて、以上のことからクォータニオンが3次元空間の回転を表現するのに十分な能力を持っていることがわかったと思います。この他にもクォータニオンを使うことによって回転をきれいに補間できるという利点があるのですが、その説明は最後にとっておくこくことにし、次のページからはいよいよ、なぜクォータニオンで3次元空間の回転を表現できるのか、その謎にせまってみたいと思います。

6 thoughts on “クォータニオン徹底解説

  • 2018/11/04 at 6:20 AM
    Permalink

    Baker-Campbell-Hausdorffの公式と X, Y, Z の交換関係
    [X, Y]=Z, [Y, Z]=X, [Z, X]=Y

    を使えば、 e^XC=e^XA*e^XB としたときの XC は
    XC={a⃗ +b⃗ +12(a⃗ ×b⃗ )+112{a⃗ ×(a⃗ ×b⃗ )+b⃗ ×(b⃗ ×a⃗ )}+⋯}⋅X
    これのどこに交換関係を利用しておられるのですか?

    Reply
  • 2018/11/04 at 6:22 AM
    Permalink

    9ページの最初の方に書かれている内容です

    Reply
  • 2018/11/05 at 11:47 AM
    Permalink

    コメントありがとうございます。
    $$ [X_A, X_B] = (\vec{a} \times \vec{b}) \cdot \vec{X} $$
    とするのに使っています。

    Reply
  • 2018/11/06 at 4:26 AM
    Permalink

    こんな質問にまで答えてくださりありがとうございます

    Reply
  • 2018/11/07 at 4:50 AM
    Permalink

    10ページの内容なのですがR(a→ 、 θ)にベクトルv→ をかけるとa→ を軸にθだけ回転した式が与えられるのであればRに対応したクォータニオンqで
    v→*qで回転したv→が求められそうだと思ったのですが、これでは値は求められないのでしょうか?

    Reply
    • 2018/11/07 at 1:18 PM
      Permalink

      9ページまでの説明で、回転行列同士の積とクォータニオン同士の積は同じ振舞いをすることがわかったわけですが、ベクトルに対する作用が同じということまでは言えません。そもそも、ベクトルにクォータニオンを作用させる方法も定義されていません。
      そこで、10ページ目では、回転行列の座標変換(これは回転行列同士の積だけで表される)を使ってベクトル(回転軸)が変換されることを示し、それに対応したクォータニオン同士の積から、クォータニオンでベクトルを回転させる方法を導いています。

      Reply

コメントを残す

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

Anti Spam Code *