Chnages up to 20.06
This commit is contained in:
parent
37459bc12d
commit
e5985af2df
@ -129,11 +129,11 @@ TextFolding={"checksum":"5c50dc53ef39690810318af01f4ba4d3cb14fab0","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:tex/1_Einleitung.tex]
|
||||
CursorColumn=28
|
||||
CursorLine=41
|
||||
CursorColumn=78
|
||||
CursorLine=61
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"72da509f7bb04dfaf40002d46af28410e2acb580","ranges":[]}
|
||||
TextFolding={"checksum":"578f69b0ffbc27d095768d7a3111120650ffd5d0","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:tex/2_Konzept.tex]
|
||||
@ -141,23 +141,23 @@ CursorColumn=0
|
||||
CursorLine=36
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"21b8ecf4269d0711922f5a58a25d2691a2aebc7f","ranges":[]}
|
||||
TextFolding={"checksum":"3273e70036fa23cebeead6b7a47fc2014926bdf5","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:tex/3_Auswahl.tex]
|
||||
CursorColumn=0
|
||||
CursorLine=147
|
||||
CursorColumn=9
|
||||
CursorLine=161
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"ee9b56159ddf3293cde4120dfc5d90bbd2f0759a","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:tex/4_Umsetzung.tex]
|
||||
CursorColumn=15
|
||||
CursorLine=520
|
||||
CursorColumn=113
|
||||
CursorLine=127
|
||||
Dynamic Word Wrap=false
|
||||
JumpList=
|
||||
TextFolding={"checksum":"3e818d80aa0680fb9664cb90786bb0abf72bfd24","ranges":[]}
|
||||
TextFolding={"checksum":"2172161d77c4b318d98d968032cce683727b0108","ranges":[]}
|
||||
ViMarks=
|
||||
|
||||
[view-settings,view=0,item:tex/Einleitung.tex]
|
||||
|
||||
BIN
img/MA-subtree-deposit.pdf
Normal file
BIN
img/MA-subtree-deposit.pdf
Normal file
Binary file not shown.
BIN
img/MA-subtree-work.pdf
Normal file
BIN
img/MA-subtree-work.pdf
Normal file
Binary file not shown.
BIN
img/MA-tree-base-robot.pdf
Normal file
BIN
img/MA-tree-base-robot.pdf
Normal file
Binary file not shown.
BIN
img/MA-tree-colab.pdf
Normal file
BIN
img/MA-tree-colab.pdf
Normal file
Binary file not shown.
BIN
img/MA-tree-robot-coex.pdf
Normal file
BIN
img/MA-tree-robot-coex.pdf
Normal file
Binary file not shown.
BIN
img/MA-tree-robot-colab.pdf
Normal file
BIN
img/MA-tree-robot-colab.pdf
Normal file
Binary file not shown.
BIN
img/MA-tree-robot-coop.pdf
Normal file
BIN
img/MA-tree-robot-coop.pdf
Normal file
Binary file not shown.
@ -2,10 +2,8 @@
|
||||
\section{Motivation}
|
||||
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.
|
||||
Das Modell wird um die Maschine selbst erweitert, die Einfluss auf das
|
||||
System nimmt.
|
||||
Die Veränderungen durch die Maschine werden analysiert, und erlauben
|
||||
Rückschlüsse auf die Funktion des Systems.
|
||||
Das Modell wird um die Maschine selbst erweitert, die Einfluss auf das System nimmt.
|
||||
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.
|
||||
|
||||
|
||||
@ -16,18 +14,14 @@ nicht verschiedene Variationen im gesamten Prozess, die durch die Ereignisse in
|
||||
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.
|
||||
|
||||
Diese Steuerung soll durch eine eingängliche Beschreibungssprache ermöglicht
|
||||
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.
|
||||
Diese Steuerung soll durch eine eingängliche Beschreibungssprache ermöglicht 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.
|
||||
Diese sollen durch verschiedene Aufgaben unterschiedliche Interaktionsgrade zwischen Mensch und Roboter simulieren.
|
||||
|
||||
\section{Stand der Wissenschaft}
|
||||
Aktuelle wissenschaftliche Arbeiten befassen sich mit vielen unterschiedlichen
|
||||
Teilaspekten einer Simulation eines Mensch-Roboter-Kollaborationsszenarios.
|
||||
Aktuelle wissenschaftliche Arbeiten befassen sich mit vielen unterschiedlichen Teilaspekten einer Simulation eines Mensch-Roboter-Kollaborationsszenarios.
|
||||
|
||||
Die Planung von unterschiedlichen Reaktionen von Roboter auf den Menschen
|
||||
in verschiedenen Interaktionsszenarien stellt eine Grundlage für spätere
|
||||
Die Planung von unterschiedlichen Reaktionen von Roboter auf den Menschen in verschiedenen Interaktionsszenarien stellt eine Grundlage für spätere
|
||||
Projekte dar.\cite{DOMBROWSKI2018134}
|
||||
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.
|
||||
@ -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.
|
||||
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.
|
||||
Während dieser Arbeit betritt der Mensch vereinzelt den Arbeitsbereich des
|
||||
Roboters, was eine entsprechende Reaktion hervorrufen soll.
|
||||
Während dieser Arbeit betritt der Mensch vereinzelt den Arbeitsbereich des 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.
|
||||
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
|
||||
fehlerfreien Exemplare auf einem Fließband zur Weiterverarbeitung ab.
|
||||
Im zweiten Szenario prüft und sortiert der Roboter Teile und legt die 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.
|
||||
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}
|
||||
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
|
||||
unterschiedliche Szenarien nötig.
|
||||
Die Szenarien sollen dabei durch eine Beschreibungssprache definiert
|
||||
werden.
|
||||
Dazu ist eine schnelle Konfiguration von sowohl Roboter als auch Mensch auf unterschiedliche Szenarien nötig.
|
||||
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.
|
||||
|
||||
@ -714,8 +714,100 @@ Um die RobotMove-Node nicht zu unterbrechen, wird diese nur über einen Callback
|
||||
|
||||
\subsection{Subtrees}
|
||||
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}
|
||||
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}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
@startmindmap
|
||||
@startmindmap subtree_deposit
|
||||
|
||||
|
||||
skinparam Linetype ortho
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user