Does GR00T N1.7 run on Unitree G1?
Capabilities
| Capability | State | Notes | Evidence |
|---|---|---|---|
| Train / fine-tune | works | Fine-tuned from nvidia/GR00T-N1.7-3B with examples/finetune.sh on G1 demonstrations collected with SONIC teleoperation (LeRobot v2 data format). | ev-gr00t-wbc-g1, ev-gr00t-wbc-workflow |
| Real-robot inference | works | Closed-loop real-robot evaluation: 159/216 (73.6%) on walk-to-table-and-pick-up across 8 objects, 3 table heights and 9 placements; 8/12 (66.7%) on a soda-can-to-trash-can task. Autonomous retries were counted as success. | ev-gr00t-wbc-g1, ev-gr00t-wbc-workflow |
| Simulation inference | no verified evidence | — | |
| Teleop + record | works | ev-gr00t-wbc-workflow |
Caveats
- Documented in NVIDIA's Isaac-GR00T repository (embodiment tag UNITREE_G1_SONIC), not through LeRobot: whole-body motion is executed by the GR00T Whole-Body Control / GEAR-SONIC robot-side controller, with GR00T N1.7 served from the GR00T policy server.
- For the pickup task NVIDIA used an in-house UMI gripper design instead of a stock G1 hand, and notes that similar tasks may need task-appropriate grippers.
- The example landed on Isaac-GR00T main after the n1.7-release tag; it is not part of a tagged release.
Evidence 2 sources; the cell shows the highest tier
- T1 · upstream documentedofficial-docssource 2026-07-07verified 2026-10-24 (1d ago)
NVIDIA reports a real-world Unitree G1 mobile-manipulation evaluation of GR00T N1.7 combined with GR00T Whole-Body Control / GEAR-SONIC.
“This example reports a real-world Unitree G1 evaluation using **Isaac GR00T N1.7** together with **GR00T Whole-Body Control / GEAR-SONIC**.”
https://github.com/NVIDIA/Isaac-GR00T/blob/1a1837f20538b7d7e21f977a11a5aee14f99803c/examples/GR00TWholeBodyControl/README.md - T1 · upstream documentedofficial-docssource 2026-07-07verified 2026-10-24 (1d ago)
The documented data-train-eval workflow: SONIC teleoperation for data, GR00T N1.7 fine-tuning with the UNITREE_G1_SONIC tag, closed-loop evaluation on the real robot.
“1. Collect G1 demonstrations with SONIC teleoperation. 2. Fine-tune GR00T N1.7 with `UNITREE_G1_SONIC`. 3. Run the GR00T policy server and the SONIC robot-side controller. 4. Evaluate in closed loop on the real robot with video recording.”
https://github.com/NVIDIA/Isaac-GR00T/blob/1a1837f20538b7d7e21f977a11a5aee14f99803c/examples/GR00TWholeBodyControl/README.md
GR00T N1.7 inference speed by hardware robot-independent · inference cost only
| Compute | Runtime | Precision | Cams | p50 / p95 ms | Inference | Platform | Source |
|---|---|---|---|---|---|---|---|
| H100 80GB | TensorRT | bf16 | 2 @256x256 | 22.9 / — | 43.67 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| RTX PRO 6000 Blackwell Server | TensorRT | bf16 | 2 @256x256 | 24.7 / — | 40.49 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| L40 | TensorRT | bf16 | 2 @256x256 | 35 / — | 28.57 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| Jetson AGX Thor 128GB | TensorRT | mixed | 2 @256x256 | 35.6 / — | 28.09 Hz | jetpack 7.2 · power_mode MAXN with jetson_clocks · cuda 13.2 · torch 2.13.0conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Mixed NVFP4 quantization (enum has no fp4 value). | T3 · community reported |
| RTX PRO 6000 Blackwell Server | torch.compile | bf16 | 2 @256x256 | 52.1 / — | 19.19 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| H100 80GB | torch.compile | bf16 | 2 @256x256 | 53.4 / — | 18.73 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| L40 | torch.compile | bf16 | 2 @256x256 | 66.8 / — | 14.97 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| RTX PRO 6000 Blackwell Server | PyTorch eager | bf16 | 2 @256x256 | 75.7 / — | 13.21 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| Jetson AGX Thor 128GB | TensorRT | bf16 | 2 @256x256 | 76.8 / — | 13.02 Hz | jetpack 7.2 · power_mode MAXN with jetson_clocks · cuda 13.2 · torch 2.13.0conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| Jetson AGX Thor 128GB | torch.compile | bf16 | 2 @256x256 | 100.5 / — | 9.95 Hz | jetpack 7.2 · power_mode MAXN with jetson_clocks · cuda 13.2 · torch 2.13.0conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| H100 80GB | PyTorch eager | bf16 | 2 @256x256 | 101.5 / — | 9.85 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| Jetson AGX Thor 128GB | PyTorch eager | bf16 | 2 @256x256 | 106.8 / — | 9.36 Hz | jetpack 7.2 · power_mode MAXN with jetson_clocks · cuda 13.2 · torch 2.13.0conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| L40 | PyTorch eager | bf16 | 2 @256x256 | 123.7 / — | 8.08 Hz | —conditionstorch_threads: 8 intra-op / 1 inter-op Inference cost only; not task success. Median of 60 timed calls (3 repetitions x 20 after 10 warmup), fixed inputs, includes preprocessing and action decoding, excludes RPC. Precision is the repo default (unquantized BF16). | T3 · community reported |
| Jetson Orin Nano 8GB (Super) | TensorRT | fp16 | 3 @640x480 | 273.7 / 275.4 | 3.66 Hz | jetpack 7.2.1 · power_mode MAXN_SUPER, clocks pinned with jetson_clocks (GPU 1020 MHz, CPU 1728 MHz) · tensorrt 10.16.2.10conditionsboard: Jetson Orin Nano Engineering Reference Developer Kit Super (8 GB) · l4t: R39.2.1 · os: Ubuntu 24.04.4 LTS · python: 3.12.3 · desktop: running Inference cost only; not task success. 300 s run on synthetic 640x480 observations resized by the exported policy to 256x256; 4 denoising steps; latency is runtime-only over a pre-materialized observation ring. Whole-board RAM in use 5.78 GB (unified memory, desktop running). Actions were gated against the stock policy (cosine >= 0.99999) before timing. Three camera views, each with two frames (GR00T N1.7 temporal input). | T3 · community reported |
Embed this cell
Badge for READMEs and model cards. It always shows the current state.
[](https://caniembody.pages.dev/compat/unitree-g1/groot-n1-7)<iframe src="https://caniembody.pages.dev/embed/unitree-g1/groot-n1-7" width="380" height="132" style="border:0" title="GR00T N1.7 on Unitree G1 | CanIEmbody"></iframe>History
- 2026-10-25 fecccd1 Initial release: robot policy compatibility matrix · Danilo Znamerovszkij