Skip to main content

Requirements

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.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:       Robot must have a color sensor, TCS230 .
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

Popular posts from this blog

Mechanical diagrams and preview

 Robinho's mechanical systems are surprisingly complex, forcing the team to manufacture multiple parts from scratch. Thus we decided on designing all the parts in CAD for 3D printing in PLA, which is lightweight, cheap and resistant enough for all the applications. The mechanical parts are separated first into: The robot chassis The robot's claw The arena The robot's chassis The base of the chassis was bought from the internet, we chose a reliable and readily-available model which is commonly called "2WD Circular robot chassis". It has a standard diameter of about 14cm (excluding the wheels), fitting our specifications for the project.     Above the prebuilt base we assemble two other plates made of acrylic plastic, separated by 6cm inbetween.

Arduino diagrams

Software-focused block diagram Flowchart for the Arduino   Simplified statechart for the Arduino Draft UART Arduino-ESP32 communication Rotation cascade controller diagram Advance cascade controller diagram