|
Image
tirée de : http://www.webdo.tn/wp-content/uploads/2017/12/satellite.jpg |
||
|
Positionnement GPS : du mètre au
millimètre |
||
|
|
ENSTA Bretagne 2 rue F. Verny 29806 Brest Cedex 9, France |
|
Contenu
1.2
Un GNSS particulier : Le GPS
Historique et mode de
fonctionnement
1.3
Aspect technique et métrologique
2. Communication avec un récepteur
GPS : Le G-STAR IV
2.1 Acquisition et transformation des données
3. Qualité métrique de deux
récepteurs différents, G-STAR IV et Proflex 8000
3.1 Récupération de données exploitables
Conversion des données en
Lambert 93
3.2
Calculs de fidélité, justesse et exatitude
Géolocalisation, Satellite, Port série, Trilatération, Précision
Geolocation, Satellite, Serial Port, Trilateration, Accuracy
La géolocalisation est aujourd’hui un outil indispensable
dans de nombreux domaines. En effet, savoir se positionner est essentiel aussi
bien pour des personnes civiles que militaires. L’objectif de ce rapport est de
présenter un moyen de géolocalisation particulier : la géolocalisation par
GPS. Aujourd’hui, c’est cet outil qui est le plus utilisé pour se positionner
sur le globe. Après avoir présenté de manière générale les systèmes de
géolocalisation par satellites, dont découle le GPS, nous avons étudié ce
dernier de manière théorique en nous intéressant particulièrement aux normes de
fonctionnement NMEA qui régissent les interactions entre le GPS et les systèmes
informatiques. Suite à cela, nous avons présenté plusieurs aspects techniques
nécessaires à l’utilisation des récepteurs GPS dont nous nous sommes
servis : le G-STAR IV de la marque GlobalSat et le Proflex 500 de la marque Ashteck. Une fois
l’étude du port série réalisée, nous avons produit les codes permettant
d’extraire et de rendre exploitables les trames NMEA des GPS. Nous avons
ensuite exploité ces informations afin de visualiser les positions des
récepteurs et des satellites mais aussi d’évaluer les différentes erreurs de
mesures. L’objectif final est de comparer l’exactitude des mesures de
position des deux récepteurs GPS.
Today,
geolocation is an essential tool in numerous sectors. In fact, it’s very
important for civilians and militaries to be able to position themselves. This
report aims to outline a particular way of geolocation: the geolocation one by
GPS. Today, this is the most used to position yourself on the globe. Firstly,
we will present generally global navigation satellite system. After that, we
have studied a particular system: the GPS system. We have mainly insisted on
the NMEA frames, allowing communication between computers and GPS. Furthermore,
we’ll deal with technical aspects needed to make our GPS receptors (G-STAR IV, Proflex 500) work properly. Once the serial port study
done, we have coded programs to extract and exploit NMEA frames from the GPS.
Then, we analysed this information to visualize receptors and satellites
positions, and finally assess the measurement errors. The ultimate goal is to
compare the accuracy of positioning measurement of both GPS receptors.
Avant
d’acquérir un système de géolocalisation, il est intéressant de comparer les
performances de différents récepteurs, afin de choisir celui qui correspondrait
le mieux à nos attentes. Ce rapport a pour objectif d’étudier deux
produits : le G-STAR IV, le Proflex 500 et leurs
performances sur des sollicitations précises. Le fonctionnement de ces systèmes
est différent, tout comme leur qualité et donc leur prix, ce qui rend cette
comparaison d’autant plus intéressante.
Les
récepteurs doivent obéir à certaines
exigences, renvoyer des informations d’une exactitude sur la position imposée
par le cahier des charges, mais aussi sur les satellites communiquant avec ces
récepteurs. Après avoir réalisé une étude théorique de ces systèmes, nous nous
concentrerons sur les interfaces entre ces produits et les systèmes
informatiques, puis enfin sur l’exploitation des données acquises.
Nous
pourrons ainsi conclure sur l’exactitude relative de nos deux récepteurs,
sujets d’étude.
L'homme a toujours cherché à connaître avec précision le monde qui
l'entoure. Ainsi, savoir se positionner est devenu un besoin essentiel. On
appelle géolocalisation l'ensemble des « Techniques de détermination de la
situation géographique précise d'un lieu ou, à un instant donné, d'une personne,
d'un véhicule ou d'un objet ». Il existe aujourd'hui plusieurs procédés de
géolocalisation : par satellites, par Wi-Fi, par GSM… Une des techniques
les plus connues est sans aucun doute la localisation par GPS (pour Global
Positioning System) qui est une méthode particulière de géolocalisation par
satellites. Un système de positionnement par satellites est appelé GNSS (pour Global Navigation Satellite System).
Actuellement, de nombreux GNSS sont en cours de développement à l’échelle
mondiale. Nous sommes donc en mesure de nous demander pourquoi les GNSS, et
notamment le GPS, font aujourd’hui partis des systèmes les plus utilisés.
L’objectif de ce rapport bibliographique est
d’abord de présenter les origines des systèmes de géolocalisation par
satellites ainsi que leur principe de fonctionnement. Par la suite nous
étudierons un GNSS particulier, le GPS,
au travers d’un historique ainsi que de l’étude des normes régissant son
fonctionnement. Enfin, nous présenterons un outil nécessaire pour acquérir des
données provenant de récepteurs GPS avec Python : le port série.
1.1 Les GNSS
L’objectif d’un système de géolocalisation par satellites est de permettre la détermination de la position et de la vitesse d’un élément à la surface de la terre. En outre il doit également permettre d’attester de la fiabilité des informations fournies.
Les premiers GNSS sont assez récents dans la mesure où ils sont apparus avec le début de l’ère spatiale et les premiers satellites à la fin des années 1960. En outre ce type de système requiert également de pouvoir mesurer le temps de manière précise : l’homme n’a été capable de le faire qu’avec l’invention de la première horloge atomique à ammoniac mise au point au milieu du 20eme siècle.
Le tout premier système de géolocalisation par satellites est mis au point en 1964 par les États-Unis pour son armée et est appelé TRANSIT (la version civile sera elle disponible à partir de 1967). [3] Il fonctionnait en utilisant le principe de l’effet Doppler, mais possédait cependant plusieurs inconvénients. D’abord il était d’une précision assez faible : initialement doté d’une précision inférieure au kilomètre, la plupart des mesures permettaient de localiser un élément avec un écart par rapport à la position réelle allant de 200 à 500 mètres. La meilleure précision obtenue avec ce type de système de géolocalisation a été de 80cm. Le second défaut majeur de ce système est le nombre de satellites utilisés pour obtenir les mesures. Étant insuffisant pour couvrir totalement toute la surface du globe, les mesures de position pouvaient parfois mettre plus d’une journée à être effectuées. Ce système a toutefois été utilisé jusqu’à la fin des années 1980.
Suite à cela, les États-Unis ont cherché à concevoir un système plus performant : c’est à cette époque que le système GPS a vu le jour. Ce système, tout comme les GNSS apparues après le système TRANSIT, fonctionne sur un principe différent que nous allons maintenant présenter.
Aujourd’hui, les systèmes de géolocalisation par satellites fonctionnent sur le principe suivant : un récepteur mesure le temps de propagation d’une onde émise par un satellite. Un point de l’espace étant repéré par 3 coordonnées il faut donc, pour déterminer une position, effectuer cette mesure avec 3 satellites. Le principe de trilatération, qui repose sur des mesures de distances permet alors, en tenant compte de quelques ajustements, de déterminer la position et la vitesse du récepteur. Cependant pour déterminer les distances inconnues à partir des temps de propagation des ondes, le satellite et le récepteur doivent utiliser deux échelles de temps synchronisées. [1][2] Chaque GNSS utilise donc sa propre échelle de temps en lien avec celles classiquement utilisées. Trois échelles de temps sont aujourd’hui principalement utilisées : deux échelles de temps universelles (le temps UT1 et le temps UTC) et une échelle de temps atomique TAI. La différence réside dans la méthode de définition de la seconde.
Dans le cas du temps universel UT1, la seconde est définie par rapport à la rotation de la Terre. En effet si on appelle Ω la vitesse de rotation de la Terre, le produit de Ω par le temps universel UT1 donne l’angle de rotation de la Terre par rapport au référentiel géocentrique.
Le temps atomique international (TAI) est quant à lui défini de manière tout à fait différente : c’est en 1967 que la seconde est définie lors de la 13ème Conférence générale des poids et mesures. Une seconde correspond à la durée de 9 192 631 770 périodes de la radiation émise, correspondant à la transition entre les deux niveaux hyperfins de l'état fondamental de l'atome de césium 133.
Enfin le temps universel coordonné (UTC) est défini comme le TAI décalé d’un certain nombre (entier) de secondes afin de correspondre au maximum au temps universel UT1. En pratique, puisque l’on souhaite que la différence UTC-UT1 soit inférieure en valeur absolue à 0.9s, le temps universel coordonné est actuellement UTC=TAI-37s.
Au niveau pratique, les satellites des GNSS sont donc équipés d'horloges atomiques pour permettre une mesure extrêmement précise du temps. C'est essentiel dans la mesure où une erreur d'une microseconde sur la mesure du temps conduit à une erreur de 300m sur la distance séparant le récepteur du satellite. Concrètement, une erreur de 10 millisecondes provoque une erreur de plus de 3000km sur le calcul de la position. Ainsi les satellites d'un GNSS peuvent embarquer plusieurs horloges atomiques comme par exemple des masers à hydrogène, des horloges atomiques au césium et aussi parfois des horloges atomiques au rubidium.
Pour des raisons financières et d'encombrement, les récepteurs sont quant à eux équipés d'horloges à quartz moins précises. Cette différence de précision se voit particulièrement au niveau de la dérive journalière : chaque jour un décalage d'une dizaine de millisecondes peut être observé sur ces oscillateurs à quartz, en revanche, sur les horloges atomiques, ce décalage n'est que de quelques nanosecondes.
Pour fonctionner, chaque système de géolocalisation par satellites a donc besoin de sa propre échelle de temps mais aussi de son propre référentiel. C'est dans ce système de référence, propre à chaque GNSS, que sera exprimée la position du récepteur. Le calcul de la position s'effectue dans le récepteur, une fois les signaux émis par les différents satellites reçus.
L’obtention d’une mesure de positionnement par GNSS requiert donc 4 satellites [1] : 3 pour la détermination des inconnues de position et une pour la détermination de l’inconnue de temps qui permet de synchroniser les échelles de temps entre l’émetteur et le récepteur. En conséquence, pour obtenir une couverture complète de la Terre avec un GNSS il faut qu’à tout instant 4 satellites puissent interagir avec un récepteur. En pratique, en tenant compte des vitesses des satellites et des trajectoires de leurs orbites, il faut alors un peu plus d’une vingtaine de satellites pour qu’un GNSS soit opérationnel. Par exemple le système GPS était constitué à l’origine de 24 satellites mais en comporte aujourd’hui 31.
Si le GPS évoqué précédemment est aujourd’hui le système de géolocalisation par satellite le plus utilisé, d’autres GNSS sont actuellement en développement [2] [3]:
-L’Europe développe actuellement son propre GNSS appelé GALILEO. En fonction depuis la fin de l’année 2016, il fonctionne en coopération avec les systèmes GPS bien qu’initialement, les États-Unis souhaitant conserver leur monopole dans ce domaine, étaient réticents à ce que l’Europe élabore son propre système de géolocalisation. Ce système d’autant plus utile qu’il s’agit d’un système civil qui aura une meilleure intégrité que le système GPS. Il fournira la mesure de position mais sera aussi capable de mieux estimer l’erreur de la mesure qu’il fournit.
-La Russie a été la deuxième nation à développer son propre système de géolocalisation par satellites appelé GLONASS. Mis en marche en 1996, il a présenté des problèmes de fonctionnement dès 1997. Laissé à l’abandon avec la chute de l’URSS, il sera finalement remis en marche en 2010 notamment grâce au lancement de plusieurs satellites. Il comporte aujourd’hui une trentaine de satellites.
-D’autres pays ont également développé leurs GNSS comme par exemple la Chine et son système Beidou qu’elle souhaite actuellement améliorer en un système global appelé Compass. L’Inde et le Japon développent également leurs GNSS avec les systèmes IRNSS (Indian Regional Navigational Satellite System) et QZSS (Quasi-Zenith Satellite System). La particularité de ces deux systèmes est que ce sont des systèmes locaux : ainsi le système IRNSS doit permettre de se positionner sur l’Inde et ses alentours tandis que le système QZSS permettra de se repérer au Japon et dans les régions voisines.
Enfin pour améliorer la qualité des mesures ainsi que leur fiabilité, il est possible d’avoir recours à des systèmes augmentant les performances des GNSS. Ces systèmes appelés « système d’augmentation de performances par satellites » ou SBAS (pour Satellite Based Augmentation System) reposent sur l’utilisation de satellites géostationnaires, en orbite à des altitudes bien plus élevées que celles des satellites du système GPS, orbitant à une altitude de 20200km environ. Ces satellites permettent d’obtenir des éléments de correction afin de tenir compte des différentes perturbations que l’onde rencontre lors de sa propagation.
Ces perturbations peuvent être dues aux différences de composition des couches de l'atmosphère traversée par l'onde. Il existe plusieurs types de SBAS mais on peut s’intéresser plus particulièrement à deux de ces systèmes :
-Le premier système appelé WAAS (pour Wide Area Augmentation System) est un SBAS américain qui permet d’atteindre une précision allant de 1.5m à 3m sur l’Amérique du Nord. Il est composé de 3 satellites.
-Le second système appelé EGNOS (pour European Geostationary Navigation Overlay System) permet d’atteindre une précision de 2m sur la quasi-totalité de l’Ouest de l’Europe et devrait prochainement couvrir l’Afrique du Nord. Il fonctionne grâce à 5 satellites.
1.2 Un GNSS particulier : Le GPS
Si de nombreux GNSS sont aujourd’hui en
développement, le système le plus utilisé est sans aucun doute le système GPS
que nous allons maintenant étudier plus précisément.
Le GPS est un descendant direct du GNSS
TRANSIT présenté précédemment. Développé par l’armée américaine, le premier
satellite composant le système GPS est lancé en 1978. Il faudra cependant
attendre 1995 pour que le système soit pleinement opérationnel. Il est alors
composé de 24 satellites plus 4 satellites de réserve. Bien qu'il soit
initialement prévu pour un usage exclusivement militaire, un accident survenu
en 1983 va changer la donne. En effet, cette année-là, un avion de la Korean Airlines est abattu par un avion de chasse
soviétique après qu'il a pénétré dans l'espace aérien soviétique. Le président
américain de l'époque Ronald Reagan propose alors que le système GPS devienne
accessible aux civils. Cependant, il met seulement à disposition une version «
dégradée » moins précise du GPS afin
d'éviter son utilisation militaire par un éventuel ennemi.
Le système GPS est composé de plusieurs
blocs de satellites. [1] Trois de
ces cinq blocs sont principalement utilisés aujourd'hui. Les deux blocs les
plus anciens le BLOC I et le BLOC II, IIA comportent 39 satellites mais 2
seulement sont encore opérationnels aujourd'hui. Le BLOC IIR et le BLOC IIF comportent chacun 12 satellites qui
sont tous encore opérationnels. Le BLOC IIR-M comporte 8 satellites dont 7 sont
toujours opérationnels. Enfin un BLOC III est actuellement en développement.
Le système GPS possède deux modes de
fonctionnements : le mode SPS (pour Standard Positioning
Service) et le mode PSP (pour Precise Service Positioning) :
-
Mode de fonctionnement SPS : c'est le mode de fonctionnement adapté à un usage
civil du GPS. Ce service basique est gratuit et peut être utilisé par toute
personne possédant un récepteur GPS. La précision de ce mode de fonctionnement
est d'environ 100m. Il a été soumis pendant un moment au système SA des
Américains pour dégrader la qualité de la mesure de la position. En outre il
existe des restrictions d’usage liées à la vitesse du récepteur afin d’éviter
qu’un récepteur civil puisse être utilisé pour guider par exemple un missile
balistique. Cette limite de vitesse est
aujourd’hui fixée à 600m/s. Auparavant
il existait également des limites liées à l’altitude du récepteur (environ
18000m) mais ces dernières ont été supprimées.
-
Mode de fonctionnement PSP : c'est le mode de fonctionnement à usage militaire
réservé aux américains et leurs alliés, il requiert un identifiant et il est
doté d’une bien meilleure précision (environ 10 m).
La transmission des signaux [1] par les satellites se fait
usuellement au moyen de deux porteuses L1 et L2 dont les fréquences légèrement
différentes (1575,42 MHz pour L1 1277,60MHz pour L2) confèrent à ces deux ondes
un comportement légèrement différent lors de leurs propagations. C’est
particulièrement utile dans le cas des récepteurs bi-bandes qui peuvent, en
analysant les erreurs résultant des deux
porteuses, offrir une mesure d’une plus grande précision. Cependant pour une
grande majorité de récepteur, seule la porteuse L1 est utilisée.
Afin de pouvoir analyser ou bien traiter en temps réels des données, le GPS doit être capable d’interagir avec divers systèmes informatiques. Des normes de fonctionnement ont donc été créées afin de régir ce fonctionnement : ce sont les normes NMEA. Le protocole NMEA (National Marine Electronics Association), permet le dialogue en réseau de différents périphériques informatiques. Nous devons distinguer deux normes NMEA : la norme NMEA 0183 et la norme NMEA 2000. La première, plus ancienne, est basée sur une communication série assez lente mais est directement lisible, contrairement à la norme NMEA 2000.
Pour fonctionner, le protocole NMEA 0183 a besoin d’un autre processus de communication : le RS-232 qui nécessite l’usage d’un port série. Il est relativement simple d’usage car il repose sur l’utilisation de caractères ASCII codés sur 8 bits. Une trame NMEA, phrase renvoyée par le récepteur, rendant compte des informations acquises, est basée sur le fonctionnement suivant :
- on commence la trame par le symbole $.
- on indique le type d’émetteur grâce à son indicatif composé de deux lettres : par exemple GP pour GPS.
- on indique le type de phrase par les trois caractères suivants ceux concernant l’émetteur.
- on donne les valeurs des différentes propriétés, en fonction du type d’émetteur et du type de phrase utilisée, toutes séparées par une virgule.
- on termine la phrase par *, accompagné d’un checksum basé sur un algorithme simple.
Le protocole NMEA 2000 renvoie des données binaires compactes et non lisibles contrairement au NMEA 0183. Notre projet requiert l’utilisation du NMEA 0183 donc ici nous ne nous intéresserons pas au NMEA 2000.
1.3 Aspect technique et métrologique
Du point de vue technique, la
communication entre le GPS et un ordinateur se fait à travers une interface
appelée « port série ». Tout d’abord, le port série est très largement utilisé, et ce depuis longtemps, car il permet une
communication rapide et efficace avec différents périphériques tels que la
souris. De plus, sa connectique est très simple et ne nécessite que quelques
fils. On trouve deux ports séries différents, qui se distinguent l’un de
l’autre uniquement par leur nombre de broches : 9 pour le DB9 et 25 pour
le DB25 (plus ancien).
Port série DB9
Port série DB25
Le DB25 contient une grande majorité de
connecteurs non utilisés, contrairement au DB9. En effet, on retrouve toutes
les fonctions assurées par le DB9 dans le DB25, ce dernier ne contenant que
quelques propriétés additionnelles non principales. On retrouve notamment une
mise à la terre, un port de transmission, un de réception, et des connecteurs
servant à indiquer l’état du périphérique et de l’ordinateur (prêt à la
communication/envoi de données ou non). [6]
Il existe plusieurs standards pour le
port série : RS 422, RS485 et enfin celui que nous allons utiliser le RS 232.
Le port transfert un bit à la fois, et il le fait par l’intermédiaire de
l’envoi de signaux électriques : un 0 correspond à une tension entre 3 et 25V
et un 1 correspond à une tension entre -3 et -25V.
Pour fonctionner, il a néanmoins besoin
de quelques paramètres de configuration :
-
Le plus important, le baud rate, qui définit le nombre de bits transmit par
seconde
-
La longueur des données, de 5 à 8 bits (8 bits pour le G-STAR)
-
La parité, qui permet de détecter les erreurs de transmission, soit none, even ou odd (None pour le G-STAR)
-
Le nombre de bits d’arrêts pour la synchronisation (1 pour G-STAR)
L’analyse des données
renvoyées par le GPS nécessite néanmoins la conversion de celles-ci en
Lambert 93 : en effet, la conversion permet d’avoir des coordonnées
géographiques planes. Tout d’abord, le CNIG (Conseil National de l'Information
Géographique), a conseillé l’IGN (institut national de l’information géographique
et forestière) de définir un nouveau système géodésique : le RGF93. Les
informations de ce système se présentent sous forme de coordonnées
tridimensionnelles : longitude, latitude et hauteur ellipsoïdale.
Néanmoins, nous avons
actuellement besoin de coordonnées planes issues d’une projection
géographiques, à cause de l’exploitation GPS que nous avons. Une nouvelle
projection a donc été réalisée par l’IGN, en utilisant l’ellipsoïde IAG-GRS80.
La projection est une conique conforme, mais elle conserve néanmoins
l’appellation Lambert, comme toutes celles réalisées avant elle (Lambert I, II,
III etc…). Par ailleurs, le modèle Lambert-93 est souvent opposé au modèle CC
(conique conforme) 9 zones. Ce modèle, comme son nom l’indique, comporte 9
zones de projection réparties sur la France. Néanmoins, on remarque certaines
différences entre le Lambert 93 et les précédents modèles de Lambert :
- Le méridien à l’origine de la projection est le méridien
de Greenwich alors qu’on avait l’habitude d’utiliser le méridien de Paris pour
les précédents modèles.
- Le choix d’une ordonnée à l’origine d’une valeur 6600000,
dans le but d’éviter la confusion avec les autres modèles de Lambert déjà
existant. [5]
Néanmoins, les projections
coniques conformes ont un avantage par rapport au Lambert 93 :
l’altération linéaire. Avoir une altération linéaire plus faible ne veut pas
dire que les projections CC ont une meilleure précision centimétrique de
localisation d’objet, car les deux systèmes ont la même précision. En revanche,
en termes de déformations des longueurs, les deux systèmes ne sont pas
égaux : alors que les projections CC ont une déformation des longueurs
inférieure à 10 centimètres par kilomètre, la déformation de la projection
Lambert 93 peut aller jusqu’à une déformation de 3 mètres par kilomètre à
Dunkerque. En effet, la déformation linéaire du Lambert 93 dépend de l’endroit
concerné : elle est plus importante à l’extrême nord et à l’extrême sud
que dans le centre de la France. On joint à la page précédente l’altération
linéaire du Lambert 93 et des 9 zones CC en fonction de la position
géographique en France.

Altération
linéaire en fonction de la position en France
Enfin, la conversion des
coordonnées du modèle Lambert 93 vers des coordonnées géographiques classiques
se fait à l’aide de l’algorithme suivant :
|
Entrées |
Sorties |
|
-Constantes de la projection : n, C, Xs, Ys (valant respectivement pour le Lambert 93 0.725,
11754255.426, 700000 et 12655612.05). -λ0 : longitude du méridien central -e : excentricité de l’ellipsoïde -X, Y : coordonnées en Lambert |
-λ, φ : latitude et longitude |
|
Les sorties, latitudes et longitudes, sont donc calculées à partir des
entrées de la façon suivante : | R | = |
|
|
γ = |
λ = λ0+ γn |
|
£ = − |
φ = £-1(£, e) |
Le G-Star IV utilise un mode de positionnement standard, dont le fonctionnement est décrit dans la partie Bibliographie, et renvoie les données sous la forme de trames NMEA. Il est globalement composé d’une « antenne » recevant des informations à une fréquence particulière, d’un circuit qui traite les données reçues des différents satellites à cette fréquence précise, et enfin d’un microprocesseur qui exploite ces données. La présente partie va décrire la manière dont nous avons rendues exploitables les données extraites de ces trames pour représenter graphiquement notre position ou encore les trajectoires des satellites, aussi appelés constellations.
2.1 Acquisition et transformation des données
Pour commencer, il est nécessaire de se fixer un temps d’acquisition des données, qui n’est pas si facile à définir. En effet, le récepteur GPS que nous utilisons ici ne démarre pas à chaud, c’est-à-dire qu’il nécessite un temps d’initialisation pour définir sa position avant d’émettre des informations, particulièrement pendant la première utilisation de la journée, car les satellites se sont considérablement déplacés depuis la dernière acquisition. Il est intéressant de faire varier ce temps d’acquisition pour obtenir un nombre de trames représentatif. Ce temps sera noté tacq dans le code, ici l’acquisition est de 5 secondes et le temps d’arrêt se nomme t1.

Nous avons décidé de créer un fichier texte dans lequel nous écrirons toutes les trames traduites de l’ASCII dans un premier temps, une trame correspondant à une ligne.
Ensuite, la lecture des données GPS sans aucun traitement ni module utilisé renvoie des séquences alternant lettres et caractères du type \n. Autant dire qu’on ne peut rien tirer directement de l’analyse de ces données, il faut donc les décoder. Pour cela, on utilise tout d’abord le module Serial. Ce module est indispensable car il permet la communication avec le port série, le « serial port », port qui est utilisé pour l’utilisation du GPS. Le module Serial requiert néanmoins des paramètres caractéristiques du GPS, tels que la vitesse d’écriture en bits/s, le temps d’arrêt et le temps d’écriture.
Nous utilisons ici le protocole NMEA 0183. Les appareils fonctionnant avec ce protocole fonctionnent comme receveur mais aussi comme émetteur. Ils nécessitent alors l’utilisation de l’interface serial avec les paramètres suivants :
- Un baud rate de 4800 (vitesse d’écriture en bit/s) caractéristique du GPS G-STAR IV utilisé.
- Un seul bit d’arrêt
Le paramètre device sert à faire apparaître les différentes lignes renvoyées par le GPS, il parcourt les données en temps réel.
Une fois les caractéristiques adéquates entrées, le GPS renvoie cette fois des lignes se rapprochant des trames NMEA mais pas encore tout à fait exploitables. En effet, on obtient des trames contenant les caractères \r\n et d’autres qu’on ne trouve normalement pas dans les trames NMEA. On joint ci-dessous une capture d’écran de ce que renvoie le GPS :

Les données n’étant pas utilisables tels quelles, elles nécessitent une fois de plus un décodage. Pour cela, on utilise l’instruction surlignée ci-dessous, pour décoder l’ASCII, et on obtient enfin des trames NMEA exploitables. On joint de plus la sortie finale du GPS.
Code décodage ASCII

Exemples de trames NMEA exploitables
On peut donc, une fois le temps d’acquisition terminé, fermer notre fichier texte rempli de trames utilisables.
Nous commençons donc
naturellement par ouvrir notre fichier d’informations en mode lecture. Nous
avons choisi de commencer par l’exploitation des données concernant la position
du récepteur GPS, dans le but de la tracer sur un plan. Pour cela, nous
lisons le fichier ligne par ligne avec Python. Chaque ligne commence par un
code composé du signe $ suivi de cinq lettres. Ce code désigne le type de ligne
dont il s'agit. En ce qui concerne le fonctionnement du GPS G-STAR IV utilisé
pour acquérir les données de ce projet, les trames NMEA font appel aux lignes
désignées par les codes $GPGGA, $GPGSA, $GPGSV, $GPRMC et $GPVTG. Seules les
trames concernant la localisation du récepteur nous intéressent pour parvenir à
tracer un positionnement sur une carte du lieu (ici, le campus de l'ENSTA
Bretagne). Ces informations sont contenues dans les trames NMEA désignées par
les codes $GPGGA et $GPRMC. Dans les deux cas, les trames contiennent les
informations de date d'acquisition, de latitude (en degrés, minutes, secondes),
de longitude (en degrés, minutes, secondes), et d'altitude (en m).
Ensuite, nous nous sommes
intéressés aux données concernant les satellites, afin de tracer leurs
trajectoires par rapport à la Terre. Pour cela, on crée une liste
infos_satellites contenant trente-deux éléments correspondants aux trente-deux
satellites potentiels pouvant communiquer avec le G-STAR IV grâce au système de
positionnement GPS. Pour chacun nous relevons son élévation et son azimut, que
nous avons défini selon le modèle suivant :
- L’azimut est repéré par l’angle rapport au vrai Nord
- L’élévation par l’angle par rapport au sol

Il s’agit ensuite de repérer quelles informations issues des trames NMEA décrivent ces deux angles. Cela correspond aux éléments en cinquième et sixième position des trames $GPGSV, s’exprimant en degrés, d’après la documentation fournie. Nous pouvons donc mettre à jour notre liste comportant ces renseignements sur les satellites étudiés.

Code pour récupérer les informations sur l’azimut et l’élévation du satellite
Commençons par tracer la position du récepteur sur un lieu connu : L’ENSTA Bretagne. Nous disposons d'un fichier contenant des données obtenues par un récepteur GPS. Notre but est d'exploiter les données de ce fichier afin de pouvoir en extraire des informations sur la position du récepteur lors de l'acquisition, dans le but de la tracer sur un plan.
Pour cela, nous lisons le fichier ligne
par ligne avec Python. Chaque ligne commence par un code composé du signe $
suivi de cinq lettres. Ce code désigne le type de ligne dont il s'agit. En
effet, il existe différents types d'information dans la trame NMEA des données
GPS. En ce qui concerne le fonctionnement du GPS G-StarIV
utilisé pour acquérir les données de ce projet, les trames NMEA font appel aux
lignes désignées par les codes $GPGGA, $GPGSA, $GPGSV, $GPRMC et $GPVTG. Seules
les trames concernant la position du récepteur nous intéressent pour parvenir à
tracer un positionnement sur une carte du lieu (ici, le campus de l'ENSTA
Bretagne). Ces informations sont contenues dans les trames NMEA désignées par
les codes $GPGGA et $GPRMC. Dans les deux cas, les trames
contiennent les informations de date d'acquisition, de latitude (en degrés,
minutes, secondes), de longitude (en degrés, minutes, secondes), et d'altitude
(en m). Pour
tracer cela, un jeu de trames NMEA nous a été fourni sur Moodle, il correspond
à un trajet au sein de l’ENSTA Bretagne en contournant la place d’armes, ce que
l’on peut confirmer par le tracé ci-dessous :

Après avoir confirmé notre méthode d’extraction des données sur le jeu de trames donné, on peut passer à notre propre acquisition et observer si le G-STAR IV repère notre position correctement. Pour cela on se place en F015, une salle de classe de l’ENSTA Bretagne. On obtient le résultat suivant :

Le résultat est cohérent le point bleu est bien centré sur la F015, le tracé de la position est donc correcte, nous étudierons dans la partie suivante l’exactitude de ces mesures.
Nous passons maintenant au tracé de la trajectoire des satellites. On trace donc un cercle orienté selon les quatre points cardinaux et de rayon que l’on prendra arbitrairement égal à 2 ici, pour mieux distinguer les trajectoires. On va donc projeter la position des satellites dans le plan, c’est-à-dire traduire les coordonnées azimut-élévation en coordonnés cartésiennes. Pour cela on se sert des formules de projection suivantes :
Avec : ![]()
Et :
![]()
On doit de plus
effectuer une rotation de 90 degrés à la figure dans le sens trigonométrique
car le Nord est pris par défaut comme référence du cercle trigonométrique, soit
en Est. Après ces modifications réalisées, nous pouvons donc tracer la
constellation.

Le résultat après une acquisition de 5 minutes
est montré ci-après :

On peut constater que
la durée d’acquisition n’est pas suffisante pour tracer de véritables ellipses,
et le résultat est donc moins satisfaisant.
Avec un temps plus long pour la mesure,
3600 secondes ici, soit 1 heure,
on obtient le résultat ci contre.

3.1 Récupération de données exploitables
Afin de comparer la fidélité, la
justesse et donc l’exactitude de nos deux capteurs, nous devons nécessairement
lancer des mesures sur un point de référence avec les deux appareils. Le point
de référence 8000, situé sur la piste d’athlétisme de l’ENSTA Bretagne, va nous
permettre d’effectuer ces acquisitions. Nous allons dans la suite utiliser les
jeux de mesure réalisés avec un enseignant et présent sur Moodle. De manière
analogue à la partie précédente, nous allons isoler les informations de
latitude et de longitude exprimées en degrés décimaux dans la liste nommée
coordonnées.


En revanche, l’exactitude est plus intéressante
si elle est exprimée en mètres, nous allons donc faire appel à un système de
coordonnées particulier : le Lambert 93.
Pour convertir les degrés décimaux en
mètres, nous allons utiliser les formules de passage suivantes, avec un certain
nombre de données :
![]()
![]()
![]()
![]()
![]()
![]()
Puis
les formules :
![]()
On
peut ainsi implémenter la conversion des valeurs en Lambert 93, et comparer les
résultats à la fiche de référence du point 8000.
3.2 Calculs de fidélité, justesse et exactitude
Pour
définir nos différents indices, nous allons nous baser sur la distance, en m,
entre nos points de mesures et nos points de références. Pour
cela, nous allons stocker ces informations dans la liste distance.

Nos trois indicateurs se définissent ainsi :
- La justesse correspond à la capacité des mesures à s’approcher de la valeur réelle, ici définie par nos points de référence. On la calcule par l’écart entre la moyenne des valeurs et la valeur réelle.
On construit donc une liste qui va sommer toutes les distances puis diviser par le nombre d’éléments pour obtenir l’erreur de justesse.
- La fidélité, ou reproductibilité, est la capacité à reproduire une même mesure. Elle se caractérise par la dispersion des valeurs par rapport à la moyenne, et l’écart-type est un bon indicateur de cette fidélité. On construit donc une liste sommecarres, qui comporte la somme des carrés des écarts à la moyenne, puis l’on prend la racine carrée de cette somme, préalablement divisée par le nombre d’éléments.
- L’exactitude représente la qualité générale de la précision du récepteur GPS, elle est la composition des erreurs de justesse et de fidélité, on peut donc la calculer comme telle.

Nous allons donc effectuer ces
mêmes calculs pour nos deux récepteurs GPS, puis les comparer à leur exactitude
théorique, naturellement différente puisque le G-STAR IV est un mode standard
et le Proflex 500 un mode RTK.
En effet, il existe différents
modes de positionnement à l’aide d’un GNSS, modes de positionnements définis
par un certain nombre de paramètres : utilisation de mesures de phases ou
de code, positionnement absolu ou relatif, ou encore étude en temps réel ou en
temps différé.
-En premier lieu, la mesure de
code repose comme son nom l’indique, sur un code envoyé par l’émetteur (le
satellite) au récepteur. Chaque satellite a son propre code, et les récepteurs
connaissent ces codes : ils peuvent les décoder. Les récepteurs produisent
alors une réplique du code reçu, mais celui-ci est entaché d’une erreur du au
décalage temporel entre l’émission et la réception.
Ce décalage temporel est alors
déterminé en fonction de la corrélation maximale des deux signaux pour
différents décalages temporels. A l’aide d’algorithmes propres au récepteur, ce
dernier est capable de calculer une pseudo-distance entre lui et le satellite.
4 pseudo-distances sont alors nécessaires pour obtenir la position du
récepteur. La précision atteinte pour ces mesures est de l’ordre de quelques
mètres.
-Intéressons nous maintenant
aux mesures de phases. Cette méthode consiste à étudier le déphasage entre le
signal reçu et le signal émis par le satellite. A l’aide d’algorithmes de
traitements, le récepteur peut donc avoir accès à la distance avec le
satellite, mais également à une mesure de phase. La précision atteinte avec les
mesures de phase atteint une valeur de l’ordre du millimètre, la plaçant loin
devant celle des mesures de codes.
- Le positionnement absolu nécessite un
unique récepteur et plusieurs satellites. La position du récepteur est alors
déterminé par multilatération à partir des différents
satellites.
- Le positionnement relatif nécessite
l’utilisation de plusieurs récepteurs (deux stations suffisent). Le principe
est de comparer les observations simultanées de deux récepteurs, donnant ainsi
la position d’un récepteur par rapport à l’autre, dont la position est connue.
Cette méthode de positionnement permet alors d’éviter des erreurs
systématiques, et donc d’obtenir une meilleure précision que celle du
positionnement absolu. Néanmoins, elle nécessite l’utilisation d’une station
réceptrice de référence.
-En temps réel, les corrections
effectuées sont transmises directement au récepteur.
-En temps différé, les observations
effectuées par les stations de coordonnées inconnues sont comparées avec celles
de stations aux coordonnées connues. Elles sont analysées post-acquisition pour
réduire les erreurs d’estimation.
Maintenant les différentes propriétés
de positionnement présentées, nous allons comparer le mode de fonctionnement du
RTK et du mode standard. Le positionnement standard correspond lui à un
positionnement absolu à partir de mesures de codes, en temps réel et en temps
différé. La réduction des sources d’erreurs ne se fait qu’a l’aide du grand
nombre de mesures relevées. Sa précision est alors la plus faible compte tenu
de ce qu’on a vu précédemment : de l’ordre de 5 à 15 mètres. A l’inverse,
le positionnement RTK est un positionnement absolu et relatif à partir de
mesures de phases, en temps réel. Sa précision dépend de la distance entre le
récepteur et le satellite car nous sommes sur des mesures de phases, mais sa
précision est largement meilleure que celle du positionnement standard car de
l’ordre de 5 à 50cm (absolu) et de 5 à 15cm (relatif).
La sortie du code pour évaluer la
qualité métrique est la suivante, les résultats étant exprimés en mètres :

On constate donc que l’exactitude du
G-STAR IV est de l’ordre de quelques mètres là où celle du Proflex
500 est de l’ordre de quelques centimètres.

L’exactitude d’un récepteur GPS
Standard étant de 5 à 15 mètres, on peut en conclure que le G-STAR IV est de
bonne qualité pour son mode de fonctionnement. De même, celle du Proflex 500 étant de 5 à 15 cm, il est également de bonne
qualité pour son mode de fonctionnement.
Ce projet a été pour nous l’opportunité
d’appréhender de manière plus poussée le fonctionnement des GPS. Grâce à
l’étude des deux récepteurs G-STAR IV et Proflex 500,
nous avons pu lier la théorie, apportée par les cours présents sur Moodle, à
l’expérimentation par l’acquisition de données GPS. Suite à l’étude
bibliographique des différents systèmes de géolocalisation, nous avons pu nous
intéresser à la position des récepteurs et la trajectoire des satellites.
Ainsi, nous avons pu atteindre nos
objectifs principaux : avoir une vue globale des systèmes de géolocalisation
présents dans le monde, et comparer la qualité de deux produits répandus sur le
marché aujourd’hui.
Ce projet nous a permis d’avoir un
avant-goût de ce qu’est le métier d’ingénieur. En l’ayant effectué dans sa
globalité, chaque membre du groupe a pu développer ses connaissances sur le
plan individuel comme collectif. Nous prenons tous conscience aujourd’hui de
l’importance de l’organisation, la communication et le travail d’équipe dans la
réalisation de ce type de projet.
[1] Bosser,
P. ; « GNSS : Systèmes globaux de positionnement par satellites »,
Cours de l'Ecole Nationale Supérieure des Techniques Avancées de Bretagne,
2017.
[2] Jean-Marc Piéplu. «GPS et Galileo ». Eyrolles (2006)
[3] « Global Positioning
System »
https://fr.wikipedia.org/wiki/Global_Positioning_System
[4] Service de géodésie et nivellement. « Transformations géodésiques en France Métropolitaine»
[5] « Géoréférencement
et RGF93 »
https://www.ideobfc.fr/upload/gedit/1/Documents/FicheT3Les_projections_coniques_conformes_9_zones.pdf CERTU.
[6] « Communication
par transmission série RS232 »
Programme acquisition de données :





Programme qualité métrique :




