遇见数据集

wb_shelf_cup

收藏
Hugging Face2026-09-02 更新2026-08-31 收录
官方服务:

资源简介:

来自Unitree_G1_WholeBody_RGB机器人的全身远程操作数据,以LeRobot v2.1格式发布。任务:从架子上拿起人类提示的杯子,然后递给人类。

Whole-body teleoperation data from the Unitree_G1_WholeBody_RGB robot, released in LeRobot v2.1 format. Task: pick up a cup indicated by a human from a shelf and hand it to the human.

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

wb_shelf_cup 数据集概述

基本信息

  • 许可证:Apache-2.0
  • 任务类别:机器人学(robotics)
  • 语言:英语
  • 标签:LeRobot、机器人学、人形机器人、Unitree G1、全身控制、远程操作、Inspire手、姿态估计
  • 数据规模:10K–100K 帧
  • 数据格式:LeRobot v2.1 格式(每集一个 Parquet 文件与一个视频片段)

任务描述

根据人类的提示,从货架上拿起指定杯子,然后将其递给人类。

数据规模

指标 数值
集数 18
总帧数 16600(9分钟,30 fps)
单集帧数 708–1162(中位数924)
摄像头 2 × 640×480 H.264
状态/动作维度 43维关节向量
训练/测试划分 训练集18集,无测试集

两个变体分支

数据集分为两个分支,仅在灵巧手维度上存在差异,其余列完全一致。

分支 手部状态(维度22–28 / 36–42) 手部动作 适用场景
main 全零(未记录) 原始 Dex3 遥操作向量,含负值 仅需身体/运动信息
real_inspair Inspire 估计值(0.50–1.00) Inspire 原生指令(0.50–1.00),末位为二值开关触发器 需要任何手部相关信息

注意:训练抓取任务时务必使用 real_inspair 分支;main 分支的手部状态列全为零,模型无法从中学习任何信息。

数据模式(Schema)

observation.stateaction 均为 43 维,排列顺序:

  1. 0–11:腿部(左右髋关节 pitch/roll/yaw、膝关节、踝关节 pitch/roll)
  2. 12–14:腰部(yaw、roll、pitch)
  3. 15–21:左臂(肩关节 pitch/roll/yaw、肘关节、腕关节 roll/pitch/yaw)
  4. 22–28:左手(index_0/1、middle_0/1、thumb_0/1/2)
  5. 29–35:右臂(肩关节 pitch/roll/yaw、肘关节、腕关节 roll/pitch/yaw)
  6. 36–42:右手(index_0/1、middle_0/1、thumb_0/1/2)

real_inspair 分支中:

  • 状态侧:Inspire 手报告 6 维估计值(槽位 22–27 / 36–41),槽位 28 / 42 保持零填充
  • 动作侧:相同槽位承载原生指令,末位为二值触发器(0.0 / 1.0)

注意:real_inspair 的手部状态是估计/迁移得到的(来自记录了 Inspire 反馈的采集),并非实际记录的真值,应描述为"估计/迁移的 Inspire 手部状态"。

视频数据

键名 内容 编码
observation.images.cam_chest 胸部相机 — 原始画面 H.264
observation.images.cam_chest_hand_overlay 胸部相机 — MediaPipe 手部关键点叠加 H.264
observation.images.cam_chest_pose_overlay 胸部相机 — RTMO 身体骨架叠加 H.264
observation.images.cam_head 头部相机 — 原始画面 H.264
observation.images.cam_head_hand_overlay 头部相机 — MediaPipe 手部关键点叠加 H.264
observation.images.cam_head_pose_overlay 头部相机 — RTMO 身体骨架叠加 H.264

姿态标注

关键点以 Parquet 列直接嵌入,每帧一行,无需额外标注文件。

手部关键点(MediaPipe Hands)

内容
observation.human_hand.<cam>.landmarks_uv 每只手 21 个点,像素 u/v 坐标(左槽位在前)
observation.human_hand.<cam>.landmarks_2d 归一化 x/y/z 坐标
observation.human_hand.<cam>.world_landmarks 世界坐标 x/y/z
observation.human_hand.<cam>.valid / .score 左右手存在标志和置信度

身体关键点(RTMO rtmo-m_16xb16-600e_body7

内容
observation.human_body.<cam>.landmarks_uv COCO-17 身体点,像素 u/v
observation.human_body.<cam>.landmarks_2d 归一化坐标
observation.human_body.<cam>.scores / .valid 逐关键点置信度和逐帧标志

填充规则:未检测到时坐标为全零且 valid = 0,无 NaN 值。

标注过滤流程

  1. 身体检测:按集后处理 — 分数阈值 → 基于边界框包含关系的重复抑制(普通 IoU 无法处理覆盖真实框的大误检框)→ 片段合并 → 构建基于运动轨迹的单身份锁定(轨迹按饱和度掩码的躯干色调直方图合并)。时间上重叠的轨迹绝不合并(共视检测不可能是同一人)。
  2. 手部候选:额外锚定中心人物的手腕 — 距离手腕超过半个肩宽的检测被拒绝,从而排除手形道具干扰。

文件布局

data/chunk-000/episode_000000.parquet 每集一个 Parquet videos/chunk-000/<video_key>/episode_000000.mp4 每集每摄像头一个视频 meta/info.json 特征模式 meta/episodes.jsonl 集索引和长度 meta/tasks.jsonl 任务字符串 meta/stats.json 逐特征统计

加载方式

python from lerobot.common.datasets.lerobot_dataset import LeRobotDataset

ds = LeRobotDataset("DaoyuanZhu/wb_shelf_cup", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]

若使用 LeRobot v3.0+,需先运行官方升级命令:

python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_shelf_cup

二维码
社区交流群
二维码
科研交流群
商业服务