Skip to content
Snippets Groups Projects
Commit e15a1482 authored by Matteo Anedda's avatar Matteo Anedda
Browse files

...

parent c5bc8547
Branches
No related tags found
No related merge requests found
Pipeline #12020 passed with warnings
images/fall1.png

70.4 KiB

images/fall12.png

70.4 KiB

images/fall13.png

77.3 KiB

images/fall14.png

68.3 KiB

\chapter{Evaluierung}\label{ch:evaluateion}
Nach der konzeptuellen Ausarbeitung und Demonstration der Implementierung des Algorithmus zur automatischen Konstruktion Multi-Roboter Arbeitsräume anhand eines Fallbeispiels, erfolgt in diesem Kapitel die Evaluierung anhand der formulierten Anforderungen im Kapitel 'Grundlagen'. Die Leistung und Effizienz von Multi-Roboter, Analog zu Single-Roboter Arbeitsräumen, ist anhand spezifischer zeitlicher Kriterien bemessen. Zu diesen Kriterien gehören:
Nach der konzeptuellen Ausarbeitung und Demonstration der Implementierung des in \autoref{sec:diffVoxel} beschriebenen Algorithmus zur automatischen Konstruktion Multi-Roboter Arbeitsräume anhand eines Fallbeispiels, erfolgt in diesem Kapitel die Evaluation bezüglich der Anforderungen, welche \autoref{sec:anforderungen} zu entnommen sind.
\section{Quantitative Auswertung}
Die Leistung und Effizienz von Multi-Roboter, analog zu Single-Roboter Arbeitsräumen, ist anhand spezifischer zeitlicher Kriterien bemessen. Zu diesen Kriterien gehören:
\begin{enumerate}
\item Zeit zur erfolgreichen Termination der definierten Aufgabe
\item Welchen Einfluss hat die Modifikation spezieller Aspekte der Szene, wie beispielsweise durch das Hinzufügen und entfernen eines Roboters, auf die Zeit.
\item Zeit zur erfolgreichen Termination der definierten Aufgabe \label{enumi:eval1}
\item Einfluss robotischer Systeme auf die Zeit zur erfolgreichen Termination \label{enumi:eval2}
\end{enumerate}
Anhand einer festen Aufgabebeschreibung erfolgt eine Gegenüberstellung dieser Kriterien bezogen auf dessen Ausführung durch ein robotisches Systeme in einem Arbeitsraum. Der Hauptaspekt dieser wissenschaftlichen Arbeit ist die automatische Konstruktion, welche anhand der Implementierung des Algorithmus zur Kalkulation der Positionen robotischer Systeme hinsichtlich einer zu operierenden Aufgabe erfolgt. Die Komplexität dieser Implementierung hat zusätzlich Auswirkungen auf die Zeit, welche ebenfalls in dieser Evaluation berücksichtigt werden. Aus dieser Überlegung ergeben sich folgende zusätzliche Kriterien
Der Hauptaspekt dieser wissenschaftlichen Arbeit ist die automatisierte Konstruktion der Arbeitsräume. Der Einfluss dieser Implementierung wird ebenfalls in dieser Evaluation berücksichtigt. Daraus ergeben sich die zusätzliche Kriterien:
\begin{enumerate}
\setcounter{enumi}{2}
\item Zeit zur Kalkulation aller Roboterpositionen
\item Welchen zeitlichen Einfluss hat die Modifikation der Aufgabenbeschreibung, wie beispielsweise durch das Hinzufügen und entfernen spezifischer Kettenglieder der Operationskette oder
\item Einfluss der Kettenglieder einer Aufgabenbeschreibung auf die Kalkulationszeit
\end{enumerate}
\section{Skalierbarkeit der Positionsanalyse}
\subsection{Skalierbarkeit der Arbeitsräume}
Marvel et al. \cite{Marvel2018} dokumentieren in ihrer Publikation zur Evaluierung robotischer Arbeitsräume, dass die Effizienz und Leistung eines Multi-Roboter Arbeitsraums anhand des Vergleichs mit dem eines einzelnen robotischen Systems gemessen werden kann. Dieser Vergleich erfordert eine Aufgabenbeschreibung, die für beide Arbeitsräume realisierbar ist, wodurch kooperative Aufgaben ausgeschlossen sind, da diese mehrere Roboter bedingen. \autoref{lst:eval1} visualisiert eine für diesen Vergleich angemessene Aufgabenbeschreibung \texttt{eval1}, während \autoref{fig:eval1} die Aufgabe schematisiert. Die Färbung der Pfeile ist für den Arbeitsraum mit bestehend aus einem robotischen System irrelevant.
\begin{lstlisting}[language=JSON,firstnumber=1, float, caption={Aufgabenbeschreibung von \texttt{eval1}},captionpos=t, label={lst:eval1}]
Name_der_Aufgabe: eval1
Aufgabenbeschreibung:
objekt0:
- 0.000 -0.690 0.150
- -0.550 -0.094 0.165
objekt1:
- 0.073 0.479 0.176
- -0.625 0.957 0.173
\end{lstlisting}
\begin{figure}[h!]
\centering
\begin{tikzpicture} [ >=stealth']
\node[rectangle, draw=blue!60, fill=blue!5, thick, minimum size=3em, align=center] (a) {3};
\node[rectangle, draw=green!60, fill=green!5, thick, minimum size=3em, align=center] (aa) [right= of a]{0};
\node[rectangle, draw=green!60, fill=green!5, thick, minimum size=3em, align=center] (aaa) [below = of a]{2};
\node[rectangle, draw=blue!60, fill=blue!5, thick, minimum size=3em, align=center] (aaaa) [right= of aaa]{1};
\draw[->, draw=cyan!60] (aa) -- (aaaa);
\draw[->, draw=magenta!60] (aaa) -- (a);
\end{tikzpicture}
\caption{Darstellung der Aufgabe \texttt{eval1}}
\label{fig:eval1}
\end{figure}
Arbeitsräume können anhand der Dauer einer Exekution, der maximalen/minimalen und durchschnittlichen Ausführzeit, sowie der Standartabweichung \footnote{\url{https://mathworld.wolfram.com/StandardDeviation.html}} einer Aufgabe evaluiert werden. Um diese Daten zu erheben, erfolgen 15 Versuche anhand der Aufgabenbeschreibung von \texttt{eval1} für die betrachteten Arbeitsräume.
Aus den Messungen in \autoref{tab:eval1solo} und \autoref{tab:eval1multi} ergeben sich in \autoref{tab:ergebnis}
\begin{table}[h!]
\begin{tabulary}{\textwidth}{@{}CCCCC@{}}
\toprule
\textbf{Ketten} & \textbf{Minimum} & \textbf{Maximum} & \textbf{arithmetisches Mittel} & \textbf{Standardabweichung}
\tabularnewline\midrule
1. TK &
9.6366s &
13.2005s &
11.1044s &
1.1739s
\tabularnewline\midrule
2. TK &
10.3993s &
16.8099s &
14.4685s &
1.8648s
\tabularnewline\midrule
OK &
20.432s &
27.8898s &
25.2902s &
2.0335s
\tabularnewline\bottomrule
\end{tabulary}
\caption{Metriken des Arbeitsraums mit einem einzelnen robotischen System.}\label{tab:ergebnis1}
\end{table}
\begin{table}[h!]
\begin{tabulary}{\textwidth}{@{}CCCCC@{}}
\toprule
\textbf{Ketten} & \textbf{Minimum} & \textbf{Maximum} & \textbf{arithmetisches Mittel} & \textbf{Standardabweichung}
\tabularnewline\midrule
1. TK &
15.9330s &
23.9134s &
18.3691s &
2.47s
\tabularnewline\midrule
2. TK &
14.2003s &
25.0007s &
19.3930s &
3.3232s
\tabularnewline\midrule
OK &
30.4213s &
27.8898s &
43.2209s &
4.0533s
\tabularnewline\bottomrule
\end{tabulary}
\caption{Metriken des Multi-Roboter Arbeitsraums.}\label{tab:ergebnis2}
\end{table}
\autoref{tab:eval1solo} dokumentiert die Messung der Zeit in Sekunden, welche ein einzelnes robotisches System zur Exekution der Teilketten, sowie der gesamten Operationskette von Aufgabe \texttt{eval1} beansprucht. Leere Zeilen implizieren das Versagen des robotischen Systems, indem es beispielsweise entweder keinen Pfad zum nächsten Kettenglied kalkuliert hat, oder eine Kollision mit der Szene detektiert wurde.
\begin{table}
\begin{tabulary}{\textwidth}{@{}RRR@{}}
\toprule
\textbf{1. TK} & \textbf{2. TK} & \textbf{OK}
\tabularnewline\midrule
10.0327s&
10.3993s&
20.432s
\tabularnewline
10.0752s&
14.3001s&
24.3753s
\tabularnewline
11.1799s&
15.5005s&
26.6804s
\tabularnewline
10.4561s&
14.2935s&
24.7496s
\tabularnewline
10.246s&
14.506s&
24.752s
\tabularnewline
11.3637s&
11.9085s&
23.2722s
\tabularnewline
11.8070s&
13.3006s&
25.1076s
\tabularnewline
9.6366s&
16.2897s&
25.9263s
\tabularnewline
13.2005s&
14.6893s&
27.8898s
\tabularnewline
10.747s&
11.91s&
22.657s
\tabularnewline
10.4712s&
14.6004s&
25.0716s
\tabularnewline
-&
-&
-
\tabularnewline
10.673s&
14.8996s&
25.5726s
\tabularnewline
-&
-&
-
\tabularnewline
10.2767s&
16.8099s&
27.0866s
\tabularnewline\bottomrule
\end{tabulary}
\caption{Dokumentation erfassten Messungen für ein einzelnes robotisches System in Sekunden}\label{tab:eval1solo}
\end{table}
\autoref{tab:eval1multi} dokumentiert analog zu \autoref{tab:eval1solo} die Messung der Zeit in Sekunden, welche ein Multi-Roboter Arbeitsraum zur Exekution der Aufgabe \texttt{eval1} in 15 Versuchen benötigt.
\begin{table}
\begin{tabulary}{\textwidth}{@{}RRR@{}}
\toprule
\textbf{1. TK} & \textbf{2. TK} & \textbf{OK}
\tabularnewline\midrule
16.2703s&
24.2001s&
40.4704s
\tabularnewline
-&
-&
-
\tabularnewline
16.4316s&
17.2079s&
33.6395s
\tabularnewline
17.0595s&
18.0995s&
35.159s
\tabularnewline
20.6194s&
20.0094s&
40.6288s
\tabularnewline
16.9212s&
22.7995s&
39.7207s
\tabularnewline
23.9134s&
19.1087s&
43.0221s
\tabularnewline
18.7215s&
18.3821s&
37.1036s
\tabularnewline
15.9330s&
15.099s&
31.032s
\tabularnewline
16.9171s&
19.8993s&
36.8164s
\tabularnewline
16.221s&
14.2003s&
30.4213s
\tabularnewline
18.2383s&
17.8993s&
36.1376s
\tabularnewline
18.0057s&
17.5993s&
35.605s
\tabularnewline
18.2202s&
25.0007s&
43.2209s
\tabularnewline
18.1505s&
16.3902s&
34.5407s
\tabularnewline\bottomrule
\end{tabulary}
\caption{Dokumentation erfassten Messungen für ein einzelnes robotisches System in Sekunden}\label{tab:eval1multi}
\end{table}
\subsection{Skalierbarkeit der Positionsanalyse}
Die Analyse und Kalkulation valider Basispositionen nach dem in \autoref{sec:diffVoxel} beschriebenen Algorithmus ist abhängig von der Anzahl aller Kettenglieder und Teilketten der dokumentierten Aufgabenbeschreibung. Um die Skalierbarkeit zu evaluieren, wird die Kalkulationszeit der Operationskette, die Anzahl kalkulierter Basispositionen pro Roboter dokumentiert.
\begin{table}
\begin{tabulary}{\textwidth}{@{}LCCCC@{}}
\begin{tabulary}{\textwidth}{@{}CCCCC@{}}
\toprule
\textbf{Name} & \textbf{Anzahl der Teilketten} & \textbf{Aufteilung der Kettenglieder} & \textbf{Kalkulationszeit} & \textbf{Lösungsmenge}
\tabularnewline\midrule
......
......@@ -5,12 +5,14 @@ Inhalt dieses Kapitels ist die Demonstration der Funktionsweise einzelner Elemen
\emph{MoveIt!} bietet über die \emph{move\_group} Schnittstelle eine Möglichkeit der Kommunikation mittels spezieller Nachrichten und somit der Planung und Exekution kinematischer Operationen durch den Roboter. Dies bedingt eine \emph{SRDF} Datei, welche das robotische System konkretisiert, indem beispielsweise Kontrollelemente wie Endeffektoren als Gruppen definiert oder Adjazenzen der einzelnen Festkörper in Form einer Kollisionsmatrix erfasst werden. Wie \autoref{sec:Moveit} zu entnehmen ist, kann diese Konfigurationsdatei innerhalb eines ROS Pakets mit dem \emph{moveit setup assistant} aus einer validen Roboterbeschreibung generiert werden. Das resultierende Konfigurationspaket ist Ausgangspunkt aller operativen Aspekte des Fallbeispiels und daher sowohl für einen Roboter, als auch für mehrere robotische Systeme in der Implementierung enthalten.
\subsection{Modifikationen in der Beschreibung robotischer Systeme}
\label{sec:Modifikationen}
Die \emph{move\_group} Schnittstelle bietet keine Möglichkeit zur Deklaration einer Roboterposition, da diese fest in der Roboterbeschreibung definiert ist, welche vom spezifischen Konfigurationspaket geladen wird. Dies impliziert die Notwendigkeit einer Modifikation, indem die geforderten Positionen in Form von Variablen sukzessiv innerhalb der Instanzen eines Konfigurationspakets bis zur letzten Instanz, der zugrundeliegenden Roboterbeschreibung, kommuniziert werden.
\section{Präparation des Fallbeispiels}
Die Kalkulation valider Positionen für robotische Systeme erfordert die roboterzentrierte Inspektion des Arbeitsraums und eine Aufgabenbeschreibung, welche für $i \in \N_{>0}$ Endsysteme mindestens $i$ Teilketten einer Operationskette aufweist. Die diesbezüglich vorzunehmende Arbeitsraumanalyse und dessen Inversion ist aufgabenunabhängig, erfolgt daher im Vorfeld und kann auf alle Aufgabenbeschreibung angewendet werden, die vom Referenzsystem der Analyse, wie beispielsweise dem \emph{Panda} Roboter der Franka Emika GmbH, operiert werden sollen. Die Aufgabenbeschreibung kann zum Ermittlungszeitpunkt vorgenommen werden oder schon persistiert vorliegen.
\subsection{Aufgabenkonstruktion}
\label{sec:Konstruktion}
Die Aufgabenbeschreibung in Form einer Operationskette erfolgt über interaktive Marker, die jeweils die Abstell- beziehungsweise Greifposition eines Primitives darstellen. Jede dieser Positionen erfordert ein zusätzliches Kollisionsobjekt als Operationsoberfläche \emph{Support\_Surface}, welche dem robotischen System über spezifische Nachrichten kommuniziert wird und ohne dessen eine Exekution nicht erfolgt. Dieser redundante Aufwand wird im Algorithmus berücksichtigt und ist implizit durch die Position und Dimension des Primitives definiert. \autoref{fig:OPkette} illustriert eine Szene aus Kollisionsobjekten anhand des Beispiels in \autoref{fig:OK}. Die Aufgabe in Form einer Operationskette wird in \autoref{fig:OK1} mittels interaktiver Marker modelliert. \autoref{fig:OK2} zeigt die vollständig genierte Szene aus dem Primitiv und den Operationsoberflächen, auf denen es während des Vorgangs beispielsweise abgestellt oder von denen es gegriffen werden kann.
\begin{figure}[h!]
......@@ -87,7 +89,6 @@ Aufgabenbeschreibung:
objekt1:
- 0.073 0.479 0.176
- -0.625 0.957 0.173
- 0.000 1.510 0.169
\end{lstlisting}
Analog erfordert eine kooperative Aufgabenbeschreibung keine zusätzlichen Primitive, da diese beispielsweise an einer Stelle zwischen den robotisch Systemen übergeben werden. Diese Übergabeposition ist die Schnittmenge der definierten Teilketten und wird als solche in \autoref{lst:koop} durch ihre Wiederholung visualisiert.
......@@ -127,4 +128,4 @@ Basispositionen:
\end{lstlisting}
\section{Ausführung der Operationskette}
Zur Ausführung der Operationskette ist ein weiterer Algorithmus implementiert, welcher die permutierten Informationen der Positionsanalyse aufruft und die robotischen Systeme an den kalkulierten Positionen initialisiert, um jeweils die Teilketten zu operieren.
\ No newline at end of file
Zur Ausführung der Operationskette ist ein weiterer Algorithmus implementiert, welcher die erforderlichen Modifikationen aus \autoref{sec:Modifikationen} anhand des \texttt{Basispositionen} Feldes einer Positionierungsdatei realisiert. Somit werden die Positionen der robotischen Systeme \texttt{panda\_arm1} und \texttt{panda\_arm2} für das Beispiel in \autoref{lst:Goalschnitt} aktualisiert, die Primitive und Operationsoberflächen nach \autoref{sec:Konstruktion} anhand der Kettenglieder innerhalb der \texttt{panda\_arm} Felder generiert. In der entstandenen Szene erfolgt anschließend die Exekution der Aufgabe.
\ No newline at end of file
......@@ -219,10 +219,8 @@ Diese Aufgaben sind implizit durch die enthaltenen Teilketten im Positionsfeld d
\node[rectangle, draw=blue!60, fill=blue!5, thick, minimum size=3em, align=center] (aa) [above right= of a]{1};
\node[rectangle, draw=green!60, fill=green!5, thick, minimum size=3em, align=center] (aaa) [below right= of aa]{2};
\node[rectangle, draw=blue!60, fill=blue!5, thick, minimum size=3em, align=center] (aaaa) [above right= of aaa]{3};
\node[rectangle, draw=blue!60, fill=blue!5, thick, minimum size=3em, align=center] (aaaaa) [above right= of aaa]{4};
\draw[->, draw=cyan!60] (a) -- (aa);
\draw[->, draw=magenta!60] (aaa) -- (aaaa);
\draw[->, draw=magenta!60] (aaaa) -- (aaaaa);
\end{tikzpicture}
\caption{Zwei dimensionale Darstellung einer Operationskette bestehend aus disjunkten Teilketten}
\label{fig:hallo}
......
......@@ -202,5 +202,9 @@ D_{voxel}^{mittel}(TP)&= \frac{\displaystyle\sum_{i=0}^{\vert TP \vert } D_{Reac
\end{split}
\end{equation}
\section{Verwandte wissenschaftliche Arbeiten}
Forstenhausler et al. \cite{Forstenhausler} dokumentieren in deren Publikation eine Methodik zur Kalkulation der Basisposition eines robotisch Systems anhand einer Aufgabe, ohne den schematisch illustrierten Algorithmus in \autoref{fig:4} zu nutzen. Der betrachtete Ansatz basiert auf der Spaltung des Arbeitsraums in verschiedene Dimensionen, ähnlich der in \autoref{fig:panda} dargestellten Perspektiven. Diese definieren einen sphärischen Körper um den Roboter, welche seinen welcher den Arbeitsraum anhand der Distanz charakterisiert. Eigenkollisionen treten häufiger auf, je näher die definierte Aufgabe an der Basis des robotischen Systems ist. Diese Erkenntnis wird durch eine zweite Sphäre integriert, die diesen fehleranfälligen Bereich aus dem tatsächlich Arbeitsraum entfernt. Sofern eine Aufgabe definiert ist, werden diese Sphären auf die Aufgabenpositionen projiziert. Die Kalkulation der Roboterbasis erfolgt anhand eines Algorithmus, welcher den Arbeitsraum des Roboters verschiebt, bis die Ausgabenpositionen in der vom Arbeitsraum definierten Sphäre liegen. \par
Tao et al. \cite{Tao} zeigt in seiner wissenschaftlichen Arbeit einen ähnlichen Ansatz, welcher den Arbeitsraum eins Roboters analog zu \autoref{Forstenhausler} anhand von Sphären beschreibt. In seinem Beispiel besteht der
\chapter{Zusammenfassung}\label{ch:conclusion}
\chapter{Zusammenfassung und Ausblick}\label{ch:conclusion}
\blindtext
......@@ -99,6 +99,8 @@
\newcommand{\N}{\mathbb{N}}
\usepackage{hyperref}
\usepackage{mathtools}
\usepackage{multirow}
\usepackage{bera}% optional: just to have a nice mono-spaced font
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment