|
|
|
@@ -0,0 +1,92 @@ |
|
|
|
\chapter{Separation of Concerns} |
|
|
|
\label{chap:separation} |
|
|
|
We have an initial design and in this step we will define features and subsystems. |
|
|
|
To structure this process we will use a tiny bit of the RobMoSys approach. |
|
|
|
With that we will define the mission, tasks, skills, functions and subsystems. |
|
|
|
The subsystem combines some layers of RobMoSys as they are to specific for the scope of this thesis. |
|
|
|
|
|
|
|
\section{RobMoSys} |
|
|
|
The mission is clear and has already been stated before. |
|
|
|
The system shall be able to write a tweet on a whiteboard. |
|
|
|
\autoref{fig:robmosys} shows how the mission organized. |
|
|
|
This separation is not created to be the most optimal as it is based on our initial design. |
|
|
|
The three skills of move marker, move wiper and move carriage are redundant as they all have movement in the same plane. |
|
|
|
One could say that this overcomplicates the design. |
|
|
|
However, we chose for some complexity in the design, which creates dependency between subsystems, such that the design method can be tested. |
|
|
|
|
|
|
|
\begin{figure*} |
|
|
|
\centering |
|
|
|
\includegraphics[width=0.8\paperwidth]{graphics/robmosys.pdf} |
|
|
|
\caption{Separation of the mission into tasks, skills, functions and subsystems based on a simplification of RobMoSys.} |
|
|
|
\label{fig:robmosys} |
|
|
|
\end{figure*} |
|
|
|
|
|
|
|
RobMoSys creates a top-down approach which results in the different subsystems. |
|
|
|
The design method specifies that we want to implement feature by feature. |
|
|
|
From \autoref{fig:robmosys} we can conclude that each step in the graph represents a sub-feature. |
|
|
|
It might be a piece of hardware, control law or interface, they can all be classified as features of some sort. |
|
|
|
Furthermore, it automatically generates the dependency tree as well. |
|
|
|
As we cannot write a character somewhere on the board if we cannot move the marker. |
|
|
|
|
|
|
|
\section{Feature Definition and Dependencies} |
|
|
|
In the previous section we discussed that we have loads of sub-features. |
|
|
|
We could implement all these features one by one. |
|
|
|
But as some of them have single dependencies they could be combined. |
|
|
|
The function 'Move wiper on board' is directly linked to the skill 'Wipe area' and could easily combined. |
|
|
|
Especially as the skill is a direct test case for the function and as test cases are already required this is a valid optimization. |
|
|
|
|
|
|
|
\section{Feature specifications} |
|
|
|
The specifications that are listed in the system specifications document have to be distributed among the features. |
|
|
|
We have grouped some specifications as they influence the same feature-group. |
|
|
|
|
|
|
|
\subsection{Reach} |
|
|
|
The first grouping is for the reach of the robot. |
|
|
|
From the specifications document we find three specifications which influence the possible position of the carriage: |
|
|
|
\begin{itemize} |
|
|
|
\item The Writer shall be able to write at least 50 characters per line. |
|
|
|
\item The Writer shall be able to write at least 5 lines of text. |
|
|
|
\item If the Writer is not wiping or writing then the Writer shall not obstruct the view of the whiteboard. |
|
|
|
\end{itemize} |
|
|
|
The first two specify the minimum reach of the carriage. |
|
|
|
The third specifies that the carriage has to move out of the way. |
|
|
|
|
|
|
|
\autoref{fig:reach} shows the sub-features that cover the behavior of the carriage. |
|
|
|
We have to take these three into account when we will develop these sub-features. |
|
|
|
|
|
|
|
\begin{marginfigure} |
|
|
|
\includegraphics[width=0.8\linewidth]{graphics/reach.pdf} |
|
|
|
\caption{Sub-features that are responsible for reach related specifications} |
|
|
|
\label{fig:reach} |
|
|
|
\end{marginfigure} |
|
|
|
|
|
|
|
\subsection{Character Writing} |
|
|
|
The sub-systems shown in \autoref{fig:char} are responsible for getting the characters on the board. |
|
|
|
The character writing specifications are given as: |
|
|
|
\begin{itemize} |
|
|
|
\item The Writer shall plot characters with a size that is readable from 4 meters for a person with good eyesight. |
|
|
|
\item The Writer shall plot in a regular used font with corresponding character spacing. |
|
|
|
\item While writing, the Writer shall have a writing speed of at least 1 character per second. |
|
|
|
\end{itemize} |
|
|
|
The later one covers the writing speed. |
|
|
|
The speed does not only depend on the time required for a single char. |
|
|
|
It also depends on moving to the position of the next character. |
|
|
|
This is overlaps with the grouping for the reach specification as described in the previous subsection and can be seen in \autoref{fig:reach} |
|
|
|
So we will split this into the following sub-specifications: |
|
|
|
\begin{itemize} |
|
|
|
\item While writing, the SCARA shall have a writing speed of at least 1.5 characters per second. |
|
|
|
\item When the Carriage/base of the SCARA is at a static position, the SCARA shall be able to write at least 3 characters at that position. |
|
|
|
\item When the SCARA finished writing at their current position, the Carriage shall move the SCARA to it's next position where it can write the subsequent characters. |
|
|
|
\item When the SCARA has to be moved to a new position, the Carriage shall perform this movement within 1 second. |
|
|
|
\end{itemize} |
|
|
|
|
|
|
|
\begin{marginfigure} |
|
|
|
\includegraphics[width=0.8\linewidth]{graphics/char.pdf} |
|
|
|
\caption{Sub-features that are responisible for character writing specifications} |
|
|
|
\label{fig:char} |
|
|
|
\end{marginfigure} |
|
|
|
|
|
|
|
\subsection{Tooling} |
|
|
|
For the system to be able to switch from writing to wiping, there must be some toolchanging. |
|
|
|
The general idea is that the end-effector can hold a tool and for a marker it shall be able to press it on the board. |
|
|
|
|
|
|
|
|