Humanoid Everyday 是首个面向开放世界的人形机器人,大规模多模态数据集,
涵盖260个真实场景任务、超1万条演示轨迹与300万帧30Hz高频数据,覆盖基础操作、移动操作、人机交互等七大技能类别,
并独家配备触觉、深度、LiDAR、IMU等九种感知模态;

一、数据集核心内容
1.1 任务与数据规模
| 维度 | 详情 |
|---|---|
| 总任务数 | 260 个独特任务 |
| 任务类别 | 7 大类别(基础操作、移动操作、人机交互、关节物体操作、工具使用、可变形物体操作、高精度操作) |
| 每任务 Episode | 40 个演示片段 |
| 总轨迹数 | 10,300+ 条 |
| 总帧数 | 超过 300 万帧 |
| 采集频率 | 30 Hz |
| 数据总量 | ~500 GB(完整版约 1TB) |
1.2 任务类别分布
| 类别 | 主要任务示例 | 任务数量 |
|---|---|---|
| 基础操作 | 抓取放置、倾倒液体、推物体、拉物体、堆叠、旋转、开关操作 | 44+ |
| 移动操作 | 行走交互、行走抓取放置、行走清洁、行走搬运 | 29+ |
| 人机交互 | 递给人、从人接收、社交手势、持有并归还 | 12+ |
| 关节物体操作 | 翻转/铰链、按钮按压、抽屉与托盘、盖子、关门 | 11+ |
| 工具使用 | 清洁工具、冲击工具、除尘/橡皮擦、分配器 | 10+ |
| 可变形物体操作 | 折叠/展开、挤压/压缩、拉伸/翻转、抚平/调整 | 8+ |
| 高精度操作 | 精确放置、插入/取出、微按钮、精细堆叠 | 5+ |
1.3 硬件配置
| 组件 | G1 配置 | H1 配置 |
|---|---|---|
| 本体 | 29-DoF | 27-DoF |
| 手部 | Dex3-1 三指灵巧手(7-DoF × 2) | INSPIRE 六自由度手(6-DoF × 2) |
| 触觉传感 | ✓ 指尖压力传感器 | ✗ |
| 视觉 | Intel RealSense RGB-D | Intel RealSense RGB-D |
| 激光雷达 | Livox LiDAR | Livox LiDAR |
下面银色这款是 Unitree G1(三指灵巧手),黑色这款是 Unitree H1(五指灵巧手) :

遥操作接口
- 设备:Apple Vision Pro
- 手部映射:dex-retargeting 系统将手指关键点映射到机器人灵巧手
- 手臂控制:Pinocchio-based 逆运动学算法将手腕姿态转为关节指令
- 视觉反馈:机器人双目 IR 图像实时传输至 VR 头显
相机内参(RealSense D435)
| 参数 | H1 数值 | G1 数值 |
|---|---|---|
| fx | 392.03189 | 389.07278 |
| fy | 392.03189 | 389.07278 |
| cx | 320.19580 | 321.61887 |
| cy | 235.58174 | 238.43630 |
二、数据模态详解(9 种模态)
2.1 低维数据(状态与动作)
| 数据类型 | 维度 | 说明 |
|---|---|---|
| 手臂关节状态 | 14 | 左右肩 Pitch/Roll/Yaw、肘、腕 Roll/Pitch/Yaw |
| 腿部关节状态 | 13 (H1) / 15 (G1) | 髋 Yaw/Roll/Pitch、膝、踝、踝 Roll,G1 额外含腰部 Roll/Pitch |
| 手部关节状态 | 12 (H1) / 14 (G1) | H1: INSPIRE 手 6-DoF×2;G1: Dex3-1 三指灵巧手 7-DoF×2 |
| 手部压力传感 | 18 (G1) | 每手 9 个传感器(仅 G1) |
| IMU 数据 | 4+3+3+3 | 四元数、加速度计、陀螺仪、RPY |
| 里程计 | 3+3+3+4 | 位置、速度、RPY、四元数 |
| 遥操作动作 | 14+ | 逆运动学解算后的关节目标角度、前馈力矩、头部旋转矩阵、左右手位姿 |
2.2 高维感知数据
| 数据类型 | 格式 | 分辨率/规模 | 文件格式 |
|---|---|---|---|
| RGB 图像 | uint8 | 480×640×3 | PNG |
| 深度图 | uint16 | 480×640 | PNG |
| LiDAR 点云 | float64 | ~6000 点/帧 | PCD |
三、数据下载方式
3.1 下载渠道
| 来源 | 链接 | 内容 |
|---|---|---|
| HuggingFace | USC-PSI-Lab/humanoid-everyday | 完整数据集(~1TB LeRobot 格式) |
| 任务表格 | Google Spreadsheet | 按任务分类下载 |
| Lite 版本 | HuggingFace 子集 | 仅状态与动作数据(轻量版) |
其中,按任务分类下载,有具体的任务类别划分,如下图所示:

点击链接后,会进行下载zip,比如:flip_open_a_diary_g1.zip
3.2 两种数据格式对比
| 格式 | 大小 | 适用场景 | 内容 |
|---|---|---|---|
| LeRobot 格式 | ~1TB | 完整训练、视觉策略 | 包含所有模态(RGB、Depth、LiDAR、状态、动作) |
| Lite 格式 | ~GB 级 | 快速实验、状态-only 策略 | 仅关节状态与动作数据 |
3.3 快速训练VLA数据(Lite 格式)
如果只需要所有轨迹的状态和动作,而不需要其他模态,则可以使用的精简版数据集
H1:https://huggingface.co/datasets/USC-PSI-Lab/Humanoid-Everyday-H1
G1:https://huggingface.co/datasets/USC-PSI-Lab/Humanoid-Everyday-G1

四、数据组织结构
4.1 原始数据目录结构(LeRobot 格式)
bash
<task_name>/ # 任务名称,如 push_a_button
├── episode_0/ # 第 0 个演示片段
│ ├── data.json # 低维传感器数据 + 文件路径索引
│ ├── color/ # RGB 图像序列
│ │ ├── 00000.png
│ │ ├── 00001.png
│ │ └── ...
│ ├── depth/ # 深度图序列
│ │ ├── 00000.png
│ │ └── ...
│ └── lidar/ # LiDAR 点云序列
│ ├── 00000.pcd
│ └── ...
├── episode_1/
│ └── ...
└── ...
4.2 data.json 字段结构
json
{
"time": 1234567890.123, // UNIX 时间戳(秒)
"robot_type": "G1", // 机器人类型:G1 或 H1
"states": {
"arm_state": [14 floats], // 手臂关节角度
"leg_state": [13/15 floats], // 腿部关节角度
"hand_state": [12/14 floats], // 手部关节角度
"hand_pressure_state": [...], // 压力传感器数据(G1)
"imu": {
"quaternion": [w,x,y,z],
"accelerometer": [ax,ay,az],
"gyroscope": [gx,gy,gz],
"rpy": [roll,pitch,yaw]
},
"odometry": {
"position": [x,y,z],
"velocity": [vx,vy,vz],
"rpy": [roll,pitch,yaw],
"quat": [w,x,y,z]
}
},
"actions": {
"right_angles": [7 floats], // 右手目标角度
"left_angles": [7 floats], // 左手目标角度
"sol_q": [14 floats], // IK 解算关节角度
"tau_ff": [14 floats], // 前馈力矩
"head_rmat": [3x3], // 头部旋转矩阵
"left_pose": [4x4], // 左手齐次变换矩阵
"right_pose": [4x4] // 右手齐次变换矩阵
},
"image": "color/00000.png", // RGB 图像相对路径
"depth": "depth/00000.png", // 深度图相对路径
"lidar": "lidar/00000.pcd" // 点云相对路径
}
五、快速使用指南
5.1 安装 DataLoader
bash
git clone https://github.com/physical-superintelligence-lab/Humanoid-Everyday
cd Humanoid-Everyday
pip install -e .
5.2 基础使用示例
python
from humanoid_everyday import Dataloader
import numpy as np
# 加载数据集(支持 .zip 或解压后的目录)
ds = Dataloader("~/Downloads/push_a_button.zip")
print(f"数据集总 Episode 数: {len(ds)}")
# 遍历数据
for episode_idx, episode in enumerate(ds):
for step_idx, timestep in enumerate(episode):
# 获取状态
arm_state = timestep["states"]["arm_state"] # (14,)
hand_state = timestep["states"]["hand_state"] # (14,) for G1
imu = timestep["states"]["imu"]
# 获取动作
arm_actions = timestep["actions"]["sol_q"] # (14,)
# 获取图像
rgb_image = timestep["image"] # (480, 640, 3)
depth_map = timestep["depth"] # (480, 640)
lidar_points = timestep["lidar"] # (~6000, 3)
# 批量加载
batch = episode[0:4] # 加载第 0-3 帧
5.3 数据可视化
python
# 显示 RGB 图像
ds.display_image(episode_idx=0, step_idx=1)
# 显示深度点云(RGB-D 融合)
ds.display_depth_point_cloud(episode_idx=0, step_idx=1)
# 显示 LiDAR 点云
ds.display_lidar_point_cloud(episode_idx=0, step_idx=1)
5.4 H1 手部数据处理
H1 使用 INSPIRE 灵巧手,需要后处理转换:
python
if robot_type == "H1":
left_qpos = timestep["actions"]["left_angles"]
right_qpos = timestep["actions"]["right_angles"]
# 转换为实际关节角度
right_hand_angles = [1.7 - right_qpos[i] for i in [4, 6, 2, 0]]
right_hand_angles.append(1.2 - right_qpos[8])
right_hand_angles.append(0.5 - right_qpos[9])
left_hand_angles = [1.7 - left_qpos[i] for i in [4, 6, 2, 0]]
left_hand_angles.append(1.2 - left_qpos[8])
left_hand_angles.append(0.5 - left_qpos[9])
hand_actions = left_hand_angles + right_hand_angles # 12-dim
else:
# G1 直接使用
hand_actions = (timestep["actions"]["left_angles"] +
timestep["actions"]["right_angles"]) # 14-dim
六、转换为 LeRobot 格式
如需自行转换原始数据为 LeRobot 格式:
bash
# 将解压后的数据按以下结构组织:
# <dataset_name>/
# ├── <task_category>/
# │ ├── <task_name>/
# │ │ ├── episode_0/
# │ │ └── ...
python scripts/he2lerobot.py --dataset_path <dataset_name>
相关文章推荐:
《VLA 系列》分析 Ψ₀ | Psi0 | 通用人形机器人 | 移动 + 操作
《VLA 系列》复现 Ψ₀ | Psi0 | 通用人形机器人 | 移动操作模型
《VLA 系列》π0.5 | 流匹配 | 分层推理 | VLA
《VLA 系列》复现 π0.5 | 数据采集 | 模型微调 | DROID
《VLA 系列》复现 π0.5、π0-FAST、π0 | 环境搭建 | 模型推理
《VLA 系列》π0 | 流匹配 | 开山之作 | VLA
【VLA 系列】 πRL | 在线强化学习 | 流匹配 | VLA
分享完成~