Grading and tasks

Table of Contents

Changes

2024-10-24

Task Old full points deadline New full points deadline

Mainboard schematic completed

2024-10-14 20:00

2024-10-28 20:00

Motor driver schematic completed

2024-10-14 20:00

2024-10-28 20:00

Mainboard design completed

2024-11-04 20:00

2024-11-11 20:00

Motor driver design completed

2024-11-04 20:00

2024-11-11 20:00

PCB(s) soldered properly

2024-11-18 20:00

2024-11-25 20:00

Grading

Points you have earned will determine your grade. Refer to the list below.

Grade points

  • A 9001+

  • B 8001..9000

  • C 7001..8000

  • D 6001..7000

  • E 5001..6000

  • F 0..5000

Task points and deadlines

Earned points can be found in tasks table.

Tasks approved after "Full points deadline" and before "Expires at" will receive half of the points.

Task Points Full points deadline Expires at

Test Robot

Test robot assembled

1200

2024-09-23 20:00

2024-11-18 20:00

Test robot thrower design completed

800

2024-09-23 20:00

2024-11-18 20:00

Test robot thrower fabricated

400

2024-10-07 20:00

2024-11-18 20:00

Test robot thrower mechanics assembled and attached to robot

400

2024-10-10 20:00

2024-11-18 20:00

Test robot thrower electronics attached and working

400

2024-10-10 20:00

2024-11-18 20:00

Programming

Mainboard communication

1000

2024-09-23 20:00

2025-01-15 20:00

Robot finds a ball

2000

2024-10-10 20:00

2025-01-15 20:00

Robot follows a ball

1600

2024-10-24 20:00

2025-01-15 20:00

Robot finds basket with a ball

1600

2024-10-31 20:00

2025-01-15 20:00

Robot throws a ball

800

2024-11-04 20:00

2025-01-15 20:00

Robot can properly react to referee commands

1000

2024-11-18 20:00

2025-01-15 20:00

Code works with new mechanics

600

2024-12-02 20:00

2025-01-15 20:00

Code works with new electronics

600

2024-12-02 20:00

2025-01-15 20:00

3 of 11 balls in 60 seconds

2400

2024-12-14 20:00

2025-01-15 20:00

5 of 11 balls in 60 seconds

1600

2024-12-14 20:00

2025-01-15 20:00

2 of 5 balls with 6 balls outside

2000

2024-12-09 20:00

2025-01-15 20:00

Dealing with opponent robot using 1 ball

2000

2024-12-09 20:00

2025-01-15 20:00

Robot movable with remote controller

400

2024-12-09 20:00

2025-01-15 20:00

Throwing range test

1200

2024-12-09 20:00

2025-01-15 20:00

Ball holding test

1200

2024-12-09 20:00

2025-01-15 20:00

Software documented

200

2025-01-09 20:00

2025-01-15 20:00

Mechanics

Omni wheels design completed

600

2024-09-30 20:00

2025-01-15 20:00

Motor mounts design completed

200

2024-10-07 20:00

2025-01-15 20:00

Camera mount design completed

200

2024-10-21 20:00

2025-01-15 20:00

Ball thrower design completed

600

2024-11-11 20:00

2025-01-15 20:00

Adjustable ball throwing angle design completed

1200

2024-11-28 20:00

2025-01-15 20:00

Ball holding thrower design completed

1200

2024-11-28 20:00

2025-01-15 20:00

Robot chassis design completed

1000

2024-11-11 20:00

2025-01-15 20:00

Robot design completed

1000

2024-11-11 20:00

2025-01-15 20:00

Whole new robot fabricated

1000

2024-11-25 20:00

2024-12-09 20:00

Mechanics assembled

1600

2024-12-02 20:00

2025-01-15 20:00

Electronics

Mainboard schematic completed

1000

2024-10-28 20:00

2025-01-15 20:00

Motor driver schematic completed

600

2024-10-28 20:00

2025-01-15 20:00

Mainboard design completed

1200

2024-11-11 20:00

2025-01-15 20:00

Motor driver design completed

600

2024-11-11 20:00

2025-01-15 20:00

PCB(s) soldered properly

600

2024-11-25 20:00

2025-01-15 20:00

PCB(s) working with firmware

1600

2024-12-02 20:00

2025-01-15 20:00

Throwing angle adjustable through mainboard

1000

2024-12-02 20:00

2025-01-15 20:00

Ball holder controllable through mainboard

1200

2024-12-02 20:00

2025-01-15 20:00

Thrower voltage regulator attached and working

400

2024-12-02 20:00

2025-01-15 20:00

Electronics attached to the robot and working

1200

2024-12-02 20:00

2025-01-15 20:00

Mainboard documented

600

2025-01-09 20:00

2025-01-15 20:00

Motor driver documented

600

2025-01-09 20:00

2025-01-15 20:00

Firmware documented

200

2025-01-09 20:00

2025-01-15 20:00

Progress Presentations

Progress presentation

200

2024-09-16 20:00

Progress presentation

200

2024-09-30 20:00

Progress presentation

200

2024-10-14 20:00

Progress presentation

200

2024-10-28 20:00

Progress presentation

200

2024-11-11 20:00

Progress presentation

200

2024-11-25 20:00

Progress presentation

200

2024-12-09 20:00

Competitions

1st test competition

800

2024-11-07 20:00

1st test competition with new mechanics

100

2024-11-07 20:00

1st test competition with new electronics

100

2024-11-07 20:00

1st test competition winner

400

2024-11-07 20:00

2nd test competition

600

2024-11-21 20:00

2nd test competition with new mechanics

200

2024-11-21 20:00

2nd test competition with new electronics

200

2024-11-21 20:00

2nd test competition winner

400

2024-11-21 20:00

3rd test competition

400

2024-12-05 20:00

3rd test competition with new mechanics

300

2024-12-05 20:00

3rd test competition with new electronics

300

2024-12-05 20:00

3rd test competition winner

400

2024-12-05 20:00

4th test competition

200

2024-12-12 20:00

4th test competition with new mechanics

400

2024-12-12 20:00

4th test competition with new electronics

400

2024-12-12 20:00

4th test competition winner

400

2024-12-12 20:00

Delta X

2000

2024-12-14 20:00

Delta X with new mechanics

2000

2024-12-14 20:00

Delta X with new electronics

2000

2024-12-14 20:00

Delta X best course robot

1000

2024-12-14 20:00

Delta X 2nd best course robot

400

2024-12-14 20:00

Delta X 3rd best course robot

200

2024-12-14 20:00

Other

Team documentation started

200

2024-09-23 20:00

2024-11-18 20:00

Team documentation completed

400

2025-01-09 20:00

2025-01-15 20:00

Final presentation

0

2025-01-16 20:00

Parts returned

0

2025-01-16 20:00

Teams

  • 4 members per team is recommended as grading is optimized for that.

  • Teams can be self-formed.

  • Each team should have members to cover programming, mechanics and electronics.

  • Teams must be approved by the instructors.

Earning points

  • Completing a task will reward points for the team.

  • Tasks will not be approved after "Expires at" time.

  • Tasks approved after "Full points deadline" will receive half of the points.

  • Team members will decide how points will be distributed.

  • All team members must agree with the distribution.

  • Point distribution must be approved by the instructors.

  • Points can be distributed between all participants in the course, not just between members of the team.

  • All points must be distributed.

  • Points must be distributed as integers.

  • Each person can receive up to the maximum of a task’s points for the same task. For example, it’s possible to receive half of the task’s maximum points from one team and the other half of the points from another team.

  • Point distribution can’t be changed without a good reason after the task has been completed.

Task presentation

  • At Delta robotics rooms.

  • During practicals (Mondays and Thursdays from 18:15 to 20:00) or any other time agreed upon with an instructor.

Design tasks

  • Designs must be reviewed and approved by instructors before fabricating mechanical parts or before PCBs are ordered.

  • Designs can be submitted for review at any time.

    • Revised designs can be resubmitted multiple times for review.

    • Please consider that reviewing takes time and don’t expect feedback immediately.

  • Design project access must be granted to instructors for review purposes.

  • Mechanical design must be created with Fusion 360.

Programming and competitions

  • Code must be reviewed and approved by instructors to complete the tasks and to qualify for competitions.

Tasks

Progress presentation

Task is completed when the team has presented their progress.

  • In Delta room 2024.

  • Mondays 18:15 - 18:45, once every two weeks.

  • Each team has 1 minute to present and 1 minute for questions.

  • At least 1 team member presents the progress of all team members.

    • Talk about main achievements and problems that you need help with.

  • Each team must prepare 1 slide that illustrates their progress.

    • Slides can, for example, contain pictures of the current designs, videos about how the robot is working, pictures and videos of some components and simple diagrams or drawings.

    • Avoid using text.

Test robot

Test robot assembled

  • Mechanics assembled:

    • Chassis with camera mount.

    • At least 3 wheels.

    • Parts connected to each other without adhesives (e.g. tape or glue).

  • Electronics attached and working:

    • Computer

    • Camera

    • Mainboard

    • Motors for each wheel.

    • Motor controller for each motor.

    • Power path control board with PC adapter and battery inputs and PC power output.

    • Batteries

    • Power switch between motor battery’s positive power connection.

    • Wires connecting electronics.

      • Wires that connect to power sources should not be exposed.

Test robot thrower design completed

  • Thrower should technically be able to throw the ball.

Test robot thrower fabricated

  • CAM approved.

  • Parts fabricated.

Test robot thrower mechanics assembled and attached to robot

  • Design approved.

  • Thrower assembled and attached to the robot.

Test robot thrower electronics attached and working

  • Motor and ESC attached and working.

  • Motor speed can be controlled through mainboard.

Programming

  • Each task must be successfully completed 2 times in a row.

  • Multiple attempts allowed.

Mainboard communication

  • Code running on robot’s PC.

    • Sends speed commands to the mainboard.

  • Robot moves at least 1 meter on the court.

  • 30 seconds per attempt.

Robot finds a ball

  • Robot starts from the center of the court, facing its own basket.

  • 1 ball on the opposing half of the court.

  • 60 seconds per attempt.

  • Task is completed when the ball is in the middle of the camera’s horizontal field of view and the robot is not moving.

Robot follows a ball

  • Robot starts from its corner of the court.

  • 1 ball on the opposing half of the court.

  • Robot must stop if the ball is closer than 10 centimetres.

  • Instructor will move the ball when the robot gets closer than 10 centimetres to the ball.

  • Robot must follow the ball by simultaneously rotating and moving towards it.

  • Robot must use omnidirectional motion.

  • Task is completed when the robot is able to follow the ball.

Robot finds basket with a ball

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • 1 ball is placed by an instructor.

  • Task is completed when:

    1. The ball is closer than 10 centimetres to the robot.

    2. The opponent’s basket and the ball are in the middle of the camera’s horizontal field of view.

Robot throws a ball

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • 1 ball is placed by an instructor.

  • Task is completed when the ball is thrown at least 1 meter towards the opponent’s backboard.

Robot can properly react to referee commands

  • Refer to the robot basketball manager documentation.

  • Robot ID can be changed.

  • Robot reacts to referee signals that are targeted to it:

    • Start signal - Robot starts to move on the court.

    • Stop signal - Robot stops moving.

  • Robot correctly uses basket color from the signal’s info.

  • Robot retries to connect to basketball manager if connection is lost or has not been established yet.

Code works with new mechanics

  • Robot uses new mechanics.

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • 11 balls on the court.

  • Task is completed when a ball is thrown into the opponent’s basket.

  • Can be completed together with "Code works with new electronics" task.

Code works with new electronics

  • Robot uses new electronics.

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • 11 balls on the court.

  • Task is completed when a ball is thrown into the opponent’s basket.

  • Can be completed together with "Code works with new mechanics" task.

3 of 11 balls in 60 seconds

  • Robot starts from its corner of the court.

  • Balls are placed according to basketball rules.

  • At least 3 points must be scored.

  • 60 seconds per attempt.

5 of 11 balls in 60 seconds

  • Robot starts from its corner of the court.

  • Balls are placed according to basketball rules.

  • At least 5 points must be scored.

  • 60 seconds per attempt.

2 of 5 balls with 6 balls outside

  • 5 balls inside the playing court.

  • 6 balls outside the playing court.

    • Outside black lines but on the playing area or outside the playing court.

  • Balls are placed by instructors.

  • Robot’s starting position will be selected by the instructors.

    • For example robot can be placed outside the playing court (outside black lines) looking at the balls that are outside the playing area (not on the orange carpet).

    • Robot can also be placed behind basket’s backboard.

  • At least 2 points must be scored.

  • 60 seconds per attempt.

Dealing with opponent robot using 1 ball

  • 60 seconds per attempt.

  • 1 ball on the court placed behind the opponent robot.

  • Both robots are placed by the instructors.

  • When the robot finds the ball behind the opponent robot, the opponent robot moves between basket and the ball and remains there.

  • Task is completed when the ball is scored.

  • Images below illustrate the steps.

    • Robots are not required to move the same way as the arrows indicate.

dealing with opponent step 1 dealing with opponent step 2 dealing with opponent step 3

Robot movable with remote controller

  • Keyboard or gamepad or similar controller.

    • Connected wirelessly to the robot.

  • Robot game logic can be started and stopped.

  • Robot can be moved manually.

    • At least in all 4 directions along the main axes.

    • Rotate around its axis in both directions.

    • Start and stop the thrower motor.

Throwing range test

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • One ball at 10 centimetres from the opponent’s basket.

  • Another ball at the other corner of the backcourt.

  • Ball must be thrown from where it is located.

  • Task is completed when both balls are thrown into the opponent’s basket.

Ball holding test

  • Robot starts from its corner of the court.

  • 60 seconds per attempt.

  • 1 ball is placed by an instructor at the backcourt.

  • Robot must grab the ball and move to the frontcourt.

  • Ball can only be moved by holding it.

  • Only 1 throw from the frontcourt is allowed.

  • Task is completed when the ball is scored from the frontcourt.

Software documented

  • In team’s repository software branch and software/README.asciidoc file.

  • Instructions on how to set up and run the code.

  • Used libraries and purpose of use.

  • A brief description of your game logic and overall code structure.

  • A block diagram of your game logic.

Mechanics

  • Unfinished designs can be submitted for review at any time for early feedback.

Omni wheels design completed

  • Design approved.

  • Wheels must be attachable to the motors.

Motor mounts design completed

  • Design approved.

  • Motors and wheels added to the assembly

Camera mount design completed

Ball thrower design completed

  • Design approved.

  • Thrower attached to the chassis in the design.

  • Thrower should technically be able to throw the ball.

Adjustable ball throwing angle design completed

  • All "Ball thrower design completed" task requirements apply.

  • Throwing angle can be adjusted through the mainboard (for example with a servo).

Ball holding thrower design completed

  • All "Ball thrower design completed" task requirements apply.

  • Thrower designed to grab a ball, hold the ball while moving and release or throw the ball while holding.

Robot chassis design completed

  • Design approved.

  • Chassis for connecting all the parts.

  • Batteries attachable to chassis.

  • Electronics mounting:

    • Computer

    • Mainboard

    • Motor boards

    • Cutout for motor battery power switch.

    • Cutout for PC power adapter socket.

  • Design that prevents balls from getting stuck against the robot. If the robot drives against the ball, the ball should roll away.

    • Problem:

      • When robot sides are angled outwards, then the ball would get stuck, because the ball does not slide against the carpet and the robot sides.

        • ball stuck outwards angle

      • Ball can also get stuck with vertical robot sides, when the ball is not sliding against the carpet and the side. In this case the ball can’t rotate and roll away.

        • ball stuck vertical angle

    • Possible solutions:

      • One option to solve this is to have the sides angled inwards.

        • ball not stuck inwards angle

      • Another option is to make the bottom plate extend outwards, so that the edge of the bottom plate touches the ball before the side of the robot.

      • ball not stuck extended bottom

      • Both options push the ball below its center, which helps the ball to roll away.

Robot design completed

  • Complete design approved.

Whole new robot fabricated

  • CAM approved:

    • Milled parts must fit on the material sheet.

    • Must use available milling tools.

  • All parts fabricated.

  • Parts do not need to be assembled.

Mechanics assembled

  • All mechanical parts attached together.

  • No adhesives used.

Electronics

  • It’s recommended to design a single PCB with a microcontroller and motor drivers.

  • All PCB designs must be ready for ordering before 2023-12-04 20:00. No orders will be made after that time.

Mainboard schematic completed

  • Design approved.

  • Required functionality:

    • Closed loop control of at least 3 motors.

    • Thrower motor control.

    • Communication with robot’s computer.

Motor driver schematic completed

  • Design approved.

  • Requirements:

    • Can drive motors that are used on the robot.

    • Works with batteries that are used on the robot.

    • Electrically isolated from the mainboard.

Mainboard design completed

  • Same requirements as for "Mainboard schematic completed".

  • Design (schematic and layout) approved.

    • PCB limitations:

      • Size up to 50 mm x 50 mm.

      • Price from JLCPCB up to 40$.

      • For exceptions ask instructors.

Motor driver design completed

  • Same requirements as for "Motor driver schematic completed".

  • Design (schematic and layout) approved.

    • PCB limitations:

      • Size up to 50 mm x 50 mm.

      • Price from JLCPCB up to 40$.

      • For exceptions ask instructors

PCB(s) soldered properly

  • All components and wires soldered.

  • Assembled PCB(s) inspected by instructors and approved.

PCB(s) working with firmware

  • Firmware implements required functionality.

  • Firmware code hosted in team’s repository.

  • Firmware code reviewed and approved.

  • Motors can be controlled through the mainboard.

  • Motors can be rotated in both directions.

  • Encoders must work. Closed loop (e.g. PI or PID) speed control must work.

Throwing angle adjustable through mainboard

  • Commands can be sent to the mainboard to change the thrower angle.

Ball holder controllable through mainboard

  • Commands can be sent to the mainboard to grab, hold and release or/and throw a ball.

Thrower voltage regulator attached and working

  • Attached either to the old robot or to the new robot.

  • Voltage regulator is connected and working between battery and thrower motor controller to ensure that changing battery voltage doesn’t affect thrower motor speed.

Electronics attached to the robot and working

  • Attached either to the old robot or to the new robot.

    • Same requirements as for "Test robot assembled".

  • Command(s) can be sent through mainboard:

    • To move wheel motors.

    • Change thrower motor speed.

  • Motor battery power switch works.

  • Power path control board works.

Mainboard documented

  • All documentation must be in your team’s repository with electronics design files.

  • Functionality and connector pinouts described in AsciiDoc format in electronics branch and in electronics/README.asciidoc file.

  • Schematic PDF file.

  • Components BOM in TSV (tab-separated values, *.tsv) format.

    • Columns

      • Name/Part Number

      • Description

      • Designator

      • Quantity

  • Gerber files in separate directory.

    • Gerber X2 format is preferred.

Motor driver documented

  • Same requirements as for "Mainboard documented" task.

Firmware documented

  • In team’s repository firmware branch and firmware/README.asciidoc file.

  • Format and description of the data that can be sent to and received from mainboard.

Competitions

Test competition

  • Either test robot or new robot qualifies according to basketball rules:

    • Fits into the weight limit.

    • Fits into size limits.

    • Does not have any forbidden colors visible.

    • Scores at least 1 point.

  • Starting from the 2nd test competition, robot needs to properly react to referee commands.

Test competition with new mechanics
  • Bonus points for qualifying with new mechanics.

Test competition with new electronics
  • Bonus points for qualifying with new electronics.

Test competition winner
  • Bonus points for the best team among course participants.

Delta X

  • New robot or test robot qualifies according to basketball rules.

Delta X with new mechanics
  • Bonus points for qualifying with new mechanics.

Delta X with new electronics
  • Bonus points for qualifying with new electronics.

Delta X best course robot
  • Bonus points for the best team among course participants.

Delta X 2nd best course robot
  • Bonus points for the 2nd best team among course participants.

Delta X 3rd best course robot
  • Bonus points for the 3rd best team among course participants.

Other

Team documentation started

  • In team’s repository documentation branch and README.asciidoc file.

  • In English.

  • Names of the team members.

  • Public Fusion 360 project link.

Team documentation completed

  • Must be reviewed and approved by instructors.

  • No grades if not completed.

  • Requirements from the "Team documentation started" task also apply here.

  • README.asciidoc sections:

    • Programming

      • A short analysis of what was good and bad in your code and how to improve.

    • Electronics

      • If you used something different from what was given at the start of the course or did something different, describe it.

      • Photos illustrating electronics on your robot. (electronics board, cable management, etc.)

      • A short analysis of what was good and bad in your electronics and how to improve.

    • Mechanics

      • If you used something different from what was given at the start of the course or did something different, describe it.

      • Description of the main points of interest in your ball thrower design and construction process.

      • Photos of your robot.

      • A short analysis of what was good and bad in your mechanics and how to improve.

    • Personal comments. Each member must write a paragraph that covers the following:

      • On which parts of the robot did you work on?

      • What did you learn?

      • What would you do differently next time?

      • What did you like/did not like about the course/building a robot?

      • Suggestions for next year students.

      • Suggestions for instructors.

Final presentation

  • 10 minutes per team.

  • Overview of the robot.

  • Talk about your experience.

  • No grades if not completed.

Parts returned

  • Return parts, but keep robots assembled.

  • No grades if parts are not returned.

  • Refer to Handed out equipment