Roboter im Labyrinth “Schweizer Jugend forscht”

Slides:



Advertisements
Ähnliche Präsentationen
Robotik II Entwicklung einer Software zur Steuerung und Visualisierung eines Fischerroboters.
Advertisements

Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Codierung Haydn: Streichquartett op 54.3 aus Largo, Violine I
1 low:=low-Q 2 high:=high-Q 2 low:=low-Q 1 high:=high-Q 1.
Und nun folgt ein Beitrag der Schülervertretung
CSCW-Seminar Escape the Maze C omputer S upported C ollaborative W ork Escape the Maze ist ein Lernszenario: Abstrakt Denken lernen Algorithmen entwickeln.
1 Energiebewusste Compilierung für digitale Signalprozessoren Markus Lorenz Peter Marwedel Universität Dortmund Lehrstuhl Informatik XII Projekt Prozessorarchitekturen.
Kapitel 4 Syntaktische Analyse: LR Parsing.
Entscheidungstheorie für Unentschlossene Indecision Theory.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Praktikum Mobile Roboter
1 Bewegungsplanung Computational Geometry Prof. Dr. Th. Ottmann Bewegungsplanung bei unvollständiger Information Ausweg aus einem Labyrinth Finden eines.
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Online Competitive Algorithms
Union-Find-Strukturen
Geometrisches Divide and Conquer
April 2002 Andreas Hense, Europäische Akademie Projekt Präsentation 1 Klimavorhersage und Klimavorsorge Klimaänderungen: Statistik und subjektive Wahrnehmung.
PYTHAGORAS 570 v. Chr. wurde Pythagoras auf der ionischen Insel Samos geboren. Als 20-jähriger ging er in Milet bei Thales und Anaximander in die Lehre,
Reinforcement Learning
Effiziente Suche in Bilddatenbanken
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
für rechtwinklige Dreiecke
Heute: Scherenzange zeichnen
Kurzformaufgaben Mit welcher Zahl geht die Zahlenreihe ...5, 4, 8, 7, 14… weiter?  13  28  15  9.
Kurzformaufgaben Wie groß ist der Winkel, den der Minutenzeiger einer Uhr in der Zeit von 8:45 bis 9:05 Uhr überstreicht? 120°
Parkieren rechtwinklig rückwärts
Eidgenössisches Finanzdepartement EFD Informatiksteuerungsorgan des Bundes ISB Die Cloud Strategie der Schweizer Behörden Willy Müller / 25. Januar 2013.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Minh Bui 14. März 2013 Mobile Visualization in SenseDroid Diplomarbeit Minh Bui, # 1 of 16 Aufgabensteller: Prof. Dr. Andreas Butz Betreuer:
Tormann Lorenz Maierhofer Die Test-Umgebung Tor: 5x Roboter-Durchmesser Ball: Wird jeweils in Richtung einer zufälligen Position im Tor geschossen.
Wie findet ein Roboter den Weg aus einem Labyrinth?
3D-Visualisierung von Daten Schweizer Jugend forscht Studienwoche für Informatik in Basel Sommer 2002.
Analyse von Ablaufdiagrammen
Erfindervon Fuzzy Logic
Ein PC-Game selber machen
Manövertraining 180° Drehung von vorwärts auf rückwärts.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Algorithmen und Datenstrukturen Übungsmodul 3
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Mathe-Quiz Themen der 1. Klasse.
ICT – Modul Textverarbeitung
 Tryptophan-Synthese
PHP: Operatoren und Kontrollstrukturen
Projekt Seegraswiese Sommerlagerprojekt Ranger and Rover 2005
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Lösungsfindung nach System
Tutorial Navigation Nach dem Starten der Präsentation erscheint das Inhaltsverzeichnis. Ein Mausklick auf ein Kapitel bringt sie in das Unterverzeichnis.
5/2 Wegeventil Anschlüsse, 2 Schaltstellungen
Datenlogger-Auswerte Software GSoft
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Die Tiefensuche Vorgedanke: Die Sage von Theseus und dem Minotaurus
Herzlich willkommen bei HUPS, dem Hochschule Ulm Publikationsserver !
Ein wissenschaftlicher Nachwuchswettbewerb.  bundesweiter Nachwuchswettbewerb  Förderung besonderer Leistungen und Begabungen in Mathematik Informatik.
Herzlich Willkommen! Dies ist ein kleiner IQ Test Wollen Sie den IQ Test starten? NeinJa.
Vorstellen und Herleiten der Horner Schemas
Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.
Mechanik I Lösungen.
11 Mathematik Lösungen 2011 ZKM - MAC. 1.Gib das Ergebnis in m und cm an: 67 m 1 cm — (5 3 / 4 m : 25) + (49 32 cm) Zuerst alles in cm verwandeln. 67m1.
 Allgemeine Infos Allgemeine Infos  Quiz Quiz  Ende Ende.
EINFÜHRUNG © Lenhardt, 2011 SUCHE IM NETZ PROBLEME ERFOLGE FRAGEN ERGEBNIS RESÜMEE.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
L. H. Fejzula, P. Kisskalt | Robotik Labor | Projekt Präsentation
Robostapler - Der automatische Gabelstapler
Arbeiten mit dem Terminal
 Präsentation transkript:

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 Ein Roboter soll so programmiert werden, dass er selbstständig aus einem Labyrinth herausfindet.

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.

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

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

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

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

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

'{$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

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

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 LOW 1 FOR i=0 TO 169 GOTO Sensor '-------------------------------------------------- RECHTS: LOW 5

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 FOR i=0 TO 49 '--------------------------------------------------- LINKSKORR: debug "links e1-e2 ",dec (e1-e2),cr zaehler = 1+zaehler

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 LOW 1 LOW 5 FOR i=0 TO 4 'rechtsdrehung '---------------------------------------------------------------- DISTKORR1:

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 HIGH 5 FOR i=0 TO 80 HIGH 1 FOR i=0 TO 15 'linksdrehung GOTO Sensor

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 LOW 1 FOR i=0 TO 80 LOW 5 FOR i=0 TO 12 'rechtsdrehung

Herzlichen Dank für Ihre Aufmerksamkeit Auf Wiedersehen

Sicherheitsfunktion, um Endlosschlaufen abzubrechen 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 Nein ( Sensor3 - Sensor3 > Ja 90-Grad-Linksdrehung Sensor2 ) > Ja Korrektur nach rechts Sensor1 < 30cm? 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Sensor3 < Ja Zu nahe Distanz Nein 19cm? korrigieren (Sensor3 – Sensor2) < 60000? Ja Korrektur nach links Nein Messrichtung S3 Messrichtung S1 S3 Messrichtung S2 S2 S1 STAMPY

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 Nein ( Sensor3 - Sensor3 > Ja 90-Grad-Linksdrehung Sensor2 ) > Ja Korrektur nach rechts Sensor1 < 30cm? 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Sensor3 < Ja Zu nahe Distanz Nein 19cm? korrigieren (Sensor3 – Sensor2) < 60000? Ja Korrektur nach links Nein Keine Wand Messrichtung S3 Messrichtung S1 S3 Ecke Messrichtung S2 S2 S1 STAMPY

Fall2: Sieht Sensor 1 eine Wand, dreht sich der Roboter nach rechts 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 Nein ( Sensor3 - Sensor3 > Ja 90-Grad-Linksdrehung Sensor2 ) > Ja Korrektur nach rechts Sensor1 < 30cm? 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Sensor3 < Ja Zu nahe Distanz Nein 19cm? korrigieren (Sensor3 – Sensor2) < 60000? Ja Korrektur nach links Nein Wand Fall2: Sieht Sensor 1 eine Wand, dreht sich der Roboter nach rechts Messrichtung S3 Messrichtung S1 S3 Messrichtung S2 S2 S1 STAMPY

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 Nein ( Sensor3 - Sensor3 > Ja 90-Grad-Linksdrehung Sensor2 ) > Ja Korrektur nach rechts Sensor1 < 30cm? 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Sensor3 < Ja Zu nahe Distanz Nein 19cm? korrigieren (Sensor3 – Sensor2) < 60000? 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 Messrichtung S1 S3 Messrichtung S2 S2 S1 STAMPY

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 Nein ( Sensor3 - Sensor3 > Ja 90-Grad-Linksdrehung Sensor2 ) > Ja Korrektur nach rechts Sensor1 < 30cm? 30 cm? 65515? Nein (Sensor3 - Nein Sensor2) < 2cm? Ja 90-Grad-Rechtsdrehung Ja 6,5cm gerade fahren Nein Sensor3 < Ja Zu nahe Distanz Nein 19cm? korrigieren (Sensor3 – Sensor2) < 60000? 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 Messrichtung S1 S3 Messrichtung S2 S2 S1 STAMPY