AccelRectification – redressement des accélérations IMU

AR022 – AccelRectification : redressement des accélérations véhicule

1. Contexte

Cet artefact part d’un besoin très concret dans tout pipeline télématique :

Comment passer d’accélérations IMU brutes, exprimées dans le repère capteur, à des accélérations « redressées » dans un repère véhicule / route, exploitables pour l’analyse de conduite et la validation de modèles ?

Trois briques se rencontrent ici :

  • RS3 : génération de trajectoires et de signaux inertiels (accel/gyro) simulés à 10 Hz (voire plus) avec géométrie de route, conditions, événements.
  • Chaîne de calibration IMU (Tedaldi 2014) : estimation des biais, échelles, non-orthogonalités sans banc de calibration, à partir de poses statiques.
  • Telemachus : format pivot pour stocker synchroniquement trajectoire, orientation, IMU et événements dans un seul schéma cohérent.

AR022 « AccelRectification » a pour objectif de cristalliser ce pipeline sous la forme d’un artefact reproductible, réutilisable à la fois :

  • pour les expériences RS3 (simu pure ou simu + données réelles),
  • pour les papiers P002/P004 (fusion IMU/GNSS, MMKF),
  • pour la compétence V001 (modélisation inertielle & calibration).

2. Objectifs de l’artefact

  1. Définir clairement les repères utilisés :

    • repère capteur (IMU),
    • repère véhicule (longitudinal, latéral, vertical),
    • repère navigation / monde (NED ou ENU),
    • repère route (tangent, normal, vertical route).
  2. Proposer un pipeline générique de redressement des accélérations :

    • calibration IMU (biais, gains, non-orthogonalité),
    • estimation de l’attitude (gyro + éventuellement GNSS / carte),
    • projection des accélérations dans le repère navigation,
    • suppression de la gravité,
    • projection finale dans le repère véhicule / route.
  3. Décliner ce pipeline en plusieurs modes de complexité :

    • Mode A : IMU seule (gyro + accel) avec filtre complémentaire ou EKF inertiel simple.
    • Mode B : IMU + GNSS (cap, vitesse, inclinaison route) via RS3/Telemachus.
    • Mode C : projection sur référence route (RoadGeometry / RoadGenome) pour séparer effets route / conduite.
  4. Fournir un artefact exécutable (notebook + fonctions Python) permettant :

    • de charger un trajet RS3/Telemachus,
    • d’appliquer le pipeline,
    • de visualiser les composantes longitudinales / latérales / verticales,
    • de comparer « brut vs redressé » sur quelques scénarios type (freinage, virage, dos d’âne, etc.).

3. Inputs & outputs visés

3.1. Inputs

  • Un fichier Telemachus ou RS3 enrichi contenant :

    • trajectoire GNSS (lat, lon, alt),
    • orientation véhicule (yaw, pitch, roll) simulée ou estimée,
    • signaux IMU (accel tri-axes, gyro tri-axes),
    • éventuellement événements (freinage fort, virage serré, nid-de-poule…),
    • méta-données capteur (matrice de calibration IMU issue de Tedaldi 2014).
  • Pour les expérimentations réelles :

    • traces brutes capteur (smartphone, boîtier télématique),
    • trajectoire map-matched (Newson/Hunter/Hansson),
    • profil de route (courbure, pente) issu de RoadGeometry / RoadGenome.

3.2. Outputs

  • Séries temporelles d’accélérations redressées dans différents repères :

    • (a_\text{veh,long}), (a_\text{veh,lat}), (a_\text{veh,vert}),
    • accélérations dans le repère route (tangent, normal, vertical),
    • éventuellement séparation « dynamique conduite » vs « dynamique route ».
  • Visualisations types :

    • comparatif accel brut / redressé,
    • signatures typiques (freinage, virage, changement de voie, dos d’âne),
    • histogrammes / spectres pour calibrer des seuils de détection événementielle.
  • Un rapport court (section « Discussion » dans ce même A022.md) explicitant :

    • les limites de chaque mode (A/B/C),
    • les hypothèses (trajet bien calibré, absence de dérive importante, qualité GNSS),
    • les liens avec les modèles et filtres utilisés dans P002/P004.

4. Pipeline proposé

4.1. Étape 0 : calibration IMU (Tedaldi 2014)

  • Utiliser la méthode Tedaldi 2014 pour estimer la matrice de calibration complète :
    • biais accel/gyro,
    • facteurs d’échelle,
    • non-orthogonalité.
  • Produire une matrice 6×6 ou un bloc accel (3×3) + bloc gyro (3×3) exploitable dans le pipeline.
  • Stocker ces paramètres dans le payload Telemachus associé au capteur.

Cette étape pourra être simulée (RS3) ou appliquée à des données réelles si un jeu de poses statiques est disponible.

4.2. Étape 1 : estimation de l’attitude

Plusieurs variantes à prototyper :

  • A1 – Filtre complémentaire simple :

    • intégration gyro,
    • remise à zéro lente via la verticale donnée par l’accélération moyenne.
  • A2 – Inertiel + GNSS :

    • EKF ou UKF avec état orientation + biais gyro,
    • corrections via vitesse GNSS, cap GNSS (ou heading dérivé de la trajectoire),
    • contrainte « véhicule roule sur une route » (pitch/roll liés au profil route).
  • A3 – Inertiel + carte :

    • utilisation de la géométrie de route (pente/courbure) comme pseudo-mesure,
    • cohérence avec RoadGeometry / RoadGenome.

L’artefact n’a pas vocation à réinventer tous les filtres, mais à proposer 1 à 2 implémentations de référence pour chaque grande famille (complémentaire, inertiel+GNSS).

4.3. Étape 2 : projection dans le repère navigation + suppression gravité

À partir de l’attitude estimée, on projette les accélérations du repère capteur vers le repère navigation ((n,e,d)) ou ((x,y,z)) monde, puis on retire la gravité :

  1. ( a_\text{nav} = R_{\text{nav}\leftarrow\text{imu}} \cdot a_\text{imu} )
  2. ( a_\text{lin} = a_\text{nav} - g \cdot \begin{bmatrix}0 \ 0 \ 1\end{bmatrix} ) (si (z) vertical)

On obtient ainsi l’accélération linéaire du centre de masse dans le répertoire navigation.

4.4. Étape 3 : projection dans le repère véhicule / route

On construit ensuite les repères :

  • Repère véhicule :

    • (x) : longitudinal,
    • (y) : latéral,
    • (z) : vertical.
  • Repère route :

    • tangent à la trajectoire (direction de la vitesse),
    • normal horizontale,
    • vertical route.

À partir de la vitesse et de la trajectoire (GNSS ou simulée RS3), on construit une base orthonormée locale et on projette (a_\text{lin}) dedans. Cela permet de distinguer :

  • composante longitudinale (accélération / freinage),
  • composante latérale (virage),
  • composante verticale (bosse, dos d’âne, chaussée dégradée).

5. Scénarios RS3 à illustrer

Quelques scénarios types à couvrir dans l’artefact :

  1. Freinage fort en ligne droite

    • Montrer la montée de la composante longitudinale,
    • comparer brut vs redressé (avant/après gravité + projection).
  2. Virage constant avec vitesse croissante

    • Relier accélération latérale à la courbure RS3 / RoadGeometry,
    • vérifier la cohérence (a_\text{lat} \approx v^2/R).
  3. Dos d’âne / bosse

    • Mettre en évidence les pics verticaux,
    • explorer la sensibilité à la calibration IMU.
  4. Route en pente

    • Séparer composante « pente » (gravité projetée) de la composante « conduite »,
    • illustrer l’intérêt de la référence route.

Chaque scénario pourra donner lieu à :

  • 1–2 figures clefs,
  • une mini-légende interprétative,
  • éventuellement un extrait de notebook (captures ou références).

6. Intégration dans l’écosystème Teleforge

  • Lien avec V001 : la compétence V001 pourra citer AR022 comme artefact de référence pour le traitement inertiel bas niveau (calibration + redressement).
  • Lien avec P002/P004 : les papiers de fusion IMU/GNSS et MMKF pourront s’appuyer sur AR022 pour justifier les prétraitements inertiels.
  • Lien avec RS3 : AR022 définira un chemin « standard » RS3 → Telemachus → accélérations redressées, réutilisable dans la génération de datasets.

À terme, AR022 pourra fournir :

  • une implémentation Python packagée (teleforge.accel_rectification),
  • un ou plusieurs notebooks démonstrateurs,
  • un micro-dataset d’exemple (quelques trajectoires RS3 annotées).

7. Roadmap & TODO

  • Consolider les choix de repères et notations (véhicule, route, navigation).
  • Implémenter la calibration IMU style Tedaldi sur un jeu de données synthétiques RS3.
  • Implémenter au moins deux variantes d’estimation d’attitude (complémentaire + inertiel+GNSS simple).
  • Définir une fonction utilitaire de projection repère nav → repère route.
  • Construire 3–4 scénarios RS3 dédiés à AR022 (freinage, virage, dos d’âne, pente).
  • Générer les premières figures et valider qualitativement les résultats.
  • Connecter AR022 aux papiers P002/P004 et à la compétence V001 dans status.yaml.
Réseau 0 sortants 3 entrants

Sources · Liens sortants

Aucun lien explicite détecté.

Cité par · Liens entrants

  • A058 — A robust and easy-to-implement method for IMU calibration without external equipment
  • P011 — Rectification inertielle 10 Hz pour la donnée mobilité
  • P013 — In-field IMU Rectification Without Gyroscope