10.37 이중 쿼터니언과 강체 변환의 표현
1. 이중 쿼터니언을 통한 강체 변환 표현
이중 쿼터니언은 3차원 강체 변환을 통일된 대수적 형태로 표현하는 도구이다. 회전과 병진을 하나의 객체로 결합하여, SE(3)의 원소를 효율적으로 매개화한다.
본 절에서는 강체 변환을 이중 쿼터니언으로 표현하는 구체적 방법과 그 성질을 다룬다.
2. 강체 변환에서 이중 쿼터니언으로
2.1 입력: 회전과 병진
강체 변환은 다음의 두 성분으로 구성된다.
- 회전 \mathbf{R} \in SO(3), 단위 쿼터니언 \mathbf{q}_r로 표현
- 병진 \mathbf{t} \in \mathbb{R}^3
2.2 이중 쿼터니언의 구성
위의 (\mathbf{q}_r, \mathbf{t})를 이중 쿼터니언으로 변환한다.
\hat{\mathbf{q}} = \mathbf{q}_r + \frac{1}{2}(\mathbf{t}\otimes\mathbf{q}_r)\epsilon
여기서
- 실수 부분: \mathbf{q}_r (회전 쿼터니언)
- 이중 부분: \frac{1}{2}\mathbf{t}\otimes\mathbf{q}_r (병진 정보가 인코딩된 쿼터니언)
\mathbf{t}는 순수 벡터 쿼터니언 (0, \mathbf{t})로 처리된다.
3. 공식의 유도
이중 쿼터니언의 구성 공식이 왜 위의 형태를 가지는지 유도한다.
3.1 강체 변환의 분해
강체 변환을 다음의 두 기본 변환의 합성으로 분해한다.
- 병진 변환: \mathbf{T} = \mathbf{t}
- 회전 변환: \mathbf{R}
분해의 순서에 따라 두 가지가 가능하다.
- 먼저 회전, 다음 병진: \mathbf{p}' = \mathbf{R}\mathbf{p} + \mathbf{t}
- 먼저 병진, 다음 회전: \mathbf{p}' = \mathbf{R}(\mathbf{p} + \mathbf{t})
일반적인 표준 형태는 첫 번째이다.
3.2 이중 쿼터니언 형태
강체 변환에 대응하는 이중 쿼터니언은 병진과 회전의 이중 쿼터니언 곱으로 표현된다. 이를 전개하면 위에서 제시한 닫힌 형태가 된다.
4. 이중 쿼터니언의 단위 조건
이중 쿼터니언이 유효한 강체 변환을 나타내려면 두 조건을 만족해야 한다.
4.1 조건 1: 실수 부분의 단위 노름
\lVert\mathbf{q}_r\rVert = 1
이는 회전 쿼터니언이 단위 쿼터니언이라는 조건이다.
4.2 조건 2: 실수와 이중 부분의 직교
\mathbf{q}_r\cdot\mathbf{q}_d = 0
이는 이중 부분이 실수 부분에 “수직“이라는 조건이다.
4.3 조건 2의 유도
\mathbf{q}_d = \frac{1}{2}\mathbf{t}\mathbf{q}_r이고 \mathbf{t}가 순수 벡터 쿼터니언이므로 \mathrm{Re}(\mathbf{t}) = 0이다. 쿼터니언 곱의 스칼라 부분을 계산하면
\mathrm{Sc}(\mathbf{q}_r^*\mathbf{q}_d) = \mathrm{Sc}\left(\mathbf{q}_r^*\cdot\frac{1}{2}\mathbf{t}\mathbf{q}_r\right) = \frac{1}{2}\mathrm{Sc}(\mathbf{q}_r^*\mathbf{t}\mathbf{q}_r)
\mathbf{q}_r와 \mathbf{q}_r^*가 동반 관계이고, 그 곱이 단위이므로
\mathbf{q}_r^*\mathbf{t}\mathbf{q}_r
이는 \mathbf{t}의 회전된 형태이며, 여전히 순수 벡터이다. 따라서 스칼라 부분이 0이다.
\mathrm{Sc}(\mathbf{q}_r^*\mathbf{q}_d) = 0
이는 \mathbf{q}_r\cdot\mathbf{q}_d = 0을 의미한다.
5. 역방향: 이중 쿼터니언에서 강체 변환으로
이중 쿼터니언 \hat{\mathbf{q}} = \mathbf{q}_r + \mathbf{q}_d\epsilon로부터 회전과 병진을 추출하는 방법은 다음과 같다.
5.1 회전의 추출
회전 쿼터니언은 실수 부분이다.
\mathbf{q}_r = \hat{\mathbf{q}}.\text{real}
5.2 병진의 추출
병진은 이중 부분으로부터 추출된다.
\mathbf{t} = 2\mathbf{q}_d\otimes\mathbf{q}_r^*
이를 순수 벡터 쿼터니언으로 확인하면 (스칼라 부분이 0), 벡터 부분이 \mathbf{t}이다.
6. 이중 쿼터니언으로 점 변환
3차원 점 \mathbf{p}를 이중 쿼터니언으로 변환하려면 다음의 형태를 사용한다.
6.1 점의 이중 쿼터니언 표현
\hat{\mathbf{p}} = 1 + \mathbf{p}\epsilon
여기서 실수 부분이 1(항등 회전)이고 이중 부분이 점 \mathbf{p}의 순수 벡터 쿼터니언 표현이다.
6.2 샌드위치 곱
점에 대한 변환은 다음의 샌드위치 곱으로 표현된다.
\hat{\mathbf{p}}' = \hat{\mathbf{q}}\hat{\mathbf{p}}\hat{\mathbf{q}}^\star
여기서 \hat{\mathbf{q}}^\star는 결합 켤레이다.
\hat{\mathbf{q}}^\star = \mathbf{q}_r^* - \mathbf{q}_d^*\epsilon
6.3 결과에서 점 추출
\hat{\mathbf{p}}'의 이중 부분이 변환된 점이다.
7. 이중 쿼터니언 곱과 강체 변환 합성
두 이중 쿼터니언의 곱이 두 강체 변환의 합성에 대응한다.
\hat{\mathbf{q}}_2\hat{\mathbf{q}}_1 \leftrightarrow \mathbf{T}_2\mathbf{T}_1
이는 쿼터니언이 회전 합성을 나타내는 것의 이중 쿼터니언 확장이다.
7.1 곱의 전개
\hat{\mathbf{q}}_2\hat{\mathbf{q}}_1 = (\mathbf{q}_{r,2} + \mathbf{q}_{d,2}\epsilon)(\mathbf{q}_{r,1} + \mathbf{q}_{d,1}\epsilon)
\epsilon^2 = 0을 사용하면
= \mathbf{q}_{r,2}\mathbf{q}_{r,1} + (\mathbf{q}_{r,2}\mathbf{q}_{d,1} + \mathbf{q}_{d,2}\mathbf{q}_{r,1})\epsilon
7.2 실수 부분
결과의 실수 부분은 두 회전의 합성이다.
\mathbf{q}_{r,\text{합성}} = \mathbf{q}_{r,2}\mathbf{q}_{r,1}
7.3 이중 부분
결과의 이중 부분은 병진의 합성 정보를 담고 있다.
\mathbf{q}_{d,\text{합성}} = \mathbf{q}_{r,2}\mathbf{q}_{d,1} + \mathbf{q}_{d,2}\mathbf{q}_{r,1}
이 복잡한 공식이 두 강체 변환의 합성의 병진 부분 \mathbf{R}_2\mathbf{t}_1 + \mathbf{t}_2에 대응한다.
8. 이중 쿼터니언 역
단위 이중 쿼터니언의 역은 결합 켤레이다.
\hat{\mathbf{q}}^{-1} = \hat{\mathbf{q}}^\star = \mathbf{q}_r^* - \mathbf{q}_d^*\epsilon
이는 강체 변환의 역과 대응한다.
\mathbf{T}^{-1} = \begin{bmatrix}\mathbf{R}^T & -\mathbf{R}^T\mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix}
이중 쿼터니언 역의 간결함은 쿼터니언 역이 켤레인 것과 같은 우아한 성질이다.
9. 이중 쿼터니언과 동차 변환 행렬의 비교
9.1 동차 변환 행렬
\mathbf{T} = \begin{bmatrix}\mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix}
- 16 매개변수 (실제로 12개 정보)
- 합성이 행렬 곱 (27 곱셈, 18 덧셈)
- 역은 특별한 공식 필요
9.2 이중 쿼터니언
\hat{\mathbf{q}} = \mathbf{q}_r + \mathbf{q}_d\epsilon
- 8 매개변수 (실제로 6개 정보)
- 합성이 이중 쿼터니언 곱 (약 48 곱셈)
- 역이 켤레로 단순
9.3 비교 표
| 특성 | 동차 변환 행렬 | 이중 쿼터니언 |
|---|---|---|
| 매개변수 수 | 16 | 8 |
| 합성 복잡도 | 낮음 | 중간 |
| 역의 계산 | 특별 공식 | 켤레 |
| 점 변환 | 단순 | 복잡 |
| 보간 | 어려움 | 자연스러움 |
| 메모리 | 64 바이트 (double) | 64 바이트 (double) |
10. 이중 쿼터니언의 지수 사상
이중 쿼터니언의 지수 사상은 \mathfrak{se}(3)(트위스트)에서 SE(3)로의 변환이다.
10.1 트위스트
트위스트 \boldsymbol{\xi} = (\boldsymbol{\omega}, \mathbf{v})는 각속도와 선형 속도로 구성된다.
10.2 이중 쿼터니언 형태
트위스트의 이중 쿼터니언 표현은
\hat{\boldsymbol{\xi}} = \frac{1}{2}\boldsymbol{\omega} + \frac{1}{2}\mathbf{v}\epsilon
(순수 벡터 형태)
10.3 지수
이중 쿼터니언 지수는 트위스트로부터 강체 변환을 산출한다.
\hat{\mathbf{q}} = \exp(\hat{\boldsymbol{\xi}})
이는 스크류 운동의 자연스러운 표현이다.
11. 이중 쿼터니언의 로그
역방향 사상은 이중 쿼터니언 로그이다.
\hat{\boldsymbol{\xi}} = \log(\hat{\mathbf{q}})
이는 강체 변환을 트위스트로 변환한다. 이는 SE(3) 상의 “측지선 거리“와 관련이 있다.
12. 이중 쿼터니언의 장점
12.1 통일된 표현
회전과 병진을 하나의 객체로 다룬다. 이는 코드의 단순함과 일관성을 제공한다.
12.2 매끄러운 보간
이중 쿼터니언의 선형 보간이 강체 변환의 매끄러운 보간을 제공한다.
12.3 스크류 운동
스크류 운동을 자연스럽게 표현한다. 슈아세의 정리와 직접 연결된다.
12.4 매니폴드 구조
SE(3)의 매니폴드 구조를 직접 반영한다.
13. 이중 쿼터니언의 한계
13.1 복잡성
이중수의 개념이 학습을 어렵게 한다. 대부분의 사용자에게는 동차 변환 행렬이 더 친숙하다.
13.2 계산 비용
점 변환이 이중 쿼터니언의 샌드위치 곱을 요구하므로 복잡하다. 회전 행렬-벡터 곱보다 비쌀 수 있다.
13.3 제한된 라이브러리 지원
많은 로봇 공학 라이브러리가 동차 변환 행렬을 사용하므로, 이중 쿼터니언 지원이 제한적이다.
14. 이중 쿼터니언의 응용
14.1 스킨 애니메이션
캐릭터 애니메이션에서 본의 변환을 이중 쿼터니언으로 표현한다. 선형 블렌딩(DLB, Dual Quaternion Linear Blending)이 자연스러운 피부 변형을 만든다.
14.2 로봇 기구학
일부 기구학 알고리즘이 이중 쿼터니언을 사용한다. 특히 손-눈 캘리브레이션과 일부 경로 계획 알고리즘이다.
14.3 시각 SLAM
일부 시각 SLAM 시스템이 카메라 자세를 이중 쿼터니언으로 표현한다.
14.4 강체 동역학
강체의 위치와 방향을 동시에 다루는 동역학 분석에서 사용된다.
15. 구현의 고려 사항
15.1 단위 조건의 유지
이중 쿼터니언은 두 조건(단위 노름과 직교성)을 만족해야 한다. 수치 오차로 이 조건이 손실될 수 있으므로 주기적 재정규화가 필요하다.
15.2 재정규화 알고리즘
function renormalize(dq):
# 실수 부분 정규화
norm_r = norm(dq.real)
dq.real /= norm_r
dq.dual /= norm_r
# 직교성 강제
dot = dq.real.dot(dq.dual)
dq.dual -= dot * dq.real
return dq
16. 결론
이중 쿼터니언은 강체 변환을 통일적으로 표현하는 대수적 도구이다. 회전과 병진을 하나의 객체로 결합하여 합성, 역, 보간 등의 연산을 우아하게 처리한다. 동차 변환 행렬보다 학습 곡선이 크지만, 특정 응용(스킨 애니메이션, 손-눈 캘리브레이션 등)에서는 매우 효율적이다.
17. 참고 문헌
- Clifford, W. K. (1873). “Preliminary Sketch of Biquaternions.” Proceedings of the London Mathematical Society, 4(1), 381–395.
- Daniilidis, K. (1999). “Hand-Eye Calibration Using Dual Quaternions.” International Journal of Robotics Research, 18(3), 286–298.
- Selig, J. M. (2005). Geometric Fundamentals of Robotics (2nd ed.). Springer.
- Kavan, L., Collins, S., Žára, J., & O’Sullivan, C. (2008). “Geometric Skinning with Approximate Dual Quaternion Blending.” ACM Transactions on Graphics, 27(4).
- McCarthy, J. M. (1990). Introduction to Theoretical Kinematics. MIT Press.
version: 1.0