diff --git a/bibliography.bib b/bibliography.bib
index 50997b994219b25486c592a1f2687b02590d812a..a5d7cbd6d0e421972bad2dd56831beaed6ac0c79 100644
--- a/bibliography.bib
+++ b/bibliography.bib
@@ -1,36 +1,158 @@
-@book{haddadin2013towards,
-  title={Towards safe robots: approaching Asimov’s 1st law},
-  author={Haddadin, Sami},
-  volume={90},
-  year={2013},
-  publisher={Springer}
-}
-
-@book{goossens94,
-  author    = {Goossens, Michel and Mittelbach, Frank
-               and Samarin, Alexander},
-  title     = {The LaTeX Companion},
-  date      = {1994},
-  publisher = {Addison-Wesley},
-  location  = {Reading, Massachusetts},
-  language  = {english},
-}
-@book{knuth84,
-  author    = {Knuth, Donald E.},
-  title     = {The \TeX book},
-  date      = {1984},
-  maintitle = {Computers \& Typesetting},
-  volume    = {A},
-  publisher = {Addison-Wesley},
-  location  = {Reading, Massachusetts},
-  language  = {english},
-}
-@manual{hanisch14,
-  author    = {Hanisch, Falk},
-  title     = {Ein \LaTeX"=Bundle für Dokumente im neuen Corporate
-               Design der Technischen Universität Dresden},
-  date      = {2014},
-  subtitle  = {Benutzerhandbuch},
-  location  = {Dresden},
-  language  = {german},
+% This file was created with Citavi 6.10.0.0
+
+@article{Cheng2000,
+ abstract = {Three-dimensional joint rotations in human movement analysis have been mainly described by Euler/Cardan angles. Due to sequence dependence, each combination of three Euler/Cardan angles defines a single pattern of joint rotation. When the rotation pattern is unknown, it needs to be considered using a particular sequence of Euler/Cardan angles to represent joint rotations. In this paper a spherical rotation coordinate system is developed for describing three-dimensional joint rotations using a method of rotation involving two steps: a long axis rotation and a pure axial rotation. Two angles of the classical spherical coordinate system--longitude and latitude--are used to describe long axis rotations in this newly proposed coordinate system. The spherical rotation coordinate system uses a radial rotation angle to describe pure axial rotation of a limb segment whereas the classical spherical coordinate system uses a radial displacement to describe motion of a point. An application of the spherical rotation coordinate system is given to define three-dimensional rotations of the glenohumeral joint. A mathematical proof shows that the long axis rotation and axial rotation are sequence independent. Two numerical examples are investigated which demonstrate that the spherical rotation angles can be uniquely determined in both forward and inverse kinematics without considering sequences rotations.},
+ author = {Cheng, P. L.},
+ year = {2000},
+ title = {A spherical rotation coordinate system for the description of three-dimensional joint rotations},
+ url = {https://link.springer.com/article/10.1114/1.1326030},
+ keywords = {Biochemistry;Biological and Medical Physics;Biomedical Engineering;Biomedical Engineering and Bioengineering;Biomedicine;Biophysics;Classical Mechanics;general;Humans;Joints/physiology;Models, Biological;Movement/physiology;Rotation;Shoulder Joint/physiology},
+ pages = {1381--1392},
+ volume = {28},
+ number = {11},
+ issn = {0090-6964},
+ journal = {Annals of biomedical engineering},
+ doi = {10.1114/1.1326030},
+ file = {A Spherical Rotation Coordinate System for the Descripti:Attachments/A Spherical Rotation Coordinate System for the Descripti.pdf:application/pdf}
+}
+
+
+@book{Deserno2004,
+ author = {Deserno, Markus},
+ year = {2004},
+ title = {How to generate equidistributed points on the surface of a sphere},
+ url = {https://content.instructables.com/orig/fvd/crgp/ki8um30n/fvdcrgpki8um30n.pdf}
+}
+
+
+@inproceedings{Forstenhausler2020,
+ author = {Forstenhausler, Marc and Wetner, Tim and Dietmayer, Klaus},
+ title = {Optimized Mobile Robot Positioning for better Utilization of the Workspace of an attached Manipulator},
+ pages = {2074--2079},
+ publisher = {IEEE},
+ isbn = {978-1-7281-6794-7},
+ booktitle = {2020 IEEE/ASME International Conference on Advanced Intelligent Mechatronics (AIM)},
+ year = {7/6/2020 - 7/9/2020},
+ doi = {10.1109/AIM43001.2020.9158922}
+}
+
+
+@misc{franca_ros,
+ year = {11/4/2021},
+ title = {franka{\_}ros - ROS Wiki},
+ url = {http://wiki.ros.org/franka_ros},
+ urldate = {11/4/2021}
 }
+
+
+@article{Hornung2013,
+ abstract = {Three-dimensional models provide a volumetric representation of space which is important for a variety of robotic applications including flying robots and robots that are equipped with manipulators. In this paper, we present an open-source framework to generate volumetric 3D~environment models. Our mapping approach is based on octrees and uses probabilistic occupancy estimation. It explicitly represents not only occupied space, but also free and unknown areas. Furthermore, we propose an octree map compression method that keeps the 3D models compact. Our framework is available as an open-source C++ library and has already been successfully applied in several robotics projects. We present a series of experimental results carried out with real robots and on publicly available real-world datasets. The results demonstrate that our approach is able to update the representation efficiently and models the data consistently while keeping the memory requirement at a minimum.},
+ author = {Hornung, Armin and Wurm, Kai M. and Bennewitz, Maren and Stachniss, Cyrill and Burgard, Wolfram},
+ year = {2013},
+ title = {OctoMap: an efficient probabilistic 3D mapping framework based on octrees},
+ url = {https://link.springer.com/article/10.1007/s10514-012-9321-0},
+ keywords = {Artificial Intelligence;Computer Imaging;Control;Mechatronics;Pattern Recognition and Graphics;Robotics;Robotics and Automation;Vision},
+ pages = {189--206},
+ volume = {34},
+ number = {3},
+ issn = {1573-7527},
+ journal = {Autonomous Robots},
+ doi = {10.1007/s10514-012-9321-0},
+ file = {OctoMap an efficient probabilistic 3D mapping framework:Attachments/OctoMap an efficient probabilistic 3D mapping framework.pdf:application/pdf}
+}
+
+
+@inproceedings{Makhal2018,
+ author = {Makhal, Abhijit and Goins, Alex K.},
+ title = {Reuleaux: Robot Base Placement by Reachability Analysis},
+ pages = {137--142},
+ publisher = {IEEE},
+ isbn = {978-1-5386-4652-6},
+ booktitle = {2018 Second IEEE International Conference on Robotic Computing (IRC)},
+ year = {2018},
+ doi = {10.1109/IRC.2018.00028}
+}
+
+
+@book{Moon1988,
+ author = {Moon, Parry Hiram and Spencer, Domina Eberle},
+ year = {1988},
+ title = {Field theory handbook: Incl. coordinate systems, differential equations and their solutions},
+ address = {Berlin},
+ edition = {2. ed., corr. 3. pr},
+ publisher = {Springer},
+ isbn = {3540184309}
+}
+
+
+@proceedings{Porges2015,
+ abstract = {The   utility   of   a   mobile   manipulator   largely depends   on   its   kinematic   structure   and   mounting   point on  the  robot  body.  The  reachable  workspace  of  the  robot can  be  obtained  offline  and  modeled  as  a  discretized  map called  Reachability  map.  A  Capability  map  is  obtained  by including some quality measure for the local dexterity of the manipulator, which helps to identify good and bad regions for manipulation. Once the maps are obtained based on forward or inverse kinematic methods, they can be used for numerous analysis tasks such as robot kinematics and workspace quality assessment,  robot  mounting  point  analysis  or redundancy and  failure  analysis.  This  paper  covers  basic  aspects  of  the Reachability and Capability map generation and storage, and shows particular applications of the maps for space robotics.},
+ year = {2015},
+ title = {Reachability and Dexterity: Analysis and Applications for Space Robotics},
+ url = {http://robotics.estec.esa.int/ASTRA/Astra2015/index.html},
+ keywords = {dexterity;reachability;robotic manipulator},
+ editor = {Porges, Oliver and Lampariello, Roberto and Artigas, Jordi and Wedler, Armin and Borst, Christoph and Roa, Maximo A.}
+}
+
+
+@article{Saff1997,
+ author = {Saff, E. B. and Kuijlaars, A. B. J.},
+ year = {1997},
+ title = {Distributing many points on a sphere},
+ url = {https://link.springer.com/article/10.1007/BF03024331},
+ keywords = {general;Mathematical and Computational Engineering;Mathematical and Computational Physics;Mathematical Methods in Physics;Mathematics;Numerical and Computational Physics;Simulation;Theoretical},
+ pages = {5--11},
+ volume = {19},
+ number = {1},
+ issn = {0343-6993},
+ journal = {The Mathematical Intelligencer},
+ doi = {10.1007/BF03024331},
+ file = {Distributing many points on a sphere:Attachments/Distributing many points on a sphere.pdf:application/pdf}
+}
+
+
+@book{Siciliano2016,
+ year = {2016},
+ title = {Springer Handbook of Robotics},
+ price = {Book : circa EUR 306.90 (AT) (freier Preis), circa sfr 306.50 (freier Preis), circa EUR 298.53 (DE) (freier Preis)},
+ keywords = {Basic Principles and Methods of Robotics;Biologically-Inspired Robots;Human-Robot Interaction;Industrial Robotics;Life-Like Robotics;Manipulation and Interfaces of Robots;Mobile and Distributed Robotics;Roboethics;Robot Structures;Robotics;Robotics Foundations;Sensing and Perception of Robots;Springer Handbook of Robotics},
+ address = {Cham},
+ edition = {2nd ed. 2017},
+ publisher = {{Springer International Publishing} and Springer},
+ isbn = {9783319325507},
+ editor = {Siciliano, Bruno and Khatib, Oussama}
+}
+
+
+@misc{SphericalCoordinates,
+ year = {10/15/2021},
+ title = {Spherical Coordinates -- from Wolfram MathWorld},
+ url = {https://mathworld.wolfram.com/SphericalCoordinates.html},
+ urldate = {10/15/2021}
+}
+
+
+@inproceedings{Vahrenkamp2013,
+ author = {Vahrenkamp, Nikolaus and Asfour, Tamim and Dillmann, Rudiger},
+ title = {Robot placement based on reachability inversion},
+ pages = {1970--1975},
+ publisher = {IEEE},
+ isbn = {978-1-4673-5643-5},
+ booktitle = {2013 IEEE International Conference on Robotics and Automation},
+ year = {5/6/2013 - 5/10/2013},
+ doi = {10.1109/ICRA.2013.6630839}
+}
+
+
+@inproceedings{Zacharias2007,
+ author = {Zacharias, Franziska and Borst, Christoph and Hirzinger, Gerd},
+ title = {Capturing robot workspace structure: representing robot capabilities},
+ pages = {3229--3236},
+ publisher = {IEEE},
+ isbn = {978-1-4244-0911-2},
+ booktitle = {2007 IEEE/RSJ International Conference on Intelligent Robots and Systems},
+ year = {10/29/2007 - 11/2/2007},
+ doi = {10.1109/IROS.2007.4399105}
+}
+
+
diff --git a/images/publisher_node.h b/images/publisher_node.h
new file mode 100644
index 0000000000000000000000000000000000000000..9e3bdfc9483927e38c655e68c6f335620f9254dc
--- /dev/null
+++ b/images/publisher_node.h
@@ -0,0 +1,25 @@
+#ifndef PUBLISHER_NODE_H
+#define PUBLISHER_NODE_H
+
+#include "ros/ros.h"
+#include <ros/package.h>
+
+#include "visualization_msgs/InteractiveMarker.h"
+#include "geometry_msgs/Vector3.h"
+#include "moveit/move_group_interface/move_group_interface.h"
+#include "math.h"
+
+#include <nlohmann/json.hpp>
+#include <fstream>
+#include <regex>
+typedef std::vector<std::pair<tf2::Vector3,std::vector<std::pair<tf2::Quaternion, bool>>>> dictionary;
+
+void cube_dec(const float& abstand, const float& resolution, dictionary& dict);
+std::vector<tf2::Quaternion> sphere_dec(const float& radius, const int& count, const tf2::Vector3& origin);
+tf2::Quaternion quat_builder(const float& phi, const float& nu);
+
+
+float lerp (float a, float b, float f);
+std_msgs::ColorRGBA col_lerp (const float& f);
+#endif
+
diff --git a/lst.tex b/lst.tex
index 25f5d6f688e2fe9b3cb85d854870c75b1b0453c8..e329da3814c5af3db77af2bf55ef99b268f7ffac 100644
--- a/lst.tex
+++ b/lst.tex
@@ -2,25 +2,30 @@
 \usepackage{inconsolata}
 
 \lstdefinestyle{common-style}{
-  basicstyle=\scriptsize\ttfamily,  % the size of the fonts that are used for the code
-  showspaces=false,                   % show spaces adding particular underscores
-  showstringspaces=false,             % underline spaces within strings
-  showtabs=false,                     % show tabs within strings adding particular underscores
-%  frame=tlrb,                         % adds a frame around the code
-  framexleftmargin=1em,               % space between left part of frame and listing
-  tabsize=2,                          % sets default tabsize to 2 spaces
-  breaklines=true,                    % sets automatic line breaking
-  breakatwhitespace=true,             % sets if automatic breaks should only happen at whitespace
+	basicstyle=\ttfamily,
+	morecomment=[s]{<!--}{-->},
+	commentstyle={\color{gray}},  
+	numbers=left,
+	numberstyle=\ttfamily,
+	stepnumber=1,
+	numbersep=5pt,
+	xleftmargin=2em,
+	framexleftmargin=2em,
+	showstringspaces=false,
+	breaklines=true,
+	frame=lines,
+	backgroundcolor=\color{background},
+	autogobble=true,
   keywordstyle={\color{blue}\textbf}, % keywords are blue
   commentstyle={\color{gray}},        % comments
-  literate={\$}{{{\$}}}1,
-  basewidth=0.5em,
-  breakindent=40pt,
-  breakautoindent=true,
-  escapechar=\&,
   aboveskip={0.1\baselineskip}
 }
 
+\colorlet{punct}{red!60!black}
+\definecolor{background}{HTML}{EEEEEE}
+\definecolor{delim}{RGB}{20,105,176}
+\colorlet{numb}{magenta!60!black}
+
 \lstdefinestyle{shortlisting}{
 	xleftmargin=\parindent,
 	frame=none,
@@ -40,6 +45,28 @@
 	morecomment=[l]{//}, morecomment=[s]{/*}{*/},
 }
 
+\lstdefinelanguage{JSON}{
+	style=common-style,
+	morecomment=[s]{<!--}{-->},
+	literate=
+     *{0}{{{\color{numb}0}}}{1}
+      {1}{{{\color{numb}1}}}{1}
+      {2}{{{\color{numb}2}}}{1}
+      {3}{{{\color{numb}3}}}{1}
+      {4}{{{\color{numb}4}}}{1}
+      {5}{{{\color{numb}5}}}{1}
+      {6}{{{\color{numb}6}}}{1}
+      {7}{{{\color{numb}7}}}{1}
+      {8}{{{\color{numb}8}}}{1}
+      {9}{{{\color{numb}9}}}{1}
+      {:}{{{\color{punct}{:}}}}{1}
+      {,}{{{\color{punct}{,}}}}{1}
+      {\{}{{{\color{delim}{\{}}}}{1}
+      {\}}{{{\color{delim}{\}}}}}{1}
+      {[}{{{\color{delim}{[}}}}{1}
+      {]}{{{\color{delim}{]}}}}{1},
+}
+
 \lstdefinelanguage{JRAG}[]{java}{
 	style=common-style,
 	morekeywords={abstract,public,private,boolean,aspect,null,syn,inh,coll,eq,with,int,contributes,new,return,for,if,else,this,to,true,false},
@@ -59,3 +86,20 @@
 \lstdefinestyle{AST} { language=AST,style=common-style } 
 \lstdefinestyle{JRAG} { language=JRAG,style=common-style }
 \lstdefinestyle{Java} { language=Java,style=common-style }
+\lstdefinestyle{JSON} { language=JSON,style=common-style }
+
+
+\lstset{
+	language=C++,
+	breaklines=true,
+	frame=single,
+	basicstyle=\ttfamily,
+	keywordstyle=\color{blue}\ttfamily,
+	stringstyle=\color{red}\ttfamily,
+	commentstyle=\color{blue}\ttfamily,
+	morecomment=[l][\color{magenta}]{\#},
+	rulecolor=\color{black},
+}
+
+
+
diff --git a/sections/einleitung.tex b/sections/einleitung.tex
index 89b77b693bc04c0b626a03b2ca6c127301d420f6..a9e13d42a7660d6bc53cf4953bae1914924a8fb2 100644
--- a/sections/einleitung.tex
+++ b/sections/einleitung.tex
@@ -1,12 +1,12 @@
 \chapter{Einleitung}\label{ch:introduction}
-'Collaborative Multi-Robot Work-Cells' beschreibt ein Gebiet der Robotik, dessen Inhalt die Kooperation mehrerer Roboter hinsichtlich der Lösung einer spezifischen Aufgabe ist. Zugrundeliegende Algorithmen ermöglichen dabei die Bewältigung der Aufgaben ohne Kollisionen untereinander, sowie mit Hindernissen in der Umgebung. \par
-Die Planung der Abläufe ist abhängig von der Beschaffenheit des Roboters, denn die Basis eines Roboters kann beweglich oder fest sein. Beispielsweise sind Roboterarme fest auf einer Platte montiert und somit fester Bestandteil der Umgebung. Ein Wechsel ihrer Position würde bedeuten, eine andere Stelle auf der Platte für die Montage zu präparieren, den Roboterarm zu demontieren und an anderer Stelle zu platzieren, was aufwändig ist. Daraus ist ersichtlich, dass die Positionierung unflexibler Roboter ein Problem darstellt, dessen Lösung direkten Einfluss auf die Bewältigung der spezifischen Aufgabe hat. Die Absolvierung dieser Aufgabe wird demzufolge durch effizientere Nutzung der Arbeitsumgebung besser umgesetzt, aufwändige Montagearbeiten während der Bearbeitung werden reduziert und der dadurch erschlossene Raum sowie die resultierende Zeit kann gewinnbringender genutzt werden. Im Anbetracht der stetig wachsenden Industrie und der sich daraus ergebenden Nachfrage nach effizienten automatisierten Produktionsverfahren, die den limitierten Arbeitsraum einer Produktionsstätte optimal nutzen, ist die Platzierung der Roboter ein entscheidender erster Schritt zur Optimierung des gesamten Arbeitsprozesses. 
+'Collaborative Multi-Robot Work-Cells' beschreibt ein Gebiet der Robotik, dessen Inhalt die Kooperation mehrerer robotischer Systeme hinsichtlich der Lösung einer spezifischen Aufgabe innerhalb einer räumlichen Domäne ist. Zugrundeliegende Algorithmen ermöglichen dabei die Bewältigung der Aufgaben ohne Kollisionen untereinander, sowie mit Hindernissen in der Umgebung. \par
+Die Planung der Abläufe ist abhängig von der Beschaffenheit des Roboters, denn die Basis eines Roboters kann beweglich oder fest sein. Beispielsweise sind Roboterarme fest auf einer Platte montiert und somit fester Bestandteil der Umgebung. Ein Wechsel ihrer Position würde bedeuten, eine andere Stelle auf der Platte für die Montage zu präparieren, den Roboterarm zu demontieren und an anderer Stelle zu platzieren, was einen enormen Aufwand darstellt und den Erfolg der Operation nicht garantiert. Daraus ist ersichtlich, dass die Positionierung unflexibler Roboter ein Problem aufweist, dessen Lösung direkten Einfluss hinsichtlich der zeitlicher Komponente, sowie der Bewältigung der spezifischen Aufgabe hat. Die Absolvierung dieser Aufgabe wird demzufolge durch effizientere Nutzung der Arbeitsumgebung besser umgesetzt, aufwändige Montagearbeiten während der Bearbeitung werden reduziert und der dadurch erschlossene Raum sowie die resultierende Zeit kann gewinnbringender genutzt werden. Im Anbetracht der stetig wachsenden Industrie und der sich daraus ergebenden Nachfrage nach effizienten automatisierten Produktionsverfahren, die den limitierten Arbeitsraum einer Produktionsstätte optimal nutzen, ist die Platzierung der Roboter ein entscheidender erster Schritt zur Optimierung des gesamten Arbeitsprozesses. 
 
-\paragraph{Ziel der Arbeit:} Ziel ist es, basierend auf der Analyse des Arbeitsraums eines Roboterarms, des gegebenen Umfelds sowie der spezifischen Aufgabe, die optimale Positionierung dessen Basis zu bestimmen. Im folgenden wird diese Funktion erweitert und auf Multi-Roboter-Systeme angewendet.\par
-
-\section{Ablauf}
-Bezüglich der Problemstellung und des Ziels der Bachelorarbeit, ergeben sich mehrere Teilziele mit eigenen Prototypen, die in dieser Arbeit betrachtet werden.
+\section{Zielsetzung der wissenschaftlichen Arbeit}
+Ziel dieser Arbeit ist es, mittels Konzepten zur Charakterisierung der Kapazitäten eines Roboterarms, bezogen auf dessen Fähigkeit der Interaktion mit der Umgebung, kollaborative Multi-Roboter Arbeitsplätze zu definieren. Dazu ist die Auseinandersetzung mit wissenschaftlichen Publikationen erforderlich, um einen umfassenden Kenntnisstand hinsichtlich der Anforderungen bezüglich der Generierung eines solchen Arbeitsplatzes zu erlangen und als Grundlage der Evaluierung zu nutzen. Dabei ist die Elaboration einer Methodik zur Konkretisierung zu-operierender spezifischer Aufgaben, um auf Grundlage dessen automatisch einen kollaborativen Arbeitsplatz zu erzeugen, ebenfalls ein Aspekt dieser Arbeit. Anschließend ist die Anwendung der erarbeiteten Konzepte und dessen Implementierung innerhalb eines Fallbeispiels mit zwei oder mehr 'Panda' Roboterarmen der Franka Emika GmbH zu zeigen und dessen erzielter Resultate anhand der zuvor definierten Anforderungen zu evaluieren.
 
 
+\section{Aufbau der wissenschaftlichen Arbeit}
+Bezüglich der Problemstellung und des Ziels der Bachelorarbeit, ergeben sich mehrere Teilziele mit eigenen Prototypen, die in dieser Arbeit betrachtet werden.
+Hier muss auf jeden Fall ein krasser Übergang rein.
 
-In~\Cref{ch:conclusion} kommt die Zusammenfassung.
diff --git a/sections/fallbeispiel.tex b/sections/fallbeispiel.tex
new file mode 100644
index 0000000000000000000000000000000000000000..0832cfe76f5d0696622e6f2abd82f6baf72ee047
--- /dev/null
+++ b/sections/fallbeispiel.tex
@@ -0,0 +1,22 @@
+\chapter{Fallbeispiel}\label{ch:caseStudy}
+Inhalt dieses Kapitels ist die Demonstration der Funktionsweise einzelner Elemente der Implementierung und dessen Synergie mit MoveIt spezifischen Komponenten, sowie der Integration des ROS-Franka package anhand eines Beispiels. Hierzu stellt das ROS-Franka package die sowohl grafische, als auch funktionelle Beschreibung der Bestandteile des gleichnamigen robitischen 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 MSA aus dem ROS-Franka package generiert werden. 
+
+\subsection{Modifikationen in der Beschreibung robotischer Systeme}
+Das MoveGroup Interface bietet keine Möglichkeit zur Deklaration einer Roboterposition, da diese die Roboterbeschreibung des ROS-Franka package festgelegt, welche Referenz der spezifischen Konfigurationsdatei ist. Dies impliziert 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 Aufgabenunabhängig, erfolgt daher a priori und kann auf alle  Aufgabenbeschreibung angewendet werden, die vom Ausgangssystem der Analyse, wie Beispielsweise dem Emika Franka Panda, 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 'SupportSurface', 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. 
+
+\section{Positionsanalyse}
+Der Algorithmus zur Ermittlung der 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 Visualisierungsprogramm RViz einsehbar, dabei kann der Umfang zu sehender Informationen über Checkboxen reguliert werden. Die Metrik D, die das Resultat der differenzierten Voxelisierung darstellt, visualisiert die Wertigkeit einer Box 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 Box 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 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 c179f16dcfb511484ce3a3c0e16690b79cae21ed..bdadf391baaf21138cbb2e663c715426004e1755 100644
--- a/sections/grundlagen.tex
+++ b/sections/grundlagen.tex
@@ -1,22 +1,23 @@
 \chapter{Grundlagen}\label{ch:basics}
-Wesentliche Konzepte dieser Bachelorarbeit fundieren auf verschiedenen wissenschaftlichen Publikationen, die Aspekte der Problematik aufgreifen und näher erläutern. Dabei werden beispielsweise Begriffe mehrdeutig verwendet, weil keine offizielle Definition existiert oder sich deren Bedeutungen überschneiden. Ebenfalls basieren die Ansätze auf mathematischen Konzepten, die zwar genannt aber nicht ausreichend erklärt werden. Zum näheren und besseren Verständnis der Ideen und Konzepte, die Bestandteil dieser wissenschaftlichen Arbeit sind, werden diese zugrundeliegenden Strukturen zusätzlich erklärt und gegebenenfalls für dieses Dokument definiert. 
+Wesentliche Konzepte dieser Bachelorarbeit fundieren auf verschiedenen wissenschaftlichen Publikationen, welche Aspekte der Problematik aufgreifen und näher erläutern. Dabei werden beispielsweise Begriffe mehrdeutig verwendet, weil keine offizielle Definition existiert oder sich deren Bedeutungen überschneiden. Ebenfalls basieren die Ansätze auf mathematischen Konzepten, die zwar genannt aber nicht ausreichend erläutert werden. Zum näheren und besseren Verständnis der Ideen und Algorithmen, die Bestandteil dieser wissenschaftlichen Arbeit sind, werden diese zugrundeliegenden Strukturen zusätzlich erklärt und gegebenenfalls für dieses Dokument definiert. Aus der Zielsetzung, die in der Einleitung formuliert ist, ergibt sich die Anforderungsanalyse als finale Komponente dieses Kapitels.
 
 
 \section{Räumliche Partitionierung}
-Räumliche Partitionierung beschreibt das Unterteilen eines kartesischen Raumes in kleinere, disjunkte Teilräume und deren Indexierung und Speicherung in entsprechenden Datenstrukturen. Die Implementierung einer solcher Datenstruktur ist oft eine erweiterte Baumstruktur mit speziellen Eigenschaften, die dessen Einsatz im 3 dimensionalen Raum begünstigen. Beispielsweise sind solche Bäume aufgrund dessen Kompaktheit für die Aufbewahrung großer Datenmengen geeignet oder ermöglichen eine schnelle Suche unter dessen Blättern durch ihre Implementierung. In der Literatur wird die Unterteilung eines quadratischen Raumes in Würfel fester Größe 'Voxelisierung' genannt, wobei ein Voxel ein Pixel im 3-dimensionalen Raum darstellt. Fortan werden Teilräume eines kartesischen Raums 'Voxel' genannt.
+Die räumliche Partitionierung beschreibt das Unterteilen eines kartesischen Raumes in kleinere, disjunkte Teilräume und deren Indexierung und Speicherung in entsprechenden Datenstrukturen. Die Implementierung einer solcher Datenstruktur ist oft eine erweiterte Baumstruktur mit speziellen Eigenschaften, die dessen Einsatz im 3 dimensionalen Raum begünstigen. Beispielsweise sind solche Bäume aufgrund dessen Kompaktheit für die Aufbewahrung großer Datenmengen geeignet oder ermöglichen eine schnelle Suche unter dessen Blättern durch ihre Implementierung \cite{Hornung2013}. In der Literatur wird die Unterteilung eines quadratischen Raumes in Würfel fester Größe 'Voxelisierung' genannt \cite{Makhal2018} \cite{Zacharias2007}, wobei ein Voxels per Definition ein Pixel im 3-dimensionalen Raum ist. Fortan werden disjunkte Teilräume eines kartesischen Raums 'Voxel' genannt, die einen Container darstellen, dessen Inhalt eine Menge aus $n \in \N$ Vektoren $v \in \R^{3}$ ist.
 
 
-\section{Diskretisierung}
-Diskretisierung ist ein Prozess der Zerlegung einer kontinuierliche Oberfläche durch Abtastung in ihre diskreten Teilbereiche oder Punkte. Anwendung findet dieses Verfahren Beispielsweise im Gebiet der Netzwerktechnologie, in der ein analoges Signal durch Diskretisierung in ein digitales Signal überführt wird. Angewendet auf 3-dimensionale Objekte entsteht durch Diskretisierung ein Gitter aus Punkten, welche das zugrundeliegende Objekt approximieren. 
+\section{Diskretisierung eines Objektes}
+Die Diskretisierung ist bekannt als ein Prozess der Zerlegung einer kontinuierliche Oberfläche durch Abtastung in ihre diskreten Teilbereiche oder Punkt, welche im Kontext dieser Arbeit durch Vektoren beschrieben sind. Anwendung findet dieses Verfahren Beispielsweise im Gebiet der Netzwerktechnologie, in der ein analoges Signal durch räumliche und zeitliche Diskretisierung in ein digitales Signal überführt wird. Angewendet auf 3-dimensionale Objekte entsteht durch Diskretisierung ein Gitter aus Vektoren, welche das zugrundeliegende Objekt approximieren \cite{Porges2015}. 
 
-\section{Roboter}
-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{Robotische Systeme}
+Robotische Systeme setzen sich aus einer Menge an Festkörpern und deren Verknüpfungen durch verschiedene Gelenktypen zusammen. Ein solches System spannt eine Baumstruktur auf, dessen Wurzel durch eine fixe Basis definiert ist. Ein solcher kinematischer Baum ist verzweigt, sobald ein Festkörper Verknüpfungen zu mehreren Festkörpern aufweist. Solche kinematischen Strukturen können auch als verzweigte beziehungsweise unverzweigte kinematische Kette denotiert werden. Bildet der Baum keinen Kreis, so ist er eine offene kinematische Kette beziehungsweise ein offenes robotisches System. Diese robotischen Mechanismen definieren eine offene kinematische Kette, dessen letztes Glied als Endeffektor deklariert ist, während der erste Festkörper die Basis des Roboters darstellt. Roboterarme sind Beispiele für offene robotische Systeme beziehungsweise offene kinematischer Ketten und Bezugspunkt dieser wissenschaftlichen Arbeit \cite[46f.]{Siciliano2016}. Nähere Informationen über die Kopplung spezifischer Festkörper werden im Kontext dieser Arbeit in der zugehörigen URDF beziehungsweise XACRO Datei des Roboters dokumentiert. Diese Dateien sind XML Erweiterungen und bieten als solche einen entsprechenden erweiterten Funktionsumfang. Demzufolge können zusätzliche Informationen, in Form von 'tags', Limitierungen bezüglicher des Bewegungsumfangs eines Festkörpers spezifizieren. \par 
+Ein Roboterarm kann anhand seiner Komponenten durch das Inkludieren einzelner URDF Dateien modelliert werden. Neben der Möglichkeit, ein robotisches System eigens zu konstruieren, werden fertige Roboter von offizieller Seite bereitgestellt, wodurch ein Einblick in umfangreichere URDF-Dateien ermöglicht wird und der Konstruktionsaufwand 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 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
+\section{Kinematische Grundlagen} 
+Nachdem die Klassifizierung eines robotischen Systems anhand seiner Struktur eruiert wurde, werden in diesem Abschnitt weitere kinematischen Aspekte näher erläutert. Grundlegende Methodiken 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 \cite[9f.]{Siciliano2016}. 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. Termini wie 'Pose' und Referenzkoordinatensystem 'Frame' und deren Relationen sind existenzieller Bestandteil späterer Ausführungen und werden daher in diesem Kapitel näher erläutert.
 
 \subsection{Pose, Position und Orientierung} 
-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.  
+Die Kombination aus Position und Orientierung eines Festkörpers relativ zu einem Frame definiert eine $Pose$. Frames bestehen aus dessen Koordinatenursprung und 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 ist durch die Definition der $n \in \N$ Frames für jedes seiner Festkörper in der URDF Datei konkretisiert \cite[9ff.]{Siciliano2016}.  
 
 \subsubsection{Position}
 Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch den Vektor $^{j}p_{i} \in \R^{3}$ gekennzeichnet. 
@@ -28,10 +29,11 @@ Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch den Ve
               ^{j}p_{i}^{z} \\
               \end{pmatrix}
 \end{equation}
-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.
+
+Aus ... ist ersichtlich, dass die Elemente des Koordinatenursprungs von $i$ auf Koordinaten relativ zu $j$ referenzieren. Diese Abhängigkeit besteht analog zwishcen Frames eines Roboters, welche jeweils relativ zum Vorgänger Frame der kinematischen Kette verweisen.
  
 \subsubsection{Orientierung}
-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.
+Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper angewendet werden können. Im Forschungsgebiet Robotik und der 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*}
@@ -41,14 +43,14 @@ Die Menge aller Rotations-Matrizen $R \in \R^{3 \times 3}$ bilden mit der Matrix
 &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)$.
+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 der Gruppe SO(3), erforderlich. Durch dessen Eigenschaft der Geschlossenheit, ist das Resultat dieser Multiplikation ebenfalls $\in SO(3)$.
 
 \begin{equation}
 ^{k}R_{i} = ^{k}R_{j} \times ^{j}R_{i}
 \end{equation}
 
 \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$.
+Eine homogene Matrix $T \in \R^{4\times4}$, bestehend aus einer 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 Koordinatenursprung $^{j}p_{i}$ bestehende Transformationsmatrizen $^{j}T_{i}$ beschreiben die Pose $i$ und ermöglichen zusätzlich die Transformation eines Vektors $^{i}u$ in den Vektor $^{j}u$.
 
 \begin{equation}
 \label{trNormal}
@@ -78,10 +80,6 @@ T  = \begin{pmatrix}
 													\end{pmatrix}
 \end{equation}
 
-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) \\
@@ -90,7 +88,7 @@ Transformationsmatrizen $T$ bilden mit der Matrixmultiplikation eine nicht kommu
 &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)$.
+Die Komposition von Transforamtionen verschiedener Frames wird in Gleichung ... veranschaulicht. Dabei ist die Einhaltung der Reihenfolge bezüglich der Multiplikation, analog zur Gruppe SO(3) 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}
@@ -102,14 +100,17 @@ Die Komposition von Transforamtionen verschiedener Frames wird in Gleichung ...
 \end{equation}
   
 
-\section{Arbeitsbereich eines Roboters}
-Der Arbeitsbereich, auch 'Workspace' genannt, eines Roboters beschreibt, welche Bereiche im Umfeld des Roboters erreichbar sind. Die Darstellung des Arbeitsbereiches erfolgt durch 'reachability maps' oder 'capability maps', wobei capability maps die  reachability maps um qualitative Merkmale erweitern.
+\section{Arbeitsbereich eines robotischen Systems}
+Der Arbeitsbereich 'Workspace', beschreibt die Kapazitäten eins robotische Systems bezüglich der Interaktion mit dessen Umfeld. Die Darstellung des Arbeitsbereiches erfolgt durch 'reachability maps' oder 'capability maps', welche die Erreichbarkeit der Vektoren $v$ im Umfeld des Roboters durch den Endeffektor charakterisiert.
 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 Roboter, ohne weitere Angaben hinsichtlich der Qualität. Demnach ist ersichtlich, welchen Platz ein Roboter einnehmen kann, aber nicht wie effektiv dieser genutzt wird bzw. ob der Arbeitspunkt des Endeffektors tatsächlich jede Stelle erreicht.
-Diese Darstellungen sind Beispielsweise in Bedienanleitungen des Roboters enthalten und in mehreren Perspektiven abgebildet, 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 Abbildung ... zeigt eine solche Darstellung im Manual des Referenzroboters 'Panda' aus verschiedenen Perspektiven, um den Arbeitsbereich des Roboters in mehreren Dimensionen zu veranschaulichen.
 
 \subsection{capability map}
 In capability maps werden zusätzliche Informationen über die Erreichbarkeit der Bereiche im Umfeld des Roboters mit Farben gekennzeichnet. Die Färbung basiert auf der Qualifizierung, welche durch die berechenbaren Endeffektor Posen im Bereich bestimmt wird. Beispielsweise ist die Farbe rot ein Indikator für schwer vom Roboter zugängliche Bereiche, während blau leichte Greifbarkeit suggeriert. 
 %\cite{Reuleaux} \cite{zacharias2008positioning}
+
+\section{Anforderungen an kollaborative Multi-Roboter Arbeitsplätze}
+Die automatische Generierung kollaborativer Arbeitsplätze basierend auf den Beschreibungen spezifischer Aufgaben erfordert die Charakterisierung der Kapazitäten eines robotischen Systems. Basierend auf diesen Informationen kann die optimale Position der Manipulatoren innerhalb einer Domäne kalkuliert werden, welche den kollaborativen Arbeitsplatz beschreibt. Dabei stellen die Skalierbarkeit des Algorithmus zur Platzierung robotischer Systeme innerhalb der Domäne, sowie deren Kollisionsfreiheit, die Anforderungen dar, welche Inhalt der Evaluierung sind.
diff --git a/sections/implementierung.tex b/sections/implementierung.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f2c0c7259cdf45f944bdf43cbf55ba15612a50da
--- /dev/null
+++ b/sections/implementierung.tex
@@ -0,0 +1,159 @@
+\chapter{Implementierung}\label{ch:implementation}
+Die ausführliche Auseinandersetzung mit der Struktur des ROS spezifischen Arbeitsraums, dessen Pakete die nötigen Roboterbeschreibungen, Konfigurationsdateien und implementierte Algorithmen enthalten, um alle Aspekte der wissenschaftlichen Arbeit zu realisieren, ist Inhalt dieses Kapitels. Dabei initialisiert jede Quelldatei einen Node im ROS Kontext in der Programmiersprache C++. 
+
+\begin{figure}[h!]
+\centering
+	\begin{tikzpicture} [ >=stealth']
+		\node[rectangle, draw=black,  thick, minimum height=3em, align=center] (RD) {Roboterbeschreibung};
+		\node[rectangle, draw=black,  thick, minimum height=3em, align=center] (DK) [above right = 1cm and 0.5cm of RD] {Dual Konfiguration};
+		\node[rectangle, draw=black,  thick, minimum height=3em, align=center] (MK) [below right = 1cm and 0.5cm of RD]{Mono Konfiguration};
+		\node[rectangle, draw=black,  thick, minimum height=3em, align=center] (I) [right= 5cm of RD]{Implementierung};
+		
+		\draw[-] (RD) -- (DK) -- (I);
+		\draw[-] (RD) -- (MK) -- (I);
+
+	\end{tikzpicture}
+	\caption{Die Struktur des ROS Arbeitsraums ist durch dessen passive Pakete und aktive Pakete, sowie deren Beziehungen, illustriert. Diese Betrachtung partitioniert das Kapitel logisch in einen organisatorischen Teil, dessen Pakete die Prämisse des exekutiven Teils sind.} \label{fig:Struktur}
+\end{figure}
+
+\section{Robotische Systeme und deren Konfiguration}
+Die Roboterbeschreibung ist Grundlage der Generierung valider Konfigurationsdateien, welche jeweils $n \in \N_{>0}$ robotische Systeme konkretisieren und somit die Kommunikation zwischen den $n$ Robotern durch Integration der MoveGroup Schnittstelle ermöglichen. Diese ist ein Klon des öffentlich zugänglichen Pakets 'franka\_ ros' \cite{franca_ros} der Franka Emika GmbH zum August 2020, welches der Lehrstuhl für Softwaretechnologie bereitstellt. Die enthaltenen Dateien definieren einzelne Festkörpergruppen sowie deren Vereinigung zu $n$ Robotergruppen. Beispielsweise ist der Struktur in \autoref{fig:Files} zu entnehmen, dass ein Manipulator aus Hand und Arm besteht, sowie dass die Instanziierung mehrerer Manipulatoren eine zusätzliche Datei bedingt. \autoref{fig:Files} zeigt die Struktur einer Konfigurationsdatei, welche im 'config' Verzeichnis alle Festkörper der Referenzbeschreibung anhand der 'controller.yaml' Datei als Kontrollelemente spezifiziert und somit die Interaktion ermöglicht. Das Beispiel einer Modifizierten Roboterbeschreibung eines duales Setup zeigt \autoref{fig:RD}, aus dem das Muster zur Generierung einer $n$ Roboter Datei zu entnehmen ist, indem dessen Inhalt für alle Identitäten $n$ mal iteriert wird. Analog kann die entsprechende $n$\_ Konfigurationsdatei aus dem MSA erzeugt, oder mittels einer Manipulation der 'config' und 'launch' Dateien generiert werden.
+
+\begin{figure}
+\centering
+\begin{minipage}{.45\linewidth}
+\dirtree{%
+.1 Roboterbeschreibung.
+.2 ci.
+.2 meshes.
+.2 robots.
+.3 'panda\_arm.xacro'.
+.3 'hand.xacro'.
+.3 'panda\_arm\_hand.xacro'.
+.3 'dual\_panda\_example.xacro'.
+}
+\end{minipage}\hfill
+\begin{minipage}{.55\linewidth}
+\dirtree{%
+.1 MoveIt\_Konfiguration.
+.2 config.
+.3 'panda\_controller.yaml'.
+.3 'panda\_gripper\_controller.yaml'.
+.2 launch.
+.3 'move\_group.launch'.
+.3 'demo.launch'.
+.3 'planning\_context.launch'.
+}
+\end{minipage}\hfill
+\caption{Visualisierung der Verzeichnisstruktur der Roboterbeschreibung und Konfiguration. Bezüglich der Übersichtlichkeit sind nur die Dateien gelistet, deren Modifikation in Hinsichtlich der Realisierung mehrerer robotischer Systeme relevant ist.}\label{fig:Files}
+\end{figure}
+
+\begin{figure}[h!]
+	\begin{lstlisting}[language=json,firstnumber=1]
+	{<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda">
+	<!-- Einbindung der Roboter Komponenten-->
+	<xacro:include filename="panda_arm.xacro"/>
+	<xacro:include filename="hand.xacro"/>
+	
+	<!-- Deklaration der Namensattribute der zu konkretisierenden Roboter -->
+	<xacro:arg name="arm_id_1" default="panda_1" />
+	<xacro:arg name="arm_id_2" default="panda_2" />
+	
+	<!-- Deklarierung des Positionsattribute, welche aus der Kalkulation, ber die Konfigurationsdatei, in die Roboterbeschreibung bergeben wird-->
+	<xacro:arg name="pos_1" default="0 0 0" />
+	<xacro:arg name="pos_2" default="1 1 0" />
+	<!-- Definition des eindeutigen World-Frames, als Referenz der Roboter -->
+	<link name="world"/>
+	
+	<!-- Initialisierung der robotischen Systeme an ihrer spezifischen Position-->
+	<xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="world"  xyz="$(arg pos_1)" /> 
+	<xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" />
+	
+	<xacro:panda_arm arm_id="$(arg arm_id_2)" connected_to="world"  xyz="$(arg pos_2)" /> 
+	<xacro:hand ns="$(arg arm_id_2)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_2)_link8"/>
+	<!-- Eine n-Roboterbeschreibung erfordert Namens- und Positions- Deklarationen sowie die Initialisierung aller n Manipulatoren -->  
+	</robot>}
+	\end{lstlisting}
+	\caption{Der Nutzer hat die Möglichkeit, seine Aufgabe zu benennen. Das Feld 'position' ist eine Liste aller Aufgaben-Posen, während 'starts' die Indexe enthält, an denen das jeweilige robotische System die Iteration der Kette beginnt. Das 'mode' Feld dokumentiert den Aufgabentyp.}\label{fig:RD}
+\end{figure}
+
+\subsection{MoveGroup Interface mit Dual Setup}
+Eine Konfigurationsdatei präzisiert ein robotisches System als Bewegungsgruppe 'MoveGroup', dessen Identität eindeutig durch ihr Namensattribut bestimmt ist. Demnach genügt dieses zur Instanziierung eines MoveGroup Objekts, welcher die Kommunikation zum gewählten Roboter initiiert. Eine duale Konfigurationsdatei ermöglicht analog das Instanziieren und Ansteuern zweier robotischer Systeme. Dabei ist eine Fehlfunktion dieser Instanzen während einer Operation observierbar, wobei die Planung und Exekution durch eine vermeintlich unbeabsichtigte Kollision zwischen Endeffektor und Primitiv detektiert wird, woraufhin die auszuführende Handlung negativ terminiert. Dies impliziert, dass die Funktionen des MoveGroup Interface hinsichtlich der Betrachtung mehrerer robotischer Systeme limitiert sind. Die Abbildung zeigt einen Ansatz, der die Kollisionsdetektion definierter Kollisionsobjekte in der AKM deaktiviert, was Beispielsweise das Greifen, Halten und Abstellen eines Primitives in einem Dualen Setup ermöglicht. 
+
+\begin{figure}[h!]
+	\begin{lstlisting}[language=JSON,firstnumber=1]
+// Initialisierung der Szene
+planning_scene::PlanningScene ps(kinematic_model);
+
+// Generierung der Bewegungsgruppen anhand der festgelegten Namensattribute innerhalb der dualen Konfigurationsdatei
+std::vector<moveit::planning_interface::MoveGroupInterface>  robots;
+for(int i = 1; i <= 2; i++)
+	robots.push_back(std::move(moveit::planning_interface::MoveGroupInterface("panda_arm"+ std::to_string(i))))
+	
+// Modifikation der Kollisionsmatrix, welche die erlaubten Kollisionen der robotischen Systeme anhand deren Adjazenzen enthaelt 
+collision_detection::AllowedCollisionMatrix acm = ps.getAllowedCollisionMatrix();
+
+for(int i = 1; i <= 2; i++){
+	acm.setEntry("object" + std::to_string(i), "panda_" + std::to_string(i+1) + "_leftfinger", true);
+	acm.setEntry("object" + std::to_string(i), "panda_" + std::to_string(i+1) + "_rightfinger", true);
+}
+
+// Publikation der Aenderungen als Inhalt einer Planning Scene Nachricht
+moveit_msgs::PlanningScene pls;
+acm.getMessage(pls.allowed_collision_matrix);
+pls.is_diff = true;
+planning_scene_diff_publisher.publish(pls);
+
+	\end{lstlisting}
+	\caption{Des Endeffektors rechter und linker Finger kollidieren unweigerlich während der Exekution mit dem Primitiv. Der illustrierte Quelltext Auszug stellt einen Ansatz zur Umgehung dar und ermöglicht eine erfolgreiche Terminierung des Vorgangs.}\label{fig:AKM}
+\end{figure}
+
+\section{Implementierung zur Positionsermittlung}
+Die tatsächliche Implementierung ist Inhalt des Reach Pakets, dessen Struktur die Abbildung ... illustriert. An dieser ist ersichtlich, dass die Artefakte aus den kinematischen Berechnungen, beispielsweise der Arbeitsraum Analyse oder dessen Inversion, in den zugehörigen Ordnern persistiert werden, während anderweitig generierte Dateien, wie der Aufgabenbeschreibung und Positionsbeschreibung, an anderer Stelle vorliegen. Das Rviz Verzeichnis beinhaltet alle Konfigurationen der spezifischen Nodes im RViz Kontext, dessen Resultate anhand visueller Nachrichten publiziert werden. Dies impliziert, dass relevante Aspekte eines Nodes jederzeit durch das RViz Programm transparent observiert werden können.
+
+\begin{figure}
+\centering
+\begin{minipage}{.55\linewidth}
+\dirtree{%
+.1 Reach.
+.2 include.
+.2 launch.
+.2 maps.
+.3 inverse.
+.3 reach.
+.2 rviz.
+.2 src.
+.2 task.
+.2 position.
+}
+\end{minipage}\hfill
+\caption{Visualisierung aller Komponenten des Reach Verzeichnisses und deren Beziehung untereinander.}\label{fig:reach}
+\end{figure}
+
+
+\subsection{Implementierung der Arbeitsraumanalyse}
+Die Folgende Header Datei beschreibt alle Funktionen, die den Algorithmus der Arbeitsraumanalyse implementieren. Dazu sind gemäß der Erörterungen im 'Konzept' Kapitel, neben der kubischen Diskretisierung zusätzliche sphärische Diskretisierungen formuliert. Die Planung des Endeffektors zu einer generierten Endeffektor Pose erfolgt über das MoveGroup Interface, angewandt auf der Konfigurationsdatei eines einzelnen robotischen Systems.
+
+\lstinputlisting[language=C++]{./images/publisher\_node.h}
+
+\subsection{Implementierung des Inversen Arbeitsraums}
+Der Algorithmus des Inversen Arbeitsraums kalkuliert anhand der persistierten Informationen der Arbeitsraumanalyse die Metrik D. Die Inversion aller Transformationen anhand eine Iteration über den Arbeitsraum, erfolgt durch das tf2 Objekt der gleichnamigen Bibliothek für Operationen auf homogene Transformationen. Zusätzlich erfolgt die Portierung der Metrik und Persistenz.
+
+\subsection{Der Algorithmus zur Positionsanalyse}
+Die Implementierung der Positionsanalyse erfolgt über dessen Voxelisierung durch Integration der PCL Bibliothek. Diese ist in C++ vollumfänglich Implementiert und ermöglicht performante Operationen auf 3 dimensionale Koordinaten. Ein bedeutender unterschied des Algorithmus zur Platzierung robotischer Systeme in Reolux und dessen Implementierung in dieser Arbeit ist die differenzierte Voxelisierung. Diese Implementiert zunächst ein Gitter aus Vektoren $^{0}v \in \R^{3}$ ähnlich der kubischen Diskretisierung, und bildet jede Transformation $^{0}T_{Base_{i}} \in ^{0}T_{Base}$ eines Kettenglieds der Operationskette $g_{i} \in OK$ anhand seiner räumlichen Position auf den Vektor $^{0}v$ ab. Die resultierende Struktur ist in ... abgebildet. 
+
+\begin{align*}
+Task &= {(i, ^{0}T_{Base_{i}}) | g_{i} \in OK} \\
+Dictionary &= {(^{0}v, Task)}
+\end{align*}
+
+Eine Teilkette $TK \subset OK$ definiert nun anhand ihrer Glieder $g_{i}$ die Einträge, welche der Vektor $^{0}v$ mindestens enthalten muss, um eine potentielle Position des robotischen Systems zu sein, welcher $TK$ operiert. Durch die Abbildung $D_{port}({0}T_{Base}) = D_{Reach}({0}T_{Base})$ ist Analog die Struktur $Task_{Metrik}$ implementiert, welche die portierten Metriken aller Transformation $^{0}T_{Base_{i}}$ auf den Vektor $^{0}v$ abbildet
+
+\begin{align*}
+Task_{Metrik} &= {(i, D_{port}(^{0}T_{Base_{i}})) | g_{i} \in OK} \\
+Dictionary_{Metrik} &= {(^{0}v, Task_{Metrik})}
+\end{align*}
+
+Die Ermittlung der optimalen Position $^{0}v$ für eine Teilkette $TK$ erfolgt, indem das arithmetische Mittel pro Kettenglied  $TK \in g_{i}$ kalkuliert wird und in Verhältnis zur Kardinalität $\vert TK \vert$ gesetzt wird. \par 
+Die resultierende Position pro $TK$ wird in einem eigenen Verzeichnis persistiert, um als Parameter der 'Pick and Place' Implementierung geladen zu werden und über jede Instanz, über die Konfigurationsdatei der Roboterbeschreibung übergeben zu werden.  
+
diff --git a/sections/konzept.tex b/sections/konzept.tex
index 0f23aed6b5d0ceae4bea837f557d7b59b401ee0a..8fbc9997acc9a20e719a311cb8ca9c7c6ad139d3 100644
--- a/sections/konzept.tex
+++ b/sections/konzept.tex
@@ -53,7 +53,7 @@ Durch die Wahl des festen Abstands $a$ bezüglich der kubischen Diskretisierung
 Zusätzlich empfiehlt sich die vollständige Auslagerung der Berechnungen auf das Hochleistungsrechenzentrum der TU-Dresden, um diese mit dem Gitlab.Ci Interface über große Zeiträume vorzunehmen. \autoref{fig:RM} zeigt die Struktur der JSON-Datei, die als Artefakt der Berechnung von Gitlab entnommen werden kann.
 
 \begin{figure}[h!]
-	\begin{lstlisting}[language=json,firstnumber=1]
+	\begin{lstlisting}[language=JSON,firstnumber=1]
 	{"name": "RM_\$(maxdistance)_\$(resolution)"
 	 "resolution": float,
 	 "max_distance": float,
@@ -144,7 +144,7 @@ und persistiert. Das Ergebnis dieses Teilprogramms kann nun bei Formeln der Form
 Die resultierende 
 
 \begin{figure}[h!]
-	\begin{lstlisting}[language=json,firstnumber=1]
+	\begin{lstlisting}[language=JSON,firstnumber=1]
 	{"name": "IRM_\$(maxdistance)_\$(resolution)"
 	 "resolution": float,
 	 "max_distance": float,
@@ -161,7 +161,7 @@ Aktuell bietet MoveIt die Möglichkeit, beliebig Kollisionsobjekte in der Szene
 Eine valide Aufgabenbeschreibung kann in JSON Dateien persistiert werden, dessen Struktur in \autoref{fig:TASK} veranschaulicht und zur Durchführung der Aufgabe durch robotische Systeme bedingt ist.
 
 \begin{figure}[h!]
-	\begin{lstlisting}[language=json,firstnumber=1]
+	\begin{lstlisting}[language=JSON,firstnumber=1]
 	{"name": "TASK_"
 	 "position": [ "x y z q_x q_y q_z q_w"],
 	 "starts": [int],
diff --git a/sections/sota.tex b/sections/sota.tex
index 793f2687fa8eb3752acafa43ce126beb8263da63..71137c11b369f3151519f91255bb7886447802c5 100644
--- a/sections/sota.tex
+++ b/sections/sota.tex
@@ -1,5 +1,5 @@
 \chapter{Erkenntnisse zur Platzierung robotischer Systeme} \label{ch:sota}
-Zur Schaffung kollaborative Multi-Roboter Arbeitsräume ist die Platzierung robotischer Systeme ein fundamentaler Bestandteil. Die Einhaltung der physikalischen Beschränkungen bezüglich genutzter Roboter ist hierbei unerlässlich, um hinsichtlich ihrer Aufgabe und Platzierung ein zufriedenstellendes Ergebnis zu erzielen. Einen Ansatz zur Erfassung dieser robotischer Grenzen konkretisieren Zacharias et al. in ihrer wissenschaftlichen Arbeit und kombiniert diesen in folgenden Publikationen mit zusätzlichen Aspekten der Kinematik. Infolge dieser Ausführungen wird ein Algorithmus erörtert, der mittels Komposition der Komponenten  'Arbeitsraumanalyse', 'Arbeitsrauminvertierung' und 'Positionsanalyse' sukzessiv die Position eines Roboters hinsichtlich seiner Grenzen bestimmt. Inhalt dieses Kapitels ist die Auseinandersetzung mit angewandten Methodiken der genannten Komponenten, um daraus gewonnene Erkenntnisse in der konzeptuellen Ausarbeitung und Implementierung zu nutzen. \autoref{fig:Algo} zeigt die Reihenfolge der Komponenten im Algorithmus und stellt den Aufbau dieses Kapitels dar.
+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. Infolge dieser Ausführungen wird ein Algorithmus erörtert, der mittels Komposition der Komponenten  'Arbeitsraumanalyse', 'Arbeitsrauminvertierung' und 'Positionsanalyse' sukzessiv die Position eines Roboters hinsichtlich seiner Grenzen bestimmt. Inhalt dieses Kapitels ist die Auseinandersetzung mit angewandten Methodiken der genannten Komponenten, um daraus gewonnene Erkenntnisse in der konzeptuellen Ausarbeitung und Implementierung zu nutzen. \autoref{fig:Algo} zeigt die Reihenfolge der Komponenten im Algorithmus und stellt den Aufbau dieses Kapitels dar.
 
 \begin{figure}[h!]
 \centering
@@ -13,10 +13,15 @@ Zur Schaffung kollaborative Multi-Roboter Arbeitsräume ist die Platzierung robo
 \end{figure}
 
 \section{Arbeitsraumanalyse}
-Vahrenkamp et al. beschreiben in ihrer Publikation die Analyse des Arbeitsraums eines robotischen Systems als Ausgangspunkt zur Berechnung dessen optimaler Positionierung hinsichtlich einer zuvor definierten Aufgabe \cite{Vahrenkamp.5620135102013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit Ansätze, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen auf eine feste Menge generierter Endeffektor-Posen in Form von Transformationen $^{0}T_{Endeff}  \in SE(3)$ relativ zum $Frame_{0}$, das unmittelbare Umfeld des Roboters zu erfassen und Anhand einer Metrik zu charakterisieren. Anschließend werden die resultierenden $^{0}T_{Endeff}$ zuzüglich der Metrik als Information über dessen Erreichbarkeit persistiert und bilden die 'reachability map'. 
+Vahrenkamp et al. beschreiben in ihrer Publikation die Analyse des Arbeitsraums eines robotischen Systems als Ausgangspunkt zur Berechnung dessen optimaler Positionierung hinsichtlich einer zuvor definierten Aufgabe \cite{Vahrenkamp.5620135102013}. Dazu dokumentieren Zacharias et al. in ihrer wissenschaftlichen Arbeit einen Ansatz, dessen Inhalt es ist, durch wiederholtes Anwenden kinematischer Algorithmen $f_{kin}$ 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. 
 
-\subsection{Arbeitsraumerfassung}
-Das Paar aus einem Vektor $^{0}v \in \R^{3}$ und einer Rotation $^{0}R \in SO(3)$ bildet die Transformation $(^{0}v_{Endeff}, ^{0}R_{Endeff}) \in ^{0}T_{Endeff}$ des Endeffektors. Daraus ist abzuleiten, dass die Zusammenstellung einer Menge $^{0}P_{total}$ aus $^{0}v$ und die Generierung dessen zugehöriger Rotationen $^{0}R$, welche die Menge aller Orientierungen $OR_{total}$ definiert, abstrahiert in der Arbeitsraumerfassung betrachtet werden können. Das Kreuzprodukt dieser Mengen beschreibt alle Transformationen $^{0}T_{Endeff}$ als Grundlage anschließender kinematischer Berechnungen. \autoref{fig:totals} visualisiert diese Mengen.
+\begin{equation}
+f_{kin}:T \to \{0 | 1\}
+\end{equation}
+
+\begin{equation}
+RM:= \{(t , f_{kin}(t)) | t \in T \}
+\end{equation}
 
 \begin{figure}[h!]
 \centering
@@ -41,21 +46,35 @@ Das Paar aus einem Vektor $^{0}v \in \R^{3}$ und einer Rotation $^{0}R \in SO(3)
 	\caption{Abstrahierte Darstellung der Mengen ... und ... und deren resultierende Transformation ... in ....} \label{fig:totals}
 \end{figure}
 
-\subsubsection{Menge aller Positionen}
-Dieser Abschnitt erläutert Methodiken zur Population der Menge $^{0}P_{total}$ aller Positionen. Die Wahl der Vektoren $^{0}v \in ^{0}P_{total}$ erfordert das bestimmen eines Intervalls $[-q,q] : q \in \R$, welches den tatsächlichen Arbeitsraum des robotischen Systems überschätzt. Anschließend erfolgt ein Verfahren zur Generierung der Elemente $^{0}x, ^{0}y, ^{0}z  \in [-q,q]$, die den Vektor $^{0}v$ definieren. 
+Das Paar aus einem Vektor $^{0}v \in \R^{3}$ und einer Rotation $^{0}R \in SO(3)$ bildet die Transformation $(^{0}v_{Endeff}, ^{0}R_{Endeff}) \in ^{0}T_{Endeff}$ als 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. Das Kreuzprodukt dieser Mengen beschreibt alle Endeffektor Posen in $T$ als Grundlage anschließender kinematischer Berechnungen $f_{kin}$. \autoref{fig:totals} visualisiert diese Mengen.
+
+\begin{equation}
+T:= \{ P_{total} \times OR_{total} \} \in T
+\end{equation}
+
+\begin{equation}
+^{0}T_{Endeff}:= \{(v,R) | v \in P_{total},  R \in OR_{total} \} \in T
+\end{equation}
+
+\subsection{Menge aller Positionen}
+Dieser Abschnitt erläutert Methodiken zur Population der Menge $^{0}P_{total}$. Die Wahl der Vektoren $^{0}v \in ^{0}P_{total}$ erfordert das bestimmen eines Intervalls $[-q,q] : q \in \R_{+}$, welches den tatsächlichen Arbeitsraum des robotischen Systems überschätzt. Anschließend erfolgt ein Algorithmus zur Generierung der Elemente $^{0}x, ^{0}y, ^{0}z  \in [-q,q]$, die den Vektor $^{0}v$ definieren. 
+
+\begin{equation}
+P_{total}:= \{(x, y, z)^{T} | q \in \R_{+}; x, y ,z \in [-q,q] \}
+\end{equation}
 
 \subsubsection{Positionen durch Zufallsverfahren}
 Dieses Verfahren bestimmt die Verteilung der Vektoren $^{0}v$, welche keiner räumlichen oder anderweitigen Abhängigkeit, mit Ausnahme des festen Intervalls $[-q,q]$, unterliegen.
 
 \subsubsection{Positionen durch kubische Diskretisierung} 
-Die kubische Diskretisierung des Arbeitsraums robotischer Systeme stellt ein Verfahren zur Bestimmung der Vektoren $^{0}v$ dar, welche durch Angabe einer festen 'Auflösung' $ a \in \R_{+}$ das Umfeld des Roboters in ein reguläres Gitter der Grenzen $[-q,q]$ unterteilt. Der daraus resultierende diskretisierte Würfel stellt eine gleichmäßige Verteilung der Vektoren $^{0}v$ mit Abstand $a$ im Intervall $[-q,q]$ dar. Die Ermittlung der Kardinalität $\vert ^{0}P_{total} \vert$ ist implizit durch das Intervall $[-q,q]$ und der Auflösung $a$ gegeben. 
+Die 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. 
 
 \begin{equation}
-\vert ^{0}P_{total} \vert = (\frac{2 \times q}{a} + 1)^{3}
+\vert ^{0}P_{total} \vert = (\frac{2 \times q}{a})^{3}
 \end{equation}
 
-\subsubsection{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, die $^{0}s \in S$ auf der erzeugten Sphäre definieren. Hierzu beschreiben Azimut $\theta \in [ \, 0,2 \pi \,)$ und Colatitude $\phi \in [ \, 0,\pi \,]$ den Winkel auf der XY Ebene des kartesischen Koordinatensystems bzw. den Winkel zwischen Z Achse und $\overline{sp}$ \cite{SphericalCoordinates}. \autoref{fig:pollar} veranschaulicht das zugrundeliegende  Konzept der sphärischen Polarkoordinaten im kartesischen Koordinatensystem als Referenz. Bezogen auf die Orientierung eines Körpers, können die Polarwinkel als Yaw und Pitch eines Objektes interpretiert werden, welche durch den zusätzlichen Roll Winkel $Roll \in [ \, 0,2 \pi \,)$ die Rotation des Endeffektors und somit die Menge $OR_{total}$ komplettieren. Die Kardinalität $\vert ^{0}OR_{total} \vert$ ist durch die Menge aller sphärischen Vektoren $^{0}s \in S$ und zusätzlicher Betrachtung der $Roll$ Winkel bestimmt.
+\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, 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 Geraden $\overline{sp}$ \cite{SphericalCoordinates}. \autoref{fig:pollar} veranschaulicht das zugrundeliegende  Konzept der sphärischen Polarkoordinaten im kartesischen Koordinatensystem als Referenz. Bezogen auf die Orientierung eines Körpers, können die Polarwinkel als Gier und Nick Winkel 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$ und zusätzlicher Betrachtung der $Roll$ Winkel bestimmt.
 
 \begin{figure}[h!]
 \centering
@@ -85,52 +104,70 @@ Die Menge $^{0}OR_{total}$ beschreibt alle möglichen Orientierungen, die für j
 	\caption{A caption.}\label{fig:pollar}
 \end{figure}
 
-\begin{equation}
-S = \{s\in \R^{3} : \vert \overline{sp} \vert = r\}
-\end{equation}
+\begin{align*}
+S^{2} &= \{s \in \R^{3} | \vert \overline{sp} \vert = r\} 
+\end{align*}
 
 \begin{equation}
-\vert ^{0}OR_{total} \vert = \vert S \vert \times \vert Roll \vert
+\vert ^{0}OR_{total} \vert = \vert S^{2} \vert \times \vert Roll \vert
 \end{equation}
 
 \subsubsection{Orientierungen durch Zufallsverfahren}
-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. Die Kardinalität $\vert S \vert$ lässt sich daher eindeutig bestimmen.
+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.
 
 \begin{equation}
-\vert S \vert = n
+\vert S^{2} \vert = n
 \end{equation}
 
 \subsubsection{ungleichmäßige sphärische Diskretisierung}
-Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ basierend auf festen 'Auflösungen' $^{0}p, ^{0}q \in \R_{+}$ generiert ein sphärisches Gitter, indem die sphärischen Vektoren $^{0}s$ nicht äquidistant und demzufolge ungleichmäßig Verteilt sind. Die Kardinalität $\vert S \vert$ ist anhand der gewählten Auflösungen $^{0}p, ^{0}q$ und der Winkelintervalle berechenbar.
+Das Abtasten der Winkelintervalle von $\theta$ und $\phi$ 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 berechenbar.
 
 \begin{equation}
-\vert S \vert = \frac{2 \times \pi}{p} \times \frac{\pi}{q}
+\vert S^{2} \vert = \frac{2 \times \pi}{p} \times \frac{\pi}{q}
 \end{equation}
 
 \subsubsection{gleichmäßige sphärische Diskretisierung}
-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, angewendet auf der Modellierung fluider Partikel \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. Die Kardinalität $\vert S \vert$ ist analog zu ... 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 basiert das Tammes's problem oder hard-spheres problem auf dieser Problemstellung, angewendet auf der Modellierung fluider Partikel \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. Die Kardinalität $\vert S^{2} \vert$ ist analog zu ... durch $n$ gegeben.
 
 
 \subsection{Arbeitsraumcharakterisierung}
-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 generierten und operierten Orientierungen für $^{0}p_{Endeff}$. 
+Als Metrik $D_{Reach}$ zur Klassifizierung der Erreichbarkeit eines Vektors $^{0}v_{Endeff}$ dient die Gegenüberstellung der Menge $OR_{v}$ 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 generierten und operierten Orientierungen für $^{0}v_{Endeff}$. 
 
 \begin{equation}
-D_{Reach}(p) = \frac{\vert OR_{suc}(p) \vert}{\vert OR_{total} \vert}
+OR_{v} := \{R | ((v, R),f _{kin}) \in RM  und f_{kin}((v, R)) = 1 \} \subset  OR_{total}
 \end{equation}
 
+\begin{align*}
+D_{Reach}:v & \to [0,1] \\
+D_{Reach}(v) &= \frac{\vert OR_{v} \vert}{\vert OR_{total} \vert}
+\end{align*}
+
 \section{Invertierter Arbeitsraum}
-Der invertierte Arbeitsraum beschreibt nach Zacharias et al. alle Posen relativ zum Endeffektor, von denen aus das robotische System den Koordinatenursprung des $Frame_{0}$ erreicht. Dazu beschreibt dieser Prozess die Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$ der Arbeitsraumanalyse und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierenden Transformationen $^{Endeff}T_{0}$ mit den zugehörigen Metriken werden als Tupel persistiert. 
+Der invertierte Arbeitsraum beschreibt nach Zacharias et al. alle Posen relativ zum Endeffektor, von denen aus das robotische System den Koordinatenursprung des $Frame_{0}$ erreicht. Dazu beschreibt dieser Prozess die Invertierung aller persistierten Transformationen $^{0}T_{Endeff}$ der Arbeitsraumanalyse und Portierung der zugehörigen Metrik $D_{Reach}(^{0}v_{Endeff})$. Die resultierende Menge $T^{-1}$ Transformationen $^{Endeff}T_{0}$ mit den zugehörigen Metriken werden als 'inverse reachability map' $IRM$ persistiert. 
 
 \begin{align*}
-(^{0}T_{Endeff})^{-1} = ^{Endeff}T_{0} ()
+T^{-1} &:= \{t^{-1} | t \in T\} \\
+IRM &:= \{(T^{-1}, D_{Reach}(v)) | ((v, R),d) \in RM \}
 \end{align*}
 
 \section{Analyse der Positionen}
-Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basis Positionen $^{0}p_{Base} \in ^{0}T_{Base}$ eines robotischen Systems, welche sich aus der Multiplikation mit dem invertierten Arbeitsraum und einer Pose der spezifischen Aufgabe ergeben. Die Metrik wird dabei auf die $^{0}p_{Base}$ portiert und beschreibt die Zuverlässigkeit dieser Position. Komplexe Aufgaben mit einer Anzahl $n \in \N : n > 2$ Posen $^{0}a$, welche der Roboter erreichen muss, skalieren die Menge aller Basis Vektoren $P_{Base}$. Dabei ist die Verteilung der Vektoren $^{0}p_{Base}$ unregelmäßig, beispielsweise gruppieren diese Aufeinander oder sind vernachlässigbar voneinander distanziert. Eine Methode, innerhalb dieser enormen Datenmenge eine optimale Position zu errechnen, ist die Voxelisierung. Dieses Verfahren, ähnlich der kubischen Diskretisierung, erzeugt einen Hyperwürfel innerhalb eines festen Intervalls $[-q, q] \in \R$, welcher aus disjunkten Boxen besteht, dessen Zentren jeweils um eine Auflösung $u \in \R_{+}$ distanziert sind. Jede Box enthält eine Menge $^{0}p_{Base}$, die distinkt voneinander betrachtet werden kann.
+Inhalt dieses Abschnittes ist die Analyse aller potentiellen Basis Positionen $P_{Base}$ eines robotischen Systems, welche sich aus der Matrix Multiplikation mit dem invertierten Arbeitsraum $IRM$ und einer Pose der spezifischen Aufgabe $^{0}a$ ergeben. Die Metrik wird dabei nach der Kalkulation auf $P_{Base}$ abgebildet und beschreibt die Zuverlässigkeit dieser Position. Komplexe Aufgaben mit einer Anzahl $n \in \N : n > 2$ Posen $^{0}a$, welche der Roboter operieren muss, skalieren die Menge aller Basis Vektoren $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 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} $, die abstrahiert voneinander betrachtet werden kann. Diese Abbildung der Vektoren $^{0}p_{Base}$ auf Voxel implementiert eine Abtastung, wobei die Wertigkeit eines Voxels durch sein Zentrum 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$.
 
-\subsection{Box-Index}
-Die Bestimmung der Box, dessen Vektoren $^{0}p_{Base}$ sich bevorzugt für die Platzierung des robotischen Systems eigenen, erfolgt in Reulaux durch einen Box-Index $I(Box)$, der sich aus dem arithmetischen Mittel der Metriken $D_{Reach}^{average}(Box)$ aller enthaltenen Vektoren und der Anzahl dieser bestimmt. Zuvor erfolgt eine Iteration über jede Box, dessen Ziel es ist, die Box $Box_{max}$ zu bestimmen, die die meisten $^{0}p_{Base}$ beinhaltet. Die Gegenüberstellung der Kardinalitäten und Metriken bestimmt den Box-Index, der die Wertigkeit einer potentiellen Roboterposition nach der Erreichbarkeit bezüglich der Aufgabe und dem Inhalt der jeweiligen Box gewichtet. Demnach lässt eine mächtige Box darauf schließen, dass Posen verschiedener Aufgaben von ihr erreichbar sind. Weiterhin impliziert ein hoher Wert $D_{Reach}^{average}(Box)$ die Validität der enthaltenen Vektoren $^{0}p_{Base}$ in der Box.
+ 
+\begin{align*}
+P_{Base} &:= \{(a \times t, d) | (t, d) \in IRM\} \\
+\end{align*}
+
+\subsection{Charakterisierung eines Voxels}
+Nun wird der Algoritmus von ... eruiert, welcher alle $k$ Voxel charakterisiert und anhand dessen Vektoren $^{0}p_{Base}$ bestimmt, welcher sich bevorzugt für die Platzierung des robotischen Systems eignet. Dies erfolgt durch eine weitere Metrik $D_{voxel}$, die sich dem arithmetischen Mittel  $D_{Reach}^{average}$ eines Voxels und dem Verhältnis dessem Mächtigkeit im Verhältnis zum maximalen Voxel. Zuvor erfolgt eine Iteration, dessen Ziel es ist, das Voxel $TP_{max}$ zu bestimmen, welcher die  meisten $^{0}p_{Base}$ beinhaltet. Demnach lässt eine mächtige Box darauf schließen, dass Posen verschiedener Aufgaben von ihr erreichbar sind. Die Metrik $D_{voxel}$ bewertet demnach ein Voxel anhand dessen Inhalts und seiner Mächtigkeit, wobei die Voxel mit der maximalen Wertigkeit eine valide Position des robotischen Systems für alle $n$ Posen der Aufgabe darstellt.
+
+\begin{align*}
+D_{voxel}^{average}:TP & \to [0,1] \\
+D_{voxel}^{average}(TP)&= \frac{\displaystyle\sum_{i=0}^{\vert TK \vert } p_{i}.d \in TK}{\vert TK \vert}
+\end{align*}
+
+\begin{align*}
+D_{voxel}:TP & \to [0,1] \\
+D_{voxel}(TP) &= D_{voxel}^{average}(TP) \times \frac{\vert TP \vert}{\vert TP_{max} \vert}
+\end{align*}
 
-\begin{equation}
-I(Box) = D_{Reach}^{average}(Box) \times \frac{\vert Box \vert}{ \vert Box_{max} \vert }
-\end{equation}
diff --git a/thesis.tex b/thesis.tex
index 5675175270b7394f67cd6ab6a4ceb912a74ef9bd..bce5d7b2fc947366789f1df24bf2694dfd274e16 100644
--- a/thesis.tex
+++ b/thesis.tex
@@ -79,6 +79,7 @@
 
 \input{lst.tex}
 \usepackage{tikz}
+
 \usetikzlibrary{positioning,arrows,calc,math,angles,quotes,chains,shapes}
 \newcommand{\R}{\mathbb{R}}
 \newcommand{\N}{\mathbb{N}}
@@ -87,40 +88,8 @@
 \usepackage{bera}% optional: just to have a nice mono-spaced font
 \usepackage{listings}
 \usepackage{xcolor}
-
-\colorlet{punct}{red!60!black}
-\definecolor{background}{HTML}{EEEEEE}
-\definecolor{delim}{RGB}{20,105,176}
-\colorlet{numb}{magenta!60!black}
-
-\lstdefinelanguage{json}{
-    basicstyle=\normalfont\ttfamily,
-    numbers=left,
-    numberstyle=\scriptsize,
-    stepnumber=1,
-    numbersep=8pt,
-    showstringspaces=false,
-    breaklines=true,
-    frame=lines,
-    backgroundcolor=\color{background},
-    literate=
-     *{0}{{{\color{numb}0}}}{1}
-      {1}{{{\color{numb}1}}}{1}
-      {2}{{{\color{numb}2}}}{1}
-      {3}{{{\color{numb}3}}}{1}
-      {4}{{{\color{numb}4}}}{1}
-      {5}{{{\color{numb}5}}}{1}
-      {6}{{{\color{numb}6}}}{1}
-      {7}{{{\color{numb}7}}}{1}
-      {8}{{{\color{numb}8}}}{1}
-      {9}{{{\color{numb}9}}}{1}
-      {:}{{{\color{punct}{:}}}}{1}
-      {,}{{{\color{punct}{,}}}}{1}
-      {\{}{{{\color{delim}{\{}}}}{1}
-      {\}}{{{\color{delim}{\}}}}}{1}
-      {[}{{{\color{delim}{[}}}}{1}
-      {]}{{{\color{delim}{]}}}}{1},
-}
+\usepackage{lstautogobble}
+\usepackage{dirtree}
 
 \begin{document}
 
@@ -172,14 +141,16 @@
 \input{sections/grundlagen.tex}
 \input{sections/sota.tex}
 \input{sections/konzept.tex}
-\input{sections/problem.tex}
-\input{sections/eval.tex}
-\input{sections/zusammenfassung.tex}
+\input{sections/fallbeispiel.tex}
+\input{sections/implementierung.tex}
+% \input{sections/eval.tex}
+% \input{sections/zusammenfassung.tex}
 
+\nocite{*}
 \printbibliography[heading=bibintoc]\label{sec:bibliography}%
 
-\appendix
-\input{sections/appendix}
+%\appendix
+%\input{sections/appendix}
 
 \confirmation