Réalisé avec Unity: Robots footballeurs avec ML-Agents

Notre Réalisé avec Unity: IA La série présente des projets Unity réalisés par des créateurs à des fins diverses impliquant nos produits d'intelligence artificielle. Dans cet exemple, ML-Agents a donné du pouvoir aux développeurs d’IA en leur permettant de configurer rapidement et facilement des environnements d’apprentissage automatique et d’entraîner un agent à jouer au football avant de transférer finalement cet agent à un vrai robot.
Unity Machine Learning Agents Toolkit (ML-Agents) permet aux utilisateurs de démarrer facilement avec l'apprentissage par renforcement (RL) à l'aide Unity. ML-Agents offre aux utilisateurs une variété d'exemples d'environnements et d'architectures de modèles qu'ils peuvent utiliser pour commencer à travailler avec RL. Les utilisateurs peuvent ensuite régler les hyperparamètres pour expérimenter et améliorer les modèles résultants. Tout cela peut se produire sans que l’utilisateur ait à se soucier de créer un environnement Unity ou d’importer des ressources – et il n’y a aucun besoin immédiat de codage. Ce projet japonais de Ghelia Inc. a utilisé l' environnement de football ML-Agents pour former un agent à jouer au football. Le modèle RL résultant a ensuite été déployé sur de vrais robots Sony toio pour jouer au football. Il s'agit d'un exemple passionnant de simulation dans le monde réel avec la robotique utilisant des ML-Agents pour s'entraîner.
Nous avons interviewé Ryo Shimizu, PDG et président de Ghelia, Hidekazu Furukawa, programmeur principal du bureau de l'innovation et de la stratégie de marque, et Masatoshi Uchida, responsable de la section Innovation du bureau de l'innovation et de la stratégie de marque, pour découvrir ce qui les a inspirés à construire ce projet. Lisez la suite pour découvrir comment ils ont utilisé ML-Agents Toolkit pour former un robot du monde réel à jouer au football et comment une balle de golf s'intègre dans ce scénario.
Qu'est-ce qui vous a inspiré pour créer votre projet ?
Ghelia est une entreprise qui se concentre sur les applications d'apprentissage par renforcement. Le fondateur de Ghelia, Hiroaki Kitano, a lancé RobocupSoccer et développé l'AIBO chez Sony. Notre équipe avait déjà construit une démo de air hockey, mais comme elle était composée de nombreux composants différents, elle n'était pas très portable. Lorsque nous avons commencé à discuter de la création d’une autre démo pour expliquer aux clients ce qu’est l’apprentissage par renforcement, nous voulions quelque chose qui serait plus facile à transporter. Étant donné que ML-Agents disposait déjà d'un environnement de football, il était logique d'utiliser les petits robots portables Sony toio pour créer un jeu de football, qui pourrait également conduire à un contenu viral.

Pour appliquer l’apprentissage par renforcement à un vrai robot, celui-ci doit exister dans un environnement de simulation. Heureusement, toio dispose déjà d'un simulateur appelé toio SDK pour Unity. En y ajoutant le package ML-Agents , nous avons pu l'utiliser immédiatement pour la formation. Alors que le SDK toio fournissait les modèles de robot pour Unity, nous devions encore créer la balle. Nous avons utilisé le moteur physique d'Unity pour recréer la balle dans le simulateur et nous devions trouver une balle réelle qui correspondrait aux résultats de la simulation. Il s’avère qu’une balle de golf produisait des résultats réels qui reflétaient les résultats de l’entraînement. La position de la balle a été détectée dans la simulation en utilisant la valeur de transformation Unity , et dans le monde réel par reconnaissance d'image en utilisant OpenCV et une caméra.

Nous avons utilisé une balle de golf pour représenter le ballon de football, mais pour augmenter le taux de reconnaissance, nous l'avons peinte en rouge. Étonnamment, nous avons pu utiliser un seul iPhone et sa caméra pour détecter le ballon, contrôler les huit robots (c'était un match de football à quatre contre quatre) et effectuer des inférences avec le modèle ML-Agents .

Au début, il y avait beaucoup de buts contre son camp, donc nous avons essayé de fournir une récompense négative pour un but contre son camp. Cependant, cela a eu pour conséquence que les gardiens de but n'ont pas défendu leur but. Lorsque nous avons essayé de donner une récompense positive pour avoir déplacé le ballon, les deux équipes se sont contentées d'aller et venir, sans mettre le ballon dans le but, essayant essentiellement de gagner du temps. Finalement, nous avons décidé de récompenser d'un point celui qui met le ballon dans le but adverse et de retirer un point à celui qui est marqué.
Il était parfois difficile de déterminer pourquoi les robots réels ne fonctionnaient pas aussi bien que la simulation. Par exemple, parfois l’inférence ne fonctionnait pas parce que nous utilisions le robot sur un sol légèrement incliné. D'autres fois, la balle rebondissait différemment de la simulation, de sorte que les robots ne réagissaient pas comme prévu. Le positionnement de la caméra était également assez sensible, nécessitant une précision de l'ordre du millimètre, ce qui rendait difficile son réglage quotidien sur le site de l'événement. Après chaque série d’améliorations majeures apportées au modèle, nous nous sommes entraînés pendant environ trois jours. Au final, nous avons eu environ six séances d'entraînement pour arriver à nos résultats.
Dans la démo ML-Agents , après un but, les agents s'alignent dans leur position d'origine, mais ce n'est pas si simple pour les vrais robots. Certains problèmes, comme éviter les collisions entre les toios, étaient difficiles à résoudre par le seul apprentissage par renforcement. Bien que nous ayons initialement essayé de concevoir une fonction de récompense pour ce scénario, nous l’avons finalement résolu de manière heuristique.

S'il y avait une demande, nous envisagerions certainement de rendre ce projet open source. Vous pouvez trouver des détails supplémentaires sur ce projet dans notre article de blog (en japonais).
L’IA, en particulier l’apprentissage profond, est fascinante, mais elle est mal comprise. Vous ne pouvez pas apprécier pleinement sa beauté et sa complexité tant que vous n'avez pas travaillé avec lui de première main, et c'est dommage, c'est pourquoi nous encourageons les développeurs Unity du monde entier à l'essayer. Je tiens à souligner à quel point l’apprentissage automatique est amusant et Unity ML-Agents est un système qui vous permet de démarrer facilement avec l’apprentissage automatique ou de l’intégrer à votre projet.
Commencez à utiliser Unity ML-Agents ou apprenez-en davantage sur les packages Unity Robotics dès aujourd'hui. Si votre projet nécessite de lancer plusieurs sessions de formation en parallèle, contactez-nous pour en savoir plus sur notre offre ML-Agents Cloud .
Hidekazu Furukawa a également publié un livre japonais intitulé Unity ML-Agents Practical Game Programming qui explique comment démarrer avec l'apprentissage par renforcement à l'aide de ML-Agents.
