LeRobot Pathに戻る

レロボットデータセットフォーマットを理解する

LeRobot学習経路の2位.LeRobotデータセットのフォーマットを学び: パーク + MP4ストレージ,エピソード構造,観察/アクションスケーマ. HuggingFace Hubから既存のデータセットをロードして視覚化します. ~1.5時間.

6の2つのユニット · データセット形式 · ~1.5時間

ビデオの構成,保存の場,そして HuggingFace Hubから既存のデータセットを読み込み,検査する方法について,自分のデータを記録する前に,LeRobotデータセットに含まれる内容を正確に理解してください.

標準 形式 が 重要 な の は なぜ です か

ロボット学習は,歴史的に,異なるデータ形式を使用する各ラボに苦しんでいる.データセットを共有したり,異なるロボットからのデータを組み合わせたり,システム全体で以前に訓練されたポリシーを使用することは不可能である.レロボットデータセット形式は,サポートされているすべてのハードウェアで動作する単一のスキームを定義することによってこれを解決します. SO-100 に記録されたデータセットは,アクションスペースの次元が一致する限り, OpenArm のポリシーを変換することなく訓練するために使用できます.

学習中にデータに構造上の問題を発見しないようにすると,録音する前にフォーマットを理解することはできます. また,デバッグをはるかに容易にするため,トレーニングが失敗すると,最初にデータセットをチェックします.

データセット構造: パーク + MP4

LeRobot の各データセットは,以下の構造を持つディレクトリに存在します

my_dataset/ ── meta/ │ │ │── info.json #データセット メタデータ (ロボットタイプ,fps,モード) │ │──タスク.jsonl #タスク説明 │ │──統計.安全感器 #標準化用 ──データ/ │ │ ── chunk-000/ │ │ │── ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫ ≫

パークレット (数値時間系) と MP4 (ビデオ) の間の分割は意図的に行われます. パークレットが関節状態とアクションを効率的に圧縮し,エピソードインデックスによって迅速なランダムアクセスをサポートします. MP4 は画像シーケンスのために設計されたビデオコーデックを使用し,原始画像をテンソルとして保存するよりも1030倍小さいファイルを生成します.

各 編 の 重要な 分野

Field Shape Description
observation.state [T, D] Joint positions (and optionally velocities) at each timestep. D is the number of joints (e.g., 7 for SO-100: 6 joints + 1 gripper).
action [T, D] Target joint positions commanded at each timestep. Same dimensionality as observation.state.
timestamp [T] Time in seconds since the start of the episode, at 50Hz by default (0.02s per step).
episode_index scalar Integer index of this episode within the dataset. Used by the dataloader to group timesteps into episodes.
frame_index [T] Frame number within the episode (0 to T-1). Matches the frame number in the corresponding MP4.
next.done [T] Boolean flag — True at the last timestep of an episode. Used to signal episode boundaries during training.
task_index scalar Index into tasks.jsonl. Enables multi-task datasets where different episodes correspond to different instructions.

カメラフィールド: カメラ画像は MP4ファイルとして保存される. パルケットには,原始ピクセルデータではなく,パス参照 (フレームインデックス + エピソードインデックス) として T0が含まれています.LeRobot データローダーは解読と透明なシンクロを処理します.

既存のデータセットを読み込み,視覚化する

HuggingFace Hubから T1 データセットを読み込み,3つのエピソードを可視化します.このデータセットには,双手ロボットがペグを挿入するスクリプト示例が含まれます.

source ~/lerobot-env/bin/activate # パイthon -m lerobot.scripts.visualize_dataset \ --repo-id lerobot-raw/aloha_sim_insertion_scripted \ --episode-indices 0 1 2 \ --output-dir ~/dataset-viz/ # ブラウザで生成された HTML を開く # 端末にプリントされたファイルパス,例えば ~/dataset-viz/index.html

視覚化器は,同期化された共同状態のプロットとともに,各エピソードのビデオ再生を伴うHTMLページを生成します.

  • 滑らかな関節軌跡 鋭いピークは記録された文物や腕の衝突を示します
  • ** 連続したエピソード長さ** 長い間に大きく異なるエピソード (例えば50対400フレーム) は,一部または中止された動きを撮影したいくつかの示範を示唆する
  • グリッパー状態の変化 操作作業のために最後の関節次元には明確な二次移行 (開 → 閉 → 開) が表示される必要があります

# プログラム的にデータセットをレロボット.common.datasets.lerobot_dataset import LeRobotDataset dataset = LeRobotDataset("レロボット-原/aloha_sim_insertion_scripted") プリント(f"エピソード: {dataset.number_episodes}") プリント(f"総フレーム: {len(dataset)}") プリント(f"FPS: {dataset.fps}") プリント(f"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"F"

選択可能 参照データセット

RCSV データセットコレクションを調べる

RCSVデータセットライブラリには,LeRobot形式のクレーティングロボット学習データセットが含まれています.自分のデータセットを閲覧する前に,異なるタスクとハードウェアの様子を理解するためにそれらを閲覧してください.

ユニット2 完成する...

T2から3つのエピソードを成功に可視化し,HTML出力はブラウザで開きます. パイthonでロードされたパークレットファイルで観察.状態,アクション,タイムスタンプフィールドを識別できます. パークレットとMP4に保存されているものとの違いを理解します. Unit 3で独自のデータセットを記録することができます.

[← 経路概要に戻る]