FR 3034554 A1 20161007 FR 1552813 A 20150401 1 L'invention concerne le pilotage des engins volants motorisés tel que les drones, notamment les drones à voilure tournante tels que les quadricoptères. L'AR.Drone 2.0 ou le Bebop Drone de Parrot SA, Paris, France sont des exemples typiques de tels quadricoptères. Ils sont équipés d'une série de capteurs (accéléromètres, gyromètres 3 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é. Ils 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. Divers aspects de ces drones sont décrits, entre autres, dans les EP 2 364 757 A1, EP 2 400 460 Al , EP 2 613 213 A1 ou encore EP 2 644 240 Al EP 2 613 214 Al (Parrot SA). L'invention concerne plus précisément la mesure de la vitesse horizontale du drone, qui repose essentiellement sur l'utilisation de l'image fournie par la caméra à visée verticale, au moyen d'un calculateur qui analyse la séquence des images captées par cette caméra. Le déplacement estimé de la caméra donne une mesure de la translation horizontale du drone dans les deux directions, de façon indépendante des capteurs inertiels (accélé- romètres). Plus précisément, deux images consécutives données par la caméra sont analysées pour donner un déplacement apparent, en pixels, dans l'une et l'autre dimension horizontale d'un repère terrestre absolu. Si l'on connait l'altitude (donnée par les capteurs ultrasonore et barométrique embarqués par le drone), il est possible de convertir ce déplacement apparent des images en une distance, donc en une vitesse connaissant l'intervalle de temps séparant deux images successives. Le EP 2 400 460 Al précité décrit une telle technique de mesure de la vitesse horizontale basée sur un algorithme du type dit "à flot optique", avec basculement éventuel, contrôlé de façon dynamique, vers un autre algo- rithme de type "détecteur de points" ou "à détection de points d'intérêt" lorsque l'algorithme à flot optique n'est plus en mesure de délivrer un résultat suffisamment fiable. La méthode à flot optique présente de nombreux avantages, en particulier de n'imposer que très peu de contraintes sur le contraste et le contenu de 3034554 2 la scène, et de pouvoir estimer des vitesses élevées comme des vitesses faibles par une approche de type "multirésolution". En revanche, cette méthode est très sensible aux rotations et aux changements d'attitude, et elle ne permet pas de vérifier intrinsèquement la qualité du résultat délivré, 5 c'est-à-dire que l'algorithme délivre toujours un résultat dès lors que suffi- samment de points présentent un gradient élevé, mais ce résultat est délivré même s'il n'a pas de sens. De fait, le résultat délivré n'est pas toujours fiable, ni très précis notamment pour les faibles vitesses. Or, si l'on souhaite réaliser un asservisse- 10 ment efficace et réactif de stabilisation automatique en vol stationnaire, il est nécessaire de disposer d'une mesure de vitesse horizontale qui soit à la fois précise, sensible (car les vitesses linéaires autour du point d'équilibre peuvent être très faibles) et disponible en temps réel. Ces rotations et changements d'attitude susceptible d'influer sur la me- 15 sure de la vitesse horizontale du drone peuvent être mesurés en temps réel par la centrale inertielle. La mise en oeuvre d'un algorithme à flot optique comprend d'ailleurs, de manière en elle-même connue, une étape de compensation des rotations entre les images successivement utilisées. À cet effet, les erreurs susceptibles d'être introduites (rotations qui ajou- 20 tent une composante le long de l'intersection entre le plan image et le plan perpendiculaire à l'axe de rotation) sont compensées en ajoutant au flot optique estimé le déplacement du centre optique dû à la rotation entre deux images successives. En d'autres termes, en cas de rotation entre deux images successives de la scène captée par la caméra une nouvelle 25 version de l'image est générée avant d'être comparée à l'image précé- dente, par un calcul matriciel de projection exécuté en temps réel par le logiciel au sein du processeur de signal du drone. Cette compensation de rotation permet de rendre le calcul de vitesse robuste aux rotations rencontrées notamment en vol stationnaire, et de conserver un modèle li- 30 néaire de déplacement du drone. Une difficulté dans la mise en oeuvre de cette technique de compensation des rotations tient au fait que des erreurs sur les valeurs des angles de rotation (notamment de roulis et de tangage) délivrées à l'algorithme par la centrale inertielle produisent les mêmes conséquences qu'une translation 35 de l'image, et que des erreurs même minimes sont susceptibles de géné- 3034554 3 rer des biais dans l'estimation des composantes de la vitesse horizontale - alors même que l'algorithme de compensation des rotations recale parfaitement une image sur l'autre. Ces erreurs minimes peuvent notamment provenir d'un défaut de syn- 5 chronisme entre le signal d'image délivré par la caméra verticale et le si- gnal gyrométrique délivré par la centrale inertielle. Si l'on veut éviter toute erreur dans le processus de compensation des rotations, il importe donc de garantir pour chaque image une synchronisation extrêmement précise de ces deux signaux. 10 Ces erreurs de synchronisation peuvent notamment résulter d'une cer- taine latence dans le traitement logiciel des signaux, latence qui n'est pas constante et varie de façon non prédictible en fonction notamment de la charge de travail du processeur à un instant donné. Le but de la présente invention est de remédier à ces inconvénients, en 15 proposant une solution permettant de garantir à tout instant une synchro- nisation extrêmement précise entre le signal d'image délivré par la caméra verticale et le signal gyrométrique délivré par la centrale inertielle du drone. Ceci afin d'éviter toute introduction de biais dans la correction des rotations entre images successives, avec les conséquences importantes 20 que l'on a exposées ci-dessus en ce qui concerne la précision de l'estima- tion des composantes de vitesse horizontale du drone. À cet effet, l'invention propose un drone comprenant, de manière en elle-même connue : - une caméra video à visée verticale, apte à pointer vers une scène du 25 terrain survolé par le drone pour capter une séquence d'images de cette scène et délivrer en sortie un signal d'image numérique correspondant; - une centrale inertielle comprenant des capteurs gyrométriques aptes à mesurer les angles d'Euler caractérisant l'attitude du drone par rapport 30 à un repère terrestre absolu et à délivrer en sortie un signal gyromé- trique représentatif des rotations instantanées du drone ; - des moyens de compensation des rotations, recevant en entrée i) le signal d'image délivré par la caméra et ii) le signal gyrométrique délivré par la centrale inertielle, et délivrant en sortie des données d'image re- 3034554 4 calées, compensées des rotations du drone d'une image à la suivante ; et - des moyens d'estimation des vitesses horizontales du drone à partir des déplacements d'une image à la suivante de la scène captée par la 5 caméra, ces moyens d'estimation recevant en entrée lesdites données d'image recalées. De façon caractéristique de l'invention : - la caméra et la centrale inertielle sont pilotées par une horloge commune , 10 - la fréquence d'acquisition des capteurs gyrométriques est un multiple de la fréquence de délivrance du signal d'image de la caméra ; et - il est en outre prévu un circuit apte à: comparer le signal gyrométrique délivré par la centrale inertielle avec le signal d'image délivré par la caméra ; 15 déterminer la valeur du déphasage entre ces signaux respectifs ; appliquer cette valeur de déphasage en entrée des moyens de compensation des rotations ; et - les moyens de compensation des rotations sont en outre aptes à effectuer, avant calcul desdites données d'image recalées, une correc- 20 tion préalable de resynchronisation du signal d'image délivré par la caméra sur le signal gyrométrique délivré par la centrale inertielle. Très préférentiellement, le circuit apte à comparer le signal gyrométrique délivré par la centrale inertielle avec le signal d'image délivré par la caméra, à déterminer la valeur du déphasage entre ces signaux respectifs, et à 25 appliquer cette valeur de déphasage en entrée des moyens de compensation des rotations, est un circuit en technologie matérielle. De préférence, le drone comprend en outre des moyens intégrateurs, aptes à intégrer le signal gyrométrique délivré par la centrale inertielle sur l'intervalle de temps compris entre la délivrance de signaux d'image cor- 30 respondant à deux images consécutives de la séquence d'images. 0 On va maintenant décrire un exemple de mise en oeuvre de la présente 35 invention, en référence aux dessins annexés où les mêmes références 3034554 5 désignent d'une figure à l'autre des éléments identiques ou fonctionnellement semblables. La Figure 1 est une vue générale montrant un drone piloté par un appareil de télécommande. 5 La Figure 2 est un schéma par blocs des différents organes de contrôle d'asservissement et de pilotage du drone. La Figure 3 illustre, sous forme de schéma par blocs, les différents éléments contribuant au mécanisme de synchronisation entre la caméra video et les gyromètres. 10 La Figure 4 illustre divers chronogrammes montrant la relation temporelle entre les signaux délivrés par la caméra et par les gyromètres. 0 15 On va maintenant décrire un exemple de réalisation 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 Bebop Drone de Parrot SA, Paris, France. Ce drone comporte quatre rotors coplanaires 12 dont les moteurs sont pilotés indépendamment par un système intégré de 20 navigation et de contrôle d'attitude. Il est pourvu d'une 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 haute définition à capteur CMOS de résolution 1920 x 1080 pixels avec une fréquence de rafraichissement du flux video de 30 fps (image par seconde). Le drone est égale- 25 ment pourvu d'une caméra 16 à visée verticale pointant vers le bas, apte à capter des images successives du terrain survolé T et utilisée notamment pour évaluer la vitesse du drone par rapport au sol. Il s'agit par exemple d'une caméra à capteur CMOS de résolution QVGA (320 x 240 pixels) avec une fréquence de rafraichissement du flux video 30 de 60 fps et un angle de champ de 64°. Le drone est également muni de 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 (tangage ça, roulis 0 et lacet ie) décrivant l'inclinaison du drone par rapport 35 à un plan horizontal d'un repère terrestre fixe UVVV, étant entendu que les 3034554 6 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. Le drone 10 est piloté par un appareil de télécommande distant 18 tel 5 qu'un téléphone ou tablette multimedia à écran tactile et accéléromètres intégrés, par exemple un smartphone de type iPhone (marque déposée) ou autre, ou une tablette de type iPad (marque déposée) ou autre. Il s'agit d'un appareil standard, non modifié si ce n'est le chargement d'un logiciel applicatif spécifique tel que l'application mobile AR Free Right (marque 10 déposée) pour contrôler le pilotage du drone 10 et la visualisation des images prises par la caméra frontale embarquée 14. L'appareil 18 comprend un corps 20 et un écran tactile 22 affichant l'image de la scène captée par la caméra frontale 14, avec en superposition un certain nombre de symboles permettant l'activation de commandes de pilotage (montée/des- 15 cente, etc.) par simple contact d'un doigt 24 de l'utilisateur sur les sym- boles affichés à l'écran. L'appareil 18 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 pour le faire avancer ou reculer. Les actions de l'utilisateur sont 20 interprétées par le logiciel applicatif spécifique, qui les transforme en si- gnaux de commande à destination du drone. La Figure 2 est un schéma par blocs des différents organes de contrôle, d'asservissement et de pilotage du drone, ainsi que de correction des déplacements de l'image selon la technique de l'invention (on notera que, 25 bien que ces schémas soient présentés sous forme de circuits intercon- nectés, la mise en oeuvre des différentes fonctions est essentiellement logicielle, cette représentation n'ayant qu'un caractère illustratif). De façon générale, le système de pilotage implique plusieurs boucles imbriquées pour le contrôle de la vitesse horizontale, de la vitesse angulaire 30 de l'attitude du drone et des variations d'altitude, automatiquement ou sous commande de l'utilisateur. La boucle la plus centrale est la boucle 100 de contrôle de la vitesse angulaire, qui 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 angu- 35 laire 104. Ces informations sont appliquées en entrée d'un étage 106 de 3034554 7 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. 5 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 et par des accéléromètres 114. Les données issues de ces capteurs sont appliquées à un étage 118 qui produit une estimation de l'attitude réelle du drone, appliquée à un étage 120 de cor- 10 rection d'attitude. Cet étage 120 compare l'attitude réelle du drone à des consignes d'angle générées par un circuit 122 à partir de commandes directement appliquées par l'utilisateur 124 et/ou à partir de données générées en interne par le pilote automatique du drone via le circuit 126 de correction de vitesse horizontale. Les consignes éventuellement corrigées 15 appliqué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. Une boucle de contrôle de vitesse horizontale 130 comporte la caméra video verticale 16, un capteur télémétrique à ultrasons 132 et un capteur 20 barométrique 134 faisant fonction d'altimètre. Un circuit 136 assure le trai- tement des images produites par la caméra verticale 16, en combinaison avec les signaux de l'accéléromètre 114 et du circuit d'estimation d'attitude 118, pour produire des données permettant d'obtenir au moyen d'un circuit 138 une estimation des vitesses horizontales Vx et Vy selon les 25 deux axes de tangage et de roulis du drone. Les vitesses horizontales Vx et Vy estimées sont corrigées par l'estimation de vitesse verticale Vz donnée par un circuit 140 et par une estimation de la valeur de l'altitude z donnée par le circuit 142 à partir des informations des capteurs 132 et 134. 30 Pour le contrôle des déplacements verticaux du drone, l'utilisateur 124 applique des commandes à un circuit de calcul de consigne d'altitude 144, consigne qui est appliquée à un circuit de calcul de consigne de vitesse ascensionnelle Vz 146 via le circuit de correction d'altitude 148 recevant la valeur d'altitude estimée donnée par le circuit 142. La vitesse ascension- 35 nelle Vz ainsi calculée est appliquée à un circuit 150 qui la compare à la 3034554 8 vitesse correspondante estimée par le circuit 140, et modifie en conséquence les données de commande des moteurs (circuit 108) en augmentant ou réduisant la vitesse de rotation simultanément sur tous les moteurs de façon à minimiser l'écart entre vitesse ascensionnelle de con- 5 signe et vitesse ascensionnelle mesurée. En ce qui concerne la caméra video frontale 14, celle-ci délivre des données video brutes (données de pixel) à un circuit de fenêtrage 152 assurant la sélection des pixels utiles dans une zone de capture déterminée par la centrale inertielle 154 (incluant les gyromètres 102, les accéléro- 10 mètres 114 et le circuit d'estimation d'attitude 118). Les données video inscrites dans la zone de capture sont appliquées à un circuit 156 de correction des distorsions géométriques qui produit des données video rectifiées, elles-mêmes délivrées à un circuit émetteur 158 assurant la transmission de l'image video au dispositif de télécommande distant tenu par 15 l'utilisateur. On va maintenant décrire plus en détail, en référence à la Figure 3, les divers aspects relatifs à la synchronisation des signaux gyrométriques et des signaux d'images de la caméra verticale, pour le calcul des vitesses horizontales estimées par le circuit 138. 20 Les gyromètres 102, la caméra frontale (caméra horizontale) 14 et la ca- méra à visée verticale 16 sont pilotés par un circuit d'horloge commun 160, les fréquences de fonctionnement respectives des gyromètres et des caméras 14 et 16 étant des sous-multiples de la fréquence CLK de cette horloge 160. 25 Les gyromètres 102 et la caméra à visée verticale 16 sont ainsi configurés de sorte que : Fgyro = K.FcamV Fgyro étant la fréquence d'acquisition des gyromètres, 30 FcamV étant la fréquence d'acquisition des images par la caméra 16 (typi- quement FcamV = 60 Hz), et K étant un entier positif. Le fait que K soit un entier et que l'horloge de base soit la même pour les gyromètres et la caméra, assure qu'il y aura toujours K échantillons du si- 3034554 9 gnal gyrométrique Sgyro par image du signal ScamV, sans aucune dérive, les mesures d'angle tombant toujours au même instant. La caméra horizontale 14 délivre un signal ScamH aux circuits 152 et 156 précités de fenêtrage et de correction des distorsions, permettant de sta- 5 biliser l'image video et d'en corriger divers artefacts avant que celle-ci ne soit délivrée à l'utilisateur. Les gyromètres 102 délivrent un signal Sgyro transmis au circuit 118 précité d'estimation de l'attitude du drone, qui estime les rotations ço, O et i,ii du drone dans les trois axes et les transmet aux circuits 152, 156 et 136. 10 La caméra verticale 16 délivre un signal Scamv appliqué au circuit 136 pré- cité qui, entre autres traitements video, assure une compensation des rotations d'une image à la suivante en fonction des estimées des rotations délivrées, à chaque image, par le circuit 118, avant de calculer les vitesses horizontales Vx et Vy par application de divers algorithmes, incluant 15 notamment un algorithme à flot optique opérant par comparaison du dé- placement apparent entre deux images consécutives du terrain survolé par le drone. La Figure 4 illustre une série de chronogrammes montrant : - le signal Vsync CamH de synchronisation de la caméra horizontale 14, 20 - le signal Vsync Gyro de synchronisation des gyromètres 102, et - le signal Vsync CamV de synchronisation de la caméra verticale 16. La cadence des images délivrées par la caméra horizontale est typiquement de 30 Hz, et celle des images délivrées par la caméra verticale de 60 Hz. 25 Comme on peut le voir sur ces chronogrammes, la caméra horizontale ré- alise une acquisition relativement lente, l'acquisition d'une image commençant sur le front montant du signal Vsync CamH et se terminant sur le front descendant de ce même signal. Une image de la caméra horizontale correspond de ce fait à un nombre important d'échantillons des gyro- 30 mètres (six échantillons du signal Sgyro sur l'exemple simplifié illustré, en réalité typiquement 30 échantillons). En ce qui concerne la caméra verticale, les acquisitions sont réalisées beaucoup plus rapidement, entre le front montant et le front descendant du signal Vsync CamV, et l'algorithme d'estimation des vitesses doit connaitre 35 de la façon la plus précise possible la différence d'attitude du drone entre 3034554 10 deux images successives. Dans l'exemple illustré, cette acquisition ne correspond qu'à un unique échantillon du signal gyrométrique (en réalité, typiquement quatre échantillons) La variation d'attitude du drone entre deux images successives est avan- 5 tageusement calculée avec intégration du signal gyrométrique Sgyro délivré par chacun des gyromètres (chronogramme Integr Sgyro de la Figure 4). Mais surtout, il est indispensable de disposer d'une synchronisation extrêmement précise entre le signal gyrométrique Sgyro et le signal d'image ScaMV délivré par la caméra verticale. 10 À cet égard, bien que le signal Sgyro du capteur gyrométrique et le signal Scamv de la caméra 16 soient délivrés à la même cadence (à un multiple entier près), ceci ne donne aucune garantie sur la concordance de phase de ces deux signaux, c'est-à-dire sur leur synchronisme véritable. Plus précisément, l'horloge commune fait en sorte que le signal gyromé- 15 trique Sgyro ne "glisse" pas par rapport au signal video ScamV. Ceci signifie que lorsqu'une nouvelle image est disponible, il s'écoule toujours le même intervalle de temps avant que le gyromètre délivre une nouvelle donnée. En revanche, cet intervalle de temps varie d'un drone à l'autre, et d'une séquence de pilotage à l'autre, car les capteurs gyrométriques n'ont pas 20 été démarrés en même temps que la caméra video. En effet, les acquisitions video et les acquisitions gyrométriques sont déclenchées par logiciel, et il n'est de ce fait pas certain que les deux acquisitions démarrent en même temps, ni que l'intervalle de temps séparant les deux démarrages soit constant d'un drone à l'autre, ou d'une sé- 25 quence de pilotage à l'autre pour un même drone. Pour garantir une synchronisation parfaite, l'invention propose, de façon caractéristique, d'utiliser un composant matériel (hardware) 170, qui mesure avec une grande précision le décalage temporel A entre les signaux gyrométriques et video Sgyro et ScamV (on notera qu'une mesure unique est 30 suffisante, puisque les horloges ont été réglées de manière à ce qu'elles ne dérivent pas). Les deux mécanismes que l'on vient de décrire - horloge 160 commune et circuit hardware 170 de mesure du déphasage - permettent de relier dans le temps les signaux gyrométriques et video avec une très grande 35 précision, à un cycle d'horloge près. 3034554 11 L'horloge système 160 fonctionnant à plusieurs mégahertz, ceci représente quelques nanosecondes d'erreur sur le calage entre les signaux vide° et gyrométrique, ce qui est très faible et permet d'opérer une correction extrêmement précise et efficace. 5 En revanche, en l'absence de ce mécanisme il aurait été nécessaire de relever par logiciel l'instant de délivrance de chaque nouvelle donnée du gyromètre et de chaque nouvelle image acquise. Une telle méthode serait beaucoup moins précise et plus irrégulière car sensible au temps de réaction du système, et ne procurerait qu'une précision de l'ordre de 100 ps. 10 REVENDICATIONS1. Un drone (10), comprenant : - une caméra video à visée verticale (16), apte à pointer vers une scène du terrain (T) survolé par le drone pour capter une séquence d'images de cette scène et délivrer en sortie un signal d'image (SCaMV) numérique correspondant ; - une centrale inertielle (154) comprenant des capteurs gyrométriques (102) aptes à mesurer les angles d'Euler ((0, 0, v) caractérisant l'atti- tude du drone par rapport à un repère terrestre absolu (UVW) et à dé- livrer en sortie un signal gyrométrique (Sgyro) représentatif des rotations instantanées du drone ; - des moyens de compensation des rotations (136), recevant en entrée i) le signal d'image (Scamv) délivré par la caméra et ii) le signal gyromé- trique (Sgyro) délivré par la centrale inertielle, et délivrant en sortie des données d'image recalées, compensées des rotations du drone d'une image à la suivante ; et - des moyens (138) d'estimation des vitesses horizontales du drone à partir des déplacements d'une image à la suivante de la scène captée par la caméra, ces moyens d'estimation recevant en entrée lesdites données d'image recalées, caractérisé en ce que : - la caméra et la centrale inertielle sont pilotées par une horloge commune (160) ; - la fréquence d'acquisition des capteurs gyrométriques est un multiple de la fréquence de délivrance du signal d'image de la caméra ; et - il est en outre prévu un circuit (170) apte à: - comparer le signal gyrométrique (Sgyro) délivré par la centrale inertielle avec le signal d'image (ScamV) délivré par la caméra ; - déterminer la valeur du déphasage entre ces signaux respectifs ; - appliquer cette valeur de déphasage en entrée des moyens de compensation des rotations (136) ; et - les moyens de compensation des rotations (136) sont en outre aptes à effectuer, avant calcul desdites données d'image recalées, une correc- tion préalable de resynchronisation du signal d'image (ScamV) délivré 3034554 13 par la caméra sur le signal gyrométrique délivré par la centrale inertielle. 2. Le drone de la revendication 1, dans lequel ledit circuit (170) apte à 5 comparer le signal gyrométrique délivré par la centrale inertielle avec le signal d'image délivré par la caméra, à déterminer la valeur du déphasage entre ces signaux respectifs, et à appliquer cette valeur de déphasage en entrée des moyens de compensation des rotations, est un circuit en technologie matérielle. 10 3. Le drone de la revendication 1, comprenant en outre : - des moyens intégrateurs, aptes à intégrer le signal gyrométrique délivré par la centrale inertielle sur l'intervalle de temps compris entre la délivrance de signaux d'image correspondant à deux images consécu- 15 tives de la séquence d'images.