LeRobot documentation
RoboCerebra
RoboCerebra
RoboCerebra — это бенчмарк для долгосрочного манипулирования, оценивающий высокоуровневое рассуждение, планирование и память в VLAs. Эпизоды объединяют несколько подцелей с промежуточными инструкциями, привязанными к языку, и построены на стеке симулятора LIBERO (MuJoCo + robosuite, Franka Panda 7-DOF).
- Статья: RoboCerebra: A Large-scale Benchmark for Long-horizon Robotic Manipulation Evaluation
- Сайт проекта: robocerebra.github.io
- Набор данных:
lerobot/robocerebra_unified— LeRobot v3.0, 6 660 эпизодов / 571 116 кадров при 20 кадрах в секунду, 1 728 подзадач с привязкой к языку. - Предобученная политика:
lerobot/smolvla_robocerebra
Доступные задачи
RoboCerebra использует симулятор LIBERO, поэтому оценка выполняется на длинном горизонте набора LIBERO libero_10:
| Suite | Имя CLI | Задачи | Описание |
|---|---|---|---|
| LIBERO-10 | libero_10 | 10 | Долгосрочные задачи на кухне/в гостиной, объединяющие 3–6 подцелей |
Каждый эпизод RoboCerebra в наборе данных сегментирован на несколько подзадач с инструкциями на естественном языке, которые единый набор данных предоставляет как независимые сигналы обучения.
Установка
RoboCerebra использует LIBERO, поэтому достаточно установить дополнительный пакет libero:
pip install -e ".[libero]"RoboCerebra requires Linux (MuJoCo / robosuite). Set the rendering backend before training or evaluation:export MUJOCO_GL=egl # for headless servers (HPC, cloud)
Оценка
Запуски оценки RoboCerebra выполняются на наборе libero_10 из LIBERO с использованием именования камер RoboCerebra (image + wrist_image) и дополнительного пустого слота камеры, чтобы политика, обученная на трёх видах, получала ожидаемую структуру входных данных:
lerobot-eval \
--policy.path=lerobot/smolvla_robocerebra \
--env.type=libero \
--env.task=libero_10 \
--env.fps=20 \
--env.obs_type=pixels_agent_pos \
--env.observation_height=256 \
--env.observation_width=256 \
'--env.camera_name_mapping={"agentview_image": "image", "robot0_eye_in_hand_image": "wrist_image"}' \
--eval.batch_size=1 \
--eval.n_episodes=10 \
--eval.use_async_envs=false \
--policy.device=cuda \
'--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.wrist_image": "observation.images.camera2"}' \
--policy.empty_cameras=1Рекомендуемые эпизоды оценки
10 эпизодов на задачу в наборе libero_10 (100 всего) для воспроизводимого бенчмаркинга. Соответствует протоколу, использованному в статье RoboCerebra.
Входы и выходы политики
Наблюдения:
observation.state— 8-мерное проприоцептивное состояние (7 положений суставов + захват)observation.images.image— вид от третьего лица, 256×256 HWC uint8observation.images.wrist_image— изображение с камеры, установленной на запястье, 256×256 HWC uint8
Действия:
- Непрерывное управление в
Box(-1, 1, shape=(7,))— дельта исполнительного органа (6D) + захват (1D)
Обучение
Единый набор данных в lerobot/robocerebra_unified предоставляет два RGB-потока и аннотации подзадач, привязанных к языку:
| Возможность | Форма | Описание |
|---|---|---|
observation.images.image | (256, 256, 3) | Вид от третьего лица |
observation.images.wrist_image | (256, 256, 3) | Камера на запястье |
observation.state | (8,) | Совместные позиции + захват |
action | (7,) | EEF-дельта + захват |
Довыучите базовую модель SmolVLA на ней:
lerobot-train \
--policy.path=lerobot/smolvla_base \
--policy.repo_id=${HF_USER}/smolvla_robocerebra \
--policy.empty_cameras=1 \
--dataset.repo_id=lerobot/robocerebra_unified \
'--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.wrist_image": "observation.images.camera2"}' \
--env.type=libero \
--env.task=libero_10 \
'--env.camera_name_mapping={"agentview_image": "image", "robot0_eye_in_hand_image": "wrist_image"}' \
--output_dir=outputs/smolvla_robocerebrasmolvla_base ожидает камеры с именами camera1–camera3, поэтому флаги камер такие же, как в команде Evaluation: --rename_map сопоставляет камеры набора данных с этими именами, а --env.camera_name_mapping присваивает камерам LIBERO имена из набора данных для оценки во время обучения.
Воспроизведение опубликованных результатов
Опубликованный чекпоинт lerobot/smolvla_robocerebra был обучен на lerobot/robocerebra_unified и оценен с помощью команды из раздела Оценка. CI выполняет ту же команду с параметром --eval.n_episodes=1 в качестве smoke-теста для каждого PR, затрагивающего бенчмарк.