Scripted Policies

Scripted policies are task-aware state machines used to validate task logic and collect successful demonstrations. They are not benchmark competitors against learned policies.

Implementations live in source/am_isaac/am_isaac/policies/scripted/. Each maintained task registers or exposes the scripted policy used by the generic recorder.

Run through the recorder

python scripts/data/record_demos_scripted.py \
  --task PressButton-Am-EE-Abs-PID-Direct-v0 \
  --dataset_root <dataset-root> \
  --repo_id am_bench/press_button_smoke \
  --state_keys ee_pos ee_quat gripper_width \
  --task_prompt "press the button" \
  --step_hz 120 \
  --num_envs 1 \
  --num_demos 1 \
  --env_length_s 20 \
  --camera_names ee_camera \
  --video \
  --headless \
  --device cuda:0

A successful episode is evidence that the selected reset, scene, controller, success criteria, and scripted behavior can cooperate for that rollout. It is not a robustness measurement. Inspect the video and repeat across seeds before collecting a large dataset.

For a BaseJoint environment, the recorder uses the robot profile's IK configuration to adapt scripted EE targets into absolute base and joint actions. See Collect Demonstrations for the full recording contract.