Überarbeiteter Roboter

Wie im letzten Artikel beschrieben, haben wir einen neuen Roboter geplant – und eher als gedacht ist er fertig geworden. Dies haben wir PlexiLaser.de zu verdanken, die uns freundlicherweise die Plexiglasteile für unseren neuen Roboter gesponsert haben. Danke an dieser Stelle nochmal für den tollen Support und die superschnelle Lieferung!

Der Zusammenbau des neuen Roboters verlief relativ problemlos, dennoch steckten einige Stunden Arbeit darin. 😉 Der alte Roboter musste schließlich komplett zerlegt werden und die neuen Teile in das neue Chassis eingebaut werden. Den Kitdropper haben wir testweise schon zuvor zusammengebaut, hier ein kleines Demonstarationsvideo:

Die Plexiglasteile kleben wir mit einem speziellen Plexiglaskleber zusammen. Dieser härtet (polymerisiert) durch UV-Strahlung (normales Tageslicht reicht) zu „normalem“ Plexiglas, sodass man quasi nachher ein Stück Plexiglas hat, was wirklich nicht so einfach kaputt gehen kann.

Der Kitdropper hat bei den ersten Tests sehr zuverlässig funktioniert. Beim Schieber, also dem Teil, das die Kits festhält und sie auch mithilfe eines Servos hinausschiebt, mussten wir leider schon etwas wegschleifen, da sich Kits sonst unter Umständen verkantet haben (besonders das letzte Kit im „Bunker“), aber das Problem konnte wir beheben.

Beim Zusammenbau gab es sonst nur ein paar kleinere Komplikationen aufgrund unserer relativ vielen Kabel. Wir haben schlicht und ergreifend vergessen, genug Platz mit einzuplanen. Wir könnten, anders als in der Planung vorgesehen, die Distanzen zwischen den Etagen einfach erhöhen, aber dann würde der Kitdropper nicht mehr bündig mit der oberen Etage abschließen, was sehr unschön wäre, weshalb wir einfach versucht haben, die Kabel so effizient zu möglich zu verstauen. Letztlich haben wir das auch hingekriegt. :) Hier mal ein Foto unseres neuen Roboters:

Roboter

Überarbeiteter Roboter – Komplettansicht

 

 

 

 

 

 

 

 

 

Weitere Bilder wie immer in unserer Webgalerie. 😉

Es fällt auf jeden Fall auf, dass der Roboter etwas kompakter ist – wir konnten ihn um 1cm schmaler machen, sodass er nun 19cm x 19cm groß ist. Mit dieser Größe sollte er problemlos den Weg zwischen Hindernissen fahren können.

Um Hindernisse zu erkennen, haben wir ja auch die Ultraschallsensoren eingebaut. Das funktioniert noch nicht so ganz, wie wir uns das vorgestellt haben, aber da werden wir sicherlich auch noch eine Lösung finden. Schwierig wird es nachher zu unterscheiden, ob die Ultraschallsensoren nun ein Hindernis oder eine Wand sehen. Man darf dabei nicht vergessen, dass die Ultraschallsensoren die IR-Entfernungssensoren bei ihren „Entscheidungen“ unterstützen sollen und nicht umgekehrt.

Weiterhin werden wir uns weiter mit einer Optimierung unseres Untergrundsensors beschäftigen. Bis jetzt haben wir eine IR-LED  und einen IR-Phototransistor genutzt, das funktioniert aber nur bis zu Entfernungen von ca. 1cm zum Untergrund. Diese mögliche Distanz wollen wir durch eine High-Power IR LED erhöhen, aber auch dazu mehr, wenn es funktioniert.

Wie es weitergeht: Überarbeitung des Roboters

Insgesamt sind wir über unser Abschneiden bei den deutschen Meisterschaften sehr zufrieden. Wir hätten nicht gedacht, dass unser Roboter, abgesehen von den Fehlerkennungen, die ja durch ein einfaches Verstellen der Wärmesensoren behoben werden konnten, so gut funktionieren würde. Wir haben uns nicht auf Hindernisse eingestellt, die sich bei den Läufen in den Parcours befanden, unser Roboter konnte diese aber dennoch fast immer sauber umfahren. Hindernisse besitzen mindestens 4 Ecken, dürfen aber auch jede andere Form mit mehr als 4 Ecken (bis hin zum Kreis) haben. Eine Mindestgröße gibt es nicht, eine maximale Höhe von 40cm darf aber nicht überschritten werden. Zudem müssen Hindernisse immer 20cm von einer Wand entfernt sein (wenn eine vorhanden ist). Problem ist, dass unser Roboter aktuell genau 20cm breit ist und dass es da eng werden kann (obwohl er bewiesen hat, dass es möglich ist). Eine weitere Schwäche ist, dass die Infrarotentfernungssensoren einen sehr kleinen Öffnungswinkel haben (generell ist das sehr gut, da so gezielt gemessen werden kann, für eine Hinderniserkennung ist das jedoch weniger gut geeignet, da unter Umständen Hindernisse in einem toten Winkel stehen können, die Hindernisse also einfach von den Sensoren „übersehen“ werden und der Roboter kollidiert). Dagegen helfen Ultraschallsensoren, da sie das gesamte Sichtfeld des Roboters abdecken können.

Bei der WM werden die neuen Regeln zu Einsatz kommen. Eine wesentliche Neuerung ist, dass es zum Einen Checkpoints gibt: Zu diesen Checkpoints muss der Roboter zurückgesetzt werden, wenn ein Lack of Progress auftritt, er also eine schwarze Fliese durchfährt oder er die Karte verliert (den LoP würden wir dann ausrufen). Dafür darf die neue Position des Roboters nach einem LoP dem Roboter nicht mehr mitgeteilt werden, der Roboter muss sich also bei einem LoP wieder zum letzten Checkpoint zurücksetzen. Ob dem Roboter die Information LoP „ja“ oder „nein“ gegeben werden kann, ist noch nicht sicher, da bekommen wir noch eine Antwort vom Technical Committee, also den Entwerfern der offiziellen Regeln.
Weiterhin muss der Roboter bei Opfern nun Rescuekits abwerfen, von denen er maximal 12 Stück dabei haben darf. Dadurch wird man gezwungen, die Opfer in die Karte einzuzeichnen (damit man nicht mehrere Kits bei einem Opfer abwirft, was generell kein Problem ist, unter Umständen bekommen dann aber einige Opfer gar kein Kit). Generell muss natürlich auch ein Abwurfmechanismus entwickelt werden, das ist aber kein großes Problem. Beim Einzeichnen der Opfer in die Karte muss berücksichtigt werden, dass sich auch mehrere Opfer auf einer Fliese befinden könnten…

Es kommt also einiges dazu, deshalb werden wir, zumal das Plexiglas schon etwas gelitten hat, ein neues Chassis bauen, das 1cm kleiner ist (der Roboter hat dann eine Größe von genau 19cm x 19cm). Die Infrarotentfernungssensoren sollen so weit wie möglich nach unten, um notfalls auch noch sehr kleine Hindernisse erkennen zu können. Natürlich kommen auch Ultraschallsensoren dazu, wir werden drei Stück von den Devantech SRF10 verwenden. Der Abwurfmechanismus wird mit einem Servo bewerkstelligt.
Unsere Zeilenkamera wird zudem mehr oder weniger von einer richtigen Kamera abgelöst, generell wollen wir aber weniger auf Kameras setzen. Wir werden nun die neue CMUcam5 benutzen, die man im November bei Kickstarter unterstützen konnte. Vorteil ist, dass man der Kamera einfach Objekte, die getrackt werden sollen, beibringen kann. Die Position dieser Objekte wird dann z.B. seriell per UART ausgegeben. Was nicht so toll ist, ist, dass das Ganze nur mit farbigen Objekten funktioniert. Da müssen wir uns also noch was einfallen lassen. Notfalls versuchen wir, einzelne Pixel der Kamera auszulesen. Vorteil dieser Kamera gegenüber unserer Zeilenkamera ist einfach, dass wir uns um nichts mehr kümmern müssten, die Belichtung also unabhängig vom Roboter und auch ohne LED geregelt werden kann etc. Selbst, wenn wir mit der Kamera selbst vorerst nichts anfangen können, wird sie uns zumindest als Ansteuerung für das Servo dienen (man kann sogar zwei Servos an die Kamera anschließen). Für den Notfall (plötzliche Regeländerung? Superteam Wettbewerb?) sind wir dann gewappnet.
Generell sind wir von Kameras nicht mehr so begeistert, nachdem uns unsere Zeilenkamera bei den hellen, beleuchteten Wettbewerbsparcours nicht mehr so gut funktioniert hat, im Gegensatz zu unserem Backupsensor am Untergrund, der auch bei extrem hellem Licht noch die gleichen Werte geliefert hat. Erschwerend dazu kommt, dass die Zeilenkamera aufgrund ihrer Neigung nicht dazu in der Lage ist, silberne Flächen (die Checkpoints) zu erkennen, da das gesamte Licht von der Kamera weg reflektiert wird und diese Flächen somit als Sackgasse erkannt werden würden. Der Sensor muss genau senkrecht nach unten zeigen, damit bei silbernem Untergrund das gesamte Licht und bei schwarzem Untergrund wenig bis gar nichts reflektiert wird.
Wahrscheinlich werden wir dafür unseren aktuellen Backup-Untergrundsensor mit einer High Power IR LED aufrüsten, sodass er auch noch funktioniert, wenn er weiter vom Untergrund entfernt ist (wenn der Roboter Speed Bumps überquert oder die Rampe befährt).

All diese Ideen und Gedanken sind in unseren neuen, überarbeiteten Entwurf für den Roboter eingeflossen. Im Folgenden ein paar Bilder:

Kitdropper

Kitdropper: Ein Servo schiebt ein Stück Plexiglas nach vorne, drückt dabei ein Rescue Kit aus dem Schacht (die Kits werden durch eine kleine Feder zurückgehalten, damit sie nicht so herausfallen) und fährt wieder in die Ausgangsposition zurück.

 

 

 

 

 

 

 

 

 

Untere Ebene des Roboters mit Motoren, Powerunit (Anschlüsse der Motoren und des Akkus), dem Orientierungssensor, einem Ultraschallsensor nach vorne und einem normalen Infrarotentfernungssensor nach hinten und dem Kitdropper

 

 

 

 

 

 

 

 

 

Zweite Ebene

Zweite Ebene mit allen Entfernungssensoren nach unten, zwei Ultraschallsensoren, der Kamera und dem Mainboard

 

 

Komplettansicht

Komplettansicht des neuen Roboters – Das Display ist jetzt aus Platzgründen etwas weiter vorne

 

 

 

 

 

 

 

 

 

Komplettansicht - FOVs

Komplettansicht des Roboters mit eingezeichneten FOV (Field of view) aller Sensoren. Gut erkennbar ist der gut abgedeckte Bereich vor dem Roboter.

Tag 4: Deutsche Meisterschaften „German Open“ in Magdeburg: Finale und Siegerehrung

Der vierte Tag – langsam wurde es spannend. Wir waren zwar schon ziemlich sicher auf dem 2. Platz (damit sich das geändert hätte, hätten wir einen sehr schlechten letzten Lauf und ein anderes Team einen sehr guten Lauf abliefern müssen), bei den Plätzen unter dem zweiten Platz sah es aber schon etwas enger aus.

Wir haben nichts mehr am Roboter geändert und nur noch auf unseren Lauf gewartet. Dieser sah zunächst sehr gut aus – alle Opfer wurden korrekt erkannt – der Roboter hat sich dann aber an einem Hindernis aufgehangen. Normalerweise fängt unsere Kollisionserkennung sowas ab, die Dose befand sich aber genau im Toten Winkel unseres dafür zuständigen Sensors. Der Roboter hat dann natürlich seine Position in der Karte verloren und wir haben abgebrochen – warum genau wissen wir selbst nicht, wahrscheinlich in der Aufregung? Wir hätten auf jeden Fall den Roboter neu in den Parcours setzen können und hätten den Startbonus noch bekommen können. Aber das änderte wie gesagt nichts an unserer Platzierung. Nochmal passiert uns sowas aber nicht 😉

Zwischenzeitlich dachten wir dann doch, dass uns ein anderes Team überholen könnte, aber da es über das Zeitlimit von 8 Minuten kam, konnte auch hier der Startbonus nicht in Anspruch genommen werden.

Letztlich sind wir dann, wie vermutet, auf dem 2. Platz gelandet. Insgesamt ärgern wir uns schon etwas darüber, da wir, wenn wir die Opfer zu Beginn des Wettbewerbs nicht (falsch) erkannt hätten, sogar 1. werden können (erstaunlicherweise waren wir schneller als der 1. Platz, der in Hannover noch schneller war als wir). Aber egal, wir sind voll und ganz zufrieden mit unserer Platzierung.

Wahrscheinlich haben wir uns somit für die WM in Brasilien qualifiziert, die Quoten wurden allerdings noch nicht veröffentlicht, sicher ist das also noch nicht. :/

Die Fotos aus Magdeburg haben wir ins Webalbum hochgeladen, auch zu finden in der Galerie.

Tag 3: Deutsche Meisterschaften „German Open“ in Magdeburg: Zwei Wertungsläufe

Heute sind wir sehr zuversichtlich auf gute Ergebnisse bei den Wertungsläufen in den Wettbewerb gegangen. Wir haben vor dem ersten Wertungslauf heute wieder einige sehr spezielle Situationen getestet, die wahrscheinlich aber nicht so bei den deutschen Meisterschaften in einem Wertungslauf zu bewältigen werden

Beim Testen haben wir einige Bugs gefunden, die im Wesentlichen etwas mit der Rampe zu tun hatten. Diese Bugs konnten wir aber recht schnell beseitigen. Zudem haben wir die Zeilenkamera wieder ins Programm aufgenommen und auch dort einen weiteren Bug beseitigt, der unter bestimmten Situationen auftritt, wenn die Kamera die schwarze Fläche einmal nicht erkennt und der Roboter somit über den Untergrundsensor die Sackgasse erkennen muss.

Beim ersten Wertungslauf heute haben wir alle Opfer bis auf eines erkannt. Das hatte wieder etwas damit zu tun, dass die Opfer bei den Parcours hier etwas zu hoch für uns befestigt waren. Das Problem hatten wir auch schon gestern, wir haben die Sensoren da allerdings einfach etwas nach oben gebogen und bei Tests im Testparcours schien alles zu funktionieren.
Letztlich haben wir die Sensoren dann über Distanzbolzen erhöht und hatten im insgesamt dritten Wertungslauf gar keine Probleme und konnten die volle Punktzahl erzielen.

Somit dürften wir ziemlich sicher auf dem 2. Platz landen (sicher ist aber noch nichts 😉 ). Wie viele Teams sich für die WM qualifizieren, werden wir wahrscheinlich erst nächste Woche erfahren. Es bleibt also spannend!

Tag 1 + 2: Deutsche Meisterschaften „German Open“ in Magdeburg: Setup und erster Wertungslauf

Nachdem wir gestern planmäßig um 13:00 Uhr in Magdeburg angekommen sind, haben wir erst unser Gepäck in die nur 5min vom Bahnhof entfernt liegende Jugendherberge gebracht, da die Messehalle erst um 14:00 Uhr für die Teilnehmer öffnete.

Wir haben dann die ganze Zeit getestet, getestet, getestet, ganz besonders kritische Situationen mit Hindernisse, die dieses Jahr das erste mal bei deutschen Meisterschaften zu Einsatz kamen. Darauf waren wir so nicht vorbereitet, da die Hindernisse aber zumindest hier nur aus Flaschen, die in der Mitte von Foyers stehen, bestehen, stellen sie kein großes Problem für unseren Roboter dar. Selbst, wenn nur 20cm Platz zwischen Hindernis und Wand sind, findet der Roboter irgendwie seinen Weg dadurch und die Karte stimmt trotzdem noch überein.

Zuversichtlich sind wir dann in den zweiten Tag gestartet. Die Wettbewerbsarena wurde extrem stark ausgeleuchtet, da sich erstmals eine Kamera und ein großer Bildschirm über der Arena befand, um den Zuschauern das Verfolgen des Geschehens im Parcours zu erleichtern. Auf dem Wettbewerbsparcours durften wir sogar zwei Stunden vorher noch testen, wobei sich dann herausgestellt hat, dass diese extreme Beleuchtung unsere Sackgassenerkennung über die Zeilenkamera stark beeinträchtigt. Problem 1 war, dass zum Einen relativ starke Kontraste durch die Beleuchtung entstanden (Schatten/Licht), die unter Umständen als Sackgasse erkannt wurden. Zudem war das Licht stellenweise einfach so hell, dass die Kamera schlichtweg überfordert war und überbelichtet, was sich daran bemerkbar macht, dass die Werte extrem springen (die Kamera verlangt eine noch kürzere Belichtungszeit, was aber nicht mehr möglich ist). Die einzige Lösung war, unsere Erkennung der schwarzen Flächen auf den Backup-IR-Sensor umzustellen, der sich unter dem Roboter befindet. Dieser liefert sehr, sehr zuverlässige Werte, wir benutzen ihn normalerweise nur, um zu erkennen, wenn ein Schwellwert für die Zeilenkamera falsch eingestellt wurde. Leider haben wir in den zwei Stunden, die uns bis zu unseren Wertungslauf noch übrig geblieben sind, keine funktionierende Lösung gefunden, um ein Befahren der schwarzen Flächen zu vermeiden, weshalb wir für diesen einen Wertungslauf immer, wenn wir eine Sackgasse erkannt haben, drei Wände in die Karte eingezeichnet, damit der Roboter nicht durch die Sackgasse fährt. Zurückzuführen ist der Fehlschlag der Implementation darauf, dass unsere komplette Software darauf ausgelegt ist, die schwarzen Fliesen gar nicht erst befahren zu müssen. Deshalb mussten wir leider so ein bisschen pfuschen…

Der Wertungslauf brachte uns dann beinahe volle Punktzahl; Leider haben wir nicht sorgfältig genug kalibriert und ein Opfer somit nicht erkannt und ein Opfer falsch erkannt. Aktuell dürften wir somit auf dem zweiten Platz liegen (wahrscheinlich bekommen wir dazu heute Abend beim Social Event noch nähere Informationen). Insgesamt gibt es vier Wertungsläufe, wobei die besten drei gewertet werden.

Nach dem Wertungslauf haben wir uns dann nochmal an den Untergrundsensor gesetzt und konnten ihn recht bald erfolgreich am Roboter zum Laufen bringen. Die starke Beleuchtung wird, soweit wir heute verstanden haben, morgen allerdings ausgeschaltet werden und wir werden wahrscheinlich wieder unsere Zeilenkamera nutzen. Eventuell bleiben wir aber auch erst bei dem unteren Sensor, da er wie erwähnt sehr zuverlässig funktioniert.

Aufgrund der langsamen Internetverbindung können wir momentan leider keine Fotos hochladen, die folgen wie nach Hannover wahrscheinlich Sonntag. :)