LeRobot documentation
Обучение RL в симуляции
Обучение RL в симуляции
This guide explains how to use the gym_hil simulation environments as an alternative to real robots when working with the LeRobot framework for Human-In-the-Loop (HIL) reinforcement learning.
gym_hil — это пакет, предоставляющий среды симуляции, совместимые с Gymnasium и специально разработанные для обучения с подкреплением с участием человека (Human-In-the-Loop). Эти среды позволяют вам:
Обучение политик в симуляции для проверки RL-стека перед обучением на реальных роботах
Собирайте демонстрации в симуляции с помощью внешних устройств, таких как геймпады или клавиатуры
Выполнение вмешательств человека во время обучения политики
В настоящее время основной средой является симуляция робота Franka Panda на базе MuJoCo, с задачами, такими как захват куба.
Установка
Сначала установите пакет gym_hil в окружении LeRobot:
pip install -e ".[hilserl]"Что мне нужно?
- Геймпад или клавиатура для управления роботом
- GPU от 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
Базовое использование
Для запуска окружения установите значение null для mode:
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
Обучение политики
Чтобы обучить политику, ознакомьтесь с примером конфигурации, доступным здесь, и запустите серверы learner и actor. Сначала запустите learner, так как actor подключается к нему:
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
Среда симуляции обеспечивает безопасный и воспроизводимый способ разработки и тестирования компонентов обучения с подкреплением с участием человека (Human-In-the-Loop) перед их развёртыванием на реальных роботах.
Поздравляем 🎉, вы завершили этот учебник!
Если у вас есть вопросы или нужна помощь, напишите нам в 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}
}