Senior Design Project: Arduino Controlled Roomba

Hello, so I have some coding experience, taken two introductory coding courses, and experience with Arduino. For our senior design project we were tasked with creating a Roomba from scratch. It has to clean the main floor of our engineering building. I was tasked with the coding portion and we have decided to go with multiple infrared sensors to be used for wall and collision detection.

For the coding portion, the movement is easy, it is going to be based on sensory inputs and activate two DC motors to move the Roomba forward, left, right or backwards depending on what the analog sensors input. So this can be done with a basic set of if statements using the sensors analog data and the input signals.

But, we need it to not clean where it has previously traveled. Since this is a fixed room, I had an idea of using a grid system where each grid was the size of the Roomba and as it moved from grid to grid it placed markers on the grid of where it has previously traveled, so that it knows not to go there in the future. This seems to me that it would work, but I was just wanted to see if more experienced coders and users of Arduino agreed. If so, could you please give me some help on how to get the grid started and the best way to track the location of the Roomba?


It might not be that eyasy. Supposed You get none cleaned areas surrounded by swept areas. How will You pick them? How to decide when to start all over? Some kind of hunting not swept areas would be needed.