Test circuit Sparkfun ZED-F9P avec le réseau Orphéon

Nous recevons beaucoup de demandes concernant le principe de fonctionnement des corrections RTK mais aussi beaucoup de questionnements sur les possibilités d’intégrer une puce GPS pour développer ses propres applications.

Quoi de plus simple pour répondre à ces questions que de franchir les mêmes étapes d’intégration pour mieux appréhender la logique de fonctionnement.

Démocratisation de la technologie

Aujourd’hui l’intégration de puces GNSS de précision se démocratise en devenant abordable et permet d’imaginer aisément toutes sortes d’utilisations pratiques. Il devient alors possible d’intégrer un récepteur RTK de précision centimétrique dans un design compact, léger et peu gourmand en énergie  pour répondre aux impératifs de ces nouvelles applications et libérant ainsi l’imagination et la créativité.

null

Objectif de ce test

Notre but ici n’est pas de faire la promotion d’un produit par rapport à un autre, mais juste utiliser un module qui nous simplifiera l’accès à une position centimétrique compte tenu du peu de temps que nous pouvons consacrer à cet exercice. 

Notre objectif est assez minimaliste puisque nous souhaitons juste être en mesure de nous connecter au serveur du réseau Orphéon et obtenir les corrections pour afficher une position dont la précision à été augmentée grâce aux corrections du réseau. 

Avertissements

Ce test permet d’illustrer les étapes de l’intégration pour tenter d’en vulgariser dans les grandes lignes le contenu. Il n’est pas ici question de se préoccuper de performance ni de précision (peut être que nous le ferons plus tard). Il n’est pas non plus question de fournir de solution clé en main ni de logiciel ou de bout de programme.

Il existe plusieurs kits d’évaluation sur le marché:

De notre coté nous avons testé le circuit Sparkfun ZED-F9P car la mise en œuvre est assez simple. Commandé il y a plus d’un an nous ne saurons vous dire aujourd’hui dans quel délai ni à quel prix ce kit dévaluation est désormais disponible.
Pour faire les tout premiers tests très rapidement, Il est possible d’y connecter un PC via son port USB-C (qui alimentera la carte) et une antenne GPS, pour notre part nous avons opté pour une antenne AS10 Leica disponible sur nos étagères.

  • Concurrent reception of GPS, GLONASS, Galileo and BeiDou
  • Receives both L1C/A and L2C bands
  • Voltage: 5V or 3.3V but all logic is 3.3V
  • Current: 68mA – 130mA (varies with constellations and tracking state)
  • Time to First Fix: 25s (cold), 2s (hot)
  • Max Navigation Rate:
    • PVT (basic location over UBX binary protocol) – 25Hz
    • RTK – 20Hz
    • Raw – 25Hz
  • Horizontal Position Accuracy:
    • 2.5m without RTK
    • 0.010m with RTK
  • Max Altitude: 50km (31 miles)
  • Max Velocity: 500m/s (1118mph)
  • Weight: 6.8g
  • Dimensions: 43.5mm x 43.2mm (1.71in x 1.7in)
  • 2x Qwiic Connectors

Avec l’application U-center de Ublox, il est très facile alors de visualiser les satellites disponibles. Il faut tout de même un peu de temps et de patience pour se familiariser avec l’appli. Une fois entré les paramètres NTRIP Client Orphéon, le GPS converge et fixe assez vite pour obtenir un positionnement centimétrique.

Connexion à la carte Arduino

Ensuite, ce qui est intéressant c’est de rendre ce système un peut plus autonome pour pouvoir en disposer au cœur d’un projet plus complexe. Il suffit alors de connecter cette carte de développement au contrôleur Arduino Uno 33 IOT.

Le rôle de la carte contrôleur sera de servir de passerelle entre le GPS (ublox) et le serveur de corrections. Nous avons opté pour le port I2C pour pouvoir éventuellement disposer des autres ports de Com pour d’autres services (peut être pas le plus simple ni le plus judicieux … mais ça fonctionne)

Facilité d’intégration

Il est intéressant de voir que l’intégration d’un module GPS RTK est très largement facilité par les codes open source disponibles sur le net et très largement commentés. Les cartes de développement peuvent être pilotées via un port série ou bien I2C.

Il va falloir intégrer à ce GPS RTK Arduino un « client Ntrip » qui est un petit module soft (dispo en open source sur internet). Quel que soit votre matériel, les étapes de connexion à un serveur RTK ont été normalisées et définies pour permettre à chacun d’accéder à la précision centimétrique.

Fonctionnement général

null

En détails

Au moment de la connexion, le client Ntrip s’identifie sur le serveur et envoi sa position initiale (trame NMEA type GGA).

Il utilise les paramètres de connexion :

  • Adresse DNS du serveur
  • Port de com du serveur
  • Identifiant utilisateur
  • Mot de passe
  • Point de montage (permet de définir le protocole de com et les messages RTCM envoyés par le serveur)

il est intéressant de comprendre ce qui se passe à chacune de ces étapes.

Le serveur va ensuite envoyer les paramètres de correction toutes les secondes que le module devra « passer » au GPS pour ses calculs de positionnement.

Durant sa phase d’initialisation, le GPS va résoudre les ambiguïtés entières.  La durée de cette phase est variable et dépend de l’algorithme, de la distance au pivot, mais aussi du nombre d’observations (nombre de satellites, nombre de fréquences).

Le GPS va ensuite modifier l’indication de son état en fonction de la résolution des ambiguïtés :

RTK Flottant (2) : l’ambiguïté est autorisé à être un nombre à virgule décimale ou flottante. La précision des décimétrique.

RTK Fixe (4) : le nombre de longueurs d’onde est un nombre entier.  La précision est centimétrique.

Un faible nombre de satellites visibles, la mauvaise géométrie de la constellation de satellites et une liaison de réception des corrections avec le mobile peuvent empêcher une solution fixe.

Ensuite le module devra envoyer sa position au serveur (au minimum toutes les 20sec) pour permettre au serveur de faire évoluer la solution de correction et de s’assurer que la connexion est toujours « vivante »

null

Contenu de la trame NMEA GGA

Il existe un grand nombre de trame NMEA différentes (plus d’une trentaine). Ces trames sont définies par la norme NMEA 0183 qui est une spécification pour la communication entre équipements marins, dont les GPS.

Cette norme utilise des trames ou phrases pour transmettre les informations, chaque information est séparée par une virgule.

123456789101112131415
$GNGGA,073939.00,4841.47953,N00212.97078,E,1,24,0.62,165.7,M,46.2,M, ,*42

La trame commence par le signe »$ » puis le type d’épiquement est défini par les deux caractères qui suivent.

Chaque trame a sa propre syntaxe, mais selon les cas elles doivent se terminer, après le signe « * » par des bits de contrôle qui permettent de vérifier que la trame n’a pas été endommagée avant sa réception.

Le serveur NTRIP a besoin des informations contenu dans la trame GGA car cette trame fourni la position courante du récepteur GPS.

Les trames NMEA font toutes référence à l’ellipsoïde WGS84 comme base de système de coordonnées.

null

Conclusion :

L’essentiel de ce test était pour nous de passer à travers les premières étapes de la mise en application d’une puce GNSS pour la connecter au serveur Orphéon et d’obtenir nos premières positions corrigées.

Si nous voulons aller plus loin, nous devrons stabiliser notre version pour assurer la reconnexion du module au serveur Orphéon en cas de perte de lien internet.

null

Dans le cadre de tests, d’essais visant à éprouver ou valider une solution, nous pouvons mettre à disposition une offre d’essais gratuite pour un accès limité et temporaire aux corrections du réseau Orphéon.

Exposez-nous votre besoin et le cadre de vos essais pour que nous puissions étudier votre demande.

Afin de proposer des offres parfaitement adaptées aux besoins des utilisateurs, nous avons conçu plusieurs formules d’abonnements. Notre offre commerciale est très claire et très souple. Ainsi, en toute transparence, vous ne payez que ce dont vous avez réellement besoin.

Découvrir les offres