제2장. SLAM과의 첫 만남.
주요목표 : 시각적 SLAM 프레임 워크로 구성되는 모듈과 각 모듈의 태스크가 무엇인지 이해하도록 합니다.
2.1 서론 : 작은 로봇의 예
자율 주행을 위해 필요한 정보
- 나는 어디 있습니까? - 포지셔닝 (Positioning)
- 주변 환경은 어떻습니까? - 맵핑 (Mapping)
A. Visual SLAM에 사용되는 카메라 종류
가. 단안 카메라
- 카메라 하나만 사용하는 것을 Monocular SLAM이라고합니다.
- 2차원에서 3차원 세계를 반영합니다. - 거리 정보 상실
- 3차원 구조를 복원하려면 카메라의 화각을 변경해야합니다.
- 카메라를 움직여 움직임을 추정하고 장면에서 물체의 거리와 크기를 추정해야 합니다.
- 시차를 통해 우리는 어느 물체가 멀리 떨어져 있고 어느 물체가 가까운지를 결정할 수 있습니다.
- 진정한 스케일을 확인할 수없는 문제 발생
- 양안 카메라로 해결
- 깊이 카메라로 해결
나. 양안 카메라
거리를 측정하고 단안 카메라가 거리를 알 수 없다는 단점을 극복
두 카메라의 거리(baseline) 정보를 기반으로 깊이를 추정
- 베이스 라인의 거리가 멀수록 먼 거리를 측정 할 수 있음
- 많은 계산능력 필요
- 실내외 모두 사용 가능
다. 깊이 카메라
- 2010년 출시
- 적외선 구조광 방식 또는 레이저 광선의 비행 시간(Time-of-Flight)을 측정해 깊이 값을 예측
- 양안 대비 계산력이 적음
- 단점 : 좁은 범위, 높은 노이즈, 작은 시야, 햇빛에 쉽게 노출, 투과 물질 측정 불가
2.2 고전적인 시각적 SLAM 프레임워크
- 센서 정보를 읽습니다.
- 시각적 SLAM에서는 주로 카메라 이미지 정보의 읽기 및 전처리 단계를 말합니다.
- 이 단계에서는 휠 및 관성 센서와 같은 정보를 읽고 동기화 할 수 있습니다.
- Visual odometry (VO).
- Visual odometry는 인접한 이미지 사이의 카메라 동작과 로컬 맵의 모양을 추정하는 것입니다.
- VO는 프론트 엔드 라고도합니다.
- Backend optimization
- 백엔드는 위 그림에서 loop closure에 대한 정보는 물론 시각적 인 주행 거리계로 측정 한 카메라 포즈를 다른 시간에 받아들이고 일관된 궤도와 맵을 얻을 수 있도록 최적화합니다.
- VO에 연결되어 있기 때문에 Backend라고도합니다.
- Loop Closure는 로봇이 과거에 도달했던 위치에 도달했는지 확인하는 역할을 수행합니다.
- loop closure가 감지되면 처리를 위해 백엔드에 정보를 제공합니다.
- 맵핑. 추정 된 궤도를 기반으로 현재 위치에 해당하는 지도를 만듭니다.
A. Visual Odometry
- Visual odometry는 인접한 이미지 사이의 카메라 움직임과 관련이 있습니다.
- 가장 간단한 경우는 두 이미지 간의 모션 관계입니다.
- 카메라가 어느방향으로 얼만큼 이동 했는지를 계산 할수 있어야 함 : VO로 계산 가능
- VO는 에러가 누적됨(=Drift Problem)
- 해결법 #1 : Loop closure Detection (이전에 방문한 곳인가 탐지)
- 해결법 #2 : Backend optimization (Loop closure를 통해 전체 트랙 모양 수정)
Visual odometry 부분을 "프런트 엔드"라고도 합니다.
- 프런트 엔드는 백엔드에 최적화 할 데이터와 데이터의 초기 값을 제공합니다.
- 화상의 특징 추출 및 정합 필터링 메인 비선형 최적화 알고리즘이 이용됩니다.
- 백엔드는 전반적인 최적화 프로세스를 담당하며 데이터 출처에 신경을 쓰는 것 보단 데이터 자체를 다룹니다.
B. Backend optimization
- 주로 SLAM 중 노이즈를 처리하는 문제를 수행합니다.
- Backend optimization에서 고려해야 할 문제는
- 이러한 잡음이 많은 데이터로부터 전체 시스템의 상태를 추정하는 방법과
- 상태 추정치가 얼마나 불확실한 지 계산 (이것이 최대 사후 확률 추정이라고합니다, Maximum a Priori, MAP).
C. Loop closure detection
- Loop Closure Detection으로 알려진 루프 감지는 주로 시간에 따른 위치 추정 문제를 해결하는 것을 목적으로 합니다.
- 기본적으로 이미지 데이터의 유사도를 계산하는 알고리즘입니다.
- QR 마커
- 동일한 장소 이미지
- 절차
- 루프백을 감지
- Backend optimization 알고리즘에 "A와 B는 같은 지점입니다."라는 메시지를 알려줍니다.
- 백엔드에서는 이 새로운 정보에 기반한 Loop closure detection 결과와 일치하도록 궤도 및 맵을 조정
- 이런 방식으로 누적 오류를 제거하고 전역적으로 일관된 맵을 얻을 수 있습니다.
D. 맵핑(Mapping)
- 맵핑은 맵을 빌드하는 과정
- 응용 프로그램에 따라 다르게 구현
- 매핑을 위한 고정된 형식과 알고리즘은 없습니다.
가. Map 종류 #1 : Metric map
메트릭 맵은 일반적으로 sparse (희소성) 및 Dense (밀도)로 분류 된 맵에서 오브젝트의 위치 관계를 정확하게 표현하는 데 중점을 둡니다.
- Sparse map은 어느 정도 추상화되어 있으며 모든 객체를 표현할 필요가 없습니다. (eg. 도로 표지판 지도)
- dense map은 보는 모든 것을 모델링하는 데 중점을 둡니다.
- 2차원 map : Grid
- 3차원 map : Voxel
점유
,유휴
및알수없음
세 가지 상태가 포함됩니다.
나. Map 종류 #2 : Topological map
- 토폴로지 맵은 맵 요소의 관계를 메트릭 맵의 정확도와 비교하여 강조합니다.
- 토폴로지 맵은 노드와 에지로 구성된 그래프로 노드 간의 연결 만 고려합니다.
- 예를 들어 A 지점에서 B 지점에 도달하는 방법에 관계없이 A 지점과 B 지점이 연결되어 있습니다.
- 장점 : 정확한 위치에 대한지도의 필요성을 완화하고, 지도의 세부 사항을 제거하여보다 컴팩트 한 표현을 제공합니다.
- 단점 : 복잡한 구조의 맵을 표현하는 데 적합하지 않습니다.
2.3 SLAM 문제의 수학적 표현
A. 운동 모델 (motion model)
로봇의 위치 x가 k-1에서 k로 어떻게 변하는 지 고려해야합니다.
$$ xk = f(x{k-1}, u_k, w_k) $$
- $$ u_k $$ : 모션 센서 입력
- $$ w_k $$ : 노이즈
- $$ f()$$ : 모션 모델
예) 평면을 따라 이동하는 로봇의 운동 모델 (두 위치와 모서리)
B. 관찰 모델 (sensor model)
관측 방정식은 로봇이 $$xk$$ 위치에서 어떤 랜드 마크 점 $$y_j$$를 볼 때 관측 데이터 $$ z{k,j}$$가 생성된다는 것을 설명합니다.
$$ z{k,j} = h(y_j, x_k, u{k,j}) $$
- $$ u_{k,j} $$ : 잡음
예) 로봇에 2차원 레이저 센서가 있다고 생각 해 봅시다.
우리는 레이저 센서가 2D 지표를 관찰 할 때 지표와 로봇의 거리 r과 각도 φ의 두 가지 양을 측정 할 수 있다는 것을 알고 있습니다.
랜드마크는 $$ y = [p_x, p_y]^T $$ 로기록하고 관측 자료는 z = [r, φ]T 이므로 관찰 방정식은 다음과 같이 구현이 됩니다.
C. SLAM 프로세스를 두 가지 기본 방정식으로 요약 할 수 있습니다.
모션 측정의 판독 값과 센서의 판독 값을 알고있을 때 위치 추정 문제 (추정치 x)와 지도 작성 문제 (추정치 y)를 어떻게 해결할 수 있을까요?
이 시점에서 우리는 SLAM 문제를 상태 추정 문제로 모델링합니다 :
- 상태 추정 문제에 대한 해답은 두 방정식의 특정 형태와 노이즈가 어떤 분포를 갖는가와 관련이 있습니다.
- 예) 모션 및 관측 방정식을 선형으로 분류하고 잡음이 가우스 분포를 따르고 선형/비선형 및 가우시안/비 가우시안 시스템으로 나눌 여부를 고려합니다.
- 그 중에서도 Linear Gaussian (LG 시스템)은 가장 간단하며, Kalman Filter (KF)를 사용하여 최적의 추정치를 얻을 수 있습니다.
- 복잡한 non-linear non-Gaussian (NLNG시스템)에서는 확장 된 칼만 필터 (EKF)와 비선형 최적화 방법을 사용하여 이를 해결합니다.
가. 과거 기법
21 세기 초까지 EKF 기반 필터 방법이 SLAM을 지배했었습니다.
- 우리는 시스템을 선형화하고 두 가지 주요 단계를 업데이트하여 예측을 해결해왔습니다 (9 장 참조).
- 결과적으로 EKF의 단점 (선형화 오차 및 잡음 가우스 분포 가정)을 극복하기 위해 사람들은 입자 필터와 같은 다른 필터를 사용하기 시작했고 비선형 최적화 방법을 사용하기 시작했습니다.
나. 현재 기법
현재 시각 SLAM의 대표적인 기술은 Graph Optimization[13]이며, 이것에 의해 최첨단 최적화 기술을 사용합니다.
최적화 기술은 필터 기술보다 훨씬 뛰어나며 컴퓨팅 리소스가 허용하는 한 최적화 방법을 선호하는 경향이 있습니다 (제10강 및 제11강 참조).