Der Plan

So, nach unserem tollen 1. Platz in Hannover (von dem wir selbst nach unserem 1. Lauf mit 0 Punkten etwas überrascht waren) geht es jetzt vom 30. März bis zum 01. April nach Magdeburg. In Hannover haben wir erkannt, was wir noch für Probleme mit unserem Roboter haben, die wir noch unbedingt bis zu den German Open lösen möchten:

1) Bestimmte Labyrinthsituationen:
In bestimmten Situationen (wenn das Labyrinth also besonders schwierig gestellt wird), hat unser Roboter ein paar Probleme, z.B., dass er umdreht oder dass das Programm abstürzt (was wiederum etwas mit mangelnder Stromversorgung aufgrund von schnellen wechseln der Fahrtrichtungen zu tun hat). Beides lässt sich vermutlich mit Feineinstellungen regeln.

2) IR Thermometer MLX906143
Da  es ja arge Probleme mit unseren Infrarotsensoren gab, setzen wir jetzt nicht mehr auf die analoge, sondern auf eine digitale Variante, basierend auf den I²C (bzw. SM-) Bus. Der  MLX90614 von Melexis ist so ein Sensor, der relativ günstig ist und zusätzlich noch in Deutschland zu bekommen war. Momentan haben wir noch ein paar Probleme bei der Ansteuerung, die Hardware steht und funktioniert aber auf dem Steckbrett:

Da wir nur an eine 3,3V Version kommen konnten (unser Roboter läuft mit 5V), muss vor den Sensor erst ein Spannungswandler geschaltet werden, der aus den 5V 3,3V macht. Dann muss das Ausgangssignal mit einem Pegelwandler wieder auf 5V gesetzt werden.

Wenn der Sensor dann funktioniert, können wir die Temperatur von -70°C bis 380°C mit einer Auflösung von 0.01°C und einer Genauigkeit von 0.5°C auslesen – das sind doch akzeptable Werte 😀 (zur Erinnerung: Mit unserem alten Sensor konnten wir nur erkennen, ob es warm oder kalt ist, den Schwellwert konnten wir so nicht beeinflussen).

RoboCup Qualifikation Hannover Tag 3

Tag 3 – Lauf 3 und Ergebnisse
Als wir gestern aufgestanden sind, sind wir wie zuvor erstmal frühstücken gegangen. Danach mussten wir schon die Zimmer räumen – Sachen packen, Bett abziehen und fegen. Nach der Kontrolle ging es zum Wettbewerbsplatz (Goehteschule Hannover). Unser 3. Lauf stand dann um 12:30 an. Leider wollte unser Roboter mit dem selben Programm wie vom Vortag nicht so wie wir, es wurden im zweiten Raum des Parcours ständig Opfer erkannt; dieses Mal hatte das aber garantiert nichts mit einem Wackelkontakt zu tun. Da wir im zweiten Lauf so gut waren (es stellte sich später heraus, dass wir allein mit dem zweiten Lauf schon 1. Platz hätten werden können), haben wir die Opfererkennung vorsichtshalber einfach aus dem Programm genommen.
Der dritte Lauf war dann schließlich zufriedenstellend. Wir sind ohne Fehler und ohne Eingriffe bis zum unteren Ende der Rampe gekommen, dort ist der Roboter dann wegen Falscherkennung einer Sackgasse umgedreht, wir haben einen Eingriff gewagt, der Roboter ist wieder umgedreht und wir haben abgebrochen. Waren dann für den Lauf ca. 70 Punkte.
Nun mussten wir irgendwie die Zeit bis zur Siegerehrung totschlagen, die wir dann schließlich doch nicht mehr mitgekriegt haben, da sie verschoben wurde, man unser Zugticket aber nicht ,,verschieben“ konnte. Pech gehabt. Das Ergebnis konnten wir aber so oder so schon erahnen. 😀
So war es dann auch: 1. Platz!
In den Osterferien geht es dann nach Magdeburg. Bis dahin müssen wir unseren Labyrinth-löse-Algorithmus noch verbessern (PID Regler) und die Sensoren zur Opfererkennung durch bessere ersetzen, dazu dann aber noch was, wenn es so weit ist.

RoboCup Qualifikation Hannover Tag 2

Tag 2 – Lauf 1 und 2
Heute wurden 2 / 3 Läufen durchgeführt. Den PID Regler haben wir vorerst weggelassen, da er so kurzfristig nicht so funktioniert hat, wie erwartet.
Wir haben einige Testläufe durchgeführt, bei denen alles super geklappt hat, außerdem Feineinstellungen. Danach natürlich auch wieder Testläufe. Allles schien gut zu funktionieren.
Beim ersten Wertungslauf hat der Roboter aber plötzlich komische Dinge gemacht. Der Wärmesensor hat ständig ausgelöst. Wir haben den Lauf abgebrochen. Das Resultat: Eigentlich hätten wir 132 Punkte (ca. die Hälfte der möglichen Punkte), aufgrund von 150 Strafpunkten besoners wegen falscher Erkennung der Opfer hatten wir dann aber 0 Punkte (weniger als 0 geht laut Regeln nicht).

Nach dem Lauf haben wir die Wärmesensoren genau kontrolliert und einen Wackelkontakt auf der selbst geätzten Platine festgestellt. Der Wackelkontakt war dann aber schnell behoben, inzwischen wurden auch die aktuellen Ergebnisse nach dem ersten Lauf veröffentlicht (wir stehen ganz unten, letzter Platz nach der ersten von drei Runden):

0 Punkte. Das war zuerst sehr enttäuschend. Wir waren aber sehr optimistisch, dass der nächste Lauf besser wird. So war es auch dann: keine Eingriffe, drei Opfer erkannt, insgesamt 189 Punkte und Platz 1 in der Gesamtwertung:

Da wahrscheinlich die ersten vier Plätze nach Magdeburg weiterkommen, haben wir gute Chancen, auch, wenn wir den letzten Lauf morgen um 11:20 12:30 Uhr vermasseln. Aber versprechen können wir natürlich noch nichts! 😉

RoboCup Qualifikation Hannover Tag 1

Tag 1 – Die Anreise und das Training.
Heute ging es mit zehn Minuten Verspätung um 10:08 vom Osnabrücker HBF los nach Hannover. Mit weiteren Verspätungen sind wir dann so gegen 11:45 in Hannover angekommen. Mit der S-Bahn und zu Fuß sind wir direkt zum Veranstaltungsort weiter gefahren bzw. gegangen, wo wir unsere Sachen aufbauen konnten und sofort unsere Roboter testeten.

Als wir alle anderen Teams mit den vielen komplett selbstgebauten Robotern sahen, wurde uns schon etwas mulmig, bald stellte sich aber heraus, dass die meisten beim Rescue A mitmachen – beim Rescue B, also unserer Kategorie, nehmen insgesamt nur 10 Teams teil, wovon voraussichtlich 4 zu den German Open nach Magdeburg weiterkommen werden. Eine Einschätzung unsererseits: Unsere Schule startet mit zwei anderen Teams, die für uns keine Konkurrenz sind. Die anderen Teams, die wir sahen, nehmen entweder mit komplett selbstgebauten Robotern oder mit dem LEGO Mindstorms System teil. Erstere schaffen die Rampe nicht und letztere sind sehr langsam oder kippen immer um. Niemand kann die Wärme abstrahlenden Opfer finden, worauf wir aber gleich noch zu sprechen kommen.

Wir haben erstmal drei Testläufe gemacht, unser Roboter hatte nur ein mal ein Problem und ist umgedreht. Das lässt sich aber morgen mit ein paar Feineinstellungen (evtl. auch noch mit ein PID Regler als Wallfollower) ändern.
Die Opfer sind aber ein relativ großes Problem: Sie hängen in der Mitte der der Platten, womit wir uns völlig falsch eingeschätzt haben (wir dachten, dass sie ganz unten befestigt werden), außerdem sind die sehr viel kleiner als gedacht, weshalb wir sie erst ab einer Entfernung von 10cm erkennen. Eigentlich nicht regelkonform. Wir erkennen die Opfer also auch nach einem Positionswechsel der Wärmesensoren schlecht. Nach weiteren Lesen der Regeln stellten wir aber fest, dass man eine maximale Entfernung zu den Opfern von 10cm haben dürfen – also haben wir das alles erstmal so gelassen und konzentrieren uns auf die restlichen Aufgaben, schließlich gibt es keine Fehlerpunkte beim Falsch- oder nichterkennen der Opfer.

Heute Abend sind wir in einem türkischen Restaurant essen gegangen. War sehr lecker! 😀

Morgen werden wir dann alle drei Läufe durchführen, wovon die beiden besten gewertet werden.

Wir haben mit den Zeiten eigentlich relativ viel Glück gehabt, wir sind sehr spät dran, sodass wir vorher noch ausführlich ausprobieren und testen können.

PS: Vergebt uns ggf. Rechtschreib- und Grammatikfehler, aber es ist schon spät. 😉

Eine Hardwareänderung und ein PI-Regler

Endspurt!!!
Wir haben festgestellt, dass die Opfer nur wenige Centimeter über dem Boden befestigt werden, sodass unsere Sensoren viel zu hoch angebaut sind. Also haben wir die Sensoren abgebaut und die Gelegenheit genutzt, sie vernünftig auf einer kleinen Lochrasterplatine zu befestigen, sodass die Kabel nicht mehr so leicht abreißen können und ein Kurzschluss fast unmöglich ist. Außerdem sind die Sensoren jetzt sehr fest und können nicht mehr von der Platine abreißen:

So können wir notfalls die Höhe auch wieder besser anpassen. Eventuell müssen sie noch weiter nach außen, dass müssen wir aber dann sehen.

Danach ging es an die Verfeinerung der Software – nach kurzer Zeit war der geplante PI-Regler umgesetzt. Der Roboter fährt nun ohne hin- und her zu ,,eiern“ an der Wand entlang, er fährt auch nicht mehr andauernd gegen diese, aber seht selbst – wir haben ein neues Video gedreht:

Software grundsätzlich fertig

Unser Programm ist nun so fertiggestellt, dass es den Regeln entspricht und alle Aufgaben erledigen kann. Wir können das Labyrinth lösen und die Opfer finden und signalisieren. Der Rest ist eine Sache der Feineinstellung. Zu nennen ist das noch nicht ganz flüssige Fahren durch das Labyrinth (momentan benutzen wir einen simplen P-Regler, vielleicht stocken wir auf einen PI-Regler auf), der Roboter hakt sich manchmal irgendwo fest, weil er eben ziemlich kurvig fährt. Außerdem funktioniert das Ausweichen vor den Sackgassen manchmal nicht richtig, dann dreht der Roboter sich um, fährt mit den Lichtsensoren gleich nochmal in die Sackgasse und dreht sich im Kreis. Aber wie gesagt alles eine Sache der Feineinstellung. 😉

German Open Qualifikation und Twitter

Wie schon hier erwähnt, fahren wir vom 15.02. bis zum 17.02. zur Qualifikation in Hannover für die German Open 2012 Magdeburg.
Wir werden Euch versprochen immer auf dem aktuellsten Stand halten (via Twitter wird bei jedem Tweet ein neuer Blogeintrag angelegt. Darüber informieren wir Euch über unsere Läufe, sonstige Zwischenstände und natürlich auch über das Ergebnis).
In Hannover werden wir wahrscheinlich drei Wertungsläufe durchführen, auf deren Basis dann entschieden wird, ob wir in den Osterferien nach Magdeburg zu den deutschen Meisterschaften fahren dürfen. Wünscht uns viel Glück! 😉

Hardware fertig, was folgt ist die Software und die Qualifikation in Hannover

In den letzten Wochen waren wir nicht untätig: Wir haben nachgedacht, gebastelt und programmiert. Das Ergebnis: Unser Roboter entspricht jetzt komplett den Regeln. Wir können Sackgassen und Opfer erkennen und der Wand folgen. Jetzt kommt die Software, das ist aber eigentlich das kleinste Problem. Hier ein Foto des Roboters:

Ein paar Infos zur Hardware:

  • Wir benutzen zwei SHARP Infrarot Entfernungssensoren (einer zeigt nach vorne, der andere nach hinten), die an die beiden freien ADCs der RP6 Base angeschlossen wurden
  • Wir benutzen zwei Lichtsensoren ,,CNY70″ (beide kurz unter der vorderen Achse), die den Boden überwachen, um Sackgassen (schwarze Felder) zu erkennen
  • Wir benutzen einen 3-Achsen Beschleunigungssensor ,,ELV 3DBS“, um die Rampe zu erkennen
  • Wir benutzen zwei Thermoelemente ,,Heimann 3161″, um die Wärme abstrahlenden Opfer zu orten. Das Ausgangssignal der Sensoren (wenige mV) wird durch einen Operationsverstärker auf 5V verstärkt und über einen ADC der M32 Erweiterungsplatine gemessen
  • Zwei Ultrahelle weiße LEDs signalisieren die Opfer
  • Da der Roboter die Rampe nicht hochfahren konnte, haben wir die Ketten einfach mit Doppelseitigem Klebeband beklebt. Nach einigen Fahrten sind die Ketten nun so eingestaubt, dass der Roboter normal fahren kann, aber trotzdem über die Rampe die zweite Ebene erklimmen kann. Einfach, aber effektiv.

Wir denken mal, dass wir so ziemlich gute Chancen haben, um die Qualifikation in Hannover zur German Open 2012 Magdeburg zu schaffen. Wenn nicht, haben wir ja noch die Intel® Leipniz Challenge.