|
Download GR00T-WholeBodyControl/docs/source/getting_started/download_models.md from Timsty/groot_deployment: direct link, hf CLI and curl.
- Browser
- Download file 14.9 kB
-
https://huggingface.co/Timsty/groot_deployment/resolve/main/GR00T-WholeBodyControl/docs/source/getting_started/download_models.md
- Command line
-
hf download hf://Timsty/groot_deployment/GR00T-WholeBodyControl/docs/source/getting_started/download_models.md
-
curl -L -o download_models.md https://huggingface.co/Timsty/groot_deployment/resolve/main/GR00T-WholeBodyControl/docs/source/getting_started/download_models.md
14.9 kB
| # Downloading Model Checkpoints | |
| Pre-trained GEAR-SONIC checkpoints (ONNX format) are hosted on Hugging Face: | |
| **[nvidia/GEAR-SONIC](https://huggingface.co/nvidia/GEAR-SONIC)** | |
| ## Quick Download | |
| ### Install the dependency | |
| ```bash | |
| pip install huggingface_hub | |
| ``` | |
| ### Run the download script | |
| From the repo root: | |
| ```bash | |
| # Deployment (ONNX models + planner β gear_sonic_deploy/) | |
| python download_from_hf.py | |
| # Low-latency teleoperation checkpoint (ONNX models + planner β gear_sonic_deploy/) | |
| python download_from_hf.py --low-latency | |
| # SONIC v1.1 checkpoint (ONNX models + planner β gear_sonic_deploy/) | |
| python download_from_hf.py --sonic-v1-1 | |
| # Training (checkpoint + SMPL data β sonic_release/ + data/smpl_filtered/) | |
| python download_from_hf.py --training | |
| # Low-latency PyTorch checkpoint + config only | |
| python download_from_hf.py --training --low-latency | |
| # SONIC v1.1 PyTorch checkpoint + configs only | |
| python download_from_hf.py --training --sonic-v1-1 --no-smpl | |
| # Sample data only (1 walking sequence for quick testing) | |
| python download_from_hf.py --sample | |
| # Training checkpoint only (skip 30GB SMPL download) | |
| python download_from_hf.py --training --no-smpl | |
| ``` | |
| This downloads the **latest** policy encoder + decoder + kinematic planner into | |
| `gear_sonic_deploy/`, preserving the same directory layout the deployment binary expects. | |
| --- | |
| ## Options | |
| | Flag | Description | | |
| |------|-------------| | |
| | `--training` | Download training checkpoint + SMPL motion data (~30 GB) | | |
| | `--low-latency` | Download the low-latency teleoperation checkpoint. For deployment, ONNX files go to `gear_sonic_deploy/policy/low_latency/`; with `--training`, the PyTorch checkpoint and configs go to `low_latency/`. | | |
| | `--sonic-v1-1` | Download SONIC v1.1, which uses robot-heading-normalized targets and wrist-pose augmentation. Deployment files go to `gear_sonic_deploy/policy/sonic_v1_1/`; training files go to `sonic_v1_1/`. | | |
| | `--sample` | Download sample motion data only (~4 MB) | | |
| | `--no-planner` | Skip the kinematic planner download | | |
| | `--no-smpl` | With `--training`, skip SMPL data (checkpoint only) | | |
| | `--output-dir PATH` | Override the destination directory | | |
| | `--token TOKEN` | HF token (alternative to `hf auth login`) | | |
| ### Examples | |
| ```bash | |
| # Policy + planner (default) | |
| python download_from_hf.py | |
| # Policy only | |
| python download_from_hf.py --no-planner | |
| # Low-latency teleoperation policy only | |
| python download_from_hf.py --low-latency --no-planner | |
| # SONIC v1.1 policy only | |
| python download_from_hf.py --sonic-v1-1 --no-planner | |
| # Download into a custom directory | |
| python download_from_hf.py --output-dir /data/gear-sonic | |
| ``` | |
| --- | |
| ## Low-Latency Teleoperation Checkpoint | |
| The checkpoint published under `low_latency/` in | |
| [`nvidia/GEAR-SONIC`](https://huggingface.co/nvidia/GEAR-SONIC) is configured | |
| for responsive whole-body teleoperation. Its SMPL encoder uses **4 future | |
| reference frames**, compared with **10 frames** in the default release. At | |
| 50 Hz (20 ms per frame), this reduces SMPL reference lookahead from | |
| approximately **200 ms to 80 ms**. | |
| This is the controller's reference lookahead, not a measurement of total | |
| end-to-end system latency. The checkpoint does not replace the default | |
| top-level deployment policy. | |
| Download the deployment ONNX files: | |
| ```bash | |
| python download_from_hf.py --low-latency | |
| ``` | |
| This creates: | |
| ``` | |
| gear_sonic_deploy/ | |
| βββ policy/low_latency/ | |
| βββ model_encoder.onnx | |
| βββ model_decoder.onnx | |
| βββ observation_config.yaml | |
| ``` | |
| ### C++ deployment inference | |
| Run the low-latency ONNX controller in simulation: | |
| ```bash | |
| cd gear_sonic_deploy | |
| ./deploy.sh \ | |
| --cp policy/low_latency/model \ | |
| --obs-config policy/low_latency/observation_config.yaml \ | |
| sim | |
| ``` | |
| Run it for VLA or teleoperation on the real robot: | |
| ```bash | |
| cd gear_sonic_deploy | |
| ./deploy.sh \ | |
| --cp policy/low_latency/model \ | |
| --obs-config policy/low_latency/observation_config.yaml \ | |
| --input-type zmq_manager \ | |
| real | |
| ``` | |
| `deploy.sh` expects `--cp` to be the shared model prefix; it appends | |
| `_encoder.onnx` and `_decoder.onnx` internally. The low-latency PyTorch | |
| checkpoint is available as `low_latency/last.pt`: | |
| ```bash | |
| python download_from_hf.py --training --low-latency | |
| ``` | |
| ### Python inference and evaluation | |
| For Python-side checkpoint evaluation in Isaac Lab, download the PyTorch | |
| checkpoint and sample motions: | |
| ```bash | |
| python download_from_hf.py --training --low-latency | |
| python download_from_hf.py --sample | |
| ``` | |
| Then run the low-latency checkpoint with `eval_agent_trl.py`: | |
| ```bash | |
| python gear_sonic/eval_agent_trl.py \ | |
| +checkpoint=low_latency/last.pt \ | |
| +headless=False \ | |
| ++num_envs=1 \ | |
| ++manager_env.observations.policy.enable_corruption=False \ | |
| ++manager_env.observations.tokenizer.enable_corruption=False \ | |
| "++manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered" \ | |
| "++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered" | |
| ``` | |
| For the Python VLA tmux launcher, pass the same low-latency C++ deploy files | |
| through launcher flags: | |
| ```bash | |
| python gear_sonic/scripts/launch_inference.py \ | |
| --deploy-checkpoint policy/low_latency/model \ | |
| --deploy-obs-config policy/low_latency/observation_config.yaml \ | |
| --camera-host 192.168.123.164 \ | |
| --prompt "pick up the cup" | |
| ``` | |
| The launcher still runs the ONNX controller through the C++ deployment pane; | |
| the Python process coordinates the VLA client, camera client, keyboard control, | |
| and optional data exporter. | |
| --- | |
| ## SONIC v1.1 Checkpoint | |
| The checkpoint under `sonic_v1_1/` uses robot-heading-normalized target | |
| orientations and was trained with wrist-pose augmentation. It is intended for | |
| heading-stable 3-point teleoperation and SONIC-backed VLA policies trained | |
| against this controller. | |
| Its SMPL and wrist encoders use **10 future frames at 20 ms spacing** | |
| (approximately **200 ms** of reference lookahead). G1 and teleoperation | |
| references use 10 frames at `step5`. This is not the low-latency checkpoint. | |
| Download the matching ONNX encoder, decoder, observation config, and planner: | |
| ```bash | |
| python download_from_hf.py --sonic-v1-1 | |
| ``` | |
| This creates: | |
| ``` | |
| gear_sonic_deploy/ | |
| βββ policy/sonic_v1_1/ | |
| βββ model_encoder.onnx | |
| βββ model_decoder.onnx | |
| βββ observation_config.yaml | |
| ``` | |
| Run the controller in simulation: | |
| ```bash | |
| cd gear_sonic_deploy | |
| ./deploy.sh \ | |
| --cp policy/sonic_v1_1/model \ | |
| --obs-config policy/sonic_v1_1/observation_config.yaml \ | |
| sim | |
| ``` | |
| For the VLA launcher: | |
| ```bash | |
| python gear_sonic/scripts/launch_inference.py \ | |
| --deploy-checkpoint policy/sonic_v1_1/model \ | |
| --deploy-obs-config policy/sonic_v1_1/observation_config.yaml \ | |
| --camera-host 192.168.123.164 \ | |
| --prompt "pick up the cup" | |
| ``` | |
| Download the PyTorch checkpoint and configs without the shared 30 GB SMPL | |
| dataset: | |
| ```bash | |
| python download_from_hf.py --training --sonic-v1-1 --no-smpl | |
| ``` | |
| Evaluate it with the matching release recipe: | |
| ```bash | |
| python gear_sonic/eval_agent_trl.py \ | |
| +exp=manager/universal_token/all_modes/sonic_v1_1 \ | |
| +checkpoint=sonic_v1_1/last.pt \ | |
| +headless=False \ | |
| ++num_envs=1 \ | |
| ++manager_env.observations.policy.enable_corruption=False \ | |
| ++manager_env.observations.tokenizer.enable_corruption=False | |
| ``` | |
| Use the same `+exp` and `+checkpoint` values with `train_agent_trl.py` for | |
| continued training. | |
| --- | |
| ## Manual download via CLI | |
| If you prefer the Hugging Face CLI: | |
| ```bash | |
| pip install huggingface_hub[cli] | |
| # Policy only | |
| hf download nvidia/GEAR-SONIC \ | |
| model_encoder.onnx \ | |
| model_decoder.onnx \ | |
| observation_config.yaml \ | |
| --local-dir gear_sonic_deploy | |
| # Everything (policy + planner) | |
| hf download nvidia/GEAR-SONIC --local-dir gear_sonic_deploy | |
| ``` | |
| --- | |
| ## Manual download via Python | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| REPO_ID = "nvidia/GEAR-SONIC" | |
| encoder = hf_hub_download(repo_id=REPO_ID, filename="model_encoder.onnx") | |
| decoder = hf_hub_download(repo_id=REPO_ID, filename="model_decoder.onnx") | |
| config = hf_hub_download(repo_id=REPO_ID, filename="observation_config.yaml") | |
| planner = hf_hub_download(repo_id=REPO_ID, filename="planner_sonic.onnx") | |
| print("Policy encoder :", encoder) | |
| print("Policy decoder :", decoder) | |
| print("Obs config :", config) | |
| print("Planner :", planner) | |
| ``` | |
| --- | |
| ## SONIC Training Checkpoint | |
| The SONIC release training checkpoint and config are also available on Hugging Face, for evaluation or fine-tuning: | |
| ### Download via CLI | |
| ```bash | |
| hf download nvidia/GEAR-SONIC \ | |
| sonic_release/last.pt \ | |
| sonic_release/config.yaml \ | |
| --local-dir models | |
| ``` | |
| ### Download via Python | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| REPO_ID = "nvidia/GEAR-SONIC" | |
| checkpoint = hf_hub_download(repo_id=REPO_ID, filename="sonic_release/last.pt") | |
| config = hf_hub_download(repo_id=REPO_ID, filename="sonic_release/config.yaml") | |
| print("Checkpoint :", checkpoint) | |
| print("Config :", config) | |
| ``` | |
| ### Evaluate the checkpoint | |
| ```bash | |
| python gear_sonic/eval_agent_trl.py \ | |
| +checkpoint=models/sonic_release/last.pt \ | |
| +num_envs=1 headless=False | |
| ``` | |
| --- | |
| ## Sample Motion Data (Quick Start) | |
| A small sample dataset (1 walking sequence) is included for quick testing without downloading the full Bones-SEED dataset. It contains all three data types needed for training: robot retargeted, SOMA skeleton, and SMPL. | |
| ### Download via CLI | |
| ```bash | |
| # Sample data only | |
| hf download nvidia/GEAR-SONIC \ | |
| --include "sample_data/*" \ | |
| --local-dir . | |
| # Sample data + training checkpoint | |
| hf download nvidia/GEAR-SONIC \ | |
| --include "sample_data/*" \ | |
| --include "sonic_release/*" \ | |
| --local-dir . | |
| ``` | |
| This creates: | |
| ``` | |
| sample_data/ | |
| βββ robot_filtered/210531/ # G1 retargeted motion (for motion tracking) | |
| β βββ walk_forward_amateur_001__A001.pkl | |
| β βββ walk_forward_amateur_001__A001_M.pkl | |
| βββ soma_filtered/210531/ # SOMA skeleton motion | |
| β βββ walk_forward_amateur_001__A001.pkl | |
| β βββ walk_forward_amateur_001__A001_M.pkl | |
| βββ smpl_filtered/ # SMPL human motion | |
| βββ walk_forward_amateur_001__A001.pkl | |
| βββ walk_forward_amateur_001__A001_M.pkl | |
| ``` | |
| ### Test training with sample data | |
| ```bash | |
| python gear_sonic/train_agent_trl.py \ | |
| +exp=manager/universal_token/all_modes/sonic_release \ | |
| num_envs=16 headless=True \ | |
| manager_env.commands.motion.motion_lib_cfg.motion_file=sample_data/robot_filtered \ | |
| manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=sample_data/smpl_filtered | |
| ``` | |
| For full-scale training, download the complete [Bones-SEED](https://huggingface.co/datasets/bones-studio/seed) dataset and follow the [Training Guide](../user_guide/training.md). | |
| --- | |
| ## SMPL Motion Data (Bones-SEED Filtered) | |
| The SMPL retargeted motion data used for training (131K sequences, filtered from the Bones-SEED dataset) is available as a split tar archive (~30GB total). | |
| ### Download and extract | |
| ```bash | |
| # Download all parts | |
| hf download nvidia/GEAR-SONIC --include "bones_seed_smpl/*" --local-dir . | |
| # Reassemble and extract | |
| cat bones_seed_smpl/bones_seed_smpl.tar.part_* | tar xf - -C data/ | |
| ``` | |
| This extracts to `data/smpl_filtered/` with 131K `.pkl` files. | |
| Then point training to it: | |
| ```bash | |
| python gear_sonic/train_agent_trl.py \ | |
| +exp=manager/universal_token/all_modes/sonic_release \ | |
| +checkpoint=sonic_release/last.pt \ | |
| num_envs=4096 headless=True \ | |
| ++manager_env.commands.motion.motion_lib_cfg.smpl_motion_file=data/smpl_filtered | |
| ``` | |
| --- | |
| ## Available files | |
| ``` | |
| nvidia/GEAR-SONIC/ | |
| βββ model_encoder.onnx # Policy encoder (ONNX, for deployment) | |
| βββ model_decoder.onnx # Policy decoder (ONNX, for deployment) | |
| βββ observation_config.yaml # Observation configuration (deployment) | |
| βββ planner_sonic.onnx # Kinematic planner (ONNX) | |
| βββ low_latency/ | |
| β βββ model_encoder.onnx # Low-latency policy encoder (ONNX) | |
| β βββ model_decoder.onnx # Low-latency policy decoder (ONNX) | |
| β βββ observation_config.yaml # Low-latency observation configuration | |
| β βββ last.pt # Low-latency training checkpoint | |
| β βββ config.yaml # Low-latency training config | |
| β βββ model_config.yaml # Low-latency model config | |
| βββ sonic_v1_1/ | |
| β βββ model_encoder.onnx # SONIC v1.1 policy encoder (ONNX) | |
| β βββ model_decoder.onnx # SONIC v1.1 policy decoder (ONNX) | |
| β βββ observation_config.yaml # Matching deployment observations | |
| β βββ last.pt # SONIC v1.1 training checkpoint | |
| β βββ config.yaml # Resolved training config | |
| β βββ model_config.yaml # Model architecture config | |
| βββ bones_seed_smpl/ # SMPL motion data (131K sequences, ~30GB split tar) | |
| β βββ bones_seed_smpl.tar.part_aa | |
| β βββ ... | |
| β βββ bones_seed_smpl.tar.part_ag | |
| βββ sonic_release/ | |
| β βββ last.pt # Training checkpoint (for eval/fine-tuning) | |
| β βββ config.yaml # Training config | |
| βββ sample_data/ # Sample motion data (1 walking sequence) | |
| βββ robot_filtered/ # G1 retargeted motion | |
| βββ soma_filtered/ # SOMA skeleton motion | |
| βββ smpl_filtered/ # SMPL human motion | |
| ``` | |
| The download script places deployment files into the layout the deployment binary expects: | |
| ``` | |
| gear_sonic_deploy/ | |
| βββ policy/release/ | |
| β βββ model_encoder.onnx | |
| β βββ model_decoder.onnx | |
| β βββ observation_config.yaml | |
| βββ policy/low_latency/ | |
| β βββ model_encoder.onnx | |
| β βββ model_decoder.onnx | |
| β βββ observation_config.yaml | |
| βββ policy/sonic_v1_1/ | |
| β βββ model_encoder.onnx | |
| β βββ model_decoder.onnx | |
| β βββ observation_config.yaml | |
| βββ planner/target_vel/V2/ | |
| βββ planner_sonic.onnx | |
| ``` | |
| --- | |
| ## Authentication | |
| The repository is **public** β no token required for downloading. | |
| If you hit rate limits or need to access private forks: | |
| ```bash | |
| # Option 1: CLI login (recommended β token is saved once) | |
| hf login | |
| # Option 2: environment variable | |
| export HF_TOKEN="hf_..." | |
| python download_from_hf.py | |
| # Option 3: pass token directly | |
| python download_from_hf.py --token hf_... | |
| ``` | |
| Get a free token at [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens). | |
| --- | |
| ## Next steps | |
| After downloading, follow the [Quick Start](quickstart.md) guide to run the | |
| deployment stack in MuJoCo simulation or on real hardware. | |