FetchMan Learning Visual Humanoid Loco-Manipulation Policies from Simulated Experiences
1UCLA
2Allen AI & UW
Trained in simulation
Deployed in the real world
No real-world training data or fine-tuning.
Abstract
TLDR. Can a humanoid learn to walk up to objects and pick them from simulated experience alone? We generate loco-manipulation data across 150,000 scenes, train FetchMan by cloning it, break cloning’s performance ceiling with Flow-GRPO, and deploy the policy zero-shot on a real Unitree G1.
Visual loco-manipulation policies that can generalize to novel scenes and objects have long been a goal of robotics research. However, today's data-hungry algorithms make collecting sufficient demonstrations a struggle for tabletop manipulation, and even more so for humanoids that must also walk and balance. Learning from simulated data and transferring that behavior to the real world, as is commonly done in locomotion, sidesteps this struggle, so we replicate that recipe for loco-manipulation. In doing so, we find that cloning synthetic demonstrations results in a low performance ceiling no matter the amount of training data. Reinforcement learning breaks through it, and refining the cloned policy with Flow-GRPO on a single sparse reward yields performance that synthetic behavior cloning cannot match. Together, these stages form our end-to-end sim-to-real pipeline spanning more than 150,000 scenes, which we use to train FetchMan. We evaluate it on FetchMan-Bench, a simulation benchmark we release, and deploy it zero-shot on a real Unitree G1, where our single-object reach-and-pick policy walks to and grasps a target across unseen scenes at 73% success. Finally, we extend this recipe to multi-object training, a first step toward loco-manipulation generalist policies at this data scale.
Text-conditioned policy — “Fetch the ”
Click any clip to play it above.
1. Loco-Manipulation Data Generation in MolmoSpaces
1Sample a random house
2Sample a random object
3Sample a collision-free start pose and A* path
4Domain randomize across axes
Every episode resamples textures, per-light position, colour, intensity and on/off state, both cameras' intrinsics and extrinsics, the supporting surface height, the target's pose on it, and per-command action noise.
Appearance randomization (lighting and textures)
Surface height randomization
Camera randomization (intrinsics and extrinsics)
Each clip is one frozen scene with a single axis re-rolling, so the effect of that axis is visible on its own.
5Interactive episodes
2. Flow-GRPO Refinement
Behavior cloning saturates well below the scripted demonstrator, and more demonstrations stop helping. Flow-GRPO picks up from the cloned policy and keeps climbing on the same task, in both the single-object and multi-object settings.
Each rollout integrates the flow in five Gaussian steps, each draw with a closed-form likelihood. The noise alone separates the outcomes; successes are reinforced, failures pushed away.
What the policy sees
Click any episode to swap both views.
Scripted rollouts in simulation
The scripted demonstrator, with the two streams the policy actually sees. Five examples of many.
Architecture
- STAGE 1 — BC
- A frozen DINOv3 ViT-B/16 emits patch tokens per camera; proprioception becomes a single state token. A DiT-style action head predicts H = 16 commands and executes the first 8. The 11 absolute target dimensions are re-parameterized as per-chunk deltas.
- STAGE 2 — RL
- Flow-GRPO replaces the deterministic Euler step with a Gaussian transition matching the rectified-flow schedule, giving closed-form per-step log-likelihoods. Each update collects 64 groups of 8 episodes from a shared reset state, differing only in injected SDE noise. Advantage is the standardized group-relative return — no value function — and uniform groups are dropped. PPO-style dual-clipped objective plus a KL penalty to the frozen BC policy. Reward: 1 for grasp and lift, 0 otherwise.
RL gains land where cloning fails
Loco-manipulation rises from 67% to 83% in simulation and from 56.7% to 73.3% on hardware. Manipulation alone barely moves, 72.7% to 77.2%. The grasp was already cloned well. The walking was not.
Same episode, cloned policy (left) versus Flow-GRPO refined (right). The cloned policy rarely repositions its base once the object is close; the refined policy does, and moves between walking and manipulating more readily.
| Simulation SR [%] | Real-World SR [%] | |||
|---|---|---|---|---|
| Method | Manip. | Loco-Manip. | Manip. | Loco-Manip. |
| Num. trials | 100 | 100 | 22 | 30 |
| Ours (BC) | 75.0 ± 4.3 | 67.0 ± 4.7 | 72.7 ± 9.5 | 56.7 ± 9.0 |
| Ours (BC + RL) | 79.0 ± 4.1 | 83.0 ± 3.8 | 77.2 ± 8.9 | 73.3 ± 8.1 |
What enables zero-shot transfer
Two choices carry the sim-to-real transfer: the frozen DINOv3 encoder and delta-action targets. Swapping either one collapses real-world performance to zero on the full task.
| Simulation SR [%] | Real-World SR [%] | |||
|---|---|---|---|---|
| Variant | Manip. | Loco-Manip. | Manip. | Loco-Manip. |
| Ours (DINOv3, delta) | 75.0 ± 4.3 | 67.0 ± 4.7 | 72.7 ± 9.5 | 56.7 ± 9.0 |
| with SigLIP | 58.0 ± 4.9 | 42.0 ± 4.9 | 8.3 ± 8.0 | 0.0 |
| with absolute actions | 62.0 ± 4.9 | 45.0 ± 5.0 | 16.7 ± 10.8 | 0.0 |
Ablations over the BC configuration. Real-world trials: 22 manipulation and 30 loco-manipulation for the reference, 12 and 10 for the ablation variants.
Acknowledgments
We thank Nirvana for providing the Unitree G1 robot used in our experiments, and Mahi Shafiullah for helpful discussions throughout.