Chnages up to 20.06

This commit is contained in:
yenon 2023-06-21 21:11:52 +02:00
parent 37459bc12d
commit e5985af2df
11 changed files with 113 additions and 31 deletions

View File

@ -129,11 +129,11 @@ TextFolding={"checksum":"5c50dc53ef39690810318af01f4ba4d3cb14fab0","ranges":[]}
ViMarks= ViMarks=
[view-settings,view=0,item:tex/1_Einleitung.tex] [view-settings,view=0,item:tex/1_Einleitung.tex]
CursorColumn=28 CursorColumn=78
CursorLine=41 CursorLine=61
Dynamic Word Wrap=false Dynamic Word Wrap=false
JumpList= JumpList=
TextFolding={"checksum":"72da509f7bb04dfaf40002d46af28410e2acb580","ranges":[]} TextFolding={"checksum":"578f69b0ffbc27d095768d7a3111120650ffd5d0","ranges":[]}
ViMarks= ViMarks=
[view-settings,view=0,item:tex/2_Konzept.tex] [view-settings,view=0,item:tex/2_Konzept.tex]
@ -141,23 +141,23 @@ CursorColumn=0
CursorLine=36 CursorLine=36
Dynamic Word Wrap=false Dynamic Word Wrap=false
JumpList= JumpList=
TextFolding={"checksum":"21b8ecf4269d0711922f5a58a25d2691a2aebc7f","ranges":[]} TextFolding={"checksum":"3273e70036fa23cebeead6b7a47fc2014926bdf5","ranges":[]}
ViMarks= ViMarks=
[view-settings,view=0,item:tex/3_Auswahl.tex] [view-settings,view=0,item:tex/3_Auswahl.tex]
CursorColumn=0 CursorColumn=9
CursorLine=147 CursorLine=161
Dynamic Word Wrap=false Dynamic Word Wrap=false
JumpList= JumpList=
TextFolding={"checksum":"ee9b56159ddf3293cde4120dfc5d90bbd2f0759a","ranges":[]} TextFolding={"checksum":"ee9b56159ddf3293cde4120dfc5d90bbd2f0759a","ranges":[]}
ViMarks= ViMarks=
[view-settings,view=0,item:tex/4_Umsetzung.tex] [view-settings,view=0,item:tex/4_Umsetzung.tex]
CursorColumn=15 CursorColumn=113
CursorLine=520 CursorLine=127
Dynamic Word Wrap=false Dynamic Word Wrap=false
JumpList= JumpList=
TextFolding={"checksum":"3e818d80aa0680fb9664cb90786bb0abf72bfd24","ranges":[]} TextFolding={"checksum":"2172161d77c4b318d98d968032cce683727b0108","ranges":[]}
ViMarks= ViMarks=
[view-settings,view=0,item:tex/Einleitung.tex] [view-settings,view=0,item:tex/Einleitung.tex]

BIN
img/MA-subtree-deposit.pdf Normal file

Binary file not shown.

BIN
img/MA-subtree-work.pdf Normal file

Binary file not shown.

BIN
img/MA-tree-base-robot.pdf Normal file

Binary file not shown.

BIN
img/MA-tree-colab.pdf Normal file

Binary file not shown.

BIN
img/MA-tree-robot-coex.pdf Normal file

Binary file not shown.

BIN
img/MA-tree-robot-colab.pdf Normal file

Binary file not shown.

BIN
img/MA-tree-robot-coop.pdf Normal file

Binary file not shown.

View File

@ -2,10 +2,8 @@
\section{Motivation} \section{Motivation}
Die Simulation von Maschinen wird im industriellen Umfeld immer beliebter, um deren Verhalten schon vor der eigentlichen Produktion zu testen. Die Simulation von Maschinen wird im industriellen Umfeld immer beliebter, um deren Verhalten schon vor der eigentlichen Produktion zu testen.
Dazu wird ein Modell des gesamten Prozesses in der Simulation geschaffen, der durch die Maschine beeinflusst werden soll. Dazu wird ein Modell des gesamten Prozesses in der Simulation geschaffen, der durch die Maschine beeinflusst werden soll.
Das Modell wird um die Maschine selbst erweitert, die Einfluss auf das Das Modell wird um die Maschine selbst erweitert, die Einfluss auf das System nimmt.
System nimmt. Die Veränderungen durch die Maschine werden analysiert, und erlauben Rückschlüsse auf die Funktion des Systems.
Die Veränderungen durch die Maschine werden analysiert, und erlauben
Rückschlüsse auf die Funktion des Systems.
Ein solches Modell kann nun für die Erkennung von Fehlverhalten und Problemen schon weit vor der eigentlichen Inbetriebnahme der Maschine genutzt werden. Ein solches Modell kann nun für die Erkennung von Fehlverhalten und Problemen schon weit vor der eigentlichen Inbetriebnahme der Maschine genutzt werden.
@ -16,18 +14,14 @@ nicht verschiedene Variationen im gesamten Prozess, die durch die Ereignisse in
der Simulation ausgelöst werden. der Simulation ausgelöst werden.
Um eine solche Funktionalität bereitstellen zu können, muss der Bewegungsablauf von sowohl Roboter und Mensch zur Laufzeit der Simulation gesteuert werden. Um eine solche Funktionalität bereitstellen zu können, muss der Bewegungsablauf von sowohl Roboter und Mensch zur Laufzeit der Simulation gesteuert werden.
Diese Steuerung soll durch eine eingängliche Beschreibungssprache ermöglicht Diese Steuerung soll durch eine eingängliche Beschreibungssprache ermöglicht werden, die einfach erweitert und auf neue Szenarien angepasst werden kann.
werden, die einfach erweitert und auf neue Szenarien angepasst werden kann. Um diese Funktionalität zu demonstrieren, sind 3 unterschiedliche Testszenarien in der Simulationsumgebung abzubilden.
Um diese Funktionalität zu demonstrieren, sind 3 unterschiedliche
Testszenarien in der Simulationsumgebung abzubilden.
Diese sollen durch verschiedene Aufgaben unterschiedliche Interaktionsgrade zwischen Mensch und Roboter simulieren. Diese sollen durch verschiedene Aufgaben unterschiedliche Interaktionsgrade zwischen Mensch und Roboter simulieren.
\section{Stand der Wissenschaft} \section{Stand der Wissenschaft}
Aktuelle wissenschaftliche Arbeiten befassen sich mit vielen unterschiedlichen Aktuelle wissenschaftliche Arbeiten befassen sich mit vielen unterschiedlichen Teilaspekten einer Simulation eines Mensch-Roboter-Kollaborationsszenarios.
Teilaspekten einer Simulation eines Mensch-Roboter-Kollaborationsszenarios.
Die Planung von unterschiedlichen Reaktionen von Roboter auf den Menschen Die Planung von unterschiedlichen Reaktionen von Roboter auf den Menschen in verschiedenen Interaktionsszenarien stellt eine Grundlage für spätere
in verschiedenen Interaktionsszenarien stellt eine Grundlage für spätere
Projekte dar.\cite{DOMBROWSKI2018134} Projekte dar.\cite{DOMBROWSKI2018134}
Hierbei wird die erwünschte Interaktion betrachtet und aus den gewonnenen Daten werden Einschränkungen generiert. Hierbei wird die erwünschte Interaktion betrachtet und aus den gewonnenen Daten werden Einschränkungen generiert.
Diese Einschränkungen können nun in der Interaktion verwendet werden, um Verletzungen durch den Roboter auszuschließen. Diese Einschränkungen können nun in der Interaktion verwendet werden, um Verletzungen durch den Roboter auszuschließen.
@ -54,14 +48,12 @@ Dazu zählen zum Beispiel das Hineingreifen in einen Prozess, das Aufheben von M
Das erste Szenario soll sich mit der Simulation einer bereits vollautomatisierten Fertigungsaufgabe befassen, in der ein Roboter im Arbeitsbereich eines Menschen Teile fertigt. Das erste Szenario soll sich mit der Simulation einer bereits vollautomatisierten Fertigungsaufgabe befassen, in der ein Roboter im Arbeitsbereich eines Menschen Teile fertigt.
Die zu erwartende Interaktion beschränkt sich hierbei auf die Anpassung der Fahrgeschwindigkeit bei Annäherung des Menschen, um Kollisionen zu vermeiden. Die zu erwartende Interaktion beschränkt sich hierbei auf die Anpassung der Fahrgeschwindigkeit bei Annäherung des Menschen, um Kollisionen zu vermeiden.
Der Mensch soll in diesem Szenario an einer anderen Aufgabe arbeiten. Der Mensch soll in diesem Szenario an einer anderen Aufgabe arbeiten.
Während dieser Arbeit betritt der Mensch vereinzelt den Arbeitsbereich des Während dieser Arbeit betritt der Mensch vereinzelt den Arbeitsbereich des Roboters, was eine entsprechende Reaktion hervorrufen soll.
Roboters, was eine entsprechende Reaktion hervorrufen soll.
Dieses Szenario ist ein Beispiel für eine Koexistenz zwischen Roboter und Mensch, wo beide an unterschiedlichen Aufgaben, jedoch im selben Raum, arbeiten. Dieses Szenario ist ein Beispiel für eine Koexistenz zwischen Roboter und Mensch, wo beide an unterschiedlichen Aufgaben, jedoch im selben Raum, arbeiten.
Außerdem werden grundlegende Aspekte der Simulation getestet, wie zum Beispiel das Bewegen von Mensch und Roboter und die sicherheitsrelevante Aktion der Geschwindigkeitsanpassung. Außerdem werden grundlegende Aspekte der Simulation getestet, wie zum Beispiel das Bewegen von Mensch und Roboter und die sicherheitsrelevante Aktion der Geschwindigkeitsanpassung.
Im zweiten Szenario prüft und sortiert der Roboter Teile und legt die Im zweiten Szenario prüft und sortiert der Roboter Teile und legt die fehlerfreien Exemplare auf einem Fließband zur Weiterverarbeitung ab.
fehlerfreien Exemplare auf einem Fließband zur Weiterverarbeitung ab.
Die Mängelexemplare werden hingegen in einer besonderen Zone abgelegt, von wo sie vom Menschen abtransportiert werden. Die Mängelexemplare werden hingegen in einer besonderen Zone abgelegt, von wo sie vom Menschen abtransportiert werden.
Auch hier soll der Mensch solange eigenständig arbeiten, bis der Roboter ein aussortiertes Teil ablegt, dass weiter transportiert werden muss. Auch hier soll der Mensch solange eigenständig arbeiten, bis der Roboter ein aussortiertes Teil ablegt, dass weiter transportiert werden muss.
@ -73,8 +65,6 @@ Dieser soll, wenn seine Hilfe nicht benötigt wird, andere Roboter kontrollieren
\section{Contributions} \section{Contributions}
Durch diese Arbeit soll in zukünftigen Projekten die Möglichkeit geschaffen werden, konzeptionelle Probleme bei der Erstellung neuer Aufgabenbereiche eines Roboters frühzeitig durch Simulation erkennbar zu machen. Durch diese Arbeit soll in zukünftigen Projekten die Möglichkeit geschaffen werden, konzeptionelle Probleme bei der Erstellung neuer Aufgabenbereiche eines Roboters frühzeitig durch Simulation erkennbar zu machen.
Dazu ist eine schnelle Konfiguration von sowohl Roboter als auch Mensch auf Dazu ist eine schnelle Konfiguration von sowohl Roboter als auch Mensch auf unterschiedliche Szenarien nötig.
unterschiedliche Szenarien nötig. Die Szenarien sollen dabei durch eine Beschreibungssprache definiert werden.
Die Szenarien sollen dabei durch eine Beschreibungssprache definiert
werden.
Durch deren einfache Struktur soll komplexes Verhalten einfach und überschaubar definierbar sein, dass dann in der Simulation getestet werden kann. Durch deren einfache Struktur soll komplexes Verhalten einfach und überschaubar definierbar sein, dass dann in der Simulation getestet werden kann.

View File

@ -714,8 +714,100 @@ Um die RobotMove-Node nicht zu unterbrechen, wird diese nur über einen Callback
\subsection{Subtrees} \subsection{Subtrees}
Um die Wiederverwendung von bestimmten Verhaltensweisen zu erleichtern, wurden diese in Subtrees ausgelagert. Um die Wiederverwendung von bestimmten Verhaltensweisen zu erleichtern, wurden diese in Subtrees ausgelagert.
In diesem Fall wurden die Aktionen ``Arbeiten an der Werkbank'' und ``Ablegen eines Objekts im Lagerregal'' des Menschen ausgelagert, da diese in mehreren Fällen verwendet werden und die Lesbarkeit der Bäume verbessert wird. In diesem Fall wurden die Aktionen ``Arbeiten an der Werkbank'' und ``Ablegen eines Objekts im Lagerregal'' des Menschen ausgelagert, da diese in mehreren Fällen verwendet werden.
Dies erhöht die Lesbarkeit der Bäume und vereinfacht die Verwendung gleicher Aktionen in mehreren Bäumen.
Für das Arbeiten an der Werkbank ist eine Bewegung zu dieser erforderlich.
Außerdem muss der Mensch sich zur Werkbank ausrichten, um die späteren Animationen korrekt auszuführen.
Dazu wird eine Bewegung zu einem Punkt vor der Werkbank mit vorgegebener Zielrichtung genutzt.
Nach dieser Bewegung soll ein Arbeitsprozess simuliert werden.
Da dieser Prozess weit vom Roboter entfernt ist, ist eine genaue Animation nicht erforderlich.
In diesem Fall wird die Arbeit durch ausstrecken und zurücknehmen der Hand in Richtung der Werkbank simuliert.
Dies wird durch zwei Animations-Nodes mit entsprechenden Parametern gesteuert.
Die Ausführung der Nodes dieser Gesamtaktion soll Sequenziell erfolgen, weshalb die Nodes unterhalb einer Sequence-Node gruppiert werden.
Der vollständige resultierende Baum ist in Abbildung \ref{subtree_work} visualisiert.
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-subtree-work}
\centering
\caption{BehaviorTree für das Arbeiten an der Werkbank}
\label{subtree_work}
\end{figure}
Das Ablegen von Objekten in einem Schrank ist ein komplizierterer Prozess, da der Schank in mehreren Ebenen befüllt werden kann.
Außerdem sind mehrere Fächer verfügbar, die genutzt werden können.
Wie bereits bei der Werkank wird zuerst eine Bewegung zum Schrank ausgeführt.
Diese hat ein einzelnes Schrankteil als Ziel, wobei drei Schrankteile existieren.
Die Auswahl des Ziels erfolgt zufällig durch eine WeightedRandom-Node, die eine der drei Bewegungs-Nodes ausführt.
Nachdem erfolgt eine weitere zufällige Auswahl.
Diese entscheidet, ob ein oberes oder unteres Fach genutzt werden soll.
Im Falle eines oberen Faches werden nur zwei Animationen benötigt.
Die Hand wird zu einem oberen Fach ausgestreckt und zurückgezogen.
Für den Fall eines unteren Fachs werden vier Animationen genutzt.
Zuerst kniet die Person auf den Boden nieder, um das untere Fach erreichen zu können.
Danach wird ein Objekt durch inspizieren und ablegen in das Fach gelegt.
Nun kann die Person wieder aufstehen, was die Person wieder zum gleichen Lage wie am Anfang der Aktion bringt.
Für die beiden Fälle werden auch Sequenz-Nodes genutzt, da die Aktionen nacheinander ausgeführt werden sollen.
Die beiden zufälligen Auswahlverfahren werden durch eine Sequenz verbunden.
Der resultierende Ablauf wurde als Baum in Abbildung \ref{subtree_deposit} visualisiert.
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-subtree-deposit}
\centering
\caption{BehaviorTree für das Ablegen von Objekten im Schrank}
\label{subtree_deposit}
\end{figure}
\subsection{Verhalten des Roboters} \subsection{Verhalten des Roboters}
Das grundlegende Verhalten des Roboters ist in jedem Anwendungsfall gleich.
Dies hängt mit der automatischen Geschwindigkeitsanpassung zusammen.
Der Roboter soll bei annäherndem Mensch zuerst seine Geschwindigkeit reduzieren, wenn dieser eine Warnzone betritt.
Falls sich der Mensch weiter bis in die Sicherheitszone begibt, ist ein vollständiger Stopp des Roboters vorgesehen.
Um diese Funktionen zu erlauben, ist eine Reaktion auf Statusänderungen von vorherigen Nodes nötig.
Dies wird durch eine übergeordnete ReactiveSequence erreicht.
Eine solche Node verhält sich ähnlich einer normalen Sequence, jedoch prüft sie vor jedem Tick noch einmal vorherige Nodes.
Wenn eine vorherige Node Failure zurückgibt, wird die aktuell laufende spätere Node abgebrochen.
Als erste Node in der ReactiveSequence wird getestet, ob sich der Mensch in der Sicherheitszone aufhält.
Wenn dies nicht der Fall ist, kann die Ausführung weiter fortgesetzt werden.
Dies wird durch eine über dem Test angeordnete Inverter-Node erreicht.
Nach diesem Schritt kann die Geschwindigkeitsanpassung vorgenommen werden, falls diese nötig ist.
Dies wird durch eine If-Then-Else Node erreicht.
Als Bedingung wird ein Test auf den Aufenthalt des Menschen in der Warnzone verwendet.
Wenn der Mensch sich in dieser befindet, wird die Geschwingigkeit auf 10\% gesetzt.
Sonst wird die Geschwindigkeit wieder auf 100\% erhöht.
Nach dieser Sequenz kann der spezifische Teil für die gewünschte Applikation hinzugefügt werden.
In Abbildung \ref{tree_base_robot} wurde dies durch eine Wolke repräsentiert.
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-tree-base-robot}
\centering
\caption{BehaviorTree für das Ablegen von Objekten im Schrank}
\label{tree_base_robot}
\end{figure}
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-tree-robot-coex}
\centering
\caption{BehaviorTree für das Ablegen von Objekten im Schrank}
\label{tree_base_robot}
\end{figure}
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-tree-robot-coop}
\centering
\caption{BehaviorTree für das Ablegen von Objekten im Schrank}
\label{tree_base_robot}
\end{figure}
\begin{figure}[]
\includegraphics[width=\textwidth]{img/MA-tree-robot-colab}
\centering
\caption{BehaviorTree für das Ablegen von Objekten im Schrank}
\label{tree_base_robot}
\end{figure}
\subsection{Verhalten des Menschen} \subsection{Verhalten des Menschen}

View File

@ -1,4 +1,4 @@
@startmindmap @startmindmap subtree_deposit
skinparam Linetype ortho skinparam Linetype ortho