본문 바로가기

심화/SLAM

[Youtube] SLAM Online 강의

영상출처 : www.youtube.com/watch?v=_i8PaekcguA

※ 문제가 될시 삭제하겠습니다.

 


▶Localization과 Mapping은 Chicken-Egg 문제이다

- Map이 있어야 내가 현재 어디 있는지 알수 있다(Localization)

- 특정 지점에 있어야 Map을 생성할 수 있다(Mapping)

 

 

▶다양한 Localization 방법

- (GPS 전파를 받지 못하는 경우) 간접적인 물리량 활용

  e.g. 휠 인코더, 카메라, IMU 센서 등

- 카메라를 이용할 경우 Visual SLAM을 활용한다.

  : 단안 카메라, 양안 카메라 등 방식에 따라 방법이 다르다.

- 라이다 센서 활용

  : 공간 분해능(Resolution)이 높다.

 

※ 단안 카메라는 BaseLine이 고정되지 않아 Disparity는 카메라 이동으로 구할 수 있지만, Depth는 구할 수 없다.

반면, 양면 카메라는 BaseLine이 고정되어 (Stereo Matching을 이용하여) 깊이를 알 수 있다(BaseLine이 멀 수록 먼 거리를 측정할 수 있다)

 

 

▶SLAM 전체 구성

Visual odometry

 : 인접한 이미지 사이 순차적인 정보를 계산

 : 카메라가 3차원 상 이동하였음 고려, Drift Error(누적 오차)가 발생한다.

Backend Optimization (혹은 State Estimation)

 : 누적 오차를 제거 

 : 그외, 센서 노이즈 

 : e.g. 필터 기반(칼만, 파티클 필터), 비선형 최적화(bundle adjustment, pose graph optimization)

Loop Closing - 과거 정보와 비교

 : 대부분은 이미지간의 유사성을 판단 or QR 코드 활용

Mapping 

 : 환경 맵을 만드는 과정

 e.g. 무인 청소 로봇의 경우 2차원 맵이면 충분하지만, 자율주행 드론은 3차원 지도가 필요하다.

 : 맵 표현 방법 예시

  - PointCloud

  - Voxel

  - Surfel

  - Occupancy grid map

 : 맵 밀도에 따른 종류

  - Spase, Dense, Semi-Dense

 

 

▶SLAM 종류

Spase SLAM  

 - 일부의 정보만 취득 (landmark or feature) 

 - ORB-SLAM

Dense SLAM

 - 취득된 데이터 전부 다 사용 - RGB-D 카메라를 이용하기도 한다 

 - InfiniTam 

Semi-Dense SLAM

 - 이전 프레임간의 Intensity 차이를 확인하여 카메라 Transformation을 계산 

 - 주로 Edge와 같이 특징 적인 부분만 맵으로 만든다. 

 - LSD SLAM by 뮌헨 공과대학

Lidar SLAM

 - LOAM(Lidar Odometry And Mapping)

 

 

▶SLAM 상태 추정 모델

모션 모델

- 수학적 모델 : $ x_k = f(x_{k-1}, u_k, w_k) $

- f() : 모션 모델을 나타내는 함수

- $w_k$ : 모션 모델에 대한 노이즈

- $u_k$ : 모션 센서 입력 혹은 컨트롤 입력

 

센서 모델

- 로봇이 $x_k$ 위치에서 랜드마크 $y_k$ 를 볼때 관측 데이터 $z_{k,j}$가 생성되는 것을 표현

- 수학적 정의 : $ z_{k,j} = h(y_j, x_k, v_{k,j}) $ 

- h() : 센서 모델을 나타내는 함수

- $v_{k,j}$ : 센서 모델에 대한 노이즈

 

Visual Localization Challenge(Video)

 

 

반응형