Letztes Jahr bekamen wir die Möglichkeit an der Running Robot Competition in China teilzunehmen. Da wir im letzten Jahr Spaß hatten, wollten wir auch dieses Jahr wieder daran teilnehmen.
Die Running Robot Competition ist kein Teil der RoboCup Turniere an denen wir normalerweise teilnehmen. Sie ist ein Turnier in dem die Roboter durch einen Parkour laufen müssen und dabei mehrere Hindernisse überwinden müssen. Diese Hindernisse können z.B. sein, dass der Roboter warten muss bis eine Schranke nicht mehr im Weg ist, oder über Treppenstufen laufen zu müssen.
Wegen Covid-19 hatten wir leider nicht die Möglichkeit in Person teilzunehmen, aber wir freuten uns trotzdem über das Internet teilnehmen zu können. Um das zu ermöglichen haben die Veranstalter uns eine Simulationsumgebung bereit gestellt.
Wir haben uns einige Optionen überlegt wie man die Probleme lösen könnte. Angefangen mit einem konventionellen Ansatz in dem wir eine Vision entwickeln würden um z.B. die die gelben und schwarzen Segmente der Schranke zu erkennen. Sobald die Schranke dann in einem bestimmten Winkel ist, könnte der Roboter dann los laufen.
Wir wollten aber die Möglichkeit nutzen und uns mit etwas beschäftigen, mit dem die meisten aus unserem Team weniger Erfahrung hatten. Deshalb haben wir uns entschieden reinforcement learning für unseren Ansatz zu verwenden.
Reinforcement learning ist ein Ansatz in dem wir neuronale Netze verwenden, damit der Roboter lernen kann an den Hindernissen vorbei zu kommen, ohne das wir dem Roboter erklären müssen wie er das schafft. Das kann auch zu Lösungen führen die effizienter sind als Lösungen auf die wir gekommen wären. Das kann sein, dass der Roboter einen Fehler in der Physik im Simulator und sich ins Ziel teleportiert oder etwas so simples wie einen Weg zu finden, an den wir nicht gedacht haben.
Als Eingabe für den reinforcement learning Algorithmus haben wir nur das Kamerabild des Roboters verwendet. Ausgehend von diesem Bild musste der Roboter dann herausfinden was er tun sollte. Sollte er warten bis die Schranke oben ist oder kann er schon anfangen zu laufen? Das klingt trivial für uns Menschen, aber der Roboter hat zu Beginn kein Konzept davon, dass die Schranke ein Hindernis ist. Am Anfang kann der Roboter nicht einmal unterscheiden zwischen dem Boden auf den er treten kann und einem solchen Hindernis.
Um dem Roboter zu helfen solche Dinger zu lernen, haben wir ihm Punkte als Belohnung gegeben, wenn er sich dem Ziel näherte und ihm welche abgezogen, wenn er in ein Hindernis wie die Schranke gelaufen ist.
Der Roboter konnte nur die Richtung bestimmen in die er gelaufen ist. Wir haben das selbe Programm zum laufen genutzt wie wir es auch auf unseren Fußballspielenden Robotern einsetzen. Da in dem Wettkampf ein anderer Roboter verwendet wurde, mussten wir einige Parameter anpassen. Zum Glück hatten wir ein Skript von unserem vorhandenen Laufen, mit dem der Roboter lernen konnte ideal zu laufen in dieser neuen Simulation.
Mit diesem Ansatz konnten wir die ersten Hindernisse überqueren. Wegen eines Missverständnisses, hatten wir weniger Zeit als geplant und wir konnten leider nicht den gesamten Parkour beenden.
Wir hatten eine Menge Spaß damit unseren Ansatz zu entwickeln um die Probleme zu lösen vor die uns die Running Robot Competition stellte. Wir freuten uns auch über die Möglichkeit viel über reinforcement learning zu lernen.
Wie ihr wahrscheinlich schon aus dem Titel gelesen habt, hatten wir nicht nur jede Menge Spaß während des Wettkampfs, sondern haben sogar den dritten Platz bekommen!
Wir wollen auch 2020 wieder an der Weltmeisterschaft teilnehmen. Für die Bewerbung waren die Bedingungen ein wenig anders als in den letzten Jahren.
Dieses Jahr mussten wir statt einem Team Description Paper einen Extended Abstract schreiben. Darin haben wir beschrieben was wir auf der Weltmeisterschaft in Sydney gelernt haben, was die wichtigsten Probleme, die wir bis zur nächsten Weltmeisterschaft lösen müssen sind und was wir bis zur Weltmeisterschaft in Bordeaux gerne entwickeln würden. Unser Extended Abstract ist in unseren wissenschaftlichen Arbeiten und hier zu finden.
Außerdem haben wir ein Video erstellt, das die Fähigkeiten unseres Roboters zeigt:
Am zweiten Tag der Gruppenphase freuten wir uns über die Fähigkeit eines unserer Roboter. Er war am Ball vorbei gelaufen und entdeckte den Ball hinter sich. Um zum Ball zu kommen begann er rückwärts zu laufen. Das führte dazu, dass der Roboter anfing rückwärts den Ball zu dribbeln. Das war sehr amüsant anzusehen, aber zum Glück gelang es dem Roboter nicht auf diesem Wege den Ball in sein eigenes Tor zu bekommen.
Im Achtelfinale waren unsere Roboter aufgrund ihrer Hardware leider noch nicht wieder ausreichend einsatzbereit und mussten das Spiel am Spielfeldrand verbringen. Damit sind wir leider im Achtelfinale aus der Weltmeisterschaft ausgeschieden. Immerhin konnten wir während der Spiele viele Bilder aufnehmen, die uns in unseren Machine Learning Ansätzen in Zukunft unterstützen werden.
Den restlichen Wettbewerb haben wir dann nur noch als Zuschauer erleben können. Das hat es aber nicht weniger spannend gemacht, denn gerade in der KidSize werden die Spiele von Jahr zu Jahr spannender. Bereits ab dem Viertelfinale waren bei den meisten Teams Teamverhalten und Strategie deutlich zu erkennen. Im Finale traf schließlich Rhoban FC aus Frankreich auf das chinesische Team ZJUDancer.
Dort bewies Rhoban FC einige neue Fähigkeiten. In einem der vorherigen Spiele war es dem Team bereits gelungen den Ball über Roboter des anderen Teams herüber zu kicken. Direkt vor dem Finale konnte man Rhoban dabei beobachten wie der Roboter übte, sich für ein mögliches Elfmeterschießen hinzuwerfen. Im Finale selber bewies Rhoban die Fähigkeit einen Einwurf mit den Armen zu machen, der von allen Zuschauern stark bejubelt wurde, da kein anderes Team einen solchen Einwurf durchführen kann.
Vor dem Finale gab es aber noch die Technical Challenges. Hier werden die Teams herausgefordert, technische Lösungen für Probleme zu finden, die möglicherweise jetzt noch nicht spielrelevant sind, aber es immer mehr in der Zukunft werden. Eine dieser Challenges ist die Push Recovery. Hier geht es darum, den Schlag durch eine mit Sand gefüllte Flasche im Laufen auszuhalten ohne umzukippen. Dabei gelang es unserem Roboter von einer 2 Kilogramm schweren Flasche getroffen zu werden, aus 50 cm Entfernung, ohne umzufallen. Mit diesem Ergebnis haben wir den stärksten Schlag sowohl für die Kidsize als auch für die Teen Size ausgehalten. Da dieses Ergebnis mit dem Gewicht des Roboters verbunden wird, hat das in der Kidsize für diese Challenge aber nur für den zweiten Platz gereicht. In der Teen Size hingegen haben wir den ersten Platz in der Push Recovery erreicht.
Am Montag fand dann das Symposium statt, das als wissenschaftliche Konferenz jedes Jahr den Abschluss des RoboCup bildet. Auch wir haben dieses Jahr wieder aktiv teilgenommen und zwei Paper eingereicht, die zur Posterpräsentation angenommen wurden und auf Interesse bei anderen Teams stießen. Die Paper präsentieren eine Möglichkeit, höhere Frequenzen auf unserem Motorbus zu erreichen sowie den Aufbau unserer Vision. Beide sind im Bereich Wissenschaftliche Arbeiten zu finden. Viele vorgestellte Paper sind auch für uns relevant, etwa ein Ansatz zu einer effizienteren Objekterkennung, den wir auch auf unseren Robotern evaluieren möchten. Insgesamt war der Tag mit vielen interessanten Papervorträgen und inspirierenden Keynotes gefüllt und hat einen gelungenen Abschluss für den RoboCup gebildet.
Alles in allem war diese RoboCup Weltmeisterschaft leider nicht unsere erfolgreichste, dennoch haben wir viel gelernt. Deshalb werden wir unsere Hardware noch weiter optimieren, damit sie noch besser vor Fällen geschützt ist. Außerdem werden wir weiter unsere Software optimieren, damit wir auch taktisch bestens vorbereitet sind. Wir freuen uns darauf unsere Fortschritte im nächsten Jahr in Bordeaux präsentieren zu können und an der wissenschaftlichen Entwicklung teilzunehmen.
In der ersten Maiwoche war es für uns wieder Zeit für die German Open, die deutsche Meisterschaft im RoboCup. Am Montag räumten wir unser Labor noch einmal richtig auf damit wir auch nichts vergessen. Am Dienstag packten wir die letzten Sachen ein und traten die Reise nach Magdeburg an. Nach letzten Einkäufen vor dem Feiertag, machten wir es uns im Hotel neben unseren Robotern gemütlich und verbrachten den restlichen Tag und Teile der Nacht damit zu programmieren.
Am Mittwoch durften wir die Messehalle betreten und verinnahmten direkt das Feld für uns indem wir Davros, unseren Vision Roboter (siehe Bild) auf das Feld stellten mit einer Konstruktion von Wäscheleinen um aus möglichst vielen Winkeln Bilder vom Feld machen zu können. Die Wäscheleinen wurden dabei benutzt um die genaue Position von Davros bestimmen zu können ohne immer mühselig ein Maßband verwenden zu müssen
Die aufgenommenen Bilder werden bald verwendet verschiedene Ansätze für einen visuellen Kompasses zu evaluieren. Dabei werden markante Punkte im Hintergrund des Spielfeldes verwendet um die eigene Orientierung zu bestimmen um sicher auf das richtige Tor zu schießen.
Als Davros das Feld wieder verließ haben wir uns mit unseren regulären Robotern auf das Feld gestellt und das Aufstehen mit den Robotern geübt.
Gleichzeitig waren wir aber auch nicht untätig in der Softwareentwicklung. Unsere Taktik war nicht ausreichend getestet und es gab einige Schwierigkeiten zwischen der Interaktion von unseren verschiedenen Software Modulen. Die Probleme konnten wir leider nicht abschließend lösen bis zu unserem ersten Spiel am Freitag gegen die WF Wolves. Da diese aber mit ähnlichen Schwierigkeiten zu kämpfen hatten, konnten wir dieses Spiel mit einem 0:0 Unentschieden beenden. In den folgenden Spielen hatten wir leider weniger Glück und wir verloren ein paar Spiele, machten aber ständig Fortschritte in allen Bereichen.
So kam es zum letzten Spiel der Gruppenphase. Die WF Wolves hatten ihr letztes Spiel verloren und waren damit auf der selben Punktzahl wie wir für die Gruppenphase. Gegen Rhoban FC, den amtierenden Weltmeister aus Frankreich, der super gespielt hatte auf dieser Meisterschaft, konnten wir uns leider nicht all zu große Hoffnungen machen. Wir mussten also darauf hoffen über das Torverhältnis doch noch gegen die WF Wolves zu gewinnen und damit den Einzug in das Halbfinale zu schaffen. Nach der ersehen Spielhälfte machte sich leichte Resignation breit. Doch das Glück war auf unserer Seite. In der zweiten Hälfte hatte Rhoban FC mit Netzwerk Problemen zu kämpfen und schaffte es nicht noch genügend Tore zu schießen um uns den Einzug in das Halbfinale zu verwehren. Das Halbfinale fand gegen das chinesische Team ZJUDancer statt und die kleineren Roboter spielten flott um uns herum und wir waren leider nicht in der Lage zu gewinnen. Nach dem Halbfinale blieben uns noch ein paar Stunden Zeit in der Messehalle und wir trafen letzte Vorbereitungen um uns einerseits auf ein mögliches Elfmeterschießen im Spiel um den dritten Platz vorzubereiten und andererseits Motoren zu reparieren und unsere Taktik zu optimieren. Im Spiel um den dritten Platz spielten wir gegen Starkit. Starkit ist ein russisches Team aus Moskau, dass Roboter und Software von Rhoban FC gekauft hat. In diesem Spiel konnten wir noch einmal reflektieren wie weit wir gekommen sind auf dieser Meisterschaft. Von einem Spiel in dem unsere Taktik so unausgereift war, dass wir kaum in der Lage waren auf das Feld zu laufen bis hin zu einem Torwart der den Ball aus dem Gefahren Bereich vor seinem Tor gedribbelt hat und Stürmern die den Ball nach vorne spielten ungehindert von den Zweikampfversuchen der gegnerischen Verteidiger. Auch wenn unser Stürmer dann hingefallen ist und leider kein Tor machen konnte, sind wir trotzdem stolz auf unsere Leistung im letzten Jahr und sind glücklich über unseren vierten Platz, mit dem wir nur knapp keine Medaille bekommen haben. Wir freuen uns darauf die jetzt anstehenden Wochen zu nutzen und letzte Vorkehrungen für die Weltmeisterschaft treffen zu können um dort hoffentlich gut abschneiden zu können.
In ein Youtube Video haben wir eine kleine Zusammenfassung vorbereitet.
Am Dienstag geht es los für uns. Wir fahren zur German Open 2019!
Die German Open ist die deutsche Meisterschaft im RoboCup. Dort gibt es Wettbewerbe in 6 der Major Leagues, also von Robotern, die in Krisensituationen Menschenleben retten können bis zu unseren fußballspielenden Robotern. Zu der Meisterschaft kommen über 40 Teams aus 16 Ländern um um den Titel zu konkurrieren.
Wir bekommen dabei die Gelegenheit auf der German Open unsere Software- und Hardwareveränderungen seit der Weltmeisterschaft in offiziellen Spielen zu präsentieren und unsere Änderungen ins Detail zu testen. Mit diesen Erkenntnissen können wir unseren Robotern noch den letzten notwendigen Feinschliff verpassen, bevor wir auf die Weltmeisterschaft fahren.
Die anderen Teams aus unserer Liga, gegen die wir spielen, sind: WF Wolves (Ostfalia Hochschule für angewandte Wissenschaften, Deutschland) Rhoban FC (Université de Bordeaux, Frankreich) Starkit (Moscow institute of physics and technology, Russland) ZJUDancer (Zhejiang University, China)
Zuschauer sind auf die German Open eingeladen vom Freitag den 3.5 bis Sonntag den 5.5. Der Eintritt für unsere Fans (und andere) ist kostenlos. Weitere Informationen hier: https://robocupgermanopen.de/de/besucher Wir werden selbstverständlich weiter von der German Open berichten auf diesem Blog und unseren Social Media Kanälen.
Die qualifizierten Teams für die Meisterschaft im RoboCup für 2019 wurden veröffentlicht. Wir freuen uns als eins von 20 Teams in der Humanoid Kid Size League antreten zu dürfen.
Wir gehören dabei zu den 19 Teams, die voll qualifiziert sind, dürfen also an den regulären Spielen und den Drop-in Spielen teilnehmen. Ein Team hat sich nur für die Drop-in Spiele qualifiziert. Drop-in Spiele sind dabei ein spezieller Spielmodus. Hierbei stellen Roboter aus verschiedenen Teams eine Mannschaft für das Spiel. Die Mannschaften werden ausgelost und jedes Team darf für seine Mannschaft einen Roboter stellen. Kooperation zwischen den Teams ist der Hauptfokus dieser Wettbewerbsform. Dabei wird aber jeder Roboter einzeln bewertet anhand seiner Performance.
Die Drop-in Spiele könnten dabei eine besondere Relevanz gewinnen in diesem Jahr, denn es wird momentan darüber abgestimmt ob die Ergebnisse aus den Drop-in Spielen die Grundlage sein sollen für die Bildung der Gruppen für die Gruppenphase des Turniers.
In der Humanoid Teen Size League haben sich 10 Teams qualifiziert. Dort nehmen wir mit unserem Kooperationspartner den WF Wolves teil. Hier haben sich 8 Teams voll qualifiziert und 2 Teams nur für die Drop-in Spiele.
Alle Teams, ihre Qualifikationsvideos, Team Description Paper sowie die Roboter Spezifikationen kann man sich hier ansehen:
Wir haben uns beworben für die Weltmeisterschaft im RoboCup, die dieses Jahr in Sydney stattfinden wird. Dafür haben wir ein Team Description Paper geschrieben, indem unsere Forschung des letztes Jahres vorgestellt wird. Außerdem haben wir für unsere Bewerbung ein Video produziert . Wir freuen uns sehr, dass wir angenommen worden sind und im Juli nach Sydney fliegen und dort viele spannende Spiele haben werden.
Natürlich laufen unsere Vorbereitungen bereits auf Hochtouren. Wir haben in den letzten Monaten bereits mehrere Integration Tests gemacht, in denen wir einmal die komplette Soft- und Hardware getestet haben. Zusätzlich sind wir bereits am Planen des nächsten Integration Tests.
Durch die Umstellung der Roboterplattform von unseren Minibots zu der Wolfgang Plattform haben sich natürlich einige Schwierigkeiten im letzten Jahr ergeben. Gleichzeitig ist aber auch die Motivation gewachsen und deshalb konnten wir große Fortschritte machen, sowohl in der Software, als auch in derWeiterentwicklung der Wolfgang Hardware Plattform.
Im Rahmen unserer Arbeit an der Software haben wir unsere Vision überarbeitet. Diese ist nun besser in der Lage parallel die Ergebnisse von CPU und Grafikkarte zu berechnen und zu verarbeiten. Im Moment sind mehrere Bachelorarbeiten in Arbeit die mit Fully Convolutional Neural Networks weitere Objekte auf dem Feld erkennen sollen. Dabei geht es um die Erkennung von Robotern und Torpfosten. Die Lokalisierung der Roboter wird momentan komplett umgestellt und verbessert. Wir setzen dafür AMCL, einen Partikelfilter, ein und transformieren Linienpunkte, die von unserer Vision gefunden wurden. Eine Live Demo unserer Lokalisierung kann man hier sehen: https://www.instagram.com/p/BtVlmNuFCGd/ Neben der Lokalisierung arbeiten wir auch an einem World Model. Damit sind wir in der Lage die Sensordaten von den verschiedenen Robotern zu verarbeiten und damit den Robotern zu ermöglichen auch über Zeit zum Beispiel den Ball zu beobachten und deshalb falsche Sensordaten herauszufiltern und zu ignorieren. Wir haben unser Behavior komplett neu geschrieben. Dabei haben wir eine neue Beschreibungssprache entworfen die die Weiterentwicklung unseres Behaviors deutlich erleichtert. Dafür haben wir den Dynamic Stack Decider entwickelt und arbeiten momentan daran ein Paper darüber zu veröffentlichen. Unser Path Planning, um zu berechnen wohin der Roboter laufen soll, wird auf move_base umgestellt. Wir benutzen für unsere Animationen und das Laufen nun Splines. Dadurch sind wir in der Lage die Zwischenschritte zwischen Start und Zielzustand der Bewegung zu berechnen und deshalb gelingen uns weniger ruckartige Bewegungen. Es ist uns gelungen unsere Motoren deutlich häufiger pro Sekunde neue Signale zu senden. Dadurch können wir deutlich häufiger bestimmen wie der Motor sich bewegen sollen und deshalb ein präziseres Bewegungsmuster erreichen. Wir haben neue Fußsensoren in unsere Roboter eingebaut. Durch die zusätzlichen Informationen, kann unser Laufen und unsere Animationen stabilisiert werden. Im Rahmen einer Bachelorarbeit arbeiten wir momentan an einem System um unsere Motoren zu kalibrieren. Denn bereits durch kleine Abweichungen zwischen Messung und Realität entstehen schon große Unterschiede in der Ausrichtung des Roboters. In diesem Rahmen sind bereits große Fehler aufgefallen und behoben worden.
Für das Symposium der RoboCup WM sind momentan noch einige wissenschaftliche Veröffentlichungen geplant. Darüber werden wir später mehr berichten und diese auf unserer Website bei den wissenschaftlichen Arbeiten hochladen.
Den Code, den wir geschrieben haben, ist open source und auf Github zu finden: https://github.com/bit-bots
Vor unserer Reise nach Sydney werden wir an der German Open teilnehmen und dabei unsere Hard- und Software noch einmal im Detail testen und wir freuen uns auf die spannenden Spiele, die uns in Magdeburg erwarten.
Zusätzlich zu diesem Blog, Facebook und Twitter werden wir auch über Instagram Bilder veröffentlichen. Unsere ganz neue Instagram Seite könnt ihr hier finden: https://www.instagram.com/hhbitbots/
Was ist ein RoHOW? Kann man das essen?
Der RoHOW ist eine Veranstaltung, auf der sich Forscher und Studenten mit Interesse an humanoider Robotik treffen. Natürlich waren wir deshalb auch dabei! Dafür haben wir uns mit 13 Mitgliedern auf den Weg zur Technischen Universität Hamburg gemacht. Neben uns waren noch Forschungsgruppen aus ganz Deutschland, aus Italien und den Niederlanden dabei.
Es gab Vorträge und Workshops von den Teilnehmern und von Forschern aus der Industrie, die ihre Arbeit vorgestellt haben.
Für den RoHOW wurde in der Mensa der TUHH ein Spielfeld aufgebaut. Natürlich haben wir unsere Roboter direkt auf das Feld gestellt und von Hardware über die Visualisierung bis hin zur Software z.B. unser neu entwickeltes World Model alles getestet.
Den RoHOW selber kann man zwar nicht essen, trotzdem war für unser kulinarisches Wohl gesorgt. Am ersten Abend haben wir von subventionierter Pizza profitiert und jeden Morgen konnten wir kostenloses Frühstück genießen. Zusätzlich gab es kostenlos zu Trinken. Von allen möglichen Softdrinks bis hin zum grünen Bier, von der TUHH eigenen AG für die Hulks (den Veranstaltern des RoHOWs) in ihrer Teamfarbe gebraut wurde.
Standard Platform League Die meisten Teilnehmer des RoHOWs spielen in der Standard Platform League (SPL). Die SPL Teams haben dabei, wie auch wir, das Ziel Fußball zu spielen. Die Roboter der SPL Teams sind aber hardwaretechnisch sehr stark begrenzt. Sie haben nur eine CPU mit einem Kern zur Verfügung. Ein großes Thema auf dem RoHOW waraber die angekündigte nächste Generation dieses Roboters, bei dem die Teams dann vier Kerne nutzen können. Unsere Roboter haben keine so starken Vorschriften und deshalb konnten wir bereits einen Odroid, einen Intel Nuc und eine Nvidia Jetson gleichzeitig einbauen.
Teams aus ganz Europa Zehn Teams haben an dem RoHOW teilgenommen. Teams aus ganzDeutschland, das SPQR Robot Team aus Italien sowie das Dutch Nao Team aus den Niederlanden waren dabei. Die Chance haben wir genutzt, um uns mit den anderen Teams von technischen Details unserer Roboter bis hin zu den Erlebnissen der Reisen zu den letzten Robocup WMs auszutauschen.
Workshop zu ROS für SPL Da die SPL Teams bisher nur einen Prozessorkern zur Verfügung hatten, war für sie der Einsatz von ROS nicht sinnvoll. ROS bedeutet Robot Operating System und ist zwar kein Betriebssystem, bietet aber viele Services die ein Betriebssystem zur Verfügung stellen würde. Mit ROS kann man gut von der Hardware abstrahieren und sich damit viel Debugging Arbeit ersparen, die durch Schwierigkeiten mit Hardware entstehen. Außerdem bietet ROS Möglichkeiten, Nachrichten zwischen Prozessen auszutauschen. Mit der Einführung eines Prozessors mit vier Kernen fanden die Bit-Bots, es würde durchaus Sinn ergeben, dass auch die SPL sich mit dem Thema ROS beschäftigt. Deshalb haben wir einen Workshop angeboten, in dem wir gezeigt haben, wie wir auf unseren Robotern schon erfolgreich mit ROS arbeiten und welche Vorteile es für die SPL Teams haben würde. Nach unserer Vorstellung haben wir gemeinsam darüber diskutiert, ob es den Aufwand wert sei, das bisherige System auf ROS umzustellen. Diskussionspunkte waren, wieviele Ressourcen ROS benötigt und ob sich das Umschreiben der bestehenden Codebasis in die ROS-Strukturen lohnt. Schlussendlich waren die Anwesenden interessiert, aber hatten Zweifel, ROS kurzfristig einführen zu können, könnten sich allerdings langfristig einen Umstieg vorstellen.
ImageTagger Workshop
Der ImageTagger ist eine von den Bit-Bots entwickelte Open-Source–Software, um online auf Bildern markieren zu können, wo sich Objekte befinden. Diese Software wird von verschiedenen Teams innerhalb des Robocups eingesetzt, um damit neuronale Netze zu trainieren. Bei diesem Workshop haben wir uns mit mehreren dieser Teams getroffen und über die Nutzung des ImageTaggers und die auftretenden Probleme ausgetauscht. Dadurch sind viele neue Aufgaben entstanden, die wir, aber auch die anderen Teams, in naher Zukunft bearbeiten werden.
Bewerbung für die Weltmeisterschaft Wir haben uns auf dem RoHOW mit den WF Wolves getroffen. Das Team ist von der Ostfalia Hochschule für angewandte Wissenschaften in Wolfenbüttel und zusammen haben wir uns auf die kommende Weltmeisterschaft in Sydney beworben. Mit den WF Wolves treten wir gemeinsam in zwei Ligen des Robocup Humanoid Soccer Wettkampfes an. Auf dem RoHOW haben wir uns mit den WF Wolves zusammengesetzt und dabei unser Team Description Paper geschrieben. Das Team Description Paper ist eine wissenschaftliche Veröffentlichung, die unsere Hardware und die von uns geschriebene Software beschreibt.
Lokalisierung Das aufgestellte Feld haben wir direkt benutzt und unsere Roboter darauf platziert. Durch den RoHOW hatten wir Zugang zu einem größeren Feld, als wir es im Labor hätten und dies stellte natürlich einige Herausforderungen an unsere Lokalisierung. Die Ergebnisse waren teilweise schon relativ gut, aber gleichzeitig haben wir auch verschiedene Probleme gefunden, die uns in näherer Zeit beschäftigen werden.
Auf dem Bild sieht man die Position, an der der Roboter sich selbst lokalisiert. Weiß markiert sind Linienpunkte, die von der Vision gefunden werden. Indem die Punkte auf dem vorher bekannten Feld platziert werden, sind wir in der Lage, unsere Position zu bestimmen. Das Bild von dem Roboter ist die Position, die am wahrscheinlichsten ist. Weitere Möglichkeiten werden als rote Pfeile auf dem Feld eingezeichnet.
World Model Momentan wird im Rahmen einer Bachelorarbeit unser World Model komplett neu entworfen. Anhand des World Models können wir feststellen, wo der Ball am wahrscheinlichsten vor dem Roboter liegt. Dies funktioniert mit einem Neuronalen Netz, genauer gesagt einem Fully Convolutional Neural Network, um den Ball auf dem Kamerabild zu finden und einem Partikelfilter, der ermittelt, wo im Raum der Ball vor ihm liegt. Ausgehend davon haben wir unser Kopfverhalten getestet, indem wir den Kopf des Roboters dazu gebracht haben, die Bewegung des Balles zu verfolgen.
URDF Auf dem RoHOW haben wir das URDF für unsere Roboter angepasst. URDF steht für Unified Robot Description Format. Anhand dieses Formats kann man den Roboter mit seiner Größe und Form genau beschreiben. Diese Daten können dann für die Simulation und die Visualisierung des Roboters verwendet werden. Die Ergebnisse der Visualisierung kann man auch im Screenshot zur Lokalisierung bestaunen. Das URDF ist allerdings nicht nur nützlich für die Simulation, sondern wird auch benötigt, um den realen Roboter anzusteuern. Wenn der Roboter eine bestimmte Stelle anschauen soll, weil dort die Position des Balles berechnet wurde, dann muss der Roboter die Höhe seines Kopfes und die Winkel der anderen Motoren kennen. Genau diese Informationen werden im URDF abgespeichert.
Fazit Wir hatten viel Spaß auf dem RoHOW, haben viel mit anderen Teams kommunizieren können und viel Interessantes gelernt. Gleichzeitig haben wir einen großen Teil unserer Software getestet und optimiert. Zusätzlich hatten wir die Gelegenheit, uns über von uns entwickelte und von mehreren Teams verwendeter Software auszutauschen. In diesem Sinne: Vielen Dank an die HULKs für das Organisieren und Veranstalten des RoHOWs!
Unsere Roboter haben neue Fußsensoren bekommen. Dabei haben wir und von Team Rhoban aus Bordeaux inspirieren lassen. (https://github.com/Rhoban/ForceFoot)
Wir haben die originale Implementation dabei noch verbessert. Die mögliche Update Rate haben wir von den originalen 80 Hz auf theoretisch mögliche 9.5 kHz gebracht. Dabei ist die Übertragungsrate über unseren Bus leider limitiert und wir filtern den Output der load cells und übertragen nur mit einer Geschwindigkeit von 1 kHz.
Die Sensoren sind dabei auf der Oberseite vom Fuß angebracht.
Sie sollen uns dabei helfen, mehr Daten zu bekommen, mit denen wir dann besser in der Lage sind, unser Laufen und unsere Animationen zu stabilisieren.
Angebracht haben wir die Sensoren auf dem RoHOW. Die Sensoren schaffen es pro Sensor bis zu 40 KG zu messen ohne kaputt zu gehen. Natürlich haben wir das dabei als Herausforderung gesehen und versucht mit zwei Daumen möglichst viel Druck auszuüben.
In der Zukunft planen wir, wissenschaftlich zu vergleichen, wie sich das Center of Pressure mit unseren Sensoren im Vergleich zur industriellen Lösung, dem Six Axis Force Torque Sensor, messen lässt und wollen unsere Ergebnisse dazu veröffentlichen. In der näheren Zukunft werden wir unsere verbesserte Version des Force Foots als OpenSource-Hardware veröffentlichen.
Wir haben einen neuen Roboter.
Er ist komplett im Eigenbau entstanden. Er erfüllt leider nicht ganz die Anforderungen für unsere Liga, denn er ist nicht humanoid. Er kann nicht einmal laufen. Er kann eigentlich sogar nur den Kopf bewegen.
Um in der Liga spielen zu dürfen ist er allerdings auch nicht entworfen worden. Wir wollten einen einfachen Roboter den man verwenden kann um Bilder für unseren Imagetagger zu generieren oder einfach unsere Vision Algorithmen testen zu können. Mit unserer Konstruktion brauchen wir nur drei Motoren. Normalerweise haben unsere Roboter nur zwei Motoren für den Kopf, aber durch den dritten Motor wird es uns ermöglicht, einen weiteren Freiheitsgrad hinzuzufügen. Denn damit kann der Kopf auch schief gelegt werden. Die Funktion benötigen unsere spielfähigen Roboter nicht, aber sie kommen durch die Bewegung im Spieleifer von selbst in solche Zustände. Durch diesen Roboter können wir auch diese Möglichkeit abdecken und noch realistischere Bilder aufnehmen.
Durch die wenigen Motoren müssen wir uns nicht auf die anderen Bestandteile des Roboters verlassen und deshalb können wir die Komplexität des gesamten Roboters senken. Zusätzlich benötigen wir dann beim testen und kalibrieren der Vision keinen der spielfähigen Roboter und deshalb kann während dessen an diesen gearbeitet werden.
Ein weiteres Feature ist die höhenverstellbare Stange des Roboters, mit der wir Bilder aus der Perspektive von vielen verschieden großen Robotern aufnehmen können.
Obwohl dieser Roboter so simpel ist, erlaubt er uns doch viele neue Möglichkeiten für die Vision.