Forge PegInsert expert (PPO)
PPO policy for Isaac-Forge-PegInsert-Direct-v0 (Isaac Lab FORGE suite),
trained with rl_games. Final return 345.5; measured success ~96% over ~1,010 collection episodes.
⚠️ This policy is for stock PegInsert only
It was trained on 2026-06-30, before the task config in our Isaac Lab checkout was modified for a separate study (spawn raised to 8 cm with ±5 cm lateral noise, and a ±10° tilt of the peg inside the gripper). On stock dynamics it succeeds ~96% of the time; on that modified variant it scores 0/12. A policy trained from scratch on the modified variant plateaus at a return of 72.7 against this one's 345.5 — the geometry explains why: with a 7.986 mm peg in an 8.100 mm hole, a peg cocked beyond ~9.6° cannot enter at all, and the tilt is not observable in the policy's inputs.
On an unmodified Isaac Lab, run it as-is.
What is in the file
rl_games checkpoints hold more than the policy: the actor-critic weights, the optimizer state,
and — importantly for inference — the running observation normalisation statistics. That is why a
small MLP policy takes 204 MB. Load it through the Isaac Lab player rather than torch.load alone,
so the normaliser is restored with the weights:
./isaaclab.sh -p scripts/reinforcement_learning/rl_games/play.py \
--task Isaac-Forge-PegInsert-Direct-v0 --checkpoint /path/to/forge_peginsert_2026-06-30.pth --num_envs 1 --headless
Training
Stock Isaac Lab rl_games PPO, unchanged hyper-parameters except the epoch count:
128 environments, seed 0, 300 epochs (the shipped config stops at 200, which cuts the run while
the return is still climbing). Snapshots exist at epochs 100 and 200; this repo ships epoch 300.
Related
- Demonstrations produced with this policy:
angledusgar/forge-v1 - Its failures:
angledusgar/forge-failure-v1