GåågleBot (pronounced /google-bot/) is a "home crawler" consisting of a vacuum roomba with an on board webserver and camera.
While the vacuum goes about its business, it extracts text from the images it takes.
The text is later put in a database on the roomba and searchable through a web interface. To try it out, click here.
The name Gåågle Bot is a play on the words gå and google bot.
The Swedish word for go is gå. Googlebot, is the name of Google's web indexer. If you don't know what Google is, you are either lying or out of luck.
Hence Gåågle Bot is a "going" indexer, indexing the real world around us while vacuuming your home at
the same time!
Can't find that library book that is due tomorrow? Relax, just gåågle it!
With GåågleEye you can remote control the roomba in realtime using AJAX and using a small onboard camera.
Perfect if you feel like vacuuming while you're at the coffee shop, or for checking what your wife is up while you are at work , or if you forgot to close the back door, or check upon the baby sitter.
I needed this when our latest son was born (he doesn't look at all like me). Jokes aside, try the showcase out.
Making of the Gååglebot
The gååglebot is built out of
a gumstix (a very small Linux computer) with a wifi (802.11b) card
OCR software is hard to write, the level of state of the art OCR software simply can't match the OCR capabilities of a carbon based brain.
Most of the time, no text could actually be detected since there is too much noise (blurry image, backgrounds, skew/rotation issues etc).
The showcase application is done with photos taken under optimal conditions. I've not used my brain's OCR module for any text in the showcase database.
Unlike many other roomba hacks, the gååglebot keeps the roomba's vacuum capabilities.
No dongle sitting on top, a prime target for when the roomba decides to turn under the couch.
Everything is encapsulated as can be seen in the videos. It's kept at a fully functional vacuumable roomba.
To mount the camera I drilled a hole about 1 cm in diameter in the front bumper. See image below.
To communicate with the roomba (start, stop, move) I used the roomba's serial interface.
I soldered wires between GND, PWR, RXD, and TXD (on the back of the MINI-DIN connector) and the homebrewn circuit seen in the first image on the top of this page.
The roomba's battery powered, the gumstix, camera and everything else.
I used 2 different linear voltage regulators to get 5v to the gumstix and 3.3v to the camera.
If you can afford it, use something like this
(pin compatible with a 7805) instead of a linear regulator, as the gumstix and wifi draws a lot of current and
a linear regulator is doomed to become very very hot. That's why you see the heatsink (taken from a dead VCR)
in one of the first images up on top on this page, and an early heatsink-prototype (pliers).
The AJAX controller of the Gååglebot is pretty much the same as for it's sibling the AJAX Lego Robot.
See the source code for details.
Feel free to download the sources under whatever license you please and hack your own gååglebot!
The code is written in Java. The web application is intended to run on the gumstix. The OCR module was run on a laptop but can be run on the roomba if you've a fast enough chip.
There are quite some quirks in the code working with Java on such a small device. If I were to rewrite everything I would use good old fashion C, or maybe the time has come to run it
on Google Android. Gumstix and Java are the not the best of friends. If you don't believe me, do some quick searches on the gumstix mailing list on "rxtx" or "java segmentation fault", etc. It took me a whole deal of trouble to get a simple "hello world" serial program running, fiddling with compiling 'em jamvm, classpath, rxtx. It took me more time getting java setup than writing the bot code itself.
If you are looking for Gumstix RXTX binaries, look no further.