Introduction
이번 포스트에서는 회전 변환을 나타내는 Lie Group SO(3)에서 Lie Algebra so(3)를 유도해 보도록 하겠습니다. 또한, 둘 간의 변환 관계를 지수, 로그 변환을 통해 정리하도록 하겠습니다. 많은 수학적 지식과 증명이 필요하나 수학자가 아닌 엔지니어로서 필요한 정도만 설명하는 게 목표이니 참고 바랍니다.
Lie Algebra so(3)
이전 포스트에서 회전 변환을 나타내는 SO(3) 군이 Lie 군에 속함을 살펴보았습니다. SO(3) 군이 항등원과 역원이 존재하며 곱셈에 닫혀있음과 동시에 결합 법칙이 성립함을 알아봤는데요. 여기에 추가적으로 SO(3) 자체의 제약(constraint)으로 교환 법칙이 성립되지 않고, $det(R)=1$임을 기억해 주시기 바랍니다.
$$SO(3)=\left\{\mathbf{R}\in \mathbb{R}^{3 \times 3}|\mathbf{RR}^T=\mathbf{I},det(\mathbf{R})=1 \right\}$$
이제부터 SO(3)에 대응되는 Lie 대수 so(3)를 살펴보도록 하겠습니다. 우선 so(3)는 SO(3) 군의 항등원(원점)에서의 접평면입니다. 원래 SO(3)에서 시작해 관계식을 유도하려 했지만 이해를 돕기 위해 결론부터 소개하겠습니다. Lie 대수 so(3)는 아래와 같이 반대칭 행렬(skew-symmetric matrix)로 표현 가능합니다.
$$\mathfrak{so}(3)=\left\{\omega^{\wedge}=\begin{bmatrix}
0 & -\omega_3 & \omega_2 \\
\omega_3 & 0 & -\omega_1 \\
-\omega_2 & \omega_1 & 0 \\
\end{bmatrix} \in\mathbb{R}^{3 \times 3} | \omega=\begin{bmatrix}
\omega_1 \\
\omega_2 \\ \omega_3
\end{bmatrix}\in\mathbb{R}^3\right\}$$
$\mathfrak{so}(3)$는 아래와 같이 서로 직교하는 세 생성자(generator)들의 선형 결합으로도 표현 가능한데요. 여기서 $G_1, G_2, G_3$는 임의의 직교하는 세 축을 의미합니다.
$$\begin{equation} \begin{aligned} & G_{1} = \begin{pmatrix} 0&0&0 \\ 0&0&-1 \\ 0&1&0 \end{pmatrix}, \ \ G_{2} = \begin{pmatrix} 0&0&1 \\ 0&0&0 \\ -1&0&0 \end{pmatrix},\ \ G_{3} = \begin{pmatrix} 0&-1&0 \\ 1&0&0 \\ 0&0&0 \end{pmatrix} \\ \end{aligned} \end{equation}$$
$$\omega_1 G_1 + \omega_2 G_2 + \omega_3 G_3 = \omega^{\wedge} \in \mathfrak{so}(3)$$
SO(3)와 so(3)의 관계
지금부터는 Lie 군 SO(3)에서 Lie 대수 so(3)를 유도해 보도록 하겠습니다. 우선 SO(3) 내에서 임의의 회전 변환을 나타내는 행렬 R을 정의하도록 하겠습니다. R은 SO(special orthogonal) 군에 속해 있기에 직교 행렬의 특징을 아래와 같이 따라갑니다.
$$R^T R = I \mapsto R^T (t)R(t)=I$$
이때 R(t)는 시간에 따른 카메라의 회전량을 나타내는 함수입니다. 이제 시간에 따른 미분을 양변에 취해주도록 합시다.
$$\dot{R}^T(t)R(t)+R^T(t)\dot{R}(t)=0, \quad \dot{R}=\frac{R(t)}{dt}$$
식을 조금만 더 정리해 주면 반대칭 행렬의 성질($A^T=-A$)이 보이게 됩니다.
$$R^T(t)\dot{R}(t)=-(\dot{R}^T(t)R(t))=-(R^T(t)\dot{R}(t))^T$$
이런 성질을 만족하는 반대칭 행렬을 $\omega^{\wedge}(t)(=R^T(t)\dot{R}(t))$라고 하겠습니다. 이 상태에서 양변에 $R(t)$를 곱하게 되면 직교 행렬의 성질에 따라 아래와 같이 정리할 수 있습니다.
$$R(t) \cdot (R^T(t)\dot{R}(t))=R(t) \cdot \omega^{\wedge}(t) \quad\mapsto\quad \dot{R}(t)=R(t)\omega^{\wedge}(t)$$
이제 미분방정식을 풀어보도록 하겠습니다. t가 0일 때의 회전량은 초기 상태 그대로이기에 $0^{\circ}$라고 가정하면, 이는 SO(3)의 항등원 $I$와 같습니다. 따라서 $R(0)=I$가 성립되며, $\dot{R}(0)=\omega^{\wedge}(0)$이게 됩니다. 추가로 $t=0$ 주변에서의 접평면 so(3)의 기울기는 일정하다고 가정하면, $\dot{R}(0)=\omega^{\wedge}(0)=\omega^{\wedge}$이 성립합니다.
따라서 미분방정식 $\dot{R}(t)=\omega^{\wedge}$의 해는 아래와 같이 정리할 수 있습니다.
$$R(t)=\underbrace{R(0)}_I \textrm{exp}\underbrace{(\omega^{\wedge}t)}_{\omega^{\wedge}} \quad \mapsto \quad R=\textrm{exp}(\omega^{\wedge})$$
요약하면 Lie 군 SO(3)의 접평면인 Lie 대수 so(3)는 반대칭 행렬로 표현 가능하며, 지수 변환을 통해 다시 Lie 군으로의 매칭이 가능합니다.
Exponential and Logarithm mapping
앞서 지수 변환을 통해 so(3)에서 SO(3)로의 변환이 가능함을 알게 되었습니다. 그렇다면 반대로 SO(3)에 로그 변환을 하게 되면 so(3)가 나온다는 사실 역시 유추 가능합니다. 하지만 행렬의 지수 변환과 로그 변환은 낯선 개념인 경우가 많을 텐데요. 이번 챕터에서는 복잡한 증명은 생략하고 수식적으로 어떻게 전개하는지 간단하게 소개하겠습니다.
Exponential mapping
행렬의 지수 변환은 ordinary series expansion에 따라 다음과 같이 전개할 수 있습니다.
$$\textrm{exp}(X)=\sum_{k=0}^{\infty}\frac{X^k}{k!}=I+X+\frac{1}{2}X^2+\frac{1}{6}X^3+\cdots$$
이를 위에서 구한 so(3), $\omega^{\wedge}$를 대입하면 반대칭 행렬의 특징에 따라 정리가 되며 아래와 같이 다시 써지게 됩니다.
$$\textrm{exp}(\omega^{\wedge})=\mathbf{I} + \bigg( \frac{\sin\theta}{\theta} \bigg) \omega^{\wedge} + \bigg(\frac{1-\cos\theta}{\theta^{2}} \bigg) (\omega^{2})^{\wedge}$$
이는 로드리게스 공식(Rodriguez formula)의 형태를 띠고 있는데요. 회전 변환을 나타내던 로드리게스 공식을 통해 Lie 대수(so(3))에서 Lie 군(SO(3))으로의 변환이 가능함을 알 수 있습니다.
Logarithm mapping
반대로 SO(3)에서 so(3)로의 변환인 로그 매핑은 실제로 잘 쓰이지는 않습니다. SLAM에서는 주로 Lie 대수에서 최적화를 끝낸 후 Lie 군으로 변환을 진행하기 때문에 정반대의 역할인 로그 매핑은 잘 등장하지 않습니다. 그렇기에 증명이나 내용은 아래 요약 이미지로 대체하고 생략하려고 합니다. 다만 수식 전개는 power series expression에 의해 수행되며, 내용이 궁금하신 경우 따로 답변을 드리거나 포스팅을 작성해보려고 합니다.
Summary
Reference