wb_gaze_tool_handover2
收藏资源简介:
来自Unitree_G1_WholeBody_RGB机器人的全身遥操作数据集,以LeRobot v2.1格式发布。任务:从工具桌上拿起人类注视的工具并将其递给人类。数据集包含42个片段,共18715帧(约10分钟,30fps),配备2个640×480 H264摄像头,状态/动作为43维关节向量。提供两个分支:main分支(手部状态全为零)和real_inspair分支(包含Inspire手部估计状态与二进制触发动作)。还包含人体姿态和手部关键点注释(MediaPipe Hands和RTMO)。
数据集概述
wb_gaze_tool_handover2 是一个面向机器人操作任务的全身遥操作数据集,数据采集自 Unitree G1 人形机器人(RGB 版本),以 LeRobot v2.1 格式发布。数据集的任务是:机器人拿起人类注视的工具桌上的工具,并将其递给人类。
基本信息
| 项目 | 内容 |
|---|---|
| 许可证 | Apache-2.0 |
| 任务类别 | 机器人学(robotics) |
| 语言 | 英文 |
| 样本规模 | 10K < n < 100K |
| 数据集分支 | main(默认)、real_inspair |
数据规模与组成
- 回合数(Episodes):42
- 总帧数:18,715(约10分钟 @ 30 fps)
- 回合长度:328–638帧(中位数432帧)
- 相机:2 × 640×480 H.264 视频
- 状态/动作维度:均为43维关节向量
- 划分:训练集
0:42(全部数据)
两种分支(关键说明)
数据集提供两个分支,区别仅在于灵巧手维度,其余列(身体关节、时间戳、索引等)完全一致:
| 分支 | 手部状态(22–28 / 36–42维) | 手部动作 | 适用场景 |
|---|---|---|---|
main |
全零(未记录) | 原始 Dex3 遥操作向量(含负值) | 仅需身体/运动控制 |
real_inspair |
Inspire 估计值(0.50–1.00) | Inspire 原生指令(0.50–1.00),末位为二进制开合触发 | 涉及手部相关任务 |
若训练抓取类任务,必须使用
real_inspair分支;main分支的手部状态列全为零,模型无法从中学习任何手部信息。手部状态为估计/迁移数据(来自旧采集系统的 Inspire 反馈),并非直接记录的真值。
数据模式(Schema)
observation.state 和 action 均为43维,顺序如下:
| 维度范围 | 部位 | 关节详情 |
|---|---|---|
| 0–11 | 腿部(左右) | hip_pitch, hip_roll, hip_yaw, knee, ankle_pitch, ankle_roll |
| 12–14 | 腰部 | yaw, roll, pitch |
| 15–21 | 左臂 | shoulder_pitch/roll/yaw, elbow, wrist_roll/pitch/yaw |
| 22–28 | 左手 | index_0, index_1, middle_0, middle_1, thumb_0, thumb_1, thumb_2 |
| 29–35 | 右臂 | shoulder_pitch/roll/yaw, elbow, wrist_roll/pitch/yaw |
| 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)。
视频数据
| 视频键 | 内容 | 编码 |
|---|---|---|
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_gaze_tool_handover2", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
版本说明:数据集以 v2.1 布局发布(每回合一个 parquet 和一个视频片段),可直接在旧版 lerobot 中加载;在 v3.0+ 上需先运行官方升级命令:
python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_gaze_tool_handover2
许可证
Apache-2.0



