Dies ist eine alte Version des Dokuments!
Einkäufe nach Hause schleppen, Gepäck am Flughafen tragen. Nervt euch das auch? Dann haben wir genau das Richtige für euch! Wir haben den gepäcktragenden Roboter Lastenfreund gebaut, der euch automatisch überallhin begleitet. Das Begleiten wird mithilfe der UWB-Technologie (Ultra-Wideband) realisiert. Zwei UWB-Sender am Roboter und ein UWB-Empfänger an der Zielperson ermöglichen mithilfe leistungsstarker Motoren eine Begleitung in Echtzeit.
Kurze Beschreibung der Aufgabenstellung, die der Roboter hat bzw. löst (ca. 1/2 „Bildschirmseite“)
Der Roboter lässt sich in drei Baugruppen einteilen:
Die Hauptaufgabe unseres Projektes war es eine Möglichkeit zu finden, dass der Roboter eine Person orten kann. Wier haben uns entschieden dieses mithilfe von UWB-Modulen zu lösen. Außerdem muss der Roboter sich zu der Person bewegen.
Welche Aufgaben waren zu lösen (ganz knapp) Kontrollsystem, Motorsteuerung, Tracking, bau einer Box um das Gepäck zu tragen? Welche Aufgaben wurden bewusst ausgeklammert? Idealerweise Skizzen/Fotos des Gesamtsystems mit Beschriftung der Teile
Der Roboter kann sich mithilfe von 2 Motoren bewegen, welche durch einen ausreichend starken Akku betrieben werden. Der Motor kann mithilfe des PWM-Moduls (Pulse-Width-Modulation) unterschiedlich schnell laufen. Dies ermöglicht das Anpassen der Geschwindigkeit an die Zielperson und das Fahren von schärferen und weiteren Kurven.
Der Roboter besteht aus zwei übereinanderliegenden Plastikkisten. An dieser wurden die zwei Motoren bzw. Räder und eine frei bewegbare Lenkrolle angebracht. In der unteren Kiste befindet sich die Technik, die zur Funktionsweise des Roboters nötig ist. Außen am Roboter wurden an der Holzleiste die zwei UWB-Sender befestigt.
Die Positionierung der Person erfolgt durch den Einsatz von drei UWB-Modulen: zwei davon dienen als Anker, eines als Tag. Die Anker werden mit einem Abstand von einem Meter auf einem Roboter montiert, während die Person den mobilen Tag trägt. Der Tag sendet Funksignale an die Anker, welche diese dann zurücksenden. Der Tag misst die Zeit, die vergeht, bis das Rücksignal empfangen wird, um den Abstand zu jedem Anker zu berechnen. Mit trigonometrischen Formeln wird ein Dreieck konstruiert, um die genaue Position des Tags zu bestimmen.
ΔT: Zeitdifferenz
c: Lichtgeschwindigkeit
A und B: Anker
C: Tag
K: Koordinaten des Tags
Der Tag übermittelt die berechneten Abstände mittels TCP-Protokoll über WLAN an einen Raspberry Pi, wobei der Tag sich mit dem Hotspot des Raspberry Pi verbindet. Mit Python werden die Daten visualisiert, die Koordinaten des Tags berechnet und die Motoren gesteuert.
Im Folgenden werden die Berechnungen zur Auswahl des Motors sowie die maximalen geforderten Parameter, wie beispielsweise die maximale Steigung und Traglast, dargestellt.
Gemäß der Berechnungen muss der Motor ein Drehmoment von mindestens 1,38 Nm aufweisen, um die erforderlichen Anforderungen zu erfüllen.
TODO: Pinbelegung
Wir sind in unserer Projektarbeit sehr weit gekommen. Wir haben es geschafft, eine Person zu verfolgen. Wie man im Video sehen kann, funktioniert das ganz gut. Die Geschwindigkeit des Roboters ist konstant und nicht variabel wie ursprünglich geplant. Der Roboter kann auch erkennen, dass er vor der Person steht. Dies geschieht jedoch ebenfalls mit Hilfe von UWB-Tracking und nicht mit einem Abstandssensor. Der Code für die Distanzmessung ist fertig, aber wir hatten keine Zeit, ihn zu implementieren. Dasselbe gilt für das Display zur Statusanzeige. Außerdem kann sich der Roboter im Moment nur auf relativ ebenem Boden bewegen. Trotzdem ist das Projekt ein Erfolg, da alle Grundfunktionen sehr gut funktionieren und nur Nice-to-Haves nicht implementiert wurden. Die Integration der fehlenden Funktionen wäre für nachfolgende Robotiklabore durchaus möglich, da Teile des benötigten Codes bereits vorhanden sind.
Code und Rohdaten