1 points par GN⁺ 2024-07-16 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2024-07-16
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

    • En ajoutant un accéléromètre et un gyroscope, on peut mesurer la position en temps réel, et comme l’évolution des pseudo-distances GNSS est prévisible, la précision ne se dégrade pas fortement
    • Cela permet d’implémenter des fonctions intéressantes, comme faire atterrir automatiquement un avion miniature sur le plateau d’un camion
    • Si la consommation électrique n’est pas un facteur critique, on peut fabriquer à bas coût un récepteur GNSS assez performant
  • 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

    • En enregistrant les données brutes puis en les traitant a posteriori, on peut réduire fortement la consommation d’énergie et le temps d’exposition au signal satellite (le temps d’exposition est inférieur à une seconde)
  • L’étape suivante, c’est le PPP ou le RTK

    • Le GNSS est un domaine passionnant qui offre de nombreuses possibilités
  • 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’aimerais qu’il y ait dans l’application de cartographie du téléphone un réglage permettant de remplacer la forme circulaire de l’incertitude de position par une forme d’intersection d’arcs
  • 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é

    • Les données produites excluent déjà ces effets relativistes
  • 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