LeRobot documentation

RoboCerebra

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RoboCerebra

The commands below run the simulator locally. To keep its dependencies away from your policy's, serve it instead with `lerobot-env-server --config_path=docker/sim/configs/robocerebra.yaml --sim.task=--docker=true`, where `` is the command's `--env.task`, and run the command with `--env.type=robocerebra --env.server.endpoint=tcp/127.0.0.1:7448`. A server runs the task it was started with (see [Simulation: local or served](./simulation)).

RoboCerebra adalah benchmark manipulasi jangka panjang yang mengevaluasi penalaran tingkat tinggi, perencanaan, dan memori pada VLA. Episode merangkai beberapa sub-target dengan instruksi perantara yang berbasis bahasa, dibangun di atas tumpukan simulator LIBERO (MuJoCo + robosuite, Franka Panda 7-DOF).

Tugas yang tersedia

RoboCerebra menggunakan ulang simulator LIBERO, sehingga evaluasi dijalankan terhadap suite jangka panjang LIBERO libero_10:

SuiteNama CLITugasDeskripsi
LIBERO-10libero_1010Tugas dapur/ruang tamu jangka panjang yang merangkai 3–6 sub-target

Setiap episode RoboCerebra dalam dataset ini disegmentasi menjadi beberapa sub-tugas dengan instruksi bahasa alami, yang dataset terpadu tersebut paparkan sebagai sinyal supervisi independen.

Instalasi

RoboCerebra memanfaatkan LIBERO, sehingga libero extra adalah satu-satunya yang Anda butuhkan:

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)

Evaluasi

RoboCerebra menjalankan eval terhadap suite libero_10 dari LIBERO dengan penamaan kamera RoboCerebra (image + wrist_image) dan satu slot kamera kosong tambahan agar kebijakan yang dilatih dengan tiga tampilan menerima tata letak input yang diharapkan:

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

Episode evaluasi yang direkomendasikan

10 episode per tugas di seluruh suite libero_10 (total 100) untuk benchmarking yang dapat direproduksi. Sesuai dengan protokol yang digunakan dalam paper RoboCerebra.

Input dan output kebijakan

Observasi:

  • observation.state — keadaan proprioseptif 8-dimensi (7 posisi sendi + gripper)
  • observation.images.image — pandangan orang ketiga, 256×256 HWC uint8
  • observation.images.wrist_image — tampilan kamera yang dipasang di pergelangan tangan, 256×256 HWC uint8

Aksi:

  • Kontrol kontinu dalam Box(-1, 1, shape=(7,)) — delta ujung-efektor (6D) + gripper (1D)

Pelatihan

Dataset terpadu di lerobot/robocerebra_unified menampilkan dua stream RGB dan anotasi sub-tugas yang berbasis bahasa:

FiturBentukDeskripsi
observation.images.image(256, 256, 3)Tampilan orang ketiga
observation.images.wrist_image(256, 256, 3)Kamera yang dipasang di pergelangan tangan
observation.state(8,)Posisi sendi + gripper
action(7,)Delta EEF + gripper

Lakukan fine-tuning pada SmolVLA base di atasnya:

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 mengharapkan kamera bernama camera1–camera3, sehingga flag kamera sama seperti pada perintah Evaluation: --rename_map memetakan kamera dataset ke nama-nama tersebut, dan --env.camera_name_mapping memberikan nama dataset pada kamera LIBERO untuk evaluasi selama pelatihan.

Mereproduksi hasil yang dipublikasikan

Checkpoint yang dirilis lerobot/smolvla_robocerebra dilatih pada lerobot/robocerebra_unified dan dievaluasi dengan perintah pada bagian Evaluation. CI menjalankan perintah yang sama dengan --eval.n_episodes=1 sebagai smoke test pada setiap PR yang menyentuh benchmark.

Update on GitHub