본 포스팅은 논문 A micro Lie theory for state estimation in robotics를 읽고 정리한 내용입니다.
아는 것이 많이 없어서 부족한 부분이 많습니다. 혹여나 틀린부분 있다면 지적해주시길 바랍니다!
D. The exponential map
Exponential map은 Lie algebra를 Lie group으로 transfer 시킨다.
$\mathbf{v}^{\wedge}=\mathcal{X}^{-1} \dot{\mathcal{X}}=-\mathcal{X}^{\dot{-1}} \mathcal{X}$에서 이항하면
$\dot{\mathcal{X}}=\mathcal{\mathcal { X }} \mathbf{v}^{\wedge}$
$\mathbf{v}$가 상수면 ODE와 같고 솔루션은
$\mathcal{X}(t)=\mathcal{X}(0) \exp \left(\mathbf{v}^{\wedge} t\right)$
$\mathcal{X}(t)$와 $\mathcal{X}(0)$이 그룹의 원소이므로 $\exp \left(\mathbf{v}^{\wedge} t\right)$ 역시 그룹의 원소임
$\exp \left(\mathbf{v}^{\wedge} t\right)$는 원소 $\mathbf{v}^{\wedge} t$를 Lie algebra에서 Lie group으로 transfer해준다
(Log map은 이의 역연산)
![](https://blog.kakaocdn.net/dn/XwZqC/btrJ9vCqiy6/HTTYqGYgDyWPu0yury3aZK/img.png)
그런데 $\mathbf{v}^{\wedge} t$는 벡터 $\mathbf{v}$에서 파생된 행렬인데 $\exp \left(\mathbf{v}^{\wedge} t\right)$은 지수로써 계산이 불가능해진다.
그 대신 테일러 급수를 이용하여 계산한다.
$\exp \left(\boldsymbol{\tau}^{\wedge}\right)=\mathcal{E}+\boldsymbol{\tau}^{\wedge}+\frac{1}{2} \boldsymbol{\tau}^{\wedge 2}+\frac{1}{3 !} \boldsymbol{\tau}^{\wedge 3}+\cdots$
$SO(3)$ group의 exponential map 예제
![](https://blog.kakaocdn.net/dn/25CKZ/btrKgtQERyj/kGVKv7yAqQPEZH5Oc5AVE1/img.png)
Exponential map의 핵심 성질은
![](https://blog.kakaocdn.net/dn/cFtmyx/btrKdRLhGiL/JpeDTocHjMTmW7Yt2xiK7k/img.png)
특히 4번째 성질은 매우매우 중요함
1 ) The capitalized exponential map
앞서 본 exp()함수는 는 앞글자가 소문자이고 이번엔 앞글자가 대문자 Exp()인 함수를 정의한다
둘의 차이점은 행렬에서 변환해주냐 아니면 벡터에서 변환해주느냐의 차이가 있다
벡터에서 변환해주는게 중간과정(벡터→행렬→변환)이 없이 바로 벡터→변환으로 가게해주는 유용한 함수이다.
![](https://blog.kakaocdn.net/dn/FywKw/btrJ8HwlIck/wJNuq31bPokqGhUrsXL18K/img.png)
![](https://blog.kakaocdn.net/dn/d9YABq/btrKetXF3WW/XfBuGCHUaIpGEF3Wv1YE3K/img.png)
E. Plus and minus operators
갑자기 제목에 웬 플러스 마이너스냐 싶을텐데 manifold 에서는 일반 대수와는 다르게 연산을 한다 (기호도 다르다)
그리고 신기하게 오른쪽과 왼쪽을 나눠서 생각한다. (외적과 같이 Non-commutativity해서 그런듯)
먼저 오른쪽 연산을 보자
![](https://blog.kakaocdn.net/dn/8X2YM/btrKax7SoP0/LJdQD5V2SLwd2nqJ0PU3zk/img.png)
그 다음 왼쪽 연산을 보자
![](https://blog.kakaocdn.net/dn/5wPRY/btrJ8qU2f4k/kuBaXdISjs5c3LnnHYWnQK/img.png)
출발한 위치가 identity에서 했냐 안했냐의 차이가 있고 둘을 각각 local(오른쪽 연산)과 global( 왼쪽)로 얘기한다.
그리고 플러스 연산은 오른쪽, 왼쪽이 구분이 되는데 마이너스 연산은 애매함
F. The adjoint, and the adjoint matrix
만약 왼쪽 플러스 연산과 오른쪽 플러스 연산의 결과가 서로 같다면 local과 global의 관계는
$^\mathcal{E}{\boldsymbol{\tau}} \oplus \mathcal{X}=\mathcal{X} \oplus^{\mathcal{X}} \boldsymbol{\tau}$ 이다.
Exponential map의 성질을 이용하면
![](https://blog.kakaocdn.net/dn/bqhGy4/btrKcvoauua/3ABi42kOGF18Dk1Eek1k6K/img.png)
1 ) The adjoint
위의 성질을 adjoint 라고 정의한다
![](https://blog.kakaocdn.net/dn/pl6Yf/btrKauCBrn1/Mat5a7Bq0BjNh2fpYS4eU0/img.png)
그리고 특정 점 $\mathcal{X}$에서 identity의 adjoint를 adjoint action한다고 말한다
$^\mathcal{E}{\boldsymbol{\tau}} ^\wedge=\operatorname{Ad}_{\mathcal{X}}(^\mathcal{X}{\boldsymbol{\tau}^{\wedge}})$
요기서 두 가지 성질을 알 수 있다
![](https://blog.kakaocdn.net/dn/bL4ec1/btrJ8Iverye/XuaZ4Mk2hyztsEjXEF0Oa0/img.png)
2 ) The adjoint matrix
$ \operatorname{Ad}_{\mathcal{X}} $가 linear하므로 matrix operator $\operatorname{Ad}_{\mathcal{X}}$(볼드체)를 정의할 수 있다. (벡터 to 벡터)
![](https://blog.kakaocdn.net/dn/bdhTbs/btrJ7mMCpie/EbUv4wg1nznP08G2Y7JLnk/img.png)
V(Vee) 연산으로 정의가 가능하다.
![](https://blog.kakaocdn.net/dn/uvfpj/btrKatwVanT/Y1eibOU0BxeUE0iG1YBu70/img.png)
그리고 추가적인 성질이 다음과 같이 있음
![](https://blog.kakaocdn.net/dn/xfHA1/btrKej1EKEK/hzYryFLqJcImG1dneKZaG1/img.png)
특히 두번째, 세번째 식에서 왼쪽식으로 계산하는 것이 오른쪽식으로 계산하는 것보다 대부분 더 효율적임
(아마 행렬로된 결과에 대해 역행렬을 찾는 것보다는 나아서 그런듯함)
SE(3) group의 adjoint marix 예제
![](https://blog.kakaocdn.net/dn/dwJ7zg/btrJ8HC9ZjM/fYyxlCdCt1HMs3NQKTPgf0/img.png)
'SLAM' 카테고리의 다른 글
A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation (0) | 2022.08.30 |
---|---|
Visual-Inertial Odometry of Aerial Robots (0) | 2022.08.30 |
A micro Lie theory for state estimation in robotics (4) (0) | 2022.08.25 |
A micro Lie theory for state estimation in robotics (3) (0) | 2022.08.25 |
A micro Lie theory for state estimation in robotics (1) (0) | 2022.08.18 |