Labyrint Problemlösaren Robot, med artificiell intelligens med Arduino (4 / 10 steg)

Steg 4: Lösa labyrinten - vänster Hand regeln



Som diskuterats på inledning majoriteten av labyrinter, men komplexa deras design kan visas, i huvudsak bildades från en kontinuerlig vägg med många korsningar och grenar. Om muren som omger målet av en labyrint är ansluten till omkretsen av labyrinten vid ingången, labyrinten alltid kan lösas genom att hålla en hand i kontakt med väggen, men många omvägar som kan innebära. Dessa "enkla" labyrinter är korrekt kallas "Helt enkelt-ansluten".

Söka på Wikipedia, vi lär oss att "vägg efterföljare är den mest kända regeln för korsa labyrinter. Det är även känd som regeln om vänstra eller högra regeln. Om labyrinten är enkelt anslutna, det vill säga är alla dess väggar anslutna tillsammans eller till en labyrint yttre gräns, sedan genom att hålla en hand i kontakt med en vägg av labyrinten Problemlösaren garanteras inte att gå vilse och kommer att nå en annan utgång om det finns en; annars kan han eller hon kommer att återvända till ingången efter att ha korsat varje korridor bredvid som ansluten avsnitt av väggar minst en gång."

Kort sagt, kan den vänstra handen regeln beskrivas som:

  1. Placera din vänstra hand på väggen.
  2. Börja gå framåt
  3. Vid varje korsning, och hela labyrinten, håll vänster hand röra väggen på vänster sida.
  4. Så småningom kommer du nå slutet av labyrinten. Du kommer förmodligen inte att gå den kortaste och mest direkta sättet, men du kommer dit.

Så, viktigaste här är att identifiera korsningarna, definiera vad kursen ta utifrån ovanstående regler. Särskilt i våra slags 2D labyrint, kan vi hitta 8 olika typer av korsningar (se bild 1):

Titta på bilden, kan vi inse att de möjliga åtgärderna vid korsningar är:

  1. På en "korsning"
    • Gå till vänster
    • Gå till höger
    • Rakt fram
  2. På ett "T":
    • Gå till vänster
    • Gå till höger
  3. På rätt endast:
    • Gå till höger
  4. En vänster bara:
    • Gå till vänster
  5. På stege eller vänster:
    • Gå till vänster
    • Rakt fram
  6. På rak eller höger:
    • Gå till höger
    • Rakt fram
  7. På en återvändsgränd:
    • Gå tillbaka ("U-sväng")
  8. Slutet av labyrinten:
    • Stanna

Men, tillämpa "Vänster Hand regeln", vilka åtgärder kommer att minskas till ett alternativ:

  1. På en "korsning": gå till vänster
  2. På ett "T": gå till vänster
  3. På rätt bara: gå till höger
  4. En vänster bara: gå till vänster
  5. På stege eller vänster: gå till vänster
  6. På rak eller höger: gå rakt
  7. På en återvändsgränd: gå tillbaka ("U-sväng")
  8. Slutet av labyrinten: stoppa

Vi är nästan där. När roboten når en återvändsgränd eller slutet av en labyrint, det är lätt att identifiera det eftersom existerar inte tvetydiga situationer (vi har redan genomfört dessa åtgärder på rad efterföljare Robot). Problemet är när roboten hitta en "linje" till exempel, eftersom en linje kan vara ett "kors" (1) eller ett "T" (2). Också när den når en "vänster eller höger sväng", de kan vara i en enkel (alternativ 3 eller 4) eller alternativ att gå rakt (5 eller 6). För att upptäcka exakt på vilken typ av korsning roboten är, måste ett ytterligare steg tas: roboten måste köra en "extra tum" och se vad som händer (se bild 2 som ett exempel).

Så, när det gäller flödet av möjliga åtgärder kan vara nu beskrivs som:

  1. På en återvändsgränd: gå tillbaka ("U-sväng")
  2. På en linje:
    • Kör en extra tum
    • Om det finns en linje: det är en "korsning" == > gå till vänster
    • Om det finns ingen linje: det är ett "T" == > gå till vänster
    • Om det finns en annan linje: det är i slutet av labyrinten == > stoppa
  3. Vid en höger sväng:
    • Kör en extra tum
    • om det finns en linje: det är en rak eller rätt == > gå direkt
    • Om det finns ingen linje: det är en rätt bara == > gå till höger
  4. Vid en vänster sväng:
    • Kör en extra tum
    • om det finns en linje: det är en rak eller vänster == > gå vänster
    • Om det finns ingen linje: det är en vänster bara == > gå till vänster

Observera att i själva verket vid en "VÄNSTERSVÄNG", kan du hoppa över test, eftersom du tar vänster ändå. Jag lämnade förklaringen mer generisk bara för tydlighetens skull. På riktiga koden kommer jag hoppa över detta test.

(bild 3, visar en mycket enkel labyrint på min lab våningen, som jag använder på försök):

Se Steg
Relaterade Ämnen

Labyrint Problemlösaren med Arduino och ArduMoto(Micromouse) V:1.2

Här '' Instructables'' syftar till att hjälpa någon maker, entusiast att göra sin egen labyrint Problemlösaren (Micromouse). Förekomsten av Micromouses har dateras tillbaka till 1950-talet och tävlingar hålls sedan dess. Även dessa tävlingar kan kräv...

Arduino talande Robot baserad artificiell intelligens

Detta projekt kommer att göra vår talande robot med artificiell intelligens-baserade Arduino.Än i våra tidigare projekt gjort vi vår robot vi checkade in telefonens röstkommando.Du kan se det här.Detta projekt att utveckla vår robot, röstkommandon ko...

Grundläggande raden efter Robot med Arduino

09/07/2015Det har varit några år eftersom vi Ursprungligen postat denna grundläggande linje följande Robot med Arduino handledning, och det verkar så många människor tyckte att det bra att vi ska skicka en uppdatering som löper nuvarande Arduino bibl...

Roboten labyrint Problemlösaren

Denna handledning hjälper dig skapa en Arduino baserad robot som kan lösa grundläggande linje labyrinter som inte har slutna slingor.Hur det fungerar:Roboten är programmerad att köra över de svarta linjerna av labyrinten och använda optiska sensorer...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Hur man gör en mobiltelefon och dator kontrolleras 3D tryckta Robot med Arduino - IoBot.

Om du letar efter ett sätt att kontrollera en Arduino baserade enheter, kommer att denna anvisning Visa dig hur man gör det genom att bygga enkla robot.IoBot kan styras med mobil och dator ansökan via LAN eller USB-kabel. Programmet körs på Android,...

Hinder att undvika Robot med arduino

HINDER - ATT UNDVIKA ROBOTEtt hinder att undvika ROBOT är en som kan undvika ett hinder med hjälp av ultraljud sensor och gå i sin egen väg. Med en skärbräda bifogas roboten kan du spela roliga inom en kort tid. En sådan är vad vi ska diskutera här....

2WD röst kontrollerat Robot med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man bygger en 2WD röststyrd robot. Även om jag kontrollera endast DC motorer om du vill flytta roboten, samma tillvägagångssätt kan användas till röststyrning stegmotorer och servomotorer, så om du planerar att b...

Realtid ansikte spårning Robot med Arduino och Matlab

Realtid ansiktsspårning avser uppgiften att lokalisera ansikten i en videoström och spårning hittas eller igenkända ansikten. Numera finns det många verkliga tillämpningar av ansiktsavkänning och andra tekniker för bildbehandling. Det finns många alg...

Kontrollera en Roomba robot med Arduino och Android

(Om du gillar detta Instructable, glöm inte att rösta på den - ovan: högra hörnet flaggan. Det tävlar på AUTOMATION tävling. Tack så mycket! ;-)Som en av robotteknik tävling 2016 vinnarna här på Instructables fick jag som pris en iRobot Roomba Create...

Avlägsen kontrollerade robot med Arduino och T.V. remote

Denna fjärrkontroll bil kan flyttas runt med praktiskt taget alla slags remote såsom TV, AC etc.Det använder sig av det faktum att fjärrkontrollen avger IR(infrared).Den här egenskapen är gjord använda av med hjälp av en IR-mottagare, vilket är en my...

Gör en Robot med Arduino för nybörjare

Steg 1: Material som behövs Tamiya spår och rullar in församling ($7,95 på Pololu)Tamiya 70168 dubbla växellåda Kit ($9,25 på Pololu)L298N dubbla H Bridge ($3,65 på Amazon och kan vara mycket lägre på ebay)4AA batterihållare (används från trasig elek...

SainSmart InstaBots upprätt Rover (själv balansera Robot med Arduino)

Upprätt Rover är en självbalanserande robot som ritades av SainSmart. De verkligen gjort det enkelt. Som ni ser, finns det bara 8 ledningar på robot och 8 ledningar på handkontrollen. Så låt oss ta reda på hur det fungerar!DELAR I RUTAN3 x Potentiome...

Gest kontroll car(robot) med Arduino och Android(bluetooth)

Hej folk,Här är ett intressant projekt för alla er kreativa hjärnor ute. Vi ska bygga en android-telefon kontrollerade RC bil.Inget kunde vara mer fascinerande än avlägsen kontrollerade bilar. Denna använder en Bluetooth för kommunikation och acceler...

Extremt enkel linje efter Robot med Arduino

I detta Instructable ska vi bygga en enkel allmän linje efter arduinobot. Det kommer att finnas ett stort utrymme för kreativitet i detta Instructable.Roboten, i denna tutorial, drivs av 4 AA-batterier och är kunna följa svart eltejp av en vit yta.St...

Gör en självbalanserande Robot med Arduino UNO

Själv balansera Robot är mycket intressant. Många vänner runt omkring oss försökte göra en, men de encounted en hel del chanllenges bland annat bristen på strukturerna som lätt-till-montering, de lämpliga elektroniska kretsarna och program. Så jag be...

Billig Robot med Arduino

jag ville lära mig elektronik, Arduino programmering, och lödning så jag tänkte att jag skulle plocka en av Randys projekt och kopiera den.Jag slutade med en annan motor konfiguration. Min front motor pekar ner och vänder lite kvartalet växel som vän...

Hur du använder verktyget Problemlösaren i Excel

syftet med denna guide är att introducera människor till datorprogrammet Microsoft Excel. Vi kommer särskilt att fokusera på Problemlösaren verktyg aspekten av programmet och hur användare kan använda det till sin fördel. Denna guide kommer att täcka...

Hur man har kul med Arduino (och bli en nörd i processen)

vill du tjäna din geek-kort - pronto? Låter komma igång! Denna guide börjar du på sökvägen till den mörka sidan med hjälp av öppen källkod Arduino utveckling och prototyping plattformen. Det kommer att introducera dig till mikrokontroller, komma igån...