HERO / README.md
RunpeiDong's picture
model card: dataset archive URL + sha256
1afd7bc verified
|
Raw History Blame Contribute Delete
3.61 kB
---
license: mit
pipeline_tag: robotics
tags:
- humanoid
- whole-body-control
- end-effector-tracking
- unitree-g1
- onnx
- reinforcement-learning
library_name: onnx
---
# HERO — humanoid end-effector controller (Unitree G1 + Dex3)
Exported policy of **HERO** (Learning Humanoid End-Effector Control for Visual Whole-Body Open-Vocabulary Object Grasping,
CoRL 2026): a whole-body controller that tracks world-fixed palm targets with the Unitree G1 humanoid and the Dex3 hand,
trained in Isaac Sim with dual-actor PPO and residual end-effector feedback, exported to ONNX for deployment, browser inference
and the MuJoCo benchmark.
| file | what it is |
|---|---|
| `model.onnx` | the policy graph: two inputs (`actor_obs_lower_body`, `actor_obs_upper_body`, both fed the same 1,000-dim frame-major observation of 5 history frames), one output `action` (29 joint targets) |
| `model_hero.json` | the metadata sidecar (`hero_export_v1`): observation layout, scales, history layout, action contract and joint tables, PD gains, odometry/anchor terms — everything the readers need to build the observation |
This is the model bundled with the HERO release as `checkpoints/example` (the browser demo and the benchmark baseline use it).
It uses the delta-anchor root feedback, so its observation layout (1,000 inputs) differs from a policy trained with the
default `without_delta_anchor` configuration (675 inputs); the sidecar is authoritative, never assume a layout.
## Usage
```sh
git clone https://github.com/RunpeiDong/HERO && cd HERO
pip install -e ".[bench]"
hf download RunpeiDong/HERO model.onnx model_hero.json --local-dir checkpoints/example
# score it on the benchmark (archive URL and sha256: see https://huggingface.co/datasets/RunpeiDong/hero_bench)
python scripts/hero_bench.py fetch --url https://huggingface.co/datasets/RunpeiDong/hero_bench/resolve/main/hero_bench_v1_corpus_33542601.tar.gz --sha256 33542601ed456ac606f8177ab75892d2e616585ec562f01976cb6af238c9c5d0 --out data/hero_bench_v1
python scripts/hero_bench.py run --corpus data/hero_bench_v1 --onnx-dir checkpoints/example --sidecar checkpoints/example/model_hero.json --out results/example --tiers core
python scripts/hero_bench.py report --corpus data/hero_bench_v1 --results results/example --card
# browser demo
python -m sim2sim.interactive_client.export_policy_assets --hero checkpoints/example/model.onnx --parity-fixture
python -m sim2sim.interactive_client.export_scene --hero checkpoints/example/model.onnx
```
Deployment contract (from the sidecar): 50 Hz policy, actions are residuals around the reference arm joints
(`hero_residual_upper_v1`), joint targets = default pose + 0.25 · clip(action) with the arm reference added, PD gains and
effort limits as listed in `model_hero.json`. See `docs/benchmark.md` and `checkpoints/README.md` in the code release.
## Training
Trained with the released code (`scripts/train.py`, Isaac Sim 5.1 / Isaac Lab 2.3, 4,096 environments) on synthetic IK reaching
references and retargeted human motion; exported with `scripts/export.py`. The paper's data recipe is described in `docs/data.md`
of the code release.
## License
MIT (same as the code release).
## Citation
```bibtex
@inproceedings{dong2026hero,
title = {{HERO}: Learning Humanoid End-Effector Control for Visual Whole-Body Open-Vocabulary Object Grasping},
author = {Dong, Runpei and Li, Ziyan and Gupta, Arjun and He, Xialin and Gupta, Saurabh},
booktitle = {10th Annual Conference on Robot Learning},
year = {2026},
url = {https://openreview.net/forum?id=gbchkYm28k}
}
```