wb_pick_pointed_bread
收藏资源简介:
该数据集为全身遥操作数据,来自Unitree_G1_WholeBody_RGB双足人形机器人,以LeRobot v2.1格式发布。任务为:拾起人类指示的桌子上的面包,然后将其递给人类。数据集包含98个片段,共54442帧(约30分钟,30fps),每个片段长度在325-800帧之间(中位数553帧)。使用2个640×480 H264摄像头。观察状态和动作均为43维关节向量。数据集分为两个分支:main分支(手部状态全为零,仅用于身体/运动控制)和real_inspair分支(包含Inspire手部估计值0.50-1.00和二进制开合触发器)。此外,还包含基于MediaPipe和RTMO的手部和身体关键点注释。数据布局为每个片段一个parquet文件和一个视频片段。
数据集概述:wb_pick_pointed_bread
基本信息
- 数据集名称:wb_pick_pointed_bread
- 许可证:Apache-2.0
- 任务类型:机器人学(Robotics)
- 语言:英语
- 标签:LeRobot、人形机器人、Unitree-G1、全身控制、遥操作、Inspire手部、姿态估计
- 数据规模:10K < N < 100K
数据内容
本数据集包含来自 Unitree_G1_WholeBody_RGB 的全身遥操作数据,以 LeRobot v2.1 格式发布。任务目标为:拿起人类指示的桌子上的面包,然后交给人类。
核心统计
| 项目 | 数值 |
|---|---|
| 片段数 | 98 |
| 总帧数 | 54,442(30分钟,30 fps) |
| 片段长度 | 325–800 帧(中位数 553) |
| 相机 | 2 × 640×480 H264 |
| 状态/动作维度 | 43维/43维关节向量 |
| 数据划分 | 训练集 0:98 |
分支变体(重要)
数据集提供两个分支,仅在灵巧手维度上不同,其余列(身体关节、时间戳、索引)完全一致:
| 分支 | 手部状态(维度22–28/36–42) | 手部动作 | 适用场景 |
|---|---|---|---|
main |
全零(从未记录) | 原始Dex3遥操作向量(含负值) | 仅需身体/运动数据时 |
real_inspair |
Inspire估计值(0.50–1.00) | Inspire原生指令(0.50–1.00),末位为开/关二进制触发 | 需要手部相关数据时 |
注意:若训练抓取相关任务,应使用 real_inspair 分支。main 分支的手部状态列全为零,模型无法从中学习手部信息。
数据结构
状态与动作维度(43维顺序)
- 0–11:腿部(左右各6维:髋部俯仰/横滚/偏航、膝、踝俯仰/横滚)
- 12–14:腰部(偏航、横滚、俯仰)
- 15–21:左臂(肩部俯仰/横滚/偏航、肘、腕部横滚/俯仰/偏航)
- 22–28:左手(食指×2、中指×2、拇指×3)
- 29–35:右臂(同左臂)
- 36–42:右手(同左手)
在 real_inspair 中,Inspire手部报告6维估计值:槽位22–27/36–41携带数值,槽位28/42保持零填充。动作侧对应槽位携带原生指令,末位为二进制触发(0.0/1.0)。
视频数据
| 键名 | 内容 | 编码 |
|---|---|---|
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 |
所有视频均采用H.264编码。
姿态标注
关键点随parquet列存储,每帧一行,无单独标注文件:
手部标注(MediaPipe Hands):
landmarks_uv:每只手21个关键点,像素u/v坐标(左槽位+右槽位)landmarks_2d:归一化x/y/z坐标world_landmarks:类公制世界坐标valid/score:左右手存在标志和置信度
身体标注(RTMO rtmo-m_16xb16-600e_body7):
landmarks_uv:COCO-17人体关键点,像素u/vlandmarks_2d:归一化坐标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_pick_pointed_bread", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
若使用 LeRobot v3.0+,需先运行官方升级命令将数据集从v2.1转换为v3.0格式:
python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_pick_pointed_bread
补充说明
real_inspair分支的手部状态为估计/迁移数据(来自记录Inspire反馈的采集),并非直接录制的地面真值,应将其描述为“估计/迁移的Inspire手部状态”。- 手部状态维度中,槽位28/42保持零填充。



