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.
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 ».
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 :
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 ».
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
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.
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.
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.
Harsh Vardhan Singh est titulaire d’un master en informatique de l’Institut de technologie de Géorgie, avec une spécialisation en apprentissage automatique. Ingénieur de recherche en solutions, il travaille actuellement sur la fusion de capteurs et la pile de navigation dans l’environnement ROS 2 pour une démonstration de faisabilité de robot mobile autonome. En mars 2023, Harsh comptait sept ans d’expérience dans le secteur industriel, dont les six premières années passées dans des laboratoires de recherche et d’innovation. Il a travaillé sur de nombreux projets tels que les chariots élévateurs autonomes pour la préparation de commandes sur palettes, la gestion de flottes pour les systèmes multi-robots, le « bin picking », la palettisation automatisée et le remplissage de bacs en ligne, qui impliquaient l’application de la vision par ordinateur, de l’IA, de l’apprentissage profond, de l’apprentissage automatique, de l’apprentissage par renforcement et de la robotique.
Mayank Mukesh a obtenu en 2022 un diplôme d'ingénieur en électronique et génie électrique, avec mention en électronique de puissance et une spécialisation dans les véhicules électriques. Il est ingénieur en systèmes embarqués et travaille sur divers aspects des robots mobiles autonomes, tels que les systèmes de contrôle, la navigation et la fusion de capteurs, dans le cadre de ROS 2. Il maîtrise également les langages de programmation tels que le C, le C++ et le Python.
Anisha Thakkar a obtenu en 2022 une licence en électronique et communications (B.Tech), avec une spécialisation secondaire en génie informatique, à l'université Nirma d'Ahmedabad. Elle travaille actuellement au sein du département de robotique, où elle se consacre principalement à ROS 2, au VSLAM et aux algorithmes d'IA et d'apprentissage automatique. Elle possède également une expérience professionnelle acquise dans le cadre de divers projets liés au traitement d'images, aux systèmes embarqués, aux systèmes d'exploitation temps réel (RTOS) et à l'apprentissage automatique.
Prenez rendez-vous pour une consultation de 30 minutes avec nos experts en solutions automobiles
Prenez rendez-vous pour une consultation de 30 minutes avec notre expert en solutions de gestion des batteries
Prenez rendez-vous pour une consultation de 30 minutes avec nos expertsen solutions industrielles et énergétiques
Prenez rendez-vous pour une consultation de 30 minutes avec nos experts