10.14 쿼터니언 회전의 샌드위치 곱 연산
1. 샌드위치 곱의 개념
쿼터니언 기반 벡터 회전의 핵심 연산은 다음과 같이 표현된다.
\mathbf{v}' = \mathbf{q}\mathbf{v}\mathbf{q}^*
이 형태에서 벡터 \mathbf{v}가 쿼터니언 \mathbf{q}와 그 켤레 \mathbf{q}^* 사이에 끼어 있는 모습이 마치 샌드위치와 같다고 하여, 이 연산을 샌드위치 곱(sandwich product) 또는 **합동 변환(conjugation)**이라 한다.
2. 일반화된 샌드위치 곱
샌드위치 곱은 임의의 두 쿼터니언 \mathbf{p}와 \mathbf{q}에 대해 다음의 형태로 일반화할 수 있다.
\mathbf{p}\mathbf{q}\mathbf{p}^{-1}
또는 단위 쿼터니언의 경우 \mathbf{p}^{-1} = \mathbf{p}^*이므로
\mathbf{p}\mathbf{q}\mathbf{p}^*
이러한 형태의 연산이 군 이론과 표현 이론에서 자주 등장한다. 군 이론에서는 이를 켤레 작용(conjugation action) 또는 **공역 작용(adjoint action)**이라 부른다.
3. 회전 공식에서의 샌드위치 곱
벡터 회전 공식 \mathbf{v}' = \mathbf{q}\mathbf{v}_q\mathbf{q}^*는 샌드위치 곱의 특수한 경우이다.
- \mathbf{q}: 회전을 표현하는 단위 쿼터니언
- \mathbf{v}_q = (0, \mathbf{v}): 회전할 벡터의 순수 벡터 쿼터니언 표현
- \mathbf{q}^* = \mathbf{q}^{-1}: 단위 쿼터니언의 역원
이 식이 회전된 벡터의 순수 벡터 쿼터니언 표현을 산출한다.
4. 샌드위치 곱의 성질
4.1 순수 벡터 보존
\mathbf{v}_q가 순수 벡터 쿼터니언이면 \mathbf{q}\mathbf{v}_q\mathbf{q}^*도 순수 벡터 쿼터니언이다.
증명: 결과의 스칼라 부분이 0임을 직접 계산하여 보일 수 있다(앞 절의 유도 참조). 이는 회전이 벡터를 다시 벡터로 사상한다는 사실의 표현이다.
4.2 노름 보존
샌드위치 곱은 노름을 보존한다.
\lVert\mathbf{q}\mathbf{v}\mathbf{q}^*\rVert = \lVert\mathbf{q}\rVert\cdot\lVert\mathbf{v}\rVert\cdot\lVert\mathbf{q}^*\rVert = 1 \cdot \lVert\mathbf{v}\rVert \cdot 1 = \lVert\mathbf{v}\rVert
(여기서 \mathbf{q}가 단위 쿼터니언이고 \lVert\mathbf{q}^*\rVert = \lVert\mathbf{q}\rVert = 1이다.)
이는 회전이 벡터의 길이를 보존한다는 사실의 표현이다.
4.3 선형성
샌드위치 곱은 벡터에 대해 선형이다.
\mathbf{q}(\alpha\mathbf{v}_1 + \beta\mathbf{v}_2)\mathbf{q}^* = \alpha(\mathbf{q}\mathbf{v}_1\mathbf{q}^*) + \beta(\mathbf{q}\mathbf{v}_2\mathbf{q}^*)
이는 회전이 선형 변환임의 표현이다.
4.4 합성
여러 회전의 합성은 샌드위치 곱의 중첩으로 표현된다.
\mathbf{q}_2(\mathbf{q}_1\mathbf{v}\mathbf{q}_1^*)\mathbf{q}_2^* = (\mathbf{q}_2\mathbf{q}_1)\mathbf{v}(\mathbf{q}_2\mathbf{q}_1)^*
여기서 마지막 단계는 곱의 켤레 규칙 (\mathbf{q}_2\mathbf{q}_1)^* = \mathbf{q}_1^*\mathbf{q}_2^*를 사용하였다. 이는 두 회전의 합성이 단위 쿼터니언 곱으로 표현됨을 보여준다.
5. 샌드위치 곱과 군 이론
군 G에서 원소 g의 켤레 작용은 다음과 같이 정의된다.
\mathrm{Conj}_g: G \to G, \quad h \mapsto ghg^{-1}
이는 G의 자기 동형 사상(automorphism)이다. 즉, 군 구조를 보존한다.
쿼터니언 회전의 샌드위치 곱은 쿼터니언 군에서의 켤레 작용의 특수한 형태이다. \mathbf{q}가 단위 쿼터니언이면 \mathbf{q}^{-1} = \mathbf{q}^*이고, 켤레 작용은 다음과 같다.
\mathbf{v} \mapsto \mathbf{q}\mathbf{v}\mathbf{q}^*
6. 샌드위치 곱과 부호 이중성
쿼터니언 \mathbf{q}와 -\mathbf{q}가 같은 회전을 나타내는 부호 이중성은 샌드위치 곱에서 직접 확인된다.
(-\mathbf{q})\mathbf{v}(-\mathbf{q})^* = (-\mathbf{q})\mathbf{v}(-\mathbf{q}^*) = (-1)(-1)\mathbf{q}\mathbf{v}\mathbf{q}^* = \mathbf{q}\mathbf{v}\mathbf{q}^*
부호가 두 곳에서 등장하여 상쇄되므로, 결과가 같다. 이는 \mathbf{q}와 -\mathbf{q}가 정말로 같은 회전을 나타냄을 보장한다.
7. 샌드위치 곱과 미분
자세 추정에서 샌드위치 곱의 미분이 등장한다.
7.1 시간 미분
\mathbf{q}(t)가 시간에 따라 변할 때
\frac{d}{dt}[\mathbf{q}\mathbf{v}\mathbf{q}^*] = \dot{\mathbf{q}}\mathbf{v}\mathbf{q}^* + \mathbf{q}\mathbf{v}\dot{\mathbf{q}}^*
이 식은 자세의 시간 변화에 따라 회전된 벡터가 어떻게 변하는지를 기술한다.
7.2 작은 회전의 효과
작은 회전 \delta\mathbf{q}가 추가될 때, 회전된 벡터의 변화는 1차 근사로 다음과 같이 표현된다.
\delta(\mathbf{q}\mathbf{v}\mathbf{q}^*) \approx \delta\mathbf{q}\mathbf{v}\mathbf{q}^* + \mathbf{q}\mathbf{v}\delta\mathbf{q}^*
이는 자세 추정의 자코비안 계산에서 사용된다.
8. 샌드위치 곱과 회전 행렬
샌드위치 곱은 회전 행렬과 벡터의 곱과 같은 결과를 산출한다.
\mathbf{q}\mathbf{v}\mathbf{q}^* \leftrightarrow \mathbf{R}(\mathbf{q})\mathbf{v}
여기서 \mathbf{R}(\mathbf{q})는 단위 쿼터니언 \mathbf{q}에 대응하는 회전 행렬이다. 두 표현은 수학적으로 등가이며, 같은 회전된 벡터를 산출한다.
9. 샌드위치 곱의 효율성
샌드위치 곱은 두 번의 쿼터니언 곱을 포함하므로, 단순 회전 행렬-벡터 곱보다 비효율적이다.
9.1 직접 계산의 비용
- 첫 번째 쿼터니언 곱 (\mathbf{q}\mathbf{v}_q): 약 16 곱셈, 12 덧셈
- 두 번째 쿼터니언 곱 ((\mathbf{q}\mathbf{v}_q)\mathbf{q}^*): 약 16 곱셈, 12 덧셈
총 약 32 곱셈, 24 덧셈이다.
9.2 회전 행렬-벡터 곱
- 9 곱셈, 6 덧셈
회전 행렬을 미리 계산해 두면 점 변환이 훨씬 효율적이다.
9.3 최적화된 샌드위치 곱
샌드위치 곱을 직접 명시적 형태로 전개하면 약 15 곱셈, 15 덧셈으로 줄일 수 있다.
\mathbf{v}' = \mathbf{v} + 2q_w(\mathbf{q}_v\times\mathbf{v}) + 2(\mathbf{q}_v\times(\mathbf{q}_v\times\mathbf{v}))
이 형태는 외적을 두 번 사용하며, 약간의 산술 연산으로 효율적으로 계산된다.
10. 효율적 형태의 유도
위의 효율적 형태를 유도하자. 앞서 유도한 결과
\mathbf{v}' = (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
에서 시작한다. 단위 쿼터니언이므로 q_w^2 + \lVert\mathbf{q}_v\rVert^2 = 1이고
q_w^2 - \lVert\mathbf{q}_v\rVert^2 = 1 - 2\lVert\mathbf{q}_v\rVert^2
또한 BAC-CAB 공식을 이용하면
\mathbf{q}_v\times(\mathbf{q}_v\times\mathbf{v}) = \mathbf{q}_v(\mathbf{q}_v\cdot\mathbf{v}) - \mathbf{v}\lVert\mathbf{q}_v\rVert^2
이로부터
2(\mathbf{q}_v\cdot\mathbf{v})\mathbf{q}_v = 2(\mathbf{q}_v\times(\mathbf{q}_v\times\mathbf{v})) + 2\lVert\mathbf{q}_v\rVert^2\mathbf{v}
이를 원래 식에 대입하면
\mathbf{v}' = (1 - 2\lVert\mathbf{q}_v\rVert^2)\mathbf{v} + 2q_w(\mathbf{q}_v\times\mathbf{v}) + 2(\mathbf{q}_v\times(\mathbf{q}_v\times\mathbf{v})) + 2\lVert\mathbf{q}_v\rVert^2\mathbf{v}
= \mathbf{v} + 2q_w(\mathbf{q}_v\times\mathbf{v}) + 2(\mathbf{q}_v\times(\mathbf{q}_v\times\mathbf{v}))
이것이 최적화된 형태이다.
11. 샌드위치 곱의 합성과 누적
여러 회전을 누적적으로 적용할 때, 다음의 두 가지 방법이 있다.
11.1 방법 1: 매번 샌드위치 곱
\mathbf{v}_1 = \mathbf{q}_1\mathbf{v}\mathbf{q}_1^*
\mathbf{v}_2 = \mathbf{q}_2\mathbf{v}_1\mathbf{q}_2^*
각 단계마다 샌드위치 곱을 적용한다. n 회전에 대해 2n 쿼터니언 곱이 필요하다.
11.2 방법 2: 합성 후 한 번의 샌드위치 곱
\mathbf{q}_{\text{total}} = \mathbf{q}_n\cdots\mathbf{q}_2\mathbf{q}_1
\mathbf{v}_{\text{final}} = \mathbf{q}_{\text{total}}\mathbf{v}\mathbf{q}_{\text{total}}^*
먼저 모든 쿼터니언을 합성한 후 한 번의 샌드위치 곱을 적용한다. n 회전에 대해 n - 1 쿼터니언 곱과 1 샌드위치 곱이 필요하다.
방법 2가 일반적으로 더 효율적이며, 같은 결과를 산출한다.
12. 샌드위치 곱과 합동 변환
샌드위치 곱은 군 이론의 켤레 작용 외에도 다른 분야에서 등장한다.
12.1 행렬 합동 변환
선형 대수에서 행렬 \mathbf{A}의 합동 변환은 \mathbf{P}\mathbf{A}\mathbf{P}^{-1}의 형태이다. 이는 기저 변환에 따른 행렬 표현의 변화를 기술한다.
12.2 표현 이론
군의 표현 이론에서 행렬 군의 부분 군의 켤레는 \mathbf{P}H\mathbf{P}^{-1}의 형태로 정의된다. 이는 같은 부분 군의 다른 표현이다.
12.3 양자 역학
양자 역학에서 연산자의 시간 변화는 \mathbf{U}^\dagger\mathbf{O}\mathbf{U}의 형태로 표현된다. 이는 하이젠베르크 그림(Heisenberg picture)에서의 시간 변화이다.
쿼터니언 샌드위치 곱은 이러한 다양한 켤레/합동 변환의 한 예이다.
13. 샌드위치 곱의 응용
13.1 점군 변환
LiDAR 점군의 모든 점을 같은 자세로 회전할 때, 각 점에 대해 샌드위치 곱이 적용된다. 효율적 구현은 회전 행렬로의 변환을 거치는 것이다.
13.2 자세 추정 갱신
자세 추정 알고리즘에서 새 측정에 따라 자세를 갱신할 때, 자세 자체가 단위 쿼터니언이고 측정 벡터에 샌드위치 곱이 적용된다.
13.3 시각 SLAM
카메라가 본 3D 점이 카메라 자세에 의해 어떻게 변환되는지를 샌드위치 곱으로 표현한다.
13.4 강체 동역학
강체에 작용하는 외력과 토크의 좌표 변환에서 샌드위치 곱이 사용된다.
14. 샌드위치 곱과 매니퓰레이터
매니퓰레이터의 기구학에서 한 좌표계의 벡터를 다른 좌표계로 변환할 때, 전체 변환은 여러 샌드위치 곱의 합성이 될 수 있다. 그러나 일반적으로는 동차 변환 행렬을 사용하여 단순화한다.
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.
- Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.
- Conway, J. H., & Smith, D. A. (2003). On Quaternions and Octonions. A K Peters.
version: 1.0