wb_receive_toy_to_basket
收藏资源简介:
这是一个来自Unitree_G1_WholeBody_RGB人形机器人的全身遥操作数据集,以LeRobot v2.1格式发布。任务是将玩具从人类手中拿起并放入玩具篮。数据集包含42个片段,共22288帧(约12分钟,30fps),每个片段长度在452到669帧之间(中位数529帧)。配备2个640×480 H264摄像头,状态和动作均为43维关节向量。数据分为训练集(0:42)。提供了两个分支:main分支手部状态为零,适合仅需要身体/运动的数据;real_inspair分支包含Inspire手部估计值(0.50-1.00)和二进制开合触发,适合需要手部相关任务。数据模式包括观测状态、动作、多视角视频(原始/手部叠加/姿态叠加),以及人体和手部姿态标注(MediaPipe Hands和RTMO)。数据集遵循Apache-2.0许可证。
This is a whole-body teleoperation dataset from Unitree_G1_WholeBody_RGB humanoid robot, released in LeRobot v2.1 format. The task is to pick up a toy from a human hand and place it into a toy basket. The dataset contains 42 episodes, 22288 frames (about 12 minutes, 30fps), each episode length between 452 to 669 frames (median 529). Equipped with 2 640×480 H264 cameras, state and action are both 43-dimensional joint vectors. Data split into training set (0:42). Two branches provided: main branch with zero hand state, suitable for body/motion-only data; real_inspair branch includes Inspire hand estimates (0.50-1.00) and binary open/close trigger, suitable for hand-related tasks. Data modalities include observation state, action, multi-view video (raw/hand overlay/pose overlay), and human body and hand pose annotations (MediaPipe Hands and RTMO). Dataset follows Apache-2.0 license.
wb_receive_toy_to_basket 数据集详情
数据集概览
该数据集为Unitree G1 人形机器人全身遥操作数据,以 LeRobot v2.1 格式发布,任务为从人类手中接过玩具并放入玩具篮。数据以英文标注,许可协议为 Apache-2.0,规模约 1 万至 10 万帧。
| 属性 | 详情 |
|---|---|
| 采集平台 | Unitree_G1_WholeBody_RGB |
| 任务类型 | 机器人(robotics) |
| 格式 | LeRobot v2.1(每集一个 parquet 文件和一个视频片段) |
| 样本量 | 42 个片段,共 22,288 帧(约 12 分钟 @ 30 fps) |
| 片段长度 | 452–669 帧(中位数 529) |
| 相机 | 2 × 640×480 H.264 |
| 状态/动作维度 | 43 维 / 43 维关节向量 |
| 数据划分 | 训练集 0:42(全部) |
两个分支说明
数据集包含两个分支,仅在灵巧手维度上存在差异,其余列(身体关节、时间戳、索引)完全一致。
| 分支 | 手部状态(维度 22–28 / 36–42) | 手部动作 | 适用场景 |
|---|---|---|---|
main |
全零(未记录) | 原始 Dex3 遥操作向量(含负值) | 仅需身体/运动控制 |
real_inspair |
Inspire 估计值(0.50–1.00) | Inspire 原生指令(0.50–1.00),末位为二进制开合触发 | 涉及手部相关任务 |
建议: 训练抓取相关任务请使用 real_inspair 分支;main 分支手部状态列为全零,模型无法从中学习有效信息。
数据模式(Schema)
observation.state 和 action 均为 43 维,排列顺序:
| 维度范围 | 部位 | 内容 |
|---|---|---|
| 0–11 | 腿部 | 左右腿的髋关节 pitch/roll/yaw、膝关节、踝关节 pitch/roll |
| 12–14 | 腰部 | yaw、roll、pitch |
| 15–21 | 左臂 | 肩部 pitch/roll/yaw、肘部、腕部 roll/pitch/yaw |
| 22–28 | 左手 | 食指×2、中指×2、拇指×3 |
| 29–35 | 右臂 | 肩部 pitch/roll/yaw、肘部、腕部 roll/pitch/yaw |
| 36–42 | 右手 | 食指×2、中指×2、拇指×3 |
在 real_inspair 分支中,Inspire 手部提供 6 维估计值(槽位 22–27 / 36–41 为有效值,槽位 28 / 42 保持零填充);动作侧对应槽位为原生指令,末位为二进制触发信号(0.0 / 1.0)。
注意:
real_inspair的手部状态为估计/迁移值,来源于曾记录 Inspire 反馈的采集,原始设备并无手部传感,应描述为估计/迁移的 Inspire 手部状态,而非记录的 ground truth。
视频数据
所有视频为 H.264 编码,包含六个视频键:
| 视频键 | 内容 | 编码 |
|---|---|---|
observation.images.cam_chest |
胸部相机原始画面 | h264 |
observation.images.cam_chest_hand_overlay |
胸部相机 + MediaPipe 手部关键点叠加 | h264 |
observation.images.cam_chest_pose_overlay |
胸部相机 + RTMO 身体骨架叠加 | h264 |
observation.images.cam_head |
头部相机原始画面 | h264 |
observation.images.cam_head_hand_overlay |
头部相机 + MediaPipe 手部关键点叠加 | h264 |
observation.images.cam_head_pose_overlay |
头部相机 + RTMO 身体骨架叠加 | h264 |
姿态标注
关键点以 parquet 列形式随每帧保存,无需单独标注文件。
| 列名 | 来源 | 内容 |
|---|---|---|
observation.human_hand.<cam>.landmarks_uv |
MediaPipe Hands | 每只手 21 点,像素 u/v 坐标(左手槽在前) |
observation.human_hand.<cam>.landmarks_2d |
MediaPipe Hands | 归一化 x/y/z 坐标 |
observation.human_hand.<cam>.world_landmarks |
MediaPipe Hands | 世界坐标(度量级)x/y/z |
observation.human_hand.<cam>.valid / .score |
— | 左手/右手存在标志及置信度 |
observation.human_body.<cam>.landmarks_uv |
RTMO(rtmo-m_16xb16-600e_body7) |
COCO-17 身体点,像素 u/v |
observation.human_body.<cam>.landmarks_2d |
RTMO | 同上,归一化坐标 |
observation.human_body.<cam>.scores / .valid |
— | 每关键点置信度及每帧标志 |
检测失败时以零填充且 valid = 0,无 NaN 值。
标注过滤机制
- 人体检测:每片段后处理包括置信度阈值过滤、基于边界框包含关系的重复抑制(IoU 无法识别包裹真实框的假阳性)、片段合并,以及基于运动轨迹与饱和度掩码躯干色相直方图合并的单身份锁定。时间重叠的轨迹不会合并,因为同时可见的检测不可能是同一人。
- 手部候选:以中心人物的手腕为锚点,超出半肩宽距离的检测被拒绝,防止手形道具混入标注。
文件布局
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_receive_toy_to_basket", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
若在
lerobotv3.0+ 使用 v2.1 格式,需先运行官方升级命令:python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_receive_toy_to_basket
许可协议
Apache-2.0。



