wb_handover_pointed_hanging_black_clothes
收藏资源简介:
这是一个来自Unitree G1人形机器人全身遥操作的数据集,采用LeRobot v2.1格式发布。任务是人类指向衣架上的黑色衣物,机器人需要将其取下并递交给人类。数据集包含82个episodes,总计42724帧(约24分钟,30fps),每个episode长度在376到1018帧之间(中位数495帧)。配备两个640×480的H.264摄像头(cam_chest和cam_head),并提供了手部MediaPipe和身体RTMO姿态标注。状态和动作均为43维的关节向量,包括腿部、腰部、手臂和灵巧手。该数据集有两个分支:main分支(灵巧手状态全零)和real_inspair分支(包含Inspire灵巧手的估计状态和命令)。数据集适合用于全身控制、灵巧操作和遥操作研究。
数据集概述
该数据集是一个用于机器人全身遥操作控制的具身智能数据集,由 Unitree_G1_WholeBody_RGB 人形机器人采集,以 LeRobot v2.1 格式发布,任务为“取下人类指向的衣架上的衣物并递交给人类”。
基本信息
| 项目 | 内容 |
|---|---|
| 许可协议 | Apache-2.0 |
| 任务类别 | 机器人学(robotics) |
| 语言 | 英语 |
| 规模 | 10K–100K 帧 |
| Episodes | 82 |
| 总帧数 | 42,724(约 24 分钟 @ 30fps) |
| 单集长度 | 376–1018 帧(中位数 495) |
| 相机 | 2 × 640×480,H.264 编码 |
| 状态/动作维度 | 43-D / 43-D 关节向量 |
| 数据划分 | 训练集 0:82(全部) |
分支说明
数据集提供两个分支,仅在灵巧手维度上存在差异,其余列(身体关节、时间戳、索引)完全一致:
| 分支 | 手部状态(维度 22–28 / 36–42) | 手部动作 | 适用场景 |
|---|---|---|---|
main |
全零(从未记录) | 原始 Dex3 遥操作向量(含负值) | 仅需身体/运动控制 |
real_inspair |
Inspire 估计值(0.50–1.00) | Inspire 原生指令(0.50–1.00),最后一槽位为二值开/关触发 | 需要任何手部相关功能 |
若训练抓取任务,请使用 real_inspair 分支,因为 main 分支手部状态列均为零,模型将无法从中学习任何信息。
数据模式
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:左手(index_0/1、middle_0/1、thumb_0/1/2)
- 29–35:右臂
- 36–42:右手
在 real_inspair 中,Inspire 手部报告 6 维估计值:槽位 22–27 / 36–41 携带数值,槽位 28 / 42 保持零填充。动作侧同槽位携带原生指令,最后一槽位为二值触发(0.0/1.0)。
注意:real_inspair 的手部状态为估计/转写数据(来自曾记录 Inspire 反馈的采集),并非实测真值,应描述为“估计/转写的 Inspire 手部状态”。
视频内容
| 视频键 | 内容 | 编码 |
|---|---|---|
cam_chest |
胸部相机原始画面 | h264 |
cam_chest_hand_overlay |
胸部相机 + MediaPipe 手部关键点叠加 | h264 |
cam_chest_pose_overlay |
胸部相机 + RTMO 人体骨架叠加 | h264 |
cam_head |
头部相机原始画面 | h264 |
cam_head_hand_overlay |
头部相机 + MediaPipe 手部关键点叠加 | h264 |
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。
标注过滤流程
- 人体检测:按 episode 后处理,包括分数阈值、基于边界框包含关系(而非单纯 IoU)的重复抑制、片段合并、基于饱和度掩膜躯干色调直方图的运动轨迹片段的单身份锁定。时间上重叠的轨迹片段永不合并(共视检测不可能为同一人)。
- 手部候选:锚定于中心人物手腕,若检测点距离手腕超过半个肩宽则被拒绝,可排除手持道具的干扰。
数据布局
data/chunk-000/episode_000000.parquet 每个 episode 一个 parquet videos/chunk-000/<video_key>/episode_000000.mp4 每个 episode 一个视频片段 meta/info.json 特征模式 meta/episodes.jsonl episode 索引和长度 meta/tasks.jsonl 任务字符串 meta/stats.json 逐特征统计
加载方式
python from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset("DaoyuanZhu/wb_handover_pointed_hanging_black_clothes", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
对于 LeRobot v2.1 格式,若在 v3.0+ 上使用,需先运行官方升级命令:
python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_handover_pointed_hanging_black_clothes
许可
Apache-2.0。



