Catégories
MBOT Robotique

Programmer un robot suiveur de couloir et explorateur de labyrinthe

0 Partages

Le défi proposé consiste à programmer un robot capable de suivre un couloir au centre, de s’arrêter en fin de couloir, puis de choisir une nouvelle direction en privilégiant une possibilité d’un nouveau couloir à droite.

Le robot est équipé de trois capteurs de collision :

  • Un capteur avant : détecte la fin du couloir ou un obstacle frontal.
  • Un capteur latéral droit : permet de rester centré dans le couloir et de vérifier si un passage existe à droite.
  • Un capteur latéral gauche : même rôle que le droit, mais du côté gauche.

Suivre le couloir au centre

Tant que le capteur avant ne détecte pas la fin du couloir :

  • le robot avance,
  • il vérifie la distance avec les murs grâce aux capteurs gauche et droit,
  • si l’un des murs est trop proche, il s’en éloigne légèrement pour rester centré.

Détection de fin de couloir

Lorsque le capteur avant détecte un obstacle frontal ou l’absence de mur en face :

  • le robot s’arrête,
  • il regarde à droite, puis à gauche, pour déterminer s’il existe un nouveau couloir dans l’une de ces directions.

Choix de la direction

  1. Si un passage existe à droite, il tourne à droite et avance.
  2. Sinon, si un passage existe à gauche, il tourne à gauche et avance.
  3. Sinon, aucune direction n’est possible : le robot effectue un demi-tour.

Algorithme simplifié

répéter :

   si capteur avant détecte fin du couloir :
       arrêter le robot
       si côté droit ouvert :
            tourner à droite
       sinon si côté gauche ouvert :
            tourner à gauche
       sinon :
            faire demi-tour

   sinon :
        si mur trop proche à droite : se décaler à gauche
        sinon si mur trop proche à gauche : se décaler à droite
        sinon avancer au centre du couloir

Le code sous mBlock :

Pour aller tout droit dans le couloir :

Pour choisir sa direction :

0 Partages