From 1027a1ecddaba46fc7855ec02ed59234b7daf4a4 Mon Sep 17 00:00:00 2001 From: Jim Molkenthin <jim.molkenthin@web.de> Date: Sun, 7 Feb 2021 14:13:14 +0100 Subject: [PATCH] Anforderungen --- images/Klassendiagramm Cobot.jpg | Bin 0 -> 52790 bytes sections/appendix.tex | 171 ------------------------------- sections/implementierung.tex | 53 ++++++++-- sections/tax_einordnung.tex | 2 +- sections/zusammenfassung.tex | 5 +- thesis.tex | 11 -- 6 files changed, 46 insertions(+), 196 deletions(-) create mode 100644 images/Klassendiagramm Cobot.jpg diff --git a/images/Klassendiagramm Cobot.jpg b/images/Klassendiagramm Cobot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..67d536c3196be7fa540d49c7dda73841bbe409be GIT binary patch literal 52790 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 literal 0 HcmV?d00001 diff --git a/sections/appendix.tex b/sections/appendix.tex index 466d806..e69de29 100644 --- a/sections/appendix.tex +++ b/sections/appendix.tex @@ -1,171 +0,0 @@ -\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. diff --git a/sections/implementierung.tex b/sections/implementierung.tex index ce067ad..d28b588 100644 --- a/sections/implementierung.tex +++ b/sections/implementierung.tex @@ -1,18 +1,38 @@ \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} - \item Orientierung: Während der Handhabung von gefüllten Gefäßen, sollen diese stets orthogonal zum Boden orientiert sein. - - \item Beschleunigung: Gefüllte Gefäße müssen vorsichtig bewegt werden, um eine Überschwappen zu verhindern. + \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[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} +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} +In diesem Abschnitt wird ein Entwurf vorgestellt, wie die gestellten Anforderungen aus Abschnitt~\ref{ch:requirements} technisch umgesetzt werden können. + \begin{figure} \centering \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 \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. \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 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. +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. \begin{figure} \centering @@ -42,6 +61,15 @@ Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts - \label{fig:sequenzdiagramm} \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} 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 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} -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} @@ -114,6 +143,8 @@ Kurze Beschreibung, wie die im Entwurf beschriebene Architektur unter Nutzung vo \end{figure} \section{Evaluation} +\textcolor{blue}{ Konnte die Fallstudie zeigen, dass Einschränkungen aus der Taxonomie angewandt werden können? \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? \ No newline at end of file +\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 diff --git a/sections/tax_einordnung.tex b/sections/tax_einordnung.tex index fd594a5..5fbc5d2 100644 --- a/sections/tax_einordnung.tex +++ b/sections/tax_einordnung.tex @@ -111,7 +111,7 @@ Die Handlungen, die ein Roboter ausführen kann sind maßgeblich durch seine mec \subsection{Endeffektor-spezifische Handlungen} [Placeholder] Handlungen, die vom Endeffektor eingeschränkt sind. Z.B: Schweißen benötigt Schweißgerät? \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} 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. diff --git a/sections/zusammenfassung.tex b/sections/zusammenfassung.tex index 7e73c9e..37e1dc2 100644 --- a/sections/zusammenfassung.tex +++ b/sections/zusammenfassung.tex @@ -1,4 +1,5 @@ \chapter{Zusammenfassung}\label{ch:conclusion} 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? + diff --git a/thesis.tex b/thesis.tex index 3e34e14..8048f0d 100644 --- a/thesis.tex +++ b/thesis.tex @@ -27,17 +27,6 @@ \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{csquotes} -- GitLab