Conduite d'une voiture de course par régulation génétique
Le but de ce projet est d'utiliser un réseau de régulation génétique pour piloter une voiture de course virtuelle. Pour cela, le GRN utilise les entrées générées par le simulateur Open-Source TORCS pour modifier les commandes de la voiture (volant et pédales de frein et accélérateur). L'idée est de laiser le GRN gérer la totalité des commandes en simplifiant au maximum l'interconnexion entre le GRN et la voiture : le GRN doit être capable de:
Un algorithme génétique optimise le réseau de regulation génétique. Pour cela, une évolution incrémentale est utilisée pour tout d'abord apprendre le GRN à conduire (accélérer, freiner, tourner, etc.). Puis le meilleur GRN est réentrainé pour être généralisé afin de pouvoir conduire sur n'importe quel circuit. Enfin, le comportement du GRN est optimisé pour supprimer tous les défauts qui pourraient l'empêcher d'être un bon compétiteur. La vidéo ci-dessous montre l'évolution du GRN étape après étape.
Ce contrôleur a été présenté à la compétition "Simulated Car Racing Championship" lors de la conférence GECCO 2013. Le GRN est arrivé à la troisième place dès sa première participation.
Les résultats obtenus par le GRN se sont intéressants pour plusieurs raisons. Tout d'abord, cette approche est capable de généraliser facilement la conduite sur n'importe quel type de circuit (ville, montagne, etc.) et sur n'importe quelle type de surface (asphalte, pierre, sable, etc.). En effet, le GRN n'a été évolué que sur 3 circuits en asphalte et se montre tout de même efficace pour conduire sur les autres types de surface.
De plus, le GRN est aussi naturellement résistant au bruit. Alors que l'apprentissage est effectué sans bruit sur les entrées du réseau, la compétition stipule que celles-ci subissent un bruit aléatoire de 10%. Supprimer le bruit lors de l'apprentissage simplifie fortement cette phase puisque qu'une seule évaluation est nécessaire dans un environnement déterministe alors qu'une évaluation moyennée sur plusieurs tests est obligatoire quand de l'aléatoire entre en jeux. Comme le montre la vidéo ci-dessous, le bruit n'impacte que très peu la conduite du GRN. Cette propriété est cruciale car la grande majorité les capteurs robotiques sont bruités et ce bruit est souvent un des enjeux majeurs du problème de "Reality gap" connu dans le monde de la robotique.
Enfin, les entrées du GRN peuvent être modifiées à la volée pour le faire rouler plus vite (spécialisation du GRN pour un circuit particulier) ou le faire éviter des opposants. En modifiant sa vision, il est possible de modifier son comportement tout en gardant un contrôle sur la dynamique par rapport à la situation courante. Cette solution est innovante car c'est souvent les sorties qui sont modifiées et non les entrées.
Sylvain Cussat-Blanc (Université Toulouse 1 Capitole - IRIT)
Stéphane Sanchez (Université Toulouse 1 Capitole - IRIT)