#!/usr/bin/env bash set -euo pipefail TASK="${1:?usage: run_anybimanual_task_eval.sh [episodes] [gpu]}" EPISODES="${2:-5}" GPU="${3:-0}" DEMO_PATH="${DEMO_PATH:-/workspace/data/rlbench2}" RUN_LOGDIR="${RUN_LOGDIR:-/workspace/runs/anybimanual/peract_lf_eval}" ROOT="/workspace/third_party/AnyBimanual" ENV_DIR="/workspace/envs/anybi311" export HOME="/workspace" export HF_HOME="/workspace/.hf" export TORCH_HOME="/workspace/.cache/torch" export COPPELIASIM_ROOT="/workspace/assets/coppeliasim_v4_1_0" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:$COPPELIASIM_ROOT" export QT_QPA_PLATFORM_PLUGIN_PATH="$COPPELIASIM_ROOT" export MESA_GL_VERSION_OVERRIDE="4.1" export PYOPENGL_PLATFORM="egl" export PYTHONPATH="$ROOT:$ROOT/third_party/RLBench:$ROOT/third_party/YARR:$ROOT/third_party/PyRep:$ROOT/third_party/pytorch3d:${PYTHONPATH:-}" source "$ENV_DIR/bin/activate" cd "$ROOT" xvfb-run -a python eval.py \ method=PERACT_BC \ framework.logdir="$RUN_LOGDIR" \ rlbench.task_name='per2+ab' \ rlbench.demo_path="$DEMO_PATH" \ rlbench.gripper_mode='BimanualDiscrete' \ rlbench.arm_action_mode='BimanualEndEffectorPoseViaPlanning' \ rlbench.action_mode='BimanualMoveArmThenGripper' \ framework.start_seed=0 \ framework.eval_type=60000 \ framework.eval_episodes="$EPISODES" \ framework.eval_envs=1 \ framework.eval_save_metrics=true \ framework.gpu="$GPU" \ rlbench.headless=true \ cinematic_recorder.enabled=false \ "rlbench.tasks=[$TASK]"