DG.
All projects
Academic2023

Mars Rover Roomba

Autonomous embedded navigation through unknown terrain using ping and IR sensors.

C++Embedded SystemsPing SensorsIR Sensors

Overview

Embedded systems course final project: write C++ firmware for a Roomba to navigate an obstacle course it had never seen, using only ping and infrared sensors for spatial awareness. No maps, no GPS, just sensor readings and logic.

Challenges

The sensors create some noisy readings. A reading of 12cm could mean an actual obstacle or just interference. Building a decision algorithm that worked reliably despite noisy input required averaging, filtering, and a lot of physical testing.

What I learned

This project was a big experience for learning what "crunch-time" actually means. Working as a team, we spent countless nights going in to lab and working out the edge cases, filtering, and making it work. Also, this project taught me a lot about optimization trade-offs. Scanning every couple of cm isn't viable, so combining readings from previous scans helps to keep the roomba spend more time moving and less time scanning.