i4h-workflow-dataset-teleop について
共有の SimulationRunner を使ってテレオペレーションの実演を記録するワークフロースキルです。デバイス対応の確認、フォアグラウンドでの記録、HDF5 の検査を案内します。
主な機能
- 01ワークフローのチェックアウトとデバイス対応の確認
- 02統一ランチャーによる記録
- 03対話操作をフォアグラウンドで実施
- 04HDF5 のアクションとセグメントの検査
- 05動作とエピソード結果の確認
活用シーン
- 01キーボード操作によるロボット実演の記録
- 02データセット作成用テレオペエピソードの収録
- 03記録されたアクションとロボット動作の照合
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nvidia/ skills --skill i4h-workflow-dataset-teleopインストール後、Claude Code で/i4h-workflow-dataset-teleopを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.json詳細
テレオペレーションのデモを記録する
目的
ワークフローで宣言されたテレオペレーショングラフを共有の SimulationRunner で実行し、アクション、状態、カメラ、セグメント、試行、結果を通常の HDF5 契約に従って扱います。
手順
- ベースのチェックアウトと、稼働中のテレオペレーションデバイスの契約を確認します。
- サポートされている人間入力デバイスを選択します。
run.shを使ってフォアグラウンドで記録します。- 目に見える動きと HDF5 の内容を確認します。
サポート状況の確認
export I4H_WORKFLOWS_REPO_URL="${I4H_WORKFLOWS_REPO_URL:-https://github.com/isaac-for-healthcare/i4h-workflows}"
I4H_REPO_DIR_NAME="${I4H_WORKFLOWS_REPO_URL%/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*/}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME##*:}"
I4H_REPO_DIR_NAME="${I4H_REPO_DIR_NAME%.git}"
[ -n "$I4H_REPO_DIR_NAME" ] || { echo "Cannot derive a checkout name from I4H_WORKFLOWS_REPO_URL" >&2; exit 2; }
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/i4h_workflows" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/$I4H_REPO_DIR_NAME}"
[ -d "$ROOT/workflows/i4h_workflows" ] || git clone "$I4H_WORKFLOWS_REPO_URL" "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"
cd "$ROOT"
./run.sh list
./run.sh show <workflow> --mode teleop
上記のリゾルバーはスキルの契約の一部として扱ってください。ホストされたコピーはベースリポジトリの外で実行される場合があるため、現在のチェックアウトに workflows/i4h_workflows が含まれていると決めつけないでください。I4H_WORKFLOWS_REPO_URL はクローン元を指定します。I4H_WORKFLOWS が未設定の場合は、その URL からフォールバック先のディレクトリを導出します。既存のチェックアウトを再利用する場合、または特定の保存先を選ぶ場合に限り、I4H_WORKFLOWS を設定してください。既存のチェックアウトを置き換えてはいけません。
稼働中のモード一覧に teleop があることを必須とします。ワークフロービルダー、シーンマニフェストの teleop オーバーライド、ならびにエンボディメントマニフェストの teleop_devices を確認してください。スキル内に静的なサポート一覧を用意してはいけません。
入力の選択
- 名前付きデバイスがサポートされている場合は、それを使用します。
- それ以外の場合は、ワークフロービルダーのデフォルトデバイスを使用します。
- 対話型のキーボード、リーダー、VR、バスのセッションは表示したままフォアグラウンドで実行します。デバイスの操作方法を提示し、人間のオペレーターがタスクを完了するよう求めます。
- 無人のシェルで人間入力を行ったかのように装ってはいけません。
記録
./run.sh <workflow> --teleop <device> \
--episodes <N> --attempts 3 \
--record
<device> を省略すると、ワークフローのデフォルトが使用されます。単独の --record は、ランチャーが自動作成する実行ディレクトリ内に demos.hdf5 を書き込みます。絶対パスのディレクトリは、==> run dir ... の行または run.json から読み取ってください。シェル内でタイムスタンプを再現してはいけません。より大きなパイプラインで呼び出し元が指定した共有ディレクトリが必要な場合は、--run-dir "$RUN_DIR" --record demos.hdf5 を渡します。ランチャーがディレクトリを作成し、その中を起点として相対記録名を配置します。絶対パスの --record も引き続き使用できます。
検証
N/N episodes succeeded という最終サマリーが表示されることを必須とします。その後、内容を確認します。
RUN_DIR="<absolute run_dir from run.json or launcher output>"
uv run --project tools/dataset i4h-dataset inspect "$RUN_DIR/demos.hdf5" --segments
uv run --project tools/dataset i4h-dataset actions "$RUN_DIR/demos.hdf5"
オペレーターが要求されたタスクを完了していること、ロボットの動きが入力デバイスに対応していること、予期されるすべてのカメラが同じ動作を記録していることを目視で確認します。保存エピソードがゼロ、観測の欠落、アクションによる動きの欠落、またはタスクの結果が不成功の場合は失敗として扱います。残ったプロセスは ./stop.sh all で停止します。
トラブルシューティング
デバイスまたは幅に関するエラーが発生した場合は、ワークフローのテレオペレーションビルダー、Scene モードのオーバーライド、エンボディメントのデバイスを比較してください。
前提条件
teleop があるワークフロー、サポートされているデバイス、動作するシミュレーター、および対話型入力を行うオペレーターが必要です。
制限事項
テレオペレーションでは人間の入力を記録するため、対話型デバイスにはオペレーターが必要です。自律的なルールベースのタスクは、代わりに i4h-workflow-validate で記録してください。
例
Record 5 keyboard teleop demonstrations for locomanip tray pick and place.→ G1 でサポートされているキーボードデバイスを使用し、人間のオペレーターを必須とし、記録されたアクションの動きを確認します。
完了条件
ワークフロー、モード/デバイス、操作方法、要求エピソード数/保存エピソード数、試行回数、目視確認の結果、HDF5 のパス、次元/セグメント、ならびに人間のオペレーターがタスクを完了したかどうかを報告します。