Localization 개요: 왜 자기 위치 추정이 먼저인가
자율주행 레이싱에서 가장 기초적이면서도 동시에 가장 까다로운 영역인 Localization(자기 위치 추정) 을 알아봅니다. 내 차가 트랙 위 어디에 있는지를 아는 것 — 이 하나가 뒤따르는 인지·계획·제어 전부의 출발점입니다.
왜 Localization이 그토록 중요한가
레이싱 스택의 거의 모든 모듈은 “내가 지금 트랙 위 어디에 있는가”를 암묵적으로 전제합니다. 그래서 localization이 흔들리면, 그 오차는 조용히 뒤쪽 모듈로 전부 전파됩니다.
시뮬레이션과 실제의 결정적 차이가 여기서 갈립니다.
- 시뮬레이션에서는 정답 위치(ground truth)를 알 수 있으니, planning·control 알고리즘을 위치 오차 없이 순수하게 테스트할 수 있습니다.
- 하지만 실제 차량에는 GT가 없습니다. localization 오차가 detection → prediction → planning → control 로 그대로 흘러 들어가므로, planning 알고리즘이 나빠서 실패한 건지, 위치가 틀려서 실패한 건지 구분조차 어려워집니다. 즉 위치 추정이 부실하면 상위 알고리즘의 성능을 평가할 수조차 없습니다.
얼마나 광범위하게 영향을 주나? 순수 reactive 주행(예: 벽만 보고 즉각 반응)이 아니라면, 위치를 소비하지 않는 모듈이 거의 없습니다.
- Detection — Grid Filter처럼 맵으로 트랙 안/밖을 가르려면 내 pose가 정확해야 합니다. pose가 틀리면 맵 전체가 어긋나, 실제 장애물을 벽으로 / 벽을 장애물로 오인합니다.
- 표현(좌표계) — Frenet 좌표의 $(s, d)$ 는 기준선 위 내 위치에서 계산됩니다. pose가 밀리면 “앞/뒤”, “안/밖” 판단이 통째로 밀립니다.
- Global / Local Planning — 미리 최적화한 racing line을 따라가려면 그 선 위 어디에 있는지를 알아야 하고, 회피·추월 같은 local 결정도 결국 내 위치를 기준으로 내려집니다.
정리하면 localization은 스택의 가장 아래를 받치는 층입니다. 위치가 몇 cm만 틀려도 그 오차가 파이프라인을 타고 증폭되므로, “다른 걸 잘 만들기 전에 위치부터 신뢰할 수 있어야 한다” 가 레이싱 스택의 제1원칙입니다.
Localization의 전제: Map과 SLAM
Localization을 하려면 사전 지식으로 Map 이 있어야 하고, 이 Map을 만들려면 먼저 SLAM 을 돌려야 합니다. SLAM은 Simultaneous Localization And Mapping 의 약자로, 로봇이 자기 위치를 추정하면서 동시에 주변 환경의 지도를 작성하는 기법입니다. Racing 맥락에서는 간단히 맵핑(mapping) 이라고 이해해도 됩니다.
이렇게 만든 Map은 형태(포맷)에 따라 이후 쓸 수 있는 Localization 알고리즘이 달라집니다.
Map 포맷과 그에 맞는 Localization
2D 레이싱에서 주로 쓰는 세 가지 Map 포맷과, 각각에 대응하는 Localization 방식입니다.
Occupancy Grid (.png + .yaml)
공간을 격자로 나눠 각 칸을 점유/비점유로 표현하는 가장 보편적인 맵 포맷입니다. 주로 Particle Filter 계열(AMCL 등) Localization과 함께 씁니다. → Particle Filter (Motion model), Particle Filter (Measurement model)
Submap (.pbstream)
SLAM 과정에서 만들어지는 부분 지도(submap)들을 누적·정합한 형태입니다. Cartographer 나 slam_toolbox 기반 Localization에서 활용합니다.
Point Cloud (.pcd)
LiDAR로 수집한 포인트들을 그대로 누적한 점군(point cloud) 데이터입니다. 주로 Scan Matching 계열(ICP, NDT 등) Localization과 함께 씁니다.
마무리
Localization은 레이싱 스택에서 가장 먼저 신뢰를 확보해야 하는 층입니다. 위치 오차는 detection·planning·control로 조용히 전파되어, 나머지를 아무리 잘 만들어도 성능을 끌어내리거나 평가조차 어렵게 만듭니다.
- 전제: Map이 있어야 하고, Map은 SLAM(맵핑)으로 만든다.
- 선택: Map 포맷(Occupancy Grid / Submap / Point Cloud)이 이후 Localization 알고리즘(Particle Filter / Cartographer / Scan Matching)을 결정한다.
이어지는 글에서는 각 방식 — 맵핑, Particle Filter, Cartographer, 2D ICP — 를 하나씩 자세히 다룹니다.



