logo Mr.Robota 具身智能学习手册 中文
Chapter 9: 09 Data And Benchmarks

EBench / GenManip Reproduction Record: From Environment Configuration to Minimum Video Rendering

1 Overview

EBench is a evaluation benchmark for embodied manipulation tasks. In this reproduction, we do not aim to achieve full benchmark scores, but rather verify a minimal workflow: install the Isaac Sim 4.1 runtime environment, start the Minimal_Banana task of GenManip, complete planning, trajectory generation, and RGB rendering, and export a playable video.

This chapter records a simulation-level reproduction at the smoke test level. It proves that the simulation, planning, and rendering chain is functional, but it does not indicate that the complete EBench evaluation is completed.

2 This verification environment

The remote machine uses Ubuntu 22.04, and the GPU is RTX 4090. The environment is actually installed on a data disk to avoid writing large Python packages and Isaac cache to the shared disk.

Item Used This Time
Python 3.10
Isaac Sim 4.1.0.0
NumPy 1.26.4
PyTorch 2.4.0+cu121
cuRobo v0.7.8
Task Entry GenManip/configs/tasks/minimal.yml
Output Task Minimal_Banana

The key conclusion is: For a simple EBench/GenManip smoke test, a card with 24GB of VRAM is sufficient. Complete data generation, batch testing, or large model policy deployment will consume additional VRAM and storage, requiring re-evaluation based on the task scale.

3 Key Points of Environment Configuration

The working directory is as follows:

bash/root/gpufree-share/ebench_repro/GenManip

The Python environment is placed on the data disk:

bash/root/gpufree-data/ebench_repro/venv_ebench

After the basic dependencies are installed, you need to explicitly accept the Omniverse EULA; otherwise, the first launch of Isaac Sim will get stuck with an interaction prompt:

bashexport OMNI_KIT_ACCEPT_EULA=YES
export HF_HOME=/root/gpufree-data/hf_home
export TMPDIR=/root/gpufree-data/tmp

The PyPI package for Isaac Sim 4.1.1 requires Python 3.10. If Python 3.11 is used, there will be a version mismatch similar to the following:

textisaacsim 4.1.0.0 Requires-Python ==3.10.*

cuRobo needs to be fixed to the old API. GenManip code will be imported:

pythonfrom curobo.geom.sdf.world import CollisionCheckerType

The current main branch of cuRobo has adjusted the package structure, so it is fixed as follows:

bashcd saved/envs/curobo
git checkout v0.7.8
pip install -e . --no-build-isolation

4 Run the minimum task

Enter the GenManip root directory and activate the environment:

bashcd /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

Run the minimum planning task first:

bashpython demogen.py \
  --config configs/tasks/minimal.yml \
  --record minimal_planning

This time, 10 Minimal_Banana trajectories were generated. Each trajectory directory contains files such as lmdb/data.mdb, info.json, and meta_info.pkl.

5 Render Video

The default camera configuration enables depth, semantic segmentation, 2D/3D bbox, and motion vector. This configuration caused CUDA/Hydra rendering errors in the Isaac Sim 4.1 + dual 4090 environment:

textCUDA error 700: an illegal memory access was encountered
HydraEngine::render failed
Rendering failed

To complete the smoke test, we used a RGB-only rendering configuration and explicitly turned off Isaac multi-GPU:

pythonsimulation_app = SimulationApp(
    {
        "headless": True,
        "active_gpu": 0,
        "physics_gpu": 0,
        "multi_gpu": False,
        "max_gpu_count": 1,
    }
)

Disable non-RGB annotator in camera configuration:

yamlwith_distance: false
with_semantic: false
with_bbox2d: false
with_bbox3d: false
with_motion_vector: false

Complete rendering command:

bashpython render_single_gpu.py \
  --config configs/tasks/minimal_rgb_only.yml \
  --without_depth \
  --record rgb_only_single_gpu_full

The rendering result is 316 frames in RGB format, which are then decoded from LMDB into MP4. The three-camera video is as follows.

A top-down view was saved synchronously during rendering:


Figure 1: Top view of Minimal_Banana rendering

6 Verified Results

The current smoke test has completed the following checks:

  • Isaac Sim 4.1 can be launched in a remote environment.
  • The GenManip Minimal_Banana task can complete cuRobo planning.
  • Trajectory data has been successfully written to LMDB.
  • RGB-only rendering can generate 316 frames of images.
  • The three-camera video has been exported as MP4, with a resolution of 640×480 and a frame rate of 30 FPS.

7 Common Questions

7.1 EULA Input Stuck

Set environment variables:

bashexport OMNI_KIT_ACCEPT_EULA=YES

7.2 Unable to find curobo.geom

Use cuRobo v0.7.8, and do not use the current main branch directly.

7.3 CUDA/Hydra errors occur during default rendering

First, turn off multiple GPUs and configure the camera as RGB-only. For the smoke test, ensure that the video link works properly. If you want to export semantic segmentation, bbox, and depth data completely, then separately check the Isaac version, drivers, Vulkan/CUDA interop, and Replicator configuration.

7.4 The complete video cannot be rendered after only running --without_planning

--without_planning is only suitable for verifying the loading and saving of minimal trajectory information. render.py requires planning results, so to generate an action video, one should first run demogen.py without --without_planning.

8 Summary

This reproduction has established a closed loop for EBench/GenManip: environment installation, minimal task planning, RGB rendering, and video export. If a formal benchmark is to be conducted in the future, it is necessary to complete all EBench assets, select a baseline policy, and run the evaluation in batches using the official task set.