--teleop.record with a file prefix — recording costs one buffer copy per tick and is entirely inert when the flag is unset:
_ik, _cmd, _meas, and _rt. They span raw VR pose through filtered pose, IK output, smoothed Python target, the Rust core’s actual 240 Hz motor command and torque terms, and measured joints. Recording covers the latest engage→disengage segment: it starts at engagement (no rest-pose lead-in), re-engaging starts the segment over, and _rt is compacted when the core disarms. The analyzer clips to the longest engaged stretch, splits every signal into three bands — below 3 Hz (intentional motion), 3-15 Hz (the JITTER column, the band the arm’s structure responds to), above 15 Hz (noise the mechanics filter out) — and prints band-RMS tables at every stage boundary, including Rust target→motor-command→measurement and per-term torque attribution.
To read the output, walk each joint down its stage list and find the first stage where the JITTER column jumps well above the previous stage:
