Bonjour à vous tous.
Toujours dans mon projet de logger/gps, je recherche à améliorer la précision des données GPS, surtout la vitesse.
Avec une puce uBlox Neo8 j'ai déjà une localisation/vitesse approchante de la réalité. Mais j ai toujours des écarts avec mon garmin Edge de 2 à 3 km/h et j ai besoin de réduire ces ecarts.
Avez vous des idées pour augmenter la précision ?
mon logger se déplacera dans un rayon de 10km env. du point de départ.
j ai pensé à mettre deux puces gps, l'une utilisant le systeme US et l'autre Galileo et faire une 'moyenne' des données
ou utiliser un logger fixe sur le point de départ pour soustraire les erreurs.(??)
ou utiliser un système avec 1 gps fixe qui communique avec le logger en déplacement.
si vous avez des idées je suis preneur..
merci par avance
de mémoire le uBlox Neo8 donne la vitesse de déplacement avec un nombre entier qui est en m/s --> seriez vous en limite de résolution car 1 m/s de difference (quand la puce arrondit) c'est tout de suite 3.6km/h d'écart (à moins qu'il ne donne ça avec des chiffres après la virgule) ?
si vous regardez la doc ils parlent de "Low-speed Course Over Ground Filter" ) activer quand on ne vas pas vite
avez vous exploré cette voie ? (ça doit se lire dans un tag particulier dans la phrase NMEA qui arrive sur le port série)
La méthode de base pour avoir une bonne précision en temps réel est le RTK (Real-time kinematic). Tu utilises effectivement deux récepteurs, si possible identiques (puce et antenne). Le premier en fixe est sur un point connu. Il reçoit les signaux des satellites. Il analyse les signaux pour en déduire les erreurs relatives à chaque satellite. Il envoie ça (protocole RTCM par exemple) au second récepteur. Ce dernier utilise les corrections sur chaque satellite observé en commun pour calculer une position plus précise. On appelle ça le mode différentiel.
La puce ublox Neo M8P doit pouvoir faire ça. Précision annoncée: 0,025 m + 1 ppm distance (base/mobile). Il ne faut pas que la distance entre les deux récepteurs soit trop grande. La fabricant indique que la distance ne doit pas dépasser 10 km. Sinon, il faut passer à la puce ZED-F9P qui fonctionne sur deux fréquences et les 4 constellations GNSS à la fois. Précision 0,01 m + 1 ppm de la distance. Portée dans les 35 km.
À noter que si c'est juste la vitesse, tu peux te contenter d'un seul récepteur qui fournit les données brutes de chaque satellite (comme le M8P). Ensuite, tu fais du différentiel dans le temps, entre deux mesures successives, avec les satellites vus en commun. En théorie, le calcul n'est pas très compliqué mais, en pratique, le diable se cache dans les détails (rotation de la terre, déplacement des satellites entre l'émission et la réception des signaux...). Je suis d'ailleurs surpris que le récepteur ne fasse pas ça lui-même. Comment calcules-tu la vitesse? Tu fais la différence entre deux positions successives ou tu la récupères directement dans les trames NMEA? D'ailleurs, as-tu configurer ta puce, avec u-blox u-center par exemple, pour capter un maximum de satellites? (on peut activer 3 constellations sur les 4 avec les M8). L'antenne, ça compte aussi. Un modèle amplifié installé sur un disque métallique (ou collé sur le toit de la voiture) donne de meilleurs résultats.
merci de vos conseils je vais creuser