Assembling, Programming and Using Robots.


Learn Touch Typing

Vacuum Cleaner.

Let's build a robotic vacuum cleaner, a ground up project implementing something as good as (or better than) models available on the market. That's it. Simple?

VC robots come in different shapes, from a sticky "pets' ball" implementing simple "bump and run" algorithm:

... to top line models capable of cleaning the carpet around a glass of vine, without touching the glass (or so they say).

Bump-and-Run Algorithm.

We are going to build something more or less intelligent, so our robot will need some software. And to test it, we are going to build a computer model, not a big deal in that particular case, but definitely a time saver, when it comes to "real" robotics.

For modeling purposes, we are going to use Java Script. This language is simple and elegant, it is very popular (which means it looks good in your resume), and it is supported by Web browsers, allowing us to put the resulting model online.

The model contains a 3 bedroom / no washroom appartment with some furniture in it. Our robot moves, leaving a clean green floor behind.

As Java Script allows it, I have created a panel on the left, where you can edit the code, in case you want to improve the alrorithm (wjich is by all means far from being perfect).

It is also possible to copy the entire page to your local computer and perform improvements there, using your favourite editor. Please respect my copyright, that's all I am asking.

As for the algorithm itself, it is something slightly more advanced than "bump-and-run" strategy, the VC tries to follow walls and to move in spirals.

Mapping Obstacles.

The next step is to make our VC aware of where it is and what is the status of cleaning job. The task is... well... FORMIDABLE. Let me outline few problems.

First of all, how do we get VC's exact location? GPS does not, as a general rule, work indoors. Inertial sensors are not precise enough - remember, to get between stool's legs we need +/- 1cm, and this is after an hour of navigation!

Some vendors use stickers placed on walls, but this is simply not nice. Some use indoors beacons or projection grid (projecting the coordinate grid on the cealing).

As an extra complication, the map of a room is, or at least, can change: you moved the chair, or your child kicked the VC, changing its coordinates.

Finally, VC's wheels can slip, so if you count the distance by wheel spinning, you will get error.

Anyway, the next code vidget attempts to mark obstacles as the VC bumps in them. In future, we can avoid such places before we bump, or even calculate shortest way around obstacles towards the next place that needs cleaning.

The idea is to put markers on the map where our sensors (one on the front part and two at each side) hit the obstacle.

... to be continued...


Feel free to support me :)

Why donate?

There are over seven billions of you, my dear readers. If each of you makes a hefty donation, I will seamlessly take over the world, which I consider my first step to taking over the Galaxy. Act now!

Prove you are human:

Money: Click here to see options

(C), all rights reserved

Please read the disclaimer