10.7 쿼터니언 곱의 행렬 형태 표현

1. 행렬 형태의 동기

쿼터니언 곱은 4 성분의 비선형 연산처럼 보이지만, 실제로는 한 쿼터니언에 대해 선형 연산이다. 즉, \mathbf{q}_1을 고정하면 \mathbf{q}_2 \mapsto \mathbf{q}_1\mathbf{q}_2\mathbf{q}_2의 4성분에 대한 선형 사상이다. 이러한 선형성을 이용하면 쿼터니언 곱을 행렬-벡터 곱으로 표현할 수 있다.

행렬 형태의 표현은 다음과 같은 이점을 제공한다.

  1. 선형 대수와의 통합: 쿼터니언 곱이 표준 행렬 연산이 되어 선형 대수의 모든 도구가 적용 가능하다.
  2. 자코비안 계산: 쿼터니언에 대한 미분이 행렬 형태에서 더 쉽게 다루어진다.
  3. 선형 방정식의 해법: 쿼터니언을 포함하는 방정식을 표준 행렬 방정식으로 변환할 수 있다.
  4. 수치 구현: 행렬 라이브러리(Eigen 등)를 직접 활용할 수 있다.

2. 좌측 곱 행렬

쿼터니언 \mathbf{q}_1을 고정하고 \mathbf{q}_2를 변수로 보면, \mathbf{q}_1\mathbf{q}_2\mathbf{q}_2에 대한 선형 사상이다. 이를 행렬로 표현하면

\mathbf{q}_1\mathbf{q}_2 = \mathbf{L}(\mathbf{q}_1)\mathbf{q}_2

여기서 \mathbf{L}(\mathbf{q}_1)\mathbf{q}_1에 의해 결정되는 4 \times 4 행렬이다.

2.1 좌측 곱 행렬의 명시적 형태

쿼터니언 \mathbf{q}_1 = (q_w, q_x, q_y, q_z)^T에 대해

\mathbf{L}(\mathbf{q}_1) = \begin{bmatrix} q_w & -q_x & -q_y & -q_z \\ q_x & q_w & -q_z & q_y \\ q_y & q_z & q_w & -q_x \\ q_z & -q_y & q_x & q_w \end{bmatrix}

이 행렬에 \mathbf{q}_2 = (q_{2,w}, q_{2,x}, q_{2,y}, q_{2,z})^T를 곱하면 \mathbf{q}_1\mathbf{q}_2의 4-튜플 표현이 산출된다.

2.2 좌측 곱 행렬의 블록 구조

스칼라-벡터 분해를 사용하면 좌측 곱 행렬의 구조가 더 명확해진다.

\mathbf{L}(\mathbf{q}_1) = \begin{bmatrix} q_{1,w} & -\mathbf{q}_{1,v}^T \\ \mathbf{q}_{1,v} & q_{1,w}\mathbf{I}_3 + [\mathbf{q}_{1,v}]_\times \end{bmatrix}

여기서

  • 좌상단: 스칼라 부분의 곱에 해당
  • 우상단 행: -\mathbf{q}_{1,v}^T (벡터 부분의 내적의 음수)
  • 좌하단 열: \mathbf{q}_{1,v} (스칼라와 벡터의 곱)
  • 우하단 블록: q_{1,w}\mathbf{I}_3 + [\mathbf{q}_{1,v}]_\times (스칼라 곱과 외적의 결합)

이 구조는 쿼터니언 곱의 스칼라-벡터 형태와 직접 대응된다.

3. 우측 곱 행렬

마찬가지로 \mathbf{q}_2를 고정하고 \mathbf{q}_1을 변수로 보면 다른 행렬이 정의된다.

\mathbf{q}_1\mathbf{q}_2 = \mathbf{R}(\mathbf{q}_2)\mathbf{q}_1

여기서 \mathbf{R}(\mathbf{q}_2)는 우측 곱 행렬이다.

3.1 우측 곱 행렬의 명시적 형태

쿼터니언 \mathbf{q}_2 = (q_w, q_x, q_y, q_z)^T에 대해

\mathbf{R}(\mathbf{q}_2) = \begin{bmatrix} q_w & -q_x & -q_y & -q_z \\ q_x & q_w & q_z & -q_y \\ q_y & -q_z & q_w & q_x \\ q_z & q_y & -q_x & q_w \end{bmatrix}

좌측 곱 행렬과 비교하면 우하단 3 \times 3 블록의 비대각 부호가 반대이다. 이것이 비가환성의 행렬 형태에서의 표현이다.

3.2 우측 곱 행렬의 블록 구조

\mathbf{R}(\mathbf{q}_2) = \begin{bmatrix} q_{2,w} & -\mathbf{q}_{2,v}^T \\ \mathbf{q}_{2,v} & q_{2,w}\mathbf{I}_3 - [\mathbf{q}_{2,v}]_\times \end{bmatrix}

좌측 곱 행렬과 비교하면 우하단 블록에서 외적 항의 부호가 반대(+ [\mathbf{q}_{1,v}]_\times-[\mathbf{q}_{2,v}]_\times)이다. 이는 \mathbf{q}_1\mathbf{q}_2 \neq \mathbf{q}_2\mathbf{q}_1의 원인을 명확히 보여준다.

4. 좌측과 우측 곱 행렬의 관계

좌측과 우측 곱 행렬은 같은 쿼터니언으로부터 다음의 관계를 가진다.

4.1 첫 번째 행과 첫 번째 열

좌측과 우측 곱 행렬의 첫 번째 행과 첫 번째 열은 같다.

\mathbf{L}(\mathbf{q})[1, :] = \mathbf{R}(\mathbf{q})[1, :], \quad \mathbf{L}(\mathbf{q})[:, 1] = \mathbf{R}(\mathbf{q})[:, 1]

이는 스칼라가 다른 쿼터니언과 가환하기 때문이다.

4.2 우하단 3 \times 3 블록

우하단 3 \times 3 블록만이 다르며, 외적 항의 부호가 반대이다.

\mathbf{L}(\mathbf{q})_{2:4, 2:4} = q_w\mathbf{I}_3 + [\mathbf{q}_v]_\times

\mathbf{R}(\mathbf{q})_{2:4, 2:4} = q_w\mathbf{I}_3 - [\mathbf{q}_v]_\times

5. 행렬 형태의 성질

5.1 직교성

좌측과 우측 곱 행렬은 단위 쿼터니언에 대해 직교 행렬이다.

\mathbf{L}(\mathbf{q})^T\mathbf{L}(\mathbf{q}) = \lVert\mathbf{q}\rVert^2\mathbf{I}_4

\mathbf{R}(\mathbf{q})^T\mathbf{R}(\mathbf{q}) = \lVert\mathbf{q}\rVert^2\mathbf{I}_4

단위 쿼터니언(\lVert\mathbf{q}\rVert = 1)이면 행렬이 정확히 직교적이다.

5.2 행렬식

좌측과 우측 곱 행렬의 행렬식은 다음과 같다.

\det(\mathbf{L}(\mathbf{q})) = \det(\mathbf{R}(\mathbf{q})) = \lVert\mathbf{q}\rVert^4

단위 쿼터니언이면 행렬식이 +1이다.

5.3 곱의 행렬

두 쿼터니언의 곱에 대한 좌측 곱 행렬은 각각의 좌측 곱 행렬의 곱이다.

\mathbf{L}(\mathbf{q}_1\mathbf{q}_2) = \mathbf{L}(\mathbf{q}_1)\mathbf{L}(\mathbf{q}_2)

이는 \mathbf{L}이 군 준동형 사상(group homomorphism)임을 보인다.

마찬가지로 우측 곱 행렬에 대해서는 순서가 반대이다.

\mathbf{R}(\mathbf{q}_1\mathbf{q}_2) = \mathbf{R}(\mathbf{q}_2)\mathbf{R}(\mathbf{q}_1)

순서 반전은 우측 작용의 일반적 특성이다.

5.4 항등원

항등 쿼터니언 1 = (1, \mathbf{0})의 곱 행렬은 단위 행렬이다.

\mathbf{L}(1) = \mathbf{R}(1) = \mathbf{I}_4

5.5 켤레의 곱 행렬

쿼터니언 켤레의 곱 행렬은 원래 곱 행렬의 전치이다.

\mathbf{L}(\mathbf{q}^*) = \mathbf{L}(\mathbf{q})^T

\mathbf{R}(\mathbf{q}^*) = \mathbf{R}(\mathbf{q})^T

이는 켤레가 회전을 반대 방향으로 만드는 것과 일치한다.

6. 행렬 형태의 응용

6.1 쿼터니언과 회전 행렬의 변환

단위 쿼터니언 \mathbf{q}에 대응하는 회전 행렬은 좌측과 우측 곱 행렬의 합성에서 추출할 수 있다.

\mathbf{R}(\mathbf{q})_{3 \times 3} = \mathbf{L}(\mathbf{q})\mathbf{R}(\mathbf{q}^*)|_{3 \times 3}

여기서 |_{3 \times 3}은 우하단 3 \times 3 부분을 추출한다는 의미이다. 이 식은 \mathbf{v}' = \mathbf{q}\mathbf{v}\mathbf{q}^*의 회전 변환을 행렬 형태로 표현한 것이다.

6.2 자세 추정 칼만 필터

자세 추정 칼만 필터에서 쿼터니언 갱신 식이 행렬 형태로 표현된다.

\mathbf{q}_{k+1} = \mathbf{L}(\mathbf{q}_k)\Delta\mathbf{q}

이는 표준 칼만 필터의 행렬 연산 프레임워크에 통합되기 쉽다.

6.3 자코비안의 계산

쿼터니언에 대한 자코비안을 계산할 때 행렬 형태가 직관적이다. 예를 들어 \mathbf{q}\mathbf{v} 형태의 도함수는

\frac{\partial(\mathbf{q}\mathbf{v})}{\partial\mathbf{q}} = \mathbf{R}(\mathbf{v})

가 된다(여기서 \mathbf{v}는 순수 벡터 쿼터니언으로 처리).

6.4 선형 시스템의 해

쿼터니언 변수에 대한 선형 시스템 \mathbf{A}\mathbf{q} = \mathbf{b}를 풀 때, 행렬 형태가 표준 선형 대수 도구를 직접 사용할 수 있게 한다.

6.5 손-눈 캘리브레이션

손-눈 캘리브레이션의 방정식 \mathbf{A}\mathbf{X} = \mathbf{X}\mathbf{B}가 쿼터니언으로 다음과 같이 표현된다.

\mathbf{q}_a\mathbf{q}_x = \mathbf{q}_x\mathbf{q}_b

또는

\mathbf{L}(\mathbf{q}_a)\mathbf{q}_x = \mathbf{R}(\mathbf{q}_b)\mathbf{q}_x

이는

(\mathbf{L}(\mathbf{q}_a) - \mathbf{R}(\mathbf{q}_b))\mathbf{q}_x = \mathbf{0}

의 형태로, 영공간(null space)을 찾는 표준 선형 대수 문제가 된다.

7. 행렬 형태의 효율성

7.1 계산 비용

행렬-벡터 곱은 16 곱셈과 12 덧셈을 요구한다. 이는 직접 계산과 같다.

7.2 메모리 사용

좌측 또는 우측 곱 행렬을 저장하면 16개의 실수가 필요하다. 직접 계산보다 메모리를 더 사용하지만, 다른 쿼터니언에 여러 번 적용되면 효율적이다.

7.3 캐싱

자주 사용되는 쿼터니언의 곱 행렬을 사전 계산하여 캐싱한다. 이는 자세 추정에서 효율적일 수 있다.

8. 행렬 형태와 쿼터니언 미적분

쿼터니언의 미분과 적분은 행렬 형태에서 더 자연스럽게 다루어진다.

8.1 시간 미분

\dot{\mathbf{q}} = \frac{1}{2}\mathbf{L}(\mathbf{q})\boldsymbol{\omega}_{\text{quat}}

여기서 \boldsymbol{\omega}_{\text{quat}} = (0, \boldsymbol{\omega})는 각속도 벡터의 순수 쿼터니언 표현이다. 이는 쿼터니언 운동학의 표준 형태이다.

8.2 적분

각속도가 일정하다고 가정하면

\mathbf{q}(t + \Delta t) = \exp\left(\frac{1}{2}\mathbf{L}(\mathbf{q}(t))\boldsymbol{\omega}\Delta t\right)

이 형태는 행렬 지수의 정확한 적분을 제공한다.

9. 행렬 형태와 비선형 최적화

비선형 최적화에서 쿼터니언을 변수로 사용할 때, 행렬 형태는 다음과 같이 활용된다.

9.1 자코비안 계산

목적 함수의 쿼터니언에 대한 미분이 행렬 형태로 표현되면 자동 미분 도구와 결합하기 쉽다.

9.2 매니폴드 제약

단위 노름 제약은 라그랑주 승수나 매니폴드 매개화로 처리된다. 행렬 형태에서 이러한 처리가 더 명확하다.

9.3 가우스-뉴턴 단계

가우스-뉴턴 알고리즘의 정상 방정식이 행렬 형태에서 표준 형태가 된다.

10. 행렬 형태의 한계

10.1 중복

좌측과 우측 곱 행렬의 정보 중 일부가 중복된다(첫 번째 행과 첫 번째 열). 직접 계산이 메모리 측면에서 더 효율적이다.

10.2 표기의 복잡성

행렬 형태가 표기적으로 더 복잡해 보일 수 있다. 단순한 곱셈에서는 직접 계산이 더 간결하다.

10.3 매니폴드 무시

행렬 형태는 단위 쿼터니언이라는 매니폴드 구조를 직접 강제하지 않는다. 별도의 정규화나 매개화가 필요하다.

11. 참고 문헌

  • Hamilton, W. R. (1844). “On Quaternions; or on a New System of Imaginaries in Algebra.” Philosophical Magazine, Vol. 25, 489–495.
  • Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
  • Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.
  • Kuipers, J. B. (1999). Quaternions and Rotation Sequences. Princeton University Press.
  • Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Springer.

version: 1.0