Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projektesose24:lastenfreund:projektdoku [2024/09/19 12:45] servet.oez [Positionierung der Person] |
projektesose24:lastenfreund:projektdoku [2024/09/30 14:35] (aktuell) servet.oez |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Einleitung ===== | ===== Einleitung ===== | ||
- | Einkäufe nach Hause schleppen, Gepäck am Flughafen tragen. Nervt euch das auch? Dann haben wir genau das Richtige für euch! | + | 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. |
- | 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. | + | 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. |
- | + | ||
- | Kurze Beschreibung der Aufgabenstellung, die der Roboter hat bzw. löst (ca. 1/2 „Bildschirmseite“) | + | |
===== Methoden/Umsetzung ===== | ===== Methoden/Umsetzung ===== | ||
Zeile 15: | Zeile 13: | ||
- Transportbox | - Transportbox | ||
- | 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. | + | 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. | Außerdem muss der Roboter sich zu der Person bewegen. | ||
Zeile 27: | Zeile 25: | ||
{{:projektesose24:lastenfreund:screenshot_2024-09-19_112516.png?700|}} | {{:projektesose24:lastenfreund:screenshot_2024-09-19_112516.png?700|}} | ||
\\ | \\ | ||
- | Details | ||
==== UWB-Tracking ==== | ==== UWB-Tracking ==== | ||
==== Antrieb ==== | ==== Antrieb ==== | ||
- | Der Roboter kann sich mithilfe von 2 Motoren bewegen, welche durch einen | + | Der Roboter kann sich mithilfe von zwei Motoren bewegen, welche durch einen |
- | ausreichend starken Akku betrieben werden. Der Motor kann mithilfe des | + | 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. |
- | 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. | + | |
==== Transportbox ==== | ==== Transportbox ==== | ||
Der Roboter besteht aus zwei übereinanderliegenden Plastikkisten. An dieser | Der Roboter besteht aus zwei übereinanderliegenden Plastikkisten. An dieser | ||
- | werden die zwei Motoren bzw. Räder und eine frei bewegbare | + | wurden die zwei Motoren bzw. Räder und eine frei bewegbare |
- | Lenkrolle. In der unteren Kiste befindet sich die Technik, die zur | + | 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 Sender befestigt | + | 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 ==== | ==== Positionierung der Person ==== | ||
Zeile 48: | Zeile 45: | ||
ΔT: Zeitdifferenz\\ | ΔT: Zeitdifferenz\\ | ||
c: Lichtgeschwindigkeit\\ | c: Lichtgeschwindigkeit\\ | ||
- | A und B: Ankern\\ | + | A und B: Anker\\ |
C: Tag\\ | C: Tag\\ | ||
K: Koordinaten des Tags\\ | 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 der Motor gesteuert. | + | 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 ==== | ==== Motorauswahl ==== | ||
Zeile 75: | Zeile 72: | ||
* [[https://amzn.eu/d/09a319rA|Lenkrolle]] | * [[https://amzn.eu/d/09a319rA|Lenkrolle]] | ||
* 2x [[https://eu.robotshop.com/de/products/devantech-125-mm-rad|Räder]] | * 2x [[https://eu.robotshop.com/de/products/devantech-125-mm-rad|Räder]] | ||
- | |||
- | TODO: Pinbelegung | ||
===== Ergebnis und Diskussion ===== | ===== 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. | ||
+ | |||
{{:projektesose24:lastenfreund:lastenfreund.mp4|}} | {{:projektesose24:lastenfreund:lastenfreund.mp4|}} | ||
Code und Rohdaten | Code und Rohdaten | ||
+ | |||
+ | {{:projektesose24:lastenfreund:lastenfreund_code.zip|}} |