Efficiency of robotic vacuums at home

From Simulace.info
Revision as of 00:28, 19 January 2017 by Xveds (talk | contribs) (Cleaner with the random algorithm)
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 original 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

Software

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.

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. 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 as well as obstacles.

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.

Cleaner with the 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 the 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. It is called Boid created by Craig Reynolds in 1986. 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 pixel 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 pixels in case an obstacle is 1 px thick (the other pixel is possible to have because of bounce effect (see below)).

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 (the same as the random cleaner).

Model

gh

Results

gh

Conclusion

gh

Code

gh