10.55 회전 벡터와 리 대수 \mathfrak{so}(3)의 관계
1. 리 대수 \mathfrak{so}(3)의 정의
\mathfrak{so}(3)은 3\times 3 반대칭 행렬의 집합이며, SO(3) 리 군의 리 대수이다.
\mathfrak{so}(3) = \{\mathbf{A} \in \mathbb{R}^{3\times 3} : \mathbf{A}^T = -\mathbf{A}\}
반대칭 행렬의 일반 형태는
\mathbf{A} = \begin{bmatrix}0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0\end{bmatrix}
이며, 3개의 독립 성분 a_1, a_2, a_3를 가진다.
2. 회전 벡터와의 대응
2.1 해트 연산자
3차원 벡터 \mathbf{a} = (a_1, a_2, a_3)^T를 반대칭 행렬로 변환하는 연산을 해트 연산자(hat operator) (\cdot)^\wedge라 한다.
\mathbf{a}^\wedge = [\mathbf{a}]_\times = \begin{bmatrix}0 & -a_3 & a_2 \\ a_3 & 0 & -a_1 \\ -a_2 & a_1 & 0\end{bmatrix}
2.2 베 연산자
역사상인 베 연산자(vee operator) (\cdot)^\vee는 반대칭 행렬을 다시 벡터로 변환한다.
([\mathbf{a}]_\times)^\vee = \mathbf{a}
2.3 동형 사상
해트와 베 연산자는 \mathbb{R}^3와 \mathfrak{so}(3) 사이의 선형 동형 사상을 정의한다.
(\cdot)^\wedge: \mathbb{R}^3 \to \mathfrak{so}(3)
(\cdot)^\vee: \mathfrak{so}(3) \to \mathbb{R}^3
3. 회전 벡터와 \mathfrak{so}(3)
회전 벡터 \boldsymbol{\phi} = \phi\hat{\mathbf{u}}는 \mathfrak{so}(3)의 원소의 벡터 표현이다.
3.1 두 표현의 관계
- 벡터 형태: \boldsymbol{\phi} \in \mathbb{R}^3
- 행렬 형태: [\boldsymbol{\phi}]_\times \in \mathfrak{so}(3)
이 두 표현은 해트/베 연산자로 상호 변환된다.
3.2 실용적 선택
- 컴퓨터 구현과 일반 벡터 연산에는 벡터 형태가 편리
- 리 군 지수 사상이나 행렬 미분에는 행렬 형태가 편리
4. 리 브래킷
\mathfrak{so}(3)의 리 브래킷은 행렬 교환자로 정의된다.
[\mathbf{A}, \mathbf{B}] = \mathbf{A}\mathbf{B} - \mathbf{B}\mathbf{A}
4.1 반대칭 행렬의 리 브래킷
두 반대칭 행렬의 브래킷은 반대칭 행렬이다. 즉, 리 브래킷이 \mathfrak{so}(3)에 닫혀 있다.
4.2 외적과의 대응
해트 연산자를 통해 리 브래킷은 벡터의 외적에 대응한다.
[[\mathbf{a}]_\times, [\mathbf{b}]_\times] = [\mathbf{a}\times\mathbf{b}]_\times
또는 벡터 형태로
([\mathbf{a}^\wedge, \mathbf{b}^\wedge])^\vee = \mathbf{a}\times\mathbf{b}
이는 (\mathbb{R}^3, \times)가 리 대수로서 \mathfrak{so}(3)과 동형임을 보인다.
5. 리 대수의 기하학적 의미
5.1 접공간
\mathfrak{so}(3)는 SO(3)의 단위 원소에서의 접공간이다. 즉, 항등 회전 근처의 “작은 회전“을 매개화한다.
5.2 무한소 회전
반대칭 행렬 [\boldsymbol{\phi}]_\times는 “무한소 회전“을 나타낸다. 작은 \boldsymbol{\phi}에 대해
\mathbf{R} \approx \mathbf{I} + [\boldsymbol{\phi}]_\times
이는 \mathfrak{so}(3)의 원소가 회전의 1차 근사를 표현한다는 것을 의미한다.
5.3 각속도의 표현
각속도 \boldsymbol{\omega}는 순간적 회전이며, \mathfrak{so}(3)의 원소로 자연스럽게 표현된다.
\dot{\mathbf{R}} = [\boldsymbol{\omega}]_\times\mathbf{R}
이는 회전 행렬의 시간 미분이 각속도의 반대칭 행렬로 표현됨을 보인다.
6. 지수 사상
\mathfrak{so}(3)에서 SO(3)으로의 지수 사상은 행렬 지수 함수이다.
\exp: \mathfrak{so}(3) \to SO(3)
\mathbf{R} = \exp([\boldsymbol{\phi}]_\times)
6.1 닫힌 형태 (로드리게스 공식)
\exp([\boldsymbol{\phi}]_\times) = \mathbf{I} + \frac{\sin\phi}{\phi}[\boldsymbol{\phi}]_\times + \frac{1 - \cos\phi}{\phi^2}[\boldsymbol{\phi}]_\times^2
여기서 \phi = \lVert\boldsymbol{\phi}\rVert이다.
6.2 테일러 급수
행렬 지수의 정의는 테일러 급수이다.
\exp(\mathbf{X}) = \sum_{k=0}^{\infty}\frac{\mathbf{X}^k}{k!}
\mathfrak{so}(3)의 경우 [\boldsymbol{\phi}]_\times^3 = -\phi^2[\boldsymbol{\phi}]_\times의 관계로 테일러 급수를 단순화할 수 있다.
7. 로그 사상
SO(3)에서 \mathfrak{so}(3)으로의 로그 사상은 지수 사상의 역이다.
\log: SO(3) \to \mathfrak{so}(3)
[\boldsymbol{\phi}]_\times = \log(\mathbf{R})
7.1 닫힌 형태
\log(\mathbf{R}) = \frac{\phi}{2\sin\phi}(\mathbf{R} - \mathbf{R}^T)
여기서
\phi = \arccos\left(\frac{\mathrm{tr}(\mathbf{R}) - 1}{2}\right)
8. \mathfrak{so}(3)의 기저
\mathfrak{so}(3)은 3차원 벡터 공간이며, 표준 기저는
\mathbf{E}_1 = \begin{bmatrix}0 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0\end{bmatrix}, \quad \mathbf{E}_2 = \begin{bmatrix}0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0\end{bmatrix}, \quad \mathbf{E}_3 = \begin{bmatrix}0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 0\end{bmatrix}
이들은 각각 x, y, z 축 주위의 단위 회전에 대응한다.
8.1 벡터 표현
이 기저와 해트 연산자의 관계는
\mathbf{E}_i = [\hat{\mathbf{e}}_i]_\times
여기서 \hat{\mathbf{e}}_i는 i번째 단위 벡터이다.
8.2 브래킷 관계
기저 간의 리 브래킷은
[\mathbf{E}_1, \mathbf{E}_2] = \mathbf{E}_3, \quad [\mathbf{E}_2, \mathbf{E}_3] = \mathbf{E}_1, \quad [\mathbf{E}_3, \mathbf{E}_1] = \mathbf{E}_2
이는 외적 \hat{\mathbf{e}}_i\times\hat{\mathbf{e}}_j의 관계와 정확히 일치한다.
9. \mathfrak{so}(3)와 다른 리 대수
9.1 \mathfrak{so}(n) 일반
\mathfrak{so}(n)은 n차원 회전군 SO(n)의 리 대수이며, n\times n 반대칭 행렬의 집합이다. n = 3인 경우가 가장 친숙하다.
9.2 \mathfrak{su}(2)와의 관계
\mathfrak{su}(2)는 SU(2)의 리 대수이며, 트레이스가 0인 반-에르미트 행렬이다. \mathfrak{so}(3)과 \mathfrak{su}(2)는 동형이다.
\mathfrak{so}(3) \cong \mathfrak{su}(2)
이는 SO(3)이 SU(2)(쿼터니언 군)과 이중 피복 관계에 있다는 사실의 리 대수 수준에서의 표현이다.
10. 회전 벡터 공간의 위상
회전 벡터의 집합은 \mathbb{R}^3 전체이지만, 회전을 매개화할 때는 다음의 제약을 고려한다.
10.1 반지름 \pi의 공
실용적으로 \lVert\boldsymbol{\phi}\rVert \leq \pi의 영역을 사용한다.
10.2 경계의 식별
\lVert\boldsymbol{\phi}\rVert = \pi의 경계에서 대척점 \boldsymbol{\phi}와 -\boldsymbol{\phi}가 같은 회전을 나타낸다.
10.3 위상적 구조
이러한 대척점 식별 후 SO(3)이 얻어진다. 위상적으로 SO(3)은 \mathbb{RP}^3와 동형이다.
11. 리 대수 구조의 활용
11.1 비선형 최적화
\mathfrak{so}(3)의 자유 매개변수 특성이 비선형 최적화에 유용하다. 제약 없이 최적화를 수행하고 지수 사상으로 회전 행렬을 복원한다.
11.2 칼만 필터
오류 상태 칼만 필터(ESKF)에서 작은 오차를 \mathfrak{so}(3)의 원소로 표현한다. 이는 선형 필터 이론을 비선형 회전 추정에 적용할 수 있게 한다.
11.3 리 군 적분기
SO(3) 매니폴드 상의 수치 적분에서 리 대수 구조가 활용된다. 예를 들어 뮈테-카스(Munthe-Kaas) 적분기이다.
11.4 그래프 최적화
SLAM의 포즈 그래프 최적화에서 각 포즈 간의 오차를 \mathfrak{se}(3)(또는 \mathfrak{so}(3) + 병진)로 표현한다. 이는 그래프 최적화의 표준 프레임워크이다.
11.5 리 군 이론적 분석
회전의 대칭성과 변환 성질을 이론적으로 분석할 때 \mathfrak{so}(3)의 구조가 활용된다.
12. 연산 체계
\mathfrak{so}(3)는 다음의 연산 체계를 가진다.
12.1 벡터 덧셈
[\mathbf{a}]_\times + [\mathbf{b}]_\times = [\mathbf{a} + \mathbf{b}]_\times
12.2 스칼라 곱
c[\mathbf{a}]_\times = [c\mathbf{a}]_\times
12.3 리 브래킷
[[\mathbf{a}]_\times, [\mathbf{b}]_\times] = [\mathbf{a}\times\mathbf{b}]_\times
이러한 연산이 \mathfrak{so}(3)을 리 대수로 완성한다.
13. 리 대수 좌표와 리 군 좌표
13.1 리 대수 좌표
회전 벡터 \boldsymbol{\phi}는 \mathfrak{so}(3)의 리 대수 좌표이다. 이는 SO(3) 매니폴드의 지역 매개화를 제공한다.
13.2 리 군 좌표
회전 행렬 \mathbf{R}은 SO(3)의 리 군 좌표이다. 이는 9 매개변수이지만 6개의 제약(정규 직교성)이 있다.
13.3 변환
두 좌표 사이의 변환은 지수 사상과 로그 사상이다.
\mathbf{R} = \exp([\boldsymbol{\phi}]_\times)
\boldsymbol{\phi} = \log(\mathbf{R})^\vee
14. 리 대수의 교육적 가치
\mathfrak{so}(3)의 학습은 다음의 교육적 가치를 가진다.
14.1 리 군 이론의 기초
\mathfrak{so}(3)는 리 군 이론의 가장 단순하면서도 풍부한 예이다. 이를 통해 일반 리 군의 개념을 이해할 수 있다.
14.2 회전의 대수적 구조
회전의 비가환성과 기하학적 성질을 대수적으로 표현한다.
14.3 물리학과의 연결
\mathfrak{so}(3)는 각운동량과 자이로스코프 운동의 수학적 기반이다.
14.4 현대 로봇 공학
현대 로봇 공학의 자세 추정, SLAM, 제어 이론이 \mathfrak{so}(3) 구조를 활용한다.
15. 실용적 구현
15.1 Sophus 라이브러리
C++의 Sophus 라이브러리는 \mathfrak{so}(3)와 SO(3)의 연산을 효율적으로 구현한다.
#include <sophus/so3.hpp>
Eigen::Vector3d phi(0.1, 0.2, 0.3);
Sophus::SO3d R = Sophus::SO3d::exp(phi);
Eigen::Vector3d phi_back = R.log();
15.2 GTSAM
GTSAM은 SLAM과 상태 추정을 위한 라이브러리로, SO(3)와 \mathfrak{so}(3)의 연산을 지원한다.
15.3 Python 구현
SciPy의 Rotation 클래스가 지수와 로그 사상을 제공한다.
16. 결론
회전 벡터는 리 대수 \mathfrak{so}(3)의 원소의 벡터 형태이며, 3차원 회전의 매우 자연스러운 매개화를 제공한다. \mathfrak{so}(3)의 구조는 SO(3) 리 군의 지역적 성질을 반영하며, 지수 사상을 통해 리 군과 연결된다. 비선형 최적화, 자세 추정, 리 군 적분 등 현대 로봇 공학의 핵심 기법이 이 구조를 기반으로 한다. \mathfrak{so}(3)의 이해는 고급 로봇 공학과 제어 이론의 필수 배경 지식이다.
17. 참고 문헌
- Hall, B. C. (2015). Lie Groups, Lie Algebras, and Representations: An Elementary Introduction (2nd ed.). Springer.
- Stillwell, J. (2008). Naive Lie Theory. Springer.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
- Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
- Chirikjian, G. S. (2011). Stochastic Models, Information Theory, and Lie Groups, Volume 2. Birkhäuser.
version: 1.0