EgoGround_LIBERO_regen
收藏资源简介:
# EgoGround LIBERO 重导出(regen_v3,全量) LIBERO 四个 suite(spatial / object / goal / 10,no-noops)由**原始 LIBERO HDF5** 在评测同款仿真里逐条回放重建: robosuite 1.4.1 + MuJoCo 3.2.3 + bddl 1.0.1,OSC_POSE,20 Hz(与 LIBERO / LIBERO-Plus 评测环境一致)。 回放流程与 OpenVLA `regenerate_libero_dataset.py` 相同(含固定件每次 reset 随机重摆,见下);相对开源的 OpenVLA RLDS / IPEC LeRobot 版,补回了被丢掉的量,并按《LIBERO 绝对目标到 OSC 动作换算说明》的重导出要求给出动作。 | suite | episodes | frames | IPEC 版 episodes | |---|---|---|---| | libero_spatial | 433 | 53,178 | 432 | | libero_object | 451 | 66,444 | 454 | | libero_goal | 430 | 52,227 | 428 | | libero_10 | 382 | 102,651 | 379 | | 合计 | 1,696 | 274,500 | 1,693 | ## 文件 | 文件 | 内容 | |---|---| | `libero_regen_v3_<suite>.tar` | `lerobot/<suite>_no_noops_regen_lerobot/`(LeRobot v2.1 源数据)、`libero_aligned/<suite>/`(对齐位姿文件)、`verify/<suite>/`(仿真 / 图像核验结果) | | `checks.tar` | 多样性、prompt、固定件、与原始示教贴合度等核验结果(见下) | | `code.tar` | 生成与核验代码(回放、组装、核验、加强版生成) | | `verify_samples.py` | 只依赖 numpy + pandas 的独立核验脚本:从原始量重算 state / 控制目标 / 下一帧 / 夹爪 / 四元数符号 / TCP 像素投影 / 观测时刻 | | `SHA256SUMS` | 上述文件的 sha256 | 解包:`for f in libero_regen_v3_*.tar; do tar xf $f; done`,得到 `lerobot/`、`libero_aligned/`、`verify/` 三个目录。 每个对齐位姿文件目录里的 `meta/USAGE.md` 是详细口径说明;源数据目录里的 `meta/REGEN.md` 说明补充列与 extras。 ## 口径要点 - `libero_aligned/<suite>/data/*.parquet`:`state_abs[8]`、`action_abs[8]`、`action_abs_next_state[8]`,均为 `[x, y, z, qw, qx, qy, qz, grip]`,base_link(`robot0_base`)系、米、wxyz 且 episode 内符号连续、夹爪 0 = 开 / 1 = 闭。 - **`action_abs` = 控制目标**:回放时直接从 OSC 控制器读出的该动作的绝对目标位姿,不是 `state[t+1]`(旧口径保留为 `action_abs_next_state`,仅供对比)。时序、offset(0)、观测采样时刻(第 23/25 子步)、控制信号链写在 `meta/alignment.json`, 并由回放核验(由控制器参考位姿重算的目标与记录值一致,误差 ~1e-8)。 - **评测侧须随之改增益**:现行 client 的 `(目标 - 当前)/(0.05×0.22)`、`/(0.5×0.20)` 是为 `state[t+1]` 口径补偿的;用控制目标训练时 精确逆变换是增益 1(`/0.05`、`/0.5`),否则动作被放大约 4.5 / 5 倍。 - 源视频与 IPEC 一样是真实相机画面的**左右镜像**,加载时水平翻回;`observation.tcp_uv.*` 是在存储(镜像)图像上的像素坐标。 - 源数据额外保留:关节角、原生四元数、原生动作(缩放 / 裁剪前)、实际施加的增量、OSC 目标与参考位姿、TCP 像素坐标、 相机内外参、每帧 MuJoCo 状态、场景 MJCF(可逐帧精确重渲染)、最后一个动作之后的观测。 ## 固定件:与 OpenVLA / IPEC / 官方评测相同(regen_v3) LIBERO 每次 hard reset 都在 BDDL 给的约 2 cm 区域内随机重摆柜子、灶台、酒架、微波炉等固定件,`set_init_state` 不恢复它们, 所以回放时固定件离人类示教时的位置 0–2.4 cm(spatial / goal 中位 1.3–1.5 cm;libero_object 没有这类固定件;每条的偏移记在 extras 的 meta:`fixture_offset_from_demo_cm`)。官方评测同样是 reset + `set_init_state`,所以这与评测分布一致,数据本身也自洽 (图像、状态、动作来自同一次仿真)。 上一版 regen_v2(已被本版替换)按每条原始 demo 自己的 MJCF 摆放固定件:回放更贴近人类示教(结束时物体位置误差中位 goal 0.51 vs 0.76 cm),但这不是纠正错误,回放成功数的差别也部分是偶然(开环回放在接触临界点对任何数值差异都敏感)。 为与 OpenVLA / IPEC 和评测保持一致,本版改回随机重摆;按 demo 摆放仍可用 `regen_replay.py --fixtures demo` 复现。 回放失败(未收录)来自不同 MuJoCo 版本间接触数值不可逐位复现。 ## 核验摘要(`checks.tar`) - **prompt**:40 个任务里,原始 HDF5 的 `problem_info` 指令 = LIBERO 评测发送的 `task.language` = IPEC 的 task = 本数据的 task, 逐字相同;全部 episode 的 task_index / episodes.jsonl / provenance 一致。注意 LIBERO-Plus 评测(官方代码同样如此)对除 Language 类以外的任务发送的是带文件名后缀的指令,如 `... view 0 0 100 2 4 initstate 0`、`... table 1`、`... light 1`, 与训练指令不同,是否在 client 里去掉后缀需另定。 - **同一任务内的多样性**:每条 episode 都是独立的人类示教(无重复动作序列)。物体初始位置由 LIBERO 的采样器在 BDDL 区域内 随机,但 tabletop / floor 场景的采样器先把区域每边按物体半径收缩(robosuite `horizontal_radius`),实际抖动范围因此是: - libero_object:5 cm 区域减去 2 × 2.5 cm 半径为 0——字母汤、番茄酱汁、沙拉酱、番茄酱、橙汁、巧克力布丁在 50 条示教里 位置**完全相同**(10 个任务中 6 个的目标物体如此),半径 3 cm 的奶油奶酪 / 牛奶 / 黄油约 1 cm,烧烤酱 2 cm,篮子 3 cm; 评测初始状态由同一采样器生成,同样固定。 - libero_spatial / libero_goal:每个物体约 3 cm(标准差约 0.9 cm);唯一例外是 "from table center" 任务的目标碗 x 方向固定。 - libero_10(living room / kitchen / study 场景,采样器不收缩):约 5 cm(标准差约 1.4 cm),篮子 2 cm。 机械臂起始关节标准差约 0.03 rad(末端约 0.5–1 cm);固定件每次随机 2.2–2.7 cm;相机、光照、纹理完全不变。 所以同一任务的画面很接近,更大的布局 / 轨迹多样性见加强版(`Travor007/EgoGround_LIBERO_regen_plus`)。 - 图像:视频与按存储状态重渲染的 PSNR 中位 38–40 dB;TCP 投影与渲染位置偏差中位 0.2 px;正运动学误差 0。 - 独立核验(`verify_samples.py --every 25`):71 条 episode 全部通过,状态 / 控制目标 / 下一帧误差 ≤ 1.2e-7。 生成:2026-10-29,hanyu(RTX 4090 D)。原始数据:yifengzhu-hf/LIBERO-datasets(ModelScope 镜像 liyixuan2026/libero_hdf5,sha256 与 HF 一致)。



