LeRobot documentation
تدريب التعلم المعزز في المحاكاة
تدريب التعلم المعزز في المحاكاة
يشرح هذا الدليل كيفية استخدام بيئات المحاكاة gym_hil كبديل للروبوتات الحقيقية عند العمل مع إطار LeRobot لتعلم التعزيز الذي يتضمن الإنسان في الحلقة (HIL).
gym_hil هو حزمة توفر بيئات محاكاة متوافقة مع Gymnasium مصممة خصيصًا لتعلم التعزيز الذي يتضمن الإنسان في الحلقة. تتيح لك هذه البيئات ما يلي:
درّب السياسات في المحاكاة لاختبار بنية التعلم المعزز قبل التدريب على الروبوتات الحقيقية
جمع العروض في المحاكاة باستخدام أجهزة خارجية مثل أزرار التحكم أو لوحات المفاتيح
تنفيذ تدخلات بشرية أثناء تعلم السياسة
حاليًا، البيئة الرئيسية هي محاكاة لروبوت Franka Panda مبنية على MuJoCo، مع مهام مثل التقاط مكعب.
التثبيت
أولاً، ثبّت حزمة gym_hil داخل بيئة LeRobot:
pip install -e ".[hilserl]"ما الذي أحتاجه؟
- لوحة مفاتيح أو يد تحكم للتحكم في الروبوت
- بطاقة رسومات من Nvidia
الإعداد
للاستخدام gym_hil مع LeRobot، تحتاج إلى إنشاء ملف إعدادات. تم تقديم مثال هنا. وتشمل أقسام الإعدادات الرئيسية:
نوع البيئة والمهمة
{
"env": {
"type": "gym_manipulator",
"name": "gym_hil",
"task": "PandaPickCubeGamepad-v0",
"fps": 10
},
"device": "cuda"
}المهام المتاحة:
PandaPickCubeBase-v0: بيئة أساسيةPandaPickCubeGamepad-v0: مع التحكم بلوحة الألعابPandaPickCubeKeyboard-v0: مع التحكم بلوحة المفاتيح
إعداد المعالج
{
"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
}
}
}
}
}المعلمات المهمة:
gripper.gripper_penalty: عقوبة على الحركة المفرطة للمقبضgripper.use_gripper: ما إذا كان سيتم تفعيل التحكم في الماسكinverse_kinematics.end_effector_step_sizes: حجم الخطوات على المحاور x وy وz للمنفذ النهائيcontrol_mode: اضبطه على"gamepad"لاستخدام جهاز تحكم
التشغيل مع HIL RL الخاص بـ LeRobot
الاستخدام الأساسي
لتشغيل البيئة، اضبط mode على null:
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json
تسجيل مجموعة بيانات
لجمع مجموعة بيانات، اضبط الوضع على record مع تحديد repo_id وعدد الحلقات المراد تسجيلها:
{
"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
تدريب سياسة
لتدريب سياسة، راجع مثال التهيئة المتاح هنا وشغّل خادمَي المتعلّم والمُنفّذ. ابدأ بتشغيل المتعلّم أولاً، لأن المُنفّذ يتصل به:
python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json
في طرفية أخرى، شغّل خادم الممثل:
python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json
توفر بيئة المحاكاة طريقة آمنة وقابلة للتكرار لتطوير واختبار مكوّنات التعلم المعزز الذي يتضمن الإنسان في الحلقة الخاصة بك قبل نشرها على الروبوتات الحقيقية.
تهانينا 🎉، لقد أنهيت هذا الشرح التعليمي!
إذا كانت لديك أي أسئلة أو كنت بحاجة إلى مساعدة، يرجى التواصل معنا عبر Discord.
استشهاد الورقة:
@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}
}