Voxel Map

A voxel map discretizes 3D space into a regular grid of cubes (“volume elements”), each storing local properties of the environment: occupancy probability, a truncated signed distance (TSDF), color, intensity, or semantic labels. Where a point cloud is a bag of surface samples, a voxel map is a field over space — it can represent free space and unknown space, not just surfaces, and it fuses repeated measurements of the same region instead of accumulating duplicates.

What a voxel stores

lt=lt1+logp(mzt)1p(mzt)l0l_t = l_{t-1} + \log\frac{p(m \mid \mathbf{z}_t)}{1 - p(m \mid \mathbf{z}_t)} - l_0

so each new measurement adds/subtracts evidence; voxels along a sensor ray are updated as free, the voxel at the ray endpoint as occupied.

TSDF(v)=clip ⁣(d(v,surface)t,1,1)\mathrm{TSDF}(\mathbf{v}) = \mathrm{clip}\!\left(\frac{d(\mathbf{v}, \text{surface})}{t},\, -1,\, 1\right)

with sign distinguishing the free side from the occupied side. Successive depth frames are fused by a weighted running average per voxel (KinectFusion), and the surface is extracted at the zero crossing with Marching Cubes.

Taming O(r3)O(r^3) memory

A dense grid over volume VV at resolution rr costs O((V/r)3)O\left((V/r)^3\right) memory — prohibitive for large scenes at centimeter resolution. Standard remedies:

Trade-offs

Why it matters for SLAM

Hands-on