LeRobot documentation
Latih RL dalam Simulasi
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 dasarPandaPickCubeGamepad-v0: Dengan kontrol gamepadPandaPickCubeKeyboard-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 berlebihangripper.use_gripper: Apakah mengaktifkan kontrol gripperinverse_kinematics.end_effector_step_sizes: Ukuran langkah pada sumbu x, y, z dari end-effectorcontrol_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}
}