FR 2977333 A1 20130104 FR 1155779 A 20110628 L'invention concerne le pilotage des drones à voilure tournante tels que les quadricoptères et analogues. Ces drones sont pourvus de rotors multiples entraînés par des moteurs respectifs commandables de manière différenciée afin de piloter le drone 5 en attitude et en vitesse. Un exemple typique d'un tel drone est le AR.Drone de Parrot SA, Paris, France, qui est un quadricoptère équipé d'une série de capteurs (accéléromètres, gyromètres trois axes, altimètre). Le drone est également pour-vu d'une caméra frontale captant une image de la scène vers laquelle est 10 dirigé le drone, ainsi que d'une caméra de visée verticale captant une image du terrain survolé. Ce drone est piloté par l'utilisateur au moyen d'un dispositif de télécommande déportée - ci-après désigné "appareil" - relié au drone par une liaison radio. 15 Le WO 2010/061099 A2 (Parrot SA) décrit en particulier un tel drone et son principe de pilotage par l'intermédiaire d'un téléphone ou baladeur multimédia à écran tactile et accéléromètre intégré, par exemple un télé-phone cellulaire de type iPhone ou un baladeur ou une tablette multimédia de type iPod Touch ou iPad (marques déposées de Apple Inc., USA). 20 Ces appareils incorporent les divers organes de contrôle nécessaires à la détection des commandes de pilotage et à l'échange bidirectionnel de données avec le drone via une liaison sans fil de type réseau local Wi-Fi (IEEE 802.11) ou Bluetooth (marques déposées). En particulier, l'appareil est pourvu d'un écran tactile affichant l'image captée par la caméra fron- 25 tale, avec en superposition un certain nombre de symboles permettant l'activation de commandes par simple contact du doigt de l'utilisateur sur l'écran tactile. Cet affichage permet en outre un "pilotage immersif" où l'utilisateur, au lieu de piloter le drone en regardant celui-ci, utilise l'image de la caméra de la même façon que s'il se trouvait à bord du drone. 30 L'invention concerne plus précisément l'exécution automatique de figures de voltige du type "vrille" ou "tonneau" (rotation du drone d'un tour complet autour de son axe de roulis) ou bien "salto" ou "saut périlleux" (rotation du drone d'un tour complet autour de son axe de tangage). La vrille peut être à droite ou à gauche, selon le sens de rotation. Elle peut 35 être également constituée de plusieurs tours complets enchaînés ; dans la suite on décrira une figure constituée d'un tour unique, mais cette description ne présente pas de caractère limitatif. On décrira également une figure réalisée à partir d'une configuration où le drone est initialement immobile, en sustentation, mais cette configuration n'est pas limitative non plus : la vrille peut être effectuée par exemple avec une composante de vitesse horizontale, un point du drone décrivant alors dans un repère absolu une trajectoire hélicoïdale et non plus circulaire. Le salto peut être vers l'avant ou vers l'arrière, selon que la rotation est initiée avec un cabrage ou un piqué du drone, respectivement. On notera que le salto ne diffère de la vrille que par l'axe de rotation (roulis au lieu de tangage). De ce fait, on ne décrira dans la suite que l'exécution d'une vrille, mais tout ce qui sera dit pour une vrille pourra être transposé à l'exécution d'un salto, mutatis mutandis avec un choix différent d'axe de rotation. La bonne exécution d'une telle figure, vrille ou salto, se heurte à plusieurs difficultés. L'une d'entre elles tient au fait que lorsque les moteurs sont commandés de manière à provoquer la rotation recherchée du drone, du fait de l'inversion de poussée droite/gauche ou avant/arrière qui permet de déclencher cette rotation autour de l'axe de roulis ou de tangage, le drone n'est plus sustenté et va de ce fait perdre de l'altitude entre le début et la fin de la figure (à la différence d'une rotation autour d'un axe de lacet, où le drone reste sensiblement à plat pendant la rotation). Une autre difficulté réside dans le bouclage précis d'une rotation d'un tour complet, c'est-à-dire une rotation de 360° sans dépassement angulaire qui se traduirait par une oscillation du drone autour de sa position horizon-tale finale. Cet inconvénient est d'autant plus marqué que la figure est exécutée rapidement - or, cette rapidité est indispensable, non seulement pour accentuer le côté spectaculaire de la figure, mais aussi et surtout pour limiter les effets, évoqués plus haut, de la perte de sustentation pendant l'exécution de la figure. Ainsi, le problème de l'invention est de pouvoir réaliser une figure de type vrille ou salto sur un tour complet, sans perte d'altitude du drone entre l'instant de début et l'instant de fin de la figure, et en achevant la figure de façon nette et précise, sans oscillation autour de la position horizontale finale. L'invention vise pour cela un procédé de contrôle dynamique d'attitude d'un drone à voilure tournante à rotors multiples entraînés par des mo- teurs respectifs commandés de manière différenciée pour l'exécution automatique d'une figure préprogrammée de type vrille, respectivement de type salto, par rotation du drone sur un tour complet autour d'un axe de rotation constitué par l'axe de roulis, respectivement par l'axe de tangage, du drone. De façon caractéristique, le procédé de l'invention prévoit, à réception d'une instruction de déclenchement de la figure préprogrammée, l'exécution de la séquence d'étapes suivante : a) commande simultanée des moteurs de manière à imprimer au drone une impulsion préalable de poussée verticale vers le haut ; b) commande différenciée non asservie des moteurs de manière à produire une rotation du drone autour de l'axe de rotation, depuis une position angulaire initiale jusqu'à une position angulaire intermédiaire prédéterminée ; puis c) commande différenciée asservie des moteurs de manière à achever la rotation du drone sur un tour complet autour de l'axe de rotation, progressivement depuis la position angulaire intermédiaire avec une vitesse angulaire non nulle, jusqu'à une position angulaire finale avec une vitesse angulaire nulle. De préférence, l'étape c) comprend les sous-étapes consistant à : c1) impartir une valeur de temps d'arrêt entre la position angulaire inter- médiaire et la position angulaire finale ; c2) mesurer la vitesse angulaire du drone lorsque celui-ci atteint la position angulaire intermédiaire prédéterminée ; c3) à partir du temps d'arrêt imparti à l'étape c1) et de la mesure acquise à l'étape c2), paramétrer une fonction prédictive prédéterminée modélisant une variation continue optimale de la position angulaire du drone en fonction du temps, depuis la position angulaire intermédiaire jusqu'à la position angulaire finale à la fin du temps imparti ; et c4) à partir de la fonction prédictive paramétrée à l'étape c3), générer des valeurs de consigne correspondant à une position angulaire ci- ble précalculée à un instant donné, et appliquer ces valeurs de consigne à une boucle d'asservissement de contrôle des moteurs du drone. Les valeurs de consigne sont en particulier des consignes d'angle d'incli- naison du drone par rapport à son axe de roulis, respectivement par rapport à son axe de tangage. La fonction prédictive prédéterminée est une fonction polynomiale, notamment du troisième ordre, et l'étape c3) de paramétrage de cette fonction est une étape de détermination des coefficients du polynôme. Plus précisément, cette fonction polynomiale est une fonction du type v(t) = a.t3 + b.t2 + c.t + d, (p(t) étant la position angulaire correspondant à la valeur de consigne générée à l'étape c4), et cl, b, c et et étant les coefficients du polynôme paramétré à l'étape c3), tels que : 1 2 * (Pinitial = T2 T + h initial ) 1 3 * (Pinitial b = - * + 2 * P initial ) C - Pinitial d = (Pinitial 20 T étant la valeur du temps d'arrêt imparti à l'étape c1), yi'itiai étant la valeur d'angle de la position angulaire intermédiaire, et pi'itial étant la vitesse angulaire du drone mesurée à l'étape c2), pour la position angulaire intermédiaire. Avantageusement, le procédé prévoit au moins une réitération des étapes 25 c2) et c3) lorsque le drone atteint une position angulaire prédéterminée de redéfinition des consignes, cette position angulaire de redéfinition des consignes étant comprise entre la position angulaire intermédiaire de l'étape b) et la position angulaire finale, et la position angulaire de redéfinition étant prise comme nouvelle position angulaire intermédiaire pour le 30 paramétrage de l'étape c3). Enfin, le procédé peut comprendre en outre, une fois la position angulaire finale atteinte, une étape finale de : d) transition jusqu'à un état de sustentation du drone avec activation d'une boucle de commande de vol stationnaire apte à stabiliser le15 drone avec une vitesse linéaire horizontale nulle et une inclinaison nulle par rapport au sol. L'invention a également pour objet un logiciel, téléchargeable dans une mémoire numérique d'un drone à voilure tournante, et comprenant des instructions qui, lorsqu'elles sont exécutées à réception d'une instruction de déclenchement d'une figure préprogrammée de type vrille ou de type salto en provenance d'un appareil de télécommande, mettent en oeuvre un procédé tel que ci-dessus de contrôle dynamique d'attitude du drone. 0 On va maintenant décrire un exemple de mise en oeuvre du procédé de l'invention, en référence aux dessins annexés où les mêmes références numériques désignent d'une figure à l'autre des éléments identiques ou fonctionnellement semblables. La Figure 1 est une vue d'ensemble montrant le drone et la télécommande associée permettant son pilotage à distance. La Figure 2 est une vue perspective du drone, montrant notamment les principaux axes de rotation impliqués dans le contrôle d'attitude. La Figure 3 est une vue de face du drone, montrant les différentes phases de la rotation autour de l'axe de roulis lors de l'exécution d'une figure de type vrille. La Figure 4 représente sous forme d'un diagramme d'états les différentes configurations fonctionnelles dans lesquelles peut se trouver le drone. La Figure 5 est un schéma par blocs des différents organes de contrôle et d'asservissement ainsi que de pilotage automatique du drone. Les Figures 6a et 6b sont des caractéristiques décrivant en fonction du temps, respectivement en termes d'angle et de vitesse angulaire, la trajectoire de référence idéale dans la phase finale de rotation planifiée. Les Figures 7a et 7b sont des caractéristiques décrivant en fonction du temps les variations mesurées des valeurs, respectivement d'angle et de vitesse angulaire, par rapport à la trajectoire de référence idéale et par rapport aux consignes appliquées dans la phase finale de rotation planifiée. On va maintenant décrire un exemple de mise en oeuvre de l'invention. Sur la Figure 1, la référence 10 désigne de façon générale un drone de type quadricoptère, tel que par exemple le AR.Drone de Parrot SA, Paris, France, décrit notamment dans le WO 2010/061099 A2 précité, ainsi que dans les WO 2009/109711 A2 (système de stabilisation automatique) et FR 2 915 569 Al (système de contrôle du drone par gyromètres et accéléromètres). Ce drone comporte quatre rotors coplanaires 12 dont les moteurs sont pilotés indépendamment par un système intégré de navigation et de contrôle d'attitude. Le drone comporte également une caméra frontale 14 donnant une image de la scène vers laquelle se dirige le drone, ainsi qu'une caméra à visée verticale 16 donnant une image du sol 18 et servant également au calcul de la vitesse de translation horizontale. Des capteurs inertiels (accéléromètres et gyromètres) permettent de mesurer avec une certaine précision les vitesses angulaires et les angles d'attitude du drone, c'est-à-dire les angles d'Euler décrivant l'inclinaison du drone par rapport à un repère terrestre absolu. Un télémètre à ultrasons 20 disposé sous le drone fournit par ailleurs une mesure de l'altitude par rapport au sol 18. Le drone 10 est piloté par un appareil de télécommande distant 22 pourvu d'un écran tactile 24 affichant l'image embarquée par la caméra frontale 14, avec en superposition un certain nombre de symboles permettant l'activation de commandes de pilotage par simple contact du doigt 26 de l'utilisateur sur l'écran tactile 24. Comme indiqué en introduction, l'appareil 22 est avantageusement constitué par un téléphone ou baladeur multimedia à écran tactile et accéléromètre intégré, par exemple un téléphone cellulaire de type iPhone, un baladeur de type iPod Touch ou une tablette multimédia de type iPad, qui sont des appareils incorporant les divers organes de contrôle nécessaires à l'affichage et à la détection des comman- des de pilotage, à la visualisation de l'image captée par la caméra frontale, et à l'échange de données avec le drone par une liaison radio bidirectionnelle permettant l'envoi de commandes de pilotage vers le drone, et en sens inverse la transmission de l'image captée par la caméra 14 ainsi que de données d'état du drone. Cette liaison radio peut être no- tamment de type réseau local Wi-Fi (IEEE 802.11) ou Bluetooth (marques déposées). L'appareil de télécommande 22 est également pourvu de capteurs d'inclinaison permettant de contrôler l'attitude du drone en imprimant à l'appareil des inclinaisons correspondantes selon des axes de roulis et de tangage (on pourra se référer au WO 2010/061099 A2 précité pour plus de détails sur ces aspects du système). L'utilisateur pilote directement le drone par une combinaison : - de commandes disponibles sur l'écran tactile, notamment "montée/descente" (correspondant à une commande des gaz) et "rotation à droite/rotation à gauche" (pivotement du drone autour d'un axe de la- cet) ; et - de signaux émis par le détecteur d'inclinaison de l'appareil : par exemple, pour faire avancer le drone l'utilisateur incline son appareil selon l'axe de tangage correspondant, et pour déporter le drone à droite ou à gauche il incline ce même appareil par rapport à l'axe de roulis : ainsi, si les moteurs sont commandés de manière que le drone s'incline ou "plonge" vers le bas (inclinaison suivant un angle de tangage), alors il va progresser vers l'avant avec une vitesse d'autant plus élevée que l'inclinaison sera importante ; inversement s'il se "cabre" dans le sens opposé, sa vitesse va progressivement ralentir puis s'inverser en repar- tant vers l'arrière. De la même façon, une inclinaison suivant un axe de roulis (le drone penche à droite ou à gauche) va provoquer un déplacement linéaire du drone en translation horizontale vers la droite ou vers la gauche. Le drone possède également un système automatique et autonome de stabilisation en vol stationnaire, activé notamment dès que l'utilisateur retire son doigt de l'écran tactile de l'appareil, ou automatiquement à la fin de la phase de décollage, ou encore en cas d'interruption de la liaison radio entre l'appareil et le drone. Le drone passe alors à un état de sustentation où il sera immobilisé et maintenu dans cette position fixe par le sys- tème de pilotage automatique et de stabilisation, sans aucune intervention de l'utilisateur. La Figure 2 illustre le drone 10 avec ses axes de rotation, respectivement axes de tangage 28, de roulis 30 et de lacet 32, ainsi que le repère (u,v,w) lié au corps du drone dans lequel seront exprimées plus loin les différen- tes équations modélisant le comportement dynamique du drone. L'invention concerne plus précisément l'exécution d'une figure de type vrille, correspondant à une rotation d'un tour complet autour de l'axe de roulis 30, ou de type salto, correspondant à une rotation d'un tour complet autour de l'axe de tangage 28. On décrira ci-dessous l'exécution d'une vrille, l'exécution d'un salto étant identique, après permutation des axes de roulis 30 et de tangage 28. Sur la Figure 3, on a schématisé les différentes phases d'une vrille, exécutée par définition avec un angle de tangage constant, sensiblement nul, et un angle de roulis variant de rP = 0° à rP = 360°. De façon caractéristique de l'invention, l'exécution de la vrille comprendra trois phases successives avec : - Phase 1 : impulsion préalable de poussée verticale imprimée au drone de manière à compenser la perte de sustentation et l'inversion de poussée pendant le retournement, afin que l'altitude en fin de vrille (rp = 360°) soit sensiblement la même que l'altitude initiale (rp = 0°) ; - Phase 2 : rotation imprimée par l'envoi direct aux moteurs de comman- des en boucle ouverte ; - Phase 3 : achèvement du tour par commande planifiée, asservie, des moteurs de manière à terminer la figure avec le même angle de roulis 20 final (çp = 360°) que l'angle de roulis initial, nul (rp = 0°). Ces différentes phases seront décrites plus en détail par la suite, après que l'on ait décrit l'architecture générale des commandes du drone et des organes de contrôle et d'asservissement de celui-ci. 25 Intégration de la fonction vrille/salto dans le diagramme de séquencement du drone Sur la Figure 4, on a représenté sous forme d'un diagramme d'états les différentes configurations fonctionnelles dans lesquelles peut se trouver le 30 drone. Juste après l'allumage et un certain nombre d'étapes d'initialisation (bloc 34), le drone se trouve à l'état "posé" (bloc 36), avec les moteurs prêts à démarrer. L'envoi d'une commande par l'utilisateur provoque le lancement des moteurs et le décollage du drone (bloc 38). Ensuite, deux modes 35 principaux de fonctionnement sont possibles : - dans un premier mode de pilotage ou "vol piloté" (bloc 40), le pilotage du drone est opéré de façon directe par l'utilisateur, au moyen, comme expliqué plus haut, d'une combinaison de signaux émis par le détecteur d'inclinaison de l'appareil et de commandes disponibles sur l'écran tac- file , - l'autre mode de pilotage (bloc 42) est un mode automatique mettant en oeuvre le système autonome de stabilisation en vol stationnaire. Ce mode autopiloté est notamment activé à la fin de la phase de décol- lage, dès que l'utilisateur retire son doigt de l'écran tactile de l'appareil, ou en cas d'interruption de la liaison radio entre l'appareil et le drone. Le vol, piloté ou stationnaire, prend fin par passage à un état d'atterrissage (bloc 44), suite à l'appui sur une commande spécifique de l'appareil ou en cas de batterie faible. Le passage à cet état produit une réduction du régime des rotations des moteurs et une diminution corrélative de l'alti- tude. Lorsque le contact avec le sol a été détecté, l'état est à nouveau l'état "posé" du bloc 36. II est également prévu un état de défaut (bloc 46) qui correspond à un état d'urgence en cas d'anomalie détectée, provoquant un arrêt immédiat des moteurs. Cet état de défaut peut être atteint à partir de n'importe lequel des états précédemment décrits, notamment en cas de défaut moteur (blocage d'un rotor), d'anomalie logicielle ou à la suite d'un choc détecté par l'accéléromètre. Le drone comporte également des moyens de transition progressive (bloc 48) du vol piloté (état de mouvement, bloc 40) au vol stationnaire (état de sustentation, bloc 42), pour permettre au drone de passer de l'état de mouvement, où il se déplace avec une inclinaison non nulle et donc une vitesse horizontale qui peut être relativement élevée, jusqu'à l'état de sus-tentation où il sera immobile et maintenu dans cette position fixe par le système de pilotage automatique et de stabilisation. Cette procédure d'ar- rét sera opérée en un temps minimal et sans inversion de vitesse horizon-tale. Le bloc 50 d'activation d'une figure de type salto ou vrille selon l'invention est activé sur réception d'une commande correspondante, générée manuellement par une action de l'utilisateur (appui sur un bouton affiché sur l'écran tactile de l'appareil de télécommande, secousses imprimées à cet appareil, etc.) ou de façon automatique par exemple par la réunion d'un certain nombre de conditions prévues dans le scénario d'un jeu vidéo exécuté par le dispositif de télécommande. Cette commande comprend l'indication du type de figure (salto ou vrille, qui déterminera l'axe de rotation suivant lequel sera effectué le pivotement du drone), ainsi que le sens d'exécution (à droite/à gauche pour une vrille, vers l'avant/vers l'arrière pour un salto). La figure peut être exécutée aussi bien depuis une situation de vol piloté par l'utilisateur (bloc 40) qu'à partir d'un mode autopiloté, en vol station- paire (bloc 42). Une fois la figure exécutée, l'état suivant sera une transition (bloc 48) vers le vol stationnaire (bloc 42) pour stabiliser le drone dans une position d'immobilité. Architecture générale des organes de contrôle et d'asservissement du drone La Figure 5 est un schéma par blocs fonctionnels des différents organes de contrôle et d'asservissement ainsi que de pilotage automatique du drone. On notera toutefois que, bien que ce schéma soit présenté sous forme de circuits interconnectés, la mise en oeuvre des différentes fonctions est essentiellement logicielle, et cette représentation n'a qu'un caractère illustratif. Le système de pilotage met en jeu plusieurs boucles imbriquées pour le contrôle de la vitesse angulaire, de l'attitude du drone et pour la stabilisa- Lion du vol stationnaire, en plus du contrôle des variations d'altitude automatiquement ou sous l'effet d'une commande de l'utilisateur. La boucle la plus centrale, qui est la boucle 52 de contrôle de la vitesse angulaire, utilise d'une part les signaux fournis par des gyromètres 54, et d'autre part une référence constituée par des consignes de vitesse angu- taire 56, ces différentes informations étant appliquées en entrée d'un étage 58 de correction de la vitesse angulaire. Cet étage 58 pilote un étage 60 de contrôle des moteurs 62 afin de commander séparément le régime des différents moteurs pour corriger la vitesse angulaire du drone par l'action combinée des rotors entraînés par ces moteurs. La boucle 52 de contrôle de la vitesse angulaire est imbriquée dans une boucle 64 de contrôle d'attitude, qui opère à partir des indications fournies par les gyromètres 54 et des accéléromètres 66, ces données étant appliquées en entrée d'un étage d'estimation d'attitude 68 dont la sortie est appliquée à un étage 70 de correction d'attitude de type PI (Proportionnel-Intégrateur). L'étage 70 délivre à l'étage 56 des consignes de vitesse angulaire, qui sont également fonction de consignes d'angle générées par un circuit 72 à partir de données générées en interne par le pilote automatique du drone, ou bien à partir de commandes directement appliquée par l'utilisateur 74. À partir de l'erreur entre la consigne (appliquée par l'utilisateur ou générée en interne dans le cas d'un pilotage automatique) et la mesure de l'angle donnée par le circuit d'estimation d'attitude 68, la boucle 64 de contrôle d'attitude (circuits 54 à 70) calcule une consigne en vitesse angulaire à l'aide du correcteur PI du circuit 70. La boucle 52 de contrôle de la vitesse angulaire (circuits 54 à 60) calcule ensuite la différence entre la consigne de vitesse angulaire précédente et la vitesse angulaire effectivement mesurée par les gyromètres 54. La boucle calcule à partir de ces informations les différentes consignes de vitesse de rotation (et donc de force as- censionnelle) à envoyer aux moteurs 62 du drone pour réaliser la man-oeuvre planifiée par le pilote automatique ou demandée par l'utilisateur. Pour le fonctionnement autopiloté, les consignes sont générées en in-terne. La caméra vidéo verticale 78 et le capteur télémétrique 80 faisant fonction d'altimètre produisent des informations appliquées à un circuit de traitement 82 recevant également les données issues des gyromètres 54 pour appliquer les corrections nécessaires à l'estimation de la vitesse horizontale par le circuit 84. Cette estimation de la vitesse horizontale peut être corrigée par une estimation de la vitesse verticale, donnée par le circuit 88 à partir d'une estimation d'altitude fournie par le circuit 86 recevant l'information du capteur télémétrique 80. En vol stationnaire, la vitesse horizontale estimée par le circuit 84 permet le calcul par le circuit 90 de consignes de vitesse qui seront ensuite appliquées en entrée de la boucle de contrôle d'attitude après transformation en consignes d'angle par le circuit 72, pour amener le drone à une vitesse nulle ou maintenir celui-ci à une configuration avec vitesse et inclinaison nulles. En ce qui concerne les déplacements verticaux du drone, l'utilisateur 74 applique directement une consigne de vitesse ascensionnelle VZ à un cir- cuit 94 , ou une consigne d'altitude à un circuit 92 qui calcule par le circuit 96 une consigne de vitesse ascensionnelle à partir de l'estimation d'altitude donnée par le circuit 86. Dans l'un ou l'autre cas, la vitesse ascensionnelle (prescrite ou calculée) est appliquée à un circuit 98 qui compare la consigne à la vitesse ascen- sionnelle estimée VZ donnée par le circuit 88, et modifie en conséquence les données de commande des moteurs (circuit 60) de manière à augmenter ou réduire la vitesse de rotation simultanément sur tous les moteurs de façon à minimiser l'écart entre vitesse ascensionnelle de consigne et vitesse ascensionnelle mesurée. Pour l'exécution des figures de type vrille ou salto, il est prévu des commandes spécifiques, symbolisées par le bloc 100 opérant soit sur commande de l'utilisateur 74, soit à partir de commandes externes (commutateur 102), par exemple des commandes générées par le scénario d'un jeu vidéo exécuté par l'appareil de télécommande de l'utilisateur. Dans ce dernier cas, la commande générée automatiquement est transmise au drone en même temps que les signaux de pilotage. Le bloc 100 permet de contrôler les trois phases précitées décrivant l'exécution de la figure : Phase 1 (impulsion verticale) : par une liaison 104 au bloc 94 de calcul des consignes de vitesse ascensionnelle ; Phase 2 (rotation avec commande en boucle ouverte) : par une liaison directe 106 aux moteurs 62, ceux-ci étant découplés des diverses boucles d'asservissement par l'interrupteur schématisé en 108 ; Phase 3 (rotation planifiée, asservie) : par une liaison 110 au le bloc 72 de calcul des consignes d'angle, ces dernières étant calculées de la manière que l'on exposera plus bas en fonction d'un modèle prédéterminé décrivant le comportement du drone pendant la phase de rotation planifiée. Modélisation du comportement du drone Les données de vitesse du drone sont données dans le repère (u,v,w) il-lustré Figure 2, c'est-à-dire dans un repère lié au corps du drone. On désignera par : - u et v les composantes de la vitesse de translation horizontale (u dans le sens principal 4 de progression du drone et v dans la direction transversale), et w la vitesse de translation verticale, le tout dans un repère lié au drone (donc indépendant de l'inclinaison de celui-ci par rapport au repère terrestre de référence), - p, q et r les vitesses angulaires suivant les trois axes respectifs de tan-gage 28, de roulis 30 et de lacet 32 (Figure 2), et - cp, B et yr les angles d'Euler du drone définissant son orientation par rapport à un repère terrestre de référence (galiléen), rp et 0 étant les deux angles définissant l'inclinaison par rapport à l'horizontale. Chacune des quatre hélices i du drone (i = 1 ... 4) exerce un couple ri et une force de poussée ascensionnelle Fi proportionnelle au carré de la vitesse de rotation wl du moteur : [Fi = acoi ri = bc~? On applique la relation fondamentale de la dynamique, en projection dans le référentiel mobile du drone, ce qui donne les trois équations suivantes : ic = (rv - qw) - gsinO - Cxu v = (pw - ru) + gsincpcosO + Cyv w = (qu - pv) + gcoscpcos8 - 7 E4 i a coï (Équations 1-3) g étant l'accélération de la pesanteur, Cx et Cy étant les coefficients de résistance à l'avancement (reflétant les forces de frottement subies par le drone) dans les deux axes horizontaux, a étant un coefficient liant la poussée et la vitesse ascensionnelle à la vitesse de rotation co, et m étant la masse du drone. On applique de la même façon le théorème du moment dynamique au système, toujours en projection dans le référentiel mobile, ce qui conduit aux trois équations suivantes : lxp+gr(l,-ly)=la(4-co.) lyq + pr(lx - Iz) = la(cof - coi) IZr + pq(ly - Ix) = b(coi - col +coi - (4.) (Équations 4-6) Ix, Iy et IZ étant des paramètres représentatifs du coefficient d'inertie du drone dans les trois axes, et l étant la distance séparant le moteur du centre de gravité du drone. Dans ces équations, le premier terme du membre de gauche correspond au moment dynamique du système, le second terme représente la contri- bution au moment dynamique des forces de Coriolis, et le membre de droite correspond aux moments exercés par les forces ascensionnelles F; et les couples T; créés par les hélices de chacun des rotors. Enfin, on démontre la relation suivante faisant intervenir les trois angles d'Euler 0, e et v : cp = p + (gsinço + rcoscp)tan8 8 = gcoscp - rsi.ncp gsincp + rcos.0 cos8 (Équations 7-9) Le comportement du système est donc décrit au total par neuf équations à neuf inconnues (Équations 1-9 ci-dessus). Au voisinage du point d'équilibre, avec le drone en sustentation à l'horizontale (vitesse et inclinaison nulles), on a : u = -9_ Les Équations 1-9 deviennent : P=q=l'=Lt (01=(03, (02 =(04) Wl=(02 Et donc, au voisinage du point d'équilibre : 1 \11ng col=(02=Ct33=(04=2 a =(ùp Si l'on pose w; = w; - coo, avec i = 1... 4, et que l'on linéarise à l'ordre 1 les 5 équations précédentes 1 à 9 autour du point d'équilibre, on aboutit au système d'équations linéarisées suivant : ic=-g(8)-Cx#u =g((p)+Cyx v 2awo tai? _ (Wl+W2+W3+W4) ?n bwo (W1+Wg-.W2 bv4 (Équations 10-18) On obtient ainsi une modélisation du comportement du drone, qui sera utilisée en particulier pour prédire son comportement lors de la phase de ro- 10 tation planifiée (Phase n°3) et pour calculer les consignes d'angle à appliquer. Phase 1 (impulsion verticale) Le but de cette étape est de donner un élan suffisant au drone en direc- 15 tion verticale pour faire en sorte que, lorsqu'il aura achevé la figure, il se trouve sensiblement à la même altitude qu'auparavant. Il s'agit, en d'autres termes, de faire monter rapidement le drone afin qu'il ne subisse pas de perte d'altitude durant la figure, lorsqu'il ne bénéficiera plus de la sus-tentation des hélices et, dans la partie de la figure où il se trouvera en lawo l _ (W2 - W4) configuration retournée, subira même une poussée en sens inverse, en direction du sol. La manoeuvre consiste donc à envoyer dans la boucle d'asservissement de vitesse verticale, tout en conservant le contrôle en attitude du drone, une référence de vitesse maximale, par exemple une consigne de vitesse verticale de 1000 mm/seconde pour une rotation d'un tour complet (ou une consigne double, de 2000 mm/seconde si l'on veut enchaîner deux tours consécutifs sans interruption). Une fois la vitesse de consigne de 1000 mm/seconde atteinte, la phase 10 suivante est engagée. Phase 2 (rotation avec commande en boucle ouverte) L'algorithme envoie directement aux quatre moteurs du drone, en boucle 15 ouverte, une séquence de commandes afin de provoquer la rotation recherchée autour de l'axe de roulis ço (ou de tangage, pour un salto). Cette phase peut se décomposer en deux sous-phases : - pour un angle ço compris entre 0 et 90° (Phase 2A sur la Figure 3), on envoie des commandes de vitesse de rotation maximale sur les mo- 20 teurs n°1 et n°4 (les deux moteurs situés d'un même côté de l'axe de roulis) et de vitesse de rotation minimale sur les moteurs n°2 et n°3 (les deux moteurs situés de l'autre côté du même axe) ; - pour un angle ça compris entre 90° et 270° (Phase 2B sur la Figure 3), une consigne de vitesse de rotation minimale est envoyée aux quatre 25 moteurs. En effet, les commandes envoyées pendant la première sous-phase ont permis de donner au drone une impulsion de rotation avec un élan suffisant pour qu'il puisse poursuivre cette rotation sur le demi-tour suivant. Comme sur ce demi-tour le drone ne sera plus sustenté et se retrouvera même dans une configuration retournée, pour minimiser 30 les effets contraires de la poussée des hélices, il convient que celles-ci tournent à leur régime de rotation minimal. Une fois la valeur d'angle de roulis ça = 270° atteinte par le drone, on peut passer à la troisième phase. Phase 3 (rotation planifiée, asservie) On souhaite que la vrille soit rattrapée automatiquement, sans intervention de l'utilisateur, par application de consignes permettant une transition progressive, en un temps minimal et sans dépassement de la position an- gulaire rP = 0, c'est-à-dire sans oscillation autour de la position finale. Pour cela, le comportement du drone aura été préalablement identifié par une fonction de transfert représentant la réponse angulaire réelle du drone à une consigne. Il sera ainsi possible de prédire le comportement du drone et d'appliquer la consigne angulaire optimale pour l'arrêter (i) en un temps minimum, et (ii) sans dépassement de la position angulaire cible (angle de roulis nul tP = 0». Plus précisément, il convient de tenir compte de l'inertie du drone, qui se traduit en un écart entre la consigne d'angle Vref et l'angle correspondant mesuré tomes{,. Pour cela, on identifie la fonction de transfert çomesure/rp,-ef que l'on assimile à un système du second ordre. Dans le formalisme de Laplace, on aura (p étant la variable de Laplace) : (Pmesure(P) _ K (Pref (P) (1 + z1 *P) * (1 + zz * P) Après identification du modèle, on trouve : (P (1)) 6090 A2 12 cpre f (p) %o + e p+1 On obtient à partir de ce modèle dans le formalisme de Laplace, une équation différentielle en fonction du temps, qui donne la valeur de la consigne à chaque instant : 1 ço ref(t) 60 * (~(t) + 12 * ~(t) + 90 * qo(t)) 25 À partir de cette expression, il convient de choisir la forme de la fonction t -~ ço(t) qui permet de rattraper la différence entre consigne et mesure dans la phase finale de la vrille.20 On prendra ici un polynôme du troisième ordre en t (le paramètre temporel) pour réaliser le mouvement souhaité. On en déduit par dérivations temporelles successives les polynômes t -> Xt) et t -> (Kt) qui permettront de calculer, à partir de la relation donnée ci-dessus, une consigne tenant compte de l'inertie de la boucle d'asservissement en angle du drone. Les Figures 6a et 6b décrivent la trajectoire de référence donnée par ces polynômes, respectivement en termes d'angle et de vitesse angulaire. L'un des paramètres du calcul est la valeur du temps d'arrêt entre la posi- tion angulaire intermédiaire cP = 270° (soit tp = -90°) et la position angulaire finale cp = 0°. On prendra par exemple un temps d'arrêt ou "horizon temporel" T de 0,3 seconde. Il convient également d'annuler la vitesse angulaire lorsque tp = 0°. Pour connaître le polynôme, il est nécessaire d'en déterminer les coeffi-15 cients. Ce calcul est effectué de la manière suivante. On a vu plus haut que, pour une vrille dans le sens positif, la vitesse angulaire est donnée par : tp = p + (gsincp + rcos(p)tanO 20 On peut faire l'approximation des petits angles pour l'angle B (mouvement à tangage supposé nul, soit 8 0` . Dans ce cas, la relation précédente peut être approximée par : cP p . Si l'on désigne par a, b, c et d les coefficients du polynôme, on a : 25 cp(t)=a.?+b.t2+c.t+d À partir des conditions initiales, à t = 0 (instant où le drone atteint la position intermédiaire cp = 270° entre les phases 2 et 3) , on obtient : 30 (p(0) = d = (Pinitial et cP(0) _ c = p initial À la fin de la phase 3, à t = T, l'angle et la vitesse angulaire sont tous deux nuls, ce qui donne : (p(t=Ts)=a*T3+ b*T2+c*T+d= a*T3+ b*TZ+pinitial *T+~Pinitiat=Q et=Ts)=a*TZ+ b*T+c= a*T3+ b*T2+pinitial =0 On peut déduire de ces quatre expressions les valeurs des coefficients a, b, c et d des polynômes : 2 * (Pinitial a= T21* ( T + p initial ) 1 3 * (pinitial b = - - * ( 7, + 2 * p initial ) C = pinitial d = (pinitial T étant la valeur du temps d'arrêt, (pinitial étant la valeur d'angle de la position angulaire intermédiaire corres-10 pondant au début de la phase de rotation planifiée, c'est-à-dire rP = -90°(ou 270°) à t = 0, et pinitial étant la vitesse angulaire du drone mesurée pour cette même position angulaire intermédiaire. On notera que la valeur initiale rp = -90° (ou 270°) n'est donnée qu'à titre 15 d'exemple, et n'est pas limitative ; la phase de rotation planifiée pourrait être engagée avant, ou après, que le drone atteigne un angle rp = 270°. Ces quatre coefficients a, b, c et d permettent de déterminer l'angle de roulis à donner au drone (c'est-à-dire la consigne) pour qu'il puisse s'arrêter après une vrille. Ils tiennent compte de la vitesse angulaire initiale, au 20 début de la phase 3, de l'angle atteint à ce même moment, et du temps T imparti pour l'arrêt du drone. À l'instant initial (t = 0 et rp = 270°, début de la phase 3), l'angle de roulis go initial et la vitesse angulaire p initiale donnés par les capteurs du drone sont enregistrés, et l'algorithme calcule les coefficients a, b, c et d du po- 25 lynôme (Kt) = a. t3 + b.t2 + c.t + d. Ensuite, l'algorithme calcule à chaque instant (pour chaque échantillon k du calculateur) les valeurs suivantes : rp(k)= a*t(k)3+ b * t(k)2 + c * t(k) + d 0(k) = 3*a*t(k)2+2* b*t(k)+c 0(k) = 6*a*t(k)+2* b avec t(k) = k.Te, Te étant la période d'échantillonnage du calculateur. On obtient ainsi les consignes appliquées à la boucle de contrôle d'attitude du drone. Cette commande sera considérée comme la commande optimale pour achever la figure dans le temps imparti. Le modèle que l'on a utilisé est toutefois un modèle approximé à un second ordre, qui contient donc des erreurs d'identifications. La valeur de l'angle recherché (correspondant à la trajectoire de référence prédéfinie) s'éloigne donc petit à petit de cette dernière. Pour compenser cet écart, on réinitialise l'algorithme, par recalcul des coefficients du polynôme, par exemple à t = 0,15 seconde, correspondant à la moitié de la période d'arrêt T prédéfinie. En d'autres termes, au milieu de la manoeuvre de la phase 3, pour éviter que la mesure de l'angle de roulis ne s'éloigne trop de la trajectoire de référence, on replanifie la manoeuvre avec un horizon temporel plus réduit (0,15 seconde au lieu de 0,3 seconde) de manière à recaler au mieux le mouvement du drone sur la trajectoire de référence (trajectoire cible). Les Figures 7a et 7b illustrent des résultats d'essais réalisés en vol donnant en fonction du temps, respectivement les variations des valeurs d'angle rp et de vitesse angulaire p telles que mesurées, par rapport à la trajectoire de référence (exprimée en termes d'angle sur la Figure 7a et en termes de vitesse angulaire sur la Figure 7b) et par rapport aux consignes calculées, appliquées dans la phase finale de rotation planifiée. Ces figures montrent l'écart qui augmente progressivement entre l'angle mesuré (ou la vitesse angulaire mesurée) et la trajectoire de référence prédéfinie, écart qui justifie le recalcul des coefficients du polynôme au bout d'un temps T/2 = 0,15 seconde. REVENDICATIONS1. Un procédé de contrôle dynamique d'attitude d'un drone (10) à voilure tournante à rotors multiples (12) entraînés par des moteurs respectifs commandés de manière différenciée, pour l'exécution automatique d'une figure préprogrammée de type vrille, respectivement de type salto, par rotation du drone sur un tour complet autour d'un axe de rotation constitué par l'axe de roulis (30), respective-ment par l'axe de tangage (28), du drone, procédé caractérisé par l'exécution, à réception d'une instruction de déclenchement de la figure préprogrammée, de la séquence d'étapes sui-10 vante : a) commande simultanée des moteurs (62) de manière à imprimer au drone une impulsion préalable de poussée verticale (VZ) vers le haut (PHASE 1) ; b) commande différenciée non asservie des moteurs (62) de manière à 15 produire une rotation du drone autour de l'axe de rotation, depuis une position angulaire initiale jusqu'à une position angulaire intermédiaire prédéterminée (PHASE 2) ; puis c) commande différenciée asservie des moteurs (62) de manière à ache-ver la rotation du drone sur un tour complet autour de l'axe de rota- 20 tion, progressivement depuis la position angulaire intermédiaire avec une vitesse angulaire non nulle, jusqu'à une position angulaire finale avec une vitesse angulaire nulle (PHASE 3). 2. Le procédé de la revendication 1, dans lequel l'étape c) comprend les 25 sous-étapes consistant à : c1) impartir une valeur de temps d'arrêt entre la position angulaire intermédiaire et la position angulaire finale ; c2) mesurer la vitesse angulaire du drone lorsque celui-ci atteint la position angulaire intermédiaire prédéterminée ; 30 c3) à partir du temps d'arrêt imparti à l'étape c1) et de la mesure acquise à l'étape c2), paramétrer une fonction prédictive prédéterminée modélisant une variation continue optimale de la position angulaire dudrone en fonction du temps, depuis la position angulaire intermédiaire jusqu'à la position angulaire finale à la fin du temps imparti ; et c4) à partir de la fonction prédictive paramétrée à l'étape c3), générer des valeurs de consigne correspondant à une position angulaire ci- ble précalculée à un instant donné, et appliquer ces valeurs de consigne à une boucle d'asservissement de contrôle des moteurs du drone. 3. Le procédé de la revendication 2, dans lequel les valeurs de consigne sont des consignes d'angle d'inclinaison (rp) du drone par rapport à son axe de roulis (30), respectivement par rapport à son axe de tangage (28). 4. Le procédé de la revendication 2, dans lequel la fonction prédictive prédéterminée est une fonction polynomiale, et l'étape c3) de paramé- trage de cette fonction est une étape de détermination des coefficients du polynôme. 5. Le procédé de la revendication 4, dans lequel dans lequel la fonction polynomiale est une fonction polynomiale du troisième ordre. 6. Le procédé de la revendication 5, dans lequel la fonction polynomiale est une fonction du type : rp(t)=a.?+b.t2+c.t+d Kt) étant la position angulaire correspondant à la valeur de consigne générée à l'étape c4), et a, b, c et d étant les coefficients du polynôme paramétré à l'étape c3), tels que : 1 2 * (Pinitial a= 7 2*( T + P initial 1 3 * (Pinitial b = - , * ( T + 2 * p initial C - Pinitial d = (Pinitial 25 T étant la valeur du temps d'arrêt imparti à l'étape c1), initial étant la valeur d'angle de la position angulaire intermédiaire, et pinitial étant la vitesse angulaire du drone mesurée à l'étape c2), pour la position angulaire intermédiaire. 7. Le procédé de la revendication 2, comprenant au moins une réitération des étapes c2) et c3) lorsque le drone atteint une position angulaire pré-déterminée de redéfinition des consignes, cette position angulaire de redéfinition des consignes étant comprise entre la position angulaire inter- médiaire de l'étape b) et la position angulaire finale, et la position angulaire de redéfinition étant prise comme nouvelle position angulaire intermédiaire pour le paramétrage de l'étape c3). 8. Le procédé de la revendication 1, comprenant en outre, une fois la po-15 sition angulaire finale atteinte, une étape finale de : d) transition (48) jusqu'à un état de sustentation (42) du drone avec activation d'une boucle de commande de vol stationnaire apte à stabiliser le drone avec une vitesse linéaire horizontale nulle et une inclinaison nulle par rapport au sol. 20 9. Un logiciel, téléchargeable dans une mémoire numérique d'un drone à voilure tournante, ce logiciel comprenant des instructions qui, lorsqu'elles sont exécutées à réception d'une instruction de déclenchement d'une figure préprogrammée de type vrille ou de type salto en provenance d'un 25 appareil de télécommande, mettent en oeuvre un procédé de contrôle dynamique d'attitude du drone selon l'une des revendications 1 à 8.