| #!/usr/bin/env bash |
| |
| |
| |
| |
|
|
| set -euo pipefail |
|
|
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" |
|
|
| |
| LIBERO_DATA_ROOT="${REPO_ROOT}/LIBERO-DATA" |
| OUTPUT_ROOT="${OUTPUT_ROOT:-${REPO_ROOT}/LIBERO-DATA-phase}" |
| SIGNAL_SOURCE="${SIGNAL_SOURCE:-action}" |
| MEDIAN_FILTER_SIZE="${MEDIAN_FILTER_SIZE:-5}" |
| NUM_WORKERS="${NUM_WORKERS:-1}" |
|
|
| SUITES=( |
| "libero_10_no_noops_1.0.0_lerobot" |
| "libero_goal_no_noops_1.0.0_lerobot" |
| "libero_object_no_noops_1.0.0_lerobot" |
| "libero_spatial_no_noops_1.0.0_lerobot" |
| ) |
| |
|
|
| echo "========================================================" |
| echo " LIBERO Phase Annotation" |
| echo "========================================================" |
| echo " LIBERO_DATA_ROOT : ${LIBERO_DATA_ROOT}" |
| echo " OUTPUT_ROOT : ${OUTPUT_ROOT}" |
| echo " signal_source : ${SIGNAL_SOURCE}" |
| echo " num_workers : ${NUM_WORKERS}" |
| echo "========================================================" |
|
|
| cd "${REPO_ROOT}" |
|
|
| FAILED=() |
| for SUITE in "${SUITES[@]}"; do |
| SRC_DIR="${LIBERO_DATA_ROOT}/${SUITE}" |
| OUT_DIR="${OUTPUT_ROOT}/${SUITE}" |
|
|
| echo "" |
| echo "-------- [$(date '+%H:%M:%S')] Processing: ${SUITE} --------" |
|
|
| if [[ ! -d "${SRC_DIR}/data" ]]; then |
| echo " SKIP: ${SRC_DIR}/data not found (parquet not downloaded yet)" |
| continue |
| fi |
|
|
| mkdir -p "${OUT_DIR}" |
|
|
| if python -m phaseaware_data_construction.phase_annotate \ |
| --src_dir "${SRC_DIR}" \ |
| --output_dir "${OUT_DIR}" \ |
| --signal_source "${SIGNAL_SOURCE}" \ |
| --median_filter_size "${MEDIAN_FILTER_SIZE}" \ |
| --num_workers "${NUM_WORKERS}"; then |
| echo " OK: annotation written to ${OUT_DIR}" |
| else |
| echo " FAILED: ${SUITE}" |
| FAILED+=("${SUITE}") |
| fi |
| done |
|
|
| |
| echo "" |
| echo "========================================================" |
| echo " Validation" |
| echo "========================================================" |
| for SUITE in "${SUITES[@]}"; do |
| SRC_DIR="${LIBERO_DATA_ROOT}/${SUITE}" |
| OUT_DIR="${OUTPUT_ROOT}/${SUITE}" |
|
|
| if [[ ! -d "${OUT_DIR}/data" ]]; then |
| echo " SKIP validate: ${SUITE} (no output yet)" |
| continue |
| fi |
|
|
| echo "" |
| echo "-------- [$(date '+%H:%M:%S')] Validating: ${SUITE} --------" |
| python -m phaseaware_data_construction.phase_annotate \ |
| --src_dir "${SRC_DIR}" \ |
| --output_dir "${OUT_DIR}" \ |
| --validate || true |
| done |
|
|
| |
| echo "" |
| echo "========================================================" |
| if [[ ${#FAILED[@]} -eq 0 ]]; then |
| echo " All suites completed successfully." |
| else |
| echo " The following suites FAILED:" |
| for s in "${FAILED[@]}"; do echo " - ${s}"; done |
| exit 1 |
| fi |
| echo "========================================================" |
|
|