NEW TECH/Slam

SLAM 기술 논문 정리

김쿸후 2021. 5. 7. 13:24

1.  SLAM (Simultaneous Localization and Mapping) , 혹은 CML(Concurrent Mapping and Localiztion)

 

1.1 SLAM이란

 

로봇이 미지의 공간에서 주행을 시작하는 경우, 주변 환경에 대한 정보가 없음

로봇이 센서 정보에 기반하여 지도를 작성

v ㅅ

작성된 지도로부터 로봇의 현재 위치를 추정하는 과정 

 a.k.a 닭이 먼저냐 달걀이 먼저냐... 

 

1.2 SLAM의 문제

센서 관측 정보의 불확실성, 실시간성 확보, 넓은 환경에서의 문제

 

1.3 SLAM 의 방법론

1.3.1 KF (Kalman Filter) : 초기

가정 : 시스템의 선형성 -> 비선형 시스템에서는 어렵다는 단점

비선형에서도 사용가능: 개선한 모델 : EKF, UKF

EKF : 적용 easy, 대부분 성능 good 

 

모노카메라 : 방위정보 O 거리정보 X 

특징 초기화(feature initialization) : 관측 정보를 통해 feature의 위치를 계산하는 과정

  • delayed : 필터 외부에서 특징 초기화 수행

필터 외부에서 feature의 위치를 대략적으로 결정

  • undelayed : 필터 내부에서 특징 초기화 수행

관측이 될 경우 즉시 필터에 등록, 추가 관측 정보로 불확실성 감소 

 

 

1.3.2 PF (Particle Filter)

위치 불확실성을 샘플로 불리우는 입자의 무리로 표현

샘플의 개수가 충분할 때는 안정성이 있지만 아닐 경우 문제점,, 

-> KF와 PF 를 합친 모델 : RBPF (Rao-Blackwellized Particle Filter)

 

1.3.3 graph and BA(Bundle Adjustment)

최근 이슈가 되고 있는 그래프 기반 SLAM방법

로봇과 특징들의 위치관계를 구속 조건을 정의하여 그래프를 작성

-> 그래프가 교차하는 지점에서 오차를 최소화

 

**그래프 작성(front-end)

1) 지점, 특정 위치-> 노드

2) 센서 정보로부터 노드와 노드 사이의 구속조건 -> 에지

 

**그래프 최적화(back-end)

최근 : sliding window 개념

  • 단기 smoother

최근에 작성된 graph를 최적화 : 실시간으로 동작

SWFG(Sliding-Window Factor Graph)기법으로 edge 계산

 

  • 장기 smoother

graph오차 최소화, 여분의 시스템 자원을 이용 : 느림

 

단 : 많은 연산량 -> 실시간성 low

**GraphSLAM의 실시간성 확보 방법

1) 노드가 충분할 시 -> 새로운 노드 생성 x

2) 같은장소 여러번 -> 노드사이의 구속조건이 일정개수 이상-> 하나의 구속조건

 

 

BA : 비전을 이용한 카메라 특징들의 위치를 동시에 보정하는 용도.

PTAM (Parallel Tracking and Mapping) :

모노카메라로 특징을 추출하여 5점 RANSAC 알고리즘으로 카메라 이동과 특징의 위치를 예측

feature -> key frame으로 생성, 등록 -> 카메라가 일정 거리 이상을 이동할 경우 새로운 키프레임 추가 

5개로 쪼개서 각각 BA 수행 : 실시간성 확보

 

넓은 환경에서 PTAM : double window optimization 

카메라 위치 주변 : inner window

: set of softer frame-frame constraints

 

inner window 밖에 outer window 

: constitute the larger graph of space

 

넓은 지역의 SLAM : 오차 누적 -> 재방문 시 지도가 달라질 수 있음

재방문 여부를 판별-> loop closure

 

국부위치추정을 실시간으로 수행 -> 동시에 지도를 최적화 

 : 건물 전체 또는 도시 단위의 넙ㄹ은 영역에도 적용 가능

 

 

bag-of-words : 비슷한 모양의 특징을 그룹으로 묶어 하나의 word로 표현(빠르다!)