Point Cloud

A point cloud is a set of 3D points {Xi}\{\mathbf{X}_i\}, XiR3\mathbf{X}_i \in \mathbb{R}^3, optionally carrying per-point attributes such as color, surface normal, or return intensity (LiDAR). It is the simplest and most universal 3D map representation: no connectivity, no grid, just samples of the environment’s surfaces.

Where the points come from

X=d[(ucx)/fx(vcy)/fy1]\mathbf{X} = d \begin{bmatrix} (u - c_x)/f_x \\ (v - c_y)/f_y \\ 1 \end{bmatrix}

A single VGA depth frame yields ~300k points, so dense clouds are memory-hungry and need spatial indexing (kd-tree or voxel hash map, as in PCL and Open3D).

Core operations

Downsampling (voxel-grid filter). Partition space into cubes of edge length \ell; replace all points in a cube by their centroid. This bounds density, removes redundancy, and makes later processing (ICP, normal estimation) tractable.

Normal estimation via local PCA. For each point, collect its kk nearest neighbors, form the local covariance

C=1ki=1k(pipˉ)(pipˉ)TC = \frac{1}{k} \sum_{i=1}^{k} (\mathbf{p}_i - \bar{\mathbf{p}})(\mathbf{p}_i - \bar{\mathbf{p}})^T

and take the eigenvector of CC with the smallest eigenvalue as the surface normal (the direction of least local spread). The eigenvalue ratios also give a local planarity/curvature measure, used e.g. to pick edge vs. planar features in LiDAR odometry.

Nearest-neighbor search. Correspondence search (the inner loop of ICP) requires fast NN queries, provided by kd-trees or voxel hashing.

Registration. Two clouds are aligned by estimating the rigid transform (R,t)(R, \mathbf{t}) minimizing iqi(Rpi+t)2\sum_i \lVert \mathbf{q}_i - (R\mathbf{p}_i + \mathbf{t}) \rVert^2 — solved in closed form by SVD of the cross-covariance matrix when correspondences are known, and iterated with re-matching otherwise (ICP).

Strengths and weaknesses

This is why dense SLAM systems typically use point clouds as the input/intermediate representation and fuse them into voxel (TSDF/occupancy) or surfel maps for the persistent model.

Why it matters for SLAM

Hands-on