1 / 19

Asuro

Asuro. von Patrick Deuster Nicole Meuser Alexander Piel. GLIEDERUNG. Tools Schnittstelle Regelung Demo Part 1 Zeichnung der Strecke Zeichenalgorithmus Schwierigkeiten Demo Part 2 Ausblick. TOOLS. Flash-Tool Verwendet um Programm auf Asuro zu flashen. Programmers Notepad 2

taro
Télécharger la présentation

Asuro

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. Asuro von Patrick Deuster Nicole Meuser Alexander Piel

  2. GLIEDERUNG Tools Schnittstelle Regelung Demo Part 1 Zeichnung der Strecke Zeichenalgorithmus Schwierigkeiten Demo Part 2 Ausblick

  3. TOOLS • Flash-Tool • Verwendet um Programm auf Asuro zu flashen • Programmers Notepad 2 • zur Entwicklung des Asuro - Programms verwendet • Asuro Programm in C geschrieben • mit speziellen Sonderfunktionen • Ruby, Gtk2, Serial Port Extension • für das Aufzeichnen der Linie auf dem PC verwendet

  4. SCHNITTSTELLE • Infrarot RS232 - Transceiver • serielle Schnittstelle • für USB auch vorhanden • verwendet für: • Flashen des Programms auf den Asuro • Senden der Daten für Lineinzeichnung an den PC • zunächst viele CRC und Timeout Fehler • in Version 1.5.1 des Flash - Tools behoben

  5. 06/17/07 REGELUNG - FUNKTIONSWEISE • Kurvenfahrt: • Annahme: linker Sensor erreicht dunkle Linie • Folge: • linkes Rad wird abgebremst • um festgesetzten delta - Wert dekrementiert • rechtes Rad wird auf MAX_SPEED gesetzt • Unterscheidung zwischen drei Zuständen: • Gerausfahrt • Linkskurve • Rechtskurve • Dreipunktregler

  6. 06/17/07 REGELUNG - PSEUDOCODE #define BREMS_DELTA 25 // um wieviel er abbremst #define GERADEAUS_DELTA 20 // welcher Wert geradeaus entspricht LineData(); // Wert der Fototransistoren auslesen if ((photoLinks – photoRechts) < GERADEAUS_DELTA) { speedLinks = speedRechts = 150;// fahre geradeaus } else if (photoLinks > photoRechts) { speedRechts -= BREMS_DELTA; // rechts langsamer fahren speed Links = MAX; } else { speedLinks -= BREMS_DELTA; // links langsamer fahren speedRechts = MAX; }

  7. Regelung - Demo

  8. 06/17/07 STRECKENZEICHNUNG • Unser hochgestecktes Ziel: • Daten während dem Regelprozess an den PC senden • PC soll die Strecke in Echtzeit nachzeichnen • Zwei verschiedene Verfahren zur Auswahl: • Zeichnen mit Odometrie - Daten • Zeichnen mit Werten der Motoransteuerung

  9. STRECKENZEICHNUNG - ODOMETRIE • 12 SW - Übergänge • 5 Scheibenumdrehungen = 1 Radumdrehung • 60 SW - Übergänge = 1 Radumdrehung • Problem: • extrem ungenaue Odometriedaten • Scheiben nicht fest aufgeklebt • Von Lichtverhältnissen abhängig • Schlechte Odometriesensoren • nicht brauchbar

  10. 06/17/07 STRECKENZEICHNUNG - MOTORWERTE • MotorSpeed(int leftSpeed, int rightSpeed)‏ • leftSpeed und rightSpeed im Bereich 0..255 • Werte von leftSpeed und rightSpeed an PC senden • diese dann auswerten • zuverlässigeres Verfahren • keine Ungenauigkeiten wie bei der Odometrie • von äußeren Einflüssen (z.B. Licht) unabhängig • weniger Rechenaufwand für CPU des Asuro

  11. STRECKENZEICHNUNG - MOTORWERTE (2)‏ • leftSpeed, rightSpeed und timestamp an PC schicken • im Format leftSpeed:rightSpeed:timestamp • timestamp zum Ermitteln, wie weit Asuro seit dem letzten Senden gekommen ist • Daten werden auseinander geparst • komplette Rechenarbeit findet auf dem Rechner statt

  12. ZEICHENALGORITHMUS – Erster Versuch

  13. ZEICHENALGORITHMUS – Zweiter Versuch

  14. 06/17/07 ZEICHENALGORITHMUS ausrichtung = 0 position = Vektor 0, 0 start_zeit = 0 /* Geschwindigkeitsdifferenz gibt Winkel an! * 150 = 90° (PI/2) bis 0 = 0° */ alpha = (v_rechts - v_links) * (PI / 300)‏ /* Asuro darf nicht von 0° auf 90° springen, * er braucht dafür Zeit! */aplha_mit_zeit = (alpha/0.7) * ((zeit-start_zeit)/1000)‏

  15. 06/17/07 ZEICHENALGORITHMUS (2)‏ /* Ausrichtung aktualisieren und Zeit merken */ausrichtung += alpha_mit_zeitstart_zeit = zeit /* Geschwindigkeitsvektor erstellen */geschwindigkeit = Vektor (v_links + v_rechts) / 2 , 0 /* Geschwindigkeitsvektor um Ausrichtung rotieren * und auf Position addieren */position += geschwindigkeit.rotate(ausrichtung)

  16. SCHWIERIGKEITEN • Zeichnung in Echtzeit beeinflusst Regelung • Asuro darf Werte nicht zu oft an PC senden • alle 100ms senden • Odometriedaten ungenau • Motorwerte verwenden

  17. rGrapher 1.0 -Demo

  18. Ausblick Algorithmen weiter verbessern Odometriedaten so korrigieren, dass sie benutzbar werden Weiße Linie auf dunklem Hintergrund rGrapher Hinzufügen von Bildern zu Replays Hinzufügen von sonstigen Daten zu Replays Aktuelle Werte ausgeben Dem Asuro das Fliegen beibringen

  19. Vielen Dank!

More Related