10.4 쿼터니언의 스칼라 부분과 벡터 부분
1. 분해의 의의
쿼터니언은 4차원 수이지만, 그 구조를 1차원의 스칼라 부분과 3차원의 벡터 부분으로 자연스럽게 분해할 수 있다. 이 분해는 쿼터니언의 기하학적 의미를 드러내고, 회전 표현, 곱셈, 운동학 등의 분석을 단순화한다.
2. 정의
쿼터니언 \mathbf{q} = q_w + q_x i + q_y j + q_z k를 다음과 같이 두 부분으로 분해한다.
2.1 스칼라 부분 (Scalar part)
\mathrm{Sc}(\mathbf{q}) = q_w
스칼라 부분은 단일 실수이며, 쿼터니언의 “실수 성분“이다. 표기에 따라 \mathrm{Re}(\mathbf{q}) 또는 w, q_0 등으로 쓴다.
2.2 벡터 부분 (Vector part)
\mathrm{Vec}(\mathbf{q}) = \mathbf{q}_v = q_x i + q_y j + q_z k
또는 3차원 벡터로
\mathbf{q}_v = (q_x, q_y, q_z)^T \in \mathbb{R}^3
벡터 부분은 3차원 벡터이며, 쿼터니언의 “허수 성분“이다. 표기에 따라 \mathrm{Im}(\mathbf{q}) 또는 \mathbf{v}, \boldsymbol{\epsilon} 등으로 쓴다.
2.3 통합 표기
이러한 분해를 사용하여 쿼터니언을 다음과 같이 표기한다.
\mathbf{q} = (q_w, \mathbf{q}_v) = q_w + \mathbf{q}_v
이는 복소수 z = a + bi가 실수부와 허수부로 분해되는 것의 일반화이다.
3. 분해의 기하학적 의미
스칼라 부분과 벡터 부분의 분해는 회전 표현에서 명확한 기하학적 의미를 가진다.
3.1 단위 쿼터니언과 회전
회전 축 \hat{\mathbf{u}} 주위로 각도 \phi만큼 회전하는 단위 쿼터니언은 다음과 같이 표현된다.
\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.2 회전 각의 추출
스칼라 부분으로부터 회전 각을 추출할 수 있다.
\phi = 2\arccos(q_w)
또는 더 수치적으로 안정적인 형태로
\phi = 2\,\mathrm{atan2}(\lVert \mathbf{q}_v \rVert, q_w)
3.3 회전 축의 추출
벡터 부분으로부터 회전 축을 추출할 수 있다.
\hat{\mathbf{u}} = \frac{\mathbf{q}_v}{\lVert \mathbf{q}_v \rVert} = \frac{\mathbf{q}_v}{\sin(\phi/2)}
\mathbf{q}_v가 0에 가까운 경우(\phi \approx 0) 축의 방향이 결정되지 않는다. 이는 항등 회전의 경미한 특이점이다.
4. 특수한 쿼터니언
4.1 순수 스칼라 쿼터니언
벡터 부분이 0인 쿼터니언이다.
\mathbf{q} = (q_w, \mathbf{0})
이는 실수 q_w와 동일시되며, 실수 \mathbb{R}이 쿼터니언 \mathbb{H}의 부분 집합임을 보여준다. 회전 표현에서 \mathbf{q} = (1, \mathbf{0})이 항등 회전을 나타내고, \mathbf{q} = (-1, \mathbf{0})이 같은 항등 회전(부호 이중성)을 나타낸다.
4.2 순수 벡터 쿼터니언 (순수 쿼터니언)
스칼라 부분이 0인 쿼터니언이다.
\mathbf{q} = (0, \mathbf{q}_v)
이는 3차원 벡터와 동일시될 수 있다. 회전 변환에서 벡터를 표현하는 데 사용되며, 회전 공식에서 중요한 역할을 한다.
순수 벡터 쿼터니언은 회전 각이 \pi인 회전(180도 회전)의 형태와 동일하다. \cos(\pi/2) = 0이므로 스칼라 부분이 0이고, \sin(\pi/2) = 1이므로 벡터 부분이 단위 벡터(회전 축)이다.
5. 분해와 노름의 관계
쿼터니언의 노름은 스칼라 부분과 벡터 부분으로 표현된다.
\lVert \mathbf{q} \rVert^2 = q_w^2 + \lVert \mathbf{q}_v \rVert^2
단위 쿼터니언(\lVert \mathbf{q} \rVert = 1)의 경우
q_w^2 + \lVert \mathbf{q}_v \rVert^2 = 1
이는 4차원 단위 구면 S^3 위의 점의 조건이다.
6. 분해와 켤레의 관계
쿼터니언의 켤레는 벡터 부분의 부호를 반전시킨 것이다.
\mathbf{q}^* = (q_w, -\mathbf{q}_v)
이는 복소수의 켤레가 허수부의 부호를 반전시키는 것의 일반화이다.
7. 분해와 곱셈의 관계
쿼터니언 곱을 스칼라 부분과 벡터 부분으로 분해하면 다음과 같이 표현된다.
\mathbf{q}_1\mathbf{q}_2 = (q_{1,w}q_{2,w} - \mathbf{q}_{1,v}\cdot\mathbf{q}_{2,v}, q_{1,w}\mathbf{q}_{2,v} + q_{2,w}\mathbf{q}_{1,v} + \mathbf{q}_{1,v}\times\mathbf{q}_{2,v})
7.1 스칼라 부분
\mathrm{Sc}(\mathbf{q}_1\mathbf{q}_2) = q_{1,w}q_{2,w} - \mathbf{q}_{1,v}\cdot\mathbf{q}_{2,v}
7.2 벡터 부분
\mathrm{Vec}(\mathbf{q}_1\mathbf{q}_2) = q_{1,w}\mathbf{q}_{2,v} + q_{2,w}\mathbf{q}_{1,v} + \mathbf{q}_{1,v}\times\mathbf{q}_{2,v}
이 표현은 두 가지 점에서 흥미롭다.
- 내적과 외적이 모두 등장: 쿼터니언 곱은 벡터 분석의 두 핵심 연산을 모두 포함한다. 이는 19세기 말 쿼터니언이 벡터 분석으로 분리된 역사적 배경을 보여준다.
- 벡터 부분의 비대칭성: 외적의 비가환성(\mathbf{a} \times \mathbf{b} = -\mathbf{b} \times \mathbf{a})이 쿼터니언 곱의 비가환성으로 이어진다.
8. 분해의 자연스러움
쿼터니언을 스칼라 부분과 벡터 부분으로 분해하는 것이 자연스러운 이유는 다음과 같다.
8.1 4 = 1 + 3
4차원 쿼터니언 공간이 1차원 스칼라 공간과 3차원 벡터 공간의 직합으로 표현된다.
\mathbb{H} = \mathbb{R} \oplus \mathbb{R}^3
이 분해는 자연스럽고 잘 정의된다.
8.2 회전과의 대응
3차원 회전이 회전 각(스칼라)과 회전 축(벡터)으로 매개화되므로, 쿼터니언의 분해가 회전 매개변수와 정확히 대응된다.
8.3 운동학과의 대응
자세 추정에서 쿼터니언의 시간 미분이 각속도와 자연스러운 관계를 가지며, 이는 분해된 형태에서 더 명확하다.
8.4 복소수와의 유사성
복소수가 실수부와 허수부로 분해되는 것의 일반화이며, 직관적이다.
9. 분해의 구현 측면
9.1 메모리 배치
코드 구현에서 쿼터니언을 저장할 때 두 가지 방법이 있다.
struct Quaternion {
double w; // 스칼라 부분
double x, y, z; // 벡터 부분
};
또는
struct Quaternion {
double w;
double v[3]; // 벡터 부분
};
또는
double q[4]; // (w, x, y, z) 또는 (x, y, z, w)
9.2 연산의 구현
분해된 표현을 사용하면 쿼터니언 곱이 다음과 같이 직관적으로 구현된다.
function multiply(q1, q2):
w = q1.w * q2.w - dot(q1.v, q2.v)
v = q1.w * q2.v + q2.w * q1.v + cross(q1.v, q2.v)
return Quaternion(w, v)
이는 4차원 행렬 곱보다 직관적이고 효율적이다.
10. 분해의 응용
10.1 회전 표현
단위 쿼터니언의 스칼라 부분과 벡터 부분으로부터 회전 각과 축을 즉시 추출할 수 있다. 이는 회전 표현 사이의 변환에서 핵심이다.
10.2 자세 추정
자세 추정 칼만 필터에서 쿼터니언의 시간 미분이 다음과 같이 표현된다.
\dot{\mathbf{q}} = \frac{1}{2}\mathbf{q} \otimes \boldsymbol{\omega}
여기서 \boldsymbol{\omega}는 순수 벡터 쿼터니언(각속도 벡터)이다. 이 식은 쿼터니언의 분해된 형태에서 자연스럽게 유도된다.
10.3 자세 제어
자세 오차의 표현에서 스칼라와 벡터 부분이 다른 의미를 가진다. 작은 오차에서 벡터 부분이 회전 벡터에 가깝고, 스칼라 부분은 1에 가깝다.
10.4 보간
SLERP의 구현에서 두 쿼터니언 사이의 각도가 스칼라 부분의 내적으로 계산된다.
\cos\Omega = \mathbf{q}_1 \cdot \mathbf{q}_2 = q_{1,w}q_{2,w} + \mathbf{q}_{1,v}\cdot\mathbf{q}_{2,v}
이는 4차원 내적을 분해된 형태로 표현한 것이다.
11. 분해의 보존 성질
쿼터니언의 다양한 연산이 스칼라/벡터 분해를 어떻게 처리하는지는 다음과 같다.
| 연산 | 스칼라 부분 | 벡터 부분 |
|---|---|---|
| 덧셈 | 합 | 합 |
| 켤레 | 보존 | 부호 반전 |
| 노름 제곱 | q_w^2 + \lVert\mathbf{q}_v\rVert^2 | (스칼라 결과) |
| 곱셈 | 비선형 (위 공식) | 비선형 (위 공식) |
| 역원 | q_w/\lVert\mathbf{q}\rVert^2 | -\mathbf{q}_v/\lVert\mathbf{q}\rVert^2 |
곱셈만이 두 부분을 비선형적으로 결합하며, 다른 연산은 분해된 형태에서 단순하게 표현된다.
12. 분해와 사원수 부분 공간
쿼터니언 공간 \mathbb{H}에서 두 부분 공간이 자연스럽게 정의된다.
12.1 스칼라 부분 공간
\{(q_w, \mathbf{0}) : q_w \in \mathbb{R}\} \cong \mathbb{R}
이는 쿼터니언 공간의 1차원 부분 공간이며, 실수와 동형이다.
12.2 벡터 부분 공간
\{(0, \mathbf{q}_v) : \mathbf{q}_v \in \mathbb{R}^3\} \cong \mathbb{R}^3
이는 쿼터니언 공간의 3차원 부분 공간이며, 3차원 벡터 공간과 동형이다. 이 부분 공간은 쿼터니언 곱에 대해 닫혀 있지 않다(두 순수 벡터 쿼터니언의 곱이 일반적으로 순수 벡터가 아님).
12.3 직합
\mathbb{H} = \mathbb{R} \oplus \mathbb{R}^3
이는 직합(direct sum) 분해이다. 모든 쿼터니언이 스칼라 부분과 벡터 부분의 합으로 유일하게 표현된다.
13. 참고 문헌
- 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