Implementation:Isaac sim IsaacGymEnvs DR YAML Configuration
| Knowledge Sources | |
|---|---|
| Domains | |
| Last Updated | 2026-02-15 00:00 GMT |
Overview
YAML configuration pattern for specifying domain randomization parameters in IsaacGymEnvs. The configuration lives under task.randomization_params in task YAML files and defines which physics properties to randomize, their distributions, ranges, operations, and schedules. For ADR, an additional task.adr section specifies initial ranges, limits, and delta step sizes.
Description
The DR YAML configuration is a structured dictionary consumed by apply_randomizations() at runtime. It is organized into several top-level sections:
frequency-- Number of simulation steps between re-randomizations.actor_params-- Per-actor (e.g., "hand", "object") property randomization includingdof_properties,rigid_body_properties,rigid_shape_properties,scale, andcolor.sim_params-- Simulation-level parameters (e.g., gravity).observations-- Per-observation-channel noise configuration with both white noise (range) and correlated noise (range_correlated).actions-- Action noise configuration.
For ADR, the task.adr.params section maps parameter names to ADR metadata, linking each to the corresponding randomization_params entry via range_path.
Usage
Edit the task YAML file (e.g., AllegroHandDextremeADR.yaml or AllegroHandDextremeManualDR.yaml) to configure randomization before training:
python train.py task=AllegroHandDextremeADR
Code Reference
Source Location
- File:
isaacgymenvs/cfg/task/AllegroHandDextremeADR.yaml(lines 1--443) - File:
isaacgymenvs/cfg/task/AllegroHandDextremeManualDR.yaml(lines 1--264)
Pattern Structure
The YAML is organized hierarchically under task.randomization_params, with sections for actor parameters, simulation parameters, observations, and actions.
Manual DR Configuration (AllegroHandDextremeManualDR.yaml)
task:
randomize: True
randomization_params:
frequency: 720 # Simulation steps between re-randomizations
observations:
dof_pos:
range: [0, .005] # White noise range
range_correlated: [0, .01] # Correlated noise (refreshed at frequency)
operation: "additive"
distribution: "gaussian"
object_pose_cam:
range: [0, .005]
range_correlated: [0, .01]
operation: "additive"
distribution: "gaussian"
actions:
range: [0., .05]
range_correlated: [0, .02]
operation: "additive"
distribution: "gaussian"
sim_params:
gravity:
range: [0, 0.5]
operation: "additive"
distribution: "gaussian"
actor_params:
hand:
color: True
dof_properties:
damping:
range: [0.3, 3.0]
operation: "scaling"
distribution: "loguniform"
stiffness:
range: [0.75, 1.5]
operation: "scaling"
distribution: "loguniform"
lower:
range: [0, 0.01]
operation: "additive"
distribution: "gaussian"
upper:
range: [0, 0.01]
operation: "additive"
distribution: "gaussian"
rigid_body_properties:
mass:
range: [0.5, 2.0]
operation: "scaling"
distribution: "uniform"
setup_only: True
rigid_shape_properties:
friction:
num_buckets: 250
range: [0.2, 1.2]
operation: "scaling"
distribution: "uniform"
restitution:
num_buckets: 100
range: [0.0, 0.4]
operation: "additive"
distribution: "uniform"
object:
scale:
range: [0.95, 1.05]
operation: "scaling"
distribution: "uniform"
setup_only: True
rigid_body_properties:
mass:
range: [0.5, 1.5]
operation: "scaling"
distribution: "uniform"
setup_only: True
rigid_shape_properties:
friction:
num_buckets: 250
range: [0.2, 1.2]
operation: "scaling"
distribution: "uniform"
ADR Configuration (AllegroHandDextremeADR.yaml)
The ADR config extends the manual DR config with an adr section that dynamically adjusts the ranges referenced in randomization_params:
task:
adr:
use_adr: True
update_adr_ranges: True
clear_other_queues: False
adr_extended_boundary_sample: False
worker_adr_boundary_fraction: 0.4
adr_queue_threshold_length: 256
adr_objective_threshold_low: 5
adr_objective_threshold_high: 20
adr_rollout_perf_alpha: 0.99
adr_load_from_checkpoint: false
params:
hand_damping:
range_path: actor_params.hand.dof_properties.damping.range
init_range: [0.5, 2.0]
limits: [0.01, 20.0]
delta: 0.01
delta_style: 'additive'
hand_stiffness:
range_path: actor_params.hand.dof_properties.stiffness.range
init_range: [0.8, 1.2]
limits: [0.01, 20.0]
delta: 0.01
delta_style: 'additive'
hand_mass:
range_path: actor_params.hand.rigid_body_properties.mass.range
init_range: [0.8, 1.2]
limits: [0.01, 10.0]
delta: 0.01
delta_style: 'additive'
object_mass:
range_path: actor_params.object.rigid_body_properties.mass.range
init_range: [0.8, 1.2]
limits: [0.01, 10.0]
delta: 0.01
delta_style: 'additive'
# Affine transform params (ax + b + c noise model)
affine_action_additive:
init_range: [0.0, 0.04]
limits: [0.0, 4.0]
delta: 0.01
delta_style: 'additive'
affine_action_white:
init_range: [0.0, 0.04]
limits: [0.0, 4.0]
delta: 0.01
delta_style: 'additive'
rna_alpha:
init_range: [0.0, 0.0]
limits: [0.0, 1.0]
delta: 0.01
delta_style: 'additive'
Key Parameters
| Field | Type | Description |
|---|---|---|
frequency |
int | Number of simulation steps between generating new randomizations. |
range |
[lo, hi] | Bounds of the randomization distribution. For gaussian: [mean, std]. For uniform/loguniform: [low, high]. |
range_correlated |
[lo, hi] | Correlated noise range, refreshed at frequency intervals (observations/actions only).
|
distribution |
str | One of "gaussian", "uniform", or "loguniform".
|
operation |
str | "additive" (new = original + sample) or "scaling" (new = original * sample).
|
schedule |
str | Optional. "linear" ramps from zero to full strength over schedule_steps. "constant" enables full randomization after schedule_steps.
|
schedule_steps |
int | Number of steps over which the schedule operates. |
setup_only |
bool | If True, randomize only once before simulation starts (not on resets).
|
num_buckets |
int | Number of material buckets for PhysX shape properties. Total across all actors must not exceed 64K. |
| Field | Type | Description |
|---|---|---|
range_path |
str | Dot-separated path to the corresponding range in randomization_params (e.g., actor_params.hand.dof_properties.damping.range).
|
init_range |
[lo, hi] | Starting range for the ADR parameter. |
limits |
[lo, hi] | Hard bounds that the ADR algorithm cannot exceed. |
delta |
float | Step size for expanding or contracting the range. |
delta_style |
str | "additive" or "multiplicative" -- how delta is applied to range endpoints.
|
I/O Contract
Inputs
| Name | Type | Description |
|---|---|---|
| YAML config file | YAML | Task configuration file loaded by Hydra (e.g., cfg/task/AllegroHandDextremeADR.yaml).
|
Outputs
| Name | Type | Description |
|---|---|---|
randomization_params |
dict | Structured randomization parameter dictionary consumed by apply_randomizations().
|
adr_params |
dict | ADR parameter dictionary consumed by ADRVecTask.adr_update().
|