Doolhof van Oplosser Robot, met behulp van kunstmatige intelligentie met Arduino (4 / 10 stap)

Stap 4: Oplossen van de Maze - de regel van de linkerhand


Zoals besproken bij introductie de meerderheid van de doolhoven, echter complex hun ontwerp lijken, werden hoofdzakelijk gevormd uit een continue muur met vele kruispunten en takken. Als de muur rond het doel van een doolhof is aangesloten op de omtrek van het labyrint bij de ingang, de doolhof altijd kan worden opgelost door te houden enerzijds bij aanraking met de muur, maar veel omwegen die verbonden zijn eventueel. Deze 'eenvoudige' doolhoven worden correct genoemd "Enkelvoudig samenhangende."

Zoeken op Wikipedia, leren we dat "de volgeling van de muur de bekendste regel is voor het doorlopen van de doolhoven. Het is ook bekend als de linker regel of de rechter regel. Als het doolhof enkelvoudig samenhangend is, dat wil zeggen, worden alle de muren verbonden samen of aan de buitenrand van de doolhof, dan houden enerzijds in contact met een muur van de maze de Oplosser is gegarandeerd niet verdwalen en zal een andere uitgang bereiken als er een; anders, hij of zij zal terugkeren naar de ingang naast elke gang hebben doorkruist die sectie van muren ten minste eenmaal verbonden."

Kortom, kan de regel van de linkerhand omschreven worden als:

  1. Plaats je linkerhand op de muur.
  2. Beginnen lopen vooruit
  3. Op elk snijpunt van, en in het doolhof, houd uw linkerhand raken van de muur aan uw linkerkant.
  4. Uiteindelijk, bereik je het eind van het doolhof. Zal je waarschijnlijk niet naar de kortste en meest directe manier, maar je zal er komen.

Dus, de sleutel is hier is het identificeren van de snijpunten, definiëren welke cursus te nemen op basis van de bovenstaande regels. Specifiek in onze soort 2D doolhof vinden we 8 verschillende soorten kruispunten (zie afbeelding 1):

Op zoek naar de afbeelding, kunnen we ons realiseren dat de mogelijke acties op kruispunten zijn:

  1. Aan een "kruis"

    • Ga naar links
    • Ga naar rechts
    • Rechtdoor
  2. Op een "T":
    • Ga naar links
    • Ga naar rechts
  3. Op een recht alleen:
    • Ga naar rechts
  4. Alleen een links:
    • Ga naar links
  5. Op rechte of links:
    • Ga naar links
    • Rechtdoor
  6. Op rechte of recht:
    • Ga naar rechts
    • Rechtdoor
  7. Op een dood spoor:
    • Ga terug ("U-bocht")
  8. Aan het eind van het doolhof:
    • Stop

Maar, de "regel van de linkerhand" toe te passen, de acties zal worden verlaagd tot één optie elke:

  1. Aan een "kruis": Ga naar links
  2. Op een "T": Ga naar links
  3. Op een recht alleen: Ga naar rechts
  4. Een links alleen: Ga naar links
  5. Op rechte of links: Ga naar links
  6. Op rechte of recht: Go Straight
  7. Op een dood spoor: Ga terug ("U-bocht")
  8. Aan einde van doolhof: stoppen

We zijn er bijna. Wanneer de robot een doodlopende weg of het einde van een doolhof bereikt, is het gemakkelijk te identificeren, omdat bestaan niet dubbelzinnige situaties (wij hebben al deze acties op de lijn volgeling Robot uitgevoerd). Het probleem is wanneer de robot vinden een 'regel' bijvoorbeeld, omdat een regel kan een "Cross" (1) of een "T" (2). Wanneer het bereikt een "links of rechts draai", die kunnen ook de opties voor rechtdoor of een simpele draai (opties 3 of 4) (5 of 6). Om te ontdekken precies op wat voor soort doorsnede de robot is, een extra stap moet worden genomen: de robot moet uitvoeren van een "extra duim" en zien wat er volgende (Zie de figuur 2 als voorbeeld).

Dus, in termen van stroom die de mogelijke acties nu kunnen beschrijven als:

  1. Op een dood spoor: Ga terug ("U-bocht")
  2. Bij een regel:
    • Uitvoeren van een extra duim
    • Als er een lijn: het is een "kruising" == > Ga naar links
    • Als er geen lijn is: het is een "T" == > Ga naar links
    • Als er een andere lijn: het is het eind van het doolhof == > stoppen
  3. Bij een bocht naar rechts:
    • Uitvoeren van een extra duim
    • Als er een lijn: het is een Straight of rechts == > Ga rechtstreeks
    • Als er geen lijn is: het is een recht alleen == > Ga naar rechts
  4. Bij een linker bocht:
    • Uitvoeren van een extra duim
    • Als er een lijn: het is een Straight of links == > Ga links
    • Als er geen lijn is: het is een links alleen == > Ga naar links

Merk op dat in feite, in het geval van een "LINKSAF", kunt u de test, overslaan omdat je links toch zal nemen. Ik verliet de uitleg meer generieke alleen voor de duidelijkheid. De echte code zal ik deze test overslaan.

(de afbeelding 3, toont een zeer eenvoudige doolhof op mijn lab vloer, die ik gebruik voor testdoeleinden):

Gerelateerde Artikelen

Arduino Robot praten op basis van kunstmatige intelligentie

Arduino Robot praten op basis van kunstmatige intelligentie

Dit project zal doen onze pratende robot met kunstmatige intelligentie gebaseerde Arduino.Dan wij in onze vorige project onze robot die we in de spraakopdrachten van de telefoon ingecheckt gemaakt.U kunt hier zien.Dit project dat we onze robot, spraa
Basic Line Na Robot met Arduino

Basic Line Na Robot met Arduino

09/07/2015Een paar jaar geleden dat we aanvankelijk gepost deze elementaire regel volgende Robot met Arduino tutorial, en lijkt zo veel mensen vonden het nuttig dat we een update die loopt van de huidige Arduino Bibliotheken, moet post bevat de nieuw
Maken van een Robot met Arduino voor Beginners

Maken van een Robot met Arduino voor Beginners

Stap 1: Materialen die nodig zijn Tamiya Track en wiel instellen vergadering ($7.95 op Pololu)Tamiya 70168 dubbele versnellingsbak Kit ($9.25 op Pololu)L298N Dual H Bridge ($3.65 bij Amazon en misschien wel veel lager bij ebay)4AA batterijhouder (geb
Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Als u op zoek bent naar een manier om een Arduino gebaseerde apparaten te controleren, zal deze instructie u tonen hoe om het te doen door het bouwen van eenvoudige robot.De IoBot kan worden gecontroleerd door mobiel en computer toepassing via LAN of
Obstakel te vermijden Robot met arduino

Obstakel te vermijden Robot met arduino

OBSTAKEL - VERMIJDEN ROBOTEen obstakel te vermijden ROBOT is een die kan een obstakel te vermijden met behulp van ultrasone sensor en navigeren in haar eigen pad. Met een breadboard gekoppeld aan de robot kunt u plezier spelen binnen een korte period
Real Time ' Face-Tracking Robot met Arduino en Matlab

Real Time ' Face-Tracking Robot met Arduino en Matlab

Real time ' face-tracking verwijst naar de taak van het opsporen van menselijke gezichten in een video-stream en bijhouden van de gedetecteerde of herkende gezichten. Er zijn tegenwoordig veel echte wereld toepassingen van gezichtsherkenning en ander
Externe gecontroleerde robot met Arduino en T.V. afstandsbediening

Externe gecontroleerde robot met Arduino en T.V. afstandsbediening

Deze externe gecontroleerde auto kan worden verplaatst met behulp van vrijwel elk soort ras zoals TV, AC enz.Het maakt gebruik van het feit dat de afstandsbediening IR(infrared) uitzendt.Deze eigenschap is gemaakt met behulp van een IR-ontvanger, die
2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

In dit Instructable ga ik tonen hoe te om een 2WD spraakgestuurde robot te bouwen. Hoewel ik ben alleen gelijkstroommotoren als wilt verplaatsen de robot controle, dezelfde aanpak kan worden gebruikt voor de controle van de stem stappenmotoren en ser
Maak een zelfbalancerende Robot met Arduino UNO

Maak een zelfbalancerende Robot met Arduino UNO

Self balancing Robot is zeer interessant. Veel vrienden om ons heen wilden maken een, maar ze encounted alot van chanllenges met inbegrip van het ontbreken van de gemakkelijk-aan-de vergadering van structuren, de geschikte elektronische schakelingen
Gesture control car(robot) met Arduino en Android(bluetooth)

Gesture control car(robot) met Arduino en Android(bluetooth)

Hallo mensen,Hier is een interessant project voor alles wat je daar creatieve geesten. We gaan om een android telefoon gecontroleerde RC auto te bouwen.Niets zou zijn meer fascinerend dan extern gecontroleerde auto. Deze maakt gebruik van Bluetooth v
SainSmart InstaBots rechtop Rover (Self Balancing Robot met Arduino)

SainSmart InstaBots rechtop Rover (Self Balancing Robot met Arduino)

Rechtop Rover is een zelfbalancerende robot die werd ontworpen door SainSmart. Ze maakten het echt eenvoudig. Zoals u zien kunt, zijn er slechts 8 draden op de robot en 8 draden op de controller. Dus laten we het weten hoe het werkt!ONDERDELEN IN HET
Goedkope Robot met Arduino

Goedkope Robot met Arduino

ik wilde leren elektronika, Arduino, programmering, en het solderen dus ik dacht dat ik zou halen een van Randy's projecten en kopiëren.Ik beëindigde omhoog met een andere motor configuratie. Mijn voorste motor omlaag wijst en verandert een beetje kw
Uiterst eenvoudig Line Na Robot met Arduino

Uiterst eenvoudig Line Na Robot met Arduino

In dit Instructable gaan we om te bouwen van een eenvoudige generische lijn na arduinobot. Er zullen veel ruimte voor creativiteit in dit Instructable.De robot, in deze tutorial wordt gevoed off van 4 AA batterijen en kan volgen van zwarte isolatieta
Maak een eenvoudige draadloze RF robot met behulp van Arduino!

Maak een eenvoudige draadloze RF robot met behulp van Arduino!

UPDATE: IK HEB JOYSTICK-CONTROLE TOEGEVOEGD AAN DEZE ROBOT. GELIEVE TE VERWIJZEN NAAR DE STAP 7, ALS U WILT BEPALEN UW ROBOT VIA JOYSTICK.HalloDit is mijn eerste instructable en in deze tutorial, I 'm gonna Toon u hoe te bouwen van een eenvoudige dra