wb_add_cloth_to_basket
收藏资源简介:
来自Unitree G1人形机器人的全身遥操作数据集,任务是将衣服从椅背上取下并放入篮子中。数据集包含40个episodes,共33430帧(约19分钟,30fps),使用LeRobot v2.1格式存储。每个episode包含一个parquet文件和对应的视频片段。数据集提供两个分支:main分支中手部状态全为零,适用于仅需身体/运动控制的任务;real_inspair分支包含Inspire手部估计数据,适用于需要手部相关信息的任务。状态和动作均为43维向量,顺序为:腿部(0-11)、腰部(12-14)、左臂(15-21)、左手(22-28)、右臂(29-35)、右手(36-42)。视频包含多个摄像头视角:cam_chest(胸部摄像头,原始视图、手部关键点叠加、身体骨架叠加)和cam_head(头部摄像头,同样三种视图),所有视频均为H.264编码。此外,数据集还提供每帧的手部和身体姿态注释,包括MediaPipe Hands检测的手部关键点和RTMO检测的身体关键点。
A whole-body teleoperation dataset from the Unitree G1 humanoid robot, for the task of removing clothes from a chair backrest and placing them into a basket. The dataset contains 40 episodes with 33,430 frames (approximately 19 minutes at 30fps), stored in LeRobot v2.1 format. Each episode includes a parquet file and corresponding video clips. Two branches are provided: the main branch has all hand states set to zero, suitable for tasks requiring only body/motion control; the real_inspair branch includes Inspire hand estimation data, suitable for tasks requiring hand-related information. Both state and action are 43-dimensional vectors in the order: legs (0-11), waist (12-14), left arm (15-21), left hand (22-28), right arm (29-35), right hand (36-42). Videos include multiple camera views: cam_chest (chest camera with raw view, hand keypoint overlay, body skeleton overlay) and cam_head (head camera with the same three views), all encoded in H.264. Additionally, the dataset provides per-frame hand and body pose annotations, including hand keypoints detected by MediaPipe Hands and body keypoints detected by RTMO.
wb_add_cloth_to_basket 数据集详情
基本信息
- 数据集名称: wb_add_cloth_to_basket
- 许可证: Apache-2.0
- 任务类别: 机器人(robotics)
- 语言: 英语
- 标签: LeRobot、机器人、人形机器人、宇树G1、全身控制、遥操作、Inspire手、姿态估计
- 数据集规模: 10K < N < 100K
- 格式: LeRobot v2.1格式(每集一个parquet文件和一个视频片段)
任务描述
将衣物从椅背上取下并放入篮中。
数据规模概览
| 项目 | 数值 |
|---|---|
| 片段数(Episodes) | 40 |
| 总帧数(Frames) | 33,430帧(19分钟,30fps) |
| 片段长度 | 633-1066帧(中位数816帧) |
| 相机 | 2个640×480 H264摄像头 |
| 状态/动作维度 | 43维 / 43维关节向量 |
| 训练集划分 | train 0:40 |
两个分支版本
数据集提供两个分支,仅在灵巧手维度上存在差异:
| 分支 | 手部状态(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:腿部(左右腿的髋关节俯仰/横滚/偏航、膝关节、踝关节俯仰/横滚)
- 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保持零填充。动作侧相同槽位承载原生指令,最后一个槽位为二进制触发器。
视频数据
| 键名 | 内容 | 编码 |
|---|---|---|
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 |
所有视频均为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_add_cloth_to_basket", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
版本兼容性
- 数据集以 v2.1 布局发布,可直接在旧版
lerobot上加载。 - 在
lerobotv3.0+ 上,需先运行官方升级命令:
python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_add_cloth_to_basket
注意事项
real_inspair分支中的手部状态为估计值,是从记录了Inspire反馈的采集数据中迁移而来——旧采集设备没有手部感应。应将其描述为估计/迁移的Inspire手部状态,而非记录的真实值。



