End-user Software Requirements
Soft-FR01: Webapp must support more than one user at the time, but just one user will have access to the robot at the same time, creating a waiting line.
Soft-FR02: Webapp must have a teacher's interface.
Soft-FR02.1: Teacher's interface must have access to the program created by the Users, so the Teacher can rate the solutions.
Soft-FR02.2: Teacher's interface must have Arena and Robot camera live feed.
Soft-FR02.3: Teacher's interface must have reset button to avoid problems related to the programs created.
Soft-FR02.4: Teacher's interface must have control of the Users waiting line.
Soft-FR03: Webapp must have a User's interface.
Soft-FR03.1: User's interface must have a Reset Button, so the user can stop the program running and reset robot position.
Soft-FR03.2: User's interface must have a Run Button, so the User can run the program created.
Soft-FR03.3: User's interface must have Save Button, so the User can save the program created.
Soft-FR03.4: User's interface must have a Task List separeted by difficulty.
Soft-FR03.5: User's interface must have Coding Evironment, so the User can use the block based language to create the program to solve a task.
Soft-FR03.6: User must be able to access the created programs saved to his profile.
Soft-FR04: Webapp must have a sign-up screen.
Soft-FR04.1: The user must be able to input their full name, an email address and a password.
Soft-FR05: Webapp must have a login screen with user authentication.
Soft-FR05.1: Webapp must identify the user type to show the proper interface.
Soft-FR06: Server must be able to store and recover data from the database.
Soft-FR06.1: The database will run locally.
Soft-FR07: Webapp must protect user information and access control
Soft-FR07.1: User password and sensitive information must be obfuscated
Soft-FR07.1: User password and sensitive information must be obfuscated
Soft-FR07.2: Connection must be made with valid HTTPS certificate
Soft-FR08: Webapp must have a simple and intuitive block based programming language so the User can program the Robot.
Soft-FR08.1: IF-ELSE Block
Soft-FR08: Loop Blocks (FOR and WHILE)
Soft-FR08: Blocks to get sensor data (GET_COLOR, GET_IMAGE)
Soft-FR08: Movement Blocks (MOVE_FORWARD, TURN_90)
Soft-FR08: Block to create variables
Soft-FR09: Server must handle the Webapp without slowdowns.
Soft-FR10: After the end of an exercise, the system should reset the movable arena objects to their default positions.
Soft-FR11: Webapp must be able to send to the Arena the Robot's program created by the user
Arena Requirements
Arena
Arena's Blueprint
Arena-FR01: The arena's area must be at least 3 square meters.
Arena-FR01.1: The arena will be divided in 25cmx25cm squares.
Arena-FR02: Arena must have two suspended cameras at a maximum of 2.5m from the gound.
Arena-FR03: Arena must have a grid of 4x4 positions.
Arena-FR03.1: The 4 tip positions must have different colors, like the blueprint.
Arena-FR04: Arena must have 4 buttons that can be interacted with by the robot.
Arena-FR04.1: The buttons must be interacted with the robot.
Arena-FR05: Arena must have a changing color spot on the side close to the boxes, like in the blueprint.
Arena-FR06: Arena must have a maze like the one in the blueprint.
Arena-FR06.1: The maze must have fixed colered walls in dead ends to set the maze goals.
Arena-FR06.2: The colored dead ends must have a protection so the camera can't see their color.
Arena-FR07: Arena must have four moveable boxes with four different colors, the same that colors the tip positions in the grid.
Arena-FR07.1: Each box must have a diferent shape in each of it's four sides.
Arena-FR07.2: Two or more boxes can't contain the same shape.
Arena-FR08: Arena must have an induction charging point for the robot.
Arena-FR09: Arena must be surrounded by walls of at least 10cm high.
Arena-FR10: Arena must have a fixed upward facing ARTag for camera positioning calibration.
Arena-FR11: Arena Height and position will be fixed.
Arena-FR12: Arena must be able to connect to the internet.
Robot Requirements
Robot-FR01: Robot must be built in a circular frame, with a 2wd circular chassis, with a 3d printed auxiliary frame.
Robot-FR01.1: Auxiliary frame must have a place to attach: tag, ESP32-CAM, arduino uno, pincer claw, the recharger system with the induction charger receiver.
Robot-FR01.2: 2wd circular chassis must be used to attach: two DC motors with encoders, color sensor, two ball casters.
Robot-FR01.3: Robot has 2 powered wheels with separate motors.
Robot-FR01.4: Motors must have encoders.
Robot-FR01.5: Robot has 2 ball casters.
Robot-FR02: Robot must communicate with the server using wifi.
Robot-FR02.1: Robot must send RGB image to the server.
Robot-FR02.2: Robot must send battery status (high, medium or low) to the sever.
Robot-FR02.3: Robot must receive micropython program using wifi server.
Robot-FR03: Robot must have a pincer claw.
Robot-FR03.1: Claw must be able to carry a 5cm wide rectangular box.
Robot-FR03.2: Pincer must be retractable.
Robot-FR03.3: Pincer must be capable of grabbing the arena boxes.
Robot-FR04: Robot must have a tag to be located by the arena cameras.
Robot-FR04.1: Tag must be of ARTag system.
Robot-FR05: Robot must have a RGB camera.
Robot-FR05.1: Camera must face forward.
Robot-FR06.1: Color sensor should face down.
Robot-FR07: Robot must have a charger system.
Robot-FR07.1: Go to the charge station automatically at the end of each task.
Robot-FR07.2: Go to the charge station automatically when battery is low.
Robot-FR07.3: Charger system must be able to measure the battery level using the esp32's adc.
Robot-FR07.4: The robot will inform the rest of the system of current battery status.
Robot-FR07.5: The battery charging system must be safe from explosions and fires.
Robot-FR07.6: The charger must be able to charge the battery between tasks perform.
Robot-FR08: Details of robot movement are abstracted and simplified from the point of view of the end-user.
Robot-FR08.1: Robot can only move in a grid pattern.
Robot-FR08.2: Robot can be commanded to move Forward/Backwards.
Robot-FR08.3: Robot can be commanded to turn 90° clockwise or counterclockwise.
Robot-FR08.4: If the robot is positioned out of center of a grid position, it will correct itself automatically.
Robot-FR08.5: If the robot's facing is out of grid alignment with one of North/South/West/East it will correct itself automatically to one of those directions.
Robot-FR08.6: The robot will not accept invalid moves such as: leaving the arena and crashing into the walls of the maze.
Note: North/South/West/East are arbitrary names for the direction, not actual geographical directions.
Anti-Requirements
Anti-01: There are no backups.
Anti-02: No AI tech is used.
Anti-02.1: Specifically color and pattern identification uses simple algorithms.
Anti-03: There are no diagonal movements.
Anti-04: No support for phones, tablets or other touchscreen devices.
Anti-05: Something about the stuff that CAN'T be fixed remotely.
Anti-06: No element of the arena except the robot moves on its own.
Anti-07: The arena lighting must be provided.
Anti-08: The PC used must be provided.
Anti-09: Internet connection must be provided by the user.
Comments
Post a Comment