Página da Web: https://serl-robot.github.io/
SERL fornece um conjunto de bibliotecas, wrappers ambientais e exemplos para treinar políticas RL para tarefas de manipulação robótica. As seções a seguir descrevem como usar SERL. Ilustraremos o uso com exemplos.
?: Vídeo SERL, vídeo adicional em RL eficiente de amostra.
Índice
SERL: um conjunto de software para aprendizado de reforço robótico com eficiência de amostra
Instalação
Visão geral e estrutura de código
Início rápido com SERL no Sim
Corra com Franka Arm no Real Robot
Contribuição
Citação
Para pessoas que usam SERL para tarefas que envolvem o controle da garra (por exemplo, pegar objetos), recomendamos fortemente adicionar uma pequena penalidade à mudança de ação da garra, pois isso melhorará muito a velocidade de treinamento. Para obter detalhes, consulte: PR #65.
Além disso, também recomendamos fornecer intervenções on-line durante o treinamento, além de carregar demonstrações off-line. Se você tiver um robô Franka e um SpaceMouse, isso pode ser tão fácil quanto tocar no SpaceMouse durante o treinamento.
Corrigimos um problema importante no quadro de ação de intervenção. Consulte a versão v0.1.1. Atualize seu código com o branch principal.
Configure o ambiente Conda: crie um ambiente com
conda criar -n serl python=3.10
Instale o Jax da seguinte maneira:
Para CPU (não recomendado):
pip install --upgrade "jax[cpu]"
Para GPU:
pip install --upgrade "jax[cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
ParaTPU
pip install --upgrade "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
Consulte a página do Jax no Github para obter mais detalhes sobre a instalação do Jax.
Instale o serl_launcher
cd serl_launcher pip instalar -e .pip instalar -r requisitos.txt
SERL fornece um conjunto de bibliotecas comuns para os usuários treinarem políticas RL para tarefas de manipulação robótica. A estrutura principal de execução dos experimentos RL envolve ter um nó ator e um nó aprendiz, ambos interagindo com o ambiente do ginásio de robôs. Ambos os nós são executados de forma assíncrona, com os dados sendo enviados do ator para o nó aluno através da rede usando o agentlace. O aluno sincronizará periodicamente a política com o ator. Esse design oferece flexibilidade para treinamento e inferência paralelos.
Tabela para estrutura de código
Diretório de códigos | Descrição |
---|---|
serl_launcher | Código principal para SERL |
serl_launcher.agentes | Políticas de Agente (por exemplo, DRQ, SAC, BC) |
serl_launcher.wrappers | Invólucros de ambiente de ginástica |
serl_launcher.data | Buffer de reprodução e armazenamento de dados |
serl_launcher.vision | Modelos e utilitários relacionados à visão |
franka_sim | Ambiente de simulação de academia Franka mujoco |
serl_robot_infra | Infraestrutura de robôs para correr com robôs reais |
serl_robot_infra.robot_servers | Servidor Flask para envio de comandos ao robô via ROS |
serl_robot_infra.franka_env | Ambiente de academia para o verdadeiro robô Franka |
Fornecemos um ambiente simulado para testar SERL com um robô Franka.
Confira o início rápido com SERL no Sim
Exemplo de treinamento a partir de observação de estado
Exemplo de treinamento a partir de observação de imagens
Exemplo de treinamento a partir de observação de imagens com 20 trajetórias de demonstração
Fornecemos um guia passo a passo para executar políticas RL com SERL no robô Franka real.
Confira a corrida com Franka Arm no Real Robot
Inserção de pinos?
Inserção de componentes PCB
Roteamento de cabos?
Realocação de objetos ?️
Aceitamos contribuições para este repositório! Bifurque e envie um PR se você tiver alguma melhoria na base de código. Antes de enviar um PR, execute pre-commit run --all-files
para garantir que a base de código esteja formatada corretamente.
Se você usar este código para sua pesquisa, cite nosso artigo:
@misc{luo2024serl, title={SERL: A Software Suite for Sample-Efficient Robotic Reinforcement Learning}, autor={Jianlan Luo e Zheyuan Hu e Charles Xu e You Liang Tan e Jacob Berg e Archit Sharma e Stefan Schaal e Chelsea Finn e Abhishek Gupta e Sergey Levine}, ano={2024}, eprint={2401.16013}, archivePrefix = {arXiv}, primáriaClass = {cs.RO}}