Xiang Gao, Tao Zhang 저자의 'Introduction to Visual SLAM from Theory to Practice' 책을 통해 SLAM에 대해 공부한 내용을 기록하고자 한다.
책의 내용은 주로 'SLAM의 기초 이론', 'system architecture', 'mainstream module'을 다룬다.
Lie Group, Lie Algebra의 기본 개념을 알고싶다면 이전 포스팅을 참조하자.
https://jjuke-brain.tistory.com/entry/Lie-Group-and-Lie-Algebra
Lie Group and Lie Algebra (1) - 정의, so(3), se(3), Exponential Mapping, Logarithmic Mapping
Xiang Gao, Tao Zhang 저자의 'Introduction to Visual SLAM from Theory to Practice' 책을 통해 SLAM에 대해 공부한 내용을 기록하고자 한다. 책의 내용은 주로 'SLAM의 기초 이론', 'system architecture', 'ma..
jjuke-brain.tistory.com
포스팅에는 기초 이론만 다룰 것이며, 실습을 해보고 싶다면 다음 github를 참조하자.
https://github.com/gaoxiang12/slambook2
GitHub - gaoxiang12/slambook2: edition 2 of the slambook
edition 2 of the slambook. Contribute to gaoxiang12/slambook2 development by creating an account on GitHub.
github.com
목차
Lie algebra를 배우는 주요 이유는 바로 optimization(최적화)를 위해서이다. 이 과정에서는 도함수가 필수적으로 필요하다.
이와 관련된 개념을 알아보자.
Lie Algebra Derivation and Perturbation Model
BCH Formula and its Approximation
앞선 포스팅에서 Lie group과 Lie algebra간의 관계를 이해해 보았었는데, 그를 바탕으로 과연 다음 수식들이 맞을지 판단해보자.
만약
사실 위 두 식은 matrix의 경우 틀린 식이다.
Product 연산에 대한 complete form은 Baker-Campbell-Hausdorff formula (BCH formula)로 주어진다.
Complete form은 너무 복잡하므로 거기서 확장된 처음 몇 term들만 살펴보자.
이때 '[]'는 Lie bracket을 나타낸다.
BCH formula는 이렇게 두 matrix간의 product 연산을 나타낸다. (scalar form에 비해 Lie bracket이 더 많다.)
이번에는 좀 더 특별한 경우인
도함수를 구할 때 2차식 이상의 작은 값은 무시된다. 이때 BCH를 다음과 같이 (선형)근사화할 수 있다.
[Ref] Right and Left Matrix Multiplication
근사 과정을 자세히 살펴보기 전에, right multiplication과 left multiplication을 간단히 살펴보자.
Right-multiplication과 left-multiplication은 단순히 행렬곱(Matrix multiplication)을 특정 형태로 나타내는 것이다.
- Right-multiplication : Combination of columns
- Left-multiplication : Combination of rows
예를 들어, 어떤 행렬과 column vector의 곱이 다음과 같이 존재한다.
어떤 행렬과 열벡터의 right-multiplying은 해당 행렬의 열의 선형 결합과 같다.
linear algebra에서 배운 linear equation 형태와 같다.
이때, matrix의 column을 기준으로 곱해지는 과정을 생각해보면, 다음과 같이 그림으로 나타낼 수 있다.

첫 번째 column
곱셈 과정을 흰 배경의 박스, 즉 스칼라(coefficients)와 각 column vector의 곱의 선형 결합으로 나타낸 것이다.
행렬과 행렬의 right-multiplication도 그림을 통해 쉽게 확장하여 생각해볼 수 있다.

Left-multiplication은 반대로 어떤 행렬을 행벡터로 곱하는 것을 말한다. (곱하는 벡터의 위치가 왼쪽)
다음 예시를 보자.
어떤 행렬과 행벡터의 left-multiplying은 해당 행렬의 행의 선형 결합과 같다.
그림으로는 다음과 같이 나타낼 수 있다.

행렬과 행렬의 left-multiplication 또한 그림으로 나타내면 다음과 같다.

이제 BCH의 근사화로 다시 돌아와보자.
먼저 첫 번째(위) 식의 의미를 살펴보자.
매우 작은 회전에 대한 rotation matrix인
두 번째(아래) 식도 마찬가지 개념이다.
따라서, BCH approximation을 적용하게 되면 Lie algebra는 left-multiplying approximation과 right-multiplying approximation으로 나누어진다.
실제 left model과 right model 중 어떤 것을 사용할 지를 골라야 한다.
이 책에서는 left multiplication을 예시로 취하고 있다.

Left model에서의 jacobian
그리고 inverse(역)는 다음과 같다.
이러한 방법으로, Lie group multiplication과 Lie algebra addition간의 관계를 알게 되었다.
BCH approximation을 정리해보자.
rotation
이를 수식으로 나타내면 다음과 같다.
역으로, Lie algebra의 addition으로 Lie group의 multiplication을 근사화하기 위해서는 다음 수식을 사용한다.
Lie algebra의 미적분에도 이 개념이 기초로 사용된다.
Derivative on
이제 optimization의 주요 과정인 미분을 계산하는 방법을 알아보자.
목적 함수(target function)는 rotation 또는 transform과 관련되어있는데, SLAM 문제를 해결할 때 최적화를 위한 이러한 함수를 활용하게 된다.
어떤 로봇의
로봇은 world coordinate내의
이 과정을 수식으로 표현하면 다음과 같다.
여기서
noise때문에 실제 관측 데이터는 관측한 model으로부터 계산한 값과 미세하게 차이를 보일 것이다.
따라서 실제 값과 계산한 값(predicted observation) 사이의 차이인 에러
총
위와 같은 least square problem(optimized problem)을 풀기 위해서는
최적화 문제를 푸는 과정은 이후에 다루도록 하고, 여기서는 rotation 또는 transform을 변수로 갖는 함수를 명확하게 알아보자.
하지만 이전에 언급했듯이,
따라서, Lie algebra를 사용하여 다음과 같은 두 가지 방법으로 derivation 문제를 해결할 수 있다.
- Lie algebra에 아주 작은(infinitesimal) 값을 더한다고 가정하고, object function의 변화량을 계산한다.
- Lie group에 left multiplication 혹은 right multiplication을 통해 Lie algebra로 표현된 아주 작은 양의 perturbation을 곱하여 이러한 perturbation에 대한 derivative를 계산한다. (Left Perturbation Model / Right Perturbation Model)
첫 번째 방법은 Lie algebra의 일반적인 derivation model이고, 두 번째 방법은 perturbation model에 해당한다.
Derivation Model
point
rotation에 대한 point 좌표의 derivative는 다음과 같이 구한다.
따라서
도함수의 정의에 따라 다음의 계산 과정을 거친다.
두 번째 줄로 넘어갈 때 BCH approximation이 사용되며, 세 번째 줄로 가는 과정에서는 고차 항을 버리는 Taylor's approximation이 사용된다. (limit를 사용했으므로 등호를 사용하였다.)
다섯 번째 줄은 skew-symmetric symbol을 cross-product로 보아서
따라서, 회전된 점의 도함수는 Lie algebra를 사용하여 다음과 같이 계산한다.
하지만,
따라서 다음에 설명할 perturbation model을 사용하면 좀 더 쉽게 계산할 수 있다.
Perturbation Model
이 disturbance는 left 혹은 right로 multiplication 해줄 수 있다.
Left perturbation을 예를 들어 도함수를 구해보자.
Left perturbation
도함수를 구하는 계산 과정은 아래와 같다.
계산 과정도, 결과도 derivation model보다 간단하다. 이는 Lie algebra의 도함수를 직접 구하면서 jacobian
따라서 pose estimation 등의 task에서 perturbation model이 좀 더 실용적으로 사용된다.
Derivative on
마지막으로,
point
이에 따른 left perturbation
도함수의 계산 과정은 다음과 같다.
마지막 결과를
위 식을 이해하기 위해서는 matrix 미분을 알고 있어야 한다.
열벡터
위 과정을 도함수 구하는 과정의 다섯 번째 줄에 대입하면 마지막 결과를 얻을 수 있게 된다.
이제까지, Lie group, Lie algebra의 도함수를 구하는 과정을 알아보았다.
추후에 이를 활용하여 optimization problem 등을 풀어볼 것이다.
최근댓글