Zu vergebende SEP- / Bachelorarbeit
| Thema: | Implementierung eines Bewegungs-Controllers zum Tracken von Wegpunkten |
| Betreuung: | Andreas Fedrizzi |
| Themensteller: | Prof. Michael Beetz, PhD |
Beschreibung
Einleitung
In der Robotik muss man oft die Aufgabe lösen, mit einem mobilen Roboter möglichst schnell an ein bestimmtes Ziel zu gelangen. Um nicht mit Hindernissen zu kollidieren benutzt man Bewegungsplaner, die einen kollisionsfreien Pfad vom Start zum Ziel berechnen und das Ergebnis als Liste von Wegpunkten zurückliefern. Wie so ein Pfad aussehen kann, ist in Abbildung 1 gezeigt. Ein Wegpunkt ist dabei ein Tupel, das auf jeden Fall x-Koordinate und y-Koordinate umfasst. Es können noch weitere Informationen gegeben sein, wie zum Beispiel der gewünschte Winkel an diesem Wegpunkt (az), oder der minimale Abstand an diesem Wegpunkt zum nächstgelegenen Hindernis (min_dist).
Leider reicht diese Beschreibung noch nicht aus, um den Roboter auch sicher an das Ziel fahren zu lassen, denn das Antriebssystem des Roboters versteht zwar Befehle wie "Beschleunige", "Fahre mit Geschwindigkeit v", oder "Drehe die Räder auf Winkel a", nicht jedoch "Fahre an Position <x, y>". Um nun einen Pfad abzufahren, benutzt man einen Controller der die Liste von Wegunkten in eine Folge von Low-Level-Steuersignalen für das Roboter-Antriebssystem umsetzt. Man spricht auch davon, dass der Controller einen Pfad "trackt".
![]() |
![]() |
| Geplanter Pfad aus einem Raum ins Freie | B21 im existierenden Fabrik-Szenario |
Aufgabenbeschreibung
Im Rahmen der SEP- / Bachelorarbeit soll ein Bewegungs-Controller implementiert werden, der als Eingabe eine Liste von Tupeln der Form <x, y, az, min_dist> erhält und den dadurch skizzierten Pfad so genau und schnell wie möglich abfährt. Dazu ist es sinnvoll den geplanten Pfad vor dem Tracken zu glätten, da man dem Controller dadurch viel zusätzliche Arbeit erspart. Der Pfad in Abbildung 1 enthält beispielsweise viele unnötig Wegpunkte nach Durchfahren der Tür. Der Controller könnte das Ziel nach dem Passieren der Tür direkt anfahren, ohne die Wegpunkte zu beachten, die zuerst entlang der Wand nach unten gehen. Aktuell wird nur ein sehr rudimentärer Glättungsalgorithmus verwendet. Daher ist es Teil dieses Projektes, diesen zu Verbessern und an den eigenen Controller anzupassen.
Wichtig für die Performanz des Controllers ist weiterhin die Wahl der Geschwindigkeit. Denn je höher die Geschwindigkeit ist, desto eher ist der Roboter am Ziel, jedoch wird er an Wegpunkten durch die Trägheit auch deutlicher vom vorberechneten Pfad abweichen, was zu einer Kollision mit Hindernissen führen kann. Die Information min_dist kann zum Beispiel dazu genutzt werden um zu entscheiden, ob ein Wegpunkt nun wirklich absolut exakt angefahren werden muss, weil in der gerade durchfahrenen Passage viele Hindernisse sind, oder ob der Controller mehr Manövrier-Spielraum hat und der Geschwindigkeit Vorrang gegenüber der Genauigkeit geben kann.
Das Thema ist vor allem für Studenten spannend, die Spass am experimentieren und optimieren haben. Da es nicht die vorgezeichnete, perfekte Lösung gibt, bleibt viel Freiraum für eigene Ideen. Interessierte Studenten können mir mailen oder direkt im Büro 02.09.039 vorbeikommen.
Aufgabenstellung
- Glätten des ursprünglichen Pfades.
- Schnelles und kollisionsfreies Tracken des Pfades mit einem Controller.
Software
- Benutzung des Robotersimulations-Framework Player/Gazebo
Erforderliche Fähigkeiten
- Grundlegende Kenntnisse in C++ hilfreich


















