diff --git a/lst.tex b/lst.tex index e329da3814c5af3db77af2bf55ef99b268f7ffac..6e45c017566eb893f777307b9847effc9e98ae9f 100644 --- a/lst.tex +++ b/lst.tex @@ -9,8 +9,6 @@ numberstyle=\ttfamily, stepnumber=1, numbersep=5pt, - xleftmargin=2em, - framexleftmargin=2em, showstringspaces=false, breaklines=true, frame=lines, @@ -64,7 +62,14 @@ {\{}{{{\color{delim}{\{}}}}{1} {\}}{{{\color{delim}{\}}}}}{1} {[}{{{\color{delim}{[}}}}{1} - {]}{{{\color{delim}{]}}}}{1}, + {]}{{{\color{delim}{]}}}}{1} + {Ö}{{\"O}}1 + {Ä}{{\"A}}1 + {Ü}{{\"U}}1 + {ß}{{\ss}}1 + {ü}{{\"u}}1 + {ä}{{\"a}}1 + {ö}{{\"o}}1, } \lstdefinelanguage{JRAG}[]{java}{ diff --git a/sections/fallbeispiel.tex b/sections/fallbeispiel.tex index 2c8215a09db6ffca22a8924862d5fc438c67d63a..46b93d94159f34a0e356c50210b447763f799233 100644 --- a/sections/fallbeispiel.tex +++ b/sections/fallbeispiel.tex @@ -2,19 +2,19 @@ Inhalt dieses Kapitels ist die Demonstration der Funktionsweise einzelner Elemente der Implementierung und dessen Synergie mit MoveIt spezifischen Komponenten, sowie der Integration des franka\_ros Pakets \cite{franka_ros} anhand eines Beispiels. Dieses Paket stellt hierbei die sowohl grafische, als auch funktionelle Beschreibung der Bestandteile des gleichnamigen robotischen Systems zur Verfügung, welches primär Objekt der Ausführung ist. \section{Ausgangspunkt kinematischer Operationen} -MoveIt bietet über das MoveGroup Interface eine Schnittstelle, welche die Kommunikation mittels spezieller Nachrichten und somit die Planung und Exekution kinematischer Operationen durch den Roboter ermöglicht. Dies bedingt eine Konfigurationsdatei, 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. Die Konfigurationsdatei stellt dadurch den Ausgangspunkt aller operativen Aspekte des Fallbeispiels dar und ist daher sowohl für einen Roboter, als auch für mehrere robotische Systeme in der Implementierung enthalten. Diese Konfigurationen können mittels moveit setup assistent 'MSA' generiert werden. +MoveIt bietet über die move\_group Schnittstelle eine Möglichkeit die Kommunikation mittels spezieller Nachrichten und somit der Planung und Exekution kinematischer Operationen durch den Roboter. Dies bedingt eine Konfigurationsdatei, 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 oder weitere Nodes initialisiert werden. Die Konfigurationsdatei stellt dadurch den Ausgangspunkt aller operativen Aspekte des Fallbeispiels dar und ist daher sowohl für einen Roboter, als auch für mehrere robotische Systeme in der Implementierung enthalten. Diese Konfigurationen wurden mittels MSA generiert. \subsection{Modifikationen in der Beschreibung robotischer Systeme} -Das MoveGroup Interface bietet keine Möglichkeit zur Deklaration einer Roboterposition, da diese die Roboterbeschreibung festgelegt, welche Referenz der spezifischen Konfigurationsdatei ist. Dies impliziert die Notwendigkeit eine Modifikation, indem geforderte Positionen in Form von Variablen sukzessiv innerhalb der Instanzen einer Konfigurationsdatei bis zur letzten Instanz, der Roboterbeschreibung, kommuniziert werden. Hier UML wäre nice +Die move\_group Schnittstelle bietet keine Möglichkeit zur Deklaration einer Roboterposition, da diese durch die Roboterbeschreibung festgelegt ist, welche Referenz der spezifischen Konfigurationsdatei ist. Dies impliziert die Notwendigkeit eine Modifikation, indem geforderte Positionen in Form von Variablen sukzessiv innerhalb der Instanzen einer Konfigurationsdatei bis zur letzten Instanz, der Roboterbeschreibung, kommuniziert werden. \section{Präparation des Fallbeispiels} -Die Kalkulation valider Positionen für robotische Systeme erfordert die Roboter zentrierte Inspektion des Arbeitsraums und eine Aufgabenbeschreibung, welche für $i \in \N_{>0}$ Endsysteme mindestens $i$ Operationsketten aufweist. Die diesbezüglich vorzunehmende Arbeitsraumanalyse und dessen Inversion ist aufgaben unabhängig, erfolgt daher a priori und kann auf alle Aufgabenbeschreibung angewendet werden, die vom Ausgangssystem der Analyse, wie Beispielsweise dem 'Panda' der Franka Emika GmbH, operiert werden sollen. Die Aufgabenbeschreibung kann zum Ermittlungszeitpunkt vorgenommen werden oder schon persistiert vorliegen. +Die Kalkulation valider Positionen für robotische Systeme erfordert die Roboter zentrierte Inspektion des Arbeitsraums und eine Aufgabenbeschreibung, welche für $i \in \N_{>0}$ Endsysteme mindestens $i$ Operationsketten aufweist. Die diesbezüglich vorzunehmende Arbeitsraumanalyse und dessen Inversion ist Aufgaben-Unabhängig, erfolgt daher a priori und kann auf alle Aufgabenbeschreibung angewendet werden, die vom Ausgangssystem der Analyse, wie Beispielsweise dem 'Panda' der Franka Emika GmbH, operiert werden sollen. Die Aufgabenbeschreibung kann zum Ermittlungszeitpunkt vorgenommen werden oder schon persistiert vorliegen. \subsection{Aufgabenkonstruktion} -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 'Support\_Surface', welche dem robotischen System über das MoveGroup Interface kommuniziert und ohne dessen eine Operation nicht exekutiert wird. Dieser redundante Aufwand wird im Algorithmus berücksichtigt und ist implizit durch die Position und Dimension des Kettenglieds definiert. Demzufolge ist beispielsweise eine Differenzierung der zu erzeugenden Kollisionsobjekte, durch Platzierung zusätzlicher Abstelltische, kein Aspekt der Aufgabenbeschreibung. Ausgangspunkt einer Operationskette und dessen Teilketten ist der Startknoten, welcher durch seine Bezeichnung und der Farbe 'grün' gekennzeichnet ist. Es ist stets möglich, einen weiteren Knoten zu generieren, der als weiteres Kettenglied farblich und schriftlich gekennzeichnet ist. Die 'split' Option im Menü des Startknotens dupliziert diesen und ist ab einer Operationskette beziehungsweise Teilkette der Länge zwei möglich. Eine valide Aufgabenbeschreibung ist nur formulierbar und wird persistiert, wenn mindestens zwei Teilketten existieren, da dies die Notwendigkeit zweier robotischer Systeme impliziert. Die Wiederherstellung des Ausgangszustands ist ebenfalls durch einen zusätzlichen Menüpunkt möglich, dies eliminiert alle Glieder bis auf den Startknoten. Anlog dupliziert die 'coop' Option das jeweils letzte Glied der Operationskette beziehungsweise Teilkette und visualisiert diese Schnittmenge ebenfalls schriftlich und farblich. Dies impliziert, dass eine Operationskette aus 'split' und 'coop' Komponenten bestehen kann, was für die Anwendung auf $n \in \N_{>2}$ robotischen Systemen relevant ist. Hier Bilder Mashallah hübsch +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 'Support\_Surface', welche dem robotischen System über das spezifische Nachrichten kommuniziert und ohne dessen eine Operation nicht exekutiert wird. Dieser redundante Aufwand wird im Algorithmus berücksichtigt und ist implizit durch die Position und Dimension des Kettenglieds definiert. Demzufolge ist beispielsweise eine Differenzierung der zu erzeugenden Kollisionsobjekte, durch Platzierung zusätzlicher Abstelltische, kein Aspekt der Aufgabenbeschreibung. Ausgangspunkt einer Operationskette und dessen Teilketten ist der Startknoten, welcher durch seine Identität $id=0$ und der Farbe 'grün' gekennzeichnet ist. Es ist stets möglich, einen weiteren Knoten zu generieren, der als weiteres Kettenglied farblich blau und schriftlich gekennzeichnet ist. Die 'Schnitt' Option im Menü des Startknotens dupliziert diesen und ist ab einer Operationskette beziehungsweise Teilkette der Länge zwei möglich. Eine valide Aufgabenbeschreibung ist nur formulierbar und wird persistiert, wenn mindestens zwei Teilketten existieren die jeweils mindestens zwei Augabenposen enthalten, da dies die Notwendigkeit zweier robotischer Systeme und das Vorhandensein einer Greif und Abstellposition impliziert. Die Wiederherstellung des Ausgangszustands ist ebenfalls durch einen zusätzlichen Menüpunkt möglich, dies eliminiert alle Glieder bis auf den Startknoten. Anlog dupliziert die 'Kooperation' Option das jeweils letzte Glied der Operationskette beziehungsweise Teilkette und visualisiert diese Schnittmenge ebenfalls schriftlich und farblich durch die Farbe rot. Dies impliziert, dass eine Operationskette aus Schnitt- und Kooperationskomponenten bestehen kann, was für die Anwendung auf $n \in \N_{>2}$ robotischen Systemen relevant ist. \section{Positionsanalyse} -Der Algorithmus zur Ermittlung von Positionen robotischer Systeme bezüglich einer Aufgabenbeschreibungen erfordert diese und zusätzlich den invertierten Arbeitsraum namentlich als Parameter. Über diese erfolgt der Zugriff auf die jeweiligen persistenten Dateien und die Berechnung auf Grundlage dessen beginnt. Alle Resultate sind Transparent über das graphische Programm RViz einsehbar, dabei kann der Umfang zu sehender Informationen über Checkboxen reguliert werden. Die Metrik $I(Voxel)(TK)$ aus \autoref{eq:29}, welche differenzierten Voxelisierung kalkuliert, visualisiert die Wertigkeit eines Voxels farblich. Analog zur Menge $P_{Base}$ jedes Kettenglieds und deren Differenzierung in die jeweilige Operationskette beziehungsweise Teilkette ist zusätzlich die Projektion dieser Werte auf die XY Ebene des kartesischen Koordinatensystems eine mögliche visuelle Modalität. Der maximale Index je Teilkette und Voxel ist ebenfalls einsehbar und wird mit zusätzlichen Informationen, wie dem Namen der Aufgabenbeschreibung, persistiert. +Der Algorithmus zur Ermittlung von Positionen robotischer Systeme bezüglich einer Aufgabenbeschreibungen erfordert diese und zusätzlich den invertierten Arbeitsraum namentlich als Parameter. Über diese erfolgt der Zugriff auf die jeweiligen persistenten Dateien und die Berechnung auf Grundlage dessen beginnt. Alle Resultate sind Transparent über das graphische Programm RViz einsehbar, dabei kann der Umfang der visualisierten Informationen über Checkboxen reguliert werden. Die Metrik $D_{Reach}(Voxel)(TK)$ aus \autoref{eq:29}, welche differenzierten Voxelisierung kalkuliert, visualisiert die Wertigkeit eines Voxels farblich. Analog zur Menge $P_{Base}$ jedes Kettenglieds und deren Differenzierung in die jeweilige Operationskette beziehungsweise Teilkette ist zusätzlich die Projektion dieser Werte auf die XY Ebene des kartesischen Koordinatensystems eine mögliche visuelle Modalität. Der maximale Index je Teilkette und Voxel ist ebenfalls einsehbar und wird mit zusätzlichen Informationen, wie dem Namen der Aufgabenbeschreibung, persistiert. \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 diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index 0a4b6d1620340a20812c38b6048b5bd9a2e2896f..0e5c26cac57b93aa11d7fa5d33915f920280c2c8 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -41,14 +41,16 @@ Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper a \label{fig:1} \end{figure} -Die Menge aller Rotations-Matrizen $R \in \R^{3 \times 3}$ bilden mit der Matrixmultiplikation die nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$ \cite[17f.]{Siciliano2016}, dessen Gruppenaxiome in \autoref{fig:2} abgebildet sind. Dies ist die spezielle orthogonale Gruppe $SO(3)$, wobei 1 die Matrix ist, dessen diagonale mit eins belegt ist, während alle anderen Werte null sind. +Die Menge aller Rotations-Matrizen $R \in \R^{3 \times 3}$ bilden mit der Matrixmultiplikation die nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$ \cite[17f.]{Siciliano2016}, dessen Gruppenaxiome in \autoref{eq:SO} formuliert sind. Dies ist die spezielle orthogonale Gruppe $SO(3)$, wobei 1 die Matrix ist, dessen diagonale mit eins belegt ist, während alle anderen Werte null sind. -\begin{align*} \label{fig:2} -&Geschlossenheit: & \forall R_{1},R_{2} \in SO(3): R_{1}R_{2} \in SO(3) \\ -&Identität: & \forall R \in SO(3): 1R = R1 = R\\ -&Inverse: & \forall R \in SO(3): RR^{T}= 1 \\ -&Assoziativität: & \forall R_{1},R_{2},R_{3} \in SO(3): (R_{1}R_{2})R_{3} = R_{1}(R_{2}R_{3}) -\end{align*} +\begin{equation} \label{eq:SO} +\begin{split} +&Geschlossenheit: \forall R_{1},R_{2} \in SO(3): R_{1}R_{2} \in SO(3) \\ +&Identität: \forall R \in SO(3): 1R = R1 = R\\ +&Inverse: \forall R \in SO(3): RR^{T}= 1 \\ +&Assoziativität: \forall R_{1},R_{2},R_{3} \in SO(3): (R_{1}R_{2})R_{3} = R_{1}(R_{2}R_{3}) +\end{split} +\end{equation} Die Komposition von Rotationen verschiedener Frames wird in Gleichung \autoref{eq:2} veranschaulicht. Dabei ist die Einhaltung der Reihenfolge bezüglich der Multiplikation, aufgrund der mangelnden Kommutativität der Gruppe SO(3), erforderlich. Durch dessen Eigenschaft der Geschlossenheit, ist das Resultat dieser Multiplikation ebenfalls $\in SO(3)$ \cite[11f.]{Siciliano2016}. @@ -85,14 +87,16 @@ T &= \begin{pmatrix} \end{pmatrix} \end{equation} -Transformationsmatrizen $T$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$, dessen Gruppenaxiome in \autoref{fig:3} dokumentiert sind, hierbei gilt analog zu \autoref{fig:2} die 1 Matrix $\in \R^{4\times4}$ als das neutrale Element der Gruppe \cite[17f.]{Siciliano2016}. +Transformationsmatrizen $T$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$, dessen Gruppenaxiome in \autoref{eq:SE} dokumentiert sind, hierbei gilt analog zu \autoref{eq:SO} die 1 Matrix $\in \R^{4\times4}$ als das neutrale Element der Gruppe \cite[17f.]{Siciliano2016}. -\begin{align*}\label{fig:3} -&Geschlossenheit: & \forall T_{1},T_{2} \in SE(3): T_{1}T_{2} \in SE(3) \\ -&Identität: & \forall T \in SE(3): 1T = T1 = T\\ -&Inverse: & \forall ^{j}T_{i} \in SE(3): (^{j}T_{i})(^{j}T_{i}^{-1}) = (^{j}T_{i})(^{i}T_{j}) = 1 \\ -&Assoziativität: & \forall T_{1},T_{2},T_{3} \in SE(3): (T_{1}T_{2})T_{3} = T_{1}(T_{2}T_{3}) -\end{align*} +\begin{equation}\label{eq:SE} +\begin{split} +&Geschlossenheit: \forall T_{1},T_{2} \in SE(3): T_{1}T_{2} \in SE(3) \\ +&Identität: \forall T \in SE(3): 1T = T1 = T\\ +&Inverse: \forall ^{j}T_{i} \in SE(3): (^{j}T_{i})(^{j}T_{i}^{-1}) = (^{j}T_{i})(^{i}T_{j}) = 1 \\ +&Assoziativität: \forall T_{1},T_{2},T_{3} \in SE(3): (T_{1}T_{2})T_{3} = T_{1}(T_{2}T_{3}) +\end{split} +\end{equation} Die Komposition aus Transformationen verschiedener Frames wird in Gleichung \autoref{fig:5} veranschaulicht. Dabei ist die Einhaltung der Reihenfolge bezüglich der Multiplikation, analog zur \autoref{eq:2} Gruppe $SO(3)$, erforderlich. Durch die Eigenschaft der Geschlossenheit der Gruppe SE(3), ist das Resultat dieser Multiplikation ebenfalls $\in SE(3)$ \cite[14f.]{Siciliano2016}. @@ -100,13 +104,13 @@ Die Komposition aus Transformationen verschiedener Frames wird in Gleichung \aut ^{k}T_{i} = ^{k}T_{j} \times ^{j}T_{i} \end{equation} -Für die kinematische Kette eines robotischen Systems bestehenden aus $n \in \N$ Festkörpern, wobei $Frame_{n} = Frame_{Endeff}$ das Frame des Endeffektors ist, gilt \autoref{eq:6}, welche ein Beispiel für $n=8$ zeigt. Im Kontext dieser Arbeit bedeutet diese Gleichung, dass für jede vom Roboter erreichbare Endeffektor-Pose relativ zu $Frame_{0}$ eine solche Kette aus Transformationen existiert, welche jeweils die Pose eines Festkörpers des Roboters repräsentieren \cite[26f.]{Siciliano2016}. +Für die kinematische Kette eines robotischen Systems bestehenden aus $n \in \N$ Festkörpern, wobei $Frame_{n} = Frame_{Endeff}$ das Frame des Endeffektors ist, gilt \autoref{eq:6}, welche zusätzlich ein Beispiel für $n=8$ zeigt. Im Kontext dieser Arbeit bedeutet diese Gleichung, dass für jede vom Roboter erreichbare Endeffektor-Pose relativ zu $Frame_{0}$ eine solche Kette aus Transformationen existiert, welche jeweils die Pose eines Festkörpers des Roboters repräsentieren \cite[26f.]{Siciliano2016}. \begin{equation} \label{eq:6} \begin{split} -^{n}T_{0} &= {\displaystyle \prod_{i=0}^{n}}^{n-i}T_{i} \\ - &= ^{0}T_{1} \times ^{1}T_{2} \times ^{2}T_{3} \times ^{3}T_{4} \times ^{4}T_{5} \times ^{5}T_{6} \times ^{6}T_{7} \times ^{7}T_{8} +^{0}T_{n} &= \prod_{i=0}^{n}{^{n-i}T_{i}} \\ +^{0}T_{8} &= ^{0}T_{1} \times ^{1}T_{2} \times ^{2}T_{3} \times ^{3}T_{4} \times ^{4}T_{5} \times ^{5}T_{6} \times ^{6}T_{7} \times ^{7}T_{8} \end{split} \end{equation} @@ -116,8 +120,8 @@ Der Arbeitsbereich 'Workspace', beschreibt die Kapazitäten eins robotische Syst In den Publikationen werden diese Darstellungen gleichgesetzt. Dieses Vorgehen hat auch Bestand in dieser wissenschaftlichen Arbeit, demnach werden fortan reachability maps betrachtet, welche zusätzliche Eigenschaften der capability map besitzt. \subsection{reachability map} -Reachability maps visualisieren die Erreichbarkeit durch den Endeffektor, ohne weitere Angaben hinsichtlich der Qualität. Demnach ist beispielsweise ein Objekt erreichbar, was aber nicht eine erfolgreiche Exekution impliziert, da der Endeffektor Möglicherweise eine der definierten Greifposen nicht einnehmen kann. Demnach enthält eine reachability map die Information darüber, dass der Endeffektor die Objektposition erreicht, aber nicht welche Posen Operiert werden können -Diese \autoref{fig:panda} zeigt eine solche Darstellung im Manual des Referenzroboters 'Panda' aus verschiedenen Perspektiven, um den Arbeitsbereich des Roboters in mehreren Dimensionen zu veranschaulichen. +Reachability maps visualisieren die Erreichbarkeit durch den Endeffektor, ohne weitere Angaben hinsichtlich der Qualität. Demnach ist beispielsweise ein Objekt erreichbar, was aber nicht eine erfolgreiche Exekution impliziert, da der Endeffektor Möglicherweise eine der definierten Greifposen nicht einnehmen kann. Demnach enthält eine reachability map die Information darüber, dass der Endeffektor die Objektposition erreicht, aber nicht welche Posen Operiert werden können. +Diese \autoref{fig:panda} zeigt eine solche Darstellung im Manual des Referenzroboters 'Panda' aus verschiedenen Perspektiven, um den Arbeitsbereich des Roboters in mehreren Dimensionen zu visualisieren. \ffigbox[\FBwidth]% {\begin{subfloatrow}% @@ -136,16 +140,16 @@ In capability maps werden zusätzliche Informationen über die Erreichbarkeit de %\cite{Reuleaux} \cite{zacharias2008positioning} \section{ROS und das MoveIt} -ROS ist ein der Öffentlichkeit frei zugängliches Framework, welches auf Anwendungen bezüglich robotischer Systeme spezialisiert ist. Es ermöglicht beispielsweise die Kommunikation zwischen Robotern, Erfassung sensorischer Daten und deren Visualisierung in zusätzlichen Programmen. Dies wird durch die Initialisierung von Nodes realisiert, welche nach dem Event Listener Prinzip Informationen hinsichtlich eines spezifischen Themas publizieren oder durch das Abonniere des Themas empfangen. Pakete innerhalb eines Arbeitsraums im ROS Kontext Koordinieren die zugrundeliegenden Quelltexte der Nodes und dienen der Abstraktion implementierter Algorithmen. +ROS ist ein der Öffentlichkeit frei zugängliches Framework, welches auf Anwendungen bezüglich robotischer Systeme spezialisiert ist. Es ermöglicht beispielsweise die Kommunikation zwischen Robotern, Erfassung sensorischer Daten und deren Visualisierung in zusätzlichen Programmen. Dies wird durch die Initialisierung von Nodes realisiert, welche Informationen hinsichtlich eines spezifischen Themas publizieren oder durch das Abonniere des Themas empfangen. Pakete innerhalb eines Arbeitsraums im ROS Kontext Koordinieren die zugrundeliegenden Quelltexte der Nodes und dienen der Abstraktion implementierter Algorithmen. \subsection{Visualisierung in ROS} -RViz ist eine ROS Node zur Visualisierung von Informationen im 3 dimensionalen Raum und wird in dieser Arbeit zur Illustration spezifischer Aspekte der Implementierung genutzt. Zur Orientierung auf der grafischen Benutzeroberfläche dienst ein Gitter auf der horizontalen XY Ebene, dessen Kanten jeweils einen Meter voneinander distanziert sind. +RViz ist ein ROS Node zur Visualisierung von Informationen im 3 dimensionalen Raum und wird in dieser Arbeit zur Illustration spezifischer Aspekte der Implementierung genutzt. Die Orientierung innerhalb der grafischen Benutzeroberfläche erfolgt anhand eines Gitters auf der horizontalen XY Ebene, dessen Kanten jeweils einen Meter voneinander distanziert sind. \subsubsection{Marker Elemente} -Primitive wie Würfel, Pfeile oder Sphären sind simple Marker Elemente, welche anhand Ihrer Position, Orientierung, Farbe und Dimension definiert sind und in RViz angezeigt werden können, um die Resultate der zugrundeliegenden Implementierung zu inspizieren. +Primitive wie Würfel, Pfeile oder Sphären sind simple Marker Elemente, welche anhand deren Position, Orientierung, Farbe und Dimension definiert sind und in RViz durch das Abhören des zugrundeliegenden Themas visualisiert werden, um die Resultate der zugrundeliegenden Implementierung zu inspizieren beziehungsweise analysieren. \subsubsection{Interaktive Marker Elemente} -Interaktive Marker Elemente erweitern die bereits präzisierten Marker um Interaktionsmöglichkeiten durch den Nutzer, wodurch Translationen und Rotationen auf beliebigen Achsen des Markers durch den Mauszeiger anwendbar sind. Zusätzlich kann jeder Marker ein eigenes Menü mit Untermenüs initialisieren. Diese Modifikationen werden durch zugrundeliegende visuelle Kontrollelemente des Markers und deren Kommunikation mit dem 'Interaktive Marker Server' realisiert. Jede Interaktion mit einer Instanz eines interaktiven Markers wird von RViz publiziert, der Server reagiert auf diese Nachricht mit der aktualisierten Position oder Orientierung des Markers. Zusätzlich ist die Implementierung weiterer Funktionen möglich, die als Reaktion auf über den Server kommuniziert werden sollen. +Interaktive Marker Elemente erweitern die bereits präzisierten Marker um die Interaktionsmöglichkeit durch den Nutzer, wodurch Translationen und Rotationen auf beliebigen Achsen des Markers durch den Mauszeiger realisierbar sind. Zusätzlich kann jeder Marker ein eigenes Menü mit Untermenüs initialisieren, durch dessen Einträge zusätzliche anwendungsspezifische Algorithmen implementiert werden können. Diese Modifikationen werden durch zugrundeliegende visuelle Kontrollelemente des Markers und deren Kommunikation mit dem 'Interaktive Marker Server' realisiert. Jede Interaktion mit einer Instanz eines interaktiven Markers wird von RViz publiziert, der Server reagiert auf diese Nachricht mit der aktualisierten Position oder Orientierung des Markers. Zusätzlich ist die Implementierung weiterer Funktionen möglich, die als Reaktion über den Server kommuniziert werden sollen. \begin{figure}[ht] \includegraphics[width = 0.47\textwidth, height = 4cm]{images/IM.png} @@ -154,7 +158,7 @@ Interaktive Marker Elemente erweitern die bereits präzisierten Marker um Intera \end{figure} \subsection{kinematische Operationen in ROS} - +In dieser wissenschaftlichen Arbeit erfolgen Berechnungen zur Kinematik, Kollision und Bewegungsplanung ausschließlich mit der ebenfalls öffentlich frei zugänglichen MoveIt Software. Diese definiert den 'move\_group' Node, welcher durch Integration zusätzlicher Nodes und Komponenten dessen vollständigen Funktionsumfang erhält. Beispielsweise werden diese zusätzlichen Nodes innerhalb einer Konfigurationsdatei initiiert, welche gleichermaßen die URDF Datei der zugrundeliegenden robotischen Systeme spezifiziert. Die Generation solcher Konfigurationsdateien erfolgt a priori über den Node des Moveit Assistenten 'MSA'. \section{Anforderungen automatischer kollaborativer Multi-Roboter Arbeitsplätze} Marvel et al. adressieren die Skalierbarkeit, Synchronisierung der Roboter, Verteilung der spezifischen Aufgaben und Kollisionsvermeidung als grundlegende Aspekte der Planung eines Multi-Roboter Systems. Offensichtlich stehen diese Aspekte in Wechselwirkung zueinander, denn die Kollisionsdetektion ist beispielsweise vereinfacht, wenn die Exekution der Aufgaben sequentiell erfolgt und daher nur ein Roboter zeitgleich Bewegungen ausführt, dies impliziert zugleich eine weniger komplexe Aufgabenverteilung. Erfolgen die Handlungen der Roboter synchron, so ist die Verteilung der der Aufgaben essenziell für eine erfolgreiche Terminierung und dessen Ausführungszeit und bedingt eine komplexere Kollisionsdetektion. Änderungen der Szenerie, Beispielsweise durch die Hinzunahme oder Abnahme der Roboter, haben ebenfalls Auswirkungen auf die Ausführung beziehungsweise Kalkulationszeit, welche die Skalierbarkeit des Arbeitsraums konkretisiert.\cite{Marvel2018}. Diese Aspekte sind zusätzlich abhängig von der Platzierung in der Domäne, welche die Generierung automatischer Multi-Roboter Arbeitsplätze ermöglicht und daher der Hauptaspekt dieser wissenschaftlichen Arbeit ist. Also eigentlich kann ich hier alles aus Evaluation rein kopieren, das klingt zumindest besser. diff --git a/sections/konzept.tex b/sections/konzept.tex index b9b8c648d4047a34766473b49ae7523e6bc37351..affc3f379923a4e7bb2a8d81762978cc226d583e 100644 --- a/sections/konzept.tex +++ b/sections/konzept.tex @@ -1,5 +1,5 @@ \chapter{Konzept zur Realisierung Mulit-Roboter Arbeitsplätze}\label{ch:concept} -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 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. +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 grundlegende Struktur persistierter Daten im YAML 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)}% @@ -35,11 +35,11 @@ Wie im vorherigen Kapitel beschrieben, charakterisieren wissenschaftliche Arbeit } \section{Arbeitsraumanalyse robotischer Systeme} -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 Ausführungen zur Generierung aller Orientierungen $OR_{total}$ zu entnehmen, dass diese auf den Polarkoordinaten $^{0}s \in S^{2}$ 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. +Die Population valider Transformationen $^{0}T_{Endeff}$, welche Resultat der Vereinigung aus $OR_{total}$ und $P_{total}$ sind, ist Bestandteil der Arbeitsraumanalyse. Dabei ist den Formulierungen zur Generierung aller Orientierungen $OR_{total}$ zu entnehmen, dass diese auf den Polarkoordinaten $^{0}s \in S^{2}$ 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 der Menge $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 \cite{Zacharias2007}. 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 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 +Aufgrund der Erörterung von Zacharias et al., welche die Erfassung der Menge $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 \cite{Zacharias2007}. Demzufolge unterliegt die Menge $P_{total}$ den Größen $q, a \in \R_{+}$, welche 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 zufällig generierter sphärischer Koordinaten abhängt, gleichermaßen unzulänglich. Dies impliziert den Einsatz der sphärischen Diskretisierungen anhand gleichmäßiger beziehungsweise ungleichmäßiger Verteilungen. \par \begin{equation} \label{eq:23} @@ -47,19 +47,21 @@ r = \frac {a}{2} \end{equation} 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, wird der Radius $r \in \R_{+}$ der Sphäre nach \autoref{eq:23} kalkuliert. -Zusätzlich empfiehlt sich die vollständige Auslagerung der Berechnungen auf performantere Rechner, um diese mit mehreren Rechenkernen zu operieren. Beispielsweise empfiehlt sich für diese Arbeit das Hochleistungsrechenzentrum der TU-Dresden. \autoref{lst:1} zeigt die Struktur der JSON-Datei, die als Artefakt der Berechnung in Gitlab entnommen werden. 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. Das Ergebnis der kinematischen Funktion aus \autoref{eq:7} als Informationen bezüglich der Erreichbarkeit der Pose ist als Wahrheitswert/bool in der Liste des Feldes 'value' dokumentiert. - -\begin{lstlisting}[language=JSON,firstnumber=1, caption={Struktur der RM als Resultat der Arbeitsraumanalyse},captionpos=b, label={lst: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] -} +Zusätzlich empfiehlt sich die vollständige Auslagerung der Berechnungen auf performante Rechner, um diese mit mehreren Rechenkernen zu operieren. Beispielsweise empfiehlt sich für diese Arbeit das Hochleistungsrechenzentrum der TU-Dresden. \autoref{lst:1} zeigt die Struktur der YAML-Datei, die als Artefakt der Berechnung in Gitlab entnommen werden. +\begin{lstlisting}[language=JSON,firstnumber=1,float, caption={Struktur der RM als Resultat der Arbeitsraumanalyse},captionpos=t, label={lst:1}] +Referenzsystem: "Emika Franka 'Panda'" +Map Name: "RM_\$(Intervall)_\$(Auflösung)" +Auflösung: float +Intervall: float +Endeffektor-Pose: [ "x y z q_x q_y q_z q_w"] +IK Lösung: [true | false] \end{lstlisting} +Die Felder 'Auflösung' und 'Intervall' entstammen den Parametern der kubischen Diskretisierung und definieren den Namen der Datei. Das Feld 'Endeffektor-Pose' enthält eine Sequenz aus String-Repräsentation aller Endeffektor-Posen. Diese bestehen aus Position und Orientierung, wobei die Orientierung als Quaternion notiert ist, was dem Präfix q\_ zu entnehmen ist. Das Ergebnis der kinematischen Funktion aus \autoref{eq:7} als Informationen bezüglich der Erreichbarkeit der Pose ist als Wahrheitswert/bool in der Sequenz des Feldes 'IK Lösung' dokumentiert. + + \subsection{Komplexität} -Derart zeitaufwändigen Verfahren erfordern die Betrachtung der Komplexität, um anhand dessen die Anzahl aller auszuführenden Operationen und somit dessen maximalen Zeitaufwand zu prognostizieren. Die \autoref{eq:24} illustriert eine Einordnung der zeitlichen Komplexität ist durch die Betrachtung der Kardinalitäten der jeweiligen Mengen. +Derart zeitaufwändigen Verfahren erfordern die Betrachtung der Komplexität, um anhand dessen die Anzahl aller auszuführenden Operationen und somit dessen maximalen Zeitaufwand zu prognostizieren. Die \autoref{eq:24} formulierte Einordnung der zeitlichen Komplexität erfolgt durch die Betrachtung der Kardinalitäten der jeweiligen Mengen. \begin{equation} \label{eq:24} @@ -70,10 +72,10 @@ Derart zeitaufwändigen Verfahren erfordern die Betrachtung der Komplexität, um \end{split} \end{equation} -Aus dieser Illustration ist abzuleiten, dass die Wahl der Faktoren $q, a \in \R_{+}$, sowie die Menge sphärischer Vektoren $S^{2}$ und der zusätzlich betrachteten Roll Winkel, welche Grundlegende Parameter der kubischen Diskretisierung beziehungsweise sphärischen Diskretisierung darstellen, die Komplexität kubisch oder linear beeinflussen. Basierend auf den folgenden Überlegungen und daraus resultierenden Vereinfachungen, kann die Auswirkung der sphärische Komponente auf die Komplexität dezimiert werden. +Aus dieser Illustration ist abzuleiten, dass die Wahl der Faktoren $q, a \in \R_{+}$, sowie die Menge sphärischer Vektoren $S^{2}$ und der zusätzlich betrachteten Roll Winkel, welche Grundlegende Parameter der kubischen Diskretisierung beziehungsweise sphärischen Diskretisierung darstellen, die Komplexität kubisch oder linear beeinflussen. Basierend auf den folgenden Überlegungen und daraus resultierenden Vereinfachungen, kann die Auswirkung der sphärischen Komponente auf die Komplexität dezimiert werden. \subsubsection{Vereinfachung des Roll Segments} -Um die Komplexität zu beschränken, wird beruhend auf der Bauart eines Roboterarms die Annahme getroffen, dass der Endeffektor zu jeder Zeit eine vollständige Drehung um seine longitudinal Achse vollziehen kann. Dies dezimiert die Kardinalität $\vert OR_{total} \vert$ um das Roll Segment und stellt ein Ersparnis hinsichtlich einer Dimension an Berechnungen während der Analyse dar. Daraus resultiert die Menge $OR_{total}^{/R}$, dessen Kardinalität die folgende \autoref{eq:25} zeigt. +Um die Komplexität zu beschränken, wird beruhend auf der Bauart eines Roboterarms die Annahme getroffen, dass der Endeffektor zu jeder Zeit eine vollständige Drehung um seine longitudinal Achse vollziehen kann. Dies dezimiert die Kardinalität $\vert OR_{total} \vert$ um das Roll Segment und stellt ein Ersparnis hinsichtlich einer Dimension an Berechnungen während der Analyse dar. Daraus resultiert die Menge $OR_{total}^{/R}$, dessen Kardinalität die folgende \autoref{eq:25} zeigt. \begin{equation} \begin{split} @@ -85,7 +87,7 @@ Um die Komplexität zu beschränken, wird beruhend auf der Bauart eines Robotera \subsubsection{Vereinfachung der sphärischen Vektoren} -Eine weitere Vereinfachung stellt die Annahme dar, dass Objekte nicht von unten gegriffen werden können beziehungsweise dieses spezifische vorgehen nicht Teil der zu bewältigenden Aufgabe ist. Dies stellt eine Halbierung bezüglich der sphärischen Vektoren dar, indem für eine Sphäre $S^{2}$ alle Vektoren $^{0}s \in S^{2}$, deren Element $^{0}z \in ^{0}s$ kleiner als das dazugehörige $^{0}z \in ^{0}p $ Element des Zentrums $^{0}p$ bezüglich der assoziierten Sphäre ist. \autoref{eq:26} visualisiert die resultierende Menge $S_{/2}^{2}$ und dessen Kardinalität. +Eine weitere Vereinfachung stellt die Annahme dar, dass Objekte nicht von unten gegriffen werden können beziehungsweise dieses spezifische vorgehen nicht Teil der zu bewältigenden Aufgabe ist. Dies stellt eine Halbierung bezüglich der sphärischen Vektoren dar, indem für eine Sphäre $S^{2}$ alle Vektoren $^{0}s \in S^{2}$, deren Element $^{0}sz \in ^{0}s$ kleiner als das dazugehörige $^{0}pz \in ^{0}p $ Element des Zentrums $^{0}p$ bezüglich der assoziierten Sphäre ist. \autoref{eq:26} formuliert die resultierende Menge $S_{/2}^{2}$ und dessen Kardinalität. \begin{equation} \label{eq:26} @@ -96,7 +98,7 @@ Eine weitere Vereinfachung stellt die Annahme dar, dass Objekte nicht von unten \end{equation} \subsubsection{Vereinfachte Komplexität} -Aus den Vereinfachungen bezüglich verschiedener Aspekte der Menge $OR_{total}$ und dessen zugrundeliegender sphärischer Diskretisierung, resultiert durch deren Anwendung in \autoref{eq:27} die zeitliche Komplexität $\mathcal{O}((\frac{2 \times q}{a})^{3} \times \frac{\vert S \vert}{2})$. +Aus den Vereinfachungen bezüglich verschiedener Aspekte der Menge $OR_{total}$ und dessen zugrundeliegender sphärischer Diskretisierung, resultiert durch deren Anwendung in \autoref{eq:27} die zeitliche Komplexität $\mathcal{O}((\frac{2 \times q}{a})^{3} \times \frac{\vert S^{2} \vert}{2})$. \begin{equation} \label{eq:27} @@ -106,12 +108,12 @@ Aus den Vereinfachungen bezüglich verschiedener Aspekte der Menge $OR_{total}$ & \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert OR_{total}^{/R} \vert) \\ & \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert S^{2} \vert) \\ & \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert S_{/2}^{2} \vert) \\ -& \mathcal{O}((\frac{2 \times q}{a})^{3} \times \frac{\vert S \vert}{2}) +& \mathcal{O}((\frac{2 \times q}{a})^{3} \times \frac{\vert S^{2} \vert}{2}) \end{split} \end{equation} \subsection{Verfahren der sphärischen Diskretisierung} -Aus vorangegangenen Kapiteln ist bekannt, dass die sphärische Diskretisierung durch Abtastung der Winkelintervalle oder der Verteilung von $n \in \N $ Vektoren $^{0}s$ auf einer Sphäre, erfolgt. Das Abtasten der Winkelintervalle basierend auf einer festen Auflösung generiert ein ungleichmäßiges sphärisches Gitter, wodurch die Vektoren $^{0}s$ nicht äquidistant verteilt sind. Zusätzlich zeigt \autoref{fig:7}, dass die Distanz der Vektoren an den Polen marginal. Diese Beobachtungen implizieren, dass die resultierende Menge $OR_{total}$ durch dessen hohes Maß an ähnlichen und uneinheitlichen Orientierungen, für die Bewertung der Erreichbarkeit nicht geeignet ist. Demnach ist die äquidistante Verteilung der Vektoren $^{0}s$ für eine qualitative Repräsentation der Erreichbarkeit eines Vektors $^{0}v_{Endeff}$, sowie der Dezimierung des zeitlichen Aufwands aller kinematischen Berechnungen, maßgeblich ist. +Aus vorangegangenen Kapiteln ist bekannt, dass die sphärische Diskretisierung durch Abtastung der Winkelintervalle oder der Verteilung von $n \in \N $ Vektoren $^{0}s$ auf einer Sphäre, erfolgt. Das Abtasten der Winkelintervalle basierend auf einer festen Auflösung generiert ein ungleichmäßiges sphärisches Gitter, wodurch die Vektoren $^{0}s$ nicht äquidistant verteilt sind. Zusätzlich ist aus \autoref{fig:7} ersichtlich, dass die Distanz der Vektoren an den Polen marginal ist. Diese Beobachtungen implizieren, dass die resultierende Menge $OR_{total}$ durch dessen hohes Maß an ähnlichen und uneinheitlichen Orientierungen, für die Bewertung der Erreichbarkeit nicht geeignet ist. Demnach ist die äquidistante Verteilung der Vektoren $^{0}s$ für eine qualitative Repräsentation der Erreichbarkeit eines Vektors $^{0}v_{Endeff}$, sowie der Dezimierung des zeitlichen Aufwands aller kinematischen Berechnungen, maßgeblich ist. \begin{figure} \label{fig:7} @@ -127,10 +129,10 @@ Aus vorangegangenen Kapiteln ist bekannt, dass die sphärische Diskretisierung d \end{figure} \subsubsection{Gleichmäßige Verteilung} -Methoden wie die Fibonacci- oder Spiral- Verteilungen bieten minimale Abweichungen, empfehlen sich daher für die Orientierungsgenerierung und bilden daher eine im Kontext dieser wissenschaftlichen Arbeit angemessene Repräsentation der Erreichbarkeit des Vektors $^{0}p_{Endeff}$. Sie gehören neben der ungleichmäßigen Diskretisierung zu den von Mikhal et al. angewendeten Methoden zur Arbeitsraumanalyse eines robotischen Systems \cite{Makhal2018}. Deserno stellt in seiner Arbeit zur äquidistanten sphärischen Diskretisierung eine Methode der gleichmäßigen Verteilung, welche bisher nicht zum Zweck der Roboterplatzierung genutzt wurde, vor. Die Dokumentierte Pseudoimplementierung wurde für diese wissenschaftliche Arbeit übernommen. \cite{Deserno2004}. +Methoden wie die Fibonacci- oder Spiral- Verteilungen bieten minimale Abweichungen, empfehlen sich daher für die Orientierungsgenerierung und bilden eine im Kontext dieser wissenschaftlichen Arbeit angemessene Repräsentation der Erreichbarkeit des Vektors $^{0}p_{Endeff}$. Sie gehören neben der ungleichmäßigen Diskretisierung zu den von Mikhal et al. angewendeten Methoden zur Arbeitsraumanalyse eines robotischen Systems \cite{Makhal2018}. Deserno illustriert in seiner Arbeit zur äquidistanten sphärischen Diskretisierung einen Algorithmus zur gleichmäßigen Verteilung vor, welche bisher nicht zum Zweck der Roboterplatzierung genutzt wurde. Die Dokumentierte Pseudoimplementierung wurde für diese wissenschaftliche Arbeit übernommen. \cite{Deserno2004}. \section{Invertierte Arbeitsräume} -Ziel dieses Abschnitts ist die Präzisierung des grundlegenden Ansatzes, dessen sich hinsichtlich der Eruierung optimaler Positionen bezüglich der Platzierung robotischer Systeme bedient wird. Dies beinhaltet die Anwendung der in den Grundlagen aufgeführten kinematischen Sachverhalte, sowie der Voraussetzung einer Pose $t \in A$ des zu operierenden Objekts, wobei $A \subset SE(3)$ die Menge aller Aufgabenposen relativ zum $Frame_{0}$ ist. +Ziel dieses Abschnitts ist die Präzisierung des grundlegenden Ansatzes, dessen sich hinsichtlich der Eruierung optimaler Positionen bezüglich der Platzierung robotischer Systeme bedient wird. Dies beinhaltet die Anwendung der in den Grundlagen aufgeführten kinematischen Sachverhalte, sowie der Voraussetzung einer Pose $a \in A$ des zu operierenden Objekts, wobei $A \subset SE(3)$ die Menge aller Aufgabenposen relativ zum $Frame_{0}$ ist. Eine persistierte $RM$ beinhaltet eine Liste aller Vektoren $v \in P_{total}$ des kubisch diskretisierten Roboterumfeldes mit dessen zugehörigen Orientierungen $R \in OR_{total}$, zuzüglich des Ergebnisses der Funktion $f_{kin}$ aus \autoref{eq:7}. Jede positiv terminierte kinematische Berechnung klassifiziert die operierte Transformation als valide Endeffektor Pose. Für jede dieser validen Transformationen gilt nach \autoref{eq:6}, dass eine kinematische Kette jener Form existiert. @@ -139,47 +141,48 @@ Die Roboterbasis kann der Pose des ersten Festkörpers in Form der Transformatio \begin{equation} \label{eq:28} \begin{split} -^{0}T_{Base} &= t \times ^{0}T_{Endeff} \\ -^{0}T_{Base} &= t \times ^{0}T_{1} \times ... ^{Endeff-1}T_{Endeff} \\ -^{0}T_{Base} &= t \times (^{0}T_{1} \times ... ^{Endeff-1}T_{Endeff})^{-1} \\ +^{0}T_{Base} &= a \times ^{0}T_{Endeff} \\ +^{0}T_{Base} &= a \times ^{0}T_{1} \times ... ^{Endeff-1}T_{Endeff} \\ +^{0}T_{Base} &= a \times (^{0}T_{1} \times ... ^{Endeff-1}T_{Endeff})^{-1} \\ ^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... \times ^{Base}T_{0} \\ -^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... \times ^{1}T_{Base} \times 1 \\ -^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... \times ^{1}T_{Base} \\ +^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... \times ^{2}T_{Base} \times 1 \\ +^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... \times ^{2}T_{Base} \\ ^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Base} \\ ^{0}T_{Base} &= ^{0}T_{Base} \end{split} \end{equation} -Die Metrik aus \autoref{eq:18} wird dabei zu den inversen Transformationen $^{0}T_{Base}$ portiert und als Menge $IRM$ in eine JSON Datei persistiert, dessen Struktur der \autoref{lst:2} zeigt, wobei die Felder 'pose' und 'value' nicht aus der zugrundeliegenden $RM$ übernommen wurden. Das Ergebnis dieses Algorithmus kann bei Formeln der Form \autoref{eq:20} Angewendet werden, um die Roboter Positionierung hinsichtlich der Definition einer spezifischen Aufgabe zu errechnen. - -\begin{lstlisting}[language=json,firstnumber=1, caption={In 'value' werden alle kalkulierten Werte der Metrik persistiert, während 'pose' alle invertierten Endeffektor Posen enthält},captionpos=b, label={lst:2}] -{"name": "IRM_\$(maxdistance)_\$(resolution)" - "resolution": float, - "max_distance": float, - "pose": [ "x y z q_x q_y q_z q_w"], - "value": [float]} +Die Metrik aus \autoref{eq:18} wird dabei zu den inversen Transformationen $^{0}T_{Base}$ portiert und als Menge $IRM$ in eine YAML Datei persistiert, dessen Struktur der \autoref{lst:2} zeigt, wobei die Felder 'Basis-Pose' und 'Metrik' nicht aus der zugrundeliegenden $RM$ übernommen wurden. Das Ergebnis dieses Algorithmus kann bei Formeln der Form \autoref{eq:20} Angewendet werden, um die Roboter Positionierung hinsichtlich der Definition einer spezifischen Aufgabe zu errechnen. + +\begin{lstlisting}[language=json,firstnumber=1, caption={In 'Metrik' werden alle kalkulierten Werte der Metrik persistiert, während 'Basis-Pose' alle invertierten Endeffektor-Posen enthält},captionpos=t, float, label={lst:2}] +Referenzsystem: "Emika Franka 'Panda'" +Map Name: "IRM_\$(Intervall)_\$(Auflösung)" +Auflösung: float +Intervall: float +Basis-Pose: [ "x y z q_x q_y q_z q_w"] +Metrik: [float] \end{lstlisting} \section{Definition spezifischer Aufgaben} -Das Konzept zur Planung und Erstellung spezifischer Aufgaben, sowie deren Realisierung innerhalb einer Szene und Visualisierung in einer geeigneten graphischen Umgebung wie beispielsweise RViz, ist Inhalt dieses Abschnittes. Dabei besteht eine Szene aus Kollisionsobjekten, welche Hindernisse oder Primitive definieren, die das robotische System umgehen beziehungsweise 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 sollen. -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, welcher die 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 der \autoref{lst:3} veranschaulicht und zur Durchführung der Aufgabe durch robotische Systeme bedingt ist. - -\begin{lstlisting}[language=JSON,firstnumber=1, caption={Der Nutzer hat die Möglichkeit, seine Aufgabe zu benennen. Das Feld 'position' ist eine Liste aller Aufgaben-Posen in Form einer Kette, die das jeweilige robotische System operieren muss.},captionpos=b, label={lst:3}] -{"name": "TASK_" - "position": [ "x y z q_x q_y q_z q_w"], -} +Das Konzept zur Planung und Erstellung spezifischer Aufgaben, sowie deren Realisierung innerhalb einer Szene und Visualisierung in einer geeigneten graphischen Umgebung wie beispielsweise RViz, ist Inhalt dieses Abschnittes. Dabei besteht eine Szene aus Kollisionsobjekten, welche Hindernisse oder Primitive definieren, die das robotische System umgehen beziehungsweise mit denen es Interagieren muss. Die Planung und Ausführung einer Aufgaben erfolgt über spezifische Nachrichten der move\_group Schnittstelle, 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 sollen. +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, welcher die 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 Aufgabenbeschreibungen 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 ebenfalls in YAML Dateien persistiert werden, dessen Struktur der \autoref{lst:3} veranschaulicht. + +\begin{lstlisting}[language=JSON,firstnumber=1, float, caption={Der Nutzer hat die Möglichkeit, seine Aufgabe zu benennen. Das Feld 'Aufgabenbeschreibung' ist eine Sequenz aus Objekten, dessen Inhalt eine weitere Sequenz aus Aufgaben-Posen in Form einer Kette ist, welche das jeweilige robotische System operieren muss.},captionpos=t, label={lst:3}] +Name der Aufgabe: String +Aufgabenbeschreibung: + Objekt : [ "x y z q_x q_y q_z q_w"] \end{lstlisting} \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. -Diese Aufgaben sind implizit durch die enthaltenen Teilketten im Positionsfeld der Aufgabenbeschreibung gegeben, indem alle enthaltenen Positionen disjunkt sind. +Gespaltene Operationsketten partitionieren $K$ in $i \in \N_{>0}$ disjunkte Teilketten $TK \subset K $, welche $i$ Roboter isoliert voneinander operieren. +Diese Aufgaben sind implizit durch die enthaltenen Teilketten im Positionsfeld der Aufgabenbeschreibung gegeben, indem alle enthaltenen Positionen disjunkt sind, das heißt es gibt keine Sequenz eines Objektes, in der sich Posen eines anderen Objektes wiederholen. \subsubsection{Kooperative Operationskette} -Kooperative Ketten 'coops' partitionieren $K$ in $i$ Teilketten $TK_{i-1}... TK_{0} \subset K $, deren Schnittmenge das jeweils letzte und erste Glied von $TK_{i-1}$ beziehungsweise $TK_{i-2}$ ist. Diese Einteilung impliziert, dass die Position innerhalb der Abstellnachricht des Vorgängerroboters ebenfalls Inhalt der Greifnachricht des Roboters $i$ ist, was dem Positionsfeld der Aufgabenbeschreibung zu entnehmen ist. +Kooperative Ketten partitionieren $K$ in $i$ Teilketten $TK_{0}... TK_{i-1} \subset K $, deren Schnittmenge das jeweils letzte und erste Glied von $TK_{j}$ beziehungsweise $TK_{j+1}$, für $0 \leq j < i$, ist. Diese Einteilung impliziert, dass die Position innerhalb der Abstellnachricht des Vorgängerroboters ebenfalls Inhalt der Greifnachricht des Roboters $i$ ist. Diese Logik ist implizit aus der Sequenz eines Objekts entnehmbar, indem eine Pose wiederholt vorkommt. \subsection{Trajektorien} In dieser Aufgabengruppe bilden alle Positionen, die durch den Endeffektor operiert werden sollen, eine 3-dimensionale Kurve. Kurvenimplementieren, wie Beispielsweise die Bezierkurve, können für diese Aufgaben implementiert werden, indem Interaktive Marker die Kontrollpunkte der Kurve realisieren. Durch diesen Prozess entstehen wohlgeordnete Mengen aus $^{0}T_{Endeff}$ Transformationen die ähnlich der Operationsketten von mehreren Robotern bearbeitet werden können. @@ -189,11 +192,10 @@ Aus den persistierten Informationen der Arbeitsraumanalyse, dem Ansatz der inver 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 der Metrik $D_{Voxel}$ aus \autoref{eq:22}, denn diese Bewertet einen Voxel, ohne dessen Inhalt bezüglich der Aufgabenbeschreibung zu gewichten. So werden beispielsweise Voxel 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}(Voxel)$ pro Voxel und Kettenlied kalkuliert. Dieser Vorgang bietet den Vorteil, die Voxel separat anhand der Teilketten $TK \subset K $ zu betrachten und durch dieser Zuteilung jede Teilkette einem robotischen System zuzuteilen. Für jeden Voxel lässt sich so ein Index ermitteln, der den Ursprung der Vektoren $^{0}p_{Base_{i}} \in ^{0}P_{Base}$ berücksichtigt und gleichermaßen nach dessen Inhalt bewertet. -Das kaputt, muss ich später überarbeiten. +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}(Voxel)(TK)$ pro Voxel und Kettenlied kalkuliert. Dieser Vorgang hat den Vorteil, die Voxel separat anhand der Teilketten $TK \subset K $ zu betrachten und anhand dieser Zuteilung jedes Objekt einem robotischen System zuzuordnen. Für jeden Voxel lässt sich so ein Index ermitteln, der den Ursprung der Vektoren $^{0}p_{Base} \in ^{0}P_{Base}$ im Voxel berücksichtigt und gleichermaßen nach dessen Inhalt bewertet. \begin{equation} -\label{eq:29} -I(Voxel)(TK) = \frac{\displaystyle\sum_{i=0}^{\vert TK \vert} D_{Reach_{i}}^{average}(Voxel)}{\vert TK \vert} +\label{eq:29} +D_{Reach}(Voxel)(TK) = \frac{\displaystyle\sum_{i=0}^{\vert TK \vert} D_{Reach_{i}}^{average}(Voxel)}{\vert TK \vert} \end{equation} diff --git a/sections/sota.tex b/sections/sota.tex index 3904318723f70b11e498a15790b9dbfaf84a9587..1049fff66f0b8de6cd0ce11396d2df07dfcf8406 100644 --- a/sections/sota.tex +++ b/sections/sota.tex @@ -1,19 +1,19 @@ \chapter{Erkenntnisse zur Platzierung robotischer Systeme} \label{ch:sota} -Den dargelegten Grundlagen beziehungsweise dessen Abschnitt zur Formulierung der Anforderungen ist zu entnehmen, dass die Platzierung robotischer Systeme innerhalb einer Domäne ein fundamentaler Bestandteil zur Schaffung kollaborative Multi-Roboter Arbeitsplätze ist. Die Einhaltung der physikalischen Beschränkungen bezüglich genutzter Roboter ist hierbei unerlässlich, um hinsichtlich ihrer Aufgabe und Position 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 \cite{Zacharias2007}. 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 \cite{Zacharias2009}. 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:4} zeigt die Reihenfolge der Komponenten im Algorithmus und stellt den Aufbau dieses Kapitels dar. +Den dargelegten Grundlagen beziehungsweise dessen Abschnitt zur Formulierung der Anforderungen ist zu entnehmen, dass die Platzierung robotischer Systeme innerhalb einer Domäne ein fundamentaler Bestandteil zur automatischen Schaffung kollaborative Multi-Roboter Arbeitsplätze ist. Die Einhaltung der physikalischen Beschränkungen bezüglich genutzter Roboter ist hierbei unerlässlich, um hinsichtlich ihrer Aufgabe und Position ein zufriedenstellendes Ergebnis zu erzielen. Einen Ansatz zur Erfassung dieser robotischer Grenzen konkretisieren Zacharias et al. in deren wissenschaftlichen Arbeit und kombiniert diesen in folgenden Publikationen mit zusätzlichen Aspekten der Kinematik \cite{Zacharias2007}. 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 \cite{Zacharias2009}. 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:4} zeigt die Reihenfolge der Komponenten im Algorithmus und stellt den Aufbau dieses Kapitels dar. \begin{figure}[h!] \centering \begin{tikzpicture} [start chain,node distance=1.6cm, auto, >=stealth'] \node[rounded corners, draw=black, thick, minimum height=3em, align=center, on chain] (RM) {Arbeitsraumanalyse}; - \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}; + \node[rounded corners, draw=black, thick, minimum height=3em, align=center, on chain, join=by {->}, right = of RM] (IRM) {Arbeitsrauminversion}; + \node[rounded corners, draw=black, thick, minimum height=3em, align=center, on chain, join=by {->}, right = of IRM] (Base) {Positionsanalyse}; \end{tikzpicture} \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:4} \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{Vahrenkamp2013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit einen Ansatz, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen $f_{kin}$, gezeigt in \autoref{eq:7}, auf eine feste Menge generierter Endeffektor-Posen $T \subset SE(3)$ in Form der Transformationen $^{0}T_{Endeff} \in T$ relativ zum $Frame_{0}$, das unmittelbare Umfeld des Roboters zu erfassen, um dieses Anhand einer Metrik zu charakterisieren. Alle Transformation $T$ zuzüglich der Information über dessen Erreichbarkeit bilden die 'reachability map' $RM$, welche persistiert wird \autoref{eq:8}. +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{Vahrenkamp2013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit einen Ansatz, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen $f_{kin}$, gezeigt in \autoref{eq:7}, auf eine feste Menge generierter Endeffektor-Posen $T \subset SE(3)$ in Form der Transformationen $^{0}T_{Endeff} \in T$ relativ zum $Frame_{0}$, das unmittelbare Umfeld des Roboters zu erfassen, um dieses Anhand einer Metrik zu charakterisieren. Alle Transformation $\in T$ zuzüglich der Information über dessen Erreichbarkeit bilden die 'reachability map' $RM$, welche persistiert wird \autoref{eq:8}. \begin{equation}\label{eq:7} f_{kin}:T \to \{0 | 1\} @@ -47,7 +47,7 @@ RM:= \{(t , f_{kin}(t)) | t \in T \} \caption{Abstrahierte Darstellung der Mengen $\protect P_{total}$ und $\protect OR_{total}$} \end{figure} -Das Paar aus einem Vektor $^{0}v \in \R^{3}$ und einer Rotation $^{0}R \in SO(3)$ bildet die Transformation $^{0}T_{Endeff}$ der Pose des Endeffektors. Daraus ist abzuleiten, dass die Zusammenstellung einer Menge $P_{total}$ aus $^{0}v$ und die Generierung dessen zugehöriger Rotationen $^{0}R$, welche die Menge aller Orientierungen $OR_{total}$ definiert, abstrahiert betrachtet werden können, was \label{eq:10} zu entnehmen ist. Das Kreuzprodukt dieser Mengen beschreibt alle Endeffektor Posen in $T$ als die Grundlage anschließender kinematischer Berechnungen $f_{kin}$. \autoref{eq:9} visualisiert diese Mengen. +\label{eq:10} zeigt, dass ein Paar aus einem Vektor $^{0}v \in \R^{3}$ und einer Rotation $^{0}R \in SO(3)$ die Transformation $^{0}T_{Endeff}$ als Pose des Endeffektors bildet. Daraus ist abzuleiten, dass die Zusammenstellung einer Menge $P_{total}$ aus $^{0}v$ und die Generierung dessen zugehöriger Rotationen $^{0}R$, welche die Menge aller Orientierungen $OR_{total}$ definiert, abstrahiert erfolgt. Das Kreuzprodukt dieser Mengen beschreibt alle Endeffektor Posen $\in T$ als Grundlage anschließender kinematischer Berechnungen $f_{kin}$. \autoref{eq:9} visualisiert diese Mengen. \begin{equation} \label{eq:9} @@ -71,7 +71,7 @@ P_{total}:= \{(x, y, z)^{T} | q \in \R_{+}; x, y ,z \in [-q,q] \} 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$ im Abstand $a$ innerhalb des Intervalls $[-q,q]$ dar. Die Ermittlung der Kardinalität von $^{0}P_{total}$ ist implizit durch das Intervall $[-q,q]$ und der Auflösung $a$ gegeben, siehe \autoref{eq:12}. +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$ im Abstand $a$ innerhalb des Intervalls $[-q,q]$ dar. Wie \autoref{eq:12} zeigt, ist die Kardinalität der Menge $^{0}P_{total}$ implizit durch das Intervall $[-q,q]$ und der Auflösung $a$ gegeben. \begin{equation} \label{eq:12} @@ -79,7 +79,7 @@ Die kubische Diskretisierung des Arbeitsraums robotischer Systeme stellt ein Ver \end{equation} \subsection{Menge aller Orientierungen} -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 aus \autoref{eq:13}, die $^{0}s \in S^{2}$ 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 der Strecke zwischen Zentrum und Koordinate $^{0}s$ $\overline{sp}$ \cite{SphericalCoordinates}. \autoref{fig:6} veranschaulicht die genannten Winkel der sphärischen Polarkoordinaten im kartesischen Koordinatensystem als Referenz. Bezogen auf die Orientierung eines Körpers, können die Polarwinkel als Gier und Nick Winkel, bekannt aus \autoref{fig:1}, 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 der Menge $^{0}OR_{total}$ ist durch die Menge aller sphärischen Vektoren $^{0}s \in S^{2}$ und zusätzlicher Betrachtung der $Roll$ Winkel bestimmt, was der \autoref{eq:14} zu entnehmen ist. +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 einen Vektor $^{0}p$ aus den sphärischen Polarkoordinaten , die $^{0}s \in S^{2}$ auf der erzeugten Sphäre definieren. Die Menge $S^{2}$ aller Vektoren auf einer Sphäre ist in aus \autoref{eq:13} formuliert. 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 der Strecke zwischen Zentrum und Koordinate $^{0}s$ $\overline{sp}$ \cite{SphericalCoordinates}. \autoref{fig:6} veranschaulicht die genannten Winkel der sphärischen Polarkoordinaten im kartesischen Koordinatensystem als Referenz farblich. Bezogen auf die Orientierung eines Körpers, können die Polarwinkel als Gier und Nick Winkel eines Objektes interpretiert werden, welche die \autoref{fig:1} illustriert. Der zusätzlichen Roll Winkel $Roll \in [ \, 0,2 \pi \,)$ komplettiert die Rotation des Endeffektors und somit die Menge $OR_{total}$. Die Kardinalität der Menge $^{0}OR_{total}$ ist durch die Menge aller sphärischen Vektoren $^{0}s \in S^{2}$ und zusätzlicher Betrachtung der $Roll$ Winkel bestimmt, was der \autoref{eq:14} zu entnehmen ist. \begin{figure}[h!] \centering @@ -106,7 +106,7 @@ Die Menge $^{0}OR_{total}$ beschreibt alle möglichen Orientierungen, die für j \pic [draw = blue,fill=blue!50,fill opacity=.5, text=orange] {angle = x--origin--phi}; \pic [draw = orange,fill=orange!50,fill opacity=.5, text=orange] {angle = s--origin--z}; \end{tikzpicture} - \caption{Visualisierung der Winkel Azimut $\protect \theta$ und Colatitude $\protect \phi$ in blau beziehungsweise orange, dabei ist $\protect \overline{sp}$ die Strecke zwischen Zentrum p einer Koordinate $\protect s \in S^{2}$ auf der Sphäre.}\label{fig:6} + \caption{Visualisierung der Winkel Azimut $\protect \theta$ und Colatitude $\protect \phi$ in den Farben blau beziehungsweise orange, dabei ist $\protect \overline{sp}$ die Strecke zwischen Zentrum p und einer Koordinate $\protect s \in S^{2}$ auf der Sphäre.}\label{fig:6} \end{figure} \begin{equation} @@ -120,7 +120,7 @@ S^{2} := \{s \in \R^{3} | \vert \overline{sp} \vert = r\} \end{equation} \subsubsection{Orientierungen durch Zufallsverfahren} -Sphärische Diskretisierungen, dessen Verteilung der Vektoren $s$ keinem Schema folgen oder an räumliche Parameter gebunden sind, verteilen die Vektoren einer Sphäre nach Pseudozufallsverfahren. Die Anzahl der zu verteilenden Vektoren ist durch eine Zahl $n \in \N$ gekennzeichnet und stellt die Initialisierung des Verfahrens da. Die Kardinalität von $S^{2}$ lässt sich daher eindeutig bestimmen. +Sphärische Diskretisierungen, deren Verteilung bezüglich dessen Vektoren $s$ keinem Schema folgen oder an räumliche Parameter gebunden sind, verteilen diese nach Pseudozufallsverfahren. Die Anzahl der zu verteilenden Vektoren ist durch eine Zahl $n \in \N$ gekennzeichnet und stellt die Initialisierung des Verfahrens da. Die Kardinalität von $S^{2}$ lässt sich daher eindeutig bestimmen. \begin{equation} \label{eq:15} @@ -128,7 +128,7 @@ Sphärische Diskretisierungen, dessen Verteilung der Vektoren $s$ keinem Schema \end{equation} \subsubsection{ungleichmäßige sphärische Diskretisierung} -Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ hinsichtlich fester 'Auflösungen' $p, 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 von $ S^{2}$ nach diesem Verfahren ist anhand der gewählten Auflösungen $p, q$ und der Winkelintervalle nach \autoref{eq:16} berechenbar. +Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ hinsichtlich fester 'Auflösungen' $p, 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 von $ S^{2}$ dieses Verfahrens ist anhand der gewählten Auflösungen $p, q$ und der Winkelintervalle nach \autoref{eq:16} berechenbar. \begin{equation} \label{eq:16} @@ -136,10 +136,10 @@ Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ hinsichtlich fester 'A \end{equation} \subsubsection{gleichmäßige sphärische Diskretisierung} -Die äquidistante Verteilung einer festen Zahl $n \in \N$ Vektoren auf einer Sphäre ist ein mathematisches Problem, dessen Lösung eine umfassende Bedeutung für Forschungsfelder der Biologie, Chemie und Physik aufweist. Beispielsweise basieren das Tammes's problem oder hard-spheres problem auf dieser Problemstellung, angewendet auf der Modellierung fluider Partikel \cite{Saff1997}. Algorithmen zu diesem Kontext approximieren dieses Ziel, wobei die Distanzen auf der Sphäre minimalen Abweichungen unterliegen und in Spezialfällen die Anforderung einer äquidistanten Verteilung erfüllen. Die Kardinalität $\vert S^{2} \vert$ ist analog zu \autoref{eq:15} durch $n$ gegeben. +Die äquidistante Verteilung einer festen Zahl $n \in \N$ Vektoren auf einer Sphäre ist ein mathematisches Problem, dessen Lösung eine umfassende Bedeutung für Forschungsfelder der Biologie, Chemie und Physik aufweist. Beispielsweise basieren das Tammes's Problem oder hard-spheres Problem auf dieser Problemstellung, bezogen auf der Modellierung fluider Partikel \cite{Saff1997}. Algorithmen zu diesem Kontext approximieren dieses Ziel, wobei die Distanzen auf der Sphäre minimalen Abweichungen unterliegen und in Spezialfällen die Anforderung einer äquidistanten Verteilung erfüllen. Die Kardinalität $\vert S^{2} \vert$ ist analog zu \autoref{eq:15} durch $n$ gegeben. \subsection{Arbeitsraumcharakterisierung} -Als Metrik $D_{Reach}$, welche die \autoref{eq:18} zeigt, zur Klassifizierung der Erreichbarkeit eines Vektors $^{0}v_{Endeff}$ dient die Gegenüberstellung der Menge $OR_{v}$ aller Orientierungen $(v, ^{0}R_{Endeff}, f_{kin}) \subset RM$ aus \autoref{eq:17}, die der Endeffektor für den Vektor $^{0}v_{Endeff}$ während der Berechnungen erfolgreich einnehmen kann, gegenüber der Menge $OR_{total}$ aller generierten und operierten Orientierungen für $^{0}v_{Endeff}$. +\autoref{eq:18} formuliert die Metrik $D_{Reach}$ zur Klassifizierung der Erreichbarkeit eines Vektors $^{0}v_{Endeff}$. Hierzu erfolgt eine Gegenüberstellung der Menge $OR_{v}$ aller Orientierungen $R$ zu einem Vektor $v$, die der Endeffektor für den Vektor $^{0}v_{Endeff}$ während der Berechnungen erfolgreich einnehmen kann, gegenüber der Menge $OR_{total}$ aller generierten und operierten Orientierungen für $^{0}v_{Endeff}$ \cite{Porges2015}. \begin{equation} \label{eq:17} @@ -154,16 +154,16 @@ D_{Reach}(v) &= \frac{\vert OR_{v} \vert}{\vert OR_{total} \vert} \end{split} \end{equation} -\section{Invertierter Arbeitsraum} -Der invertierte Arbeitsraum beschreibt nach Vahrenkamp et al. alle Posen relativ zum Endeffektor sphärisch um den Ausgangsframe $Frame_{0}$, von denen aus das robotische System den Koordinatenursprung des Frames erreicht \cite{Vahrenkamp2013}. Dazu beschreibt dieser Prozess die Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$ der $RM$ und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierende Menge enthält nach \autoref{eq:5} Transformationen der Form $^{Endeff}T_{0}$, welche dessen Basispose beschreiben. Diese Informationen werden als 'inverse reachability map' $IRM$ persistiert, welche durch die \autoref{eq:19} definiert ist. +\section{Arbeitsrauminversion} +Der invertierte Arbeitsraum beschreibt nach Vahrenkamp et al. alle Posen relativ zum Endeffektor, sphärisch um den Ursprung des $Frame_{0}$ verteilt, von denen aus das robotische System den Ursprung Frames erreicht \cite{Vahrenkamp2013}. Dazu beschreibt dieser Prozess die Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$ der $RM$ und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierende Menge enthält nach \autoref{eq:5} Transformationen der Form $^{Endeff}T_{0}$, welche dessen Basispose beschreiben. Diese Informationen werden als 'inverse reachability map' $IRM$ persistiert, welche durch die \autoref{eq:19} definiert ist. \begin{equation} \label{eq:19} IRM := \{((v,R)^{-1}, D_{Reach}(v)) | ((v,R),d) \in RM \} \end{equation} -\section{Analyse der Positionen} -Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basis Positionen $P_{Base}$ eines robotischen Systems, welche sich nach \autoref{eq:20} aus der Matrix Multiplikation mit dem invertierten Arbeitsraum $IRM$ und Posen spezifischer Aufgaben $^{0}a$ ergeben. Die Metrik wird dabei nach der Kalkulation auf $P_{Base}$ abgebildet und beschreibt die Zuverlässigkeit dieser Pose \cite{Makhal2018}. Komplexe Aufgaben mit einer Anzahl $n \in \N : n > 2$ Posen $^{0}a$, welche der Roboter operieren muss, skalieren die Menge aller Basen $P_{Base}$ um $n$. Dabei ist die Verteilung der Vektoren $^{0}p_{Base} \in P_{Base}$ unregelmäßig, beispielsweise gruppieren sie Aufeinander oder sind vernachlässigbar voneinander distanziert. Eine Methode, innerhalb dieser enormen Datenmenge eine optimale Position zur Ausführung der Aufgaben zu entnehmen, ist die Voxelisierung. Dieses Verfahren, ähnlich der kubischen Diskretisierung, erzeugt einen Hyperwürfel innerhalb eines festen Intervalls $[-q, q] \in \R$, welcher aus $k \in \N$ disjunkten Voxeln besteht, dessen Zentren jeweils um eine Auflösung $u \in \R_{+}$ distanziert sind. Jeder Voxel enthält eine Teilmenge $TP_{0} ...TP_{k}\subset P_{Base}$ der Basispositionen, die abstrahiert voneinander betrachtet werden. Diese Abbildung der Vektoren $^{0}p_{Base}$ auf Voxel implementiert eine Abtastung, wobei die Wertigkeit eines Voxels durch sein Zentrum und dessen Inhalt repräsentiert wird. Gleichermaßen dezimiert diese Darstellung das Lösungsspektrum der Aufgabenabhängigen Kardinalität von $P_{Base}$ auf die Anzahl aller Voxel $k$. +\section{Positionsanalyse} +Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basispositionen $P_{Base}$ eines robotischen Systems, welche sich nach \autoref{eq:20} aus der Matrix Multiplikation mit dem invertierten Arbeitsraum $IRM$ und Posen spezifischer Aufgaben $^{0}a \in A$ ergeben. Die Metrik wird dabei nach der Kalkulation auf $P_{Base}$ abgebildet und beschreibt die Zuverlässigkeit dieser Posen \cite{Makhal2018}. Komplexe Aufgaben mit der Anzahl $n \in \N : n > 2$ Posen $^{0}a$, welche der Roboter operieren muss, skalieren die Menge aller Basen $P_{Base}$ um $n$. Dabei ist die Verteilung der Vektoren $^{0}p_{Base} \in P_{Base}$ unregelmäßig, beispielsweise gruppieren sie Aufeinander oder sind vernachlässigbar voneinander distanziert. Eine Methode, innerhalb dieser enormen Datenmenge eine optimale Position zur Operation der Aufgaben zu entnehmen, ist die Voxelisierung. Dieses Verfahren, ähnlich der kubischen Diskretisierung, erzeugt einen Hyperwürfel innerhalb eines festen Intervalls $[-q, q] \in \R$, welcher aus $k \in \N$ disjunkten Voxeln besteht, dessen Zentren jeweils um eine Auflösung $u \in \R_{+}$ distanziert sind. Jeder Voxel enthält eine disjunkte Teilmenge $TP_{0} ...TP_{k-1}\subset P_{Base}$ der Basispositionen, die abstrahiert voneinander betrachtet werden. Diese Abbildung der Vektoren $^{0}p_{Base}$ auf Voxel implementiert eine Abtastung, wobei die Wertigkeit eines Voxels durch sein Zentrum und dessen Inhalt repräsentiert wird. Gleichermaßen dezimiert diese Darstellung das Lösungsspektrum der Aufgabenabhängigen Kardinalität von $P_{Base}$ auf die Anzahl aller Voxel $k$. \begin{equation} @@ -175,21 +175,26 @@ P_{Base} &:= \{(a \times t, d) | (t, d) \in IRM , a \subset SE(3) \} \\ \end{equation} \subsection{Charakterisierung eines Voxels} -Nun erfolgt die Eruierung des Algorithmus von Makhal et al. \cite{Makhal2018}, welcher alle $k$ Voxel charakterisiert und anhand dessen enthaltener Vektoren $^{0}p_{Base}$ bestimmt, welcher sich bevorzugt für die Platzierung des robotischen Systems eignet. Dies erfolgt durch eine weitere Metrik $D_{voxel}$ in \autoref{eq:22}, die sich aus dem arithmetischen Mittel $D_{Reach}^{average}$ eines Voxels und dem Verhältnis von dessen Mächtigkeit zum maximalen Voxel $TP_{max}$ ergibt. $TP_{max}$ ist das Resultat einer Iteration Über alle $k$ Voxel, welche im Anschluss an die Voxelisierung erfolgt. Demnach lässt ein Voxel mit hoher Kardinalität darauf schließen, dass Posen verschiedener Aufgaben von ihm erreichbar sind. Die Metrik $D_{voxel}$ bewertet demnach ein Voxel anhand dessen Inhalts und Mächtigkeit, wobei die Voxel mit der maximalen Wertigkeit eine valide Position des robotischen Systems für alle $n = \vert a \vert$ Posen der Aufgabe darstellt. +Nun erfolgt die Eruierung des Algorithmus von Makhal et al. \cite{Makhal2018}, welcher alle $k$ Voxel charakterisiert und anhand dessen enthaltener Vektoren $^{0}p_{Base}$ bestimmt, welcher Voxel sich bevorzugt für die Platzierung des robotischen Systems eignet. Dies erfolgt durch eine weitere Metrik $D_{voxel}$ in \autoref{eq:22}, die sich aus dem arithmetischen Mittel $D_{Reach}^{average}$ eines Voxels und dem Verhältnis von dessen Mächtigkeit zum maximalen Voxel $TP_{max}$ ergibt. \begin{equation} +\label{eq:22} \begin{split} -\label{eq:21} -D_{voxel}^{average}:TP & \to [0,1] \\ -D_{voxel}^{average}(TP)&= \frac{\displaystyle\sum_{i=0}^{\vert TP \vert } p_{i}.d \in TP}{\vert TP \vert} +D_{voxel}:TP & \to [0,1] \\ +D_{voxel}(TP) &= D_{voxel}^{average}(TP) \times \frac{\vert TP \vert}{\vert TP_{max} \vert} \end{split} \end{equation} + +$TP_{max}$ ist das Resultat einer Iteration Über alle $k$ Voxel, welche im Anschluss an die Voxelisierung erfolgt. Demnach lässt ein Voxel mit hoher Kardinalität darauf schließen, dass Posen verschiedener Aufgaben von ihm erreichbar sind. Die Metrik $D_{voxel}$ bewertet demnach ein Voxel anhand dessen Inhalts und Mächtigkeit, wobei die Voxel mit der maximalen Wertigkeit eine valide Position des robotischen Systems für alle $n = \vert a \vert$ Posen der Aufgabe darstellt. + \begin{equation} -\label{eq:22} \begin{split} -D_{voxel}:TP & \to [0,1] \\ -D_{voxel}(TP) &= D_{voxel}^{average}(TP) \times \frac{\vert TP \vert}{\vert TP_{max} \vert} +\label{eq:21} +D_{voxel}^{average}:TP & \to [0,1] \\ +D_{voxel}^{average}(TP)&= \frac{\displaystyle\sum_{i=0}^{\vert TP \vert } D_{Reach}(p_{i})}{\vert TP \vert} \end{split} \end{equation} + +