10.10 쿼터니언의 역원과 나눗셈

1. 역원의 정의

쿼터니언 \mathbf{q}의 역원(inverse) \mathbf{q}^{-1}은 다음 조건을 만족하는 쿼터니언이다.

\mathbf{q}\mathbf{q}^{-1} = \mathbf{q}^{-1}\mathbf{q} = 1

여기서 1 = (1, \mathbf{0})은 항등 쿼터니언이다. 영이 아닌 모든 쿼터니언은 유일한 역원을 가진다.

2. 역원의 명시적 형태

쿼터니언 역원의 닫힌 형태는 다음과 같다.

\mathbf{q}^{-1} = \frac{\mathbf{q}^*}{\lVert\mathbf{q}\rVert^2}

또는 성분별로

\mathbf{q}^{-1} = \frac{(q_w, -\mathbf{q}_v)}{q_w^2 + q_x^2 + q_y^2 + q_z^2}

이는 켤레를 노름의 제곱으로 나눈 형태이다.

3. 역원의 유도

역원을 유도하기 위해 \mathbf{q}\mathbf{q}^{-1} = 1의 양변에 켤레 \mathbf{q}^*를 왼쪽에서 곱한다.

\mathbf{q}^*\mathbf{q}\mathbf{q}^{-1} = \mathbf{q}^*

\mathbf{q}^*\mathbf{q} = \lVert\mathbf{q}\rVert^2이므로

\lVert\mathbf{q}\rVert^2\mathbf{q}^{-1} = \mathbf{q}^*

양변을 \lVert\mathbf{q}\rVert^2로 나누면

\mathbf{q}^{-1} = \frac{\mathbf{q}^*}{\lVert\mathbf{q}\rVert^2}

이며, 위의 닫힌 형태가 얻어진다.

4. 단위 쿼터니언의 특수한 경우

단위 쿼터니언(\lVert\mathbf{q}\rVert = 1)의 경우 역원이 켤레와 같다.

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

이는 매우 중요한 성질이며, 회전을 표현하는 단위 쿼터니언의 역회전을 단순한 부호 반전(벡터 부분만)으로 얻을 수 있게 한다.

4.1 효율성

단위 쿼터니언의 역원 계산은 3 부호 반전만 요구한다. 이는 일반 행렬 역행렬 계산(O(n^3) 비용)이나 회전 행렬의 전치(데이터 재배치)보다 훨씬 효율적이다.

5. 역원의 성질

5.1 이중 역

쿼터니언의 역원의 역원은 자기 자신이다.

(\mathbf{q}^{-1})^{-1} = \mathbf{q}

5.2 곱의 역원

곱의 역원은 역원의 곱의 역순이다.

(\mathbf{q}_1\mathbf{q}_2)^{-1} = \mathbf{q}_2^{-1}\mathbf{q}_1^{-1}

이는 비가환 군의 일반적 성질이다. 행렬의 역행렬 곱 규칙 (\mathbf{A}\mathbf{B})^{-1} = \mathbf{B}^{-1}\mathbf{A}^{-1}과 같은 패턴이다.

5.3 켤레와 역원의 관계

(\mathbf{q}^*)^{-1} = (\mathbf{q}^{-1})^*

켤레와 역원은 가환한다. 즉, 켤레를 먼저 취한 후 역원을 구하나, 역원을 먼저 구한 후 켤레를 취하나 같은 결과이다.

5.4 역원의 노름

\lVert\mathbf{q}^{-1}\rVert = \frac{1}{\lVert\mathbf{q}\rVert}

이는 노름의 곱셈성으로부터 직접 얻어진다.

5.5 항등 쿼터니언의 역원

1^{-1} = 1

항등 쿼터니언의 역원은 자기 자신이다.

6. 쿼터니언의 나눗셈

쿼터니언 \mathbf{q}_1\mathbf{q}_2로 나누는 것은 역원과의 곱으로 정의된다. 그러나 곱의 비가환성으로 인해 두 가지 나눗셈이 가능하다.

6.1 좌측 나눗셈 (Left division)

\mathbf{q}_2^{-1}\mathbf{q}_1

\mathbf{q}_2의 역원을 왼쪽에서 곱한 형태이다. 이는 방정식 \mathbf{q}_2\mathbf{x} = \mathbf{q}_1의 해 \mathbf{x} = \mathbf{q}_2^{-1}\mathbf{q}_1이다.

6.2 우측 나눗셈 (Right division)

\mathbf{q}_1\mathbf{q}_2^{-1}

\mathbf{q}_2의 역원을 오른쪽에서 곱한 형태이다. 이는 방정식 \mathbf{x}\mathbf{q}_2 = \mathbf{q}_1의 해 \mathbf{x} = \mathbf{q}_1\mathbf{q}_2^{-1}이다.

6.3 비가환성

좌측 나눗셈과 우측 나눗셈은 일반적으로 다르다.

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

이는 곱의 비가환성의 결과이다. 따라서 쿼터니언에 단순한 “\mathbf{q}_1/\mathbf{q}_2” 표기는 모호하며 사용하지 않는 것이 좋다.

7. 나눗셈의 응용

7.1 자세 오차의 계산

두 자세 \mathbf{q}_1\mathbf{q}_2 사이의 회전 오차는 다음 중 하나로 정의된다.

7.1.1 좌측 오차

\Delta\mathbf{q} = \mathbf{q}_1^{-1}\mathbf{q}_2 = \mathbf{q}_1^*\mathbf{q}_2

이는 \mathbf{q}_1의 좌표계에서 본 \mathbf{q}_2로의 회전이다. \mathbf{q}_1\Delta\mathbf{q} = \mathbf{q}_2의 관계가 성립한다.

7.1.2 우측 오차

\Delta\mathbf{q} = \mathbf{q}_2\mathbf{q}_1^{-1} = \mathbf{q}_2\mathbf{q}_1^*

이는 월드 좌표계에서 본 회전 오차이다. \Delta\mathbf{q}\,\mathbf{q}_1 = \mathbf{q}_2의 관계가 성립한다.

좌측 오차와 우측 오차는 일반적으로 다르며, 응용의 좌표계 선택에 따라 적절한 형태를 사용한다.

7.2 자세 추정 갱신

자세 추정 알고리즘에서 새 측정값에 따라 현재 자세를 갱신할 때 나눗셈이 사용된다. 예를 들어 측정된 절대 자세와 현재 추정의 차이를 계산하여 보정한다.

7.3 손-눈 캘리브레이션

손-눈 캘리브레이션 방정식 \mathbf{A}\mathbf{X} = \mathbf{X}\mathbf{B}에서 미지수 \mathbf{X}를 풀 때 나눗셈이 등장한다.

7.4 회전 보간

두 회전 사이의 SLERP 계산에서 차이 회전이 필요하며, 이는 한 쿼터니언의 역원과 다른 쿼터니언의 곱이다.

8. 영 쿼터니언과 역원

영 쿼터니언 \mathbf{0} = (0, \mathbf{0})은 노름이 0이므로 역원이 정의되지 않는다. 이는 실수에서 0으로 나눌 수 없는 것과 같다.

영 쿼터니언이 등장하는 경우는 매우 드물지만, 코드에서 안전 검사가 필요하다.

function inverse(q):
    norm_sq = norm_squared(q)
    if norm_sq < epsilon:
        raise ZeroDivisionError("Cannot invert zero quaternion")
    return conjugate(q) / norm_sq

9. 역원과 회전

회전을 표현하는 단위 쿼터니언 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})의 역원은

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

이는 같은 축 \hat{\mathbf{u}} 주위의 -\phi 회전이다. 즉, 원래 회전의 반대 방향 회전이다.

또는 다음과 같이 해석할 수 있다.

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

이는 반대 방향 축 -\hat{\mathbf{u}} 주위의 같은 각도 \phi 회전이다.

두 해석은 동등하며, 모두 원래 회전의 역회전을 나타낸다.

10. 역원과 군 이론

쿼터니언의 역원의 존재는 쿼터니언 집합이 군 구조를 가짐을 보장한다.

10.1 디비전 링

영을 제외한 쿼터니언 \mathbb{H} \setminus \{\mathbf{0}\}은 곱셈에 관해 비가환 군을 형성한다. 모든 영이 아닌 원소가 역원을 가지므로 쿼터니언은 디비전 링(division ring)이다.

10.2 단위 쿼터니언 군

단위 쿼터니언의 집합은 곱셈에 관해 군을 형성한다. 항등원이 1이고, 역원이 켤레이다. 이 군은 위상적으로 4차원 단위 구면 S^3이며, 회전군 SO(3)의 이중 피복이다.

11. 역원의 효율적 구현

11.1 단위 쿼터니언의 경우

단위 쿼터니언의 역원은 켤레와 같으므로 매우 효율적이다.

function inverse_unit(q):
    return Quaternion(q.w, -q.x, -q.y, -q.z)

3 부호 반전만 필요하다.

11.2 일반 쿼터니언의 경우

일반 쿼터니언의 역원은 켤레와 노름의 제곱이 필요하다.

function inverse(q):
    norm_sq = q.w*q.w + q.x*q.x + q.y*q.y + q.z*q.z
    inv_norm_sq = 1.0 / norm_sq
    return Quaternion(
        q.w * inv_norm_sq,
        -q.x * inv_norm_sq,
        -q.y * inv_norm_sq,
        -q.z * inv_norm_sq
    )

추가로 4 곱셈, 3 덧셈, 1 나누기, 4 곱셈이 필요하다.

12. 역원의 미분

쿼터니언 역원에 대한 미분은 다음과 같다.

\frac{d\mathbf{q}^{-1}}{d\mathbf{q}} = ?

이는 다소 복잡한 자코비안이다. \mathbf{q}\mathbf{q}^{-1} = 1의 양변을 미분하여 도출할 수 있다.

d\mathbf{q}\,\mathbf{q}^{-1} + \mathbf{q}\,d\mathbf{q}^{-1} = 0

이로부터

d\mathbf{q}^{-1} = -\mathbf{q}^{-1}\,d\mathbf{q}\,\mathbf{q}^{-1}

이는 행렬 역의 미분 공식과 같은 형태이다.

12.1 단위 쿼터니언의 경우

단위 쿼터니언의 미분은 더 단순하지만 매니폴드 구조를 고려해야 한다. 단위 노름 제약으로 인해 미분이 접공간에 제한된다.

13. 역원과 연쇄 곱의 역

여러 쿼터니언의 곱의 역원은 각 역원의 역순 곱이다.

(\mathbf{q}_1\mathbf{q}_2\cdots\mathbf{q}_n)^{-1} = \mathbf{q}_n^{-1}\cdots\mathbf{q}_2^{-1}\mathbf{q}_1^{-1}

이는 매니퓰레이터의 기구학 연쇄나 자세 추정의 누적 갱신에서 자주 등장한다.

14. 역원의 일관성 검증

쿼터니언 역원이 정확히 계산되었는지 검증하려면 곱이 항등원인지 확인한다.

\mathbf{q}\mathbf{q}^{-1} \approx 1

부동 소수점 오차로 인해 정확히 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.
  • Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.

version: 1.0