Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Principle:Isaac sim IsaacGymEnvs Factory Configuration

From Leeroopedia
Knowledge Sources
Domains Configuration, Manipulation
Last Updated 2026-02-15 00:00 GMT

Overview

Three-tier configuration hierarchy using Hydra YAML and Python dataclass schemas for Factory and IndustReal assembly environments.

Description

Factory/IndustReal tasks use a layered config pattern: Base configs (simulation parameters, Franka defaults) provide foundational settings, Environment configs (object dimensions, scene layout) define the assembly scenario, and Task configs (reward weights, action scaling, controller type) tune the RL training loop. Each tier has both a YAML config file and a Python dataclass schema for type checking.

This three-tier architecture mirrors the class inheritance hierarchy:

  • FactoryBase / IndustRealBase -- reads cfg_base (simulation, Franka DOF properties, gravity)
  • FactoryEnv* / IndustRealEnv* -- reads cfg_env (object assets, environment count, scene spacing)
  • FactoryTask* / IndustRealTask* -- reads cfg_task (reward terms, action scales, controller selection, curriculum)

The YAML files are composed via Hydra's defaults list mechanism, with the task-level YAML being the entry point that includes environment and base configs.

Usage

Use this principle when configuring Factory or IndustReal assembly tasks. Key scenarios include:

  • Changing the controller type: Modify ctrl.controller_type in the task YAML (e.g., joint_space_ik vs task_space_impedance).
  • Adjusting reward weights: Tune rl.keypoint_reward_scale, rl.sdf_reward_scale, and other reward parameters in the task config.
  • Scaling environments: Set env.num_envs in the environment config to control GPU parallelism.
  • Modifying simulation parameters: Adjust sim.disable_gravity_dt, timestep, and solver iterations in the base config.

Theoretical Basis

The layered configuration inheritance follows a strict ordering:

# Configuration resolution order
FactoryBase.yaml     (or IndustRealBase.yaml)
  |
  v
FactoryEnv*.yaml     (or IndustRealEnv*.yaml)
  |
  v
FactoryTask*.yaml    (or IndustRealTask*.yaml)   <-- entry point

# Hydra composes these via defaults list:
# In FactoryTaskNutBoltPick.yaml:
#   defaults:
#     - FactoryBase
#     - FactoryEnvNutBolt

Each YAML tier has a corresponding Python dataclass schema that provides:

  • Type validation: Ensures config values match expected types at construction time.
  • Default values: Dataclass fields define sensible defaults that can be overridden by YAML.
  • Documentation: Field names and types serve as self-documenting configuration references.

The schema classes (e.g., FactorySchemaConfigBase, FactorySchemaConfigEnv, FactorySchemaConfigTask) are instantiated during __init__ and attached to the task object as self.cfg_base, self.cfg_env, and self.cfg_task.

Related Pages

Implemented By

Page Connections

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