Capteur IMU pour la robotique

IMU et robotique : ce qu’il faut connaître

Cette entrée a été publiée dans Tutoriels en robotique, et marquée avec , le par .

Dans cet article, nous partageons de nombreuses informations nécessaires à l’achat de votre IMU en fonction de votre cahier des charges.
Vous découvrirez comment fonctionne une IMU et comment interpréter ses paramètres.

A la fin de l’article, vous trouverez également des liens vers des tests et des ressources.

Définition – Qu’est-ce qu’une IMU ?

Une unité de mesure inertielle (IMU) est un composant électronique inclus dans la famille de capteurs. Il mesure l’accélération du capteur, la vitesse angulaire et son orientation à l’aide d’une combinaison d’accéléromètres, de gyroscopes et de magnétomètres.

L’IMU de type I est composée d’accéléromètres et de gyroscopes, tandis que l’IMU de type II intègre des magnétomètres en plus.

Les accéléromètres, gyroscopes et magnétomètres mesurent les données relatives à un seul axe (X : pitch, Y : roll, Z : yaw). Afin d’obtenir des informations pour les 3 axes, vous devez intégrer trois composants de chaque (accéléromètres, gyroscopes et magnétomètres) pour une IMU de Type II. Un capteur IMU typique est de 9 DoF (degré de liberté) incluant :

  • 3 accéléromètres
  • 3 gyroscopes
  • 3 magnétomètres

Certaines IMU peuvent avoir des degrés de liberté supplémentaires avec un capteur de température, un capteur GPS, un capteur de pression, etc.
En se basant sur l’accélération, des calculs d’attitude, de vitesse et de position peuvent être effectués.
Grâce aux gyroscopes, le calcul de la position angulaire peut être effectué.
Ces données, fournies par l’IMU, sont indispensable dans la robotique mobile. En effet, elles viennent compléter les mesures du LiDAR et les mesures odométriques.

Parcourir notre gamme de gyroscopes et centrales inertielles

Physique – Comment une fonctionne une IMU ?

Pour comprendre le fonctionnement d’une IMU, il faut commencer par analyser chaque sous-composant :

Sous-composant 1 : l’accéléromètre

Un accéléromètre est un dispositif électromécanique utilisé pour mesurer les forces d’accélération. Ces forces peuvent être :

  • Statique, comme la force de gravité
  • Dynamiques comme les forces de mouvement ou de vibration

L’accélération est la mesure de la variation de la vitesse, ou vitesse divisée par le temps.
Par exemple, une bicyclette qui accélère de l’arrêt à 30 km/h en cinq secondes a une accélération de 6 km/h par seconde (30 divisé par 5).

Parcourir notre gamme d’accéléromètres

Sous-composant 2 : le gyroscope

Un gyroscope est un dispositif utilisé pour mesurer ou maintenir l’orientation et la vitesse angulaire. Il s’agit d’une roue tournante, ou d’un disque, dans lequel l’axe de rotation est libre de prendre toute orientation par lui-même.

Lors de la rotation, l’orientation de cet axe n’est pas affectée par l’inclinaison ou la rotation du support, en fonction de la conservation du moment angulaire.

Parcourir notre gamme de gyroscopes

Gyroscope pour vos projets robotiques

Sous-composant 3 : magnétomètre

Un magnétomètre est un appareil qui mesure le magnétisme :

  • Sa direction
  • Sa force
  • Le changement relatif d’un champ magnétique à un endroit donné

Une boussole est l’un de ces dispositifs qui mesure la direction d’un champ magnétique ambiant. En l’occurrence, le champ magnétique terrestre.

ROS – Transfert des données de l’IMU

Tous les capteurs IMU compatibles ROS publient leurs données sur le topic /imu selon le format de message sensor_msgs/Imu.msg :

std_msgs/Header header 

geometry_msgs/Quaternion orientation
float64[9] orientation_covariance

geometry_msgs/Vector3 angular_velocity
float64[9] angular_velocity_covariance

geometry_msgs/Vector3 linear_acceleration
float64[9] linear_acceleration_covariance

Orientation

Les rotations 3D et l’orientation peuvent être représentées en utilisant la forme des angles d’Euler ou sous la forme de Quaternion.

Angles d’Euler

Les angles d’Euler sont composés de trois valeurs angulaires pour les axes X, Y et Z. Chaque valeur de rotation est appliquée séquentiellement, c’est-à-dire successivement.

Avantage
Les angles d’Euler ont un format intuitif « lisible à l’œil nu ».

Limitation
Dans certaines configurations, les angles d’Euler souffrent d’une perte de liberté.
En effet, lors de l’application successive des trois rotations, il est possible que la première ou la deuxième rotation aboutisse à ce que le troisième axe pointe dans la même direction que l’un des axes précédents, de sorte que la troisième valeur de rotation ne peut être appliquée autour d’un axe unique.

Quaternions

Les quaternions peuvent être utilisés pour représenter l’orientation ou la rotation d’un objet.
Sa représentation se compose de quatre nombres (référencés dans l’unité comme x, y, z & w).

Vous devez garder à l’esprit que ces grandeurs ne représentent pas des angles ou des axes et que vous n’avez normalement jamais besoin d’y accéder directement.

Avantage
Les rotations Quaternion ne souffrent pas de la perte d’un DoF.

Limitation
Un seul quaternion ne peut représenter une rotation supérieure à 180 degrés dans aucune direction et n’est pas intuitivement compréhensible.

Vitesse angulaire

La vitesse angulaire est représentée par un vecteur tridimensionnel (x, y et z), les valeurs de la vitesse angulaire dépendant des axes x, y et z.

Accélération linéaire

L’accélération linéaire est représentée par un vecteur tridimensionnel (x, y et z), les valeurs d’accélération linéaire dépendant des axes x, y et z.

Covariance

En ce qui concerne les capteurs, la covariance est le coefficient de confiance relatif à la précision du capteur.

La covariance peut être statique en fonction des performances du capteur ou mise à jour en continu en changeant au fil du temps en fonction de l’estimation de la précision. C’est la même chose pour l’IMU, elles peuvent avoir une covariance statique ou dynamique.

Chaque paramètre a un coefficient de covariance associé, codé en dur ou traité par le logiciel du capteur, indiquant dans quelle mesure la valeur peut être fiable.

Aperçu des caractéristiques de l’IMU

Consommation d’énergie

Pour déterminer les besoins en énergie de votre projet robotique, vous devez tenir compte du mode et de la durée de fonctionnement de votre machine.
Ces paramètres sont importants si le capteur fonctionne sur batterie :

  • Tension d’alimentation en volts
  • Courant de service en ampères
  • Puissance en watts

Caractéristiques du capteur

La résolution numérique décrit la capacité de détection globale de votre capteur et se compose de deux parties :

1. La distance => quantité du mouvement que les capteurs peuvent prendre en compte :

  • Dans le cas d’un accéléromètre, cela se mesure en forces G.
  • Les gyroscopes sont classés en fonction de la vitesse de rotation angulaire qu’ils peuvent quantifier en degrés/seconde.
  • Les magnétomètres mesurent leurs capacités en µT, qui peuvent varier selon l’axe du capteur (x,y,z).

2. La sensibilité => nombre absolu représentant la plus petite quantité de changements qui peut être mesurée et détectée. Pour les capteurs, ceci est directement lié au nombre de bits réservés pour le capteur en question. Plus il y a de bits, plus la sensibilité est élevée.

Offset par rapport à la gravité zéro : valeur de l’accéléromètre lorsque aucune force extérieure n’est appliquée, qui est l’erreur minimale détectée.

Offset du taux zéro : valeur du gyroscope en l’absence de mouvement angulaire, qui peut dépendre de la température.

Débits de données : le nombre de mesures effectuées au cours d’une période de temps donnée. Lorsque vous choisissez votre IMU, assurez-vous que les taux de capteurs pris en charge correspondent aux besoins de vos applications.

Densité de bruit : défini en unités par largeur de bande de racine carrée, typiquement :

  • ug/sqrt(Hz) pour les accéléromètres
  • deg/s/sqrt(Hz) pour les gyroscopes

Bande passante : la gamme de fréquences dans laquelle un accéléromètre ou un gyroscope fonctionne.

Interfaces : quel câble et protocole de communication utilisent l’IMU et votre système embarqué ?

Plage de température : les sondes de température ambiante minimale et maximale peuvent fonctionner en toute sécurité pour fournir des mesures précises.

Paramètres en sortie

Précision statique : précision de la sortie du capteur lorsque l’appareil est relativement stable/immobile.

Précision dynamique : il s’agit de la précision de la sortie du capteur lorsque l’appareil est en mouvement.

Erreur de rotation : différence entre le vecteur de sortie et le vecteur réel, mesuré en degrés.

Heading Error : différence entre la sortie de l’axe yaw et sa valeur réelle, mesurée en degré.
Heading Drift : erreur accumulée à travers le temps.

RAW Accel/Gyro/Mag : la sortie brute de chaque capteur avant tout traitement.

Calibrated Accel/Gyro/Mag : sortie de chaque capteur après que la fusion des capteurs ait été utilisée pour traiter et nettoyer chaque signal.

Calibration

Après avoir examiné les paramètres les sorties des capteurs, il y a une autre chose que vous devez considérer : l’étalonnage. Les options d’étalonnage que vous choisissez dépendent de votre budget et des besoins de votre projet.

Nominal : l’étalonnage nominal utilise des valeurs moyennes pour le capteur afin de lui donner une performance moyenne.

Per-device : l’étalonnage par appareil permet d’étalonner certains facteurs, comme le gain du capteur, propre à chaque composant. En fonction de votre application, vous pouvez choisir d’étalonner en fonction d’un axe unique ou de plusieurs axes si votre projet.

Dynamique : si vous trouvez que l’étalonnage nominal est acceptable, la sortie de votre capteur peut encore être améliorée dynamiquement sur le terrain. Les caractéristiques du capteur varient en fonction de la température et peuvent être ajustées au fur et à mesure que le capteur est utilisé dans son application finale.

Algorithmes de fusion de données

Le filtre Kalman

Le filtre de Kalman est une implémentation de modèle :

  • Tout d’abord, sur la base de son modèle, le filtre fait une hypothèse sur la prochaine valeur de sortie du capteur
  • Il prend ensuite la valeur mesurée et la compare avec sa supposition
  • Enfin, il met à jour son modèle pour faire des hypothèses plus précises pour la prochaine mesure.

Chaque séquence de données provenant des capteurs est utilisée pour améliorer statistiquement le modèle afin de calculer les sorties. Dans le même temps, la précision des capteurs est également jugée.

Le modèle dépend de l’erreur du capteur et de l’application en question. Pour les systèmes robotiques mobiles, les connaissances du monde réel nous disent aussi que les objets physiques se déplacent en douceur et en continu dans l’espace, plutôt que de se téléporter dans l’espace comme pourraient l’indiquer des échantillons de coordonnées GPS.

Cela signifie que si un capteur qui a toujours donné d’excellentes valeurs de manières constantes commence à vous dire des choses improbables (comme les systèmes GPS/radio lorsque vous entrez dans un tunnel), la cote de crédibilité des capteurs diminue en quelques itérations de quelques millisecondes jusqu’à ce qu’il recommence à mesurer des valeurs cohérentes.

C’est mieux que le simple calcul de la moyenne, car le filtre de Kalman peut supporter la plupart de ses capteurs qui deviennent temporairement imprécis. Il faut au moins un capteur qui transmet des valeurs relativement précises. Il assure le bon fonctionnement du robot jusqu’à ce que les autres capteurs fonctionnent de nouveau.

Le filtre de Kalman est une application des concepts plus généraux des chaînes de Markov et de l’Inférence Bayésienne, qui sont des systèmes mathématiques qui affinent de façon itérative leurs suppositions à l’aide de preuves.

Concept de base du filtre de Kalman

Représentation de la logique du filtre de Kalman. Image crée par Petteri Aimonen via Wikimedia Commons.

 

Filtres PID

Les systèmes robotiques plus simples peuvent être équipés de filtres PID. On peut les considérer comme des filtres de Kalman primitifs alimentés par un seul capteur, tous les réglages itératifs étant coupés et remplacés par trois valeurs fixes (kp, ki et kd).

Il s’agit d’un système de correction qui ajuste l’entrée par la boucle de contrôle pour obtenir la bonne sortie.

Même lorsque les valeurs PID sont réglées automatiquement ou manuellement, l’ensemble du processus de « réglage » (ajuster, voler, juger, répéter) est une version externalisée de Kalman avec un humain faisant l’étape de propagation des croyances.

Filtres personnalisés

Les vrais systèmes sont souvent hybrides, quelque part entre les deux.

Packages ROS pour IMU

Si vous implémentez votre logiciel robot sous ROS, il sera plus facile d’acheter des capteurs compatibles avec ROS. Cela signifie que les constructeurs ont déjà développé un package ROS pour faire interagir le capteur sous ROS. Cela vous fera gagner du temps.

En ce qui concerne l’IMU, le capteur publiera les données brutes ou traitées, en fonction des implémentations de votre IMU, sur le topic /imu. Ensuite, sur ROS, vous pouvez vous abonner au topic pour obtenir des données pour les utiliser pour la navigation, par exemple.

A propos des packages ROS, certains sont déjà implémentés et à jour :

  • imu_transformer : Ce package fournit une combinaison node/nodelet qui peut être utilisée pour transformer les données IMU d’une trame TF en une autre
  • imu_tools :
    • Imu_filter_madgwic : Filtre qui fusionne les vitesses angulaires, les accélérations et (optionnellement) les lectures magnétiques d’un dispositif IMU générique dans une orientation basée sur l’algorithme de Sebastian Madgwick
    • Imu_complementary_filter : Filtre qui fusionne les vitesses angulaires, les accélérations et (facultativement) les lectures magnétiques d’un dispositif IMU générique dans un quaternion pour représenter l’orientation du dispositif sur la trame globale, basé sur l’algorithme de Roberto G. Valenti
    • rviz_imu_plugin : un plugin pour rviz qui affiche sensor_msgs::Imu messages
  • imu_utils : Package qui permet de suivre les performances de l’IMU sur Matlab

Comment choisir son IMU ?

Faites votre choix en fonction des exigences de votre projet. L’IMU la moins chère ne fournit que des valeurs brutes, tandis que l’UM7 filtre les valeurs traitées et la publie directement dans un message ROS.

Les performances sont assez similaires même pour les IMU les plus chères. La différence réside dans les services et implémentations supplémentaires :

Quelles sont les performances de l’IMU ?

Un capteur IMU est un composant utile à ajouter sur votre robot. Il vous donnera des informations sur l’attitude, l’orientation, la position, la vitesse, l’accélération, la vitesse de rotation si les valeurs sont calculées.

Néanmoins, vous devez garder à l’esprit que l’IMU est sujet aux erreurs de dérive. En effet, les erreurs s’accumulent au fil du temps puisque les nouvelles valeurs sont basées sur les précédentes.

De plus, l’IMU, en utilisant le champ magnétique pour calculer les valeurs, peut être altérée par d’autres champs magnétiques (moteur, structure métallique, etc.) qui peuvent donner d’énormes erreurs.

Vous pouvez implémenter des corrections et des filtres pour réduire cette erreur, mais l’erreur IMU dérivera et augmentera continuellement.

Une façon de résoudre ce problème est de prendre en compte la valeur de covariance (coefficient de confiance), qui peut évoluer avec le temps si elle est dynamique.

Une autre façon est d’ajouter un capteur GPS. En effet, le signal GPS peut mettre à jour la valeur de l’IMU et corriger son erreur de dérive.

Vous cherchez des résultats réels, vous trouverez en ligne un test de visualisation en ligne des données d’une IMU et de capteur EMG connecté à un poignet, qui vous donnera un aperçu de l’erreur de l’IMU (parties 2.1 et 3.1).

Cet autre article liste et décrit tous les biais de l’IMU conduisant à des erreurs.

Vous trouverez ici une méthode rapide et efficace pour évaluer une IMU.

Conclusion : avantages et inconvénients de l’IMU

Avantages d’une IMU

  1. Le système de navigation inertielle est indépendant de toute information externe et ne consomme pas trop d’énergie
  2. Le système de navigation inertielle peut fournir l’emplacement, la vitesse, l’attitude, les données d’angle, et l’information de navigation résultante est continue
  3. Mesure à hautes fréquences et bonne stabilité

Limites de l’IMU

  1. Grâce aux informations du système de navigation intégré, l’erreur de positionnement augmente avec le temps et la précision à long terme est faible
  2. Un long temps d’alignement initial est nécessaire avant chaque utilisation
  3. Les informations de temps ne peuvent pas être données