数据收集

LinkerBot O6 的完整录制工作流程。 领导者-跟随者远程操作、LeRobot 数据集格式、事件质量检查表以及更广泛的数据收集管道的链接。

O6 的录音工作流程

从硬件准备好到第一个数据集的完整过程。 按顺序执行步骤。

1

验证硬件和 CAN 接口

确认 O6 已安装、上电且 CAN 接口已启动。 跑步 candump can0 并在继续之前验证电机心跳包是否出现。

2

配置任务和相机布局

定义任务描述,以正确的角度设置相机,并将任务对象放置在工作区中。 跨剧集的一致场景设置对于政策泛化至关重要。

3

开始录制会话

使用以下命令启动 LeRobot 控制脚本 record 模式。 这使系统能够进行剧集录制。 会话将在捕获之前等待您的开始触发。

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=record \
  --control.fps=30 \
  --control.repo_id=your-username/o6-task-name \
  --control.num_episodes=50 \
  --control.single_task="Pick up the blue block"
4

远程操作并记录剧集

使用引导臂(或用于简单测试的键盘)远程操作 O6。 按开始/停止键将每个剧集包围起来。 重置剧集之间的场景以保持一致性。

5

查看和过滤剧集

使用乐机器人重播工具直观地回顾每一集。 丢弃任何未通过下面质量检查表的产品。 质量重于数量:30 部优秀剧集胜过 100 部平庸剧集。

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=replay \
  --control.repo_id=your-username/o6-task-name \
  --control.episode=0
6

上传至 HuggingFace Hub

将过滤后的数据集推送到 HuggingFace Hub 进行共享和训练。 该数据集可立即用于乐机器人的政策培训。

huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
  --repo_id=your-username/o6-task-name

O6 的乐机器人数据集格式

每个录制的片段都以标准的 LeRobot HuggingFace 数据集格式存储。 该格式直接兼容 ACT、Diffusion Policy 以及所有其他 LeRobot 支持的训练算法。

剧集结构

dataset/
  data/
    episode_000000/
      observation.state.npy     # [T, 12] — 6 joint positions + 6 velocities
      action.npy                # [T, 6]  — 6 target joint positions
      observation.images.wrist_cam/
        frame_000000.png        # 640x480 @ 30 fps
        ...
      observation.images.overhead_cam/
        frame_000000.png
        ...
      episode.json              # {task, success, duration_s, num_frames}
  meta_data/
    info.json                   # dataset schema version, robot type, fps
    stats.json                  # per-channel mean, std, min, max

状态和行动维度

# observation.state: [T, 12]
# Columns: [j0_pos, j1_pos, j2_pos, j3_pos, j4_pos, j5_pos,
#            j0_vel, j1_vel, j2_vel, j3_vel, j4_vel, j5_vel]
# Units: radians and radians/second

# action: [T, 6]
# Columns: [j0_target, j1_target, j2_target, j3_target, j4_target, j5_target]
# Units: radians

从 O6 数据集训练策略

python -m lerobot.scripts.train \
  --dataset_repo_id=your-username/o6-task-name \
  --policy.type=act \
  --output_dir=./checkpoints/o6-act-v1 \
  --training.num_epochs=100

剧集质量检查表

在将其添加到训练数据集中之前,请将此清单应用到每一集。 坏数据比少数据更糟糕。

  • 任务成功完成 — 手臂无需人工干预即可达到目标状态。 没有部分完成。
  • 动作流畅且从容 — 没有不稳定的修正、超调或突然的方向改变。 顺利的示威训练出更顺畅的政策。
  • 所有相机帧都存在 — 没有丢帧,没有遮挡与任务相关的工作空间区域。
  • 联合状态是连续的 — 状态日志中没有大于 40 毫秒的时间步间隔。
  • 剧集时长一致 — 短于 3 秒或长于 30 秒的事件通常是异常值。 在包含之前先检查它们。
  • 场景同样重置 — 任务对象在剧集开始前返回到相同的起始位置。
  • 记录期间没有 CAN 错误 - 查看 candump can0 会话期间的错误帧日志。
数据收集管道概述 →

准备好训练了吗?

遵循 LinkerBot O6 学习路径来了解完整的设置到训练工作流程。