9.30 회전 행렬에서 오일러 각 추출의 다가성

9.30 회전 행렬에서 오일러 각 추출의 다가성

1. 다가성의 개념

회전 행렬에서 오일러 각을 추출하는 역변환 문제는 일반적으로 다가(multi-valued) 성질을 가진다. 주어진 회전 행렬 \mathbf{R}에 대응하는 오일러 각 세 벡터 (\alpha, \beta, \gamma)가 두 개 이상 존재할 수 있으며, 이들이 모두 수학적으로 동일한 회전 행렬을 산출한다. 다가성의 원인은 삼각 함수의 주기성, 오일러 각 공간의 위상 구조, 그리고 짐벌 락 특이점에 있다.

2. 삼각 함수의 주기성에 의한 다가성

오일러 각 추출에서 사용되는 \arcsin, \arccos, \mathrm{atan2} 함수는 모두 특정 주기성을 가진다. \sin\theta = \sin(\pi - \theta)이고 \cos\theta = \cos(-\theta)이므로, 하나의 삼각 함수 값은 두 개의 각도에 대응한다.

예를 들어 ZYX 규약에서 피치 각 \theta-r_{31} = \sin\theta로부터 추출되는데, \theta\pi - \theta가 같은 사인 값을 가진다. 관례적으로 \theta \in [-\pi/2, \pi/2]로 제한하여 \arcsin의 주가지(principal branch)를 선택한다. 그러나 이론적으로는 다음의 두 해가 존재한다.

2.1 주 해(Principal solution)

\theta_1 = \arcsin(-r_{31})

\psi_1 = \mathrm{atan2}(r_{21}, r_{11})

\phi_1 = \mathrm{atan2}(r_{32}, r_{33})

2.2 보조 해(Alternative solution)

\theta_2 = \pi - \theta_1

\psi_2 = \mathrm{atan2}(-r_{21}, -r_{11})

\phi_2 = \mathrm{atan2}(-r_{32}, -r_{33})

두 해 모두 동일한 회전 행렬을 산출하지만, 피치 각의 범위가 다르다. \theta_1 \in [-\pi/2, \pi/2]이고 \theta_2 \in [\pi/2, 3\pi/2] 또는 [-3\pi/2, -\pi/2]에 해당한다. 관례상 \theta_2는 범위를 벗어나므로 사용되지 않는다.

3. 2\pi 주기성에 의한 다가성

각도는 2\pi의 주기성을 가지므로, 임의의 정수 k에 대해

(\alpha + 2\pi k_1, \beta + 2\pi k_2, \gamma + 2\pi k_3)

도 같은 회전을 나타낸다. 관례적 범위 [-\pi, \pi) \times [-\pi/2, \pi/2] \times [-\pi, \pi)로 제한하면 이러한 자명한 중복을 제거할 수 있다.

4. 짐벌 락 특이점에서의 무한 다가성

짐벌 락이 발생한 특이점에서 오일러 각 추출은 무한히 많은 해를 가진다. ZYX 규약에서 피치 \theta = \pm \pi/2일 때 회전 행렬은

\mathbf{R}_{\theta = \pi/2} = \mathbf{R}_z(\psi)\mathbf{R}_y(\pi/2)\mathbf{R}_x(\phi)

이며, 이를 전개하면 \mathbf{R}_y(\pi/2)에 의해 z축과 x''축이 평행해져 요와 롤이 동일한 축 주위의 회전이 된다. 그 결과 \psi\phi의 개별 값이 아니라 \phi - \psi 또는 \phi + \psi선형 결합만이 회전 행렬에 의해 결정된다.

4.1 짐벌 락 예시

\theta = \pi/2에서

\mathbf{R} = \begin{bmatrix} 0 & \sin(\phi - \psi) & \cos(\phi - \psi) \\ 0 & \cos(\phi - \psi) & -\sin(\phi - \psi) \\ -1 & 0 & 0 \end{bmatrix}

이 된다. \phi - \psi는 유일하게 결정되지만, \phi\psi를 개별적으로는 결정할 수 없다. 즉, 임의의 \psi에 대해 \phi = (\phi - \psi) + \psi로 설정하면 동일한 회전 행렬을 산출한다. 이는 1차원의 해 공간(1-parameter family of solutions)을 형성한다.

관례적으로는 \psi = 0으로 고정하여 유일한 대표 해를 선택한다.

5. 고유 오일러 각에서의 다가성

고유 오일러 각(ZYZ, ZXZ 등)에서도 유사한 다가성이 존재한다. ZYZ 규약에서 \beta = \arccos(r_{33})는 주가지로 [0, \pi]에 속하지만, \beta' = -\beta에 대응하는 해도 존재한다.

5.1 주 해

\beta_1 = \arccos(r_{33}) \in [0, \pi]

\alpha_1 = \mathrm{atan2}(r_{23}, r_{13})

\gamma_1 = \mathrm{atan2}(r_{32}, -r_{31})

5.2 보조 해

\beta_2 = -\beta_1

\alpha_2 = \mathrm{atan2}(-r_{23}, -r_{13}) = \alpha_1 + \pi

\gamma_2 = \mathrm{atan2}(-r_{32}, r_{31}) = \gamma_1 + \pi

두 해 중 \beta \in [0, \pi]에 해당하는 주 해를 관례적으로 선택한다.

6. 다가성의 분류

오일러 각 추출의 다가성은 다음 네 가지로 분류할 수 있다.

유형원인예시해결
주기성2\pi 주기(\psi, \theta, \phi)(\psi + 2\pi, \theta, \phi)범위 제한
삼각 대칭\sin/\cos의 중복주 해와 보조 해주가지 선택
이중 피복\mathbf{q}-\mathbf{q}쿼터니언 부호 반전관례 고정
짐벌 락특이점무한 개의 해한 각 고정

7. 연속성 문제

오일러 각의 다가성이 연속적 궤적 표현에서 심각한 문제를 야기한다. 자세가 연속적으로 변화할 때 추출된 오일러 각이 갑자기 2\pi만큼 도약하거나 주 해와 보조 해 사이를 전환할 수 있다. 이러한 도약은 수치 적분이나 제어기에 부적절한 입력을 공급한다.

7.1 연속성 보장 기법

연속적 궤적에서 각도의 일관성을 보장하려면 언랩핑(unwrapping) 기법을 사용한다. 이전 시점의 각도와 현재 추출된 각도의 차이가 \pi를 넘으면 2\pi의 배수를 더하거나 빼서 조정한다.

\psi_k \leftarrow \psi_k + 2\pi \cdot \mathrm{round}\left(\frac{\psi_{k-1} - \psi_k}{2\pi}\right)

8. 다가성의 실용적 시사점

8.1 소프트웨어 테스트

오일러 각 추출 함수의 단위 테스트에서 왕복 변환만으로는 불충분하다. 추출 후 다시 회전 행렬로 변환하면 원래 행렬이 복구되지만, 추출된 오일러 각 자체는 원래 값과 다를 수 있다. 테스트는 회전 행렬 수준에서 일치를 확인해야 한다.

8.2 관례의 명시

특정 응용에서 여러 동등한 해 중 어느 것을 선택할지 관례로 고정해야 한다. 예를 들어, ZYX 규약에서 \theta \in [-\pi/2, \pi/2], \psi, \phi \in [-\pi, \pi)가 표준적이다.

8.3 짐벌 락의 처리

짐벌 락 근처에서 추출이 수치적으로 불안정하다. 이러한 경우 오일러 각 대신 쿼터니언이나 축-각도 표현을 사용하는 것이 권장된다.

8.4 최적화에서의 다가성

SLAM이나 번들 조정에서 오일러 각을 직접 최적화 변수로 사용하면 다가성이 최적화 수렴을 방해할 수 있다. 매개화를 쿼터니언이나 지수 좌표로 바꾸면 이 문제가 완화된다.

9. 해의 수와 회전 공간의 위상

오일러 각 공간 [0, 2\pi) \times [0, \pi] \times [0, 2\pi)(고유 오일러 각의 경우)는 토러스(torus)에 해당하며, 위상적으로는 3차원 매니폴드이다. SO(3)은 이와 달리 위상적으로 단순하지 않은 매니폴드이며, 오일러 각 공간에서 SO(3)으로의 사상은 대부분의 점에서 일대일이 아니다. 이는 유클리드 매개화로 SO(3)을 전역적으로 부드럽게 덮을 수 없다는 사실의 표현이다.

10. 참고 문헌

  • 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.
  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • Craig, J. J. (2018). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson.
  • Shoemake, K. (1985). “Animating Rotation with Quaternion Curves.” SIGGRAPH Computer Graphics, 19(3), 245–254.

version: 1.0