복셀 맵
복셀 맵은 3D 공간을 정육면체(“부피 요소”)의 규칙적인 격자로 이산화하며, 각 정육면체는 환경의 지역적 속성 — 점유 확률, 절단된 부호 거리(TSDF), 색상, 강도, 또는 의미론적 레이블 — 을 저장합니다. 포인트 클라우드가 표면 샘플들의 모음이라면, 복셀 맵은 공간에 대한 필드입니다 — 표면뿐 아니라 빈 공간과 미지의 공간도 표현할 수 있으며, 동일 영역에 대한 반복된 측정치를 중복으로 누적하는 대신 융합합니다.
복셀이 저장하는 것
- 점유도: 복셀당 이며, 로그 오즈 베이지안 규칙으로 갱신됩니다.
이렇게 각 새로운 측정치는 근거를 더하거나 뺍니다. 센서 광선을 따라 있는 복셀들은 빈 것으로, 광선 끝점의 복셀은 점유된 것으로 갱신됩니다.
- TSDF: 복셀 중심에서 가장 가까운 표면까지의 부호 거리로, 절단 밴드 로 클리핑됩니다.
부호는 빈 쪽과 점유된 쪽을 구분합니다. 연속된 깊이 프레임들은 복셀당 가중 이동 평균으로 융합되며(KinectFusion), 표면은 Marching Cubes를 이용해 영교차점에서 추출됩니다.
- 색상 / 의미론: 의미론적 매핑을 위한 복셀별 외형 또는 클래스 레이블.
메모리 다스리기
부피 에 대해 해상도 인 밀집 격자는 의 메모리 비용이 듭니다 — 센티미터 해상도의 대규모 장면에는 감당하기 어렵습니다. 표준적인 해결책:
- 옥트리 (OctoMap): 공간을 재귀적으로 분할합니다. 크고 동질적인 영역(비어 있거나 알 수 없는 영역)은 하나의 거친 노드로 표현되고, 점유된 표면은 세밀한 리프로 표현됩니다. 적응형 해상도와 확률적 점유도를 결합한 방식이며, 로보틱스에서 사실상의 표준 3D 점유 맵입니다.
- 복셀 해싱: 관측된 표면 근처에서만 복셀 블록(예: 복셀)을 할당하며, 정수 블록 좌표의 공간 해시로 인덱싱합니다. 조회를 제공하고 메모리가 부피가 아니라 표면적에 비례합니다. 대규모 실시간 TSDF 융합(Nießner 등의 복셀 해싱, InfiniTAM)의 기반입니다.
- 계층적 희소 격자 (OpenVDB 스타일): 그래픽스 분야에서 온 격자의 트리 구조로, 세밀한 해상도에서의 희소 저장을 위해 현대적인 매핑 백엔드에서 사용됩니다.
트레이드오프
- 장점: 명시적인 빈/미지 공간(충돌 검사와 탐색에 필수적), 얼마나 자주 재관측되든 영역당 유한한 메모리, 원리에 기반한 확률적 융합, 상수 시간 공간 쿼리.
- 단점: 해상도가 복셀 크기로 고정됨(세밀한 디테일은 메모리를 3차로 증가시킴), 이산화 아티팩트, 그리고 견고한 격자는 루프 클로저 후 맵 변형을 어색하게 만듭니다 — 드리프트를 보정하려면 재통합이나 서브맵 이동이 필요하며, 이것이 변형 가능한 서펠 맵이 밀집 SLAM에서 주요 경쟁자인 이유입니다.
SLAM에서의 의미
- 복셀 맵은 SLAM에서 지도의 로보틱스적 활용으로 가는 다리입니다: 경로 계획, 장애물 회피, 탐색 모두 “이 영역이 비어 있는가?”를 물어야 하는데, 이는 포인트 클라우드로는 답할 수 없는 질문입니다.
- TSDF 복셀 격자는 밀집 RGB-D SLAM(KinectFusion과 그 후속작들)의 기반이며, 레이캐스팅을 통한 프레임-대-모델 추적에 사용되는 매끄러운 표면 모델을 제공합니다.
- OctoMap 스타일의 점유 맵은 SLAM 시스템이 내비게이션 스택에 데이터를 공급할 때(예: ROS에서)의 표준 출력 표현입니다.