Visual SLAM
Feature-based SLAM
Mono SLAM
- 특징점 몇개만 잡아서 사용
- 공간이 커질 수록 계산량이 많아지기 때문에 방 하나 사이즈에 적합함
PTAMA
- Thread를 분리해서 사용
- 매들어오는 이미지의 feature를 통해 keyframes 생성 (Tracking)
- 그 때마다 mapping
- 성능 생각보다 좋음
ORB SLAM
- 자동으로 첫이미지를 따고 키프레임이 나올 때까지 대기 (homography와 fundamental matrix 중 더 좋은 결과로 초기화, 둘 다 실패시 다시 뽑음)
- homography: 평면에 feature point가 있을 경우, socore 높음
- fundamental matrix: 3D point가 3차원 공간에 퍼져있는 경우, score 높음
- 상업용으로 좋은 이유 - user input 필요 X
- rotation에 약함
Direct SLAM
- dense -> semi-dense -> sparse
- High frame rate 카메라 필요
LSD SLAM
- point 기반의 feature를 뽑는게 아니라 Line 기반으로 feature를 뽑음
- CPU 단독으로 적용 가능
- semi-dense
SVO
- frame-to-frame tracking
- mapping 시에는 keyframes만 활용
SVO2
- Multi camera / 드론 타겟팅
DSO
- No feature-based 방식
- Loop closure가 없음
- 그럼에도 불구하고 성능이 좋음
Visual-Inertial SLAM
- SVO + KF: Low CPU usage, but high error
- OKVIS: Connot run at low clock CPU
- ROVIO: 성능은 보통이나 Laptop, sbc에서 같은 성능
- VINS-Mono: CPU 사용량이 큼
- Filtering-based approach vs Optimization appoach
- Optimization appoach가 우세하기는 하지만 높은 CPU usage 때문에 Filtering-based approach를 놓지 못함
VINS MOMNO
- VI SLAM의 끝판왕, 그러나 무거움
- Odometry 구성에 있어서는 ORB 보다 안 좋을 수 있음
ORB SLAM2 vs RTAPMAP
Paper: Benchmark of Visual SLAM Algorithms: ORB-SLAM2 vs RTAB-Map
ORB-SLAM2
- 특징점 추적, 매핑, 루프 폐쇄, localization
- 정확한 위치 추정 가능
- 카메라 궤적과 3D 재구성 하는 단안, 스테레오, RGB-D 카메라 용 실시간 SLAM 라이브러리
- 단안 ORB-SLAM2
- 단 하나의 카메라만 사용
-
- 이미지를 회색조로 변경
-
- 지형지물 감지, map, 위치 초기화 (단안 SLAM은 단일 이미지에서 깊이를 알 수 없기에 초기 map을 만드는 절차가 필요)
-
- 초기화되면 맵 생성
- 스테레오 ORB-SLAM2
- 스테레오 카메라 사용
- 스테레오 SLAM의 특징 감지는 단안 SLAM 보다 낫다
- 초기화는 빠르며 단안 SLAM에 비해 많은 장점을 갖고있다.
- 두개의 ORB에 대해 일치하는 항목을 검색한다
- 일치하는 항목을 사용하여 스테레오 키프인트를 생성
- RGB Depth ORB-SLAM2
- depth가 있는 RGB 이미지가 필요하다.
- RGB-D 카메라의 경우 RGB 이미지에서 ORB 기능을 추출하고 좌표가있는 각 기능에 대해 깊이 값 d를 (논문 식 1) 에 넣는다.
- Fx는 수평 초점 거리, b는 적외선 카메라와 structured light projector 사이의 기준선
RTAP-MAP SLAM
- Fx는 수평 초점 거리, b는 적외선 카메라와 structured light projector 사이의 기준선
- RTAP-Map은 Real TIme Appearance Based Mapping을 의미
- RTAB-Map은 2013년 부터 오픈 소스 라이브러리 배포
- RTAB-Map은 비주얼 및 라이더 SLAM을 모두 지원하여 사용자가 다양한 로봇 및 센서를 사용하여 다양한 애플리케이션에 대해 다양한 3D 및 2D 솔루션을 구현하고 비교할 수 있는 도구를 하나의 패키지로 제공
- RGB 이미지와 depth이미지를 사용하여 맵을 구성한다. (그래프 생성됨)
- 그래프가 업데이트되면 RTAB-Map은 새 이미지를 모든 이미지와 비교하여 루프 폐쇠찾음
- 그래프의 각 노드에 대해 RGB 및 depth 이미지 에서 포인트 클라우드를 생성
- 포인트 클라우드는 노드의 포즈를 사용하여 변환된다
- 다음 3D 맵 생성
5장 - 결론
- ORB SLAM
- 단안 ORB-SLAM은 매핑 중에 포인트를 잃고 초기화 속도가 매우 느리고 단안 ORB-SLAM을 제외하고 완벽하게 작동한다.
- (논문 fig. 3) odometry와 특징점을 추적하는데 효율적이다.
- ORB SLAM은 3D 맵을 생성
- ORB SLAM은 실내.외 환경에서 맵을 만들고 궤적을 만드는데 성공
- 루프 폐쇠를 성공적으로 감지
- (논문 fig 4,5) 단안 ORB SLAM의 유일한 문제점은 초기화시 느리고 매핑 중에 포인트를 읽는것, 이로 인해 ORB SLAM은 위치를 잃고 매핑을 지속할수 없다.
- 문제점을 해결하기 위해서는 스테레오, RGB-D 카메라를 사용하는 것(ORB-SLAM2)
- (논문 표1) ORB-SLAM2를 사용하여 Ground Truth와 비교한 결과
- 실내에서는 ground Truth, ORB Stereo, ORB RGBD 모두 결과가 정확하게 나왔지만 실외 에서는 스테레오 카메라가 RGBD에 비해 더 나은 결과를 보여줌 (논문 fig 7)
- RTAB-MAP SLAM
- RTAP-MAP SLAM은 실내에서만 테스트 진행
- 지도를 만들고 루프 폐쇠를 감지하는 데 성공
- (논문 표2) RTAPMAP의 매핑 및 궤적 추정은 매우 좋지만 거리 측정은 그렇지 않다. RTAPMAP에 의해 추정 된 거리는 ORB SLAM의 거리보다 좋지 않다.
- ORB SLAM VS RTAP-MAP SLAM
- (논문 표 3) 거리측정 결과는 RTAP-MAP 보다 ORB SLAM 이 더 정확하다고 볼수 있다.
6장 - 마무리
- ORB SLAM은 정확한 궤도를 추정하고 정확한 odomerty 제공
- 하지만 단안 ORB SLAM은 좋은 궤적이나 거리를 추정을 제공하지 못함
- RTAPMAP은 궤도 추정은 정확하지만 odomerty는 ORB SLAM만큼 정확하지 않음
- 궤도 추정에 있어서 ORB SLAM과 RTAPMAP 비교할 때 RTAPMAP이 더 나은것으로 나타남
- 그러나 거리 측정에서는 ORB SLAM이 더 좋다