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