주제 정보
- 프로젝트: cartographer-project/cartographer — Google이 개발·공개한 실시간 SLAM(Simultaneous Localization and Mapping) 시스템 공식 구현. 2D·3D LiDAR와 다양한 센서 구성에서 '지금 어디에 있는가'와 '주변이 어떻게 생겼는가'를 동시에 푸는 로컬라이제이션/매핑 엔진
- 소유자/라이선스: Google (cartographer-project) · Apache-2.0 · C++11 (Bazel 빌드, ROS 연동은 별도 cartographer_ros 패키지)
- Star/포크: 7,953⭐ · 2,344 forks (2026-09-03 기준, 생성 2016-08-02) — GitHub 토픽: localization · mapping · slam · self-driving · robotics
- 최근 커밋/릴리스: 마지막 커밋 2024-01-05(ROS 사용자 안내 추가 #1941) 이후 사실상 기능 동결 — 최신 릴리스 v2.0.0 (2021-03-11), v1.0.0 (2018-05-30). 성숙·완결 단계의 코드베이스
- 주요 기술: 서브맵(submap) 기반 SLAM · 브랜치-앤-바운드(BnB) 루프 클로저 · Ceres 스캔매칭 · SPA(자세 그래프) 최적화 · 2D/3D LiDAR·IMU·오도메트리 퓨전
- 논문: "Real-Time Loop Closure in 2D LIDAR SLAM" (W. Hess, D. Kohler, H. Rapp, D. Andor — Google, ICRA 2016) — OpenAlex 기준 1,954회 인용, 2D LiDAR SLAM 분야의 가장 많이 인용된 레퍼런스 중 하나
- 원문: https://github.com/cartographer-project/cartographer
핵심 내용
Cartographer는 자율주행 스택의 로컬라이제이션/매핑 계층을 실시간으로 해결하는 SLAM 시스템이다. 로컬 스캔매칭으로 빠르게 자세를 추정하면서도, 드리프트가 누적되기 전에 '이전에 지나온 곳'을 찾아 전역적으로 자세를 교정하는 루프 클로저를 실시간으로 수행하는 데 이 시스템의 정수가 담겨 있다.
- 서브맵 기반 2단 구조: 센서 데이터는 최근 프레임만 담은 '서브맵'에 Ceres 최적화 기반 스캔매칭으로 정합되어 저지연 자세를 출력하고, 서브맵이 충분히 쌓이면 서브맵 간의 상대 자세를 SPA(자세 그래프 최적화)로 전역 정합 — 국소 정확도와 전역 일관성을 분리해 둘 다 잡는 설계
- 브랜치-앤-바운드(BnB) 루프 클로저: 폐루프 후보를 전역 자세공간에서 찾는 문제를, 사전계산된 상한(precomputed grid)으로 가지치기하는 BnB 검색으로 풀어 검색 공간 전체를 훑지 않고도 실시간으로 최적 폐루프를 탐색 — ICRA 2016 논문의 핵심 이론적 기여이자 이후 LiDAR SLAM 계열이 계승한 표준 기법
- 2D/3D·멀티센서 지원: 2D LiDAR는 물론 3D LiDAR(3D 서브맵을 슬라이딩 윈도우로 고정 후 2D 문제로 투영해 처리), IMU·휠 오도메트리 등 다중 센서를 퓨전해 실내외 어디서든 동작
- SLAM-as-a-Service 구조: '센서 데이터를 넣으면 자세·맵 스트림이 나오는' 독립형 노드 설계 + ROS 래퍼(cartographer_ros)로 자율주행차·로봇·AGV 등 어떤 플랫폼에도 이식이 용이 — 출시 직후 ROS 생태계의 사실상 표준 SLAM으로 채택
- 실용적 완결성: v1.0(2018) → v2.0(2021)로 안정화를 마치고 2024년 이후 기능 동결 — '이제 고칠 것도 없이 쓰는' 산업용 성숙 코드로, 신규 기능보다 안정성·문서화 중심의 유지보수 단계
왜 유명한가 / 활용 가치
- Google이 만든 실시간 SLAM의 기준점: 2016년 10월 Google 오픈소스 블로그를 통해 공개된 이후, 동반 논문(ICRA 2016)이 OpenAlex 기준 1,954회 인용 — 2D LiDAR 루프 클로저를 다루는 거의 모든 후속 연구(카메라·레이다 SLAM 포함)가 이 BnB 기법을 출발점으로 삼았다
- 자율주행의 '어디에 있는가' 문제: 이 블로그가 다뤄온 인지(Object Detection — BEVFormer 08-17, OpenPCDet 09-01), 예측(VectorNet 09-02), 플래닝(08-31 서베이)과 달리, Cartographer는 차량의 정밀 자기위치 추정과 HD맵 생성이라는 전제 계층을 담당 — HD맵 제작 차량, GPS 음영 지하주차장, 정밀 측위가 필요한 L4 파일럿에서 실전 채택된 대표 오픈소스
- 2D LiDAR만으로도 동작하는 경제성: 고가 3D 센서 없이 저비용 2D LiDAR로 실시간 SLAM이 가능해 물류 AGV·배송로봇·실내 서비스 로봇 등 산업계 채택이 특히 넓음 — '유명한 연구'를 넘어 '돌아가는 제품의 심장'으로 쓰인 보기 드문 사례
- 학습 코드베이스로서의 가치: Ceres 스캔매칭·BnB 루프 클로저·SPA 최적화가 깔끔한 C++ 모듈로 분리되어 있어, SLAM/로컬라이제이션을 공부하거나 자체 측위 모듈을 만들려는 팀의 레퍼런스 구현으로 최적
시사점 및 결론
Cartographer가 보여주는 교훈은 '똑똑한 검색이 실시간성을 만든다'는 것이다. 루프 클로저를 전역 최적화로 푸는 아이디어 자체는 오래됐지만, BnB 가지치기로 후보 탐색을 실시간 영역에 끌어들인 것이 이 시스템을 7,900+⭐의 표준으로 만들었다. VLA·end-to-end 주행(09-02 VectorNet, 09-04 Alpamayo 1)이 화제인 지금도, 안전 운행의 전제는 '내가 지금 정확히 어디 있는가'라는 로컬라이제이션이며 Cartographer는 그 질문에 대한 가장 검증된 오픈소스 답이다. 2024년 이후 기능 동결은 약점이 아니라 완결성의 신호로 읽는 것이 맞다 — 클래식 SLAM의 수학과 공학이 모두 담긴, 연구·산업 공용의 레퍼런스로 남아 있다.
원문: https://github.com/cartographer-project/cartographer (논문: Hess et al., "Real-Time Loop Closure in 2D LIDAR SLAM", ICRA 2016 — DOI: 10.1109/ICRA.2016.7487258)