Ce blog est 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 (Extended Kalman Filters), puis passerons en revue certaines des expériences que nous avons menées en simulation et sur notre AMR.
Le problème que nous voulons 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 change au fil du temps. Le changement d'état peut être dû à une évolution naturelle du système ou être stimulé par une intervention externe. Le système dynamique est représenté mathématiquement en définissant son état à l'aide d'un ensemble d'équations différentielles qui représentent la façon dont un système donné se propage dans le temps.
Nous appelons cela le modèle de mouvement/processus de notre système. À partir de certaines données (non obligatoires) fournies au système et des mesures observées, il est possible d'estimer l'état du système pour l'étape suivante. C'est ce qu'on appelle l'estimation d'état. Un exemple d'un tel système est un robot mobile autonome (AMR) se déplaçant dans un entrepôt ou un laboratoire.
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 lectures des capteurs. Mais il est important de garder à l'esprit que chaque capteur a ses propres défauts. Par exemple, un encodeur 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 encodeurs de roue signaleraient des tours de roue supplémentaires, ce qui rendrait notre prédiction de l'état de l'AMR erronée. Ce type de problème est encore aggravé par le bruit des capteurs et l'environnement physique. Pour compenser les limites des capteurs individuels, les mesures de plusieurs capteurs peuvent être combinées de manière à obtenir une meilleure estimation de l'état du système dynamique. Le processus qui consiste à 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 est utilisé pour l'estimation d'état des systèmes dynamiques linéaires. Une hypothèse sous-jacente des filtres de Kalman est que chaque variable de notre état est définie par une distribution gaussienne, et que le bruit du capteur et du processus sont des gaussiennes indépendantes à moyenne nulle. La figure 1 présente un schéma fonctionnel illustrant comment la fusion des 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 comment cela fonctionne :
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 notre représentation d'état reste une distribution gaussienne après chaque étape de prédiction et de mise à jour, nous devons linéariser les modèles de mouvement et de mesure. Pour ce faire, nous utilisons la série de Taylor afin d'approximer les modèles non linéaires en tant que 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 effectuer la fusion de capteurs à l'aide de ROS est le paquet robot_localization. Le paquet robot_localization est un paquet d'estimation d'état à usage général qui implémente le filtre de Kalman étendu et 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 sorties, une estimation d'état à 15 vecteurs. L'estimation d'état est composée de la position, de l'orientation, de la vitesse linéaire, de la vitesse angulaire et de 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é pour l'estimation d'état globale et locale, à condition de disposer des données pertinentes. Pour plus de détails sur le 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 les systèmes robotiques. Il nous permet d'introduire du bruit dans les capteurs, d'essayer différents coefficients de frottement et de réduire la précision des codeurs de roue, ce qui nous permet de reproduire des scénarios réalistes qui affecteraient l'estimation de l'état d'un AMR dans le monde réel.
Pour quantifier les performances de la fusion des capteurs, nous pouvons effectuer un test de boucle fermée, qui consiste à faire fonctionner l'AMR sur une trajectoire fermée aléatoire de manière à ce que la position initiale et finale de l'AMR soient identiques. Nous pouvons ensuite tracer l'estimation d'état effectuée par l'EKF après fusion de l'IMU et des codeurs de roue et la comparer à l'estimation d'état effectuée à partir des codeurs de roue bruts. Idéalement, nous voulons que l'état estimé de notre AMR rapporte respectivement x, y et le lacet comme (0, 0, 0).
Nous avons réalisé diverses expériences à l'aide des packages Turtlebot3 (TB3). Un exemple est présenté à la figure 2. Ici, nous télécommandons TB3 à plusieurs reprises dans l'environnement Turtlebot3, puis le ramenons 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 que l'utilisation des seuls encodeurs de roue, représentés en rouge, donne une estimation erronée d'environ 1,4 mètre. Les données brutes du codeur de roue donnent une erreur de position finale de 0,405 m, -1,36 m et 29,72 degrés respectivement en x, y et lacet. L'erreur de position estimée par l'EKF pour x, y et 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 lorsque seules les données du codeur de roue étaient utilisées à 0,10 m après utilisation de l'EKF.
Les expériences réalisées dans Gazebo peuvent également être étendues aux AMR réels. Nous avons mené ces expériences dans nos locaux et avons obtenu des résultats fiables en fusionnant les données IMU et les données du codeur 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é a signalé une erreur de 1,58 m dans la direction x, de -0,69 m dans la direction y et une erreur d'orientation de lacet de 55 degrés. Cependant, l'estimation EKF était meilleure, avec des erreurs de -0,35 m, -0,033 m et -5,9 degrés respectivement dans les directions x, y et en 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. Grâce à nos expériences, nous avons 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 discuterons de 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'une maîtrise en informatique de l'Institut de technologie de Géorgie, avec une spécialisation en apprentissage automatique. Il est ingénieur en recherche de solutions et travaille actuellement sur la fusion de capteurs et la pile de navigation dans l'environnement ROS 2 pour une preuve de concept de robot mobile autonome. En mars 2023, Harsh comptait sept ans d'expérience dans l'industrie, dont six passés dans des laboratoires de recherche et d'innovation. Il a travaillé sur plusieurs projets tels que les chariots élévateurs autonomes pour la manutention de palettes, la gestion de flotte pour les systèmes multi-robots, la manutention de bacs, la palettisation automatisée et l'emballage en ligne de bacs, 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 son diplôme en génie électronique et électrique en 2022, avec une spécialisation en électronique de puissance et en 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 ROS 2. Il maîtrise également les langages de programmation tels que C, C++ et Python.
Anisha Thakkar a obtenu son baccalauréat en technologie en électronique et communications et une mineure en génie informatique à l'université Nirma d'Ahmedabad en 2022. Elle travaille actuellement au département de robotique, où elle se concentre sur les algorithmes ROS 2, VSLAM et AI-ML. Elle a également acquis de l'expérience professionnelle dans le cadre de divers projets liés au traitement d'images, aux systèmes embarqués, aux 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.
Planifiez 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.