SONIC R1
SONIC v1.1 adapted to the 26-DOF Unitree R1, trained on R1-retargeted Bones-SEED motions. This repository contains the evaluated 50,000-step research checkpoint and the latest uploaded 100,000-step training checkpoint, each with matching ONNX exports. Deployment presets and the step-by-step MA-Teleop simulation and hardware test guide continue to select 50K.
The intended MA-Teleop integration is PICO full-body tracking in POSE / SMPL mode, with the R1 decoder controlling all 26 joints, including head pitch and yaw. The released G1 locomotion planner is not used. Real VR, native C++/TensorRT timing and physical R1 acceptance are not established by this release.
Latest uploaded checkpoint: 100,000 steps
- Raw checkpoint and matching training configuration.
- Matching ONNX encoder, decoder and three combined modes.
- Artifact verification and evaluation status.
- Download and simulation setup notes.
CPU numerical parity and runtime contract checks passed. Full held-out evaluation is pending for 100K. Native TensorRT, DDS/PICO simulation and real-robot tests are also pending. Uploading the latest checkpoint does not establish that it outperforms 50K. Both head joints remain policy controlled. The existing installer and r1_50k_* presets still select 50K.
Earlier 90K, 66K and 50K artifacts remain available.
Files
| Path | Purpose |
|---|---|
checkpoints/50000/model_step_050000.pt |
Full training checkpoint; use only with trusted SONIC training code |
checkpoints/50000/config.yaml, meta.yaml |
Matching training configuration and metadata |
exports/50000/model/exported/ |
Matching encoder, decoder, combined robot-reference/teleop/SMPL ONNX models; input layouts and PyTorch numerical reference cases |
exports/50000/model/r1_runtime_config.json |
Python runtime joint order, nominal positions, scales and model hashes |
integration/observation_config.yaml |
R1 v1.1 C++ deployment observation recipe |
integration/install_ma_teleop.py |
Verified installation into a matching MA-Teleop deployment; separate 50K profiles |
integration/verify_bundle.py |
SHA-256 and CPU ONNX numerical checks |
validation/ |
Evaluation summary and deployment-contract checks |
manifest.json |
Checkpoint identity, source revisions and hashes of delivered files |
TESTING.md |
Download β native simulation β PICO simulation β staged real R1 testing |
Deployment correction
Use deployment revision 5de0e1316837fec5204dd8a824e7b664a092b353 on r1-deploy-heading-fix, as pinned in the testing guide. It corrects the R1 heading observation under combined pitch and roll and forwards network start commands to POSE control. The previous deployment received stop commands but dropped POSE start commands; five native loopback regressions now pass. The original 06582cad deployment has a confirmed numerical mismatch. The 50K checkpoint and all five ONNX models are unchanged. See native heading verification and command verification; full DDS, target-workstation timing and hardware acceptance remain pending. The isolated native A100 TensorRT check passes all 36 numerical comparisons; 1,000 inference pairs measured P99 0.264 ms and maximum 5.300 ms. This excludes observation assembly, DDS and periodic control scheduling.
Quick start
hf download Jay-Ye/SONIC_R1 --local-dir "$HOME/models/SONIC_R1"
python "$HOME/models/SONIC_R1/integration/verify_bundle.py"
python "$HOME/models/SONIC_R1/integration/install_ma_teleop.py" \
--ma-root "$HOME/workspace/MA-Teleop" --dry-run
Install verification dependencies and follow the complete guide before starting a controller. The installer expects MA-Teleop's reviewed GR00T deployment submodule 5de0e1316837fec5204dd8a824e7b664a092b353. It does not replace the training branch, existing smoke model, robot defaults or network configuration. It refuses different existing destination files.
Evaluation status
See the versioned evaluation summary for the latest status and timestamps. Scores use the full 2,490-motion validation set for each completed mode, on A100, with a pinned physics fixture and motion order. The g1 mode name means robot-joint reference conditioning; the evaluated robot is R1 in every mode.
| Checkpoint | Mode | Success | Global MPJPE | Local MPJPE |
|---|---|---|---|---|
| 50K | teleop | 98.554% | 160.787 mm | 22.808 mm |
| 50K | robot reference (g1) |
98.635% | 152.984 mm | 20.533 mm |
| 50K | SMPL | 98.755% | 177.713 mm | 21.280 mm |
The campaign reference targets are success >97%, global MPJPE <200 mm and local MPJPE <30 mm. Passing aggregate targets is not hardware acceptance. Different physical A100 cards were used across some checkpoints; the model/driver, data, protocol and ordering were held fixed.
Known limitations:
- The known panic-run motion still fails in teleop. In robot-reference mode it completes but has approximately 1.446 m global body error.
- Robot-reference crawl completion regresses from 29/32 at 40K to 25/32 at 50K. Retained source-pose collision evidence does not establish a cause or excuse the failures.
- Near-immediate failures remain on individual motions; equal overall success counts can conceal different failed motions.
- This checkpoint's head remains policy controlled. Fixing the head is planned for a later training round, not retroactively applied here.
- Three-point VR, online R1 leg references, the target machine's real-time behavior and actual robot handover/stop behavior need separate verification. MA-Teleop's configured R1 route uses full-body SMPL input.
Provenance and license
Checkpoint SHA-256: a6f514cf185e1b085a14801542d1e9cf13762954f13eb26d315415f3f9486ae1.
Training source: 4b78bc28e9737709368f51430e8900d08a1f87c3 in GR00T-WholeBodyControl-R1.
The source implementation and pretrained base derive from NVIDIA SONIC. The dataset identity is recorded in the manifest; motion data is not distributed here.
The included license retains the upstream source-code and NVIDIA model-weight terms. This is an R1 research adaptation, not an official NVIDIA or Unitree hardware-qualified release.
Model tree for Jay-Ye/SONIC_R1
Base model
nvidia/GEAR-SONIC