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