LeRobot documentation

Meta-World

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

Meta-World

Meta-World adalah benchmark simulasi open-source untuk multi-task dan meta reinforcement learning dalam manipulasi robotik continuous-control. Benchmark ini menyediakan 50 tugas manipulasi yang beragam menggunakan benda-benda sehari-hari dan lengan Sawyer tabletop yang umum, sehingga menjadi arena standar untuk menguji apakah algoritma dapat mempelajari banyak tugas yang berbeda dan beradaptasi dengan cepat ke tugas-tugas baru.

MetaWorld MT10 demo

Tugas yang tersedia

Meta-World menyediakan 50 tugas yang diorganisasikan ke dalam kelompok tingkat kesulitan. Di LeRobot, Anda dapat mengevaluasi pada tugas individual, kelompok tingkat kesulitan, atau suite MT50 lengkap:

GrupNama CLITugasDeskripsi
Mudaheasy28Tugas dengan dinamika sederhana dan tujuan satu langkah
Sedangmedium11Tugas yang memerlukan penalaran multi-langkah
Sulithard6Tugas dengan kontak kompleks dan manipulasi yang presisi
Sangat Sulitvery_hard5Tugas-tugas paling menantang dalam suite
MT50 (semua)Daftar yang dipisahkan koma50Semua 50 tugas — pengaturan multi-tugas yang paling menantang

Anda juga dapat langsung meneruskan nama tugas individual (misalnya, assembly-v3, dial-turn-v3).

Kami menyediakan dataset yang siap digunakan LeRobot untuk Meta-World MT50 di HF Hub: lerobot/metaworld_mt50. Dataset ini diformat untuk evaluasi MT50 yang menggunakan semua 50 tugas dengan posisi objek/target tetap dan vektor tugas one-hot untuk konsistensi.

Instalasi

Setelah mengikuti instruksi instalasi 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"

Evaluasi

Evaluasi default (disarankan)

Evaluasi pada split dengan tingkat kesulitan sedang (keseimbangan yang baik antara cakupan dan komputasi):

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

Evaluasi tugas tunggal

Evaluasi pada tugas tertentu:

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

Evaluasi multi-tugas

Evaluasi di berbagai tugas atau kelompok tingkat kesulitan:

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 menerima daftar tugas eksplisit (dipisahkan koma) atau grup tingkat kesulitan (misalnya, easy, medium, hard, very_hard).
  • --eval.batch_size mengontrol berapa banyak lingkungan yang berjalan secara paralel.
  • --eval.n_episodes mengatur jumlah episode yang dijalankan per tugas.

Input dan output kebijakan

Observasi:

  • observation.image — tampilan kamera tunggal (corner2), 480x480 HWC uint8
  • observation.state — keadaan proprioseptif 4-dimensi (posisi ujung efektor + gripper)

Aksi:

  • Kontrol kontinu di Box(-1, 1, shape=(4,)) — delta ujung-efektor 3D + gripper 1D

Episode evaluasi yang direkomendasikan

Untuk benchmarking yang dapat direproduksi, gunakan 10 episode per tugas. Untuk suite MT50 lengkap, ini menghasilkan total 500 episode. Jika Anda peduli pada generalisasi, jalankan pada MT50 lengkap — suite ini sengaja dibuat menantang dan lebih baik mengungkapkan kekuatan/kelemahan dibandingkan beberapa tugas yang sempit.

Pelatihan

Perintah pelatihan contoh

Latih kebijakan SmolVLA pada subset tugas 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

Tips praktis

  • Gunakan kondisioning tugas one-hot untuk pelatihan multi-tugas (konvensi MT10/MT50) agar kebijakan memiliki konteks tugas yang eksplisit.
  • Periksa deskripsi tugas dataset dan kunci info["is_success"] saat menulis pascaproses atau logging agar metrik keberhasilan Anda selaras dengan benchmark.
  • Sesuaikan batch_size, steps, dan env_eval_freq agar sesuai dengan anggaran komputasi Anda.
Update on GitHub