From a6b63ccc63c0dc78e9fd6a6d4a01f4d4eed19f9f Mon Sep 17 00:00:00 2001 From: Matteo Anedda <matteo.anedda@mailbox.tu-dresden.de> Date: Mon, 18 Oct 2021 08:20:27 +0200 Subject: [PATCH] ... --- sections/grundlagen.tex | 48 ++++++++++---- sections/konzept.tex | 134 +++++++++++++++++++++++++++++++++++++--- thesis.tex | 2 + 3 files changed, 163 insertions(+), 21 deletions(-) diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index 2319517..c179f16 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -13,15 +13,14 @@ Diskretisierung ist ein Prozess der Zerlegung einer kontinuierliche Oberfläche Robotische Systeme setzen sich aus einer Menge an Festkörpern deren Verknüpfungen durch verschiedene Gelenktypen zusammen. Ein solches System kann geschlossen sein, indem die Verknüpfungen aus Festkörpern einen Kreis bilden, oder ein offenes System sein. Ein offenes robotisches System bildet eine offene kinematische Kette, dessen letztes Glied als Endeffektor deklariert ist, während der erste Festkörper die Basis darstellst. Roboterarme sind Beispiele für offene robotische Systeme mit offener kinematischer Kette und Bezugspunkt dieser wissenschaftlichen Arbeit. Nähere Informationen über die Kopplung spezifischer Bestandteile werden in der zugehörigen URDF Datei des Roboters dokumentiert. Diese Dateien sind XML Erweiterungen und bieten als solche einen entsprechenden erweiterten Funktionsumfang. Demzufolge können anhand zusätzlicher Informationen in Form von $tags$ Limitierungen bezüglicher der Achsen, Verweise auf andere URDF-Dateien und 3-D Model Dateien festgelegt werden. Neben der Möglichkeit, einen eigenen Roboter mittels URDF zu konstruieren, werden fertige Roboter von offizieller Seite bereitgestellt, wodurch ein Einblick in umfangreichere URDF-Dateien ermöglicht wird und der Aufwand der Erstellung entfällt. \section{Kinematik} -Angewendete Methoden dieser wissenschaftlichen Arbeit fundieren auf Konzepten der Kinematik. Die Kinematik ist ein Teilbereich der Physik, welcher die Bewegung von Festkörpern in robotischen Systemen, abstrahierend von den daraus resultierenden Kräften und Momenten, umfasst. Ein wesentlicher Aspekt ist die Repräsentation der Position und Orientierung von Körpern im Raum und deren Relation, sowie der Geometrie robotischer Mechanismen. Terminologien wie Pose und Referenzkoordinatensystem (Frame) dienen zum Verständnis folgender, komplizierterer Prinzipien und werden daher näher beschrieben. \par +Angewendete Methoden dieser wissenschaftlichen Arbeit fundieren auf Konzepten der Kinematik. Die Kinematik ist ein Teilbereich der Physik, welcher die Bewegung von Festkörpern in robotischen Systemen, abstrahierend von den daraus resultierenden Kräften und Momenten, umfasst. Ein wesentlicher Aspekt ist die Repräsentation der Position und Orientierung von Körpern im 3-dimensionalen Raum und deren Relation zueinander, sowie der Geometrie robotischer Mechanismen. Terminologien wie Pose und Referenzkoordinatensystem (Frame) und deren Relationen sind existenzieller Bestandteil späterer Ausführungen dieser wissenschaftlichen Arbeit und werden daher in diesem Kapitel näher erläutert. \par \subsection{Pose, Position und Orientierung} -Die Kombination aus Position und Orientierung eines Festkörpers relativ zu einem Frame definiert eine bestimmte Pose, das heißt die Koordinaten ihrer Position werden relativ zum betrachteten Frame repräsentiert. -Jeder Festkörper definiert durch 3 orthogonale Basisvektoren und einen Koordinatenursprung $ p_i \in O_i$ dessen Frame. -Posen, Verschiebungen und Rotationen fester Körpers werden mittels zugehöriger Frames definiert. +Die Kombination aus Position und Orientierung eines Festkörpers relativ zu einem Frame definiert eine $Pose$, diese wird relativ zu einem Frame notiert. Frames bestehen aus einem Koordinatenursprung und dessen orthogonalen Basisvektoren $( v_{0}, v_{1}, v_{2})$. Beispielsweise beinhaltet das bekannte Referenzkoordinatensystem $Frame_{0}$ den Ursprung $(0,0,0)^{T}$ und Basisvektoren $( (0,0,1)^{T}, (0,1,0)^{T}, (1,0,0)^{T})$, auf Grundlage dessen eine Pose $^{0}Pose$ definiert und repräsentiert werden kann. Ein robotisches System definiert für jeden seiner $n \in \N$ Festkörper einen Frame. \subsubsection{Position} Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch den Vektor $^{j}p_{i} \in \R^{3}$ gekennzeichnet. + \begin{equation} ^{j}p_{i} = \begin{pmatrix} ^{j}p_{i}^{x} \\ @@ -29,16 +28,27 @@ Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch den Ve ^{j}p_{i}^{z} \\ \end{pmatrix} \end{equation} - -Die Elemente des Vektors $^{j}p_{i}$ sind kartesische Koordinaten aus $O_i$ relativ zum $j$ Frame, -die auf die jeweilige Achse projiziert werden. +Aus ... ist ersichtlich, dass die Elemente des Koordinatenursprungs von $i$ auf Koordinaten relativ zu $j$ referenzieren. Diese Abhängigkeit besteht analog bei den Frames eines Roboters, die jeweils auf ihren Vorgänger der kinematischen Kette verweisen. \subsubsection{Orientierung} -Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper angewendet werden können. In der Robotik existieren mehrere Ansätze zur mathematischen Beschreibung von Rotationen, welche sich konzeptuell unterscheiden. Beispielsweise kann eine Rotation durch Kompositionen aus Rotations-Matrizen oder der Anwendung von komplexen Zahlen realisiert werden. -Die Menge aller Rotations-Matrizen $R$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$. Die Komposition aus Rotationen $R$ ist demnach ebenfalls $\in SO(3)$ und die Rotation zwischen verschiedenen Frames kann mit $^{k}R_{i}$ = $^{k}R_{j} \times ^{j}R_{i}$ realisiert werden, wobei die Reihenfolge der Multiplikation nicht beliebig ist. +Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper angewendet werden können. In der Forschungsgebiet Robotik und Computergrafik existieren verschiedene Ansätze zur mathematischen Beschreibung einer Rotation, welche sich konzeptuell unterscheiden. Beispielsweise kann eine Rotation durch Kompositionen aus Rotations-Matrizen oder der Anwendung komplexer Zahlen realisiert werden. Die spezielle RPY-Rotation, welche auf den Rotationswinkeln eines Körpers hinsichtlich seiner Achsen basiert, wird in Abb ... visualisiert. +Die Menge aller Rotations-Matrizen $R \in \R^{3 \times 3}$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$, siehe .... + +\begin{align*} +&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*} + +Die Komposition von Rotationen verschiedener Frames wird in Gleichung ... veranschaulicht. Dabei ist die Einhaltung der Reihenfolge bezüglich der Multiplikation, aufgrund der mangelnden Kommutativität, erforderlich. Durch die Eigenschaft der Geschlossenheit der Gruppe SO(3), ist das Resultat dieser Multiplikation ebenfalls $\in SO(3)$. + +\begin{equation} +^{k}R_{i} = ^{k}R_{j} \times ^{j}R_{i} +\end{equation} -\subsection{homogene Transformation} -Eine Transformationsmatrix {T} ist eine $4\times4$ Matrix, bestehend aus Rotationsmatrix $R \in SO(3)$ und einem Translationsvektor $p \in \R ^{3}$. Sie ermöglicht die synchrone Ausführung von Translation und Rotation, wobei eine Translation die Verschiebung eines beliebigen Vektors $u \in {R}^3$ an eine andere Position beschreibt, ohne sich auf dessen Orientierung auszuwirken. Transformationsmatrizen bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$. Aus Frame Rotationen $^{j}R_{i}$ und Koordinatenursprüngen $^{j}p_{i}$ bestehende Transformationsmatrizen $^{j}T_{i}$ beschreiben die Transformation eines Vektors $^{i}u$ in den Vektor $^{j}u$. +\subsubsection{homogene Transformation} +Eine homogene Matrix $T \in \R^{4\times4}$, bestehend aus Rotationsmatrix $R \in SO(3)$ und einem Vektor $p \in \R ^{3}$, beschreibt eine Transformations-Matrix, siehe ... .Sie ermöglicht die synchrone Ausführung von Translation und Rotation, wobei eine Translation die Verschiebung eines beliebigen Vektors beschreibt, ohne sich auf dessen Orientierung auszuwirken. ... Aus Frame Rotationen $^{j}R_{i}$ und Koordinatenursprüngen $^{j}p_{i}$ bestehende Transformationsmatrizen $^{j}T_{i}$ beschreiben die Transformation eines Vektors $^{i}u$ in den Vektor $^{j}u$. \begin{equation} \label{trNormal} @@ -68,10 +78,24 @@ T = \begin{pmatrix} \end{pmatrix} \end{equation} -Die dadurch entstehende Transformation $^{j}T_{i}$ stellt eine Transformation von Frame $j$ nach Frame $i$ durch Translation $^{j}p_{i}$ und Rotation $^{j}R_{i}$ da. +Die dadurch entstehende Transformation $^{j}T_{i}$ stellt einen Übergang von Frame $j$ nach Frame $i$ durch Translation $^{j}p_{i}$ und Rotation $^{j}R_{i}$ da. Die Komposition aus Transformationen $ T \in SE(3)$ ermöglicht Transformationen zwischen mehreren Frames $^{k}T_{i}$ = $^{k}T_{j} \times ^{j}T_{i}$, wobei die Reihenfolge Analog zu Rotation nicht beliebig ist. Durch dieser Komposition aus Transformationen lässt sich die kinematische Kette eines aus verknüpften Festkörpern bestehenden offenen Roboter Systems wie in ... beschreiben. +Transformationsmatrizen $T$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$, wie ... zeigt. +\begin{align*} +&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*} + +Die Komposition von Transforamtionen verschiedener Frames wird in Gleichung ... veranschaulicht. Dabei ist die Einhaltung der Reihenfolge bezüglich der Multiplikation, aufgrund der mangelnden Kommutativität, erforderlich. Durch die Eigenschaft der Geschlossenheit der Gruppe SE(3), ist das Resultat dieser Multiplikation ebenfalls $\in SE(3)$. + +\begin{equation} +^{k}T_{i} = ^{k}T_{j} \times ^{j}T_{i} +\end{equation} + \begin{equation} \label{RobotEq} %^{n}T_{0}= \prod \limits_{i=1}^{n} ^{i-1}a_{i} diff --git a/sections/konzept.tex b/sections/konzept.tex index 5f68e0b..0e283c4 100644 --- a/sections/konzept.tex +++ b/sections/konzept.tex @@ -1,10 +1,82 @@ \chapter{Konzept}\label{ch:concept} -Die effiziente Platzierung robotischer Systeme ist ein fundamentaler Bestandteil zur Schaffung kollaborative Multi-Roboter Arbeitsräume. Wissenschaftliche Arbeiten charakterisieren 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, basierend auf den Grundlagen der Kinematik, die Arbeitsraumanalyse robotischer Systeme. 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 bestehender Erkenntnisse vorangegangener Wissenschaftlicher Arbeiten um die Anwendung auf mehrere robotische Systeme. Diese Erweiterung ermöglicht die automatisiert Schöpfung kollaborative Multi-Roboter Arbeitsräume. +Die effiziente Platzierung robotischer Systeme ist ein fundamentaler Bestandteil zur Schaffung kollaborative Multi-Roboter Arbeitsräume. (in einleitung) +Wie im vorherigen Kapitel gezeigt, 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, basierend auf den Grundlagen der Kinematik, die Arbeitsraumanalyse robotischer Systeme. 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 Erkenntnisse vorangegangener Wissenschaftlicher Arbeiten um die Anwendung auf mehrere robotische Systeme. Diese Erweiterung ermöglicht die automatisiert Schöpfung kollaborative Multi-Roboter Arbeitsräume. + +\newcommand\pgfmathsinandcos[3]{% + \pgfmathsetmacro#1{sin(#3)}% + \pgfmathsetmacro#2{cos(#3)}% +} +\newcommand\LongitudePlane[3][current plane]{% + \pgfmathsinandcos\sinEl\cosEl{#2} % elevation + \pgfmathsinandcos\sint\cost{#3} % azimuth + \tikzset{#1/.style={cm={\cost,\sint*\sinEl,0,\cosEl,(0,0)}}} +} +\newcommand\LatitudePlane[3][current plane]{% + \pgfmathsinandcos\sinEl\cosEl{#2} % elevation + \pgfmathsinandcos\sint\cost{#3} % latitude + \pgfmathsetmacro\yshift{\cosEl*\sint} + \tikzset{#1/.style={cm={\cost,0,0,\cost*\sinEl,(0,\yshift)}}} % +} +\newcommand\DrawLongitudeCircle[2][1]{ + \LongitudePlane{\angEl}{#2} + \tikzset{current plane/.prefix style={scale=#1}} + % angle of "visibility" + \pgfmathsetmacro\angVis{atan(sin(#2)*cos(\angEl)/sin(\angEl))} % + \draw[current plane] (\angVis:1) arc (\angVis:\angVis+180:1); + \draw[current plane,dashed] (\angVis-180:1) arc (\angVis-180:\angVis:1); +} +\newcommand\DrawLatitudeCircle[2][2]{ + \LatitudePlane{\angEl}{#2} + \tikzset{current plane/.prefix style={scale=#1}} + \pgfmathsetmacro\sinVis{sin(#2)/cos(#2)*sin(\angEl)/cos(\angEl)} + % angle of "visibility" + \pgfmathsetmacro\angVis{asin(min(1,max(\sinVis,-1)))} + \draw[current plane] (\angVis:1) arc (\angVis:-\angVis-180:1); + \draw[current plane,dashed] (180-\angVis:1) arc (180-\angVis:\angVis:1); +} + + +\begin{tikzpicture} % "THE GLOBE" showcase +\def\R{2.5} % sphere radius +\def\angEl{35} % elevation angle +\filldraw[ball color=white] (0,0) circle (\R); +\foreach \t in {-80,-60,...,80} { \DrawLatitudeCircle[\R]{\t} } +\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) {}; + \node[] at (-\r/5, -\r/3) (x) {x}; + \node[] at (\r, 0) (y) {y}; + \node[] at (0, \r) (z) {z}; + + + \draw [-stealth] (origin) -- (s); + \draw [-stealth] (origin) -- (x); + \draw [-stealth] (origin) -- (y); + \draw [-stealth] (origin) -- (z); + + \draw[dashed] (origin) -- (\r/3, -\r/5) node (phi) {} -- (s); + + \draw (origin) circle (\r-0.2); + \draw[dashed] (origin) ellipse (\r-0.2 and 2.8/3); + + % Angles + \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{A caption.} +\end{figure} + \section{Arbeitsraumanalyse robotischer Systeme} Vahrenkamp et al. beschreiben in der Publikation die Analyse des Arbeitsraums eines robotischen Systems als Ausgangspunkt der Berechnung seiner optimalen Position hinsichtlich dessen Aufgabe \cite{Vahrenkamp.5620135102013}. Demzufolge stellt sie den ersten Abschnitt dieses Kapitels dar. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit einen Ansatz, 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 Koordinatenursprung \cite{Zacharias.102920071122007}. -Dazu erfolgt zunächst eine kubische Diskretisierung, die durch Angabe einer festen 'Auflösung' das Umfeld des Roboters in Vektoren $^{0}p \in \R^{3}$ in ein reguläres Gitter unterteilt. Der daraus entstehende diskretisierte Würfel aus Vektoren stellt die Menge aller zu analysierenden Ursprünge $^{0}p_{Endeff} \in ^{0}T_{Endeff}$ des Endeffektors dar. Als Metrik $D_{Reach}(p)$ zur Klassifizierung der Erreichbarkeit eines Vektors $^{0}p_{Endeff}$ dient die Gegenüberstellung der Menge $OR_{suc}(p)$ aller Orientierungen $^{0}R_{Endeff} \in ^{0}T_{Endeff}$, die der Endeffektor während der Berechnungen erfolgreich einnehmen kann, gegenüber der Menge $OR_{total}$ aller möglichen Orientierungen, die für jeden Vektor generiert und operiert werden. Anschließend werden die resultierenden $^{0}T_{Endeff}$ mit der Information über dessen Erreichbarkeit persistiert und bilden die 'reachability map'.\par -Die Komplexität dieses Verfahrens kann demzufolge mittels der $\mathcal{O}()$ Funktion zeitlich und räumlich Eingeordnet werden. Die Anzahl der auszuführenden Operationen ist das Produkt aller Vektoren und dem Set aller Orientierungen, die für den Endeffektor pro Vektor geprüft werden müssen. Während der sphärischen Diskretisierung, dem Prozess zur Generierung aller Orientierung $OR_{total}$, werden Vereinfachungen festgelegt, dessen Einfluss die Komplexität dezimiert. \par +Dazu erfolgt zunächst eine kubische Diskretisierung, die durch Angabe einer festen 'Auflösung' das Umfeld des Roboters in ein reguläres Gitter unterteilt. Der daraus entstehende diskretisierte Würfel aus Vektoren stellt die Menge aller zu analysierenden Ursprünge $^{0}p_{Endeff} \in ^{0}T_{Endeff}$ des Endeffektors dar. Als Metrik $D_{Reach}(p)$ zur Klassifizierung der Erreichbarkeit eines Vektors $^{0}p_{Endeff}$ dient die Gegenüberstellung der Menge $OR_{suc}(p)$ aller Orientierungen $^{0}R_{Endeff} \in ^{0}T_{Endeff}$, die der Endeffektor während der Berechnungen erfolgreich einnehmen kann, gegenüber der Menge $OR_{total}$ aller möglichen Orientierungen, die für jeden Vektor generiert und operiert werden. Anschließend werden die resultierenden $^{0}T_{Endeff}$ mit der Information über dessen Erreichbarkeit persistiert und bilden die 'reachability map'.\par +Die Komplexität dieses Verfahrens kann demzufolge zeitlich und räumlich Eingeordnet werden. Die Anzahl der auszuführenden Operationen ist das Produkt aller Vektoren und dem Menge aller Orientierungen, die für den Endeffektor pro Vektor geprüft werden müssen. Während der sphärischen Diskretisierung, dem Prozess zur Generierung aller Orientierung $OR_{total}$, werden Vereinfachungen festgelegt, dessen Einfluss die Komplexität dezimiert. \par Aufgrund des hohen Zeitbedarfs, empfiehlt sich die vollständige Auslagerung auf das Hochleistungsrechenzentrum der TU-Dresden, um die Berechnungen mit dem Gitlab.Ci Interface über große Zeiträume vorzunehmen. \begin{equation} @@ -16,17 +88,61 @@ D_{Reach}(p) = \frac{\vert OR_{suc}(p) \vert}{\vert OR_{total} \vert} \end{equation} \subsection{Sphärische Diskretisierung} -Die sphärische Diskretisierung beschreibt 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$. Ziel dieses Prozesses ist die Generierung aller Orientierungen für $p$ durch die sphärischen Polarkoordinaten, die $s$ auf der erzeugten Sphäre definieren. Demnach beschreiben Azimut $\theta \in [ \, 0,2 \pi \,)$ den Winkel auf der XY Ebene des kartesischen Koordinatensystems und Colatitude $\phi \in [ \, 0,\pi \,]$ 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 das Set aller Orientierung $OR_{total}$. Um die Komplexität zu beschränken, wird basierend auf der Bauart eines Roboterarms die Annahme getroffen, dass der Endeffektor zu jeder Zeit eine vollständige Drehung vollziehen kann. Dies dezimiert die Kardinalität $\vert OR_{total} \vert$ und spart eine Dimension an Berechnungen während der Analyse. -Eine weitere Vereinfachung stellt die Annahme dar, dass Objekte nicht unterhalb ihres Ursprungs gegriffen werden können. Dies stellt ein eine Halbierung bezüglich des Orientierungssets dar.\par +Die sphärische Diskretisierung beschreibt 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$. Ziel dieses Prozesses ist die Generierung aller Orientierungen für $p$ durch die sphärischen Polarkoordinaten, die $s$ auf der erzeugten Sphäre definieren. Demnach 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 das Set aller Orientierungen $OR_{total}$. Um die Komplexität zu beschränken, wird basierend auf der Bauart eines Roboterarms die Annahme getroffen, dass der Endeffektor zu jeder Zeit eine vollständige Drehung vollziehen kann. Dies dezimiert die Kardinalität $\vert OR_{total} \vert$ und spart eine Dimension an Berechnungen während der Analyse. +Eine weitere Vereinfachung stellt die Annahme dar, dass Objekte nicht von unten gegriffen werden können. Dies stellt eine Halbierung bezüglich des Orientierungssets dar.\par Das Abtasten dieser Winkelintervalle basierend auf einer festen Auflösung generiert ein ungleichmäßiges sphärisches Gitter, wodurch die Vektoren s nicht äquidistant verteilt sind. Zusätzlich ist die Distanz der Vektoren an den Polen marginal. Diese Beobachtungen implizieren, dass das resultierende Orientierungsset durch sein hohes Maß an ähnlichen und uneinheitlichen Orientierungen, für die Bewertung der Erreichbarkeit nicht geeignet ist. -Daraus ist abzuleiten, dass die Verteilung der Vektoren s für eine qualitative Repräsentationen der Erreichbarkeit des Vektors $^{0}p_{Endeff}$ durch den Endeffektor, sowie des zeitlichen Aufwandes aller kinematischen Berechnungen, maßgeblich ist. +Daraus ist abzuleiten, dass die Verteilung der Vektoren s für eine qualitative Repräsentation der Erreichbarkeit des Vektors $^{0}p_{Endeff}$ durch den Endeffektor, sowie der zeitlichen Aufwand aller kinematischen Berechnungen, maßgeblich ist. \begin{equation} S = \{s\in \R^{3} : \vert \overline{sp} \vert = r\} \end{equation} \subsubsection{Zufalls-basierte Verteilung} -Sphärische Diskretisierungen, dessen Verteilung keinem Schema folgt oder an räumliche Parameter gebunden ist, verteilen die Vektoren einer Sphäre nach Pseudozufallsverfahren. Die daraus entstehenden Orientierungen basieren demnach auf Zufall. Die Anzahl der zu verteilenden Vektoren ist durch eine Zahl $n \in \N$ gekennzeichnet und stellt die Initialisierung des Verfahrend da. Diese Analyse wird von ... ... vorgenommen, welche diese Art der Verteilung bezüglicher der Bewertung der Erreichbarkeit durch den Endeffektor als nachteilig charakterisiert. +Sphärische Diskretisierungen, deren Verteilung 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. + +\subsubsection{Gleichmäßige Verteilung} +Die äquidistante Verteilung einer festen Zahl $n \in \N$ Punkten auf einer Sphäre ist ein mathematisches Problem, dessen Lösung eine umfassende Bedeutung für Forschungsfelder der Biologie, Chemie und Physik aufweist. Beispielsweise basiert das Tammes's problem oder hard-spheres problem auf dieser Problemstellung, welche die Modellierung fluider Partikel untersucht \cite{Saff.1997}. Die Distanz der Punkte auf der Sphäre unterliegt dabei minimalen Abweichungen und erfüllt in Spezialfällen die Anforderung einer äquidistanten Verteilung. 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 .... + +\begin{equation} +t = ^{0}T_{Endeff} +\end{equation} + +Eine persistierte 'reachability map' beinhaltet eine Liste aller Vektoren $p \in \R^{3}$ des kubisch diskretisierten Roboterumfeldes mit dessen zugehörigen Orientierungen $R \in SO(3)$, +für die kinematische Berechnungen erfolgreich terminieren, beziehungsweise die Transformation bestehend aus $(p,R) \in ^{0}T_{endeff}$ eine valide Endeffektor Pose ist. Für jede dieser validen Transformationen gilt nach ..., dass eine kinematische Kette der Form ... existiert. + +\begin{equation} +^{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. + +\begin{align*} +^{0}T_{Base} &= t \times ^{0}T_{Endeff} () \\ +^{0}T_{Base} &= t \times (^{0}T_{1} \times ^{1}T_{2} \times ... ^{n-1}T_{n})^{-1} () \\ +^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{n}T_{n-1} \times ... ^{Base}T_{0} () \\ +^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{n}T_{n-1} \times ... ^{2}T_{Base} () \\ +^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Base} () \\ +^{0}T_{Base} &= ^{0}T_{Base} () +\end{align*} + +Die Metrik aus ... wird dabei bei den inversen Transformationen $^{Endeffektor}T_{basis}$ übernommen +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. + +\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. + +\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. + +\subsection{Trajectory} +In dieser Aufgabengruppe bilden alle Positionen, die durch den Endeffektor erreicht werden sollen, eine 3-dimensionale Kurve. Algorithmen, die eine Kurve implementieren, 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. + +\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. -\subsubsection{gleichmäßige Verteilung} -Die äquidistante Verteilung einer festen Zahl $n \in \N$ Punkten auf einer Sphäre ist ein mathematisches Problem, dessen Lösung eine umfassende Bedeutung für Forschungsfelder der Biologie, Chemie und Physik hat. Beispielsweise basiert das Tammes's problem oder hard-spheres problem auf dieser Problemstellung, welches die Modellierung fluider Partikel untersucht \cite{Saff.1997}. Die Distanz der Punkte auf der Sphäre unterliegt dabei minimalen Abweichungen und erfüllt in Spezialfällen die Anforderung einer äquidistanten Verteilung. Methoden wie die Fibonacci- oder Spiral- Verteilungen bieten minimale Abweichungen, empfehlen sich daher für die Orientierungsgenerierung und bilden eine angemessene Repräsentieren 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 seiner Arbeit zur verteilungsbasierten sphärischen Diskretisierung eine Methode der gleichmäßigen Verteilung, welche bisher nicht zum Zweck der Roboterplatzierung genutzt wurde, seine Abweichung beläuft sich auf ... und ist eine der angewendeten Methoden in dieser wissenschaftlichen Arbeit \cite{Deserno.2004}. \ No newline at end of file +\section{Implementierung} diff --git a/thesis.tex b/thesis.tex index d1ee0c6..78137c3 100644 --- a/thesis.tex +++ b/thesis.tex @@ -78,6 +78,8 @@ \let\ellipsispunctuation\relax \input{lst.tex} +\usepackage{tikz} +\usetikzlibrary{positioning,arrows,calc,math,angles,quotes} \newcommand{\R}{\mathbb{R}} \newcommand{\N}{\mathbb{N}} -- GitLab