Parcours d'apprentissageIntermédiaire

Suivi de trajectoire pour robots : un parcours d'apprentissage

Donnez à un robot une liste de points de passage et faites-les-lui parcourir, en sachant dire en mètres avec quelle qualité.

Planifier et suivre sont des problèmes différents, et la plupart des ressources robotiques n’enseignent que le premier. A* vous donne un itinéraire ; rien dedans ne dit aux roues quoi faire. Ce parcours est cet échelon manquant — tout ce qui se trouve entre une liste de points de passage et un robot qui les parcourt vraiment.

Parcourez les nœuds dans l’ordre. Chacun est une chose que le suivant suppose, et en sauter un donne un robot qui vagabonde pour une raison que vous ne pouvez pas isoler.

Avant de commencer

Il vous faut un robot à entraînement différentiel déjà pilotable — deux moteurs, un pilote, et une boucle qui tourne à rythme régulier. Le parcours de commande des moteurs couvre tout cela et celui-ci l’attend en premier. Aucune théorie de la commande n’est requise ; la poursuite pure est de la géométrie, pas un PID.

Ce que vous saurez faire

  • Convertir les comptes de codeurs des roues en pose, et dire de combien cette pose dérive par mètre roulé sur votre propre sol.
  • Fusionner un gyroscope avec une référence absolue en un cap qui ne s’en va pas pendant une mission.
  • Implémenter la poursuite pure à partir de la formule de courbure, en une douzaine de lignes, et expliquer chacune d’elles.
  • Choisir une distance d’anticipation à partir du retard de commande mesuré de votre robot plutôt que par tâtonnements, et la programmer en fonction de la vitesse.
  • Mesurer l’erreur transversale contre la vérité terrain et annoncer RMS, pire cas, et où vit l’erreur le long de la trajectoire.
  • Dire pourquoi le même contrôleur est quatorze fois pire sur une position GPS brute, et le corriger sans changer le contrôleur.

Où l’on se heurte

Régler le contrôleur quand c’est l’estimation le problème. Si le robot croit être sur la trajectoire, il annonce une erreur nulle et dirige avec assurance dans une haie. Mesurez contre quelque chose d’externe avant de toucher un gain — un mètre ruban compte.

Croire une simulation sans retard. Une poursuite pure parfaitement cinématique s’améliore quand l’anticipation raccourcit, donc un modèle sans retard recommande le réglage qui oscille sur le vrai matériel. Mettez une constante de temps de direction et un retard de perception dans tout modèle de réglage.

Une recherche globale du point le plus proche. C’est l’implémentation évidente et elle échoue silencieusement sur toute trajectoire qui revient sur elle-même, en retenant un segment parcouru il y a une minute. Suivez l’abscisse curviligne, cherchez dans une fenêtre autour d’elle, et ne laissez jamais la progression reculer.

Résoudre une ambiguïté de sommet vers le segment entrant. Après un virage, les deux segments adjacents se projettent au même point à la même distance. Gardez le mauvais et un contrôleur qui dirige sur le cap et l’erreur latérale voit environ zéro des deux tout en roulant droit hors trajectoire. C’est le bogue le plus discret de cette page.

Construisez-le comme le rover à points de passage GPS, qui suit exactement cette séquence — en intérieur sur codeurs d’abord, en extérieur sur position fusionnée ensuite.

Ce qu’il vous faut

Quoi Pourquoi ce parcours en a besoin Notes
Des codeurs sur les deux roues L’estimation de pose que tout le reste consomme Non négociable ici — ce parcours traite de savoir où vous êtes
Un gyroscope ou une IMU Les roues ne peuvent pas mesurer une rotation traversée en glissant Une MPU-6050 suffit
Une boucle régulière L’estimateur et le contrôleur intègrent tous deux sur le temps Intervalle fixe, ou temps réel écoulé transmis
De quoi mesurer On ne règle pas un suivi sans vérité terrain Un trait à la craie et un mètre ruban valent toute la télémesure
Un module GPS (moitié extérieure seulement) Les deux derniers nœuds En intérieur, il n’accrochera jamais

Pourquoi le parcours suit cet ordre

Ce parcours a ceci d’inhabituel que les cinq premiers nœuds ne traitent pas du tout de direction. Ils construisent l’estimation de pose, car un contrôleur de trajectoire agissant sur une pose fausse échoue d’une façon qui ressemble exactement à un contrôleur mal réglé — le robot annonce une erreur nulle en roulant dans une haie. Estimer juste d’abord permet, quand vous réglez enfin un gain, de croire ce que vous mesurez.

Codeurs, puis odométrie, puis glissement, dans cet ordre. Chacun corrige l’optimisme du précédent. Les codeurs disent que la roue a tourné ; l’odométrie convertit deux mouvements de roues en pose ; le glissement dit combien de cette pose est fiction, et précisément que l’erreur systématique croît linéairement avec la distance tandis que l’erreur aléatoire ne croît qu’en racine carrée.

L’IMU rejoint avant le contrôleur parce que le cap est la partie de la pose qui compte le plus pour un suiveur de trajectoire et celle où les roues sont les pires. Un pivotement sur place frotte les deux pneus presque par définition, donc la manœuvre qui change le plus le cap est celle que l’odométrie mesure le plus mal. Un filtre complémentaire fusionne le bon taux à court terme d’un gyroscope avec la bonne moyenne à long terme d’une référence absolue, et le résultat est un cap qui ne s’en va pas.

Les profils de mouvement viennent avant la poursuite pure parce qu’un suiveur de trajectoire commande la vitesse en continu, et une commande de vitesse en échelon produit un robot qui cahote et glisse — réintroduisant exactement l’erreur d’odométrie que vous venez de passer trois nœuds à maîtriser.

Poursuite pure, puis le laboratoire, puis l’erreur transversale. Le contrôleur tient en une douzaine de lignes et sa géométrie est facile ; le difficile est de choisir l’anticipation et de savoir si le résultat est bon. Le laboratoire existe pour observer le compromis d’anticipation, et le nœud d’erreur transversale pour transformer « ça roule bien » en nombre avec un RMS et un pire cas.

Le GPS en dernier, et seulement en dernier. Il ne change rien au contrôleur et tout à l’estimation. Le faire en dernier garantit que, quand le suivi devient quatorze fois pire, vous savez avec certitude que le contrôleur n’en est pas la raison.

Étapes : comment savoir qu’une étape est acquise

Étape Le test Ce à quoi ressemble la réussite
Codeurs Poussez le robot à la main sur 2 m le long d’un trait à la craie Les comptes se convertissent en 2000 mm à 2 % près, les deux roues
Odométrie Roulez un carré de 1 m et revenez au départ La pose annoncée se referme à quelques centimètres près, et vous pouvez énoncer l’erreur au mètre
Glissement Faites un pivotement et comparez le cap gyroscope au cap odométrie Ils désaccordent, et vous pouvez dire de combien — cet écart est le frottement
Fusion IMU Tournez le robot de 360° lentement, puis laissez-le immobile deux minutes Le cap revient à son départ, et ne dérive pas à l’arrêt
Profils de mouvement Commandez un changement de vitesse en échelon, puis un profilé Le mouvement profilé ne fait pas crisser les pneus ; l’échelon, si
Poursuite pure Suivez une ligne droite avec un départ décalé de 0,5 m Elle converge sans dépassement, et vous pouvez nommer votre anticipation en mètres
Réglage d’anticipation Divisez délibérément l’anticipation par deux Ça oscille — vous connaissez désormais le mode d’échec, et pourquoi un simulateur sans retard le masque
Erreur transversale Roulez un huit et consignez l’erreur contre la vérité terrain Vous pouvez annoncer l’erreur RMS et le pire cas, et dire où vit le pire le long de la trajectoire
GPS Consignez une position statique dix minutes sans bouger Vous voyez l’errance, en mètres, que votre contrôleur poursuivrait sinon

Où ce parcours s’arrête

Ce parcours prend une trajectoire donnée et la roule. Il ne produit pas la trajectoire — c’est planification de trajectoire et cartographie, et les deux ensemble forment la pile de navigation complète.

Il s’arrête aussi avant trois choses. L’évitement d’obstacles en suivi — réagir à quelque chose qui apparaît sur une trajectoire déjà engagée — exige un planificateur local tournant sous le suiveur, et c’est un problème vraiment plus difficile que chaque moitié seule. La direction Ackermann et omnidirectionnelle changent la géométrie : la poursuite pure s’adapte aisément à un robot de type automobile, mais l’étape courbure-vers-vitesses-de-roues ici est spécifiquement l’entraînement différentiel — pour une base qui peut aller en crabe, commencez par la transmission holonome, et notez qu’un robot holonome peut faire strictement mieux que l’un ou l’autre contrôleur ici car il peut corriger la position sans dépenser de cap. Et le GPS RTK, qui fait passer la position extérieure du mètre au centimètre, est ce qui rend le suivi extérieur vraiment précis — à connaître avant de conclure que la navigation extérieure est simplement imprécise.

Parcours d'apprentissage

Le parcours

Suivez les nœuds dans l'ordre — chacun débloque le suivant une fois terminé. Votre progression est enregistrée sur cet appareil.

0 / 11 terminés

100%
Objectif

Rouler une mission

Compétence débloquée

Questions courantes

Questions fréquentes

Quelle est la différence entre planification et suivi de trajectoire ?

La planification produit un itinéraire ; le suivi fait rouler les roues dessus. A* vous remet une liste de points de passage sans rien dire de la direction, de la vitesse, ni de ce qu'il faut faire quand le robot se retrouve un demi-mètre à gauche de l'endroit prévu. Le suivi de trajectoire est cette moitié manquante : étant donné où le robot croit être et où va la trajectoire, décider ce que les roues doivent faire à cet instant. La plupart des ressources robotiques enseignent la planification à fond et le suivi à peine, et c'est pourquoi un robot au plan correct vagabonde si souvent.

Comment choisir une distance d'anticipation en poursuite pure ?

À partir du retard de commande mesuré de votre robot, pas par tâtonnements. L'anticipation doit être assez loin pour que le robot puisse physiquement l'atteindre compte tenu du temps de réponse de sa direction — trop courte et il oscille, trop longue et il coupe les virages. Mesurez le temps entre la commande d'un virage et le virage effectif du robot, multipliez par votre vitesse, et partez de là. Puis programmez-la en fonction de la vitesse : le même robot exige une anticipation plus longue à 1 m/s qu'à 0,2 m/s, car le retard achète plus de distance.

Pourquoi mon suiveur de trajectoire fonctionne-t-il en simulation mais oscille-t-il sur le robot ?

Presque sûrement parce que la simulation n'a pas de retard. Un modèle de poursuite pure purement cinématique s'améliore de façon monotone quand l'anticipation raccourcit, donc un réglage sur ce modèle recommande l'anticipation la plus courte — qui est exactement le réglage qui oscille sur le matériel. Tout modèle de réglage doit inclure une constante de temps de direction et un retard de perception, sinon il vous enseignera avec assurance l'inverse de ce qu'exige le vrai robot.

Poursuite pure ou Stanley — quel contrôleur de trajectoire choisir ?

La poursuite pure pour les robots à entraînement différentiel et les trajectoires douces ; Stanley quand la précision de suivi à l'essieu avant compte plus que la douceur. La poursuite pure dirige vers un point en avant sur la trajectoire, ce qui la rend indulgente et naturellement douce, au prix de couper les virages. Stanley combine directement l'erreur de cap et l'erreur transversale, ce qui suit plus serré mais tolère moins bien une estimation de pose bruitée. Pour un petit robot d'intérieur, la poursuite pure est presque toujours le bon premier choix.

Pourquoi mon suivi est-il bien pire en extérieur sur GPS ?

Parce que le contrôleur va bien et que l'estimation de pose ne va pas. Une position GPS grand public est précise à quelques mètres et se met à jour à 1–10 Hz, tandis que l'odométrie à roues est précise au centimètre et se met à jour aussi vite qu'on la lit. Donnez au même contrôleur une position qui saute de deux mètres entre mises à jour et il poursuivra les sauts. La correction n'est pas dans le contrôleur — elle consiste à fusionner le GPS avec l'odométrie et une source de cap pour que la pose vue par le contrôleur soit lisse, et à laisser le GPS corriger la dérive lente plutôt que piloter la boucle rapide.

Pourquoi mon robot sort-il de sa trajectoire juste après un virage ?

C'est l'ambiguïté de sommet, et c'est le bogue le plus discret de tout le parcours. Juste après un virage, les deux segments adjacents se projettent au même point à la même distance, donc une recherche naïve du point le plus proche peut retenir le segment déjà terminé. Un contrôleur qui dirige sur le cap et l'erreur latérale voit alors environ zéro des deux tout en roulant droit hors trajectoire, en affichant un suivi parfait pendant ce temps. Suivez l'abscisse curviligne le long de la trajectoire, ne cherchez que dans une fenêtre autour de votre dernière position, et ne laissez jamais la progression reculer.