Aller au contenu


Photo
- - - - -

Gps RTK sur smartphone

GPS RTK

20 réponses à ce sujet

#1 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 10 juillet 2022 - 09:37

Bonjour,

 

J'ai un mobile à 2 roues motrices que je souhaiterais utiliser à l'extérieur pour différentes tâches.

 

Un Arduino Mega se charge de contrôler les 2 moteurs et de lire les différents capteurs dont un Lidar.

Un smartphone Android récupère les données de l'Arduino et envoie les commandes de guidage en conséquence.

 

J'aimerais utiliser le gps du smartphone pour envoyer le robot sur différents points comme le font les drones.

Pour améliorer la précision du gps, la solution du RTK semble adaptée.

 

Donc je cherche une solution pour acquérir une précision de +/- 20 cm sur un smartphone.

Idéalement le récepteur communiquerait en Bluetooth avec le smartphone.

Il y a un paquet d'infos en ligne traitant ce sujet et donc beaucoup de pistes possibles et de budgets aussi.

 

Notamment :

https://docs.centipe...ocs/make_rover/

https://docs.centipe...rtklib_android/

http://m.fr.geoequips.com/topographic-surveying-instruments/gnss-rtk-system/bluetooth-gnss-receiver-best-rtk-gps.html

 

 

Avez-vous déjà expérimenté ce genre de solution ?

 

Merci

 

 

 

 



#2 Sandro

Sandro

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 312 messages
  • Gender:Male

Posté 10 juillet 2022 - 10:12

Bonjour,

Faire du GNSS RTK directement depuis un smartphone n'est probablement pas possible (je me trompe peut-être) : pour faire du GNSS RTK, il faut des récepteurs de bonne qualité, avec de nombreux cannaux (idéalement utilisant plusieurs réseaux de satélites (GPS, Glonnas, Galiléo, ...). Peut-être qu'il existe des smartphons qui en sont capables, mais en tout cas pas le smartphone de base.

 

Utiliser un système externe qui communique en bluetooth avec le smartphone, à priori je ne vois pas de problème, même si j'ai jamais testé (le système que j'avais testé était la solution d'Ardusimple, qui communique en série ou par USB).

 

La première contrainte est la réception des données de correction : soit il faut ta propre station de référence (qui doit avoir une vue parfaitement dégagée du ciel, car tout satellite non visible par la station de référence devient inutile pour le GPS du robot), soit il faut souscrire à un service de correction (via données mobiles ou ondes radio), ce qui n'est pas donné (mais potentiellement inclus avec l'achat du matériel correspondant, dans le cas d'ardusimple, il me semble que la première année était incluse puis 500€/an).

 

La deuxième contrainte est qu'il faut voir beaucoup de satellites et avec un bon signal sur bruit (en gros, s'il y a du multi-chemin, le signal est souvent de trop mauvaise qualité pour servir). Il faut aussi de préférence que les satellites soient bien dispersés dans le ciel. De mémoire, avec le système Ardusimple, il fallait en général 7 satellites avec un rapport signal/bruit supérieur à 40  pour entrer en mode "fixed" (ie position connue à quelque centimètres près).

Si tu as trop d'obstacles, alors selon la position des satellites dans le ciel, tu n'arrives pas toujours à être en mode fixed, dans quel cas tu est souvent en mode "float" : là, en tout cas avec Ardusimple, la précision reste parfois bonne (<20cm), et parfois dévie de plusieurs mètres : le problème était que l'estimation de précision ne reflétait nullement le précision réelle (donc j'avais régulièrement 3m d'erreur avec le système qui m'annonçait une précision de 30cm).

Si tu as encore plus d'obstacles, alors tu retombes sur une position très approximative (erreur pouvant dépasser les 10m), en gros pas mieux qu'avec un smartphone.

 

A noter que dans une zone "limite" entre fixed et float (ie un endroit où souvent tu est en fixed, mais parfois en float), alors d'expérience si tu restes immobile quand tu passes en float pour attendre un fixed, alors tu attends en général entre 5 et 15 minutes (le temps que les satellites aient bougés dans le ciel). Si tu as une bonne odométrie, alors tu peux essayer de continuer un peu à l'odométrie seule dans l'espoir de retrouver un endroit plus favorable avant d'avoir trop dérivé.

 

Pour les tests que j'avais fait :

- dans un parc très récent (arbres bien espacés, ne faisant généralement pas plus de 2-3m de haut), j'avais du fixed presque en permanance

- dans une zone résidentielle aérée, avec des allées de 12m entre deux rangées d'immeubles de 4-5 étages assez espacés (de chaque coté du chemin, je dirais qu'environ 40% était des immeubles, le reste du gazon), et quelques petits obstacles au milieu de l'allée (abris à vélo, arbres <3m, ...) : en se déplaçant en permanence, je dirais 90% de fixed. Par contre si on s'arrête pour attendre un fixed lorsqu'en passe en float, alors on se déplace moins de 50% du temps.

 

Au final, on a abandonné le GNSS-RTK car trop de blocage du robot dans la zone résidentielle aérée, et ça aurait été encore pire chez le client suivant où il y avait beaucoup plus d'arbres.

 

Donc globalement, je dirais que le GNSS-RTK est une bonne solution :

- si tu es en plein champ (par exemple sur un tracteur en plaine)

- si tu as un système qui se débrouille bien sans et que tu veux juste recoller la position de temps à autre (ie le robot sait reconnaître tous les obstacles et autres zones où il n'est pas sensé aller, et s'est pas grave s'il dévie de sa trajectoire)

 

En revanche, ne compte pas sur le GNSS-RTK seul pour suivre une trajectoire "précise" si le ciel est partiellement obstrué par des obstacles (d'après mes tests, un chemin de 4m de large reste trop étroit dans la "zone résidentielle aérée")

 

 

 

Si tu veux un avis plus spécifique, il  faudra que tu sois plus précis sur ton besoin de précision (en particulier sur la continuité de l'information et sur les conséquences d'une erreur (perte de temps ou dégâts)) et sur le terrain : présence d'obstacles, de quelle taille et nature, à quelle distance, ...


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#3 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 932 messages
  • Gender:Male

Posté 10 juillet 2022 - 10:25

Très intéressant, merci pour les liens.

Je n'ai aucune connaissance pour t'aider dans ce domaine, et j'attends la suite avec impatience.



#4 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 10 juillet 2022 - 04:35

Merci pour ce retour d'expérience très complet.

 

J'utilise plusieurs drones en mode planification de la navigation et je suis à chaque fois impressionné par la précision avec laquelle ils se positionnent sur les points programmés.

Sans avoir de correction RTK.

Dans un environnement très encombré et à très basse altitude.

 

En Belgique nous avons la possibilité de nous connecter gratuitement au réseau Walcors.

J'aimerais pouvoir faire quelques tests afin de me rendre compte de l'efficacité du système.

Reste à trouver un récepteur GNSS bluetooth...



#5 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 05 mai 2023 - 02:56

Bonjour,

J'avance bien sur ce projet de robot.

Je souhaiterais faire l'acquisition d'un GPS RTK.

Quelqu'un a-t-il déjà testé récemment un dispositif Ardusimple ?

 

https://www.ardusimple.com/store/

 

Merci



#6 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 932 messages
  • Gender:Male

Posté 05 mai 2023 - 06:34

Encore désolé de ne pas pouvoir t'aider.

Je suis content que ton projet avance. 



#7 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 07 mai 2023 - 08:41

Bonjour

 

Merci Oracid, mais s'il te plaît ne sois pas désolé :)

J'hésite entre la solution GPS qui communique avec un Arduino ou le GPS qui communique avec le smartphone.

Je pense que je vais me diriger vers la seconde afin de soulager l'Arduino qui fait déjà beaucoup de choses (LIDAR, camera Jevois, encodeurs, communication bidirectionnelle avec le téléphone en Bluetooth)

 

En tout cas c'est génial de pouvoir obtenir une précision centimétrique.

Pouvoir planifier un trajet sur Google Earth comme on le fait avec les drones...

Cela ouvre un paquet de perspectives



#8 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 932 messages
  • Gender:Male

Posté 07 mai 2023 - 10:08

Il y a pas mal de vidéos sur ce sujet.

En voici une qui met en œuvre le  H-RTK F9P Rover lite, disponible ici, https://holybro.com/...f9p-gnss-series

Holybro est une référence dans le monde des drones avec contrôleur Pixhawk.

 



#9 Sandro

Sandro

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 312 messages
  • Gender:Male

Posté 14 mai 2023 - 01:22

@Dakota99 : comme évoqué dans le mon premier post, j'avais utilisé les récepteurs Ardusimple pendant l'été-automne 2020. Si tu as des questions, n'hésites pas à demander.


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#10 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 15 mai 2023 - 08:53

Merci Sandro,

 

Je viens de recevoir https://www.ardusimp...te-bt-case-kit/

J'ai opté pour l'appli SW Maps pour Android et Lefebure NTRIP client.

 

La réception des satellites dans SW Maps fonctionne. (12 satellites à l'intérieur)

 

Par contre la connection au réseau Walcors (Belgique) n'est pas encore opérationnelle.

 

Ce ne serait pas normal que cela fonctionne du premier coup ... :)

 

 



#11 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 07 juin 2023 - 08:14

Bonjour,

 

Le dispositif fonctionne maintenant bien avec un smartphone Android.

J'utilise Lefebure NTRIP pour obtenir les corrections du serveur.

Au lieu de se connecter au gps interne, le smartphone se connecte au gps externe qui a une position corrigée.

 

L'évolution du projet fait que je dois laisser tomber la piste du smartphone pour le guidage du robot.

J'ai donc migré le programme en Windows. Et évidemment ce n'est plus aussi simple.

J'ai installé le logiciel u-center qui est connecté au gps et reçoit les corrections du serveur.

Le problème c'est que U-center est connecté au gps via un port série. Et donc puisque le port est connecté, mon appli ne peut pas l'utiliser.

Il faut apparemment mettre en place un partage de port. Une appli qui diffuse les données arrivant sur le port série vers d'autres applications.

Une solution hardware est aussi possible.

 

Avez-vous déjà utilisé ces techniques ?

 

Merci



#12 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 081 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 07 juin 2023 - 09:57

J'ai déjà employé la solution hardware...

c'est pas compliqué, mais il faut juste faire en sorte qu'il y ait deux " écoutes " du GPS, et un seul qui "parle" au gps, si jamais il y a besoin de lui parler pour le configurer ...

de manière hardware tu prends deux convertisseurs usb uart que tu branches sur l'uart de ton port série en parallèle, tu as alors maintenant deux prise usb à brancher au pc  ... Ce qui te donne deux ports série dispo un pour chaque appli ... 

Après il y a aussi sans doute des solutions logicielles qui devrait pouvoir aussi faire le taf mais je ne les connais pas.


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#13 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 08 juin 2023 - 07:06

Merci !
Je vais commander les 2 convertisseurs et tester

#14 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 08 juin 2023 - 08:35

Ceci pourrait se faire sans problème s'il fallait se connecter aux bornes UART d'un Arduino. (RX TX VC Ground)

Mais dans le cas du gps il est fourni avec un câble usb.

Donc je ne vois pas comment dupliquer pour avoir 2 ports série sous Windows.

 

GNSS.jpg

 

Par contre j'ai testé Virtual Serial Port driver : en quelques minutes le tour est joué.

Le port COM21 est connecté à VSP et il crée 2 ports virtuels COM1 COM2. COM1 en lecture / écriture et COM2 en lecture.

Dommage que la solution soit si chère 200$. Il offre de nombreuses options qui dans mon cas ne sont pas nécessaires.

 

Je vais tester ceci qui est gratuit : https://freeserialportsplitter.com/

 

 



#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 081 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 08 juin 2023 - 11:10

J'ai cru que c'était un GPS avec des broches en uart pas un GPS avec prise usb... Mais top si tu as trouvé la solution logicielle qui marche =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 932 messages
  • Gender:Male

Posté 21 juillet 2023 - 06:32

Des nouvelles ?

As-tu pu mesurer la précision en zone urbaine ?

 

As-tu vu cette vidéo ?



#17 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 22 juillet 2023 - 09:00

Bonjour

Le GPS RTK Ardusimple fonctionne sur un pc Windows. (Apparemment c'est plus simple à mettre en oeuvre sur un smartphone)

La précision semble centimétrique mais je n'ai pas encore pu l'évaluer plus précisément car je suis occupé à revoir le châssis du robot.

J'étais parti d'un siège PMR mais il s'avère que le châssis arrive trop près du sol ce qui est problématique quand le terrain est un pu accidenté.

De plus l'empattement est trop faible donc roulis trop important.

Un nouveau châssis en acier est en cours de réalisation... ce qui est assez chronophage.

Dès que ça roule je reviens avec plus d'infos.

Merci pour la vidéo.



#18 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 04 septembre 2024 - 06:19

Bonjour,

 

Quelques nouvelles du GPS RTK Ardusimple :

 

Je l'ai utilisé dans une pelouse entourée d'arbres et de maisons et la précision est RTK FIXED c'est à dire centimétrique. Donc dans un champ bien dégagé cela ne devrait pas poser de problème.

 

Je l'utilise sur un micro pc Windows 10 via une connexion série.

Il faut utiliser le soft U-center qui s'occupe de la réception des données en série et de la connexion avec le serveur NTRIP qui fournit la correction de position. Il faut donc une connexion internet en permanence. (je suis en Belgique donc j'utilise le réseau Walcors qui est gratuit pour l'instant)

 

Etant donné que mon application de guidage du robot a aussi besoin de la trame gps, il faut que le port série soit dupliqué.

J'ai finalement opté pour GPSGATE de Franson. Pas trop cher et fonctionne correctement.

 

Le dernier point qui reste à résoudre est que la trame NMEA venant du gps n'envoie pas le cap du robot. Je suppose que c'est parce qu'il roule trop lentement.

Je calcule donc le cap en fonction de la dernière position d'il y a 3 secondes par rapport à la position actuelle.

 

Le support Ardusimple est très efficace.

En résumé en ce qui me concerne cette solution Ardusimple me convient parfaitement.



#19 Sandro

Sandro

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 312 messages
  • Gender:Male

Posté 04 septembre 2024 - 07:10

C'est normal qu'un GPS ne renvoie pas (directement) un cap, vu qu'un récepteur GPS ne donne qu'une position (et l'heure très précise).

La seule manière d’obtenir un cap à partir du GPS, c'est de calculer le déplacement entre 2 instants. Si la distance de déplacement est faible par rapport au bruit de la position, alors le cap est très imprécis (voir complètement faux). Mais il n'y a aucun moyen de savoir à priori sur quelle échelle de temps tu veux avoir ton cap (est-ce que tu préfères un cap précis mais avec beaucoup de délai, ou un cap imprécis avec moins de délai).

La solution "usuelle" est de combiner, via un filtre de Kalman,  les données du GPS avec celles d'un gyroscope (+accéléromètre pour connaître la verticale si tu ne te déplaces pas sur une surface 100% plane). Le gyroscope est très précis pour te dire de combien tu as tourné (sur une courte durée), mais accumule de l'erreur sur le cap au fil du temps. Le GPS, lui, permet facilement et précisément d'avoir le cap moyen sur une longue durée, mais est peu précis sur le court terme. En combinant les 2, tu es très précis et réactif en permanence (sauf parfaitement immobile).

Une autre solution, c'est d'utiliser une carte avec 2 antennes GPS, et de faire du GPS différentiel : il est possible de mesurer très précisément l'écarte de position entre les 2 antennes (beaucoup plus précisément que leur position GPS absolue), ce qui donne une très bonne orientation de l'axe entre les 2 antennes.

À noter que Ardusimple vend les 2 options : https://www.ardusimp...-sensor-fusion/

L'option IMU (gyro) + GPS peut aussi se gérer de ton coté en soft, si tu préfères creuser plus le sujet mais payer un peu moins cher (mais si Ardusimple a bien fait les choses, ils devraient arriver à une meilleur précision à IMU donné, vu qu'ils connaissent exactement les caractéristiques des 2 capteurs).


PS : je gardes aussi un très bon souvenir du support Ardusimple à l'époque où, dans mon ancien boulot, on avait testé leurs produits (on avait fini par laisser tomber le GPS, car on était trop souvent en zone trop densément bâtie, où le GPS RTK ne marchait plus correctement)


Aidez-nous à vous aider : partagez toutes les informations pertinentes : description précise du problème, contexte, schéma de câblage, liens vers la documentation des composants, votre code (ou encore mieux un code minimal reproduisant le bug), ...

Vous recevrez ainsi plus de réponses, et elles seront plus pertinentes.


#20 dakota99

dakota99

    Membre occasionnel

  • Membres
  • Pip
  • 242 messages
  • Gender:Male
  • Interests:programmation Windev, Webdev, aviation, robotique, domotique, drones

Posté 05 septembre 2024 - 07:40

Merci Sandro pour ce commentaire éclairant :)

 

Je ne cherche pas une grande précision au niveau du cap. C'est juste que le robot doit naviguer d'un point gps à un autre.

Je vais soumettre la question à Ardusimple.

Peut-être que je peux upgrader mon gps





Répondre à ce sujet



  


1 utilisateur(s) li(sen)t ce sujet

0 members, 1 guests, 0 anonymous users