# System Test Specification

## Introduction
A new design method is the goal of this Master's Thesis.
Part of the design method is a system test specification.
The system tests are based on the system specifications.
If the tests are designed correctly, passing the test proofs that the system operates within the specifications.

In the following section we will give a short introduction of the system that we plan to build.
Then we have a section with a collection of smaller and or simpler tests.
These test can be passed before the system is complete.
Followed by a set of test that cover the complete system and thus require all the features to be available in some part.

## System Description

### Design
The system that will be designed is a whiteboard writer.
Its goal is to write a tweet on a whiteboard.
To make it dynamically challenging it is a combination of two subsystems.
First we have a SCARA, which is a 2D arm.
This SCARA is relatively small to the complete system.
With the smaller size we can achieve a higher speed and accuracy.
However, the size of the arm limits the range significantly.
A cable bot will be used to move the base of the SCARA arm around on the board.

Furthermore, the third part is the end-effector of the SCARA arm.
This is how the marker is attached to the arm.
The end-effector could also be replaced with something that can switch between tools.
For example a different color marker and a wiping tool.
Or vice versa.
![Image alt text](./general_design.pdf)

#### Components

* _End-effector:_ the end-effector is responsible for the connection of the tool with the SCARA.
* _SCARA:_ Acronym for: 'Selective Compliance Articulated Robot Arm'. It is colored red in the figure above. This arm moves in a 2D space along the whiteboard. Its task is to move the end-effector around. The base of the arm is mounted on the carriage.
* _Carriage:_ This is the base for the SCARA. It is suspended from two wires. By changing the lenght of the wires it can move itself along the board.

#### Specification
From the previous design steps we got the following list of system specification:

1. The Writer shall be able to write at least 50 characters per line.
2. The Writer shall be able to write at least 5 lines of text.
3. The Writer shall plot characters with a size that is readable from 4 meters for a person with good eyesight.
4. The Writer shall plot in a regular used font with corresponding character spacing.
5. When a new tweet is send to the Writer, the Writer, shall wipe the existing tweet and write down a new tweet.
6. If the Writer is not wiping or writing then the Writer shall not obstruct the view of the whiteboard.
7. While writing, the Writer shall have a writing speed of at least 1 character per second.
8. If the Writer is tasked to wipe the tweet, the Writer shall wipe the tweet within 60 seconds
9. When a reset-signal is send to the Writer, the Writer shall re-calibrate its position on the board.
10. When a wipe-signal is send to the Writer, the Writer shall wipe the board clean.
11. The Writer shall not damage itself.
12. While writing, the SCARA shall have a writing speed of at least 1.5 characters per second.
13. 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.
14. 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.
15. When the SCARA has to be moved to a new position, the Carriage shall perform this movement within 1 second.

Although the list of specifications does not cover the size of a character.
For the testing we determined that the body of a character should have a height of 20 mm.
And can extend about 7 mm above and below. Which give a total writable height of about 35 mm
![Image alt text](./charactersize.pdf)

### Operation
There are two main operations of the system.
The writing behavior and the wiping behavior.
To write, the following steps shall be performed:

* Move the carriage/base of the SCARA to the first characters that shall be written.
* The SCARA writes at least 3 characters at that position.

These two steps are repeated until the complete text is on the board.

The writing operation will behave in a similar way.
Where the SCARA will do the course operation and the carriage the full operation.


## Small tests
The following tests do not cover the complete system but only one or two subsystems.

### Small Square
*Subsystem:* SCARA  

*Specifications:* 3, 7, 11, 13  

The SCARA must draw a square of at least 50 mm high and 70 mm wide.
This box is large enough to draw at least 3 characters.
This square should be drawn within one second.
If it is slower than that, it is not able to achieve specification 7.

### Perimeter
*Subsystem:* Carriage

*Specifications:* 1, 2, 6, 11,  

The carriage must move along the outer edges of the text area.
This means that it must reach 50 characters in width and 5 in height.
Resulting in perimeter of 1000 mm wide and 250 mm high.

The second part of this test is that the carriage must also move outside of the perimeter.

### Carriage Speed
*Subsystem:* Carriage

*Specifications:* 7, 14  

The carriage must be able to move a distance of 80 mm in horizontal direction to move within a second.
At the start and the end of the movement the speed of the carriage must be zero.

This is to ensure that the SCARA can then write its characters at the given position.

### Triple Chars
*Subsystem:* SCARA, End-effector

*Specifications:* 3, 4, 12, 13  

The SCARA together with the end-effector must write 3 characters without moving the carriage.
This extends on the small square but the end-effector must now be able to lift the marker of the board.
The three characters should be written on the board within two seconds.

### Tool change
*Subsystem:* SCARA, End-effector

*Specifications:* (Not specified, due to errors in earlier design phase)

Tool changing is not a specific part of the specification.
However, the system has to switch in some way between the marker and a wiper.
Or a different color.
For this test the system must switch a tool within 10 seconds.

## Overall tests
These are the larger tests where all the subsystems come together.

### Repeatability
*Specifications:* 3, 4, 9, 11

To test the repeatability of the system must do four things:

* The system will be reset.
* Draw multiple squares (60 mm x 60 mm) at a random position within the drawing range (1000 mm x 300 mm)
* The system will be reset again
* Then in a random order, at least different from the order of squares, a circle of 55m diameter has to be drawn in the squares.

If this is not the case the test fails. 

### Linearity 
*Specifications:* 1, 2, 3, 4

The system must draw a grid on the drawing range (1000 mm x 300 mm), with the horizontal and vertical lines spaces 100 mm from each other.
The distance between two horizontal or two vertical lines cannot be smaller than 90 mm.
The lines are not allowed to deviate more than 10 mm in a line section of 300 mm

### Type setting

*Specifications:* 1, 2, 3, 4, 6, 7, 11, 12, 13, 14, 15.  

To test the complete writing abilities the following text must be written on the board:
```
the quick brown fox jumps over the lazy dog!?@,.-
0123456789101112131415161718192021222324252627282
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG!?@,.-
0123456789101112131415161718192021222324252627282
the quick brown fox jumps over the lazy dog!?@,.-
```
This is a full 250 character area. It must be readable and write all the characters correctly.
It must be completed withing 250 seconds.
Which is 4 minutes and 10 seconds.

### Wiping
*Specifications:* 8, 10, (5 if type setting test passes)  

The complete board must be cleared of any marking within 60 seconds.
This is without the change of tool.
