数据收集

VLAI L1 专为大规模远程操作数据收集而设计。 其一键式记录管道、双臂同步和内置 VR teleop 使其成为从机器人交付到训练就绪数据集的最快路径。

录音工作流程

双手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 厘米)。 将其停放并锁定车轮。

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 Hub

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
数据集格式

L1 数据集架构

L1 记录管道生成包含双臂、移动底座、所有摄像头和可选语言注释的多模式数据集。

每集 Parquet 文件中的字段
观察.left_arm_state 浮点数32[8] 左臂关节位置(以弧度表示)(8 个自由度)
观察.right_arm_state 浮点数32[8] 右臂关节位置(以弧度表示)(8 个自由度)
观察.base_state 浮点数32[3] 移动基准 x、y,航向(以米和弧度为单位)
观察.lift_height 浮动32 躯干提升高度(米)
观察.图像.* 视频路径 腕式摄像头(左、右)、头部摄像头、外部工作区摄像头
动作.左臂 浮点数32[8] VR teleop 中的目标左臂关节位置
动作.right_arm 浮点数32[8] VR teleop 中的目标右臂关节位置
语言指令 细绳 VLA 条件反射的自然语言任务描述
时间戳 浮动64 Unix 时间戳(以秒为单位)
下一步完成 布尔值 每集最后一帧为真
品质保证

质量检查表

L1 的 VR teleop 可能会引入有关延迟和双手协调的独特数据质量问题。 在推送到集线器之前先运行一遍此操作。

  • 1
    录制期间 VR 延迟低于 50 毫秒 录制期间检查浏览器面板中的延迟监视器。 超过 50 毫秒,操作员的手部动作滞后于机器人的动作,从而在数据集中产生因果不匹配。 如果需要,请在延迟较低的 WiFi 通道上重新录制。
  • 2
    双臂按预期移动(无单臂发作) 对于双手任务,验证双臂在以下方面表现出明显的运动 observation.left_arm_stateobservation.right_arm_state。 单臂主导的事件可能表明操作者更喜欢一只手。
  • 3
    手臂操纵期间移动底座保持静止 除非您正在录制移动操作任务, observation.base_state 每集中应该几乎恒定。 操作过程中的底座移动会导致工作空间相对于摄像机移动。
  • 4
    整集的所有摄像机流 L1 的 WiFi 带宽在负载下可能会丢帧。 跑步 rc validate_dataset --dataset ~/datasets/l1-pour-v1 检查所有摄像机流中是否有丢失的帧。
  • 5
    语言教学与演示相符 语言指令在录音开始前设置。 如果操作员临时采取了不同的方法(例如,使用一只手臂而不是两只手臂),请更新说明或删除该片段。
下一步

从您的数据集训练 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 \ --模型输出/openvla-l1-pour \ --量化 int4 \ --设备 l1 \ --主机192.168.1.45 # 运行策略: rc 运行策略 \ --任务“拿起瓶子并倒入玻璃杯中”\ --最大步数 100

数据集准备好了吗? 开始训练。

推送到 HuggingFace Hub 并根据您的双手操作数据微调 VLA 模型。