Physical AI Lab // Episode 2.5 // One-pager
Sim2real: domain randomization and system identification
Two ways to patch the seam between simulation and reality
Three key points
- Simulation and the real robot have a "reality gap": friction, mass, latency and sensor noise may all fail to match, so what works in simulation may not work on the real robot.
- Domain randomization: keep randomizing the simulation's visual or physical parameters (textures, or mass / friction / latency) during training, so the policy holds up across a whole range of cases before moving to the real robot (Tobin 2017: the paper reports that training only on simulated images with random textures gave real-world object localization accurate to 1.5 cm, R; Peng 2017: the paper reports that after randomizing simulated dynamics, with no training on the real robot, the policy did the pushing task it tested, R).
- System identification: work back to parameters from real-robot data (demo: fitting friction from one trajectory; recovered value ≈ true value). In practice the two are combined: identification narrows the range, randomization covers the remaining error.
Evidence: O official · R research · M media
| R | 1.5 cm | real-world localisation accuracy. The paper reports that, trained only on random textures in simulation (domain randomization), object localisation in the real world reaches 1.5 cm |
| O | 1 | is MuJoCo's default sliding friction coefficient (friction = 1 / 0.005 / 0.0001: sliding is the first, 1, then torsional and rolling) |
| O | 2 ms | is MuJoCo's default simulation time step (0.002 s) |
| R | No real-robot training | The paper reports that, with the simulator's dynamics randomized during training, the policy was not trained on the real robot and still did the robotic-arm object-pushing task it tested there |
Further reading
- Tobin et al. · Domain Randomization (arXiv 1703.06907)
https://arxiv.org/abs/1703.06907 - Peng et al. · Sim-to-Real with Dynamics Randomization (arXiv 1710.06537)
https://arxiv.org/abs/1710.06537 - MuJoCo docs · XML Reference (friction and timestep defaults)
https://mujoco.readthedocs.io/en/stable/XMLreference.html