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로 표현(빠르다!)