SLAM 스터디

[SLAM 스터디 1] Tiny-SLAM 논문 리뷰

jfl 2022. 7. 26. 20:59

# 개요

- SLAM (Simultaneous Localization And Mapping)

사전에 제공된 정보가 없을 때, Localization과 Mapping을 동시에 푸는 문제

  - Localization : 정확한 Map 정보가 주어졌을 때, 해당 Map에서 현재 로봇의 위치를 찾는 문제.

  - Mapping : 정확한 위치 정보가 주어졌을 때, 해당 위치에서 Map을 구하는 문제.

 

- TinySLAM

200 보다 적은 C언어로 프로그램된 SLAM 알고리즘

* 원본 논문 : tinySLAM : a SLAM Algorithm in less than 200 lines C-Language Program

 

- Indoor Navigation

 실내 Navigation, 실내에서 로봇 스스로 장애물에 부딪히지 않고 목표 지점까지 도달하도록 하는 문제

 

=> 적은양의 코드로 작성된 SLAM 알고리즘인 TinySLAM을 향상시켜 실내 Navigation을 수행


# 논문 리뷰

Abstract

-Tiny SLAM은 가장 간단한 SLAM 방법 이지만...  -> 특정 로봇 모델 기반, 정확성을 희생 

- 그래서 오차를 최소화 하기 위해 일부 수정  -> 셀 모델 도입, 동적 확률 추정기 제안

- 위를 정당화 하기 위한 정량적 측정 -> 변경된 사항을 정당화

 

Introduction

- 단순한 SLAM 방식 ( TinySLAM )

SLAM은 사전 정보 없이 Localization과 mapping을 모두 수행해야 한다. 그러므로 일부 복잡한 방법의 SLAM은 환경에 맞게 많은 매개변수를 수정 또는 출력 데이터를 추가적으로 처리해야 한다. 이러한 점에서 단순한 SLAM 방식은 정교한 정량적 평가가 유용할 것으로 보임.

 

- 확률적 방법

SLAM 문제에서 로봇 pose 및 환경을 확률적으로 추정하는 방식이 널리 사용된다.

  1) 주행 거리 데이터로부터 로봇의 초기 pose를 계산

  2) 현재 센서 데이터를 이전에 구성된 환경 map과 match 하여 초기 pose 조정

 

완전 탐색과 같은 방법은 계산량이 많기 때문에 분포를 근사화 하는 방법들을 많이 사용한다.

(ex. 확장 칼만 필터, 파티클 필터)

 

- SLAM 방식

SLAM 방식은 사용 가능한 센서에 따라 달라진다.

 

- tinySLAM 단점

공개 dataset에서의 테스트를 약간 어렵게 만들었고, 최신 ROS 버전과 호환되지 않는다. GMapping과 비교할 때도 정확도가 낮은 map을 생성한다.

 

- tinySLAM 개선

 tinySLAM 작성자는 몇 가지 개선 사항을 제안했다. 필터링, scan matching, 병렬 localization ... 하지만 필터링은 경험적으로 결정되고 병렬 localization은 단순성과 크기를 희생하는 방법이다.

 

위 사항을 고려하여 tinySLAM 알고리즘을 ROS 노드로 구현하고 작은 환경에서 Gmapping과 비교한다. 본 논문에서는 Map 셀 모델의 개선을 중점으로 한다.

 

TINYSLAM

- Input

odometry와 laser scan

 

- map

certainty grid map 

map 업데이트는 아래 공식에 의해 업데이트

- robot pose

2D oriented pose

Monte-Carlo 기반

  -> 로봇 state(x, y, θ)에 독립적인 정규 분포 임의 값을 추가해 변경

  -> 최고의 로봇 pose에 대한 가설을 세우고

  -> 이 pose를 현재의 laser scan data를 map state와 matching 하여 확인

   -> matching 시 계산된 값과 비교하여 더 나은 값이면 로봇 pose 결정

 

TINYSLAM IMPLEMENTATION (구현)

- ROS 패키지로 구현

 

- 원래 알고리즘 변경 사항

Monte-Carlo 방법의 총 반복 횟수에 한도가 scan match에 소요된 시간 이상으로 제한됨.

로봇의 동작 데이터는 ROS에서 가져오고, 특정 로봇 동작 모델에 의해 계산되지 않는다.

laser scan은 로봇 pose가 scan matcher에 의해 수정되었을 때, 더 높은 "불균일" 값으로 map에 추가된다.

  -> scan에서 반환된 pose 보정이 최적이라고 보장되지 않기 때문에 더 강력한 알고리즘이 된다.

laser scan data의 보간 제거

 

A. 수정된 cell 모델

value가 0~1 사이의 값을 가지게 되고 quality 변수가 추가

셀의 기본 점유 확률의 편차를 제어한다.

기존 tinySLAM 셀 모델에서 사용되는 의미와는 다르고 "아핀 조합"에 의해 이전에 계산된 확률과 혼합하기 위해 수행

 

B. 동적 점유율 측정

원래 tinySLAM은 셀 업데이트에 상수 값을 사용하지만 실제 셀 점유 확률은 레이저가 셀을 분할하는 방법에 따라 다르다. 이 정보를 사용하여 추정된 지도의 정확도를 높인다. (ex. 경로가 길수록 셀이 비어 있을 확률이 커진다.)

면적이 넓을 수록 점유 확률이 커진다.

 

TINYSLAM EVALUATION (평가)

평가는 하드웨어 스펙, 데이터셋 등의 내용은 논문을 참고하고, 결과를 위주로 정리하려고 한다.

 

- MIT Stata Center dataset 사용

- 정확도 : tinySLAM과 GMapping와 실제 데이터와 비교, TUM의 SLAM 평가 도구를 사용하여 궤적 비교(RMSE)

 

A. 성능

특히 일반적으로 장애물이 많은 실내 환경에서 센서 데이터를 처리하고 실시간으로 지도를 작성 할 수 있다.

GMapping은 150MB가 필요하지만, TinySLAM은 약 10MB의 메모리가 필요 (유사 조건에서)

 

B. 정확도

생성된 map와 궤적이 서로 가깝다.

최대로 덮일 수 있는 불규칙한 환경 - GMapping의 정확도와 비슷하다

특징이 없는 긴 구절이 있는 시퀀스 - 제대로 처리하지 못함

 

C. 기본 및 수정된 cell 모델 비교

수정된 셀 모델은 셀의 추정된 점유 평균을 추적하여 기본 모델에 비해 센서 노이즈에 더 견고하다.

기존 셀 모델은 셀 업데이트 순서에 따라 달라지지만 수정된 셀 모델은 순서에 의존하지 않는다.

=> 알고리즘 정확도 향상

 

D. 점유 추정기 정확도

추정기는 충분히 큰 셀에서는 localization 품질을 크게 향상하지만, 작은 셀에서는 비효율적이다.

=> 따라서, 추정기는 메모리가 제한적일 때, localization 품질과 map 품질 사이의 절충안으로 사용될 수 있다.

 

CONCLUSION (결론)

- 개선된 tinySLAM은 Indoor Navigation에 적합한 결과를 보여 준다.

- 수정된 cell 모델 반복 패턴이 적은 실내 환경에서 추정 궤적의 정확도를 높인다.

- 동적 확률 추정기는 거친 맵을 사용할 때 정확도의 패널티를 줄일 수 있다.

- 실내 환경에서 작동하는 저가형 모바일 로봇에 적합하다.

 


# 추가 사항

쉬운 이해를 위해 작성한 것인데, 쉽게 이해가 되지 않기 때문에 추가적으로 필요한 사항을 정리합니다.

1. 전체적인 tinySLAM의 overflow

2. tinySLAM의 작동을 그림으로 표현

3. 표시된 것 추가 조사해서 정리 ->