Labyrinthe du solveur Robot, à l’aide de l’Intelligence artificielle avec Arduino (4 / 10 étapes)

Étape 4: Résoudre le labyrinthe - la règle de la main gauche

Tel que discuté à l’introduction, la majorité des labyrinthes, toutefois complexe leur conception peut apparaître, étaient essentiellement formé d’un mur continu avec beaucoup de jonctions et de branches. Si le mur qui entoure l’objectif d’un labyrinthe est branché sur le périmètre du labyrinthe à l’entrée, le labyrinthe peut toujours être résolu en gardant une main en contact avec le mur, cependant de nombreux détours pouvant impliquer. Ces labyrinthes « simples » sont appelés correctement « Simplement connecté. »

La recherche sur Wikipedia, nous apprenons que «le suiveur de mur est la règle plus connue permettant de parcourir des labyrinthes. Il est également connu sous le nom de la règle gauche ou la droite règle. Si le labyrinthe est simplement connexe, c'est-à-dire tous ses murs sont connectés ensemble ou à la limite extérieure de la maze, puis en gardant une main en contact avec un mur du labyrinthe le solveur est garanti de ne pas se perdre et atteindra une sortie différente s’il y en a un ; Sinon, elle retourne à l’entrée ayant parcouru chaque corridor à côté qui reliait section des murs au moins une fois."

En bref, la règle de la main gauche peut être décrite comme :

  1. Placez votre main gauche sur le mur.
  2. Commencer à marcher vers l’avant
  3. À tous les carrefourset tout au long du labyrinthe, gardez votre main gauche touche le mur sur votre gauche.
  4. Finalement, vous arriverez à la fin du labyrinthe. Vous allez sans doute pas le moyen le plus court et plus direct, mais vous y arriverez.

Donc, la clé ici est d’identifier les intersections, définir quel cours à prendre selon les règles ci-dessus. Plus précisément dans notre genre de labyrinthe 2D, on retrouve 8 différents types d’intersections (voir la photo 1) :

En regardant la photo, nous pouvons réaliser que les actions possibles aux intersections sont :

  1. À une « croix »

    • Aller à gauche
    • Aller à droite
    • Aller tout droit
  2. À un « T » :
    • Aller à gauche
    • Aller à droite
  3. À un droit uniquement :
    • Aller à droite
  4. À gauche seulement :
    • Aller à gauche
  5. À droite ou à gauche :
    • Aller à gauche
    • Aller tout droit
  6. À la droite ou vers la droite :
    • Aller à droite
    • Aller tout droit
  7. Dans une impasse :
    • Aller retour ("U turn")
  8. À la fin du labyrinthe :
    • Arrêter

Mais, en appliquant la « règle de la main gauche », les actions seront réduites à une seule option de chaque :

  1. À une « croix »: aller à gauche
  2. À un « T »: aller à gauche
  3. En un seul à droite : aller à droite
  4. À gauche seulement : aller à gauche
  5. À droite ou à gauche : aller à gauche
  6. À droite ou de droite : allez tout droit
  7. Dans une impasse : aller retour ("U turn")
  8. À la fin du labyrinthe : arrêter

Nous sommes presque là. Lorsque le robot atteint une impasse et à la fin d’un labyrinthe, il est facile de l’identifier car il n’existe pas des situations ambiguës (nous avons déjà mis en place ces actions sur le Robot suiveur de ligne). Le problème c’est quand le robot trouver une « ligne » par exemple, parce qu’une ligne peut être une « croix » (1) ou un "T" (2). Lorsqu’il atteint une « gauche ou droite tour », ceux qui peuvent également être les options d’aller directement ou un simple tour (options 3 ou 4) (5 ou 6). Pour découvrir exactement de quel type d’intersection, le robot est, il faut une étape supplémentaire : le robot doit exécuter un supplément « pouce » et voir ce qui est prévu (voir la photo 2 par exemple).

Donc, en termes de flux, que les actions possibles peuvent être maintenant décrire comme :

  1. Dans une impasse : aller retour ("U turn")
  2. Dans la ligne :
    • Exécuter un supplément de pouce
    • S’il y a une ligne : c’est une « croix » == > aller vers la gauche
    • S’il n’y a pas de ligne : c’est un « T » == > aller vers la gauche
    • S’il y a une autre ligne : c’est la fin du labyrinthe == > STOP
  3. À un virage à droite :
    • Exécuter un supplément de pouce
    • s’il y a une ligne : c’est une ligne droite ou droite == > aller directement
    • S’il n’y a pas de ligne : c’est un droit que == > aller à droite
  4. À un virage à gauche :
    • Exécuter un supplément de pouce
    • s’il y a une ligne : c’est une ligne droite ou gauche == > aller gauche
    • S’il n’y a pas de ligne : c’est une gauche seulement == > aller vers la gauche

Noter qu’en fait, dans le cas d’un « virage à gauche", vous pouvez passer le test, car vous prendrez gauche de toute façon. J’ai quitté l’explication plus générique uniquement par souci de clarté. Le code réel j’ignore cet essai.

(le diagramme 3, montre un labyrinthe très simple sur mon plancher de lab, que j’utilise à des fins de test) :

Articles Liés

Comment à l’aide de vieux moteurs moteurs avec Arduino et pilote A4988

Comment à l’aide de vieux moteurs moteurs avec Arduino et pilote A4988

J'ai été en utilisant moteurs pas à pas pendant un certain temps maintenant, et ils sont fantastiques pour toutes sortes de projets robotiques.Aujourd'hui, je vais partager les choses que j'ai appris jusqu'ici sur la réutilisation de vieux moteurs pa
Main robotisée contrôlée par geste avec Arduino + saut Motion

Main robotisée contrôlée par geste avec Arduino + saut Motion

Bonjour à tous,Comme promis, j'ai fait une instruction complète étape par étape pour mon projet final universitaire !Tout d'abord : Désolé pour mon mauvais anglais ! Si quelque chose n'est pas clair, s'il vous plaît laisser un commentaire.La main est
Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

S'il vous plaît voir une nouvelle approche plus simple iciObjectif : Ce Instructable montre comment faire une boîte d'interface qui, lorsque raccordé à une rallonge, permet de microcontrôleurs communs comme l'Arduino à mesure AC courant comme un sign
Robot suiveur de ligne axée sur l’Arduino à l’aide du capteur de ligne Pololu QTR-8RC

Robot suiveur de ligne axée sur l’Arduino à l’aide du capteur de ligne Pololu QTR-8RC

mise à jour février 2012 : ce guide est présenté sur le blog de Adafruithttp://www.Adafruit.com/blog/2012/02/14/Arduino-Based-Line-Follower-robot/Il s'agit de Faz3a II, mon premier robot ligne-qui suit, qui je l'espère aussi à utiliser pour la résolu
Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Objectif et description du présent guideCette instructable est une main pour un projet d'école que nous avons fait. Le but de ce projet était de créer un contrôle de bras de robot à l'aide des Sticks. Nous avons dû utiliser un Arduino Uno pour le con
Distance robot contrôlé à l’aide de la télécommande Arduino et T.V.

Distance robot contrôlé à l’aide de la télécommande Arduino et T.V.

Cette voiture contrôlée à distance peut être déplacée autour à l'aide de pratiquement n'importe quel genre de distance tels que TV, AC etc..Il utilise le fait que la télécommande émet IR(infrared).Cette propriété est faite usage d'à l'aide d'un récep
Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Il s'agit d'un obstacle sans fil contrôlé, autonome détection robot !Un temps, j'avais fait ce Instructable et voulait faire quelques mises à jour majeures depuis.Voici les caractéristiques du robot:-1.HE de contrôle sans fil en utilisant des 433 mod
Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

J'ai récemment pris sa retraite et une des choses que je me suis promis était que lorsque j'ai prenaient leur retraite j'allais terminer tous les projets que j'ai dû courir dans ma tête depuis que je suis un adolescent. C'est une cinquantaine d'année
Commander votre Robot à l’aide de téléphone portable

Commander votre Robot à l’aide de téléphone portable

CE tutoriel complet est également disponible sur mon site WebBonjour monde dans ce post je vais vous montrer comment faire pour contrôler le robot à l'aide de téléphone portable. Contrôler un robot à l'aide de téléphone portable n'est pas si compliqu
COMMANDE manuelle / autonome ROBOT (à l’aide de la TECHNIQUE de FUSION de capteur)

COMMANDE manuelle / autonome ROBOT (à l’aide de la TECHNIQUE de FUSION de capteur)

DTMF ou Dual Tone Multiple Frequency est chouette petite voie de contrôle des machines à votre téléphone portable. Cette instructable vous, lecteur doux montre comment faire un moins cher que la saleté DTMF contrôlée robot qui peut également fonction
Mur en suivant le Robot à l’aide de 555 Timer

Mur en suivant le Robot à l’aide de 555 Timer

EDIT :Ce robot est également au concours de Robot pour la catégorie des 12-18 ans.Avant-propos :Dans ce instructable je vais écrire les idées de base que j'ai utilisé pour faire un mur suite robot sans n'importe quel microcontrôleur. Le robot dans ce
Robot quadrupède à l’aide de 2 servos avec arduino fait maison

Robot quadrupède à l’aide de 2 servos avec arduino fait maison

hey tout le mondeSi vous avez obtenu un arduino mini et deux servos standard, vous pouvez faire un petit robo qui marche sur deux 4 pattes d'animal familier.mais dans le projet, j'ai n'a pas utilisé un arduino original. J'ai utilisé un microcontrôleu
Ligne de base suivant Robot avec Arduino

Ligne de base suivant Robot avec Arduino

07/09/2015Il a été quelques années puisque nous avons affiché initialement ce Robot suivant ligne de base avec tutorial Arduino, et il semble tellement de gens a jugé utile que nous devrions poster une mise à jour qui se déroule courant Arduino bibli
Comment faire un téléphone Mobile et l’ordinateur contrôlé 3D Robot imprimé avec Arduino - IoBot.

Comment faire un téléphone Mobile et l’ordinateur contrôlé 3D Robot imprimé avec Arduino - IoBot.

Si vous cherchez un moyen de contrôler un Arduino basé des périphériques, cette instruction vous montrera comment le faire en s'appuyant simple robot.Le IoBot peut être contrôlé par une application mobile et l'ordinateur via LAN ou câble USB. L'appli