Efficiency of robotic vacuums at home

From Simulace.info
Revision as of 10:01, 19 January 2017 by Xveds (talk | contribs) (Simulation)
Jump to: navigation, search

The objective of this research is to compare the efficiency of two types of robotic vacuum cleaners. The first type is a random algorithm of cleaning. The second type is a cleaner with an intelligent algorithm. The robotic vacuum cleaners are a part of IoT (Internet of Things) world which is gaining its popularity nowadays. The purpose of a robotic vacuum cleaner is being a servant for a human being and save his / her time by cleaning instead of him/her.

Problem definition

The first problem which has to be solved is to convert an algorithm of a real intelligent cleaner to the simulation environment. The intelligent cleaners use plenty of sensors gathering information about the real world. It is virtually impossible to convert it as it exactly is as companies have their algorithms under a protection of disclosure and many programmers work on it under constant development. Nonetheless, I tried to simplify it and emulate it by the very former principle.

The second problem is to compare the intelligent algorithm with an algorithm of random cleaner's movement in a home environment according to its efficiency. Efficiency is measured by an amount of dust at home (in a room) and in what time is it done.

Method

For purpose of this research is used NetLogo as a simulation tool. NetLogo has several advantages for modelling robot's behaviour in the environment. One of the biggest advantages is its visualisation capability and its interactive approach. Therefore, I chose it as the most appropriate tool for the simulation.

Model

Environment (the room)

For realistic purposes, the environment is a room, more likely a living room, with obstacles as furniture occurring in an ordinary household. I laid out the obstacles in my best intention as I think the ordinary living room looks like. There is a table with chairs, couch, television and kitchen with a bar. The room has also walls at each side where cleaner cannot go through.

All obstacle patches are in a brown colour. A floor is white covered by grey dust. The floor is seen only after vacuuming the dust.

VacuumCleaner-environment.png

Cleaner with random algorithm

The simulation starts with a random position of the cleaner with a random heading direction. If the cleaner hits the wall or an obstacle the cleaner bounces back in a random direction.

Cleaner with intelligent algorithm

Years ago, there was a thought that an insect is not smart, they just follow a simple set of rules. It set off a new wave of artificial intelligence and robotic vacuum cleaners are based on that as well. [1] It is called Boid created by Craig Reynolds in 1986. [2] Examples of that are even in NetLogo models library as Flocking or Ants. Although the most advanced cleaners have very complex algorithm nowadays, the Boid inspiration is sufficient in our case.

According to that, the cleaner is attracted by dust (grey patches) around him which is an equivalent to sensors knowing where is it located and what has been cleaned yet. Although the cleaner does not see the dust in the whole room because of obstacles - if there is only one left patch of dust right behind an obstacle and cleaner's visibility reaches the dust, the cleaner gets stuck. Therefore the visibility of the dust has to be limited to 3 patches in case an obstacle is 1 patch thick (the other patch is possible to have because of bounce effect).

If there is no dust around, the cleaner heads in a random direction. By this approach, it gets fastest to another area where possible dust is left. The same is used for the bounce effect (as the random cleaner).

Simulation

Buttons in the simulation are Setup and Start. Setup prepares the environment (room including furniture, dust and the cleaner). Start sets off the simulation by movement of the cleaner until the whole room is cleaned from dust.

VacuumCleaner-buttons.png

Unfortunately, the comparison between the two cleaners has to be separated in two simulations because of its dust visualisation. Only one cleaner can clean the room, otherwise, it would be misleading. It can be switched by a chooser.

VacuumCleaner-chooser.png

Statistics are represented by a percentage and absolute amount of dust and cleaned dust. The plot shows time (in ticks/moves of the cleaner) and percentage of cleaned dust.

VacuumCleaner-statistics.png

Results

gh

Conclusion

gh

Code

gh