my_roboTwin2.0_training
收藏资源简介:
RoboTwin 2.0 是一个用于模拟双臂操作的可扩展基准数据集,专注于覆盖控制消融研究。该数据集通过 RoboTwin 2.0 仿真环境生成,模拟了双机械臂(AgileX / ALOHA 风格机器人)的协作操作,并导出为 LeRobot v2.1 格式。数据集的目的是支持预训练/微调范式的域覆盖消融实验,包含五个预训练变体(pre_full、pre_none、pre_bg、pre_dt、pre_wa)和两个小规模的下游目标任务(narrow_place_container_plate、narrow_move_pillbottle_pad)。所有变体共享相同的任务(place_a2b_right)、机器人、控制器和 episode 预算,仅在三个随机化轴(背景纹理、干扰物类别、工作区域范围)上有所不同。每个预训练变体包含 250 个 episode(约 37,000 帧),每个下游目标任务包含 50 个 episode(约 7,300 帧)。数据以 30 fps 录制,包含两个摄像头视角(head 和 right_wrist)的 320x240 图像。动作空间为 14 维末端执行器 delta(包括左臂和右臂的平移、旋转和夹爪开合),状态空间为 20 维绝对位姿(左臂和右臂的位置、6D 旋转表示和夹爪开合)。语言标注以整数索引形式存储,每个帧的标注会循环遍历该 episode 中所有可能的自然语言描述。重要注意事项:本数据集中仅右臂执行运动,左臂动作维度恒定为零,且夹爪始终为 1.0;积分 delta 动作时应基于上次命令的位姿,而不是观测位姿。该数据集适用于模仿学习、多任务学习、域随机化等机器人操作研究。
RoboTwin 2.0 is a scalable benchmark dataset for simulated dual-arm manipulation, focusing on coverage control ablation studies. The dataset is generated by the RoboTwin 2.0 simulation environment, simulating collaborative operations of dual robotic arms (AgileX / ALOHA-style robots) and exported in LeRobot v2.1 format. The dataset aims to support domain coverage ablation experiments under the pretraining/finetuning paradigm, including five pretraining variants (pre_full, pre_none, pre_bg, pre_dt, pre_wa) and two small-scale downstream tasks (narrow_place_container_plate, narrow_move_pillbottle_pad). All variants share the same task (place_a2b_right), robot, controller, and episode budget, differing only in three randomization axes (background texture, distractor category, workspace range). Each pretraining variant contains 250 episodes (~37,000 frames), and each downstream task contains 50 episodes (~7,300 frames). Data is recorded at 30 fps with 320x240 images from two camera views (head and right_wrist). The action space is 14-dimensional end-effector delta (including translation, rotation, and gripper open/close for both arms), and the state space is 20-dimensional absolute pose (position, 6D rotation representation, and gripper open/close for both arms). Language annotations are stored as integer indices, with each frames annotation cycling through all possible natural language descriptions for that episode. Important notes: Only the right arm executes motion in this dataset; the left arm action dimensions are constant zero, and the gripper is always 1.0; delta actions should be integrated based on the last commanded pose, not the observed pose. This dataset is suitable for imitation learning, multi-task learning, domain randomization, and other robot manipulation research.
RoboTwin 2.0 覆盖控制训练数据集
数据集概述
本数据集包含在 RoboTwin 2.0 模拟环境中采集的双臂操作演示数据,以 LeRobot v2.1 格式导出。该数据集专为协同训练/域覆盖消融实验设计,包含五个仅在场景生成器的视觉与空间变化程度上有差异的预训练数据集,以及两个用于微调和评估的小规模下游目标任务数据集。
RoboTwin 2.0 是一个面向双臂操作(采用双机械臂 AgileX / ALOHA 风格机器人)的可扩展模拟基准。其域随机化流程可程序化地更换场景背景、添加干扰物体、扰动物体放置位置,并为每个任务生成多种自然语言描述——这些正是本数据集中被调节的因素。
收集代码:https://github.com/Shua-Kang/my_roboTwin2.0
随机化轴设置
每个预训练变体均基于相同任务(place_a2b_right)、相同机器人、相同控制器及相同片段预算。仅沿三个维度变化:
| 变体 | 背景纹理数 | 干扰物类别数 | 工作区域(物体x轴) |
|---|---|---|---|
pre_full |
100 | 10 | 全范围 |
pre_none |
1(无) | 0 | x固定 |
pre_bg |
100 | 0 | x固定 |
pre_dt |
1(无) | 10 | x固定 |
pre_wa |
1(无) | 0 | 全范围 |
pre_full 启用全部三个维度,pre_none 全部关闭,其余三个单轴变体各自隔离一个维度(BG=背景,DT=干扰物,WA=工作区域)。
实际发布数据计量结果
以下为实际数据测量值,并非配置值:
| 计量项 | pre_full | pre_none | pre_bg | pre_dt | pre_wa |
|---|---|---|---|---|---|
| 不同背景纹理数 | 100 | 0 | 99 | 0 | 0 |
| 不同干扰物类别数 | 8 | 0 | 0 | 8 | 0 |
| 每片段平均干扰物数 | 1.50 | 0 | 0 | 1.49 | 0 |
| 物体x轴跨度(米) | 0.206 | 0.027 | 0.033 | 0.036 | 0.193 |
实际干扰物类别数为8而非配置的10(250个片段中从未采样到两个类别),且 pre_bg 实际出现99种纹理而非100种。“x固定”变体仍存在2.7-3.6厘米的跨度,因为即使关闭位置扰动,仍存在放置抖动;“全范围”变体的跨度约为0.20米,宽度约为前者的6倍。
相机设置(v2版本,2026-09-08重新生成)
所有数据集均于2026-09-08以新的头部相机位置重新渲染。轨迹、种子、场景布局和动作与v1完全一致,仅 observation.images.head 流(及其内参/外参)发生变化。
| v1(旧版) | v2(当前版本) | |
|---|---|---|
| 头部相机位置(米) | (-0.032, -0.45, 1.35) | (0.10, -0.65, 1.50) |
| 俯仰角(向下偏离水平面) | 53.1° | 52° |
| 垂直视场角 | 37° | 43° |
| 分辨率 | 320x240 | 320x240 |
| 机器人机身/桅杆/左臂 | 可见 | 隐藏(仅渲染) |
改进原因:v1相机下右臂位于初始位姿时超出画面范围,导致每个片段的开头帧完全看不到机器人。v2相机位于机器人底座后方更远处,使得右臂从第0帧起完整可见。拉远相机后机器人桅杆和静止左臂会进入视野,因此除右臂外的所有部件均设置为不可见(RenderBodyComponent.visibility = 0;物理和碰撞不受影响——左臂仍然存在,只是不被渲染)。右手腕相机保持不变。
在RoboTwin任务配置中(参见收集仓库):camera.head_camera_type: D435_fov43,camera.head_camera_pose: {position: [0.10, -0.65, 1.50], forward: [0, 0.6157, -0.7880], left: [-1, 0, 0]},hide_robot_links: all_but_right。评估配置使用相同设置,因此基于此数据训练的策略在测试时将看到相同的渲染效果。
数据集目录结构
每个目录均为独立的 LeRobot v2.1 数据集,位于 <名称>/lerobot_delta_hr/ 下(hr = 头部 + 右手腕相机,delta = 末端执行器增量动作)。
预训练数据 — 任务 place_a2b_right
| 路径 | 片段数 | 帧数 |
|---|---|---|
pre_full_place_a2b_right/lerobot_delta_hr |
250 | 36,991 |
pre_none_place_a2b_right/lerobot_delta_hr |
250 | 36,929 |
pre_bg_place_a2b_right/lerobot_delta_hr |
250 | 37,099 |
pre_dt_place_a2b_right/lerobot_delta_hr |
250 | 36,968 |
pre_wa_place_a2b_right/lerobot_delta_hr |
250 | 37,191 |
下游目标任务
| 路径 | 片段数 | 帧数 |
|---|---|---|
narrow_place_container_plate/lerobot_delta_hr |
50 | 7,823 |
narrow_move_pillbottle_pad/lerobot_delta_hr |
50 | 7,324 |
两个目标任务均为刻意的小规模(50条演示)、窄覆盖范围数据集——正是预训练变体所要帮助应对的场景。
数据格式
- LeRobot v2.1(
meta/info.json→codebase_version: v2.1),robot_type: aloha-agilex,30 fps。 data/chunk-000/episode_XXXXXX.parquet— 每个片段一个 parquet 文件。videos/chunk-000/<video_key>/episode_XXXXXX.mp4— 每个片段包含两个视频流:observation.images.head和observation.images.right_wrist,均为 320x240(shape: [240, 320, 3]),h264 / yuv420p 编码,无音频。meta/— 包含info.json、stats.json、episodes.jsonl、episodes_stats.jsonl、tasks.jsonl,以及一个 GR00T 风格的modality.json,提供状态和动作向量的子切片信息。
action — 14维,末端执行器增量
每只手臂按 [dx, dy, dz, rotvec(3), gripper] 排列,左臂在前:
| 维度 | 含义 |
|---|---|
| 0:3 | 左末端执行器平移增量 |
| 3:6 | 左末端执行器旋转增量(旋转向量/轴角) |
| 6 | 左夹爪(绝对位置,0关闭…1打开) |
| 7:10 | 右末端执行器平移增量 |
| 10:13 | 右末端执行器旋转增量(旋转向量) |
| 13 | 右夹爪(绝对位置) |
observation.state — 20维,绝对位置
每只手臂按 [pos(3), rot6d(6), gripper(1)] 排列,左臂在前:维度 0:10 对应左臂,10:20 对应右臂。旋转采用6D连续表示(旋转矩阵前两列),而非欧拉角或四元数。
语言标注
annotation.human.task_description 和 annotation.human.task_name 是 meta/tasks.jsonl 的整数索引,逐帧存储。索引0为粗粒度任务名称(如place a2b right);描述索引逐帧轮转遍历该片段的所有语言表述,循环往复。例如一个149帧的片段会循环约99个描述同一目标的不同句子。如需使用,请勿假设每片段仅一个句子——应根据需求采样当前帧自己的索引,或聚合整个片段的索引集合。
某一 place_a2b_right 片段的示例表述:
用右臂将具有白色、绿色、橙色块面的魔方放置在弯曲黑色订书机的右侧。 小心地将具有3x3网格每面的拼图魔方放置在带有矩形底座的黑色订书机的右侧。
重要注意事项
仅右臂运动
本集合中每个片段均固定为右臂。因此左臂动作维度为常量:action[0:6] 在每帧均为零,action[6](左夹爪)固定为 1.0。observation.state[0:10] 同样是固定的左臂初始位姿(各维度标准差 ≤ 2.5e-4)。若在全部14个动作维度上训练,其中6个维度无有效信号、1个为常量——请相应进行归一化,或直接切取 action[7:14]。
在上一次指令位姿上累积增量
动作为增量形式,参考坐标系至关重要。应在最后指令的位姿上累积每个增量,而非最新观测位姿。基于观测重新基准会将控制器的稳态跟踪误差逐帧累积,约每片段漂移58毫米,足以导致抓取失败。请维护内部指令位姿目标,将预测增量叠加至其上并发送该指令。
python
正确做法
cmd = cmd + delta # cmd 初始化为首次观测的位姿
错误做法 — 每步都会累积跟踪误差
cmd = observe_ee() + delta
加载方式
python from lerobot.common.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset( "ShuaKang/my_roboTwin2.0_training", root="pre_full_place_a2b_right/lerobot_delta_hr", # 或本地下载子文件夹 )
或仅下载子文件夹:
bash hf download ShuaKang/my_roboTwin2.0_training --repo-type dataset --include "pre_full_place_a2b_right/lerobot_delta_hr/*" --local-dir ./robotwin_cov
由于本仓库并列存放多个独立 LeRobot 数据集,每个子文件夹必须视为独立的数据集根目录——不存在单一顶层 meta/。
引用
RoboTwin 2.0 — 使用本数据请引用上游基准。本特定数据集的收集与导出代码:https://github.com/Shua-Kang/my_roboTwin2.0




