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 هو معيار تقييم للمهام التلاعب طويلة المدى، يقيّم الاستدلال والتخطيط والذاكرة على المستوى العالي في نماذج VLAs. تتسلسل الحلقات في هذا المعيار عبر أهداف فرعية متعددة مع تعليمات وسيطة مرتبطة باللغة، وهو مبني على بنية محاكي LIBERO (MuJoCo + robosuite، Franka Panda 7-DOF).

المهام المتاحة

يعيد RoboCerebra استخدام محاكي LIBERO، لذا تُجرى التقييمات مقابل مجموعة LIBERO libero_10 طويلة المدى:

Suiteاسم سطر الأوامرالمهامالوصف
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,)) — دلتا الطرف النهائي (6 أبعاد) + الماسك (1 بُعد)

التدريب

يكشف مجموعة البيانات الموحدة في 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، لذا فإن أعلام الكاميرات هي نفسها الموجودة في أمر التقييم: حيث يربط --rename_map كاميرات مجموعة البيانات بتلك الأسماء، بينما يمنح --env.camera_name_mapping كاميرات LIBERO أسماء مجموعة البيانات للتقييم أثناء التدريب.

إعادة إنتاج النتائج المنشورة

تم تدريب نقطة التفتيش المُصدَّرة lerobot/smolvla_robocerebra على lerobot/robocerebra_unified وتم تقييمها باستخدام الأمر الوارد في قسم التقييم. وتشغّل CI الأمر نفسه مع --eval.n_episodes=1 كاختبار سريع على كل طلب دمج يمس المعيار المرجعي.

Update on GitHub