クォータニオン

数学

概要

  • 特徴
    • 計算が軽い
    • 角速度ベクトルが直で使える
    • 時間発展も楽。
  • アフィン変換もできる二重クォータニオンなるものもある

参考

未整理

四元数の積は可換ではない

ベクトルの回転変換がSU(2)の世界では相似変換となる。 1階テンソル=2階スピノール SO(3)=SU(2)/C_2 (C_2は2次巡回群) リー代数so(3)=su(2)

SO(2)=U(1)

exp(A)exp(B)=exp(A+B)は、可換の時だけ。 一般のexp(A)exp(B)は、ベーカーキャンベルハウスドルフの公式で求まる。

SU(2)は、単位行列成分と3つのパウリ行列で表せる。 特殊ユニタリ行列はパウリ行列の線形和で表される。

3次元ベクトルのエルミート表示=x_i s_i(3次元) オイラー角に相当する回転を実現 線形化すればオイラー角の合成も可能

3次元ベクトルのクォータニオン表示=0, x_i s_i 任意の三次元ベクトル中心回転が可能。 クォータニオン積が、単位行列成分が内積・パウリ行列成分が外積となる

  • so(3)->SO(3)の写像は指数関数である。 | | | | --- | --- | | exp(対称行列)=対称行列 | exp(エルミート行列)=エルミート行列 | | exp(反対称行列)=直交行列 | exp(反エルミート行列)=ユニタリ行列 |

整理

  • 定義
    • σi\sigma_iはパウリ行列
    • JiJ_iは生成子
反対称行列=SO(2)複素数SO(3)エルミート表示=SU(2)クォータニオン表示
ベクトルの表示Z=[a,b]M=a1+bIZ=[a, b]_M=a1+bIz=[a,b]=a+biz=[a, b]=a+biξ=σixi\xi = \sigma_i x^iq=[0,σixi]q=[0, \sigma_i x^i]。重要なのは、これが回転行列の表記が同じこと
回転の表示U=[αββα]=1u0+iσiui,Σui2=1U=\begin{bmatrix} \alpha & \beta \\ -\beta^* & \alpha^* \end{bmatrix}=1u_0+i\sigma^i u_i, \Sigma u_i^2 = 1U=[αββα]=1u0+iσiui,Σui2=1U=\begin{bmatrix} \alpha & \beta \\ -\beta^* & \alpha^* \end{bmatrix}=1u_0+i\sigma^i u_i, \Sigma u_i^2 = 1
特殊直交特殊直交行列特殊直交行列特殊ユニタリ行列特殊ユニタリ行列
Z1=ztnorm(Z)2Z^{-1}=\frac{z^t}{norm(Z)^2}z1=znorm(z)2z^{-1}=\frac{z^*}{norm(z)^2}q1=qnorm(q)2q^{-1} = \frac{q^*}{norm(q)^2}
共役相当転置共役エルミート共役共役クォータニオン
内積<A,B>=12tr(AtB)<A, B>=\frac{1}{2} tr(A^t B)<A,B>=12tr(AB)<A, B>=\frac{1}{2} tr(A^\dagger B)<q(1),q(2)>=12tr(q(1)q(2))<q_{(1)}, q_{(2)}> = \frac{1}{2} tr(q_{(1)}^* q_{(2)})
ノルムの二乗<Z,Z><Z, Z>zzz^* z<Z,Z><Z, Z><q,q><q, q>
回転T(θ)=exp[0,θ]M=[cos(θ),sin(θ)]MT(\theta)=\exp[0, \theta]_M=[\cos(\theta), \sin(\theta)]_MT(θ)=exp[0,θ]=[cos(θ),sin(θ)]T(\theta)=\exp[0, \theta]=[\cos(\theta), \sin(\theta)]Ti(θ)=exp(Jiθ)T_i(\theta)=exp(J_i \theta)Ui(θ)=exp[0,σ3θ3/2],ξ=U3ξU3U_i(\theta)=\exp[0, \sigma_3 \theta_3 /2], \xi' = U_3 \xi U_3^\daggerVi(θ)=exp[0,σ3θ3/2],ξ=V3ξV3V_i(\theta)=\exp[0, \sigma_3 \theta_3 /2], \xi' = V_3 \xi V_3^\dagger
一般回転T(Δθ)=exp(JiΔθi)=1+JiΔθiT(\Delta \theta)=exp(J_i \Delta \theta_i)=\bf{1}+J_i \Delta \theta_iオイラー角回転Ui(θ)=exp[0,σθ/2],ξ=UξUU_i(\theta)=\exp[0, \sigma \theta /2], \xi' = U \xi U^\daggeri軸回り回転Vi(θ)=exp[0,σθ/2],ξ=VξVV_i(\theta)=\exp[0, \sigma \theta /2], \xi' = V \xi V^\dagger, 正規ベクトルr周りVi(θ,r)=[cos(θ/2),σirisin(θ/2)],ξ=VξVV_i(\theta, r)=[\cos(\theta/2), \sigma_i r^i \sin(\theta /2)], \xi' = V \xi V^\dagger
備考クオータニオンX, Yに対してXY=[<x,y>,σi(x×y)]XY=-[<x, y>, \sigma_i (x \times y)]ξ=VξV\xi' = V \xi V^\daggerは座標系回転なので、ベクトル回転したい場合は左手ルール(必ず右からVをかける)を用いてξ=VξV\xi' = V^\dagger \xi V、球面線形補完可能
  • といいつつも、左手トリックを使わずにふつうにクォータニオンを左からかけて変換になってるんだが…

  • クォータニオン積を実現する、同値な4次元ベクトルと4次行列(反対称行列)が存在

    • クォータニオン[ω0,ωi][\omega_0, \omega_i]に対して、
    • 反対称行列[ω0ω1ω2ω3ω1ω0ω3ω2ω2ω3ω0ω1ω3ω2ω1ω0]\begin{bmatrix} \omega_0 & -\omega_1 & -\omega_2 & -\omega_3 \\ \omega_1 & \omega_0 & -\omega_3 & \omega_2 \\ \omega_2 & \omega_3 & \omega_0 & -\omega_1 \\ \omega_3 & -\omega_2 & \omega_1 & \omega_0 \\ \end{bmatrix}[ω0ω1ω2ω3]\begin{bmatrix} \omega_0 \\ \omega_1 \\ \omega_2 \\ \omega_3 \end{bmatrix}がそれぞれ同値。
  • q=(a,v),P=(w,x)q = (a, v), P = (w, x)に対して、qPq'に同値なクォータニオンの行列表示M P_Mが存在し、Mは以下のように表現可能

    • M=1/norm(q)2[norm(q)22vy22vz22vxvy2avz2vxvz+2avy02vxvy+2avz22vz22vx22vyvz2avx02vxvz2avy2vyvz+2avx22vy22vy200002]M = 1/norm(q)^2 \begin{bmatrix} norm(q)^2-2v_y^2-2v_z^2 & 2v_x v_y-2av_z & 2v_x v_z+2av_y & 0 \\2v_xv_y+2av_z ^2-2vz2-2vx2 &2vyvz-2avx &0 \\2v_xv_z-2av_y &2v_yv_z+2av_x ^2-2 v_y^2-2v_y^2 &0 \\0 &0 &0 ^2\end{bmatrix}
  • 時間発展

    • 地球座標系からセンサ座標系の単位クォータニオンqに対して、センサ座標系で観測された角速度ベクトルωによる、qの時間発展 [D.R.P.R.B.M.Joseph M. Cooke, 1994]
      • q˙=q[0,ω]/2\dot{q} = q [0, \omega]/2
    • 地球座標系からセンサ座標系のSO(3)の元Rに対して、センサ座標系で観測された角速度ベクトルωによる、Rの時間発展(回転行列の時間発展と証明
      • R˙=ΩR\dot{R} = \Omega RただしΩ=ω×=[0ω3ω2ω30ω1ω2ω10]\Omega=\omega \times = \begin{bmatrix}0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix}

最終更新: 2020-01-01