Abschluss- und Projektarbeiten im acaBot-Bereich

Wir möchten euch an dieser Stelle die aktuellen Themen für Abschluss- und Masterprojekt-Arbeiten vorstellen, die in Verbindung mit unseren acaBot-Robotern stehen. Auf dieser Seite findet ihr unten nur die noch ausstehenden Themen. Möchtet ihr etwas wissen über die gerade laufenden oder schon erledigten Themen aus vergangenen Semestern, findet ihr diese unter den entsprechenden Sub-Links dieser Seite. Dasselbe gilt für die Masterprojekte aus dem Studiengang Medien-Informatik.

Unten findet ihr eine Liste mit noch zu vergebenden Themen, die jedoch unvollständig ist; es existieren weitaus mehr Angebote als die hier genannten, die aufgrund der ständig fortschreitenden Arbeiten mit den Robotern und dem Prozessleitsystem immer neu anfallen. Manche Themen werden auch erst im persönlichen Gespräch aus der Taufe gehoben. Für einen ersten Eindruck in unser Roboter-Spektakel sowie Vorabgespräche zu den aktuellen Abschlussthemen stehen wir, die Labormitarbeiter und Schöpfer von acaBot, Andreas und Brian, euch aber auch gerne Frage und Antwort. Kommt einfach vorbei. 

Die Betreuer für acaBot-Abschlussarbeiten sind:

Prof. Dr. Dragan Macos 

Dragan Macos betreut zwei Bereiche von acaBot-Abschlussarbeiten. Das sind zunächst die zu seinen Schwerpunkten gehörenden iOS-Entwicklungen, das sind über iOS realisierte Robotersteuerungen. 

Prof. Dr. Martin von Löwis

Martin von Löwis ist der richtige Ansprechpartner für Abschlussarbeiten, die mit Echtzeitproblemen in Robotersteuerungen zu tun haben.

Prof. Dr. Christian Forler

Christian Forler hat im acaBot-Projekt die Themen "Navigation und Lokalisation" sowie Odometrie-Optimierung übernommen. Im Bereich Roboter-Navigation sollen auf Graphen basierte A*-Algorithmen (sprich: A-Stern Algorithmus) in den mit einem Raspberry-Pi ausgestatteten Robotern implementiert werden. Die Programmiersprache ist C++. Die Verbesserung der Roboter-Odometrie (= x, y und phi-Position des Roboters in seiner "Welt") geschieht über sog. Sensor-Fusion. Den Robotern stehen drei Arten von (mehr oder weniger guten) Sensoren zur Verfügung: ein Laser-Scanner ermittelt die Distanzen der Roboter zu Hindernissen, ein über dem Roboter angebrachtes Kamera-System liefert dem Roboter seine "ungefähren" Positionsdaten, und die durch Rad-Schlupf beeinträchtigten Motor-Encoder sorgen auf elektro-mechanischer Weise für die Positionsbestimmung des Roboters. Durch geschickte Fusionierung der drei "schlechten" Sensordaten soll die Positionsbestimmung des Roboters verbessert werden.  

 

Ferner verfügen wir über die folgenden, unten genannten Abschlussarbeitsthemen sowohl für den Studiengang Technische Informatik als auch Medieninformatik (obwohl derzeit das Angebot für Studierende aus der TI klar überwiegt). Zur leichteren Orientierung für euch haben wir die Themenausschreibungen hinsichtlich der Bearbeitungseignung gekennzeichnet. Betreuer dieser Arbeiten ist Prof. Dr. Dragan Macos

  • „M“ steht für Medieninformatik.
  • „MT“ steht sowohl für Medieninformatik als auch Technische Informatik
  • „T“ steht nur für Technische Informatik. (Themen für Technische Informatik zeichnen sich dadurch aus, dass ganz besondere Reize wie „Elektronik, Kabel und Lötkolben“ mit im Spiel sind :-))

Seid ihr aus dem Studiengang Medieninformatik, möchtet aber gerne ein Thema für Technische Informatik bearbeiten, dann redet einfach mit dem Betreuer eurer Wahl aus dem PSE-Labor.,

Liste der noch zu vergebenden Themen


Abbildung einer Fernsteuerung für unsere Roboter als mobile App für iOS (Bachelorarbeit)

"M"

Alle unsere Roboter können - neben der programmierten Betriebsweise - auch manuell über Fernbedienungen (mit ZigBee-Funkmodul) gelenkt werden. Leider verfügt jeder Roboter über eine leicht unterschiedliche Fernbedienungsfunktionalität, und mit den Beschriftungen auf den Fernbedienungen ist das auch so eine Sache.

Im Rahmen einer Bachelorarbeit suchen wir einen oder eine Studierende aus dem Studiengang Medieninformatik, die uns eine Nachbildung unserer physischen Fernbedienungen als App für iPhone erstellt, mit der wir über den Weg eines Wifi/ZigBee-Gateways (dieses existiert schon) alternativ unsere Roboter steuern können.

Aufbau eines Prozessleitsystems für unseren Torwart-Roboter (Bachelor-/Master-Arbeit)

"MT"

Unser autonomer "Goal-Keeper" soll zukünftig die Bälle noch besser halten und deshalb unter die Obhut eines Prozessleitsystems gestellt werden. In einem ersten Schritt wird es nötig sein, eine multiblobfähige Kamera (Pixie-Cam) über dem Fußballfeld zu installieren und eventuell die empfangenen Bilder mittels openCV-Funktionen zu entzerren. Anhand der über die Kamera empfangenen Positionsdaten für den manuell über eine Fernbedienung gesteuerten Kicker-Bot und den autonomen Torwart-Bot soll eine "geschickte" Verhaltenslogik für den Torwart-Bot entwickelt werden.

(Ihr würdet bei diesem Thema übrigens nicht ganz alleine dastehen, weil dieses Prozessleitsystem das zweite seiner Art ist, nachdem das erste für Robotersteuerungen in einem großen Labyrinth schon erfolgreich abgeschlossen wurde und daher ausreichend Expertise vorhanden ist.)

Speech/Voice-To-Text Conversion (Bachelor-/Master-Arbeit)

"MT"

Wir möchten unsere acaBot-Roboter zukünftig auch über Sprache steuern. Neben verschiedenen existierenden Softwarelösungen im Bereich der Speech Recognition Engines hat sich PocketSphinx, das mit Dictionaries arbeit, einen Namen gemacht. Eventuell ist eine Auseinandersetzung mit der linguistischen Theorie der Phoneme erforderlich.

Positionskorrektur unseres autonomen Goal-Keeper Bots (Bachelor-/Master-Arbeit)

"T"

In der ihm zugewiesenen Aufgabe, auf ihn zukommende Fußbälle abzuwehren, soll sich unser acaBot-GoalKeeper parallel vor dem Tor bewegen, um diesem Anspruch gerecht zu werden. Bedingt durch die Besonderheiten seiner Räder, die auf dem Mecanum-Prinzip basieren, entstehen bei den sehr schnellen Bewegungen des Goal-Keepers in besonders starkem Maß Schlupfverluste, die nach und nach zu einer ungewollten Orientierungsveränderung führen und auch durch Odometrie-Maßnahmen nicht ausreichend behoben werden können. Der anfangs noch parallel vor dem Tor sich hin und her bewegende Bot beginnt dadurch langsam aber stetig, sich (um sein kinematisches Zentrum) zu drehen. Dieses Verhalten korrigieren wir derzeit durch eine Positionierhilfe in Form eines dunklen Klebestreifens vor dem Tor, der von zwei Bodensensoren am Bot erkannt wird. An diesem Klebestreifen kann sich der Bot ständig neu parallel zum Tor ausrichten. (Es handelt sich bei dieser Aufgabe somit um ein Lokalisationsproblem.) Ein solcher Klebestreifen sieht aber unschön aus.

Erster Lösungsansatz (Bachelorarbeit): Eine alternative Lösung für den angebrachten Klebestreifen liegt in einem sogenannten Orientierungssensor. Dergleichen gibt es verschiedene auf dem Markt, in der preislichen Größenordnung von 20 bis 100 Euro. In dieser Bachelorarbeit soll es in einem Recherche-Teil der Arbeit zunächst darum gehen, ein paar von ihnen einmal näher zu betrachten. Der geeignetste wird dann gekauft und in den Goal-Keeper eingebaut. Obwohl der Goal-Keeper dann zwar weiß, ob er parallel zum Tor steht, kennt er aber - ebenfalls bedingt durch den ständigen Schlupf - seine Distanz zu diesem noch nicht, die sich vergleichbar zum Orientierungsverlust auch unbekannt ändert. Der zweite, aber unkritische Teil dieser Arbeit betrifft daher den Einbau eines Distanzsensors. Die Anbindung des Orientierungs- und Distanzsensors geschieht am Raspberry Pi, auf dem auch die Verhaltenslogik des Goal-Keepers läuft. Die Programmierung erfolgt in C, der Programmieraufwand hält sich in Grenzen. (Diese Aufgabe hat ihre eigene Attraktivität darin, zur Verbesserung der autonomen Verhaltenssteuerung des "Stars" unter unseren acaBot-Robotern beizutragen :-)) Die theoretische Auseinandersetzung betrifft die "Orientierung" von Gegenständen im zwei- bzw. dreidimensionalen Raum. Je nach geplantem Umfang des Theorieanteils könnte diese Arbeit auch als Masterarbeit angesetzt werden.

Zweiter Lösungsansatz (konzipiert als Bachelor-/Master-Arbeit): Über dem Goal-Keeper Roboter wird eine Kamera angebracht, die über den Mechanismus des Blob-Finding die Position und Orientierung des Roboters millimetergenau ermittelt. Positionsabweichungen durch Schlupf können somit problemlos erkannt und sofort behoben werden. Durch den Einsatz einer Kamera lassen sich dann auch endlich sehr komplexe Verhaltenssteuerungen des Goal-Keeper Bots realisieren, die weit über die einfachen parallelen Hin- und Her-Bewegungen vor dem Tor hinausgehen. (Bei dieser Arbeit handelt es sich übrigens nicht um eine Bildverarbeitungsaufgabenstellung, sondern um eine Arbeit aus dem Sensorik-/Aktorik-Bereich. Die Kamera, die wir für diese Aufgabe einsetzen möchten, enthält schon eine eigene Logik, die den Bildverarbeitungsaufwand erledigt.)

Autonomer Kicker-Bot (Masterarbeit)

"MT" 

Eine große Attraktion unter unseren acaBot-Robotern ist der autonome mobile Goal Keeper mit Mecanum-Antrieb. Durch eine Kamera erkennt er auf ihn zukommende Bälle, die er mittels Seitwärtsbewegungen vor dem Tor abzuwehren versucht. Geschossen werden die Bälle von einem Kicker-Bot mit Mecanum-Antrieb. Dieser wird (derzeit noch) durch einen Benutzer über eine Fernbedienung gesteuert. Wir hätten diesen Kicker-Bot ebenfalls gerne autonom, d.h. es müssen ihm geeignete Verhaltenweisen "beigebracht" werden, nach denen er versucht, den Torwart zu überlisten und Tore zu schießen. Das Thema erfordert eine Auseinandersetzung mit AI, Rule Based Systems und Machine Learning. Die Programmierung soll in C++ oder Python erfolgen.

"Hilfe - ein Ghost-Bot im Labyrinth!" Roboter-Lokalisierung nach Markov (Masterarbeit)

"MT" 

Ein Schwerpunkt zu den acaBot-Robotern im PSE-Labor ist das sogenannte Prozessleitsystem (PCS: process control system). Mittels einer ausgeklügelten Kameraführung werden über Farbkodierungen sämtliche sich im Prozess-Raum/Labyrinth befindlichen Roboter identifiziert (und ihnen über das PCS ggfs. Aufgaben zugewiesen). Eine Ergänzung hierzu soll der Ghost-Bot werden. Der Ghost-Bot verfügt über keine Farbkodierung und kann somit vom PCS nicht erkannt werden; er bewegt sich sozusagen "under the radar". Ohne weitere Maßnahmen ist ein solches Szenario natürlich nicht wirklich denkbar und funktioniert auch tatsächlich nicht, denn der Ghost-Bot wird durch seine Anwesenheit im Labyrinth jegliche Ordnung im Bewegungsablauf der anderen Roboter stören. Deshalb soll diesem Ghost-Bot im Rahmen einer Abschlussarbeit ein Feature zugewiesen werden, durch das es möglich wird, dass er trotz fehlender Farbkodierung störungsfrei im Labyrinth umherfahren kann: der Ghost-Bot teilt von sich aus dem PCS mit, wo er sich gerade in ihm befindet. In einer einfachen, wenn auch ziemlich ungenauen Betrachtung kennt der Ghost-Bot seine aktuelle Position über die sogenannte Odometrie, die er ausschließlich durch die in seinen Motoren befindlichen Encoder erhält. Da der Ghost-Bot aber zusätzlich zu diesen Odometriedaten die Welt, in der er sich bewegt (das ist das Labyrinth), als Karte insgesamt sehr genau kennt, kann er dennoch von sich aus dem PCS recht zuverlässig mitteilen, wo er sich gerade befindet. Das PCS verlässt sich auf die Positionsangaben des Ghost-Bots und zieht diesen in seine Raumbelegungen mit ein. Hier nun die eigentliche Aufgabenstellung für die Abschlussarbeit: Der Ghost-Bot kennt zwar die Karte, das sind die Räume und Wände des Labyrinths, in dem er sich befindet, aber er weiß damit noch nicht, an welcher Stelle genau er sich in diesem Labyrinth gerade befindet. Was würden wir als Menschen in einer solchen Situation tun? Wir schauen uns um, betrachten alle Wände und Türen der Umgebung und lernen mehr und mehr, je länger wir uns umsehen. Irgendwann sind wir so weit und können sagen: "Jetzt weiß ich, wo ich bin!". Genau so macht es auch der Roboter: er befindet sich anfangs noch an irgendeiner unbekannten Position, fährt los, sieht sich seine Umgebung an, bis er feststellt: "Dies ist meine Position!" Diese gewonnene Erkenntnis teilt er dem PCS mit. Es handelt sich bei dieser Aufgabe um ein statistisches Problem, das mithilfe des sogenannten Markov-Algorithmus gelöst werden kann. (Eine erfolgreiche Realisierung existiert auch schon im PSE-Labor, jedoch steht sie in Verbindung mit dem unter Linux laufenden Player-Stage-Simulator, der den Markov-Algorithmus als Plugin benutzt. Wir hätten diesen Algorithmus jedoch gerne Stand-Alone auf dem Raspberry Pi des Roboters, um ihm damit einen ganz besonderen Anstrich von Autonomie zu verleihen.) Die Programmierung erfolgt in C++ oder Python. Nach Aussage von Prof. Dr. Martin von Löwis existiert ein Markov-Algorithmus per se schon in der Open-Source-Bibliothek für Python und könnte, wenn das stimmt, natürlich für die vorliegende Arbeit mit verwendet werden.

Inbetriebnahme einer 360 Grad Kamera an einem acaBot-Roboter zur Objektverfolgung (Bachelor-/Masterarbeit)

"MT" 

Einige unserer acaBot-Roboter, z.B. der autonome Goal-Keeper, sind mit einer Frontal-Kamera zur Objekterkennung ausgestattet (so muss etwa der Goal-Keeper den auf ihn zurollenden Ball erkennen). Diese Kamera ist an der Stirnseite des Bots angebracht und geradeaus gerichtet. Damit kann sie alles erkennen, was vor dem Bot und leicht zu seinen Seiten hin geschieht. Wird diese Kamera auf geeignete Weise auf einen Parabolspiegel gerichtet, wird es möglich, nicht nur einen begrenzten Ausschnitt des Raumes zu betrachten, sondern tatsächlich die gesamte 360-Grad Umgebung in einem Aufwasch "zu überwachen". Um diese Raum-Kamera nützlich in anspruchsvolle Anwendungen einbinden zu können, ist es zunächst erforderlich, die Kamera zu kalibrieren und die elementaren Funktionsnachweise an einfachen Roboter-Bewegungen zu erbringen.

Es existieren derzeit zwei verschiedene Kameras von Interesse im PSE-Labor. Die von der Auflösung her schlechtere Kamera, die "Pixy-Cam" beherrscht mit einer enormen Bildrate von 50 pics/s von Hause aus das sehr rechenintensive Blob-Finding, das für Objekterkennung erforderlich ist. Die von der Auflösung her bessere Kamera, das ist die "Pi-Camera" (speziell für den Raspberry Pi gebaut) liefert zwar hervorragende Bilder, aber es müssen über Open-CV-Funktionen erst die Objekte von Interesse aus den Gesamtbildern herausgerechnet werden, was die Performance dieser Kamera (drastisch) herabsetzt. Hier gilt also, sich je nach Aufgabenstellung bei der eingesetzten Kamera für Bildqualität oder Bildratenschnelligkeit zu entscheiden.

Sensorfusion für eine bessere Odometrie der acaBot-Roboter (Bachelorarbeit)

"T" 

Wird ein Roboter in einem Prozessleitsystem betrieben, ist die Sache einfach: das PCS (process control system) schaut sich alles akribisch genau an und sagt jedem Roboter genau, wo er sich gerade befindet. Im Prozessleitsystem des PSE-Labors sind hierfür vier hochauflösende Kameras zuständig. Fährt ein Roboter hingegen ohne eine solche Kontrolle von außen alleine und auf sich gestellt, ist er gefordert, permanent seine odometrischen Spurdaten aufzuzeichnen - immer in der Hoffnung, dass diese korrekt sind ... was jedoch nur am Anfang der Fall ist, denn je länger und weiter der Bot fährt, umso größer wird die Fehler-Ellipse. Ganz eliminierbar ist ein solcher Spurfehler nicht, aber man kann den Fehler dadurch verkleinern, dass mehrere, unterschiedliche Sensordaten fusioniert werden. Im vorliegenden Fall sollen die Encoderdaten der Motoren zusammen mit den Daten eines Beschleunigungssensors für eine bessere Positionsbestimmung sorgen.

Servomotorische Ausbalancierung eines sensorstabilisierten Transportsystems bei unebener Roboterfahrt (Bachelorarbeit)

"T" 

Man stelle sich folgende Situation vor: Um von einem acaBot-Roboter ein gefülltes Schnapsglas von A nach B bringen zu lassen, wird das Schnapsglas einfach auf den Roboter gestellt und dieser auf die Reise geschickt. Ist die Fahrtstrecke einigermaßen eben, sollte dem Roboter diese Aufgabe nicht schwerfallen, und das Glas kommt mit allem Inhalt an seinem Zielort an, wenn der Roboter nicht zu schnell angefahren ist und auch nicht zu abrupt angehalten hat. (Das Stichwort für sanftes Losfahren und Anhalten ist übrigens "Ramping"). Befinden sich jedoch Unebenheiten auf dem Weg des Roboters und er gerät dadurch in Schieflage, wird zumindest ein Teil der Flüssigkeit auslaufen. Das kann durch ein zweiachsiges Transportsystem vermieden werden, wenn je nach Lageveränderung des Bots (wird erkannt durch einen Orientierungssensor) das Glas stets im ausbalancierten Gleichgewicht gehalten wird. Im PSE-Labor existiert ein solches System bestehend aus zwei Servomotoren. Die Programmiersprache ist C/C++ auf dem Raspberry Pi.

"Broomstick-Balancing via Robot-Dancing" Die Realisierung eines inversen Pendels (Masterarbeit, eventuell als Gruppenarbeit)

"MT" 

Wem sämtliche zuvor genannten Themen zu trivial und langweilig erscheinen, der darf sich gerne auch an einer ganz besonderen Herausforderung aus der Regelungstechnik profilieren: dem Balancieren eines Besenstiels auf einem omnidirektionlen acaBot-Roboter mit Mecanumantrieb. Alles, was man dafür an Hardware benötigt, ist ein mechanisch sehr stabiler Joystick (den haben wir!), der auf der Oberseite des Bot befestigt wird. Der Besenstiel steckt, wer hätte es gedacht, mit einem Ende am Stiel des Joysticks. Durch Auswertung der beiden Joystick-Potentiometer über einen Analogwandler kann zu jedem Zeitpunkt die aktuelle Besenstielstellung ermittelt werden. Gerät der Besenstiel aus der Geradestellung in die Schiefstellung, muss sich der unter ihm befindliche Bot korrespondierend in die eine oder andere Richtung bewegen, um die Abweichung auszugleichen. Was man sonst noch braucht? Ahnung von Mathe. Die Programmierung sollte in C++ oder Python erfolgen. Wen es interessiert, der kann sich über das Stichwort "Inverses Pendel" zunächst mit dem theoretischen Wissen vertraut machen und sich dann bei uns melden. Es wäre für den Anfang auch möglich, das Problem auf einen Freiheitsgrad einzuschränken. Mutige vor!