| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| set -euo pipefail |
|
|
| |
| |
|
|
| PROJECT_DIR="${PROJECT_DIR:-$PWD}" |
| cd "$PROJECT_DIR" |
|
|
| source .venv/bin/activate |
|
|
| OUT_DIR="/scratch/$USER/dovla/experiments/phase_b_12task_collection" |
| K=16 |
| STATE_BATCH_SIZE=16 |
|
|
| |
| declare -A TASK_GROUPS=( |
| |
| ["PickCube-v1"]=800 |
| ["PushCube-v1"]=800 |
| ["PullCube-v1"]=600 |
| ["StackCube-v1"]=600 |
| ["LiftPegUpright-v1"]=600 |
| ["PegInsertionSide-v1"]=600 |
|
|
| |
| ["TurnFaucet-v1"]=500 |
| ["OpenDrawer-v1"]=500 |
| ["CloseDrawer-v1"]=500 |
| ["PlugCharger-v1"]=400 |
| ["HangMug-v1"]=400 |
| ["PourWater-v1"]=400 |
| ) |
|
|
| mkdir -p "$OUT_DIR" logs |
|
|
| echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" |
| echo "Phase B Option 1: 12-Task ManiSkill Collection" |
| echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" |
| echo "" |
| echo "Target: 6,200 groups, 99,200 records (K=$K)" |
| echo "Strategy: Expand existing ManiSkill tasks" |
| echo "" |
|
|
| |
| if [ "${DRY_RUN:-0}" = "1" ]; then |
| echo "DRY RUN: Would generate 12 tasks" |
| for TASK in "${!TASK_GROUPS[@]}"; do |
| echo " $TASK: ${TASK_GROUPS[$TASK]} groups" |
| done |
| exit 0 |
| fi |
|
|
| |
| for TASK in "${!TASK_GROUPS[@]}"; do |
| NUM_GROUPS="${TASK_GROUPS[$TASK]}" |
|
|
| |
| if [ -d "$OUT_DIR/${TASK}_k${K}_n${NUM_GROUPS}/merged" ]; then |
| echo "✓ $TASK already exists, skipping" |
| continue |
| fi |
|
|
| echo "Generating $TASK: $NUM_GROUPS groups..." |
|
|
| |
| python scripts/generate_maniskill_lattice.py \ |
| --env-id "$TASK" \ |
| --control-mode pd_ee_delta_pose \ |
| --out "$OUT_DIR/${TASK}_k${K}_n${NUM_GROUPS}" \ |
| --num-groups "$NUM_GROUPS" \ |
| --k "$K" \ |
| --state-batch-size "$STATE_BATCH_SIZE" \ |
| --seed 42 \ |
| --pre-success-only \ |
| --use-official-demos || { |
| echo "⚠️ $TASK failed (demo might not exist)" |
| continue |
| } |
|
|
| echo "✅ $TASK complete" |
| echo "" |
| done |
|
|
| echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" |
| echo "Merging into unified 12-task collection" |
| echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" |
|
|
| python scripts/make_cil_collection.py \ |
| --source-dirs "$OUT_DIR"/*/merged \ |
| --out "$OUT_DIR/merged_12tasks" \ |
| --name "phase_b_12task_collection" |
|
|
| echo "" |
| echo "✅ Phase B Option 1 complete: 12-task collection ready" |
| echo " Location: $OUT_DIR/merged_12tasks" |
| echo "" |
| echo "Next: Train on 12 tasks" |
| echo " sbatch scripts/slurm/phase_b_train_12tasks.sbatch" |
|
|