본 포스트에서는 수식을 유도할 때 자주 사용되는 수학적 동치 관계 또는 트릭에 대하여 정리한다. 필자는 주로 SLAM과 관련된 분야에 대한 수식과 논문을 많이 접하기 때문에 이와 관련된 수식을 정리하였다.
Skew-symmetric matrix
3차원 벡터 $\mathbf{v} = [v_x, v_y, v_z]^{\intercal} \in \mathbb{R}^{3}$가 있을 때 이에 대한 반대칭 행렬을 $[\mathbf{v}]_{\times} = \begin{bmatrix} 0&-v_z&v_y \\ v_z & 0 & -v_x \\ -v_y & v_x & 0 \end{bmatrix}$라고 하면 다음과 같은 성질이 성립한다.
\begin{equation}
\boxed{ \begin{aligned}
&[\mathbf{v}]_{\times}^{\intercal} = -[\mathbf{v}]_{\times} \\
& [\mathbf{v}]_{\times}^{2} = \mathbf{v}\mathbf{v}^{\intercal} - \mathbf{v}^{\intercal}\mathbf{v}\mathbf{I} \\
& [\mathbf{R}\mathbf{v}]_{\times} = \mathbf{R} [\mathbf{v}]_{\times} \mathbf{R}^{\intercal}
\end{aligned} }
\end{equation}
- $\mathbf{R} \in SO(3)$ : 임의의 회전 행렬
만약 $\left\| \mathbf{u} \right\|=1$을 만족하는 단위 벡터 $\mathbf{u}$가 주어진 경우 아래 공식이 성립한다.
\begin{equation}
\boxed{ \begin{aligned}
&[\mathbf{u}]_{\times}^{3} = [\mathbf{u}]_{\times}^{\intercal} = -[\mathbf{u}]_{\times} \\
& [\mathbf{u}]_{\times}^{2} = \mathbf{u}\mathbf{u}^{\intercal} - \mathbf{I} \\
\end{aligned} }
\end{equation}
임의의 두 벡터 $\mathbf{a}, \mathbf{b} \in \mathbb{R}^{3}$가 주어졌을 때 다음 법칙이 성립한다.
\begin{equation}
\boxed{ \begin{aligned}
& [\mathbf{a}]_{\times} \mathbf{b} = -[\mathbf{b}]_{\times} \mathbf{a}
\end{aligned} }
\end{equation}
임의의 세 벡터에 대하여 $\mathbf{a} = \mathbf{b} \times \mathbf{c}$ 관계가 주어진 경우 외적의 성질에 의해 다음 공식이 성립한다.
\begin{equation}
\boxed{ \begin{aligned}
& [\mathbf{a}]_{\times} = \mathbf{cb}^{\intercal} - \mathbf{bc}^{\intercal}
\end{aligned} }
\end{equation}
Determinant of matrix
$\mathbf{X} \in \mathbb{R}^{2\times 2}$ 행렬에 대한 행렬식(determinant)은 다음과 같다.
\begin{equation}
\begin{aligned}
& \mathbf{X} = \begin{bmatrix} a & b \\ c & d \end{bmatrix}
& \text{det}(\mathbf{X}) = ad-bc
\end{aligned}
\end{equation}
임의의 정방행렬 $\mathbf{A,B} \in \mathbb{R}^{n \times n}$에 대하여 행렬식은 다음과 같은 성질을 지닌다.
\begin{equation}
\boxed{ \begin{aligned}
& \text{det}(\mathbf{A}^{\intercal}) = \text{det}(\mathbf{A}) \\
& \text{det}(c\mathbf{A}) = c^n \text{det}(\mathbf{A}) \\
& \text{det}(\mathbf{AB}) = \text{det}(\mathbf{A})\text{det}(\mathbf{B})\\
& \text{det}(\mathbf{A}^{-1}) = \frac{1}{\text{det}(\mathbf{A})} \\
\end{aligned} }
\end{equation}
Trace of matrix
Trace란 임의의 행렬 $\mathbf{A}$가 주어졌을 때 행렬의 trace는 행렬의 대각 성분의 합을 의미하며 $\text{tr}(\mathbf{A})$와 같이 표기한다.
\begin{equation}
\begin{aligned}
\text{tr} (\mathbf{A}) = \sum_{i} [A]_{ii}
\end{aligned}
\end{equation}
- $[\mathbf{A}]_{ij}$ : 행렬 $\mathbf{A}$의 $i$행 $j$열의 원소
Trace는 다음과 같은 성질을 지닌다.
\begin{equation}
\boxed{ \begin{aligned}
& \text{tr} (\mathbf{A}) = \text{tr} (\mathbf{A}^{\intercal}) \\
& \text{tr} (\mathbf{AB}) = \text{tr} (\mathbf{BA}) \\
& \text{tr} (\mathbf{A} + \mathbf{B}) = \text{tr} (\mathbf{A}) + \text{tr} (\mathbf{B}) \\
& \text{tr} (\mathbf{ABC}) = \text{tr} (\mathbf{BCA}) = \text{tr} (\mathbf{CAB}) \\
& \text{tr} (\mathbf{A}^{\intercal}\mathbf{B}) = \sum_{i=1}^{n}\sum_{j=1}^{n} [\mathbf{A}]_{ij}[\mathbf{B}]_{ij} \\
& \mathbf{a}^{\intercal}\mathbf{b} = \text{tr}(\mathbf{ba}^{\intercal})
\end{aligned} }
\end{equation}
- $\mathbf{a}$ : 임의의 벡터
Linear transformation of Gaussian random variable
벡터 랜덤 변수 $\mathbf{x} \in \mathbb{R}^{n}$가 가우시안 분포를 따를 때는 다음과 같이 표기할 수 있다.
\begin{equation}
\begin{aligned}
\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})
\end{aligned}
\end{equation}
$\mathbf{x}$를 선형 변환(linear transformation)한 새로운 랜덤변수 $\mathbf{y} = \mathbf{Ax} + \mathbf{b}$가 주어졌다고 하면 $\mathbf{y}$는 아래와 같은 확률 분포를 따른다.
\begin{equation}
\boxed{ \begin{aligned}
\mathbf{y} & = \mathbf{Ax} + \mathbf{b} \\
& \sim \mathcal{N}(\mathbf{A}\boldsymbol{\mu} + \mathbf{b}, \mathbf{A}\boldsymbol{\Sigma}\mathbf{A}^{\intercal})
\end{aligned} }
\end{equation}
SO(3) Group
각속도 벡터 ${\omega} \in \mathbb{R}^{3}$이 주어졌을 때 이에 exponential mapping을 수행하면 회전 행렬 $\mathbf{R}$을 얻는다. 아래와 같은 둘 사이의 변환 관계를 Rodrigues' formula라고 한다.
\begin{equation}
\boxed{ \begin{aligned}
\mathbf{R} & = \text{Exp}({\omega}) \\
& = \mathbf{I} + \frac{\sin (\left\| {\omega} \right\|) }{\left\| {\omega} \right\|} [ {\omega} ]_{\times} + \frac{1 - \cos(\left\| {\omega} \right\|)}{\left\| {\omega} \right\|^{2}} [ {\omega} ]_{\times}^{2}
\end{aligned} }
\end{equation}
- $\text{Exp}({\omega}) = \exp([{\omega}]_{\times})$
만약 각속도 벡터 $ {\omega} \in \mathbb{R}^{3}$의 크기가 작은 경우 다음과 같이 근사할 수 있다.
\begin{equation}
\boxed{ \begin{aligned}
\text{Exp}({\omega}) \simeq \mathbf{I} + [ {\omega} ]_{\times}
\end{aligned} }
\end{equation}
Exponential mapping은 다음과 같은 유용한 성질을 지닌다.
\begin{equation}
\boxed{ \begin{aligned}
& \mathbf{R}\exp([{\omega}]_{\times}) \mathbf{R}^{\intercal} = \exp(\mathbf{R}[{\omega}]_{\times}\mathbf{R}^{\intercal}) = \exp([\mathbf{R}{\omega}]_{\times})
\end{aligned} }
\end{equation}
위 식으로부터 다음 동치 관계가 성립한다.
\begin{equation}
\boxed{ \begin{aligned}
\exp([{\omega}]_{\times}) \mathbf{R} = \mathbf{R} \exp([\mathbf{R}^{\intercal}{\omega}]_{\times})
\end{aligned} }
\end{equation}
Left and Right Jacobian of SO(3)
임의의 회전행렬 $\mathbf{R} \in SO(3)$가 주어졌을 때 이를 지수 매핑(exponential mapping)에 대한 식으로 표현하면 다음과 같다.
\begin{equation}
\begin{aligned}
\mathbf{R} = \text{Exp}({\omega})
\end{aligned}
\end{equation}
- $\mathbf{R} \in SO(3)$
- ${\omega} \in so(3)$
- $\text{Exp}({\omega}) = \exp([ {\omega} ]_{\times})$
- $[{\omega}]_{\times}$ : 3차원 벡터 ${\omega}$의 반대칭행렬(skew-symmetric matrix)
임의의 작은 변화량 $\Delta \omega$이 주어졌을 때 이를 기존 $\text{Exp}(\omega)$에 업데이트 하는 방법은 다음과 같은 두 가지 방법이 존재한다. 우선 [1] 기본적인 lie algebra를 사용한 업데이트 방법이 있다. 다음으로 [2] 섭동(perturbation) 모델을 활용한 업데이트 방법이 있다.
\begin{equation}
\begin{aligned}
\text{Exp}(\omega + \Delta \omega) \quad \cdots \text{[1]} \\
\text{Exp}(\omega) \text{Exp}(\Delta \omega) \quad \cdots \text{[2]}
\end{aligned}
\end{equation}
두 방법 사이에는 다음과 같은 변환 관계가 존재한다.
\begin{equation} \label{eq:app4}
\boxed{ \begin{aligned}
& \text{Exp}(\omega+ \Delta \omega ) =\text{Exp}(\omega) \text{Exp}(\mathbf{J}_{r} \Delta \omega) \\
&\text{Exp}(\omega) \text{Exp}(\Delta \omega) = \text{Exp}(\omega+ \mathbf{J}_{r}^{-1}\Delta \omega ) \\
\end{aligned} }
\end{equation}
- $\mathbf{J}_r = \mathbf{J}_r(\omega) \in \mathbb{R}^{3\times3}$\\
- $\mathbf{J}_{r}(\omega) = \mathbf{I} - \left( \frac{1 - \cos(\|\omega\|)}{\|\omega\|^2} \right) \omega^\wedge + \left( \frac{\|\omega\| - \sin(\|\omega\|)}{\|\omega\|^3} \right) (\omega^\wedge)^2$ : SO(3)군의 오른쪽 자코비안(right jacobian)\\
- $\mathbf{J}_{r}(\omega)^{-1} = \mathbf{I} + \frac{1}{2}\omega^\wedge + \Big( \frac{1}{\left\| \omega \right\|^2} - \frac{1 + \cos(\left\| \omega \right\|)}{2\left\| \omega \right\|\sin(\left\| \omega \right\|)} \Big) (\omega^\wedge)^2$ : SO(3)군의 오른쪽 자코비안의 역행렬\\
위 식에서\textbfazure{ $\mathbf{J}_{r}$을 SO(3)군의 오른쪽 자코비안(right jacobian)이라고 부르며 $\mathbf{J}_{r}^{-1}$을 SO(3)군의 오른쪽 자코비안의 역행렬(inverse right jacobian)}이라고 부른다.
만약 업데이트 위치가 $\text{Exp}(\omega) \text{Exp}(\Delta \omega)$처럼 오른쪽이 아닌 $\text{Exp}(\Delta \omega)\text{Exp}(\omega)$와 같이 왼쪽에 곱해진다면 위와 유사한 공식이 유도되며 그 때 나오는 자코비안은 \textbfazure{SO(3)군의 왼쪽 자코비안(left jacobian) $\mathbf{J}_{l}$이라고 한다. $\mathbf{J}_{l}^{-1}$ 또한 동일하게 유도된다.}
\begin{equation} \label{eq:app5}
\boxed{ \begin{aligned}
& \text{Exp}(\omega+ \Delta \omega ) = \text{Exp}(\mathbf{J}_{l} \Delta \omega) \text{Exp}(\omega) \\
& \text{Exp}(\Delta \omega) \text{Exp}(\omega) = \text{Exp}(\omega+ \mathbf{J}_{l}^{-1}\Delta \omega ) \\
\end{aligned} }
\end{equation}
- $\mathbf{J}_l = \mathbf{J}_l(\omega) \in \mathbb{R}^{3\times3}$
- $\mathbf{J}_{l}(\omega) = \mathbf{I} + \left( \frac{1 - \cos(\|\omega\|)}{\|\omega\|^2} \right) \omega^\wedge + \left( \frac{\|\omega\| - \sin(\|\omega\|)}{\|\omega\|^3} \right) (\omega^\wedge)^2$ : SO(3)군의 왼쪽 자코비안(left jacobian)
- $\mathbf{J}_{l}(\omega)^{-1} = \mathbf{I} - \frac{1}{2}\omega^\wedge + \Big( \frac{1}{\left\| \omega \right\|^2} - \frac{1 + \cos(\left\| \omega \right\|)}{2\left\| \omega \right\|\sin(\left\| \omega \right\|)} \Big) (\omega^\wedge)^2$ : SO(3)군의 왼쪽 자코비안의 역행렬
(\ref{eq:app4}), (\ref{eq:app5})는SO(3)군의 작은 섭동 변화량 $\Delta \omega$에 대해서만 유효한 공식임에 유의하며 \textbfazure{이러한 근사 과정을 Baker-Campbell-Hausdorff(BCH) 근사라고 한다.}
두 자코비안 $\mathbf{J}_{l}, \mathbf{J}_{r}$ 사이에는 다음과 같은 변환 공식이 성립한다.
\begin{equation}
\begin{aligned}
& \mathbf{J}_{l}(\omega) = \mathbf{J}_{r}(-\omega) = \mathbf{J}_{r}^{\intercal}(\omega) \\
& \mathbf{J}_{l}^{-1}(\omega) = \mathbf{J}_{r}^{-1}(-\omega) = \mathbf{J}_{r}^{-\intercal}(\omega)
\end{aligned}
\end{equation}
References
'Fundamental' 카테고리의 다른 글
추정 이론(Estimation Theory) 개념 정리 Part 2 - RBLS, BLUE, MLE, LSE, Exponential Familiy (1) | 2024.02.12 |
---|---|
추정 이론(Estimation Theory) 개념 정리 Part 1 - MVUE, CRLB (1) | 2024.02.10 |
확률 이론(Probability Theory) 개념 정리 Part 1 - Probability, Random Variable, Distribution (3) | 2023.11.13 |
[SLAM] Hand-eye Calibration 개념 정리 (+ Trajectory Evaluation) (1) | 2023.11.10 |
3D 강체 변환(Rigid Body Transformation) 개념 정리 (6) | 2023.01.24 |