Priceless

[SLAM] SLAM 개요 본문

SLAM

[SLAM] SLAM 개요

Hyun__ 2023. 11. 21. 02:41

SLAM이란

정의

Simultaneous Localization And Mapping

동시적 위치 추정 및 지도 작성

위치 추정

공간 속에 어디에 있는지를 찾는 기술

로봇이 움직이므로 움직이는 위치를 찾을 수 있어야 한다

지도 작성

공간을 표현하는 지도를 작성하여

주변 환경을 인지한 후 실제 세상을 표현한다

 

로봇이 가진 센서들을 통해 주변 환경의 정보를 인식한다

 

주변 환경에 대한 사전 정보가 없는 경우

위치 추정과 지도 작성을 통해 로봇의 주변 정보를 알 수 있다

 

특정 공간을 나타내는 다음 사진의 경우

위 사진에서는 주변 정보를 모를 때 로봇이 존재할 수 있는 위치의 경우를 나타낸 것이고

아래 사진에서는 주변 정보를 알 때 로봇이 존재할 수 있는 위치의 경우를 나타낸 것이다

이와 같이 주변 정보를 알면 현재 위치를 알기 쉽다

 

로보틱스 기술의 진화

로봇의 사용

사람이 가기 어려운 환경이나 자동화 환경 등에 로봇을 투입할 수 있다

위험하거나 매우 좁은 환경 등 다양한 환경에서 로봇을 사용할 수 있다

복잡하지만 반복되는 환경에도 로봇을 사용할 수 있다

로봇의 이동성

바퀴, 캐터필러, 레일 등을 통해 로봇을 이동할 수 있다

최근에는 4족 보행 로봇 등 다양한 방법으로 로봇이 움직인다

이러한 로봇이 이동하기 위해서는 주변 환경을 알고 있어야 다음에 어디로 이동할지 정하며 움직일 수 있다

Perception to mobility

이동 가능한 공간과 이동 불가능한 공간을 판단한다

Exteroceptive sensing(외부 환경 감지)을 통해 외부를 감지한다

 

센서

세상에 완벽한 센서는 없다

센서가 물리적 정보를 완전히 담을 수 없으며

측량 과정에서도 오차가 발생할 수 있다

 

오차가 확률 분포 상태로 나타나 값이 흔들리며 나타난다

노이즈가 낀 정보로부터 정답을 추론해야 한다

SLAM 또한 확률적 추론에 의한 기술이다

Ego-motion 

proprioceptive sensing(자기 위치 감지)을 통해 

로봇의 자기 자신의 움직임 또한 잘 인식해야

벽 등에 충돌하지 않고 위치 추정을 잘 할 수 있다

 

이를 측정하기 위해 IMU 센서 등이 사용된다

 

움직이는 로봇의 기본 원리

기본적으로 생각할 수 있는 동작 원리는

센서로부터 현재 로봇의 이동 값과 주변 환경 값을 받아온 후

상황에 맞게 움직이고 이 과정을 빠르게 반복한다

 

이 과정의 경우

Proprioceptive sensing(자기 위치 감지)의 안정성 확보가 어렵다

Exteroceptive sensing과 Proprioceptive sensing 두 가지 sensing 과정을 거치면서

두 sensing에서 오는 오차 값이 증폭 되면서 신뢰도가 많이 낮아질 수 있다

또한 노이즈를 처리하는 동안 목표 값이 정해지지 않아 이동할 수 없다

 

Localization, Mapping, SLAM

두 가지 sensing 과정에서 안정적으로 값을 받아와야 최적화할 수 있다

Exteroceptive sensing이 정확하다면 Proprioceptive sensing이 상대적으로 부정확한 것을 확인하고 보정할 수 있지만 

ex 마저 부정확하면 보정할 수 없다

둘 중 하나가 정확하다면 서로 보정해줄 수 있다

 

Exteroceptive sensing 가 정확한 경우와 Proprioceptive sensing가 정확한 경우 서로의 오차를 조율하여 로봇을 제어한다

 

Mapping 

작은 위치부터 시작하여 주변 환경 전체를 저장한다

불안정하게 주변 환경의 정보를 얻는다

 

Localization

정확하지 않은 proprioceptive sensing를 고정한 상태로

주변 환경을 통해 현재 위치를 파악한다

 

 

자율주행에서는 

정확한 지도를 통해 현재 위치가 어딘지 알고 경로를 계획할 수 있다

Mapping에서 Hint는 양날의 검

힌트가 주어진 경우 힌트가 잘못 매칭되면 더욱 큰 오차가 발생하고

힌트가 없다면 매핑이 되지 않을 수 있다

 

 

Monte Calro Localization 기법

우선 로봇이 존재할 수 있는 위치를 모두 표시

 

뿌려진 파티클마다 외부 환경 감지 정보와 모션 정보를 통해 위치 정보를 업데이트한다

이 과정에서 존재할 수 없는 영역에 대한 파티클은 모두 삭제한다

 

외부 환경 감지 정보를 입력 받는다

 

뿌려진 파티클마다 현재 외부 환경 감지 정보를 계산하여 대조한다

 

이후 측정 값과 외부 환경 감지 정보와 잘 맞아 떨어지는 값만 남기고 파티클을 새로 뿌려 리샘플링한다

마지막 사진의 파티클 영역을 보면  비슷한 형태가 있다면 위치를 헷갈릴 수 있으므로 

이는 이 기법이 가진 한계이다

 

더욱 정확한 위치를 찾기 위해 로봇을 더 움직여 정보를 더 얻을 수 있다

 

만약 지도가 없다면 이 알고리즘을 사용하지도 못할 수 있다

 

Chicken-Egg Problem

 

Localization을 위해서는 정교한 Map이 필요하여 

Mapping을 위해서는 정확한 Local 정보가 필요하다

 

위 중 무엇이 선행되어야 하는지는 아직 문제에 있다

 

좋은 센서를 통해 localization 정보를 얻어 Map을 얻을 수 있지만 상업화하기 어렵다

좋은 센서를 통해 Mapping을 했지만 단순히 구조가 바뀌어도 새롭게 Map을 생성하는 비용으로 상업화하기 어렵다

 

이렇게 두 가지 문제를 해결하기 위해 Localization과 Mapping을 동시에 수행하며

SLAM이 등장하게 된 배경이다

 

지도 작성을 위해 위치 정보가 필요하고 위치 정보를 알기 위해 지도가 필요하므로

이를 동시에 수행하여 아무 정보가 없어도 위치 정보와 지도를 최적화하여 얻을 수 있다

 

요약

SLAM은 Localization 정보도 없고 Map도 없는 경우에 사용한다

Map이 있는 경우 그 지도를 사용하는 것이 가장 유용하다

위치 정보를 정확히 얻을 수 있다면 위치 정보를 바탕으로 Mapping하는 것이 더 유용하다

 

고민

Localization과 SLAM의 다른 점은 무엇인가?