63 lines
4.5 KiB
TeX
63 lines
4.5 KiB
TeX
\chapter{Konzept}
|
|
Die zu entwickelnde Simulation soll die bisher meißt separaten Zweige der Roboter- und Menschensimulation verbinden.
|
|
Um die beiden Akteuren in der simulierten Umgebung zu steuern, werden Befehle von außerhalb der Simulation eingesetzt.
|
|
Diese Befehle werden dabei von externer Software unter der Verwendung von Behavior Trees und Feedback aus der Simulation generiert.
|
|
|
|
Die zu erarbeitende Softwareumgebung soll einfach erweiterbar sein, um weitere Modifikationen und die Umsetzung anderer Projekte zuzulassen.
|
|
Hierzu zählt die Austauschbarkeit und Erweiterbarkeit von Komponenten wie der simulierten Welt, dem Roboter oder dem simulierten Mensch.
|
|
Um diese Möglichkeiten zu schaffen, sind die Systeme modular aufgebaut.
|
|
|
|
\begin{figure}[]
|
|
\includegraphics[]{img/Konzept_Overview}
|
|
\centering
|
|
\caption{Visualisierung des Konzepts}
|
|
\label{concept_overview}
|
|
\end{figure}
|
|
|
|
\section{Simulation des Roboters}
|
|
Der simulierte Roboter soll für viele unterschiedliche Szenarien nutzbar sein, was spezialisierte Robotertypen ausschließt.
|
|
Außerdem ist die enge Interaktion mit Menschen interessant, was einen für Mensch-Roboter-Kollaboration ausgelegten Roboter spricht.
|
|
Für diese beschriebenen Kriterien eignet sich der KUKA LBR iisy, welcher als Cobot vermarktet wird.
|
|
Cobot ist dabei ein Portemanteau aus Collaborative und Robot, was die besondere Eignung für MRK-Szenarien noch einmal unterstreicht.
|
|
Er besitzt auch einen modifizierbaren Endeffektor, um unterschiedlichste Aufgaben erfüllen zu können.
|
|
|
|
Um den Kuka iisy in der Simulation verwenden zu können, muss ein Modell des Roboterarms erstellt werden.
|
|
Dieses Modell sollte die physikalischen Eigenschaften des Roboters möglichst gut wiederspiegeln.
|
|
Anhand dieses Modells kann der Roboter dann in der Simulation dargestellt werden und mit anderen Objekten interagieren.
|
|
|
|
\section{Simulation des Menschen}
|
|
Der Mensch soll in der Simulation typische Aufgaben erledigen und häufiges Verhalten abbilden können.
|
|
Hierzu werden Animationen verwendet, welche die aktuelle Tätigkeit darstellen.
|
|
Für komplexere Verhaltensweisen können Animationen und andere Aktionen, wie zum Beispiel eine Bewegung und Rotation kombiniert werden, um zum Beispiel die Aktion ``laufen'' auszuführen.
|
|
|
|
Auch hier wird ein Modell der Person für die Simulation benötigt.
|
|
Außerdem werden mehrere Animationen und Übergänge zwischen diesen benötigt, um bestimmte Bewegungen darstellen zu können.
|
|
Hinzu kommt noch eine Komponente, welche diese Animationen und andere Parameter von außen entgegennehmen kann, um sie in der Simulation ausführen zu können.
|
|
Um die spätere Steuerung des Menschen von außerhalb zu erleichtern, müssen diese Aktionen im Fortschritt überwacht und abgebrochen werden können.
|
|
|
|
\section{Behavior Trees}
|
|
Häufig wird Verhalten in State-Machines ausgedrückt, welche jedoch einige Nachteile besitzen.
|
|
State-Machines werden ab einer gewissen Größe schnell unübersichtlich.
|
|
Dies erschwert die schnelle Erfassung von Abfolgen und Zustandsübergängen bei Änderungen am Code, welche jedoch essentiell für den Betrieb einer Maschine sind.
|
|
Um diese Probleme zu adressieren, entstand das Konzept der Behavior Trees.
|
|
|
|
Ein Behavior Tree ist eine Struktur, um Verhalten als ein Baum zu beschreiben.
|
|
Der Ablauf startet vom sogenannten Root, der Wurzel des Baums.
|
|
Von dort an werden sogenannte Nodes, welche je nach Node unterschiedliches Verhalten abbilden, miteinander verbunden.
|
|
Die Nodes werden untereinander angeordnet, welches die Relation der Nodes zueinander beschreibt.
|
|
Jede Node hat dabei entweder die Root-Node oder eine andere Node über ihr im Baum und eine beliebige Anzahl an Nodes unter sich.
|
|
Hierbei gibt es mehrere grundlegende Arten von Tree-Nodes.
|
|
\begin{description}
|
|
\item[Aktions-Nodes]
|
|
beschreiben einzelne ausführbare Aktionen. Mit Hilfe von Parametern kann ihr Verhalten von anderen Nodes beeinflusst werden.
|
|
\item[Dekorations-Nodes]
|
|
können den Rückgabewert einer anderen Node modifizieren. Häufig existieren hier Negation, garantierter Erfolg und garantierter Fehler.
|
|
\item[Sequenz-Nodes]
|
|
beschreiben eine nacheinander ausgeführte Abfolge von anderen Nodes, welche mit spezifischen Randbedingungen weiter fortschreitet.
|
|
\item[Fallback-Nodes]
|
|
werden verwendet, um Verhalten zu definieren, welches nur bei Fehlern in vorherigen Nodes ausgeführt wird.
|
|
\end{description}
|
|
|
|
In dieser Arbeit sollen BehaviorTrees für die Steuerung von Mensch und Roboter verwendet werden.
|
|
Die hierfür erstellten Nodes sollen universell gestaltet werden, um alle Szenarien, welche in dieser Arbeit bearbeitet werden, abzudecken.
|