1 / 23

Roboter im Labyrinth

Roboter im Labyrinth. “ Schweizer Jugend forscht” Studienwoche Informatik Barbara Rubi, Fabienne Schwab, Shuyang Xu. Inhalt der Präsentation. Ziel des Projekts Grundsätzliches Vorgehen Probleme Erfolge Visionen Demonstration. Ziel des Projekts.

annice
Télécharger la présentation

Roboter im Labyrinth

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Roboter im Labyrinth “Schweizer Jugend forscht” Studienwoche Informatik Barbara Rubi, Fabienne Schwab, Shuyang Xu

  2. Inhalt der Präsentation • Ziel des Projekts • Grundsätzliches • Vorgehen • Probleme • Erfolge • Visionen • Demonstration

  3. Ziel des Projekts Ein Roboter soll so programmiert werden, dass er selbstständig aus einem Labyrinth herausfindet.

  4. Grundsätzliches • Ein Roboter findet sicher aus einem Labyrinth (ohne Inseln), indem er immer rechts oder links der Wand entlang fährt. • Er braucht mindestens drei Entfernungs-sensoren, um in allen Situationen die richtige Entscheidung treffen zu können.

  5. Vorgehen • Datenaustausch zwischen Roboter und Computer herstellen • Ermittlung von möglichen Situationen im Labyrinth • Zeichnen eines Flow-Charts • Zerlegen des Problems in Einzelprogramme • Zusammenfügen des Hauptprogramms • Testen im Labyrinth • Anbringen von Verbesserungen, Änderungen und Ergänzungen

  6. Probleme • Eichung der Sensoren erfordert präzise Messungen • Korrektur von Fehlpositionen • Optimale Abfolge von Entscheidungsschritten erarbeiten

  7. Erfolge • erste präzise Linkskurve • korrekte Entscheidung der Situation • gelungene Korrektur der Fehlpositionen • erster erfolgreicher Durchlauf des Labyrinths

  8. Visionen • Überwindung eines Labyrinths mit Inseln • Anwendung in der Forschung, Haushalt etc. (z.B. Minensucher, Staubsauger, Rasenmäher usw.)

  9. Wir danken … • …der FHBB für die Idee des Projekts und die Bereitstellung des Roboters • …der Stiftung Schweizer Jugend forscht • …unseren Betreuern Andreas Kiebele und Radolf von Salis

  10. '{$STAMP BS2} 'variabeln i VAR BYTE 'loop zähler e1 VAR BYTE 'ergebnis ausgelesen von sensor 3 e2 VAR BYTE 'ergebnis ausgelesen von sensor 2 e3 VAR BYTE 'ergebnis ausgelesen von sensor 1 steps VAR BYTE 'Anzahl Schritte zaehler VAR BYTE 'Anzahl Korr HIGH 10 HIGH 12 HIGH 14 '--------------------------------------------- LOOP: IF IN0=0 THEN Start GOTO LOOP Start: Pause 1000 Sensor: 'sensor messung starten e1=0 e2=0 e3=0 LOW 10 LOW 12 LOW 14 pause 80 'sensor daten auslesen FOR i= 0 TO 7 PULSOUT 10,70 PULSOUT 12,70 PULSOUT 14,70 e1=e1*2+IN11 e2=e2*2+IN13 e3=e3*2+IN15 NEXT

  11. e1=65535/(10*e1)-(287/10) e2=65535/(9*e2)-(275/9) e3=65535/(7*e3)-(298/7) HIGH 10 HIGH 12 HIGH 14 DEBUG "sensor3 ",DEC5 e1,CR DEBUG "sensor2 ",DEC5 e2,CR DEBUG "sensor1 ",DEC5 e3,CR DEBUG CR '------------------------------------------------ 'fallunterscheidung IF zaehler > 8 THEN GERADE IF e1 > 30 THEN LINKS IF e3 < 30 THEN RECHTS IF e1 < 19 THEN DISTKORR1 IF e1 > 25 THEN DISTKORR2 IF (e1-e2) > 65515 THEN RECHTSKORR IF (e1-e2) < 2 THEN GERADE IF (e1-e2) < 60000 THEN LINKSKORR GOTO GERADE '------------------------------------------------- LINKS: HIGH 3 'kurzes stueck gerade PAUSE 200 LOW 3 LOW 6 LOW 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 129 PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT

  12. HIGH 3 PAUSE 200 LOW 3 LOW 6 HIGH 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 99 'linksdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT HIGH 3 'kurzes stueck gerade PAUSE 200 LOW 3 LOW 6 LOW 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 169 PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor '-------------------------------------------------- RECHTS: HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 LOW 5

  13. HIGH 2 HIGH 4 FOR i=0 TO 92 'rechtsdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor '------------------------------------------------- GERADE: zaehler = 0 HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 49 PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor '--------------------------------------------------- LINKSKORR: debug "links e1-e2 ",dec (e1-e2),cr zaehler = 1+zaehler

  14. PAUSE 200 LOW 3 LOW 6 HIGH 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 4 'linksdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor '----------------------------------------------------------- RECHTSKORR: debug "rechts e1-e2 ",dec (e1-e2),cr zaehler = 1+zaehler HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 LOW 5 HIGH 2 HIGH 4 FOR i=0 TO 4 'rechtsdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor '---------------------------------------------------------------- DISTKORR1:

  15. LOW 6 LOW 1 LOW 5 HIGH 2 HIGH 4 FOR i=0 TO 15 'rechtsdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 80 PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT HIGH 3 PAUSE 200 LOW 3 LOW 6 HIGH 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 15 'linksdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT GOTO Sensor

  16. DISTKORR2: HIGH 3 PAUSE 200 LOW 3 LOW 6 HIGH 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 15 'linksdrehung PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 HIGH 5 HIGH 2 HIGH 4 FOR i=0 TO 80 PULSOUT 2,13 PULSOUT 4,13 PAUSE 20 NEXT HIGH 3 PAUSE 200 LOW 3 LOW 6 LOW 1 LOW 5 HIGH 2 HIGH 4 FOR i=0 TO 12 'rechtsdrehung

  17. Herzlichen Dank für Ihre Aufmerksamkeit Auf Wiedersehen

  18. Sensor1 < 30cm? Hauptprogramm (Sensor): Startet Messung, liest Sicherheitsfunktion, um Endlosschlaufen abzubrechen Sensordaten S1,S2,S3 ein Zaehler > Sensor3 > Zu weite Distanz Ja 6,5cm gerade fahren Ja 8? 25cm? korrigieren Nein ( Sensor3 - Nein Sensor3 > Ja Ja 90-Grad-Linksdrehung Korrektur nach rechts Sensor2 ) > 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Nein Zu nahe Distanz Sensor3 < Ja (Sensor3– Sensor2) < 60000? korrigieren 19cm? Ja Korrektur nach links Nein Messrichtung S3 S3 Messrichtung S1 Messrichtung S2 S2 STAMPY S1

  19. Sensor1 < 30cm? Hauptprogramm (Sensor): Startet Messung, liest Fall1: Sieht Sensor 3 keine Wand, dreht sich der Roboter nach links Sensordaten S1,S2,S3 ein Zaehler > Sensor3 > Zu weite Distanz Ja 6,5cm gerade fahren Ja 8? 25cm? korrigieren Nein ( Sensor3 - Nein Sensor3 > Ja Ja 90-Grad-Linksdrehung Korrektur nach rechts Sensor2 ) > 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Nein Zu nahe Distanz Sensor3 < Ja (Sensor3– Sensor2) < 60000? korrigieren 19cm? Ja Korrektur nach links Nein Keine Wand Messrichtung S3 S3 Messrichtung S1 Ecke Messrichtung S2 S2 STAMPY S1

  20. Sensor1 < 30cm? Hauptprogramm (Sensor): Startet Messung, liest Sensordaten S1,S2,S3 ein Zaehler > Sensor3 > Zu weite Distanz Ja 6,5cm gerade fahren Ja 8? 25cm? korrigieren Nein ( Sensor3 - Nein Sensor3 > Ja Ja 90-Grad-Linksdrehung Korrektur nach rechts Sensor2 ) > 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Nein Zu nahe Distanz Sensor3 < Ja (Sensor3– Sensor2) < 60000? korrigieren 19cm? Ja Korrektur nach links Nein Wand Fall2: Sieht Sensor 1 eine Wand, dreht sich der Roboter nach rechts Messrichtung S3 S3 Messrichtung S1 Messrichtung S2 S2 STAMPY S1

  21. Sensor1 < 30cm? Hauptprogramm (Sensor): Startet Messung, liest Sensordaten S1,S2,S3 ein Zaehler > Sensor3 > Zu weite Distanz Ja 6,5cm gerade fahren Ja 8? 25cm? korrigieren Nein ( Sensor3 - Nein Sensor3 > Ja Ja 90-Grad-Linksdrehung Korrektur nach rechts Sensor2 ) > 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Nein Zu nahe Distanz Sensor3 < Ja (Sensor3– Sensor2) < 60000? korrigieren 19cm? Ja Korrektur nach links Nein Der Roboter entscheidet, ob er den Winkel oder den Abstand zur Wand korrigieren soll und korrigiert ihn falls noetig Messrichtung S3 S3 Messrichtung S1 Messrichtung S2 S2 STAMPY S1

  22. Sensor1 < 30cm? Hauptprogramm (Sensor): Startet Messung, liest Sensordaten S1,S2,S3 ein Zaehler > Sensor3 > Zu weite Distanz Ja 6,5cm gerade fahren Ja 8? 25cm? korrigieren Nein ( Sensor3 - Nein Sensor3 > Ja Ja 90-Grad-Linksdrehung Korrektur nach rechts Sensor2 ) > 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Nein Zu nahe Distanz Sensor3 < Ja (Sensor3– Sensor2) < 60000? korrigieren 19cm? Ja Korrektur nach links Nein Nachdem eine Entscheidung zu einer Aktion gefuehrt hat (z.B. der Roboter hat sich nach rechts gedreht), startet wieder das Hauptprogramm. Messrichtung S3 S3 Messrichtung S1 Messrichtung S2 S2 STAMPY S1

More Related