10.40 이중 쿼터니언의 보간과 블렌딩

1. 이중 쿼터니언 보간의 의의

이중 쿼터니언은 강체 변환을 통일된 대수 객체로 표현하므로, 두 강체 변환 사이의 보간이 자연스럽게 정의된다. 이는 쿼터니언의 SLERP를 강체 변환으로 확장한 것이며, 회전과 병진이 동시에 매끄럽게 보간된다.

2. 이중 쿼터니언 선형 블렌딩 (DLB)

가장 단순한 이중 쿼터니언 보간은 선형 블렌딩(Dual Quaternion Linear Blending, DLB)이다.

2.1 정의

두 이중 쿼터니언 \hat{\mathbf{q}}_0\hat{\mathbf{q}}_1, 매개변수 t \in [0, 1]에 대해

\mathrm{DLB}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, t) = \frac{(1-t)\hat{\mathbf{q}}_0 + t\hat{\mathbf{q}}_1}{\lVert(1-t)\hat{\mathbf{q}}_0 + t\hat{\mathbf{q}}_1\rVert}

여기서 노름은 이중 쿼터니언의 노름이며, 정규화 단계는 단위 이중 쿼터니언 조건을 유지하기 위한 것이다.

2.2 단계별 절차

  1. 부호 보정: \mathbf{q}_{r,0}\cdot\mathbf{q}_{r,1} < 0이면 \hat{\mathbf{q}}_1의 부호를 반전한다.
  2. 선형 결합: (1-t)\hat{\mathbf{q}}_0 + t\hat{\mathbf{q}}_1을 계산한다.
  3. 정규화: 결과를 단위 이중 쿼터니언으로 정규화한다.

2.3 정규화의 과정

이중 쿼터니언의 정규화는 다음의 두 단계로 수행된다.

2.3.1 실수 부분의 단위 노름화

\mathbf{q}_r' = \frac{\mathbf{q}_r}{\lVert\mathbf{q}_r\rVert}

\mathbf{q}_d' = \frac{\mathbf{q}_d}{\lVert\mathbf{q}_r\rVert}

2.3.2 직교성 강제

\mathbf{q}_d'' = \mathbf{q}_d' - (\mathbf{q}_r'\cdot\mathbf{q}_d')\mathbf{q}_r'

이는 이중 부분의 \mathbf{q}_r'에 대한 직교 성분을 취한다.

3. DLB의 성질

3.1 끝점 일치

\mathrm{DLB}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, 0) = \hat{\mathbf{q}}_0

\mathrm{DLB}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, 1) = \hat{\mathbf{q}}_1

3.2 단위 조건 보존

정규화 후 결과가 단위 이중 쿼터니언이다.

3.3 회전과 병진의 동시 보간

회전과 병진이 동시에 보간되며, 분리하여 처리하는 것보다 자연스러운 운동을 생성한다.

3.4 비균일한 속도

DLB는 일정한 각속도 또는 선형 속도를 보장하지 않는다. 이는 쿼터니언의 NLERP와 비슷한 특성이다.

4. ScLERP (Screw Linear Interpolation)

DLB보다 더 정교한 방법은 스크류 선형 보간(Screw Linear Interpolation, ScLERP)이다. 이는 쿼터니언의 SLERP를 이중 쿼터니언으로 확장한 것이다.

4.1 정의

\mathrm{ScLERP}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, t) = \hat{\mathbf{q}}_0\otimes\exp(t\log(\hat{\mathbf{q}}_0^{-1}\hat{\mathbf{q}}_1))

여기서 \exp\log는 이중 쿼터니언의 지수 사상과 로그 사상이다.

4.2 스크류 운동의 보간

ScLERP는 두 강체 변환 사이를 스크류 운동을 따라 보간한다. 슈아세의 정리에 의해 모든 강체 변환의 변화는 스크류 운동으로 표현될 수 있으므로, ScLERP가 자연스러운 강체 변환 보간이다.

4.3 성질

  • 끝점 일치: \mathrm{ScLERP}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, 0) = \hat{\mathbf{q}}_0, \mathrm{ScLERP}(\hat{\mathbf{q}}_0, \hat{\mathbf{q}}_1, 1) = \hat{\mathbf{q}}_1
  • 측지선: SE(3) 매니폴드 상의 측지선을 따름
  • 일정한 속도: 스크류 운동의 매개변수가 t에 비례함
  • 단위 이중 쿼터니언 보존: 결과가 정규화 없이도 단위 조건을 만족

5. ScLERP의 구현

5.1 단계별 절차

  1. 차이 이중 쿼터니언: \Delta\hat{\mathbf{q}} = \hat{\mathbf{q}}_0^{-1}\hat{\mathbf{q}}_1
  2. 로그 사상: \hat{\boldsymbol{\xi}} = \log(\Delta\hat{\mathbf{q}})
  3. 스케일링: t\hat{\boldsymbol{\xi}}
  4. 지수 사상: \exp(t\hat{\boldsymbol{\xi}})
  5. : \hat{\mathbf{q}}_0\otimes\exp(t\hat{\boldsymbol{\xi}})

5.2 알고리즘

function sclerp(dq0, dq1, t):
    delta_dq = dq0.inverse() * dq1
    xi = dual_quaternion_log(delta_dq)
    scaled_xi = t * xi
    exp_xi = dual_quaternion_exp(scaled_xi)
    return dq0 * exp_xi

6. 이중 쿼터니언 지수와 로그

6.1 지수 사상

이중 쿼터니언 지수 사상은 \mathfrak{se}(3) 리 대수(트위스트)에서 SE(3)로의 사상이다.

\exp(\hat{\boldsymbol{\xi}}) = \hat{\mathbf{q}}

닫힌 형태는 쿼터니언 지수의 이중 확장이다.

6.2 로그 사상

로그 사상은 지수의 역이다.

\log(\hat{\mathbf{q}}) = \hat{\boldsymbol{\xi}}

이중 쿼터니언으로부터 트위스트를 추출한다.

7. DLB와 ScLERP의 비교

특성DLBScLERP
측지선 보간아니오
일정한 속도아니오
계산 비용낮음중간
정규화 필요아니오 (자동)
구현 복잡도낮음중간

DLB는 더 빠르지만 덜 정확하다. ScLERP는 더 정확하지만 계산 비용이 더 높다.

8. 이중 쿼터니언 스킨 블렌딩 (DQB)

캐릭터 애니메이션에서 이중 쿼터니언 블렌딩(Dual Quaternion Blending, DQB)이 사용된다. 이는 여러 본(bone)의 변환을 블렌딩하여 피부 변형을 계산하는 방법이다.

8.1 가중 평균

각 본 i의 이중 쿼터니언 변환 \hat{\mathbf{q}}_i와 가중치 w_i가 주어졌을 때

\hat{\mathbf{q}}_{\text{blend}} = \frac{\sum_i w_i\hat{\mathbf{q}}_i}{\lVert\sum_i w_i\hat{\mathbf{q}}_i\rVert}

이는 여러 이중 쿼터니언의 정규화된 가중 평균이다.

8.2 이점

전통적인 선형 블렌드 스키닝(Linear Blend Skinning, LBS)은 회전과 병진을 분리하여 처리하므로 “캔디 래퍼” 효과 등의 왜곡을 유발한다. DQB는 회전과 병진을 통합하여 더 자연스러운 변형을 만든다.

8.3 단점

DQB는 LBS보다 계산 비용이 약간 더 높다. 또한 구현 복잡도가 증가한다.

9. 여러 이중 쿼터니언의 보간

9.1 개: DLB 또는 ScLERP

두 이중 쿼터니언 사이의 보간에 DLB나 ScLERP를 사용한다.

9.2 여러 개: 가중 평균

여러 이중 쿼터니언의 평균은 DQB의 가중 평균 공식으로 계산된다.

9.3 키프레임 보간

키프레임 사이의 보간은 DLB나 ScLERP를 연쇄적으로 적용한다. 더 매끄러운 결과를 위해 스플라인이나 Sclerp 체인을 사용한다.

10. 이중 쿼터니언 스플라인

단순 보간을 넘어, 이중 쿼터니언 스플라인이 여러 키프레임 사이의 매끄러운 보간을 제공한다. 쿼터니언 Squad의 이중 쿼터니언 확장이 연구되어 있다.

10.1 Bezier 이중 쿼터니언

Bezier 곡선의 이중 쿼터니언 버전이 정의되어 있다. 이는 강체 변환의 매끄러운 곡선을 생성한다.

10.2 B-스플라인 확장

B-스플라인의 이중 쿼터니언 확장은 더 높은 차수의 매끄러움을 제공한다.

11. 응용

11.1 캐릭터 애니메이션

DQB를 사용한 스킨 애니메이션이 가장 유명한 응용이다. Kavan의 2008년 논문 이후 게임 산업에서 표준적으로 사용된다.

11.2 매니퓰레이터 궤적

말단 장치의 궤적 생성에서 이중 쿼터니언 보간이 매끄러운 운동을 제공한다.

11.3 카메라 경로

가상 카메라가 여러 시점을 통과할 때 이중 쿼터니언 보간이 사용된다. 회전과 위치가 동시에 매끄럽게 변한다.

11.4 우주선 자세와 위치 제어

우주선의 자세와 위치를 동시에 제어할 때 이중 쿼터니언 궤적이 활용된다.

11.5 모션 캡처

모션 캡처 데이터의 누락 프레임 보간에 이중 쿼터니언이 사용될 수 있다.

12. 부호 이중성

쿼터니언의 부호 이중성(\mathbf{q}-\mathbf{q}가 같은 회전)이 이중 쿼터니언에도 적용된다.

12.1 이중 쿼터니언의 부호 이중성

\hat{\mathbf{q}}-\hat{\mathbf{q}}가 같은 강체 변환을 나타낸다. 보간에서 이를 일관되게 처리해야 한다.

12.2 부호 보정

보간 전에 실수 부분의 부호를 확인하여 조정한다.

if dq0.real.dot(dq1.real) < 0:
    dq1 = -dq1

13. 수치적 고려

13.1 정규화의 빈도

DLB는 매번 정규화가 필요하다. ScLERP는 이론적으로 정규화가 필요 없지만, 부동 소수점 오차로 인해 주기적 정규화가 권장된다.

13.2 작은 각도의 처리

로그 사상이 작은 각도 근처에서 수치적으로 불안정할 수 있다. 테일러 전개를 사용한 근사가 필요하다.

13.3 큰 회전의 처리

큰 회전(180° 근처)에서는 로그 사상이 특이할 수 있다. 특별한 처리가 필요하다.

14. 이중 쿼터니언 보간의 한계

14.1 계산 복잡도

DLB는 비교적 단순하지만 ScLERP는 지수와 로그 사상이 필요하여 비싸다.

14.2 구현의 복잡성

이중 쿼터니언 자체가 복잡한 객체이므로, 보간 알고리즘의 구현이 어려울 수 있다.

14.3 라이브러리 지원

많은 애니메이션과 로봇 공학 라이브러리가 이중 쿼터니언 보간을 직접 지원하지 않는다.

14.4 매개변수 감각

이중 쿼터니언의 보간 매개변수가 사용자에게 직관적이지 않을 수 있다.

15. 결론

이중 쿼터니언 보간은 강체 변환의 매끄러운 보간을 제공하며, 회전과 병진을 통일적으로 처리한다. DLB는 단순하고 빠른 방법이며, ScLERP는 더 정확한 측지선 보간이다. 캐릭터 애니메이션의 DQB, 매니퓰레이터 궤적 생성, 카메라 경로 등에서 유용하게 활용된다. 구현과 학습의 복잡성이 있지만, 특정 응용에서는 전통적 분리 접근보다 자연스러운 결과를 제공한다.

16. 참고 문헌

  • Kavan, L., Collins, S., Žára, J., & O’Sullivan, C. (2008). “Geometric Skinning with Approximate Dual Quaternion Blending.” ACM Transactions on Graphics, 27(4).
  • Kavan, L., & Žára, J. (2005). “Spherical Blend Skinning: A Real-Time Deformation of Articulated Models.” Proceedings of I3D, 9–16.
  • Selig, J. M. (2005). Geometric Fundamentals of Robotics (2nd ed.). Springer.
  • Busam, B., Birdal, T., & Navab, N. (2017). “Camera Pose Filtering with Local Regression Geodesics on the Riemannian Manifold of Dual Quaternions.” IEEE ICCV Workshops, 2436–2445.
  • Wang, X., Yu, C., & Lin, Z. (2012). “A Dual Quaternion Solution to Attitude and Position Control for Rigid-Body Coordination.” IEEE Transactions on Robotics, 28(5), 1162–1170.

version: 1.0