LeRobot documentation
RoboCerebra
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).
- Makalah: RoboCerebra: A Large-scale Benchmark for Long-horizon Robotic Manipulation Evaluation
- Situs web proyek: robocerebra.github.io
- Dataset:
lerobot/robocerebra_unified— LeRobot v3.0, 6.660 episode / 571.116 frame pada 20 fps, 1.728 sub-tugas berbasis bahasa. - Kebijakan pra-terlatih:
lerobot/smolvla_robocerebra
Tugas yang tersedia
RoboCerebra menggunakan ulang simulator LIBERO, sehingga evaluasi dijalankan terhadap suite jangka panjang LIBERO libero_10:
| Suite | Nama CLI | Tugas | Deskripsi |
|---|---|---|---|
| LIBERO-10 | libero_10 | 10 | Tugas 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=1Episode 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 uint8observation.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:
| Fitur | Bentuk | Deskripsi |
|---|---|---|
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_robocerebrasmolvla_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.