A robotic rover which is able to autonomously map out an obstacles-filled arena in an attempt to locate several brightly coloured targets.

This project was my final project in second year of Imperial. The project was made in groups of 6-7, and consisted of a combination of several complicated subsystems. I was responsible for two of these subsystems:

  • The camera processing pipeline, used to identify and estimate the location of the coloured balls. The camera pipeline processed raw pixel data from a Terasic DSM-GPIO camera using a MAX10 FPGA. Due to the high throughput of pixel data, most of the processing had to be performed with logic synthesized from Verilog on the fabric of the FPGA.
  • The main controller for the rover. Data from the camera pipeline, motor drivers and the back-end server was all collected in a single ESP32 microcontroller mounted onto the rover, which would then decide on the next action to take. I was responsible for the programming of this microcontroller, which you can much more about on this GitHub repo!