자율주행 차량의 눈과 귀가 되는 카메라, 라이다, 레이더 센서의 특성과 이를 하나로 묶어주는 센서 융합의 중요성을 살펴보았습니다. 센서들이 주변 환경을 정밀하게 감지해 낸다면, 이제 그 정보를 바탕으로 "현재 지도를 그리는 동시에 내가 지도 상에서 정확히 어디에 위치해 있는지"를 실시간으로 파악해야 합니다. 자율주행 기술의 심장부이자 가장 까다로운 영역 중 하나인 SLAM(Simultaneous Localization and Mapping)의 세계로 들어갈 차례입니다.
나 역시 처음 자율주행 시뮬레이터에서 차량을 이동시키며 지도 작성 알고리즘을 구현했을 때, 차량이 조금만 회전해도 누적 오차 때문에 지도가 엉망으로 찌그러지거나 현재 위치를 영영 잃어버리는 현상을 마주하고 며칠 밤을 지새웠습니다. GPS가 닿지 않는 지하 주차장이나 고층 빌딩 숲속에서도 차량이 스스로 위치를 잡는 원리를 이해하는 것은 자율주행 개발자에게 피할 수 없는 관문입니다. 오늘 4편에서는 SLAM의 기본 개념과 위치 추정의 핵심 메커니즘을 짚어보겠습니다.
1. SLAM이란 무엇인가? (지도 작성과 위치 추정의 닭과 달걀 문제)
SLAM은 한국어로 직역하면 '동시적 위치 추정 및 지도 작성'입니다. 자율주행 차량이 사전에 정밀한 지도가 없는 낯선 공간에 처음 진입했을 때 반드시 수행해야 하는 작업입니다.
(1) 왜 동시에 수행해야 할까?
위치를 정확히 알기 위해서는 주변을 그려놓은 '정밀 지도'가 필요합니다.
반대로 정밀한 지도를 그리기 위해서는 차량이 '현재 지도 상의 어디에 있는지' 그 정확한 위치를 알아야 합니다.
이 두 가지 조건은 서로가 서로를 필요로 하는 일종의 닭과 달걀의 관계입니다. SLAM 알고리즘은 센서 데이터로부터 이동 거리를 계산하는 동시에 주변 지형물을 매칭하여 이 두 가지 문제를 동시에 풀어냅니다.
2. SLAM의 2가지 핵심 축: 오도메트리와 루프 폐쇄(Loop Closure)
SLAM 알고리즘이 방대한 공간을 돌아다니며 지도를 그릴 때, 핵심적으로 작동하는 두 가지 기술적 축이 있습니다.
(1) 오도메트리 (Odometry, 휠 앤코더 및 IMU)
차량이 이전 위치에서 얼마나 이동했는지를 바퀴 회전 수나 관성 센서(IMU)를 통해 연속적으로 추정하는 방식입니다. 하지만 바퀴가 미끄러지거나 센서에 미세한 오차가 발생하면, 이 오차가 시간이 지날수록 눈덩이처럼 불어나는 '누적 오차(Drift)'가 생깁니다. 오도메트리만 믿고 달리면 수십 분 뒤에는 지도 위에서 차량이 전혀 엉뚱한 곳에 위치하게 됩니다.
(2) 루프 폐쇄 (Loop Closure)
누적 오차로 인해 지도가 틀어지는 것을 바로잡아 주는 구원투수입니다. 차량이 한 바퀴를 돌아서 '과거에 이미 방문했던 장소'에 다시 진입했을 때, 센서 데이터(라이다 포인트 클라우드나 카메라 영상)를 통해 "아, 여기는 아까 지나왔던 그 장소구나!" 하고 알아채는 기능입니다. 이 순간 틀어졌던 전체 지도의 형태를 수학적으로 강하게 잡아당겨 오차를 말끔히 보정(Optimization)합니다.
3. 실무 자율주행에서 쓰이는 대표적인 SLAM 유형
LiDAR SLAM (LOAM, Cartographer 등): 라이다 센서의 정밀한 3차원 점군 데이터를 활용하여 주변 구조물을 뼈대로 지도를 만듭니다. 날씨나 조명 변화에 강해 자율주행 상용화 연구에 널리 쓰입니다.
Visual SLAM (ORB-SLAM 등): 카메라 영상 속에서 특징점(Feature Point)을 추출하여 연산합니다. 가격이 저렴하지만 어두운 환경이나 텍스처가 없는 단색 벽면에서는 특징점을 잡지 못해 실패하기 쉽다는 단점이 있습니다.
4. SLAM 구현 및 테스트 시 입문자가 자주 범하는 실수 2가지
IMU와 센서 간의 외부 캘리브레이션(Calibration) 오류: 카메라와 라이다, IMU 센서가 차량에 부착된 미세한 위치나 각도의 틀어짐(Extrinsic Parameter)을 정확히 측정하지 않고 알고리즘에 넣으면, 지도가 사방으로 찢어지거나 회전할 때 심각한 정합 에러가 발생합니다.
컴퓨팅 자원 한계를 고려하지 않은 고해상도 처리: 라이다가 뿜어내는 수백만 개의 점군 데이터를 여과 없이 그대로 SLAM 알고리즘에 넣었다가 연산 지연(Latency)이 발생하여 차량이 실시간으로 위치를 잃어버리는 현상을 자주 겪습니다. 적절한 다운샘플링(Downsampling) 처리가 필수적입니다.
핵심 요약
SLAM은 사전에 지도 없는 환경에서 차량이 스스로 위치를 추정하는 동시에 주변 지도를 그려나가는 핵심 기술입니다.
바퀴 회전과 관성 센서로 이동을 추정하는 오도메트리는 시간이 흐를수록 누적 오차가 발생합니다.
과거 방문했던 장소를 재인식하는 루프 폐쇄(Loop Closure) 기술이 뒷받침되어야 비로소 오차 없이 완벽한 지도가 완성됩니다.
0 댓글