Skip to content

Configure Tasks and Scenes

Task configurations own episode timing, task assets, surrounding geometry, reset randomization, task observations, and success criteria. Select a registered configuration first, then inspect that task's config instead of assuming every task exposes the same fields.

Shared environment settings

Every maintained task derives from BaseEnvCfg in source/ambench/ambench/tasks/base/base_env_cfg.py.

Field Current shared default Effect
sim.dt 1 / 120 seconds Physics step interval
decimation 1 Physics steps per environment step; the environment step interval is sim.dt * decimation
scene.num_envs 1 Number of cloned environments before a launcher override
scene.env_spacing 5.0 metres Spacing used when laying clones along the Y axis
scene.replicate_physics False Whether Isaac Lab replicates physics state across clones
spawn_ground_plane True Whether BaseEnv creates /World/ground
episode_length_s task-specific Time limit used to compute episode truncation

Command-line tools may override values such as the environment count after loading the registered config. Record both the environment ID and launcher arguments when comparing runs.

Maintained task configs

Task ID prefix Default config class Episode limit Representative task-owned settings
CabinetPickPlace CabinetPickPlaceEnvDefaultCfg 60 s cabinet and can poses; drawer height; placement and velocity thresholds
FrameAssembly FrameAssemblyEnvDefaultCfg 30 s wall pose; peg separation/count; frame dimensions, mass, and placement tolerances
LemonHarvesting LemonHarvestingEnvDefaultCfg 30 s wall and lemon/lime positions; container size; grasp/release thresholds
NDT NDTEnvDefaultCfg 20 s scene and marker transforms; inspection goal; position tolerances and hold steps
OpenDoor OpenDoorEnvDefaultCfg 15 s door pose and asset; open-angle threshold
PegInHole PegInHoleEnvDefaultCfg 20 s wall/hole/peg geometry and poses; peg mass; insertion-depth threshold
PressButton PressButtonEnvDefaultCfg 20 s wall/button geometry and poses; button radius and pressed threshold
PullLever PullLeverEnvDefaultCfg 20 s wall/lever geometry and pose; minimum pull angle
PushSlider PushSliderEnvDefaultCfg 26 s wall/slider pose and asset; pushed threshold
RotateValve RotateValveEnvDefaultCfg 20 s wall/valve pose and properties; target angle and engagement ratio
TossBall TossBallEnvDefaultCfg 10 s container size; ball radius/mass; release and base-position thresholds
WipeWindow WipeWindowEnvDefaultCfg 20 s window/sponge geometry; stain count; contact-force, count, and radius thresholds

These are current software defaults, not an immutable benchmark protocol. Read the selected class before overriding it, because derived registered configs may replace the robot profile or adjust task values.

Success and progress criteria

Final success produces terminated=True. Named criteria are rollout progress signals; the evaluator marks a criterion complete if it becomes true at least once.

Task Final success Named criteria
Cabinet Pick Place can is within the drawer height band and below the velocity threshold drawer opened; can lifted; can placed on drawer
Frame Assembly frame center is within the configured X and YZ peg tolerances frame lifted; frame placed on pegs
Lemon Harvesting lemon is inside the container region and the gripper is open lemon grasped and detached; lemon delivered and released
NDT EE remains within the inspection tolerances for the configured hold steps inspection target held
Open Door door joint exceeds the configured open angle door engaged; door opened
Peg In Hole peg tip passes the insertion depth and lateral-bound checks in the hole frame none
Press Button button joint reaches the pressed threshold none
Pull Lever lever joint exceeds the minimum pull angle lever engaged; lever pulled
Push Slider slider joint reaches the pushed threshold slider engaged; slider pushed
Rotate Valve valve joint reaches the target angle valve engaged; valve rotated
Toss Ball ball is released inside the container bounds while the robot remains behind the bin ball released; ball delivered
Wipe Window every stain has been removed by the configured contact checks one removed criterion per stain

Every maintained task calls the shared reset before restoring its own state. Articulated tasks restore their joints; object tasks restore or retain their configured/event-randomized poses as appropriate; attached-object tasks reattach the peg, ball, or sponge; and stateful tasks clear hold, grasp, contact, or visibility buffers.

Change a task value

For a maintained variant, define a config subclass next to the task rather than mutating a shared class-level object. This example changes only Press Button task settings:

from isaaclab.utils import configclass

from ambench.tasks.press_button.press_button_env_cfg import PressButtonEnvDefaultCfg


@configclass
class PressButtonLongEpisodeCfg(PressButtonEnvDefaultCfg):
    episode_length_s = 30
    button_pressed_threshold = 0.006

A new public variant also needs an explicit register_env(...) entry in the task package's __init__.py. Use Environment IDs for the naming contract and Add a Task for the registration and validation path.

Configure scene geometry and assets

Task configs use Isaac Lab asset configs such as ArticulationCfg, RigidObjectCfg, and scene helpers such as WallSceneCfg. Keep related derived values together: moving a wall may require recomputing the local offset or initial position of a button, hole, lever, slider, valve, or peg fixture.

Simple reusable surrounding geometry belongs in source/ambench/ambench/scenes/. Task-specific object counts, asset choices, poses, and success thresholds remain in the task config. Do not point a public config at a machine-local asset path.

Verify success and observations

Config fields only define the inputs to task behavior. The task's *_env.py remains authoritative for _get_observations() and _get_success(). After changing geometry, thresholds, or event ranges, run one bounded environment and exercise the smallest relevant scripted policy before scaling the number of environments.

See Physics, Disturbances, and Randomization for the current event surfaces and Actions, Observations, and Cameras for the environment-level policy contract.