Team funMode();
4th place robot at the Engineering Physics 2020 Robotics Competition

The Challenge: RecycleBots

Due to COVID-19, UBC was closed for the duration of this course. Students were required to purchase tools and fabricate all parts from home. All students created their own competition surface and competed in a livestreamed Zoom competition.

Our team of four was tasked to build 4 fully autonomous robots to find 6 cans on an 8' x 8' surface and place them in a recycling bin within 60 seconds. Bonus points are awarded for using an 8'' tall bin and picking up cans laying in different orientations.

A more detailed overview of the competition can be found here.

Our strategy consisted of:
- dragging the recycling bin using magnets
- tape following for navigating surface
- sonar detection for finding cans
- wheel encoders for precise movements
- servo lifting mechanism

Team funMode(); competed in 5 matches, making it all the way to the final rounds. We ultimately placed 4th out of 16 teams.


Our robot's mechanical design

Our mechanical systems were initially drafted in OnShape. See our initial CAD prototypes in our design proposal. Due to COVID-19 closures at UBC, we were unable to access 3D printers, waterjet cutters, and laser cutters.

We fabricated all our parts using hand tools and power tools with materials that can be found at any hardware store.


Main Body

The chassis of our robot features a large cutout so cans can be retrieved a ground level. Circuits and DC motors are mounted to the bottom of the chassis.


Method of Can Retrieval

The gate is designed to knock cans laying in any orientation onto the platform.

Lift Mechanism

Mechanism for Depositing Cans

Using a pair of servo motors and a platform that lays flat on the ground, we can lift cans from off the ground and deposit them behind our robot.

Portable Recycling Bin

Magnetized Bin Attachment

Using ferrous brackets on the back of our bot allows us to quickly attach to a recycling bin and drag it around the surface.


Our robot's electrical systems

Power Distribution
Regulator circuit to provide 9V, 5V and 3.3V power for various circuits
STM-32 Blue Pill Board for I/O
H-Bridge circuits for differential rear wheel drivetrain
PID Tape Following
Reflectance Sensor Array
Precision Driving
Photointerrupters and Motor Encoders
IR Beacon Detection
Amplification and AC Coupling Circuit


Our robot's software systems.

Our code is written in C++ for an STM32 Microcontroller. View the code on our Github repo.

PID Control

Implementing PID control allows us to accurately follow tape autonomously.

Can Retrieval

Using sonar and encoder data, we are able to locate cans, retrieve cans, and return to tape.

Signal Processing

For IR detection, a cross-correlation algorithm was implemented to detect the presence of a 1kHz IR signal.

Team Members

Team funMode(); is a team of four second-year Engineering Physics students at the University of British Columbia.

Zephaniah Ko

Jeffrey Chan

Christian Malherbe

Michael Villanueva