LeRobot documentation
Simülasyonda RL Eğitimi
Simülasyonda RL Eğitimi
Bu kılavuz, İnsan-Döngüde (HIL) pekiştirmeli öğrenme için LeRobot çerçevesiyle çalışırken gerçek robotlara alternatif olarak gym_hil simülasyon ortamlarının nasıl kullanılacağını açıklar.
gym_hil, İnsan-Döngüde (Human-In-the-Loop) pekiştirmeli öğrenme için özel olarak tasarlanmış, Gymnasium ile uylu simülasyon ortamları sağlayan bir pakettir. Bu ortamlar size şunları yapma imkânı tanır:
Gerçek robotlarda eğitim yapmadan önce RL yığınını test etmek için simülasyonda politikalar eğitin
Simülasyonda, oyun kumandaları veya klavyeler gibi harici cihazlar kullanarak gösterim toplayın
Politika öğrenme sırasında insan müdahaleleri gerçekleştirin
Şu anda ana ortam, küp alma gibi görevlere sahip, MuJoCo tabanlı bir Franka Panda robot simülasyonudur.
Kurulum
Öncelikle LeRobot ortamında gym_hil paketini yükleyin:
pip install -e ".[hilserl]"Neye ihtiyacım var?
- Robotu kontrol etmek için bir oyun kolu veya klavye
- Bir Nvidia GPU
Yapılandırma
LeRobot ile gym_hil kullanmak için bir yapılandırma dosyası oluşturmanız gerekir. Örnek bir dosya burada verilmiştir. Ana yapılandırma bölümleri şunlardır:
Ortam Türü ve Görev
{
"env": {
"type": "gym_manipulator",
"name": "gym_hil",
"task": "PandaPickCubeGamepad-v0",
"fps": 10
},
"device": "cuda"
}Mevcut görevler:
PandaPickCubeBase-v0: Temel ortamPandaPickCubeGamepad-v0: Oyun kolu kontrolü ilePandaPickCubeKeyboard-v0: Klavye kontrolü ile
İşleyici Yapılandırması
{
"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
}
}
}
}
}Önemli parametreler:
gripper.gripper_penalty: Aşırı gripper hareketi için cezagripper.use_gripper: Gripper kontrolünün etkinleştirilip etkinleştirilmeyeceğiinverse_kinematics.end_effector_step_sizes: Son efektörün x, y, z eksenlerindeki adım boyutucontrol_mode: Oyun kolu kontrolcüsü kullanmak için"gamepad"olarak ayarlayın
LeRobot ile HIL RL çalıştırma
Temel Kullanım
Ortamı çalıştırmak için modu null olarak ayarlayın:
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json
Bir Veri Seti Kaydetme
Bir veri seti toplamak için, repo_id ve kaydedilecek epizot sayısını tanımlarken modu record olarak ayarlayın:
{
"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
Bir Politika Eğitmek
Bir politika eğitmek için burada bulunan yapılandırma örneğine göz atın ve learner ile actor sunucularını çalıştırın. Actor, learner'a bağlandığı için önce learner'ı başlatın:
python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json
Farklı bir terminalde, aktör sunucusunu çalıştırın:
python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json
Simülasyon ortamı, gerçek robotlara dağıtım yapmadan önce İnsan-Döngüde (Human-In-the-Loop) pekiştirmeli öğrenme bileşenlerinizi geliştirmek ve test etmek için güvenli ve tekrarlanabilir bir yol sağlar.
Tebrikler 🎉, bu öğreticiyi tamamladınız!
Herhangi bir sorunuz varsa veya yardıma ihtiyacınız varsa, lütfen Discord üzerinden bize ulaşın.
Makale alıntısı:
@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}
}