Improving the Intelligence of a Roomba

Improving a Roomba

Desining and programming a more inteligent Roomba using Machine learning.

Project details

Project type:
ECTS:
Time:
Client:
Nature:
Keywords:

 

 

Elective
3
2018/2019
TU Delft
Group Project
A* pathfinding, AI, Data, Genetic algorithm, Programming & Traveling Salesman Problem

Project type:
ECTS:
Time:
Client:
Nature:
Keywords:

Elective
3
2018/2019
TU Delft
Group Project
A* pathfinding, AI, Data, Genetic algorithm, Programming & Traveling Salesman Problem

Summary

The goal of this elective was to analyse the functionality and intelligence of a basic Roomba and to then redesign and improve this. To do so we modelled the behaviour inside of MATLAB. We then used this to create simulation inside of matlab to generated datasets of the Roomba. They consisted of data of the location of the roomba, and the amount of dirt it collected on each location. After collecting the data we split up. My groupmenbers set out to use these data sets as input for machine learning to generate maps of a room with hotspots of dirt. I then used their maps to generate an effictient route for the roomba to take inbetween each dirt hotspot. This allowed to roomba to more efficiently clean the room.

Understanding the Roomba

At the beginning of the project the goal was to understand the roomba and create a simulation of the roomba inside of matlab. To do so we learned the basic of simulink, simscape and control logic. We also played around and tried different contorl logics for the roomba. Next to simulation we also trested how the actual roomba collectects data. Here we did an expirement gathering the position and dirt data from the Roomba. Using the simulations we created data sets of the roomba running in the room and colecting data on the location of the room and the amount of dirt on each location

Optimizing

Having generated the data we set out to optimize the Roomba. To do so we wanted to create a map of how the room looks, what hotspots of the dirt are and how they changed throughout the week. With that map, we wanted to create an optimal route for the Roomba to run sometimes to only clean the hotspots of dirt and do a full clear of the room once a week. Making the Roomba overall more efficient and effective. 
To do so we split up the work, my group mates set out to create the maps using classification learning, fitting neural networks and time series neural networks. I set out to generate the optimal path for the Roomba to take through a certain room.

A* search algorithm

As a first step towards creating an optimal path through a room was to determine the quickest path between each spot. To do so I implementen an A* search alogrithm in MATLAB. Then I let it run and determine the shortest path inbetween each hotspot of dirt.

Genetic Algorithm

Having generated data on the distance between each point, the optimal order of points to visit needed to be determined, the travelling salesman problem. To attack this problem I programmed a genetic algorithm inside of MATLAB and let it run to generate the optimal path between all the points.