Helicoptrek: Commande automatique d`un hélicoptère par
Transcription
Helicoptrek: Commande automatique d`un hélicoptère par
Helicoptrek: Commande automatique d’un hélicoptère par des méthodes d’apprentissage par renforcement P.A. Coquelin November 10, 2005 1 1.1 Présentation de la problématique et du projet dans son ensemble La problématique de contrôle d’un hélicoptère Un hélicoptère est repéré dans l’espace par un vecteur de dimension 12: X = (x, y, z, φ, θ, ω, dx, dy, dz, dφ, dθ, dω) où (x, y, z) sont les coordonnées cartésiennes du centre de gravité de l’hélicoptère repéré par rapport à un point fixe au sol, et (φ, θ, ω) sont les angles qui décrivent l’orientation de l’hélicoptère dans l’espace. Le vecteur des contrôles est de dimension 4: A = (a1 , a2 , a3 , a4 ), ou • a1 Contrôle l’angle d’attaque des pales du rotor principal • a2 Contrôle l’angle d’attaque des pales du rotor arrière (anti-couple) • a3 Contrôle l’orientation du plan de rotation des pales principales, inclinaison droite/gauche. • a4 Contrôle l’orientation du plan de rotation des pales principales, inclinaison avant/arrière. Les dynamiques d’état de l’hélicoptère sont relativement complexes car stochastiques et non linéaires, le problème est initialement en temps continu, et les espaces d’actions et d’états sont continus et de grandes dimensions. Le contrôle d’un hélicoptère est donc envisageable par les techniques de l’apprentissage par renforcement, mais il s’agit clairement d’un problème difficile. 1 1.2 Réalisation antérieure Deux approches principales ont été tentée avec l’apprentissage par renforcement [Ng1, Si1], l’une par programmation dynamique avec approximation et l’autre par recherche directe d’une politique optimale dans un espace de politiques paramétrées. Dans les deux cas l’apprentissage est réalisé offline sur un simulateur, le problème de base est celui de la stabilisation de l’appareil dans différentes conditions de vents, les approximateurs sont des réseaux de neurones et l’apprentissage est réalisé avec succès après quelques centaines de trajectoires. Dans [Si1] on s’intéresse en plus à l’adaptation du contrôleur à un changement des dynamiques dû à une panne éventuelle, et Ng et al. réalisent des figures de compétitions et stabilisent l’hélicoptère sur le dos [Ng2] (vidéos disponibles à : http://ai.stanford.edu/ ang//rl-videos/helicopter/) Ces deux réalisations prouvent que le problème est soluble par les méthodes du RL et les deux articles contiennent beaucoup d’informations pratiques intéressantes: design des contrôleurs, choix des dynamiques de récompenses, échantillonnage des données... 1.3 Objectif final du projet Helicoptrek Figure 1: L’helicoptère utilisé pour les tests online à l’école (avec une pale pliée après un jolie crash) L’objectif final d’Helicoptrek est la réalisation d’un hélicoptère qui apprend en vol avec les techniques de l’apprentissage par renforcement à suivre une trajectoire prédéfinie par l’utilisateur dans l’espace d’état (vitesses et angles inclus). Ce projet diffère des précédents sur différents aspects: • Aspect techniques: l’hélicoptère ne communique pas avec le sol ni avec des infrastructures extérieures (pas de GPS par exemple), les capteurs et le système de calcul sont embarqués. Ceci correspond à la situation d’un agent biologique autonome et isolé. • Aspect apprentissage: l’apprentissages des commandes optimales est effectuée pendant le vol réel et non sur un simulateur. Ceci implique que le contrôleur soit 2 prudent pendant les premières trajectoires et qu’il apprenne sans jamais crasher, il faut donc mettre en place «une exploration prudente». Ceci correspond aux conditions réelles d’apprentissage d’un pilote humain. Avant d’être appliquée en conditions réelles, on validera l’approche algorithmique sur un simulateur informatique. 1.4 Projet dans le cadre de la validation du master Pour la validation du cours d’appentissage par renforcement du Master MVA, il est proposé aux étudiants, par groupe de 2, de réaliser un programme informatique qui permet à l’hélicoptère d’effectuer un vol stationnaire ou/et des déplacements à petite vitesse (les grandes vitesses sont beaucoup plus stables) et/ou des pirouettes (pour les pirouettes réglementaires voir «http://www.modelaircraft.org/»). Les expériences seront réalisées sur le simulateur sous matlab très prochainement disponible à l’url «http://www.cmap.polytechnique.fr/%7munos/MVA/helicoptrek/simulateur/». On mettra l’accent sur au moins un des points suivants: • Robustesse du controleur: resistance à des rafales de vent, rétablissement à partir de position de initiale dangereuse... • Faible nombre de trajectoires pour s’entraîner. • Adaptation à des situations nouvelles comme un changement des dynamiques du à une panne. • Apprentissage sans jamais se cracher. On pourra utiliser par exemple un superviseur sous optimale programmé à partir d’une heuristique qui passe peu à peu la main à un algorithme optimal [Bar]. Le travail final comportera une présentation orale du travail effectué, un rapport écrit accompagné des codes Matlab du programme rendra compte de la pertinence de l’approche mathématique choisie et des résultats concrets obtenus, et une démonstration du programme informatique. Si des étudiants souhaitent s’investir d’avantage dans ce projet ou si les résultats obtenus sont particulièrement encourageants, il est tout fait envisageable d’implémenter l’algorithme obtenu sur l’interface de commande de l’hélicoptère RC que nous possédons à l’école. Il est aussi envisageable de travailler par la suite sur ce projet pendant le stage de validation du master (rémunération pas encore obtenue). Ce travail est relativement complexe donc n’hésitez pas à contacter R.Munos ([email protected]) ou P-A Coquelin ([email protected]) pour toutes questions ou informations complémentaires. De plus une partie de la bibliographie ainsi que ce rapport sont disponible à l’url «http://www.cmap.polytechnique.fr/%7Emunos/MVA/helicoptrek/biblio» 3 2 2.1 Approches possibles Recherche directe de la politique La recherche directe de politiques est le sujet chaud du moment en apprentissage par renforcement. Deux approches de recherche directe de politique optimale appliquée à la commande optimale d’hélicoptère ont été dévelopées [Bag, Ng1]. Vous trouverez toutes les informations sur ces projets aux url << http : //ai.stanf ord.edu/ ang/ >> et << http : //www.ri.cmu.edu/labs/lab2 1.html >>. La plus compréhensible et la plus aboutie est celle de Ng et al. Dans leur projet, l’hélicoptère est entraîné sur un modèle fitter par regression linéaire locale [Mo] sur 350 sec de données de vol commandé par un humain. Le contrôleur est un réseau de neurones, et l’algorithme utilisé pour l’optimsation de la politique est PEGASUS [Ng2]. Les résultats obtenus sont remarquable: l’hélicoptère est stable sur place, effectue des suivis de trajectoires et des figures de compétition comme le vol stabilisé sur le dos! [Ng3]. L’article est bien écrit et instructif, on pourra partir de cet article et réfléchir à ce qu’il est possible d’améliorer. On pensera en particulier à utiliser des techniques de réduction de variances des estimateurs du gradient de la politique [Bax, Mu] ou/et des paramétrisations plus interressante des politiques. 2.2 Programmation dynamique avec approximation La programmation dynamique avec approximation sert à résoudre les problèmes de contrôle en grande dimension ou dans les espaces d’état continus. Le principe est d’appliquer les techniques d’apprentissage supervisé comme les réseaux de neurones ou les méthodes à noyaux à l’approximation de la fonction valeur ou de son gradient. Il existe un grande littérature sur ces techniques, voir par exemple [SiBar]. Une approche pour la commande d’hélicoptère à été effectuée par «direct neural dynamic programing» (DNDP) [Si1, Si2]. Il ’agit d’un algorithme acteur-critique où l’acteur et le critique sont des réseaux de neurones entraînés par descente de gradient stochastique respectivement sur l’erreur de Bellman (critique) et sur la distance à la récompense maximale (acteur). L’approche est validée sur le simulateur FLIRT de l’hélicoptère Apache, et les résultats sont décrits avec précision, en particulier concernant le nombre de trajectoires effectuées avant la convergence. On pourra reprendre cette approche ou d’autres approches acteur-critique comme le Q-learning ou le TD(λ) et rechercher des approximateurs plus performants comme les regressions locales basées sur des noyaux [Has, Mo]. 2.3 Autres idées Tout autre idée basée sur des techniques d’apprentissage par renforcement sera la bienvenue si elle est discutée au préalable avec un des enseignants. 4 References [Ng1] Andrew Y.Ng, H.J.Kim, M. Jordan, S.Sastry, Autonomous helicopter fy using reinforcement learning, NIPS, 2003 [Ng2] Andrew Y. Ng and Michael Jordan, PEGASUS: A policy search method for large MDPs and POMDPs, In Uncertainty in Artificial Intelligence, Proceedings of the Sixteenth Conference, 2000. [Ng3] Andrew Y. Ng, Adam Coates, Mark Diel, Varun Ganapathi, Jamie Schulte, Ben Tse, Eric Berger and Eric Liang, Inverted autonomous helicopter flight via reinforcement learning, In International Symposium on Experimental Robotics, 2004. [Bag] Bagnell, Schneider, Autonomous helicopter control using reinforcement learning policy search method, 2001 [Si1] Enns, Si, Helicopter fly control using Neural dynamic Programing, Handbook of aproximate dynamic programing, 2004 [Si2] Si, Yang, Lui, Direct Neural Dynamic programing, Handbook of aproximate dynamic programing [Has] Hastie, Tibshirami, Friedman, The element of statistical learning, Springer [Mo] C.Atkeson, A.Moore, S Shaal, Locally Weithed learning, 1996 [SiBar] Handbook of aproximate dynamic programming, IEEE Wiley, 2004 [Mu] R.Munos, Geometric variance reduction in Markov chains. Application to value function and gradient estimation, AAAI, 2005 [Bax] Baxter, Barlett, Variance reduction technich [Bar] A.Barto, A.Rosenstein, Supervised actor critic 5