제7부 자율성·군집
7.13 탑재 SLAM과 지도 표현: VIO·LiDAR-관성 오도메트리·팩터 그래프·OctoMap·ESDF·신경 장면 표현
7.13.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
4.7은 카메라로 움직임을 재는 시각 오도메트리(VO)와 시각-관성 오도메트리(VIO)를 세웠고, SLAM과 루프 폐쇄는 몇 줄로 남겨 두었다(4.7.5). 4.10은 실내·지하의 LiDAR 정합과 퇴화를, 7.1은 점유 격자와 의미 지도를 다뤘다. 이 장은 그 셋을 기체 위에서 실시간으로 돌아가는 하나의 체계로 묶는다. 센서가 들어와 상태 추정과 지도가 나가고, 그 지도를 계획기가 읽는다. 비행 로봇에 고유한 것은 시간과 질량의 예산이다. 땅 위 로봇이라면 멈춰서 생각할 수 있지만, 멀티콥터는 상태 추정이 끊기는 순간 자기 위치를 잃는다.
배우는 것:
- 비행을 위한 SLAM과 측량을 위한 지도의 차이 — 실시간·지연·연산 예산 대 후처리 정확도, 국소 일관성 대 전역 정확도.
- 백엔드의 구조 — 팩터 그래프와 최대 사후 추정, 가우스-뉴턴, 슬라이딩 윈도와 주변화(슈어 보수), 루프 폐쇄와 포즈 그래프 최적화.
- 루프 폐쇄의 득과 실 — 원형 경로 장난감 문제로 드리프트가 어떻게 나뉘는지, 가짜 루프 폐쇄 하나가 지도를 어떻게 휘게 하는지를 직접 계산한다.
- LiDAR-관성 오도메트리(LIO)와 VIO의 선택 — 질량·전력·환경. 2 kg 쿼드에서 체공이 얼마나 줄어드는가.
- 지도 표현 — 점유 격자·OctoMap·TSDF(truncated signed distance field, 절단 부호 거리장)·ESDF(Euclidean signed distance field, 유클리드 부호 거리장)·메시, 계획기가 무엇을 묻는가, 해상도·메모리·갱신 연산량.
- 신경 장면 표현 — NeRF·3D 가우시안 스플래팅의 드론 적용(점검·디지털 트윈)과 실시간 SLAM으로서의 한계, 그리고 다중 기체 지도 병합의 요지.
선수 지식: VO·VIO의 파이프라인과 가관측성은 4.7.3·4.7.4, 점-평면 정합과 복도 퇴화는 4.10.4, 점유 격자와 로그 오즈는 7.1.6, 결합 항법의 오차 상태 필터와 시간 지연은 4.4.3, 탑재 컴퓨터의 전력·질량은 2.9.7·2.9.8, 2 kg 쿼드의 호버 동력은 1.7.7.1이다. 수식은 최소제곱과 행렬 블록 수준이다. 추정 이론의 유도는 자매서 kalmann, SLAM의 일반 정식화와 지상 로봇의 사례는 자매서 robotics의 제9부(SLAM)가 맡는다(BK-07).
특히 중요한 독자: 엔지니어는 7.13.4·7.13.5·7.13.7을 건너뛰지 않는다. 사업 담당자는 7.13.2의 비교표와 7.13.6의 체공 표만 읽어도 "비행용 지도"와 "납품용 지도"가 왜 다른 제품인지 보인다. 인증·규제 담당자는 7.13.5.3(가짜 루프 폐쇄)과 7.13.14를 먼저 본다. 최적화 기반 추정기를 무엇으로 보증할지가 거기서 결정된다. 법무 담당자는 7.13.8(신경 장면 표현이 포함하는 것)과 7.13.14의 공간정보·개인정보 항목을 본다.
기준 시점과 정직성. 이 장은 2026년 10월을 기준으로, 지식은 2026년 중반까지 반영했다. 계산은 파이썬 표준 라이브러리(
math·random, 고정 시드)로 했고(mil-uam/fig-src/7.13-calc.py), 포즈 그래프는 가우스-뉴턴과 띠 행렬 촐레스키 분해(가우스 소거의 대칭형)를 직접 짰다. 장면·센서·노드 크기는 모두 교육용 가정이며 특정 알고리즘·제품의 성능이 아니다. 제품 제원은(공개 주장치), 연구의 성숙도처럼 확인하지 못한 것은(확인 필요)로 적는다. 이 장의 지도는 안전한 비행과 점검을 위한 지도다. 표적 위치 결정과 공격 경로 계획은 다루지 않는다(BK-04).
7.13.2 개념·직관 — 날기 위한 지도와 남기기 위한 지도
SLAM(동시적 위치 추정과 지도 작성)이라는 같은 이름 아래 두 가지 일이 섞여 있다. 하나는 기체가 지금 날기 위해 만드는 지도이고, 다른 하나는 비행이 끝난 뒤 남기기 위해 만드는 지도다. 같은 센서·같은 알고리즘 계열을 사용하지만 요구가 거의 반대다.
| 항목 | 비행용 탑재 SLAM | 측량·납품용 지도 제작 |
|---|---|---|
| 목적 | 충돌 없이 날고 길을 찾는다 | 위치가 정확한 산출물(점군·정사영상·수치표면모델) |
| 시간 | 실시간. 상태 추정 지연은 수십 ms 안 | 후처리. 시간·일 단위 |
| 정확도의 뜻 | 국소 일관성 — 기체 둘레 수십 m 안에서 장애물이 제자리에 있는가 | 전역 정확도 — 지상 기준점과 국가 좌표계에서 몇 cm인가 |
| 연산 | 탑재 컴퓨터 수~수십 W(2.9) | 지상 워크스테이션·클라우드 |
| 좌표계 | 이륙 지점 기준 국소 좌표 | 측지 기준·국가 좌표계(6.10) |
| 실패의 결과 | 충돌·추락 | 재처리·재비행 |
| 검증 | 비행 중 건강 지표·런타임 보증(7.8) | 독립 검사점의 오차(6.6.9) |
| 더 볼 곳 | 이 장·7.1 | 6.6·6.10·14.9 |
이 구분이 이 장 전체를 꿰는 기준이다. 비행용 SLAM은 틀려도 매끄러워야 하고, 측량 지도는 늦어도 맞아야 한다. 비행 제어는 위치 추정이 갑자기 몇 m 뛰는 것을 견디지 못한다(7.13.5.4). 측량 산출물은 몇 시간 늦게 나와도 되지만 검사점에서 틀리면 안 된다. 그래서 실무의 점검·측량 드론은 두 개를 동시에 돈다. 탑재 SLAM으로 날고, 원시 센서 자료를 기록해 지상에서 다시 푼다.
세 축의 요구도 달라진다. 군용 드론은 GNSS 거부 환경에서 항법을 잇고 건물·지하 시설의 내부를 정찰하는 데 SLAM을 사용한다. 능동 방사인 LiDAR는 자기 존재를 드러낼 수 있어 수동 센서(카메라·열영상)에 기우는 경우가 있다(5.6). 노획되면 기체가 만든 지도 자체가 정보 자산이 된다(8.17). 민간 UAS는 교량·플랜트·창고 같은 GNSS 차폐 구역의 점검과 실내 비행, 그리고 디지털 트윈 제작에 사용한다. 가격과 체공이 센서 선택을 정한다. AAM은 사람이 타는 동안 SLAM을 항법의 주 수단으로 사용하지 않는다. 버티포트 주변 장애물과 착륙면의 확인, 그리고 장래 자율 비행(15.23)에서 인증할 수 있는 지도와 위치 추정이 쟁점이다.
7.13.3 탑재 SLAM의 구조 — 빠른 길과 느린 길
탑재 SLAM은 두 개의 길로 나눠 보면 이해가 쉽다. 아래 그림이 그 구조다.
빠른 길은 센서→프런트엔드→국소 백엔드→비행 제어다. 프런트엔드는 영상의 특징을 추적하거나 LiDAR 점군을 정합하고, IMU 측정을 키프레임 사이에서 미리 적분(사전적분)해 둔다. 국소 백엔드는 최근 몇 초의 상태만 놓고 최적화해 수십 Hz로 자세·속도·위치를 낸다. 이 출력을 오토파일럿의 필터가 IMU로 100~200 Hz까지 전파해 제어에 사용한다(2.2.3). 느린 길은 루프 폐쇄와 포즈 그래프다. 지나온 곳을 다시 알아보면 그래프 전체를 초 단위로 다시 풀어 누적 오차를 나눈다. 지도는 두 길에서 모두 갱신을 받는다.
층마다 사용하는 시간이 다르다. 아래는 소형 멀티콥터 구성의 경험 범위이며 구현·컴퓨터마다 몇 배씩 다르다.
| 층 | 주기 | 한 번의 처리 시간 | 늦어지면 |
|---|---|---|---|
| IMU 전파(오토파일럿 필터) | 200~1,000 Hz | 1 ms 미만 | 자세 제어 불안정(2.2.5) |
| 프런트엔드(특징 추적·점군 정합) | 10~30 Hz | 10~50 ms | 특징 상실·정합 발산 |
| 국소 백엔드(슬라이딩 윈도) | 10~30 Hz | 10~50 ms | 상태 추정 지연 증가 |
| 지도 갱신(점유·TSDF) | 5~10 Hz | 수십 ms | 새 장애물을 늦게 본다(7.1.4) |
| 루프 폐쇄·포즈 그래프 | 초 단위 | 수백 ms~수 s | 전역 보정이 늦을 뿐, 비행은 계속 |
표의 마지막 줄이 설계의 요점이다. 느린 길이 늦거나 멈춰도 기체는 날 수 있지만, 빠른 길이 멈추면 날 수 없다. 그래서 두 길을 다른 스레드나 다른 프로세서에 두고, 느린 길이 연산을 빼앗지 않도록 우선순위를 구분한다(2.10). 상태 추정이 측정 시각보다 늦게 나오는 문제는 지연된 측정을 과거 시점에 넣고 현재까지 다시 전파하는 방식으로 다룬다(4.4.3.4).
7.13.4 백엔드 I — 팩터 그래프와 슬라이딩 윈도
7.13.4.1 팩터 그래프와 최대 사후 추정
결론부터: 현대의 SLAM 백엔드는 대부분 "모든 측정과 가장 잘 맞는 상태"를 가중 최소제곱으로 찾는다. 상태(기체 자세·속도·IMU 바이어스·지도 점)를 마디로, 측정이 상태들 사이에 거는 제약을 팩터로 그린 그림이 팩터 그래프다. 그래프의 모양이 곧 풀어야 할 행렬의 모양이다.
측정 잡음이 정규분포라면, 측정을 가장 잘 설명하는 상태(최대 사후 추정)는 다음 문제의 해다.
$$\mathcal X^{\star}=\arg\min_{\mathcal X}\sum_{k}\big\lVert \mathbf r_k(\mathcal X_k)\big\rVert^{2}_{\Sigma_k},\qquad \lVert\mathbf r\rVert^{2}_{\Sigma}=\mathbf r^{\top}\Sigma^{-1}\mathbf r$$
가우스-뉴턴은 잔차를 현재 추정 둘레에서 선형화하고, 정규 방정식을 풀어 갱신량 $\Delta\mathbf x$를 구한 뒤 이를 반복한다.
$$\mathbf H\,\Delta\mathbf x=-\mathbf b,\qquad \mathbf H=\sum_k\mathbf J_k^{\top}\Sigma_k^{-1}\mathbf J_k,\qquad \mathbf b=\sum_k\mathbf J_k^{\top}\Sigma_k^{-1}\mathbf r_k$$
| 기호 | 뜻 |
|---|---|
| $\mathcal X$ | 추정할 상태 전체(포즈·속도·바이어스·지도 점) |
| $\mathbf r_k$ | 팩터 $k$의 잔차 — 측정값과 상태로 예측한 값의 차 |
| $\Sigma_k$ | 그 측정의 잡음 공분산. 역행렬이 정보 행렬이다 |
| $\mathbf J_k$ | 잔차의 야코비안. 팩터가 닿는 상태의 열만 0이 아니다 |
| $\mathbf H$ | 정보 행렬의 합(가우스-뉴턴 헤세 근사). 그래프의 연결 구조를 그대로 닮는다 |
팩터의 종류는 네 가지가 대부분이다.
| 팩터 | 어떤 상태를 잇나 | 무엇에서 오나 |
|---|---|---|
| IMU 사전적분 | 연속한 두 키프레임의 자세·속도·바이어스 | 키프레임 사이의 IMU 적분(Forster 외, 2017) |
| 시각 재투영 | 키프레임 포즈와 지도 점 | 특징점의 영상 위치 |
| LiDAR 점-평면 | 키프레임 포즈(와 국소 지도) | 점군 정합(4.10.4.1) |
| 사전 정보 | 일부 상태 | 주변화로 남긴 정보, GNSS·고도계·지상 기준점 |
$\mathbf H$가 성기다는 사실이 실시간을 가능하게 한다. 팩터는 가까운 시각의 상태끼리만 잇는다. 그래서 $\mathbf H$의 대부분이 0이고, 성긴 행렬 분해는 상태 수에 거의 비례하는 시간으로 풀린다. 새 측정이 올 때 바뀐 부분만 다시 분해하는 증분 평활(iSAM2, Kaess 외 2012)이 이 성질을 사용한다. 유도와 일반론은 자매서 kalmann과 robotics의 제9부, 그리고 Dellaert·Kaess의 개관(2017)이 맡는다.
7.13.4.2 슬라이딩 윈도와 주변화 — 무엇을 버리고 무엇을 남기나
비행은 계속되고 상태는 쌓인다. 그래프 전체를 매번 풀면 연산이 끝없이 커진다. 슬라이딩 윈도는 최근 키프레임 몇 개(VIO에서 10~20개가 흔하다 (경험 범위))만 변수로 두고, 오래된 것을 빼낸다. 빼내는 방법이 둘이다.
- 버리기 — 오래된 상태와 그에 걸린 팩터를 지운다. 단순하지만 그 측정이 남은 상태에 준 정보까지 사라져, 추정이 실제보다 불확실하다고 보거나 드리프트가 빨라진다.
- 주변화 — 오래된 상태 $\mathbf x_m$을 적분해 없애되, 그것이 남은 상태 $\mathbf x_r$에 준 정보는 사전 정보 팩터로 남긴다. 선형화한 정규 방정식에서 이는 슈어 보수다.
$$\mathbf H^{\ast}=\mathbf H_{rr}-\mathbf H_{rm}\mathbf H_{mm}^{-1}\mathbf H_{mr},\qquad \mathbf b^{\ast}=\mathbf b_r-\mathbf H_{rm}\mathbf H_{mm}^{-1}\mathbf b_m$$
주변화의 대가는 둘이다. 첫째, 채워짐(fill-in)이다. 빼낸 상태에 이어져 있던 남은 상태들이 서로 직접 이어져 $\mathbf H^{\ast}$가 조밀해진다. 그래서 무엇을 언제 주변화하느냐가 속도를 정한다. 둘째, 선형화 시점이 고정된다. 사전 정보는 주변화한 순간의 추정 둘레에서 만든 선형 근사다. 그 뒤 추정이 바뀌어도 사전 정보의 야코비안은 그대로라서, 실제로는 관측되지 않는 방향(전역 위치 3·요 1, 4.7.4.2)에 가짜 정보가 생겨 필터가 과신할 수 있다. 첫 추정의 야코비안을 계속 사용하는 기법(FEJ) 같은 대응이 이 일관성 문제를 겨냥한다(Huang·Mourikis·Roumeliotis 2008, Hesch 외 2014). 과신한 공분산은 무결성 감시(4.4.5)를 낙관적으로 만든다. 이것이 탑재 SLAM의 공분산을 그대로 보호 수준으로 사용하기 어려운 이유의 하나다(4.7.8).
7.13.5 백엔드 II — 루프 폐쇄와 포즈 그래프
7.13.5.1 장소 인식에서 포즈 그래프까지
루프 폐쇄는 세 단계다. ① 장소 인식 — 지금 보는 장면이 예전 키프레임과 같은 곳인지 후보를 찾는다. 영상은 시각 단어 가방(DBoW2, Gálvez-López·Tardós 2012) 같은 기술자 검색을, LiDAR는 주사의 높이 분포를 극좌표 격자로 요약한 기술자(Scan Context, Kim·Kim 2018) 같은 방식을 사용한다. ② 기하 검증 — 후보와 실제와 정합해 보며(영상은 RANSAC 자세 추정, LiDAR는 ICP) 상대 포즈와 그 공분산을 구한다. ③ 포즈 그래프 최적화 — 상대 포즈를 새 팩터로 넣고, 지도 점을 빼고 키프레임 포즈만 남긴 가벼운 그래프를 다시 푼다. 2차원 포즈 $\mathbf X=(x,y,\theta)$ 사이의 팩터 잔차는 다음이다(Grisetti 외, 2010).
$$\mathbf e_{ij}=\operatorname{Log}\!\big(\mathbf Z_{ij}^{-1}\,\mathbf X_i^{-1}\mathbf X_j\big)$$
$\mathbf Z_{ij}$는 측정한 상대 포즈, $\operatorname{Log}$는 포즈를 $(x,y,\theta)$ 벡터로 펴는 연산이다. 오도메트리 팩터는 연속한 포즈를, 루프 폐쇄 팩터는 멀리 떨어진 두 포즈를 잇는다. 3차원에서도 구조는 같고 회전을 리 군 위에서 다룬다(자매서 robotics의 제9부).
7.13.5.2 장난감 문제 — 원형 경로 314 m
반지름 50 m의 원을 60구간(구간당 5.23 m, 합 314 m)으로 돌아 출발점으로 돌아오는 기체를 가정했다. 오도메트리 한 구간의 잡음은 위치 0.03 m·방위 0.3°(1σ), 루프 폐쇄 측정의 잡음은 0.05 m·0.1°다. 출발 포즈를 고정하고, 끝점이 출발점을 다시 알아본 루프 폐쇄 하나를 넣어 가우스-뉴턴으로 풀었다. 200회 몬테카를로(고정 시드 586)의 결과가 아래 그림과 표다.
| 이동 거리 | 52 m | 105 m | 157 m | 209 m | 262 m | 314 m(끝점) |
|---|---|---|---|---|---|---|
| 오도메트리만 RMS | 0.46 m | 1.22 m | 2.02 m | 2.60 m | 2.85 m | 2.83 m |
| 루프 폐쇄 뒤 RMS | 0.41 m | 0.83 m | 0.97 m | 0.83 m | 0.44 m | 0.07 m |
| 경로 위 최대 오차(200회) | 중앙값 | 95 % |
|---|---|---|
| 오도메트리만 | 2.85 m | 5.55 m |
| 루프 폐쇄 뒤 | 0.83 m | 1.92 m |
읽을 것은 셋이다. ① 오도메트리만의 오차는 경로의 0.9 %다. 4.7.4.3이 기준값으로 사용한 1 %와 같은 급이다. ② 루프 폐쇄는 오차를 지우지 않고 나눈다. 끝점은 7 cm로 돌아오지만 출발점과 끝점 양쪽에서 가장 먼 루프의 한가운데에 1 m가 남는다. 최대 오차는 약 3분의 1로 준다. ③ 그래서 루프 폐쇄의 효과는 루프의 길이가 정한다. 긴 루프 하나보다 짧은 루프 여러 개가 낫다. 점검 경로를 짤 때 이미 지난 구조물을 주기적으로 다시 보게 하는 이유다(7.13.10). 직선으로 멀리 가는 임무에 루프 폐쇄가 맞지 않는다는 4.7.5의 지적도 같은 결과의 다른 면이다.
7.13.5.3 가짜 루프 폐쇄 — 지도가 휜다
장소 인식은 틀릴 수 있다. 터널의 같은 모양 분기, 창고의 같은 선반 열, 대칭인 건물 복도가 지각 앨리어싱(perceptual aliasing)를 만든다. 틀린 루프 폐쇄 하나가 무슨 일을 하는지 대표 1회(시드 5860)로 계산했다. 루프 맞은편의 포즈 30(실제로 출발점에서 100 m 떨어진 곳)을 출발점과 같은 곳이라고 착각한 팩터를 참 루프 폐쇄와 함께 넣었다.
| 경우 | 지도 위치 오차 RMS | 최대 |
|---|---|---|
| 오도메트리만 | 1.16 m | 2.35 m |
| 참 루프 폐쇄만 | 0.35 m | 0.59 m |
| 참 + 가짜, 제곱 손실 | 83.5 m | 138 m |
| 참 + 가짜, 코시 강건 커널 | 0.35 m | 0.59 m |
제곱 손실에서는 가짜 팩터 하나가 지도 전체를 접는다. 최소제곱은 모든 팩터를 믿기 때문이다. 대응은 두 갈래다. 하나는 강건 커널이다. 잔차가 큰 팩터의 가중을 줄인다. 코시 커널의 가중은 $w=1/(1+d^{2}/c^{2})$이고($d^{2}$는 정규화한 잔차의 제곱, 여기서 $c=3$), 반복하는 동안 가짜 팩터의 가중이 $1.3\times10^{-6}$으로 떨어져 결과가 참 루프만 넣은 것과 같아졌다. 다른 하나는 일관성 관문이다. 루프 폐쇄의 잔차를 오도메트리 사슬이 예측한 불확실성으로 정규화해 카이제곱 문턱과 견준다.
$$d^{2}=\mathbf e^{\top}\big(\Sigma_{\text{예측}}+\Sigma_{\text{측정}}\big)^{-1}\mathbf e\ <\ \chi^{2}_{3,\,0.99}=11.34$$
이 경우 사슬이 예측한 끝점의 불확실성(1σ)은 2.45 m·1.44 m·2.32°였다. 참 루프 폐쇄는 $d^{2}=1.6$으로 통과하고, 가짜는 $d^{2}=3.4\times10^{4}$으로 걸린다.
위험한 것은 크게 틀린 루프가 아니라 드리프트만큼만 틀린 루프다. 장소는 맞혔지만 정합이 반복 구조(일정한 간격의 기둥)에 걸려 상대 포즈가 어긋난 경우를 같은 문제에 넣었다.
| 정합 어긋남 | 관문 $d^{2}$ | 통과(문턱 11.34) | 지도 RMS | 최대 |
|---|---|---|---|---|
| 1.5 m | 4.4 | 통과 | 0.94 m | 1.58 m |
| 3.0 m | 9.3 | 통과 | 1.79 m | 3.05 m |
| 6.0 m | 25.7 | 거부 | 3.53 m | 6.03 m |
3 m 어긋난 루프 폐쇄는 관문을 통과하고, 지도를 루프 폐쇄를 아예 안 했을 때(1.16 m)보다 나쁘게 만든다. 관문은 사슬의 불확실성보다 큰 착각만 걸러 낸다. 드리프트가 클수록 관문이 넓어져 그 안의 착각을 구별하지 못한다. 실무의 대응은 여럿을 병용한다. 기하 검증의 인라이어 수와 정합 퇴화 검사(4.10.4.3), 여러 루프 폐쇄가 서로 맞는지 보는 쌍별 일관성 검사(PCM, Mangelson 외 2018), 가중을 점진적으로 조이는 강건 최적화(GNC, Yang 외 2020), 의심스러운 루프를 끌 수 있게 하는 전환 변수(Sünderhauf·Protzel, 2012)다. 어느 것도 착각을 0으로 만들지 못하므로, 루프 폐쇄가 비행 안전을 좌우하지 않게 구조를 짜는 것이 먼저다(다음 절).
7.13.5.4 지도는 뛰고 오도메트리는 이어진다
루프 폐쇄 직후 전역 추정은 한 번에 몇 m를 뛸 수 있다(위 장난감에서 끝점이 2.8 m 움직였다). 이 값을 위치 제어기에 그대로 넣으면 기체는 2.8 m의 위치 오차를 보고 급기동을 한다. 그래서 로봇 미들웨어의 좌표계 관례(ROS REP 105)는 연속하지만 드리프트하는 odom 좌표계와 전역으로 일관되지만 뛸 수 있는 map 좌표계를 나누고, 둘 사이의 변환이 루프 폐쇄를 흡수하게 한다. 제어는 odom을 따르고, 임무 목표점과 지도는 map에서 정의하고 변환해 사용한다. 오토파일럿 쪽에서도 MAVLink의 ODOMETRY 메시지(#331)는 재설정 계수를 두어 외부 SLAM이 루프 폐쇄로 추정을 뛰었음을 알리게 한다(9.5). 비행 로봇에서 이 구분은 선택이 아니라 안전 요구다.
7.13.6 LIO와 VIO — 무엇을 싣는가
결론부터: LiDAR-관성 오도메트리(LIO)는 어둠과 질감 없는 벽에 강하고 조밀한 기하를 바로 주지만, 소형 멀티콥터에서는 질량이 체공을 깎는다. VIO는 가볍지만 환경에 민감하고, 장애물 지도를 만들려면 깊이 센서가 따로 필요하다.
LIO의 대표 계열은 점-평면 정합을 반복 칼만 필터로 IMU와 묶는 FAST-LIO2(Xu 외, 2022)와, 팩터 그래프에 LiDAR 오도메트리·IMU·GNSS·루프 폐쇄를 넣는 LIO-SAM(Shan 외, 2020)이다. 둘을 합친 LiDAR-시각-관성 계열(LVI-SAM, R3LIVE, FAST-LIVO 등)은 한쪽이 퇴화할 때 다른 쪽으로 버틴다. VIO는 4.7.4가 다뤘다.
| 조건 | VIO | LIO |
|---|---|---|
| 어둠·야간 | 못 사용한다(능동 조명·열영상, 4.11) | 영향이 거의 없다 |
| 질감 없는 벽·물·눈 | 특징이 사라진다 | 기하가 있으면 된다 |
| 긴 복도·터널 | 벽에 질감이 있으면 축 방향도 본다 | 축 방향이 퇴화한다(4.10.4.2) |
| 지면에서 높이 수십 m 이상 | 하향 카메라로 된다(4.7.3.2) | 감지 거리 끝에서 점이 성기다 |
| 연기·먼지·안개 | 대비 저하 | 산란·가짜 반사(4.11) |
| 빠른 기동 | 움직임 번짐(짧은 노출로 대응) | 주사 중 움직임 왜곡(관성으로 보정) |
| 유리·거울 | 반사상을 실물로 착각 | 투과·거울 반사로 빈 곳을 만든다 |
| 장애물 지도 | 성긴 특징점뿐 — 조밀 지도에는 스테레오·ToF 깊이가 따로 필요 | 점군이 곧 점유·TSDF의 입력 |
| 질량·전력 | 수십 g·수 W | 수백 g·수~십여 W |
질량과 전력이 체공에 주는 값을 1.7.7.1의 2 kg 쿼드(호버 270 W, 사용 가능 81.6 Wh, 18.1분)로 계산했다. 호버 동력은 질량의 $3/2$제곱에 비례하고 보조 전력은 그대로 더해진다. 구성은 가정이고, LiDAR는 소형 360° 제품의 공개 제원(265 g·평균 6.5 W, (공개 주장치), Livox Mid-360 사양 페이지)에 장착부 50 g을 더했다. 탑재 컴퓨터는 0.10 kg에 VIO 10 W, LIO 12 W로 두었다(2.9.8의 등급).
| 구성(가정) | 질량 증가 | 전력 증가 | 호버 전기 동력 | 체공 | 기준 대비 |
|---|---|---|---|---|---|
| 기준(지도 없음) | — | — | 270.0 W | 18.1분 | — |
| ① VIO: 카메라 + 컴퓨터 | 0.150 kg | 12.0 W | 311.2 W | 15.7분 | −13 % |
| ② LIO: LiDAR + 컴퓨터 | 0.415 kg | 18.5 W | 371.9 W | 13.2분 | −27 % |
| ③ LiDAR-시각-관성 | 0.465 kg | 20.5 W | 384.4 W | 12.7분 | −30 % |
LIO의 대가는 전력보다 질량이다. ②의 질량만 더하면 체공이 13.9분(−23 %), 전력만 더하면 17.0분(−6 %)이다. 호버 전력이 큰 멀티콥터에서는 수 W의 전력보다 수백 g의 질량이 비싸다. 이는 2.9.8의 결론(호버 전력이 큰 쿼드는 전력이 싸다)과 같은 계산의 다른 면이다. 같은 LiDAR를 6 kg급 결합형(1.11)에 실으면 질량 비율이 작아 대가가 줄고, 반대로 250 g급 소형 기체에는 실을 수조차 없다. 선택은 이렇게 정리된다. 어둡거나 질감이 없는 곳(지하·야간·연기)이 임무의 중심이면 LIO, 밝고 가벼워야 하는 곳이면 VIO에 깊이 카메라, 퇴화가 번갈아 오는 곳이면 둘 다다.
7.13.7 지도 표현 — 계획기가 묻는 질문에 맞춘다
7.13.7.1 표현의 지형
지도 표현은 계획기가 무엇을 묻느냐로 고른다. "이 칸에 무엇이 있나"(충돌 검사), "가장 가까운 장애물까지 얼마인가"(여유와 기울기), "아직 안 본 곳은 어디인가"(탐사, 7.14), "표면이 어떻게 생겼나"(점검·접근)가 서로 다른 질문이다.
| 표현 | 저장하는 것 | 답하는 질문 | 미관측 구분 | 메모리 규모 | 주 용도 |
|---|---|---|---|---|---|
| 점군 | 점의 좌표 | 표면이 어디인가 | 없다 | 점 수에 비례 | 정합 입력, 측량 산출물(6.6) |
| 2.5차원 고도 지도 | 칸마다 높이 | 지면이 어떤가 | 칸 단위 | 면적/$r^{2}$ | 착륙면·지형(7.1.6.1) |
| 조밀 점유 격자 | 칸마다 점유 확률 | 이 칸이 막혔나 | 있다 | 부피/$r^{3}$ | 작은 공간, 국소 창 |
| OctoMap(옥트리) | 점유 확률, 같은 값끼리 합친 나무 | 이 칸이 막혔나 | 있다(미관측은 저장 안 함) | 대략 표면적/$r^{2}$ | 넓은 공간의 점유(Hornung 외, 2013) |
| TSDF | 표면까지의 절단된 부호 거리와 가중 | 표면이 정확히 어디인가 | 가중 0 | 표면 둘레 띠 | 메시 추출, 재구성(Curless·Levoy, 1996) |
| ESDF | 가장 가까운 장애물까지의 부호 거리 | 얼마나 떨어져 있고 어느 쪽으로 피하나 | 별도 표지 | 창 부피/$r^{3}$ | 궤적 최적화(7.12) |
| 메시 | 삼각형 면 | 표면의 모양 | 없다 | 면 수 | 점검·시각화·디지털 트윈 |
| 신경 장면 표현 | 신경망 가중치·가우시안 수백만 개 | 이 시점에서 어떻게 보이나 | 보장 없음 | 수백 MB급 (경험 범위) | 시각화·점검(7.13.8) |
TSDF는 표면 근처의 칸에 "표면까지의 거리"를 절단 거리 $\tau$ 안에서 저장하고, 새 관측이 올 때마다 가중 평균한다.
$$D_t(\mathbf v)=\frac{W_{t-1}D_{t-1}(\mathbf v)+w_t\,d_t(\mathbf v)}{W_{t-1}+w_t},\qquad W_t=\min\!\big(W_{t-1}+w_t,\;W_{\max}\big)$$
$d_t$는 이번 측정의 광선 방향으로 잰 표면까지의 거리를 $[-\tau,\tau]$로 자른 값이다. 평균하기 때문에 잡음이 줄어 표면이 매끄럽고, 부호가 바뀌는 곳에서 메시를 뽑는다. ESDF는 모든 칸에서 가장 가까운 장애물까지의 거리 $\phi(\mathbf x)$를 둔다. 거리장의 기울기는 크기가 1이고 장애물에서 멀어지는 방향을 향한다.
$$\phi(\mathbf x)=\pm\min_{\mathbf o\in\mathcal O}\lVert\mathbf x-\mathbf o\rVert,\qquad \lVert\nabla\phi\rVert=1$$
궤적 최적화는 궤적 위의 점마다 $\phi$가 안전 거리보다 작으면 벌점을 주고, $\nabla\phi$ 방향으로 점을 이동시킨다. 그래서 계획기는 값뿐 아니라 연속한 기울기를 요구하고, 칸 사이를 보간할 수 있는 조밀한 국소 ESDF를 선호한다(Voxblox — Oleynikova 외 2017, FIESTA — Han 외 2019). 최적화 자체는 7.12가 다룬다. 이 장에서 준수할 원칙은 7.1.9와 같다. 미관측 공간을 비어 있다고 넘기지 않는다. ESDF는 장애물까지의 거리만 알므로, 미관측 칸을 장애물로 보거나 따로 표지해야 한다. 그렇지 않으면 계획기는 아직 안 본 벽을 향해 궤적을 민다.
7.13.7.2 해상도·메모리·갱신 연산량
7.1.6.1이 계산한 조밀 격자의 메모리(100 m × 100 m × 40 m를 0.2 m 칸으로 50 MB)를 같은 장면에서 표현별로 넓혔다. 표면적은 3만 m²(지면 1만 m²에 건물·나무)로 가정했다. 조밀 격자는 부피 전체를, 옥트리와 TSDF는 표면 둘레만 잘게 나눈다.
$$M_{\text{조밀}}=\frac{V}{r^{3}}\,b,\qquad M_{\text{표면}}\approx k\,\frac{A}{r^{2}}\,b'$$
$V$는 부피, $A$는 표면적, $r$은 칸 한 변, $b$·$b'$은 칸·노드당 바이트, $k$는 표면 둘레에 남는 칸의 층 수다. 가정 상수는 OctoMap 노드당 24 B·표면 3층·내부 노드 몫 4/3배, TSDF 칸당 8 B·절단 거리 4칸·블록 채움 비효율 2배다. 상수는 구현마다 몇 배씩 다르다. 기울기(부피 대 표면)가 요점이다.
| 해상도 $r$ | 조밀(1 B) | 조밀(4 B, 실수) | OctoMap | TSDF 해시 | 국소 ESDF 창(4 B) |
|---|---|---|---|---|---|
| 0.05 m | 3,200 MB | 12,800 MB | 1,152 MB | 1,536 MB | 128 MB |
| 0.1 m | 400 MB | 1,600 MB | 288 MB | 384 MB | 16 MB |
| 0.2 m | 50 MB | 200 MB | 72 MB | 96 MB | 2 MB |
| 0.5 m | 3.2 MB | 12.8 MB | 11.5 MB | 15.4 MB | 0.13 MB |
읽을 것은 셋이다. ① 해상도를 반으로 줄이면 조밀 격자는 8배, 표면 표현은 4배다. 0.05 m 조밀 격자는 이 작은 장면에서도 3 GB를 넘는다. ② 작은 장면·거친 해상도에서는 조밀 격자가 오히려 작다. 1바이트 조밀 격자와 OctoMap은 0.14 m에서 만난다. 옥트리의 이득은 큰 공간·성긴 표면, 그리고 미관측 공간을 저장하지 않는 데서 나온다. 1 km × 1 km × 120 m(7.1.6.1의 15 GB)처럼 공간이 커지면 차이가 벌어진다. ③ 계획기용 ESDF는 기체 둘레의 창만 들고 다닌다. 20 m × 20 m × 10 m를 0.1 m 격자로 분할해도 16 MB다. 넓은 지도는 점유·TSDF로, 거리장은 국소 창으로 나누는 구성이 흔한 이유다.
메모리만큼 중요한 것이 갱신 시간이다. 광선이 지나간 칸을 모두 "비어 있음"으로 갱신해야 하므로, 1초에 방문하는 칸 수는 (점 수 × 광선 길이 ÷ 해상도)다. 초당 20만 점(소형 360° LiDAR급)·평균 광선 15 m로 두고, 칸 방문 한 번의 비용을 단일 코어 기준으로 가정했다(조밀 5 ns, 옥트리 100 ns, TSDF 해시 20 ns).
| 해상도 | 칸 방문/s | 조밀 격자 | OctoMap | TSDF 해시 |
|---|---|---|---|---|
| 0.2 m | $1.5\times10^{7}$ | 0.08 코어 | 1.5 코어 | 0.3 코어 |
| 0.1 m | $3.0\times10^{7}$ | 0.15 코어 | 3.0 코어 | 0.6 코어 |
| 0.05 m | $6.0\times10^{7}$ | 0.30 코어 | 6.0 코어 | 1.2 코어 |
나무 구조는 메모리를 아끼는 대신 칸 하나를 찾는 데 시간이 든다. 이 가정에서 0.1 m 옥트리는 코어 세 개를 다 사용해야 LiDAR를 따라간다. 실무의 대응은 점을 솎아 내기, 자유 공간 광선의 길이 자르기, 같은 칸을 지나는 광선 묶기, 그래픽 처리 장치(GPU)로 옮기기다. 수치는 교육용 가정이며, 실제 비용은 구현과 컴퓨터마다 열 배 가까이 다르다. 연산 예산의 전력 환산은 2.9.8을 사용한다.
7.13.8 메시와 신경 장면 표현 — 점검과 디지털 트윈으로
신경 장면 표현은 장면을 칸이나 점이 아니라 함수로 저장한다. NeRF(Mildenhall 외, 2020)는 위치와 시선 방향을 넣으면 밀도와 색을 내는 신경망을 영상으로 학습하고, 광선을 따라 적분해 새 시점의 영상을 그린다. 3D 가우시안 스플래팅(Kerbl 외, 2023)은 장면을 수백만 개의 3차원 가우시안(위치·모양·불투명도·색)으로 두고 래스터화로 그려, 학습과 렌더링이 NeRF보다 훨씬 빠르다. 둘 다 입력 영상의 카메라 포즈를 알아야 하며, 보통 구조-기반 사진측량이나 비행 중 SLAM의 포즈를 사용한다.
드론에 맞는 용도은 비행이 끝난 뒤의 재구성이다.
- 점검 기록과 디지털 트윈 — 교량·플랜트·송전 설비를 사람이 원하는 시점에서 다시 본다. 반사·얇은 구조·식생처럼 메시로 깨지기 쉬운 대상을 사실적으로 그린다(디지털 트윈의 시험평가 용도은 8.19).
- 사고·재난 현장 기록 — 짧은 비행으로 현장을 남기고 나중에 여러 시점에서 검토한다(14.7).
- 학습·시뮬레이션 자료 — 실제 장면을 사진실사 시뮬레이터의 배경으로 사용한다(8.28).
실시간 비행용 SLAM으로는 아직 한계가 뚜렷하다. NeRF·가우시안을 SLAM에 넣은 연구(iMAP, NICE-SLAM, SplaTAM, Gaussian Splatting SLAM 등)는 대부분 실내 방 규모, 데스크톱 GPU에서 보고되었다 (2026년 중반 기준 확인 필요). 비행에 사용하려면 다섯 문제가 남는다.
| 문제 | 왜 비행에 걸리나 |
|---|---|
| 연산·전력 | GPU 학습·렌더링이 수십 W급 연산을 요구해 7.13.6의 체공 계산을 다시 깎는다 |
| 자유·점유·미관측의 보장 | 함수는 "보이는 모습"을 맞출 뿐, 빈 공간이 정말 비었는지 보장하지 않는다. 허공에 뜬 가짜 조각(floater)이 생긴다 |
| 계량 정확도 | 보기 좋은 것과 치수가 맞는 것은 다르다. 측량 산출물은 검사점 검증을 거친 사진측량·LiDAR가 맡는다(6.6.9) |
| 동적 물체와 조명 | 정적 장면 가정. 사람·차량·그림자가 흔적을 남긴다 |
| 검증 | 신경망 표현의 실패를 어떻게 탐지하고 입증하나 — AI 보증의 문제(7.4·20.10) |
견해: 2026년 현재 신경 장면 표현은 비행이 끝난 뒤의 기록·시각화 도구로 자리를 잡아 가고 있고, 장애물 회피의 지도는 점유·TSDF·ESDF가 맡는 구성이 당분간 이어질 것으로 본다. 근거는 두 가지다. 첫째, 비행 안전에는 "모름"을 정직하게 표현하는 지도가 필요한데(7.1.2) 신경 표현은 그 의미를 보장하지 않는다. 둘째, 7.13.6이 보인 대로 소형 기체의 연산·질량 여유가 작다. 반대 입장은 학습한 장면 표현이 의미·형상·외관을 한 번에 포함해 탐사·점검의 자율성을 크게 높일 것이라고 본다. 그 방향의 연구가 빠르게 늘고 있어 이 판단은 몇 년 안에 바뀔 수 있다.
7.13.9 다중 기체 지도 병합 — 요지
여러 기체가 한 공간을 나눠 지도를 만들면 각자의 좌표계를 하나로 맞추는 일이 생긴다. 출발 전에 공통 기준(GNSS, 기체 사이 UWB 거리, 같은 출발 패드)을 잡거나, 비행 중 기체 사이의 루프 폐쇄(다른 기체가 본 곳을 알아봄)로 상대 좌표를 구한다. 기체 사이의 착각은 한 기체 안의 착각보다 걸러 내기 어렵다. 상대 좌표에 대한 사전 정보가 없어 7.13.5.3의 관문을 사용할 수 없기 때문이다. 그래서 여러 후보가 서로 맞는지를 보는 쌍별 일관성 검사(PCM)가 다중 로봇 SLAM에서 나왔다(Mangelson 외, 2018). 공개된 체계로는 Kimera-Multi(Tian 외, 2022) 같은 분산형이 있다.
통신이 병목이다. 원시 점군은 초당 20만 점 × 16 B로 약 25.6 Mbit/s다. 4.10.6의 이상 모형에서 5홉 중계의 종단 처리량이 3.3 Mbit/s이므로 8배 가까이 넘는다. 그래서 기체들은 키프레임의 요약 기술자(수 kB, 가정)와 압축한 부분 지도만 주고받는다. 기술자를 초당 하나씩 보내면 수십 kbit/s로 줄어든다. 이종 로봇 팀의 지도 정합(공중 시점과 지상 시점의 차이)은 7.15, 동종 군집의 통신 제약은 7.9이 이어서 다룬다.
7.13.10 워크스루 — 2 kg 쿼드의 교량 하부 점검
교량 상판 아래는 GNSS가 막히고 질감이 단조롭다. 1.7.7.1의 2 kg 쿼드로 교각과 상판 하부를 점검한다고 하자. 가정은 다음이다.
| 항목 | 값(가정) |
|---|---|
| 경로 | 상판 아래 왕복, 3 m/s로 10분 — 1,800 m |
| 구조물과의 이격 | 2 m(충돌 여유) |
| 결함 위치 요구 | 교량 좌표에서 ±0.5 m |
| 국소 지도 | 표면 3,000 m²(상판 하부·교각), 해상도 0.1 m |
| 드리프트율 | LIO 0.5 %(긴 상판 아래의 반복 구조 감안) (가정) |
① 센서와 체공. 어둡고 질감 없는 상판 아래는 LIO가 맞다. 체공은 13.2분이다(7.13.6). 이 값은 20 % 예비를 이미 뺀 것이므로 임무 10분이 들어가고 여유가 3.2분 남는다. 같은 경로를 VIO로 날면 15.7분으로 여유가 크지만 상판 그늘에서 특징이 사라질 위험을 진다.
② 충돌 여유는 국소 일관성이 정한다. 0.5 % 드리프트면 1,800 m 끝에서 전역 오차가 9 m다. 그러나 장애물 회피에 사용하는 것은 최근 40 m 안에서 만든 국소 지도이고, 그 안의 상대 오차는 $0.005\times40=0.2$ m다. 이격 2 m에 비해 작다. 비행 안전에는 전역 정확도가 아니라 국소 일관성이 필요하다는 7.13.2의 구분이 숫자로 드러난다.
③ 결함 위치는 전역 정확도가 정한다. 9 m는 ±0.5 m 요구의 18배다. 루프 폐쇄 하나는 최대 오차를 약 3분의 1로 줄이고 오차를 루프의 한가운데에 남긴다(7.13.5.2). 장난감 문제의 비율(루프 한가운데 RMS가 오도메트리 끝점 RMS의 약 0.34배)을 그대로 사용하면, 200 m 루프의 오도메트리 끝점 오차 1.0 m가 한가운데 0.34 m로 준다. 그래서 약 200 m마다 이미 지난 교각을 다시 보도록 경로를 짜고, 교각에 표지(지상 기준점)를 붙여 교량 좌표에 묶는다. 이 비율은 장난감 모형의 값이어서 실제 경로에서는 시험으로 확인한다.
④ 지도와 연산. 국소 TSDF는 0.1 m에서 약 480만 칸, 38 MB다. 계획기용 ESDF 창을 40 m × 40 m × 20 m로 잡으면 0.1 m 조밀 실수로 128 MB이고, 20 m × 20 m × 10 m면 16 MB다. 갱신은 TSDF 해시 0.6 코어(가정 비용)로 탑재 컴퓨터가 감당한다. 0.1 m 옥트리는 3 코어가 들어 점을 솎아야 한다.
⑤ 납품 지도는 따로 만든다. 10분 동안의 원시 점군은 $2\times10^{5}\times600=1.2\times10^{8}$점, 점당 16 B로 약 1.9 GB다. 비행 중에는 기록만 하고, 지상에서 루프 폐쇄와 기준점을 넣어 다시 풀어 측량 산출물을 만든다(6.6). 신경 장면 표현으로 점검 기록을 남긴다면 그것도 이 단계의 일이다.
결론은 하나다. 같은 비행에서 탑재 SLAM은 국소 지도로 기체를 보호하고, 후처리는 전역 지도로 결함 위치의 정확도를 확보한다. 둘을 한 지도에 맡기려는 설계가 흔한 실패다.
7.13.11 설계 트레이드오프 — 전역 지도를 비행에 얼마나 사용하는가
① 국소 오도메트리와 국소 지도만. 루프 폐쇄 없이 VIO·LIO와 기체 둘레의 지도만으로 난다. 단순하고 지도가 뛰지 않으며, 가짜 루프 폐쇄의 위험이 없다. 같은 곳으로 돌아가거나 오래 나는 임무에서 오차가 쌓인다. 단거리 점검·실내 비행·귀환이 짧은 임무에 맞다.
② 완전한 SLAM(루프 폐쇄 포함). 전역으로 일관된 지도를 비행 중에 유지해 귀환과 재방문이 정확하다. 연산·메모리가 크고, 가짜 루프 폐쇄가 지도를 휘게 할 수 있으며, 지도 좌표의 점프를 제어에서 떼어 놓아야 한다(7.13.5.4). 넓은 지하·건물 탐사(7.14)에 맞다.
③ 사전 지도에 대한 위치 인식. 미리 만든 지도(이전 비행·BIM 도면)에 정합해 절대 위치를 얻는다(4.7.6·4.10.4.4). 반복 운용(창고·플랜트)에서 정확하고 예측 가능하다. 지도 제작·갱신 비용이 들고, 지도에 없는 변화에 틀린다.
④ 지상·클라우드로 넘기기. 기체는 오도메트리만 돌리고 지도를 지상에서 만든다. 탑재 연산이 가장 작다. 통신이 끊기면 지도도 끊기므로 실내·지하에서는 맞지 않는다(7.13.9의 처리량).
| 방식 | 맞는 임무 | 대가 | 안전 논증 |
|---|---|---|---|
| ① 국소만 | 짧은 점검·실내 | 장거리 드리프트 | 가장 단순 — 국소 일관성만 입증 |
| ② 완전 SLAM | 넓은 미지 공간 탐사 | 연산·가짜 루프 | 루프 폐쇄를 제어에서 분리해야 |
| ③ 사전 지도 | 반복 운용 시설 | 지도 유지 비용 | 지도 품질 관리가 입증 대상 |
| ④ 지상 처리 | 통신이 확실한 야외 | 링크 의존 | 링크 상실 절차와 묶임(3.11) |
견해: 비행 안전은 ①의 국소 체계에 맡기고, 전역 일관성(②③)은 그 위에 임무 품질의 층으로 추가하는 구조가 합리적이라고 본다. 근거는 셋이다. 첫째, 충돌 여유는 국소 일관성만으로 정해진다(7.13.10 ②). 둘째, 가짜 루프 폐쇄는 걸러 내도 0이 되지 않는다(7.13.5.3). 비행 안전이 거기에 걸리면 그 확률을 입증해야 하는데 방법이 정착하지 않았다. 셋째, 런타임 보증의 감시기를 단순한 국소 거리 측정에 둘 수 있다(7.1.9·7.8). 반대로 사전 지도가 정확하고 환경이 잘 통제된 시설(③)에서는 전역 지도를 비행에 직접 사용하는 편이 더 효율적이라는 입장도 타당하다. 그때는 지도 품질 관리가 안전 논증의 중심이 된다.
7.13.12 세 축 비교
| 항목 | 군용 드론 | 민간 UAS | AAM |
|---|---|---|---|
| 주 용도 | GNSS 거부 환경의 항법 연속, 건물·지하 시설 정찰 지도 | 교량·플랜트·창고 점검, 실내 비행, 디지털 트윈 | 버티포트 주변 장애물·착륙면 확인, 장래 자율 비행 |
| 센서 성향 | 수동 센서 선호(능동 방사의 노출, 5.6), 저시정 대비 | 가격·질량·체공으로 VIO·LIO 선택 | 인증 가능한 센서와 사전 정밀 지도 |
| 지도의 지위 | 정보 자산 — 노획 시 보호·소거(8.17) | 납품 산출물과 비행용 지도의 분리 | 인증 대상 데이터(지도 품질 관리) |
| 루프 폐쇄 | 통신 두절 속 자립 — 기체 안에서 처리 | 임무 품질용, 후처리로 보완 | 비행 중 전역 점프를 허용하기 어렵다 |
| 보증 | 임무 위험 감수 범위에서 | 운용 위험 평가(17.17) | 소프트웨어·AI 보증(8.8·20.10) |
| 관련 장 | 5.8·8.17 | 14.4·14.11·14.9 | 15.8·15.23 |
7.13.13 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 |
|---|---|---|---|
| ROS REP 105 Coordinate Frames for Mobile Platforms | ROS 커뮤니티(REP) | map·odom·base_link 좌표계의 뜻 — 연속한 odom과 뛸 수 있는 map의 분리 | 9.6 |
| ROS REP 147 A Standard Interface for Aerial Vehicles | ROS 커뮤니티(REP) | 공중 기체의 상태·명령 인터페이스 관례 | 9.6 |
| MAVLink ODOMETRY(#331)·VISION_POSITION_ESTIMATE(#102) | MAVLink | 외부 추정(SLAM) 결과를 오토파일럿에 넣는 메시지. ODOMETRY는 품질 값과 재설정 계수를 둔다 | 9.5 |
ASPRS LAS 1.4 (개정 번호 확인 필요) | ASPRS | 점군 교환 형식 — 납품 지도의 표준 형식 | 9.17 |
ASTM E2807(E57) (판 확인 필요) | ASTM | 3차원 영상 자료(점군·영상) 교환 형식 | 9.17 |
OGC 3D Tiles (판 확인 필요) | OGC | 대용량 메시·점군의 스트리밍 — 디지털 트윈 배포 | 9.17 |
ISO 16739-1(IFC) (판 확인 필요) | ISO | 건물 정보 모델(BIM) — 사전 지도와 디지털 트윈 정합의 기준 | 9.17 |
SLAM 알고리즘 자체를 규정한 국제 표준은 없다. 위 문서는 SLAM의 입출력과 좌표의 약속이다. 유료 표준은 구조 수준으로만 다뤘다. 규격의 지형은 9.1, 색인은 A.6다.
7.13.14 관련 규제·인증 요구와의 연결
| 요구 | 이 장과의 연결 | 상세 |
|---|---|---|
| GNSS 비의존 항법을 사용하는 운용 승인 | SLAM 상태 추정의 실패 감지·건강 지표를 운용 위험 평가에 넣는다 | 17.17·14.15·4.7.8 |
| 소프트웨어 보증 | 반복 최적화의 수렴·시간 상한, 데이터에 따라 달라지는 실행 경로 — 전통 보증 목표를 맞추기 어렵다. 런타임 보증으로 감싸는 구조 | 8.8·7.8 |
| 학습 기반 구성요소 | 학습형 장소 인식·신경 장면 표현은 AI 보증의 대상 | 7.4·20.10 |
| 공간정보·보안 | 3차원 지도·시설 내부 지도의 제작·반출·공개 제한 | 18.20·18.8 |
| 개인정보 | 재구성 모델에 사람·차량 번호판·주거 내부가 포함된다 | 18.17 |
| 촬영·비행 승인 | 한국에서 촬영을 수반하는 비행의 허가 | 18.6 |
| 노획 시 데이터 보호 | 군용 기체의 지도는 정보 자산 — 암호화·소거 | 8.17 |
신경 장면 표현은 영상의 외관을 그대로 포함한다는 점에서 점유 격자보다 개인정보 위험이 크다. 납품 전에 사람·번호판을 가리는 처리가 필요할 수 있다 (나라별 기준 확인 필요).
7.13.15 함정과 한계
| 오해 | 실제 | 더 볼 곳 |
|---|---|---|
| "SLAM을 켜면 지도가 정확하다" | 비행용 SLAM의 목표는 국소 일관성이다. 전역 정확도는 루프 폐쇄·기준점·후처리가 만든다 | 7.13.2·7.13.10 |
| "루프 폐쇄가 오차를 지운다" | 오차를 경로에 나눈다. 루프 한가운데에 남고, 루프가 길면 많이 남는다 | 7.13.5.2 |
| "가짜 루프 폐쇄는 관문이 거른다" | 드리프트만큼만 틀린 착각은 관문을 통과해 지도를 더 나쁘게 만든다 | 7.13.5.3 |
| "SLAM 출력을 위치 제어에 그대로 넣는다" | 루프 폐쇄 점프가 급기동이 된다. odom과 map을 나눈다 | 7.13.5.4 |
| "필터의 공분산을 보호 수준으로 사용한다" | 주변화의 선형화 고정이 과신을 만든다 | 7.13.4.2·4.7.8 |
| "LiDAR는 무조건 VIO보다 낫다" | 소형 멀티콥터에서는 질량이 체공을 27 % 깎는다. 긴 복도에서는 퇴화한다 | 7.13.6·4.10.4.2 |
| "옥트리는 언제나 작다" | 작은 공간·거친 해상도에서는 조밀 격자가 작고, 옥트리는 갱신이 느리다 | 7.13.7.2 |
| "ESDF가 0이 아니면 비어 있다" | 미관측 칸은 거리장이 모른다. 따로 표지하지 않으면 계획기가 안 본 벽으로 간다 | 7.13.7.1 |
| "가우시안 스플래팅으로 장애물을 피한다" | 보이는 모습을 맞출 뿐 빈 공간을 보장하지 않는다 | 7.13.8 |
이 장의 한계도 밝힌다.
- 장난감 문제는 2차원·원형·독립 잡음이다. 실제 오도메트리 오차는 환경에 따라 상관되고 3차원 회전이 섞인다. 비율(루프 한가운데 0.34배 등)은 이 모형의 값이다.
- 메모리·갱신 상수는 가정이다. 기울기(부피 대 표면, 1/$r^{3}$ 대 1/$r^{2}$)만 일반적이다.
- 체공 계산은 호버 기준이다. 전진 비행과 바람, 열 관리(1.25)는 넣지 않았다.
- 신경 장면 표현의 실시간 성능은 빠르게 바뀌는 연구 영역이라 확인하지 못했다.
7.13.16 체크포인트·연구 질문
체크포인트
- 비행용 탑재 SLAM과 측량 지도 제작의 정확도 요구를 "국소 일관성"과 "전역 정확도"로 구분해 설명하라. 교량 점검 워크스루에서 둘은 각각 무엇을 정했나?
- 팩터 그래프의 정규 방정식에서 $\mathbf H$가 성긴 이유는 무엇이며, 그것이 실시간 계산에 왜 중요한가?
- 슬라이딩 윈도에서 오래된 상태를 "버리기"와 "주변화"는 무엇이 다른가? 주변화의 두 가지 대가를 말하라.
- 원형 경로 장난감 문제에서 루프 폐쇄 뒤 오차가 루프의 한가운데에서 가장 큰 이유를 설명하라.
- 3 m 어긋난 루프 폐쇄가 카이제곱 관문을 통과하는 이유는 무엇이며, 그 결과 지도는 어떻게 되는가?
- 해상도를 0.2 m에서 0.1 m로 줄이면 조밀 격자와 옥트리의 메모리는 각각 몇 배가 되는가? 계획기용 ESDF를 국소 창으로 두는 이유는?
연구 질문 — 이 장에서 파생되는 열린 주제(25.7에 모은다)
- 루프 폐쇄의 무결성 — 드리프트 크기의 착각을 가려내는 지표(기하 검증의 퇴화·쌍별 일관성·의미 정보)를 결합해, 가짜 루프 폐쇄 확률의 상한을 비행 안전 논증에 사용할 수 있을 만큼 정량화할 수 있는가(7.8·8.7과 연결)?
- 소형 기체의 지도 표현 최적화 — 질량·전력·메모리 예산이 정해진 기체에서 계획 성능(경로 길이·성공률)을 최대화하는 해상도와 표현의 조합을 어떻게 고르는가?
- 신경 장면 표현의 안전한 사용 — 가우시안 스플래팅 같은 표현에 자유·점유·미관측의 불확실성을 정직하게 붙일 수 있는가? 그렇다면 장애물 회피에 사용할 수 있는가?
- 비행용 SLAM 평가의 표준화 — 국소 일관성(장애물 위치 오차)을 재는 공개 벤치마크와 시험 절차를 만들 수 있는가(8.19·25.5와 연결)?
1차 출처(이 장)
- Cadena, C. 외, "Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age," IEEE Transactions on Robotics 32(6), 2016.
- Dellaert, F.; Kaess, M., "Factor Graphs for Robot Perception," Foundations and Trends in Robotics 6(1–2), 2017.
- Grisetti, G.; Kümmerle, R.; Stachniss, C.; Burgard, W., "A Tutorial on Graph-Based SLAM," IEEE Intelligent Transportation Systems Magazine 2(4), 2010.
- Kaess, M. 외, "iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree," International Journal of Robotics Research 31(2), 2012.
- Forster, C.; Carlone, L.; Dellaert, F.; Scaramuzza, D., "On-Manifold Preintegration for Real-Time Visual-Inertial Odometry," IEEE Transactions on Robotics 33(1), 2017.
- Hesch, J. A. 외, "Camera-IMU-based localization: Observability analysis and consistency improvement," IJRR 33(1), 2014.
- Gálvez-López, D.; Tardós, J. D., "Bags of Binary Words for Fast Place Recognition in Image Sequences," IEEE Transactions on Robotics 28(5), 2012. Kim, G.; Kim, A., "Scan Context: Egocentric Spatial Descriptor for Place Recognition within 3D Point Cloud Map," IROS 2018.
- Sünderhauf, N.; Protzel, P., "Switchable Constraints for Robust Pose Graph SLAM," IROS 2012. Mangelson, J. G. 외, "Pairwise Consistent Measurement Set Maximization for Robust Multi-Robot Map Merging," ICRA 2018. Yang, H. 외, "Graduated Non-Convexity for Robust Spatial Perception," IEEE Robotics and Automation Letters 5(2), 2020.
- Xu, W. 외, "FAST-LIO2: Fast Direct LiDAR-Inertial Odometry," IEEE Transactions on Robotics 38(4), 2022. Shan, T. 외, "LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping," IROS 2020.
- Hornung, A. 외, "OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees," Autonomous Robots 34, 2013.
- Curless, B.; Levoy, M., "A Volumetric Method for Building Complex Models from Range Images," SIGGRAPH 1996. Oleynikova, H. 외, "Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning," IROS 2017. Han, L. 외, "FIESTA: Fast Incremental Euclidean Distance Fields for Online Motion Planning of Aerial Robots," IROS 2019.
- Mildenhall, B. 외, "NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis," ECCV 2020. Kerbl, B. 외, "3D Gaussian Splatting for Real-Time Radiance Field Rendering," ACM Transactions on Graphics 42(4), 2023.
- Tian, Y. 외, "Kimera-Multi: Robust, Distributed, Dense Metric-Semantic SLAM for Multi-Robot Systems," IEEE Transactions on Robotics 38(4), 2022.
- ROS REP 105·REP 147(ros.org의 REP 색인), MAVLink 메시지 정의(common.xml — ODOMETRY #331, VISION_POSITION_ESTIMATE #102; 메시지 번호는 생성된 바인딩 문서로 확인, 2차).
- Livox Mid-360 사양 페이지(livoxtech.com — 265 g·평균 6.5 W, 제조사 공개 주장치). 초당 점 수 20만은 판매처 자료로만 확인했다(2차).
- 수식과 장난감 문제는 위 문헌의 표준 정식화를 따랐고, 수치는 모두 이 장의 계산이다. 연구 체계(LVI-SAM·R3LIVE·FAST-LIVO, iMAP·NICE-SLAM·SplaTAM·Gaussian Splatting SLAM)는 이름과 방향만 적었으며 성능 수치는 옮기지 않았다.
출처를 찾고 판을 추적하는 방법은 0.9에서 다룬다.
다음 장: 7.14에서는 이 장의 지도를 아직 모르는 공간을 채우는 일에 사용한다. 지도의 경계(프런티어)와 정보 이득으로 다음에 볼 곳을 고르는 법, 탐사 완료의 정의, 배터리로 정해지는 "돌아올 수 있는 영역"과 통신 두절, 그리고 DARPA 지하 도전(SubT)에서 공중 로봇이 한 일과 교훈을 다룬다.