VLAI L1
データ収集
VLAI L1 は、大規模な遠隔操作データ収集用に構築されています。 ワンクリックの録画パイプライン、デュアルアーム同期、内蔵 VR テレオペにより、ロボットの配信からトレーニングの準備ができたデータセットまでの最速パスが実現します。
録音ワークフロー
双方向VR遠隔操作録画
1
すべてのシステムを接続して検証する
rc connect --device l1 --host 192.168.1.45
rc status # check: arms, base, cameras, battery all green
2
L1を録音位置に移動
ブラウザ パネルの WASD を使用して、L1 をタスク ワークスペースに移動します。 タスクのリフト高さを設定します (例: テーブルトップ操作の場合は 130 cm)。 駐車して車輪をロックしてください。
rc teleop --device l1 # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3
タスクシーンとカメラをセットアップする
タスク オブジェクトを一貫した開始位置に配置します。 ブラウザ パネルでカメラ ビューを確認します。リスト カメラ (Developer Max) と外部カメラの両方がタスク ワークスペースをカバーする必要があります。
4
CLI 経由でセッションの記録を開始する
rc record \
--device l1 \
--task "Pick up the bottle and pour into the glass" \
--num_episodes 50 \
--output ~/datasets/l1-pour-v1 \
--teleop_mode vr # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5
エピソードをレビューする
rc replay \
--dataset ~/datasets/l1-pour-v1 \
--episode 0
ビューアには、すべてのカメラ ストリームと同期されたジョイント状態の時系列が表示されます。 プッシュする前に、悪いエピソードを削除してください。
6
HuggingFace ハブにプッシュする
huggingface-cli login
rc push_dataset \
--dataset ~/datasets/l1-pour-v1 \
--repo_id your-username/l1-pour-v1
データセットの形式
L1 データセット スキーマ
L1 記録パイプラインは、両アーム、モバイル ベース、すべてのカメラ、およびオプションの言語注釈を含むマルチモーダル データセットを生成します。
各エピソードのフィールド Parquet ファイル
観察.left_arm_state
float32[8]
左腕のジョイント位置 (ラジアン単位) (8 DOF)
観察.right_arm_state
float32[8]
右腕のジョイント位置 (ラジアン単位) (8 DOF)
観察.base_state
float32[3]
モバイルベース x、y、メートルおよびラジアン単位の進行方向
観測値.リフト高さ
float32
胴体リフト高さ (メートル)
観察画像*
ビデオパス
リストカメラ (左、右)、ヘッドカメラ、外部ワークスペースカメラ
アクション.左腕
float32[8]
VR テロップから左腕の関節位置をターゲットにする
アクション.right_arm
float32[8]
VR テロップから右腕関節位置をターゲットにする
言語説明
弦
VLA 条件付けのための自然言語タスクの説明
タイムスタンプ
float64
Unix タイムスタンプ (秒単位)
次へ。完了
ブール
各エピソードの最後のフレームでは True
品質保証
品質チェックリスト
L1 の VR テレオペは、レイテンシや両手調整に関する固有のデータ品質の問題を引き起こす可能性があります。 ハブにプッシュする前に、これを実行してください。
-
1録画中の VR 遅延は 50 ミリ秒未満でした 録画中にブラウザ パネルのレイテンシー モニターを確認してください。 50 ミリ秒を超えると、オペレーターの手の動きがロボットの動作よりも遅れ、データセットに因果的な不一致が生じます。 必要に応じて、低遅延の WiFi チャネルで再録音します。
-
2両腕は意図したとおりに動きました(片腕のエピソードはありません) 両手作業の場合は、両方の腕が大きく動いていることを確認します。
observation.left_arm_stateそしてobservation.right_arm_state。 片腕利きのエピソードは、オペレータが片手を好むことを示している可能性があります。 -
3アーム操作中はモバイルベースが静止していました モバイル操作タスクを記録している場合を除き、
observation.base_state各エピソード内でほぼ一定である必要があります。 操作中のベースの動きにより、ワークスペースがカメラに対して移動します。 -
4エピソード全体に存在するすべてのカメラ ストリーム L1 の WiFi 帯域幅は、負荷がかかるとフレームをドロップする可能性があります。 走る
rc validate_dataset --dataset ~/datasets/l1-pour-v1すべてのカメラ ストリームにわたって欠落フレームがないか確認します。 -
5言語指導はデモンストレーションされた内容と一致しています 言語指示は録音開始前に設定されます。 オペレーターが別のアプローチを即興で行った場合 (例: 2 本の腕の代わりに 1 本の腕を使用した)、指示を更新するか、エピソードを削除します。
次のステップ
データセットから VLA をトレーニングする
データセットが HuggingFace Hub に配置されたら、L1 アクション スペースを使用して VLA を微調整します。
L1 データの OpenVLA を微調整する
pip install roboticscenter[vla]
python -m roboticscenter.scripts.finetune_vla \
--model openvla/openvla-7b \
--dataset your-username/l1-pour-v1 \
--action_space l1_bimanual \ # registers the 16-DOF bimanual action head
--epochs 50 \
--output_dir outputs/openvla-l1-pour
微調整された VLA をデバイス上に展開する (Developer Pro/Max)
rc デプロイ vla \ --model 出力/openvla-l1-pour \ --quantize int4 \ --デバイス l1 \ --ホスト 192.168.1.45 # ポリシーを実行します。 rc 実行ポリシー \ --タスク「ボトルを持ち上げてグラスに注ぐ」\ --max_steps 100