Vorqualifikation in Hannover

Lange gab es keine Neuigkeiten, die Zeit dafür fehlte leider in letzter Zeit etwas. Während des Wettbewerbs wird es aber einen täglichen Statusbericht geben, zudem werden wir über Twitter (siehe Seite) aktuelles während des Wettbewerbs posten.

Wir haben bezüglich des Roboters eine gute und eine schlechte Nachricht. Zuerst die gute: Das Fahren im Labyrinth klappt 99%ig. Das Ausrichten an den Wänden ist sehr zuverlässig. Wir haben allerdings die Orientierungserweiterung, mit der Roboter Wände, an denen er vorbeifährt erkennt, entfernt, da das zu unzuverlässig ist (wenn der Roboter schräg zur Wand steht, wird die Wand später erkannt, der Roboter fährt dementsprechend zu weit, anders herum nicht weit genug). Wie gesagt ist das so, wie es nun ist, zuverlässig genug.

Es gab ein paar Probleme mit dem Orientierungssensor, weshalb wir erstmal nur auf die Gyrodaten setzen (die allerdings vom Sensor schon temperaturkompensiert werden) und die Ausgabe, die in °/s erfolgt, in regelmäßigen Abständen auf einen Wert addieren, sodass wir einen absoluten Winkel bekommen. Das machen wir, da die berechnete Ausgabe des Sensors etwas zu unzuverlässig ist. Mit unseren Werten kann man zwar auf Dauer auch nichts anfangen, allerdings reichen sie völlig aus, um eine grobe 90° Drehung zu erkennen (der Roboter kontrolliert nun die Drehencoder und den berechneten Wert des Gyros, wenn der Roboter, warum auch immer, mal eine Wand berühren sollte, drehen die Räder ja durch, der Roboter dreht sich nicht weit genug und richtet sich an der alten Wand aus, bei einer späteren Kartenerstellung könnte so die Orientierung verloren gehen). Ein Durchdrehen der Räder wird nun kompensiert durch den Gyro, nur, wenn der Roboter sich entsprechend weit gedreht hat und der Gyro einen Wert liefert, hat er sich weit genug gedreht.

Nun die schlechte Nachricht: Wir haben riesige Probleme mit der Rampe. In erster Linie natürlich bei sehr steilen Rampen, aber auch bei kleineren Neigungen können wir die Rampe nur hochfahren. Das hängt mit der Bauart des Roboters zusammen. Er ist im Laufe der Zeit zu weit nach oben gewachsen. Nach den Qualifikationsturnieren wird es also erst einmal einen relativ großen Umbau geben. Das wird aber schon. Die Wettbewerbsarena wird nur aus einer unteren Etage und einer Rampe bestehen. Je nachdem, wie steil die Rampe beim Wettbewerb sein wird, werden wir versuchen, sie frühzeitig zu erkennen und noch vor der Rampe umzudrehen oder hochzufahren, die Rampe währenddessen erkennen (ist viel zuverlässiger!!!), oben dann 360° drehen und rückwärts herunterfahren. Mal gucken.

 

Fotos des Roboters folgen in der Wettbewerbsarena!

Fortschritt

Nach fast einem Monat Schreibpause geht es nun endlich weiter.

Im Januar standen Schülerpraktika an, weshalb in dieser Zeit nicht am Roboter gearbeitet wurde. Dafür haben wir uns in der letzten Woche um so mehr gespurtet:

  1. Das ,,elementare Fahren“, also z.B, eine Fliese geradeaus, 90° Kurve etc., was sehr wichtig für eine spätere Navigation ist, ist vom Prinzip her fertig. Nun stehen Optimierungen und Verbesserungen an. Das muss perfekt funktionieren, denn wenn der Roboter sich dabei nur ein mal verhakt oder nicht richtig dreht, ist die gesamte Karte unbrauchbar.
  2. Es wurden einige Optimierungen an der Hardware (die Ultraschallsensoren sind jetzt ganz vorne, um auch eventuelle Hindernisse erkennen zu können, außerdem wurde ein Bedienpanel mit richtigem Schalter (vorher mussten wir den Akku immer abklemmen), Inkrementalgeber und einem Taster hinzugefügt, des Weiteren können wir nun die Akkuspannung überwachen und anzeigen lassen) und viele Optimierungen an der Software (im Wesentlichen Verbesserung und Stabilisierung der Sensorlibrarys, besonders der Library für den UM6 Orientierungssensor, außerdem Einbindung des Bluetoothmoduls: Nun können wir kabellos Sensordaten zum PC übertragen (vorteilhaft, wenn Display nicht ablesbar ist (Roboter steht unter zweiter Etage), es müssen mehr Daten übertragen werden, als das Display anzeigen kann)) vorgenommen.

Nun können wir sagen, dass wir mit dem Roboter, wie er bei den Qualifikationsturnieren Ende Februar aufgebaut und programmiert sein soll, zu 70% fertig sind. Es fehlt nur noch die Sackgassenerkennung (nur noch Programmierung notwendig, Sensor selbst funktioniert einwandfrei), die Opfererkennung (Sensoren müssen nur noch platziert werden, Programmierung schon fertig) und die Optimierung für das Elementare fahren.

Roboter für 2013 – Fortschritt

Wie bereits angekündigt ist vor kurzem nun die Platine angekommen. Nachdem wir diese bestückt haben, konnten wir sie direkt in den Roboter einbauen. Da wir bei der Lochrasterplatine die Pinbelegung berücksichtigt hatten, mussten wir fast gar nichts umprogrammieren. Im Dezember hat sich leider gar nichts getan (Schulstress… Auch, wenn mal Zeit war, hatte man wenig Lust dazu…), dafür in den Winterferien aber umso mehr. Nun ist der Roboter hardwareseitig nahezu fertig. Wir haben vier SRF10 Ultraschallsensoren ergänzt: zum Einen wegen der Redundanz, zum Anderen aber auch, da digitale Entfernungssensoren ein genaueres und konstanteres Signal liefern (durch die Signalübertragung wird kein Rauschen, also schwanken des Wertes, verursacht). Außerdem haben die eine größere Maximalreichweite (bis zu 6m, die analogen Sharp Infrarotentfernungssensoren nur 80cm). Notfalls kann man also auf diese Sensoren zurückgreifen, vermutlich wird auch später das Meiste darüber laufen. Wir werden die aber noch etwas tiefer platzieren, um den Schwerpunkt so weit wie möglich unten zu halten. Das ist übrigens wieder ein großes Problem diese Saison: Wir werden viele Gewichte an den Roboter anbringen müssen, um den Schwerpunkt unten halten zu können. Schön ist das nicht, aber anders wird es nicht funktionieren.
Wie oben geschrieben haben wir in den Ferien sehr viel programmiert. Nun sind die Sensoren nahezu perfekt eingerichtet: Alles läuft über Statemachines, nichts hält das Programm auf. Es sollen so viele Ressourcen wie möglich gespart werden, um Platz für eine Kartenerstellung zu sparen. Des Weiteren haben wir unsere I²C Library optimiert, sodass ein Absturz nun nicht mehr geschehen kann, wenn mit einem Sensor etwas nicht mehr stimmt. Im Gegenteil, es ist ohne Umstände möglich, die Ursache des Problems herausgeben zu lassen.
Außerdem haben wir eine Geschwindigkeitsregelung über einen I-Regler implementiert. Das ist nötig, da die Motoren bei gleicher Spannung unterschiedlich schnell laufen. Ein zuverlässiges Drehen auf der Stelle oder Geradeausfahren ist nahezu unmöglich gewesen. Nun drehen sich die Motoren perfekt gleich schnell. Auch die Rampe sollte so kein Problem darstellen.

Als nächstes geht es an die eigentliche Aufgabenstellung. Ein einfacher Wallfollower wie letzte Saison ist nicht mehr so einfach möglich bzw. damit lässt sich nur sehr unzuverlässig und kompliziert eine Karte erstellen. Wir müssen mit Anweisungen wie ,,eine Fliese vorwärts fahren“ oder ,,90° drehen“ arbeiten, um zuverlässig eine Karte erstellen und vor Allem navigieren zu können. Die Voraussetzung dafür ist aber, dass diese Operationen SEHR zuverlässig funktionieren. Wenn dabei ein Fehler passiert, nützt einem die gesamte Karte nichts. Wir werden also erst mit der Karte und der Navigation beginnen, wenn das 99,9%ig klappt. Das sollte aber kein großes Problem sein, bis zu den Qualifikationsturnieren Ende Februar in Hannover ist das locker zu schaffen.

Fotos folgen, versprochen! 😉

Der Roboter für 2013

Wie angekündigt stellen wir nun mal unseren neuen Roboter vor. Momentan sieht er so aus:

Die Lochrasterplatine wird bald durch eine richtige Platine ersetzt:

Dann haben wir schon ein sehr solides Grundgerüst. Bis zu den Winterferien (also Weihnachten) soll die Hardware komplett fertig sein, bis zum Vorqualifikationsturnier für die WM in Hannover Ende Februar soll dann richtig viel programmiert werden, ganz besonders in den Winterferien. Wir liegen ziemlich gut im Zeitplan (wenn man bedenkt, dass wir mit dem RP6 letztes Jahr erst gegen Ende der Winterferien halbwegs der Wand folgen konnten…). Wir wollen nun wie im Konzept erwähnt alle Möglichkeiten für eine Kartenerstellung und Navigation offen lassen, d.h. wir können fast gar nichts vom Wallfollower Code vom letzten Jahr weiterverwenden. Falls das doch alles nicht wie vorgestellt klappt, werden wir das ja schon mindestens einen Monat vor  dem Wettbewerb merken und können dann immer noch auf unser altes System zurückgreifen (bei einer allerersten Version dieses Roboters im September haben wir dafür einen Nachmittag gebraucht. Schließlich haben wir ja ein ganzes Jahr Erfahrung darin gesammelt). Dem Wettbewerb steht also nichts mehr im Wege.

Neues Konzept

Natürlich waren wir in der Zeit, die seit der WM vergangen ist, nicht untätig. Hier unser neues Konzept:

  1. Wir setzen auf ein komplett neues Konzept, bei dem wir so viel wie möglich beeinflussen können: Unser Grundgerüst (also Motoren und Fahrwerk) werden komplett aus LEGO® TECHNIC® bestehen. Das hat den Vorteil, dass wir sehr schnell auf Regeländerungen reagieren können und auch sehr schnell an Ersatzteile kommen (bei Meisterschaften wird IMMER irgendwo LEGO® verwendet, wenn mal sowas wie Motoren oder wie bei uns im letzten Jahr bei der WM sehr oft Getriebe kaputtgehen, kann man das ganz einfach uns schnell austauschen). Außerdem sind diese Motoren generell wirklich sehr, sehr robust, da die ja eigentlich für etwas jüngere Kinder und für Anfänger entwickelt wurden. Die Steuerungsplatine wird auch größtenteils selbst entwickelt, aber dann so aufgebaut, dass man einzelne Baugruppen (also Mikrocontroller, Quarz, Spannungswandler oder Motortreiber) ganz einfach und bequem ohne etwas löten zu müssen wechseln kann. Das Sensorsystem wird größtenteils gleich bleiben. Allerdings haben wir uns einen etwas besseren Orientierungssensor gekauft, der uns helfen soll, zuverlässig Kurven etc. zu fahren. Ein neues ,,Schmuckstück“ ist auch ein schönes Grafik LCD. Verbunden wird das Ganze durch Aluminium U-Profile. Die haben wir auch letzte Saison benutzt. Sie lassen sich schön einfach ohne Spezialwerkzeug auch zu Hause bearbeiten und sind nicht teuer. Die kann man auch schön Modular machen (durch Abstandsbolzen einfach zu zerlegen).
  2. Die Software soll auch erneuert werden: Es soll nicht mehr stumpf der Abstand zur rechten Wand gehalten, sondern zunächst Kachelweise gefahren werden, wobei dabei natürlich auch auf die Umgebung geachtet wird (beim Fahren von einzelnen Anweisungen, also z.B. Kachel vorwärts, drehen etc. wird nicht stumpf über Zeiten gearbeitet, sondern wirklich kontrolliert, wie weit der Roboter gefahren ist, wie weit er sich schon gedreht hat etc.). Wenn das funktioniert, wird so erstmal der LINKEN Wand gefolgt (da so i.d.R. mehr Opfer gefunden werden). Dann werden wir versuchen, so zuverlässig wie möglich eine Karte zu erstellen, um dann später auch danach navigieren zu können (damit wirklich alle Opfer im Labyrinth gefunden werden können, schließlich gibt das die Punkte).

Im Wesentlichen ist das unser Konzept. Einen ersten Prototypen gibt es schon (Fotos folgen).

WM in Mexico-City – Tag 3

Tag 3 war der erste Tag auf der WM – Registrierung und Set-Up, also Testen, war angesagt.

Die Registrierung im Wordl Trade Center, in dem auch der Wettbewerb stattfand, war schnell abgeschlossen. Bald haben wir schon die anderen beiden Rescue B Teams aus Deutschland getroffen (wir saßen an einem Tisch).
Erste Tests mit dem Roboter verliefen nicht so toll. Er fuhr nicht mehr ganz gerade der Wand entlang, eher Schlangenlinien. Außerdem funktionierte die Rampe nicht: Statt wie in unserem Testparcour in Damme hatte die Rampe in Mexiko keine Neigung von 18°, sondern von 27°, also 9° mehr. Das war unser größtes Problem – wir könnten sonst einige Opfer nicht erkennen, da wir weder umdrehen können würde und die restlichen Opfer auf dem unteren Teil der Arena finden würden, noch die Opfer auf dem oberen Teil.
Wir haben alles Mögliche ausprobiert: Wenn wir die Geschwindigkeit erhöhen, geht das Getriebe kaputt. Wenn wir das Gewicht erhöhen, geht das Getriebe kaputt. Schwerpunkt weiter nach unten setzen: unmöglich. Die einzige Möglichkeit ist, den Grip der Ketten zu erhöhen. Also sind wir in ein nicht weit entfernten Supermarkt gegangen und haben uns etwas gummiartiges mit viel Grip gekauft: Eine Kuchenbackform aus Silikon.
Da es schon sehr spät war, mussten wir zurück zum Hotel (welches übrigens richtig toll
war: sehr zentrale Lage, nicht schmutzig, nettes Personal). Dort haben wir dann bis in die Nacht die Ketten gummiert. 

Zwischenstand: Änderungen³

Die Zeit vergeht… Seit mehr als einem Monat gab es nun keinen Artikel mehr zu unserem Fortschritt. Die Begründung ist ganz einfach: Keine Zeit. Wir haben viel an unserem Roboter geändert. Momentan sieht er so aus:

Es gibt drei signifikante Änderungen:

  1. Der neue Lichtsensor
  2. Debugger
  3. LiPo Akku

1) Der Lichtsensor
Der Lichtsensor ist das schwierigste gewesen. Auslöser für den neuen Lichtsensor war eine Regeländerung: Sackgassen müssen nun nicht mehr von drei Wänden begrenzt werden. Sie können auch so auf dem Weg liegen. Der Roboter darf die Sackgassen dabei nicht einfach überfahren. In die Richtung, in die er hinein fährt, muss er auch wieder raus fahren. Dafür fällt die 5-Sekunden-Regel weg (zur Erinnerung: Noch in Magdeburg wurden die Sackgassen eben mit drei Wänden begrenzt. Der Roboter darf einfach nicht länger als 5 Sekunden in einer Sackgasse, also einem schwarzen Bereich, bleiben). Da es schwierig ist, in die selbe Richtung raus zu fahren, wie man rein gefahren ist, gibt es nur eine sinnvolle Lösung: gar nicht erst in die Sackgassen fahren. Dafür der neue Lichtsensor. Er besteht aus einer High-Power LED mit Optik und einem Phototransistor. Der Unterscheid zu ,,normalen“ Lichtsensoren ist nun, dass die LED sehr viel stärker ist, der Lichtsensor also über eine viel größere Distanz funktioniert. So ist es nun möglich, berührungslos die Helligkeit an einem Punkt vor dem Roboter zu messen. Einfach aber genial. Mit einer kurzen Anpassung des Codes umfährt der Roboter nun sauber und zuverlässig alle Sackgassen.

2) Debugger
Wir sind vor kurzem im Internet auf das XminiLab von Gabotronics gestoßen. Zum Debuggen ist das Teil wirklich genial, denn es hat ein Oszilloskop, man kann also auch Spannungen von -14V bis +14V messen. Außerdem hat es einen Logic Analyzer (das war der Hauptgrund für den Kauf). Mit dem Logic Analyzer kann man sich das, was z.B. auf dem I²C Bus passiert, genau anschauen und dann ggf. Fehler schneller und einfacher beheben.

3) LiPo Akku
Dazu gibt es nicht viel zu sagen… Der Akku hält die Spannung einfach länger konstant, außerdem hat er eine Kapazität von 5000mAh. Der Akku hält also quasi unendlich lange. 😀 Außerdem kann man den Akku im laufenden Betrieb nun sehr viel schneller und komfortabler auswechseln. Man kann den Roboter ununterbrochen benutzen. Besonders während des Wettbewerbs ist das sehr hilfreich!

Das einzige Problem, das es nun zu lösen gilt, ist das Zahnstocherproblem. Zur Erinnerung: Beim Fahren durch ,,Geröll“, also Zahnstocher und Schaschlikspieße, kam es öfters vor, dass Schaschlikspieße in den Raum zwischen Kette und Chassis gerieten und so den Roboter blockierten. Dafür haben wir uns schon etwas überlegt, sind aber noch nicht ganz fertig. Näheres dazu, wenn es so weit ist.

Änderungen am Roboter

Der 3. Platz – wir sind immer noch total happy, dass wir es im ersten Jahr, an dem wir ,,richtig“ beim RoboCup teilnehmen, zur WM geschafft haben.

In Magdeburg haben wir natürlich einige Erfahrungen gemacht. Hier eine kleine Liste der Dinge, die wir verbessert haben und noch verbessern müssen:

  •  Die Befestigung der Sensoren: Bis jetzt haben wir das alles mit Kupferdrähten gemacht. Das sieht nicht wirklich professionell aus, außerdem können diese sehr leicht verbiegen.
  • Die Lichtsensoren, die sich an den Speed-Bumps verfangen haben: Die Lichtsensoren haben wir fest in das Chassis integriert, sodass sie sich nun nirgends mehr verfangen können. Im Prinzip eine ebene.
  • Einen Schieber für Geröll und sonstige, frei liegende Hindernisse: Wir haben an unserem Roboter einen Schieber in Form eines ,,Besens“ befestigt, der Zahnstocher nun sehr zuverlässig zur Seite schieben kann, sodass sich diese nun nicht mehr in den Ketten verfangen können. Der Roboter sieht so aus, als hätte er einen Bart. 😀
  • Wir müssen die Ketten griffiger machen, sodass wir auch steile Rampen besser erklimmen können
  • Wir können nun den Akku wechseln, ohne den ganzen Roboter zerlegen zu müssen. Wahrscheinlich werden wir auch noch auf LiIon Akkus umsteigen, da diese eine höhere Kapazität und ein geringeres Gewicht haben.

Hardwareseitig war es das nun größtenteils. Ein paar Feinheiten werden wir noch verbessern, wenn zum Schluss noch Zeit übrig bleibt, wie z.B. das Schalten der IR-LEDs der Lichtsensoren mit Transistoren und das Hinzufügen von diversen Stützelkos zu den Sharp-IR Entfernungssensoren.
Hier nun ein Foto unseres aktuellen Roboters:

Softwareseitig gibt es allerdings auch noch etwas zu erledigen:

  • Der Roboter muss erkennen, ob sich die I²C Kommunikation aufgehangen hat und ggf. reagieren
  • Wir brauchen unbedingt eine Lack of Progress Erkennung, sodass der Roboter erkennen kann, wenn er doch irgendwo hängen geblieben ist und sich ggf. befreien kann.
  • Wenn noch Zeit übrig bleibt, müssen wir das SetUp Menü überarbeiten, da einige Sensoren weggefallen sind oder wir keinen Wert mehr einstellen können müssen.

Hoffentlich kriegen wir das zeitlich alles noch hin, schließlich ist nebenbei noch Schule, aber wir sehen da ganz zuversichtlich in Richtung Mexiko. 😉

Perfektionierung des Wallfollowers

Nachdem wir am Wochenende noch einen (also den vierten) Infrarotentfernungssensor an den Roboter gebaut haben, hatten wir gestern die Gelegenheit, am Testparcours in der Schule den Roboter ausführlich zu testen. Die letzten Fehler wurden behoben und Feineinstellungen getroffen. Der Roboter funktioniert nun nahezu perfekt (bis auf ausnahmen, aber es muss in der Programmierung ja ein Mittelwert gefunden werden, damit alles halbwegs funktioniert – sonst würde eine Situation perfekt funktionieren und die andere gar nicht). Naja, wir denken , dass wir nun ausgezeichnet vorbereitet sind. Nur im unmöglichsten Fall (und der kann eintreten, wie in Hannover gesehen 😀 )  kann etwas schief laufen (besonders an den Sackgassen…). Aber wir sehen positiv in Richtung Magdeburg!
Donnerstag geht es dann los: um 07:45 müssen wir in Osnabrück am HBF sein. Mittags werden wir dann in Magdeburg ankommen und diŕekt zum Messegelände fahren, um die Roboter nochmal testen zu können. Der eigentliche Wettbewerb ist dann von Freitag bis Sonntag. Tagsüber werden wir twittern, dann wahrscheinlich noch jeden Abend eine Kurzzusammenfassung des jeweiligen Tages auf dem Blog schreiben.

Was uns aufgefallen ist – soweit wir wissen, sind wir das einzige Team, das einen Blog hat und das auch alle möglichen Infos über den Roboter ins Internet stellt. Schade… Falls es da draußen doch noch andere Teams gibt, schreibt gerne einen Link in die Kommentare!