Introduction
FusionCore est un kit de développement de logiciel (SDK) de fusion de capteurs pour ROS 2, conçu pour combiner les données de capteurs IMU, GPS et encodeurs de roues pour estimer de manière fiable la position d'un robot mobile. Il est doté d'une covariance de bruit auto-régulée et est distribué sous licence Apache 2.0.
Contexte Technique
Chaque robot mobile a besoin de connaître sa position, qui est déterminée à partir de plusieurs capteurs, notamment l'IMU, les encodeurs de roues et le GPS. Cependant, chaque capteur a ses propres limitations : l'IMU dérive, les roues glissent et le GPS saute. Il est donc nécessaire d'avoir un logiciel capable de combiner intelligemment ces trois capteurs pour obtenir une estimation de position fiable.
FusionCore a été créé pour combler les lacunes des packages de fusion de capteurs existants pour ROS, tels que robot_localization et fuse, qui manquent de certaines fonctionnalités clés comme la fusion de GPS ECEF native, l'estimation des biais de l'IMU et la covariance de bruit adaptative.
Analyse et Implications
FusionCore a été testé sur le jeu de données NCLT de l'Université du Michigan et a montré de meilleurs résultats que robot_localization dans 5 des 6 séquences de test. Il utilise un filtre de Kalman étendu (EKF) avec une porte de détection d'anomalies de Mahalanobis pour éliminer les valeurs aberrantes.
La sécurité et la fiabilité de FusionCore sont garanties par son utilisation d'un nœud de cycle de vie ROS 2, qui permet de configurer et d'activer le nœud de manière sécurisée pour éviter les valeurs initiales incorrectes ou les transformations manquantes.
Perspective
FusionCore est une solution prometteuse pour la fusion de capteurs dans les robots mobiles, offrant une estimation de position fiable et précise. Cependant, il est important de surveiller les limites et les prochaines étapes de développement, telles que l'amélioration de la prise en charge du GPS RTK et la réduction de la latence de découverte DDS dans les environnements WSL2.