Hé! Vous semblez être en United States, souhaitez-vous utiliser notre site English ?
Switch to English site
Skip to main content

Bruit, filtre Kalman et fusion des capteurs

La technologie des capteurs de mouvement et environnementaux a fait beaucoup de progrès ces dernières années. Pour autant, rien n'est parfait et les véhicules autonomes ne peuvent pas fonctionner en toute sécurité en ayant une vision floue du monde.

shutterstock_453806701_bbfa0bf367051ddafbc73c8a24f8f8e9af001bf7.jpg

La première exigence pour un système autonome est de connaître précisément sa position. La précision dépend de la plage de fonctionnement du véhicule. Un petit robot mobile peut être conçu pour fonctionner dans les limites d'une petite pièce et a uniquement besoin de connaître son emplacement à quelques millimètres près. La résolution spatiale nécessaire pour une voiture peut être de l'ordre du centimètre ; pour un avion elle sera de l'ordre du mètre, et pour une sonde spatiale de l'ordre de centaines de mètres. La sonde aura besoin de chiffres plus précis si elle est destinée à graviter autour d'une planète ou à s'y poser. En général, tout ce qui bouge aura besoin de capteurs capables de suivre les mouvements, souvent des mouvements très rapides. Les applications statiques pour lesquelles les capteurs font des relevés à un rythme plus tranquille comprennent la surveillance météorologique et la domotique.

  • Capteurs dynamiques : accéléromètre, gyromètre, magnétomètre et rotation optique
  • Capteurs statiques : température, humidité, lumière et pression barométrique

Ces dispositifs pratiques ont tous un point commun : ils ont tous des sorties plus ou moins "bruyantes". Bruit est synonyme d'erreur et l'utilisation de données de capteur brutes peut conduire à des observations météorologiques (et les prévisions qui en découlent) erronées ou pire encore, à la perte de contrôle d'un véhicule autonome qui peut provoquer un accident mortel.

Définition du bruit

Le bruit est bel et bien du bruit. C'est le sifflement dans les passages calmes lorsqu'on écoute un enregistrement. C'est la "neige" sur un vieux téléviseur pré-numérique, et c'est le flou aléatoire à la sortie d'un capteur de distance sur lequel l'ordinateur d'un véhicule sans conducteur s'appuie pour éviter une collision. Pour concevoir un filtre adapté capable de réduire le bruit, ce bruit doit être caractérisé de façon mathématique. Étant donné qu'il s'agit de bruit, il est imprévisible; les équations linéaires sont donc inutiles et les statistiques utiles. Afin d'évaluer les performances d'une nouvelle conception de filtre, il faut disposer d'une sorte de modèle mathématique du bruit. Le modèle le plus largement utilisé est le bruit additif blanc gaussien (AWGN ou Additive White Gaussian Noise). Il n'est pas parfait, mais assez précis pour démontrer qu'une conception pourrait fonctionner avec un bruit "réel". Les principales caractéristiques sont les suivantes :

  • Il est tout simplement ajouté au signal. D'où le terme de bruit additif.
  • Il a une distribution normale dans le domaine temporel avec une valeur moyenne de zéro (Figure 1). Par conséquent, l'intégration du signal et du bruit sur une longue période permet de supprimer le bruit.
  • En théorie, le domaine fréquentiel s'étend de -∞ à +∞, et la densité de puissance est plate tout du long. D'où le terme de bruit blanc.

Heureusement pour le concepteur, les programmes de simulation tels que MATLAB sont équipés de générateurs de bruit AWGN intégrés

Sensor_Fusion_blog_3_f54d15b2ee9dab078babd003fc4f266f73f741f0.png

La chose la plus importante à remarquer concernant l'équation AWGN ci-dessus est qu'elle définit la quantité générale de bruit sur un signal : elle ne donne pas la variation exacte due à la tension parasite à un instant précis. La variable σ est "l'écart-type" et elle définit la "gravité" du bruit. Le graphique principal de la figure 1 a été calculé avec la variable σ = 1. Il indique la probabilité P(n) que le signal soit dévié par une quantité spécifique n à un instant donné dans le temps. On peut voir immédiatement qu'il y a une probabilité de 40 % (P = 0,4) qu'à un certain instant le signal ne dévie pas du tout de sa valeur réelle. À mesure que l'on glisse vers le bas de la courbe, le bruit affecte le signal, mais la probabilité de grandes excursions (positif ou négatif) chute rapidement. La courbe n'atteint jamais l'axe horizontal, il y a donc toujours une légère probabilité d'avoir un "pic" supérieur à 3σ de temps à autre. Le graphique inséré montre l'effet produit par l'augmentation de la valeur de σ : la courbe s'aplanit, la probabilité d'absence de déviation chute, et la taille d'un dépassement de bruit augmente. En d'autres termes, lorsque σ augmente, le bruit total s'amplifie.

Bruit des capteurs statiques

"L'ennemi" étant défini, examinons quelques systèmes intégrés qui s'appuient sur des mesures de capteur précises pour fonctionner de manière fiable. Les capteurs "statiques", généralement utilisés pour la surveillance environnementale, doivent souvent effectuer des relevés à des intervalles peu fréquents. Une station météorologique peut seulement avoir à faire des relevés de température de l'air, d'humidité et de pression barométrique toutes les 15 minutes par exemple. Entre temps, il fonctionne avec une très faible consommation ou en mode "veille" puisqu'il ne fait pas grand-chose. Ces stations de détection à distance sont alimentées par une batterie ou l'énergie solaire et utilisent une liaison sans fil pour la communication. La fréquence des relevés est si faible qu'il y a amplement assez de temps pour prendre une "rafale" d'échantillons, peut-être sur plusieurs secondes, et utiliser un algorithme simple de calcul de la moyenne pour intégrer le bruit aléatoire. Techniquement il s'agit toujours d'un système en temps réel, mais le cadre temporaire qu'il utilise s'apparente à la durée de séchage d'une peinture. Aucun filtrage complexe n'est nécessaire dans ce cas.

Réduction du bruit des capteurs dynamiques avec fusion des capteurs

Il n'y a pas si longtemps, les accéléromètres et gyroscopes qui rendaient la navigation inertielle possible étaient des pièces très grosses, lourdes, délicates  et coûteuses. Seul le secteur de la construction aéronautique civile, spatiale et militaire pouvait s'offrir des unités de navigation inertielle (INU). Tout cela a changé avec le développement de la technologie MEMS (Micro-Electro-Mechanical Systems). Les INU qui faisaient la taille et le poids d'un réfrigérateur sont devenues du jour au lendemain des circuits imprimés de 5 cm² coûtant environ 30 Euros. Cela veut dire que les avions de modèlisme sont équipés désormais du même type de système de guidage que seuls les avions de chasse possédaient auparavant. Les robots mobiles terrestres ont pu en bénéficier également. La figure 2 montre la position d'un circuit gyroscope sur deux types de robot mobile. Un système permet de maintenir le robot en équilibre droit en mesurant son angle d'inclinaison. L'autre est utilisé pour maintenir le robot mobile en mouvement dans la direction voulue.


Sensor_Fusion_blog_4_51058a90086dd9b3a70bb1e0e6b997647159ce8f.png

Dans les deux cas, un angle θ doit être mesuré. Le capteur évident à utiliser est le gyroscope qui mesure la vitesse de rotation autour d'un axe en degrés/seconde. L'intégration de la sortie donne l'angle en degrés. Le gyroscope réagit rapidement aux changements et il n'est pas sensible au bruit produit par les vibrations le long de ses axes, mais il présente un défaut majeur : de légers décalages dans la vitesse sont intégrés dans un angle d'erreur qui augmente avec le temps. En d'autres termes, il dérive, et un filtre conçu pour un bruit dont la moyenne est nulle ne peut pas corriger l'erreur qui augmente. C'est là que le deuxième capteur entre en jeu. Pour le robot en équilibre, deux accéléromètres sont utilisés avec des axes à 90° l'un par rapport à l'autre. Avec la verticale du robot, l'accéléromètre d'axe z produit un résultat de +1 g du fait de la gravité. On peut donc trouver l'angle d'inclinaison θ en insérant les valeurs mesurées pour az et ay dans l'équation suivante :

θ = arctan(ay/az)   où az, ay sont normalisés pour se situer dans la fourchette de ±1 g

Le problème est que les accéléromètres sont relativement lents à réagir aux changements, et ils sont susceptibles de produire des résultats très bruyants en cas de vibrations, comme dans les moteurs, par exemple. Nous avons donc deux capteurs d'angle qui, théoriquement, fournissent chacun les mêmes données, mais avec des défauts différents. La solution consiste à combiner ou "fusionner" les deux de manière à éliminer les défauts et produire un seul signal de sortie propre.

Filtrage supplémentaire pour le robot en équilibre

L'angle d'inclinaison θa est dérivé de az et ay comme ci-dessus, il passe ensuite dans un filtre passe-bas pour éliminer tout le bruit haute fréquence, laissant une valeur statique ou changeant lentement pour θa. Dans le même temps, le résultat du gyroscope est intégré pour donner θg, puis un filtre passe-haut est utilisé pour bloquer la dérive du signal. Les deux signaux sont pondérés puis additionnés, ce qui nous donne une mesure "d'inclinaison" réactive sans aucune dérive. Les facteurs de pondération sont des constantes définies au moment de la programmation, par exemple 0,95 pour le gyroscope avec un complément de 0,05 pour l'accéléromètre. Ce type de fusion suppose que les performances des capteurs ne changent pas au fil du temps et ne souffrent pas de poussées temporaires d'interférence importante. Il existe d'autres algorithmes tels que celui utilisé pour le filtre de Kalman capables de s'adapter à des conditions de bruit changeantes qui réduisent le poids accordé à un capteur si son résultat se dégrade.

Le filtre de Kalman

L'algorithme du filtre de Kalman a été mis au point au début des années 1960, dans le but d'éliminer les bruits de moyenne nulle perturbant un signal et il peut s'appliquer à tout type de système pouvant être décrit par une équation linéaire. Il a forgé sa réputation (dans le monde de l'ingénierie tout du moins) grâce à son utilisation dans les programmes de navigation inertielle utilisés sur l'ordinateur de guidage d'Apollo développé par la NASA. Il donne de si bons résultats que la plupart des applications pilotées par des capteurs en temps réel fonctionnant dans des environnements bruyants l'utilisent encore aujourd'hui. Qu'est-ce qui rend le filtre de Kalman si intelligent ? Il utilise un processus en deux étapes très simple en apparence pour prévoir le résultat, puis compare cette prévision avec une mesure pour mettre à jour la prochaine prévision. Il conserve un chiffre de "l'incertitude" concernant la mesure du capteur qui est également mis à jour. Si la sortie du capteur commence à devenir plus bruyante, l'algorithme de Kalman réduit l'influence de la mesure sur la sortie et augmente l'importance de sa propre estimation. Malheureusement, l'algorithme est beaucoup trop compliqué à décrire en quelques mots, mais cet article est le meilleur que j'ai lu jusqu'à présent sur le sujet. Il contient un exemple du "monde réel" travaillé avec le code et les résultats du programme de simulation MATLAB. Il s'appuie beaucoup sur les mathématiques matricielles, je vous suggère donc d'étudier ce domaine si vous ne le maîtrisez pas encore. Les principales choses à savoir sur cet algorithme afin de décider si vous pouvez/devez l'utiliser :

  • Le processus à mesurer doit être décrit par un système linéaire. Par exemple ce peut être un système simple de mouvement linéaire basé sur l'accélération, la vitesse et la position. Un filtre de Kalman étendu a été développé par le personnel de la NASA pour traiter les systèmes non linéaires, mais le calcul est encore plus compliqué.
  • Une mesure du capteur se compose d'une valeur moyenne et de sa variance. Pour des performances optimales, il faut non seulement que le modèle du système soit exact, mais les variances pour les entrées de signaux doivent l'être aussi. Vous trouverez peut-être des valeurs correctes sur une fiche technique, mais certains tests de laboratoire peuvent être nécessaires.
  • Le bruit doit avoir une moyenne nulle (comme dans AWGN). Le filtre va en effet considérer que toute la partie de la mesure qui n'a pas une moyenne nulle, comme la dérive du gyroscope mentionnée plus tôt, est le signal voulu : elle ne sera pas reconnue comme étant du bruit et donc pas réduite.

Le filtre de Kalman est souvent illustré dans la littérature à l'aide d'une seule entrée du capteur, mais il peut gérer deux ou plusieurs entrées fournissant la fusion des capteurs. Bien entendu, l'exigence de traitement en temps réel, même pour une seule entrée est assez conséquente et elle s'intensifie avec plusieurs entrées. Jusqu'à récemment, cela constituait une limitation importante, mais cela est bien moins le cas désormais grâce aux microcontrôleurs 32 bits avec des unités mathématiques à virgule flottante, les DSP et même la manipulation de données parallèle à l'aide de matériels à données multiples et entrée unique (SIMD) comme NEON d'ARM. L'algorithme lui-même peut être simplifié en déclarant certaines de ses nombreuses variables égales à 1 ou 0 "pour des raisons pratiques", mais cela doit être fait avec beaucoup de soin pour ne pas compromettre sa puissance étonnante de réduction adaptative du bruit. La fusion de capteurs avec le filtrage de Kalman offre également autre chose : une fiabilité accrue grâce à la redondance intelligente.

Accroître la fiabilité avec la fusion des capteurs

Ces dernières années, les petits hélicoptères multirotors ou drones ou sont devenus très populaires auprès des amateurs d'avions radio-commandés et des photographes aériens professionnels. Ce phénomène peut être en grande partie attribué aux systèmes de commande de vol intégrés rendus possibles grâce à la miniaturisation des capteurs de mouvement, la boussole électronique (magnétomètre) et des microcontrôleurs puissants. Sans une stabilisation informatique des commandes de vol électriques, les quadricoptères et hexacoptères ne sont tout simplement pas utilisables. Cela dit, l'environnement dans lequel ces nouveaux capteurs fonctionnent est assez hostile et même des "pilotes" expérimentés perdent le contrôle ce qui se traduit par une "stabilisation avec une trajectoire verticale descendante". Cela peut se produire lorsque l'accéléromètre et les gyroscopes sont submergés par les vibrations du moteur et des manœuvres avec une force d'accélération importante. Les données GPS sont souvent fusionnées avec des sorties IMU afin d'améliorer la navigation et maintenir un vol stable s'il n'est pas possible de se fier à l'IMU. Le GPS peut perdre de sa précision à un moment critique, par conséquent les drones professionnels comportent souvent deux récepteurs GPS de marques différentes. Les résultats des deux modules GPS et IMU sont "fusionnés" avec un filtre de Kalman qui utilise ses capacités d'adaptation pour sélectionner les meilleures données de capteur et ignorer les plus mauvaises. Cette redondance peut se traduire par un profil de vol dégradé mais qu'est beaucoup mieux qu'un "contact incontrôlé avec le sol".

Oemichen2_f7d436792a9cd48960dfdb61493becd45688e5fa.jpg

 

Unités de mesure d'inertie

Même si les accéléromètres et gyroscopes sont disponibles sous forme de puces individuelles avec des sorties analogiques, la tendance est maintenant de les acheter ensemble, intégrés à un seul appareil, souvent avec des filtres passe-bas et des ADC fournissant des données série aux broches de sortie au format bus SPI ou I2C. Ce sont généralement des appareils "3D" fournissant des données de mouvement dans trois axes qui disposent d'un traitement du signal interne, principalement pour corriger la dérive du gyroscope. Certains appareils comprennent également des magnétomètres 3D et sont décrits comme des dispositifs "9-DOF" (c'est-à-dire, degré de liberté). Comme toujours avec la conception électronique, la disposition des pistes de CI et le positionnement relatif des puces sur la carte sont essentiels pour la réussite de l'opération. Ces puces MEMS ajoutent une dimension supplémentaire, à savoir des considérations mécaniques. Par exemple, une mauvaise soudure ou un mauvais emplacement des trous de fixation peut entraîner des contraintes mécaniques indésirables et modifier l'étalonnage ou pire encore. Consultez les recommandations de conception de ce fabricant.

Et pour terminer…

Cet article n'est qu'un aperçu de la fusion des capteurs : Je n'ai pas mentionné les alternatives aux filtres de Kalman comme celles par Madgwick et Mahony, ni abordé la fusion des données de caméra vidéo avec lidar et Radar pour les véhicules autonomes. Une chose est sûre : la fusion des capteurs de mouvement n'a jamais été un sujet aussi brûlant, que vous travailliez sur des usines automatisées, des véhicules sans conducteur ou des sondes spatiales.

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.

Commentaires