首页 › 具身智能 › 09-具身智能数据及评估基准benchmark › 04-EBench

04-EBench

EBench / GenManip 复现记录:从环境配置到最小视频渲染​

1 概述​

EBench 是面向具身操作任务的评估基准,本次复现先不追求完整 benchmark 跑分,而是验证一条最小链路:安装 Isaac Sim 4.1 运行环境,启动 GenManip 的 Minimal_Banana 任务,完成规划、轨迹生成、RGB 渲染,并导出可播放视频。​

本章记录的是一次 smoke test 级别复现。它能证明仿真、规划和渲染链路已经打通,但不代表完整 EBench 评测已经完成。​

2 本次验证环境​

远端机器使用 Ubuntu 22.04,GPU 为 RTX 4090。环境实际安装在数据盘,避免把大体积 Python 包和 Isaac 缓存写到共享盘。​

​

​
项目​
​
​
本次使用​
​
​
Python​
​
​
3.10​
​
​
Isaac Sim​
​
​
4.1.0.0​
​
​
NumPy​
​
​
1.26.4​
​
​
PyTorch​
​
​
2.4.0+cu121​
​
​
cuRobo​
​
​
v0.7.8​
​
​
任务入口​
​
​
GenManip/configs/tasks/minimal.yml​
​
​
输出任务​
​
​
Minimal_Banana​
​

​

关键结论是:如果只是跑 EBench/GenManip 的最小 smoke test,一张 24GB 显存的卡就足够。完整数据生成、批量评测或大模型 policy 部署会额外占用显存和存储,需要按任务规模重新估算。​

3 环境配置要点​

工作目录如下:​

​

代码块​

Bash

/root/gpufree-share/ebench_repro/GenManip​

​

Python 环境放在数据盘:​

​

代码块​

Bash

/root/gpufree-data/ebench_repro/venv_ebench​

​

基础依赖安装完成后,需要显式接受 Omniverse EULA,否则首次启动 Isaac Sim 会卡在交互提示:​

​

代码块​

Bash

export OMNI_KIT_ACCEPT_EULA=YES​

export HF_HOME=/root/gpufree-data/hf_home​

export TMPDIR=/root/gpufree-data/tmp​

​

Isaac Sim 4.1 的 PyPI 包要求 Python 3.10。若使用 Python 3.11,会出现类似下面的版本不匹配:​

​

代码块​

Plain Text

isaacsim 4.1.0.0 Requires-Python ==3.10.*​

​

cuRobo 需要固定到旧版 API。GenManip 代码会导入:​

​

代码块​

Python

from curobo.geom.sdf.world import CollisionCheckerType​

​

当前 cuRobo 主分支已经调整了包结构,因此本次固定为:​

​

代码块​

Bash

cd saved/envs/curobo​

git checkout v0.7.8​

pip install -e . --no-build-isolation​

​

4 运行最小任务​

进入 GenManip 根目录并激活环境:​

​

代码块​

Bash

cd /root/gpufree-share/ebench_repro/GenManip​

source /root/gpufree-data/ebench_repro/venv_ebench/bin/activate​

export OMNI_KIT_ACCEPT_EULA=YES​

export HF_HOME=/root/gpufree-data/hf_home​

export TMPDIR=/root/gpufree-data/tmp​

​

先跑最小规划任务:​

​

代码块​

Bash

python demogen.py \​

--config configs/tasks/minimal.yml \​

​

本次生成了 10 条 Minimal_Banana trajectory。单条 trajectory 目录中包含 lmdb/data.mdb、info.json、meta_info.pkl 等文件。​

5 渲染视频​

默认相机配置会开启 depth、semantic segmentation、2D/3D bbox 和 motion vector。该配置在本次 Isaac Sim 4.1 + 双 4090 环境中触发过 CUDA/Hydra 渲染错误:​

​

代码块​

Plain Text

CUDA error 700: an illegal memory access was encountered​

HydraEngine::render failed​

Rendering failed​

​

为了完成 smoke test,本次使用 RGB-only 渲染配置,并显式关闭 Isaac 多 GPU:​

​

代码块​

Python

​

相机配置中关闭非 RGB annotator:​

​

代码块​

YAML

with_distance: false​

with_semantic: false​

with_bbox2d: false​

with_bbox3d: false​

with_motion_vector: false​

​

完整渲染命令:​

​

代码块​

Bash

python render_single_gpu.py \​

--config configs/tasks/minimal_rgb_only.yml \​

--without_depth \​

--record rgb_only_single_gpu_full​

​

本次渲染结果为 316 帧 RGB,随后从 LMDB 解码成 MP4。三路相机视频如下。​

渲染时同步保存了一张俯视图:​

​

​

​

图1:Minimal_Banana 渲染俯视图​

6 已验证结果​

本次 smoke test 已完成以下检查:​

•

Isaac Sim 4.1 可以在远端环境中启动。​

•

GenManip Minimal_Banana 任务可以完成 cuRobo 规划。​

•

轨迹数据成功写入 LMDB。​

•

RGB-only 渲染可生成 316 帧图像。​

•

三路相机视频均已导出为 MP4,分辨率为 640×480,帧率为 30 FPS。​

7 常见问题​

7.1 EULA 输入卡住​

设置环境变量:​

​

代码块​

Bash

​

7.2 找不到 curobo.geom​

使用 cuRobo v0.7.8,不要直接使用当前主分支。​

7.3 默认渲染出现 CUDA/Hydra 错误​

先关闭多 GPU,并把相机配置改成 RGB-only。对于 smoke test,先保证视频链路跑通;如果要完整导出语义分割、bbox、depth,再单独排查 Isaac 版本、驱动、Vulkan/CUDA interop 和 Replicator 配置。​

7.4 只跑 --without_planning 后无法渲染完整视频​

--without_planning 只适合验证场景加载和保存最小轨迹信息。render.py 需要规划结果,因此要生成动作视频,应先跑不带 --without_planning 的 demogen.py。​

8 小结​

这次复现已经打通了 EBench/GenManip 的最小闭环:环境安装、最小任务规划、RGB 渲染和视频导出。后续如果要做正式 benchmark,需要补齐完整 EBench assets、选择 baseline policy,并按官方任务集批量运行评测。​