LeRobot documentation

Latih RL dalam Simulasi

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

Latih RL dalam Simulasi

Panduan ini menjelaskan cara menggunakan lingkungan simulasi gym_hil sebagai alternatif robot fisik saat bekerja dengan kerangka kerja LeRobot untuk pembelajaran penguatan Human-In-the-Loop (HIL).

gym_hil adalah paket yang menyediakan lingkungan simulasi yang kompatibel dengan Gymnasium, yang dirancang khusus untuk pembelajaran penguatan Human-In-the-Loop. Lingkungan ini memungkinkan Anda untuk:

  • Latih kebijakan dalam simulasi untuk menguji tumpukan RL sebelum melatih pada robot sungguhan

  • Kumpulkan demonstrasi di simulasi menggunakan perangkat eksternal seperti gamepad atau keyboard

  • Lakukan intervensi manusia selama pembelajaran kebijakan

Saat ini, lingkungan utama adalah simulasi robot Franka Panda yang berbasis MuJoCo, dengan tugas seperti mengambil kubus.

Instalasi

Pertama, instal paket gym_hil di dalam lingkungan LeRobot:

pip install -e ".[hilserl]"

Apa yang saya butuhkan?

  • Gamepad atau keyboard untuk mengontrol robot
  • GPU Nvidia

Konfigurasi

Untuk menggunakan gym_hil dengan LeRobot, Anda perlu membuat file konfigurasi. Contoh disediakan di sini. Bagian konfigurasi utama meliputi:

Jenis Lingkungan dan Tugas

{
  "env": {
    "type": "gym_manipulator",
    "name": "gym_hil",
    "task": "PandaPickCubeGamepad-v0",
    "fps": 10
  },
  "device": "cuda"
}

Tugas yang tersedia:

  • PandaPickCubeBase-v0: Lingkungan dasar
  • PandaPickCubeGamepad-v0: Dengan kontrol gamepad
  • PandaPickCubeKeyboard-v0: Dengan kontrol keyboard

Konfigurasi Processor

{
  "env": {
    "processor": {
      "control_mode": "gamepad",
      "gripper": {
        "use_gripper": true,
        "gripper_penalty": -0.02
      },
      "reset": {
        "control_time_s": 15.0,
        "fixed_reset_joint_positions": [
          0.0, 0.195, 0.0, -2.43, 0.0, 2.62, 0.785
        ]
      },
      "inverse_kinematics": {
        "end_effector_step_sizes": {
          "x": 0.025,
          "y": 0.025,
          "z": 0.025
        }
      }
    }
  }
}

Parameter penting:

  • gripper.gripper_penalty: Penalti untuk gerakan gripper yang berlebihan
  • gripper.use_gripper: Apakah mengaktifkan kontrol gripper
  • inverse_kinematics.end_effector_step_sizes: Ukuran langkah pada sumbu x, y, z dari end-effector
  • control_mode: Diatur ke "gamepad" untuk menggunakan pengontrol gamepad

Menjalankan dengan HIL RL dari LeRobot

Penggunaan Dasar

Untuk menjalankan lingkungan, atur mode menjadi null:

python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json

Merekam Dataset

Untuk mengumpulkan dataset, atur mode ke record sambil mendefinisikan repo_id dan jumlah episode yang akan direkam:

{
  "env": {
    "type": "gym_manipulator",
    "name": "gym_hil",
    "task": "PandaPickCubeGamepad-v0"
  },
  "dataset": {
    "repo_id": "username/sim_dataset",
    "root": null,
    "task": "pick_cube",
    "num_episodes_to_record": 10,
    "replay_episode": null,
    "push_to_hub": true
  },
  "mode": "record"
}
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json

Melatih Kebijakan

Untuk melatih kebijakan, lihat contoh konfigurasi yang tersedia di sini dan jalankan server learner dan actor. Mulai learner terlebih dahulu, karena actor terhubung ke sana:

python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json

Di terminal yang berbeda, jalankan server aktor:

python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json

Lingkungan simulasi menyediakan cara yang aman dan dapat diulang untuk mengembangkan dan menguji komponen reinforcement learning Human-In-the-Loop Anda sebelum melakukan deployment ke robot sungguhan.

Selamat 🎉, Anda telah menyelesaikan tutorial ini!

Jika Anda memiliki pertanyaan atau membutuhkan bantuan, silakan hubungi kami di Discord.

Sitasi paper:

@article{luo2024precise,
  title={Precise and Dexterous Robotic Manipulation via Human-in-the-Loop Reinforcement Learning},
  author={Luo, Jianlan and Xu, Charles and Wu, Jeffrey and Levine, Sergey},
  journal={arXiv preprint arXiv:2410.21845},
  year={2024}
}
Update on GitHub