Fourier ActionNet 数据集
数据主要来自两个来源:机器人端 和 摄像头端。HDF5 文件包含机器人端的数据,而摄像头端的数据存储在对应的 episode 文件夹中。数据集中还包含一个 metadata.json 文件,记录了所有 episode 的 ID 及其对应的提示信息。
下载数据集
首先,你可以在线下载数据集(以 .tar 文件形式提供)。下载后,使用以下命令解压所有文件:
find . -type f -name "*.tar" | xargs -I {} tar -xf {}
解压后,数据集的目录结构如下:
├── 01JH00FCRH6EIBDXTA # episode id
│ └── top
│ ├── depth.mkv # z16 depth video encoded in mkv format
│ ├── rgb.mp4 # h264 rgb video
│ └── timestamps.json
├── 01JH00FCRH6EIBDXTA.hdf5
├── 01JH00FRJ5YISEASEL
│ └── top
│ ├── depth.mkv
│ ├── rgb.mp4
│ └── timestamps.json
├── 01JH00FRJ5YISEASEL.hdf5
├── Metadata.json # metadata of the task, including prompt and all episodes id of the task
...
数据查看器
我们提供了一个简单的数据查看器,用于可视化数据。
首先,你需要安装依赖,有两种方式:
# Install dependencies
pip install -r requirements.txt
# Install with optional dependencies in the main package
pip install -e .[fourier_viz]
安装依赖后,你可以启动数据查看器。使用以下命令来运行:
# Usage with help message:
python scripts/fourier_viz.py -h
# Example usage:
python scripts/fourier_viz.py -d DATASET_PATH -e EPISODE_ID
数据准备
由于我们的训练流程依赖于 LeRobotDatasetV2 格式,你可以使用以下命令将数据集轻松转换为该格式。我们希望我们的数据集能助力令人振奋的人形机器人时代。
python scripts/convert_to_lerobot_v2.py --raw-dir DATASET_PATH --repo-id FourierIntelligence/ActionNet
数据结构
机器人端的数据在每个 episode 中存储为一个 HDF5 文件。以下展示了单个 episode 的 HDF5 文件结构。 HDF5 文件结构
01JH00FCRH6EIBDXTA.hdf5
├── action # Robot action data
│ ├── hand [12,x] or [24,x] # Dexhand data with Fourier hand
│ ├── pose [27,x] # End link data
│ └── robot [32 or 29] # All joint data in humanoids.
├── state # Robot state data
│ ├── hand [12,x] or [24,x]
│ ├── pose [27,x]
│ └── robot [32 or 29]
├── timestamp # Timestamp for both state and action
└── attributes # HDF5 attributes
Metadata.json(元数据文件)
metadata.json
{
{
"id": "01JH00FCRH6EIBDXTA",
"prompt": "Pick the lemon and put it in the box.",
}
...
}
数据说明
机器人端数据(hdf5)
机器人端数据主要分为三类:机器人状态(state)、机器人动作(action) 和 时间戳(timestamp)。每类数据都包含与机器人操作相关的具体内容。值得注意的是,状态和动作数据的结构类似。以下是详细说明:
- 手部数据(Hand Data): 数据包含 (12, x) 或 (24, x) 维度。对于 6 自由度(DOF)的 Fourier 手,包含 12 个数据点(左手 6 个,右手 6 个);对于 12 自由度的手,则包含 24 个数据点(每只手 12 个)。
- 位姿数据(Pose Data): 数据维度为 (27, x),包括双臂及头部的末端位姿信息。在我们的数据集中,旋转矩阵的前两列 表示姿态数据,位置向量 表示位置数据。因此每个末端(左臂、右臂、头部)共有 9 个数据点。
- 机器人数据(Robot Data): 包含机器人的关节位置数据。对于 GR1-T1 和 GR1-T2 机器人,共有 32 个数据点;对于 GR2 机器人,共有 29 个数据点,覆盖了所有关节位置。
摄像头端数据(rgb 与 depth)
摄像头端的数据存储在每个 episode 对应的文件夹中,格式如下:
- rgb.mp4: 包含使用 H264 编码的 RGB 视频。
- depth.mkv: 包含使用 Z16 编码的深度视频。
- timestamps.json: 包含每帧的时间戳信息,用于同步摄像头与机器人数据。
注意:在原始数据集中,所有状态与动作数据已根据同一 hdf5 内的时间戳对齐,因此共享同一个时间戳数组。对于摄像头端数据,在运行转换脚本后会与机器人端数据对齐。
更多详细介绍请参考 Fourier ActionNet 数据集