9.32 짐벌 락 회피 전략과 대안적 표현법
1. 짐벌 락 회피의 두 접근
짐벌 락 문제에 대응하는 전략은 크게 두 가지로 분류된다.
- 회피 전략: 오일러 각을 계속 사용하되, 특이점에 도달하지 않도록 운용 방식이나 매개화를 조정하는 접근
- 대체 전략: 본질적으로 특이점이 없는 다른 회전 표현법으로 대체하는 접근
실용적으로는 내부 계산에 대체 전략을 적용하고 사용자 인터페이스에 회피 전략을 병행하는 혼합 방식이 가장 널리 사용된다.
2. 회피 전략
2.1 작업 영역 제한
로봇이나 시스템이 짐벌 락 자세에 도달하지 않도록 작업 영역을 제한한다. 예를 들어 ZYX 규약의 피치 각이 [-80°, 80°]에 머물도록 소프트웨어적으로 제약하거나, 기계적 스토퍼를 설치한다. 지상 이동 로봇이나 수평 비행 위주의 항공기에는 이 방법이 충분하다.
2.2 규약의 교체
현재 작업 영역에서 짐벌 락이 자주 발생하는 경우, 짐벌 락 위치가 다른 규약으로 교체한다. 예를 들어 ZYX 규약은 수직 자세에서 짐벌 락이 발생하지만, ZXZ 규약은 수평 자세에서 발생한다. 작업 영역과 특이점 위치가 일치하지 않는 규약을 선택한다.
2.3 부분 규약 전환
작업 영역의 각 부분에서 서로 다른 오일러 각 규약을 사용하고, 경계에서 전환한다. 이는 전역적으로 특이점이 없는 지도(atlas of charts)의 개념에 해당하며, 매니폴드 이론의 표준적 접근이다.
2.4 사중 짐벌 구조
기계적 짐벌의 경우 세 축 대신 네 축을 사용하는 사중 짐벌(four-ring gimbal) 구조로 설계한다. 여분의 자유도가 특이점을 피하는 대안 경로를 제공한다. 그러나 여분의 기구를 요구하므로 무게와 복잡성이 증가한다.
3. 대체 표현법 1: 쿼터니언
3.1 단위 쿼터니언의 정의
쿼터니언(quaternion)은 해밀턴(William Rowan Hamilton, 1843)이 도입한 4차원 대수이며, 단위 쿼터니언 \mathbf{q} = (q_0, q_1, q_2, q_3) with \lVert \mathbf{q} \rVert = 1이 3차원 회전을 매개화한다.
\mathbf{q} = \cos(\phi/2) + \sin(\phi/2)(u_x \mathbf{i} + u_y \mathbf{j} + u_z \mathbf{k})
여기서 \hat{\mathbf{u}} = (u_x, u_y, u_z)는 회전 축, \phi는 회전 각이다.
3.2 특이점 부재
단위 쿼터니언은 SO(3)을 2대 1로 덮는 이중 피복(double cover)이며, 표면 S^3에서 매끄러운 매개화를 제공한다. 4차원 단위 구면은 3자유도 매니폴드이지만 추가 차원으로 특이점을 피한다. 쿼터니언의 부호 반전 \mathbf{q} \leftrightarrow -\mathbf{q}가 같은 회전에 대응하는 이중성만이 유일한 중복이며, 짐벌 락과 같은 특이점은 존재하지 않는다.
3.3 합성의 효율성
쿼터니언 곱은 회전 합성을 정의하며, 16번의 곱셈과 12번의 덧셈으로 수행된다. 이는 3 \times 3 행렬 곱(27번의 곱셈과 18번의 덧셈)보다 효율적이다.
3.4 보간의 부드러움
두 쿼터니언 사이의 보간은 구면 선형 보간(SLERP)으로 수행되며, S^3의 측지선을 따라 균일한 각속도를 보장한다. 이는 오일러 각 보간이 가지지 못하는 자연스러운 부드러움이다.
4. 대체 표현법 2: 축-각도 표현
4.1 정의
축-각도 표현(axis-angle representation)은 회전을 회전 축 \hat{\mathbf{u}} \in S^2와 회전 각 \phi \in [0, \pi]의 쌍으로 나타낸다. 오일러의 회전 정리(Euler’s rotation theorem)에 의해 모든 3차원 회전이 하나의 축 주위의 회전으로 표현될 수 있다.
4.2 회전 벡터
축과 각도를 합친 회전 벡터(rotation vector) \boldsymbol{\phi} = \phi \hat{\mathbf{u}}가 3성분 매개변수이며, 이는 SO(3)의 리 대수 \mathfrak{so}(3)에 해당한다. 지수 사상을 통해 \mathbf{R} = \exp([\boldsymbol{\phi}]_\times)로 회전 행렬로 변환된다.
4.3 특이점
축-각도 표현은 항등 회전(\phi = 0)에서 축이 정의되지 않는 경미한 특이성과 \phi = \pi에서의 이중성(같은 축의 반대 방향)만을 가진다. 이는 오일러 각의 짐벌 락보다 훨씬 덜 심각한 특이성이다.
5. 대체 표현법 3: 회전 행렬
5.1 직접 사용
회전 행렬 자체를 저장하고 조작하는 방식이다. 3 \times 3 행렬의 9개 원소 중 6개의 직교성 제약이 남으므로 실제 자유도는 3이다.
5.2 장점
회전 행렬은 어떤 특이점도 없이 SO(3)을 전역적으로 덮는다. 합성(행렬 곱), 벡터 회전(행렬-벡터 곱), 역변환(전치)이 모두 직접적이다.
5.3 단점
9개의 실수를 저장해야 하므로 쿼터니언(4개)이나 오일러 각(3개)보다 메모리를 많이 사용한다. 수치 오차가 누적되어 정규 직교성이 훼손될 수 있으므로 주기적 재정규화가 필요하다.
6. 대체 표현법 4: 지수 좌표
6.1 리 대수 기반 매개화
SO(3)의 리 대수 \mathfrak{so}(3)은 반대칭 행렬의 집합이며, 독립 성분 3개로 구성된다. 이는 회전 벡터와 동일한 매개변수 공간을 제공한다.
6.2 접공간에서의 최적화
지수 좌표는 항등 회전의 접공간에서 자연스러운 선형 구조를 가지므로, 비선형 최적화에서 국소 매개화로 사용하기에 적합하다. 현재 자세를 기준점으로 삼고 접공간에서 증분 회전을 최적화한 후 지수 사상으로 SO(3)으로 돌아가는 방식이 표준적이다.
7. 대체 표현법 5: 케일리-클라인 매개변수
케일리-클라인(Cayley-Klein) 매개변수와 같은 복소 매개변수도 존재하나, 현대 로봇 공학에서는 쿼터니언이 대체로 이를 대체하였다.
8. 혼합 전략의 실제 구현
실용적인 로봇 시스템은 다음과 같은 혼합 전략을 흔히 채택한다.
8.1 내부 상태 표현
- 실시간 자세 추정: 쿼터니언
- 최적화(SLAM, 번들 조정): 리 대수 지수 좌표
- 센서 데이터 변환: 회전 행렬
8.2 사용자 인터페이스
- 상태 표시: 오일러 각 (RPY)
- 목표 자세 입력: 오일러 각 또는 쿼터니언
- 궤적 시각화: 쿼터니언 기반 SLERP
8.3 변환 계층
내부 쿼터니언 상태와 사용자의 오일러 각 입력 사이에 변환 계층을 둔다. 짐벌 락 근처에서 오일러 각으로의 변환이 수치적으로 불안정할 수 있으므로, 경고 또는 예외를 발생시키는 안전 장치를 추가한다.
9. 표현법의 비교
| 표현법 | 차원 | 특이점 | 합성 비용 | 메모리 | 주 용도 |
|---|---|---|---|---|---|
| 오일러 각 | 3 | 짐벌 락 있음 | 행렬 변환 필요 | 작음 | UI, 해석 |
| 회전 행렬 | 9 | 없음 | 행렬 곱 | 큼 | 범용 |
| 쿼터니언 | 4 | 부호 이중성만 | 빠름 | 중간 | 실시간 자세 |
| 축-각도 | 3+1 | 항등/\pi 경미 | 지수 변환 필요 | 작음 | 특수 작업 |
| 회전 벡터 | 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.
- Shoemake, K. (1985). “Animating Rotation with Quaternion Curves.” SIGGRAPH Computer Graphics, 19(3), 245–254.
- Stuelpnagel, J. (1964). “On the Parametrization of the Three-Dimensional Rotation Group.” SIAM Review, 6(4), 422–430.
- Sola, J., Deray, J., & Atchuthan, D. (2018). “A Micro Lie Theory for State Estimation in Robotics.” arXiv:1812.01537.
version: 1.0