Bridging the Gap: Simulation Enhancement#

Domain Randomization#

Domain randomization is a key technique for expanding our simulation domain and improving system robustness. Here’s how we implement it:

Randomize Physical Parameters#

We modify various physical attributes of our simulated environment:

  • Body mass properties of the robot and manipulated objects

  • Joint parameters for different movement characteristics

  • Friction coefficients between the various surfaces

Note

While link length randomization is possible, it’s challenging to implement effectively with most simulators.

Randomize Shapes#

We vary the physical forms in our simulation:

  • Terrain variations to expose the robot to different ground conditions

  • Object shapes and sizes for grasping tasks, helping the robot learn general concepts rather than specific instances

Randomize Tasks#

We introduce variability in how tasks are performed:

  • Random initial conditions for robot joint states

  • Varied object positions and orientations

  • Diverse command sets, such as different target velocities

Add Perturbations#

To build robustness, we incorporate various disturbances:

  • Observation noise, particularly for naturally noisy signals like joint velocities, or data coming from an inertial measurement unit (IMU)

  • Physical pushes to develop recovery behaviors