icl-dataset
收藏资源简介:
ICL数据集是一个用于机器人模仿学习的双手机器人操作数据集,通过人类遥操作在YOR机器人上收集,采用LeRobot v2.1格式。数据集包含3,149个episode,共2,385,871帧,总时长22.1小时,涵盖36个操作任务,并由三个摄像头(场景视图ZED、左夹爪鱼眼fish0、右夹爪鱼眼fish1)以640×480分辨率、30fps记录。每个episode代表一次完整的遥操作尝试,同步记录了本体感受(15维关节状态)、命令动作(左/右末端执行器姿态、夹爪开合、基座速度、升降指令)和三个摄像头图像。数据集中包含成功、失败、无效以及一种特殊的successful_invalid标签。成功episode按任务进行了平衡处理,每个任务最多保留100个成功episode。数据集还提供了稳定的episode标识符(episode_uid)用于跨版本追踪。数据集的标签质量并非完全可靠,只有部分episode经过人工审核。数据集未提供训练/验证集划分,且未发布相机内外参。
The ICL dataset is a bimanual robot manipulation dataset for robot imitation learning, collected via human teleoperation on a YOR robot, using the LeRobot v2.1 format. It contains 3,149 episodes, totaling 2,385,871 frames, with a duration of 22.1 hours, covering 36 manipulation tasks. Three cameras (scene view ZED, left gripper fisheye fish0, right gripper fisheye fish1) record at 640×480 resolution and 30fps. Each episode represents a complete teleoperation attempt, synchronously recording proprioception (15-dimensional joint states), command actions (left/right end-effector pose, gripper open/close, base velocity, lift command), and three camera images. The dataset includes success, failure, invalid, and a special successful_invalid tag. Successful episodes are balanced per task, with at most 100 successful episodes per task. The dataset also provides stable episode identifiers (episode_uid) for cross-version tracking. The label quality is not fully reliable, and only some episodes have been manually reviewed. The dataset does not provide a train/validation split, and camera intrinsics/extrinsics are not released.
ICL Dataset 数据集概述
基本信息
- 数据集名称:ICL Dataset
- 数据类型:机器人操作数据(Bimanual robot manipulation)
- 采集方式:人类通过遥操作(teleoperation)在 YOR 机器人上采集
- 数据格式:LeRobot v2.1 格式
- 规模:3,149 个 episodes · 2,385,871 帧 · 22.1 小时 · 36 个任务 · 3 个摄像头视角
- 许可协议:未指定(下游使用存在法律歧义,需提前与作者确认)
数据内容与结构
目录结构
meta/ info.json LeRobot v2.1 头部信息(特征、形状、路径模板) episodes.jsonl 每个 episode 一行:索引、任务、长度、结果、来源 episodes_stats.jsonl 每个 episode 的特征统计 tasks.jsonl 36 条任务指令,带索引 data/chunk-XXX/episode_NNNNNN.parquet 表格数据,每帧一行 videos/chunk-XXX/observation.images.<cam>/episode_NNNNNN.mp4 h264, 640x480, 30 fps
- 分块方式:
episode_index // 100 - 摄像头:
zed(场景)、fish0(左夹爪)、fish1(右夹爪)
每帧特征
| 特征 | 形状 | 说明 |
|---|---|---|
observation.state |
[15] |
实测本体感觉:左右臂关节(lj0-6, rj0-6)+ 升降(lift) |
action.left_ee |
[7] |
左端执行器指令位姿 [qw,qx,qy,qz,x,y,z](四元数在前) |
action.right_ee |
[7] |
右端执行器指令位姿,同上 |
action.gripper |
[2] |
指令夹爪 [左, 右],0.0=闭合,1.0=张开 |
action.base_vel |
[3] |
底盘速度指令 [vx, vy, omega] |
action.lift_cmd |
[1] |
升降指令,-1 / 0 / 1 浮点数 |
observation.images.zed |
480x640x3 |
场景视图(ZED 左眼) |
observation.images.fish0 |
480x640x3 |
左手夹爪鱼眼 |
observation.images.fish1 |
480x640x3 |
右手夹爪鱼眼 |
另有标准簿记列:timestamp, frame_index, episode_index, index, task_index。
注意:observation.state 是实测关节状态;action.* 是操作员的指令目标。夹爪状态位于动作空间中。
数据标签与平衡说明
标签类别(核心警告)
所有 episodes 混合存放在 data/ 与 videos/ 目录中,仅通过 meta/episodes.jsonl 中的 success 字段区分:
success |
episodes | 帧数 | 含义 |
|---|---|---|---|
success |
2,134 | 1,353,948 | 平衡训练集(见下方说明) |
successful_invalid |
581 | 715,851 | 真实成功,但因时长偏离该任务中位数而被排除在平衡集外 |
fail |
329 | 268,438 | 真实尝试,但未达成目标 |
invalid |
105 | 47,634 | 不可用的演示(机器人未移动、场景已处于目标状态或有人手重置场景) |
successful_invalid是额外标签,遇到未知标签应视为“非成功”而非报错。invalidepisodes 不应视为失败演示,多数情况下无有效内容。
平衡策略
- 成功 episodes 按任务封顶保留:超过 100 个的任务保留 100 个,51–100 个的任务保留 50 个,50 个或以下的任务保留 48 个(语料库最低值)。
- 保留的 episodes 是其时长最接近该任务中位数的样本,剔除长尾和短尾。
- 平衡操作完全可逆,基于
success字段即可恢复原始分布。 - 注意事项:
- 平衡仅通过封顶实现,约 1.6% 的平衡集仍有 1.5×IQR 时长离群值。
- 被排除的 581 个 episodes 是六大任务的长时长尾部,重新加入会恢复原始偏斜。
任务列表(部分示例)
| 任务 ID | 指令 | 平衡集 episodes | 总分钟 |
|---|---|---|---|
| 26 | 把圆环放到柱子上 | 100 | 73 |
| 15 | 用左臂在无杂物桌上捡起橙色立方体放到盘子上 | 100 | 32 |
| 32 | 堆叠彩色八边形 | 100 | 166 |
| 5 | 打开笔记本 | 100 | 40 |
| 34 | 拧开蓝色马克笔帽 | 100 | 36 |
| 35 | 拧开红色马克笔帽 | 100 | 27 |
| ... | ... | ... | ... |
| 合计 | 36 个任务 | 2,134 | 1,324 分钟 |
数据采集与身份标识
采集硬件
- 机器人:双臂 YOR 机器人
- 计算平台:NVIDIA Jetson Orin(同步摄像头)
- 操作方式:操作员通过 VR 控制器遥操作
- 摄像头:1× StereoLabs ZED(场景,左眼)+ 2× Innomaker 鱼眼(夹爪上),均为 640×480 h264
- 动作约定:末端执行器位姿为四元数在前;当某手臂不在 VR 控制下时其
*_ee目标回退到实测位姿
稳定的 Episode 身份(episode_uid)
episode_index要求从 0 连续编号,在数据增删时会改变,因此每个 episode 带有不变的episode_uid。- 格式示例:
"clean_the_plate_20260730_182850:000069"(采集运行名 + 运行内索引)。 - UID 同时存在于
meta/episodes.jsonl和每个 parquet 文件中,可用于跨版本关联。 - 建议:任何跨版本注解、评估结果、手工挑选子集都使用
episode_uid作为连接键。
标签质量与已知局限
标签可靠性(主要限制)
- 标签由操作员在采集时记录,并非全部可靠——最常见的问题是标记为
success但机器人从未移动,或有人手重置场景。 - 自动化筛选标记了 134 个疑似错误标签,人工复核后修正了 77 个(这些带有
reviewed_at字段)。 - 剩余约 3,000 个 episodes 未逐一审核,筛选流程的召回率约 34%,仍有错标可能。
已知局限
- 失败和不可用 episodes 与成功数据混合存放。
- 结果标签仅部分经过审计。
- 未定义训练/验证集划分——
splits声明全部为train。 - 未公开相机内外参;两个夹爪鱼眼为相同物理型号,左右分配依赖 USB 端口。
- 三对
pass X from … to …任务仅词序不同,词袋文本编码可能无法区分方向,建议使用task_index。
修订历史(关键版本)
| 日期 | 变更 |
|---|---|
| 2026-08-11 | 平衡更新:成功 episodes 按任务封顶 100/50/48,581 个 episodes 从 success 移至 successful_invalid;平衡集为 2,134 episodes / 12.5 小时,较之前 2,715 / 19.2 减少;未删除或重编码任何数据 |
| 2026-08-07 | 添加 episode_uid 和 subset:新增两个字符串列(特征数 14→16);subset 标记 put the circle on the peg 的 100-episode 精选集 |
| 2026-08-07 | 任务 14 和 16 更名:经视觉审核,橙色立方体实际放置在纸箱中而非盘子上,指令从 "place it on the plate" 改为 "place it in the box"(仅文本变更) |
| 2026-08-05 | 全面重建:替代早期版本(episode 索引、任务索引和 44 个 slug 风格标签均改变);删除 3 个任务(13 个 episodes)——早于该日期的下载副本不兼容,需重新克隆 |




