Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Запись воспроизведения EBench / GenManip: от настройки окружения до минимального рендеринга видео

1 Обзор

EBench — бенчмарк для оценки задач манипуляции в воплощённом ИИ. Это воспроизведение сначала не ставит целью полный подсчёт результатов бенчмарка; оно проверяет один минимальный конвейер: установить среду выполнения Isaac Sim 4.1, запустить задачу Minimal_Banana из GenManip, выполнить планирование, генерацию траекторий, рендеринг RGB и экспорт воспроизводимого видео.

Эта глава описывает воспроизведение уровня дымового теста (smoke test). Оно показывает, что симуляция, планирование и рендеринг работают вместе, но не означает, что полная оценка EBench завершена.

2 Окружение проверки

Удалённая машина работает на Ubuntu 22.04, GPU — RTX 4090. Окружение установлено на диске данных, чтобы большие пакеты Python и кэш Isaac не занимали общий диск.

ПараметрЧто использовалось
Python3.10
Isaac Sim4.1.0.0
NumPy1.26.4
PyTorch2.4.0+cu121
cuRobov0.7.8
Точка входа задачиGenManip/configs/tasks/minimal.yml
Выходная задачаMinimal_Banana

Ключевой вывод: для минимального дымового теста EBench/GenManip достаточно одной карты с 24 ГБ видеопамяти. Полная генерация данных, пакетная оценка или развёртывание крупной политики (policy) потребуют дополнительной памяти и хранилища; их нужно оценивать отдельно под масштаб задачи.

3 Ключевые моменты настройки окружения

Рабочий каталог:

/path/to/share/ebench_repro/GenManip

Окружение Python — на диске данных:

/path/to/data/ebench_repro/venv_ebench

После установки базовых зависимостей нужно явно принять лицензионное соглашение Omniverse EULA, иначе при первом запуске Isaac Sim зависнет на интерактивном запросе:

export OMNI_KIT_ACCEPT_EULA=YES
export HF_HOME=/path/to/data/hf_home
export TMPDIR=/path/to/data/tmp

Пакет Isaac Sim 4.1 в PyPI требует Python 3.10. При использовании Python 3.11 появится несовпадение версий примерно такого вида:

isaacsim 4.1.0.0 Requires-Python ==3.10.*

cuRobo нужно зафиксировать на старом API. Код GenManip импортирует:

from curobo.geom.sdf.world import CollisionCheckerType

Текущая главная ветка cuRobo уже изменила структуру пакета, поэтому здесь фиксируется версия:

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

4 Запуск минимальной задачи

Перейдите в корневой каталог GenManip и активируйте окружение:

cd /path/to/share/ebench_repro/GenManip
source /path/to/data/ebench_repro/venv_ebench/bin/activate
export OMNI_KIT_ACCEPT_EULA=YES
export HF_HOME=/path/to/data/hf_home
export TMPDIR=/path/to/data/tmp

Сначала запустите минимальную задачу планирования:

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

В результате сгенерировано 10 траекторий Minimal_Banana. Каталог каждой траектории содержит lmdb/data.mdb, info.json, meta_info.pkl и другие файлы.

5 Рендеринг видео

Конфигурация камеры по умолчанию включает depth, семантическую сегментацию, 2D/3D bbox и motion vector. В этом воспроизведении на связке Isaac Sim 4.1 и двух 4090 такая конфигурация вызвала ошибку CUDA/Hydra при рендеринге:

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

Чтобы завершить дымовой тест, использовалась конфигурация рендеринга только RGB, а многопроцессорный режим Isaac явно отключён:

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

В конфигурации камеры отключены все не-RGB аннотаторы:

with_distance: false
with_semantic: false
with_bbox2d: false
with_bbox3d: false
with_motion_vector: false

Полная команда рендеринга:

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 Подтверждённые результаты

В этом дымовом тесте проверено следующее:

  • Isaac Sim 4.1 запускается на удалённой машине.
  • Задача Minimal_Banana из GenManip выполняет планирование через cuRobo.
  • Данные траекторий успешно записаны в LMDB.
  • Рендеринг только RGB создаёт 316 кадров.
  • Видео с трёх камер экспортированы в MP4 с разрешением 640×480 и частотой 30 кадров/с.

7 Частые проблемы

7.1 Зависание на вводе EULA

Установите переменную окружения:

export OMNI_KIT_ACCEPT_EULA=YES

7.2 Не найден модуль curobo.geom

Используйте cuRobo v0.7.8, а не текущую главную ветку.

7.3 Ошибки CUDA/Hydra при стандартном рендеринге

Сначала отключите многопроцессорный режим и переключите конфигурацию камеры на RGB only. Для дымового теста важно сначала добиться работы конвейера видео; если нужно полностью экспортировать семантическую сегментацию, bbox и depth, отдельно проверяйте версию Isaac, драйвер, взаимодействие Vulkan и CUDA, а также настройки Replicator.

7.4 После запуска только с --without_planning видео не рендерится полностью

--without_planning подходит только для проверки загрузки сцены и сохранения минимальной информации о траектории. render.py требует результаты планирования, поэтому для создания видео с движением сначала запустите demogen.py без --without_planning.

8 Итоги

Это воспроизведение замкнуло минимальный конвейер EBench/GenManip: установка окружения, планирование минимальной задачи, рендеринг RGB и экспорт видео. Для полноценного бенчмарка нужно дополнительно загрузить полные ресурсы EBench, выбрать базовую политику (baseline policy) и запустить оценку по официальному набору задач пакетом.