| --- |
| license: apache-2.0 |
| tags: |
| - robotics |
| - reinforcement-learning |
| - isaac-lab |
| - forge |
| - rl-games |
| - ppo |
| --- |
| |
| # Forge PegInsert expert (PPO) |
|
|
| PPO policy for `Isaac-Forge-PegInsert-Direct-v0` ([Isaac Lab](https://github.com/isaac-sim/IsaacLab) 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: |
|
|
| ```bash |
| ./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`](https://huggingface.co/datasets/angledusgar/forge-v1) |
| - Its failures: [`angledusgar/forge-failure-v1`](https://huggingface.co/datasets/angledusgar/forge-failure-v1) |
|
|
|
|