Inhaltsverzeichnis

Projektdokumentation

Einleitung

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 Roboter Lastenfreund gebaut, der euch automatisch überallhin begleitet und nebenbei noch ganz bequem euer Gepäck trägt. Die zentralen Herausforderungen bestanden darin, eine gegebene Person präzise zu orten und den Roboter so zu steuern, dass er sich selbstständig zur ihr bewegt. Für die Ortung haben wir uns für die Integration der Ultra-Wideband (UWB)-Technologie entschieden. Außerdem mussten die Motoren so gewählt werden, dass sie die Technik und das definierte Gewicht von 20kg zuverlässig und schnell transportieren können.

Methoden/Umsetzung

Der Roboter lässt sich in drei Baugruppen einteilen:

  1. UWB-Tracking
  2. Antrieb
  3. Transportbox

Die Hauptaufgabe unseres Projektes war es eine Möglichkeit zu finden, dass der Roboter eine Person orten kann. Wir 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


UWB-Tracking

Antrieb

Der Roboter kann sich mithilfe von zwei Motoren bewegen, welche durch einen ausreichend starken Akku betrieben werden. Um die Geschwindigkeit der Motoren flexibel steuern zu können, wurde die Pulse Width Modulation (PWM) eingesetzt. Dabei wird die Drehzahl der Motoren durch die Anpassung des Duty Cycles reguliert – also durch das Verhältnis von Ein- und Ausschaltzeiten des Motors. Ein höherer Duty Cycle führt zu einer höheren Drehzahl, ein niedrigerer reduziert die Geschwindigkeit. Nachdem die Position der Person relativ zum Roboter erfasst wurde, wird der Winkel vom Roboter zur Person berechnet. Durch die Kombination dieser Winkelberechnung mit der PWM-Steuerung und der Lenkrolle kann der Roboter schärfere oder weitere Kurven fahren. Dabei drehen die beiden Räder unterschiedlich schnell, je nach Richtung und Schärfe der Kurve. Eine automatische Anpassung der Geschwindigkeit an die Bewegung der Zielperson wurde zwar nicht implementiert, würde sich aber mit relativ geringem Aufwand ergänzen lassen. Außerdem überprüft der Roboter kontinuierlich den Abstand zur Person und hält an, wenn dieser zu klein wird.

Transportbox

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, die obere dient als Ladefläche. Außen am Roboter wurden an der Holzleiste die zwei UWB-Sender befestigt.

Positionierung der Person

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.

Motorauswahl

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.

Technische Details

Bauteile

Ergebnis und Diskussion

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

lastenfreund_code.zip