Parcours de constructionAvancéDeux ou trois week-ends

Construire un rover GPS à waypoints qui roule tout seul

Un rover qui suit seul une liste mémorisée de waypoints GPS à travers un terrain, en tenant une ligne à un mètre près, et qui s'arrête lui-même s'il sort du géorepérage.

Schéma technique : Construire un rover GPS à waypoints qui roule tout seulLOOKAHEADGOAL POINTCOMMANDED PATH

Ce que vous construisez

Un robot auquel on confie une liste de coordonnées, qu’on pose sur l’herbe, et dont on s’éloigne.

Tous les autres robots mobiles de ce site réagissent à ce qui est juste devant eux — une ligne, un mur, un obstacle, une bordure. Celui-ci exécute un plan, dans un monde sans repères, avec un capteur qui lui ment quelques fois par minute. Cette combinaison en fait le montage mobile le plus difficile ici et celui qui enseigne le plus.

Les trois choses qui le décident

Le suiveur est la partie facile. La poursuite pure fait douze lignes et un seul bouton. Avec une estimation parfaite, elle tient 0,09 m d’erreur RMS sur le parcours de laboratoire.

L’estimation de position est tout le projet. Le même contrôleur, avec une position GPS à 1 Hz bruitée à l’échelle du mètre, tient 1,25 m — quatorze fois pire, en dépensant quatre fois et demie plus de direction pour le faire. Le contrôleur contribue à moins d’un dixième de l’erreur finale.

Donc l’ordre de montage est : suiveur en intérieur, estimation en extérieur. Prouvez la direction là où la position est presque exacte, puis allez affronter le capteur. Faire les deux à la fois produit un robot qui divague pour des raisons inséparables.

Nomenclature

Pièce Qté Coût approx. Notes
Arduino Uno ou Mega 1 $5–12 Une Mega vaut le coup : quatre broches d’interruption pour un décodage ×4 complet, plus des UART libres
Module GPS (NEO-6M) 1 $8–12 Un NEO-M8N est la meilleure amélioration ici — multi-constellation, meilleure géométrie
MPU-6050 1 $2 Le cap entre les positions. Sans lui le rover ne sait pas où il regarde
Moteurs à codeurs N20 2 $16 Les codeurs ne sont pas optionnels sur ce montage
TB6612FNG 1 $3
Châssis 2 roues motrices 1 $10–20 Des roues plus grandes aident en extérieur ; l’herbe est cruelle avec une roue de 65 mm
Pack batterie 1 $10 2×18650 protégés, ou 3S avec régulateur
Support d’antenne haut 1 $2 L’antenne patch veut le ciel, pas une vue — du métal au-dessus coûte des satellites

Total : environ $55–80.

Celui qui change le plus le projet est le récepteur. Un NEO-6M fonctionne et c’est ce que supposent la plupart des tutoriels ; un NEO-M8N voit GPS plus GLONASS et Galileo, ce qui améliore la géométrie des satellites et donc le HDOP. Près des bâtiments et des arbres — là où un rover roule vraiment — c’est une amélioration réelle plus grande que ce que suggère la fiche de précision.

Ne sautez pas les codeurs pour économiser 12 $. Tout ce projet est de l’estime corrigée par des positions occasionnelles ; sans codeurs il n’y a rien pour estimer, et le rover chasse simplement le bruit GPS.

Ordre de montage

1 — Réglez le suiveur en simulateur. Une heure dans le laboratoire de suivi à la vitesse prévue. Trouvez le point d’avance où la courbe d’erreur touche le fond ; notez qu’il bouge quand vous changez de vitesse.

2 — Construisez la transmission et faites fonctionner l’odométrie. Codeurs puis odométrie différentielle, puis roulez un carré de 2 m et voyez à quelle distance du départ vous finissez. Ce nombre est votre budget intérieur.

3 — Fusionnez un cap. Un gyroscope à la cadence de boucle, corrigé par quelque chose d’absolu. L’erreur de cap est le terme que les deux contrôleurs pondèrent le plus, et le premier que l’odométrie perd — le filtre complémentaire qui stabilise un robot équilibriste fait le même travail ici.

4 — Suivez un parcours collé en intérieur. Pas de GPS. Collez une trajectoire au sol, suivez-la en poursuite pure sur l’estimation codeurs, et mesurez l’erreur transversale au mètre en dix points. Si elle ne passe pas sous 10 cm en intérieur, elle ne passera pas sous un mètre en extérieur.

5 — Ajoutez le récepteur et ne le reliez pas encore au contrôleur. Enregistrez les positions dix minutes avec le rover immobile, et tracez-les. Vous verrez le bruit, l’excursion occasionnelle, et comment le HDOP suit les deux. Ce tracé vaut plus que tout chiffre de fiche technique.

6 — Fusionnez, ne suivez pas. Estimez à la cadence de boucle ; tirez doucement l’estimation vers chaque bonne position. L’arithmétique et le filtrage sont ici. Rejetez tout statut vide ou HDOP au-dessus d’environ 2,5.

7 — Géorepérez, puis sortez. Distance maximale au départ, temps limite de mission, coupure physique. Puis une mission courte, sur herbe, en marchant à côté.

Notes matérielles importantes

Montez l’antenne en haut, vers le ciel, loin de tout. Un patch céramique sous une plaque de châssis perd des satellites, et des satellites perdus donnent une mauvaise géométrie plutôt qu’aucune position — une réponse fausse avec assurance au lieu d’une panne évidente.

Des roues plus grandes que votre instinct d’intérieur. Herbe, gravier et bordure de pelouse sont tous des problèmes de diamètre de roue. Ils changent aussi votre facteur d’échelle odométrique, donc recal calibrez sur la surface où vous roulerez vraiment.

Tenez le magnétomètre loin des moteurs, ou sautez-le. Le courant moteur produit un champ qui noie le champ terrestre. Si vous ne pouvez pas obtenir 15 cm de séparation, utilisez gyro plus cap GPS et évitez le problème.

Enregistrez la mission. Une panne extérieure non enregistrée est une panne indébogable — le robot était à 40 m et vous ne regardiez pas le port série. Une carte SD ou un journal Wi-Fi avec pose, position, HDOP et erreur transversale transforme chaque parcours en preuve.

Attendez-vous à ce que le premier parcours extérieur finisse tôt. C’est à cela que sert le géorepérage, et c’est un succès.

À quoi ressemble un bon résultat

Mesure Suivi GPS brut Fusionné avec odométrie
Erreur transversale, RMS 3–5 m 0,3–0,6 m
Erreur transversale, pire cas 8–12 m 1,0–1,5 m
Activité de direction Constante, grandes corrections Lisse, occasionnelle
Tolérance d’arrivée au waypoint 5 m, et même cela est optimiste 0,5–1 m
Dérive statique en position, à l’arrêt Nuage de 2–4 m N/A — l’odométrie le tient immobile

Cette première colonne n’est pas un rover mal construit ; c’est ce qu’une position à 2,5 m CEP à 1 Hz fait à un contrôleur qui lui fait confiance. L’amélioration d’un ordre de grandeur de la seconde colonne vient de l’estimateur, pas du contrôleur — le même code de poursuite pure, nourri d’une pose fusionnée.

Avant tout code de navigation, faites ceci une fois : laissez le récepteur immobile en extérieur dix minutes et enregistrez chaque position. Le nuage obtenu fait plusieurs mètres de large, et rien n’a bougé. Ce tracé est la chose la plus utile à regarder sur ce projet, car il explique pourquoi suivre des positions brutes ne peut pas marcher et pourquoi le correctif est en amont du contrôleur.

Quand ça tourne mal

Symptôme Habituellement
Serpente sur une droite en extérieur, propre en intérieur Suivi de positions brutes au lieu de les fusionner
Serpente aussi en intérieur Point d’avance trop court pour le retard ; réglez en laboratoire
Arrondit chaque virage Point d’avance trop long — le compromis, pas un bug
Position assurée à des dizaines de mètres Mauvaise géométrie satellite ; vous n’avez pas filtré sur le HDOP
Part du mauvais sens depuis l’arrêt Pas de cap utilisable ; le cap GPS est du bruit sous ~1 m/s
Dérive steady d’un côté Échelle odométrique ou voie fausse pour cette surface
Rien ne se passe les deux premières minutes Démarrage à froid GPS. Affichez-le, ne supposez pas l’origine
A quitté le terrain Le géorepérage n’était pas écrit avant l’essai

Six de ces huit sont de la perception plutôt que de la commande — la même distribution que le micromouse et le robot de couverture, et pour la même raison : l’algorithme est la petite partie.

Pour toute la séquence dans l’ordre, suivez le parcours suivi de trajectoire ; pour la version intérieure du même problème, le robot de couverture exige un plan et aucune position absolue.

Parcours du projet

Le parcours de construction

Suivez l'arbre technologique, des pièces jusqu'à un robot qui fonctionne. Chaque nœud se débloque quand ses prérequis sont terminés, et votre progression est enregistrée sur cet appareil.

0 / 20 terminés

100%
Parcours d'apprentissage

Suivi de trajectoire et navigation

Parcours d'apprentissage

Ouvrir le parcours
Réalisation

Suivre d'abord une trajectoire en intérieur

Montage

Réalisation

Le clôturer avant le premier essai terrain

Montage

Objectif

Réaliser une mission seul

Objectif

Composants

Tutoriels de ce parcours

Entraînez-vous avant de câbler

Réglez-le dans le simulateur interactif

Le parcours de construction passe par un labo dans le navigateur. Obtenez ici le bon comportement, puis reportez vos réglages sur le vrai robot.

Questions fréquentes

Pourquoi construire le suiveur en intérieur avant d'ajouter le GPS ?

Parce que si vous construisez les deux à la fois et qu'il divague, impossible de dire quelle moitié est fautive. En intérieur sur codeurs, l'estimation de position est bonne à quelques centimètres sur un parcours collé, donc toute erreur visible vient du contrôleur. Réglez le point d'avance là, mesurez l'erreur transversale au mètre, et n'introduisez qu'ensuite un capteur bruité, lent et parfois faux avec assurance. Chaque heure dans cet ordre est rendue au double.

Quelle précision un rover GPS amateur peut-il vraiment atteindre ?

Environ un mètre d'erreur transversale par beau temps, fixée par le récepteur plutôt que par votre contrôleur. À parcours égal avec la même poursuite pure, une estimation parfaite donne 0,09 mètre d'erreur RMS et une position à 1 Hz bruitée à l'échelle du mètre donne 1,25 — le contrôleur contribue donc à moins d'un dixième du total. Pour mieux, l'amélioration est un récepteur plus rapide et multi-constellation, puis le RTK, pas plus de réglage.

Faut-il un magnétomètre en plus du gyroscope ?

Il faut une référence de cap absolue et vous avez trois options. Un magnétomètre la donne à l'arrêt mais exige une calibration hard- et soft-iron et déteste la proximité des moteurs. Un gyroscope est excellent pendant des dizaines de secondes puis dérive. Le cap GPS est absolu et gratuit mais n'a de sens qu'au-dessus d'environ un mètre par seconde. La réponse habituelle du rover est un gyro pour la cadence de boucle, corrigé par le cap GPS dès que le robot va assez vite pour lui faire confiance — c'est ce que fait ce montage, et cela évite toute calibration.

À quelle vitesse doit-il rouler ?

Plus lentement que les moteurs le permettent, et le simulateur vous dira pourquoi. La meilleure erreur transversale atteignable croît avec la vitesse quel que soit le réglage : 0,05 mètre à 1 m/s devient 0,23 à 3 m/s en laboratoire avec une position parfaite. En extérieur le récepteur domine de toute façon, donc peu à gagner à la vitesse et beaucoup à perdre au premier essai terrain. Commencez à 0,5 m/s.

Qu'est-ce qui l'empêche de foncer vers une route ou un étang ?

Un géorepérage écrit avant le premier parcours extérieur : une distance maximale au départ de mission, vérifiée tout en haut de la boucle, qui coupe les moteurs sans condition. Ajoutez un temps limite de mission et une coupure physique accessible — un microrupteur sur le pont supérieur convient et n'exige aucune liaison radio. Ce sont dix lignes de code et c'est la différence entre un bug et un robot à l'eau.

Puis-je utiliser un ESP32 au lieu d'un Uno ?

Oui, et pour ce projet c'est le meilleur choix. Vous obtenez un second port série matériel pour le GPS sans série logicielle, bien plus de mémoire pour une liste de waypoints, des calculs flottants sans douleur, et le Wi-Fi pour enregistrer la mission vers un portable — le plus utile des outils de débogage d'un robot d'extérieur. Le Uno fonctionne ; l'ESP32 supprime trois ennuis.