Skip to content
Snippets Groups Projects
Commit 1027a1ec authored by Jim Molkenthin's avatar Jim Molkenthin
Browse files

Anforderungen

parent eb68d14c
No related branches found
No related tags found
No related merge requests found
Pipeline #8854 passed with warnings
images/Klassendiagramm Cobot.jpg

51.6 KiB

\chapter{Weitere Latex-Dokumentation}
Nachdem nun der Vorspann und~-- bis auf das Literaturverzeichnis am
Ende des Dokumentes auf Seite~\pageref{sec:bibliography}~-- alle
Verzeichnisse erfolgreich ausgegeben wurden, wird nun die Verwendung
der weiteren Umgebungen und Befehle demonstriert, welche im Tutorial
\texturn{treatise.pdf} vorgestellt wurden.
\section{Referenzen und das Literaturverzeichnis}
Das Literaturverzeichnis wird auf Basis der nachfolgend verwendeten
Zitate erstellt und ist auf Seite~\pageref{sec:bibliography} zu finden.
\section{Grafiken und Tabellen in Gleitumgebungen}
Es folgt die Demonstration von Gleitumgebungen, welche sowohl für
Grafiken als auch Tabellen verwendet werden sollten. Im vorliegenden
Beispiel kann unter Umständen der Eindruck entstehen, dass diese Seite
etwas zu überladen mit Gleitobjekten ist. Dies liegt nicht an der
Verwendung der Gleitobjekte sondern vielmehr am zu geringen Textvolumen
und den eingeschränkten Möglichkeiten von \LaTeX{}, diese an geeigneten
Stellen zu platzieren.
\subsection{Abbildungen als Gleitobjekte und das Einbinden von Grafiken}
In \autoref{fig:example} wird dargestellt, wie eine Grafik im PDF"~Format
in ein Dokument eingebunden und auf diese verwiesen werden kann. Ein
Querverweis auf ein Gleitobjekt sollte im Fließtext am besten mit Befehl
\texttt{\textbackslash autoref\{\emph{<Label>}\}} erstellt werden.
Hierfür ist ein entsprechender Anker am zu referenzierenden Objekt nötig,
welcher mit dem Makro \texttt{\textbackslash label} erzeugt wird. Dabei
ist entscheidend, dass dieser Anker erst \emph{nach} der Beschriftung des
Objektes, welche mit \texttt{\textbackslash caption} zu erstellen ist,
definiert werden sollte.
\begin{figure}
\centering
\includegraphics{TUD-black}
\caption{Beispielgrafik}\label{fig:example}
\end{figure}
\subsection{Untergleitobjekte}
Nachdem nun schon eine gleitende Abbildung und zwei gleitende Tabellen
erstellt wurden, folgt jetzt noch eine gleitende Abbildung mit zwei
Unterabbildungen. Durch die drei gesetzten Anker kann im Fließtext
sowohl auf \autoref{fig:logos} als auch auf \autoref{fig:tud} sowie
\autoref{fig:ddc} verwiesen werden.
\begin{figure}
\ffigbox[\FBwidth]%
{\begin{subfloatrow}%
\ffigbox[\FBwidth]%
{\fbox{\includegraphics[height=2cm]{TUD-black}}}%
{\caption{Eine Abbildung}\label{fig:tud}}%
\ffigbox[\FBwidth]%
{\fbox{\includegraphics[height=2cm]{DDC-21}}}%
{\caption{Eine weitere Abbildung}\label{fig:ddc}}%
\end{subfloatrow}}%
{\caption{Eine Gleitumgebung mit zwei Abbildungen}\label{fig:logos}}%
\end{figure}
\subsection{Tabellen als Gleitobjekte}
Tabellen sollten in der \texttt{table}"=Gleitumgebung gesetzt werden.
Welche Umgebung für die Tabelle selbst dabei genutzt wird ist dabei
nicht relevant. Es können sowohl die normale \texttt{tabular}"=Umgebung
als auch die Umgebungen \texttt{tabularx}, \texttt{tabulary} sowie
\texttt{tabu} für variable Spaltenbreiten bei einer fest vorgegebenen
Tabellenbreite oder jede andere Tabellenumgebung genutzt werden.
Nachfolgend wird dies an mehreren Beispielen demonstriert.
\subsubsection{Eine gleitende tabularx-Tabelle}
Es wird eine Tabelle mithilfe der \texttt{tabularx}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabularx}. Für diese werden zuvor
neue Spaltentypen definiert.
\newcolumntype{Y}{>{\hspace{0pt}}X}
\newcolumntype{D}{>{\raggedright}Y}
\newcolumntype{E}{>{\centering}Y}
\newcolumntype{F}{>{\raggedleft}Y}
\begin{table}
\begin{tabularx}{\textwidth}{@{}DEFY@{}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline
\midrule
Ein linksbündiger Blindtext zur Demonstration einer S"~Spalte &
Ein zentrierter Blindtext zur Demonstration einer T"~Spalte &
Ein rechtsbündiger Blindtext zur Demonstration einer U"~Spalte &
Ein längerer Blindtext im Blocksatz zur besseren Demonstration
einer Y"~Spalte\tabularnewline
\bottomrule
\end{tabularx}
\caption{Eine \texttt{tabularx}"=Tabelle}\label{tab:tabularx}
\end{table}
\subsubsection{Eine gleitende tabulary-Tabelle}
Es wird eine Tabelle mithilfe der \texttt{tabulary}"=Umgebung erstellt.
Zu sehen ist diese in \autoref{tab:tabulary}.
\begin{table}
\begin{tabulary}{\textwidth}{@{}LCRJ@{}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
Ein linksbündiger Blindtext zur Demonstration einer L"~Spalte &
Ein zentrierter Blindtext zur Demonstration einer C"~Spalte &
Ein rechtsbündiger Blindtext zur Demonstration einer R"~Spalte &
Ein wesentlich längerer und absolut inhaltsleerer Blindtext im
Blocksatz für eine um einiges bessere Demonstration einer J"~Spalte
\tabularnewline\bottomrule
\end{tabulary}
\caption{Eine \texttt{tabulary}"=Tabelle}\label{tab:tabulary}
\end{table}
\subsubsection{Eine gleitende tabu-Tabelle}
In \autoref{tab:tabu} ist eine weitere Tabelle mit variabler Breite der
Spalten und festgelegter Gesamtbreite zu sehen, welche in der Umgebung
\texttt{tabu} gesetzt wurde. Auch für diese wird zuerst ein neuer
Spaltentyp definiert, der die Unzulänglichkeiten der Umgebung reduziert.
Mit \texttt{\textbackslash ttabbox} aus dem Paket \texttt{floatrow} wird
die Beschriftung auf die Breite der Tabelle begrenzt.
\makeatletter
\newcolumntype{Z}{}
\renewcommand*{\NC@rewrite@Z}[1][]{%
\NC@find>{\hspace{0pt}}X[#1]<{\@finalstrut\@arstrutbox}%
}
\makeatother
\begin{table}
\ttabbox{%
\begin{tabu} to .8\textwidth {@{}Z[3,l]Z[3,c]Z[3,r]Z[2,j]@{}}
\toprule
\textbf{Linksbündig} & \textbf{Zentriert} &
\textbf{Rechtsbündig} & \textbf{Blocksatz} \tabularnewline\midrule
Ein linksbündiger Blindtext zur Demonstration einer Z[l]"~Spalte &
Ein zentrierter Blindtext zur Demonstration einer Z[c]"~Spalte &
Ein rechtsbündiger Blindtext zur Demonstration einer Z[r]"~Spalte &
Ein Blindtext im Blocksatz innerhalb einer Z"~Spalte
\tabularnewline\bottomrule
\end{tabu}%
}{%
\caption[Eine \texttt{tabu}"=Tabelle]{%
Eine \texttt{tabu}"=Tabelle in Verbindung mit dem Befehl
\texttt{\textbackslash ttabbox}, welcher vom Paket \texttt{floatrow}
für Beschriftungen in Objektbreite bereitgestellt wird%
}%
\label{tab:tabu}%
}
\end{table}
\section{Zitate}
Bei der Verwendung von wörtlichen Zitaten sollten diese als solche
gekennzeichnet werden.
\enquote{Dies ist ein zugegebenermaßen nicht sehr sinnvolles Zitat.}
\cite[58]{hanisch14}
Für eine möglichst gut nachvollziehbare Referenz sollte nicht nur
das Werk selber sondern zumindest die Seitenzahl und gegebenenfalls
der Absatz der originalen Textstelle angegeben werden.
\begin{quoting}
\enquote{%
Dies ist ein noch sinnloseres Zitat. Allerdings wird zumindest die
Wirkung der Umgebung \texttt{quoting} bei der Absatzauszeichnung
deutlich.
Wie zu sehen ist, wird der zweite Absatz~-- wie jeder weitere~--
aufgrund der Option \texttt{parskip=false} eingezogen.
}
\cite[sinngemäß nach][\pno{} 12, zweiter Absatz]{hanisch14}
\end{quoting}
Ebenfalls sollten sinngemäße Zitate mit einer möglichst genauen Referenz
angegeben werden. Dies kann im Laufe der Arbeit auch für einen selbst von
Vorteil sein, wenn beispielsweise die originale Textpassage noch einmal
analysiert werden soll.
\chapter{Fallstudie}\label{ch:implementation} \chapter{Fallstudie}\label{ch:implementation}
Die Fallstudie soll eine Auswahl an Constraints in einem kollaborativen Anwendungsfall implementieren und untersuchen. Die Ausgangssituation bilden zwei Panda Roboterarme des Herstellers Franka Emika\footnote{https://www.franka.de/}. Der erste Roboter nimmt nach Initialisierung durch einen Menschen ein Gefäß auf und füllt dessen Inhalt in ein anderes Gefäß. Die Initialisierung erfolgt, indem ein leerer Behälter auf einem Drucksensor abgestellt wird. Nachdem das erste Gefäß wieder abgestellt wurde, wird das zweite Gefäß aufgenommen und auf einem zweiten Drucksensor in der Nähe des anderen Roboters gestellt. Dieser nimmt das Gefäß auf und stellt es dem menschlichen Nutzer bereit. Um einen sauberen Ablauf zu gewährleisten sind folgende Constraints zu implementieren: Die Fallstudie soll eine Auswahl an Constraints in einem kollaborativen Anwendungsfall implementieren und untersuchen. Die Ausgangssituation bilden zwei Panda Roboterarme des Herstellers Franka Emika\footnote{https://www.franka.de/}. Der erste Roboter nimmt nach Initialisierung durch einen Menschen ein Gefäß auf und füllt dessen Inhalt in ein anderes Gefäß. Die Initialisierung erfolgt, indem ein leerer Behälter auf einem Drucksensor abgestellt wird. Nachdem das erste Gefäß wieder abgestellt wurde, wird das zweite Gefäß aufgenommen und auf einem zweiten Drucksensor in der Nähe des anderen Roboters gestellt. Dieser nimmt das Gefäß auf und stellt es dem menschlichen Nutzer bereit.
\section{Anforderungen}\label{ch:requirements}
Die in der Aufgabenstellung beschriebenen Handlungen der Roboter ergeben folgende Anforderungen:
\begin{enumerate} \begin{enumerate}
\item Orientierung: Während der Handhabung von gefüllten Gefäßen, sollen diese stets orthogonal zum Boden orientiert sein. \item[H1] Ein Drucksensor soll das Vorhandensein eines Gefäßes signalisieren
\item[H2] Beide Roboter sollen in der Lage sein die Gefäße aufzunehmen
\item Beschleunigung: Gefüllte Gefäße müssen vorsichtig bewegt werden, um eine Überschwappen zu verhindern. \item[H3] Beide Roboter sollen das gefüllte Gefäß bewegen können, ohne dessen Inhalt zu verschütten
\item[H4] Der erste Roboter soll den Inhalt des einen Gefäßes in das andere umfüllen
\item[H5] Es darf zu keinen Kollisionen zwischen den Robotern kommen
\item Arbeitsbereich: Um eine Kollision der beiden Roboter zu vermeiden, soll um die Übergabestelle eine Sicherheitszone eingerichtet werde, die immer nur von einem Roboter geschnitten werden darf.
\item Näherung: Nach der Aufnahme eines Objektes soll ein zusätzlicher Sicherheitsabstand zu anderen Objekten und insbesondere dem Tisch eingehalten werden, bis das Objekt wieder abgestellt wird.
\end{enumerate} \end{enumerate}
Um einen reibungslosen Ablauf zu gewährleisten und den gestellten Anforderungen gerecht zu werden, sind folgende Constraints zu implementieren:
\begin{enumerate}
\item[C1] Orientierung des Endeffektors: Während der Handhabung von gefüllten Gefäßen, sollen diese stets orthogonal zum Boden orientiert sein.
\item[C2] Beschleunigung und Geschwindigkeit: Gefüllte Gefäße müssen vorsichtig bewegt werden, um eine Überschwappen zu verhindern.
\item[C3] Arbeitsbereich: Um eine Kollision der beiden Roboter zu vermeiden, soll um die Übergabestelle eine Sicherheitszone eingerichtet werde, die immer nur von einem Roboter geschnitten werden darf.
\item[C4] Näherung: Nach der Aufnahme eines Objektes soll ein zusätzlicher Sicherheitsabstand zu anderen Objekten und insbesondere dem Tisch eingehalten werden, bis das Objekt wieder abgestellt wird.
\end{enumerate}
Zusätzlich sind noch weitere handlungsunabhängige Anforderungen zu berücksichtigen:
\begin{enumerate}
\item[A1] Constraints sollen aufgabenspezifisch angewandt und entfernt werden können.
\item[A2] Für eine höhere Usability und einer einfacheren Integration in andere Projekte, sollen die Positionen der Roboter und Objekte über eine Konfigurationsdatei anpassbar sein.
\end{enumerate}
\section{Entwurf} \section{Entwurf}
In diesem Abschnitt wird ein Entwurf vorgestellt, wie die gestellten Anforderungen aus Abschnitt~\ref{ch:requirements} technisch umgesetzt werden können.
\begin{figure} \begin{figure}
\centering \centering
\includegraphics[height=\textheight, width=\textwidth, keepaspectratio]{images/Ablaufdiagramm.jpg} \includegraphics[height=\textheight, width=\textwidth, keepaspectratio]{images/Ablaufdiagramm.jpg}
...@@ -30,10 +50,9 @@ Die beiden Roboter der Fallstudie werden als separate Entitäten behandelt und s ...@@ -30,10 +50,9 @@ Die beiden Roboter der Fallstudie werden als separate Entitäten behandelt und s
\item Safezone frei: Nachfolgende Handlungen können erst ausgeführt werden, wenn die Sicherheitszone zwischen den Robotern nicht vom anderen Roboter blockiert wird. \item Safezone frei: Nachfolgende Handlungen können erst ausgeführt werden, wenn die Sicherheitszone zwischen den Robotern nicht vom anderen Roboter blockiert wird.
\item Glas abstellen: Die Orientierung und Beschleunigung bleiben beschränkt, bis das Glas abgestellt worden ist. \item Glas abstellen: Die Orientierung und Beschleunigung bleiben beschränkt, bis das Glas abgestellt worden ist.
\end{enumerate} \end{enumerate}
Die aufgelisteten Constraints gelten für beide Cobots.
Bei ähnlichen Aufgaben gelten die aufgelisteten Constraints für beide Cobots. Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts - wird von einer weiteren Entität kontrolliert. Will ein Roboter die Sicherheitszone betreten, muss er dieses Recht bei dem Controller anfordern. Der Controller sorgt dafür, dass immer nur ein Roboter dieses Recht erhält. Erst nachdem sich der erste Roboter wieder abmeldet, darf der zweite die Sicherheitszone betreten. Dieser Vorgang (einschließlich der Aktivierung der Roboter durch die Drucksensoren) ist im Sequenzdiagramm ~\ref{fig:sequenzdiagramm} dargestellt.
Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts - wird von einer dritten Entität kontrolliert. Will ein Roboter die Sicherheitszone betreten, muss er dieses Recht bei diesem Controller anfordern. Der Controller sorgt dafür, dass immer nur ein Roboter dieses Recht erhält. Erst nachdem sich der erste Roboter wieder abmeldet, darf der zweite die Sicherheitszone betreten. Dieser Vorgang (einschließlich der Aktivierung der Roboter) ist im Sequenzdiagramm ~\ref{fig:sequenzdiagramm} dargestellt.
\begin{figure} \begin{figure}
\centering \centering
...@@ -42,6 +61,15 @@ Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts - ...@@ -42,6 +61,15 @@ Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts -
\label{fig:sequenzdiagramm} \label{fig:sequenzdiagramm}
\end{figure} \end{figure}
\begin{figure}
\centering
\includegraphics[height=\textheight, width=\textwidth, keepaspectratio]{images/Klassendiagramm Cobot.jpg}
\caption{Entwurfsklassendiagramm eines Cobots}
\label{fig:klassendiagramm}
\end{figure}
Zusammenfassend ergeben sich aus Entwurfssicht die im Entwurfsklassendiagramm~\ref{fig:klassendiagramm} dargestellten Entitäten.
\section{Implementierung} \section{Implementierung}
Implementiert wird die Fallstudie unter Verwendung des Robot Operating System (ROS) Melodic Morenia \cite{quigley_ros_nodate} und des Motion Planning Framework MoveIt \cite{chitta_moveitros_2012}. Implementiert wird die Fallstudie unter Verwendung des Robot Operating System (ROS) Melodic Morenia \cite{quigley_ros_nodate} und des Motion Planning Framework MoveIt \cite{chitta_moveitros_2012}.
...@@ -103,7 +131,8 @@ Die Planning Pipeline verbindet Planning Request Adapters mit dem eigentlichen M ...@@ -103,7 +131,8 @@ Die Planning Pipeline verbindet Planning Request Adapters mit dem eigentlichen M
Um die Trajektorie auf dem Roboter auszuführen, muss dieser ein \glqq FollowJointTrajectoryAction\grqq{} Interface implementiert haben, das von der Move Group angesteuert wird. In der Regel wird ein entsprechender Server vom Hersteller des Roboters bereitgestellt. Um die Trajektorie auf dem Roboter auszuführen, muss dieser ein \glqq FollowJointTrajectoryAction\grqq{} Interface implementiert haben, das von der Move Group angesteuert wird. In der Regel wird ein entsprechender Server vom Hersteller des Roboters bereitgestellt.
\subsection{Umsetzung des Entwurfs} \subsection{Umsetzung des Entwurfs}
Kurze Beschreibung, wie die im Entwurf beschriebene Architektur unter Nutzung von ROS implementiert wurde und wie die Constraints in MoveIt! umgesetzt worden sind. + Schwierigkeiten \textcolor{blue}{Kurze Beschreibung, wie die im Entwurf beschriebene Architektur unter Nutzung von ROS implementiert wurde und wie die Constraints in MoveIt! umgesetzt worden sind. + Schwierigkeiten}
\begin{figure} \begin{figure}
...@@ -114,6 +143,8 @@ Kurze Beschreibung, wie die im Entwurf beschriebene Architektur unter Nutzung vo ...@@ -114,6 +143,8 @@ Kurze Beschreibung, wie die im Entwurf beschriebene Architektur unter Nutzung vo
\end{figure} \end{figure}
\section{Evaluation} \section{Evaluation}
\textcolor{blue}{
Konnte die Fallstudie zeigen, dass Einschränkungen aus der Taxonomie angewandt werden können? Konnte die Fallstudie zeigen, dass Einschränkungen aus der Taxonomie angewandt werden können?
\paragraph{} Wo sind die implementierten Constraints einzuordnen? \paragraph{} Wo sind die implementierten Constraints einzuordnen?
\paragraph{} Wie könnte die Fallstudie erweitert werden, sodass neue Constraints notwendig sind und sind diese bereits in der Taxonomie enthalten? \paragraph{} Wie könnte die Fallstudie erweitert werden, sodass neue Constraints notwendig sind und sind diese bereits in der Taxonomie enthalten?
\ No newline at end of file }
\ No newline at end of file
...@@ -111,7 +111,7 @@ Die Handlungen, die ein Roboter ausführen kann sind maßgeblich durch seine mec ...@@ -111,7 +111,7 @@ Die Handlungen, die ein Roboter ausführen kann sind maßgeblich durch seine mec
\subsection{Endeffektor-spezifische Handlungen} \subsection{Endeffektor-spezifische Handlungen}
[Placeholder] Handlungen, die vom Endeffektor eingeschränkt sind. Z.B: Schweißen benötigt Schweißgerät? [Placeholder] Handlungen, die vom Endeffektor eingeschränkt sind. Z.B: Schweißen benötigt Schweißgerät?
\subsection{Endeffektor-unspezifische Handlungen} \subsection{Endeffektor-unspezifische Handlungen}
[Placeholder] Wie das verschieben von Objekten \textcolor{red}{Aber in wie fern ist das ein Constraint?} [Placeholder] Wie das verschieben von Objekten
\section{Bewegungs-Constraints} \section{Bewegungs-Constraints}
Die dritte Untergruppe der Constraints sind Beschränkungen in der Bewegung des Roboters. In Abgrenzung zu den Pfad-Constraints, die den Pfad schon während des Planungsschrittes beschränken, schränken Bewegungs-Constraints die physische Bewegung beziehungsweise die Ausführung der Trajektorie ein. Dazu gehören die Beschränkung der Beschleunigung, der Geschwindigkeit, der Orientierung und der Kraft. Diese werden in den folgenden Abschnitten näher erläutert. Die dritte Untergruppe der Constraints sind Beschränkungen in der Bewegung des Roboters. In Abgrenzung zu den Pfad-Constraints, die den Pfad schon während des Planungsschrittes beschränken, schränken Bewegungs-Constraints die physische Bewegung beziehungsweise die Ausführung der Trajektorie ein. Dazu gehören die Beschränkung der Beschleunigung, der Geschwindigkeit, der Orientierung und der Kraft. Diese werden in den folgenden Abschnitten näher erläutert.
......
\chapter{Zusammenfassung}\label{ch:conclusion} \chapter{Zusammenfassung}\label{ch:conclusion}
Konnte diese Arbeit verschiedene Constraints kategorisieren und deren Anwendbarkeit zeigen? Konnte diese Arbeit verschiedene Constraints kategorisieren und deren Anwendbarkeit zeigen?
\paragraph{}
Welche Forschungsarbeiten könnten auf den Ergebnissen aufbauen? \textcolor{red}{Future Work als eigenes Kapitel?} Welche Forschungsarbeiten könnten auf den Ergebnissen aufbauen?
...@@ -27,17 +27,6 @@ ...@@ -27,17 +27,6 @@
\usepackage{rotating} \usepackage{rotating}
% if you need mathy stuff
\newtheorem{lem}{Lemma}
\crefname{lem}{Lemma}{Lemmas}
\newtheorem{thm}{Theorem}
\crefname{thm}{Theorem}{Theorems}
\newtheorem{defs}{Definition}
\crefname{defs}{Def.}{Defs.}
\usepackage{blindtext}
%\usepackage{tudscrsupervisor} % if you want to copy the sources of the task description into the thesis %\usepackage{tudscrsupervisor} % if you want to copy the sources of the task description into the thesis
\usepackage{csquotes} \usepackage{csquotes}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment