LeRobot documentation

RoboCerebra

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RoboCerebra

RoboCerebra — это бенчмарк для долгосрочного манипулирования, оценивающий высокоуровневое рассуждение, планирование и память в VLAs. Эпизоды объединяют несколько подцелей с промежуточными инструкциями, привязанными к языку, и построены на стеке симулятора LIBERO (MuJoCo + robosuite, Franka Panda 7-DOF).

Доступные задачи

RoboCerebra использует симулятор LIBERO, поэтому оценка выполняется на длинном горизонте набора LIBERO libero_10:

SuiteИмя CLIЗадачиОписание
LIBERO-10libero_1010Долгосрочные задачи на кухне/в гостиной, объединяющие 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 uint8
  • observation.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_robocerebra

smolvla_base ожидает камеры с именами camera1–camera3, поэтому флаги камер такие же, как в команде Evaluation: --rename_map сопоставляет камеры набора данных с этими именами, а --env.camera_name_mapping присваивает камерам LIBERO имена из набора данных для оценки во время обучения.

Воспроизведение опубликованных результатов

Опубликованный чекпоинт lerobot/smolvla_robocerebra был обучен на lerobot/robocerebra_unified и оценен с помощью команды из раздела Оценка. CI выполняет ту же команду с параметром --eval.n_episodes=1 в качестве smoke-теста для каждого PR, затрагивающего бенчмарк.

Update on GitHub