Skip to content
Snippets Groups Projects
Commit faa3603c authored by Jim's avatar Jim
Browse files

Simulation in Evaluation

parent 2b823fb4
No related branches found
No related tags found
No related merge requests found
Pipeline #9176 failed
images/Klassendiagramm Cobot.jpg

101 KiB | W: | H:

images/Klassendiagramm Cobot.jpg

95.1 KiB | W: | H:

images/Klassendiagramm Cobot.jpg
images/Klassendiagramm Cobot.jpg
images/Klassendiagramm Cobot.jpg
images/Klassendiagramm Cobot.jpg
  • 2-up
  • Swipe
  • Onion skin
images/cobot_1_end.png

47.4 KiB

images/cobot_1_fill_glass.png

59.7 KiB

images/cobot_1_pick_bottle.png

38.9 KiB

images/cobot_1_pick_glass.png

40.6 KiB

images/cobot_1_place_glass.png

38.9 KiB

images/cobot_2_end.png

52.9 KiB

images/cobot_2_move_glass.png

40.4 KiB

images/cobot_2_pick_glass.png

50.9 KiB

images/cobot_2_place_glass.png

63.5 KiB

...@@ -5,10 +5,85 @@ Ziel der Fallstudie war die Anwendung einiger der in der Taxonomie eingeordneten ...@@ -5,10 +5,85 @@ Ziel der Fallstudie war die Anwendung einiger der in der Taxonomie eingeordneten
\section{Simulation} \section{Simulation}
Die Initialisierung der Simulationsumgebung geschieht in einem Zuge mit dem Hinzufügen der Objekte in die Planning Scene. Die Startzustände der beiden Roboter sind in Abbildung~\ref{fig:cobots_init} zu sehen. Die Initialisierung der Simulationsumgebung geschieht in einem Zuge mit dem Hinzufügen der Objekte in die Planning Scene. Die Abläufe der Simulationen von Cobot 1 und Cobot 2 sind schrittweise in Abbildung~\ref{fig:cobot_1_sim} und Abbildung~\ref{fig:cobot_2_sim} dargestellt.
\begin{figure}
\centering
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_init.png}
\caption{Cobot 1: Startzustand}
\label{fig:cobit_1_init}%
\end{subfigure}
\hfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_pick_bottle.png}
\caption{Cobot 1: Flasche anheben }
\label{fig:cobit_1_pick_bottle}
\end{subfigure}
\vfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_fill_glass.png}
\caption{Cobot 1: Glas füllen}
\label{fig:cobit_1_fill_glass}
\end{subfigure}
\hfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_pick_glass.png}
\caption{Cobot 1: Glas anheben}
\label{fig:cobit_1_pick_glass}
\end{subfigure}
\vfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_place_glass.png}
\caption{Cobot 1: Glas abstellen}
\label{fig:cobit_1_place_glass}
\end{subfigure}
\hfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_1_end.png}
\caption{Cobot 1: Endzustand}
\label{fig:cobit_1_end}
\end{subfigure}
\caption{Simulation des Cobot 1}
\label{fig:cobot_1_sim}
\end{figure}
\begin{figure}
\centering
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_2_init.png}
\caption{Cobot 2: Startzustand}
\label{fig:cobit_2_init}%
\end{subfigure}
\hfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_2_pick_glass.png}
\caption{Cobot 2: Glas anheben }
\label{fig:cobit_2_pick_glass}
\end{subfigure}
\vfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_2_move_glass.png}
\caption{Cobot 2: Glas bewegen}
\label{fig:cobit_2_move_glass}
\end{subfigure}
\hfill
\begin{subfigure}{.48\linewidth}
\includegraphics[width=\linewidth]{images/cobot_2_place_glass.png}
\caption{Cobot 2: Glas abstellen}
\label{fig:cobit_2_place_glass}
\end{subfigure}
\vfill
\begin{subfigure}{\linewidth}
\includegraphics[width=.48\linewidth]{images/cobot_2_end.png}
\caption{Cobot 2: Endzustand}
\label{fig:cobit_2_end}
\end{subfigure}
\caption{Simulation des Cobot 2}
\label{fig:cobot_2_sim}
\end{figure}
Um die Einhaltung der Constraints zu validieren, wurde die Beschleunigung, die Geschwindigkeit und die Orientierung des Endeffektors zur Laufzeit der Simulation aufgezeichnet und in einem Graphen dargestellt. In Abbildung~\ref{fig:velocity_eval} ist zu sehen, dass die Beschleunigung, während der Handhabung von gefüllten Behältern, geringer ist, als während der Handlungen in denen das nicht der Fall ist. Abbildung~\ref{fig:orientation_eval} zeigt die Orientierung des Endeffektors, relativ zur Welt. Es ist ersichtlich, dass die Orientierung, während der Handhabung von Objekten, innerhalb der Toleranzgrenzen bleibt, die bei der Erstellung des Orientierungs-Constraints definiert werden (siehe Quellcode~\ref{lst:orientation_constraint}). Um die Einhaltung der Constraints zu validieren, wurde die Beschleunigung, die Geschwindigkeit und die Orientierung des Endeffektors zur Laufzeit der Simulation aufgezeichnet und in einem Graphen dargestellt. In Abbildung~\ref{fig:velocity_eval} ist zu sehen, dass die Beschleunigung, während der Handhabung von gefüllten Behältern, geringer ist, als während der Handlungen in denen das nicht der Fall ist. Abbildung~\ref{fig:orientation_eval} zeigt die Orientierung des Endeffektors, relativ zur Welt. Es ist ersichtlich, dass die Orientierung, während der Handhabung von Objekten, innerhalb der Toleranzgrenzen bleibt, die bei der Erstellung des Orientierungs-Constraints definiert wurden (siehe Quelltext~\ref{lst:orientation_constraint}).
\begin{figure} \begin{figure}
\centering \centering
...@@ -25,19 +100,6 @@ Um die Einhaltung der Constraints zu validieren, wurde die Beschleunigung, die G ...@@ -25,19 +100,6 @@ Um die Einhaltung der Constraints zu validieren, wurde die Beschleunigung, die G
\end{figure} \end{figure}
\begin{figure}
\ffigbox[\FBwidth]%
{\begin{subfloatrow}%
\ffigbox[\FBwidth]%
{\includegraphics[height=7cm]{images/cobot_1_init.png}}%
{\caption{Cobot 1}\label{fig:cobit_1_init}}%
\ffigbox[\FBwidth]%
{\includegraphics[height=7cm]{images/cobot_2_init.png}}%
{\caption{Cobot 2}\label{fig:cobit_2_init}}%
\end{subfloatrow}}%
{\caption{Gazebo Simulationsumgebung nach der Initialisierung}\label{fig:cobots_init}}%
\end{figure}
\section{Constraints} \section{Constraints}
In diesem Abschnitt werden alle verwendeten Constraints aufgelistet und in die Taxonomie eingeordnet. In diesem Abschnitt werden alle verwendeten Constraints aufgelistet und in die Taxonomie eingeordnet.
......
...@@ -22,9 +22,7 @@ Um einen reibungslosen Ablauf zu gewährleisten und den gestellten Anforderungen ...@@ -22,9 +22,7 @@ Um einen reibungslosen Ablauf zu gewährleisten und den gestellten Anforderungen
\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[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. \item [C4] Handlung: Die Handlungen dürfen nur in der durch die Aufgabenstellung vorgeschriebenen Reihenfolge durchgeführt werden.
\item [C5] Handlung: Die Handlungen dürfen nur in der durch die Aufgabenstellung vorgeschriebenen Reihenfolge durchgeführt werden.
\end{enumerate} \end{enumerate}
Zusätzlich sind noch weitere handlungsunabhängige Anforderungen zu berücksichtigen: Zusätzlich sind noch weitere handlungsunabhängige Anforderungen zu berücksichtigen:
\begin{enumerate} \begin{enumerate}
...@@ -159,7 +157,7 @@ Neben dem Programmcode enthält das Cobot Package auch noch eine Konfigurationsd ...@@ -159,7 +157,7 @@ Neben dem Programmcode enthält das Cobot Package auch noch eine Konfigurationsd
Über die Launch Datei des Packages startet neben dem \textit{CobotController} auch den \textit{SafezoneController}- und \textit{PressureSensor}-Node und eine Simulationsumgebung. Über die Launch Datei des Packages startet neben dem \textit{CobotController} auch den \textit{SafezoneController}- und \textit{PressureSensor}-Node und eine Simulationsumgebung.
\subsection{Constraints}\label{ch:constraint_impl} \subsection{Constraints}\label{ch:constraint_impl}
Das Package \textit{constraints} enthält die Definition der abstrakten \textit{Constraint}-Klasse und die \textcolor{blue}{fünf} konkreten Implementationen \textit{AccelerationConstraint}, \textit{OrientationConstraint}, \textcolor{blue}{\textit{ProximityConstraint}}, \textit{SafezoneConstraint} und \textit{VelocityConstraint}. Das Package \textit{constraints} enthält die Definition der abstrakten \textit{Constraint}-Klasse und die vier konkreten Implementationen \textit{AccelerationConstraint}, \textit{OrientationConstraint}, \textit{SafezoneConstraint} und \textit{VelocityConstraint}.
Der Orientierungs-Constraint (Codebeispiel~\ref{lst:orientation_constraint}) wird realisiert, indem eine\newline Der Orientierungs-Constraint (Codebeispiel~\ref{lst:orientation_constraint}) wird realisiert, indem eine\newline
\verb|moveit_msgs::OrientationConstraint|-Nachricht erstellt wird, die die aktuelle Orientierung des Endeffektors festsetzt. Diese Nachricht wird dann der Move Group als Pfad-Constraint hinzugefügt. Entfernt wird das Constraint durch das Leeren der Liste \verb|path_constraints.orientation_constraints|. \verb|moveit_msgs::OrientationConstraint|-Nachricht erstellt wird, die die aktuelle Orientierung des Endeffektors festsetzt. Diese Nachricht wird dann der Move Group als Pfad-Constraint hinzugefügt. Entfernt wird das Constraint durch das Leeren der Liste \verb|path_constraints.orientation_constraints|.
......
...@@ -40,7 +40,8 @@ ...@@ -40,7 +40,8 @@
\captionsetup{singlelinecheck=off,format=hang,justification=raggedright} \captionsetup{singlelinecheck=off,format=hang,justification=raggedright}
\DeclareCaptionSubType[alph]{figure} \DeclareCaptionSubType[alph]{figure}
\DeclareCaptionSubType[alph]{table} \DeclareCaptionSubType[alph]{table}
\captionsetup[subfloat]{labelformat=brace,list=off} %\captionsetup[subfloat]{labelformat=brace,list=off}
\usepackage{subcaption}
\usepackage{booktabs} \usepackage{booktabs}
\usepackage{array} \usepackage{array}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment