wb_handover_pointed_bread
收藏资源简介:
这是一个来自Unitree_G1_WholeBody_RGB人形机器人的全身遥操作数据集,以LeRobot v2.1格式发布。任务:从两个面包中拿起人类指向的面包,然后递给人类。数据集包含79个episode,共49743帧(约28分钟,30fps),每个episode长度在464到1359帧之间(中位数574帧)。有两个640×480的H264摄像头(cam_chest和cam_head)。状态和动作都是43维的关节向量,包括腿、腰、左右臂和左右手。数据集提供两个分支:main分支的手部状态全为零,real_inspair分支包含Inspire手部估计值(0.50-1.00)以及二进制开/关触发。此外,还包含MediaPipe手部关键点和RTMO身体骨架的姿态标注,作为parquet列存储。视频包括原始摄像头、手部叠加和姿态叠加视图。数据集采用Apache-2.0许可证。
This is a whole-body teleoperation dataset from the Unitree_G1_WholeBody_RGB humanoid robot, released in LeRobot v2.1 format. Task: pick up the bread pointed by the human from two pieces of bread, then hand it to the human. The dataset contains 79 episodes, totaling 49,743 frames (approximately 28 minutes at 30fps), with episode lengths ranging from 464 to 1,359 frames (median 574). There are two 640×480 H264 cameras (cam_chest and cam_head). State and action are both 43-dimensional joint vectors covering legs, waist, left/right arms, and left/right hands. Two branches are provided: the main branch has all hand states zero, and the real_inspair branch contains Inspire hand estimates (0.50-1.00) along with binary on/off triggers. Additionally, MediaPipe hand keypoints and RTMO body skeleton pose annotations are included as parquet columns. Videos include raw camera views, hand overlay, and pose overlay views. The dataset is licensed under Apache-2.0.
数据集概述
wb_handover_pointed_bread 是一个面向机器人全身控制的人形机器人遥操作数据集,以 LeRobot v2.1 格式发布。
核心任务
拿起人类从两个面包中指出的那一个,然后递给人类。
数据规模
| 项目 | 数值 |
|---|---|
| 总片段数(Episodes) | 79 |
| 总帧数 | 49743(约28分钟 @ 30 fps) |
| 单片段长度 | 464–1359帧(中位数574) |
| 相机 | 2 × 640×480 H264 |
| 状态/动作维度 | 43维 / 43维关节向量 |
| 划分(Split) | train 0:79 |
原始录制共80个片段,其中1个因状态/动作全程冻结或为截断的单帧录制而被剔除,剩余片段已连续重新编号。
两个分支版本
数据集提供两个分支,二者仅在灵巧手维度上存在差异,其余列完全一致:
| 分支 | 手部状态(维度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_handover_pointed_bread", revision="real_inspair")
状态/动作结构
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 反馈的采集),并非记录的ground truth,请按此描述而非实际真值。
视频数据
| 键名 | 内容 | 编码 |
|---|---|---|
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 列逐帧存储,无需额外标注文件:
| 列名 | 来源 | 内容 |
|---|---|---|
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_handover_pointed_bread", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
许可证
Apache-2.0



