Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -13,7 +13,7 @@ tags:
|
|
| 13 |
|
| 14 |
# HAMPER β G1 basket pickup policy
|
| 15 |
|
| 16 |
-
Pretrained weights for [HAMPER](https://github.com/
|
| 17 |
a Unitree G1 humanoid that walks up to a basket on the floor, threads its
|
| 18 |
forearm through the handle, lifts it, and carries it away. Trained with PPO
|
| 19 |
(rsl_rl) in Isaac Lab through a staged curriculum, on a single RTX A6000.
|
|
@@ -29,16 +29,21 @@ Pinned stack: Isaac Sim 5.1.0, Isaac Lab v2.3.2, rsl_rl 3.1.2, torch 2.7.0+cu128
|
|
| 29 |
|
| 30 |
## Files
|
| 31 |
|
| 32 |
-
| File | What it is |
|
| 33 |
-
|---|---|---|
|
| 34 |
-
| `chain.pt` | **The final policy** β the full task | 9,
|
| 35 |
-
| `stage_thread.pt` | Parent of `chain.pt`: walk + carry + lift + thread | 7,
|
| 36 |
-
| `stage_lift.pt` | Parent of `stage_thread.pt`: walk + carry + lift | 5,
|
| 37 |
-
| `stage_carry.pt` | Parent of `stage_lift.pt`: walk + carry | 3,
|
| 38 |
-
| `generalist.pt` | Root of the chain: squat-capable walking with a commanded hand target; no basket | 2,000 |
|
| 39 |
-
| `banks/standing_states.pt` (+ `.json`) | 5,000 harvested standing states used to initialize episodes | β |
|
| 40 |
-
| `banks/squat_states.pt` (+ `.json`) | 5,000 harvested squatting states used to initialize the lift and thread stages | β |
|
| 41 |
-
| `hero_video.mp4` | 60 s demo: full chain, threading close-up, robustness, failure case, ablation | β |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
Each checkpoint is an rsl_rl `OnPolicyRunner` save (actor, critic, optimizer
|
| 44 |
state). The banks are required for evaluating or fine-tuning any stage other
|
|
@@ -47,20 +52,40 @@ from bank states.
|
|
| 47 |
|
| 48 |
## Results (`chain.pt` with the repository's commander)
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
|
| 54 |
| | Walk | Carry | Lift | Thread | **Full chain** |
|
| 55 |
|---|---|---|---|---|---|
|
| 56 |
| Success | 98.7 % | 95.9 % | 98.9 % | 82.2 % | **98.4 %** |
|
| 57 |
|
| 58 |
-
Robustness (one policy, no retraining): success
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
|
| 65 |
Things the numbers do not show: the 3 seeds are evaluation seeds of one trained
|
| 66 |
policy (retraining variance was not measured); the evaluation environment turns
|
|
|
|
| 13 |
|
| 14 |
# HAMPER β G1 basket pickup policy
|
| 15 |
|
| 16 |
+
Pretrained weights for [HAMPER](https://github.com/WilliamHangXu/HAMPER):
|
| 17 |
a Unitree G1 humanoid that walks up to a basket on the floor, threads its
|
| 18 |
forearm through the handle, lifts it, and carries it away. Trained with PPO
|
| 19 |
(rsl_rl) in Isaac Lab through a staged curriculum, on a single RTX A6000.
|
|
|
|
| 29 |
|
| 30 |
## Files
|
| 31 |
|
| 32 |
+
| File | What it is | Cumulative PPO updates | Checkpoint index |
|
| 33 |
+
|---|---|---:|---|
|
| 34 |
+
| `chain.pt` | **The final policy** β the full task | 9,500 (2,000 on the chain stage) | `model_9495` |
|
| 35 |
+
| `stage_thread.pt` | Parent of `chain.pt`: walk + carry + lift + thread | 7,500 | `model_7496` |
|
| 36 |
+
| `stage_lift.pt` | Parent of `stage_thread.pt`: walk + carry + lift | 5,500 | `model_5497` |
|
| 37 |
+
| `stage_carry.pt` | Parent of `stage_lift.pt`: walk + carry | 3,500 | `model_3498` |
|
| 38 |
+
| `generalist.pt` | Root of the chain: squat-capable walking with a commanded hand target; no basket | 2,000 | `model_1999` |
|
| 39 |
+
| `banks/standing_states.pt` (+ `.json`) | 5,000 harvested standing states used to initialize episodes | β | β |
|
| 40 |
+
| `banks/squat_states.pt` (+ `.json`) | 5,000 harvested squatting states used to initialize the lift and thread stages | β | β |
|
| 41 |
+
| `hero_video.mp4` | 60 s demo: full chain, threading close-up, robustness, failure case, ablation | β | β |
|
| 42 |
+
|
| 43 |
+
Checkpoint indices are rsl_rl iteration indices, which undercount cumulative
|
| 44 |
+
updates by one per resume; the update column is the number of PPO updates. The
|
| 45 |
+
staged pipeline additionally used a separate 1,500-update reach policy plus
|
| 46 |
+
state-bank harvesting to produce the banks above.
|
| 47 |
|
| 48 |
Each checkpoint is an rsl_rl `OnPolicyRunner` save (actor, critic, optimizer
|
| 49 |
state). The banks are required for evaluating or fine-tuning any stage other
|
|
|
|
| 52 |
|
| 53 |
## Results (`chain.pt` with the repository's commander)
|
| 54 |
|
| 55 |
+
All numbers use this one checkpoint (training seed 42), three evaluation
|
| 56 |
+
seeds, 500 episodes each. Strict full-chain success requires reaching the
|
| 57 |
+
carry phase, keeping the elevated basket to episode timeout, and moving it at
|
| 58 |
+
least 1.0 m after the carry begins.
|
| 59 |
+
|
| 60 |
+
- Strict, 10 s episodes (the training horizon): **1,216 of 1,500 β 81.1 %**
|
| 61 |
+
(95 % Wilson CI 79.0β83.0 %; per-seed 80.8 / 81.0 / 81.4 %). The shortfall
|
| 62 |
+
against the softer metric is the episode clock: carry distances have a median
|
| 63 |
+
of 1.4 m with no mass near zero, and with 15 s episodes on the same spawns
|
| 64 |
+
strict success is **99.4 %** (median carry distance 3.2 m).
|
| 65 |
+
- Reached the carry phase and retained the elevated basket through timeout (no
|
| 66 |
+
distance requirement): 1,476 of 1,500 β 98.4 % (97.6β98.9 %; per-seed
|
| 67 |
+
98.4 / 97.8 / 99.0 %).
|
| 68 |
+
|
| 69 |
+
We observed zero falls, zero basket knock-away events, and three transient
|
| 70 |
+
retention-latch loss events (0.002 per episode); an episode can re-establish
|
| 71 |
+
retention after a latch loss.
|
| 72 |
|
| 73 |
| | Walk | Carry | Lift | Thread | **Full chain** |
|
| 74 |
|---|---|---|---|---|---|
|
| 75 |
| Success | 98.7 % | 95.9 % | 98.9 % | 82.2 % | **98.4 %** |
|
| 76 |
|
| 77 |
+
Robustness (one policy, no retraining): mean success per tested handle opening
|
| 78 |
+
stayed at or above 95.5 % across 15β35 cm (lowest single evaluation seed:
|
| 79 |
+
94.6 %, at 35 cm; trained on 25 cm) and was flat
|
| 80 |
+
across basket masses of 0.3β1.5 kg (trained on 0.4β1.0 kg). Among the
|
| 81 |
+
variables tested, basket-pose noise had the largest effect. The noise is
|
| 82 |
+
bounded uniform per Cartesian coordinate with the stated half-width (the policy
|
| 83 |
+
and the state machine share the observation model and bounds but draw
|
| 84 |
+
independent samples): above 97 % up to a 5 cm half-width, 23.5 % at 10 cm
|
| 85 |
+
(time-outs, not falls; sweep numbers use the reached-carry metric). On a spawn
|
| 86 |
+
distribution the state machine was never tuned on (basket 1β3 m away, Β±90Β°,
|
| 87 |
+
one evaluation seed, 15 s episodes) the chain reaches 98.2 % strict success
|
| 88 |
+
over 500 episodes.
|
| 89 |
|
| 90 |
Things the numbers do not show: the 3 seeds are evaluation seeds of one trained
|
| 91 |
policy (retraining variance was not measured); the evaluation environment turns
|