Robot Learning Field Guide
Explain it for
← Slides

A hands-on tour · legged robots, arms, simulation

Practice a billion times. Then meet a person.

We taught a four-legged robot to steer through crowds using about two billion simulated steps on one workstation. Then we checked whether the results were real, and found the problems worth showing you. Every idea on this page runs live in your browser.

4,096worlds in parallel
~2.1Bsteps per 2-hour run
1workstation GPU
7 of 7“successes” that were bugs

01 · The stack

Nobody trains the whole robot. You train one layer.

A working robot is a stack of controllers, each running faster and closer to the metal than the one above. Our patrol robot walks with NVIDIA's pretrained locomotion policy. The layer we trained, with PPO, is the one that decides how to steer around people.

L1

Mission

Patrol 8 waypoints in a 100 × 150 m compound. Report 6 kinds of objective events. Never judge people.

rules today
L2

Steering skill

Lidar + goal in, body velocity out, 10 times a second. A 2-layer, 256-unit network.

trained here · PPO
L3

Legs

Velocity command in, 12 joint targets out. Keeps the body upright on its own.

pretrained · NVIDIA
L4

Physics

Isaac Sim with PhysX: contacts, falls, and the ground truth every score is computed from.

simulator
commands downsensing up
Sees
181 lidar rays over 270°, 12 m range, binned into 64 sectors; goal distance and bearing; its own velocity
Does
forward 0–1 m/s, sideways ±0.5 m/s, turn ±1 rad/s
Trained
2 h per version on one GPU, 4,096 worlds at once
Swappable
an LLM planner could replace L1 without retraining L2 or L3

02 · Train one yourself

A robot learns to cross a crowded plaza, live in this tab.

A 2-D copy of our patrol problem. The yellow robot must reach the ring without touching anyone. Compare three controllers: none, a hand-written planner, and a policy you train right now. Press Train and watch the curve.

Hand-written planner
t 0.0 s
robot lidar (16 sectors here, 64 in the real run) pedestrian adversarial pedestrian
robot speedits change (acceleration)· this episode

What the learned brain gets. Changing an input rebuilds the network, so training starts over.

1.0×
1.2 m/s

Speeds apply live and mark the curve. Encounters are timed to the robot's top speed, so crossings still meet its path. The drawn predictions use the simulator's true motion; the robot only ever gets its own scans.

What we saw in this toy (3 seeds, held-out test): with adversarial pedestrians and 400 generations, memory lifted success from 39% to 52% on average, and the trajectory inputs didn't beat the baseline. Without adversarial pedestrians, personal space cut time within 1 m from about 7% to 4% of steps. One seed can tell a different story; that's why the log exists.

Who's driving

0generations
0practice episodes
0sim steps
0steps / second
reaches goaltouches someonesteps with someone within 1 m· 40 held-out episodes

Dashed lines mark setting changes.

The real run: 4,096 worlds at about 290,000 steps/s for 2 hours, about 2.1 billion steps, with PPO instead of this tab's simpler learner. Your tab: —

Held-out test, 100 episodes the learner never trained on

ControllerReaches goalTouches someoneWithin 1 m
No avoidance———
Hand-written———
Your policy———

“Within 1 m”: share of time steps with someone inside personal space. Uses the current speeds and adversarial setting.

Experiment log: every held-out test adds a row, so you can compare inputs and rewards side by side, the way v1 → v3 went.

#Inputs / rewardPeopleRobotAdversarialGensPolicy: goaltouch1 mPlanner: goaltouch1 m
No experiments yet. Train for a while, then press Run test.

03 · Reward design

You get the behavior you pay for, not the one you meant.

Four candidate routes past the same group of people. The robot will learn whichever route scores highest under your reward. Start from the weights we really used, then try the presets to watch a sensible robot turn into a reckless or frozen one.

+1.00
−0.010
−1.0
−10
−0.20Success bonus +10 and wall −10 stay fixed.

04 · The algorithm

PPO: improve, but never too much at once.

Proximal Policy Optimization trains on the robot's own recent experience. For each action it compares the new policy's probability with the old one's (the ratio r) and weights it by how much better than expected the action turned out (the advantage A). The clip stops one batch of luck from rewriting the policy. Drag the handle.

1.00
0.20
PieceOur robotRLHF on an LLM
Action3 velocities, 10 Hznext token
Episodeone patrol leg, up to 70 sone response
Rewardphysics: progress, contact, timea learned reward model
Batch4,096 worlds × 32 stepsprompts × samples
Guardrailclip 0.2, KL stop 0.03clip + KL to reference
Hackingvisible: watch the videohidden in text
γ0.99λ0.95clip0.2epochs4 × 4 minibatcheslr3e-4entropy0.003target KL0.03rollout32netsactor + critic, 256 × 256 ELUoutputtanh-squashed Gaussian

05 · The real training runs

Four versions, two hours each, one honest plateau.

These are the actual logs. The first version faced only people walking in straight lines and reached 96% training success. Each later version made the world harder or the robot's memory longer, and success settled between 30% and 41%.

VersionWhat changedWhySteps
Legacystraight-line walkers onlyfirst baseline4.0 B
v1adds adversarial pedestrians that reactpre-timed crowds were unfair to faster robots2.1 B
v2remembers scans 0.3 s and 0.6 s back0.1 s of history hid how pedestrians moved2.2 B
v3everyday crowd density + personal-space rewardit bumped ordinary people; nothing moved2.0 B
v4planned: fix the go/stop speedspeed noise pinned at its ceiling (a suspect)—

06 · Report the denominator

The headline said “tie.” The full table said otherwise.

80 held-out patrols on seeds no policy ever trained on, three learned versions against the hand-written planner. Lower is better everywhere. Start with the one number we set out to improve.

Showing 1 of 3 metrics

Adversarial pedestrians: hit per commit

% of intercept attempts that landed

On the metric we trained for, every version looks about even with the planner.

07 · Watch the video, not the table

Both clips passed the success check. Only one succeeded.

A robot arm learning to put an object in a bowl, scored overnight by an automatic check. Pick the real success.

Episode ACHECK: SUCCESS
Episode BCHECK: SUCCESS

Watch the whole run, not the last screen

Same seed, three drivers, the full six-minute patrol. Each lane ticks off its checkpoints; a dot pops when a robot finishes and a red diamond marks a fall. Watch it to the end: the race exposes a flaw in the test, not the robots. The walkers kept a timetable fitted to the slow robot, so the two faster robots passed every encounter before its walker arrived and never faced the test. The only contacts were late walkers reaching the charger after the robots parked.

With avoidance vs the control. People reading as they walk never react. With avoidance: 0 contacts, closest pass 0.47 m. The control robot gets knocked over.

08 · Missing data, not a missing model

It learned to grasp. Nobody had shown it letting go.

Same arm, same bowl, same strict check. We swapped FLUX 3 Action (0 real successes) for NVIDIA GR00T N1.7, a 3-billion-parameter robot model with an SO-101 fine-tuning path. Night 1 picked objects up, carried them to the bowl and held on. The fix was in the demos. Every number here is simulation, counted as strict successes out of every attempt.

Night 1 8 / 72It never lets go. Blue block, a training object: lifted, carried, and held over the bowl for the full 20 s. In 48 of the 59 episodes that lifted but didn't place, the policy never commanded the gripper open. The recorder reset the moment an object landed, so each demo held about 1 release frame in ~145.
Night 2 73 / 144Record the release. Re-recorded demos keep the release, retreat and settle: a median of 42 release frames across 862 demos. The fine-tune put 5× loss weight on frames where the gripper opens or closes. The mug, a training object: 20 of 24.
Or: + release gateLearn when to let go. Keep night 1's model frozen and train a small PPO policy on top: each action chunk it adds an arm correction of at most 4° and decides whether to open now. Cracker box, never trained on, on a sealed test seed: GR00T alone holds it over the bowl; with the gate it drops it in.

Real places in the bowl, strict. Six objects, four used in training and two never trained on.

FLUX 3 Action0 real
GR00T night 18 / 72
GR00T night 273 / 144
· training objects61 / 96
· never trained on12 / 48

Release gate on night 1's frozen model, paired test on sealed seeds never used in training: same layout, same GR00T noise, with and without the gate.

Training · alone58 / 465
Training · + gate382 / 465
Never trained · alone22 / 236
Never trained · + gate122 / 236

Read it as “GR00T + release gate”, not “GR00T learned to release”. The gate's numbers are not comparable with night 2's: different seeds, and the gate sits on night 1's model. It hasn't been tried on night 2's yet.

You be the checker

A real robot has no simulator to say whether it worked. So we asked local vision-language models one question about the last frame of each attempt, and scored them against simulator truth. Scene camera left, wrist camera right. Has the mug been placed in the bowl?

Frame A: the arm has stepped back; the mug sits inside the yellow bowl
Frame A

Placed in the bowl?

Frame B: the gripper still holds the mug at the rim of the yellow bowl
Frame B

Placed in the bowl?

Served locally · 95 framesAccuracyFalse “done”MissedMedian latency
Gemma 4 12B94.7%5 / 500 / 450.64 s
Qwen 3.8 27B97.9%1 / 501 / 451.9 s

95 end-of-attempt frames: 45 real places, 50 failures. The 45 real places were photographed after the arm released, stepped back and the scene settled. Photographed at the instant of release, fingers still around the object, Gemma missed 24 of 45.

Gemma 4 12B, 4-bit QLoRA · one training seedBaseFine-tuned
Says “done” on a failed attempt (settled frames)12 / 503 / 50
Misses a real place photographed at release15 / 4541 / 45
Misses a real place on objects it never trained on3 / 129 / 12

The fine-tune fixed the error it was trained against and created another. Both columns were scored in the fine-tuning harness, whose base gives 12 / 50, not 5 / 50, so compare within a table, not across.

09 · Across industries

Every industry gets the same three questions.

What will the machine do, what can we break in simulation before it ships, and what will we measure once it's working near people and property? Pick a field.

10 · Build the capability

It isn't mature yet. That's the reason to start.

The organizations that will be ready are the ones with people who already know how to test these systems. Our proposal is a small core team that builds simulation, evaluation and training skills once and lends them to every business unit and partner.

Our arm shows both halves. Two nights took it from 8 of 72 to 73 of 144 real places, and it still places only 12 of 48 objects it never trained on. The release gate hasn't been tried on the better model, the fine-tuned checker isn't ready to use, and every number is from simulation.

out: recipes, harness, scorecardsback: scenarios, incidents, failure videos

The core owns

  • simulator setup and scenario templates
  • the evaluation harness: controls, held-out seeds, video review
  • a metrics library normalized by exposure
  • training recipes and shared compute
  • a protocol for testing a vendor's system

Each unit owns

  • its scenarios and edge cases
  • site maps and real incident data
  • acceptance thresholds
  • feedback from operations

The tools are within reach

Isaac Lab, LeRobot and pretrained robot models like NVIDIA GR00T N1.7 run on one workstation. Read each license first: both arm models we used ship non-commercial terms.

Training is cheap

2 billion steps took 2 hours. Knowing whether the result was real took days.

Vendors arrive first

You'll be asked to approve, buy or answer for systems you didn't build.

Skills transfer

Agent and LLM teams already have half of it: rollouts, evals, reward design.

Weeks 1–2

One workstation

Install a simulator, train a toy task, run a pretrained robot.

Weeks 3–4

One real scenario

Rebuild a situation from your own operations, with a scripted baseline.

Weeks 5–8

Evaluation first

Controls, held-out seeds, video review, per-exposure metrics. Before any training.

Weeks 9–12

Train, score, share

Train a policy or test a vendor's. Publish the full table. Hand the kit to a second team.