Mars Rover Roomba
Autonomous embedded navigation through unknown terrain using ping and IR 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.