Servo encoders have inherent noise of ±1–2 counts per reading. At 12-bit resolution (4096 counts/rev), that's ±0.09° — completely invisible on the arm itself.
In teleoperation between dissimilar robots, a conversion layer scales joint values from the leader's space into the follower's space. When the follower has finer-grained motors or different units, scale factors of 800–1100× are common. This turns invisible encoder noise into a real problem:
At a typical 100Hz control rate, every noisy reading becomes a new position command. The result: constant vibration during precise tasks where the operator holds the leader arm still.
An exponential moving average smooths a noisy signal by blending each new reading with the previous smoothed value:
α controls the responsiveness/smoothness trade-off. At α=1 the raw signal passes through unchanged. At α=0.1, each output is 90% memory and 10% new reading — strong smoothing.
The 95% settling time (how long to reach 95% of a step input):
The EMA requires one float of state per channel and one multiply-add per sample. No buffers, no FFT, no windowing. It's a first-order IIR filter with cutoff frequency fc = α · fs / (2π) — at α=0.1 and 100Hz, that's ~1.6Hz, which passes smooth operator intent and rejects high-frequency encoder noise.
Low α (0.05) produces smooth output that lags behind rapid changes. High α (0.8+) tracks closely but lets noise through. The sweet spot for teleoperation is 0.1–0.2.
| α | Behavior | 95% settling | Use case |
|---|---|---|---|
| 1.0 | No filtering (passthrough) | 0ms | Disable filter |
| 0.5 | Light smoothing | ~50ms | Fast teleop, low noise |
| 0.2 | Moderate smoothing | ~120ms | General teleoperation |
| 0.1 | Strong smoothing | ~230ms | Precise tasks, high noise |
| 0.05 | Very heavy smoothing | ~500ms | Near-static positioning |
At α=0.1 and 100Hz the filter averages over roughly the last 10 readings. That's enough to smooth ±2 count encoder noise without the operator feeling lag on deliberate movements. α=0.1 eliminated visible jitter during pick-place teleoperation without perceptible delay.