Wie im vorherigen Kapitel beschrieben, charakterisieren wissenschaftliche Arbeiten die Analyse des Arbeitsraums einzelner Roboter, sowie der Kenntnis bezüglich auszuführender Aufgaben als notwendige Voraussetzungen, um anhand dieser Informationen sukzessiv die optimale Position des Roboters zu bestimmen. Dieses Kapitel dokumentiert die konzeptuellen Entscheidungen bezüglich gewählten Verfahren dieser Bachelorarbeit, basierend auf den zuvor beschriebenen Methodiken zur Arbeitsraumanalyse, dessen Invertierung und anschließender Auswertung. Das Konzept zur Definition spezifischer Aufgaben, sowie deren intuitive Generierung und Darstellung mittels grafischer Programme ist ebenfalls eine Komponente dieses Kapitels. Die Implementierung der jeweiligen Abschnitte wird in Form der Header beigefügt und jeweils näher erläutert. Basierend auf diesen Teilprogrammen und deren persistierter Resultate im simplen JSON-Dateiformat, wird abschließend die Positionierung erforderlicher Roboterarme ermittelt. Anhand dieser Realisierung erfolgt eine Erweiterung der Erkenntnisse vorangegangener wissenschaftlicher Arbeiten um die Anwendung auf mehrere robotische Systeme. Diese Erweiterung ermöglicht die automatisiert Schöpfung kollaborative Multi-Roboter Arbeitsräume.
Wie im vorherigen Kapitel beschrieben, charakterisieren wissenschaftliche Arbeiten die Analyse des Arbeitsraums einzelner Roboter, sowie der Kenntnis bezüglich auszuführender Aufgaben als notwendige Voraussetzungen, um anhand dieser Informationen sukzessiv die optimale Position des Roboters zu bestimmen. Dieses Kapitel dokumentiert die konzeptuellen Entscheidungen bezüglich gewählten Verfahren dieser Bachelorarbeit, basierend auf den zuvor beschriebenen Methodiken zur Arbeitsraumanalyse, dessen Invertierung und anschließender Auswertung. Das Konzept zur Definition spezifischer Aufgaben, sowie deren intuitive Generierung und Darstellung mittels grafischer Programme ist ebenfalls dokumentiert und vervollständigt somit den Algorithmus zur Kalkulation valider Roboterbasen. Die Implementierung der jeweiligen Abschnitte wird in Form der Header beigefügt und jeweils näher erläutert. Die grundlegende Struktur persistierter Daten im JSON Format sind ebenfalls Bestandteil des Kapitels. Anhand dieser Realisierung erfolgt eine Erweiterung der Erkenntnisse vorangegangener wissenschaftlicher Arbeiten um die Anwendung auf mehrere robotische Systeme sowie der Konkretisierung spezifischer Aufgaben. Diese Erweiterung ermöglicht die automatisiert Schöpfung kollaborative Multi-Roboter Arbeitsräume.
\newcommand\pgfmathsinandcos[3]{%
\pgfmathsetmacro#1{sin(#3)}%
...
...
@@ -43,38 +43,30 @@ Wie im vorherigen Kapitel beschrieben, charakterisieren wissenschaftliche Arbeit
\foreach\t in {-5,-35,...,-175}{\DrawLongitudeCircle[\R]{\t}}
\end{tikzpicture}
\begin{figure}
\centering
\begin{tikzpicture}
\def\r{3}
\node[circle, fill, inner sep=1 , label=left:${p}$] at (0,0) (origin) {};
\node[inner sep=0.7, label=left:${ps}$] at (\r/3,\r/2) (s) {};
Der grundlegende Aspekt dieses Teilprogramms ist die Population valider Transformationen $^{0}T_{Endeff}$, welche Resultat der Komposition aus $OR_{total}$ und $P_{total}$ sind. Dabei legen Zacharias et al., basierend auf geführten Beobachtungen, die Generierung der Menge $P_{total}$ durch den Prozess der kubischen Diskretisierung nahe, da zufallsbasierte Verfahren diesbezüglich das Umfeld des Roboters nicht ausreichend Repräsentieren und daher für die Analyse unzureichend sind (Quelle). Gleichermaßen ist die anschließende kinematische Berechnungen zur Validierung aller Endeffektor Posen zeitaufwändig, dies impliziert den Verzicht auf Methodiken, die durch kumulativer Betrachtung vieler Teilergebnisse ein statistisch zufriedenstellendes Resultat erzielen. Stattdessen werden kubische und sphärische Diskretisierungen vorgenommen, um die Mengen $P_{total}$ und $OR_{total}$ zu bestimmen. Zusätzlich empfiehlt sich die vollständige Auslagerung der Berechnungen auf das Hochleistungsrechenzentrum der TU-Dresden, um diese mit dem Gitlab.Ci Interface über große Zeiträume vorzunehmen.
Die Population valider Transformationen $^{0}T_{Endeff}$, welche Resultat der Vereinigung aus $OR_{total}$ und $P_{total}$ sind, zuzüglich einer zugrundeliegenden Metrik, ist Bestandteil der Arbeitsraumanalyse. Dabei ist den Erkenntnissen um den Prozess zur Generierung aller Orientierungen $OR_{total}$ zu entnehmen, dass diese auf den Polarkoordinaten $^{0}s \in S$ einer Sphäre basieren, welche durch ihren Ursprung und Radius definiert ist. Der Implementiere Algorithmus zur Ermittlung aller Transformationen $^{0}T_{Endeff}$ kombiniert diese Mengen, indem jeder Vektor $^{0}p \in P_{total}$ den Ursprung einer Sphäre darstellt, und demzufolge Ausgangspunkt der Kalkulation seiner Orientierungen ist.
\subsection{Erfassung der Orientierungen und Positionen}
Aufgrund der Erörterung von Zacharias et al., welche die Erfassung von $P_{total}$ anhand von Zufallsverfahren als unzureichend bezüglich der Repräsentation des Umfelds robotischer Systeme klassifiziert, wird in der Implementierung stattdessen die kubische Diskretisierung angewandt. Demzufolge ist die Menge $P_{total}$ von den Größen $q, a \in\R_{+}$ abhängig die das Intervall des entstehenden Würfels, beziehungsweise den Abstand zwischen den Vektoren $^{0}p \in P_{total}$ definieren. \par
Die Erfassung aller Orientierungen $OR_{total}$ basiert ebenfalls nicht auf Pseudozufall, da die anschließenden kinematischen Berechnungen den zeitaufwändigsten Faktor der Arbeitsraumanalyse darstellen, folglich ist eine Implementierung, dessen Resultat von der kumulativen Betrachtung einer enormen Anzahl an sphärischer Koordinaten abhängt, gleichermaßen unzulänglich. Dies impliziert den Einsatz der sphärischen Diskretisierungen durch gleichmäßiger beziehungsweise ungleichmäßiger Verteilung. \par
Durch die Wahl des festen Abstands $a$ bezüglich der kubischen Diskretisierung und Definition der Vektoren $^{0}p \in P_{total}$ als Zentrum einer Sphäre, kann der Radius der Sphäre kalkuliert werden().
Zusätzlich empfiehlt sich die vollständige Auslagerung der Berechnungen auf das Hochleistungsrechenzentrum der TU-Dresden, um diese mit dem Gitlab.Ci Interface über große Zeiträume vorzunehmen. \autoref{fig:RM} zeigt die Struktur der JSON-Datei, die als Artefakt der Berechnung von Gitlab entnommen werden kann.
\begin{figure}[h!]
\begin{lstlisting}[language=json,firstnumber=1]
{"name": "RM_\$(maxdistance)_\$(resolution)"
"resolution": float,
"max_distance": float,
"pose": [ "x y z q_x q_y q_z q_w"],
"value": [true | false]
}
\end{lstlisting}
\caption{Die Felder 'resolution' und 'maxdistance' entstammen den Parametern der kubischen Diskretisierung und definieren den Namen der Datei. Das Feld 'pose' enthält die String-Repräsentation aller Endeffektor-Posen in einer Liste. Diese bestehen aus Position und Orientierung, wobei die Orientierung als Quaternion notiert ist, was dem Präfix q zu entnehmen ist. Die Informationen bezüglich der Erreichbarkeit einer Pose ist als bool in der Liste des Feldes 'value' dokumentiert. }\label{fig:RM}
\end{figure}
\begin{align*}
r = \frac{a}{2}
\end{align*}
\subsection{Komplexität}
Bei derart zeitaufwändigen Verfahren, ist die Betrachtung der Komplexität essenziell, um die Anzahl aller auszuführenden Operationen und somit dessen maximalen Zeitaufwand zu prognostizieren. Eine Einordnung der zeitlichen Komplexität ist durch die Betrachtung der Kardinalitäten der jeweiligen Mengen praktikabel.
...
...
@@ -124,7 +116,7 @@ Daraus ist abzuleiten, dass die Verteilung der Vektoren $^{0}s$ für eine qualit
Methoden wie die Fibonacci- oder Spiral- Verteilungen bieten minimale Abweichungen, empfehlen sich daher für die Orientierungsgenerierung und bilden eine angemessene Repräsentation der Erreichbarkeit des Vektors $^{0}p_{Endeff}$. Sie gehören zu den von Mikhal et al. angewendeten Methoden zur Arbeitsraumanalyse eines robotischen Systems \cite{Makhal.2018}. Deserno stellt in seiner Arbeit zur verteilungsbasierten sphärischen Diskretisierung eine Methode der gleichmäßigen Verteilung, welche bisher nicht zum Zweck der Roboterplatzierung genutzt wurde, vor. Seine Abweichung beläuft sich auf ... und wird daher in dieser wissenschaftlichen Arbeit verwendet \cite{Deserno.2004}.
\section{Invertierte Arbeitsräume}
Ziel dieses Abschnitts ist die Illustrierung des grundlegenden Ansatzes, dessen sich hinsichtlich der Eruierung der optimalen Position robotischer Systeme bedient wird. Dies beinhaltet die Anwendung der in den Grundlagen aufgeführten kinematischen Sachverhalte, sowie der Voraussetzung einer vorhandenen Transformation $t$ des zu betrachtenden Objektes ....
Ziel dieses Abschnitts ist die Illustrierung des grundlegenden Ansatzes, dessen sich hinsichtlich der Eruierung optimaler Positionen hinsichtlich der Platzierung robotischer Systeme bedient wird. Dies beinhaltet die Anwendung der in den Grundlagen aufgeführten kinematischen Sachverhalte, sowie der Voraussetzung einer vorhandenen Transformation $t$ des zu betrachtenden Objektes ....
\begin{equation}
t = ^{0}T_{Endeff}
...
...
@@ -136,7 +128,7 @@ Eine persistierte 'reachability map' beinhaltet eine Liste aller Vektoren $p \in
^{0}T_{Endeff} = ^{0}T_{1}\times^{1}T_{2}\times ... ^{n-1}T_{n} (n.. Anzahl der Festkörper des robotischen Systems)
\end{equation}
Die Roboterposition kann der Transformation des ersten Festkörpers $^{0}T_{Base}$ eines robotischen Systems entnommen werden, wie die Umformungen in ... sukzessiv zeigen. Die Transformation von $Frame_{0}$ zu $Frame_{1}= Frame_{Base}$ ist hierbei 1, da der Roboter in dieser Betrachtung keine erhöhte Position durch Beispielsweise einem Standfuß besitzt. In diesem Fall erfolgt eine Berechnung zur Positionierung des Standfußes samt Roboter.
Die Roboterbasis kann der Pose des ersten Festkörpers in Form der Transformation $^{0}T_{Base}$ eines robotischen Systems entnommen werden, wie die Umformungen in ... sukzessiv zeigen. Die Transformation von $Frame_{0}$ zu $Frame_{1}= Frame_{Base}$ ist hierbei 1, da der Roboter in dieser Betrachtung keine Erhöhung durch beispielsweise einem Standfuß besitzt, sondern seine Basis $^{0}T_{Base}$ auf dem $Frame_{0}$ liegt. In diesem Fall erfolgt eine Berechnung zur Positionierung des Standfußes samt Roboter.
\begin{align*}
^{0}T_{Base}&= t \times^{0}T_{Endeff} () \\
...
...
@@ -147,21 +139,60 @@ Die Roboterposition kann der Transformation des ersten Festkörpers $^{0}T_{Base
^{0}T_{Base}&= ^{0}T_{Base} ()
\end{align*}
Die Metrik aus ... wird dabei bei den inversen Transformationen $^{Endeffektor}T_{basis}$übernommen
Die Metrik aus ... wird dabei bei den inversen Transformationen $^{Endeffektor}T_{basis}$portiert und in eine JSON Datei persistiert, dessen Struktur die \autoref{fig:IRM} zeigt.
und persistiert. Das Ergebnis dieses Teilprogramms kann nun bei Formeln der Form ... Angewendet werden, um die Roboter Positionierung hinsichtlich der Definition einer spezifischen Aufgabe zu errechnen.
Die resultierende
\begin{figure}[h!]
\begin{lstlisting}[language=json,firstnumber=1]
{"name": "IRM_\$(maxdistance)_\$(resolution)"
"resolution": float,
"max_distance": float,
"pose": [ "x y z q_x q_y q_z q_w"],
"value": [float]
}
\end{lstlisting}
\caption{Bis auf die Felder 'pose' und 'value' werden alle Informationen aus der reachability map übernommen. In 'value' werden alle kalkulierten Werte der Metrik persistiert, während 'pose' alle invertierten Endeffektor Posen enthält}\label{fig:IRM}
\end{figure}
\section{Definition spezifischer Aufgaben}
Aufgaben, wie das Greifen und zusätzliche Abstellen eines Objektes gehören zur Aufgabengruppe 'Pick and Place', während das Ausführen einer Trattorie eine weiter Aufgabengruppe darstellt, bei der ein spezielles Manöver durch den Endeffektor verfolgt werden soll. Das MoveIt Interface stellt hierzu besondere Nachrichten zur Verfügung, dessen Inhalt unter anderem die Greif- bzw. Abstellpositionen sind, welche dem Roboter kommuniziert werden. Die bisherige Erstellung dieser Nachrichten sieht vor, alle Aufgabenspezifischen Positionen manuell in den Quelltext zu schreiben. Der in diesem Absatz illustrierte Ansatz zur Erstellung Benutzerdefinierten Aufgaben ersetzt diesen weniger intuitiven Prozess durch den Einsatz interaktiver Marker, mit einer zusätzlichen Erweiterung, um eine Aufgabe für mehrere robotische Systeme zu modellieren. Marker sind Werkzeuge, die in Form von Nachrichten von Visualisierungsprogrammen gerendert werden können um Informationen aus dem Quelltext zu veranschaulichen. Diese Informationen können Vektoren, Posen, Linien oder 3 dimensionalle Objekte sein und durch farbliche Modifikationen unterschiedliche Sachverhalte anzeigen. Interaktive Marker erweitern unspezifische Marker um die Möglichkeit der 3-dimensionalen Verschiebung durch den Nutzer. Über die Implementierung eines zusätzlichen Menüs können Aufgabenketten erzeugt werden, die Beispielsweise von mehreren Roboterarmen sequentiell bearbeitet werden sollen.
Das Konzept zur Planung und Erstellung spezifischer Aufgaben, sowie deren Realisierung innerhalb einer Szene und Visualisierung in Rviz ist Inhalt dieses Abschnittes. Dabei besteht eine Szene aus Kollisionsobjekten, welche Hindernisse oder Primitive darstellen, die das robotische System umgehen oder mit denen es Interagieren muss. Die Planung und Ausführung einer Aufgaben erfolgt über spezifische Nachrichten des MoveGroup Interface, welche dem Roboter die auszuführende Operation detailliert kommunizieren, Primitive in der Szene spezifizieren und Posen festgelegt, die vor und nach der Handlung angenommen werden soll.
Aktuell bietet MoveIt die Möglichkeit, beliebig Kollisionsobjekte in der Szene zu generieren und persistieren, aber keinen Algorithmus zur Aufgabenbeschreibung, welcher die Reihenfolge konkretisiert, in der die Kommunikation mit den robotischen Systemen stattfindet. Diese fehlende Funktion wird mittels eines Algorithmus ergänzt, der Interaktionen, wie beispielsweise die Translation und Rotation eines Kollisionsobjektes, durch den Nutzer und der grafischen Bedienoberfläche realisiert und anhand zusätzliche Optionen die Dokumentation von Aufgaben ermöglicht. Dabei empfehlen sich Interaktive Marker durch ihren Funktionsumfang zur Repräsentation der Kollisionsobjekte, und bieten weitere Optionen zur Aufgabenbeschreibung in ihren Menüs.
Eine valide Aufgabenbeschreibung kann in JSON Dateien persistiert werden, dessen Struktur in \autoref{fig:TASK} veranschaulicht und zur Durchführung der Aufgabe durch robotische Systeme bedingt ist.
\begin{figure}[h!]
\begin{lstlisting}[language=json,firstnumber=1]
{"name": "TASK_"
"position": [ "x y z q_x q_y q_z q_w"],
"starts": [int],
"mode": "split" | "coop"
}
\end{lstlisting}
\caption{Der Nutzer hat die Möglichkeit, seine Aufgabe zu benennen. Das Feld 'position' ist eine Liste aller Aufgaben-Posen, während 'starts' die Indexe enthält, an denen das jeweilige robotische System die Iteration der Kette beginnt. Das 'mode' Feld dokumentiert den Aufgabentyp.}\label{fig:TASK}
\end{figure}
\subsection{Operationsketten}
Aufgaben, wie das sequentielle Greifen und Abstellen eines Objektes gehören zur Aufgabengruppe 'Pick and Place', welche in dieser Arbeit hauptsächlich untersucht werden. Diese Aufgaben werden mittels der Positionen konkretisiert, an denen eine Operation erfolgt. Diese sukzessiv zu operierende Menge an Positionen bildet eine Operationskette $K$, dessen Kettenglieder von robotischen Systemen abwechselnd iteriert werden. Die Menge aller Aufgaben, die Operationsketten abbilden, unterliegen der Partitionierung von $K$. So kann eine Kette bestehend aus $k \in\N_{>1}$ Partitionen von $k$ Robotern abstrahiert voneinander oder kooperativ operiert werden.
\subsubsection{Gespaltene Operationskette}
Gespaltene Operationsketten 'splits' partitionieren $K$ in $i \in\N_{>0}$ disjunkte Teilketten $TK \subset K $, welche $i$ Roboter isoliert voneinander operieren. Realisiert wird dieser Kettentyp durch die Angabe des 'split' Parameters im Interaktive Marker Menü.
\subsection{Pick and Place}
Die Greifnachrichten beziehungsweise Abstellnachricht einer 'Pick and Place' Aufgabe kann als wohlgeordnete Menge aller Transformationen $t =^{0}T_{Endeff}$ und ihrer Index $i \in\N$ betrachtet werden, die bezüglich des Endeffektors erreicht werden müssen und deren Indexe bezüglich der Position in der Kette aufsteigend geordnet sind. Das erste Glied einer Aufgabenkette definiert die Greifposition.
\subsubsection{Kooperative Operationskette}
Kooperative Ketten 'coops' partitionieren $K$ in $i$ Teilketten $TK_{i-1}, TK_{i}\subset K $, deren Schnittmenge das jeweils letzte und erste Glied von $TK_{i-1}$ beziehungsweise $TK_{i}$ ist. Diese Einteilung impliziert, dass die Position innerhalb der Abstellnachricht des Vorgängerroboters ebenfalls Inhalt der Greifnachricht des Roboters $i$ ist.
\subsection{Trajectory}
In dieser Aufgabengruppe bilden alle Positionen, die durch den Endeffektor erreicht werden sollen, eine 3-dimensionale Kurve. Algorithmen, die eine Kurveimplementieren, wie Beispielsweise die Bezierkurve, können für diesen Aufgabentyp genutzt werden, indem Kontrollpunkte per Interaktiven Marker gesetzt werden. Durch diesen Prozess entstehen wohlgeordnete Mengen aus $t =^{0}T_{Endeff}$ Transformationen die in Form von Aufgabenketten von mehreren Robotern bearbeitet werden können.
In dieser Aufgabengruppe bilden alle Positionen, die durch den Endeffektor erreicht werden sollen, eine 3-dimensionale Kurve. Kurvenimplementieren, wie Beispielsweise die Bezierkurve, können für diese Aufgaben genutzt werden, indem Interaktive Marker die Kontrollpunkte der Kurve realisieren. Durch diesen Prozess entstehen wohlgeordnete Mengen aus $t =^{0}T_{Endeff}$ Transformationen die ähnlich der Operationsketten von mehreren Robotern bearbeitet werden können.
\section{Base Placement}
Dieser finale Abschnitt stellt eine Akkumulation der vorherigen Abschnitte dar, indem die persistierten Resultate aus der Aufgabendefinition und die Berechnungen bezüglich des invertierten Arbeitsraums miteinander vernetzt werden. Die sukzessive Multiplikation der Aufgabenketten aus ... und inversed reachability map nach dem Erarbeiteten Rechenschema ... , generiert eine Menge an $^{0}T_{Base}$ zuzüglich der Metrik.... Welche die Erreichbarkeit der Aufgabenposition $^{0}t_{Base}\in^{0}T_{Base}$ repräsentiert. Die $^{0}t_{Base}$ Positionen bilden große Ansammlungen, die sich ringförmig um die Aufgabenposition legen. Um diese Datenmenge zu analysieren, empfiehlt sich die räumliche Partitionierung. Aktuelle Wissenschaftliche arbeiten, verfolgen den Ansatz, alle Positionen $^{0}t_{Base}$ als einzige Wolke zu betrachten. Zu diesem Zweck wird eine Metrik eingeführt, deren Bewertung auf der Anzahl $n \in\N$$t$ basiert, die sich in einem Voxel befinden. Nachteil dieser Metrik ist, dass Position $t$ nicht differenziert voneinander betrachtet werden können. Dies macht das Eruieren einer Aufgabenkette mit festem Startpunkt nahezu unmöglich. Ein weiterer Nachteil ergibt sich implizit aus der Metrik, denn diese Bewertet ein Voxel, ohne dessen Inhalt zu gewichten, dies hat hat zur Folge, dass dieses Verfahren Punkte als Roboterposition ausrechnet, welche einen Aufgabenpunkt gut erreichen, während andere Voxel möglicherweise eine bessere Verteilung der Punkte aufweisen.
Basierend auf diesen Beobachtungen ist eine abstrahierende Betrachtung hinsichtlich der Kettenstruktur der Aufgaben zielführender.
Dies hat hat den Vorteil, ein Voxel nach dem Aufgabenindex zu untersuchen und gewichten. Aus der Resultierenden Liste kann über ein Voxel errechnet werden, welche Ziele er erreicht und ob er vom 1. Glied startet. Diese Erlaubt zusätzlich das Zusammensetzen eigener Ketten, falls die Abstellnachrichten Positionen enthalten, die die Anforderungen eines robotischen Systems übertreffen. In jedem Fall ist die Schnittmenge der Wolken zu ermittelt, welche sich aus den Voxeln mit den unterschiedlichsten Indexen und dessen Metrik ergibt.
\section{Positionsanalyse}
Aus den persistierten Informationen der Arbeitsraumanalyse, dem Ansatz der invertierten Arbeitsräume und dessen Vereinigung mit den Aufgabenbeschreibungen resultiert die Menge der Basispositionen $P_{Base}$ kombiniert mit der Metrik D für jeden Vektor $^{0}p_{Base}\in^{0}P_{Base}$.
Der beschriebene Algorithmus zur Ermittlung der optimalen Position sieht vor, anhand der Voxelisierung einen Index für jeden Voxel zu kalkulieren und daraus Rückschlüsse bezüglich der Positionierung robotischer Systeme zu ziehen. Nachteil dieses Vorgangs ist die Intransparenz der Menge $P_{Base}$ bezüglich der Vektor $^{0}p_{Base}$, dessen Herkunft hinsichtlich der Aufgabenbeschreibung nicht ersichtlich ist. Daraus ist abzuleiten, dass die Partitionierung der Operationskette keinen Einfluss auf den Algorithmus hat, wodurch dessen Eignung für die Anwendung bezüglich mehrerer robotischer Systeme entfällt. Ein weiterer Nachteil ergibt sich implizit aus dem Index, denn diese Bewertet eine Box, ohne dessen Inhalt bezüglich der Aufgabenbeschreibung zu gewichten. So werden beispielsweise Boxen mit hoher Kardinalität besser für die Aufgabe gewichtet, obwohl dessen Inhalt bezüglich spezifischer Aufgabenpositionen mangelhaft ist. Basierend auf diesen Beobachtungen ist eine abstrahierende Betrachtung hinsichtlich der Kettenstruktur innerhalb der Aufgabenbeschreibung zielführender.
\subsection{differenzierte Voxelisierung}
Der in diesem Abschnitt dokumentierte Algorithmus stellt einen optimierten Ansatz zur Positionierung robotischer Systeme dar, indem die Operationsketten bezüglich einer Aufgabenbeschreibung in den Prozess integriert werden. Während der differenzierten Voxelisierung wird jedes Kettenglied $^{0}k \in K$ einzeln betrachtet und die Metrik $D_{Reach_{i}}^{average}(Box)$ pro Box und Kettenlied kalkuliert. Dieser Vorgang bietet den Vorteil, die Boxen separat anhand der Teilketten $TK \subset K $ zu betrachten und durch dieser Zuteilung jede Teilkette einem robotischen System zuzuteilen. Für jede Box lässt sich so ein Index ermitteln, der den Ursprung der Vektoren $^{0}p_{Base}\in^{0}P_{Base}$ berücksichtigt und gleichermaßen nach dessen Inhalt bewertet.
\chapter{Der letzte Stand der Technik \/ state of the art}\label{ch:sota}
Die effiziente Platzierung robotischer Systeme ist ein fundamentaler Bestandteil zur Schaffung kollaborative Multi-Roboter Arbeitsräume. Zu diesem Zweck ist die Auseinandersetzung mit bestehenden wissenschaftlichen Arbeiten erforderlich, um einen umfassenden Kenntnisstand bezüglich deren angewandter Methodik zu erlangen und anschließend zur konzeptuellen Ausarbeitung und Implementierung zu nutzen.
\section{Programmablauf}
Basierend auf der umfassenden Recherche zahlreicher wissenschaftlicher Publikationen, ist die Ermittlung einer optimalen Roboterposition ein sukzessiver Prozess, dessen Unterteilung anhand von Etappen, welche in der Abbildung dargestellt sind.
\chapter{Erkenntnisse zur Platzierung robotischer Systeme}\label{ch:sota}
Zur Schaffung kollaborative Multi-Roboter Arbeitsräume ist die Platzierung robotischer Systeme ein fundamentaler Bestandteil. Die Einhaltung der physikalischen Beschränkungen bezüglich genutzter Roboter ist hierbei unerlässlich, um hinsichtlich ihrer Aufgabe und Platzierung ein zufriedenstellendes Ergebnis zu erzielen. Einen Ansatz zur Erfassung dieser robotischer Grenzen konkretisieren Zacharias et al. in ihrer wissenschaftlichen Arbeit und kombiniert diesen in folgenden Publikationen mit zusätzlichen Aspekten der Kinematik. Infolge dieser Ausführungen wird ein Algorithmus erörtert, der mittels Komposition der Komponenten 'Arbeitsraumanalyse', 'Arbeitsrauminvertierung' und 'Positionsanalyse' sukzessiv die Position eines Roboters hinsichtlich seiner Grenzen bestimmt. Inhalt dieses Kapitels ist die Auseinandersetzung mit angewandten Methodiken der genannten Komponenten, um daraus gewonnene Erkenntnisse in der konzeptuellen Ausarbeitung und Implementierung zu nutzen. \autoref{fig:Algo} zeigt die Reihenfolge der Komponenten im Algorithmus und stellt den Aufbau dieses Kapitels dar.
\begin{figure}[h!]
\centering
...
...
@@ -11,9 +8,16 @@ Basierend auf der umfassenden Recherche zahlreicher wissenschaftlicher Publikati
\node[rounded corners, draw=black, thick, minimum height=3em, align=center, on chain, join=by {->}, right = of RM] (IRM) {invertierter\\Arbeitsraum};
\node[rounded corners, draw=black, thick, minimum height=3em, align=center, on chain, join=by {->}, right = of IRM] (Base) {Analyse der\\Positionen};
\end{tikzpicture}
\caption{Aufteilung des Programmablaufs in 3 Teilprogramme, die gesondert voneinander betrachtet werden.}
\caption{Darstellung des Algorithmus zur sukzessiven Ermittlung einer Roboterposition, basierend auf der umfassenden Recherche zahlreicher wissenschaftlicher Publikationen. Die Kommunikation zwischen den Etappen erfolgt mittels Persistenz der Teilergebnisse.
}\label{fig:Algo}
\end{figure}
\section{Arbeitsraumanalyse}
Vahrenkamp et al. beschreiben in ihrer Publikation die Analyse des Arbeitsraums eines robotischen Systems als Ausgangspunkt zur Berechnung dessen optimaler Positionierung hinsichtlich einer zuvor definierten Aufgabe \cite{Vahrenkamp.5620135102013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit Ansätze, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen auf eine feste Menge generierter Endeffektor-Posen in Form von Transformationen $^{0}T_{Endeff}\in SE(3)$ relativ zum $Frame_{0}$, das unmittelbare Umfeld des Roboters zu erfassen und Anhand einer Metrik zu charakterisieren. Anschließend werden die resultierenden $^{0}T_{Endeff}$ zuzüglich der Metrik als Information über dessen Erreichbarkeit persistiert und bilden die 'reachability map'.
\subsection{Arbeitsraumerfassung}
Das Paar aus einem Vektor $^{0}v \in\R^{3}$ und einer Rotation $^{0}R \in SO(3)$ bildet die Transformation $(^{0}v_{Endeff}, ^{0}R_{Endeff})\in^{0}T_{Endeff}$ des Endeffektors. Daraus ist abzuleiten, dass die Zusammenstellung einer Menge $^{0}P_{total}$ aus $^{0}v$ und die Generierung dessen zugehöriger Rotationen $^{0}R$, welche die Menge aller Orientierungen $OR_{total}$ definiert, abstrahiert in der Arbeitsraumerfassung betrachtet werden können. Das Kreuzprodukt dieser Mengen beschreibt alle Transformationen $^{0}T_{Endeff}$ als Grundlage anschließender kinematischer Berechnungen. \autoref{fig:totals} visualisiert diese Mengen.
\begin{figure}[h!]
\centering
\begin{tikzpicture} [>=stealth']
...
...
@@ -34,33 +38,52 @@ Basierend auf der umfassenden Recherche zahlreicher wissenschaftlicher Publikati
\draw[->] (origin) -- (pz);
\end{tikzpicture}
\caption{Aufteilung des Programmablaufs in 3 Teilprogramme, die gesondert voneinander betrachtet werden.}
\caption{Abstrahierte Darstellung der Mengen ... und ... und deren resultierende Transformation ... in ....}\label{fig:totals}
\end{figure}
\section{Arbeitsraumanalyse}
Vahrenkamp et al. beschreiben in ihrer Publikation die Analyse des Arbeitsraums eines robotischen Systems als Ausgangspunkt zur Berechnung dessen optimaler Positionierung hinsichtlich einer zuvor definierten Aufgabe \cite{Vahrenkamp.5620135102013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit Ansätze, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen auf eine feste Menge generierter Endeffektor-Posen in Form von Transformationen $^{0}T_{Endeff}\in SE(3)$ relativ zum $Frame_{0}$, das unmittelbare Umfeld des Roboters zu erfassen und anschließend Anhand einer Metrik zu charakterisieren. Anschließend werden die resultierenden $^{0}T_{Endeff}$ zuzüglich der Metrik als Information über dessen Erreichbarkeit persistiert und bilden die 'reachability map'.
\subsection{Arbeitsraumerfassung}
Das Paar aus einem Vektor $^{0}v \in\R^{3}$ und einer Rotation $^{0}R \in SO(3)$ bildet die Transformation $(^{0}v_{Endeff}, ^{0}R_{Endeff})\in^{0}T_{Endeff}$ des Endeffektors. Dies teilt diese Betrachtung in die Zusammenstellung einer Menge $^{0}P_{total}$ aus $^{0}v$ und der Generierung dessen zugehöriger Rotationen $^{0}R$, welche die Menge aller Orientierungen $OR_{total}$ definiert. Das Kreuzprodukt dieser Mengen beschreibt alle Transformationen $^{0}T_{Endeff}$ als Grundlage anschließender kinematischer Berechnungen.
\subsubsection{Menge aller Positionen}
Dieser Abschnitt erläutert Methodiken zur Population der Menge $^{0}P_{total}$ aller Positionen. Die Wahl der Vektoren $^{0}v \in^{0}P_{total}$ erfordert das bestimmen eines Intervalls $[-q,q] : q \in\R$, welches den tatsächlichen Arbeitsraum des robotischen Systems überschätzt. Anschließend erfolgt ein Verfahren zur Generierung der Elemente $^{0}x, ^{0}y, ^{0}z \in[-q,q]$, die den Vektor $^{0}v$ definieren.
\subsubsection{Positionen durch Zufallsverfahren}
Dieses Verfahren bestimmt die Verteilung der Vektoren $^{0}v$, welche keiner räumlichen oder anderweitigen Abhängigkeit, mit Ausnahme des festen Intervalls $[-q,q]$, unterliegen.
\subsubsection{Positionen durch kubische Diskretisierung}
Die kubische Diskretisierung des Arbeitsraums robotischer Systeme stellt ein Verfahren zur Bestimmung der Vektoren $^{0}v$ dar, welche durch Angabe einer festen 'Auflösung' $ a \in\R$ das Umfeld des Roboters in ein reguläres Gitter der Grenzen $[-q,q]$ unterteilt. Der daraus resultierende diskretisierte Würfel stellt eine gleichmäßige Verteilung der Vektoren $^{0}v$ dar. Die Ermittlung der Kardinalität $\vert^{0}P_{total}\vert$ ist implizit durch das Intervall $[-q,q]$ und der Auflösung $a$ gegeben.
Die kubische Diskretisierung des Arbeitsraums robotischer Systeme stellt ein Verfahren zur Bestimmung der Vektoren $^{0}v$ dar, welche durch Angabe einer festen 'Auflösung' $ a \in\R_{+}$ das Umfeld des Roboters in ein reguläres Gitter der Grenzen $[-q,q]$ unterteilt. Der daraus resultierende diskretisierte Würfel stellt eine gleichmäßige Verteilung der Vektoren $^{0}v$mit Abstand $a$ im Intervall $[-q,q]$dar. Die Ermittlung der Kardinalität $\vert^{0}P_{total}\vert$ ist implizit durch das Intervall $[-q,q]$ und der Auflösung $a$ gegeben.
Die Menge $^{0}OR_{total}$ beschreibt alle möglichen Orientierungen, die für jeden Vektor generiert und operiert werden. Ein grundlegendes Verfahren hierzu ist die sphärische Diskretisierung, welche die Approximation einer Sphäre durch Vektoren $^{0}s \in\R^{3}$ um ein Zentrum $^{0}p \in\R^{3}$ mit festem Abstand $r \in\R$, beschreibt. Ziel dieses Prozesses ist die Entwicklung aller Orientierungen für $^{0}p$ aus den sphärischen Polarkoordinaten, die $^{0}s \in S$ auf der erzeugten Sphäre definieren. Hierzu beschreiben Azimut $\theta\in[\,0,2\pi\,)$ und Colatitude $\phi\in[\,0,\pi\,]$ den Winkel auf der XY Ebene des kartesischen Koordinatensystems bzw. den Winkel zwischen Z Achse und $\overline{sp}$\cite{SphericalCoordinates}. Bezogen auf die Orientierung eines Körpers, können diese Winkel als Yaw und Pitch interpretiert werden. Ein weiterer Winkel, der den Roll des Endeffektors beschreibt, vervollständigt $OR_{total}$.
Die Kardinalität $\vert^{0}OR_{total}\vert$ ist durch die Menge aller sphärischen Vektoren $^{0}s \in S$ und der Winkel $Roll$ bestimmt.
Die Menge $^{0}OR_{total}$ beschreibt alle möglichen Orientierungen, die für jeden Vektor generiert und operiert werden. Ein grundlegendes Verfahren hierzu ist die sphärische Diskretisierung, welche die Approximation einer Sphäre durch Vektoren $^{0}s \in\R^{3}$ um ein Zentrum $^{0}p \in\R^{3}$ mit festem Abstand $r \in\R$, beschreibt. Ziel dieses Prozesses ist die Entwicklung aller Orientierungen für $^{0}p$ aus den sphärischen Polarkoordinaten, die $^{0}s \in S$ auf der erzeugten Sphäre definieren. Hierzu beschreiben Azimut $\theta\in[\,0,2\pi\,)$ und Colatitude $\phi\in[\,0,\pi\,]$ den Winkel auf der XY Ebene des kartesischen Koordinatensystems bzw. den Winkel zwischen Z Achse und $\overline{sp}$\cite{SphericalCoordinates}. \autoref{fig:pollar} veranschaulicht das zugrundeliegende Konzept der sphärischen Polarkoordinaten im kartesischen Koordinatensystem als Referenz. Bezogen auf die Orientierung eines Körpers, können die Polarwinkel als Yaw und Pitch eines Objektes interpretiert werden, welche durch den zusätzlichen Roll Winkel $Roll \in[\,0,2\pi\,)$ die Rotation des Endeffektors und somit die Menge $OR_{total}$ komplettieren. Die Kardinalität $\vert^{0}OR_{total}\vert$ ist durch die Menge aller sphärischen Vektoren $^{0}s \in S$ und zusätzlicher Betrachtung der $Roll$ Winkel bestimmt.
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\def\r{3}
\node[circle, fill, inner sep=1 , label=left:${p}$] at (0,0) (origin) {};
\node[inner sep=0.7, label=left:${ps}$] at (\r/3,\r/2) (s) {};
Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ basierend auf festen 'Auflösungen' $^{0}p, ^{0}q \in\R$ generiert ein sphärisches Gitter, indem die sphärischen Vektoren $^{0}s$ nicht äquidistant und demzufolge ungleichmäßig Verteilt sind. Die Kardinalität $\vert S \vert$ ist anhand der gewählten Auflösungen $^{0}p, ^{0}q$ und der Winkelintervalle berechenbar.
Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ basierend auf festen 'Auflösungen' $^{0}p, ^{0}q \in\R_{+}$ generiert ein sphärisches Gitter, indem die sphärischen Vektoren $^{0}s$ nicht äquidistant und demzufolge ungleichmäßig Verteilt sind. Die Kardinalität $\vert S \vert$ ist anhand der gewählten Auflösungen $^{0}p, ^{0}q$ und der Winkelintervalle berechenbar.
\begin{equation}
\vert S \vert = \frac{2 \times\pi}{p}\times\frac{\pi}{q}
Dieses Teilprogramm beschreibt den Prozess der Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$ und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierenden Transformationen $^{Endeff}T_{0}$ mit den zugehörigen Metriken werden als Tupel persistiert.
Der invertierte Arbeitsraum beschreibt nach Zacharias et al. alle Posen relativ zum Endeffektor, von denen aus das robotische System den Koordinatenursprung des $Frame_{0}$ erreicht. Dazu beschreibt dieser Prozess die Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$der Arbeitsraumanalyse und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierenden Transformationen $^{Endeff}T_{0}$ mit den zugehörigen Metriken werden als Tupel persistiert.
\begin{align*}
(^{0}T_{Endeff})^{-1} = ^{Endeff}T_{0} ()
\end{align*}
\section{Analyse der Positionen}
Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basis Positionen $^{0}p_{Base}\in^{0}T_{Base}$ eines robotischen Systems, welche sich aus der Multiplikation mit dem invertierten Arbeitsraum und einer Pose der spezifischen Aufgabe ergeben. Die Metrik wird dabei auf die $^{0}p_{Base}$ portiert und beschreibt die Zuverlässigkeit dieser Position. Komplexe Aufgaben mit einer Anzahl $n \in\N : n > 2$Vektoren $^{0}a$, welche der Roboter erreichen muss, skalieren die Menge aller Basis Vektoren $P_{Base}$. Dabei ist die Verteilung der Vektoren $^{0}p_{Base}$ unregelmäßig, beispielsweise gruppieren sie Aufeinander oder vernachlässigbar voneinander distanziert. Eine Methode, innerhalb dieser enormen Datenmenge eine optimale Position zu errechnen, ist die Voxelisierung. Dieses Verfahren, ähnlich der kubischen Diskretisierung, erzeugt einen Hyperwürfel innerhalb eines festen Intervalls $[-q, q]\in\R$, welcher aus disjunkten Boxen besteht, dessen Zentren jeweils um eine Auflösung $u \in\R_{+}$ distanziert sind. Jede Box enthält eine Menge $^{0}p_{Base}$, die distinkt voneinander betrachtet werden kann.
Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basis Positionen $^{0}p_{Base}\in^{0}T_{Base}$ eines robotischen Systems, welche sich aus der Multiplikation mit dem invertierten Arbeitsraum und einer Pose der spezifischen Aufgabe ergeben. Die Metrik wird dabei auf die $^{0}p_{Base}$ portiert und beschreibt die Zuverlässigkeit dieser Position. Komplexe Aufgaben mit einer Anzahl $n \in\N : n > 2$Posen $^{0}a$, welche der Roboter erreichen muss, skalieren die Menge aller Basis Vektoren $P_{Base}$. Dabei ist die Verteilung der Vektoren $^{0}p_{Base}$ unregelmäßig, beispielsweise gruppieren diese Aufeinander oder sind vernachlässigbar voneinander distanziert. Eine Methode, innerhalb dieser enormen Datenmenge eine optimale Position zu errechnen, ist die Voxelisierung. Dieses Verfahren, ähnlich der kubischen Diskretisierung, erzeugt einen Hyperwürfel innerhalb eines festen Intervalls $[-q, q]\in\R$, welcher aus disjunkten Boxen besteht, dessen Zentren jeweils um eine Auflösung $u \in\R_{+}$ distanziert sind. Jede Box enthält eine Menge $^{0}p_{Base}$, die distinkt voneinander betrachtet werden kann.
\subsection{Box-Index}
Die Bestimmung der Box, dessen Vektoren $^{0}p_{Base}$ sich bevorzugt für die Platzierung des robotischen Systems eigenen, erfolgt in Reulaux durch einen Box-Index, der sich aus dem arithmetischen Mittel der Metriken $D_{Reach}^{average}(Box)$ aller enthaltenen Vektoren und der Anzahl dieser bestimmt. Zuvor erfolgt eine Iteration über jede Box, dessen Ziel es ist, die maximale Box zu finden. Die Gegenüberstellung der Kardinalitäten und Metriken bestimmt den Box-Index, der die Wertigkeit einer potentiellen Roboterposition nach der Erreichbarkeit bezüglich der Aufgabe und dem Inhalt der jeweiligen Box gewichtet. Demnach erreicht ein robotisches System möglichst viele Ziele, je größer die Box seiner Basis-Position ist.
Die Bestimmung der Box, dessen Vektoren $^{0}p_{Base}$ sich bevorzugt für die Platzierung des robotischen Systems eigenen, erfolgt in Reulaux durch einen Box-Index$I(Box)$, der sich aus dem arithmetischen Mittel der Metriken $D_{Reach}^{average}(Box)$ aller enthaltenen Vektoren und der Anzahl dieser bestimmt. Zuvor erfolgt eine Iteration über jede Box, dessen Ziel es ist, die Box $Box_{max}$ zu bestimmen, die die meisten $^{0}p_{Base}$ beinhaltet. Die Gegenüberstellung der Kardinalitäten und Metriken bestimmt den Box-Index, der die Wertigkeit einer potentiellen Roboterposition nach der Erreichbarkeit bezüglich der Aufgabe und dem Inhalt der jeweiligen Box gewichtet. Demnach lässt eine mächtige Box darauf schließen, dass Posen verschiedener Aufgaben von ihr erreichbar sind. Weiterhin impliziert ein hoher Wert $D_{Reach}^{average}(Box)$ die Validität der enthaltenen Vektoren $^{0}p_{Base}$ in der Box.