Brevet FR3052678A1 — publié le 20171222

L'invention concerne les prises de vue video opérées à partir d'engins volants motorisés tels que des drones, qu'ils soient à voilure fixe ou à voilure tournante. Des exemples typiques de drones volants sont le Bebop de Parrot SA, Paris, France, qui est un drone à voilure tournante de type quadricoptère, ou le Disco, également de Parrot SA, qui est un drone à voilure fixe de type aile volante. Ces drones sont équipés d'une série de capteurs (accéléromètres, gyromètres trois axes, altimètre, etc.) et d'une caméra frontale captant une image de la scène vers laquelle est dirigé le drone. Les EP 2 364 757 A1, EP 2 613 213 A1, EP 2 450 862 A1 ou encore EP 2 613 214 A1 (Parrot SA) décrivent divers aspects de ces drones, notamment la manière de les piloter à distance et de télétransmettre les images captées par la caméra frontale du drone afin de les visualiser, en temps réel, sur un écran de l'appareil de télécommande distant tenu par l'utilisateur. La caméra video frontale (ou "caméra horizontale") est utilisable pour un pilotage "en mode immersir, c'est-à-dire où l'utilisateur se sert de l'image de la caméra de la même façon que s'il se trouvait lui-même à bord du drone. Elle peut également servir à capter des séquences d'images d'une scène vers laquelle se dirige le drone. L'utilisateur peut ainsi se servir du drone de la même façon que d'une caméra ou d'un caméscope qui, au lieu d'être tenu à la main, serait porté par le drone. Les images recueillies peuvent être enregistrées puis diffusées, mises en ligne sur des sites web d'hébergement de séquences video, envoyées à d'autres internautes, par- tagées sur des réseaux sociaux, etc. Ces images étant destinées à être enregistrées et communiquées, il est souhaitable qu'elles présentent le moins de défauts possible, notamment de défauts provoqués par le comportement du drone (notamment changements d'attitude et vibrations) qui introduisent divers artefacts intempes- tifs sur l'image finale présentée à l'utilisateur. Ces défauts peuvent être tolérables dans une configuration de "pilotage immersif'. En revanche, s'il s'agit d'utiliser le drone à la manière d'une caméra video mobile pour capter des séquences qui seront enregistrées et restituées ultérieurement, ces défauts sont extrêmement gênants, de sorte qu'il est souhaitable de les réduire à un minimum. 3052678 2 Les EP 2 933 775 Al et le EP 3 007 429 Al (Parrot SA) décrivent plus précisément la manière de traiter à cet effet, au niveau du drone, les images brutes des séquences video captées par la caméra frontale avant qu'elles ne soient transmises à l'appareil de télécommande (et/ou enregis- 5 trées dans une mémoire numérique) pour visualisation finale Ces traitements préalables sont des traitements logiciels exécutés au sein d'un microcontrôleur ou d'un processeur numérique de signal (DSP) embarqué par le drone, au moyen de divers algorithmes de fenêtrage, de stabilisation à l'égard des vibrations et des changements d'attitude du 10 drone, de correction de diverses distorsions, etc. La plupart de ces traitements utilisent comme données d'entrée les signaux ("données gyrométriques") délivrés par la centrale inertielle (IMU) du drone, notamment pour compenser l'effet des vibrations du drone ainsi que les changements dynamiques d'attitude de celui-ci. 15 Par exemple, dans le cas d'un drone à voilure tournante, celui-ci plonge vers l'avant (inclinaison selon son axe de tangage) pour accélérer, et se cabre pour ralentir (mouvement inverse). Mais ces changements d'attitude sont seulement liés au contrôle de la vitesse et ne doivent pas se traduire sur l'image video : aussi, un traitement de fenêtrage approprié, asservi 20 aux signaux gyrométriques, fait en sorte que le drone semble pointer dans une direction de visée inchangée. Surtout, pour garantir une video toujours stable, il est nécessaire de compenser les mouvements produits par les vibrations instantanées du drone qui seraient perceptibles sur l'image video, par une correction "infra- 25 image", ligne par ligne, donc avec un temps de réponse extrêmement faible. Cette correction ligne par ligne utilise les mesures des gyromètres, qui délivrent un signal représentatif des rotations instantanées du drone et donc de la caméra dans les trois axes, ces rotations incluant les variations très 30 rapides dues aux vibrations aérodynamiques et aux vibrations des mo- teurs (correspondant à la fréquence de rotation des hélices, autour de 120 Hz de fréquence fondamentale). L'application d'une transformée inverse de la mesure gyrométrique permet de compenser ces phénomènes indésirables, dès lors que l'attitude du 35 drone peut être acquise de façon précise pour chacune des lignes, et en 3052678 3 synchronisme avec le capteur de la caméra. Une technique de stabilisation d'image de ce type, mise en oeuvre numériquement, est décrite dans le EP 2 933 775 Al précité auquel on pourra se référer pour de plus amples détails. 5 En variante, ou même en complément de la correction logicielle par fenê- trage, il est également possible de monter la caméra sur un support articulé trois axes de type gimbal avec suspensions à la Cardan, muni de servomoteurs pilotés en fonction des données gyrométriques. En tout état de cause, quelle que soit la solution choisie (caméra fixe et 10 fenêtrage par logiciel, et/ou caméra montée sur gimbal), il est nécessaire de déterminer parfaitement - à chaque image et au sein de chaque image - les mouvements instantanés du drone pour pouvoir stabiliser correctement le flux de données video. Une difficulté tient au fait que les signaux video et les données gyromé- 15 triques sont délivrés par des dispositifs différents (respectivement par la caméra frontale et par la centrale inertielle), avec un léger décalage temporel, ou de façon non synchrone si la caméra frontale et la centrale inertielle sont pilotées par des horloges propres, distinctes. Pour pouvoir prendre en compte ce décalage dans le traitement de stabi- 20 lisation, chacun de ces deux dispositifs délivre en même temps que les données utiles respectives (données d'image ou données gyrométriques) des signaux de synchronisation indiquant aux étages situés en aval l'instant précis où ces données utiles sont effectivement disponibles pour traitement (fin d'acquisition de l'image pour la caméra, fin de la période 25 d'échantillonnage pour la centrale inertielle). Toutefois, bien que ces signaux de synchronisation soient délivrés à la même cadence (à un multiple entier près) ceci ne donne aucune garantie sur la concordance de phase entre ces deux signaux, qui présentent de fait un défaut relatif de synchronisme. 30 En particulier, le déphasage entre ces deux signaux de synchronisation peut varier d'un drone à l'autre, et d'une séquence de pilotage à l'autre, par exemple du fait que les capteurs gyrométriques n'ont pas été démarrés en même temps que la caméra video : en effet, les acquisitions video et les acquisitions gyrométriques étant déclenchées par logiciel, il n'est 35 pas certain que les deux acquisitions démarrent en même temps, ni que 3052678 4 l'intervalle de temps séparant les deux démarrages soit constant d'un drone à l'autre, ou d'une séquence de pilotage à l'autre pour un même drone. De plus, des erreurs de synchronisation supplémentaires peuvent être in- 5 troduites du fait de divers facteurs susceptibles de varier en permanence, en particulier d'une certaine 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é. 10 Le mémoire de thèse de Myung Hwangbo "Robust Monocular Visionbased Navigation for a Miniature Fixed-Wing Aircraft", Carnegie-Mellon University, Robotics Institute, 15 septembre 2009, chapitre 4.2.3, rubrique "Camera-IMU synchronization", expose une technique consistant à opérer avant le vol une calibration préalable sur la base du signal d'image produit 15 par une caméra verticale pointant vers le terrain survolé par le drone. Le déphasage mesuré est considéré constant après l'étape de calibration et appliqué de façon permanente et indifférenciée lors des phases de vol ultérieures. Mais cette technique est spécifique à la correction de l'image produite par une caméra verticale fixant le sol (c'est-à-dire la caméra ser- 20 vant à calculer la vitesse sol du drone), et n'est pas transposable à un caméra quelconque, notamment une caméra frontale susceptible de capter des images mobiles et fugitives. Surtout, du fait qu'elle est basée sur l'hypothèse d'un décalage temporel constant, cette technique n'est en aucune façon susceptible de prendre 25 en compte les phénomènes dynamiques affectant le drone en cours de vol. Le but de la présente invention est de remédier aux inconvénients exposés plus haut, en proposant une solution permettant de garantir à tout instant du vol du drone, en temps réel, une mesure extrêmement précise du 30 déphasage entre le signal d'image délivré par la caméra frontale (ou toute autre caméra du drone) et le signal gyrométrique délivré par la centrale inertielle du drone, ceci afin de permettre ensuite, par le processeur, un traitement de recalage des images et de correction éventuelle des artefacts introduits par les mouvements et vibrations du drone. 3052678 5 On notera que la recherche d'une solution aux inconvénients précités est rendue particulièrement critique du fait de la résolution très élevée des caméras frontales utilisées aujourd'hui, qui sont typiquement des caméras de type haute définition "HD" de résolution 12 Mpixel ou plus (20 à 5 40 Mpixel), pour lesquelles on peut estimer qu'une précision et un jitter (gigue) ne dépassant pas 1 ps seraient souhaitables pour synchroniser convenablement les signaux gyrométriques et video, en temps réel avec une grande précision, et permettre en toutes circonstances un traitement de correction d'image efficace et de grande qualité. 10 À cet égard, les solutions logicielles qui pourraient être apportées à ce problème n'apparaissent pas satisfaisantes à l'égard du degré de précision élevé requis par l'emploi d'une caméra haute définition. En effet, de telles solutions reposeraient sur un mécanisme où les instants de délivrance de chaque nouvelle donnée du gyromètre et de 15 chaque nouvelle image acquise seraient relevés par logiciel, méthode qui serait beaucoup moins précise et plus irrégulière car sensible au temps de réaction du système, et qui ne procurerait qu'une précision finale de l'ordre de 100 ps, largement insuffisante. Un autre but de l'invention est de permettre la mesure du déphasage 20 entre le signal de synchronisation d'image et le signal de synchronisation gyrométrique au moyen d'un processeur ne disposant pas de fonction dédiée pour la mesure d'un tel retard, mais muni d'un simple port universel d'entrée/sortie, par exemple d'un unique port de type standard GPIO programmable gérable par interruption, seulement capable de mesurer la du- 25 rée à l'état haut et à l'état bas d'un (unique) signal appliqué sur cette en- trée. Pour résoudre le problème que l'on vient d'exposer, l'invention propose un drone comprenant, de manière en elle-même connue : - une caméra video, apte à capter des images de l'environnement du 30 drone et à délivrer en sortie des signaux d'image représentatifs d'une séquence d'images captées par la caméra, et un signal de synchronisation de caméra ; - une centrale inertielle, apte à délivrer en sortie des signaux gyrométriques représentatifs des rotations instantanées du drone, et un signal 35 d'interruption ; 3052678 6 - un processeur numérique de données, recevant en entrée les signaux d'image, les signaux gyrométriques et le signal d'interruption, et comprenant des moyens de traitement d'image en fonction des mouvements du drone ; et 5 - des moyens de mesure d'un déphasage entre le signal de synchronisation de caméra et le signal d'interruption, représentatif du déphasage entre les signaux d'image et les signaux gyrométriques. De façon caractéristique de l'invention : - les moyens de mesure du déphasage entre le signal de synchronisa- 10 tion de caméra et le signal d'interruption comprennent un circuit com- bineur, ce circuit combineur recevant en entrée le signal de synchroni- sation de caméra et le signal d'interruption, et générant une sortie unique délivrant un signal de synchronisation combinant le signal de synchronisation de caméra et le signal d'interruption ; 15 - le processeur comprend des moyens de mesure d'un intervalle de temps séparant deux transitions d'état du signal de synchronisation généré par le circuit combineur ; et - les moyens de traitement d'image sont configurés pour adapter les signaux d'image en fonction de l'intervalle de temps séparant deux tran- 20 sitions d'état du signal de synchronisation. Le circuit combineur peut être un circuit distinct du processeur numérique de données, en particulier un circuit formé de composants électroniques matériels. Le processeur numérique de données peut alors être un processeur com- 25 prenant un port d'entrée programmable recevant le signal de synchronisa- tion généré par le circuit combineur, en particulier un port de type GPIO gérable par interruption recevant le signal de synchronisation généré par le circuit combineur. Dans un premier mode de réalisation particulier, le circuit combineur ma- 30 tériel est une porte XOR à deux entrées symétriques et une sortie. La me- sure du déphasage entre les données d'image et les données gyrométriques est alors déterminée par une mesure, opérée par le processeur, du temps écoulé entre deux transitions de sens opposés du signal de synchronisation fusionné reçu sur le port d'entrée programmable. 3052678 7 Dans un second mode de réalisation particulier, le circuit combineur matériel est une bascule RS avec un filtre passe-haut de détection des fronts sur chacune de ses entrées. Par ailleurs, lorsque la centrale inertielle délivre en sortie un signal de 5 synchronisation gyrométrique appliqué en entrée du processeur numé- rique de données, les moyens de traitement d'image sont configurés pour adapter les signaux d'image également en fonction de ce signal de synchronisation gyrométrique. 10 0 On va maintenant décrire un exemple de mise en oeuvre de la présente invention, en référence aux dessins annexés où les mêmes références désignent d'une figure à l'autre des éléments identiques ou fonctionnelle- 15 ment semblables. La Figure 1 est une vue générale montrant un drone piloté par un appareil de télécommande. La Figure 2 est un schéma par blocs des différents organes de contrôle, d'assistance et de pilotage du drone. 20 La Figure 3 illustre, sous forme de schéma par blocs, les différents élé- ments contribuant au mécanisme selon l'invention de synchronisation entre caméra frontale et centrale inertielle. La Figure 4 montre une série de chronogrammes des signaux délivrés par les différents éléments illustrés Figure 3, explicitant en particulier les rela- 25 tions temporelles entre ces différents signaux. La Figure 5 est un organigramme de la manière dont est analysé le signal de synchronisation fusionné appliqué au microcontrôleur pour déterminer à partir de ce signal le décalage temporel entre les signaux de synchronisation respectifs de la caméra frontale et de la centrale inertielle. 30 Les Figures 6A à 6D illustrent les quatre situations différentes de déca- lage temporel possible entre signaux de synchronisation respectifs de la caméra frontale et de la centrale inertielle, discriminées par l'organigramme de la Figure 5. La Figure 7 illustre une variante de réalisation du circuit combineur utilisé 35 sur le schéma de la Figure 3. 3052678 8 o 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 Bebop Drone de Parrot SA, 5 Paris, France. Ce drone comporte quatre rotors coplanaires 12 dont les moteurs sont pilotés indépendamment par un système intégré de navigation et de contrôle d'attitude. 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 munie d'un 10 objectif à champ hémisphérique de type fisheye couvrant un champ d'en- viron 180° formant une image brute sur un capteur de résolution 14 Mpixel (4608 x 3288 pixels), ensuite fenêtrée en temps réel sur une image de qualité HD (1920 x 1080 pixels, soit 2 Mpixel), avec une fréquence de rafraichissement du flux video de 30 fps (image par seconde). Le drone est 15 également pourvu d'une caméra 16 à visée verticale, de moindre défini- tion (par exemple une caméra CMOS de résolution QVGA 320 x 240 pixels), 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. 20 Le drone est également muni de capteurs inertiels (accéléromètres et gy- romè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 çp, roulis 0 et lacet //f) décrivant l'inclinaison du drone par rapport à un plan horizontal d'un repère terrestre fixe UVW, étant entendu que les 25 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 qu'un téléphone ou tablette multimedia à écran tactile et accéléromètres 30 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 Freeflight (marque déposée) de Parrot SA pour contrôler le pilotage du drone 10 et la visualisation 35 des images prises par la caméra frontale embarquée 14. L'appareil 18 3052678 9 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/descente, etc.) par simple contact d'un doigt 24 de l'utilisateur sur 5 les symboles 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 interprétées par le logiciel applicatif spécifique, qui les trans- 10 forme en signaux de commande à destination du drone. Ce téléphone ou cette tablette peut être éventuellement relayé par un équipement spécifique de télécommande tel que le Skycontroller de Parrot SA, qui est une console interfacée avec le téléphone ou la tablette, se présentant sous forme d'un boitier muni de deux poignées avec des manches à balai et di- 15 vers boutons destinés à permettre un pilotage ergonomique par l'utilisa- teur à la manière d'une console de télécommande dédiée. 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, 20 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 25 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- 30 laire 104. Ces 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. 3052678 10 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 5 estimation de l'attitude réelle du drone, appliquée à un étage 120 de cor- 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 10 correction de vitesse horizontale. Les consignes éventuellement corrigées 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 vi- 15 deo verticale 16, un capteur télémétrique à ultrasons 132 et un capteur barométrique 134 faisant fonction d'altimètre. Un circuit 136 assure le traitement 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 20 circuit 138 une estimation des vitesses horizontales Vx et Vy selon les 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 V, 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 25 134. 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 30 valeur d'altitude estimée donnée par le circuit 142. La vitesse ascension- nelle Vz ainsi calculée est appliquée à un circuit 150 qui la compare à la 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 mo- 3052678 11 teurs de façon à minimiser l'écart entre vitesse ascensionnelle de consigne 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 assu- 5 rant 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éromè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 recti- 10 fiées, elles-mêmes délivrées à un circuit émetteur 158 assurant la trans- mission de l'image video au dispositif de télécommande distant tenu par l'utilisateur. En référence à la Figure 3, on va décrire maintenant plus en détail les divers aspects relatifs à la synchronisation des signaux gyrométriques avec 15 les signaux d'image de la caméra frontale. Concrètement, les fonctions des circuits 152 et 156 de la Figure 2 sont mises en oeuvre ensemble au sein d'un circuit de traitement logiciel unique qui peut être un processeur numérique de signal (DSP) spécifique ou, comme dans l'exemple illustré, un simple microcontrôleur à usage gé- 20 néral de type standard recevant les signaux numérisés à traiter et assu- rant le fenêtrage et la correction des distorsions pour stabiliser l'image video et en corriger divers artefacts avant que celle-ci ne soit délivrée à l'utilisateur. Dans le cas, évoqué en introduction, d'une caméra montée sur un disposi- 25 tif de compensation mécanique (gimbal), le microcontrôleur 152, 156 a également pour fonction de piloter les servomoteurs de pointage de la caméra. La caméra horizontale 14 produit un signal d'image qui comprend un signal de contenu d'image (Fiux_video) délivré au circuit 152, 156, associé à 30 un signal de synchronisation d'image cam_sync. Les gyromètres 102 de la centrale inertielle (IMU) 154 délivrent un signal gyrométrique au circuit 118 précité d'estimation de l'attitude du drone, qui estime les rotations ço, 0 et çidu drone dans les trois axes. La centrale inertielle 154 reçoit par ailleurs le signal de synchronisation 35 d'image cam_sync, qui sera échantillonné au moment où la centrale iner- 3052678 12 tielle délivrera les mesures gyrométriques. Le signal gyrométrique transmis au circuit 152, 156 concurremment au signal d'image comprend un signal de contenu (Données gyrométriques) avec les valeurs des mesures gyrométriques, associé à un signal de synchronisation cam_sync imu. La 5 centrale inertielle 154 génère également un signal d'interruption IT mu à destination du microcontrôleur 152, 156 afin d'informer ce dernier de la disponibilité de nouvelles données en entrée. Dans l'hypothèse, évoquée ci-dessus, où les fonctions des circuits 152 et 156 sont mises en oeuvre par un simple microcontrôleur à usage général 10 de type standard, il est envisageable, comme indiqué en introduction, d'utiliser pour la mesure du déphasage entre signaux de synchronisation de la caméra frontale et de la centrale inertielle un composant ne disposant pas de fonction dédiée pour la mesure de ce déphasage, mais muni d'un simple port universel d'entrée/sortie, par exemple d'un unique port de 15 type standard GPIO, programmable, gérable par interruption, et capable de mesurer la durée à l'état haut et à l'état bas de l'unique signal appliqué sur cette entrée. Par exemple (et de façon bien entendu non limitative), le microcontrôleur utilisé est un microcontrôleur flash 8 bits PIC12F1612 de Microchip, qui 20 est un composant comprenant 8 broches dont 6 broches d'entrée/sortie et disposant d'une fonction programmable Signal Measurement Timer permettant de mesurer l'écart temporel entre des fronts d'un signal appliqué en entrée, sur la base d'un compteur 24 bits contrôlé par une horloge et un système de portes approprié. 25 Le but de l'invention est de permettre, à partir d'une détection des transi- tions d'état détectées sur le port d'entrée programmable (référencé 170 sur la Figure 3) du microcontrôleur recevant un unique signal de synchronisation (référencé Synchro sur la Figure 3), un calcul par logiciel, au sein du microcontrôleur, du déphasage entre les signaux de synchronisation 30 respectifs de la caméra frontale et de la centrale inertielle, avec la préci- sion extrême requise pour assurer un fenêtrage et une stabilisation corrects des images. Pour ce faire, l'invention prévoit de mettre en oeuvre, en amont du micro-contrôleur 152, 156, un circuit combineur 172 formé de composants élec- 35 troniques matériels (hardware). 3052678 13 Ce circuit combineur 172 comprend deux bornes d'entrée 174, 176, recevant respectivement le signal Cam sync de synchronisation d'image livrée par la caméra frontale et le signal d'interruption IT délivré par la centrale inertielle. Le circuit combineur 172 comprend une sortie unique 178 déli- 5 vrant un signal de synchronisation fusionné Synchro combinant les deux si- gnaux appliqués aux entrées 174, 176, ce signal Synchro étant appliqué au port d'entrée programmable 170 du processeur 152, 156. Plusieurs modes de réalisation du circuit combineur hardware 172 sont envisageables. 10 Une première solution consiste à prévoir pour ce circuit un petit automate logique permettant de traiter tous les cas de figure possibles (décrits plus bas). Cette solution serait toutefois, en pratique, relativement complexe à mettre en oeuvre, avec un encombrement et un coût relativement importants. 15 Une réalisation préférentielle, illustrée Figure 3, consiste à utiliser comme circuit combineur 172 une porte OU EXCLUSIF (XOR) 180 dont les deux entrées correspondent aux bornes 174 et 176, et la sortie à la borne 178 du circuit combineur 172. Cette solution est particulièrement simple et économique (un seul compo- 20 sant à prévoir) mais implique toutefois une interprétation plus complexe des signaux par le processeur, à partir du signal fusionné Synchro, pour déterminer le déphasage entre les signaux de synchronisation respectifs Cam_Sync de la caméra frontale et cam_sync wu de la centrale inertielle (la mise en oeuvre de cette interprétation sera exposée plus bas en référence 25 à l'algorithme de la Figure 5 et aux Figures 6A à 6D). On va maintenant décrire de façon plus détaillée le fonctionnement du circuit de la Figure 3, en liaison avec la Figure 4 qui illustre les chronogrammes des divers signaux Cam sync wu et Cam sync (les deux signaux de synchronisation dont on souhaite évaluer le déphasage), 1T IMU (signal 30 d'interruption délivré par la centrale inertielle) et Synchro (signal en sortie du le circuit combineur 172). La centrale inertielle 154 envoie périodiquement une demande d'interruption IT IMU après chaque mesure, sous la forme d'une impulsion de durée constante Ti (Figure 4, troisième ligne), répétée après une période T2. 3052678 14 La caméra 14 envoie une impulsion périodique de signal de synchronisation Cam sync, de durée TO (Figure 4, deuxième ligne), indiquant la disponibilité de chaque image captée. La durée TO de cette impulsion, qui est constante, est supérieure à une période de mesure de la centrale iner- 5 tielle, pour garantir son échantillonnage. L'échantillonnage par la centrale inertielle 154 du signal de synchronisation de caméra cam_sync donne le signal Cam sync imu envoyé au processeur (Figure 4, première ligne). Les deux signaux Cam Sync IMU et cam_sync présentent un déphasage T au niveau de leurs fronts descen- 10 dants, déphasage qu'il convient d'évaluer pour pouvoir ensuite stabiliser l'image et corriger les divers artefacts de cette dernière par des algorithmes de traitement logiciel appropriés au sein du processeur 152, 156 (on notera incidemment que l'on pourrait également évaluer, aux mêmes fins, le déphasage T' sur les fronts montants des deux signaux de syn- 15 chronisation). Le circuit combineur 172 combine les deux signaux IT IMU et cam sync en un seul signal fusionné Synchro (Figure 4, quatrième ligne), destiné à mesurer avec une très grande précision le retard entre cam_sync et cam sync mu par un algorithme approprié (illustré plus bas Figure 5) exé- 20 cuté au sein du processeur 152, 156. Pour mesurer ce retard, la durée T1 à l'état bas et la durée T2 à l'état haut du signal fusionné Synchro sont mesurées en continu. La plupart du temps, on constate une alternance du même couple {T1,T2} de durées succes- sives, et c'est la rupture de cette séquence T1/T2 qui indique la présence 25 d'un front du signal Cam_Sync. Ainsi, sur la Figure 4 la rupture de séquence T1/T2/T1/T3/T4/T1/T2... révèle la présence d'un front descendant du signal cam_sync, et la rupture de séquence T1/T2/T5/T6/T1/T2... révèle la présence d'un front montant du signal cam Sync (on peut noter que les durées T3+T4 = T2 et T5+T6 = T1). 30 L'analyse détaillée de cette séquence par un algorithme tel que celui illus- tré Figure 5, exécuté au sein du processeur 152, 156, permet de déterminer avec une très grande précision le retard T du signal de synchronisation gyrométrique cam_sync imu par rapport au signal de synchronisation d'image cam sync. 3052678 15 On notera que le circuit combineur hardware 172, réalisé dans l'exemple illustré à partir d'une porte XOR 180, présente une très grande symétrie de montage (la porte XOR a le même temps de propagation sur ses deux entrées). Ceci permet de compenser les temps de réponse et garantit un 5 calcul du déphasage T avec une très grande précision à partir de la durée de l'impulsion du signal fusionné Synchro. La Figure 5 détaille les étapes de l'algorithme 200 permettant de mesurer la valeur de ce déphasage. Il s'agit de mesurer le temps de réponse entre deux transitions de sens 10 opposés du signal Synchro dans toutes les cas de figure possibles, corres- pondant aux quatre cas illustrés respectivement Figures 6A à 6D (figures sur lesquelles les chronogrammes respectifs correspondent à ceux décrits plus haut en référence à la Figure 4). La première étape (série d'étapes 202) consiste à détecter des séquences 15 T1/T2 répétées, pendant une durée supérieure à T0+T1+T2. Pour cela, les mesures successives M de la durée à l'état haut ou à l'état bas sont acquises et comparées, à une marge d'erreur près pour prendre en compte les erreurs de mesure (typiquement de l'ordre de 1 à 2 périodes de compteur), et ceci jusqu'à détection d'une rupture de la séquence 20 T1/T2 ou à l'expiration de la période T0+T1+T2. Dans le cas d'une rupture de séquence pendant cette phase de synchronisation on en déduit que cam sync n'était pas stable à 1 et on recommence à attendre Cam Sync = 1. Si la série d'étapes 202 détecte une rupture de séquence, elle recom25 mence à attendre une séquence assez longue (S > T0+T1+T2) avant de passer la main à l'étape 204. La série d'étapes 202 se termine toujours après une séquence ininterrompue T1/T2 d'au moins T0+T1+T2 et avec M = T2, donc quand on en sort pour rejoindre l'étape 204 la valeur attendue suivante est Ti, ce qui évite une erreur d'interprétation en 206 (en ef- 30 fet, si par exemple, d'une part Ti = 25 ps et T2 = 100 ps et d'autre part on sort de 202 en attentant T2 et que ce dernier à été coupé à 30 ps, si on teste en premier M = T1 on conclura à tort M > Ti au lieu de M REVENDICATIONS1. Un drone (10), comprenant : - une caméra video (14), apte à capter des images de l'environnement du drone et à délivrer en sortie : des signaux d'image (Rux video) représentatifs d'une séquence d'images captées par la caméra, et un signal de synchronisation de caméra (Cam_Sync) ; - une centrale inertielle (154) apte à délivrer en sortie : des signaux gyrométriques (Données gyrométriques) représentatifs des rotations instantanées du drone, et un signal d'interruption (iT imu) ; - un processeur numérique de données (152, 156), recevant en entrée les signaux d'image, les signaux gyrométriques et le signal d'interruption, et comprenant des moyens de traitement d'image en fonction des mouvements du drone ; et - des moyens de mesure d'un déphasage entre le signal de synchronisation de caméra (Cam_Sync) et le signal d'interruption (IT mu), représentatif du déphasage entre les signaux d'image et les signaux gyrométriques, caractérisé en ce que : - les moyens de mesure du déphasage entre le signal de synchronisation de caméra (Cam_Sync) et le signal d'interruption (n- mu) comprennent un circuit combineur (172), ce circuit combineur : - recevant en entrée le signal de synchronisation de caméra (Cam_Sync) et le signal d'interruption (IT mu), et - générant une sortie unique délivrant un signal de synchronisation (Synchro) combinant le signal de synchronisation de caméra (cam_Sync) et le signal d'interruption (iT imu) ; - le processeur comprend des moyens de mesure d'un intervalle de temps séparant deux transitions d'état du signal de synchronisation (Synchro) généré par le circuit combineur ; et en ce que les moyens de traitement d'image sont configurés pour adapter les signaux d'image en fonction de l'intervalle de temps séparant deux transitions d'état du signal de synchronisation (Synchro). 3052 6 78 19 2. Le drone de la revendication 1, dans lequel le circuit combineur (172) est un circuit distinct du processeur numérique de données (152, 156). 3. Le drone de la revendication 2, dans lequel le circuit combineur (172) 5 est un circuit formé de composants électroniques matériels. 4. Le drone de la revendication 2, dans lequel le processeur numérique de données (152, 156) comprend un port d'entrée programmable (170) recevant le signal de synchronisation (Synchro) généré par le circuit combineur 10 (172). 5. Le drone de la revendication 4, dans lequel le port d'entrée programmable (170) est un port de type GPIO gérable par interruption recevant le signal de synchronisation (Synchro) généré par le circuit combineur (172). 15 6. Le drone de la revendication 3, dans lequel le circuit combineur (172) est une porte XOR (180) à deux entrées symétriques et une sortie. 7. Le drone de la revendication 6, dans lequel la mesure du déphasage 20 entre les données d'image et les données gyrométriques est déterminée par une mesure, opérée par le processeur, du temps écoulé entre deux transitions de sens opposés du signal de synchronisation fusionné (Synchro) reçu sur le port d'entrée programmable. 25 8. Le drone de la revendication 3, dans lequel le circuit combineur (172) est une bascule RS (182) avec un filtre passe-haut (184, 186) de détection des fronts sur chacune de ses entrées. 9. Le drone de la revendication 1, dans lequel la centrale inertielle (154) 30 est apte à délivrer en outre en sortie un signal de synchronisation gyromé- trique (CamSync IMU) appliqué en entrée du processeur numérique de données (152, 156), les moyens de traitement d'image étant configurés pour adapter les signaux d'image également en fonction du signal de synchronisation gyrométrique.