Adam Crespi

Burger-Building Robots

2023 · ENPH 253 · autonomous burger-serving robots

Burger-Building Robots

The Competition

The UBC Engineering Physics Summer Robot Competition is a yearly event that challenges second year Engineering Physics students to create autonomous robots capable of solving complex challenges. This year, the competition was based on the video game Overcooked. For the first time, students were challenged to design and build two autonomous robots that work together to complete intricate cooking tasks. The robots must navigate between stations, picking up ingredients and assembling and plating dishes like burgers, fries, and salads, all within a tight two-minute timeframe.

Project Overview

We had 6 weeks to fully design and build these robots from scratch. My team spent upwards of 10 hours in the lab daily for these 6 weeks to develop 2 robots that we were proud of.

Robot Design

Our Design

To design two fully autonomous robots in just under 6 weeks, we needed to keep time management at the forefront of our design process. We ensured that both robots should be as similar as possible to minimize new design and troubleshooting. We also chose to use the walls of the play area for alignment, rather than using PID to stay on the centre line. These two design decisions ended up being very smart project management moves, and we were one of only 5 teams to have two fully functional robots.

See a list of our components below:

  • Mechanum Wheels — For omnidirectional movement
  • H-Bridges — For controlling the direction and speed of motors
  • DC Motors — Provide rotational power for movement
  • Voltage Regulators — Ensure stable voltage supply to components
  • LiPo Batteries — High-density rechargeable power source
  • Rotary Encoders — Measure distance sweeper and elevator move
  • Micro Switches — Used as limit switches
  • ESP32 — Brain of the system
  • Reflectance Sensors — For aligning with different stations

The Software

The software for our robots was built around a state-machine architecture, enabling precise control over the sequential tasks each robot needed to perform. This approach allowed us to handle complex behaviors such as navigating to stations, picking up ingredients, and assembling burgers. Reflectance sensors were used for alignment, while rotary encoders tracked the distance traveled to maintain accuracy. This combination of modular software design and robust sensor integration made it possible to achieve consistent and reliable performance during the competition.

Robot Design

Our state-machine architecture required a lot of trial and error to get working...

Most problems arose when trying to optimize our robot for speed — for example, when trying to extend the arm and spin between counters at the same time. Our system was fundamentally not designed to do this, and getting it to work perfectly required a lot of tweaking. In retrospect using an RTOS would have been a much more efficient approach, as we could have had a much easier time concurrently executing the tasks, and even utilized the ESP32's dual cores.

See the full codebase on GitHub here.

The Hardware

Testing and Results

My main contributions to our team were the hardware and system integration. I designed custom protoboards for our ESP32 microcontrollers. This board included JST connectors for modular and secure connections to peripheral devices, such as sensors, motors, and switches. I also set up the ESP32's strapping pins to ensure the correct boot and flash modes for programming and execution. This involved configuring GPIO pins with appropriate pull-up and pull-down resistors to handle power-up states reliably.

Testing and Results

See the final board below:

Future Work

I also worked on the implementation of encoders to track our elevator and sweeper. I designed debouncing circuits for the mechanical encoders and used quadrature encoding for greater position accuracy.

Future Work

The Mechanical

Robot Design

Our robot was designed in CAD and fabricated with a laser cutter for the wooden and acrylic parts, and a water jet cutter for gears and our elevator rails. Almost all of our robot's mechanical design was done by our team member Heejae.

Robot Design

Here's Jordan and Heejae operating the waterjet cutter.

Apart from a few small sizing issues, our mechanical design was almost flawless. Our biggest issue was acrylic gears breaking, but we just waterjet these gears with metal to resolve this.

Future Work

We had a couple near misses though... See our rail almost snap above.

Results and Reflection

Our robots performed exceptionally, finishing second overall in the competition, losing by an inch — literally. This project was a tremendous learning experience, where I gained valuable insights into hardware design and the importance of effective teamwork.

Future Work

See some of the news coverage on the event:


back to everything