遇见数据集

ETRI_VR_Robotics_data_research

收藏
Hugging Face2026-08-15 更新2026-08-15 收录
官方服务:

资源简介:

ETRI VR Robotics — FFW-SG2遥操作数据及检查点。该数据集是通过Apple Vision Pro VR对ROBOTIS AI Worker (FFW-SG2)进行遥操作收集的模仿学习数据集,任务为“将罐子放到盘子上”(put the can on the plate)。数据集包含多个子数据集,如can1(6个片段,6903帧)、can2(1个片段,2433帧)、can_left(19个片段,17346帧)、can_left_v2(29个片段,23096帧)、can_left_v3(29个片段,19944帧,当前版本)、can_left_v4(9个片段,5463帧,与v3同架构可合并)。所有子数据集均采用LeRobot格式,采样频率10fps,状态维度(v3为25,包含机器人状态19维+罐子坐标3维+盘子坐标3维),动作维度(v3为17,包含原始16维+提升动作1维)。相机共4台:cam_head_l、cam_head_r、cam_wrist_l、cam_wrist_r,分辨率640×480。另提供基于π0.5(openpi)模型微调的LoRA检查点,包括仅使用head_l+wrist_l的17维动作模型、分离的lift和arm+wrist模型等。检查点使用orbax OCDBT格式,约8.9GB。数据集有明确的训练/验证分割规则(80/20按片段分割),并建议包含失败-恢复演示以增强鲁棒性。已知限制:当前未实现夹爪实际驱动路径,导致抓取成功率无法测量;数据规模(38个片段)被认为是瓶颈,目标100个片段以上。

ETRI VR Robotics — FFW-SG2 Teleoperation Dataset and Checkpoints. This dataset is an imitation learning dataset collected via teleoperation of ROBOTIS AI Worker (FFW-SG2) using Apple Vision Pro VR, with the task put the can on the plate. It includes multiple sub-datasets: can1 (6 episodes, 6903 frames), can2 (1 episode, 2433 frames), can_left (19 episodes, 17346 frames), can_left_v2 (29 episodes, 23096 frames), can_left_v3 (29 episodes, 19944 frames, current version), can_left_v4 (9 episodes, 5463 frames, mergeable with v3). All sub-datasets are in LeRobot format, sampled at 10fps. State dimension (v3: 25, including 19 robot state + 3 can coordinates + 3 plate coordinates), action dimension (v3: 17, including 16 original + 1 lift action). Four cameras: cam_head_l, cam_head_r, cam_wrist_l, cam_wrist_r, resolution 640x480. LoRA checkpoints fine-tuned from π0.5 (openpi) are provided, including 17D action model using only head_l+wrist_l, separate lift and arm+wrist models, etc. Checkpoints in orbax OCDBT format, ~8.9GB. Dataset has explicit train/validation split (80/20 by episode) and recommends including failure-recovery demonstrations for robustness. Known limitations: no actual gripper driving path implemented, making grasp success rate unmeasurable; data size (38 episodes) is considered a bottleneck, target is 100+ episodes.

提供机构:
logan098
创建时间:
2026-08-13
原始信息汇总

ETRI VR Robotics — FFW-SG2 텔레오퍼레이션 데이터 및 체크포인트

数据集概述

本数据集是使用 Vision Pro VR 对 ROBOTIS AI Worker (FFW-SG2) 机器人进行远程操作(텔레오퍼레이션)采集的模仿学习数据集,并包含使用 π0.5 (openpi) 进行微调得到的模型检查点。任务目标为:将罐子放到盘子上put the can on the plate)。

存储库结构

路径 说明
datasets/ LeRobot 格式数据集(学习输入)
checkpoints/ π0.5 LoRA 训练结果(通过 .gitattributes 规则由 LFS 管理)
info.json LeRobot 模式参考模板

数据集列表

名称 回合数 帧数 fps state action 备注
can1 6 6,903 10 19 16 初期采集(右手)
can2 1 2,433 10 19 16 初期采集
can_left 19 17,346 10 19 16 左手采集(28回合→筛选19回合)
can_left_v2 29 23,096 10 19 16 v2 模式
can_left_v3 29 19,944 10 25 17 v3 模式(现行)
can_left_v4 9 5,463 10 25 17 0731 追加采集(与v3相同模式)
raw_left_20260728 原始回合(LeRobot转换前)
raw_left_20260731 原始回合(tar,9个)

摄像头(4台通用)cam_head_lcam_head_rcam_wrist_lcam_wrist_r(分辨率 640×480)

can_left_v3can_left_v4 模式相同,可合并使用(38回合 / 25,407帧)。合并时需对 episode_index 和全局 index 重新编号,因为 parquet 中包含这两个列,直接复制文件会导致索引冲突。

v3 模式(现行)

convert_pkl_to_lerobot_v3.py 生成,相比 v2 有三点变化:

  1. state 25 维 = 原有机器人状态 19 维 + 罐子位置 can(x,y,z) 3 维 + 盘子位置 plate(x,y,z) 3 维。物体坐标注释为实测正向运动学(FK)而非视觉估计,因此相机误差为零。

  2. action 17 维 = 原有 16 维 + lift(身体高度)。引入升降维度的原因:操作者使用"罐子不可见或靠近桌面时升高身体,伸展不足时降低身体"的策略,但 v2 之前策略无法输出此动作。该动作为下一帧测量值的增量动作。

  3. 结束修剪 — 仅保留到最后一次夹爪打开 + 2 秒。VR 结束按钮操作污染了 29 个回合中的 11 个,共移除 3,152 帧(14%)。

openpi 连接FFWSG2InputsV3(右手腕摄像头遮罩 + 零图像——仅用于左手训练)/ LeRobotFFWSG2V3DataConfig / 配置 pi05_can_left_v3_lora

数据提交协议

1. 格式

以 LeRobot 格式(data/meta/videos/)放置在 datasets/<名称>/ 下。meta/info.json 中的 total_episodestotal_frames 必须与实际值一致。

2. 训练/验证划分 — 按回合 80/20

必须按回合整体划分,不得按帧混合划分。由于 10fps 下相邻帧几乎相同,同一回合若同时出现在训练和验证集中,验证损失会不切实际地偏低。验证回合应均匀混合光照条件、罐子位置和拍摄时间段。

3. 筛选

基本原则是仅保留成功演示(如 28回合→筛选19回合)。但建议包含失败-恢复演示(轻微偏离后回归的轨迹),因为仅学习成功轨迹的策略在偏离后容易发散(分布偏移)。

4. 规模

目前 38 回合(v3 的 29 + v4 的 9)是瓶颈,目标为 100 回合以上

5. 合并多数据集

parquet 中 episode_index 和全局 index 列需要重新编号。偏移量 = 前一个数据集的 total_frames。同时更新 episode_index 相关的 episodes.jsonlepisodes_stats.jsonl,以及 info.json 中的 total_episodestotal_framestotal_videossplits。视频文件无需重新编码,仅需重命名。

检查点

路径 训练数据 输入摄像头 输出动作
checkpoints/pi05_can1_lora/2999 can1 (6回合) head_l + wrist_l 16维 (state 19)
checkpoints/pi05_can_left_v3_lora/2999 can_left_v3 (29回合) head_l + wrist_l 17维 (state 25)
checkpoints/pi05_lift_head_lora/2999 v3+v4 (38回合) head_l + head_r 1维 — 升降
checkpoints/pi05_arm_wrist_lora/2999 v3+v4 (38回合) wrist_l 16维 — 手臂+夹爪

每个约 8.9GB(参数+训练状态+资源),采用 orbax OCDBT 格式,通过 LFS 跟踪。

摄像头×动作分离(2026-07-31)

后两个检查点是一对配合使用的模型,每个摄像头负责与其物理上共同移动的轴:

头部立体(安装于升降机构) → 升降 1维 action[16:17] 左手腕 (安装于手臂末端)→ 手臂+夹爪 16维 action[0:16]

两个模型数据、步数、学习率、批次完全相同(38回合/25,407帧,3,000步,batch 16,峰值学习率 5e-5),仅输入摄像头和负责的动作不同。

推理时分别运行两个模型后组装为 17 维(pi05_inference_bridge.py --split-models,SplitPolicy),下游无需修改。

升降(头部) 手臂(手腕)
最终损失中位数 0.00030 0.03740
MAE(训练集150帧) 0.02181 0.05547
相对"始终为0"基线 +86.6% +87.8%
预测/实际标准差比 1.13 0.89~1.02
预测·实际相关系数 0.950 0.875~0.991

注意:两个模型的损失不可直接比较(1维比16维容易),应参考相对基线的提升幅度。这些数值是在训练帧上测量的,不保证泛化能力。动作预测精度与抓取成功率是两回事。

学习基线(pi05_can_left_v3_lora/2999

项目 详情
模型 π0.5 LoRA(paligemma gemma_2b_lora + action expert gemma_300m_lora),EMA关闭
数据 can_left_v3 — 29回合 / 19,944帧(batch 16 约 2.41 epoch)
步数 3,000(batch 16,action_horizon 10)
学习率 余弦 — warmup 100 → 峰值 5e-5 → 衰减至 3,000 → 5e-6,AdamW 裁剪 1.0
硬件 RTX 6000 Ada 48GB × 1(共享环境,实际可用约 39GB)
耗时 2小时34分钟(约3.0~3.1 秒/步)

损失中位数变化(按300步区间):

区间 0~299 600~899 1200~1499 1800~2099 2400~2699 2700~2999
loss 0.0912 0.0609 0.0479 0.0398 0.0319 0.0314

损失单调递减无反弹,结束时有继续下降趋势(因调度结束而停止)。发散指标:loss>0.3 出现 10次/3,000,grad_norm>1.0(裁剪)出现 19次/3,000。

使用方法

bash git clone https://huggingface.co/datasets/ETRI7203/ETRI_VR_Robotics_data_research hf_data

需要 git-lfs,否则 17GB 将仅以指针文本形式下载。

mkdir -p ~/.cache/huggingface/lerobot/etri ln -s $(pwd)/hf_data/datasets/can_left_v3 ~/.cache/huggingface/lerobot/etri/can_left_v3

openpi 训练代码和配置在单独存储库(ETRI_VR_Robotics_data_research,分支 verify/assist-phase2)的 pipeline/vla/ffw_sg2/openpi_port/ 目录中。

已知限制

  • 夹爪实际驱动路径未实现 — 当前 Cyclo 路径中没有夹爪控制器,策略输出抓取动作时物理上无法执行夹持。这是测量抓取成功率的前提条件。
  • 成功率未达标 — 接近目标精确但抓取前反复偏离。瓶颈判定为数据规模问题(非系统缺陷)。
  • raw_left_20260728 为 LeRobot 转换前的原始数据,不能直接用于训练。
二维码
社区交流群
二维码
科研交流群
商业服务