LeRobot documentation

Meta-World

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Meta-World

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/metaworld.yaml --sim.task=--docker=true`, where `` is the command's `--env.task`, and add `--env.server.endpoint=tcp/127.0.0.1:7448` to the command. A server runs the task it was started with (see [Simulation: local or served](./simulation)).

Meta-World هو معيار محاكاة مفتوح المصدر لـ التعلم المعزز متعدد المهام والتعلم المعزز الفائق في التحكم المستمر للالتقاط الروبوتي. يضم 50 مهمة متنوعة للالتقاط باستخدام أشياء يومية وذراع Sawyer شائعة على سطح الطاولة، مما يوفر ساحة اختبار موحدة لاختبار ما إذا كانت الخوارزميات قادرة على تعلم العديد من المهام المختلفة والتعميم بسرعة على مهام جديدة.

MetaWorld MT10 demo

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

توفر Meta-World خمسين مهمة منظمة في مجموعات صعوبة. في LeRobot، يمكنك التقييم على مهام فردية، أو مجموعات صعوبة، أو مجموعة MT50 الكاملة:

مجموعةاسم سطر الأوامرالمهامالوصف
سهلeasy28المهام ذات الديناميكيات البسيطة والأهداف أحادية الخطوة
متوسطmedium11المهام التي تتطلب استدلالًا متعدد الخطوات
صعبhard6المهام ذات التفاعلات المعقدة والتلاعب الدقيق
صعب للغايةvery_hard5المهام الأكثر تحديًا في المجموعة
MT50 (الكل)قائمة مفصولة بفواصل50جميع المهام الخمسين — أكثر إعدادات المهام المتعددة تحديًا

يمكنك أيضًا تمرير أسماء المهام الفردية مباشرة (مثل assembly-v3، dial-turn-v3).

نوفر مجموعة بيانات جاهزة لاستخدام LeRobot لمهمة Meta-World MT50 على HF Hub: lerobot/metaworld_mt50. هذه المجموعة منسّقة لتقييم MT50 الذي يستخدم جميع المهام الخمسين مع مواضع ثابتة للأهداف/الأشياء ومتجهات مهمة أحادية الترميز (one-hot) لضمان الاتساق.

التثبيت

بعد اتباع تعليمات تثبيت LeRobot:

pip install -e ".[metaworld]"
If you encounter an `AssertionError: ['human', 'rgb_array', 'depth_array']` when running Meta-World environments, this is a mismatch between Meta-World and your Gymnasium version. Reinstall the Gymnasium version LeRobot supports (Meta-World `3.0.0` works with it):
pip install "gymnasium>=1.1.1,<2.0.0"

التقييم

التقييم المحلي الافتراضي

قيّم على الجزء متوسط الصعوبة (توازن جيد بين التغطية والحساب):

lerobot-eval \
  --policy.path="your-policy-id" \
  --env.type=metaworld \
  --env.task=medium \
  --eval.batch_size=1 \
  --eval.n_episodes=10

تقييم مهمة واحدة

التقييم على مهمة محددة:

lerobot-eval \
  --policy.path="your-policy-id" \
  --env.type=metaworld \
  --env.task=assembly-v3 \
  --eval.batch_size=1 \
  --eval.n_episodes=10

التقييم متعدد المهام

التقييم عبر مهام متعددة أو مجموعات صعوبة:

lerobot-eval \
  --policy.path="your-policy-id" \
  --env.type=metaworld \
  --env.task=assembly-v3,dial-turn-v3,handle-press-side-v3 \
  --eval.batch_size=1 \
  --eval.n_episodes=10
  • يقبل --env.task قوائم مهام صريحة (مفصولة بفواصل) أو مجموعات صعوبة (مثل easy، medium، hard، very_hard).
  • يتحكم --eval.batch_size في عدد البيئات التي تعمل بالتوازي.
  • --eval.n_episodes يحدد عدد الحلقات التي يجب تشغيلها لكل مهمة.

مدخلات ومخرجات السياسة

الملاحظات:

  • observation.image — عرض كاميرا واحدة (corner2)، 480x480 HWC uint8
  • observation.state — حالة إدراكية ذاتية الأبعاد (4) (موضع الطرف النهائي + الماسك)

الإجراءات:

  • التحكم المستمر في Box(-1, 1, shape=(4,)) — دلتا طرف نهائي ثلاثي الأبعاد + قابض أحادي البعد

حلقات التقييم الموصى بها

لإجراء اختبارات قابلة للتكرار، استخدم 10 حلقات لكل مهمة. بالنسبة لمجموعة MT50 الكاملة، يؤدي ذلك إلى 500 حلقة إجمالاً. إذا كنت تهتم بالتعميم، فقم بالتنفيذ على مجموعة MT50 الكاملة — فهي مصممة لتكون صعبة عمداً وتكشف عن نقاط القوة والضعف بشكل أفضل من عدد قليل من المهام الضيقة.

التدريب

مثال على أمر التدريب

تدريب سياسة SmolVLA على مجموعة فرعية من مهام Meta-World:

lerobot-train \
  --policy.type=smolvla \
  --policy.repo_id=${HF_USER}/metaworld-test \
  --policy.load_vlm_weights=true \
  --dataset.repo_id=lerobot/metaworld_mt50 \
  --env.type=metaworld \
  --env.task=assembly-v3,dial-turn-v3,handle-press-side-v3 \
  --output_dir=./outputs/ \
  --steps=100000 \
  --batch_size=4 \
  --eval.batch_size=1 \
  --eval.n_episodes=1 \
  --env_eval_freq=1000

نصائح عملية

  • استخدم شرط المهمة أحادي الترميز (one-hot) للتدريب متعدد المهام (اتفاقيات MT10/MT50) حتى تمتلك السياسات سياقًا صريحًا للمهمة.
  • افحص أوصاف مهام مجموعة البيانات ومفاتيح info["is_success"] عند كتابة ما بعد المعالجة أو التسجيل حتى تتطابق مقاييس النجاح لديك مع المعيار المرجعي.
  • اضبط batch_size وsteps وenv_eval_freq لتتوافق مع ميزانية الحوسبة لديك.
Update on GitHub