wb_add_knee_toy
收藏资源简介:
该数据集包含来自Unitree G1全身机器人的遥操作数据,以LeRobot v2.1格式发布。任务是从人类手中拿起玩具并放入玩具篮。数据集包含51个episodes,共计37395帧(约21分钟,30fps),使用2个640×480分辨率的H264摄像头。状态和动作均为43维关节向量。提供两个分支:main分支(手部状态全为零)和real_inspair分支(包含Inspire灵巧手的估计状态和命令,以及二进制开合触发器)。此外,数据还包含视频(原始摄像头画面及手部/身体姿态叠加)和姿态注释(MediaPipe手部关键点、RTMO身体骨架关键点),注释存储在parquet列中。
This dataset contains teleoperation data from the Unitree G1 full-body 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 includes 51 episodes, totaling 37,395 frames (approximately 21 minutes at 30 fps), using two 640×480 resolution H264 cameras. The state and action are both 43-dimensional joint vectors. Two branches are provided: the main branch (hand state all zeros) and the real_inspair branch (includes estimated states and commands for the Inspire dexterous hand, as well as binary open/close triggers). In addition, the data includes videos (original camera views with hand/body pose overlays) and pose annotations (MediaPipe hand keypoints, RTMO body skeleton keypoints), with annotations stored in parquet columns.
wb_add_knee_toy 数据集概述
wb_add_knee_toy 是一个用于机器人全身遥操作的数据集,数据采集自 Unitree_G1_WholeBody_RGB 人形机器人,以 LeRobot v2.1 格式发布。
基本信息
| 属性 | 值 |
|---|---|
| 任务 | 从人类手中接过玩具,并将其放入玩具篮 |
| 语言 | 英语 |
| 任务类别 | 机器人(robotics) |
| 许可 | Apache-2.0 |
| 数据规模 | 10K-100K 帧 |
数据规模
- 片段数:51 个
- 总帧数:37,395 帧(约 21 分钟,30 fps)
- 片段长度:565–1,059 帧(中位数 715 帧)
- 相机:2 个 640×480 H.264 摄像头
- 状态/动作维度:均为 43 维关节向量
- 数据分割:训练集
0:51(全部用于训练)
⚠️ 两个分支版本
数据集包含两个分支,差异仅在灵巧手维度:
| 分支 | 手部状态(22–28 / 36–42 维) | 手部动作 | 适用场景 |
|---|---|---|---|
main |
全零(未记录) | 原始 Dex3 遥操作向量,包含负值 | 仅需身体/运动数据时 |
real_inspair |
Inspire 估计值(0.50–1.00) | Inspire 原生指令(0.50–1.00),末槽为开/关二进制触发 | 需要手部相关数据时 |
训练抓取任务时请使用 real_inspair 分支。在 main 分支上,手部状态列全为零,模型将无法从中学习到手部信息。
python from lerobot.common.datasets.lerobot_dataset import LeRobotDataset ds = LeRobotDataset("DaoyuanZhu/wb_add_knee_toy", revision="real_inspair")
数据模式(Schema)
observation.state 和 action 均为 43 维,排列顺序如下:
| 维度范围 | 身体部位 | 关节详情 |
|---|---|---|
| 0–11 | 腿部 | 左/右:髋关节俯仰、翻滚、偏航,膝关节,踝关节俯仰、翻滚 |
| 12–14 | 腰部 | 偏航、翻滚、俯仰 |
| 15–21 | 左臂 | 肩关节俯仰/翻滚/偏航,肘关节,腕关节翻滚/俯仰/偏航 |
| 22–28 | 左手 | index_0, index_1, middle_0, middle_1, thumb_0, thumb_1, thumb_2 |
| 29–35 | 右臂 | 肩关节俯仰/翻滚/偏航,肘关节,腕关节翻滚/俯仰/偏航 |
| 36–42 | 右手 | index_0, index_1, middle_0, middle_1, thumb_0, thumb_1, thumb_2 |
在 real_inspair 分支中,Inspire 手部报告 6 维估计值:槽位 22–27 / 36–41 承载数值,槽位 28 / 42 保持零填充。动作侧相同槽位承载原生指令,最后一槽为二进制触发器(0.0 / 1.0)。
注意:
real_inspair的手部状态是估计值,来自记录了 Inspire 反馈的采集(旧有设备没有手部传感)。应将其描述为 估计/转存的 Inspire 手部状态,而非记录的真实值。
视频内容
所有视频均为 H.264 编码,可在标准播放器中播放:
| 视频键 | 内容 | 编码 |
|---|---|---|
observation.images.cam_chest |
cam_chest — 原始相机画面 | h264 |
observation.images.cam_chest_hand_overlay |
cam_chest — MediaPipe 手部关键点叠加 | h264 |
observation.images.cam_chest_pose_overlay |
cam_chest — RTMO 人体骨架叠加 | h264 |
observation.images.cam_head |
cam_head — 原始相机画面 | h264 |
observation.images.cam_head_hand_overlay |
cam_head — MediaPipe 手部关键点叠加 | h264 |
observation.images.cam_head_pose_overlay |
cam_head — 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 值。
标注过滤方法
- 人体检测:按片段进行后处理,包括分数阈值、基于边界框包含关系的重复抑制、片段合并、基于运动轨迹与饱和度掩膜躯干色调直方图合并的单身份锁定。时间重叠的轨迹永不合并。
- 手部候选:锚定到中心人物的手腕,距离手腕超过半个肩宽的手部检测将被拒绝,从而排除手形道具的干扰。
文件布局
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_add_knee_toy", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
许可证
Apache-2.0。



