[WS 2017/18, Master, Betreuer: Dragan Macos] Robotersteuerung durch den Einsatz von Orientierungssensoren --- Bearbeiter: MatOt]

Es handelt sich bei dieser Masterarbeit um die Entwicklung eines neuen Gamepad für unsere acaBot-Roboter.

Unsere mobilen Fun-Roboter existieren immer paarweise: einmal in der anspruchsvolleren autonomen Variante, und einmal in der einfacheren "manuellen" Ausführung. Elektronisch und mechanisch sind beide Exemplare identisch, nur verfügt der autonome Bot über mehr "Brain". Der manuelle Bot hingegen wird von einem menschlichen Spieler über unseren  acaPad-GameController gelenkt. In einem gemeinsamen Betrieb beider Roboter in einem Spieleszenario resultiert hieraus die Spiele-Herausforderung: Mensch gegen Maschine.

Der derzeitige acaPad-Gamecontroller verfügt über zwei Thumbsticks, durch deren Bewegungen die Funktionen der acaBots bedient werden. Die drahtlose Übertragung der Daten geschieht über ZigBee.

Obwohl sich der "alte" acaPad-GameController hervorragend bewährt hat, soll im neuen alles noch einmal viel besser werden. Vor allem soll die für den alten GameController erforderliche Feinmotorik (die Bedienung der beiden Thumbsticks) des Spielers entfallen. In einem diesbezüglichen Übergang auf Grobmotorik, besteht der neue GameController nur noch aus zwei Sticks, die der Spieler fest in seinen Händen hält. Durch gestikulierende Armbewegungen werden die Roboter gelenkt.

Möglich wird diese neue grobmotorische Bedienung durch sogenannte Orientierungssensoren. In der Abschlussarbeit wird es zunächst darum gehen, sich mit den anfallenden Protokolldaten des Orientierungssensors vertraut zu machen und diese in Nutz- und Overhead-Daten zu trennen. Die Nutzdaten müssen in einem in C selbst zu schreibenden Software-Gateway in die Protokollform unseres alten acaPad-GameControllers umgewandelt werden.

[SS 2017, Bachelor, Betreuer: Martin von Löwis] Pfadplanung für mobile Roboter unter fortlaufender Berücksichtigung von Positionsinformationen --- Bearbeiter: BurÖz]

Entwicklung eines A*-Algorithmus, der fortlaufende Positionskorrekturen der Roboter anhand von Kameradaten ermöglicht..

[WS 2016/17, Bachelor, Betreuer: Dragan Macos] Realisierung einer Datenverwaltung für ein Roboter-Prozessleitsystem --- Bearbeiter: ErDob

Im PSE-Labor entsteht zurzeit im Rahmen des acaBot-Projektes ein neues Prozessleitsystem zur Steuerung von Robotern. Nachdem die die Roboterpositionen in einem 1,50x1,50cm großen Labyrinth repräsentierende Datenerfassung (s.u.) vor kurzem erfolgreich abgeschlossen wurde, ist nun der zweite Schritt, das graphische Tracking der Roboter (das sind die Visualisierung und Speicherung der Roboterpositionsdaten), geplant.

Die visuell darzustellenden Roboterpositionen stammen aus zwei verschiedenen Quellen.  Der erste Datensatz enthält die vom Roboter selbst erstellten Odometriedaten (x, y, phi), die dieser über die an den zwei Motoren angebrachten Encodern ermittelt hat. Durch den Schlupf der Räder bedingt, werden diese Daten jedoch immer ungenauer (die Fehlerellipse wird immer größer), je länger und schneller der Roboter fährt. Diese in der Visualisierung darzustellenden Odometriedaten werden vom Roboter mithilfe eines vordefinierten Protokolls an das in dieser Abschlussarbeit entstehende Visualisierungstool übertragen.

Der zweite, die Roboterpositionen repräsentierende Datensatz stammt von einem über dem Labyrinth angebrachten Kamerasystem (bestehend aus zwei Pixy-Cams). Dessen Daten werden von einem Raspberry Pi aufbereitet und im JSON-Format über WLan zur Verfügung gestellt. Die Identifizierung der verschiedenen, sich in dem Labyrinth befindlichen Roboter erfolgt über eine an den Robotern angebrachten Farbcodierung. Mittels des Mechanismus des "Blob-Finding" kann das Kamerasystem 8 Farben unterscheiden. Jeder Roboter hat zwei Farben zu seiner eindeutigen Identifizierung, die dazu dienen, dass nicht nur die Roboterposition (x, y) von dem Kamerasystem bestimmt werden kann, sondern auch seine Orientierung (Winkel phi). Durch die relativ schlechte Auflösung des Kamerasystems und die weite Entfernung der Kameras zu den Robotern ist es erforderlich, die Farbkodierungen an den Robotern großflächig anzubringen; diese "grobe" Codierungshilfe geht jedoch auf Kosten der zu ermittelnden Positionsgenauigkeitsbestimmung des Kamerasystems für die einzelnen Roboter.

Bei der Visualisierung der Roboter im Labyrinth sollen beide oben genannten Datensätze (Odometriedaten und Kameradaten) unabhängig von einander verwendet werden können. Ergeben beide Datensätze identische Positionsangaben, liegen die visualisierten Roboterabbilder übereinander; ist das nicht der Fall, sind die beiden Abbilder sichtbar verschoben.

[SS/WS 2016/17, Master, Betreuer: Prof. Dr. Martin von Löwis] Steuerung  von Roboter Peripherie durch einen Raspberry Pi --- Bearbeiter: MarcRie

Es handelt sich bei dieser Arbeit um ein neues acaBot Design-Paradigma, nur mit Raspberry Pi realisiert. Sämtliche acaBot-Roboter haben eines gemeinsam: den Arduino on board. Auf den einfachen Bots läuft das Barebone samt User-Code auf dem Arduino, auf den komplexeren Bots ist es nur der Motor-Controller; der User-Code sowie sämtliche sonstige Sensorik befindet sich bei ihnen auf einem Raspberry Pi. Ziel der vorliegenden Arbeit soll - als Nachweis für die Echtzeitfähigkeit des Raspberry Pi - die Implementierung sämtlicher Software für den Bot auf dem Raspberry Pi sein, beginnend mit dem Motor-Controller. Den echtzeitrelevanten Teil betrifft dabei hauptsächlich die Auswertung der beiden Encoder auf den zwei Motoren. Deren Signale sollen über GPIO Interrupt-Eingänge ausgewertet werden. Den zweiten Teil dieser Arbeit betrifft die Programmierung eines Motor-Reglers (in P-, PI-, oder PID-Ausführung). Während bei den bislang existierenden acaBot-Robotern der PID-Regler unabhängig von der aktuell gefahrenen Geschwindigkeit zu festen Zeiten aufgerufen wird (alle 20 ms) soll der Motor-Regler auf dem Raspberry Pi jedoch ereignisorientiert arbeiten, d.h. wenn eine bestimmte Anzahl von Encoder-Impulsen registriert wurden. Steht der Bot still, wird der Regler demnach nie aufgerufen, fährt er mit Höchstgeschwindigkeit (25 cm/s) hingegen entsprechend häufig. Dadurch wird nicht nur CPU-Last eingespart, sondern auch Energie aus dem Akku-Pack.

[SS 2016, Bachelor, Betreuer: Dragan Macos] Realisierung einer Aktor/Sensor-Umgebung für Robotersteuerungen --- Bearbeiter: SebKuh

Inhalte der Arbeit sind zunächst die beiden Anschlüsse eines Ultraschall-Sensors (Ping) und eines Servo-Motors an einen Raspberry Pi. Der Ultraschall-Sensor ist auf einen Servo-Motor (0..180 Grad Winkelbereich) montiert, um mit ihm zusammen als ein gemeinsames Objekterkennungsgerät dem Roboter beim Scannen seiner unmittelbaren Umgebung (Abstand: 0..50 cm) dienlich zu sein. Die Vorgabe des jeweiligen  Winkels für den Servo-Motor geschieht aus dem Anwenderprogramm heraus über ein (pseudo-analoges) PWM-Signal, das auf dem Raspberry Pi softwaremäßig erzeugt werden muss, da der Raspberry Pi selbst über keine integrierte Hardwarerealisierung zur Erzeugung eines solchen Signals verfügt. Der tatsächlich zu einer bestimmten Zeit eingestellte Winkel des Servo-Motors kann über ein analoges „Feedback-Signal“ festgestellt werden. In der Bachelorarbeit sollen jeweils ein Gerätetreiber unter Linux für die Ansteuerung des Servo-Motors und des Ultraschall-Sensors geschrieben werden. Als erweiterte Aufgabenstellung für die beiden Gerätetreiber besteht die Anforderung, dass nicht nur jeweils ein Gerät über den Treiber verwaltet werden kann, sondern mehrere.

[SS 2016, Bachelor, Betreuer: Dragan Macos] Robobersteuerung durch odometrische Ortung und Beobachtung von sich bewegenden Fremdobjekten --- Bearbeiter: SveHall

Die Abschlussarbeit besteht aus drei Teilen, einem Odometrie-, einem Bildverarbeitungs- und einem Roboter-Verhaltens-Teil.  Gegenstand des Odometrie-Teiles ist die Implementierung von hierfür in der Literatur einschlägig bekannten Formeln für Roboter mit Mecanum-Antrieb. Die Odometrie-Formeln sollen in der Programmiersprache C in den schon vorhandenen Motorcontroller integriert werden. Das ebenfalls für den Datenaustausch zwischen Motorcontroller und Steuerrechner (Raspberry Pi) zuständige Protokoll muss um die Odometriedaten erweitert werden. Im zweiten Teil der Arbeit, gilt es die Kameradaten der sog. PIXY-Cam auszuwerten und für Analysezwecke grafisch darzustellen. Der letzte Teil der Arbeit betrifft eine Verhaltensoptimierung des Torwart-Roboters. Es sollen zusätzlich zu den am Roboter vorhandenen Boden- und Wand-Sensoren die Odometrie- und Kameradaten einbezogen werden.

[SS 2016, Master, Betreuer: Dragan Macos] Implementierung des A*-Algorithmus zur kürzesten Pfadplanung mit Rücksichtnahme auf dynamische Hinderniserkennung --- Bearbeiter: AlFeh

Die komplexeren "mobilen" acaBot-Roboter sollen "autonom" werden. Hierzu ist es notwendig die bestehende Architektur mit ein paar Charakteristika zu erweitern. Im Rahmen dieser Masterarbeit soll eingangs zunächst eine Pfadplanung auf Grundlage des A*-Algorithmus implementiert werden. Mit dessen Hilfe wird der Roboter in die Lage versetzt, die optimale Route durch ein Labyrinth zu bestimmen. Die ermittelte Route soll dabei mit der Berechnung von Trajektorien geglättet werden, damit sich der Roboter auf seiner Tour mit einer möglichst konstanten Bahngeschwindigkeit bewegen kann. Zur Zielerfüllung besitzt der Roboter eine Karte seiner Umgebung. Die notwendige Start- und Zielkoordinate erhält das System über eine Terminaleingabe oder Mobile-App vom Anwender. Seine aktuelle Position ermittelt der Roboter anhand der erfassten Odometriedaten des Motorcontrollers. Im weiteren Verlauf der Arbeit soll das System durch Einsatz eines Laserscanners auf dynamische Hindernisse im Labyrinth reagieren können und diese selbstständig umfahren.