[SLAM] 2. SLAM이란

happy_quokka·2023년 11월 20일
0

SLAM

목록 보기
3/28

slam은 어떤 기술인가, slam으로 어떤 문제를 풀 수 있을지 배운다.

1. SLAM?

  • Simultaneous Localization and Mapping의 약자
  • 동시적 위치 추정지도 작성
  • SLAM은 원래 로봇 기술로부터 출발했다.
  • 지도 : 공간 표현 (물체를 어떻게 표현할지 2D?3D?)

위치 추정과 지도를 어떻게 작성하나?

  • 로봇의 센서(카메라, 라이다, imu, GNSS)를 사용
  • 사전정보(사전 위치, 지도 정보) 없이 위치 추정과 지도를 작성해야한다.
  • SLAM은 사전정보가 전혀 없는 상태에서 문제를 풀 수 있는 방법이다.
  • 사전정보가 있으면??
    • 위치에 대한 정보를 알게 된다 (과거의 정보로 현재에 대한 완벽한 정답은 아니다)
    • 확률분포로 알게 된다

sensor

  • no perfect sensors
  • 센서 : 실제 세상의 물리적인 정보를 수치적인 모델 기반으로 측량하는 것
  • 오차가 존재한다 but! 오차가 확률 분포로 존재한다.
  • 모든 센서 데이터는 확률적으로 표현 가능하다.

2. 모바일 로보틱스 기술의 진화

  • SLAM의 뿌리는 로보틱스에서 시작

Mobile robotics

  • 이동가능한 로보틱스
  • 사람이 가지 못하는 곳을 대신 탐색 (위험한 곳, 사람이 가기 어려운 곳)
  • '이동' 자체를 자동화
  • 시작은 고정된 로봇의 workspace 확장 : 바퀴, 레일 부착
  • 자율 이동체(Mobile robotics)의 조건 : 인지, 결정, 행동

mobility의 인지

  • 이동 가능한 공간(열린 공강)과 이동 불가능한 공간(벽, 장애물)을 인지하는 것
  • Exteroceptive sensor
    • 외부 정보를 감지하는 센서
    • ex) range find 센서 = 1D Lidar = raser distance

ego-motion for mobility

  • 자기 자신의 움직임을 잘 알아야한다서
  • Proprioceptive sensor
    • 자기 자신의 움직임을 측정하는 센서
    • imu, gps 등의 센서

모바일 로보틱스의 기본 윈리

  • Extercaptive와 Proprioceptive sensor 사용
  • Percetpion & control feedback loop
    • 센서 값 읽기(이동값 파악, 벽 위치 파악) -> 이동 -> 센서값 읽기 -> 이동 ->...
    • 단점
      • Proprioceptive 센서의 안정성 확보가 어렵다(센서가 1개이기 때문에 그때 받는 데이터가 1개이다)
      • Exteroceptive sensing을 하는 동안 여러 센서값을 샘플링하기 위해 로봇은 멈춰서 기다려야한다 -> 평균 이동 속도가 매우 느려진다.
      • 센싱하는 동안 움직이는 객체가 있으면 센싱 실패
  • 해결 : 지속적으로 움직이면서 모션과 주변환경을 인지해야하고, Proprioceptive와 proprioceptive 센싱이 둘다 안정적으로 확보되어야한다.

3. Localization, Mapping, and SLAM

  • Proprioceptive sensing을 집중적으로 보는 localization 기술
  • Exteroceptive sensing을 집중적으로 보는 mapping 기술
  • 이 둘이 혼합되면서 SLAM 개발되었다.
  • 모든 센서는 확률적으로 표현가능하다
  • Exteroceptive sensing : 주변 환경 인지
  • Proprioceptive sensing : 자신의 움직임을 감지
  • 완벽한 시스템은 이 두 센싱이 정확해야한다
  • 두 sensing 모두 확률 분포를 가지고 있고 둘 간에 상관관계가 존재한다.
  • 이 둘 간의 확률분포를 조합하는 방법이 있나?
  • 확률 분포 조합할 때 주의해야할 점
    • exteroceptive가 정확할 때 proprioceptive이 상대적으로 부정확하다는 것을 추정하고 proprioceptive을 보정할 수 있었다. 그치만 이때 exteroceptive가 부정확하면 보정해 줄 수 없다.
    • 반대도 가능하다
    • 둘중 하나만이라도 정확하면 보정해 줄 수 있다.
  • 성공적인 보정을 위한 두가지 방법
    • exteroceptive가 정확한 경우 -> localization
    • proprioceptive가 정확한 경우 -> mapping

Localization

  • 고품질의 지도 정보를 통해 위치정보 추정
  • environment -> estimate motion (나의 위치와 움직임)
  • 정확한 exteroceptive sensing 결과인 지도를 통해 나의 위치와 움직임을 모르는 상태에서 proprioceptive 추론

Localization의 한계

  • 힌트가 부정확 / 힌트가 없는 경우

  • prior information에 대한 제약조건이 있다.

  • monte carlo localization

    • configuration 정보(지도)가 주어졌을 때 particle filter(두 확률 분포를 합쳐서 최적의 정보(pose, 위치 정보)를 찾는 필터)를 사용해서 위치를 추정
    1. configuration space에 particle(로봇이 존재할 수 있는 곳)을 뿌림
    2. motion update 단계 : motion 정보를 추가해서 위치 정보를 업데이트 (존재할 수 없는 곳에 있는 particle은 모두 제거)
    3. mesuremet 단계 : 뿌려준 particle마다 exteroceptive 센서에서 들어온 정보를 덧씌운다.
    4. weight update : particle의 현재정보와 주변환경 정보가 일치하는지, 즉 exteroceptive 결과와 proprioceptive 결과가 일치하는지에 대해 계산
    5. resampling : 일치하는 particle만 남기고 그 주변에서 다시 particle을 새로 뿌려서 resampling 진행하면서 계속 반복
  • 로봇이 실제로 존재할 수 있는 곳은 단 한곳뿐

  • monte carlo localization는 지도 정보와 함께 여러 센서의 정보를 누적해놓고 정답에 가까워지는 방법

  • 지도를 전적으로 믿는 경향이 있다. -> 지도가 부정확하면 결과가 좋지 않을 수 있다.

  • 지도가 없다면 알고리즘을 사용하지 못할 수 있다.

Mapping

  • 고품질의 위치정보가 있을 때 최적의 지도 정보 추정
  • motion 정보 -> estimate environment
  • motion 정보 (proprioceptive sensing)가 주어 지면
  • 움직이면서 하나의 물체를 여러 방향으로 바라보면서 정확한 위치를 추론할 수 있다.
  • 정확한 proprioceptive sensing 값을 가지고 불안정하게 인식하는 exteroceptive sensing을 보정
  • 그 결과 exteroceptive sensing 결과인 지도를 생성할 수 있다.

Mapping의 한계

  • 정확한 위치정보를 필요로 한다

chiken-and-egg problem

  • localization을 위해서는 high quality map 필요
  • mapping을 위해서는 high quality pose information 필요
  • 이 문제를 해결하기 위해 SLAM 등장

SLAM

  • 최적의 Map + 최적의 odometry 추정(동시에)
  • proprioceptive sensing + exteroceptive sensing 융합
  • 위치정보, 지동정보가 아에 없거나 부정확할 때 사용 가능
  • 고품질의 사전 정보가 있다면 굳이 SLAM을 사용할 필요가 없다

0개의 댓글