Fusion de capteurs – 1re partie

Cet article constitue la première partie d'une série en deux volets dans laquelle nous présenterons l'utilisation de la fusion de capteurs dans les robots mobiles autonomes (AMR) compatibles avec ROS 2 (Robot Operating System 2). Dans cette partie, nous présenterons la fusion de capteurs, aborderons brièvement un algorithme de fusion de capteurs appelé EKF (filtres de Kalman étendus), puis passerons en revue certaines des expériences que nous avons menées en simulation et sur notre AMR.

Auteurs : Harsh Vardhan Singh, Mayank Mukesh, Anisha Thakkar | Date : 21 mars 2023 | Catégorie : Automobile

Introduction

Le problème que nous souhaitons résoudre consiste à estimer avec précision l'état d'un système dynamique. Un système dynamique peut être défini comme un système dont l'état évolue au fil du temps. Ce changement d'état peut résulter d'une évolution naturelle du système ou être provoqué par une intervention externe. Mathématiquement, un système dynamique est représenté en définissant son état à l'aide d'un ensemble d'équations différentielles qui décrivent la manière dont ce système évolue dans le temps.

C'est ce que nous appelons le modèle de mouvement/processus de notre système. À partir d'une entrée (facultative) fournie au système et de mesures observées, il est possible d'estimer l'état du système pour le pas de temps suivant. C'est ce qu'on appelle l'estimation d'état. Un robot mobile autonome (AMR) se déplaçant dans un entrepôt ou un laboratoire constitue un exemple d'un tel système.

Ici, l'état de l'AMR correspondrait à sa position par rapport à une origine fixe, à sa vitesse et à son accélération. Ces variables d'état peuvent être mesurées directement ou déduites mathématiquement à partir des relevés des capteurs. Il est toutefois important de garder à l'esprit que chaque capteur présente ses propres défauts. Par exemple, un codeur de roue permet de compter le nombre de tours effectués par une roue. En combinant ces informations avec la dynamique de l’AMR (modèle de mouvement), on peut prédire la nouvelle position de l’AMR.

Cependant, si les roues patinent, les codeurs de roue signaleraient des tours de roue supplémentaires, ce qui entraînerait une erreur dans notre estimation de l’état de l’AMR. Ce type de problèmes est encore aggravé par le bruit des capteurs et l’environnement physique. Pour pallier les limites des capteurs individuels, les mesures provenant de plusieurs capteurs peuvent être combinées de manière à obtenir une meilleure estimation de l'état du système dynamique. Le processus consistant à combiner les données de plusieurs capteurs afin de réduire l'incertitude ou d'améliorer la précision de l'estimation de l'état d'un système dynamique est appelé « fusion de capteurs ».

Filtre de Kalman étendu

Le filtre de Kalman étendu (EKF) est une méthode couramment utilisée pour fusionner les données provenant de plusieurs capteurs. Il s'agit d'une extension de l'algorithme bien connu du filtre de Kalman (linéaire), qui sert à l'estimation de l'état des systèmes dynamiques linéaires. Les filtres de Kalman reposent sur l'hypothèse que chaque variable de l'état est définie par une distribution gaussienne, et que les bruits des capteurs et du processus sont des bruits gaussiens indépendants de moyenne nulle. La figure 1 présente un schéma fonctionnel illustrant comment la fusion de données de capteurs peut être réalisée à l'aide d'un cycle de prédiction et de mise à jour dans les filtres de Kalman. Passons en revue les différentes étapes pour comprendre son fonctionnement :

  1. Nous partons d'une estimation initiale de l'état, de la matrice de covariance correspondante et d'un modèle de mouvement de notre système.
  2. Dès que nous recevons une entrée, nous lançons notre étape de prédiction afin de calculer notre nouvelle estimation d'état et notre nouvelle matrice de covariance, en faisant évoluer notre système dans le temps à l'aide de notre modèle de mouvement et de l'entrée fournie.
  3. Lorsque nous recevons des mesures provenant de différents capteurs, tels que les IMU (unités de mesure inertielle) et les codeurs de roue, nous mettons alors à jour notre estimation d'état et notre matrice de covariance en combinant la prédiction précédente avec les nouvelles mesures.
  4. Les étapes de prédiction et de mise à jour se poursuivent pendant toute la durée d'exécution de notre application.


Figure 1 : Schéma fonctionnel du filtre de Kalman

Lorsque l'on travaille avec un système non linéaire tel qu'un AMR, il est nécessaire d'apporter quelques modifications à l'algorithme du filtre de Kalman. Afin de garantir que la représentation de l'état reste une distribution gaussienne après chaque étape de prédiction et de mise à jour, il faut linéariser les modèles de mouvement et de mesure. Pour ce faire, on utilise des séries de Taylor afin d'approximer les modèles non linéaires par des modèles linéaires. Cette extension du filtre de Kalman est appelée « filtre de Kalman étendu ».

Fusion de capteurs dans ROS

L’un des paquets ROS les plus populaires pour réaliser la fusion de capteurs à l’aide de ROS est le paquet robot_localization. Le paquet robot_localization est un paquet polyvalent d’estimation d’état qui intègre des implémentations du filtre de Kalman étendu ainsi qu’une autre variante des filtres de Kalman appelée « filtre de Kalman non parfumé ». Il offre la flexibilité nécessaire pour fusionner de nombreux capteurs et génère une estimation d’état à 15 vecteurs. L'estimation d'état comprend la position, l'orientation, la vitesse linéaire, la vitesse angulaire et l'accélération linéaire dans les directions x, y et z. Le modèle de mouvement fourni par ce paquet est omnidirectionnel. Il peut être utilisé aussi bien pour l'estimation d'état globale que locale, à condition de disposer des données pertinentes. Pour plus de détails sur ce paquet, consultez :http://docs.ros.org/en/noetic/api/robot_localization/html/index.html

Expériences dans Gazebo

Gazebo est un environnement de simulation compatible avec ROS 2 qui offre une grande flexibilité pour tester des systèmes robotiques. Il nous permet d'introduire du bruit de capteur, de tester différents coefficients de frottement et de réduire la précision des codeurs de roues, ce qui nous permet de reproduire des scénarios réalistes susceptibles d'affecter l'estimation d'état d'un AMR dans le monde réel.

Pour quantifier les performances de la fusion de capteurs, nous pouvons effectuer un test de boucle fermée, qui consiste à faire parcourir à l’AMR une trajectoire fermée de manière aléatoire, de sorte que sa position initiale et sa position finale soient identiques. Nous pouvons ensuite représenter graphiquement l'estimation d'état effectuée par l'EKF après fusion des données de l'IMU et des codeurs de roues, et la comparer à l'estimation d'état réalisée à partir des données brutes des codeurs de roues. Idéalement, nous souhaitons que l'état estimé de notre AMR indique respectivement x, y et le lacet comme étant (0, 0, 0).

Nous avons mené diverses expériences à l’aide des bibliothèques Turtlebot3 (TB3). La figure 2 en présente un exemple. Ici, nous téléopérons le TB3 à plusieurs reprises dans l’environnement Turtlebot3, avant de le ramener finalement à sa position de départ. Comme on peut le constater, la trajectoire prédite par l’EKF, représentée en vert, permet de mieux estimer le retour de l’AMR à sa position initiale, tandis qu’en utilisant uniquement les codeurs de roues, représentés en rouge, l’estimation présente un écart d’environ 1,4 mètre. Les données brutes des codeurs de roues donnent une erreur de position finale de 0,405 m, -1,36 m et 29,72 degrés respectivement pour les axes x, y et le lacet. En revanche, l’erreur de position estimée par l’EKF pour les axes x, y et le lacet est de 0,103 m, -0,0165 m et 0,0187 degré. L'amélioration globale en pourcentage de la distance euclidienne par rapport à la position initiale était d'environ 92,64 %, passant de 1,42 m lors de l'utilisation des seules données des codeurs de roue à 0,10 m après utilisation de l'EKF.

Figure 2 : Test de boucle fermée dans Gazebo avec le Turtlebot 3

Expériences sur la résistance aux antimicrobiens

Les expériences menées dans Gazebo peuvent également être transposées à de véritables AMR. Nous avons mené ces expériences dans nos locaux et avons pu obtenir des résultats fiables en fusionnant les données de l’IMU et du codeur de roue de notre AMR. La figure 3 présente un exemple de simulation. En utilisant uniquement les données du codeur de roue, l’état estimé présentait une erreur de 1,58 m dans la direction x, de -0,69 m dans la direction y et une erreur d’orientation en lacet de 55 degrés. En revanche, l’estimation par l’EKF s’est avérée plus précise, avec des erreurs de -0,35 m, -0,033 m et -5,9 degrés respectivement pour les axes x, y et l’orientation. L’amélioration globale en pourcentage de la distance euclidienne par rapport à l’origine était d’environ 78,9 %, passant de 1,699 m à 0,35 m après la mise en œuvre de l’EKF.

Figure 3 : Test de fermeture de boucle sur un AMR réel dans les locaux du cabinet.

Conclusion

L'estimation d'état est une étape cruciale pour fournir une source d'odométrie fiable aux autres modules de notre AMR, tels que la navigation et la cartographie. Nos expériences ont démontré que l'utilisation de techniques de fusion de capteurs nous permet d'estimer l'état de notre AMR avec plus de précision, tant en simulation que dans le monde réel. Nous avons utilisé des filtres de Kalman étendus, une méthode largement répandue pour la fusion de capteurs dans les systèmes non linéaires. Dans la deuxième partie de cette série, nous aborderons la manière dont la fusion de capteurs peut améliorer les capacités de navigation et de cartographie de notre AMR.

Auteurs

Harsh Vardhan Singh
Ingénieur solutions, eInfochips (une société du groupe Arrow)
Mayank Mukesh
Ingénieur en systèmes embarqués, eInfochips (une société du groupe Arrow)
Anisha Thakkar
Ingénieur en systèmes embarqués, eInfochips (une société du groupe Arrow)

Télécharger le rapport

Télécharger un exemple de rapport

Télécharger la brochure

Lancez la conversation dès aujourd’hui

Prenez rendez-vous pour une consultation de 30 minutes avec nos experts en solutions automobiles

Lancez la conversation dès aujourd’hui

Prenez rendez-vous pour une consultation de 30 minutes avec notre expert en solutions de gestion des batteries

Lancez la conversation dès aujourd’hui

Prenez rendez-vous pour une consultation de 30 minutes avec nos expertsen solutions industrielles et énergétiques

Lancez la conversation dès aujourd’hui

Prenez rendez-vous pour une consultation de 30 minutes avec nos experts du secteur automobile

Lancez la conversation dès aujourd’hui

Prenez rendez-vous pour une consultation de 30 minutes avec nos experts

Veuillez remplir le formulaire ci-dessous pour obtenir un exemple de rapport

Conceptions de référence

Notre travail

Innover

Transformer.

Échelle

Partenariats

Partenariats en matière d'appareils
Partenariats numériques
Partenariats de qualité
Partenariats dans le secteur du silicium

Entreprise

Produits et propriétés intellectuelles