wb_pointed_location_pick_object
收藏资源简介:
来自Unitree_G1_WholeBody_RGB机器人的全身遥操作数据集,任务为:走到人类指向的位置并拿起目标物体。数据集包含56个episodes,共46703帧(约26分钟@30fps),每帧包含43维状态和动作向量,以及两个摄像头(640×480 H264)的视频。提供两个分支:main(手部状态全零)和real_inspair(包含Inspire手部估计和命令),用于不同训练需求。
A whole-body teleoperation dataset from the Unitree_G1_WholeBody_RGB robot, with the task: walk to the location pointed by a human and pick up the target object. The dataset contains 56 episodes, totaling 46,703 frames (approximately 26 minutes at 30fps). Each frame includes a 43-dimensional state and action vector, and videos from two cameras (640×480 H264). Two branches are provided: main (hand states all zero) and real_inspair (including Inspire hand estimation and commands), for different training needs.
wb_pointed_location_pick_object 数据集概述
数据集基本信息
- 许可证:Apache-2.0
- 任务类型:机器人学(robotics)
- 语言:英语
- 标签:LeRobot、机器人、人形机器人、宇树G1、全身控制、遥操作、Inspire灵巧手、姿态估计
- 数据规模:10K < 样本数 < 100K
数据规模与统计
| 指标 | 数值 |
|---|---|
| 采集回合数(Episodes) | 56(原始57个,剔除1个异常) |
| 总帧数 | 46,703帧(约26分钟@30fps) |
| 单回合帧数范围 | 608–1,605帧(中位数745) |
| 摄像头 | 2个640×480 H264摄像头 |
| 状态/动作维度 | 43维 / 43维关节向量 |
| 数据划分 | 训练集 0:56 |
任务描述
"前往人类指示的位置并拾取目标物体"(go to the place pointed by the human and pick up the target object)
版本分支
数据集提供两个分支,仅灵巧手维度不同,其余列(身体关节、时间戳、索引)完全一致:
| 分支 | 手部状态(维度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:腿部(左/右髋关节pitch/roll/yaw、膝关节、踝关节pitch/roll)
- 12–14:腰部(yaw、roll、pitch)
- 15–21:左臂(肩关节pitch/roll/yaw、肘关节、腕关节roll/pitch/yaw)
- 22–28:左手(index_0, index_1, middle_0, middle_1, thumb_0, thumb_1, thumb_2)
- 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列形式随帧存储,无独立标注文件:
| 列名 | 来源 | 内容 |
|---|---|---|
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_pointed_location_pick_object", revision="real_inspair") print(ds.meta.features.keys()) sample = ds[0]
其他说明
-
数据以LeRobot v2.1 格式发布(每回合一个parquet和一个视频剪辑),可直接在旧版
lerobot上加载。 -
在
lerobotv3.0+ 上需先运行官方升级命令:python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=DaoyuanZhu/wb_pointed_location_pick_object
-
real_inspair分支的手部状态为估计值(从记录Inspire反馈的采集传输而来),应描述为估计/传输的Inspire手部状态,而非记录的地面真值。



