RoboTwin 数据采集使用指南
发布时间:2025 年 10 月 5 日 00:00:00
一、数据采集概述
作为开源项目 RoboTwin 数据集的一部分,我们已提供超过 10 万条预先采集的轨迹数据。但由于任务和机器人实体设置具备高度可配置性与多样性,强烈建议用户自行进行数据采集。
运行指定命令后,系统将先为目标采集数量搜索随机种子,再通过复现该种子完成数据采集。
注意事项
- 开始数据采集前,请先查看「常见问题」章节。
- 强烈建议避免使用 A 系列、H 系列或 V 系列 GPU 进行数据采集和策略评估。
- 需重点关注常见问题 #3(数据采集与评估过程中卡住)。
二、数据采集命令
基础命令格式
bash collect_data.sh ${任务名称} ${任务配置} ${GPU编号}
示例命令
- 清洁数据采集示例:
bash collect_data.sh beat_block_hammer demo_clean 0 - 随机化数据采集示例:
bash collect_data.sh beat_block_hammer demo_randomized 0
三、数据存储与格式说明
数据采集完成后,所有数据将统一存储在 <data/${任务名称}/${任务配置}> 目录下,各文件 / 文件夹功能如下:
| 存储内容 | 格式 / 位置 | 说明 |
|---|---|---|
| 单条轨迹(episode)数据 | HDF5 文件 | 图像以比特流(bit stream)形式存储,需通过代码还原(见下方示例)。 |
| 观测与动作数据 | HDF5 文件(data 目录) |
每条轨迹的核心数据,包含观测信息与对应动作指令。 |
| 语言指令 | 文本文件(instructions 目录) |
每条轨迹对应的自然语言任务指令。 |
| 头部相机视频 | 视频文件(video 目录) |
采集过程中头部相机录制的实时视频。 |
| 辅助输出文件 | _traj_data、.cache 等 |
数据采集过程中生成的临时文件,用于记录种子、缓存中间结果等。 |
图像还原代码示例
若需从比特流格式还原图像,可使用以下 Python 代码:
import cv2
import numpy as np
# 从比特流还原图像
image = cv2.imdecode(np.frombuffer(image_bit, np.uint8), cv2.IMREAD_COLOR)
四、参数与配置说明
1. 核心参数定义
| 参数名称 | 参数标识 | 说明 |
|---|---|---|
| 任务名称 | task_name |
指定待采集数据的任务类型,所有可用任务名称可在官方文档中查询。 |
| GPU 编号 | gpu_id |
指定数据采集使用的 GPU 设备,取值范围为 0 到 N-1(N 为系统可用 GPU 总数)。 |
2. 配置逻辑
数据采集通过「任务专属配置文件」实现个性化设置(详细教程见 ./configurations.md),配置文件定义以下关键信息:
- 目标机器人实体型号
- 领域随机化开关与参数
- 待采集数据的样本数量
- 其他任务相关参数(如动作精度、观测频率等)
数据合成器会执行 envs 目录下的任务脚本,并结合 curobo 机器人规划器,完成自动化数据采集。
五、补充说明
-
机器人实体任务成功率所有任务中各机器人实体的数据生成成功率可通过以下链接查询:https://robotwin-platform.github.io/doc/tasks/index.html注:受机械臂结构限制,并非所有机器人实体都能完成所有任务。
-
数据采集流程细节流程分为两步:① 探索随机种子(存储于
seed.txt),筛选可成功采集的轨迹;② 根据有效种子记录细粒度动作轨迹(存储于_traj_data)。采集完成后,可在videos目录查看实时视频。 -
自动化特性整个数据采集过程完全自动化,仅需运行一条命令即可启动,无需手动干预中间步骤。
-
警告处理若不需要 3D 相关数据,可忽略 “missing pytorch3d”(pytorch3d 缺失)的警告信息,不影响核心数据采集功能。
文档作者:TianxingChen 更新时间:2025 年 10 月 5 日
更多推荐


所有评论(0)