|
- \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.
|