3D Geometry Study_Week1(Quaternions)

김경준·2022년 1월 22일
0

3D Vision

목록 보기
3/11

Quaternions

Notation

  • 회전을 표현할 때, 행렬 대신 사용하는 수학적 개념으로 4개의 값으로 이루어진 복소수 체계이다.

  • q=[qq]\mathbf{q}=\begin{bmatrix} q\\ \boldsymbol{q} \end{bmatrix} with q=[q1,q2,q3]T\boldsymbol{q} = \begin{bmatrix} q_1, q_2, q_3\end{bmatrix}^T

  • q=q+q1i+q2j+q3k\mathbf{q} = q+q_1i+q_2j+q_3k
    (i,j,ki,j,k는 허수)

  • i2=j2=k2=ijk=1i^2=j^2=k^2=ijk=-1

  • 오일러 각의 짐벌락 현상을 해결하기 위해 세 축을 차례대로 회전하는 대신 동시에 회전시키는 방식을 사용한다.

Rotation at complex plane

  • 단위원에서 30도 회전의 좌표는 cos(30°)+sin(30°)icos(30\degree)+sin(30\degree)i
  • (cos(30°)+sin(30°)i)(4+1i)(cos(30\degree)+sin(30\degree)i)(4+1i)를 계산하여 복소평면에서 4+1i4+1i를 30도 회전한 좌표를 구할 수 있다.

Caculation of Quaternions

Addition(p=q+r\mathbf{p} = \mathbf{q}+\mathbf{r})

[p0p1p2p3]=[q0+r0q1+r1q2+r2q3+r3]\begin{bmatrix} p_0 \\ p_1\\p_2\\p_3 \end{bmatrix} = \begin{bmatrix} q_0+r_0\\q_1+r_1\\q_2+r_2\\q_3+r_3\\ \end{bmatrix}

Multiplication(p=qr\mathbf{p} = \mathbf{q}\mathbf{r})

[p0p1p2p3]=[q0r0q1r1q2r2q3r3q1r0+q0r1q3r2+q2r3q2r0+q3r1+q0r2q1r3q3r0q2r1+q1r2+q0r3]\begin{bmatrix} p_0 \\ p_1\\p_2\\p_3 \end{bmatrix} = \begin{bmatrix} q_0r_0-q_1r_1-q_2r_2-q_3r_3\\q_1r_0+q_0r_1-q_3r_2+q_2r_3\\q_2r_0+q_3r_1+q_0r_2-q_1r_3\\q_3r_0-q_2r_1+q_1r_2+q_0r_3\\ \end{bmatrix}

  • 교환법칙이 성립되지 않는다

Inverse

q=qq2\mathbf{q}=\frac{\mathbf{q}^*}{|\mathbf{q}|^2}

  • q=[qq]\mathbf{q}^* = \begin{bmatrix} q\\-\boldsymbol{q}\end{bmatrix}
  • q2=q02+q12+q22+q32|\mathbf{q}|^2=q_0^2+q_1^2+q_2^2+q_3^2

Rotation of Quaternions

p=qpq1\mathbf{p}' = \mathbf{q}\mathbf{p}\mathbf{q}^{-1}

  • q=[qq]=[cos(θ/2)sin(θ/2)r]\mathbf{q}=\begin{bmatrix} q\\ \boldsymbol{q}\end{bmatrix} = \begin{bmatrix} cos(\theta/2) \\ sin(\theta/2)\boldsymbol{r}\end{bmatrix}
  • r=[r1,r2,r3]T\boldsymbol{r}=\begin{bmatrix}r_1, r_2, r_3\end{bmatrix}^T with r=1||\boldsymbol{r}||=1
  • 정규화된 회전축 r\boldsymbol{r}을 중심으로 θ\theta만큼 회전

Composition

  • p=qpq1\mathbf{p}'=\mathbf{q}'\mathbf{p}\mathbf{q}'^{-1}
  • p=qpq1\mathbf{p}''=\mathbf{q}''\mathbf{p}'\mathbf{q}''^{-1}
  • p=qqpq1q1\mathbf{p}''=\mathbf{q}''\mathbf{q}'\mathbf{p}\mathbf{q}'^{-1}\mathbf{q}''^{-1}
         =(qq)p(q1q1)\space\space\space\space\space=(\mathbf{q}''\mathbf{q}')\mathbf{p}(\mathbf{q}'^{-1}\mathbf{q}''^{-1})
         =qpq1\space\space\space\space\space=\mathbf{q}\mathbf{p}\mathbf{q}^{-1}
  • q\mathbf{q'} 회전 후 q\mathbf{q}'' 회전을 하는 것은 multiplication 연산을 통해 q\mathbf{q} 회전으로 표현할 수 있다.
    q=qq\mathbf{q}=\mathbf{q}''\mathbf{q}'

Materials

Reference

0개의 댓글