Robot_arm: G1 cup pyramid controllers
Trained controllers for a simulated Unitree G1 humanoid with a 5-finger Shadow hand (MuJoCo) that stacks three cups into a pyramid and throws a bottle cap into the top cup, learned from phone videos of a person doing it.
Code, results and instructions: https://github.com/ANGELOANTU7/Robot_arm
Files keep the paths the code expects (runs/<name>/policy.pt), so downloading into the repo folder is enough:
python scripts/download_models.py # the ten controllers below (66 MB)
python scripts/download_models.py --vla # also the VLA (1.2 GB)
| Simulator | Task | Controller | Path | Success |
|---|---|---|---|---|
| Perfect | Cups A / B / top | Imitation (chunked MLP) | runs/chunk_6k_elbow/policy.pt |
100 / 100 / 79% |
| Perfect | Cups A / B / top | Diffusion policy | runs/dp_6k_elbow/policy.pt |
100 / 85 / 44% |
| Perfect | Throw | Diffusion policy | runs/toss4k_dp_elbow/policy.pt |
61% |
| Perfect | Throw | RL (PPO) | runs/toss4k_ppo_small/policy_iter40.pt |
52% |
| Perfect | Throw | Imitation (BC) | runs/toss4k_bc/policy.pt |
40% |
| Real-world limits | Cups A / B / top | Imitation (chunked MLP) | runs/real_place_chunk/policy.pt |
98 / 69 / 38% |
| Real-world limits | Cups A / B / top | RL (PPO) | runs/real_place_ppo/policy.pt |
100 / 52 / 35% |
| Real-world limits | Throw | Diffusion policy | runs/real2_toss_dp/policy.pt |
9% |
| Real-world limits | Throw | RL (PPO) | runs/real2_toss_ppo/policy.pt |
7% |
| Real-world limits | Throw | Imitation (BC) | runs/real2_toss_bc/policy.pt |
5% |
| Real-world limits | All | VLA (SmolVLA, fine-tuned) | runs/vla_smolvla3/ |
69 / 25 / 19%, throw 6% |
Success is on unseen layouts: 48 tries per cup, 96 per throw. Every controller needs G1_HAND=shadow; the
real-world-limits ones also need G1_REAL=1. The VLA runs in its own environment with LeRobot (see the code repo).
history.json in each folder is the training log.