Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Isaac sim IsaacGymEnvs DR YAML Configuration

From Leeroopedia
Metadata
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 including dof_properties, rigid_body_properties, rigid_shape_properties, scale, and color.
  • 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

Randomization Parameter Fields
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.
ADR Parameter Fields
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

Input Contract
Name Type Description
YAML config file YAML Task configuration file loaded by Hydra (e.g., cfg/task/AllegroHandDextremeADR.yaml).

Outputs

Output Contract
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().

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment