i4h-workflow-dataset-replay

Par nvidia · skills

Rejoue un épisode HDF5 enregistré dans Isaac Sim pour vérification visuelle. À utiliser lorsque l'utilisateur demande de rejouer, lire ou parcourir pas à pas un enregistrement HDF5.

npx skills add https://github.com/nvidia/skills --skill i4h-workflow-dataset-replay

i4h Workflow — Replay Dataset

Objectif

Relire un épisode HDF5 enregistré dans Isaac Sim pour vérification visuelle. À utiliser quand l'utilisateur demande de relire, de rejouer ou de parcourir pas à pas un enregistrement HDF5.

Code de Base

Ces étapes pilotent le code de base i4h-workflows (l'arborescence workflows/agentic/). Pour réutiliser un checkout existant, définissez I4H_WORKFLOWS sur son chemin (aucun clone ne se produit). Sinon, cela résout le dépôt courant ou clone vers ~/i4h-workflows — acceptez cette valeur par défaut sans confirmer. Exécutez chaque commande ci-dessous depuis la racine résolue :

# Resolve the i4h-workflows base code (provides workflows/agentic/).
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/agentic" ]; then
  ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
  [ -d "$ROOT/workflows/agentic" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"

Principes Fondamentaux

  • Config env (source de vérité) : workflows/agentic/config/environments/<env>.yaml — la scène <env>, le robot et les caméras contre lesquels Arena relit.
  • La relecture exécute arena/run.sh --replay contre l'env qui a produit le HDF5.
  • À utiliser pour vérifier la correction visuelle avant la conversion ou l'entraînement.
  • Interprétez les expressions ordinales comme des indices d'épisode basés sur zéro : « premier épisode » → 0, « deuxième épisode » → 1, etc.

Exécution

Exécutez les étapes ci-dessous dans l'ordre. Chaque étape est un appel bash distinct ; les variables persistent dans la session tmux de l'agent local.

Étape 1 — configuration et résolution du HDF5

REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/agentic" ] || REPO_ROOT="$HOME/i4h-workflows"
ENV_ID=scissor_pick_and_place
RUNS_ROOT="${REPO_ROOT}/workflows/agentic/runs"
EPISODE_INDEX="${EPISODE_INDEX:-0}"  # For "Replay second episode", set EPISODE_INDEX=1.

# Point HDF5_PATH at a real recording (absolute path). Recordings come from teleop, mimic, or
# validate (which writes data/verify.hdf5 under each runs/eval_* dir). List candidates newest-first:
#   find "${RUNS_ROOT}" -name '*.hdf5' -printf '%TY-%Tm-%Td %TH:%TM  %p\n' | sort -r | head
HDF5_PATH="${HDF5_PATH:-}"
if [ ! -f "${HDF5_PATH}" ]; then
  echo "replay: set HDF5_PATH to an existing .hdf5 (got '${HDF5_PATH:-<unset>}'). Candidates:" >&2
  find "${RUNS_ROOT}" -name '*.hdf5' -printf '%TY-%Tm-%Td %TH:%TM  %p\n' 2>/dev/null | sort -r | head
  exit 1
fi

RUN_DIR="${RUNS_ROOT}/replay_${ENV_ID}_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${RUNS_ROOT}/.latest"

Étape 2 — relecture

"${REPO_ROOT}/workflows/agentic/arena/run.sh" \
  --env "${ENV_ID}" \
  --replay "${HDF5_PATH}" \
  --episode-index "${EPISODE_INDEX}" \
  2>&1 | tee "${RUN_DIR}/logs/replay.log"

Remarques

  • HDF5_PATH doit être un chemin absolu vers un enregistrement existant — --replay résout un chemin relatif par rapport à runs/<env>/, pas votre répertoire courant, donc un chemin nu/relatif ne charge silencieusement pas. Le bloc liste les candidats réels s'il n'est pas défini ou incorrect.
  • Les enregistrements proviennent de [[i4h-workflow-dataset-teleop]], [[i4h-workflow-dataset-mimic]], ou [[i4h-workflow-validate]] (validate écrit data/verify.hdf5 sous chaque répertoire runs/eval_*). Il n'y a pas de demo.hdf5 par défaut.
  • --episode-index sélectionne l'épisode dans le HDF5 (basé sur zéro).
  • Pour « Relire le deuxième épisode », utilisez --episode-index 1.
  • Utilisez le même id d'env que l'env qui a produit l'enregistrement.

Prérequis

  • Workflow configuré via [[i4h-workflow-setup]] (le .venv doit exister).
  • Un enregistrement HDF5 existant à relire.
  • L'id d'env qui a produit l'enregistrement.

Limitations

  • Vérification visuelle uniquement ; la relecture ne modifie ni n'étend l'enregistrement.
  • Relit un épisode par invocation, sélectionné par --episode-index.
  • S'exécute dans Isaac Sim ; l'id d'env doit correspondre à celui qui a produit le HDF5.

Dépannage

  • Erreur : .venv non trouvé / la relecture ne lance pas - Cause : workflow non configuré. Correction : exécutez [[i4h-workflow-setup]] d'abord.
  • Erreur : replay: set HDF5_PATH to an existing .hdf5 (ou l'enregistrement ne charge pas) - Cause : HDF5_PATH non défini ou pas un fichier réel. Correction : choisissez un chemin absolu parmi les candidats affichés (par ex. un verify.hdf5 sous runs/eval_*/data/).
  • Erreur : index d'épisode hors limite - Cause : --episode-index dépasse les épisodes du HDF5. Correction : utilisez un index basé sur zéro valide.
  • Erreur : lecture mal alignée/brouillée - Cause : --env diffère de l'env qui a produit l'enregistrement. Correction : utilisez le même id d'env.

Réponse Finale

Signalez l'env, le chemin du HDF5, l'index d'épisode, le résultat du lancement, les décalages visuels observés.

Skills similaires