Post

사원수 회전 (Quaternion Rotation)

사원수 회전 (Quaternion Rotation)

사원수 (Quaternion)

사원수는 복소수를 확장한 개념으로, 1개의 실수부와 3개의 허수부로 표현한 4차원 수체계를 의미한다.

\[q=w+xi+yj+zk\]

위의 식은 $q=(w,x,y,z)$로도 표현되며, $w,x,y,z$는 실수, $i,j,k$는 서로 직교하는 허수 단위를 나타낸다.

허수들은 아래의 규칙을 만족한다.

\[i^2=j^2=k^2=ijk=-1\] \[ij=k~,~jk=i~,~ki=j\] \[ji=-k~,~kj=-i~,~ik=-j\]

위의 관계식에서 알 수 있듯이, 곱셈의 교환 법칙은 성립하지 않는다.

단위 사원수 $\hat{q}$는 크기가 1인 사원수를 의미하며, $\lVert q\rVert=\sqrt{w^2+x^2+y^2+z^2}=1$를 만족한다.

사원수를 이용한 3차원 회전

3차원 공간에서의 회전을 다룰 때에는, 사원수를 스칼라 $s$와 벡터 $\vv$의 조합으로 표현한다.

\[q=(s,\vv)=(w,(x,y,z))\]

3차원 공간에서 어떤 벡터 $\vp$를 단위 회전축 $\vu=(u_x,u_y,u_z)$를 기준으로 반시계방향으로 $\theta$만큼 회전하는 회전 사원수 $q$는 아래와 같이 정의된다.

\[q=(w,x,y,z)=\cos\left(\frac{\theta}{2}\right)+\sin\left(\frac{\theta}{2}\right)u_xi+\sin\left(\frac{\theta}{2}\right)u_yj+\sin\left(\frac{\theta}{2}\right)u_zk\] \[q=\cos\left(\frac{\theta}{2}\right)+\sin\left(\frac{\theta}{2}\right)(u_xi+u_yj+u_zk)\]

이 회전 사원수는 3차원 벡터를 회전시키는 연산자의 역할을 한다.

회전시키고자 하는 3차원 좌표 $\vp=(x, y, z)$를 사원수 형태로 변환한다. 이때 실수부 $w$는 $0$으로 설정하며, 이를 순수 사원수 (pure quarternion)라고 부른다.

\[\vp_{quat}=(0,x,y,z)=0+xi+yj+zk=(0,\vp)\]

회전된 결과 사원수 $\vp’$는 아래와 같이 계산된다.

\[\vp'_{quat}=q\vp_{quat}q^{-1}=(0,\vp')\]

계산 결과 나온 $\vp’_{quat}$의 벡터 부분 (허수부) $\vp’$이 회전된 새로운 좌표가 된다.

3차원 회전 행렬과의 관계

단위 사원수 $\hat{q}=(w,x,y,z)$가 주어졌을 때, 이에 대응하는 $3 \times 3$ 회전 행렬 $R$은 아래와 같다.

\[R=\begin{bmatrix} 1 - 2(y^2 + z^2) & 2(xy - wz) & 2(xz + wy) \\ 2(xy + wz) & 1 - 2(x^2 + z^2) & 2(yz - wx) \\ 2(xz - wy) & 2(yz + wx) & 1 - 2(x^2 + y^2) \end{bmatrix}\]

위 행렬은 사원수 연산 $\vp’ = q\vp q^{-1}$을 수행한 결과와 동일한 회전 효과를 낸다.

\[\vp' = R\vp\]

장점