9.34 축-각도 표현과 회전 행렬의 상호 변환
1. 양방향 변환의 개요
축-각도 표현 (\hat{\mathbf{u}}, \phi)와 회전 행렬 \mathbf{R} \in SO(3) 사이에는 양방향 변환이 존재한다.
- 순방향: 축-각도 쌍 (\hat{\mathbf{u}}, \phi) \mapsto \mathbf{R} (로드리게스 공식)
- 역방향: 회전 행렬 \mathbf{R} \mapsto (\hat{\mathbf{u}}, \phi) (축-각도 추출)
순방향은 결정적이고 수치적으로 안정하지만, 역방향은 특이점(항등 회전과 180도 회전)에서 주의가 필요하다.
2. 순방향 변환: 로드리게스 공식
2.1 공식의 형태
축-각도 표현 (\hat{\mathbf{u}}, \phi)에서 회전 행렬은 로드리게스 회전 공식으로 주어진다.
\mathbf{R} = \mathbf{I} + \sin\phi\,[\hat{\mathbf{u}}]_\times + (1 - \cos\phi)\,[\hat{\mathbf{u}}]_\times^2
여기서 [\hat{\mathbf{u}}]_\times는 회전 축 \hat{\mathbf{u}} = (u_x, u_y, u_z)^T의 반대칭 행렬이다.
[\hat{\mathbf{u}}]_\times = \begin{bmatrix}0 & -u_z & u_y \\ u_z & 0 & -u_x \\ -u_y & u_x & 0\end{bmatrix}
2.2 등가 형태
로드리게스 공식은 다음의 등가 형태로도 표현된다.
\mathbf{R} = \cos\phi\,\mathbf{I} + \sin\phi\,[\hat{\mathbf{u}}]_\times + (1 - \cos\phi)\,\hat{\mathbf{u}}\hat{\mathbf{u}}^T
이 형태는 [\hat{\mathbf{u}}]_\times^2 = \hat{\mathbf{u}}\hat{\mathbf{u}}^T - \mathbf{I}라는 항등식을 이용한 변형이다.
2.3 원소별 명시적 형태
c = \cos\phi, s = \sin\phi, v = 1 - \cos\phi라 하면
\mathbf{R} = \begin{bmatrix} c + u_x^2 v & u_x u_y v - u_z s & u_x u_z v + u_y s \\ u_y u_x v + u_z s & c + u_y^2 v & u_y u_z v - u_x s \\ u_z u_x v - u_y s & u_z u_y v + u_x s & c + u_z^2 v \end{bmatrix}
2.4 행렬 지수와의 관계
로드리게스 공식은 행렬 지수의 닫힌 형태이다.
\mathbf{R} = \exp(\phi[\hat{\mathbf{u}}]_\times)
증명은 [\hat{\mathbf{u}}]_\times^3 = -[\hat{\mathbf{u}}]_\times라는 항등식을 이용하여 지수 급수를 사인과 코사인으로 재배치함으로써 얻어진다.
3. 역방향 변환: 축-각도 추출
3.1 일반적인 경우 (\phi \notin \{0, \pi\})
주어진 회전 행렬 \mathbf{R} = [r_{ij}]로부터 회전 각과 축을 다음과 같이 추출한다.
3.1.1 회전 각의 추출
\mathrm{tr}(\mathbf{R}) = 1 + 2\cos\phi로부터
\phi = \arccos\left(\frac{\mathrm{tr}(\mathbf{R}) - 1}{2}\right)
여기서 \mathrm{tr}(\mathbf{R}) = r_{11} + r_{22} + r_{33}이다. \phi \in [0, \pi] 범위에 속하는 유일한 값이 결정된다.
3.1.2 회전 축의 추출
\mathbf{R}의 반대칭 부분 \mathbf{R} - \mathbf{R}^T에서 회전 축이 추출된다. 로드리게스 공식에 의해
\mathbf{R} - \mathbf{R}^T = 2\sin\phi\,[\hat{\mathbf{u}}]_\times
이므로, 반대칭 부분의 대각 이외의 원소로부터
\hat{\mathbf{u}} = \frac{1}{2\sin\phi}\begin{bmatrix}r_{32} - r_{23} \\ r_{13} - r_{31} \\ r_{21} - r_{12}\end{bmatrix}
을 얻는다.
3.2 수치적으로 안정한 형태
\mathrm{atan2}를 이용한 수치적으로 더 안정한 회전 각 추출 공식은 다음과 같다.
\phi = \mathrm{atan2}\left(\lVert \mathbf{R} - \mathbf{R}^T \rVert / 2, \mathrm{tr}(\mathbf{R}) - 1\right) \cdot \frac{1}{\text{scaling}}
더 간결하게는
\phi = \mathrm{atan2}\left(\sqrt{(r_{32} - r_{23})^2 + (r_{13} - r_{31})^2 + (r_{21} - r_{12})^2}, r_{11} + r_{22} + r_{33} - 1\right)
이다. 이 공식은 \phi가 0 또는 \pi 근처일 때 \arccos보다 안정하다.
4. 특이점 1: 항등 회전 (\phi = 0)
\mathrm{tr}(\mathbf{R}) = 3이면 \phi = 0이고 \mathbf{R} = \mathbf{I}이다. 이 경우 회전 축 \hat{\mathbf{u}}는 결정되지 않으므로 임의의 단위 벡터(관례적으로 (1, 0, 0))를 사용한다.
수치적으로는 \mathrm{tr}(\mathbf{R})이 3에 매우 가까울 때 \sin\phi가 0에 가까워 축 계산에서 수치 오차가 증폭된다. 이러한 경우 회전 축을 무의미하게 정의하거나, 회전 벡터 \boldsymbol{\phi}를 영벡터로 설정하는 것이 실용적이다.
5. 특이점 2: 180도 회전 (\phi = \pi)
\mathrm{tr}(\mathbf{R}) = -1이면 \phi = \pi이고 \sin\phi = 0이다. 이 경우 위의 축 추출 공식이 0으로 나누는 문제를 일으키므로, 대체 공식이 필요하다.
\phi = \pi에서 로드리게스 공식은
\mathbf{R} = \mathbf{I} + 2[\hat{\mathbf{u}}]_\times^2 = 2\hat{\mathbf{u}}\hat{\mathbf{u}}^T - \mathbf{I}
이 되므로
\frac{\mathbf{R} + \mathbf{I}}{2} = \hat{\mathbf{u}}\hat{\mathbf{u}}^T
이 성립한다. 오른쪽 변은 랭크 1의 행렬이며, 대각선 원소의 제곱근으로부터 축 성분의 절댓값을 추출한다.
u_x = \sqrt{\frac{r_{11} + 1}{2}}, \quad u_y = \sqrt{\frac{r_{22} + 1}{2}}, \quad u_z = \sqrt{\frac{r_{33} + 1}{2}}
부호는 \mathbf{R}의 비대각선 원소로부터 결정한다. 가장 큰 대각선 원소에 대응하는 축 성분을 기준으로 다른 성분의 부호를 정한다.
6. 알고리즘의 단계별 구성
수치적으로 견고한 축-각도 추출 알고리즘은 다음 단계로 구성된다.
- \cos\phi = (\mathrm{tr}(\mathbf{R}) - 1)/2를 계산한다.
- \cos\phi를 [-1, 1]로 클램핑(clamping)한다(부동 소수점 오차 방지).
- if \cos\phi가 1에 가까우면 (\phi \approx 0):
- \phi = 0, \hat{\mathbf{u}}를 임의의 단위 벡터로 설정한다.
- else if \cos\phi가 -1에 가까우면 (\phi \approx \pi):
- 대각선 기반 대체 공식으로 축을 추출한다.
- \phi = \pi로 설정한다.
- else (일반적 경우):
- \phi = \arccos(\cos\phi) 또는 \mathrm{atan2} 공식을 사용한다.
- 반대칭 부분으로부터 \hat{\mathbf{u}}를 추출한다.
- 필요하면 정규화하여 \lVert \hat{\mathbf{u}} \rVert = 1을 보장한다.
7. 왕복 변환의 일관성
순방향과 역방향이 서로의 역함수인지 다음과 같이 확인할 수 있다.
\mathrm{AxisAngle}(\mathrm{Matrix}(\hat{\mathbf{u}}, \phi)) = (\hat{\mathbf{u}}, \phi) \quad (\phi \notin \{0, \pi\})
\mathrm{Matrix}(\mathrm{AxisAngle}(\mathbf{R})) = \mathbf{R}
특이점을 제외하면 대응이 일대일이다. \phi = 0에서 축이 결정되지 않는 특이성과 \phi = \pi에서 (\hat{\mathbf{u}}, \pi)와 (-\hat{\mathbf{u}}, \pi)의 이중성이 유일한 중복이다.
8. 수치적 고려 사항
8.1 \arccos의 정밀도
\arccos는 인수가 \pm 1에 가까울 때 미분이 발산하여 수치 오차가 증폭된다. 대체로 \mathrm{atan2} 기반 공식이 수치적으로 안정적이므로 권장된다.
8.2 반대칭 부분의 크기
\phi가 작을 때 \sin\phi \approx \phi이고 반대칭 부분의 원소가 작아진다. 이 경우 축 추출의 상대 오차가 증가하므로, 작은 회전에 대해서는 1차 테일러 전개를 이용한 근사가 더 정확할 수 있다.
\boldsymbol{\phi} \approx \frac{1}{2}\begin{bmatrix}r_{32} - r_{23} \\ r_{13} - r_{31} \\ r_{21} - r_{12}\end{bmatrix} \quad (\phi \to 0)
8.3 도 근처의 처리
\phi \approx \pi 근처에서 반대칭 부분 추출과 대각선 기반 추출이 모두 정밀도를 잃을 수 있다. 이러한 경우 쿼터니언을 경유한 변환이 수치적으로 더 안정적이다.
9. 응용 사례
9.1 자세 제어에서의 회전 오차
매니퓰레이터의 자세 제어에서 목표 자세 \mathbf{R}_d와 현재 자세 \mathbf{R}의 오차를 \Delta\mathbf{R} = \mathbf{R}^T\mathbf{R}_d로 계산하고, 이로부터 축-각도 표현을 추출하여 회전 벡터 \boldsymbol{\phi}를 제어 피드백 오차로 사용한다.
9.2 쿼터니언과의 변환 중계
쿼터니언과 회전 행렬 사이의 변환에서 축-각도 표현이 중간 형식으로 사용되기도 한다. 쿼터니언 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})로부터 축과 각도를 직접 얻을 수 있다.
9.3 SLAM 최적화
비선형 최적화에서 접공간의 섭동 \delta\boldsymbol{\phi}를 축-각도 형태로 정의하고, 로드리게스 공식으로 회전 행렬에 적용하여 업데이트한다.
10. 참고 문헌
- Rodrigues, O. (1840). “Des lois géométriques qui régissent les déplacements d’un système solide dans l’espace.” Journal de Mathématiques Pures et Appliquées, 5, 380–440.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
- Shuster, M. D. (1993). “A Survey of Attitude Representations.” Journal of the Astronautical Sciences, 41(4), 439–517.
- Diebel, J. (2006). “Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors.” Stanford University Technical Report.
- Barfoot, T. D. (2017). State Estimation for Robotics. Cambridge University Press.
version: 1.0