@@ -27,12 +27,12 @@ Um einen reibungslosen Ablauf zu gewährleisten und den gestellten Anforderungen
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.
\item[A2] Für eine höhere Usability und einer einfacheren Integration in andere Projekte, solle die Größe und Position der Objekte über eine Konfigurationsdatei anpassbar sein.
\item[A3] Zur Implementation soll das Robot Operating System (ROS) und das Motion Planning Framework MoveIt! verwendet werden.
\end{enumerate}
\section{Entwurf}
In diesem Abschnitt wird, nach einer kurzen Einführung in ROS und MoveIt!, ein Entwurf vorgestellt, wie die gestellten Anforderungen aus Abschnitt~\ref{ch:requirements} technisch umgesetzt werden können.
In diesem Abschnitt wird, nach einer kurzen Einführung in ROS und MoveIt! ein Entwurf vorgestellt, wie die gestellten Anforderungen aus Abschnitt~\ref{ch:requirements} technisch umgesetzt werden können.
\subsection{Robot Operating System}
Das Robot Operating System (ROS) ist ein mehrsprachiges open-source Framework zur flexiblen Realisierung komplexer Robotikanwendungen~\cite{quigley_ros_nodate}. Die Grundlage einer ROS Anwendung bilden sogenannte Nodes, die in einer Peer-to-Peer Architektur miteinander kommunizieren können. Im folgenden werden die grundlegenden Begriffe kurz erklärt.
...
...
@@ -127,9 +127,9 @@ Die Sicherheitszone zwischen den Robotern - einschließlich des Übergabeorts -
\label{fig:klassendiagramm}
\end{figure}
Zusammenfassend ergeben sich aus Entwurfssicht die im Entwurfsklassendiagramm~\ref{fig:klassendiagramm} dargestellten Entitäten. Ein Cobot kennt seine Startposition, die gleichzeitig als sicherer Zustand dient, alle Handlungen, die er prinzipiell ausführen kann und eine beliebige Anzahl an Constraints, die individuell angewandt oder entfernt werden können. Der SafezoneController speichert den Zustand der Sicherheitszone und kann Zugang zu ihr entweder gewähren oder ablehnen.
Zusammenfassend ergeben sich aus Entwurfssicht die im Entwurfsklassendiagramm~\ref{fig:klassendiagramm} dargestellten Entitäten. Ein Cobot kennt seine Startposition, die gleichzeitig als sicherer Zustand dient, alle Handlungen, die er prinzipiell ausführen kann und eine beliebige Anzahl an Constraints, die individuell angewandt oder entfernt werden können. Der SafezoneController speichert den Zustand der Sicherheitszone und kann Zugang zu ihr entweder gewähren oder ablehnen. Ein Drucksensor stellt die Information über seinen Druckzustand zur Verfügung.
Da ein Cobot nicht weiß, wann und in welcher Reihenfolge er seine Handlungen ausführen soll, wird er von einem CobotController gesteuert. Dieser ist außerdem zuständig für das Hinzufügen von Objekten in die PlanningScene und die Kommunikation mit SafeZoneController und PressureSensor. Diese drei Einheiten laufen unabhängig voneinander und können in einem ROS System als eigenständige Nodes implementiert werden. Dadurch kann die Kommunikation dann entsprechend der Abbildung~\ref{fig:node_communication} realisiert werden.
Da ein Cobot nicht weiß, wann und in welcher Reihenfolge er seine Handlungen ausführen soll, wird er von einem CobotController gesteuert. Dieser implementiert eins der Ablaufdiagramme aus Abbildung~\ref{fig:ablaufdiagramm} und ist außerdem zuständig für die Kommunikation mit SafeZoneController und PressureSensor und dem Hinzufügen von Objekten in die PlanningScene. Entsprechend Anforderung A2 sollen diese Objekte konfigurierbar sein. Die drei Einheiten CobotController, SafeZoneController und PressureSensor laufen unabhängig voneinander und können in einem ROS System als eigenständige Nodes implementiert werden. Dadurch kann die Kommunikation dann entsprechend der Abbildung~\ref{fig:node_communication} realisiert werden.
Die Drucksensoren veröffentlichen ihren Zustand auf einem Topic, welches von den Cobot Controllern abonniert wird (gekennzeichnet durch den durchgezogenen Pfeil). Für die Anfrage an den SafezoneController bietet eine Implementierung als ROS Service an (gekennzeichnet durch gestrichelte Pfeile).