#!/usr/bin/env bash set -euo pipefail : "${ROOT:?Set ROOT to the output parent folder for generated VariousSpeed datasets.}" : "${BASE:?Set BASE to the folder containing *_no_noops_1.0.0_lerobot source datasets.}" RUN_TAG="${RUN_TAG:-four_suite_v2}" TIMESTAMP="${TIMESTAMP:-$(date +%Y%m%d)}" SPEEDS="${SPEEDS:-0.5 0.75 1.0 1.25 2.0}" WRITE_VIDEOS="${WRITE_VIDEOS:-1}" OVERWRITE="${OVERWRITE:-0}" MAX_EPISODES="${MAX_EPISODES:-}" export UV_CACHE_DIR="${UV_CACHE_DIR:-/tmp/uv-cache}" export HF_HOME="${HF_HOME:-/tmp/hf-cache}" export HF_DATASETS_CACHE="${HF_DATASETS_CACHE:-/tmp/hf-cache/datasets}" suites=( libero_spatial libero_object libero_goal libero_10 ) log() { printf '[%(%Y-%m-%d %H:%M:%S)T] %s\n' -1 "$*" } main() { cd "$(dirname "$0")/.." read -r -a speed_args <<< "$SPEEDS" common_args=( --dst "$ROOT" --auto-name --run-tag "$RUN_TAG" --timestamp "$TIMESTAMP" --speeds "${speed_args[@]}" --clean-transl-eps 1e-4 --clean-rot-eps 1e-4 --min-segment-len 1 ) if [[ "$WRITE_VIDEOS" == "1" ]]; then common_args+=(--write-videos) fi if [[ "$OVERWRITE" == "1" ]]; then common_args+=(--overwrite) fi if [[ -n "$MAX_EPISODES" ]]; then common_args+=(--max-episodes "$MAX_EPISODES") fi log "building four LIBERO speed datasets" log "root=$ROOT base=$BASE run_tag=$RUN_TAG timestamp=$TIMESTAMP speeds=$SPEEDS" for suite in "${suites[@]}"; do log "processing $suite" uv run python scripts/build_libero_speed_dataset.py \ --src "$BASE/${suite}_no_noops_1.0.0_lerobot" \ --task-suite-name "$suite" \ "${common_args[@]}" done log "done" } main "$@"