
DROID、BridgeData V2、Open X-Embodimentは、6自由度および7自由度アーム上で7次元のエンドエフェクタアクションに変換されます。SO-100は6つの関節位置を取ります。何が転送され、何が転送されず、代わりに何をすべきか。
概要
- •これら3つのLeRobotビルドは共通の規約を共有しています。それは7次元のエンドエフェクタアクション [x, y, z, roll, pitch, yaw, gripper] と、パディングスロット付きの8次元の状態です。SO-100は6つの絶対関節位置を取ります。
- •その7次元ベクトルはコンバーターの成果物です。DROID自身のRLDSアクションフィールドは、6つの関節速度とグリッパー位置であり、action_dictにはカルテシアンビューが含まれています。
- •4つのクロック: DROID 15 fps、BridgeData V2 5 fps、google_robotスライス 3 fps、SO-100の記録は30 fpsです。
- •これらを自身のデータとマージすることはできません。validate_all_metadataは、fps、robot_type、またはfeaturesのいずれかに違いがあると、最初にエラーを発生させ、これら3つはすべて異なります。
- •転送されるのは事前学習済み重みであり、エピソードではありません。オープンソースデータは、pi0の事前学習混合の9.1パーセントを占めます。
- •それらの最も安価な実際の用途はテストフィクスチャです。それは、週末に記録する前にパイプラインを検証する、既知の良好な2 GB、100エピソードのDROIDサンプルです。
Google Cloudバケットには100万軌跡の公開データセットがあり、机の上には部品代が110から150 EURのSO-100があります。なぜ前者が後者を教えることができないのでしょうか?部分的には可能ですが、人々が期待するような転送はほとんど起こらず、最も簡単に見える部分は全く機能しません。
以下では、DROID、BridgeData V2およびOpen X-Embodimentの内部がどうなっているか、それぞれが低コストの5自由度アームとどのように衝突するか、そして代わりに何をすべきかについて説明します。以下のすべての数値は、それぞれの論文、データセットカード、またはソースファイルから引用されています。
これら3つのデータセットが実際に含むもの
| DROID | BridgeData V2 | Open X-Embodiment | |
|---|---|---|---|
| ロボット | Franka Panda、7自由度、Robotiq 2F-85 | WidowX 250、6自由度、約4,000 USDの装置 | 22のエンボディメント、60のデータセット、34の研究室 |
| 規模 | 7.6万の軌跡、350時間 | 60,096の軌跡 | 100万以上の軌跡、527のスキル |
| 多様性 | 564のシーン、84のタスク、50の収集者 | 24の環境、13のスキル | 160,266のタスク、21の機関 |
| 構成 | すべて遠隔操作 | 50,365が遠隔操作、9,731がスクリプト | 各ソース研究室ごと |
| 制御レート | 15 Hz | 5 Hz | 様々、3 fps以上 |
| カメラ | ZED 2が2台(外部)、ZED Miniが1台(手首) | 最大4台、ほとんどのエピソードでは固定カメラのみ | 各研究室が使用したもの |
| 生データダウンロード | 1.7 TBのRLDS、8.7 TBの生ステレオデータ | JPEGアーカイブ | データセットごとのTFDSバケット |
1.7 TBものRLDS TFRecordsをダウンロードする人はほとんどいません。コミュニティ組織IPEC-COMMUNITYは、Open X-EmbodimentのほとんどをAV1ビデオ付きのLeRobot dataset形式で再公開しており、DROIDは392 GBになります。これがあなたが使用するバージョンであり、そのmeta/info.jsonを最初に読むべきです。
DROID
3つの中で最も標準化されています。どこでも同じ装置:Robotiq 2F-85グリッパーを備えたFranka Panda、2台の調整可能なZED 2ステレオカメラ、手首のZED Mini、Meta Quest 2コントローラーで遠隔操作され、Polymetisを介して15 Hzで関節空間とエンドエフェクタ空間の両方で記録されます。言語ラベルは後でtasq.aiを介して追加され、エピソードあたり最大3つです。
- 76kの軌跡、350時間、564のシーン、84のタスク、3大陸にわたる50のコレクター。
- 主要な結果は、単独トレーニングではなく共同トレーニングです。ドメイン内デモンストレーションと50/50で混合されたバッチは、次に優れた手法を、分布内での絶対成功率で22パーセント、分布外で17パーセント上回りました。
- IPEC-COMMUNITY/droid_lerobot: 92,233エピソード、27,044,326フレーム、franka、15 fps、codebase_version v2.0、180x320のAV1ストリーム3本、392 GB。
- 2 GB、100エピソードのデバッグサンプルがgs://gresearch/robotics/droid_100にあります。そこから始めてください。
BridgeData V2
ホビーセットアップに最も近いもの:WidowX 250 6自由度アーム、24の環境と13のスキルにわたる60,096の軌跡を5 Hzで。構成に注目してください:50,365の専門家による遠隔操作デモンストレーションと、ランダム化されたスクリプトによるピックアンドプレースポリシーからの9,731、つまり約16パーセントは人間によるデモンストレーションではありません。これは模倣学習の品質に影響します。通常のダウンロードであるIPEC-COMMUNITY/bridge_orig_lerobotは、53,192エピソードと1,893,026フレームを5 fpsで、robot_type widowxと報告しており、論文の60,096よりも少ないため、どちらかを引用するのではなく、meta/info.jsonからカウントを読み取ってください。
Open X-Embodiment
同じ意味でのデータセットではありません。34の研究室からの60の既存ロボットデータセットが1つのRLDSコレクションに集約され、22のエンボディメントと100万以上の軌跡をカバーしています。BridgeData V2はbridge_origとしてその中に含まれており、google_robotスライスであるfractal20220817_dataは、3 fpsで87,212エピソードに変換されます。
この集約には、論文が明示している注意点があります。RT-X実験では、著者らは各ソースを7自由度(DoF)のエンドエフェクタアクションに変換しますが、データセット間で座標系を整合させず、各ロボットの元の制御スキームに従って、アクション値が絶対位置または相対位置、あるいは速度のいずれかになることを許容しています。彼らの結論は、同じアクションベクトルが異なるロボットに対して非常に異なる動きを引き起こす可能性がある、というものです。

4部構成のミスマッチ
エンボディメントの不一致は、通常、漠然とした一つの問題として扱われます。しかし、実際には4つの異なる問題であり、それぞれ異なる形で失敗し、そのうち2つはスクリプトでは修正できません。
1. 自由度
SO-100は5つのアーム関節とグリッパーを備えています。モーターとして数えると6-DoFアームであり、SmolVLAの論文ではそのように呼ばれています。位置決め機構として数えると5-DoFであり、LeRobotはその逆運動学のドキュメント文字列でそのように呼んでいます。このドキュメント文字列は、手首が部分的にしか向きを追跡しない5-DOF SO-101におけるソフトオリエンテーションIKについて記述しています。Frankaは7つの位置決め関節を持っています。このギャップが、どのような姿勢が存在するかを決定します。5-DoFアームは一般的に、任意の姿勢と向きを同時に達成することはできないため、ソルバーは可能な限り近い姿勢を返します。これはデモンストレーションされた動きとは異なる動きです。背景: 自由度.
# src/lerobot/robots/so_follower/so_follower.py
motors = {
"shoulder_pan": Motor(1, "sts3215", norm_mode_body),
"shoulder_lift": Motor(2, "sts3215", norm_mode_body),
"elbow_flex": Motor(3, "sts3215", norm_mode_body),
"wrist_flex": Motor(4, "sts3215", norm_mode_body),
"wrist_roll": Motor(5, "sts3215", norm_mode_body),
"gripper": Motor(6, "sts3215", MotorNormMode.RANGE_0_100),
}
# action keys are "<motor>.pos"; send_action sync_writes them to
# "Goal_Position" -> a 6-D ABSOLUTE JOINT POSITION command
# openpi/src/openpi/policies/droid_policy.py
def make_droid_example() -> dict:
return {
"observation/exterior_image_1_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/wrist_image_left": np.random.randint(256, size=(224, 224, 3), dtype=np.uint8),
"observation/joint_position": np.random.rand(7), # seven Franka joints
"observation/gripper_position": np.random.rand(1),
"prompt": "do something",
}
# state = concat(joint_position, gripper_pos) -> 8-D既製のDROIDチェックポイントは近道ではありません。Physical Intelligenceはpi05_droidをgs://openpi-assets/checkpoints/pi05_droidで提供しており、その広範な能力を称賛する同じREADMEには、これらのエキスパートチェックポイントがあなたのセットアップに一般化しない可能性があると警告されています。その状態は8つのFrankaジョイント番号であり、画像キーはexterior_image_1_leftとwrist_image_leftです。その状態を6モーターのSO-100コマンドに変換するフラグはありません。
2. アクションベクトルが実際に示すもの
次元性よりも深い問題です。LeRobotの変換では、3つすべてがグリッパーがデカルト空間のどこに行くべきかを示します。SO-100は6つのサーボがどこに行くべきかを示します。変換には、リシェイプではなく、運動学モデルとソルバーが必要です。
| プロパティ | LeRobot形式のOXE、DROID、Bridge | LeRobotにおけるSO-100 |
|---|---|---|
| アクションベクトル | 7次元: x, y, z, ロール, ピッチ, ヨー, グリッパー | 6次元: モーターごとの目標位置 |
| 状態ベクトル | 8次元、パディングスロット付き (google_robotはクォータニオンを使用) | 6次元、モーターごとに1つ |
| フレーム | デカルト空間、データセット間で不整合 | ジョイント空間、アームごとのキャリブレーション |
| 絶対値または相対値 | どちらか、ソースラボによって決定 | 絶対目標位置 |
| 単位 | データセットごとに正規化され、その後離散化 | デフォルトは度 (use_degrees=True)、それ以外は-100から100 |
| サイレント障害 | 絶対値として読み取られるデルタ | 未キャリブレーションのアーム |
openx2lerobotのREADMEには、変換するすべてのデータセットに対して統一された8次元の状態と7次元のアクションが記述されており、`pad`スロットはそこから来ています。DROID独自のRLDSスキーマは異なります。そのトップレベルの`action`は、*6つの関節速度と1つのグリッパー位置*からなる7次元ベクトルであり、`action_dict`の下に`cartesian_position`、`cartesian_velocity`、`joint_position`、`joint_velocity`があります。openpiは関節空間ビューを読み取り、LeRobotビルドはCartesianビューを提供します。どちらも6つの絶対サーボ角度ではありません。
LeRobotは不足している部分を提供しています。SOフォロワーには、InverseKinematicsEEToJointsとForwardKinematicsJointsToEEのステップを持つ運動学プロセッサがあります。そのキーはee.x、ee.y、ee.zに加えて回転ベクトルee.wx、ee.wy、ee.wz、そしてee.gripper_posであり、ファイル内のロール・ピッチ・ヨーとは向きのエンコーディングも異なります。IKステップはorientation_weight(デフォルト0.01)を取り、そのドキュメント文字列には、低駆動アームでの位置のみのIKには0.0を設定するよう記載されています。ブリッジを構築することはできますが、借用されたすべてのアクションの向きの半分は近似されたままになります。
3. 制御レート
DROIDは15 Hz、BridgeData V2は5 Hz、google_robotスライスは3 fpsです。pi0の著者らは、彼らの混合物のオープンソース部分を2 Hzから10 Hzの低周波制御と説明しています。LeRobotのDatasetRecordConfigは、fps 30、episode_time_s 60、reset_time_s 60、num_episodes 50がデフォルトです。 5 Hzのデータで学習されたポリシーは、1つのアクションが200 msをカバーすることを学びました。これを30 Hzで再生するとアームはゆっくりと動き、安易にリサンプリングするとグリッパーが閉じるフレームがぼやけてしまいます。これは とも相性が悪いです。100ステップのチャンクは5 Hzでは20秒、30 Hzでは3.3秒になります。
4. カメラ
BridgeData V2は50軌道ごとに2つのカメラポーズをランダム化し、そのプロジェクトページでは、ほとんどのデータが固定ビューのみを保持していると述べられています。DROIDは調整可能なZED 2マウントと手首のZED Miniを使用しました。あなたは2つのUSBウェブカメラを目測で配置しています。カメラポーズはビジョン言語アクションモデルにとって邪魔な変数ではありません。それはビジュアルエンコーダが注目したものの多くであり、ファイル形式にはポーズが異なることを示すものは何もありません。
各要素は十分に連携して動作します。データセットがロードされ、学習が開始され、損失が減少し、チェックポイントが出現し、エラーは発生しません。しかし、ポリシーはアーム上で認識できる動作を何もせず、あなたは学習スクリプトのバグを探して一日を費やします。バグはありません。モデルはあなたの部屋に存在しないロボットのカルテシアンアクション分布を学習したのです。ハイパーパラメータではなく、損失は減少するが、ポリシーは何も動作しないから始めてください。
それでもデータをマージしようとするとどうなるか
明白な計画は、数千のDROIDエピソードとあなたの50エピソードを連結することです。LeRobotはこれを拒否し、その拒否は異なる3つの点を挙げています。
- 1全体の1.7TBではなく、100エピソードのサンプルをプルする
構造を確認するには2GBで十分です。
bashpip install gsutil tensorflow tensorflow-datasets gsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 2RLDSをLeRobot形式に変換する
openx2lerobotはOXE標準の変換をラップし、ロボットタイプと制御周波数をアノテーションします。READMEにはこれがconvert.shに記載されています。
bashgit clone https://github.com/Tavish9/any4lerobot.git cd any4lerobot/openx2lerobot python openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 3他の何よりも先にmeta/info.jsonを読み込む
このファイルが、その後の作業がうまくいくかどうかを決定します。
bashpython -c "import json;d=json.load(open('meta/info.json'));\ print(d['codebase_version'], d['robot_type'], d['fps']);\ print(d['features']['action']['shape'], d['features']['observation.state']['shape'])" - 4マージを試してエラーを読む
mergeはすべてのデータセットをロードし、validate_all_metadataはリストの最初のデータセットに対してfps、robot_type、およびfeaturesをチェックし、最初の一致しない箇所でエラーを発生させます。
bashlerobot-edit-dataset \ --new_repo_id you/mixed \ --operation.type merge \ --operation.repo_ids "['you/droid100_lerobot', 'you/my_so100_task']" # ValueError: Same fps is expected, but got fps=30 instead of 15.
参照値は、最初にリストしたデータセットから取得されます。そのため、メッセージはDROIDの15fpsではなく、あなたの30fpsについて不平を言います。fpsを修正するとrobot_typeチェックに引っかかり、それを修正するとアクションの7対6のfeatureチェックに引っかかります。どの順序でも通過せず、sanity_check_dataset_robot_compatibilityを介して記録時にも同じガードが実行されます。
現在のLeRobotメインでは、so100_followerとso101_followerは両方とも1つの共有SOFollowerRobotConfigに登録されているため、実際の記録からの文字列は必ずしもあなたが期待するものではありません。自身のmeta/info.jsonからそれを読み取り、無効にしなければならなかったチェックは、何かを教えてくれていたチェックとして扱ってください。
では、実際に何が転移するのか?
転移するのはエピソードではなく、重みです。現代の汎用ポリシーはすべて、事前学習でその一部を吸収しており、を公開されたから行うと、適切に処理する計算能力を持つ人々によって既に調整されたものを継承することになります。pi0の論文では、その割合について率直に述べられています。タイムステップで数えると、事前学習混合の9.1%がOXE、Bridge v2、DROIDを含むオープンソースデータです。この数値はpi0のものであり、各ベンダーの混合は異なります。
- 視覚と言語の事前知識:エンコーダは何千ものキッチンやマグカップを見ており、「赤いブロック」が何を指すかを知っている。
- 操作構造に関する事前知識:接近、閉じる、持ち上げる、運ぶ、解放する、数値がそうでない場合でもエンボディメントに依存しない。
- テスト用の既知の良好なデータセット。もしあなたのジョブが100のDROIDエピソードに過学習できないなら、問題はあなたのセットアップにある。
- 参照点:小規模データセットのドメインでは、RT-1-Xは元の手法またはRT-1よりも平均成功率が50%高く、RT-2-Xは創発的スキルにおいてRT-2を約3倍上回った。
- 利用可能な行動教師信号がない。7次元のカルテシアン目標は6次元の関節コマンドではない。
- カメラ姿勢の転移がなく、データには姿勢が異なることを示すものがない。
- タイミングの転移がない。30 fpsのレコーダーに対して、3、5、15 fpsのソース。
- グリッパーの転移がない。Robotiq 2F-85とSTS3215上のプリントされたジョーでは、力、ストローク、ダイナミクスが異なる。
- 規模だけでは著者にとっても不十分だった。大規模データセットのドメインでは、RT-1-Xは単独でそのデータセットで学習されたRT-1に勝てなかった。
- 必要な独自エピソード数の削減がない。
| モデルの層 | 転移するか? | 理由 |
|---|---|---|
| Vision encoder | はい、強く | オブジェクトとシーンはエンボディメントに依存しない |
| Language grounding | はい | 指示はテキストであり、ジオメトリではない |
| Cross-modal fusion | ほとんど | プロンプトで指定されたオブジェクトに注意を払う |
| Proprioception encoder | いいえ | 入力次元と関節のセマンティクスが異なる |
| Action head | いいえ | あなたがいない7次元のカルテシアン空間で学習されている |
| Normalisation statistics | いいえ、そして危険 | 外部の統計がすべてのコマンドをシフトさせる |
これが、SmolVLAが低コストアームで異なる動作をする理由です。その論文では、Hugging Faceから481のコミュニティデータセットが選択され、エンボディメントタイプ、エピソード数、データ品質、フレームカバレッジでフィルタリングされています。22.9Kエピソード、10.6Mフレームが、実際のSO-100およびSO-101アームで評価されました。小規模で一致したものが、大規模で不一致なものよりも優れています。比較はACTとSmolVLAの比較で。
取るべき3つのパス
パスA: データを既に学習済みのチェックポイントからファインチューニングする
ほとんどの人はこのパスを選ぶべきです。DROIDやOpen X-Embodimentには決して触れません。プレトレーニングで既にクロスエンボディメントデータを吸収したポリシーを選択し、独自のエピソードを記録してファインチューニングします。
| ポリシー | パラメータ | 最小エピソード数 | データセット形式 | GPUティア | 推論 | ベースチェックポイント |
|---|---|---|---|---|---|---|
| GR00T N1.7 | ~3 B、ファインチューニングで学習済み ~40 M | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 1ステップあたり152 ms | nvidia/GR00T-N1.7-3B |
| GR00T N1.5 | ~3 B | 50 | LeRobot v2.0 or v2.1 | A100 or H100 80 GB | 165 ms | nvidia/GR00T-N1.5-3B |
| Pi0.5 | ~3 B、PaliGemmaバックボーン | 50 | LeRobot v3.0 | A100 or H100 80 GB | 485 ms | lerobot/pi05_base |
| SmolVLA | ~450 M | 30 | LeRobot v3.0 | RTX 4090 or any 24 GB | 245 ms | lerobot/smolvla_base |
| ACT | ~80 M | 50 | LeRobot v3.0 | RTX 4090 or any 24 GB | 20 ms | なし、ゼロから |
ACTは正直なエッジケースです。ベースモデルがないため、公開データがそれに到達することはありません。1アクションステップあたり20 msであるため、高速ループを閉じることができる5つのうち唯一のものであるため、自動的に不利になるわけではありません。ACTページで説明されています。タスクに応じて選択するには、5つすべてを比較、GR00T N1.7とPi0.5の比較、および85モデルにわたる332のベンチマーク結果はアリーナで確認できます。
パスB:DROIDをテストフィクスチャとして使用する
100エピソードのサンプルは、今月ダウンロードする2 GBのデータの中で最高のものであり、トレーニング用ではありません。これは、正しいとわかっているデータセットです。これに対してコンバーター、ローダー、および短いGPUジョブを実行してください。失敗したものは、安価なうちに発見されたインフラストラクチャのバグです。NVIDIAも同様に大規模でこれを行っています。GR00T N1.7カードには、SimplerEnvのBridgeとFractal、DROID、およびLIBERO用に、4つの後処理済みバリアントがリストされています。
パス C: 意図的に自分で記録する
30から50という数は、76,000という数字の隣では少なく聞こえますが、あなた自身の腕、カメラ、テーブルを使ったデータはそれだけであることを思い出してください。LeRobotのデフォルト設定では、50エピソードは実時間で100分です。参照:、、および.

公開データから実用的なポリシーを得る2つの方法
All of this runs on your own machine plus a rented GPU. Knowing the manual path matters because when something breaks you will know which layer broke.
- 1Install LeRobot with the extras the scripts need
The record and train entry points each declare their own extra.
bashpip install 'lerobot[core_scripts]' # lerobot-record pip install 'lerobot[training]' # lerobot-train pip install gsutil tensorflow tensorflow-datasets - 2Get a small, known-good slice
100 DROID episodes, 2 GB.
bashgsutil -m cp -r gs://gresearch/robotics/droid_100 ~/tensorflow_datasets/ - 3Convert to LeRobot form
Writes the unified 8-D state and 7-D action, annotating robot type and control frequency.
bashpython openx_rlds.py \ --raw-dir ~/tensorflow_datasets/droid_100/1.0.0 \ --local-dir ~/lerobot_droid100 \ --repo-id you/droid100_lerobot \ --use-videos - 4Check the version against your trainer
The converter README documents v3.0 output; the published IPEC-COMMUNITY datasets report v2.0. GR00T wants v2.0 or v2.1 and crashes on v3.0; Pi0.5, SmolVLA and ACT want v3.0. Mind the gap: the only conversion script on LeRobot main goes 2.1 to 3.0.
bashpython src/lerobot/scripts/convert_dataset_v21_to_v30.py \ --repo-id=you/droid100_lerobot - 5Record your own episodes
Defaults: 30 fps, 60 s per episode, 60 s reset, 50 episodes. The teleoperator type is so100_leader.
bashlerobot-record \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.cameras="{front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --dataset.repo_id=you/so100_pick_block \ --dataset.num_episodes=50 \ --dataset.single_task="Pick up the red block and put it in the bowl" - 6Fine-tune on your data only
Weights from public data, actions from your own. Do not mix the datasets.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=you/so100_pick_block \ --policy.device=cuda \ --batch_size=4 \ --steps=20000
Not in training; the GPU job is hours. The conversion, the version mismatch and the moment you find your dataset is v2.0 and your trainer wants v3.0 are days. Read dataset rejected as v3 first.
The platform removes the GPU and pipeline plumbing. It does not remove the embodiment mismatch: point the trainer at a converted DROID dataset and you get a policy trained on Franka actions, exactly as you would locally.
- 1Pick a policy, not a dataset
The five trainable policies, with parameter counts, GPU tiers and latencies, are at /policies.
- 2Record with the desktop client
It writes LeRobot-format datasets, episodes, camera streams and joint states, straight out of a teleop session. No conversion step to get wrong.
- 3Or bring a dataset you already have
The training form accepts one from /directory, a Hugging Face repo id, or your own machine. A repo id means a converted OXE dataset will load, and the mismatch loads with it.
- 4Train on a rented GPU
The backend rents a card on a spot market by required VRAM. SmolVLA or ACT on 24 GB: 2 to 5 hours, about 1 to 3 USD. GR00T or Pi0.5 on A100 or H100: 3 to 6 hours, about 4 to 12 USD. See /pricing.
- 5Serve it back to the arm
/api/inference/pod auto-provisions a GPU pod serving the policy; the local client talks to that endpoint. Pods carry an idle watchdog and destroy themselves, so nothing keeps billing silently.
Inference has to sit next to the servos for fast tasks. The control loop is 20 to 485 ms per action step depending on the model, and public-internet round trips turn a working policy into a hesitant one. Remote inference is fine for slow pick-and-place, not fast reactive motion.
The platform helps with the boring parts: the right format for the right arm at the right frame rate, and no babysitting a spot instance. It helps with nothing else in this article.

各パスのコスト
| パス | ストレージ | 人的時間 | GPUコスト | アームを動かす可能性 |
|---|---|---|---|---|
| 変換済みDROID単体 | 392 GB | 変換日数 | 4 to 12 USD | 非常に低い、誤ったアクション空間 |
| エピソードとマージされたDROID | 両方 | blocked by validate_all_metadata | n/a | なし、実行されない |
| SmolVLA、30〜50のエピソード | 数GB | 100 min recording | 1 to 3 USD | 高い |
| GR00T N1.7、50のエピソード | 数GB | 100 min recording | 4 to 12 USD | 高い |
| ACTをゼロから、50のエピソード | 数GB | 100 min recording | 1 to 3 USD | 高い、20 ms推論 |
| テストフィクスチャとしてのDROIDサンプル | 2 GB | 午後 | 1回の短い実行 | 高い、検証として |
非対称性が重要です。最も多くのデータを借用するパスは最もコストがかかり、アームを動かす可能性が最も低いです。2時間未満の自身のテレイグジスタンスは、他人のFrankaの1テラバイトに勝ります。まだアームがありませんか?/liveでは、サインアップなしで物理的なSO-100をストリーミングしています。その後、最初のポリシーをトレーニングし、特定のガイドについてはSO-100でのSmolVLAを参照してください。
2 GBのDROIDサンプルをダウンロードし、それを使ってパイプラインを検証してください。残りの1.7 TBは無視してください。固定カメラで1つのタスクの50エピソードを記録します。まずSmolVLAをファインチューニングしてください。24 GBカードで最低30エピソードから反復するのに最も安価だからです。その後、同じデータでGR00T N1.7を試してください。ベンチマークではなく、自身のタスクで比較してください。
あなたのアームにすでに一致するデータセットを記録する
デスクトップクライアントは、テレイグジスタンスセッションから直接LeRobot形式のデータセットを書き込みます。適切なアーム、適切なフレームレート、適切なアクション空間です。RLDS変換もリマッピングも不要です。
デスクトップクライアントを入手DROIDでポリシーをトレーニングし、SO-100で実行できますか?▾
直接はできません。LeRobotビルドでは、DROIDのアクションは15 fpsのFranka Pandaに対する7-Dエンドエフェクタコマンドです。生のRLDSでは、6つの関節速度とグリッパー位置です。SO-100は6つの絶対関節位置を受け取ります。逆運動学レイヤーが必要となり、その場合でも5-DoFの手首では任意の6-DoFポーズを再現することはできません。
DROIDまたはBridgeのエピソードを自分のSO-100エピソードと混ぜることはできますか?▾
いいえ。validate_all_metadataは、同一のfps、robot_type、およびfeature schemaを要求し、最初の不一致でValueErrorを発生させます。これら3つはすべて異なります。15または5 fps対30、frankaまたはwidowx対あなたのアーム、アクション形状の7対6です。チェックを通過させるためにメタデータを書き換えても、セマンティクスは修正されません。
では、Open X-Embodimentは低コストアームには役に立たないのでしょうか?▾
いいえ、しかしその価値はエピソードではなく、事前学習済み重みを通じてあなたに届きます。OXE、Bridge v2、DROIDを含むオープンソースデータセットは、pi0の事前学習混合の9.1パーセントを占めており、NVIDIAはBridge、Fractal、DROID、LIBEROで事後学習されたGR00T N1.7のバリアントを出荷しています。できないのは、これらのエピソードを自分の記録に追加することです。
どのポリシーが公開されているクロスエンボディメントデータから最も恩恵を受けますか?▾
Pi0.5とGR00Tモデルは最も多くのクロスエンボディメント事前学習を行っていますが、SmolVLAは低コストアームで最も良い振る舞いをすることがよくあります。その事前学習セットは481のコミュニティデータセット、22.9Kエピソード、10.6Mフレームで構成され、実際のSO-100およびSO-101アームで評価されています。ACTはその逆で、ベースモデルがなく、アクションステップあたり20 msです。
実際に自分のエピソードはいくつ必要ですか?▾
SmolVLAの場合は30、GR00T N1.7、GR00T N1.5、Pi0.5、ACTの場合は50です。LeRobotのデフォルト設定である1エピソードあたり60秒、リセット60秒の場合、50エピソードは実時間で100分です。借用したクロスエンボディメントデータはこれらの数値を下げません。
Sources
- DROID: 大規模な実環境ロボット操作データセット
- DROID ドキュメント: ダウンロードサイズとRLDSエピソードスキーマ
- BridgeData V2: 大規模ロボット学習用データセット
- BridgeData V2 プロジェクトページ: 構成とカメラカバレッジ
- Open X-Embodiment: ロボット学習データセットとRT-Xモデル
- Open X-Embodiment プロジェクトページ
- google-deepmind/open_x_embodiment: データセットリストとRT-1-Xチェックポイント
- any4lerobot: openx2lerobotコンバーターとその統一された8次元状態、7次元アクション
- IPEC-COMMUNITY/droid_lerobot: meta/info.jsonとリポジトリサイズ
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: 3 fpsのgoogle_robotスライス
- huggingface/lerobot: SOフォロワー、運動学プロセッサ、集約および記録設定
- openpi: DROIDポリシー入力とpi05_droidチェックポイント
- pi0: 一般的なロボット制御のためのビジョン・言語・アクションフローモデル
- SmolVLA: 手頃で効率的なロボット工学のためのビジョン・言語・アクションモデル
Sources
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- DROID docs: download sizes and the RLDS episode schema
- BridgeData V2: A Dataset for Robot Learning at Scale
- BridgeData V2 project page: composition and camera coverage
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- Open X-Embodiment project page
- google-deepmind/open_x_embodiment: dataset list and RT-1-X checkpoints
- any4lerobot: the openx2lerobot converter and its unified 8-D state, 7-D action
- IPEC-COMMUNITY/droid_lerobot: meta/info.json and repo size
- IPEC-COMMUNITY/bridge_orig_lerobot: meta/info.json
- IPEC-COMMUNITY/fractal20220817_data_lerobot: the google_robot slice at 3 fps
- huggingface/lerobot: SO follower, kinematics processor, aggregate and record configs
- openpi: DROID policy inputs and the pi05_droid checkpoint
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started