Página web: https://serl-robot.github.io/
SERL proporciona un conjunto de bibliotecas, contenedores de entorno y ejemplos para entrenar políticas de RL para tareas de manipulación robótica. Las siguientes secciones describen cómo utilizar SERL. Ilustraremos el uso con ejemplos.
?: Vídeo de SERL, vídeo adicional sobre un ejemplo de RL eficiente.
Tabla de contenido
SERL: un paquete de software para el aprendizaje por refuerzo robótico eficiente con muestras
Instalación
Descripción general y estructura del código
Inicio rápido con SERL en Sim
Corre con Franka Arm en Real Robot
Contribución
Citación
Para las personas que usan SERL para tareas que implican controlar la pinza (por ejemplo, recoger objetos), recomendamos agregar una pequeña penalización al cambio de acción de la pinza, ya que mejorará en gran medida la velocidad de entrenamiento. Para más detalles, consulte: PR #65.
Además, también recomendamos realizar intervenciones en línea durante la capacitación, además de cargar las demostraciones fuera de línea. Si tienes un robot Franka y un SpaceMouse, esto puede ser tan fácil como tocar el SpaceMouse durante el entrenamiento.
Solucionamos un problema importante en el marco de acción de intervención. Ver versión v0.1.1 Actualice su código con la rama principal.
Configurar el entorno Conda: crear un entorno con
conda crear -n serl python = 3.10
Instale Jax de la siguiente manera:
Para CPU (no recomendado):
instalación de pip: actualización "jax[cpu]"
Para GPU:
instalación de pip --upgrade "jax[cuda12]==0.4.28" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
Para TPU
instalación de pip --actualizar "jax[tpu]" -f https://storage.googleapis.com/jax-releases/libtpu_releases.html
Consulte la página de Jax Github para obtener más detalles sobre la instalación de Jax.
Instalar serl_launcher
cd serl_launcher pip install -e .pip install -r requisitos.txt
SERL proporciona un conjunto de bibliotecas comunes para que los usuarios entrenen políticas de RL para tareas de manipulación robótica. La estructura principal para ejecutar los experimentos de RL implica tener un nodo actor y un nodo aprendiz, los cuales interactúan con el entorno del gimnasio robótico. Ambos nodos se ejecutan de forma asincrónica, y los datos se envían desde el actor al nodo alumno a través de la red mediante agentlace. El alumno sincronizará periódicamente la política con el actor. Este diseño proporciona flexibilidad para el entrenamiento y la inferencia paralelos.
Tabla para la estructura del código.
Directorio de códigos | Descripción |
---|---|
serl_launcher | Código principal para SERL |
serl_launcher.agentes | Políticas de agentes (por ejemplo, DRQ, SAC, BC) |
serl_launcher.envoltorios | Envolturas de entorno de gimnasio |
serl_launcher.datos | Búfer de reproducción y almacén de datos |
serl_launcher.vision | Modelos y utilidades relacionados con la visión. |
franka_sim | Franka mujoco ambiente de gimnasio de simulación |
serl_robot_infra | Infraestructura robótica para correr con robots reales |
serl_robot_infra.robot_servers | Servidor Flask para enviar comandos al robot a través de ROS |
serl_robot_infra.franka_env | Ambiente de gimnasio para robot franka real |
Proporcionamos un entorno simulado para probar SERL con un robot franka.
Consulte el inicio rápido con SERL en Sim
Ejemplo de entrenamiento a partir de la observación del estado.
Ejemplo de entrenamiento a partir de observación de imágenes.
Ejemplo de entrenamiento a partir de observación de imágenes con 20 trayectorias de demostración.
Proporcionamos una guía paso a paso para ejecutar políticas de RL con SERL en el robot Franka real.
Echa un vistazo a la carrera con Franka Arm en Real Robot
¿Inserción de clavijas?
Inserción de componentes de PCB
Enrutamiento de cables?
¿Reubicación de objetos? ️
¡Agradecemos las contribuciones a este repositorio! Bifurque y envíe un PR si tiene alguna mejora en el código base. Antes de enviar un PR, ejecute pre-commit run --all-files
para asegurarse de que el código base esté formateado correctamente.
Si utiliza este código para su investigación, cite nuestro artículo:
@misc{luo2024serl, title={SERL: un paquete de software para el aprendizaje por refuerzo robótico con muestras eficientes}, autor={Jianlan Luo y Zheyuan Hu y Charles Xu y You Liang Tan y Jacob Berg y Archit Sharma y Stefan Schaal y Chelsea Finn y Abhishek Gupta y Sergey Levine}, año={2024}, eprint={2401.16013}, archivePrefix={arXiv}, clase primaria={cs.RO}}