[2023-07-10] SLAM
SLAM
SLAM 이란?
-
Simultaneous Localization and Mapping = 동시적 위치 추정 및 지도 작성
-
Estimates motion
- 어떤 공간 속에서 어떤 좌표에서 인지
-
Builds a model of surroundings
- 정한 어떤 모델로써 실제 환경을 표현
- Using a specific sensor
- Without Priori information
- 사전 정보 없이 문제를 해결할 수 있는 기술
Mobile Robotics
- 이동 가능한 로보틱스
- 고정된 로봇의 workspace 확장
- 사람이 가지 못하는 곳을 대신 탐색
- 위험한 곳 : 해저, 탄광, 화산, 원자력 발전기, 분진, 전쟁
- 사람이 가기 어려운 곳(좁은 곳) : 교량 하부, 풍력 발전기
- “이동” 자체를 자동화
- 단순히 움직인다고 Mobile Robotics가 아니고 인지, 결정, 행동을 해야함
Proprioceptive Sensing
- 로봇 내부의 상태를 측정하는 센서로 로봇 자신의 움직임을 감지
- IMU, GPU, 엔코더
Exteroceptive Sensing
- 로봇 외부의 환경을 측정하는 센서
Perception & Control feedback loop
- 움직이면서 주변을 탐색하기 위해서는 위 2가지의 Sensing 작업을 같이 진행해야 함
- 단점
- Proprioceptive Sensing의 안정성 확보가 어려움
- Exteroceptive Sensing / Proprioceptive Sesning의 신뢰도
- 노이즈 분석을 하는 동안 이동 불가
- 위 단점을 보완하기 위해 2 가지 연구 분야가 생성
- Proprioceptive Sensing : Localization 기술
- Exteroceptive Sensing : Mapping 기술
- 위 2 가지 기술이 각각의 분야로써 발전하면서 혼합되어 SLAM 기술이 개발됨
Localization, Mapping, SLAM
-
성공적인 센서 값 보정의 2 가지 경우
- 정확한 Proprioceptive Sensing을 기반으로 부정확한 Exteroceptive Sensing을 보정하는 Mapping 기술
- 정확한 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
- 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
- 바퀴의 회전량(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 위성으로부터 반송파가 수신기를 향해 직접 송신되지 못하고 건물의 벽이나 지형에 반사되면서 다른 경로를 통해 수신될 때 생기는 오차
- 실내 및 지하에서 사용이 불가능함
- 부정확함 (10 ~ 20m 오차)
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
- 장점
- 저렴한 센서를 사용
- 센서의 성능을 조절하기 쉬움(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
- Camera Configuration
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
- Linear algebra
- Computer Vision
- Imaging
- Marc Levoy 유튜브 Lectures on Digital Photography
- Image Processing
- OpenCV4로 배우는 컴퓨터 비전과 머신러닝
- Imaging
- Optimization
- Optimization Theory
- Wright et al : Numerical Optimization Ch8, Ch10
- Press et al : Numerical Recipes
- Numerical Optimization
- Optimization Theory
-
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