Arena Experiments#
An Arena Experiment groups one or more named Runs into one evaluation. Each Run selects an existing Environment Definition and combines it with a policy and the settings that control the rollout.
The Experiment Definition is the YAML file that describes those Runs. It is the main interface for evaluation: run the same definition locally with the Experiment Runner, or submit it to OSMO for managed execution.
Note
A Run can reuse either form of Environment Definition:
a registered Python environment, selected by name in
environment.type; oran existing
ArenaEnvGraphSpecYAML file, selected by its path inenvironment.type.
Different Runs in the same Experiment can use different forms.
The Experiment Definition describes the evaluation. The Environment Definition describes the scene, embodiment, and task. Each Run builds a fresh runtime environment from that definition.
The typed YAML file. It holds shared values and one or more named Runs.
One Environment Definition combined with one policy and rollout settings. A Run can contain many parallel simulated environments.
The Experiment Runner executes locally. OSMO schedules the same Runs on managed compute.
The Experiment Definition#
The YAML has a required runs mapping. A shared mapping is optional. When present, its
values are reused by every Run. Each key below runs is a Run name:
shared:
environment:
type: pick_and_place_maple_table
embodiment: droid_rel_joint_pos
hdr: home_office_robolab
policy:
type: zero_action
rollout_limit:
num_steps: 50
runs:
baseline: {}
billiard_hall:
environment:
hdr: billiard_hall_robolab
baseline inherits all shared values. billiard_hall inherits them too, then replaces only
the background. The Run name comes from its key below runs; there is no separate name
field. Arena uses this name in command-line overrides, output directories, and reports.
Runs keep their YAML order and execute locally in that order.
One definition, two execution paths#
Loads the YAML once and executes its Runs in order in one process and one
SimulationApp. Every Run builds a fresh environment. The runner stops at the first failure
unless --continue_on_error is set.
Turns every Run into an independently scheduled group. Runs can execute at the same time when resources are available. OSMO then collects their outputs into one combined result.
python isaaclab_arena/evaluation/experiment_runner.py \
--experiment_config path/to/experiment.yaml
python -m osmo.submit_arena_experiment \
--experiment_cfg path/to/experiment.yaml \
--dry_run
For remote policies, configure the policy client inside its Run like any other policy. Start the policy server separately for local execution. OSMO can co-schedule a server for supported policy types.
Follow First Arena Experiment for a complete local example. For OSMO setup and submission options, see Multi-node Evaluation.
Choosing a runner#
Note
Use the Experiment Runner for policy evaluations defined in YAML. Use the Environment
Runner (isaaclab_arena/scripts/environment_runner.py) to inspect and physically manipulate
an environment without a policy. The Policy Runner is currently needed only for torchrun
multi-GPU execution or policy evaluation of an external environment loaded with
--external_environment_class_path.