9.39 로그 사상(Logarithmic Map)과 축-각도 추출
1. 로그 사상의 정의
로그 사상(logarithmic map)은 지수 사상(exponential map)의 역함수이다. SO(3)의 경우 회전 행렬 \mathbf{R}을 리 대수 \mathfrak{so}(3)의 반대칭 행렬 [\boldsymbol{\phi}]_\times로 사상하는 연산이다.
\log: SO(3) \to \mathfrak{so}(3), \quad \mathbf{R} \mapsto [\boldsymbol{\phi}]_\times
여기서 \boldsymbol{\phi} \in \mathbb{R}^3는 회전 벡터이며, \exp([\boldsymbol{\phi}]_\times) = \mathbf{R}을 만족한다. 로그 사상은 회전 행렬로부터 축-각도 정보를 추출하는 수학적 연산이다.
2. 회전 행렬에서 회전 벡터로의 추출
로그 사상의 닫힌 형태는 다음과 같다. 주어진 회전 행렬 \mathbf{R}에 대해
\phi = \arccos\left(\frac{\mathrm{tr}(\mathbf{R}) - 1}{2}\right)
[\boldsymbol{\phi}]_\times = \frac{\phi}{2\sin\phi}(\mathbf{R} - \mathbf{R}^T)
이다. 회전 벡터는
\boldsymbol{\phi} = \frac{\phi}{2\sin\phi}\begin{bmatrix}r_{32} - r_{23} \\ r_{13} - r_{31} \\ r_{21} - r_{12}\end{bmatrix}
로 추출된다. 이 공식은 \phi \in (0, \pi) 범위에서 잘 정의된다.
3. 로그 사상의 단위 원리
로그 사상은 회전 행렬을 “얼마나 회전했는지“와 “어느 축 주위로 회전했는지“의 정보로 분해한다. 이는 회전 행렬의 반대칭 부분에서 추출된다.
\mathbf{R} - \mathbf{R}^T = 2\sin\phi\,[\hat{\mathbf{u}}]_\times
이 관계는 로드리게스 공식으로부터 직접 유도된다. 양변의 반대칭 부분을 비교하면 \sin\phi 배의 [\hat{\mathbf{u}}]_\times가 얻어진다.
4. 특이점 1: 항등 회전 (\phi = 0)
\mathbf{R} = \mathbf{I}일 때 \mathrm{tr}(\mathbf{R}) = 3이고 \phi = 0이다. 이 경우 회전 축이 결정되지 않으며, 로그 사상은 영벡터 \boldsymbol{\phi} = \mathbf{0}을 산출한다.
수치적으로 \phi가 0에 가까울 때 \sin\phi \approx \phi이므로 계수 \phi/(2\sin\phi) \approx 1/2이고, 다음의 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)
이는 \mathbf{R} - \mathbf{R}^T가 작은 회전 각의 두 배의 반대칭 표현임을 반영한다.
5. 특이점 2: 180도 회전 (\phi = \pi)
\phi = \pi일 때 \sin\phi = 0이므로 표준 공식의 분모가 0이 된다. 또한 \cos\pi = -1이고 \mathrm{tr}(\mathbf{R}) = 2\cos\phi + 1 = -1이다. 이 경우 \mathbf{R}은 다음의 형태를 가진다.
\mathbf{R} = \mathbf{I} + 2[\hat{\mathbf{u}}]_\times^2 = 2\hat{\mathbf{u}}\hat{\mathbf{u}}^T - \mathbf{I}
대칭 부분 \mathbf{R} + \mathbf{I}의 비대각 성분으로부터 축 방향을 추출할 수 있다.
5.1 도 회전의 축 추출
\mathbf{R} + \mathbf{I} = 2\hat{\mathbf{u}}\hat{\mathbf{u}}^T
의 대각선 원소로부터
u_i = \pm\sqrt{\frac{r_{ii} + 1}{2}}
의 절댓값을 얻는다. 부호는 비대각 원소 r_{ij} = 2u_i u_j로부터 상대적으로 결정된다. 가장 큰 대각 원소에 해당하는 성분을 양수로 고정하고 다른 성분의 부호를 결정하는 것이 수치적으로 안정적이다.
5.2 \pm\hat{\mathbf{u}}의 이중성
180도 회전에서는 (\hat{\mathbf{u}}, \pi)와 (-\hat{\mathbf{u}}, \pi)가 같은 회전을 나타낸다. 따라서 로그 사상의 결과는 부호의 관례에 의존한다.
6. 수치적으로 안정한 알고리즘
견고한 로그 사상 구현은 다음 단계로 구성된다.
- \cos\phi = (\mathrm{tr}(\mathbf{R}) - 1)/2를 계산한다.
- \cos\phi를 [-1, 1]로 클램핑한다.
- \phi = \arccos(\cos\phi)를 계산한다.
- if \phi가 임계값 \epsilon_1 이하 (작은 회전):
- \boldsymbol{\phi} = \frac{1}{2}(r_{32} - r_{23}, r_{13} - r_{31}, r_{21} - r_{12})^T의 1차 근사를 사용한다.
- else if \phi가 \pi - \epsilon_2 이상 (180도 근처):
- 대각선 기반 공식으로 축을 추출하고 \phi = \pi로 설정한다.
- else (일반적 경우):
- \boldsymbol{\phi} = \frac{\phi}{2\sin\phi}(r_{32} - r_{23}, r_{13} - r_{31}, r_{21} - r_{12})^T를 계산한다.
임계값 \epsilon_1과 \epsilon_2는 통상 10^{-6} 정도로 설정된다.
7. \mathrm{atan2} 기반 대체 공식
\arccos 대신 \mathrm{atan2}를 사용하여 수치 안정성을 향상시킬 수 있다.
\phi = \mathrm{atan2}\left(\frac{1}{2}\sqrt{(r_{32} - r_{23})^2 + (r_{13} - r_{31})^2 + (r_{21} - r_{12})^2}, \frac{\mathrm{tr}(\mathbf{R}) - 1}{2}\right)
\mathrm{atan2}는 분자와 분모의 크기 관계를 고려하여 사분면을 결정하므로, \arccos보다 경계 근처에서 정확하다.
8. 로그 사상과 축-각도 추출의 관계
축-각도 표현 (\hat{\mathbf{u}}, \phi)과 회전 벡터 \boldsymbol{\phi} = \phi\hat{\mathbf{u}}는 동일한 정보를 담는 두 형태이다. 로그 사상은 회전 행렬로부터 회전 벡터를 직접 산출하며, 여기서 축과 각도를 분리하여 추출할 수 있다.
\phi = \lVert \boldsymbol{\phi} \rVert, \quad \hat{\mathbf{u}} = \frac{\boldsymbol{\phi}}{\phi}
9. 로그 사상의 국소성
9.1 지수 사상과의 역 관계
\lVert \boldsymbol{\phi} \rVert < \pi 범위에서 로그 사상은 지수 사상의 국소 역함수이다.
\log(\exp([\boldsymbol{\phi}]_\times)) = [\boldsymbol{\phi}]_\times
\lVert \boldsymbol{\phi} \rVert = \pi에서는 {\pm\hat{\mathbf{u}}} 이중성으로 인해 일대일이 아니다. \lVert \boldsymbol{\phi} \rVert > \pi로 확장하면 주기적 중복이 추가로 발생하며, 관례적으로 \lVert \boldsymbol{\phi} \rVert \leq \pi로 제한한다.
9.2 로그 사상의 야코비안
로그 사상의 미분은 지수 사상 야코비안의 역이다.
\mathbf{J}_l^{-1}(\boldsymbol{\phi}) = \mathbf{I} - \frac{1}{2}[\boldsymbol{\phi}]_\times + \left(\frac{1}{\phi^2} - \frac{1 + \cos\phi}{2\phi\sin\phi}\right)[\boldsymbol{\phi}]_\times^2
이 역 야코비안은 회전 행렬 오차를 회전 벡터 오차로 전파할 때 사용된다.
10. 로그 사상의 응용
10.1 두 회전 사이의 측지 거리
두 회전 행렬 \mathbf{R}_1과 \mathbf{R}_2 사이의 측지 거리는 상대 회전의 로그 크기로 계산된다.
d(\mathbf{R}_1, \mathbf{R}_2) = \lVert \log(\mathbf{R}_1^T\mathbf{R}_2) \rVert = \phi
이는 SO(3) 매니폴드 상에서의 “가장 짧은 회전“에 해당한다.
10.2 회전 오차의 표현
자세 제어와 자세 추정에서 오차 회전 \mathbf{R}_e = \mathbf{R}_d \mathbf{R}^T 또는 \mathbf{R}^T\mathbf{R}_d의 로그 사상으로 오차를 3차원 벡터로 표현한다. 이 벡터 형태의 오차는 PID 제어나 LQR 제어의 입력으로 직접 사용할 수 있다.
10.3 SLAM의 제약 잔차
그래프 기반 SLAM에서 두 포즈 사이의 측정된 상대 회전과 예측된 상대 회전의 차이를 로그 사상으로 잔차 벡터로 표현한다. 이 잔차가 최소 제곱 비용 함수의 입력이 된다.
10.4 쿼터니언과의 변환
쿼터니언 \mathbf{q} = (\cos(\phi/2), \sin(\phi/2)\hat{\mathbf{u}})로부터 회전 벡터는 다음과 같이 직접 계산된다.
\phi = 2\mathrm{atan2}(\lVert \mathbf{q}_v \rVert, q_w), \quad \boldsymbol{\phi} = \frac{\phi}{\lVert \mathbf{q}_v \rVert}\mathbf{q}_v
여기서 \mathbf{q}_v는 쿼터니언의 벡터 부분이고 q_w는 스칼라 부분이다.
10.5 회전 보간
두 회전 사이의 선형 보간은 로그 사상에서 직선 경로를 선택하여 구현한다.
\mathbf{R}(t) = \mathbf{R}_1 \exp(t \log(\mathbf{R}_1^T\mathbf{R}_2))
이는 쿼터니언의 SLERP와 등가이며, SO(3) 매니폴드 상의 측지선을 따라 균일한 각속도로 보간한다.
11. 참고 문헌
- Hall, B. C. (2015). Lie Groups, Lie Algebras, and Representations (2nd ed.). Springer.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
- Barfoot, T. D. (2017). State Estimation for Robotics. Cambridge University Press.
- Sola, J., Deray, J., & Atchuthan, D. (2018). “A Micro Lie Theory for State Estimation in Robotics.” arXiv:1812.01537.
- Chirikjian, G. S. (2011). Stochastic Models, Information Theory, and Lie Groups, Volume 2. Birkhäuser.
version: 1.0