Parcours d'apprentissageDébutant

Navigation réactive : apprenez à un robot à éviter les obstacles

Vous savez faire sentir les obstacles à un robot et lui faire décider seul où aller — sans carte, juste une perception propre et une boucle de comportement.

La navigation réactive est la première façon dont la plupart des robots apprennent à circuler : au lieu de tenir une carte et de planifier un itinéraire, le robot réagit simplement à ce que ses capteurs annoncent à l’instant. Sentir l’espace devant, décider, bouger, et recommencer, plusieurs fois par seconde. C’est bon marché, robuste, et suffisant pour laisser un robot errer dans une pièce encombrée sans rien heurter — le comportement derrière chaque robot éviteur d’obstacles de débutant.

Ce parcours construit ce savoir-faire couche par couche. Vous commencez par convertir une impulsion ultrasonore brute en distance digne de confiance, puis apprenez pourquoi les lectures des capteurs sautent et comment les filtrer. Vous comparez ultrasons et temps de vol laser pour savoir quel capteur vous ment et quand, ajoutez un balayage par servomoteur pour que le robot voie où c’est ouvert, enveloppez le tout dans une machine à états de comportement, et finissez en réglant la boucle complète dans un simulateur.

Suivez les nœuds dans l’ordre — chacun déverrouille le suivant une fois accompli, et votre progression est sauvegardée sur cet appareil. Quand vous êtes prêt à construire le vrai, ce parcours mène directement au projet de robot éviteur d’obstacles.

Avant de commencer

Vous devez savoir lire un capteur et piloter deux moteurs — le parcours de commande des moteurs couvre la moitié pilotage. Pas de carte, pas de localisation ni d’algorithme de planification ici ; c’est délibéré, et c’est ce qui fait de la navigation réactive la bonne première approche.

Ce que vous saurez faire

  • Convertir une impulsion ultrasonore en distance exploitable, avec un délai dépassé pour qu’un écho manquant ne bloque pas la boucle et un filtre médian pour qu’une mauvaise lecture ne fasse pas embardée au robot.
  • Dire à quel capteur se fier pour une surface donnée, et pourquoi un capteur laser à temps de vol et un ultrasonore échouent sur des matériaux complètement différents.
  • Balayer un capteur sur un arc et choisir le relèvement le plus ouvert d’après les lectures.
  • Exprimer le comportement en états explicites plutôt qu’en conditionnelles imbriquées, pour que « que fait le robot en ce moment » ait toujours une réponse.

Où l’on se heurte

Lire le capteur avant que le servomoteur ait fini de bouger. La mesure revient pour ce que le capteur pointait en milieu de course, donc le robot tourne avec assurance vers un mur. Ajoutez un délai de stabilisation après la commande d’angle et avant l’impulsion.

Pas de délai dépassé sur l’écho. Si rien ne revient — et sur une surface molle ou inclinée, souvent rien ne revient — un pulseIn naïf bloque toute la boucle. Le robot semble se figer au hasard.

Croire une lecture unique. Les capteurs à ultrasons produisent parfois des valeurs aberrantes. Une fausse lecture à 20 cm en espace ouvert suffit à déclencher un virage d’urgence. Prenez-en trois et gardez la médiane.

Surfaces inclinées et molles. Le son réfléchi par un mur rencontré sous un angle rasant repart ailleurs que vers le capteur, donc un mur à 45° peut se lire comme un espace ouvert. Coussins et rideaux absorbent entièrement l’impulsion. C’est une limite physique, pas un bogue — concevez le comportement pour y survivre.

Osciller sur un seuil. Avec une seule distance d’arrêt, un robot qui reste près d’elle bascule entre rouler et tourner plusieurs fois par seconde. Utilisez deux seuils — arrêt plus près, reprise plus loin — pour que le comportement ait de l’hystérésis et s’engage dans une décision.

Ce qu’il vous faut

Quoi Pourquoi ce parcours en a besoin Notes
Un HC-SR04 ou un VL53L0X La perception de distance sur laquelle tout le parcours est construit ~2 $ et ~5 $ respectivement
Un servomoteur modélisme Pour que le capteur regarde ailleurs que droit devant Un SG90 suffit pour une tête de capteur
Un ou deux microrupteurs à levier Le seul capteur qui ne ment jamais sur une collision Une assurance bon marché contre chaque échec de télémétrie ci-dessous
Une base roulante pilotable Deux moteurs et un pilote déjà commandables Le parcours de commande des moteurs vous y amène
Un sol encombré L’environnement de test, qui doit inclure une surface molle et une inclinée Un coussin et une porte ouverte sont les deux meilleurs obstacles de test

Pourquoi le parcours suit cet ordre

La perception avant la décision, toujours. Presque tout comportement d’évitement qui se comporte mal agit correctement sur une mauvaise lecture. Tant qu’une mesure de distance n’est pas digne de confiance — délai dépassé sur un écho manquant, médiane de trois contre les pics — aucune logique de comportement ne produira un robot qui se comporte bien. Diagnostiquer dans l’autre ordre, c’est soupçonner votre machine à états pour une faute qui vit dans le capteur.

Comparer les capteurs avant d’en retenir un. Le nœud de comparaison existe parce que sonar et laser échouent sur des matériaux complètement différents, et que le bon dépend entièrement de la pièce parcourue. Prendre cette décision en connaissance de cause, une fois, coûte bien moins cher que de la découvrir après avoir construit un châssis autour du mauvais capteur.

Filtrer avant de balayer. Un balayage par servomoteur multiplie le taux d’erreur de votre capteur par le nombre d’angles échantillonnés. Si une lecture unique est peu fiable, un balayage en neuf points donne neuf chances de choisir la mauvaise direction, et le robot tourne avec assurance dans un mur.

Balayer avant de décider. Un robot qui ne voit que devant n’a exactement que deux options — s’arrêter, ou tourner à l’aveugle. Pouvoir mesurer plusieurs relèvements transforme l’évitement d’un réflexe en choix, et c’est là que le comportement commence à sembler intelligent.

La machine à états avant l’algorithme. L’algorithme d’évitement est une machine à états ; en apprendre la structure séparément fait du nœud final de la robotique plutôt que du démêlage de flot de commande.

La perception de contact partout. Le pare-chocs n’est délibérément pas en dernier. Chaque capteur de distance de ce parcours a des surfaces qu’il ne voit pas, donc un robot sans perception de contact est à un rideau d’enfoncer jusqu’à casser quelque chose. C’est la fiabilité la moins chère de tout le robot.

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

Étape Le test Ce à quoi ressemble la réussite
Lecture de distance Pointez le capteur vers un mur à 30 cm et affichez pendant une minute Stable à un centimètre ou deux près, pas de zéros, pas de blocages en visant le plafond
Délai dépassé Visez le vide et observez la période de boucle La boucle garde son intervalle — aucun écho ne doit geler le robot
Filtre médian Agitez la main dans le faisceau à répétition Les valeurs aberrantes occasionnelles disparaissent de la sortie ; l’approche réelle reste visible
Comparaison de capteurs Mesurez un coussin, un mur à 45°, et une surface sombre mate Vous pouvez prédire quel capteur échoue sur quoi, avant de mesurer
Balayage par servomoteur Balayez et affichez la distance par angle devant une porte ouverte La porte est visiblement le maximum, et les lectures sont répétables d’un balayage à l’autre
Délai de stabilisation Retirez délibérément votre délai de stabilisation Les lectures se brouillent entre angles — vous savez désormais à quoi ressemble cet échec
Machine à états Affichez l’état courant à chaque boucle Vous pouvez toujours nommer ce que fait le robot, et chaque transition a une cause visible
Pare-chocs Appuyez lentement et comptez les événements Un appui produit exactement un événement, pas les neuf d’un interrupteur brut
Comportement complet Faites-le tourner cinq minutes dans une pièce encombrée Il survit, et quand il se coince vous pouvez dire dans quel état il était

Où ce parcours s’arrête

La navigation réactive a un plafond dur, à énoncer clairement : un robot réactif ne peut être envoyé nulle part. Il n’a pas de mémoire, donc il ne peut aller à la cuisine, ne peut promettre avoir couvert tout le sol, ni éviter le coin où il s’est coincé la dernière fois. Ce ne sont pas des lacunes d’implémentation — c’est ce que signifie ne pas avoir de carte.

Le parcours s’arrête aussi avant deux choses à désirer ensuite. Le suivi de mur est l’extension naturelle, et c’est le premier comportement qui commence à ressembler à un plan, car un robot qui tient une distance fixe d’un mur d’un côté traversera toute une pièce de façon déterministe. Et la couverture — balayer vraiment une zone plutôt que l’errer — est là où le manque de mémoire devient enfin intolérable.

Le cas échéant, planification de trajectoire et cartographie est la réponse, et ce parcours est la bonne chose à avoir faite d’abord : chaque robot cartographe a encore besoin des réflexes construits ici pour le moment où sa carte s’avère fausse.

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%

Questions courantes

Questions fréquentes

Qu'est-ce que la navigation réactive en robotique ?

Naviguer sans carte ni plan. Le robot détecte ce qui est devant lui à l'instant, décide quoi en faire, bouge, et recommence — souvent cinquante fois par seconde. Il ne demande jamais où il est, car il n'a jamais besoin de le savoir. Cela le rend bon marché, robuste, et insensible aux erreurs de localisation qui cassent la navigation sur carte, au prix de ne rien pouvoir faire qui exige de la mémoire : il ne peut aller à un endroit nommé, ne peut garantir avoir couvert une pièce, et peut rester piégé indéfiniment dans un coin concave.

Pourquoi mon robot éviteur d'obstacles fonce-t-il droit dans les murs ?

Presque toujours le capteur plutôt que la logique, et d'habitude l'une de trois causes. Un capteur à ultrasons rencontrant un mur sous un angle rasant réfléchit l'impulsion ailleurs qu'en retour, donc un mur à 45° se lit comme un espace ouvert — c'est de la physique, pas une panne. Les surfaces molles comme rideaux et coussins absorbent entièrement l'impulsion. Et si vous lisez le capteur avant qu'un servomoteur de balayage ait fini de bouger, la distance obtenue appartient à ce qu'il pointait en milieu de course. Ajoutez un délai de stabilisation après la commande d'angle, et ajoutez un pare-chocs pour que le contact soit toujours détecté même quand la télémétrie échoue.

Pourquoi mon robot oscille-t-il devant un obstacle ?

Un seuil d'arrêt unique. Quand le robot reste près de lui, de minuscules variations de mesure basculent la décision plusieurs fois par seconde, et il bégaie au lieu de s'engager. Utilisez deux seuils avec un écart entre eux — arrêt à 20 cm, reprise seulement à 30 cm. Cet écart est l'hystérésis, et il force le comportement à s'engager. Le même motif corrige presque toute oscillation de seuil dans le code robot, pas seulement celle-ci.

Ultrasons ou temps de vol laser pour l'évitement d'obstacles ?

Ils échouent sur des choses opposées, ce qui rend le choix facile une fois connu votre environnement. Les ultrasons ont un cône large — environ 15° de demi-angle — donc ils détectent un pied de table sans le localiser, et ils sont aveugles aux surfaces molles et très inclinées. Un capteur laser VL53L0X a un faisceau étroit, donc il localise précisément mais peut rater entièrement un obstacle fin, et il peine sur les surfaces sombres, mates et miroirs en forte lumière ambiante. Pour errer dans une pièce encombrée, le large cône du sonar est vraiment un avantage. Pour mesurer la distance à une chose précise, le laser gagne.

Faut-il une machine à états pour l'évitement d'obstacles ?

Il en faut une dès que le comportement a plus de deux états, et l'évitement d'obstacles y arrive presque aussitôt : rouler, s'arrêter, balayer, tourner, reculer, récupérer. Écrit en conditionnelles imbriquées, cela devient illisible en un après-midi, et pire, vous perdez la capacité de répondre à « que fait le robot en ce moment » — la question par laquelle commence chaque session de débogage. Une machine à états explicite en fait une variable unique à afficher.

Un robot réactif peut-il se coincer ?

Oui, et c'est une propriété de l'approche plutôt qu'un bogue corrigeable. Un robot sans mémoire dans un coin concave ou une impasse en U tournera vers la direction la plus ouverte, roulera, et reviendra où il a commencé, pour toujours. Les atténuations habituelles sont une composante aléatoire dans le choix du virage, et un détecteur de blocage qui déclenche une manœuvre d'échappée plus ample après plusieurs tentatives ratées. La vraie correction est la mémoire, donc une carte — et c'est un autre parcours.