10.12 단위 쿼터니언과 3차원 회전의 관계

10.12 단위 쿼터니언과 3차원 회전의 관계

1. 핵심 정리

3차원 회전군 SO(3)의 모든 원소가 단위 쿼터니언으로 표현될 수 있으며, 단위 쿼터니언 군 S^3SO(3)을 이중 피복(double cover)한다. 이 핵심 정리가 단위 쿼터니언이 회전을 매개화하는 수학적 기초이다.

\pi: S^3 \to SO(3), \quad \mathbf{q} \mapsto R(\mathbf{q})

이 사상이 전사이며 2대 1이다. 즉, 모든 회전이 어떤 단위 쿼터니언에 대응되며, 각 회전은 정확히 두 개의 쿼터니언(\mathbf{q}-\mathbf{q})에 대응된다.

2. 회전 표현 공식

단위 쿼터니언 \mathbf{q}가 회전 축 \hat{\mathbf{u}} 주위의 각도 \phi 회전을 표현할 때, \mathbf{q}는 다음과 같이 정의된다.

\mathbf{q} = \cos(\phi/2) + \sin(\phi/2)(u_x i + u_y j + u_z k)

또는 스칼라-벡터 표기로

\mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})

여기서

  • 스칼라 부분 q_w = \cos(\phi/2): 회전 각의 절반의 코사인
  • 벡터 부분 \mathbf{q}_v = \sin(\phi/2)\hat{\mathbf{u}}: 회전 축에 회전 각의 절반의 사인을 곱한 벡터

3. “절반의 각도“의 의미

단위 쿼터니언이 회전 각의 절반을 사용하는 이유는 깊은 수학적 배경이 있다.

3.1 이중 피복 구조

단위 쿼터니언 군 S^3이 회전군 SO(3)을 이중 피복하므로, S^3를 한 바퀴 도는 것이 SO(3)을 두 바퀴 도는 것에 해당한다. 따라서 쿼터니언의 매개변수화에서는 회전 각이 절반으로 압축된다.

3.2 4\pi 주기성

쿼터니언의 회전 각은 4\pi 주기를 가진다. 즉, \phi \to \phi + 4\pi일 때 쿼터니언이 자기 자신으로 돌아온다. 회전 행렬은 2\pi 주기를 가지므로, 쿼터니언이 두 배의 주기를 가진다.

이는 \mathbf{q}-\mathbf{q}의 부호 이중성과 직접적으로 연결된다. \phi2\pi 증가시키면 쿼터니언이 부호 반전된다.

\mathbf{q}(\phi + 2\pi) = -\mathbf{q}(\phi)

확인: \cos((\phi + 2\pi)/2) = \cos(\phi/2 + \pi) = -\cos(\phi/2)이고, \sin((\phi + 2\pi)/2) = \sin(\phi/2 + \pi) = -\sin(\phi/2)이다.

4. 단위 쿼터니언으로 벡터 회전

단위 쿼터니언 \mathbf{q}로 3차원 벡터 \mathbf{v}를 회전시키는 공식은 다음과 같다.

\mathbf{v}' = \mathbf{q}\mathbf{v}\mathbf{q}^*

여기서 \mathbf{v}는 순수 벡터 쿼터니언 (0, \mathbf{v})로 표현된다. 이 공식은 두 가지 점에서 흥미롭다.

4.1 켤레의 사용

켤레가 필요한 이유는 결과가 다시 순수 벡터 쿼터니언이 되도록 하기 위함이다. 켤레가 없으면 결과가 일반 쿼터니언이 되어 회전된 벡터를 직접 추출할 수 없다.

4.2 절반의 각도와의 일치

쿼터니언이 절반의 각도를 사용하지만, \mathbf{q}\mathbf{v}\mathbf{q}^*의 형태는 그 절반이 두 번 적용되어 전체 각도 \phi의 회전을 만든다. 이는 켤레가 회전을 “두 배로” 만드는 효과를 가지기 때문이다.

5. 회전 공식의 유도

위 공식 \mathbf{v}' = \mathbf{q}\mathbf{v}\mathbf{q}^*가 실제로 축 \hat{\mathbf{u}} 주위의 각도 \phi 회전을 산출함을 보이자.

5.1 \mathbf{q}\mathbf{v}\mathbf{q}^*의 직접 계산

\mathbf{q} = (q_w, \mathbf{q}_v)이고 \mathbf{v} = (0, \mathbf{v})일 때

\mathbf{q}\mathbf{v} = (-\mathbf{q}_v\cdot\mathbf{v}, q_w\mathbf{v} + \mathbf{q}_v\times\mathbf{v})

이를 다시 \mathbf{q}^* = (q_w, -\mathbf{q}_v)와 곱하면

\mathbf{q}\mathbf{v}\mathbf{q}^* = (\text{스칼라 부분}, \text{벡터 부분})

스칼라 부분을 계산하면 0이 됨을 보일 수 있다(자세한 계산 생략). 벡터 부분은

(q_w^2 - \lVert\mathbf{q}_v\rVert^2)\mathbf{v} + 2q_w(\mathbf{q}_v\times\mathbf{v}) + 2(\mathbf{q}_v\cdot\mathbf{v})\mathbf{q}_v

이다. 이 결과를 회전 공식과 비교하기 위해 단위 쿼터니언 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})를 대입한다.

q_w^2 - \lVert\mathbf{q}_v\rVert^2 = \cos^2(\phi/2) - \sin^2(\phi/2) = \cos\phi

2q_w\mathbf{q}_v = 2\cos(\phi/2)\sin(\phi/2)\hat{\mathbf{u}} = \sin\phi\hat{\mathbf{u}}

2(\mathbf{q}_v\cdot\mathbf{v})\mathbf{q}_v = 2\sin^2(\phi/2)(\hat{\mathbf{u}}\cdot\mathbf{v})\hat{\mathbf{u}} = (1 - \cos\phi)(\hat{\mathbf{u}}\cdot\mathbf{v})\hat{\mathbf{u}}

이러한 항을 조합하면 결과는

\mathbf{v}' = \mathbf{v}\cos\phi + (\hat{\mathbf{u}}\times\mathbf{v})\sin\phi + (\hat{\mathbf{u}}\cdot\mathbf{v})\hat{\mathbf{u}}(1 - \cos\phi)

이며, 이는 정확히 로드리게스 회전 공식이다. 따라서 \mathbf{q}\mathbf{v}\mathbf{q}^*가 축 \hat{\mathbf{u}} 주위의 각도 \phi 회전을 산출함이 확인된다.

6. 회전 행렬과의 변환

단위 쿼터니언으로부터 회전 행렬을 직접 계산할 수 있다.

\mathbf{R}(\mathbf{q}) = \begin{bmatrix} 1 - 2(q_y^2 + q_z^2) & 2(q_x q_y - q_w q_z) & 2(q_x q_z + q_w q_y) \\ 2(q_x q_y + q_w q_z) & 1 - 2(q_x^2 + q_z^2) & 2(q_y q_z - q_w q_x) \\ 2(q_x q_z - q_w q_y) & 2(q_y q_z + q_w q_x) & 1 - 2(q_x^2 + q_y^2) \end{bmatrix}

이 행렬이 회전 행렬임은 단위 노름 조건에서 직접 확인할 수 있다.

7. 단위 쿼터니언의 회전 합성

두 회전의 합성은 단위 쿼터니언의 곱이다.

\mathbf{q}_{\text{합성}} = \mathbf{q}_2\mathbf{q}_1

여기서 \mathbf{q}_1이 먼저 적용되고 \mathbf{q}_2가 나중에 적용된다(좌측 곱 관례).

7.1 회전 행렬 곱과의 호환

\mathbf{R}(\mathbf{q}_{\text{합성}}) = \mathbf{R}(\mathbf{q}_2)\mathbf{R}(\mathbf{q}_1)

이는 단위 쿼터니언 곱과 회전 행렬 곱이 같은 군 구조를 표현함을 보여준다.

7.2 비가환성

쿼터니언 곱이 비가환적이므로, 회전의 합성도 비가환적이다.

\mathbf{q}_2\mathbf{q}_1 \neq \mathbf{q}_1\mathbf{q}_2 \quad \text{(일반적으로)}

이는 회전의 비가환성과 일치한다.

8. 단위 쿼터니언의 역회전

회전의 역(역회전)은 단위 쿼터니언의 켤레로 표현된다.

\mathbf{q}^{-1} = \mathbf{q}^* \quad \text{(단위 쿼터니언)}

원래 회전 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})의 역회전은

\mathbf{q}^* = (\cos(\phi/2), -\sin(\phi/2)\hat{\mathbf{u}}) = (\cos(-\phi/2), \sin(-\phi/2)\hat{\mathbf{u}})

이는 같은 축 주위의 -\phi 회전이며, 원래 회전을 정확히 취소한다.

9. 항등 회전

회전이 없는 항등 변환은 다음의 단위 쿼터니언으로 표현된다.

\mathbf{q}_{\text{identity}} = (1, 0, 0, 0)

이는 \phi = 0이고 회전 축이 임의(의미 없음)인 경우이다. 부호 이중성으로 -\mathbf{q}_{\text{identity}} = (-1, 0, 0, 0)도 같은 항등 회전을 나타낸다.

10. 부호 이중성의 처리

단위 쿼터니언의 부호 이중성을 처리하는 방법은 다음과 같다.

10.1 표준 형태

스칼라 부분이 양수가 되도록 부호를 정규화한다.

\text{if } q_w < 0: \mathbf{q} \leftarrow -\mathbf{q}

이렇게 하면 모든 쿼터니언이 단일 표준 형태를 가지지만, q_w = 0인 경우에는 여전히 모호성이 남는다.

10.2 보간에서의 처리

SLERP 보간에서 두 쿼터니언의 내적이 음수이면 한 쪽의 부호를 반전시켜 짧은 경로를 선택한다.

\text{if } \mathbf{q}_1\cdot\mathbf{q}_2 < 0: \mathbf{q}_2 \leftarrow -\mathbf{q}_2

11. 자세 비교

두 자세가 같은지 비교할 때 부호 이중성을 고려해야 한다. 단순히 성분별로 비교하면 같은 회전을 다른 것으로 인식할 수 있다.

11.1 정확한 비교

\text{equal if } \mathbf{q}_1 = \mathbf{q}_2 \text{ or } \mathbf{q}_1 = -\mathbf{q}_2

11.2 가까운 비교

\text{close if } \lvert\mathbf{q}_1\cdot\mathbf{q}_2\rvert > 1 - \epsilon

내적의 절댓값이 1에 가까우면 두 쿼터니언이 같은 회전(또는 부호 반전된 같은 회전)을 나타낸다.

12. 단위 쿼터니언과 회전 사이의 거리

두 단위 쿼터니언 사이의 측지선 거리는 다음과 같이 계산된다.

d(\mathbf{q}_1, \mathbf{q}_2) = \arccos(\lvert\mathbf{q}_1\cdot\mathbf{q}_2\rvert) \cdot 2

여기서 절댓값은 부호 이중성을 처리하기 위함이고, 곱의 2는 회전 각의 절반이 쿼터니언에 사용되기 때문이다.

이 거리는 두 회전 사이의 회전 각이며, SO(3) 매니폴드 상의 거리와 같다.

13. 단위 쿼터니언의 응용

13.1 자세 추정

쿼터니언 기반 칼만 필터에서 자세는 단위 쿼터니언으로 표현된다. 측정값을 통해 자세를 갱신할 때 쿼터니언 곱이 사용된다.

13.2 자세 제어

매니퓰레이터나 비행체의 자세 제어에서 목표 자세와 현재 자세의 오차가 단위 쿼터니언으로 표현된다.

13.3 회전 보간

키프레임 사이의 회전 보간(SLERP, NLERP, Squad 등)이 단위 쿼터니언에서 정의된다.

13.4 시각 SLAM

카메라의 자세가 단위 쿼터니언으로 표현되며, SLAM 최적화에서 변수로 사용된다.

13.5 3D 그래픽스

3D 객체의 회전이 단위 쿼터니언으로 저장되고 적용된다.

14. 단위 쿼터니언의 위상학적 의의

14.1 S^3의 위상

단위 쿼터니언의 집합 S^3는 4차원 단위 구면이며, 위상적으로 다음의 성질을 가진다.

  • 컴팩트
  • 연결
  • 단순 연결 (모든 폐곡선이 점으로 수축됨)
  • 매니폴드 (3차원 매끄러운 매니폴드)

14.2 SO(3)의 위상

회전군 SO(3)은 다음의 위상적 성질을 가진다.

  • 컴팩트
  • 연결
  • 단순 연결이 아님 (일부 폐곡선이 점으로 수축되지 않음)
  • 매니폴드 (3차원 매끄러운 매니폴드)

14.3 보편 피복

SO(3)이 단순 연결이 아니므로, 그 보편 피복(universal cover)인 \mathrm{Sp}(1) \cong S^3이 자연스럽게 등장한다. 보편 피복은 단순 연결인 가장 큰 피복이며, 원래 매니폴드보다 더 많은 점을 가질 수 있다.

이 경우 S^3SO(3)을 2대 1로 덮으므로 이중 피복이며, SO(3) \cong S^3/\{\pm 1\}의 관계가 성립한다.

15. 참고 문헌

  • Hamilton, W. R. (1844). “On Quaternions; or on a New System of Imaginaries in Algebra.” Philosophical Magazine, Vol. 25, 489–495.
  • Kuipers, J. B. (1999). Quaternions and Rotation Sequences. Princeton University Press.
  • Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
  • Conway, J. H., & Smith, D. A. (2003). On Quaternions and Octonions. A K Peters.
  • Stillwell, J. (2008). Naive Lie Theory. Springer.

version: 1.0