Micro-doppler classifier — not everything that moves is a person

Phase 6 adds a DBSCAN cluster builder and a rule-based micro-doppler classifier to the pipeline. Novel returns are now labeled PERSON, OBJECT, or UNKNOWN before they reach the zone logic. UNKNOWN passes through as PERSON — the classifier can never make the system less safe than the baseline.

May 21, 2026 · 4 min · Nic

Persistent background map — the sensor shouldn't relearn the room every boot

The 15-second background learning phase is necessary — but only once. Phase 5 adds a persistent voxel map saved to disk after the first learn, reloaded on every subsequent boot. Also: a novelty-aware refresh gate that means a stationary person can never be silently absorbed into the background.

May 21, 2026 · 3 min · Nic

Swept-volume workspace clipper — the sensor finally knows what the arm can reach

Phase 7 adds a swept-volume workspace clipper to the pipeline. Detections outside the arm’s reachable envelope are suppressed before they reach zone logic. This is the primary technical differentiator over fixed-mount sensors — and the reason the hardware configuration locked at 3× IWR6843AOP on the forearm link.

May 21, 2026 · 5 min · Nic

Full safety stack live — background learning, ego-motion compensation, and the motionless person problem

The IWR6843AOP is now running a complete ROS 2 safety pipeline on the Jetson — CLEAR/CAUTION/STOP zone detection with ego-motion compensation, voxel background learning, fault handling, and a heartbeat watchdog. One non-obvious bug dominated the session: velocity filtering was silently eating motionless people.

May 16, 2026 · 5 min · Nic