9.71 구면 선형 보간(SLERP)의 원리
1. SLERP의 개념
구면 선형 보간(Spherical Linear Interpolation, SLERP)은 단위 구면 상의 두 점 사이를 측지선(great circle arc)을 따라 일정한 각속도로 보간하는 방법이다. 켄 슈메이크(Ken Shoemake)가 1985년 컴퓨터 그래픽스 논문 “Animating Rotation with Quaternion Curves“에서 도입하여, 회전 보간의 표준 방법이 되었다.
SLERP는 단위 쿼터니언이 4차원 단위 구면 S^3 상의 점이라는 사실을 활용하여, 두 단위 쿼터니언 사이의 보간을 구면 위의 측지선 상의 점들로 정의한다.
2. 기본 원리
2.1 단위 구면 위의 측지선
단위 구면 S^n 상의 두 점 \mathbf{p}_0와 \mathbf{p}_1 사이의 측지선은 두 점을 포함하는 평면(원점을 지나는)과 구면의 교차로 결정되는 대원(great circle) 위의 호이다.
2.2 측지선 상의 균일 보간
SLERP는 이 대원 호 위에서 매개변수 t \in [0, 1]에 따라 균일하게 진행하는 보간이다. 즉, t가 균일하게 증가할 때 호 위의 위치도 균일한 호 길이로 진행한다.
3. SLERP의 수식
두 단위 쿼터니언 \mathbf{q}_0와 \mathbf{q}_1, 그리고 매개변수 t \in [0, 1]에 대해 SLERP는 다음과 같이 정의된다.
\mathrm{SLERP}(\mathbf{q}_0, \mathbf{q}_1, t) = \frac{\sin((1-t)\Omega)}{\sin\Omega}\mathbf{q}_0 + \frac{\sin(t\Omega)}{\sin\Omega}\mathbf{q}_1
여기서 \Omega는 두 쿼터니언 사이의 각도이며, 다음과 같이 계산된다.
\cos\Omega = \mathbf{q}_0^T\mathbf{q}_1 = q_{0,w}q_{1,w} + q_{0,x}q_{1,x} + q_{0,y}q_{1,y} + q_{0,z}q_{1,z}
이는 두 단위 쿼터니언의 4차원 내적이며, 두 점이 단위 구면 상에서 이루는 각도의 코사인이다.
4. SLERP 공식의 유도
4.1 측지선의 매개화
단위 구면 S^3 상의 측지선은 원점을 지나는 평면과 구면의 교차이다. \mathbf{q}_0와 \mathbf{q}_1을 포함하는 평면에서 두 단위 벡터의 일반 형태는 다음과 같다.
\mathbf{q}(t) = a(t)\mathbf{q}_0 + b(t)\mathbf{q}_1
여기서 a(t)와 b(t)는 다음 조건을 만족해야 한다.
- \lVert \mathbf{q}(t) \rVert = 1 (단위 구면 위에 있어야 함)
- \mathbf{q}(0) = \mathbf{q}_0, \mathbf{q}(1) = \mathbf{q}_1
- 일정한 각속도로 진행
4.2 일정한 각속도 조건
\mathbf{q}(t)가 \mathbf{q}_0로부터 각도 t\Omega만큼 떨어져 있어야 한다.
\mathbf{q}_0^T\mathbf{q}(t) = \cos(t\Omega)
또한 \mathbf{q}_1^T\mathbf{q}(t) = \cos((1-t)\Omega)이어야 한다.
4.3 선형 결합의 유도
\mathbf{q}(t) = a(t)\mathbf{q}_0 + b(t)\mathbf{q}_1에 위 조건을 적용하면 두 방정식이 나온다.
a + b\cos\Omega = \cos(t\Omega)
a\cos\Omega + b = \cos((1-t)\Omega)
이 두 방정식을 풀면
a(t) = \frac{\sin((1-t)\Omega)}{\sin\Omega}, \quad b(t) = \frac{\sin(t\Omega)}{\sin\Omega}
이며, SLERP 공식이 도출된다.
5. SLERP의 중요한 성질
5.1 일정한 각속도
SLERP는 보간이 일정한 각속도로 진행됨을 정확히 보장한다. 이는 SLERP의 가장 중요한 성질이다. 매개변수 t가 균일하게 증가할 때, 보간된 회전이 균일한 비율로 변한다.
5.2 측지선
SLERP의 결과 곡선은 S^3 상의 측지선이다. 두 쿼터니언 사이의 가장 짧은 경로이며, 가장 자연스러운 보간이다.
5.3 보간 끝점 일치
\mathrm{SLERP}(\mathbf{q}_0, \mathbf{q}_1, 0) = \mathbf{q}_0
\mathrm{SLERP}(\mathbf{q}_0, \mathbf{q}_1, 1) = \mathbf{q}_1
이는 직접 대입으로 확인할 수 있다.
5.4 단위 노름 보존
SLERP의 결과는 항상 단위 쿼터니언이다. 따라서 정규화가 필요 없다. 이는 LERP와의 중요한 차이이다.
5.5 회전 매니폴드 상의 자연스러움
SLERP는 회전 공간 SO(3)의 매니폴드 구조를 자연스럽게 존중한다. 두 회전 사이의 측지선 거리에 비례하여 보간된다.
6. 부호 처리
쿼터니언의 부호 이중성(\mathbf{q}와 -\mathbf{q}가 같은 회전) 때문에 SLERP를 적용하기 전에 부호 보정이 필요하다.
6.1 부호 보정 절차
\text{if } \mathbf{q}_0^T\mathbf{q}_1 < 0: \mathbf{q}_1 \leftarrow -\mathbf{q}_1
이 보정으로 SLERP가 두 회전 사이의 짧은 경로를 따르도록 보장된다. 부호를 보정하지 않으면 보간이 긴 경로(다른 반구를 통과)를 선택할 수 있다.
7. 작은 각도에서의 수치 안정성
\Omega가 0에 매우 가까우면 \sin\Omega가 0이 되어 SLERP 공식의 분모가 0에 가까워진다. 이 경우 수치 오차가 발생한다.
7.1 해결책 1: 임계값 검사
\Omega < \epsilon이면 LERP로 대체한다.
\mathbf{q}(t) \approx (1-t)\mathbf{q}_0 + t\mathbf{q}_1
작은 각도에서는 LERP와 SLERP의 차이가 무시할 수 있으므로, 이 근사가 충분히 정확하다.
7.2 해결책 2: 테일러 전개
\sin x \approx x를 사용하면
\frac{\sin((1-t)\Omega)}{\sin\Omega} \approx 1 - t, \quad \frac{\sin(t\Omega)}{\sin\Omega} \approx t
이는 LERP와 같은 결과를 제공한다.
8. SLERP의 시각화
SLERP를 시각적으로 이해하려면, 단위 구면 S^3 위의 두 점 \mathbf{q}_0와 \mathbf{q}_1을 상상한다. 두 점을 포함하는 대원이 있고, SLERP는 이 대원 호 위에서 균일한 호 길이로 진행하는 보간이다.
3차원 단위 구면 S^2로 차원을 낮춰 시각화하면 더 쉽다. 지구 표면의 두 도시 사이를 잇는 대권 경로(great circle route)가 SLERP의 시각적 비유이다. 비행기가 두 도시 사이를 가장 짧은 경로로 비행할 때 따르는 곡선이 대원이며, 이를 따라 균일한 속도로 진행하는 것이 SLERP이다.
9. SLERP와 LERP의 비교
| 특성 | SLERP | LERP |
|---|---|---|
| 결과의 단위 노름 | 항상 | 정규화 후 |
| 일정한 각속도 | 정확히 | 보장되지 않음 |
| 측지선 | 정확히 | 근사 |
| 계산 비용 | 높음 (삼각 함수) | 낮음 |
| 작은 각도 | 거의 동일 | 거의 동일 |
| 큰 각도 | 정확 | 부정확 |
10. SLERP의 응용
10.1 키프레임 애니메이션
3D 애니메이션에서 캐릭터의 자세를 키프레임으로 정의하고 SLERP로 사이를 보간한다. 시각적으로 매끄러운 회전 운동이 산출된다.
10.2 카메라 워크
게임이나 시각화의 카메라 시점이 매끄럽게 전환되도록 SLERP가 사용된다.
10.3 매니퓰레이터 궤적
매니퓰레이터의 작업 공간 자세를 두 키 자세 사이에서 SLERP로 보간하면, 매끄러운 작업 운동을 생성할 수 있다.
10.4 모션 캡처 데이터 처리
모션 캡처의 누락 프레임을 인접 프레임의 자세로부터 SLERP로 보간한다.
10.5 자세 추정의 평활화
자세 추정 결과의 시간 평활화에서 SLERP가 사용된다.
11. SLERP의 일반화
11.1 회전 행렬 SLERP
SLERP는 쿼터니언 외에 회전 행렬에서도 유사한 형태로 정의될 수 있다.
\mathbf{R}(t) = \mathbf{R}_0\exp(t\log(\mathbf{R}_0^{-1}\mathbf{R}_1))
이는 SO(3) 매니폴드 상의 측지선을 직접 계산하는 형태이며, 쿼터니언 SLERP와 등가이다.
11.2 SE(3) SLERP
강체 변환 SE(3)의 보간으로 일반화될 수 있다. 이는 단일 스크류 운동에 해당하며, 회전과 위치를 동시에 보간한다.
\mathbf{T}(t) = \mathbf{T}_0\exp(t\log(\mathbf{T}_0^{-1}\mathbf{T}_1))
11.3 다단계 보간
여러 키 회전 사이를 매끄럽게 보간하려면 SLERP를 직접 사용할 수 없다(미분 불연속이 발생). 이를 해결하기 위해 Squad(이중 구면 보간)와 같은 더 복잡한 기법이 사용된다.
12. SLERP의 한계
SLERP는 두 쿼터니언 사이의 보간에 최적이지만 다음과 같은 한계가 있다.
12.1 계산 비용
삼각 함수(\arccos, \sin)를 요구하므로 LERP보다 계산이 느리다. 실시간 시스템에서 부담이 될 수 있다.
12.2 다중 키프레임의 미분 불연속
여러 키 회전 사이의 연속 보간은 각 SLERP 구간 사이에서 미분 불연속이 발생한다. 매끄러운 미분이 필요한 경우 Squad가 필요하다.
12.3 \Omega = \pi 처리
두 쿼터니언이 정확히 반대 방향(\mathbf{q}_1 = -\mathbf{q}_0)이면 측지선이 유일하지 않다. 이 경우 별도 처리가 필요하나, 실용적으로는 거의 발생하지 않는다.
13. 참고 문헌
- Shoemake, K. (1985). “Animating Rotation with Quaternion Curves.” SIGGRAPH Computer Graphics, 19(3), 245–254.
- Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.
- Watt, A., & Watt, M. (1992). Advanced Animation and Rendering Techniques. Addison-Wesley.
- Park, F. C., & Ravani, B. (1997). “Smooth Invariant Interpolation of Rotations.” ACM Transactions on Graphics, 16(3), 277–295.
- Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
version: 1.0