SLAM에서 사용할 수 있는 센서의 종류
모바일로 글을 보신다면 ‘데스크탑 버전으로 보기’를 누르시면 좀 더 보기 쉽습니다
예상 면접 질문:
- 자율주행 (또는 드론, 또는 VR/AR)에서 쓸 수 있는 센서에는 어떤게 있을까요?
- 다양한 센서의 값들을 어떻게 섞을 수 있나요?
- Camera와 LiDAR의 차이점을 설명해주세요.
답
센서의 종류
- Preprioceptive sensors: 주변 환경의 상태와 관련없이 로봇 자기 자신의 state 값을 읽을 수 있는 센서
- IMU, Wheel encoder
- Exteroceptive sensors: 주변 환경에 대한 상태를 읽는 센서
- GNSS, Camera, LiDAR, RADAR, Ultrasonic
Preprioceptive sensor 설명
IMU - Inertial measurement units
- Linear accelerator (선형가속도 측정) 와 Angular gyroscope (각속도 측정)를 포함하는 센서
- Spring-damper system의 원리를 이용하여 만든 시스템.
- 소형화를 위해 실제로 spring-damper 를 사용하는건 아님
- Optical system - 차량용 IMU
- MEMS - 칩기반 IMU (스마트폰 탑재)
- 소형화를 위해 실제로 spring-damper 를 사용하는건 아님
- 장점:
- 저렴한 consumer grade 제품
- 높은 sensitivity
- 높은 FPS (100Hz, 200Hz, 400Hz, 800Hz 제품 등 다양하게 있음)
- 단점:
- 시간이 지남에 따라 bias에 의한 drift가 생김
- 이러한 drift를 해소하기 위해 camera나 LiDAR를 함께 사용해서 drift 보정을 수행함.
- 높은 정확도 + 낮은 drift를 가진 tactical grade IMU는 엄청 비쌈
- 이런 IMU는 1시간에 1도 미만의 drift를 가짐.
- 하지만 가격이 억대임 ㄷㄷ
- 낮은 가격의 consumer grade는 에러가 높고 drift도 높음.
- 시간이 지남에 따라 bias에 의한 drift가 생김
Wheel encoder
- 바퀴의 회전량을 (RPM)과 이동량을 (바퀴의 회전량 * 바퀴의 둘레) 측정하는 센서
- brush, optical, magentic, inductive, capacitative… 만드는 방법은 여러가지임
- 장점:
- 센서가 쌈
- 단점:
- Drift에 약함
- 바퀴가 헛도는 경우 잘못된 센서 값이 생길 수 있음
- (바퀴의 회전량 x 바퀴의 둘레) 를 계산할때… 바퀴의 둘레가 사실 주행 중 자주 바뀜
- 마찰열로 인해 타이어 팽창
- 바람빠짐 등등
Exteroceptive 센서 종류
GNSS - Global navigation satellite system
- 비콘 기반의 위치추정 센서.
- 보통 1. 위치추정, 2. 루트 플래닝 작업에서 많이 사용함.
- 다수의 비콘에 대한 통신 시간에 대한 차이를 (i.e. time delays) 이용하여 비콘-로봇의 거리 값을 구하고, 삼각측량을 통해서 localization 수행.
- GPS (US), GLONASS (Russia), BeiDou (China), Gallileo (Europe) 등 각각의 나라/대륙에서 관리하는 시스템이 있음.
- 장점:
- 싸고 구하기 쉬움
- 단점:
- 부정확함 (10~20m 정도의 위치 오차)
- Camera나 LiDAR를 사용해서 drift 보정을 하기도 함.
- RTK-GPS, DGPS, AGPS 등을 이용하면 오차가 cm 단위로 내려오면서 훨씬 정확해지나, 가격도 굉장히 높아짐
- 고층빌딩 사이에서 multi-path 문제로 인해 오차가 생길 수 있음
- 실내/지하에서는 신호를 아예 받을 수 없음
- 이런 경우에는 카메라나 라이다를 사용한 map 기반 localization을 수행해야함.
- 부정확함 (10~20m 정도의 위치 오차)
LiDAR - Light detection and ranging sensors
- 적외선 레이저를 쏘아 반사되어 돌아오는 시간을 측량하여 거리를 잴 수 있는 센서
- 시간을 측량하는데에는 3가지 방식이 있음;
- Pulse를 이용한 Time-of-flight
- Phase shift
- Frequency modulation
- 시간을 측량하는데에는 3가지 방식이 있음;
- 3D point cloud 형태로 데이터를 받기 때문에, 주변환경의 3D 구조를 바로 알 수 있음.
- Point cloud 를 얻는데에 2가지 방식이 있음:
- Scanning LiDAR (Rolling shutter 방식과 유사함)
- Mechanical Scanning
- Macro-mechanical
- Micro-motio
- Prisms
- Solid State Scanning
- MEMS
- Electro-optical
- Optical phased array
- Mechanical Scanning
- Flash LiDAR (Global shutter 방식과 유사함)
- Scanning LiDAR (Rolling shutter 방식과 유사함)
- (LiDAR 공부하기 좋은 자료 #1, #2)
- Point cloud 를 얻는데에 2가지 방식이 있음:
- 장점:
- 센서가 추정한 3D 구조가 타 센서에 비해 훨씬 정확한 편임.
- 센서마다 다르지만, 자율주행용 LiDAR의 경우 ~100m 정도 거리까지 커버가 가능함.
- 특정 적외선 파장을 사용하기 때문에 빛의 파장 간섭등이 잘 일어나지 않음
- (동일한 device를 여러곳에서 사용하는 경우 제외)
- Reflectance (i.e. 쏜 레이저와 돌아온 레이저의 신호 세기를 비교하여 반사량을 계산 가능)
- reflectance를 이용하여 자율주행에서는 차선이나 횡단보도 패턴을 읽을 수도 있음
- 단점:
- 비쌈 (~몇천만원 단위)
- 물론 가격은 지속적으로 낮아지고 있지만, 아직 카메라, RADAR, Ultrasonic 센서에 비해 비쌈.
- Resolution의 한계
- LiDAR 이미징 센서는 아직 카메라와 비교하였을 때 센서 resolution이 많이 부족함.
- 날씨 영향을 받음
- 눈이 오거나 비가 올때 레이저가 눈/비에 막히기 때문에 작동하기 어려움
- Solid-state의 경우 360도 방향을 커버하기 위해 여러개의 센서가 필요함
- 비쌈 (~몇천만원 단위)
RADAR - Radio detection and ranging sensor
- 전파 (raidiowave)를 이용해서 주변 환경에 반사되어 돌아오는 전파를 측정하여 radial 거리를 재는 센서.
- 돌아오는 전파의 각도 + 돌아오는데 걸리는 시간을 이용해서 주변 환경에 대한 거리를 추정할 수 있음.
- Doppler 효과를 이용해서 물체의 속도를 측정 가능.
- 전파의 종류를 바꿈으로써 near-range와 long-range를 정할 수 있음.
- 장점:
- 날씨의 영향을 잘 받지 않음
- 타 센서에서 얻지 못하는 ‘속도’ 값을 얻을 수 있음.
- 단점:
- 작은 물체들은 detection에 실패할 수 있음
- LiDAR보다 resolution이 낮음
- 주변에 벽이나 바닥에 대해 multipath 문제가 있을 수 있음
Ultrasound
- RADAR와 작동방식이 거의 동일하나, 초음파를 이용함.
- 장점:
- 저렴함
- Near-range에서 잘 작동함
- 단점:
- Geometry를 잘 추정하는 편은 아님.
- 다중 센서를 이용해서 geometry 추정을 할 수는 있지만… 좋은 편은 아님.
- 노이즈가 많음
- Geometry를 잘 추정하는 편은 아님.
Camera
- 이미징 센서를 통해 빛의 정보를 받아드리고, RGB 패턴에 대해 debayering을 통해 이미지를 만듬.
- 필터를 사용하지 않으면 Monochrome 카메라, 또는 RGB가 아닌 다른 특정 파장으로 특수 카메라 (e.g. 열화상 카메라, 적외선 카메라)를 만들 수 있음.
- 장점:
- 사람이 보는 시야와 가장 유사한 데이터를 뽑음
- 저렴한 센서임에도 texture가 충만한 dense한 정보를 가짐.
- FPS가 높은 편 (30fps, 60fps)
- 렌즈를 바꿈으로써 시야각을 바꿀 수 있음
- 단점:
- Depth 정보가 없음
- Stereovision을 통해 Depth를 구현할 수 있지만, 계산량이 적지 않음
- 조명에 대한 영향을 많이 받음
- 어두운 곳에서는 좋은 데이터가 많이 안들어옴
- 너무 밝거나 빛반사가 카메라에 바로 오는 경우 작동하지 않을 수 있음.
- Depth 정보가 없음
Microphones
- 공기의 진동을 transducer를 통해 전기 신호로 변환시켜 소리를 읽는 센서.
- 여러개의 마이크 신호를 조합하여 소리의 근원에 대한 위치 및 방향을 계산할 수 있음.
- 장점:
- 유일하게 소리에 대한 정보를 사용하는 센서
- 가격이 저렴함
- 단점:
- Geometry가 부정확함
- 잡음이 심함
센서를 섞는 방법
센서 값을 섞는다는 것은, 다양한 센서 값들을 기반으로 ‘로봇과 주변 환경의 state를 추정’하는 작업이다.
이는 Maximum-a-Posteriori estimation과 유사하다.
MAP는 optimisation 방식으로 (e.g. least squares optimisation, bundle adjustment) 풀 수도 있고, filter 방식으로도 (e.g. Kalman filter, Particle filter) 풀 수 있다.
Maximum-a-posteriori estimation을 진행하는데에는 Tightly-coupled 방식과 Loosely-coupled 방식이 있다.
Tightly-coupled vs Loosely-coupled 방식에 대해 이야기가 많지만, 두 방식 중 어떤 방식이 항상 더 좋다라고 단정할 수 없다.
Tightly-coupled 방식과 loosely-coupled 방식의 차이는 다음 글에서 소개한다.