Select Git revision
Forked from
stgroup / trainbenchmark
Source project has a limited visibility.
konzept.tex 20.99 KiB
\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.
\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);
}
\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.
\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
\begin{equation}
\label{eq:23}
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]
}
\end{lstlisting}
\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.
\begin{equation}
\label{eq:24}
\begin{split}
& \mathcal{O}(\vert P_{total} \vert \times \vert OR_{total} \vert) \\
& \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert OR_{total} \vert) \\
& \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert S \vert \times \vert Roll \vert)
\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.
\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.
\begin{equation}
\begin{split}
\label{eq:25}
& \vert ^{0}OR_{total} \vert = \vert S^{2} \vert \times \vert Roll \vert \\
& \vert ^{0}OR_{total}^{/R} \vert = \vert S^{2} \vert
\end{split}
\end{equation}
\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.
\begin{equation}
\label{eq:26}
\begin{split}
& S_{/2}^{2} = \{ ^{0}sz > ^{0}pz | ^{0}sz \in ^{0}s, ^{0}pz \in ^{0}p \} \\
& \vert S_{/2} \vert = \frac{\vert S^{2} \vert}{2}
\end{split}
\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}$.
\begin{equation}
\label{eq:27}
\begin{split}
& \mathcal{O}(\vert P_{total} \vert \times \vert OR_{total} \vert) \\
& \mathcal{O}((\frac{2 \times q}{a})^{3} \times \vert OR_{total} \vert) \\
& \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})
\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.
\begin{figure}
\label{fig:7}
\centering
\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}
\caption{Gitter aus nicht äquidistanten Vektoren einer sphärischen Diskretisierung. Die Distanz zwischen Vektoren an den Polen ist vernachlässigbar gering.}
\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}.
\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.
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.
Die Roboterbasis kann der Pose des ersten Festkörpers in Form der Transformation $^{0}T_{Base}$ eines robotischen Systems entnommen werden, wie die Umformungen in \autoref{eq:28} sukzessiv zeigen. Dabei ist in diesem Beispiel die Transformation von $Frame_{0}$ zu $Frame_{1} = Frame_{Base}$ die Identität 1, da der Roboter keine Erhöhung durch einen Standfuß aufweist, sondern seine Basis $^{0}T_{Base}$ auf dem fixen $Frame_{0}$ des kinematischen Baumes liegt. Sollte dem nicht so sein, ist eine zusätzliche Berechnung erforderlich.
\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} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... ^{Base}T_{0} \\
^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \times ... ^{2}T_{Base} \times 1 \\
^{0}T_{Base} &= ^{0}T_{Endeff} \times ^{Endeff}T_{Endeff-1} \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]}
\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"],
}
\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.
\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.
\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.
\section{Positionsanalyse}
Aus den persistierten Informationen der Arbeitsraumanalyse, dem Ansatz der invertierten Arbeitsräume und dessen Vereinigung mit den Aufgabenbeschreibungen resultiert die Menge der Basispositionen $P_{Base}$ kombiniert mit der Metrik $D_{Reach}$ aus \autoref{eq:18} für jeden Vektor $^{0}p_{Base} \in ^{0}P_{Base}$.
Der beschriebene Algorithmus zur Ermittlung der optimalen Position sieht vor, anhand der Voxelisierung einen Index für jeden Voxel zu kalkulieren und daraus Rückschlüsse bezüglich der Positionierung robotischer Systeme zu ziehen. Nachteil dieses Vorgangs ist die Intransparenz der Menge $P_{Base}$ bezüglich der Vektor $^{0}p_{Base}$, dessen Herkunft hinsichtlich der Aufgabenbeschreibung nicht ersichtlich ist. Daraus ist abzuleiten, dass die Partitionierung der Operationskette keinen Einfluss auf den Algorithmus hat, wodurch dessen Eignung für die Anwendung bezüglich mehrerer robotischer Systeme entfällt. Ein weiterer Nachteil ergibt sich implizit aus 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.
\begin{equation}
\label{eq:29}
I(Voxel)(TK) = \frac{\displaystyle\sum_{i=0}^{\vert TK \vert} D_{Reach_{i}}^{average}(Voxel)}{\vert TK \vert}
\end{equation}