Apprendre et refaire un trajet

S’applique à : Simulation Robot réel

On montre un trajet au robot en le conduisant, au clavier ou à la manette ; il le refait ensuite seul, autant de fois qu’on le demande. Pas de coordonnées à saisir : le trajet est celui qu’on a conduit.

Note

Essayé en simulation le 2026-10-15. Pas encore sur le robot réel.

Ce qu’il faut

Une carte de la pièce et la navigation lancée dessus, robot posé sur le point de départ de la carte (Navigation autonome). L’enregistreur note la position du robot dans la carte : sans localisation, il n’a rien à noter.

./scripts/ratbot nav 1 salon

Apprendre

Dans un deuxième terminal, l’enregistrement ; dans un troisième, la conduite :

./scripts/ratbot route record 1 cuisine     # terminal 2
./scripts/ratbot key 1                      # terminal 3 (ou : ratbot joy)

Conduire le robot le long du trajet voulu, puis Ctrl-C dans le terminal de l’enregistrement : le trajet est écrit sous son nom.

route saved: …/ratbot_maps/routes/cuisine.yaml (25 poses, 1.98 m)

Une pose est notée tous les 10 cm, ou à chaque rotation de 15°. Le nom est fait de lettres, de chiffres, de - et de _ ; un nom déjà pris est refusé.

Refaire

./scripts/ratbot route follow 1 cuisine           # par points (défaut)
./scripts/ratbot route follow 1 cuisine exact     # la ligne exacte

Si le robot est à plus de 30 cm du départ du trajet, il y retourne d’abord, puis refait le trajet. Ctrl-C annule : le robot s’arrête, même si l’on appuie au moment précis où le trajet est envoyé.

Un trajet en boucle, qui revient à son départ, se refait comme les autres. Le robot le parcourt en deux moitiés : jusqu’au point le plus éloigné du départ, puis retour. Sans cela, l’arrivée étant aussi le départ, la navigation le déclarerait fait avant même de bouger.

points (par défaut)

exact

Ce que fait le robot

repasse par un point tous les 50 cm ; entre deux, la navigation trace elle-même le chemin

suit la ligne enregistrée telle quelle, sans la recalculer

Face à un obstacle nouveau

le contourne

s’arrête : il ne s’écarte pas de la ligne

Écart à la ligne apprise (simulation)

6 cm en moyenne, 10 cm au plus

3 cm en moyenne, 6 cm au plus

À préférer

en général

quand le passage exact compte, dans un espace dégagé

Avertissement

En mode exact, une ligne apprise qui rase un mur — une porte prise au plus court, par exemple — arrête le robot : sa sécurité voit le mur trop près. Conduire au milieu des passages pendant l’apprentissage, ou utiliser le mode points.

À la fin, la commande dit à combien de centimètres de l’arrivée se trouve le robot. Elle le vérifie elle-même, sans se fier seulement à la navigation.

Les trajets

./scripts/ratbot route list

Ils sont rangés dans ros2_ws/src/ratbot_maps/routes/, un fichier par trajet, avec le robot, la carte sur laquelle il a été appris, la date et la longueur. Un trajet n’a de sens que sur sa carte : refait sur une autre, il mènerait ailleurs. Pour en supprimer un, supprimer son fichier.

Limites connues

  • Repartir d’un passage étroit pris en virage — une porte, en sortant de biais — peut échouer : la navigation coupe le virage, voit l’encadrement trop près et s’arrête. C’est une limite de la navigation elle-même, pas des trajets (voir Navigation autonome). Mieux vaut finir un trajet dans un espace dégagé, pas dans l’encadrement d’une porte.

  • Le clavier et la manette n’ont pas la sécurité anti-collision de la navigation : pendant l’apprentissage, c’est le conducteur qui évite les murs.