«

Sick Robot Day 2018

Aufgabe

Die diesjährige Aufgabe des Sick Robot Days am 13.10.2018 bestand darin rote Metallkugeln von einer auf einer Kreisbahn fahrenden Platform zu sammeln. Dabei traten immer zwei Roboter gegeneinander an. Den Wettbewerb gewann der Roboter, der am Ende des besseren von zwei Läufen die meisten Kugeln in seiner Lagerbox hat.

Aufbau des Roboters

Aufgrund der Erfahrung des letzten Mals wollten wir nicht wieder mit unserem Roboter Beteigeuze antreten sondern eine etwas manövrierfähigere Plattform bauen. Diese sollte in der Lage sein auf der Stelle zu drehen, da Wendemanöver viel Zeit kosten. Seitlich fahren zu können wäre auch praktisch beim Verfolgen des Transporters. Dank des glatten Hallenbodens konnte ein Omniwheel-Antriebskonzept gewählt werden. Dieses ermöglicht es dem Roboter instantan und unabhängig voneinander sich in alle Raumrichtungen zu bewegen, sowie um die vertikale Achse zu rotieren. Die insgesamt vier Getriebemotoren, zusammen mit den dazugehörigen Inkremental-Encodern und Motortreibern, wurden auf der untersten Ebene des Roboters untergebracht. Darüber befinden sich die selbst designte Hauptplatine, sowie zwei Laserscanner, die einen zweidimensionalen Rundumblick ermöglichen. Auf der obersten Ebene ist ein ausfahrbarer Greifmechanismus, der die Kugeln magnetisch hält und so von der fahrenden Plattform in das spiralförmige Aufbewahrungslager auf dem Roboter befördert. Durch eine Klappe am Ende der Spirale können die Kugeln letztendlich in die Zielbox abgeworfen werden. Die Bildverarbeitung der Kameras und Laserscanner, sowie die Fahrplanung, geschieht auf einem Laptop, der sich ebenfalls auf der obersten Ebene befindet.

Wir bedanken uns beim Förderverein der Studierendenschaft des KIT e.V. für die finanzielle Unterstützung beim Bau der Roboterplattform.

Software

Aus Sicht der Software haben wir die Aufgabe in vier Teile geteilt: Lokalisierung des Roboters in der Arena, Lokalisierung des Transporters, Fahren zwischen Zielen und Aufsammeln der Kugeln.

Für die Lokalisierung des Roboters verwenden wir auf unterster Ebene die Encoder an den Rädern kombiniert mit einem BNO055 Orientierungssensor. Darüber arbeitet ein Partikelfilter, der in den Scans der zwei Laserscanner den Rand der Arena trackt und damit die Position des Roboters in der Arena bestimmt.

Mit dieser Information wird der Rand der Arena aus dem Laserscan gefiltert. In diesem gefilterten Scan wird mit einem weiteren Partikelfilter der Transporter verfolgt. Das Modell nutzt dabei aus, dass sich der Transporter auf einer bekannten Kreisbahn mit einer ungefähr bekannten Geschwindigkeit bewegt.

Tracking der Arena und des Transporters bei einem Testlauf in unserem Aufenthaltsraum

Zur Verfolgung der Kugel wird die vorne auf dem Arm montierte Kamera verwendet. Die Kugeln werden anhand ihrer Farbe vom Hintergrund getrennt. Ein Punkt im Bild wurde einprogrammiert, der so liegt, dass die Kugel an dieser Position gegriffen werden kann. Die Kugel die sich am nächsten an diesem Punkt befindet wird durch Bewegung des Roboters auf den Punkt geregelt und dann mit dem Magnet aufgesammelt. Da wir uns mit den Omniwheels in alle Richtungen bewegen können ist die Regelung relativ simpel. Ob die Kugel tatsächlich aufgesammelt wurde kann allerdings nicht erkannt werden, was auf dem Wettbewerb zu einigen unnötigen Fahrten zur Lagerbox führte.

Der Wettbewerb

Der Roboter war unter dem üblichen Zeitdruck, mit Nacht- und Ganztagsschichten, fertiggestellt worden, als drei Tage vor dem Wettbewerb ein Elektrotechniker 0,2V zu viel auf die Servos gab und diese ins Jenseits beförderte. Spätestens da meinte der Teamleiter Mechanik, dass es dieses Jahr wohl nur darum ginge den zum Behalt der gesponserten Sensoren geforderten Meter zu fahren. Doch es wurden rasch Ersatzteile organisiert und 8 gemeldete Teammitglieder konnten früh am Morgen Richtung Waldkirch aufbrechen.

Auf dem Wettbewerb haben wir in der Testphase vor den Läufen einige Parameter auf die örtlichen Gegebenheiten angepasst. Zum Beispiel war die Kreisbahn des Transporters eher eine Ellipse. Eine etwas grössere Änderung war noch das Anbringen einer zweiten Kamera, die erkennen sollte, ob sich vor uns jetzt der Transporter oder der gegnerische Roboter befindet. Das hätten wir sonst nur mit der Kamera am Arm erkennen können nachdem dieser bereits ausgefahren ist und dann ist es ja bereits zu spät. Diese Situation ist im Wettbewerb auch einmal aufgetreten, die Änderung hat sich also gelohnt.

Ein Problem während des Wettbewerbs war, dass unser Roboter recht häufig unnötig zwischen Lagerbox, Spielfeldmitte und Transporter hin und her gefahren ist. Das hätte sich durch etwas bessere Regeln in der Statemachine und eine Erkennung der aufgesammelten Kugeln verhindern lassen. Dafür war aber während des Wettbewerbs keine Zeit mehr.

Die erste Paarung war das tschechische Team EDURO gegen Attempto aus Tübingen, dabei zeigte sich einmal auf tschechischer Seite eine häufig eingesetzte Strategie des Abwartens, bis der Transportroboter vorbei kommt und auf der anderen Seite zeigten sich technische Probleme, welche auch andere Teams hatten. Als zweites waren wir gegen Duke von der Uni und HS Osnabrück dran. Duke konnte vorlegen und lieferte einige Kugeln in die eigene Box, wurde dann jedoch disqualifiziert, nachdem er sich nicht mehr aus dem Ladebereich herausbewegen wollte. Unser Roboter Cassiopeia hingegen fuhr fleißig zwischen Box und Hallenmitte/Transportroboter hin und her, konnte jedoch nur eine Kugel nach Hause bringen.

In der fünften Runde war dann zum ersten Mal das Team RT-Lions mit ihrem 250kg Koloss dran, sie sammelten 13 Kugeln, vermutlich mehr als alle anderen Roboter vorher zusammen. Jedoch ließ er alle Kugeln auf einmal neben der eigenen Box fallen.

In unserem zweiten Lauf war Cassiopeia durch kleine Anpassungen der Statemachine deutlich zielgerichteter und konnte trotz einiger Fehlgriffe vier Kugeln nach Hause bringen. Am Ende gewann das Team RT-Lions, da ihr Roboter neun Kugeln einsammelte und kurz vor Ende erfolgreich ablegte. Damit erreichten wir dann in der Gesamtwertung den zweiten Platz von insgesamt 12 Teams.

 

Hier ist ein Zeitraffer unseres zweiten Laufs: