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

Programming

Mainboard communication

1000

2022-12-15 20:00

2023-01-18 20:00

Robot finds a ball

2000

2022-12-15 20:00

2023-01-18 20:00

Robot follows a ball

1600

2022-12-15 20:00

2023-01-18 20:00

Robot finds basket with a ball

1600

2022-12-15 20:00

2023-01-18 20:00

Robot throws a ball

800

2022-12-15 20:00

2023-01-18 20:00

Robot can properly react to referee commands

1000

2022-12-15 20:00

2023-01-18 20:00

Code works on new robot

1200

2022-12-17 20:00

2023-01-18 20:00

3 of 11 balls in 60 seconds

2400

2022-12-17 20:00

2023-01-18 20:00

5 of 11 balls in 60 seconds

1600

2022-12-17 20:00

2023-01-18 20:00

2 of 5 balls with 6 balls outside

2000

2022-12-15 20:00

2023-01-18 20:00

Dealing with opponent robot using 1 ball

2000

2022-12-15 20:00

2023-01-18 20:00

Robot movable with remote controller

400

2022-12-15 20:00

2023-01-18 20:00

Throwing range test

1200

2022-12-15 20:00

2023-01-18 20:00

Ball holding test

1200

2022-12-15 20:00

2023-01-18 20:00

Mechanics

Test robot thrower design completed

800

2022-11-07 20:00

2022-11-21 20:00

Test robot thrower fabricated

400

2022-11-07 20:00

2022-11-21 20:00

Test robot thrower mechanics assembled and attached to robot

400

2022-11-07 20:00

2022-11-21 20:00

Omni wheels design completed

800

2022-12-05 20:00

2023-01-18 20:00

Motor mounts design completed

400

2022-12-05 20:00

2023-01-18 20:00

Camera mount design completed

400

2022-12-05 20:00

2023-01-18 20:00

Ball thrower design completed

800

2022-12-05 20:00

2023-01-18 20:00

Adjustable ball throwing angle design completed

1200

2022-12-15 20:00

2023-01-18 20:00

Ball holding thrower design completed

1200

2022-12-15 20:00

2023-01-18 20:00

Robot chassis design completed

1200

2022-12-05 20:00

2023-01-18 20:00

Whole new robot fabricated

1000

2022-12-05 20:00

2022-12-15 20:00

Mechanics assembled

1600

2022-12-15 20:00

2023-01-18 20:00

Electronics

Test robot thrower electronics attached and working

400

2022-11-07 20:00

2022-11-21 20:00

Mainboard design completed

2000

2022-12-05 20:00

2023-01-18 20:00

Motor driver design completed

1000

2022-12-05 20:00

2023-01-18 20:00

Mainboard soldered and working

600

2022-12-15 20:00

2023-01-18 20:00

Motor drivers soldered and working

600

2022-12-15 20:00

2023-01-18 20:00

Mainboard firmware completed

1000

2022-12-15 20:00

2023-01-18 20:00

Mainboard documented

600

2023-01-12 20:00

2023-01-18 20:00

Motor driver documented

600

2023-01-12 20:00

2023-01-18 20:00

Throwing angle adjustable through mainboard

1000

2022-12-15 20:00

2023-01-18 20:00

Ball holder controllable through mainboard

1200

2022-12-15 20:00

2023-01-18 20:00

Thrower voltage regulator attached and working

400

2022-12-15 20:00

2023-01-18 20:00

Electronics attached to the robot and working

1200

2022-12-15 20:00

2023-01-18 20:00

Other

Test robot assembled

1200

2022-11-07 20:00

2022-11-21 20:00

Team documentation started

200

2022-11-07 20:00

2022-11-21 20:00

Team documentation completed

0

2023-01-18 20:00

Final presentation

0

2023-01-19 20:00

Parts returned

0

2023-01-19 20:00

Progress

Progress blog and presentation

400

2022-09-19 20:00

Progress blog and presentation

400

2022-10-03 20:00

Progress blog and presentation

400

2022-10-17 20:00

Progress blog and presentation

400

2022-10-31 20:00

Progress blog and presentation

400

2022-11-14 20:00

Progress blog and presentation

400

2022-11-28 20:00

Progress blog and presentation

400

2022-12-12 20:00

Competitions

1st test competition

1000

2022-11-10 20:00

1st test competition with new robot

200

2022-11-10 20:00

1st test competition winner

400

2022-11-10 20:00

2nd test competition

800

2022-11-24 20:00

2nd test competition with new robot

400

2022-11-24 20:00

2nd test competition winner

400

2022-11-24 20:00

3rd test competition

200

2022-12-08 20:00

3rd test competition with new robot

1000

2022-12-08 20:00

3rd test competition winner

400

2022-12-08 20:00

Delta X

4000

2022-12-17 20:00

Delta X best course robot

1000

2022-12-17 20:00

Delta X 2nd best course robot

400

2022-12-17 20:00

Delta X 3rd best course robot

200

2022-12-17 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.

    • Progress blog and presentation points can only be distributed among team members.

  • 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 blog and presentation

Task is completed when each team member has written down their progress since the last presentation on the team repository’s README and the team has presented their progress.

Blog

  • Short description about the daily progress and the time spent.

    • Spent time is not used for grading, only for better course planning next year.

  • Daily blog should describe what you did and what was the result of it.

  • Days without any activity do not need to be blogged about.

  • Example:

== Blog

=== Monday 2022-09-05

*Kristiina:* Soldered mainboard. Broke one lead, but fortunately it was not important. (2h) +
*Kalle:* Started designing chassis. Was too hard for me. Must ask for help. (3.5h) +
*Abraham:* Installed Python. Failed with lots of errors. (1.5h) +

=== Tuesday 2022-09-06

...

Progress presentation

  • In Delta room 2024.

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

  • 5 minutes per team.

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

  • Slides must be prepared and used to illustrate the 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 too much text or only text.

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 on new robot

  • 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.

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.

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.

Mechanics

  • Design tasks are approved as a whole, not individually.

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

  • Thrower assembled and attached to the robot.

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

  • Design approved.

  • Camera added to the assembly.

  • Field of view pyramid added to the camera.

Ball thrower design completed

  • Thrower attached to the chassis in the design.

  • Thrower should technically be able to throw the ball.

Adjustable ball throwing angle design completed

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

Ball holding thrower design completed

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

Robot chassis design completed

  • Chassis for connecting all the parts.

  • Battery mounts.

  • Electronics mounting:

    • Computer

    • Mainboard

    • Motor boards

    • Cutouts for power switches and PC power adapter connector.

  • 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.

Whole new robot fabricated

  • CAM approved:

    • Milled parts must fit on the material sheet.

    • Must use available milling tools.

      • Consult with instructors about available tools.

  • All parts fabricated.

  • Do not need to be assembled.

Mechanics assembled

  • All mechanical parts attached together.

  • No adhesives used.

Electronics

Test robot thrower electronics attached and working

  • Motor and ESC attached and working.

  • Motor speed can be controlled through mainboard.

Mainboard design completed

  • Design approved.

  • Required functionality:

    • Closed loop control of at least 3 motors.

    • Thrower motor control.

    • Communication with robot’s computer.

Motor driver design completed

  • Design approved.

  • Can be combined with the mainboard.

  • 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 soldered and working

  • Motors can be controlled through the mainboard.

Motor drivers soldered and working

  • Can be controlled through a mainboard.

  • Motors can be rotated in both directions.

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

Mainboard firmware completed

  • Implements required functionality.

  • Code hosted on GitHub in team’s repository.

  • Code reviewed and approved.

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/README.asciidoc file.

  • Schematic PDF file.

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

    • Columns

      • Name

      • Description

      • Designator

      • Quantity

      • Mouser order code

      • Farnell order code

      • TME order code

  • Gerber files in separate directory.

    • Gerber X2 format is preferred.

Motor driver documented

  • Same requirements as for "Mainboard documented" task.

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

  • 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 to the robot.

    • Same requirements as for "Test robot assembled".

  • Command(s) can be sent through mainboard:

    • To move wheel motors.

    • Change thrower motor speed.

  • Power buttons and power path control board works.

Other

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.

      • Power switch for a computer battery is optional.

    • Wires connecting electronics.

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

Team documentation started

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

  • In English.

  • Names of the team members.

  • Public Fusion 360 project link.

  • Progress blog section.

Test competition

  • Either old 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.

    • Properly reacts to referee commands.

    • Scores at least 1 point.

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

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

Delta X

  • New robot qualifies according to basketball rules.

  • Test robot not allowed.

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.

Team documentation completed

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