mirror of
https://github.com/huggingface/lerobot.git
synced 2026-06-01 03:11:29 +00:00
The previous implementation had a double-normalization bug: the preprocessor normalized actions with absolute stats, then convert_to_relative subtracted normalized state (wrong), then the per-timestep normalizer re-normalized. Now the correct flow is: 1. Convert batch to relative on raw data (before preprocessing) 2. Compute global relative stats (mean/std across all timesteps) 3. Hotswap the preprocessor normalizer to use relative stats 4. Preprocessor normalizes relative values correctly This brings loss from ~3000+ down to ~0.5, matching the main branch. Made-with: Cursor