Vacuum Cleaner

GOAL

The goal of this exercise is to implement the logic of a navigation algorithm for an autonomous vacuum. The main objective will be to cover the largest area of ​​a house using the programmed algorithm.

Vacuum init
Gallery

You can find all the information about this exercise in JdeRobot Academy

THEORY

Implementation of navigation algorithms for an autonomous vacuum is the basic requirement for this exercise. The main objective is to cover the largest area of a house. First, let us understand what is Coverage Algorithms.

Coverage Algorithms: Coverage Path Planning is an important area of research in Path Planning for robotics, which involves finding a path that passes through every reachable position in its environment. In this exercise, We are using a very basic coverage algorithm called Random Exploration.

MY IMPLEMENTATION

For the implementation i have used differents states in order to cover the largest uncleaned area and avoid repetitions. Modes are selected by a state machine, it use an increasing circle pattern (spiral) and a bump and go algorithm.

spiral and bump. Image proccesing.
implementations

THE WAY TO THE SOLUTION

Searching the most efficient algorithm first I tried a simple bump and go pattern using the bumper sensor and a random angular velocity but it was not an optimal solution because, despite not being unclosed, it did not cover much surface, only lines.

After it, i tried to make the vacuum cleaner follow a certain pattern of turns to cover the house with parallel lines, but it was impossible due to the pool quality of the motors.

Using a spiral pattern i solve the problem of the bump and yo, wich only covers in a straight line. The problem with the spiral algorith is that it always cleanning in the same place. To fix it, I have combined both with the aim of move around the house with bump and go and clean more surface with spiral pattern.

Youtube link