Calcul de position à partir de données GPS brutes
Importance du système GPS
- Le GPS, ou Global Positioning System, est utilisé dans de nombreuses applications, de l’itinéraire sur Google Maps aux applications de VTC
- Le GPS est très précis, au point d’être utilisé pour mesurer la tectonique des plaques et la dérive des continents
- Le GPS appartient au gouvernement américain, et l’accès pour d’autres pays peut être restreint pour des raisons géopolitiques
- C’est pourquoi d’autres systèmes similaires au GPS ont été développés, comme le GLONASS russe, Galileo de l’Union européenne et BeiDou chinois
Systèmes de coordonnées
- Différents systèmes de coordonnées sont utilisés pour représenter une position
- La latitude/longitude couramment utilisée n’est généralement pas adaptée aux calculs mathématiques
- Le système de coordonnées ECEF (Earth Centered, Earth Fixed) représente les positions avec pour origine le centre de la Terre
- Le système WGS 1984 est le système de coordonnées ECEF le plus couramment utilisé
Définition de l’altitude
- Pour définir l’altitude, il faut d’abord définir la surface de référence
- On utilise un ellipsoïde de référence et un modèle de géoïde
- L’ellipsoïde de référence n’a pas de signification physique, tandis que le géoïde est défini comme l’ensemble des points ayant le même potentiel gravitationnel
Latitude et longitude
- La latitude géodésique est l’angle entre la normale à la surface de l’ellipsoïde et le plan de l’équateur
- La longitude géodésique est l’angle entre le méridien de référence et un méridien donné
- La hauteur géodésique est la hauteur mesurée par rapport à l’ellipsoïde
Conversion entre coordonnées géodésiques et cartésiennes
- Convertir des coordonnées géodésiques en coordonnées cartésiennes est simple
- Convertir des coordonnées cartésiennes en coordonnées géodésiques nécessite une procédure itérative
Système de coordonnées local
- Le système de coordonnées local est le système ENU (East-North-Up) centré sur la position de l’utilisateur
- Il existe une méthode pour convertir les coordonnées ECEF en coordonnées ENU
Calcul de la position de l’utilisateur à l’aide du GPS
Détermination de la position des satellites
- L’orbite d’un satellite est elliptique et est entièrement définie par 6 paramètres képlériens
- La position des satellites est calculée conformément au document de spécification de l’interface GPS
Calcul de la distance entre l’utilisateur et les satellites
- Le récepteur GPS utilise les horodatages des signaux satellites pour calculer la distance jusqu’au satellite
- Cette distance est appelée pseudodistance (
pseudorange)
- Pour calculer une position précise, il faut modéliser le décalage d’horloge entre l’utilisateur et les satellites ainsi que les délais atmosphériques
Estimation du décalage d’horloge de l’utilisateur
- Le décalage d’horloge de l’utilisateur est estimé en même temps que sa position
Algorithme d’estimation de la position utilisateur et du décalage d’horloge
- Une position utilisateur initiale et un décalage d’horloge initial sont définis, puis corrigés de manière itérative
- Pour chaque satellite, on corrige la pseudodistance, on calcule le temps de transmission du signal, puis on calcule la position du satellite
- Des techniques d’algèbre linéaire sont utilisées pour trouver une solution par moindres carrés
Remarques sur le code Matlab
- Certaines équations nécessitent l’appel d’un solveur
- Par exemple, le calcul de l’anomalie excentrique (E) à partir de l’anomalie moyenne (M) nécessite un solveur
Configuration expérimentale
- Une unité GPS spécialisée est nécessaire pour collecter des données GPS brutes
- Les puces NEO-M8T et 6T de u-blox conviennent
- L’utilitaire STRSVR de RTKLib est utilisé pour recevoir et enregistrer les signaux GPS bruts
Traitement des données GPS brutes
- STRSVR enregistre les données GPS brutes au format RTCM3
- La bibliothèque Matlab goGPS est utilisée pour décoder les données RTCM et les convertir en structures de données Matlab
Analyse des résultats
- On analyse les variations de la position et du décalage d’horloge
- On analyse les variations des composantes est/nord/haut (E/N/U) de la position
- On analyse dans le temps les variations du décalage d’horloge
Calcul de l’azimut et de l’élévation des satellites
- L’azimut et l’élévation des satellites sont calculés dans le repère ENU centré sur l’utilisateur
Résumé de GN⁺
- Cet article explique le principe de fonctionnement du système GPS et la méthode de calcul de position
- Diverses méthodes de correction sont utilisées pour améliorer la précision des données GPS
- Il montre comment traiter et analyser des données réelles à l’aide de code Matlab
- Il est utile pour comprendre l’infrastructure technique du système GPS
- Parmi les projets offrant des fonctionnalités similaires, on trouve RTKLib et goGPS
1 commentaires
Commentaires sur Hacker News
Android fournit déjà un accès à la phase de la porteuse, ce qui permet de mesurer avec une très grande précision la position relative entre des appareils situés dans la même zone
Il existe un projet open source pour les personnes qui veulent construire leur propre récepteur GPS
C’est un lien qui revient souvent dans les commentaires sur le GPS, mais pour de bonnes raisons
Il existe aussi un lien alternatif qui propose une explication plus interactive
J’ai déjà rencontré un chercheur qui collectait des données GPS sur des organismes aquatiques qui ne remontent que rarement et brièvement à la surface
L’étape suivante, c’est le PPP ou le RTK
Il existe une autre bonne implémentation open source
Il existe un schéma montrant l’impact de la géométrie utilisateur-source sur l’incertitude de la position de l’utilisateur
J’ai entendu dire que le GPS est l’une des rares applications du quotidien où il faut tenir compte des effets de la relativité
Exercice pour les platistes : expliquez comment le GPS de votre téléphone fonctionne si les satellites n’orbitent pas autour d’une Terre sphérique