Brevet FR2985329A1 — publié le 20130705

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 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 pourvu d'une caméra frontale captant une image de la scène vers laquelle est 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. Les WO 2010/061099 A2 et EP 2 364 757 Al (Parrot SA) décrivent 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). 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). Ils sont en outre pourvus d'un écran tactile affichant l'image captée par la caméra frontale du drone, avec en superposition un certain nombre de symboles permettant l'activation de commandes par simple contact du doigt de l'utilisateur sur cet écran tactile. Plus précisément, le drone est piloté par l'utilisateur au moyen de signaux émis par le détecteur d'inclinaisons de l'appareil, inclinaisons qui seront répliquées par le drone : par exemple, pour faire avancer le drone l'utilisa- teur incline son appareil selon son axe de tangage, et pour déporter le drone à droite ou à gauche il incline ce même appareil par rapport à son axe de roulis. De cette manière, si le drone est commandé de manière à s'incliner ou "plonger" vers le bas (inclinaison suivant un angle de tan- gage), il progressera vers l'avant avec une vitesse d'autant plus élevée que l'inclinaison sera importante ; inversement s'il est commandé de manière à se "cabrer" dans le sens opposé, sa vitesse ralentira progressivement puis s'inversera en repartant vers l'arrière. De la même façon, pour une commande d'inclinaison suivant un axe de roulis le drone penchera à droite ou à gauche, provoquant un déplacement linéaire en translation ho- rizontale vers la droite ou vers la gauche. L'utilisateur dispose d'autres commandes affichées sur l'écran tactile, notamment de "montée/descente" (commande des gaz) et de " pivotement à droite/ pivotement à gauche" (pivotement du drone autour de son axe de lacet). Le drone est également pourvu d'une commande de passage en point fixe : lorsque l'utilisateur lâche toutes les commandes de son appareil de télécommande, le drone s'immobilise et se stabilise au point fixe de façon entièrement automatique. L'affichage sur l'écran de l'appareil de l'image captée par la caméra fron- tale du drone, avec en superposition les symboles des touches de pilotage, permet ainsi un "pilotage immersif" où l'utilisateur se sert de l'image de la caméra embarquée de la même façon que s'il se trouvait lui-même à bord du drone. Mais, précisément, ce mode de pilotage implique un certain entraînement avant que l'utilisateur ne puisse "s'imaginer dans le drone" pour contrôler celui-ci, ce qui n'est pas la manière la plus intuitive de le piloter pour un débutant ou un enfant. En effet, lors d'une première prise en main l'utilisateur aura tendance à maintenir son regard fixé sur le drone plutôt que sur l'écran de l'appareil. Or dans ce cas une difficulté supplémentaire apparaît, qui est celle de devoir se représenter mentalement l'orientation du drone par rapport à l'utilisateur lors des manoeuvres de pilotage. Lorsque la direction de visée (utilisateur -+ drone) et la direction de pro- gression du drone sont peu ou prou les mêmes - par exemple lorsque le drone tourne le dos à l'utilisateur et s'éloigne de lui -, cela ne pose pas de problème particulier, car les commandes de tangage/roulis sur l'appareil sont répliquées sur le drone, dont les axes de tangage/roulis du drone sont orientés de la même manière. En revanche, lorsque le drone fait face à l'utilisateur en se rapprochant de lui, ces commandes seront inversées : pour déporter le drone vers la gauche l'utilisateur devra incliner son appareil vers la droite (et non plus vers la gauche) et vice versa. Ou encore, lorsque la direction de progression du drone fait un angle avec la direction de visée - par exemple lorsque le drone se déplace en marche avant de la gauche vers la droite devant l'utilisateur -, pour accélérer ou ralentir ce mouvement de gauche à droite l'utilisateur devra pencher l'appareil vers l'avant ou vers l'arrière, et non vers la gauche ou vers la droite tel qu'il voit le drone. En d'autres termes, dans ce cas de figure il devra mentalement inverser le rôle des inclinaisons en tangage et en roulis, s'il veut contrôler le mouvement du drone en l'accompagnant avec son appareil. Le but de l'invention est de résoudre cette difficulté, en offrant à l'utilisateur, notamment à l'utilisateur novice, un mode de pilotage autre que le pi- lotage immersif, qui rende le drone plus facile à prendre en main. Essentiellement, l'invention propose de déterminer les orientations respectives du drone et de l'appareil par rapport à un repère fixe lié au sol, d'en déduire l'orientation relative du drone par rapport à l'appareil, et de recalculer les commandes imprimées à l'appareil par l'utilisateur de ma- nière que les axes (tangage/roulis) des commandes et les orientations de ces axes (avant/arrière, ou gauche/droite) pris en compte pour le pilotage correspondent aux axes et orientations de l'appareil dans le repère fixe, et non plus aux axes et orientations, variables en permanence, du drone. On disposera alors d'un mode de pilotage du drone indépendant de l'orientation effective de ce dernier : ainsi, si par exemple le drone fait face à l'utilisateur, ce dernier pourra accélérer le drone en basculant l'appareil vers lui, le faire aller vers la droite en basculant l'appareil vers la droite, etc., donc de façon tout à fait intuitive s'il regarde le drone (alors qu'en mode "pilotage immersif" il aurait dû inverser ces commandes). De même, si le drone se déplace de gauche à droite, il pourra le rapprocher en bas- culant l'appareil vers lui, l'accélérer en basculant l'appareil vers la droite, etc., de manière très aisée et spontanée. Plus précisément, l'invention propose un procédé de pilotage divulgué par exemple par le WO 2010/061099 A2 précité, à savoir un procédé de pilo- tage d'un drone à voilure tournante à rotors multiples entraînés par des moteurs respectifs commandables de manière différenciée pour piloter le drone en attitude et en vitesse, comprenant les étapes suivantes : - par l'appareil : inclinaison de l'appareil selon des axes de tangage et de roulis de cet appareil, et production de signaux d'inclinaison correspon- dants, et transformation de ces signaux d'inclinaison de l'appareil en commandes de pilotage et envoi de ces commandes au drone ; et - par le drone : réception des commandes de pilotage et génération à partir de ces commandes de valeurs de consigne pour une boucle de contrôle des moteurs du drone, ces valeurs de consigne étant aptes à commander l'attitude du drone selon des axes de tangage et de roulis du drone. De façon caractéristique de l'invention, ce procédé comprend les étapes additionnelles suivantes : - acquisition de premières données d'orientation d'un repère local lié à l'appareil par rapport à un repère absolu lié au sol ; - acquisition de secondes données d'orientation d'un repère local lié au drone par rapport audit repère absolu ; - calcul d'une donnée d'orientation angulaire relative du drone par rapport à l'appareil, à partir desdites premières et secondes données d'orientation ; et - recalage du repère de l'appareil sur le repère du drone, par application aux commandes de pilotage d'une rotation fonction de ladite donnée d'orientation angulaire relative. De cette manière, on produit des valeurs recalées de consigne selon les axes de tangage et de roulis du drone qui sont fonction des inclinaisons, appliquées à l'appareil par l'utilisateur selon les axes de tangage et de roulis de celui-ci, considérées dans le repère local lié à l'appareil et non plus dans celui lié au drone. Les premières et les secondes données d'orientation sont avantageuse- ment obtenues à partir des angles de cap respectifs de l'appareil et du drone par rapport au Nord. Dans une première forme de mise en oeuvre, simplifiée, la rotation fonction de la donnée d'orientation angulaire relative est du type : 9a _r cos A z» sin A- (6/(pc) sindip cosAzP) ) Od et Vd étant les valeurs recalées de consigne selon les axes de tangage et de roulis dans le repère local lié au drone, 0/ et g9/ étant les inclinaisons appliquées selon les axes de tangage et de roulis dans le repère local lié à l'appareil, et A v étant la différence des angles de cap respectifs de l'appareil et du drone par rapport au Nord. Ce calcul de rotation est alors avantageusement opéré au sein du drone, directement à partir de données reçues de l'appareil, ces données comprenant les valeurs des inclinaisons appliquées à l'appareil et une donnée d'angle de cap de l'appareil. Dans une seconde forme de mise en oeuvre, complète, la rotation fonction de ladite donnée d'orientation angulaire relative est du type : tan (pli est = tan' [cos dtp . tan 01 + sin /4 . Od et çad étant les valeurs recalées de consigne selon les axes de tangage et de roulis du drone, Of et ç oz étant les inclinaisons appliquées selon les axes de tangage et de roulis de l'appareil, et A yr étant la différence des angles de cap respectifs de l'appareil et du drone par rapport au Nord. Le calcul de rotation peut alors être opéré partiellement au sein de l'appa- reil et partiellement au sein du drone, avec : - au sein de l'appareil, calcul d'un première rotation à partir des valeurs des inclinaisons 61/ et çor appliquées à l'appareil et d'une donnée d'angle de cap Vip de l'appareil : (911) - COS p sin iPip )(Bi) 1Pip COS1P(p VP11 - au sein du drone, calcul d'un seconde rotation à partir d'une donnée d'angle de cap W T drone du drone : cos 01 (pd = sin-1 [cos . sin (pI - sin "» . sin Ou cos (pi] (0cpdd) (C°S 11 cirone 1 » drone) (0' 1) sin IPdr one COSI') drone e! De façon générale, le repère absolu lié au sol est de préférence un repère géomagnétique, les angles de cap étant des angles mesurés par rapport au Nord magnétique. La détermination de l'angle de cap du drone comprend alors l'acquisition d'une mesure de cap magnétique délivrée par un capteur magnétométrique du drone. En particulier, l'angle de cap du drone peut être acquis par la combinaison : d'une mesure de cap magnétique délivrée par un capteur magnéto- métrique du drone avec application d'un filtrage passe-bas ; et d'une me- sure de cap gyroscopique délivrée par une centrale inertielle du drone avec application d'un filtrage passe-haut complémentaire dudit filtrage passe-bas. Le procédé comprend avantageusement une étape préalable de calibra- tion du capteur magnétométrique du drone, avec les sous-étapes de : - commande d'une rotation complète du drone en vol, à plat autour d'un axe de lacet ; - relevé des mesures délivrées par le capteur magnétométrique ; et - détermination d'une valeur de décalage global représentative des champs magnétiques perturbateurs environnants et du décalage propre du capteur magnétométrique. 0 On va maintenant décrire un exemple de mise en oeuvre 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 l'appareil asso- cié permettant de piloter à distance celui-ci. La Figure 2 montre les divers repères considérés par le procédé de l'invention : repère géographique absolu, repère propre du drone, repère propre de l'appareil. Les Figures 3a à 3c illustrent l'effet des commandes d'inclinaison imprimées à l'appareil pour piloter le drone, respectivement dans le cas de la technique antérieure (figures 3a et 3b) et dans le cas de l'invention (figure 3c). La Figure 4 est un schéma par blocs des différents organes de contrôle, d'asservissement et de pilotage assisté du drone. La Figure 5 illustre la manière de déterminer l'orientation relative du drone par rapport à l'appareil. La Figure 6 illustre les différentes composantes du champ magnétique ter- restre, et leur orientation par rapport à un repère géographique terrestre. La Figure 7 illustre de façon schématique la manière de combiner les informations d'orientation du champ magnétique obtenu par un magnétomètre et par la centrale gyroscopique du drone. La Figure 8 illustre les relevés des mesures magnétométriques lors d'une rotation complète du drone sur lui-même, dans le cadre de la procédure de calibration préalable du magnétomètre, selon l'invention. 0 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, qui est par exemple un quadricoptère tel que le modèle AR.Drone de Parrot SA, Paris, France, décrit notamment dans les WO 2010/061099 A2 et EP 2 364 757 Al précités, ainsi que dans les WO 2009/109711 A2 (qui décrit un exemple de système de stabilisation automatique à partir des in- formations fournies par un altimètre et une caméra à visée frontale) et FR 2 915 569 Al (qui décrit notamment le système de contrôle avec gyromètres et accéléromètres utilisé par le drone). Le drone 10 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. Il est pourvu d'une première caméra 14 à visée frontale permettant d'obtenir une image de la scène vers laquelle se dirige le drone, par exemple une caméra grand angle à capteur CMOS. Le drone comporte également une seconde caméra à visée verticale (non repré- sentée) pointant vers le bas, apte à capter des images successives du ter- rain survolé et utilisée notamment pour évaluer la vitesse du drone par rapport au sol. 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. Un télémètre à ultrasons disposé sous le drone fournit par ailleurs une mesure de l'altitude par rapport au sol. En ce qui concerne la vitesse linéaire de translation du drone, celle-ci est évaluée par analyse de l'image fournie par la caméra à visée verticale du drone en combinaison avec les données accélérométriques, grâce à un logiciel qui estime le dé- placement de la scène captée par la caméra d'une image à la suivante et applique à ce déplacement estimé un facteur d'échelle fonction de l'altitude mesurée. Le drone 10 est piloté par un appareil de télécommande distant 16 pourvu d'un écran tactile 18 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 20 d'un utilisateur sur l'écran tactile 18. L'appareil 16 est pourvu de moyens de liaison radio avec le drone pour l'échange bidirectionnel de données du drone 10 vers l'appareil 16, notamment pour la transmission de l'image captée par la caméra 14, et de l'appareil 16 vers le drone 10 pour l'envoi de commandes de pilotage. Cette liaison peut être par exemple de type réseau local Wi-Fi (IEEE 802.11) ou Bluetooth (marques déposées). L'appareil 16 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). Comme indiqué en introduction, l'appareil de télécommande 16 est avan- tageusement 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 commandes de pi- lotage, à la visualisation de l'image captée par la caméra frontale, et à l'échange bidirectionnel de données avec le drone par liaison Wi-Fi ou Bluetooth. Le pilotage du drone 10 consiste à faire évoluer celui-ci par : a) rotation autour d'un axe de tangage 22, pour le faire avancer ou recu- ler , et/ou b) rotation autour d'un axe de roulis 24, pour le décaler vers la droite ou vers la gauche ; et/ou c) rotation autour d'un axe de lacet 26, pour faire pivoter vers la droite ou vers la gauche l'axe principal du drone, donc la direction de pointage de la caméra frontale ; et/ou d) translation vers le bas 28 ou vers le haut 30 par changement du régime des gaz, de manière à respectivement réduire ou augmenter l'altitude du drone. Lorsque ces commandes de pilotage sont appliquées par l'utilisateur à partir de l'appareil de télécommande 16 selon le mode de pilotage connu, les commandes a) et b) de pivotement autour des axes de tangage 22 et de roulis 24 sont obtenues par des inclinaisons de l'appareil 16 respectivement autour de son axe longitudinal 32 et de son axe transversal 34 : par exemple, pour faire avancer le drone il suffit d'incliner l'appareil vers l'avant en le penchant autour de l'axe 32, pour le déporter à droite il suffit d'incliner l'appareil en le penchant autour de l'axe 34 vers la droite, etc. Les commandes c) et d), quant à elles, résultent d'actions appliquées par contact du doigt 20 de l'utilisateur (généralement le doigt droit) sur des zones spécifiques correspondantes de l'écran tactile 18. Le drone possède également un système automatique et autonome de stabilisation en vol stationnaire, correspondant à un mode autopiloté 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 main- tenu dans cette position fixe par le système de pilotage automatique et de stabilisation, sans aucune intervention de l'utilisateur. La technique proposée par l'invention a pour objet de faciliter le pilotage du drone en permettant à l'utilisateur de ne pas s'occuper de l'orientation du drone lors des manoeuvres de pilotage de celui-ci. La Figure 2 illustre les divers repères considérés pour la mise en oeuvre de l'invention : - en ce qui concerne le drone 10, on considérera un repère local {Xb,Yb,Zb} lié au corps du drone. Le drone, bien que fortement symétri- que par construction, comporte un avant et un arrière, et l'on considére- ra la position de la caméra comme pointant vers l'avant, définissant ainsi l'axe Xi,. L'axe Yb est perpendiculaire à Xb dans le plan moyen du drone, et l'axe Zb est l'axe vertical dirigé vers le sol ; - En ce qui concerne l'appareil 16, celui-ci est également défini par un repère local propre {XI,YI,ZI}, X, et Y, correspondant à la direction en largeur et en longueur, respectivement, du boîtier de la télécommande et Z, correspondant à la normale au plan X,Y, ; - Outre ces deux repères locaux (drone 10 et appareil 16), on considérera également un repère global 36, qui est un repère absolu fixe, no- tamment un repère géographique {XNED,YNED,ZNED} de type NED (North East Down). Ce repère absolu est avantageusement un repère géoma- gnétique, l'axe XNED correspondant à la direction du Nord magnétique, qui pourra être déterminée de la manière que l'on exposera plus loin, en référence aux figures 6 à 8 ; La direction YNED est la direction parai- lèle au plan du sol perpendiculaire au Nord géographique (c'est-à-dire l'Est géographique), et la direction ZNED est perpendiculaire au plan du sol et orientée vers le bas. On dispose ainsi de trois repères, avec deux repères locaux {Xb,Yb,Zb} et {X,,Y,,Z,}, mobiles par rapport à un repère global {XNED,YNED,ZNED}. Si l'on désigne par y, 0 et cp les commandes appliquées au drone : - yrcorrespond à une rotation autour de l'axe ZNED, - 8 correspond à une rotation autour de l'axe YNED tourné de yr, et - ça correspond à une rotation autour de l'axe Xb. Avec ces conventions, le recalage de repère {Xb,Yb,Zb} du drone par rap- port au repère géographique {XNED,YNED,ZNED} pourra s'exprimer par une matrice de la forme : tcosOcosiP siasinvcopp - siniPcoscp cosOsinOcoscp + simpsin0 R = simPcos0 sinesimpsin0 + costpcosgo sinecoscpsimP - sincpcosiP -sin() cosOsitup costkoscp Pour le recalage du repère {X,,Y1,4} de l'appareil 16, une transformation comparable est appliquée, à partir des angles définissant l'orientation de l'appareil 16 par rapport au repère absolu {XNED,YNED,ZNED}- Le passage inverse du repère géographique global au repère local du drone est obtenu au moyen d'une matrice qui sera la transposée de la matrice R. Le recalage des différents repères entre eux a pour but de pallier la difficulté illustrée Figures 3a à 3c. Dans la situation illustrée Figure 3a où l'axe de progression Xb du drone est sensiblement le même que l'axe correspondant X1 de l'appareil, et orienté dans le même sens, le basculement vers la droite (comme en 38) de l'appareil va provoquer un basculement correspondant du drone, qui fera évoluer celui-ci vers la droite (flèche 40), donc dans le même sens que l'inclinaison de l'appareil 16. De la même façon, un basculement vers la gauche de l'appareil (comme en 42) provoquera un déplacement vers la gauche du drone (flèche 44). En revanche, comme illustré Figure 3b, si le drone a tourné de 90° par rapport à la position de la Figure 3a, c'est-à-dire si sa direction Xb est orientée vers la droite (et se déplace, par rapport à l'utilisateur, de la gau- che vers la droite), alors une inclinaison 38 de l'appareil vers la droite pro- voquera un basculement du drone dans le même sens, dans le repère lo- cal du drone, ce qui se traduira, par rapport à l'utilisateur, par un dépla- cement dans le sens d'un rapprochement du drone de l'utilisateur (flèche 46). De la même façon un basculement de l'appareil vers la gauche (comme en 42) provoquera un déplacement dans le sens d'un éloigne- ment du drone par rapport à l'utilisateur (flèche 48). Cette commande, adaptée à un pilotage immersif, n'est pas intuitive si l'utilisateur regarde le drone. Dans le même ordre d'idées, si le mouvement du drone est un mouve- ment en direction de l'utilisateur (c'est-à-dire que les axes Xb et X1 sont sensiblement alignés mais orientés en sens inverse) un basculement de l'appareil vers la droite entraînera un basculement du drone vers la gauche, et inversement. Pour permettre un pilotage plus intuitif, sans ces effets de permutation des axes de tangage et de roulis (comme dans le cas décrit Figure 3b) ou d'inversion du sens des commandes, l'invention propose d'opérer un changement de repère pour restituer des commandes intuitives. L'effet de ces commandes intuitives est illustré Figure 3c : quelle que soit l'orientation du drone, un basculement vers la droite de l'appareil (com- mande 38) provoquera un déplacement vers la droite du drone (flèche 50), et un basculement vers la gauche (commande 42) un déplacement du drone vers la gauche (flèche 52), et de même pour les basculements vers l'avant ou vers l'arrière de l'appareil 16. Essentiellement, l'invention tire parti de la présence, à la fois dans l'appa- reil 16 et dans le drone 10, de capteurs (de type magnétomètre) permet- tant à chacun d'entre eux de connaître sa propre orientation dans un repère absolu, à savoir le repère NED ou repère géomagnétique défini précédemment. Ainsi, lorsque l'utilisateur penchera l'appareil face à lui le drone se déplacera dans la direction vers laquelle l'appareil pointe, quelle que soit l'orientation propre du drone ; de même si l'utilisateur penche son appareil vers la droite, le drone se déplacera sur la droite de l'utilisateur, quelle que soit son orientation propre (comme illustré Figure 3c). On va maintenant détailler les éléments techniques permettant de réaliser cette commande. La Figure 4 est un schéma par blocs fonctionnels des différents organes de contrôle et d'asservissement du drone. On notera 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, cette représentation n'a qu'un caractère illustratif. Le système de pilotage implique plusieurs boucles imbriquées, pour le contrôle de la vitesse horizontale, de la vitesse angulaire et de l'attitude du drone, 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 100 de contrôle de la vitesse angulaire, utilise d'une part les signaux fournis par des gyromètres 102 et d'autre part une référence constituée par des consignes de vitesse angulaire 104, ces différentes informations étant appliquées en entrée d'un étage 106 de correction de la vitesse angulaire. Cet étage 106 pilote un étage 108 de contrôle des moteurs 110 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 100 de contrôle de la vitesse angulaire est imbriquée dans une boucle 112 de contrôle d'attitude, qui opère à partir des informations four- nies par les gyromètres 102, des accéléromètres 114 et un magnétomètre 116, ces données étant appliquées en entrée d'un étage d'estimation d'attitude 118 de type fusion non-linéaire équivalente à un filtrage complémentaire. L'étage 118 délivre des consignes de vitesse angulaire appliquées à un circuit de correction d'attitude 120 de type PI (Proportionnel- Intégrateur), qui reçoit également des consignes d'angle générées par un circuit 122 à partir de commandes utilisateur 124 qui sont soit directement appliquées au circuit 122, soit modifiées ou substituées par des commandes de pilotage automatique générées par un circuit 126, notamment en mode de stabilisation automatique ou pendant des phases de transition autopilotées. Ainsi, à partir de l'erreur entre la consigne (appliquée par l'utilisateur ou bien générée en interne dans le cas d'un pilotage automatique) et la mesure de l'angle donné par le circuit d'estimation d'attitude 118, la boucle 112 de contrôle d'attitude calcule une consigne en vitesse angulaire à l'aide du correcteur PI du circuit 120. La boucle 100 de contrôle de la vi- tesse angulaire 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 102. Elle calcule ensuite à partir de ces informations les différentes consignes de vitesse de rotation (et donc de force ascension- nelle) à envoyer aux moteurs 110 du drone pour réaliser la manoeuvre ini- tialement demandée par l'utilisateur, ou bien planifiée par le pilote automatique. Pour le contrôle de la vitesse horizontale, notamment en fonctionnement autopiloté, une boucle 128 met en oeuvre une caméra vidéo verticale 130 et un capteur télémétrique 132 faisant fonction d'altimètre, qui produisent des informations appliquées à un circuit 134 recevant également les données issues des gyromètres 102 pour appliquer les corrections nécessaires à l'estimation de la vitesse horizontale, donnée par le circuit 136. Cette estimation de la vitesse horizontale peut être corrigée par une estimation de la vitesse verticale Vz, donnée par le circuit 138 à partir d'une estima- tion d'altitude fournie par le circuit 140 recevant l'information du capteur télémétrique 132. Pour le vol autopiloté, la vitesse horizontale estimée par le circuit 136 permet le calcul par le circuit 126 de consignes de vitesse qui seront en- suite appliquées en entrée de la boucle de contrôle d'attitude 112 après transformation en consignes d'angle par le circuit 122, pour amener progressivement le drone à l'arrêt puis maintenir celui-ci à une configuration avec vitesse et inclinaison nulles. En ce qui concerne les déplacements verticaux du drone, l'utilisateur 124 applique soit une consigne de vitesse ascensionnelle Vz directement à un circuit 42, soit une consigne d'altitude à un circuit 144 qui calcule à partir de l'estimation d'altitude produite par le circuit 140 une consigne de vitesse ascensionnelle appliquée au circuit 142. Dans l'un ou l'autre cas, la vitesse ascensionnelle (prescrite ou calculée) est appliquée à un circuit 146 comparant la vitesse ascensionnelle Vz de consigne avec la vitesse correspondante estimée, donnée par le circuit 138. Ce circuit 146 modifie en conséquence les données de commandes des moteurs (circuit 108) 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 mesu- rée. Enfin, et de façon caractéristique de l'invention, un circuit 148 opère un changement de repère pour recaler le repère propre du drone sur le repère propre de l'appareil. Plus précisément, dans la technique de pilotage conventionnelle sans re- calage du repère du drone sur celui de l'appareil, c'est-à-dire en mode de "pilotage immersif', la commande est de la forme : () (9i) (Pa - (PI Od et çod étant les angles d'Euler de consigne du drone dans son propre re- père, et 0/ et ço étant les angles d'Euler de l'appareil. En d'autres termes, les angles de consigne du drone correspondent aux angles caractérisant l'attitude de l'appareil dans son repère. Ici et dans la suite, ces égalités sont bien entendu données à un facteur d'amplification éventuel près, et avec des limitations éventuelles d'inclinaison maximale dans un sens et dans l'autre pour éviter toute commande dépassant les possibilités physiques du drone. Dans le cas de l'invention, on réalise un changement de repère pour reca- ler le repère propre du drone sur le repère propre de l'appareil et permettre ainsi un pilotage intuitif, indépendant de l'orientation relative du drone par rapport à l'utilisateur, tel que celui-ci voit le drone. Comme on l'a indiqué plus haut, cette transformation est opérée par rap- port à un repère absolu, qui est ici avantageusement le repère géomagné- tique terrestre, déterminé de la manière que l'on exposera plus bas à partir des données fournies par le magnétomètre 116 après que ce dernier ait fait l'objet d'une calibration commandée par le circuit 150. Pour connaître l'orientation relative du drone par rapport à l'appareil, il est suffisant de connaître les orientations absolues de chacun de ces deux dispositifs par rapport au sol, en particulier par rapport au Nord magnétique du repère géomagnétique NED. Comme illustré Figure 5, on notera par la lettre vi les caps, c'est-à-dire les angles orientés caractérisant l'orientation du drone, ou de l'appareil, par rapport au Nord magnétique dans le repère NED. En ce qui concerne l'appareil, le cap Vip est obtenu au moyen du magnétomètre intégré à l'appareil, redressé à l'aide des autres capteurs inertiels de l'appareil. En ce qui concerne le drone, le cap drone w est obtenu par une combinaison T d'informations fournies par les différents capteurs du drone, incluant le magnétomètre 116. On verra plus bas, en référence aux Figures 6 à 8, la manière d'obtenir une information fiable du cap w drone. La Figure 5 est une vue en plan, parallèlement au plan du sol, du repère NED montrant l'orientation du cap lifip de l'appareil et du cap Y'drone du drone. Si l'on suppose ces deux caps connus (on verra plus bas la ma- nière de les déterminer), il s'agit de recaler par une rotation d'angle = 1//iP - Vdrone le repère local du drone sur le repère local de l'appareil. Si l'on désigne par ()let cpi les angles de consigne produits par l'utilisateur, c'est-à-dire les inclinaisons imprimées à l'appareil selon les axes de tan- gage et de roulis, on démontre que les angles de consigne Od et (pd qui doivent être appliqués au drone sont déterminés par le système de deux relations suivant : { tan (pli (3,1 = tan-1 {cos 4 . tan Oi + sin JO . cos 011 pci = sin-1 [cos thP . sin p1 - sin .30 . sin O. cos Le calcul des nouveaux angles de consigne recalés au sein du drone permet également de simplifier le travail des développeurs tiers, par exemple pour la programmation de jeux exécutés au sein de l'appareil et mettant en oeuvre le mode de pilotage selon l'invention : si tous les calculs sont opérés au sein du drone, le développeur n'aura pas besoin de connaître le mode de calcul des angles de consigne recalés, exécutés entièrement au sein du logiciel interne du drone. Enfin, le choix d'effectuer le calcul au sein du drone réduit les conséquen- ces des coupures transitoires de communication sur la liaison entre le drone et l'appareil, puisqu'un seul transfert de données est nécessaire et non un aller-retour de commandes, comme dans le cas où le calcul est effectué au sein de l'appareil (voir ci-dessus). Dans un second mode de mise en oeuvre, la commande exacte donnée par le système de deux équations plus haut est remplacée par une forme simplifiée, valable pour une approximation avec des angles faibles : (od _ cos zhp sin Ath (01 q)(/) sin zlip cos ) Cette mise en oeuvre peut être réalisée par une transformation dépendant seulement de Are sur les angles 0/ et çoj de l'appareil, avant d'appliquer ces derniers à la boucle d'asservissement du drone. Cette transformation peut être décomposée en deux rotations, l'une étant effectuée au sein de l'appareil, et l'autre au sein du drone. Ainsi, aucun de ces deux dispositifs n'aura besoin de connaître le cap de l'autre. La première rotation, d'angle gp, est effectuée au sein de l'appareil, et renvoie une commande intermédiaire et jP j : (/ / 1.\ = (COS ip sin 1Pip -sin ip COS L/) ip W) I Cette commande intermédiaire est envoyée au drone, qui calcule à partir de sa propre donnée d'angle de cap Vdrone, une rotation d'angle -y drone donnant la consigne d'angle finale °d, ÇOd 047i COSI) drone -sin 1Pdrone (61',) P a = (sin 11)dr one, COS drone (I) I On va maintenant décrire une manière de déterminer le cap magnétique Vdrone du drone. Concrètement, cette valeur de cap Y1drone est obtenue à partir d'informations délivrées par plusieurs capteurs embarqués incluant le magnétomè- tre 116, mais également la centrale gyroscopique 102 afin de compenser un certain nombre de perturbations induites par le drone lui-même (courants élevés circulant dans les conducteurs, aimant des moteurs ...) et dues aux imperfections de la mesure (biais du capteur, bruit de mesure élevé). II s'agit de mesurer l'orientation du drone par rapport au repère géoma- gnétique terrestre. Localement, le champ magnétique terrestre à la surface du globe produit un vecteur B qui peut être caractérisé, comme illustré Figure 6, par : - sa magnitude (mesurée en milligauss), - sa déclinaison D par rapport au Nord géographique, et - son inclinaison I par rapport au plan de l'horizontale (Nord géographique, Est géographique). La déclinaison, qui est en général assez faible, n'a pas d'influence pour la mise en oeuvre de l'invention, dans la mesure où le repère choisi est un repère géomagnétique et où l'on cherche à déterminer la direction du Nord magnétique et non celle du Nord géographique (ici sans importance). L'inclinaison I, en revanche, peut prendre des valeurs relativement importantes, positives ou négatives, par exemple de l'ordre de 65° vers le bas (magnetic tip) à Paris. L'amplitude du champ magnétique terrestre B varie typiquement de 200 à 600 mG suivant la position géographique, avec une amplitude de la composante horizontale du champ magnétique Bhrzt, variant de 0 à 300 mG en fonction de l'amplitude locale du champ B et de l'inclinaison I locale. C'est cette composante Bh't que l'on cherche à déterminer, qui permettra d'es- timer le cap Vidrone du drone par rapport au Nord magnétique. La composante verticale Bhrzt du champ magnétique peut être estimée à partir de la magnitude de la composante horizontale et de l'inclinaison I du champ magnétique. L'inclinaison du champ magnétique sera déterminée par une table de correspondance chargée en mémoire du drone, qui don- nera pour les valeurs de latitude et de longitude (déterminées par exemple par un circuit GPS incorporé à l'appareil, ou par tout autre moyen) l'angle d'inclinaison du vecteur champ magnétique terrestre B par rapport à l'horizontale. Toutefois, le cap magnétique donné par le magnétomètre du drone est entaché de nombreuses composantes parasites. En premier lieu, on trouve une composante parasite relativement importante dans les hautes fréquences, du fait des aimants des moteurs du drone. Ces aimants étant tournants, leur contribution au champ magnéti- que tourne également avec eux, induisant une composante parasite dans les hautes fréquences (c'est-à-dire dans des fréquences de l'ordre de la vitesse de rotation des moteurs et au-dessus). Pour éliminer cette première source de parasites, le cap magnétique du drone est avantageusement obtenu, comme illustré Figure 7, en combi- nant (i) la composante basse fréquence du cap magnétique brut produit par le magnétomètre 116, qui est peu fiable dans les hautes fréquences, avec (ii) les composantes hautes fréquences du capteur gyroscopique 102. Cette combinaison est réalisée par deux filtres complémentaires 152, 154, respectivement passe-bas et passe-haut avec des fonctions de transfert HEP et HHp présentant la propriété de complémentarité HEP HHP = 1. Les signaux résultants sont fusionnés en 156 pour donner une valeur de cap débarrassée des éléments parasites variables haute fréquence. Cette technique permet de reconstruire la donnée de cap tout en filtrant les défauts des différents capteurs. On tire ainsi avantageusement parti de la fiabilité en basse fréquence et de la composante absolue de la mesure magnétométrique, tout en conservant la qualité de la mesure en dynamique grâce aux hautes fréquences de la mesure gyroscopique. Les problèmes de bruits hautes fréquences, importants sur les capteurs ma- gnétométriques, sont ainsi filtrés. Les problèmes de dérive en température et liés à l'intégration mathématique des données des capteurs inertiels de type gyroscopique sont également compensés. Les mesures délivrées par le magnétomètre sont toutefois entachées d'autres perturbations produites par l'environnement du capteur, notam- ment : - les champs magnétiques générés par les forts courants d'alimentation des moteurs ; - les champs magnétiques générés par les aimants fixes présents sur le drone (par exemple l'aimant de la fixation magnétique du carénage de protection), ces aimants n'étant pas tournants ; et - le décalage ou offset propre du capteur magnétométrique. Ces perturbations sont du même ordre de grandeur que le champ magnétique terrestre proprement dit, et il est donc nécessaire de les éliminer pour déterminer avec une précision suffisante le cap magnétique du drone. Ces diverses perturbations s'ajoutent et constituent un offset glo- bal, qui pourra être estimé au moyen d'une procédure de calibration préalable que l'on va maintenant décrire. Les perturbations citées ci-dessus ont pour caractéristique d'être fixes dans le repère du drone. C'est cette propriété qui sera utilisée pour les es- timer et les éliminer de la mesure. La procédure de calibration consiste à faire tourner automatiquement le drone d'un tour sur lui-même, à plat et en vol (rotation de 360° autour de l'axe de lacet du drone). Les données magnétométriques mesurées sont donc la somme de l'offset et du champ magnétique extérieur. Mais l'offset est par nature constant dans le repère du drone, tandis que le champ ma- gnétique extérieur (le champ magnétique terrestre que l'on cherche à déterminer) aura effectué un tour complet dans ce même repère. La Figure 8 illustre un exemple de relevé de mesures du capteur magnétométrique. Dans le plan des mesures, on obtient un nuage de points for- mant un cercle centré sur l'offset global, en C, et de rayon R correspon- dant à la composante du champ magnétique terrestre. A partir des mesures réalisées, le centre C et le rayon R du cercle peuvent être obtenus par application d'un algorithme récursif d'optimisation basé sur la méthode des moindres carrés, d'un type en lui-même connu ; il s'agit, à partir des différents jeux de valeurs correspondant aux points de mesure, de chercher le meilleur centre et le meilleur rayon minimisant une fonction d'erreur. On obtient ainsi l'offset à déduire dans le plan horizontal du drone par rapport aux mesures magnétométriques fournies. En ce qui concerne l'offset dans la direction verticale, celui-ci peut être déterminé à partir du rayon R estimé précédemment, des valeurs de mesures obtenues pendant la phase de calibration, ainsi que de la valeur locale de l'inclinaison, connue à partir d'une table de valeurs chargée en mé- moire du drone. Si l'on désigne Bhrzt la composante horizontale du champ magnétique et B''/ la composante verticale de ce même champ, cette dernière vaut : Bvert = Bhrzi.tan(inclinaison) = R.tan(inclinaison), la valeur de l'inclinaison I étant obtenue à partir de la table chargée en mémoire. Or sur l'axe vertical, le champ magnétique mesuré P':' est affecté d'un biais Zo tel que Bmes = Zo + Bvert. On peut estimer ce biais Z0 en utilisant l'ensemble des mesures de calibration : Z0 = Bmes R.tan (inclinaison) , Bmes représentant la moyenne des mesures du champ magnétique sur l'axe vertical Z pendant la mesure de calibration. Le cap magnétique est ensuite obtenu en compensant la mesure magnétique des angles de tangage et de roulis, puis en extrayant le cap donné par la composante horizontale de la mesure compensée : = Rod.Rcp (M mz ol - (1zro Mx Aro\ = - tari Mx, My, Mz représentant les valeurs brutes issues de la mesure magnéto-métrique, et B'mpX1 B compY et B compZ représentant les valeurs utiles, projetées dans le plan horizontal. REVENDICATIONS1. Un procédé de pilotage, au moyen d'un appareil de télécommande, d'un drone à voilure tournante à rotors multiples entraînés par des moteurs respectifs commandables de manière différenciée pour piloter le drone en attitude et en vitesse, comprenant les étapes suivantes : - par l'appareil (16) : - inclinaison de l'appareil selon des axes de tangage (32) et de roulis (34) de cet appareil, et production de signaux d'inclinaison (Or, ça,) correspondants ; et transformation de ces signaux d'inclinaison de l'appareil en com- mandes de pilotage et envoi de ces commandes au drone, et - par le drone (10) : - réception des commandes de pilotage et génération à partir de ces commandes de valeurs de consigne (Ode 9d) pour une boucle de contrôle des moteurs du drone, ces valeurs de consigne étant aptes à commander l'attitude du drone selon des axes de tangage (22) et de roulis (24) du drone, ce procédé étant caractérisé par les étapes additionnelles suivantes : - acquisition de premières données d'orientation Wip) d'un repère local lié à l'appareil (XIYIZ1) par rapport à un repère absolu lié au sol (XNEDYNEDZNED) ; - acquisition de secondes données d'orientation1 d'un repère local rdrone, lié au drone (XbYbZb) par rapport audit repère absolu (XNEDYNEDZNED) ; - calcul d'une donnée d'orientation angulaire relative (A v) du drone par rapport à l'appareil, à partir desdites premières et secondes données d'orientation ; et - recalage du repère de l'appareil sur le repère du drone, par application aux commandes de pilotage d'une rotation fonction de ladite donnée d'orientation angulaire relative, de manière à produire ainsi des valeurs recalées de consigne selon les axes de tangage et de roulis du drone qui soient fonction des inclinai- sons, appliquées à l'appareil par l'utilisateur selon les axes de tangage et de roulis de celui-ci, considérées dans le repère local lié à l'appareil et non plus dans celui lié au drone. 2. Le procédé de la revendication 1, dans lequel les premières et les secondes données d'orientation sont obtenues à partir des angles de cap respectifs ( r drone de l'appareil et du drone par rapport au Nord. 3. Le procédé de la revendication 2, dans lequel ladite rotation fonction de ladite donnée d'orientation angulaire relative est du type : (Gd\ _r cos Ati) sin !» ( 6 \ Wdj sin dl) cos LW 41) d et 9d étant les valeurs recalées de consigne selon les axes de tangage et de roulis dans le repère local lié au drone, Of et étant les inclinaisons appliquées selon les axes de tangage et de roulis dans le repère local lié à l'appareil, et zlv étant la différence des angles de cap respectifs de l'appareil et du drone par rapport au Nord. 4. Le procédé de la revendication 3, dans lequel le calcul de ladite rotation est opéré au sein du drone, directement à partir de données reçues de l'appareil, ces données comprenant les valeurs des inclinaisons appliquées à l'appareil et une donnée d'angle de cap de l'appareil. 5. Le procédé de la revendication 2, dans lequel ladite rotation fonction de ladite donnée d'orientation angulaire relative est du type : tan sil { ed = tan' [cos .dip . tan 81 + sin di. d et ço d étant les valeurs recalées de consigne selon les axes de tangage et de roulis du drone, O et çoi étant les inclinaisons appliquées selon les axes de tangage et de roulis de l'appareil, et Avf étant la différence des angles de cap respectifs de l'appareil et du drone par rapport au Nord. cos el (pd = sin-i[cos 31/) . sin (pi - sin dip . sin 01. cos (pi] 6. Le procédé de la revendication 5, dans lequel le calcul de ladite rotation est opéré partiellement au sein de l'appareil et partiellement au sein du drone, avec : - au sein de l'appareil, calcul d'un première rotation à partir des valeurs des inclinaisons BI et çoi appliquées à l'appareil et d'une donnée d'angle de cap vip de l'appareil : cos Ibip sin iPip [91 Wi/ z,bip cos i,bip r) - au sein du drone, calcul d'un seconde rotation à partir d'une donnée d'angle de cap t/drone du drone : ( 0a\ ( cos i P 7. Le procédé de la revendication 2, dans lequel le repère absolu lié au sol est un repère géomagnétique, et les angles de cap sont des angles mesurés par rapport au Nord magnétique. 8. Le procédé de la revendication 7, dans lequel la détermination de l'an- gle de cap du drone comprend l'acquisition d'une mesure de cap magnétique délivrée par un capteur magnétométrique (116) du drone. 9. Le procédé de la revendication 8, dans lequel l'angle de cap du drone est acquis par la combinaison : - d'une mesure de cap magnétique délivrée par un capteur magnétométrique (116) du drone avec application d'un filtrage passe-bas (152), et - d'une mesure de cap gyroscopique délivrée par une centrale inertielle du drone (102) avec application d'un filtrage passe-haut (154) compté- mentaire dudit filtrage passe-bas. 10. Le procédé de la revendication 8, comprenant en outre une étape préalable de calibration du capteur magnétométrique du drone. 11. Le procédé de la revendication 10, dans lequel ladite étape de calibration comprend les sous-étapes de : - commande d'une rotation complète du drone en vol, à plat autour d'un axe de lacet ; 5 - relevé des mesures délivrées par le capteur magnétométrique ; - détermination d'une valeur de décalage global représentative des champs magnétiques perturbateurs environnants et du décalage propre du capteur magnétométrique.