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.
|
|
|
|---|---|---|
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.