Domain Randomization: The Bridge from Sim to Real
Duration: 55 min · Level: Intermediate · Module: 7. Simulation & Digital Twins · Focus: domain-randomization, sim-to-real, training, transfer
By the end of this lesson you will be able to explain and apply:
- OpenAI Dactyl (2019)
- What to randomize
- Curriculum + randomization
- Adaptive domain randomization (ADR)
- Visual domain randomization
You will then consolidate these ideas in the hands-on lab below.
Why this matters
Every sim-to-real policy fails due to the "reality gap" — differences between simulation and the real world.
Overview
Every sim-to-real policy fails due to the "reality gap" — differences between simulation and the real world. Domain randomization, pioneered by OpenAI and ETH Zurich, systematically randomizes simulation parameters during training to produce policies robust to the distribution of reality.
Key concepts
OpenAI Dactyl (2019): trained dexterous in-hand cube manipulation using domain randomization across 100+ parameters; zero-shot transfer to real Shadow Hand — defining result
- What to randomize: mass (±20%), friction (uniform 0.1-1.5), damping, motor strength, sensor noise, camera exposure, object color/texture, terrain height maps
- Curriculum + randomization: start with narrow randomization range, expand as policy succeeds; prevents training collapse on hard distributions early in learning
- Adaptive domain randomization (ADR): automatically adjust randomization range based on policy success rate; parameters that cause failure get narrower range, those that don't get wider
- Visual domain randomization: randomize textures, lighting, camera parameters; essential for vision-based policies; Isaac Sim 4.0 provides photorealistic randomization via ray tracing
- Residual physics simulation: add a learned "residual" model that compensates for systematic sim-to-real errors; particularly effective for contact-rich manipulation
In Isaac Lab, set up G1 locomotion training with domain randomization: define at least 8 randomized parameters, implement curriculum that extends terrain difficulty as success rate exceeds 80%, and compare zero-shot transfer performance against a policy trained without randomization.
Check your understanding
Try to recall each answer before expanding it.
Q1. What do you know about OpenAI Dactyl (2019)?
trained dexterous in-hand cube manipulation using domain randomization across 100+ parameters; zero-shot transfer to real Shadow Hand — defining result
Q2. What do you know about What to randomize?
mass (±20%), friction (uniform 0.1-1.5), damping, motor strength, sensor noise, camera exposure, object color/texture, terrain height maps
Q3. What do you know about Curriculum + randomization?
start with narrow randomization range, expand as policy succeeds; prevents training collapse on hard distributions early in learning
Q4. What do you know about Adaptive domain randomization (ADR)?
automatically adjust randomization range based on policy success rate; parameters that cause failure get narrower range, those that don't get wider
Q5. What do you know about Visual domain randomization?
randomize textures, lighting, camera parameters; essential for vision-based policies; Isaac Sim 4.0 provides photorealistic randomization via ray tracing
References
- Solving Rubik's Cube with a Robot Hand — OpenAI et al. (2019). arXiv 1910.07113
- Sim-to-Real Transfer of Robotic Control with Dynamics Randomization — Peng et al. (2018). ICRA 2018
← Previous: 7.1 The Simulation Stack: MuJoCo, Isaac Gym, and Isaac Lab · Next: 7.3 Building a Physics-Accurate Digital Twin of G1 →
Part of Module 7: Simulation & Digital Twins.