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 extérieure. Mathématiquement, le 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 de certaines données d'entrée (facultatives) 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.
Dans ce contexte, l'état de l'AMR correspond à sa position par rapport à une origine fixe, ainsi qu'à sa vitesse et à son accélération. Ces variables d'état peuvent être mesurées directement ou déduites mathématiquement à partir des données fournies par les capteurs. Il est toutefois important de garder à l'esprit que chaque capteur présente ses propres imperfections. Par exemple, un codeur de roue nous aide à compter le nombre de rotations d'une roue. En utilisant ces informations ainsi que la dynamique de l'AMR (modèle de mouvement), nous pouvons prédire la nouvelle position de l'AMR.
Cependant, si les roues patinent, les codeurs de roue signaleraient des tours supplémentaires, ce qui entraînerait une erreur dans notre estimation de l'état du robot mobile autonome (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 de capteur et de processus sont des variables gaussiennes indépendantes de moyenne nulle. La figure 1 présente un schéma fonctionnel illustrant comment la fusion 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 étapes pour voir comment cela fonctionne :
Lorsqu'on travaille avec un système non linéaire tel qu'un robot mobile autonome (AMR), il faut apporter quelques modifications à l'algorithme du filtre de Kalman. Pour 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 la fusion de capteurs est le paquet robot_localization. Il s'agit d'un paquet d'estimation d'état polyvalent 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é à la fois pour l'estimation d'état globale et 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 permet d'introduire du bruit de capteur, d'essayer différents coefficients de frottement et de réduire la précision des codeurs de roue, ce qui permet de reproduire des scénarios réalistes susceptibles d'influencer l'estimation d'état d'un robot mobile autonome (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 suivre à l'AMR une trajectoire fermée aléatoire de telle sorte que sa position initiale et sa position finale coïncident. Nous pouvons ensuite tracer l'estimation d'état effectuée par l'EKF après fusion des données de l'IMU et des codeurs de roue, et la comparer à l'estimation d'état réalisée à partir des données brutes des codeurs de roue. 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 paquets 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 voir, la trajectoire prédite par l'EKF, représentée en vert, permet de mieux estimer que l'AMR est revenu à sa position initiale, tandis qu'en utilisant uniquement les codeurs de roue, représentés en rouge, l'estimation présente un écart d'environ 1,4 mètre. Les données brutes des codeurs de roue 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. Alors que 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 est d'environ 92,64 %, passant de 1,42 m lorsque seules les données du codeur de roue sont utilisées à 0,10 m après utilisation de l'EKF.
Les expériences menées dans Gazebo peuvent également être transposées à de véritables robots mobiles autonomes (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 des codeurs de roue de notre AMR. Un exemple d'exécution est présenté à la figure 3. 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. Cependant, l'estimation EKF s'est avérée meilleure, 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 utilisée 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 l'industrie, 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 palettes, la gestion de flotte pour les systèmes multi-robots, le bin picking, la palettisation automatisée et le bin packing 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 une 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 du framework ROS 2. Il maîtrise également des langages de programmation tels que le C, le C++ et le Python.
Anisha Thakkar a obtenu en 2022 une licence en électronique et communications, avec une mineure 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 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 de 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