diff --git a/sections/fallbeispiel.tex b/sections/fallbeispiel.tex index 02391df0b6f78194a36a4eada1ec2cf868cb134f..dce969c40caf42babff8dba2ed58889145b6ccbd 100644 --- a/sections/fallbeispiel.tex +++ b/sections/fallbeispiel.tex @@ -105,7 +105,26 @@ Aufgabenbeschreibung: \end{lstlisting} \section{Positionsanalyse} -Der Algorithmus zur Ermittlung von Positionen robotischer Systeme bezüglich einer Aufgabenbeschreibungen erfordert diese und zusätzlich den invertierten Arbeitsraum als Parameter. 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 die differenzierte Voxelisierung kalkuliert, visualisiert die Wertigkeit eines Voxels. 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 in \autoref{sec:diffVoxel} beschriebene Algorithmus zur Ermittlung valider Basispositionen erfordert die Aufgabenbeschreibungen und zusätzlich den invertierten Arbeitsraum als Parameter. Die daraus kalkulierten Resultate werden als Marker Nachrichten aus \autoref{sec:marker} publiziert und als in RViz visualisiert. Die Nachrichten enthalten für jedes Kettenglied die resultierenden Basispositionen aus \autoref{eq:28}, deren Voxelisierung aus \autoref{sec:positioning}, die Schnittmenge pro Teilkette nach \autoref{sec:diffVoxel} und deren anschließenden Projektion auf die XY-Ebene des kartesischen Koordinatensystems, was dem \autoref{sec:ground} zu entnehmen ist. \autoref{lst:Goal} definiert die finale YAML-Datei, welche bezüglich der modellierten Operationskette, jedem Primitiv der Szene ein robotische System zuordnet. \autoref{lst:Goalschnitt} zeigt die Positionierungsdatei für das Beispiel aus \autoref{lst:schnitt}. Dabei enthält das Feld \texttt{Basispositionen} die Positionen mit der größten Bewertung pro Teilkette nach der Berechnung, welche dem \autoref{sec:diffVoxel} zu entnehmen ist. + +\begin{lstlisting}[language=JSON,firstnumber=1, caption={Positionsanalyse der Schnittaufgabe},captionpos=t, label={lst:Goalschnitt}] +Referenzsystem: Emika Franka 'Panda' +Name_der_Aufgabe: Schnitt +Roboter_Anzahl: 2 +Zeit: +Move_Groups: + objekt0: + panda_arm1: + - 0.000 -0.690 0.150 + - -0.550 -0.094 0.165 + objekt1: + panda_arm2: + - 0.073 0.479 0.176 + - -0.625 0.957 0.173 +Basispositionen: + panda_arm1: str % "x y z" + panda_arm2: str % "x y z" +\end{lstlisting} \section{Ausführung der Operationskette} Zur Ausführung der Operationskette ist ein weiterer Algorithmus implementiert, welcher die permutierten Informationen der Positionsanalyse aufruft und die robotischen Systeme an den kalkulierten Positionen initialisiert, um jeweils die Teilketten zu operieren. \ No newline at end of file diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index 502462b047a168523f579421da021d73fcbbc972..f578af521c579193fc794ed64ab61e2e226e2656 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -160,6 +160,7 @@ Während die textuelle Visualisierung primitiver Datentypen oder des Inhalts spe \end{figure} \subsubsection{Marker Elemente} +\label{sec:marker} Primitive wie Würfel, Pfeile oder Sphären sind Inhalt simple Marker Nachrichten, 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 zu analysieren. \subsubsection{Interaktive Marker Elemente} diff --git a/sections/konzept.tex b/sections/konzept.tex index 9f4994a257d086982a51030a80cf241dd6881b1f..274c0622796e0373ae34282dbd1f8b1405706307 100644 --- a/sections/konzept.tex +++ b/sections/konzept.tex @@ -272,6 +272,7 @@ Diese Betrachtung hat folgende Vorteile: Durch die Dokumentation der zugrundeliegenden Multiplikation jedes Kettenglieds einer Teilkette $^{0}k \in TK$, dessen Resultat eine Basisposition $^{0}p_{Base} \in P_{Base}$ ist, können durch eine Iteration ermittelt werden, welches Voxel Basisposition aller Kettenglieder einer Teilkette enthält. Dieser implementierte Filter gleicht der Definition einer Schnittmenge aus allen Basisposition pro Kettenglied einer Teilkette. Die Division des arithmetischen Mittels aus \autoref{eq:21}, angewendet auf diese gefilterten Voxel, mit der Kardinalität der Teilkette ergeben die Bewertung eines Voxels bezüglich der Teilkette. Diese differenzierte Betrachtung verhindert, dass Kettenglieder anderer Teilketten den Wert eines Voxels beeinflussen. \section{Platzierung der robotischen Systeme} +\label{sec:ground} Die Platzierung der robotischen Systeme erfolgt innerhalb der gewählten Domäne. Diese ist beispielsweise die Oberfläche eines oder mehrerer Tische, wie es im Ceti der Fall ist. Diese Oberfläche wird durch einen Bereich auf der XY Ebene imitiert, dessen Dimensionen angepasst werden können. Alle Voxel der Schnittmenge einer Teilkette werden dahingehend inspiziert, ob deren Basispositionen die gewählte Domäne schneiden. Anschließend erfolgt die Wahl des Voxels mit der maximalen Bewertung und die Basisposition wird abschließend festgelegt. Dieser Vorgang definiert die Zuteilung robotischer Systeme auf die Teilketten einer Aufgabenbeschreibung und wird als YAML-Datei persistiert. \autoref{lst:Goal} zeigt schematisch die Verteilung der robotischen Syteme auf die Kollisionsobjekte. Die \texttt{Roboter\_Anzahl} entspricht der Anzahl aller Teilketten und spezifiziert die Anzahl der robotischen Systeme. Die während der differenzierten Voxelisierung vergangene Zeit wird im entsprechenden Feld erfasst. Die Basispositionen aller Roboter werden im \texttt{Basispositionen} Feld dokumentiert. Alle zusätzlichen Felder sind aus der zugrundeliegenden inverse reachability map, beziehungsweise der Aufgabenbeschreibung portiert. \begin{lstlisting}[language=JSON,firstnumber=1, caption={ Struktur der Positionsanalyse},captionpos=t, label={lst:Goal}]