Velocity-aware clustering#
rsp.dbscan implements deterministic DBSCAN for radar points. It accepts either
2D (x, y) or 3D (x, y, z) geometry and appends scaled radial velocity to the
distance feature:
Two points are neighbours when
\(\lVert\mathbf{q}_i-\mathbf{q}_j\rVert_2\leq\varepsilon\). velocityScale \(s_v\)
converts metres per second into the spatial distance used by eps.
clusters = rsp.dbscan(
pointCloud,
eps=0.8,
minSamples=3,
velocityScale=0.5,
dimensions=3,
)
The algorithm visits points in input order and uses stable neighbourhood order,
so identical input yields identical labels. Noise points receive label -1.
For every cluster, ClusterSet reports:
centroid in FLU coordinates;
axis-aligned size;
spatial covariance;
mean radial velocity and total/aggregate power;
per-point labels and stable cluster ids.
DBSCAN parameters are sensor- and range-dependent. Angular resolution creates
larger lateral spacing at long range, so one global eps may be insufficient for
a very wide operating envelope. Range-adaptive clustering is a future extension,
not an implicit behavior in v1.