Brevet FR3000813A1 — publié le 20140711

L'invention concerne les drones à voilure tournante tels que les quadricoptères et analogues. Ces drones sont pourvus de rotors multiples entrainé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), d'une caméra frontale captant une image de la scène vers laquelle est dirigé le drone, et d'une caméra de visée verticale captant une image du terrain survolé. Les documents WO 2010/061099A2, EP 2 364 757 Al, EP 2 431 084 Al et EP 2 497 555 Al (Parrot SA) décrivent un tel drone ainsi que son principe de pilotage par l'intermédiaire d'un téléphone ou baladeur multimédia à écran tactile et accéléromètres intégrés, par exemple un téléphone cel- lulaire 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). 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'utilisateur 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 tangage), 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 horizontale 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). L'invention concerne plus particulièrement un système de navigation permettant de connaitre la position du drone dans un repère absolu (galiléen) lié au sol, par exemple un repère géographique terrestre. La position du drone à un instant donné est exprimée par deux coordonnées de position horizontale par rapport à une origine au sol connue, et une coordonnée d'altitude par rapport au niveau du sol (supposée horizontal). Les systèmes de géopositionnement par satellite GPS sont des systèmes de navigation bien connus permettant de délivrer de telles coordonnées 3D de position, avec une très grande précision. Les techniques GPS, basées sur la réception de signaux émis par plu- sieurs satellites, sont cependant inopérantes dans un environnement fermé, à l'intérieur d'un bâtiment, du fait de l'impossibilité de capter convenablement ces signaux. Le problème de l'invention est de permettre au drone de se localiser avec la précision de mesure voulue dans un tel environnement où il n'est pas possible de recevoir des signaux GPS, afin de pouvoir réaliser un vol en autonomie complète, c'est-à-dire sans communication avec l'extérieur pour l'obtention des informations de position. Cette dernière contrainte élimine notamment les systèmes de localisation de type motion capture où une batterie de caméras traque la position du drone à localiser et détermine par le calcul, à partir des image captées, une position estimée qui est envoyée au drone par l'intermédiaire d'une liaison radio. Ce système nécessite des moyens techniques lourds (caméras, moyens de calcul) ainsi qu'une liaison sans fil avec le drone pour l'en- voi des informations à ce dernier depuis le calculateur. Il ne s'agit donc pas d'un système de navigation autonome. Le but de l'invention est de permettre au drone de se localiser lui-même, sans communication avec l'extérieur, à partir des seuls signaux délivrés par une série de capteurs simples préexistants, notamment une caméra verticale basse résolution. Et ceci : - avec une précision élevée, typiquement une précision centimétrique ; - sans dérive, ce qui exclut une simple intégration des signaux accélérométriques produits par la centrale inertielle ; - donnant une position dans un repère absolu, indépendant du drone : notamment, lorsque plusieurs drones évoluent ensemble dans un même espace, il est indispensable que ce repère soit commun à tous les drones ; - fournissant directement la position du drone dans le repère, sans nécessiter de calibration préalable ; - avec une fréquence de rafraichissement élevée, typiquement de l'ordre de 30 Hz; - et de façon robuste, sans risque de perturbation par des fausses détections, valeurs incohérentes et artefacts divers, ou par des signaux émanant d'autres drones évoluant simultanément à proximité. Les informations de position absolue ainsi obtenues pourront être utilisées à diverses fins, notamment pour un asservissement en position du drone avec compensation des phénomènes de dérive des capteurs, des effets du vent ou des déplacements de la masse d'air dans laquelle le drone évolue, etc., et toutes autres informations susceptibles notamment de fausser les indications issues de la centrale inertielle. L'invention propose à cet effet un drone à voilure tournante à rotors multiples entrainés par des moteurs respectifs commandés sélectivement par application de commandes moteur différenciées pour piloter le drone en altitude et en vitesse. Ce drone comprend une pluralité de capteurs aptes à délivrer des signaux respectifs d'état du drone, et un estimateur à filtre prédictif incorporant une représentation d'un modèle dynamique du drone, ce filtre étant apte à opérer une prédiction d'au moins une valeur d'état du drone à partir des commandes moteur et à recaler périodiquement cette prédiction en fonction des signaux délivrés par les capteurs. Les capteurs comprennent : une caméra à visée verticale pointant vers le bas, apte à capter des images d'une scène du terrain survolé par le drone et à produire un signal de vitesse horizontale, dérivé d'une analyse du déplacement de la scène captée d'une image à la suivante ; des capteurs gyrométriques, magnétométriques et accélérométriques, aptes à délivrer des signaux d'accélération linéaire et en rotation ; et un altimètre, apte à déli- vrer un signal d'altitude du drone par rapport au terrain survolé. De façon caractéristique de l'invention, le drone comprend en outre des moyens de navigation, aptes à déterminer des coordonnées de position du drone dans un repère absolu lié au sol. Ces moyens de navigation sont des moyens autonomes aptes à opérer sans réception de signaux exter- nes au drone, ils comprennent des moyens d'analyse d'image, aptes à dériver un signal de position d'une analyse de motifs prédéterminés connus, présents dans la scène captée par la caméra. Ils mettent par ailleurs en oeuvre l'estimateur à filtre prédictif auquel sont appliqués en entrée le si- gnal de position, le signal de vitesse horizontale, les signaux d'accéléra- tion linéaire et en rotation, et le signal d'altitude. Le filtre prédictif peut notamment être un filtre à huit états, ces états comprenant: deux composantes horizontales de la vitesse de déplacement du drone par rapport au sol, exprimées dans un repère lié au drone ; deux composantes horizontales de la vitesse de l'air par rapport au sol, expri- mées dans le repère absolu lié au sol ; deux composantes horizontales de biais d'accéléromètre du drone ; et deux coordonnées horizontales de position du drone dans le repère absolu lié au sol. Le filtre prédictif est de préférence un filtre prédictif de Kalman. Avantageusement, l'altimètre comprend également un filtre prédictif apte à opérer une prédiction de l'altitude du drone et à recaler périodiquement cette prédiction en fonction des signaux délivrés par au moins l'un d'entre un capteur télémétrique et un capteur barométrique, et d'un signal de coordonnée verticale de position du drone, dérivé de l' analyse des motifs prédéterminés connus présents dans la scène captée par la caméra. Les moyens d'analyse des motifs prédéterminés connus, présents dans la scène captée par la caméra peuvent notamment comprendre : des moyens de préfiltrage, aptes à extraire de l'image délivrée par la caméra les pixels correspondant aux bordures des motifs et de sous-motifs, et en dériver la position et l'orientation du contour de chaque motif et sous- motif ; des moyens colorimétriques, aptes à déterminer la couleur propre de chaque sous-motif ; des moyens de reconnaissance, aptes à identifier chaque motif à partir des couleurs propres de chacun de ses sous-motifs ; et des moyens de détermination de position, aptes à déterminer les coor- données de position du drone dans le repère absolu lié au sol en fonction des motifs identifiés par les moyens de reconnaissance. Les moyens de détermination de position peuvent être des moyens aptes à évaluer une distance entre le drone et un motif soit en fonction i) de la taille du motif dans l'image captée par la caméra, ii) de la taille réelle, connue, du motif et iii) des caractéristiques géométriques du système op- tique de la caméra, soit par i) détermination pour chaque motif d'une droite reliant chaque motif au drone et ii) détermination de la position par application à ces droites d'un algorithme de minimisation aux moindres carrés. L'invention porte également sur un ensemble comprenant un drone tel que ci-dessus, et un tapis portant un réseau desdits motifs prédéterminés, chacun de ces motifs étant identifié de manière unique par des caractéristiques visuelles propres. Les caractéristiques visuelles propres peuvent notamment comprendre pour chacun des motifs une pluralité de sous-motifs colorés, la couleur de chaque sous-motif étant choisie dans une série prédéterminée de couleurs, et les couleurs des sous-motifs d'un même motif étant choisies de manière unique, et invariante par rotation, pour tous les motifs du tapis. 0 On va maintenant décrire un exemple de mise en oeuvre du dispositif 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. On va maintenant décrire un exemple de mise en oeuvre du dispositif 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 de té- lécommande associé permettant son pilotage à distance. La Figure 2 est un schéma par blocs des différents organes de contrôle, d'asservissement et de pilotage assisté du drone. La Figure 3 montre plus précisément, sous forme de blocs fonctionnels, les différents éléments impliqués par le système de navigation selon l'in- vention. La Figure 4 est une vue en plan du tapis utilisé par le procédé de l'invention, avec un certain nombre de motifs disposés dessus. La Figure 5 illustre un exemple d'image captée par la caméra à visée frontale du drone, avec un certain nombre de motifs présents dans le champ de vision de cette caméra. La Figure 6 est une représentation de l'espace colorimétrique {U,V} indi- quant les secteurs correspondant à chacune des couleurs choisies pour identifier et discriminer les motifs du tapis. La Figure 7 illustre la phase de recherche des motifs par une technique de points d'impact. La Figure 8 est un histogramme de l'orientation des gradients pour les pixels des bordures correspondant à un motif reconnu dans l'image. La Figure 9 illustre la position du motif et son orientation dans l'image captée par la caméra, avec les différents paramètres utilisés pour la détection et l'identification de ce motif. La Figure 10 est un histogramme illustrant le résultat de l'analyse du motif de la Figure 9,pour les deux orientations détectées des côtés du carré. La Figure 11 illustre la manière de déterminer la position du drone en fonction de la distance moyenne à chacun d'une pluralité de motifs reconnus et identifiés dans le champ de la caméra. 0 Sur la Figure 1, la référence 10 désigne de façon générale un drone, par exemple un quadricoptère tel que le AR.Drone précité décrit dans les VVO 2010/061099 A2 et EP 2 364 757 Ai, ainsi que les FR 2 915 569 Al (qui décrit notamment le système de gyromètres et accéléromètres utilisé par le drone), EP 2 431 084 Al et EP 2 497 555 Al et (qui décrivent notamment la manière de contrôler des trajectoires prédéterminées). 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 est orienté le drone, par exemple une caméra grand-angle à capteur CMOS. Le drone comporte également une seconde caméra 16, à visée verticale, pointant vers le bas (faisceau 18), apte à capter des images successives du terrain survolé 20 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. De façon générale, par "inclinaison", on entendra l'inclinaison du drone par rapport à un plan horizontal d'un repère terrestre fixe, étant entendu que les deux composantes longitudinale et transversale de la vitesse horizontale sont intimement liées à l'inclinaison suivant les deux axes respectifs de tangage et de roulis du drone. Deux repères peuvent être considérés dans la suite, selon le cas : - un repère local {u,v,w} lié au corps du drone : le drone, bien que fortement symétrique par construction, comporte un avant et un arrière, et l'on considèrera la position de la caméra comme pointant vers l'avant, définissant ainsi l'axe u. L'axe y est perpendiculaire à u dans le plan moyen du drone, et l'axe w est l'axe vertical dirigé vers le sol ; - un repère absolu de type NED (North East Down), qui est un repère terrestre fixe, notamment un repère géographique {XNED,YNED,ZNED} l'axe XNED correspond par exemple à la direction du Nord magnétique, la di- rection Y - NED est la direction parallè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. Un télémètre à ultrasons 22 disposé sous le drone (faisceau 24) et un capteur barométrique embarqué fournissent par ailleurs des mesures qui, combinées, donnent une estimation de l'altitude du drone par rapport au sol 20. En ce qui concerne la vitesse linéaire de translation du drone dans un plan horizontal par rapport au sol, 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. Cette technique est décrite en détail dans le EP 2 400 460 Al (Parrot SA), auquel on pourra se référer pour de plus amples détails. Le drone 10 est piloté par un appareil de télécommande distant 26 pourvu d'un écran tactile 28 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 30 d'un uti- lisateur sur l'écran tactile 28. L'appareil 26 est pourvu de moyens de liai- son radio avec le drone pour l'échange bidirectionnel de données du drone 10 vers l'appareil 26, notamment pour la transmission de l'image captée par la caméra 14, et de l'appareil 26 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 26 est également pourvu de capteurs d'inclinaison permettant de contrôler l'attitude du drone en imprimant à l'appareil des inclinaisons correspondantes. Comme indiqué en introduction, l'appareil de télécommande 26 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 en commandant les moteurs de façon différenciée pour engendrer, selon le cas, des mou-25 vements de : a) rotation autour d'un axe de tangage 32, pour faire avancer ou reculer le drone ; et/ou b) rotation autour d'un axe de roulis 34, pour décaler le drone vers la droite ou vers la gauche ; et/ou 30 c) rotation autour d'un axe de lacet 36, pour faire pivoter vers la droite ou vers la gauche l'axe principal du drone ; et/ou d) translation vers le bas ou vers le haut par changement du régime des gaz, de manière à respectivement réduire ou augmenter l'altitude du drone. On pourra se référer aux \NO 2010/061099 A2 et EP 2 364 757 Al précités pour plus de détails sur ces aspects du système. Le drone possède également un système automatique et autonome de stabilisation en vol stationnaire (configuration de "point fixe" 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 stabilisé automatiquement, sans aucune intervention de l'utilisateur. Contrôle et asservissement des moteurs du drone On va maintenant exposer la manière dont sont élaborées les consignes de pilotage des moteurs du drone, en référence à la Figure 2 qui est un schéma par blocs fonctionnels des différents organes de contrôle et d'as- servissement du drone. On notera que, bien que ces schémas soient présentés sous forme de circuits interconnectés, la mise en oeuvre des différentes fonctions est essentiellement logicielle, cette représentation n'étant qu'illustrative. De façon générale, comme illustré Figure 2, le système de pilotage impli- que plusieurs boucles imbriquées pour le contrôle de la vitesse horizontale, de la vitesse angulaire et de l'attitude du drone, en plus des variations d'altitude. 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 sont appliquées en entrée d'un étage 106 de correction de la vitesse angulaire, qui pilote lui-même 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 entrainé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 indications fournies par les gyromètres 102, par des accéléromètres 114 et par un ma- gnétomètre 116 donnant l'orientation absolue du drone dans un repère géomagnétique terrestre. Les données issues de ces différents capteurs sont appliquées à un étage 118 d'estimation d'attitude de type PI (Proportionnel-Intégrateur). L'étage 118 produit une estimation de l'attitude réelle du drone, appliquée à un étage 120 de correction d'attitude qui compare l'attitude réelle à des consignes d'angle générées par un circuit 122 à par- tir de commandes directement appliquées par l'utilisateur 124 (configuration de "pilotage contrôlé") et/ou de données générées en interne par le pilote automatique du drone via un circuit 126 de correction de vitesse horizontale pour le maintien du drone en position immobile (configuration de "point fixe" autopiloté). Les consignes éventuellement corrigées appli- quées au circuit 120 et comparées à l'attitude réelle du drone sont transmises par le circuit 120 au circuit 104 pour commander les moteurs de manière appropriée. En résumé, à partir de l'erreur entre la consigne (appliquée par l'utilisateur et/ou générée en interne) et la mesure de l'angle (donnée 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 vitesse angulaire calcule ensuite la différence entre la consigne de vitesse angulaire précédente et la vitesse an- gulaire effectivement mesurée par les gyromètres 102. La boucle calcule à partir de ces informations les différentes consignes de vitesse de rotation (et donc de force ascensionnelle), qui sont envoyées aux moteurs 110 pour réaliser la manoeuvre demandée par l'utilisateur et/ou planifiée par le pilote automatique du drone. Le circuit 122 de calcul des consignes d'angle reçoit également des cor- rections délivrées par un circuit 128 d'estimation et de compensation du vent, décrit notamment dans la demande française FR 12 52895 du 30.03.2012 pour un "Procédé de pilotage d'un drone à voilure tournante à rotors multiples avec estimation et compensation du vent latéral". La boucle de contrôle de vitesse horizontale 130 utilise la caméra vidéo verticale 132 (référencée 16 sur la Figure 1) et un circuit d'estimation d'altitude 134 (avec un télémètre à ultrasons 154 combiné à un capteur barométrique 156). Un circuit 136 assure le traitement des images produites par la caméra verticale 132, en combinaison avec les signaux de l'accélé- romètre 114 et du circuit d'estimation d'attitude 118, pour estimer au moyen d'un circuit 138 les composantes de la vitesse horizontale selon les deux axes de tangage et de roulis du drone. Les vitesses horizontales estimées sont corrigées par l'estimation de vitesse verticale donnée par un circuit 140 et par une estimation de l'altitude donnée par le circuit 142 à partir des informations des capteurs 134. Pour faire monter ou descendre le drone, l'utilisateur 124 applique des commandes à un circuit 144 de calcul de consignes d'altitude, consignes qui sont appliquées à un circuit 146 de calcul de consigne de vitesse ascensionnelle Vz via le circuit de correction d'altitude 148 recevant l'estima- tion d'altitude donnée par le circuit 142. La vitesse ascensionnelle V, cal- culée est appliquée à un circuit 150 qui compare cette vitesse de consigne à la vitesse correspondante estimée par le circuit 140 et modifie en conséquence les données de commande 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 mesurée. En ce qui concerne plus particulièrement le circuit d'estimation d'altitude 134, celui-ci met en oeuvre un estimateur d'état 152 de type "filtre de Kalman", qui est un filtre à réponse impulsionnelle infinie qui estime les états d'un système dynamique (le drone dans le cas présent) à partir d'une sé- rie de mesures appliquées en entrée, avec : - le signal délivré par le capteur à ultrasons 154 (référencé 22 sur la Figure 1), - le signal délivré par le capteur barométrique 156, et - en 158, la consigne (ci-après "consigne PVVM") de vitesse ascension- nelle produite par le circuit 150 de correction de vitesse verticale V, et appliquée au moteur du drone (circuit 108) : la consigne PVVM représente la force de poussée verticale résultant du contrôle simultané des quatre moteurs du drone. Cette technique est décrite notamment dans la demande française FR 12 52888 du 30.03.2012 pour un "Estimateur d'altitude pour drone à voilure tournante à rotors multiple". Le système dynamique du filtre de Kalman est constitué par un ensemble d'équations qui décrit le comportement du drone (on exposera plus bas en détail cette modélisation). Le filtre de Kalman 152 opère en deux phases, avec successivement : - une phase de prédiction, effectuée à chaque itération du filtre : cette phase consiste à prédire l'altitude du drone à l'instant courant à l'aide d'une part de la consigne PWM et d'autre part de la modélisation dy- namique du drone ; - une phase de recalage, qui consiste à corriger la prédiction en utilisant les mesures courantes délivrées par les capteurs à ultrasons 154 et barométrique 156. Cette étape n'est pas nécessairement réalisée à cha- que itération car, comme on le verra plus bas, les mesures du capteur à ultrasons ne sont pas forcément disponibles tout le temps. Le filtre de Kalman utilise et estime quatre états, à savoir : - l'altitude du drone par rapport à son point de départ (position à l'instant du décollage), - la vitesse verticale Vz, - le biais de la consigne PWM, et - le biais de la mesure de pression délivrée par le capteur barométrique 156. L'état correspondant au biais de la consigne PWM représente l'erreur du modèle de poussée du drone : le modèle de poussée peut en effet varier en fonction de différents paramètres tels que le poids du drone, l'efficacité aérodynamique des hélices (dépendant elle-même de l'état des hélices et de la pression de l'air), etc. Il sert à recaler en vol le modèle à l'aide des mesures fournies par les deux capteurs, ce qui permet notamment d'être plus précis lorsque ces mesures disparaissent. L'état de biais de la me- sure de pression permet, quant à lui, de corriger les dérives du capteur barométrique, susceptibles d'apparaitre au décollage, à la mise en route des moteurs et au cours des premières secondes de vol avec la montée en température, ou encore lorsque l'environnement de pression est modi- fié dans d'autres circonstances, par exemple lorsque le drone évolue à l'intérieur d'une pièce et qu'une personne ouvre une fenêtre de cette pièce, etc. De façon caractéristique de l'invention, il est en outre prévu un circuit 160 estimateur de la position du drone dans un repère absolu lié au sol, circuit dont on décrira plus bas le fonctionnement en référence à la Figure 3. Enfin, le drone peut être si besoin pourvu d'un récepteur GPS 162 permettant, s'il est possible de capter les signaux émis par les satellites, de produire une autre information de position absolue, permettant notamment de corriger les effets du vent et des déplacements de la masse d'air dans laquelle évolue le drone par application d'une entrée supplémentaire à l'estimateur de vent 128. Cette donnée GPS peut être utilisée en entrée du filtre prédictif en complément mais aussi en remplacement de la donnée issue de la reconnaissance des motifs prédéterminés connus, présents et reconnaissables dans la scène captée par la caméra verticale 132 (ces motifs et la manière de les détecter seront décrits plus en détail par la suite en référence aux Figures 4 et suivantes). On notera toutefois que le but premier de l'invention est de parvenir à l'estimation de la position absolue du drone sans recours à un tel récepteur GPS, et que celui-ci n'est prévu qu'à titre subsidiaire mais n'est en aucune façon nécessaire à la mise en oeuvre de l'invention. Élaboration des consignes de contrôle d'attitude du drone On va maintenant exposer la manière dont sont élaborées les consignes de contrôle du drone au moyen des circuits que l'on vient de décrire. On désignera par : - u la composante de la vitesse de translation horizontale dans la direction de l'axe principal du drone (le long de l'axe de roulis 34) ; - y la composante de la vitesse de translation horizontale dans la direc- tion transversale le long de l'axe de tangage 32) ; et - w la vitesse de translation verticale, le tout dans le repère {u,v,w} lié au drone, indépendant de l'inclinaison de celui-ci par rapport au repère NED de référence. Chacune des quatre hélices i du drone (i = 1 ... 4) exerce un couple Fi et une force de poussée ascensionnelle F, proportionnelle au carré de la vi- tesse de rotation co, du moteur : ÇF = ctoiî tri = bcoï On applique la relation fondamentale de la dynamique, ce qui donne en projection sur les axes du référentiel mobile du drone les trois équations suivantes : ù (ry - qw) - gsin0 - Cxu (pw - ru) + gsirupcose + Cyv W= (qu pv) + gcoscpcos0 -1E1- a ca? m 1=1 (Équations 1-3) p, q et r étant les vitesses angulaires suivant les trois axes, g étant l'accélération de la pesanteur, p et Ct étant les deux angles définissant l'inclinaison du drone par rapport à l'horizontale (angles d'Euler : si ii correspond à une rotation autour de l'axe ZNED du repère absolu NED, O correspond à une rotation autour de l'axe YNED tourné de 141, et p correspond à une rotation autour de l'axe u), C,, 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 (0, et m étant la masse du drone. On applique de la même façon le théorème du moment cinétique au système, toujours en projection dans le référentiel mobile, ce qui conduit aux trois équations suivantes : ixp + qr(I, - 1y) = la(co - wï) Iyq + pr(Ix - Iz) = - coï) + pq(Iy - Ix) = b(oàï - ct) + ci:23 - (Équations 4-6) Iy et I, étant des paramètres représentatifs du coefficient d'inertie du 25 drone dans les trois axes, et 1 étant la distance séparant le moteur de son centre de gravité. Dans ces équations, le premier terme du membre de gauche correspond au moment dynamique du système, le second terme représente la contribution au moment dynamique des forces de Coriolis, et le membre de 30 droite correspond aux moments exercés par les forces ascensionnelles F, et les couples F, créés par les hélices de chacun des rotors.20 Enfin, on démontre la relation suivante faisant intervenir les trois angles d'Euler 9, O et y : = p + (cisimp + rcos(p)tan0 é = mi:0w - rsimp cisincp + rcoscp = cos@ (Équations 7-9) Le comportement du système est donc décrit au total par neuf équations à neuf inconnues. Au voisinage du point d'équilibre, avec le drone en sustentation à l'horizontale (vitesse et inclinaison nulles), on aura : u-v-w-9-9-0 Les Équations 1-9 deviennent : 4 2 g = - awi , p = q r = 0, coi w3, (1)2 w4, coi = co2 Et donc, au voisinage du point d'équilibre : 1 eg wi = (02 = W3 = (04 = -2 -a = coo Si l'on pose wi = 0)i - wo, avec i = 1... 4, et qu'on linéarise à l'ordre 1 les équations précédentes autour du point d'équilibre, on aboutit au système d'équations linéarisées suivant : 15 Li = -g(0) - Cx * u g((p) + Cy * v 2aw° (wi + w2 + w3 + w4) /awo (w2-w4) Iacoo bWo = --(/111+ W3 - W2-1414) (Équations 10-18) Estimation de la position du drone dans le plan horizontal L'invention propose une technique d'estimation de position basée sur une modélisation du comportement dynamique du drone en vol. Ce modèle dynamique, dont on donnera plus bas les équations, sera utilisé avec un estimateur d'état de type "filtre de Kalman", qui est un filtre à réponse impulsionnelle infinie qui estime les états d'un système dynami- que (le drone dans le cas présent) à partir d'une série de mesures appliquées en entrée. On trouvera les principes généraux de cette technique par exemple dans R.E. Kalman, A new Approach to Linear Filtering and Prediction Problems, Transactions of the ASME - Journal of Basic Engi- neering, Vol. 82 (1960). Dans le cas présent, le filtre de Kalman utilisera et estimera huit états, à savoir : - les composantes horizontales Vpisv et lirDisy de la vitesse de déplacement du drone par rapport au sol (D/S), exprimées dans le repère lo- cal {u,v,w} lié au corps du drone, ("11- VV3) 1Y - les composantes horizontales VA/set VAISy de la vitesse de l'air par rapport au sol (A/S), exprimées dans le repère terrestre absolu NED fixe, - les biais Bxet By de l'accéléromètre sur ses axes X et Y, et - les coordonnées horizontales XNED et YNED du drone dans le repère absolu NED, déterminée par analyse des motifs d'un tapis 200 étendu sur le sol (ces motifs et la manière de les analyser seront décrits plus en détail par la suite en référence aux Figures 4 et suivantes). La coordonnée verticale ZNED correspond, quant à elle, à l'altitude du drone au-dessus du sol, déterminée par l'estimateur d'altitude 134. Le vecteur d'état du filtre de Kalman s'écrit donc : 7VDISi\ VDIsy VA/Sx X VA/s, Bx By XNED YNED L'évolution des huit états de l'estimateur du filtre de Kalman peut être pré- dite à l'aide du modèle dynamique décrivant le comportement du drone. Les valeurs mesurées de la vitesse par rapport au sol et de l'accélération du drone serviront à recaler les prédictions données par cet estimateur, permettant ainsi i) d'améliorer la précision d'estimation des grandeurs directement mesurées (fonction de filtrage de l'estimateur), comme les vitesses VD/sy et VD/sy de déplacement du drone par rapport au sol, et ii) d'estimer les grandeurs inaccessibles à une mesure directe (fonction d'estimateur d'état), comme la vitesse et la direction du vent correspondant aux composantes VAISx et VAIS. En temps continu, les équations d'état du système (modèle dynamique du drone en vol) s'écrivent : A*X+B*U Y= C*X+D*U R (0 °) (Oo O0)\ cy IP 0 0 00) 00) 0 0) 00) (00 00) 0 71 (00 (00 0 ) c) (0 (0 00)i 0) 0 0 00) (00 (00 l h 00) 0) O' 0) (00 avec : A= /(-sin (0)\\ sin (cl)) ) et U = g Co) (oo) (o) / représentant l'évolution de la valeur initiale X du vecteur d'état, l'entrée U du système étant la gravité U = g, G et cy étant les coefficients de frottement aérodynamique du drone selon ses axes u et y, m étant la masse du drone, 9, 8 et uétant les angles d'Euler (respectivement de roulis, de tangage et de lacet) caractérisant l'attitude du drone par rapport au repère NED, coz étant le taux de rotation autour de l'axe w (mouvement de rotation en lacet), et Rm, étant la matrice de rotation associée à l'angle v, en dimension 2. Les termes nuls des deux sous-matrices A et B de la relation ci-dessus proviennent du fait que, par hypothèse, le vent et les biais de l'accéléro- mètre sont considérés comme constants sur le court terme. On notera que ceci n'empêche pas l'estimation de ces états car i) la vitesse du vent est couplée dynamiquement à la vitesse du drone par rapport au sol, elle-même mesurée et ii) le biais de l'accéléromètre est mesuré au travers de la mesure d'accélération. On notera par ailleurs que ces deux sous-matrices A et B ne sont pas constantes (ce qui correspond à un filtre de Kalman non stationnaire), car elles dépendent de l'attitude du drone et de sa vitesse de rotation autour de l'axe de lacet ; mais ces paramètres sont supposés connus de l'estima- teur, dans la mesure où ils sont en pratique mesurés ou estimés dans le cadre du contrôle d'attitude du drone. La matrice d'observation est : 71Accm'xp \Accmesy (Vvisionx) Vvisiony (1 (Xcarpet) Ycarpet (1 0 0 1 (1 0 (0 o (0 U) \ 0 \ (°Z Cy C - mi \ 0 () 1) (0 (0 fh (0 0 (0 (0 t) X 1) 0) ^3 0) () ih 0) 00)i 0) o 0) 00) Soit Et (01 () (0 O 1) o 0) C= (0 O D=O (13 (0 00) C° O 00) Accmesx et Accm'y représentant l'accélération horizontale mesurée, Vvisonx et VvisionY représentant la vitesse horizontale mesurée à partir des images captées par la caméra à visée verticale, et15 Xcarpet et Ycarpet représentant la position horizontale déterminée par reconnaissance de motifs spécifiques présents dans le champ de la caméra à visée verticale. L'accélération est donnée par : /Accm'x\ 7AD/sx\ -0 g. R 0,6 w (0 Accnies = Accrnes y AD/sy 1) \Accrnesz \AD/Sz/ Pour tenir compte du fait qu'un accéléromètre mesure les forces non gravitationnelles qu'il subit, l'accélération s'exprime différemment en fonction du vecteur d'état : - lorsque le drone est en vol : Acc',es = C., o \ \ 111, /1 Cl , /0\ \ 0 . U -T- ci) C R 1 xIP 0 1, Y / 112/ i - et, de la même façon, lorsque le drone est au sol (posé) : Accmes = (( ) (00 ^0t (1 0 ( sin (0)(0) u 0) 1)) -sin ()) En ce qui concerne la vitesse, celle-ci est mesurée dans le repère {u,v,w} lié au drone grâce à la caméra embarquée à visée verticale donnant une image du sol. Cette image est analysée par des algorithmes tels que ceux décrits dans le EP 2 400 460 Al précité, qui estime le déplacement de la scène captée par la caméra d'une image suivante et applique à ce dépla- cement estimé un facteur d'échelle fonction de l'altitude, elle-même esti- mée par fusion des données produites par un télémètre à ultrasons et par un capteur barométrique. La vitesse du drone exprimée dans son repère étant un élément du vecteur d'état, l'écriture de la mesure en fonction du vecteur d'état est directe : f(1 Cs (O 13) Co °0)) x + (o) . u Vines = % 1) 0 0/ Dans la mesure où, concrètement, l'estimateur utilisé travaille en temps discret (par itérations successives), il est possible d'utiliser une version discrétisée du modèle dynamique en pratique, par approximation au premier ordre (relation de type "état suivant Xt+st en fonction de l'état actuel Xt"), par approximation au premier ordre : Xt+(st = Xt + J.8t Xt+st =X + (AXt + BU). ôt Xt+st = (Id + A. ôt)Xt + 8t. B .0 D'où : Xti-St = AdXt + Bd. U Avec : Ad= Id + A. 8t Bd = St. B En ce qui concerne l'estimation de la position du drone, la Figure 3 schématise, sous forme de blocs fonctionnels, le principe de la technique pro- posée par l'invention. Il s'agit d'obtenir un vecteur 170 de coordonnées {X,Y,Z} au moyen d'un estimateur 172 recevant en entrée des signaux provenant des différents capteurs embarqués, dont les signaux sont fusionnés ensemble de manière à obtenir une donnée de position précise et robuste aux pertes de signaux. L'estimateur global 172 est un estimateur à filtre prédictif rece- vant: - une estimation d'altitude, dérivée des signaux produits par les capteurs à ultrasons et barométrique, à une fréquence de rafraichissement d'environ 20 Hz (bloc 174) ; - une estimation de vitesse linéaire et angulaire, dérivée des signaux dé- livrés par les gyromètres 102, le magnétomètre 116 et les accéléromè- tres 114, à une fréquence de rafraichissement d'environ 200 Hz (bloc 176) - une estimation de vitesse horizontale, obtenue par mise en oeuvre d'un algorithme à flux optique à partir des images successives délivrées par la caméra à visée verticale 132, à une fréquence de rafraichissement d'environ 60 Hz (bloc 178). De façon caractéristique, l'invention prévoit également l'utilisation d'un tapis 200 posé au sol comportant des motifs 210 prédéterminés connus, présents dans la scène captée par la caméra 132, chacun de ces motifs étant identifié de manière unique par des caractéristiques visuelles pro- pres, reconnaissables sur l'image captée par la caméra (ces motifs et la manière de les détecter seront décrits plus en détail par la suite en référence aux Figures 4 et suivantes). Un algorithme d'analyse identifie ces motifs et produit une estimation de position horizontale X et Y (bloc 180) et d'altitude Z (bloc 182), à une fré- quence de rafraichissement typique de 30 Hz. Plus précisément : - l'ensemble 176 accéléromètres-gyromètres-magnétomètre permet d'estimer l'attitude du drone (angles cp, 0, w). Les accéléromètres sont utili- sés en inclinomètres, mais le biais important de ces capteurs fausse la mesure de l'angle, de sorte que leur biais sera évalué, à l'aide de la caméra 132, de la manière décrite plus bas ; l'accélération mesurée après débiaisage de la mesure donne de plus une image de la vitesse de déplacement du drone, à un vecteur constant près ; - la caméra verticale 132 permet, par application d'un algorithme de flot optique, de connaitre la vitesse de déplacement du drone dans le plan, après mise à l'échelle au moyen de la mesure fournie par le capteur à ultrasons, qui regarde dans la même direction que la caméra. Cette vitesse est bruitée mais non biaisée, ce qui permet par comparaison avec la vitesse extraite des accéléromètres (biaisée mais peu bruitée) d'estimer le biais de la mesure ; - les capteurs d'altitude 174 à ultrasons et barométrique permettent, par fusion des deux données, d'estimer une altitude robuste aux mesures erronées, notamment celles renvoyées par le capteur à ultrasons dans le cas de sols tels que des pelouses ou des buissons ; - enfin, l'identification des motifs codant une position connue (bloc 180) procure à partir de l'image délivrée par la caméra une donnée de position absolue dans un repère prédéfini, cette donnée étant toutefois en elle-même relativement bruitée. La fusion des données délivrées par l'ensemble de ces capteurs permet de disposer d'une mesure la plus fiable possible, avec une fréquence de rafraichissement la plus élevée possible. La précision obtenue permet en particulier de décrire de façon précise la trajectoire du drone dans un repère lié au sol, avec un excellent suivi de cette trajectoire. Configuration et identification des motifs du tapis On va maintenant décrire, en référence aux Figures 4 à 11, la manière dont sont captés par la caméra, puis détectés et analysés, les motifs 210 du tapis 200 posé au sol. L'identification de ces motifs, réalisés de la manière que l'on va décrire ci-dessous, permet de localiser précisément le drone de manière autonome dans l'espace fini du tapis, et ceci quelles que soient les conditions de vol en vitesse et en altitude. En particulier, comme on le verra la technique proposée doit permettre une identification quasi-certaine des motifs, qui serait difficile à réaliser en toutes circonstances avec des systèmes de codage du type codes à barres en deux dimensions tels que les codes matriciels QR ou DataMatrix, difficilement lisibles lorsque le drone évolue à haute altitude, ou à base al- titude mais à vitesse élevée. La Figure 4 est une vue en plan du tapis utilisé par le procédé de l'invention. Le fond du tapis est choisi de manière à être gris, pour éviter des effets de surexposition ou sous-exposition de l'image par l'algorithme d'auto- exposition de la caméra. Les motifs 210 sont par exemple des carrés équidistants composés chacune de quatre sous-motifs carrés juxtaposés 212a à 212d, chacun de ces sous-motifs formant lui-même une plage de couleur uniforme prédéterminée. Comme on l'a indiqué plus haut, chaque motif doit être unique, même après rotation sur lui-même pour pouvoir définir l'angle de cap y du drone par rapport au tapis. Si l'on décide de coder les sous-motifs sur cinq couleurs prédéterminées, avec quatre sous-motifs (les carrés 212a à 212d du motif 210), il est ainsi possible d'obtenir 150 motifs différents. Ces cinq couleurs doivent par ailleurs être les plus différentes possible les unes des autres, afin de pouvoir les différencier aisément quelles que soient les conditions de luminosité et le type d'éclairage utilisé, car elles seront restituées de manière sensiblement différente par la caméra selon ces conditions. Des essais ont été menés, correspondant aux points re- portés sur l'espace colorimétrique {UV} de la Figure 6 : des domaines calorimétriques ont été définis après régression linéaire pour chaque couleur, ces domaines se présentant sous la forme de secteurs rayonnant à partir du point G correspondant au gris neutre. Sur la Figure 6 on a ainsi défini cinq secteurs : rouge R, magenta M, bleu B, vert G et jaune Y per- mettant d'optimiser l'extraction des couleurs et la reconnaissance des motifs, de façon indépendante des changements de luminosité. Le gris neutre correspondant au point G est un gris 128, les couleurs étant codées en U et V de 0 à 255. On va maintenant expliciter l'algorithme de détection des motifs dans l'image captée par la caméra, et d'identification de ces motifs par extraction des codes de couleur. La Figure 5 illustre un exemple d'image captée par la caméra à visée fron- tale du drone, avec un certain nombre de motifs présents dans le champ de vision de cette caméra. L'algorithme est exécuté pour chaque image délivrée par la caméra à visée verticale, avec une fréquence de récurrence de 30 Hz. En premier lieu, un préfiltrage est appliqué à la totalité de l'image, afin de travailler efficacement dans l'espace des couleurs. A cet effet, on calcule la distance L1 de chaque pixel, dans l'espace colo- rimétrique {U,V} par rapport au point G {128,128} correspondant au gris moyen du fond du tapis. Un seuil est appliqué à cette distance pour réduire les disparités à l'intérieur d'un motif. L'étape suivante consiste à appliquer à l'image résultante un filtrage pour la détection des contours, par exemple de type filtrage de Sobel, qui est un opérateur couramment utilisé en traitement d'images, avec calcul du gradient de l'intensité de chaque pixel pour reconnaitre les points de changement brusque de luminosité, correspondant probablement à des bords, ainsi que l'orientation de ces bords. Ce filtrage de Sobel permet dans le cas présent d'obtenir une image de la valeur absolue de la norme L1 des gradients, à laquelle est appliqué un seuil, procurant ainsi une image dont on aura extrait les pixels correspondant aux bordures 214 des divers motifs. Ce traitement a toutefois pour effet d'extraire également à l'intérieur du motif certaines des frontières 216 entre sous-motifs colorés, du fait du flou généré par la caméra, qui crée à ces frontières des variations de couleur produisant des pixels parasites qu'il conviendra d'éliminer. Outre les contours des motifs, le filtrage de Sobel donne également une image de l'orientation des gradients, c'est-à-dire des directions des chan- gements d'intensité. L'étape suivante, illustrée par la Figure 7, est une étape de recherche des motifs par points d'impact, au moyen d'une grille 230 d'une pluralité de points 232 superposée à l'image produite par la caméra. Il s'agit de rechercher dans l'image les pixels considérés comme "colorés", c'est-à-dire n'appartenant pas au fond gris, à savoir les pixels situés à l'in- térieur d'un motif de contour tel que détecté précédemment. Si le pixel impacté n'est pas considéré comme "coloré" l'algorithme passe à un impact suivant, obtenu en incrémentant le pas d'analyse par la taille estimée du motif. La taille estimée des motifs peut être dérivée de la taille des motifs recon- nus et analysés à l'image précédente (itération antérieure de l'algorithme). En effet, dans la mesure où l'acquisition est faite à une fréquence de l'ordre de 30 Hz, le mouvement est faible entre deux images et cette approximation est généralement suffisante. Dans le cas où la taille estimée du motif est inconnue (début de la détection, perte de détection depuis plusieurs images...), le traitement est effectué à partir de tailles estimées successives décroissantes. Si l'on applique des contraintes géométriques et de cohérence, il est aisé de détecter les cas où la taille estimée n'est pas la bonne, et en pratique la convergence de l'estimation de taille est de l'ordre de quatre à cinq itérations seulement. Après analyse de tous les impacts, les motifs vus entièrement sur l'image captée par la caméra sont atteints par les points d'impact, schématisés par les cercles 234 sur la Figure 7. Pour éviter de détecter des points de couleur hors du tapis (lorsque le drone évolue à proximité de ce bord), une vérification supplémentaire est opérée, consistant à vérifier que les points situés dans les quatre directions à une distance de -\12 fois la taille estimée du motif sont des motifs de couleur grise : ainsi, des points de couleur situés hors du tapis ne déclencheront aucun traitement. L'étape suivante consiste à extraire les coins des motifs pour lesquels un point d'impact a été détecté. Une fois ce point d'impact détecté, on considère une fenêtre située autour de ce point dont on est sûr qu'elle contient entièrement le motif concerné, et lui seul. Sur la Figure 8, on a tracé l'histogramme de l'orientation des gradients pour les pixels des bordures dans cette fenêtre, qui montrent deux pics Px et Py correspondant aux deux directions X et Y des axes du carré constitué par chacun des motifs 210. Ces deux orientations X et Y peuvent être extraites par une détection de maximum de cet histogramme, associée à la contrainte que la somme des orientations fasse 90° (puisque les motifs sont des carrés). La Figure 9 illustre plus précisément la position du motif et son orientation dans l'image captée par la caméra, avec les différents paramètres qui seront utilisés pour la détection et l'identification de ce motif. L'orientation du carré dans l'image ayant été déterminée (axes X et Y), il convient de déterminer l'ordonnée à l'origine y, de chacune des droites correspondant à chaque segment du carré, comme illustré Figure 9. Pour cela, l'algorithme balaye toutes les valeurs possibles d'ordonnées à l'origine y' en incrémentant un compteur chaque fois qu'un point de la bordure appartient à la droite ainsi formée. La Figure 10 illustre un exemple d'algorithme obtenu à l'issue de ce ba- layage, pour chacune des deux orientations (respectivement en trait plein et en tiretés). Pour chacune des deux orientations, l'histogramme présente deux pics principaux, respectivement P1, P2 et P'1, P'2, correspondant aux contours du motif 210. Un pic parasite tel que 13'3 peut être cependant présent, cor- respondant à la frontière 216 de séparation des couleurs à l'intérieur du motif. En pratique, les pics parasites ont parfois une valeur plus élevée que les pics principaux (ce qu'il faut détecter). Pour les éliminer, l'algorithme doit opérer la recherche des maxima pour la détection des pics en imposant la vérification de contraintes telles que : - dans la mesure où le motif est un carré, la distance entre les deux ordonnées à l'origine correspondant à une orientation (Y2-Yi) doit être égale à celle de l'autre orientation (X2-X1), ; et - cette distance doit être voisine de la taille estimée a du motif, à une équation trigonométrique près. Ces contraintes peuvent se résumer par : Y2-Y1 = X2-X1 = a/cos Ill. Les droites correspondant aux frontières 216 entre les couleurs sont ainsi éliminées, l'algorithme ne donnant alors que les quatre droites passant par chacun des côtés 214 du motif. Par résolution des équations d'inter- section de ces droites, les positions des quatre coins du motif carré 210 peuvent être aisément déterminées, ainsi que celles des coins des sous-motifs correspondant à chacune des quatre plages colorées. Une fois déterminés les coins de chaque sous-motif (carré de couleur), l'algorithme calcule la valeur moyenne des composantes colorimétriques U et V des pixels présents à l'intérieur du quadrilatère correspondant. Cette valeur moyenne est alors positionnée dans l'espace colorimétrique {U,V} prédéfini (Figure 6), afin de décider quelle est la couleur du sous-motif. L'analyse est réitérée pour chacun des sous-motifs, ce qui donne la liste des quatre couleurs du motif identifiant de celui-ci de manière unique. Ces quatre couleurs sont comparées à une liste d'un fichier conservé en mémoire, et une table de correspondance fournit les deux coordonnées de position horizontale X et Y sur le tapis de chaque motif détecté dans l'image captée par la caméra. L'étape finale consiste, à partir des positions en X et en Y de chacun de ces motifs détectés, de déterminer les coordonnées de position du drone dans le repère NED du tapis, dans les trois dimensions X, Y et Z. Dans un premier cas (mono-détection), un seul motif a été détecté et identifié dans l'image recueillie par la caméra. Cette situation correspond typiquement à un survol du tapis à faible altitude, donc près du motif. Il est possible de calculer l'équation d'une droite sur laquelle se situe le drone, à partir de la position du motif sur le tapis et de l'orientation du drone, connue grâce à la centrale inertielle. L'algorithme calcule alors la distance entre le drone et le motif, déterminée à partir de la taille du motif sur l'image captée (déterminé par l'analyse de cette image), de sa taille réelle (connue a priori) ainsi que de la distance focale de la caméra. Cette méthode procure une bonne précision, car il s'agit d'une situation où le drone est à faible altitude, donc près du motif : la taille en pixels du motif variant comme l'inverse de la distance, l'erreur est de l'ordre du pixel. Dans un deuxième cas (multi-détection), illustré Figure 11, le drone a dé- tecté et identifié plusieurs motifs dans l'image captée par la caméra, ce qui correspond à une situation de vol à plus haute altitude. Une première étape consiste à vérifier la cohérence entre ces différents motifs, en opérant un filtrage sur la taille, l'orientation et la position des motifs sur le ta- pis, pour éliminer les détections incohérentes, par exemple un motif qui semble incohérent dans l'image étant donné la position des autres. Si plus de deux motifs passent ces tests, l'algorithme évalue la position du drone en calculant le point 240 (Figure 11) qui minimise la somme des carrés des distances de chacun des motifs 210a, 210b, 210c et 210d. Ce calcul est la résolution d'un système linéaire, et la distance moyenne à chaque droite donne une estimation de la position du drone. Dans l'exemple illustré Figure 11, le drone a détecté cinq motifs 210a à 210e, mais la détection du motif 210e a été rejetée car sa position par rapport aux autres détections 210a à 210d n'est pas cohérente. REVENDICATIONS1. Un drone (10) à voilure tournante à rotors multiples (12) entrainés par des moteurs respectifs commandés sélectivement par application de commandes moteur différenciées pour piloter le drone en altitude et en vitesse, comprenant : - une pluralité de capteurs aptes à délivrer des signaux respectifs d'état du drone, ces capteurs comprenant : une caméra à visée verticale (16, 132) pointant vers le bas, apte à capter des images d'une scène du terrain (20) survolé par le drone et à produire un signal de vitesse horizontale, dérivé d'une analyse du déplacement de la scène captée d'une image à la suivante ; des capteurs gyrométriques (102), magnétométriques (116) et accélérométriques (114), aptes à délivrer des signaux d'accélération linéaire et en rotation ; et un altimètre (22, 152-158), apte à délivrer un signal d'altitude du drone par rapport au terrain survolé ; et - un estimateur à filtre prédictif incorporant une représentation d'un modèle dynamique du drone, ce filtre étant apte à opérer une prédiction d'au moins une valeur d'état du drone à partir des commandes moteur et à recaler périodiquement cette prédiction en fonction des signaux dé- livrés par les capteurs, drone caractérisé en ce qu'il comprend en outre des moyens de navigation, aptes à déterminer des coordonnées de position du drone dans un repère absolu (NED) lié au sol, et en ce que ces moyens de navigation : - sont des moyens autonomes aptes à opérer sans réception de signaux externes au drone ; - comprennent des moyens d'analyse d'image (160), aptes à dériver un signal de position d'une analyse de motifs (210) prédéterminés connus, présents dans la scène captée par la caméra ; - mettent en oeuvre l'estimateur à filtre prédictif (172) auquel sont appli- gués en entrée : le signal de position ; le signal de vitesse horizontale ; les signaux d'accélération linéaire et en rotation ; et le signal d'altitude. 2. Le drone de la revendication 1, dans lequel le filtre prédictif (172) est un filtre à huit états, ces états comprenant : deux composantes horizontales ( VDis VDIsy) de la vitesse de dé- placement du drone par rapport au sol, exprimées dans un repère (u,v,w) lié au drone ; deux composantes horizontales (VA/s, VA/S) de la vitesse de l'air par rapport au sol, exprimées dans le repère absolu (NED) lié au sol ; deux composantes horizontales ( Bx, By) de biais d'accéléromètre du drone ; et deux coordonnées horizontales (XNEDI YNED) de position du drone dans le repère absolu (NED) lié au sol. 3. Le drone de la revendication 2, dans lequel le filtre prédictif (172) est un filtre prédictif de Kalman. 15 4. Le drone de la revendication 1, dans lequel l'altimètre comprend également un filtre prédictif, apte à opérer une prédiction de l'altitude du drone et à recaler périodiquement cette prédiction en fonction : - des signaux délivrés par au moins l'un d'entre un capteur télémétrique 20 (154) et un capteur barométrique (156) ; et - d'un signal de coordonnée verticale (ZNED) de position du drone, dérivé de ladite analyse des motifs (210) prédéterminés connus présents dans la scène captée par la caméra. 25 5. Le drone de la revendication 1, dans lequel les moyens d'analyse des motifs prédéterminés connus, présents dans la scène captée par la caméra comprennent : - des moyens de préfiltrage, aptes à extraire de l'image délivrée par la caméra les pixels correspondant aux bordures des motifs (210) et de 30 sous-motifs (212a-212d), et en dériver la position et l'orientation du contour (214, 216) de chaque motif et sous-motif ; - des moyens colorimétriques, aptes à déterminer la couleur propre de chaque sous-motif ; - des moyens de reconnaissance, aptes à identifier chaque motif à partir 35 des couleurs propres de chacun de ses sous-motifs ; et- des moyens de détermination de position, aptes à déterminer les coordonnées (XNED, YNED, ZNED) de position du drone dans le repère absolu (NED) lié au sol en fonction des motifs identifiés par les moyens de reconnaissance. 6. Le drone de la revendication 5, dans lequel les moyens de détermination de position sont des moyens aptes à évaluer une distance entre le drone et un motif en fonction i) de la taille du motif dans l'image captée par la caméra, ii) de la taille réelle, connue, du motif et iii) des caractéristi- ques géométriques du système optique de la caméra. 7. Le drone de la revendication 5, dans lequel les moyens de détermination de position sont des moyens aptes à évaluer une distance entre le drone et une pluralité de motifs (210a-210d) par i) détermination pour chaque motif d'une droite (242a-242d) reliant chaque motif au drone et ii) détermination de la position par application à ces droites d'un algorithme de minimisation aux moindres carrés. 8. Un ensemble comprenant : - un drone (10) selon l'une des revendications là 7, et - un tapis (200) portant un réseau desdits motifs (210) prédéterminés, chacun de ces motifs étant identifié de manière unique par des caractéristiques visuelles propres. 9. L'ensemble de la revendication 8, dans lequel lesdites caractéristiques visuelles propres comprennent pour chacun des motifs une pluralité de sous-motifs colorés (212a-212d), la couleur de chaque sous-motif étant choisie dans une série prédéterminée de couleurs (R,G,B,Y,M), et les couleurs des sous-motifs d'un même motif étant choisies de manière uni- que, et invariante par rotation, pour tous les motifs du tapis.