LeRobot documentation
Treinar RL em Simulação
Treinar RL em Simulação
Este guia explica como usar os ambientes de simulação gym_hil como alternativa a robôs reais ao trabalhar com o framework LeRobot para aprendizado por reforço com intervenção humana (Human-In-the-Loop, HIL).
gym_hil é um pacote que fornece ambientes de simulação compatíveis com Gymnasium, projetados especificamente para aprendizado por reforço com intervenção humana (Human-In-the-Loop). Esses ambientes permitem que você:
Treine políticas em simulação para testar a pilha de RL antes de treinar em robôs reais
Coletar demonstrações em simulação usando dispositivos externos, como controles de videogame ou teclados
Realizar intervenções humanas durante o aprendizado de política
Atualmente, o ambiente principal é uma simulação do robô Franka Panda baseada no MuJoCo, com tarefas como pegar um cubo.
Instalação
Primeiro, instale o pacote gym_hil no ambiente LeRobot:
pip install -e ".[hilserl]"Do que eu preciso?
- Um controle de videogame ou teclado para controlar o robô
- Uma GPU da Nvidia
Configuração
Para usar gym_hil com LeRobot, você precisa criar um arquivo de configuração. Um exemplo está disponível aqui. As principais seções de configuração incluem:
Tipo de Ambiente e Tarefa
{
"env": {
"type": "gym_manipulator",
"name": "gym_hil",
"task": "PandaPickCubeGamepad-v0",
"fps": 10
},
"device": "cuda"
}Tarefas disponíveis:
PandaPickCubeBase-v0: Ambiente básicoPandaPickCubeGamepad-v0: Com controle por gamepadPandaPickCubeKeyboard-v0: Com controle por teclado
Configuração do Processador
{
"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
}
}
}
}
}Parâmetros importantes:
gripper.gripper_penalty: Penalidade para movimento excessivo do garfogripper.use_gripper: Se deve habilitar o controle do garfoinverse_kinematics.end_effector_step_sizes: Tamanho dos passos nos eixos x, y, z do efector finalcontrol_mode: Defina como"gamepad"para usar um controle de gamepad
Executando com RL HIL do LeRobot
Uso Básico
Para executar o ambiente, defina o modo como null:
python -m lerobot.rl.gym_manipulator --config_path path/to/gym_hil_env.json
Gravando um Conjunto de Dados
Para coletar um conjunto de dados, defina o modo como record ao definir o repo_id e o número de episódios a serem gravados:
{
"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
Treinando uma Política
Para treinar uma política, consulte o exemplo de configuração disponível aqui e execute os servidores learner e actor. Inicie o learner primeiro, pois o actor se conecta a ele:
python -m lerobot.rl.learner --config_path path/to/train_gym_hil_env.json
Em um terminal diferente, execute o servidor de ator:
python -m lerobot.rl.actor --config_path path/to/train_gym_hil_env.json
O ambiente de simulação oferece uma maneira segura e repetível de desenvolver e testar seus componentes de aprendizado por reforço com intervenção humana (Human-In-the-Loop) antes de implantá-los em robôs reais.
Parabéns 🎉, você concluiu este tutorial!
Se você tiver alguma dúvida ou precisar de ajuda, entre em contato no Discord.
Citação do artigo:
@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}
}