正视图(全局视角) |
侧视图(轮廓视角) |
俯视图(鸟瞰视角) |
自我中心视角(机器人视角) |
| Unitree G1 执行抓取放置任务的多视角展示。 | |
为帮助理解原始深度值,此处提供归一化深度图像(为视觉清晰度)与其对应的 RGB 帧的并排对比。
归一化深度图像 (用于可视化) |
对应 RGB 图像 (来自 `rs_view` 相机) |
| 样本深度帧(归一化至 0-255 以进行灰度可视化)及其同步的 RGB 对应帧。 | |
Unitree G1 苹果抓取与放置深度数据集包含963 条高质量轨迹,每条轨迹均带有逐帧深度图像,适用于 RGB-D 操作研究。机器人使用双臂和三指手将红苹果从初始位置抓取并放入碗中。所有轨迹均包含来自头戴式相机的同步深度测量数据。
主要特点:
本数据集扩展了基础数据集,增加了深度感知能力,适用于 RGB-D 操作和 3D 场景理解研究。
数据可用性说明: 为在存储限制内保持可访问性,此处托管的深度数据是包含10 个样本片段的子集。这允许用户验证数据结构和质量。包含所有 963 条轨迹深度图的完整数据集已单独存档。如果您需要完整数据集用于大规模模型训练,请参阅下文的联系方式部分。
Junsung Park(@jnsungp)
知识共享署名 4.0 国际许可协议(CC BY 4.0)
| 模态 | 类型 | 形状 | 描述 |
|---|---|---|---|
| 观测状态 | float32 | (28,) | 手臂 + 手部的关节位置(弧度) |
| 观测深度 | float32 | (256, 256) | 来自 rs_view 相机的深度图像(米) |
| 动作 | float32 | (28,) | 目标关节位置 |
| 视频 | RGB | (256, 256, 3) | 第一视角,20 FPS,H.264 编码 |
| 语言 | string | - | "Pick up the red apple and place it on the bowl" |
从机器人头戴式相机捕获的深度测量数据:
| 属性 | 值 | 描述 |
|---|---|---|
| 分辨率 | 256 × 256 | 像素宽度 × 高度 |
| 数据类型 | float32 | 32 位浮点数 |
| 单位 | 米(m) | 从相机到表面的距离 |
| 相机 | rs_view | 头戴式 RGB-D 相机 |
| 格式 | .npy | NumPy 二进制格式 |
| 范围 | ~0.3m 至 5.0m | 场景中的典型深度范围 |
加载深度数据:
import numpy as np
# Load single depth frame
depth = np.load("depth/chunk-000/episode_000000/frame_000050.npy")
print(depth.shape) # (256, 256)
print(f"Min depth: {depth.min():.2f}m, Max depth: {depth.max():.2f}m")路径模板:
depth/chunk-{episode_chunk:03d}/episode_{episode_index:06d}/frame_{frame_index:06d}.npy| 身体部位 | 自由度 | 说明 |
|---|---|---|
| 左臂 | 7 | 肩部(3)+ 肘部(1)+ 腕部(3) |
| 右臂 | 7 | 肩部(3)+ 肘部(1)+ 腕部(3) |
| 左手 | 7 | 食指(2)+ 中指(2)+ 拇指(3) |
| 右手 | 7 | 食指(2)+ 中指(2)+ 拇指(3) |
huggingface-cli download \
--repo-type dataset jnsungp/unitree-g1-robocasa-pick-apple-bowl-depth-1k \
--local-dir ./datasets/g1-depthfrom datasets import load_dataset
dataset = load_dataset("jnsungp/unitree-g1-robocasa-pick-apple-bowl-depth-1k")dataset_depth_1k/
├── data/
│ └── chunk-000/
│ ├── episode_000000.parquet
│ ├── episode_000001.parquet
│ └── ...
├── videos/
│ └── chunk-000/
│ └── observation.images.ego_view/
│ ├── episode_000000.mp4
│ ├── episode_000001.mp4
│ └── ...
├── depth/
│ └── chunk-000/
│ ├── episode_000000/
│ │ ├── frame_000000.npy
│ │ ├── frame_000001.npy
│ │ └── ...
│ ├── episode_000001/
│ └── ...
├── meta/
│ ├── info.json # Dataset metadata
│ ├── stats.json # Statistics (mean, std, min, max)
│ ├── tasks.jsonl # Task descriptions
│ └── episodes.jsonl # Episode information
└── README.mdimport pandas as pd
import numpy as np
import cv2
import matplotlib.pyplot as plt
# Load trajectory data
df = pd.read_parquet("data/chunk-000/episode_000000.parquet")
# Access data
observations = df['observation.state'].values # (N, 28) - joint positions
actions = df['action'].values # (N, 28) - target positions
# Load RGB video
cap = cv2.VideoCapture("videos/chunk-000/observation.images.ego_view/episode_000000.mp4")
# Load depth images
episode_idx = 0
frame_idx = 100
depth = np.load(f"depth/chunk-000/episode_{episode_idx:06d}/frame_{frame_idx:06d}.npy")
# Visualize depth
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(depth, cmap='turbo')
plt.colorbar(label='Depth (m)')
plt.title('Depth Image')
plt.subplot(1, 2, 2)
# Read corresponding RGB frame
cap.set(cv2.CAP_PROP_POS_FRAMES, frame_idx)
ret, rgb = cap.read()
plt.imshow(cv2.cvtColor(rgb, cv2.COLOR_BGR2RGB))
plt.title('RGB Image')
plt.show()
cap.release()训练利用深度信息的策略,以实现:
仿真:
运动规划:
深度传感:
rs_view)| 特征 | 基础数据集 | 深度数据集 |
|---|---|---|
| 轨迹 | 957 | 963 |
| 关节状态 | ✓ (28D) | ✓ (28D) |
| RGB 视频 | ✓ | ✓ |
| 深度图像 | ✗ | ✓ (256×256) |
| 应用场景 | 基于视觉的操作 | RGB-D 3D 操作 |
@dataset{park2025unitree_g1_depth,
title={Unitree G1 Apple Pick and Place with Depth Dataset},
author={Park, Junsung},
year={2025},
publisher={Hugging Face},
url={https://huggingface.co/datasets/jnsungp/unitree-g1-robocasa-pick-apple-bowl-depth-1k}
}本项目基于 CuRobo、RoboCasa、MuJoCo 以及 Unitree G1 构建。
版本: 1.0 | 最后更新: 2025年11月19日
如有问题、遇到问题,或希望获取完整深度数据集(963个片段):
申请完整数据集时,请注明您的所属机构。