SLAM

SLAM 이란?

  • Simultaneous Localization and Mapping = 동시적 위치 추정 및 지도 작성

  • Estimates motion

    • 어떤 공간 속에서 어떤 좌표에서 인지

    image

  • Builds a model of surroundings

    • 정한 어떤 모델로써 실제 환경을 표현

image

  • Using a specific sensor

image

  • Without Priori information
    • 사전 정보 없이 문제를 해결할 수 있는 기술

image

Mobile Robotics

  • 이동 가능한 로보틱스
    • 고정된 로봇의 workspace 확장
  • 사람이 가지 못하는 곳을 대신 탐색
    • 위험한 곳 : 해저, 탄광, 화산, 원자력 발전기, 분진, 전쟁
    • 사람이 가기 어려운 곳(좁은 곳) : 교량 하부, 풍력 발전기
  • “이동” 자체를 자동화
  • 단순히 움직인다고 Mobile Robotics가 아니고 인지, 결정, 행동을 해야함

Proprioceptive Sensing

  • 로봇 내부의 상태를 측정하는 센서로 로봇 자신의 움직임을 감지
    • IMU, GPU, 엔코더

Exteroceptive Sensing

  • 로봇 외부의 환경을 측정하는 센서

Perception & Control feedback loop

  • 움직이면서 주변을 탐색하기 위해서는 위 2가지의 Sensing 작업을 같이 진행해야 함

image

  • 단점
    • Proprioceptive Sensing의 안정성 확보가 어려움
    • Exteroceptive Sensing / Proprioceptive Sesning의 신뢰도
    • 노이즈 분석을 하는 동안 이동 불가
  • 위 단점을 보완하기 위해 2 가지 연구 분야가 생성
    • Proprioceptive Sensing : Localization 기술
    • Exteroceptive Sensing : Mapping 기술
  • 위 2 가지 기술이 각각의 분야로써 발전하면서 혼합되어 SLAM 기술이 개발됨

Localization, Mapping, SLAM

  • 성공적인 센서 값 보정의 2 가지 경우

    1. 정확한 Proprioceptive Sensing을 기반으로 부정확한 Exteroceptive Sensing을 보정하는 Mapping 기술
    2. 정확한 Exteroceptive Sensing을 기반으로 부정확한 Proprioceptive Sensing을 보정하는 Localization 기술
  • 하지만 새로운 장소에 대해서는?

    • Chicken and Egg Problem

      • Localization은 High Quality Map을 요구함

      • Mapping은 High Quality Pose Information을 요구함

  • 이러한 문제점을 해결하기 위해 SLAM 기술이 등장

SLAM

  • 위치 정보, 지도 정보가 아예 없거나 불안정할 경우에 사용할 수 있음
  • 사전 정보 없이 최적의 위치 정보와 지도 정보를 추론할 수 있음

Localization

  • 고품질의 지도 정보가 있을 경우 최적의 위치 정보를 추론함

Mapping

  • 고품질의 위치 정보가 있을 경우 최적의 지도 정보를 추론함

고품질의 사전 정보가 있을 경우에는 Localization이나 Mapping을 사용해서 문제를 충분히 해결 할 수 있음

  • 다만 위와 같이 조건이 안 따라 줄 경우에는 SLAM 기술을 사용해서 문제를 해결할 수 있음

SLAM에 사용할 수 있는 센서

Proprioceptive Sensor

IMU

image

  • Inertial Measurement Unit
  • Linear Accelerator(선형 가속도 측정) 센서와 Angular Gyroscope(각속도 측정) 센서가 혼합된 센서
  • Spring-Damper System의 원리를 이용
    • Optical System : 차량용 IMU
    • MEMS : 스마트폰 및 소형 디바이스 IMU
  • 장점
    • Consumer grade 제품은 저렴 (자동차에 사용되는 제품은 비쌈)
    • 높은 sensitivity
    • 높은 FPS(100Hz ~ 4000Hz)
  • 단점

    • 엄청나게 빠른 drift 누적
    • 보정을 위해 Camera / LiDAR / GNSS와 함께 사용
Wheel Encoder

image

  • 바퀴의 회전량(RPM)과 이동량(바퀴의 회전량 * 바퀴의 둘레)를 측정하는 센서
    • Brush, Optical, Magnetic, Inductive, Capacitive
  • 장점
    • 자동차에는 기본적으로 탑재
  • 단점
    • Odometry를 할 시 drift에 약함
    • 바퀴가 헛도는 경우 잘못된 센서의 값이 생길 수 있음
    • 바퀴의 둘레가 주행 중 자주 바뀜
      • 탑승자의 무게
      • 코너링
      • 바람 빠짐
      • 마찰열로 인한 타이어 팽창

Exteroceptive Sensor

GNSS
  • Global Navigation Satellite System
  • 비콘 기반의 위치 추정 센서
    • 다수의 비콘에 대한 통신시간 차이를 이용하여 비콘 - 로봇의 거리를 구하고 삼각 측량을 위해 localization 수행
    • Ego-motion을 추정하기 때문에 Proprioceptive Sensor 같지만, 외부 비콘을 이용하므로 Exteroceptive Sensor
  • 나라마다 시스템이 다름
    • 미국 : GPS / 러시아 : GLONASS / 중국 : BeiDou / 유럽 : Gallileo
  • 장점
    • 싸고 사용하기 쉬움
  • 단점
    • 부정확함 (10 ~ 20m 오차)
      • RTK-GPS, DGPS를 사용할 경우 오차가 cm 단위로 내려오지만 가격이 비쌈(억대)
    • 고층 빌딩 사이에서 multi-path 문제
      • mutli-path 문제 : GPS 위성으로부터 반송파가 수신기를 향해 직접 송신되지 못하고 건물의 벽이나 지형에 반사되면서 다른 경로를 통해 수신될 때 생기는 오차
    • 실내 및 지하에서 사용이 불가능함
LiDAR
  • Light Detection and Ranging Sensors
  • 적외선 레이저를 쏘고 반사 시간을 측정하여 거리를 측정하는 센서
    • Time-of-Flight(ToF), Phase shift, Frequency Modulation 레이저 방식
    • Mechanical Scanner, Solid state scanner, Flash LiDAR 스캐닝 방식
  • 주변 환경을 3D Point Cloud 형태로 바로 알 수 있음

  • 장점
    • Exteroceptive Sensor 중 가장 정확한 편
    • 자율주행용 라이다의 유효거리는 100m 정도
    • 빛의 파장이 일어나지 않기 때문에 낮/밤 사용 가능
  • 단점
    • 비쌈
    • 카메라에 비해 resolution 낮음
    • 눈/비/안개의 영향을 받음
    • Multi-path 문제 발생
    • Solid-state LiDAR의 경우 여러 방향으로 탑재 필요
Radar
  • Radio Detection and Ranging Sensor
  • 반사되어 돌아온느 전파를 측정하여 Radial 거리를 재는 센서
  • Doppler 효과를 이용해서 이동중인 물체의 속도 추정 가능
  • 전파의 종류를 바꿈으로써 near-range와 far-range 선택 가능

  • 장점
    • 날씨 영향 x
    • 타 센서에서는 얻지 못하는 속도값을 추정 가능
  • 단점
    • 작은 물체들은 detection 실패
    • LiDAR보다 낮은 resolution
    • Multi-path 문제 발생
Ultrasound
  • 초음파를 이용(Radar와 작동 방식 동일)

  • 장점

    • 저렴함
    • Near-range에서 잘 작동함
  • 단점

    • 물체의 형태를 잘 추정하지 못함
      • Distance 센서로 많이 사용됨
    • 노이즈
Camera
  • 광센서를 이용해 빛 신호를 받고, Debayering 프로세를 통해 RGB 색 재구성
  • 장점
    • 저렴함
    • 좋은 성능 : Dense Data, Texture, Color, High-FPS
    • 렌즈 교환을 통해 시야각 변경 가능
    • 사람이 보는 시야와 가장 유사함
      • 시각화하기 가장 좋은 데이터
  • 단점
    • Depth 정보 손실
    • 조명 영향
Microphones
  • 공기의 진동을 transducer 센서를 통해 전기 신호로 변환하는 센서
  • 여러개의 마이크를 통해 소리의 근원에 대한 위치를 계산 가능

  • 장점
    • 유일하게 소리 정보를 사용하는 센서
    • 저렴한 가격
  • 단점
    • Geometry가 부정확함
    • 잡음이 심해서 아직은 상업화하기 어려움

SLAM의 종류

  • Visual-SLAM/VSLAM
  • LiDAR SLAM
  • RADAR SLAM …
  • 다양한 센서를 사용하는 SLAM인 경우에는 Visual-LiDAR-Intertial-GNSS SLAM 이런식으로 사용한 센서들의 이름을 나열함

Visual-SLAM/VSLAM

  • 카메라의 Visual 정보를 이용하는 SLAM

image

  • 장점
    • 저렴한 센서를 사용
    • 센서의 성능을 조절하기 쉬움(e.g. 렌즈 교체 : 시야각, 초점 조절 : 노출 시간)
    • 센서 속도가 빠른 편 : 30~60 FPS
    • 이미지 기반 딥러닝 적용 가능 : Object Detection, Segmentation
    • 이미지로 사람이 이해하기 쉬운 시각화 가능
  • 단점
    • 갑작스러운 빛 변화에 대응 불가능
    • 시야가 가려지거나 어두운 곳에서 사용 불가능
  • Camera = Camera Device + Lens
    • Camera Configuration
      • RGB Camera
      • Grayscale Camera
      • Multi-spectral Camera
      • Polarized Camera
      • Event Camera
    • Lens Configuration
      • Perspective Camera
      • Wide FOV Camera
      • Telecentric Camera
      • Fisheye Camera
      • 360 Degree Camera
Monocular Camera
  • 1 Camera
  • 장점
    • Stereo, Multi Camera VSLAM 보다 저렴함(센서의 세팅 비용, calibration 비용, 유지 비용 등)
  • 단점
    • 3D 공간을 실제 스케일로 추정할 수 없음(임의의 scale로 형성)
    • VSLAM 내에서는 실제 세상처럼 동일한 Scale 이지만 VSLAM과 실제 세상의 Scale 차이를 알 수 없음 (Monocular VSLAM의 Scale Ambiguity)
      • 이 문제를 해결하기 위해 metric scale을 가진 Proprioceptive Sensor가 필요(Metric Scale : 실제 세상에서 통용되는 미터 단위의 스케일)
      • 최근 딥러닝 기반 monocular depth estimation으로 문제를 해결하려는 시도가 있음

DSO(Dense SLAM Optimizer) https://youtu.be/C6-xwSOOdqQ

Stereo Camera / Multi Camera
  • 2 Cameras / N Cameras
  • 장점
    • 두 이미지간의 disparity 정보를 이용해서 픽셀마다 depth를 추정할 수 있음
    • Metric Scale의 3D 공간을 복원 가능
  • 단점
    • 카메라 설정 및 캘리브레이션이 어려움
      • 모든 카메라는 동시에 이미지를 취득해야 함
      • Baseline이 충분히 길어야 먼 거리의 3D 공간을 정확하게 측량할 수 있음
      • 카메라들마다 Intrinsic / Extrinsic 캘리브레이션을 정확하게 해야함
    • 모든 픽셀마다 disparity 정보로 depth를 계산하는데 많은 계산량이 필요함 (GPU, FGPA 계산을 요구)
RGB-D Camera(Depth Camera)
  • Structured light(구조광) 또는 Time-of-Flight(ToF)센서를 이용하여 카메라를 사용
  • 센서가 Depth 값을 직접 얻어주기 때문에 계산이 필요하지 않음
  • Dense Mapping을 많이 하는 편

  • 장점
    • Depth 데이터를 통해 3D 공간을 Metric Scale로 실시간 복원 가능
  • 단점
    • ~10m 정도에서만 depth 데이터가 정확함
    • Field of view가 작음
    • 실외에서 사용 불가
      • 적외선 파장이 햇빛과 간섭

LiDAR SLAM

  • LiDAR 정보를 이용하는 SLAM

RADAR SLAM

  • RADAR 정보를 이용하는 SLAM

SLAM 기술의 적용

로보틱스

  • 로봇 청소기
  • 산업 현장 측량 및 스캐너 로봇 / 모니터링 로봇
  • 배달 / 물류 로봇
  • 건설 로봇
  • 서비스 로봇 (무빙 키오스크, 캐리어 로봇)
  • 위험지대 탐사 로봇

자율주행 자동차

  • 드라이빙
  • 자동 주차

자율비행 드론

  • 구조 검사 / 스캐너

  • 군사용 드론

  • 액션 캠 / 촬영용 드론

메타버스 VR/AR

  • 가상컨텐츠
  • 산업용 증강현실
  • 의료 진단 / 원격 의료 / 트레이닝

SLAM 이론 공부

  • Mathematics
    • Linear algebra
      • 이상엽Math 유튜브 선형대수학
    • Probability & Statistics
      • Probability and Statistics 저자 : Evans and Roenthal
  • Computer Vision
    • Imaging
      • Marc Levoy 유튜브 Lectures on Digital Photography
    • Image Processing
      • OpenCV4로 배우는 컴퓨터 비전과 머신러닝
  • Optimization
    • Optimization Theory
      • Wright et al : Numerical Optimization Ch8, Ch10
      • Press et al : Numerical Recipes
    • Numerical Optimization
  • SLAM

    • Cyrill Stachniss 유튜브

    • Gao : Introduction to Visual SLAM

    • Ma : An Invitation to 3-D Vision

참고

  • Github : changh95/visual-slam-roadmap https://github.com/changh95/visual-slam-roadmap