Contents — find the section you need

자율주행차 지붕에 달린 회전 센서나 로봇 청소기 위에 있는 작은 창 등은 대부분 LiDAR(Light Detection And Ranging) 센서입니다. LiDAR는 레이저 광을 사용하여 주변과의 거리를 직접 측정하는 센서입니다. LiDAR-SLAM은 LiDAR가 반환하는 포인트 클라우드 데이터(IMU와 같은 센서의 도움을 받을 수도 있음)만을 사용하여 자체 위치 추정 및 지도 작성을 동시에 수행하는 기술입니다. Visual-SLAM(참고: "Visual-SLAM Primer")이 카메라의 2D 이미지에서 간접적으로 3D 구조를 복원하려고 시도하는 반면, LiDAR-SLAM은 직접적인 3D 거리 정보를 기반으로 시작한다는 것이 핵심적인 차이점입니다. 이 글에서는 LiDAR가 실제로 측정하는 원리부터 시작하여, 포인트 클라우드 정렬의 두 가지 핵심 알고리즘인 ICP와 NDT, 특징 기반 설계 방식인 LOAM, 루프 클로저(Loop Closure)와 그래프 SLAM, 그리고 랜드마크 알고리즘의 계보와 실제 적용 시 최적의 선택 방법에 대해 살펴봅니다. 최신 개발 동향은 "LiDAR-SLAM 기술 동향"에서 확인할 수 있습니다.

Velodyne Alpha Prime, Ultra Puck 및 Puck LiDAR 센서 제품군Velodyne LiDAR 제품군
전시된 Livox Mid-40, Horizon 및 Tele-15 LiDAR 센서Livox LiDAR 예시

이미지: Velodyne LiDAR 센서 제품군 (APJarvis, CC BY-SA 4.0) / Livox Mid-40, Horizon 및 Tele-15 (Dllu, CC BY-SA 4.0), 위키미디어 공용. 본문에 언급된 제품군은 대표적인 제품군이며, 반드시 최신 모델을 의미하는 것은 아닙니다.

0. 이 문서의 내용

  • LiDAR가 실제로 측정하는 것과 거리를 "직접" 측정하는 이유
  • 포인트 클라우드 환경에서 SLAM의 근본적인 문제점
  • 두 가지 핵심 스캔 매칭 알고리즘인 ICP(Iterative Closest Point)와 NDT(Normal Distributions Transform)의 작동 방식 및 차이점
  • LiDAR 오도메트리의 두 가지 모드, 스캔-투-스캔과 스캔-투-맵의 차이점
  • LOAM이 특징점(모서리와 평면)을 추출하는 이유와 그 설계 배경
  • 루프 클로저와 포즈 그래프 최적화의 상호 작용
  • 랜드마크 알고리즘(ICP/NDT/LOAM/LeGO-LOAM/A-LOAM/Cartographer/LIO-SAM/FAST-LIO2)의 차이점 및 선택 방법

1. LiDAR-SLAM이란 무엇인가?

한 문장으로 요약하면, LiDAR-SLAM은 레이저 광의 비행 시간(또는 위상차)으로부터 얻은 고정밀 거리 측정 데이터(포인트 클라우드)를 사용하는 기술입니다. 연속적인 스캔들을 서로 정합(스캔 매칭)하여 센서 자체의 궤적과 주변 환경의 3D 지도를 동시에 추정합니다.

입력은 LiDAR가 일정한 간격(스캔당 수천 개에서 수십만 개에 이르는 포인트)으로 출력하는 포인트 클라우드이며, 출력은 Visual-SLAM과 마찬가지로 두 가지입니다. 하나는 센서의 6자유도 자세(위치 3개, 방향 3개)이고, 다른 하나는 주변 환경의 3D 포인트 클라우드 지도입니다. LiDAR-SLAM은 주변 차량, 보행자, 도로 시설물과의 정확한 거리 관계를 유지하면서 자신의 위치를 추정하는 자율주행차, 창고 선반 사이를 정확하게 이동하는 자율 이동 로봇 등에 적용될 수 있습니다. 드론이 터널이나 건물 내부와 같은 기하학적으로 복잡한 공간을 비행할 때, LiDAR-SLAM은 이러한 모든 경우에 핵심적인 역할을 합니다.

2. LiDAR는 실제로 무엇을 측정할까요?

LiDAR 거리 측정 원리는 크게 두 가지로 나뉩니다. ToF(Time of Flight, 비행 시간) 방식에서는 센서가 레이저 펄스를 발사하고 목표물에서 반사되어 돌아오는 데 걸리는 시간(T)을 측정한 다음, 빛의 속도(c)를 이용하여 거리(D)를 계산합니다.

D = \frac{c \, T}{2}

빛은 왕복하므로 측정된 시간(T)을 절반으로 나누어 편도 전파 시간을 구해야 합니다. 다른 방식인 위상차(FMCW/AMCW)는 연속적으로 변조된 레이저 빔을 발사하고 송신 신호와 반사 신호의 위상차를 이용하여 거리를 계산합니다. 어떤 방식이든, LiDAR는 단순히 "무언가가 있다"는 것을 알려주는 것이 아니라, 단 한 번의 관측으로 그 물체까지의 실제 절대 거리를 측정할 수 있습니다. 이는 카메라에는 없는 기능입니다. 4절에서 살펴보겠지만, 단일 단안 카메라 이미지로는 실제 크기를 정확하게 파악할 수 없지만, LiDAR 포인트 클라우드는 처음부터 미터법 단위의 크기를 가지고 있습니다.

LiDAR 하드웨어에는 크게 두 가지 종류가 있습니다. 기계식 회전 LiDAR는 여러 개의 레이저 송수신 소자를 쌓아 올려 회전시켜 360도 전방위 포인트 클라우드를 생성합니다. Velodyne과 Ouster가 대표적인 제조사입니다. 솔리드 스테이트 LiDAR는 회전하는 기계 부품이 없고, MEMS 미러나 광학 위상 배열을 사용하여 제한된 시야각을 스캔함으로써 크기를 줄이고 비용을 절감합니다. Livox가 대표적인 예입니다. 솔리드 스테이트 장치는 좁은 시야각을 감수하는 대신, 많은 제품에서 비반복적인 스캔 패턴(매번 약간씩 다른 경로를 따라 동일한 지점을 스캔)을 제공합니다. 이는 포인트 클라우드가 누적될수록 밀도가 높아진다는 것을 의미합니다.

또한 LiDAR 포인트 클라우드는 카메라 이미지에는 없는 구조를 가지고 있습니다. 회전하는 LiDAR는 수평으로 회전하면서 수직으로 쌓인 여러 개의 레이저(예: 16, 32 또는 128개 레이어)를 발사하여 수평으로는 밀도가 높지만 수직으로는 희소하고 층을 이루는 비등방성 분포의 포인트 클라우드를 생성합니다. 이러한 구조는 LOAM의 특징 추출과 ICP의 법선 추정 설계에 직접적인 영향을 미치며, 이에 대해서는 아래에서 자세히 살펴보겠습니다.

3. SLAM의 근본적인 문제: "현재 포인트 클라우드는 지도상의 어디에 위치해야 하는가?"

Visual-SLAM이 특징점들을 매칭하여 "현재 이미지가 과거 이미지 및 지도 내에서 어디에 대응하는지"를 찾는 것처럼, LiDAR-SLAM은 포인트 클라우드들을 서로 정렬하여 "현재 스캔(포인트 클라우드)이 과거 스캔 및 지도 내에서 어디에 대응하는지"를 찾습니다. 센서 종류와 관계없이 근본적인 문제는 동일합니다. 단 하나의 관측값만으로는 절대 위치를 결정할 수 없으며, 과거 관측값(지도)과의 대응 관계를 단서로 활용하여 현재 위치를 지속적으로 추정하는 것이 유일한 방법입니다.

차이점은 그 대응 관계의 내용입니다. Visual-SLAM은 이미지에서 "주변 특징점"을 감지하고, 그 주변의 모습을 수치적으로 인코딩하여 디스크립터로 만든 다음, 디스크립터의 유사성을 기반으로 대응점을 찾습니다. 반면 LiDAR 포인트 클라우드는 밝기나 색상과 같은 "외관" 정보가 거의 없습니다(반사율 정보는 있지만 이미지 디스크립터보다 식별력이 훨씬 떨어집니다). 결과적으로, 대부분의 경우 포인트 클라우드 매칭은 순전히 공간적 근접성, 즉 "기하학적으로 가장 가까운 점"을 찾는 것에 의해 결정됩니다. 두 포인트 클라우드 사이의 강체 변환(회전 R, 이동 \mathbf{t})을 찾는 전체 프로세스를 스캔 매칭이라고 하며, 이는 LiDAR-SLAM의 핵심입니다.

이 섹션의 핵심은 간단합니다. Visual-SLAM이 "특징 매칭 + 에피폴라 기하학"을 사용하는 반면, LiDAR-SLAM은 "스캔 매칭"으로 대체합니다. 다음 두 섹션에서는 스캔 매칭을 구현하는 두 가지 핵심 알고리즘인 ICP와 NDT에 대해 다룹니다.

4. ICP 이해

ICP(Iterative Closest Point)는 포인트 클라우드 등록을 위한 고전적인 알고리즘으로, 1992년 Besl & McKay가 IEEE Transactions on Pattern Analysis and Machine Intelligence에 발표했으며 오늘날에도 널리 사용되고 있습니다. 이름에서 알 수 있듯이, 이 알고리즘은 간단한 아이디어에 기반합니다. 즉, "가장 가까운 점"을 대응점으로 간주하고, 이를 반복적으로 정제하는 것입니다.

이 알고리즘은 세 단계로 구성됩니다.

  1. 대응점 탐색: 이동 대상 포인트 클라우드(소스)의 각 점 p_i에 대해, 고정된 포인트 클라우드(타겟)에서 가장 가까운 점 q_i을 찾습니다. 일반적으로 KD-트리와 같은 공간 탐색 구조를 사용합니다.

  2. 변환 추정: 이러한 대응점 집합 \{(p_i, q_i)\}을 이용하여, 대응점 간 거리의 합을 최소화하는 회전 R과 이동 \mathbf{t}을 찾습니다. 가장 간단한 버전인 점 간 오차는 다음과 같이 정의됩니다.

E_{\mathrm{p2p}}(R, \mathbf{t}) = \sum_i \left\| \left(R p_i + \mathbf{t}\right) - q_i \right\|^2
  1. 적용 및 반복: 결과로 얻은 R 및 \mathbf{t}을 전체 소스 포인트 클라우드에 적용한 다음 1단계로 돌아가 다시 대응점을 검색합니다. 이 대응점 검색 → 변환 추정 → 적용 과정은 오차가 충분히 작아질 때까지(또는 더 이상 감소하지 않을 때까지) 반복됩니다.

점 간 오차는 직관적이지만, 두 개의 넓고 평평한 평면(예: 벽)을 정렬할 때는 오차 관점에서 평면상의 정확한 위치에서 점들이 서로 대응하는지는 거의 중요하지 않습니다(수직 오프셋이 작으면 평면을 따라 약간 이동해도 오차는 거의 변하지 않습니다). 따라서 수렴 속도가 느린 경향이 있습니다. 점-평면 오류는 이 문제를 해결합니다. 해당 점 q_i 주변의 로컬 형상으로부터 법선 벡터 n_i를 추정하고, 법선 방향의 불일치(점-평면 거리)만 최소화합니다.

E_{\mathrm{p2l}}(R, \mathbf{t}) = \sum_i \left( \left(R p_i + \mathbf{t} - q_i\right) \cdot n_i \right)^2

점-평면 오류는 평면을 따라 발생하는 오프셋을 허용하면서 평면에 수직인 방향의 불일치에만 엄격하게 페널티를 부여합니다. 특히 건물 내부와 같이 평면이 많은 환경에서 점-점 오류보다 더 빠르고 안정적으로 수렴하는 것으로 잘 알려져 있습니다. 하지만 2절에서 언급했듯이 회전하는 LiDAR의 포인트 클라우드는 수직적으로 희소한 층상 구조를 가지고 있으므로, 법선을 단순하게 추정하면 층상 구조에 의해 노이즈가 섞인 법선이 생성될 수 있습니다. 따라서 법선 추정 자체에 주의가 필요합니다.

ICP에는 두 가지 주요 약점이 있습니다. 첫째, 대응점 검색은 순전히 "최근접 기하학적 이웃"에 의존하기 때문에 초기 오프셋이 크면 잘못된 대응점이 생성되고 지역 최소값으로 수렴하게 됩니다. 따라서 좋은 초기 추측값이 필수적입니다. 둘째, 프레임당 수만 개의 점으로 이루어진 포인트 클라우드에서 최근접 이웃 검색을 반복적으로 수행하는 것은 계산 비용이 매우 높으며, 클라우드 크기가 커질수록 계산량도 증가합니다. 다음에 설명할 NDT는 대응점 검색을 완전히 우회하는 다른 접근 방식을 취합니다.

5. NDT 이해

NDT(정규 분포 변환)는 ICP와는 근본적으로 다른 접근 방식을 사용하는 스캔 매칭 알고리즘으로, 2003년 IEEE/RSJ 국제 지능형 로봇 및 시스템 학회(IROS)에서 Biber와 Straßer가 발표했습니다. 원래는 2D 레이저 스캐너용으로 제안되었지만, 나중에 3D 포인트 클라우드도 처리할 수 있도록 확장되었습니다.

NDT의 핵심 아이디어는 포인트 클라우드를 개별 점들의 집합이 아니라 정규 격자 상의 각 복셀에 정의된 확률 분포로 표현하는 것입니다. 각 복셀 내의 점 분포는 평균이 \mu이고 공분산 행렬이 \Sigma인 가우시안(정규 분포)으로 근사화됩니다.

p(\mathbf{x}) \approx \frac{1}{\sqrt{(2\pi)^3 |\Sigma|}} \exp\left(-\frac{(\mathbf{x}-\mu)^{\top} \Sigma^{-1} (\mathbf{x}-\mu)}{2}\right)

이처럼 전체 대상 점 구름을 각 복셀에 대한 가우시안 분포 집합으로 표현함으로써, 즉 조각별로 연속적이고 미분 가능한 확률 밀도 함수로 표현함으로써, 소스 점 구름을 정렬하기 위해 "점 대 점 대응점 찾기"를 더 이상 수행할 필요가 없습니다. 대신, 각 소스 점 \mathbf{x}_i에 변환 T(회전 및 이동)을 적용하여 \mathbf{x}_i' = T(\mathbf{x}_i)을 얻을 때, 변환된 점이 해당 복셀의 가우시안 분포 하에서 얼마나 "타당한지"를 점수 함수로 계산하고, 이 점수를 최대화하는 T 값을 찾습니다.

\mathrm{score}(T) = \sum_i \exp\left(-\frac{(\mathbf{x}_i' - \mu_k)^{\top} \Sigma_k^{-1} (\mathbf{x}_i' - \mu_k)}{2}\right)

이 최적화는 뉴턴 방법과 같은 기울기 기반 방법을 사용하여 해결됩니다. ICP와 달리 "대응 검색"과 "변환 추정"을 별도의 단계로 번갈아 수행할 필요 없이, 미리 계산된 가우시안 매개변수에 대한 기울기를 평가하기만 하면 되므로 최근접 이웃 검색에 드는 비용을 완전히 피할 수 있습니다. 또한 개별 점의 노이즈가 복셀당 평균과 공분산에 흡수되기 때문에 결과는 노이즈에 강건합니다.

하지만 NDT에는 복셀 크기 선택이라는 절충점이 있습니다. 복셀 크기가 클수록 계산은 가벼워지지만 미세한 모양 차이가 평균화되어 정렬 정확도가 떨어집니다. 복셀 크기가 작을수록 모양 해상도는 높아지지만 복셀당 점의 수가 줄어들어 가우시안 추정 자체가 불안정해지고, 복셀 수가 증가함에 따라 계산 비용도 증가합니다. 사용자가 정확하게 설정해야 하는 이 조정 가능한 매개변수 때문에 NDT는 실제로 사용하기가 까다롭습니다.

6. LiDAR 오도메트리 (스캔 간 / 스캔-맵)

연속 프레임 간의 상대적인 움직임을 찾기 위해 ICP 또는 NDT를 사용하고, 이러한 추정치를 시간에 따라 누적하는 과정을 LiDAR 오도메트리라고 합니다. Visual-SLAM의 비주얼 오도메트리와 마찬가지로, 전체 맵과의 일치(루프 클로저) 메커니즘이 없으면 시간이 지남에 따라 드리프트가 누적되며 이를 피할 수 없습니다.

LiDAR 오도메트리는 비교 대상에 따라 두 가지 유형으로 나뉩니다. 스캔 간 방식은 각 스캔을 바로 이전 스캔과만 비교합니다. 계산 비용은 저렴하지만, 각 추정 오류가 다음 스캔의 초기 추정값에 그대로 반영되기 때문에 드리프트가 누적되는 경향이 있습니다. 스캔-맵 방식은 현재 스캔을 이전 스캔 하나가 아닌 전체 누적된 로컬 맵과 비교합니다. 더 많은 관측값을 활용하면 노이즈에 덜 민감하고 일반적으로 스캔-투-스캔 방식보다 정확도가 높아지지만, 기준점 클라우드 크기가 커지기 때문에 계산량이 증가합니다.

대부분의 실제 LiDAR-SLAM 구현에서는 이 두 가지 방식을 결합합니다. 먼저 스캔-투-스캔, IMU 예측 또는 5절에서 설명한 대략적인 비파괴 검사 기반 정렬을 통해 빠르고 대략적인 초기 추정값을 얻고, 그 후 스캔-투-맵 정합을 통해 이 초기 추정값을 정밀하게 보정합니다. 아래 파이프라인은 이러한 2단계 방식을 기반으로 하는 일반적인 LiDAR-SLAM 처리 흐름을 보여줍니다.

Diagram 1 · Use the button to switch views
LiDAR 및 IMU에서 디스큐, 로컬 등록 및 빠른 상태 업데이트를 거치는 스캔별 경로와 재방문 검증, 그래프 최적화 및 보정을 위한 느린 경로
Diagram 2 · Use the button to switch views

그림 1 — 스캔별 고속 경로는 디스큐에서 로컬 등록을 거쳐 포즈 및 로컬 맵 업데이트까지 진행되며, 다음 초기 추측값과 참조 맵을 제공합니다. 별도의 저속 경로는 키프레임 기록에서 재방문 여부를 확인하고, 루프 제약 조건을 허용하며, 그래프 최적화를 사용하여 전역 궤적과 맵을 수정합니다.

그림 1에 표시된 디스큐 단계(스캔 중 왜곡 수정) 이 다이어그램은 LiDAR에 특화되어 있습니다. 회전하는 LiDAR의 단일 스캔은 즉시 캡처되지 않고 수십에서 100밀리초 이상 소요됩니다. 센서 자체가 이 시간 동안 움직이면 동일한 스캔에서 이전에 캡처된 점과 나중에 캡처된 점이 서로 다른 시간과 위치에서 관측된 데이터를 나타내게 되어 하나의 스캔 내에 혼합됩니다(모션 왜곡). 디스큐(Deskew)는 IMU(또는 이전 속도 추정치)를 사용하여 스캔 중 발생하는 이러한 움직임을 보정하고, 마치 단일 순간에 캡처된 것처럼 포인트 클라우드를 재구성합니다. 이 보정은 VIO/LIO에서 다루는 IMU 융합과 밀접하게 관련되어 있습니다(참고: "VIO/LIO 입문").

7. LOAM 이해

Zhang과 Singh이 2014년 Robotics: Science and Systems(RSS)에 발표한 LOAM(Lidar Odometry and Mapping in Real-time)은 많은 LiDAR-SLAM 설계의 기반이 됩니다. 오늘날까지 다양한 방식으로 구현되고 있습니다. LOAM의 핵심 혁신은 점군에 있는 모든 점을 사용하는 대신 기하학적으로 구별되는 점만 추출하는 것입니다.

LOAM은 각 점 주변의 평활도(곡률)를 평가하고, 주변보다 곡률이 높은 점을 모서리 특징(날카로운 모서리 또는 물체의 윤곽)으로, 곡률이 낮은 점을 평면 특징(벽이나 바닥과 같이 매끄럽게 이어지는 표면의 일부)으로 추출합니다. 수만 개의 점으로 이루어진 전체 스캔을 정합에 사용하는 대신, 이러한 특징으로만 범위를 좁힘으로써 스캔 정합의 계산 비용을 획기적으로 줄일 수 있습니다.

특징이 추출되면 오류 공식은 4절의 ICP 개념과 유사하지만, 정합 대상이 되는 기하학적 요소는 "점"이 아닌 "선" 또는 "평면"입니다. 모서리 특징 p_i은 두 대응점 p_a와 p_b이 이루는 선까지의 거리를 최소화하여 정합됩니다. 이전 스캔(또는 지도).

d_{\varepsilon} = \frac{\left\| (p_i - p_a) \times (p_i - p_b) \right\|}{\left\| p_a - p_b \right\|}

평면 특징은 세 개의 대응점이 이루는 평면까지의 거리를 최소화하여 매칭됩니다(섹션 4의 점-평면 오차와 동일한 형태). 이러한 거리를 합산하고 회전 및 변환에 대해 최소화하면 프레임 간의 상대적인 움직임을 얻을 수 있습니다.

LOAM의 또 다른 핵심 설계 특징은 고주파 LiDAR 오도메트리와 저주파 LiDAR 매핑의 2단계 구조입니다. LiDAR 오도메트리는 고주파(모든 스캔)로 바로 직전 스캔을 대상으로 특징 기반 스캔 간 매칭을 수행하여 대략적이지만 빠른 자세 추정치를 생성합니다. LiDAR 매핑은 이 대략적인 추정치를 초기 추측값으로 사용하여 누적된 전체 지도를 대상으로 LiDAR 오도메트리보다 낮은 주파수로 스캔-맵 매칭을 수행하여 더 정확한 자세와 더 정밀한 지도를 생성합니다. 두 프로세스를 서로 다른 주파수로 병렬 실행하고 LiDAR 매핑의 결과가 최종적으로 LiDAR 오도메트리의 추정치를 보정함으로써 고주파 출력과 저주파 출력을 모두 얻을 수 있습니다. 높은 정확도를 한 번에 제공합니다. 이러한 "고주파수 대략적인 추정 + 저주파수 정밀 보정" 설계 철학은 9절에서 다루는 많은 후속 LiDAR-SLAM 및 LIO 구현에 계승되었습니다.

8. 루프 클로저 및 그래프 SLAM

LiDAR 오도메트리는 Visual-SLAM의 비주얼 오도메트리와 마찬가지로 시간이 지남에 따라 드리프트가 누적되며, 로봇이 시작 지점으로 돌아온 후에도 추정된 궤적은 이를 인지하지 못합니다. 이러한 누적된 오류를 수정하는 메커니즘이 루프 클로저입니다.

LiDAR 환경에서 루프 클로저는 크게 두 단계로 나뉩니다. 첫 번째는 위치 인식입니다. 현재 포인트 클라우드가 이전에 방문한 위치의 포인트 클라우드와 유사한지 판단하는 것입니다. 포인트 클라우드는 이미지처럼 밝기 정보를 담고 있지 않기 때문에, 이 단계에서는 포인트 클라우드 자체의 모양 분포를 디스크립터로 인코딩하는 접근 방식을 사용합니다. 예를 들어, 스캔을 부채꼴 모양의 셀로 나누고 각 셀의 최대 높이를 디스크립터로 인코딩하는 Scan Context와 같은 방법이 있습니다. 첫 번째 단계는 전체 포인트 클라우드의 기하학적 특징을 요약하는 방법입니다. 두 번째는 기하학적 검증입니다. 위치 인식에서 후보로 제시된 스캔 쌍에 대해 ICP 또는 NDT를 사용하여 스캔 매칭을 시도하고, 두 결과가 충분히 일치하는지 확인합니다. 이 두 단계를 모두 통과한 후에야 "현재 위치"와 "이전에 해당 위치를 방문했을 때의 위치"를 연결하는 제약 조건이 충분히 신뢰할 수 있게 채택됩니다.

누적된 포즈를 수정하고 일관된 전체로 매핑하기 위해 이러한 루프 폐쇄 제약 조건을 사용하는 것이 포즈 그래프 최적화 또는 더 일반적으로 그래프 SLAM 프레임워크의 역할입니다. 이 프레임워크는 각 시점의 센서 포즈를 노드로, 프레임 간(또는 루프로 연결된 두 시점 간) 상대적 움직임에 대한 제약 조건을 에지로 하는 그래프를 구축한 다음, 비선형 최적화를 통해 노드(포즈)를 조정하여 모든 에지 제약 조건이 최대한 상호 일관성을 갖도록 합니다. 루프 폐쇄로 인해 새롭게 추가된 에지는 지금까지 한 방향으로만 전파되었던 드리프트를 루프를 구성하는 전체 경로에 걸쳐 재분배하는 역할을 합니다. 이러한 최적화는 다음과 같습니다. Visual-SLAM(참고: Visual-SLAM Primer 10절)은 LiDAR-SLAM 구현에서도 g2o, GTSAM, Ceres Solver와 같은 라이브러리를 흔히 사용합니다.

9. 랜드마크 알고리즘

LiDAR-SLAM의 역사는 포인트 클라우드 등록 방식과 설계가 얼마나 구체적인 특징으로 좁혀지는지를 중심으로 살펴볼 수 있습니다.

ICP(Besl & McKay, 1992)는 4절에서 다룬 바와 같이 포인트 클라우드 등록을 위한 고전적이고 여전히 널리 사용되는 기초 알고리즘입니다. 실시간 SLAM에 단독으로 사용되는 경우는 드물지만, 이 알고리즘에서 파생된 대응 기반 최소화 방식은 이후 개발된 거의 모든 알고리즘에 적용되었습니다.

NDT(Biber & Straßer, 2003)는 5절에서 다룬 바와 같이, 가우시안 분포 기반 스캔 매칭은 대응점 검색을 피하며, ICP와 함께 2D 실내 로봇 SLAM부터 3D 자율 주행 애플리케이션에 이르기까지 널리 사용되는 또 다른 기본 선택 방식입니다.

LOAM(Zhang & Singh, 2014)은 7절에서 다룬 바와 같이, 에지/평면 특징 추출과 2단계 고주파 오도메트리 + 저주파 매핑 설계를 도입한 방법으로, 오늘날까지 많은 LiDAR-SLAM 및 LIO 구현의 기반이 되고 있습니다.

LeGO-LOAM(Lightweight and Ground-Optimized Lidar Odometry and Mapping, Shan & Englot, 2018년 IEEE/RSJ 국제 지능형 로봇 및 시스템 학회(IROS) 발표)은 지상 차량에 특화된 LOAM의 확장 버전입니다. 먼저 포인트 클라우드를 지면 포인트와 비지면 포인트로 분리하고, 지면 포인트를 사용하여 롤, 피치, 고도를 추정하고, 비지면 포인트를 사용하여 나머지 자유도(수평 위치 및 (yaw)를 포함하여, 제한된 연산 능력을 가진 임베디드 시스템에서도 실시간 작동이 가능한 경량 설계를 구현합니다.

A-LOAM(Advanced LOAM)은 Ceres Solver 기반 비선형 최적화를 기반으로 LOAM의 아이디어를 간소화한 오픈 소스 재구현 버전으로, HKUST 항공 로봇 그룹과 같은 단체에서 발표했습니다. 기존 LOAM의 세밀한 엔지니어링 튜닝 부분을 일부 생략하고 코드 가독성을 높였으며, LOAM 계열 알고리즘을 학습하고 실험하는 데 접근하기 쉬운 구현으로 자주 인용됩니다.

Cartographer(Hess, Kohler, Rapp, Andor, 2016년 IEEE 국제 로봇 및 자동화 학회(ICRA) 발표, Google)는 서브맵(여러 스캔의 묶음) 단위로 Ceres Solver 기반 로컬 스캔 매칭을 수행하고, 후보 공간에 대한 분할 정복 분기 한정 탐색을 통해 빠른 루프 폐쇄 감지를 결합합니다. 2D 및 3D 맵을 모두 지원합니다. 3D 모델링은 ROS용 오픈 소스 구현체가 널리 보급됨에 따라 실내 매핑 분야에서 광범위하게 채택되었습니다.

LIO-SAM(Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping, Shan, Englot, Meyers, Wang, Ratti, Rus, 2020년 IROS에 발표)은 IMU 사전 적분 계수, LiDAR 스캔 매칭 오도메트리 계수, GPS 계수, 루프 클로저 계수를 공유 팩터 그래프 내에서 공동으로 최적화하는 밀착 결합 LiDAR-관성 오도메트리(LIO) 방법입니다(자세한 내용은 "VIO/LIO Primer" 참조).

FAST-LIO2는 홍콩대학교 MARS 연구실의 Xu, Zhang 연구진이 발표한 밀착 결합 반복 칼만 필터를 기반으로 하는 고속 LIO입니다. 포인트 클라우드를 순차적으로 직접 관리함으로써 최근접 이웃 탐색 구조(증분 k-d 트리, iKD-Tree)를 사용하는 이 방법은 명시적인 특징 추출 단계 없이 포인트 클라우드를 지도에 직접 등록하며, 제한된 연산 능력을 가진 소형 플랫폼에서도 실시간 작동을 우선시하도록 설계되었습니다. 2026년 현재 개발 동향은 "LiDAR-SLAM 기술 동향"에서 확인할 수 있습니다.

10. 방법 비교

방법 원리 정확도 연산 비용 견고성 구현 난이도
ICP 최근접 이웃 탐색 + 반복적 강체 변환 최소화 좋은 초기 추측값이 주어지면 높은 정확도를 보이지만, 그렇지 않으면 지역 최소값에 빠짐 중간~높음(반복적 최근접 이웃 탐색 비용) 기하학적 특징이 없는 환경이나 큰 초기 오프셋에서는 정확도가 낮음 낮음 (개념적으로 단순하고, 기존 구현이 많음)
NDT 복셀별 가우시안 분포에 대한 적합도 최대화 복셀 크기에 따라 달라짐; 노이즈에 비교적 강건함 중간 (대응 검색은 없지만 기울기 계산 포함) 노이즈에 강건하지만 복셀 크기 조정 필요 중간 (조정에 어느 정도 숙련도 필요)
LOAM 에지/평면 특징 추출 + 2단계 오도메트리/매핑 특징이 풍부한 환경에서 높은 정확도 중간 (특징 선택 덕분에 전체 포인트 클라우드를 사용하는 것보다 가벼움) 특징이 부족한 환경(터널 등)에서 약함 중간~높음 (복잡한 매개변수 및 설계)
LeGO-LOAM 지면점 분리 + LOAM 방식의 2단계 최적화 지상 차량에 대해 높은 정확도; 항공 플랫폼에서는 가정이 무너짐 중간 (LOAM보다 가벼움) 평평한 지면의 존재에 크게 의존함 중간
A-LOAM Ceres Solver를 사용한 LOAM의 간소화된 재구현 대략 LOAM과 유사 (구현 방식에 따라 다름) 중간 LOAM의 약점을 그대로 계승 낮음-중간 (학습을 위한 참조 용이)
Cartographer 서브맵별 스캔 매칭 + 분기 한정 루프 클로저 실내(2D)에서 높은 정확도; 전역 일관성 우수 중간-높음 (서브맵 관리 및 분기 한정 검색 비용) 루프가 많은 실내 환경에서 우수 중간 (ROS 생태계 내에서 쉽게 도입 가능)
LIO-SAM IMU 사전 통합의 팩터 그래프 최적화 + LiDAR 오도메트리 + GPS + 루프 클로저 IMU 융합을 통한 높은 정확도; GPS를 통한 전역 일관성 향상 높음 (팩터 그래프 최적화 비용) IMU를 통해 기하학적 퇴화 방지 중간-높음 (특정 센서 가정, 예: 9축 IMU)
FAST-LIO2 반복 칼만 필터 + iKD 트리를 통한 직접 등록 고주파수에서 높은 정확도 (특히 고체 상태에서 두드러짐) LiDAR) 낮음-중간 (직접 방식은 특징점 추출 비용을 절감함) 퇴화 조건에서 IMU에 의존하며, 극도로 낮은 기하학적 조건에서는 성능이 떨어짐 중간 (구현은 공개되어 있지만 내부 튜닝에는 전문 지식이 필요함)

전반적으로 ICP와 NDT는 "기초적인 등록 알고리즘", LOAM 계열(LOAM/LeGO-LOAM/A-LOAM)은 "특징점 설계를 통한 효율성 향상", Cartographer는 "효율적인 전역 일관성 및 루프 폐쇄", LIO-SAM/FAST-LIO2는 "긴밀한 IMU 연동을 통한 견고성 향상"으로 이해하는 것이 도움이 됩니다. 각각은 이전 기술을 기반으로 구축된 뚜렷한 개선 축입니다.

11. LiDAR-SLAM의 한계

LiDAR는 레이저 광을 능동적으로 방출하여 거리를 측정하기 때문에 Visual-SLAM이 어려움을 겪는 환경인 어둠과 역광에서도 잘 작동합니다. 하지만 LiDAR-SLAM 자체에도 약점이 있습니다.

  • 기하학적 - 퇴화 현상**: 포인트 클라우드의 형태가 특정 방향을 따라 거의 변하지 않는 환경(예: 긴 터널 또는 넓고 평평한 주차장)에서는 스캔 매칭이 해당 방향을 따라 이동 또는 회전을 고유하게 판별할 수 없습니다. 이는 ICP/NDT 최적화가 해당 방향을 따라 어떤 값에 대해서도 오류가 거의 변하지 않는 "평탄한 골짜기"에 도달하기 때문입니다. 이는 Visual-SLAM이 특징이 없는 벽에 대해 보이는 약점과 동일한 근본 원인을 공유합니다.

  • 악천후: 비, 눈, 안개, 먼지는 레이저 광을 산란시키고 흡수하여 원래 반사되어야 할 빛을 감쇠시키거나 노이즈 포인트(실제로는 아무것도 없는 위치에 나타나는 허위 반사)를 생성합니다.

  • 거울 및 투명 물체: 유리와 거울은 레이저 광을 정반사하여 실제 물체의 위치(거울 이미지 위치)가 아닌 다른 위치에 허위 포인트를 생성할 수 있습니다.

  • 동적 물체: 보행자, 차량과 같은 움직이는 물체의 포인트를 정적인 환경의 일부인 것처럼 등록에 사용하면 센서 자체의 움직임 추정에 오류가 발생합니다. 동적 객체를 제외하거나 명시적으로 모델링하는 것이 필요해집니다.

  • 포인트 밀도 대 연산 비용의 상충 관계: 고해상도, 고주파수 포인트 클라우드는 더 정확한 정합 결과를 제공하는 경향이 있지만, 프레임당 포인트 수가 많을수록 스캔 매칭의 연산 비용이 증가합니다. 연산 능력이 제한적인 임베디드 시스템이나 드론에서는 밀도와 속도 간의 이러한 상충 관계가 주요 설계 제약 조건이 됩니다.

  • 하드웨어 비용: 고해상도, 장거리 회전형 LiDAR는 카메라보다 훨씬 비싸며, 비용은 종종 도입의 실질적인 장벽이 됩니다.

이러한 약점 중 상당수는 카메라의 약점과는 다른 방향으로 작용하기 때문에 카메라(Visual-SLAM)와 LiDAR(LiDAR-SLAM)를 결합하는 센서 융합(참고: "센서 융합 입문")은 각 센서의 한계를 보완하는 강력한 방법입니다.

12. 실제 선택

선택 방법 LiDAR-SLAM 방법은 장착 가능한 센서, 가용 컴퓨팅 자원, 요구되는 정확도, 그리고 환경의 기하학적 특성에 크게 좌우됩니다.

  • 실내 서비스 로봇 및 로봇 청소기: 저비용 2D LiDAR는 여전히 강력한 선택이며, Cartographer와 같은 견고한 2D SLAM 구현이 널리 사용되고 있습니다. 벽이나 가구와 같은 구조물이 많은 실내 공간은 기하학적 퇴화 현상이 드물기 때문에 LiDAR-SLAM에 유리한 환경입니다.

  • 자율 주행 자동차: GPS, IMU, 카메라를 활용한 멀티 센서 융합과 결합된 고해상도 3D LiDAR가 기본 전제입니다. 터널이나 고가도로와 같이 기하학적으로 퇴화된 구간에 대응하기 위해 LIO-SAM/FAST-LIO2와 같이 IMU를 긴밀하게 결합한 구성이 중요한 역할을 합니다.

  • 드론: 무게와 전력 제약이 엄격한 환경에서는 FAST-LIO2와 같은 컴퓨팅 효율이 높은 직접 방식과 결합된 솔리드 스테이트 LiDAR(예: Livox)가 주로 사용됩니다. 선호되는 환경:

  • 창고 및 공장 AGV/AMR: 규칙적인 복도형 구조의 환경이 일반적이므로 2D LiDAR 기반 스캔-투-맵 방식(예: Cartographer)이 실용적입니다. 선반 배치가 자주 변경되는 환경에서는 지도 업데이트 빈도 또한 선택에 중요한 요소입니다.

  • 복잡한 환경 - 터널, 지하 공간, 긴 직선 복도: LiDAR 단독으로는 불안정한 정합이 발생하기 쉬우므로, IMU와의 긴밀한 연동(LIO-SAM/FAST-LIO2) 또는 바퀴 주행 거리계와 같은 독립적인 데이터 소스와의 결합이 필수적입니다.

  • 실내 vs. 실외: 실내 공간은 기하학적 단서가 풍부하고 구조가 복잡하여 LiDAR-SLAM이 유리한 반면, 실외 공간은 개방된 공간과 악천후로 인해 복잡한 지형이 존재하므로 IMU/GNSS 융합이 더욱 중요합니다.

일반적인 지침: 연산 제약이 있고 출력 빈도가 높은 환경에서는 FAST-LIO2와 같은 직접적인 방식이 적합하며, 전반적인 일관성을 위해서는 LIO-SAM이 적합합니다. GPS와 Cartographer를 통합하여 2D 환경에서의 실적과 ROS 생태계와의 긴밀한 통합을 확보했습니다. IMU가 전혀 없는 구성(ICP/NDT/LOAM 독립형)은 열악한 환경에 대한 복원력이 요구되는 오늘날에는 거의 비현실적인 선택이 되었으며, 대부분의 운영 시스템은 IMU와의 긴밀한 연동을 기본 전제로 설계하고 있습니다.

13. 참고 문헌

14. 요약

LiDAR-SLAM은 레이저의 비행 시간(Time of Flight)에서 얻은 미터 단위 거리 정보(포인트 클라우드)를 사용하여 ICP(최근접점 반복 등록) 또는 NDT(복셀별 가우시안 분포에 맞추기)를 통해 스캔 매칭을 수행하고, 누적된 데이터를 이용하여 데이터를 생성합니다. 스캔-투-스캔 및 스캔-투-맵을 결합한 LiDAR 오도메트리를 통한 궤적 추적과 루프 클로저 및 포즈 그래프 최적화를 통한 누적 오차 보정을 통해 동시적인 자체 위치 추정 및 지도 작성을 달성합니다. 랜드마크 알고리즘의 계보, 즉 LOAM 계열(특징 추출을 통한 효율성), Cartographer(효율적인 전역 일관성), LIO-SAM/FAST-LIO2(긴밀한 IMU 결합을 통한 견고성)는 각각 고유한 문제에 대한 해결책으로 발전해 왔으며, 기하학적으로 불규칙한 환경에 대처한다는 단일한 관점에서 대부분의 운영 시스템은 긴밀한 IMU 결합을 기본으로 하는 설계로 수렴했습니다.

이해도 확인
거리 측정 성공 여부가 LiDAR 포즈를 결정하는 유일한 요소인가요?

평면이나 긴 복도에서는 일부 움직임 방향에 대한 제약이 약해질 수 있습니다. 거리 측정 성공 여부와 등록 관측 가능성은 다릅니다.

Related reading

Explore another aspect of this fieldROS 2에서 지도 제작부터 내비게이션까지 — Jazzy와 Nav2를 활용한 최소한의 절차Explore another aspect of this field로봇 좌표 변환: 행렬, 쿼터니언 및 TF