VINS Mono

-행렬의 덧셈, 스칼라곱, 곱셈

-내적과 행렬

내적은 x^t y로 나타낼 수 있다

-determinant

평행 사변형의 넓이 혹은 입체도형의 부피를 행렬 A에 대해서 일차변환 시켰을 경우 각각의 넓이 혹은 부피가 det(A)배 된다.

-trace

-symmetric, skew symmetric matrix

-Linear transformation

-X’=AX로 회전변환 확대변환 등이 있음

-Rotation

cos -sin

sin cos

여러 번 변환할 경우 matrix를 순서대로 곱해주면 된다.

-이동까지 고려해서 행렬의 차원을 한 차원 더 크게 늘리기도 한다.

-Linear independent

Rank

-Singular Value Decomposition

-Matrix를 분해하는 법 중 하나임

-MATLAB에서는 [U,S,V]=svd(A)로 사용

mn 행렬 A를 mm rotation 행렬 U, mn 대각행렬 시그마, nn 행렬 V를 이용하여 A=U (시그마) V^t으로 나타낸다.

이 때 행렬곱 왼쪽에서 오른쪽 방향으로 진행한다고 생각하면 된다. 시그마의 대각성분이 U의 열벡터를 스케일 해주고, V^t과 외적해서 만든 행렬이 A가 된다.

principal components (U 행렬에 속한 열벡터)

SVD의 가장 대표적인 예는 대각화라고 생각하면 된다. 정칙행렬 자체가 Rotation 행렬이기 때문이다.




Slam에 대한 기초적 이해

  1. SLAM은 mapping과 localization을 동시다발적으로 이루어진 것과 같다.
  2. 여기서 mapping은 무엇이냐 주변에 무엇이 있는지를 추정하는 과정이다.
  3. Localization은 map을 기반으로 로봇이 어떻게 움직일지를 예측하는 것이다.
  4. 문제는 localization은 map을 기반으로 즉, mapping이 먼저 되어야 하고 mapping 역시 로봇의 위치를 알아야 mapping을 하므로 localization을 먼저 해야 한다. 즉, 둘의 관계는 종속적으로 이루어지는 것이기 때문에 동시에 처리하는 것은 매우 어렵다. (마치 닭이 먼저냐 달걀이 먼저냐와 같은 이치이다.) 그러기 때문에 SLAM의 난이도는 높은 것이다.

SLAM의 대략적 구조도

캡처454.jpg

여기서 우리는 u항과 z항을 알고 x항과 m항을 모른다.

Full SLAM의 경우에는 모든 x를 알아야 하지만, Online slam은 최근의 pose만 알아도 된다.

캡처455.jpg

Three traditional paragrams

Kalman fiter, Particle filter, Graph-based

x를 알아가는 과정을 motion model이라고 하고 map을 알아가는 과정을 observation model이라고 한다.

motion model은 다음과 같은 수식으로 쓸 수 있다.

p(x_t,x_t-1,u_t)

즉, x_t-1정보와 u_t정보로 x_t의 정보를 알아내는 것이다.

observation은 x_t정보로 알 수 있으므로 p(z_t x_t)로 쓸 수 있다.

이해 안 되는 것:gaussian model part

  1. Feature based method slam과 Direct method SLAM의 알고리즘을 간략히 서술하시오.
  2. 다음은 SLAM 알고리즘의 파이프라인을 순서 없이 나타낸 것이다. 순서를 맞추시오.

Visual Odometry, Map representation, Loop Clousre detection, Backend optimization, Data acquisition