Hecho con Unity: Robots de fútbol con ML-Agents

ANTHONY NAVARRO / UNITY TECHNOLOGIESSenior Technical Product Manager
Aug 6, 2021|8 minutos
Hecho con Unity: Robots de fútbol con ML-Agents
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Nuestro Hecho con Unity: AI La serie muestra proyectos de Unity realizados por creadores para una variedad de propósitos que involucran nuestros productos de inteligencia artificial. En este ejemplo, ML-Agents empoderó a los desarrolladores de IA al permitirles configurar de manera rápida y sencilla entornos de aprendizaje automático y entrenar a un agente para jugar al fútbol antes de transferir finalmente ese agente a un robot real.

El kit de herramientas de agentes de aprendizaje automático de Unity (ML-Agents) permite a los usuarios comenzar fácilmente con el aprendizaje de refuerzo (RL) utilizando Unity. ML-Agents ofrece a los usuarios una variedad de entornos de muestra y arquitecturas de modelos que pueden usar para comenzar a trabajar con RL. Los usuarios pueden luego ajustar los hiperparámetros para experimentar y mejorar los modelos resultantes. Todo esto puede suceder sin que el usuario tenga que preocuparse por crear un entorno Unity o importar activos, y no hay necesidad inmediata de codificación. Este proyecto japonés de Ghelia Inc. utilizó el entorno de fútbol ML-Agents para entrenar a un agente para jugar al fútbol. El modelo RL resultante se implementó luego en robots Sony Toio reales para jugar al fútbol. Este es un ejemplo interesante de simulación del mundo real con robótica que utiliza ML-Agents para entrenar.

Entrevistamos a Ryo Shimizu, CEO y presidente de Ghelia; Hidekazu Furukawa, programador principal de la Oficina de Innovación y Estrategia de Marca; y Masatoshi Uchida, gerente de la Sección de Innovación de la Oficina de Innovación y Estrategia de Marca para descubrir qué los inspiró a construir este proyecto. Continúe leyendo para descubrir cómo utilizaron ML-Agents Toolkit para entrenar a un robot del mundo real a jugar al fútbol y cómo una pelota de golf encaja en este escenario.

Fútbol robótico con ML-Agents y Sony toio

¿Qué te inspiró a crear tu proyecto?
Ghelia es una empresa que se centra en aplicaciones de aprendizaje de refuerzo. El fundador de Ghelia, Hiroaki Kitano, lanzó RobocupSoccer y desarrolló el AIBO en Sony. Nuestro equipo había construido previamente una demostración de air hockey, pero como constaba de muchos componentes diferentes, no era muy portátil. Cuando empezamos a discutir la creación de otra demostración para explicar a los clientes qué es el aprendizaje de refuerzo, queríamos algo que fuera más fácil de llevar a cabo. Como ML-Agents ya contaba con un entorno de fútbol, ​​tenía sentido utilizar los pequeños y portátiles robots toio de Sony para crear un juego de fútbol, ​​que también podría generar contenido viral.

Imagen de una manifestación de fútbol de la MLA con una representación en 3D de un estadio de fútbol
¿Cómo transferiste el modelo ML-Agent al robot real?

Para aplicar el aprendizaje de refuerzo a un robot real, el robot debe existir en un entorno de simulación. Afortunadamente, toio ya tiene un simulador llamado toio SDK para Unity. Al agregarle el paquete ML-Agents , pudimos usarlo para capacitación de inmediato. Si bien el SDK de toio proporcionó los modelos de robot para Unity, aún necesitábamos crear la pelota. Utilizamos el motor de física de Unity para recrear la pelota en el simulador y necesitábamos encontrar una pelota del mundo real que coincidiera con los resultados de la simulación. Resulta que una pelota de golf produjo resultados reales que reflejaban los resultados del entrenamiento. La posición de la pelota se detectó en la simulación utilizando el valor de transformación de Unity , y en el mundo real mediante el reconocimiento de imágenes utilizando OpenCV y una cámara.

Demostración de fútbol de la MLA con robots hechos con piezas de Lego
¿Cuál fue su configuración de hardware para ejecutar esto en el mundo real?

Usamos una pelota de golf para representar la pelota de fútbol, pero para aumentar la tasa de reconocimiento, la pintamos de rojo. Sorprendentemente, pudimos usar solo un iPhone y su cámara para detectar la pelota, controlar los ocho robots (era un partido de fútbol de cuatro contra cuatro) y realizar inferencias con el modelo ML-Agents .

Demostración de fútbol de ML-Agents con un diseño de fútbol y agentes ML de Lego y una pelota de golf roja como balón de fútbol.
¿Cómo diseñaste tu función de recompensa?

Al principio había muchos goles en propia puerta, así que intentamos ofrecer una recompensa negativa por cada gol en propia puerta. Sin embargo, esto provocó que los porteros no defendieran su portería. Cuando intentamos dar una recompensa positiva por mover la pelota, ambos equipos simplemente iban de un lado a otro, sin meter la pelota en el arco, básicamente ganando tiempo. Finalmente decidimos premiar con un punto a quien metiera el balón en la portería contraria y quitar un punto a quien marcara.

¿Cuál fue la parte más desafiante de este proyecto?

A veces era difícil determinar por qué los robots reales no funcionaban tan bien como en la simulación. Por ejemplo, a veces la inferencia no funcionaba porque operábamos el robot en un piso ligeramente inclinado. Otras veces, la pelota rebotaba de forma diferente a la simulación, por lo que los robots no respondían como se esperaba. El posicionamiento de la cámara también era bastante sensible y requería una precisión milimétrica, lo que dificultaba su ajuste en el lugar del evento todos los días. Después de cada conjunto importante de mejoras al modelo, entrenamos durante unos tres días. Al final tuvimos alrededor de seis sesiones de entrenamiento para lograr nuestros resultados.

Los robots virtuales pueden colisionar sin impacto real, pero las colisiones de robots reales pueden causar problemas. ¿Cómo abordaste este problema?

En la demostración de ML-Agents , después de un gol, los agentes se alinean en su posición original, pero no es tan simple para los robots reales. Algunos problemas, como evitar colisiones entre toios, eran difíciles de resolver únicamente mediante el aprendizaje de refuerzo. Aunque inicialmente intentamos diseñar una función de recompensa para este escenario, finalmente lo resolvimos heurísticamente.

Gif de simulación de un agente de la MLA jugando al fútbol
¿Su proyecto es de código abierto y hay más información disponible?

Si hubiera demanda, definitivamente consideraríamos hacer este proyecto de código abierto. Puede encontrar detalles adicionales sobre este proyecto en nuestra publicación de blog (en japonés).

¿Qué consejo le darías a los creadores de Unity que quieran utilizar el aprendizaje automático en sus proyectos?

La IA, especialmente el aprendizaje profundo, es fascinante, pero no se comprende bien. No puedes apreciar completamente su belleza y complejidad hasta que trabajas con él de primera mano, y eso es una pena, por eso alentamos a los desarrolladores de Unity de todo el mundo a que lo prueben. Quiero destacar lo divertido que es el aprendizaje automático y que Unity ML-Agents es un sistema que te permite comenzar a trabajar con el aprendizaje automático fácilmente o incorporarlo a tu proyecto.

Más información

Comience a utilizar Unity ML-Agents o conozca más sobre los paquetes de Unity Robotics hoy mismo. Si su proyecto requiere que inicie varias sesiones de capacitación en paralelo, contáctenos para obtener más información sobre nuestra oferta de ML-Agents Cloud .

Hidekazu Furukawa también ha publicado un libro japonés llamado Unity ML-Agents Practical Game Programming que detalla cómo comenzar con el aprendizaje de refuerzo utilizando ML-Agents.