⚠️ NOTE INTERNE (à retirer avant publication)
- Vérifier installation IMUSim dans un venv vierge.
- Confirmer que
Simulation,ConstantAccelerationEnvironmentetIdealIMUexistent toujours.- Capturer un extrait réel de
imu.data(5 premières lignes).- Générer un CSV minimal + tracer accel_z avec matplotlib.
- Ajouter un court mapping “champ IMUSim → champ Telemachus”.
IMUSim : introduction rapide et outils de base
Introduction
Dans le domaine de la navigation inertielle, la IMUSim simulation inertielle GNSS/IMU est une ressource précieuse. Cette bibliothèque Python open source permet de simuler des mesures inertiales réalistes, facilitant ainsi le développement et la validation des algorithmes de fusion de capteurs. Ce billet présente une introduction claire à IMUSim, son installation, et son rôle complémentaire avec RS3 et Telemachus.
Objectif
Découvrir IMUSim, une bibliothèque Python open source permettant de simuler des mesures inertiales réalistes (accéléromètre, gyroscope) dans des scénarios contrôlés.
Ce billet illustre ses principes, son installation et son lien direct avec RS3 et Telemachus.
Contexte
La validation des algorithmes de fusion nécessite des données GNSS/IMU cohérentes et bruitées.
Avant RS3, peu d’outils open source permettaient de générer des signaux inertiels réalistes avec précision temporelle et cinématique.
IMUSim (Young et al., 2011) a été l’un des premiers simulateurs open source destinés à la recherche en navigation inertielle.
Installation
# Cloner le dépôt (non maintenu mais encore fonctionnel)
git clone https://github.com/ajyoung/imusim.git
cd imusim
pip install -e .
Pour plus de détails, la page officielle du projet est disponible sur GitHub IMUSim.
Exemple de simulation simple
from imusim.simulation.base import Simulation
from imusim.environment import ConstantAccelerationEnvironment
from imusim.platforms import IdealIMU
sim = Simulation()
env = ConstantAccelerationEnvironment(acceleration=(0, 0, -9.81))
imu = IdealIMU()
sim.add_platform(imu, env)
sim.run(duration=10.0)
print("Nombre d’échantillons IMU :", len(imu.data))
➡️ Ce code génère un jeu de données inertiel à 100 Hz sur 10 secondes, simulant une gravité constante.
Analyse rapide
Les signaux peuvent être exportés pour analyse ou comparés à ceux de RS3, un outil plus avancé pour la simulation inertielle et GNSS.
Voici un exemple simple d’affichage avec matplotlib :
import matplotlib.pyplot as plt
plt.plot(imu.data['accelerometer_z'])
plt.title('Accélération simulée - axe Z')
plt.show()
Pour en savoir plus sur RS3, consultez notre article dédié : RS3 - Simulation et validation GNSS/IMU.
Complément scientifique
Le modèle inertiel d’IMUSim repose sur les équations fondamentales de la cinématique : [ \mathbf{a}_m = \mathbf{R}(\mathbf{q})^T (\mathbf{a}_t - \mathbf{g}) + \mathbf{b}_a + \mathbf{n}_a ] où :
- (\mathbf{a}_m) est la mesure accélérométrique simulée,
- (\mathbf{R}(\mathbf{q})) est la matrice de rotation quaternion → monde,
- (\mathbf{b}_a) le biais,
- (\mathbf{n}_a) le bruit blanc gaussien.
Cette formulation simple permet d’illustrer les principes de base de la simulation inertielle, tout en offrant une base pour des extensions plus complexes.
Liens avec RS3 et Telemachus
| Concept | IMUSim | RS3 / Telemachus |
|---|---|---|
| Moteur de simulation | Basé sur des équations simples | Basé sur un modèle inertiel complet 6D |
| Sortie de données | Python objets IMU | Dataset structuré Telemachus (pivot) |
| Usage | Recherche académique | Simulation / validation industrielle |
Discussion
IMUSim conserve une valeur pédagogique majeure : il permet d’expérimenter la cinématique inertielle, d’analyser les erreurs et de comprendre les principes du filtrage.
RS3 prolonge cette approche en y ajoutant une composante dynamique complète et des scénarios calibrés pour la recherche appliquée.
Conclusion
En résumé, IMUSim constitue un excellent point d’entrée pour quiconque souhaite comprendre les bases de la simulation inertielle GNSS/IMU.
Son intégration avec des outils comme RS3 et Telemachus ouvre la voie à des validations plus robustes et industrielles.
L’utilisation combinée de ces outils permet d’allier pédagogie, recherche et applications concrètes.
Prochaines étapes
Avant la publication finale de ce billet, plusieurs validations sont nécessaires :
- Vérifier l’installation d’IMUSim dans un environnement virtuel propre.
- Confirmer l’existence et le bon fonctionnement des classes
Simulation,ConstantAccelerationEnvironmentetIdealIMU. - Capturer un extrait réel des données
imu.data(au moins 5 premières lignes) pour illustration. - Générer un fichier CSV minimal et produire un graphique simple de l’accélération sur l’axe Z avec matplotlib.
- Ajouter un tableau de correspondance entre les champs IMUSim et ceux de Telemachus pour faciliter la compréhension.
Ces étapes garantiront la qualité et la précision des informations partagées.