Imu cover

Calibration et orientation d'IMU

Méthodes de calibration automatique pour IMU permettant de déterminer la matrice de rotation nécessaire pour aligner le référentiel du capteur avec celui de l'objet mesuré.

IMU Calibration automatique Matrices de rotation C++ Python Algèbre linéaire

Comprendre le défi technique

Cette page de portfolio expose une problématique technique que j'ai rencontrée à de nombreuses reprises dans mes projets d'instrumentation : Comment effectuer un changement de repère pour les données mesurées par une IMU ?

Le problème se pose dès qu'on veut utiliser un capteur inertiel (IMU) pour mesurer le mouvement d'un objet, mais que l'orientation du capteur ne correspond pas au système de coordonnées de l'objet d'intérêt. Cette situation est très courante car il est souvent impossible ou impratique de fixer le capteur dans l'orientation exacte souhaitée.

Exemples de cas d'usage concrets

  • Véhicule instrumenté : Un appareil avec IMU posé dans une voiture ou un avion, mais on ne sait pas exactement où il a été attaché et dans quelle orientation. L'objectif est de mesurer l'accélération et la rotation du véhicule lui-même, pas de l'appareil.
  • Applications sportives : Un capteur attaché à un nageur dans une piscine, mais on ne connaît pas l'orientation de la piscine par rapport au nord magnétique. On souhaite mesurer l'accélération dans l'axe de la nage.
  • Équipements industriels : Capteurs fixés sur des machines où l'orientation de montage peut varier selon l'installation ou évoluer dans le temps.

Pour résoudre ces problèmes, il faut être capable de déterminer une matrice de rotation qui transforme les mesures depuis le référentiel de l'appareil vers celui qu'on veut analyser.

Principe de la calibration automatique

La solution repose sur l'exploitation de références physiques connues pour calibrer automatiquement l'orientation du capteur. Dans la plupart des applications terrestres, nous disposons de deux références naturelles très utiles :

  • La gravité terrestre : toujours dirigée vers le bas
  • Les accélérations directionnelles : lors de manœuvres spécifiques comme le freinage, l'accélération, ou les virages

En combinant ces deux informations, on peut déterminer de manière automatique et robuste l'orientation relative entre le capteur et l'objet d'intérêt, sans intervention manuelle.

Exemple concret : capteur sur un camion

Prenons l'exemple d'un appareil IMU fixé sur un camion pour surveiller son comportement dynamique. Le capteur peut être installé n'importe où sur le véhicule et dans n'importe quelle orientation, mais nous voulons mesurer les accélérations dans le référentiel du camion.

Illustration de la rotation du camion
L'application d'une matrice de rotation permet de "simuler" une rotation de l'IMU

Dans cet exemple (simplifié en 2D pour la clarté), on voit que le capteur est fixé sur le côté du camion mais son repère est désaligné avec celui du véhicule. La gravité est mesurée selon des composantes sur plusieurs axes, alors qu'idéalement elle devrait être entièrement alignée avec l'axe -Z du camion.

Algorithme de calibration en trois dimensions

Le passage du cas 2D (illustré ci-dessus) au cas réel en 3D introduit une complexité supplémentaire : un degré de liberté supplémentaire. En effet, si l'on se contente d'aligner la gravité avec l'axe -Z, il reste encore à déterminer comment orienter les axes X et Y dans le plan horizontal. C'est pourquoi l'algorithme nécessite une seconde contrainte géométrique.

Cadre du camion pour calibration
Repère 3D utilisé comme référence pour le camion

L'algorithme fonctionne en exploitant deux situations distinctes qui fournissent des contraintes géométriques complémentaires :

1 Mesure au repos : contrainte verticale

Lorsque le véhicule est à l'arrêt et sur terrain plat, l'accéléromètre ne mesure que l'accélération gravitationnelle. Cette mesure fournit directement la direction de l'axe vertical du véhicule dans le référentiel du capteur.

Contrainte 1 : Le vecteur gravité mesuré s doit être aligné avec l'axe -Z du camion après transformation.
⚠️ Cette contrainte seule laisse un degré de liberté : la rotation autour de l'axe Z

2 Mesure en freinage : contrainte horizontale

Lors d'un freinage (ou d'une accélération), le véhicule subit une accélération dans le plan horizontal, dans la direction de conduite. Cette mesure permet de lever l'ambiguïté sur l'orientation des axes X et Y dans le plan horizontal.

Contrainte 2 : Le vecteur d'accélération de freinage b doit être aligné dans le plan XZ du camion, selon l'axe de conduite.
✓ Cette seconde contrainte fixe complètement l'orientation des axes X et Y

3 Construction du référentiel orthonormal complet

Avec ces deux contraintes géométriques, on peut construire un système de coordonnées orthonormal complet et non-ambigü pour le véhicule :

  • Axe Z : opposé au vecteur gravité (vers le haut) - défini par la contrainte 1
  • Axe X : direction de conduite (déduite du freinage) - défini par la contrainte 2
  • Axe Y : perpendiculaire aux deux autres (vers la gauche) - calculé par produit vectoriel
Résultat : Les 3 degrés de liberté de rotation sont entièrement contraints par les deux mesures physiques.

Avantages de cette méthode

✓ Automatique

Aucune intervention manuelle requise. La calibration se fait automatiquement lors des premières utilisations du véhicule.

✓ Robuste

Exploite des références physiques universelles (gravité) et des comportements prévisibles (freinage).

✓ Flexible

Fonctionne quelle que soit l'orientation initiale du capteur, dans les limites physiques raisonnables.

✓ Économique

Évite les coûts de montage précis et les contraintes d'installation complexes.

📊 Détails mathématiques

À partir de deux vecteurs mesurés par le capteur, voici comment construire la matrice de rotation complète :

1. Vecteurs de départ

On part de deux vecteurs mesurés dans le capteur : s pour la gravité au repos, et b pendant le freinage.

2. Normalisation de la gravité

\[\hat{\mathbf{s}} = \frac{\mathbf{s}}{\|\mathbf{s}\|}\]

On normalise pour obtenir un vecteur de norme 1.

3. Définition de l'axe vertical du camion

\[\mathbf{z} = -\hat{\mathbf{s}}\]

L'axe Z pointe vers le haut (opposé à la gravité).

4. Calcul de la variation due au freinage

\[\Delta = \mathbf{b} - \mathbf{s}\]

5. Détermination de l'axe latéral (Y)

\[\mathbf{y} = \frac{\hat{\mathbf{s}} \times \Delta}{\|\hat{\mathbf{s}} \times \Delta\|}\]

Le produit vectoriel donne un vecteur perpendiculaire aux deux précédents.

6. Fermeture de la base orthonormée (axe X)

\[\mathbf{x} = \mathbf{y} \times \mathbf{z}\]

Ceci garantit un troisième axe perpendiculaire aux deux autres.

7. Assemblage de la matrice de rotation

\[R = \begin{pmatrix} \mathbf{x}^T \\[3pt] \mathbf{y}^T \\[3pt] \mathbf{z}^T \end{pmatrix}\]

8. Propriétés garanties

Cette construction assure que les trois axes sont orthogonaux et de norme 1, et que det(R) = +1, c'est bien une rotation sans renversement de sens.

Application : Cette matrice transforme tout vecteur mesuré par le capteur dans le référentiel du camion : vcamion = R × vcapteur

Démonstration interactive : Modèle 3D de camion avec rotation

Démonstration interactive de la rotation d'un modèle 3D de camion pour illustrer les concepts de matrices de rotation et d'orientation d'IMU. Utilisez les sliders ou faites glisser le système de coordonnées.

Expérience optimale sur ordinateur
Cette démonstration interactive est conçue pour être utilisée sur un écran d'ordinateur avec une souris ou un trackpad.

Les interactions tactiles peuvent ne pas fonctionner correctement sur cette démonstration.

Projets d'implémentation réalisés

Cette méthode de calibration automatique a été déployée avec succès dans plusieurs contextes d'instrumentation différents :

🏊

Analyse de nageurs

Mesures dans le référentiel de la piscine pour l'analyse biomécanique, avec capteurs fixés librement sur les nageurs.

✈️

Instrumentation aéronautique

Monitoring embarqué avec mesures dans le référentiel avion (tangage, roulis, lacet) malgré contraintes de montage.

🚗

Flotte automobile

Boîtiers télématiques avec installation flexible et mesures cohérentes dans le référentiel véhicule.

Un projet de calibration de capteurs vous intéresse ?

Discutons de vos besoins en instrumentation et traitement de données de capteurs.