The software that we will produce is an interface for a simulation to
implement control of a robot. We will also create a surrogate
system that will mimic the activities of a robot for testing purposes.
We will be producing an API that will talk with the user interface
and the SAF. The API will also track the position of the robot at all
times. The robot should also send regular updates on its status back to the API.
The interface that we are creating will be an XWindows GUI which will be able to have
an instance of the API built in. The interface
will accept controls from the arrow keys on a standard keyboard,
and will display the current position of the robot.
The robot surrogate that we are producing will communicate
with the API over a network, and mimic the actions of an actual robot.
Event Name | External Stimuli | External
Responses | Internal data and state |
Human user Starts GUI | Human executes the GUI program | GUI starts and is displayed
on the screen | Robot position and all data structures are initialized |
Human Robot Forward | Human pushes the up arrow key to move the robot forward | GUI updates the
position of the robot and robot begins to move forward | - GUI makes a call to the API to move the robot forward
- The API communicates over the network with the robot telling it to move forward
- Robot starts moving forward and sends API status information
- GUI is updated from the current status of the robot
|
Human Robot Backward | Human pushes the down arrow key to move the robot backward | GUI updates the
position of the robot and robot begins to move backward | - GUI makes a call to the API to move the robot backward
- The API communicates over the network with the robot telling it to move backward
- Robot starts moving backward and sends API status information
- GUI is updated from the current status of the robot
|
Human Robot Left | Human pushes the left arrow key to turn the robot left | GUI updates the
status of the robot and robot turns left | - GUI makes a call to the API to turn the robot left
- The API communicates over the network with the robot telling it to turn left
- Robot starts turning left and sends API status information
- GUI is updated from the current status of the robot
|
Human Robot Right | Human pushes the left arrow key to turn the robot right | GUI updates the
status of the robot and robot turns right | - GUI makes a call to the API to turn the robot right
- The API communicates over the network with the robot telling it to turn right
- Robot starts turning right and sends API status information
- GUI is updated from the current status of the robot
|
Human Robot Stop | Human pushes the '0' key to stop the robot | GUI updates the
status of the robot and robot stops | - GUI makes a call to the API to stop the robot
- The API communicates over the network with the robot telling it to stop
- Robot stops and sends the API status information
- GUI is updated from the current status of the robot
|
Human Robot Increase Speed | Human pushes the '+' key to increase the speed of the robot
| GUI updates the status of the robot and robot's speed increases | - GUI makes a call to the API to increase the robot's speed
- The API communicates over the network with the robot telling it increase speed
- Robot increases speed and sends the API status information
- GUI is updated from the current status of the robot
|
Human Robot Decreases Speed | Human pushes the '-' key to decrease the spped of the robot
| GUI updates the status of the robot and robot decreases speed | - GUI makes a call to the API to decrease the robot's speed
- The API communicates over the network with the robot telling it decrease speed
- Robot decrease speed and sends the API status information
- GUI is updated from the current status of the robot
|
SAF Starts Program | SAF initializes the API | Initial Robot position is send to SAF
on the screen | Robot position and all data structures are initialized |
SAF Robot Forward | SAF calls move forward method of API | Robot begins to move forward and the status of the robot in the SAF is updated | - SAF makes a call to the API to move the robot forward
- The API communicates over the network with the robot telling it to move forward
- Robot starts moving forward and sends API status information
- SAF is updated from the current status of the robot
|
SAF Robot Backward | SAF calls move backward method of API | Robot begins to move backward and the status of the robot in the SAF is updated | - SAF makes a call to the API to move the robot backward
- The API communicates over the network with the robot telling it to move backward
- Robot starts moving backward and sends API status information
- SAF is updated from the current status of the robot
|
SAF Robot Left | SAF calls the turn left method of the API | Robot turns left and the status of the robot in the SAF is updated | - SAF makes a call to the API to turn the robot left
- The API communicates over the network with the robot telling it to turn left
- Robot starts turning left and sends API status information
- SAF is updated from the current status of the robot
|
SAF Robot Right | SAF calls the turn right method of the API | Robot turns right and the status of the robot in the SAF is updated | - SAF makes a call to the API to turn the robot right
- The API communicates over the network with the robot telling it to turn right
- Robot starts turning right and sends API status information
- SAF is updated from the current status of the robot
|
SAF Robot Stop | SAF calls the stop method of the API | The robot stops and the status of the robot in the SAF is updated | - SAF makes a call to the API to stop the robot
- The API communicates over the network with the robot telling it to stop
- Robot stops and sends the API status information
- SAF is updated from the current status of the robot
|
SAF Robot Increase Speed | SAF calls the increase speed method of the API
| Robot increases speed and the status of the robot in the SAF is updated | - SAF makes a call to the API to increase the robot's speed
- The API communicates over the network with the robot telling it increase speed
- Robot increases speed and sends the API status information
- SAF is updated from the current status of the robot
|
SAF Robot Decreases Speed | SAF calls the decrease speed method of the API
| Robot decreases speed and the status of the robot in the SAF is updated | - SAF makes a call to the API to decrease the robot's speed
- The API communicates over the network with the robot telling it decrease speed
- Robot decrease speed and sends the API status information
- SAF is updated from the current status of the robot
|