그래픽스/SLAM

[SLAM] Introduction to SLAM

jun0823 2022. 7. 31. 00:39
반응형

본 글은

 

SLAM 한국어 강의

https://www.youtube.com/c/SLAMKR

 

Cyrill Stachniss 교수님

https://www.youtube.com/playlist?list=PLgnQpQtFTOGQrZ4O5QzbIHgl3b1JHimN_ 

 

강의를 듣고 개인적으로 정리한 글입니다.

 

SLAM이란?

 

SLAM이란 Simultaneous Localization and Mapping의 약자로 동시에 Localization과 Mapping을 동시에 처리하는 기술입니다.

 

Localization이란 '공간 속에서 로봇이 어떤 위치에 있는지를 파악하는 것'입니다.

localization

 

Mapping이란 '주변 환경에 대한 지도를 제작하는 것'을 말합니다.

 

1)Robot motion

motor안 인코딩 센서가 측정함

 

ex) 이전 위치에 대하여 앞으로 5m 움직임 / 뒤로 2m 움직임

 

2) Landmarks

sensor가 인지

 

Real-life에서는 robot motion에서의 추정과 sensor의 노이즈가 존재함

 

이때 SLAM을 이용할 수 있는 이유는

 

로봇이 맵을 한바퀴 돌고 나서 다시 관측 시작지점으로 돌아온 경우 지금까지의 경로에 대한 error를 수정할 수 있기 때문이다 => loop closure

 

SLAM

 

◆ Offline SLAM

 

한바퀴 먼저 돌고 모은 정보들을 바탕으로 map 제작 -> real-time에서 구동 불가능

 

더욱 정확한 map 제작 가능

 

◆ Online SLAM

 

Real-time에서 구동 가능

 

SLAM에서는

Given

 

- The robot's controls : 로봇이 어떻게 움직였는지

 

- Observations : 로봇에서 sensor에서 읽어들인 값

 

Wanted

 

- Map of the environment : 주변 환경의 맵 제작

 

- Path of the robot : 로봇이 어떤 경로로 움직였는지

 

로봇이 어느 위치에 있는지 정확히 파악 불가

로봇이 움직일 때 환경에서 어느 위치에 있는지 정확히 파악하는 것은 불가능!

(because robot motion과 sensor가 측정한 값에 noise가 있기 때문)

 

따라서 위치를 정확히 특정하는 대신 확률 분포를 통해 어느 위치에 있을 지 추정하는 방법을 채택

 

Graph-based SLAM

 

또한 Online SLAM에서는 실시간으로 경로 정보를 update하여야 하므로

위 수식에 따라 확률정보를 구하게 된다.

 

SLAM이 어려운 이유

 

- 고려해야 할 너무 많은 uncertainties가 존재한다.

 

ex)

위에 보이는 빨간 타원은 로봇이 있을 수 있는 위치의 범위를 나타낸 것이다.

로봇이 2개의 landmark를 보았다고 하였을 때 왼쪽 두개인지, 오른쪽 두개인지 100% 확신할 수 없다는 것이다.

반응형