통계 수치해석 소프트웨어 마지막 수정: 2026-09-02 04:23:05

1. 개요[편집]

SLAM
Simultaneous Localization and Mapping
추정 대상로봇 궤적 $\mathbf x_{1:T}$ 지도 $\mathbf m$ — 동시에
닭과 달걀위치를 알아야 지도를 그리고, 지도가 있어야 위치를 안다
1세대EKF-SLAM (1986~) — 공분산 $O(n^2)$
현세대그래프 SLAM — 희소 정보행렬 + 비선형 최소제곱
승부처루프 클로저와 데이터 연관
대표 구현ORB-SLAM 계열 · Cartographer · LIO-SAM · VINS

지도가 있으면 위치를 알 수 있고, 위치를 알면 지도를 그릴 수 있다. 둘 다 없으면? 그게 SLAM이다.

SLAM(Simultaneous Localization and Mapping, 동시적 위치추정 및 지도작성)은 미지의 환경에 놓인 이동체가 자신의 궤적과 환경의 지도를 동시에, 오직 자체 센서 관측과 자기 운동 정보만으로 추정하는 문제다. 지도가 주어져 있으면 그것은 위치추정(몬테카를로 위치추정)이고, 궤적이 주어져 있으면 그것은 단순 지도작성이다. 둘 다 미지수인 순간 문제는 결합 추정이 되고, 그 결합이 만들어 내는 상관 구조가 이 분야 30년의 역사 전체를 설명한다.

핵심 난점은 하나로 요약된다. 오차는 적분되고, 관측은 국소적이다. 오도메트리로 100 m를 걸으면 각도 오차가 위치 오차로 증폭돼 쌓이는데, 센서는 지금 보이는 것만 알려 준다. 이 표류를 잡을 유일한 정보가 “여기는 아까 왔던 곳이다” 라는 관측 — 즉 루프 클로저다.

2. 확률적 정식화[편집]

베이즈 필터로 쓰면 추정 대상은 궤적과 지도의 결합 사후분포다.

p(x1:T,mz1:T,u1:T)p(\mathbf x_{1:T},\, \mathbf m \mid \mathbf z_{1:T},\, \mathbf u_{1:T})

여기서 u\mathbf u 는 제어·오도메트리, z\mathbf z 는 관측이다. 이 문제가 어려운 이유는 지도와 궤적이 분리되지 않기 때문이다. 로봇이 랜드마크 A와 B를 같은 자세에서 봤다면 A와 B의 추정 오차는 그 자세의 오차를 공유하므로 강하게 상관된다. 이 상관을 무시하고 각 랜드마크를 독립으로 추정하면 필터가 과신에 빠져 지도가 어긋나기 시작하고, 그때부터 되돌릴 방법이 없다.1

여기서 두 갈래가 갈린다. 최근 상태만 유지하는 필터(온라인, 마르코프 가정)로 갈 것인가, 궤적 전체를 미지수로 두는 평활화(smoothing, 전체 최소제곱)로 갈 것인가. 1990년대에는 전자가, 2000년대 중반 이후에는 후자가 이겼다.

3. EKF-SLAM — 1세대와 그 한계[편집]

스미스·셀프·치즈먼(1986·1990)의 확률적 지도(stochastic map)가 출발점이다. 상태벡터에 로봇 자세와 모든 랜드마크 좌표를 이어 붙이고, 하나의 거대한 칼만 필터를 돌린다.

x=(x,y,θ자세,  m1x,m1y,,mnx,mny랜드마크 n)T\mathbf x = (\underbrace{x,\,y,\,\theta}_{\text{자세}},\; \underbrace{m_{1x}, m_{1y},\, \ldots,\, m_{nx}, m_{ny}}_{\text{랜드마크 } n \text{개}})^{\mathsf T}

이 방식은 문제의 상관 구조를 정직하게 전부 들고 다닌다는 점에서 이론적으로 옳았고, 지도가 시간이 지나면 완전 상관 상태로 수렴하며 그 정확도의 하한이 초기 불확실성으로 정해진다는 결과까지 나왔다. 그런데 정직함의 대가가 잔인했다.

  • 공분산이 조밀하다. 랜드마크 nn 개면 공분산 행렬이 (2n+3)2(2n+3)^2 이고, 관측 하나만 들어와도 갱신이 전체에 퍼지므로 스텝당 O(n2)O(n^2). 랜드마크 1000개짜리 방 하나에서 이미 실시간이 위태롭다.
  • 선형화가 한 번뿐이다. EKF는 과거의 자세를 현재 추정 주변에서 한 번 선형화하고 그대로 버린다. 나중에 더 좋은 정보가 들어와도 과거의 잘못된 선형화를 되돌릴 수 없다. 방위각 오차가 크면 필터가 조용히 비일관(inconsistent) 상태로 빠져 공분산이 실제 오차보다 작다고 보고한다.
  • 데이터 연관을 되돌릴 수 없다. 랜드마크를 잘못 붙이면 그 오정보가 즉시 공분산에 녹아들어 지워지지 않는다.

FastSLAM(2002)이 첫 번째 우회로였다. 궤적이 주어지면 랜드마크들이 서로 조건부 독립이 된다는 성질을 써서

p(x1:t,m)  =  p(x1:t)  k=1np(mkx1:t,)p(\mathbf x_{1:t}, \mathbf m \mid \cdot) \;=\; p(\mathbf x_{1:t} \mid \cdot)\;\prod_{k=1}^{n} p(m_k \mid \mathbf x_{1:t}, \cdot)

로 인수분해하고, 앞은 입자 필터로 뒤는 입자마다 딸린 작은 2×2 EKF들로 푼다(라오-블랙웰화). 입자 하나가 자기만의 지도를 통째로 들고 다니는 구조라 데이터 연관을 입자별로 다르게 가져갈 수 있는 것이 큰 장점이었다. 다만 궤적 전체를 입자로 표현하다 보니 재표집이 과거 궤적의 다양성을 갉아먹고, 긴 루프를 돌아 돌아왔을 때 정답 궤적을 가진 입자가 이미 사라져 있는 고질병이 있다. 입자 필터 일반론은 입자 필터 문서로 넘긴다.

4. 그래프 SLAM — 희소성의 발견[편집]

패러다임이 바뀐 계기는 정보행렬(공분산의 역행렬)은 희소하다는 관찰이다. 공분산은 모든 것이 모든 것과 상관되므로 조밀하지만, 그 역행렬의 (i,j)(i,j) 원소는 두 변수를 직접 잇는 구속이 있을 때만 0이 아니다. 그리고 SLAM의 구속은 전부 “연속한 두 자세 사이의 오도메트리” 또는 “한 자세와 한 랜드마크 사이의 관측”처럼 두 변수만 잇는다.

그래서 문제를 그래프로 그린다. 노드는 미지수(자세, 필요하면 랜드마크), 간선은 구속이다. 그러면 SLAM은 비선형 최소제곱이 된다.

X=argminX(i,j)Eeij(xi,xj)TΩijeij(xi,xj)\mathbf X^{\star} = \arg\min_{\mathbf X} \sum_{(i,j)\in\mathcal E} \mathbf e_{ij}(\mathbf x_i,\mathbf x_j)^{\mathsf T}\,\Omega_{ij}\,\mathbf e_{ij}(\mathbf x_i,\mathbf x_j)

eij\mathbf e_{ij} 는 ”iijj 사이가 이만큼 떨어져 있어야 하는데 실제 추정은 이렇다”는 잔차이고, Ωij\Omega_{ij} 는 그 구속의 정보행렬(신뢰도 가중치)이다. 랜드마크를 소거하고 자세만 남긴 형태를 포즈 그래프(pose graph)라 부른다. 루 와 밀리오스(1997)가 이 정식화를 처음 제시했지만, 당시 계산기로는 무거워서 10년 가까이 묻혀 있다가 희소 선형대수와 함께 부활했다.

푸는 방법은 가우스-뉴턴법이나 레벤버그-마쿼트 방법이다. 매 반복에서

(JTΩJ)ΔX=JTΩe(J^{\mathsf T}\Omega J)\,\Delta\mathbf X = -J^{\mathsf T}\Omega\,\mathbf e

를 푸는데, H=JTΩJH = J^{\mathsf T}\Omega J 가 바로 그 희소 정보행렬이다. 희소행렬 촐레스키 분해에 좋은 변수 순서(COLAMD 등)를 얹으면 채워짐(fill-in)이 억제돼 수만 개 자세도 초 단위에 풀린다. 여기서 얻는 것이 EKF 대비 결정적이다 — 매 반복마다 현재 최선의 추정 주변에서 다시 선형화한다. 과거의 잘못된 선형화가 영구히 남지 않는다.

세 가지 기술적 요령이 실무를 떠받친다.

  • 다양체 위 최적화. 자세는 벡터 공간이 아니라 리 군 SE(3)SE(3) 의 원소다. 증분 Δx\Delta\mathbf x리 대수에서 잡고 지수사상으로 되돌리는 방식으로 갱신하면 회전행렬의 직교성을 억지 정규화 없이 유지할 수 있다.
  • 슈어 보수로 점 소거. 시각 SLAM에서는 3차원 점이 자세보다 수백 배 많다. 점 블록이 서로 연결되지 않는 대각 구조라는 점을 이용해 슈어 보수로 점을 소거하면, 카메라 자세만 남은 훨씬 작은 계(reduced camera system)를 풀고 점은 역대입으로 복원할 수 있다. 이것이 대규모 번들 조정을 가능하게 한 단 하나의 트릭이다.
  • 한계화와 슬라이딩 윈도. 실시간이 필요하면 오래된 자세를 한계화(marginalization)해 잘라내는데, 한계화된 변수와 이어져 있던 노드들 사이에 조밀한 사전정보 블록이 생긴다. 희소성을 얼마나 지키며 자를 것인가가 필터형과 평활형 사이의 실질적 경계선이다.

5. 프런트엔드와 백엔드[편집]

현대 SLAM 시스템은 두 층으로 나뉘고, 이 분리를 이해하지 못하면 디버깅이 불가능하다.

프런트엔드백엔드
하는 일센서 원자료 → 구속구속 집합 → 최적 궤적·지도
도구특징점 추출·매칭, 스캔 정합, 장소 인식희소 비선형 최소제곱
성패데이터 연관수렴과 계산량
실패하면지도가 찢어진다느려진다

백엔드는 성숙한 수치해석이고, 프런트엔드는 여전히 예술이다. 백엔드가 아무리 좋아도 프런트엔드가 틀린 구속을 하나 주면 결과는 처참하다. 이 비대칭이 SLAM 논문의 절반이 데이터 연관에 관한 이유다.

프런트엔드 도구는 센서에 따라 갈린다. 카메라면 특징점 검출과 기술자 매칭 후 에피폴라 기하·PnP로 상대자세를 뽑고, 라이다면 점군 정합(ICP·NDT)으로 스캔 사이 변환을 얻는다. 어느 쪽이든 RANSAC이 오대응을 걸러내는 관문 역할을 한다.

6. 루프 클로저 — 이 문제의 심장[편집]

표류를 잡는 유일한 수단이자 모든 것을 망칠 수 있는 유일한 수단이다.

장소 인식(place recognition)은 “지금 보는 장면이 과거 어느 시점과 같은 곳인가”를 지도 전체에서 묻는 문제다. 자세 추정을 신뢰할 수 없으니 위치로 후보를 좁힐 수 없고, 결국 외형만으로 수만 장 중에서 찾아야 한다. 표준 해법이 시각 단어 가방(bag of visual words)이다 — 기술자들을 계층적으로 군집화해 만든 어휘로 영상을 히스토그램 하나로 요약하고, TF-IDF 가중치를 준 역색인으로 후보를 뽑는다. 텍스트 검색 기술을 거의 그대로 가져온 것이며, 어휘 트리 덕에 수만 장 규모에서도 밀리초 단위로 조회된다.

문제는 지각적 혼동(perceptual aliasing)이다. 사무실 복도, 주차장 기둥, 벽돌 담장은 서로 다른 장소인데 외형이 같다. 여기서 잘못된 루프 클로저 하나가 들어가면 무슨 일이 벌어지는가.

포즈 그래프는 잘못된 간선 하나를 국소적으로 흡수하지 못한다. 최소제곱은 모든 구속의 타협점을 찾으므로, “이 두 자세는 같은 곳”이라는 강한 구속이 100 m 떨어진 두 자세에 걸리면 그 사이의 모든 자세가 끌려온다. 지도가 접히거나 복도가 이중으로 겹치고, 잔차는 커졌는데도 최적화는 성공적으로 수렴한다. 오도메트리 표류는 조금씩 나빠지지만 잘못된 루프 클로저는 지도를 한 번에 찢는다.

방어는 층층이 쌓는다.

  1. 기하 검증. 외형 후보가 나오면 대응점으로 상대자세를 실제로 계산하고 내점 수가 임계 이상일 때만 받아들인다. 이 한 단계가 오탐의 대부분을 잡는다.
  2. 시간적 일관성. 연속한 여러 프레임이 연속한 여러 과거 프레임과 매칭될 때만 인정한다.
  3. 강건 백엔드. 잔차에 후버·코시 손실을 씌우거나(로버스트 통계), 각 루프 간선에 스위치 변수를 붙여 최적화가 스스로 나쁜 구속을 꺼 버리게 하는 방법(switchable constraints), 여러 가설의 혼합으로 모델링하는 방법 등이 쓰인다. 백엔드가 프런트엔드의 실수를 사후에 취소할 수 있게 만드는 것이 지난 10여 년의 큰 흐름이었다.

7. 센서 조합[편집]

조합강점약점
단안 카메라싸고 가볍고 정보가 풍부절대 스케일이 관측 불가능, 순수 회전에서 초기화 실패
스테레오기선이 스케일을 준다 → 스테레오 비전기선 대비 먼 거리는 사실상 단안
라이다정확한 거리, 조명 무관무늬 없는 긴 복도·터널에서 구속 부족, 비쌈
관성센서(IMU)고주파, 중력 방향과 스케일 제공단독으로는 이중적분 표류
시각-관성(VIO)상보적 — 현재의 사실상 표준초기화와 시간 동기가 까다로움

시각-관성 융합이 지난 10년의 주역이다. IMU는 짧은 시간에는 매우 정확하지만 적분 표류가 심하고, 카메라는 표류가 없지만 저주파이며 스케일을 모른다. 둘을 묶으면 미터 단위 스케일과 중력 방향이 관측 가능해진다. 관건은 200~1000 Hz IMU를 30 Hz 영상 프레임 사이에 어떻게 끼워 넣느냐인데, 표준 해법이 IMU 사전적분(preintegration)이다. 두 프레임 사이 IMU 측정을 초기 자세와 무관한 하나의 상대 구속으로 미리 압축해 두면, 최적화 중에 자세 추정이 바뀌어도 IMU를 다시 적분할 필요가 없다. 이 아이디어가 없었으면 시각-관성 그래프 최적화는 실시간이 불가능했다. 융합의 일반론은 센서 융합 문서 참고.

관측 가능성 이야기도 짚어 둘 만하다. 단안 SLAM은 전체 좌표계의 6자유도 + 스케일 1 = 7자유도가 원리적으로 결정되지 않는다. 시각-관성이면 중력이 두 축을 고정하고 스케일도 잡히므로 남는 것은 위치 3 + 방위각 1 = 4자유도다. 이 게이지 자유도를 최적화에서 고정하지 않으면 정보행렬이 특이해지므로, 첫 자세를 고정하거나 사전정보를 얹는 처리가 반드시 들어간다.2

8. 대표 계열[편집]

  • ORB-SLAM 계열. ORB 특징점 하나로 추적·지도작성·재위치추정·루프 클로저를 전부 처리하는 키프레임 기반 시각 SLAM. 추적 스레드와 지도 최적화 스레드를 분리한 PTAM(2007)의 구조를 계승해 성숙시켰고, 이후 판본에서 스테레오·RGB-D·관성 융합·다중 지도까지 흡수했다. 오픈소스 시각 SLAM의 사실상 기준점.
  • 직접법. 특징점을 뽑지 않고 화소 밝기 잔차를 직접 최소화하는 계열(LSD-SLAM, DSO). 무늬가 약한 곳에서도 정보를 쓸 수 있고 반밀집 지도를 덤으로 얻지만, 밝기 항상성 가정에 의존해 자동노출과 롤링 셔터에 민감하다. 광류의 문제의식이 그대로 옮겨 온 것이다.
  • 라이다 SLAM. 2차원 실내에서는 점유 격자 지도 + 라오-블랙웰화 입자 필터(GMapping)가 오래 표준이었고, 이후 서브맵 + 분기한정 탐색으로 루프 클로저를 푸는 Cartographer 계열이 자리 잡았다. 3차원 실외에서는 엣지·평면 특징을 나눠 정합하는 LOAM 계열과 그 관성 결합판이 주류다.
  • 밀집·신경 표현. 깊이 카메라로 TSDF 볼륨을 갱신하는 KinectFusion(2011) 이후 지도의 표현 자체가 연구 주제가 됐고, 최근에는 장면을 신경망 필드나 가우시안 집합으로 들고 다니며 렌더링 잔차로 최적화하는 계열이 활발하다. 다만 최적화 골격은 여전히 “재투영 오차의 비선형 최소제곱”이라는 점이 변하지 않았다.

9. 현업에서의 현실[편집]

  • 논문 성능표는 벤치마크 데이터셋 기준이다. 실제 현장은 유리벽, 반복 무늬 창고 선반, 흔들리는 나뭇잎, 지나가는 사람으로 채워져 있고 이 중 어느 것도 정적 환경 가정에 맞지 않는다. 동적 물체를 걷어내는 전처리가 알고리즘 선택보다 성능에 크게 기여하는 경우가 흔하다.
  • 시간 동기가 안 맞으면 아무것도 안 된다. 카메라와 IMU의 타임스탬프가 5 ms 어긋나면 빠른 회전 구간에서 궤적이 통째로 휜다. 이 오프셋을 미지수로 넣어 같이 추정하는 것이 요즘 관례다.
  • 지도를 저장하고 다시 불러 쓰는 것(재위치추정)이 실제 제품에서는 SLAM 자체보다 중요할 때가 많다. 청소로봇이 매번 처음부터 집을 탐색하면 상품성이 없다.
  • 궤적 평가는 절대 궤적오차(ATE)와 상대 자세오차(RPE)를 같이 본다. ATE는 정렬 후 비교하므로 직교 프로크루스테스 문제를 한 번 풀고 시작하며, 단안이면 스케일까지 맞춰야 해서 “스케일 정렬 후 ATE”라는 수치가 나온다.3

10. 관련 문서[편집]

11. Footnotes[편집]

  1. 이 상관 구조를 처음으로 정면 돌파한 것이 스미스·셀프·치즈먼의 기여였다. 그전까지는 랜드마크를 독립으로 두고 각자 필터를 돌리는 구현이 많았는데, 그러면 지도가 예쁘게 수렴하는 것처럼 보이다가 루프를 닫는 순간 어디를 믿어야 할지 알 수 없는 상태가 된다. “공분산이 커지는 것을 보기 싫어서 상관을 지운” 구현은 지금도 가끔 발견된다.

  2. 게이지 자유도를 고정하지 않고 최적화를 돌리면 정보행렬이 특이해져 촐레스키가 실패하는데, 이때 대각에 아주 작은 값을 더해 넘어가는 임시방편이 널리 퍼져 있다. 잘 돌아가는 것처럼 보이지만 지도 전체가 아주 느리게 떠다니고, 공분산 보고값에도 의미가 없어진다. 원인을 알고 쓰는 것과 모르고 쓰는 것의 차이가 큰 대표적인 한 줄이다.

  3. 그래서 단안 SLAM 논문의 오차 수치를 다른 논문과 직접 비교하면 안 된다. 스케일을 궤적 전체에 대해 한 번만 맞췄는지, 구간마다 다시 맞췄는지에 따라 숫자가 몇 배씩 달라진다. 평가 스크립트를 공개하지 않은 표는 대체로 감상용이다.