为什么双手数据收集更困难

在单臂数据收集中,不良演示仅影响一只手臂的轨迹。 您录制 50 个演示,丢弃 5 个不好的演示,然后训练 45 个。在双手数据收集中,交接点的错误会导致无效 两个都 同时演示该演示的手臂轨迹。 故障模式是耦合的。

这种耦合有两个实际意义。 首先,您需要更多的演示——100 个而不是 50 个——因为双手任务具有更高的方差,并且策略需要更多的示例来学习协调结构。 其次,每个演示都需要更严格的一致性。 80% 一致的单臂演示训练得相当好。 在双手演示中,一只手臂保持一致,另一只手臂变化,该策略对于协调时间没有任何帮助。

工作空间覆盖范围的挑战也更大:您需要双臂都在画面中,并且交接点(最复杂的时刻)必须由至少一台摄像机可靠地捕获。 在开始之前检查摄像机角度,如果切换发生在工作区摄像机的视野之外,请进行调整。

乐机器人双手数据集格式

DK1 与 LeRobot 的集成通过双关节状态阵列扩展了标准单臂格式。 数据集中的每个时间步包含:

# Bimanual dataset observation keys per timestep: 观察.joint_states.left # shape: (6,) — left follower joint angles in radians 观察.joint_states.right # shape: (6,) — right follower joint angles in radians 观察.夹具.左 # shape: (1,) — left gripper position [0=open, 1=closed] 观察.夹具.右 # shape: (1,) — right gripper position 观察.图像.工作空间 # shape: (H, W, 3) — workspace overhead/front camera 观察.图像.手腕 # shape: (H, W, 3) — primary wrist camera action.joint_states.left # shape: (6,) — target left joint angles 动作.joint_states.right # shape: (6,) — target right joint angles 动作.夹具.左 # shape: (1,) 动作.夹子.右 # shape: (1,)

与单臂的主要区别:动作空间是14维的(6+6关节+2个抓手)。 ACT 会自行处理此问题 — 您可以在训练配置中指定操作维度,无需进行其他更改。

录音工作流程

来源 ~/dk1-env/bin/activate # Start a recording session — 100 episodes for the cube handoff task python -m lerobot.scripts.record \ --robot-path ~/dk1-config.yaml \ --机器人类型 dk1_bimanual \ --fps 50 \ --root ~/dk1-数据集 \ --repo-id 立方体-handoff-v1 \ --剧集数 100 \ --预热时间-s 3 \ --情节时间-s 30 \ --重置时间-s 5 # --warmup-time-s: time after pressing record before capture starts (use this to position the cube) # --episode-time-s: max demo length — cube handoff should complete in under 20s; 30s gives buffer # --reset-time-s: time between episodes to return arms to home and reposition the cube

在开始录音之前运行 10-15 个练习演示,以预热您的运动记忆以完成任务。 前 5-10 个录制的演示将是最糟糕的——这是预料之中的。 在会议期间不要停下来回顾它们; 在录制完 100 个演示后,审查并剔除不好的演示。

双手数据质量检查表

使用乐机器人的重播查看器录制后查看每个演示。 放弃任何不符合以下两个或多个标准的演示:

切换时手臂同步 双臂必须同时位于预定交接点 3 厘米以内。 异步切换(其中一只手臂等待另一只手臂)会导致策略暂停,这样传输效果很差。
一致的起始位置 对于每个演示,立方体的起始位置必须在同一位置 2 厘米以内。 使用第 1 单元中的磁带标记。起始位置的差异迫使策略在了解核心任务之前进行概括。
干净的抓握——双臂 在进入下一阶段之前,每只手臂都必须实现稳定的抓握。 转移过程中的失误会造成政策无法可靠复制的轨迹。
返回原点姿势 每次演示结束时,双臂必须干净利落地返回到起始姿势。 中途结束的演示创建了一个数据集,其中情节边界不明确。
工作区摄像头覆盖范围 切换时刻必须在工作区相机框架中可见。 如果机器人身体遮挡了视野,请在继续之前调整摄像机角度。
一致的计时 各个演示的剧集持续时间差异不应超过 ±5 秒。 大的时序方差表明执行不一致,并产生具有高动作空间熵的数据集。
目标数据集大小: 对于双手 ACT 训练,建议最少进行 100 次演示。 研究结果表明,双手任务需要的数据大约是单臂任务的两倍,因为关节协调结构更复杂,动作空间更大。 如果经过第 5 单元的培训后,您的成功率低于 40%,那么首先要尝试的是收集另外 50 个有针对性的演示。

第 4 单元完成时...

您有 100 个以 LeRobot 格式录制的演示,位于 ~/dk1-datasets/cube-handoff-v1/。 经过审查和筛选后,至少 90 个演示通过了质量检查表。 每集两个联合状态阵列都以 50Hz 的频率出现。 两个摄像头都显示并显示完整的任务序列,包括切换时刻。 你已经跑了 python -m lerobot.scripts.visualize_dataset --repo-id cube-handoff-v1 并确认数据集结构有效。