Booil Jung

coVoxSLAM

자율 로봇 기술이 발전함에 따라, 로봇이 주변 환경과 상호작용하는 방식 또한 고도화되고 있다. 과거의 로봇 시스템이 주로 자신의 위치를 추정하는 데 만족했다면, 현대의 자율 로봇은 복잡한 환경을 항해하고, 경로를 계획하며, 동적으로 나타나는 장애물을 회피하고, 궁극적으로는 환경에 대한 이해를 바탕으로 정교한 의사결정을 내려야 한다. 이러한 고차원적 작업을 수행하기 위해서는 단순히 몇 개의 랜드마크로 구성된 희소(sparse) 맵만으로는 부족하다. 희소 맵은 위치 추정(localization)에는 효과적일 수 있으나, 환경의 구체적인 기하학적 형태나 표면의 연결성에 대한 정보를 제공하지 못하기 때문이다.

이러한 기술적 요구사항에 부응하기 위해 등장한 것이 바로 Dense SLAM(Simultaneous Localization and Mapping)이다. Dense SLAM 시스템은 센서가 관측하는 모든 픽셀 정보를 활용하여 환경의 상세하고 밀도 높은 3D 모델을 구축한다. 이는 로봇에게 단순한 점의 집합이 아닌, 벽, 바닥, 장애물 등의 실제 구조물에 가까운 풍부한 3D 환경 정보를 제공한다. 그러나 이러한 상세함은 막대한 계산량이라는 대가를 요구한다. 실시간으로 입력되는 방대한 양의 센서 데이터를 처리하고, 이를 일관된 3D 모델로 통합하는 과정은 상당한 컴퓨팅 자원을 소모하여, 특히 자원이 제한된 모바일 로봇 플랫폼에서는 실시간 성능을 확보하기 어려운 본질적인 문제를 안고 있다. 이러한 계산적 병목 현상은 자연스럽게 하드웨어 가속, 특히 GPU(Graphics Processing Unit)를 활용한 해결책 모색으로 이어졌다.

최근 SLAM 연구는 NeRF(Neural Radiance Fields)나 3D Gaussian Splatting (3DGS)과 같은 신경망 기반의 암시적 표현(implicit representation)을 활용하여 사진과 같은 렌더링 품질을 달성하는 방향으로도 발전하고 있다. 하지만 이러한 기법들은 아직 계산 비용이 높고, 전통적인 기하학 기반 접근법은 여전히 정확성, 강건성, 그리고 실시간 성능 측면에서 중요한 위치를 차지하고 있다. coVoxSLAM은 바로 이 기하학 기반의 체적(volumetric) 맵핑 접근법을 GPU 가속을 통해 극한으로 끌어올린 대표적인 사례라 할 수 있다.

SLAM의 근본적인 어려움은 ‘동시적(Simultaneous)’이라는 단어에 내재되어 있다. 로봇은 완벽한 지도를 가지고 위치를 추정하는 것도 아니고, 완벽한 자신의 위치를 알고 지도를 그리는 것도 아니다. 두 가지를 동시에, 점진적으로 수행해야 한다. 이 과정에서 로봇이 자신의 움직임을 추정하는 주행 거리계(odometry)는 필연적으로 작은 오차를 포함하게 된다. 이 작은 오차는 로봇이 이동함에 따라 계속해서 누적되며, 시간이 지나면 전체 궤적과 지도를 심각하게 왜곡시키는 ‘무한정 누적되는 오차(unbounded errors)’ 문제로 이어진다.

이 누적 오차 문제를 해결하고, 대규모 환경에서도 전역적으로 일관된(globally consistent) 지도를 생성하기 위한 핵심 열쇠는 바로 ‘루프 클로저(Loop Closure)’이다. 루프 클로저는 로봇이 과거에 방문했던 장소를 다시 인식하는 과정이다. 예를 들어, 건물 복도를 한 바퀴 돌아 출발점으로 돌아왔을 때, 시스템이 현재 위치가 출발점과 동일한 장소임을 알아채는 것이다. 이 재인식은 “궤적의 시작점과 현재 지점은 사실 동일한 위치”라는 강력한 공간적 제약(spatial constraint)을 제공한다. 이 제약을 활용하면, 그동안 누적되었던 모든 오차를 궤적 전체에 걸쳐 재분배하고 보정하여 맵의 왜곡을 바로잡을 수 있다.

이러한 루프 클로저 제약을 비롯한 다양한 공간적 제약들(예: 연속된 프레임 간의 움직임)을 수학적으로 통합하고, 전체 시스템의 오차를 최소화하는 최적의 해(로봇의 궤적과 맵)를 찾는 과정이 바로 백엔드(back-end)에서 수행하는 ‘포즈 그래프 최적화(Pose Graph Optimization)’이다. 포즈 그래프 최적화는 SLAM의 전역 일관성을 보장하는 표준적이고 강력한 기법이지만, 맵의 크기가 커질수록 그래프의 노드와 엣지가 기하급수적으로 증가하여 최적화에 필요한 계산량이 방대해지는 또 다른 문제를 야기한다.

증가하는 Dense SLAM의 계산적 요구와 전역 최적화의 복잡성을 해결하기 위해, 연구자들은 GPU의 병렬 처리 능력에 주목하기 시작했다. 초기 SLAM 시스템들은 GPU를 프론트엔드(front-end)의 특정 작업, 예를 들어 특징점 추출이나 스캔 매칭(scan matching)과 같은 일부 계산을 가속하는 데 제한적으로 사용하였다. 그러나 시스템의 전역 일관성을 책임지는 핵심부인 백엔드, 특히 포즈 그래프 최적화는 여전히 CPU에서 순차적으로 처리되는 경우가 많았다. 이는 GPU가 아무리 프론트엔드를 빠르게 처리하더라도, 결국 CPU에서 수행되는 백엔드 최적화가 전체 파이프라인의 성능을 좌우하는 병목 지점이 되는 결과를 낳았다.

이러한 한계를 근본적으로 돌파하기 위해 등장한 것이 바로 coVoxSLAM이다. 아르헨티나 부에노스아이레스 대학(University of Buenos Aires) 소속의 Emiliano Höss와 Pablo De Cristóforis에 의해 개발된 이 시스템은, “완전한 GPU 가속 SLAM(entirely GPU accelerated SLAM)”을 표방한다. 이는 단순히 프론트엔드의 일부를 가속하는 것을 넘어, 계산 집약적인 백엔드의 포즈 그래프 최적화까지 포함한 SLAM 파이프라인 전체를 GPU 상에서 처리하겠다는 야심 찬 목표를 제시한다.

본 고찰은 coVoxSLAM이 (1) 프론트엔드부터 백엔드까지 끊김 없이 이어지는 완전한 GPU 가속 파이프라인을 어떻게 설계하고 구축했는지, (2) SoA(Structure of Arrays)와 같은 GPU 아키텍처에 극도로 친화적인 데이터 구조를 도입하여 메모리 접근 효율성을 어떻게 극대화했는지, 그리고 (3) 서브맵(submap) 기반의 점진적 전역 최적화를 통해 대규모 환경에서도 실시간으로 일관성 있는 Dense 맵을 생성하는 핵심 원리를 심층적으로 분석한다. 이를 통해 coVoxSLAM이 기존 Dense SLAM 기술이 직면했던 성능의 한계점을 어떻게 극복하고 새로운 가능성을 제시했는지 명확히 밝히고자 한다.

coVoxSLAM의 아키텍처는 실시간 처리와 계산 집약적 최적화라는 상이한 요구사항을 조화시키기 위해 정교하게 설계되었다. 시스템은 크게 프론트엔드와 백엔드로 나뉘며, 이 둘은 비동기적으로 동작하여 전체 처리량과 안정성을 극대화한다.

coVoxSLAM의 가장 큰 구조적 특징 중 하나는 프론트엔드와 백엔드 사이에 두 개의 큐(Queue)를 배치하여 데이터 흐름을 관리하는 것이다. 이 이중 큐 구조는 시스템의 신뢰성(reliability)과 강건성(robustness)을 높이기 위한 의도적인 설계 결정이다. 첫 번째 Sensor Queue는 카메라나 LiDAR와 같은 센서로부터 들어오는 원시 데이터를 임시 저장하고, 프론트엔드가 이를 순차적으로 처리하도록 한다. 두 번째 Submap Queue는 프론트엔드에서 생성이 완료된 서브맵을 백엔드로 전달하는 역할을 한다.

이러한 비동기식 큐 기반 아키텍처는 실시간성이 무엇보다 중요한 프론트엔드와, 시간이 다소 걸리더라도 정확한 계산이 중요한 백엔드의 작업을 효과적으로 분리한다. 예를 들어, 백엔드가 대규모 루프 클로저가 포함된 복잡한 포즈 그래프 최적화를 수행하는 데 수백 밀리초가 소요되더라도, 프론트엔드는 Sensor Queue에서 계속해서 새로운 데이터를 가져와 맵핑 작업을 끊김 없이 수행할 수 있다. 프론트엔드에서 새로운 서브맵 생성이 완료되면, 이는 Submap Queue에 추가되고, 백엔드는 자신의 작업이 끝나는 대로 큐에서 새로운 서브맵을 가져와 다음 최적화를 수행한다. 이 설계는 한 모듈의 지연이 다른 모듈의 실행을 막는 동기식 시스템의 한계를 극복하고, 전체 시스템의 처리량을 극대화하며, 예측 불가능한 계산 시간에도 불구하고 안정적인 실시간 운영을 가능하게 하는 핵심적인 역할을 한다.

coVoxSLAM의 프론트엔드는 입력되는 센서 데이터를 받아 실시간으로 3D 체적 지도를 생성하고 갱신하는 임무를 수행한다. 이 과정은 TSDF 통합, 해시 기반 복셀 관리, 그리고 서브맵 생성의 세 단계로 구성된다.

프론트엔드의 핵심 역할은 깊이 센서로부터 들어오는 데이터를 3D 공간 표현으로 변환하는 것이다. coVoxSLAM은 이를 위해 널리 사용되는 체적 표현 방식인 TSDF(Truncated Signed Distance Field)를 채택했다. TSDF는 3D 공간을 일정한 크기의 작은 정육면체인 복셀(voxel)들의 그리드로 나누고, 각 복셀의 중심점에서 가장 가까운 실제 세계의 표면(surface)까지의 거리를 저장한다. 이때 거리는 부호를 가지는데, 복셀이 표면보다 앞에 있으면 양수, 표면 뒤(내부)에 있으면 음수 값을 갖는다. ‘Truncated(절삭된)’라는 이름에서 알 수 있듯이, 표면에서 일정 거리 이상 떨어진 복셀들의 값은 최대/최소값(예: +1 또는 -1)으로 절삭된다. 이는 맵 재구성에 직접적인 관련이 적은 먼 공간의 정보를 저장하지 않아 메모리 사용량과 계산량을 줄이는 효과를 가져온다.

새로운 깊이 이미지가 들어올 때마다, 각 복셀의 TSDF 값은 새로운 측정치를 반영하여 갱신된다. 이 갱신은 일반적으로 가중 평균(weighted average) 방식을 통해 이루어진다. 이 과정을 통해 여러 프레임에 걸쳐 관측된 깊이 정보가 자연스럽게 융합되면서 센서 노이즈가 완화되고, 최종적으로는 부드럽고 정확한 표면 모델을 얻을 수 있다. 이 통합 과정은 수학적으로 다음과 같이 표현될 수 있다. $k$번째 깊이 이미지 프레임이 주어졌을 때, 특정 복셀 $x$의 통합된 TSDF 값 $D_k(x)$와 누적 가중치 $W_k(x)$는 다음과 같이 갱신된다: \(D_{k}(x) = \frac{W_{k-1}(x)D_{k-1}(x) + w_k(x)d_k(x)}{W_{k-1}(x) + w_k(x)}\)

\[W_{k}(x) = W_{k-1}(x) + w_k(x)\]

여기서 $D_{k-1}(x)$와 $W_{k-1}(x)$는 이전 프레임까지 누적된 TSDF 값과 가중치이며, $d_k(x)$와 $w_k(x)$는 현재 프레임에서 새로 계산된 TSDF 값과 그에 해당하는 가중치이다.1

대규모 환경을 TSDF로 표현할 경우, 전체 공간을 담을 거대한 3D 배열을 미리 할당하는 것은 메모리 측면에서 비효율적이다. 대부분의 공간은 비어있거나 아직 탐사되지 않았기 때문이다. coVoxSLAM은 이 문제를 해결하기 위해 ‘복셀 해싱(Voxel Hashing)’ 기법을 사용한다. 이 기법은 3D 공간을 일정한 크기의 블록(block) 단위로 나누고, 실제로 표면이 관측되어 복셀 데이터가 생성되는 블록에만 메모리를 동적으로 할당한다. 각 블록의 3D 공간 좌표는 해시 함수(hash function)를 통해 고유한 해시 키로 변환되며, 이 키를 사용하여 해시 테이블에 블록의 메모리 주소를 저장한다.

이 해시 기반 접근법 덕분에, 시스템은 맵의 크기에 상관없이 거의 일정한 시간 복잡도($O(1)$)로 특정 위치의 복셀 데이터에 접근할 수 있다. 이는 대규모 환경을 탐사하더라도 메모리 사용량을 효율적으로 관리하고, 맵이 동적으로 확장될 수 있도록 하는 핵심적인 기술이다. coVoxSLAM은 이 검증된 기법을 GPU 상에서 효율적으로 구현하여 대규모 체적 맵핑의 확장성을 확보했다.

전체 맵을 하나의 거대한 단위로 관리하고 최적화하는 것은 계산적으로 매우 부담스러운 일이다. coVoxSLAM은 이 문제를 ‘분할 정복(divide and conquer)’ 방식으로 접근한다. 즉, 전체 환경을 여러 개의 작은 서브맵(submap) 컬렉션으로 나누어 표현한다. 프론트엔드는 현재 활성화된 서브맵에 들어오는 센서 데이터를 계속 통합하다가, 해당 서브맵의 크기나 복셀 수가 미리 정해진 임계값(threshold)에 도달하면 해당 서브맵의 생성을 마감한다. 그리고 이 완성된 서브맵을 Submap Queue를 통해 백엔드로 전달하여 최적화 대상으로 삼고, 자신은 새로운 빈 서브맵을 만들어 맵핑을 계속한다.

이때, 백엔드에서의 효율적인 최적화를 위해, 업데이트된 TSDF 복셀 정보는 ESDF(Euclidean Signed Distance Field)로 변환되어 전파된다. ESDF는 각 복셀에 가장 가까운 ‘장애물’(표면)까지의 실제 유클리드 거리를 저장하는 필드다. TSDF가 표면에 수직인 방향의 거리(signed distance)를 저장하는 반면, ESDF는 방향에 상관없이 최단 거리를 저장한다. 이 ESDF는 로봇의 경로 계획이나 충돌 회피에 직접적으로 유용한 정보를 제공할 뿐만 아니라, coVoxSLAM에서는 서브맵 간의 상대적 위치를 추정하는 정합(registration) 과정에 핵심적으로 사용된다. 이는 기존의 Voxgraph 시스템에서 차용한 아이디어로, 포인트 클라우드를 직접 비교하는 ICP(Iterative Closest Point)와 같은 방식보다 계산적으로 더 효율적인, 대응점 없는(correspondence-free) 정합을 가능하게 한다.

백엔드는 Submap Queue로부터 서브맵들을 전달받아, 이들을 전역적으로 가장 일관성 있게 정렬하는 임무를 수행한다. 이 과정의 핵심은 포즈 그래프 최적화(Pose Graph Optimization)라는 비선형 최소제곱 문제 해결 기법이다.

포즈 그래프에서 각 노드(node)는 개별 서브맵의 포즈(6자유도 위치 및 방향)를 나타내는 변수다. 그리고 엣지(edge)는 두 노드(서브맵) 간의 상대적인 공간 관계를 나타내는 측정치, 즉 제약(constraint)이다. 백엔드의 목표는 이 모든 제약들을 최대한 만족시키는 각 노드의 포즈 값들을 찾는 것이다. 이는 수학적으로 다음과 같은 전역 오차 함수를 최소화하는 문제로 귀결된다: \(\mathbf{X}^* = \underset{\mathbf{X}}{\text{argmin}} \sum_{k} \mathbf{e}_k(\mathbf{x}_i, \mathbf{x}_j)^T \mathbf{\Omega}_k \mathbf{e}_k(\mathbf{x}_i, \mathbf{x}_j)\)

coVoxSLAM의 포즈 그래프는 세 가지 종류의 핵심적인 제약 조건으로 구성된다.

  1. 주행 거리계 제약 (Odometry Constraint): 시간적으로 연속된 서브맵들 간의 상대적인 움직임으로부터 얻어지는 제약이다. 이는 프론트엔드에서 프레임 간 스캔 매칭(예: ICP)을 통해 계산된 로봇의 이동량에 해당한다. 이 제약은 궤적의 기본적인 뼈대를 형성하지만, 시간이 지남에 따라 오차가 누적되는 주된 원인이기도 하다.
  2. 루프 클로저 제약 (Loop Closure Constraint): 로봇이 이전에 방문했던 장소를 재인식했을 때 생성되는 가장 강력한 제약이다. 예를 들어, 서브맵 50번이 서브맵 3번과 동일한 장소를 담고 있음을 발견하면, 이 두 서브맵 사이에 매우 신뢰도 높은 상대 포즈 제약이 추가된다. 이 제약은 그동안 누적된 모든 오차를 바로잡고 맵의 전역 일관성을 확보하는 데 결정적인 역할을 한다.
  3. 서브맵 정합 제약 (Submap Registration Constraint): 시간적으로는 떨어져 있지만 공간적으로 겹치는(overlapping) 서브맵들 사이에서 생성되는 제약이다. 예를 들어, 로봇이 평행한 두 복도를 각각 왕복했을 때, 두 복도에 해당하는 서브맵들 사이에 제약이 추가될 수 있다. 이는 완전한 루프 클로저는 아니지만, 맵의 여러 부분을 서로 연결하여 전체적인 맵의 강성(rigidity)을 높이고 왜곡을 줄이는 데 기여한다. coVoxSLAM은 이 제약을 계산하기 위해 앞서 언급한 ESDF 기반의 대응점 없는 정합 방식을 활용할 가능성이 높다.

이 세 가지 종류의 제약을 하나의 통합된 최적화 문제로 구성하고 이를 효율적으로 해결함으로써, coVoxSLAM의 백엔드는 국소적인 오차 누적을 억제하고 전역적으로 일관된 고품질의 Dense 맵을 생성할 수 있다.

coVoxSLAM의 뛰어난 성능은 단순히 기존 알고리즘을 조합하는 것을 넘어, GPU 아키텍처의 잠재력을 최대한 활용하기 위한 심도 있는 기술적 선택과 구현 최적화에 기인한다.

coVoxSLAM을 기존 SLAM 시스템과 구별 짓는 가장 중요한 특징은 ‘End-to-End’, 즉 프론트엔드부터 백엔드까지 전체 파이프라인을 GPU 상에서 가속했다는 점이다. 이는 SLAM 연구의 오랜 난제였던 성능 병목 현상을 해결하기 위한 근본적인 접근 방식이다. 과거의 많은 연구들이 프론트엔드의 스캔 매칭이나 백엔드의 포즈 그래프 최적화 중 하나만을 가속하거나, 두 프로세스 간에 빈번한 데이터 전송으로 인해 실질적인 성능 향상에 한계를 보였다. 특히, 포즈 그래프 최적화는 거대한 희소 행렬(sparse matrix) 연산을 포함하기 때문에 병렬화가 까다로워 전통적으로 Ceres Solver나 g2o와 같은 CPU 기반 라이브러리에 의존해왔다. 이로 인해 백엔드는 전체 시스템의 속도를 저해하는 고질적인 병목 지점으로 남아있었다.

coVoxSLAM은 이 문제를 정면으로 돌파했다.

이러한 ‘완전한 GPU 가속’ 패러다임은 센서 데이터가 GPU 메모리에 일단 로드되면, SLAM의 핵심 처리 과정이 끝날 때까지 CPU로 다시 데이터를 복사할 필요가 거의 없음을 의미한다. 이는 성능 저하의 주범인 CPU와 GPU 간의 메모리 전송 오버헤드를 최소화하고, 전체 파이프라인이 GPU의 압도적인 병렬 처리 능력의 이점을 온전히 누릴 수 있게 한다. 이 전일적(holistic) 접근 방식이야말로 coVoxSLAM이 복잡한 Dense SLAM 작업을 실시간으로 수행할 수 있게 만든 원동력이다.

GPU의 성능을 최대한 끌어내기 위해서는 알고리즘의 병렬화뿐만 아니라, 데이터가 메모리에 저장되는 방식까지도 GPU 아키텍처에 맞게 최적화해야 한다. coVoxSLAM 개발팀은 이 점을 깊이 이해하고, GPU 메모리 접근 효율을 극대화하기 위해 SoA(Structure of Arrays) 데이터 레이아웃을 핵심 최적화 기법으로 도입했다.

전통적인 객체지향 프로그래밍에서는 여러 데이터 필드를 하나의 구조체로 묶는 AoS(Array of Structs) 방식이 흔히 사용된다. 예를 들어, 복셀 데이터를 AoS로 표현하면 다음과 같다:

struct Voxel { float sdf; float weight; uchar3 color; }; Voxel voxels[N];

이 구조는 개념적으로 명확하지만, 메모리 상에서는 sdf, weight, color 데이터가 서로 뒤섞여 저장된다. 만약 GPU 커널이 모든 복셀의 sdf 값만을 읽어와 연산하려 할 때, GPU는 sdf 데이터와 함께 필요 없는 weight, color 데이터까지 같은 캐시 라인(cache line)으로 불러오게 된다. 이는 캐시 공간을 낭비하고 메모리 대역폭 효율을 떨어뜨리는 결과를 초래한다.

반면, coVoxSLAM이 채택한 SoA 방식은 각 데이터 필드를 별도의 배열로 관리한다:

struct VoxelData { float sdf[N]; float weight[N]; uchar3 color[N]; };

이 구조에서는 동일한 종류의 데이터(예: 모든 sdf 값)가 메모리 상에 연속적으로 배치된다(contiguous memory). 따라서 GPU가 sdf 값들을 읽을 때, 메모리 접근이 순차적으로 일어나며 캐시 라인은 유용한 sdf 데이터로만 채워진다. 이는 ‘메모리 접근의 공간적 지역성(spatial locality)’을 극대화하여 캐시 미스(cache miss)를 최소화하고, GPU의 제한된 메모리 대역폭을 최대한 효율적으로 사용하게 한다.

더 나아가, SoA 구조는 GPU의 SIMD(Single Instruction, Multiple Data) 또는 SIMT(Single Instruction, Multiple Threads) 실행 모델에 완벽하게 부합한다. GPU는 여러 스레드가 동일한 명령어를 각기 다른 데이터에 대해 동시에 수행하는 데 특화되어 있다. SoA는 이렇게 동시에 처리될 데이터들을 메모리에 나란히 배치함으로써, 하드웨어가 데이터를 효율적으로 가져와 벡터 연산을 수행할 수 있도록 돕는다. 이는 단순한 최적화를 넘어, GPU의 아키텍처를 이해하고 그 잠재력을 최대한 이끌어내기 위한 근본적인 성능 공학의 결과물이다. coVoxSLAM이 사용자에게 AoS와 SoA를 선택할 수 있는 옵션을 제공한 것은, 개발팀이 이러한 저수준(low-level) 성능 튜닝에 대한 깊이 있는 전문성을 갖추고 있음을 방증한다.

coVoxSLAM은 최신 소프트웨어 개발 표준을 적극적으로 채택하여 코드의 품질과 유지보수성을 높였다. 시스템은 C++20 표준을 기반으로 작성되었으며, 이는 현대적인 C++의 기능들을 활용하여 더 간결하고 안전하며 효율적인 코드를 작성했음을 시사한다.

프로젝트의 빌드 시스템과 의존성 관리는 산업 표준 도구인 CMake를 통해 이루어진다. 이는 다양한 플랫폼(Linux, Windows)과 컴파일러(GCC, Clang, MSVC)에서의 빌드를 용이하게 하여, 다른 연구자들이 시스템을 설치하고 사용하는 데 장벽을 낮춘다.

특히 주목할 점은 CPU 버전과 GPU 버전을 모두 제공하며, 각각에 대한 명확한 의존성을 명시했다는 것이다.

이처럼 표준화된 최신 도구를 사용하고, CPU와 GPU 버전을 함께 제공하는 전략은 coVoxSLAM을 다른 연구자들이 쉽게 접근하고, 재현하며, 자신의 연구에 확장하여 사용할 수 있는 개방적이고 실용적인 연구 플랫폼으로 만들어 준다.

coVoxSLAM의 가치를 정확히 평가하기 위해서는 기존의 주요 Dense SLAM 시스템들과의 비교 분석이 필수적이다. coVoxSLAM 논문에서 직접적으로 비교 대상으로 언급된 Voxgraph와 nvBlox를 중심으로, 그리고 더 넓은 SLAM 분야의 맥락에서 그 위치를 조명한다.

항목 (Criteria) coVoxSLAM Voxgraph nvBlox
핵심 기능 (Core Function) 완전한 Dense SLAM 시스템 완전한 Dense SLAM 시스템 GPU 가속 맵핑 라이브러리
주요 플랫폼 (Platform) GPU (End-to-End) CPU GPU (맵핑만)
맵 표현 (Map Representation) TSDF/ESDF 서브맵 TSDF/ESDF 서브맵 TSDF/ESDF
전역 일관성 (Global Consistency) GPU 기반 포즈 그래프 최적화 CPU 기반 포즈 그래프 최적화 미지원 (No SLAM backend)
차별점 (Key Differentiator) 전체 파이프라인 GPU 가속 ESDF 기반 서브맵 정합 고성능 TSDF/ESDF 통합 커널

Voxgraph는 coVoxSLAM과 가장 직접적인 비교가 가능한 시스템이다. 두 시스템 모두 환경을 TSDF/ESDF 기반의 서브맵 컬렉션으로 표현하고, 포즈 그래프 최적화를 통해 전역 일관성을 달성한다는 점에서 높은 수준의 알고리즘적 유사성을 공유한다.

그러나 결정적인 차이는 실행 플랫폼에 있다. Voxgraph는 전적으로 CPU 상에서 동작하도록 설계된 반면, coVoxSLAM은 이 모든 파이프라인을 GPU로 이전하여 병렬 처리의 이점을 극대화했다. 이 차이는 성능에서 극명하게 드러난다. 공개된 데이터셋을 사용한 실험 결과에서, coVoxSLAM은 정확한 위치 추정 성능을 유지하면서도 Voxgraph에 비해 실행 시간 측면에서 월등히 뛰어난 성능을 보였다.

이 비교는 coVoxSLAM의 핵심 기여를 가장 명확하게 보여준다. 유사한 알고리즘 구조를 가졌음에도 불구하고 나타나는 압도적인 성능 차이는, coVoxSLAM의 End-to-End GPU 포팅과 SoA와 같은 저수준 메모리 최적화 전략이 성공적으로 이루어졌음을 입증한다. 이는 단순히 기존 알고리즘을 GPU로 옮기는 것을 넘어, GPU 아키텍처에 대한 깊은 이해를 바탕으로 한 재설계가 얼마나 큰 성능 향상을 가져올 수 있는지를 보여주는 사례이다.

nvBlox는 NVIDIA에서 제공하는 GPU 가속 체적 맵핑 라이브러리로, 널리 사용되던 Voxblox를 계승하여 TSDF 및 ESDF 맵 처리에 고도로 최적화되어 있다.

nvBlox와 coVoxSLAM의 근본적인 차이는 시스템의 범위에 있다. nvBlox는 그 자체로는 완전한 SLAM 시스템이 아니다. 즉, 포즈 그래프 최적화나 루프 클로저와 같은 백엔드 기능이 없으며, 외부로부터 로봇의 포즈 추정치를 입력받아야만 맵을 생성할 수 있는 순수한 ‘맵핑 라이브러리’이다. 반면 coVoxSLAM은 맵핑(프론트엔드)과 위치 추정 및 최적화(백엔드)를 모두 포함하는 ‘완전한 SLAM 시스템’이다.

놀라운 점은 coVoxSLAM이 단순히 nvBlox에 없는 백엔드를 추가한 것에 그치지 않는다는 것이다. 논문에 따르면, coVoxSLAM은 nvBlox의 핵심 기능인 TSDF 통합(integration) 성능마저도 능가하여, 동일한 데이터셋에서 1.5배에서 2배에 달하는 속도 향상을 달성했다고 보고한다. 이는 coVoxSLAM 개발팀이 GPU 제조사에서 제공하는 전문화된 라이브러리의 커널보다도 더 효율적인 CUDA 커널을 직접 작성했음을 시사하며, 그들의 뛰어난 GPU 최적화 역량을 보여주는 강력한 증거이다.

현대 SLAM 연구는 매우 빠르게 변화하고 있으며, 특히 NeRF나 3DGS와 같은 신경망 기반의 암시적 표현을 사용하는 방법들이 큰 주목을 받고 있다. 이들 방법은 3D 장면을 신경망의 가중치로 표현하여, 매우 사실적인 새로운 시점의 이미지를 렌더링하는 데 탁월한 능력을 보여준다. 하지만 이들은 일반적으로 더 많은 계산 자원을 필요로 하고, 학습 과정의 복잡성, 그리고 기하학적 정확성 측면에서 전통적인 방법들과는 다른 장단점을 가진다.

이러한 흐름 속에서 coVoxSLAM은 명확한 포지셔닝을 가진다. 이 시스템은 신경망 기반 SLAM과는 다른 길을 걷는, 기하학 기반의 명시적(explicit) 체적 표현을 사용하는 접근법의 최신 진화 형태이다. coVoxSLAM의 목표는 포토리얼리스틱한 렌더링이 아니라, 실시간성, 높은 기하학적 정확성, 그리고 자원 제약이 있는 실제 로봇 플랫폼(예: 소형 드론)에서의 강건한 동작이다. 즉, coVoxSLAM은 학술적 탐구를 넘어, 실제 로봇 응용 분야에서 즉시 활용될 수 있는 실용적이고 강력한 솔루션을 지향한다. 따라서 coVoxSLAM은 신경망 기반 SLAM과 경쟁 관계에 있기보다는, 서로 다른 목표와 장점을 가진 상호 보완적인 기술 스펙트럼의 한 축을 대표한다고 볼 수 있다.

coVoxSLAM은 Dense SLAM 분야에서 중요한 기술적 이정표를 제시한 시스템이다. 본 고찰을 통해 분석한 이 시스템의 핵심 기여는 세 가지로 요약할 수 있다. 첫째, 프론트엔드의 체적 맵핑부터 백엔드의 전역 포즈 그래프 최적화까지 SLAM 파이프라인 전체를 GPU 상에서 가속하여 기존의 CPU 병목 현상을 근본적으로 해결했다. 둘째, GPU 아키텍처에 대한 깊은 이해를 바탕으로 SoA(Structure of Arrays) 데이터 레이아웃을 도입하여 메모리 접근 효율을 극대화하고, 이를 통해 하드웨어의 잠재력을 최대한 끌어냈다. 셋째, 서브맵 기반의 분할 정복 전략과 효율적인 제약 조건 관리를 통해 대규모 환경에서도 전역적으로 일관된 Dense 맵을 실시간으로 구축하는 데 성공했다.

이러한 기여들이 결합되어, coVoxSLAM은 데스크톱 GPU뿐만 아니라 자원이 제한된 임베디드 GPU 플랫폼에서도 고성능 Dense SLAM을 현실적으로 구현할 수 있는 길을 열었다. 특히 오픈소스로 코드를 공개한 점은 학계와 산업계 전반에 걸쳐 관련 기술의 발전과 응용을 촉진하는 데 크게 기여할 것으로 기대된다.

모든 뛰어난 시스템과 마찬가지로, coVoxSLAM 역시 잠재적인 한계를 가지며 이는 미래 연구를 위한 새로운 방향을 제시한다.

coVoxSLAM과 같이 실시간 성능과 높은 정확도를 겸비한 오픈소스 Dense SLAM 시스템의 등장은 다양한 산업 분야에 상당한 파급 효과를 미칠 것이다. 자율주행차, 무인 항공기(MAV), 물류 로봇 등은 더 정확하고 상세한 주변 환경 모델을 바탕으로 더 안전하고 효율적인 항법을 수행할 수 있게 된다. 증강/가상현실(AR/VR) 분야에서는 실제 공간을 실시간으로 스캔하여 가상 객체와 상호작용하는 몰입감 높은 경험을 제공하는 데 핵심적인 기술로 사용될 수 있다. 또한, 건설 현장의 진행 상황 모니터링, 대규모 시설의 디지털 트윈(Digital Twin) 구축, 위험 지역 탐사 및 구조 로봇 등 고품질 3D 환경 모델링을 필요로 하는 모든 응용 분야의 개발을 가속화할 것이다.

특히, coVoxSLAM이 데스크톱뿐만 아니라 온보드 임베디드 GPU(on-board embedded GPU)에서도 실시간 성능을 목표로 한다는 점은, 소형화, 경량화, 저전력화가 필수적인 모바일 로봇 플랫폼의 자율성을 한 단계 끌어올리는 데 결정적인 역할을 할 것으로 전망된다. 이는 고성능 컴퓨팅 서버에 의존하지 않고 로봇 스스로가 복잡한 환경을 이해하고 판단할 수 있는 진정한 ‘엣지 컴퓨팅(Edge Computing)’ 기반의 자율 로봇 시대를 앞당기는 중요한 초석이 될 것이다.

  1. accessed January 1, 1970, https.arxiv.org/pdf/2410.21149.pdf