My first Robot -or- How to give a stupid 20€ cleaning robot a nerd-soul
The base-hardware is known as Cleanstar 2030-Robostar, Supportplus SP-ROBO-01 or
TCM Reinungsroboter and is available for next to nothing on eBay. And it's very
stupid: If you turn it
on it beeps a melody and starts cleaning, using a very simple amebic algorithm
(if you hit something, turn in a random direction and start over). Plus it has
no docking station, you have to plug it in yourself.
The current version of my robot is able to distiquish doors from the rest
of the room (thanks to the laser and the camera), makes an educated guess
what the current position and room is, and where to find the docking station.
In 7/10 tries (working on that) the robot is able to drive into the docking
station (which has a infrared beacon) to recharge. Thanks to a completely
rewritten navigation docking now works 99% of the time.
Some Fotos / Videos
drFloyd on my workdesk, ready to receive new updates.
Trying out better collision avoidance and navigation routines (it knew those are
not doors, niiice)
drFloyd about to dock in it's (improvised) dockingstation.
I don't know how it got stuck so firmly, but it was
anxiously beeping (and assert()ing) for help.
This is how it's known world looks like, circa (the known-world-radius
currently equals to the transmission radius of the camera)
The new navigation. Robust as hell, the spinning is only to see if the computed world
is still in balance with the real world.
This is what it's POV looks like (with debugging-overlay). Left: computer vision, right: raw video stream.
What did i change?
Replaced the Atmel Mega8-CPU with a Mega168 one and wrote a new firmware
Added a Bluesmirf module for bluetooth communication with the controlling
PC / Laptop
Added line laser for collision detection and distance estimation: Camera and Laser are offset by about 2°,
objects in the path the bot can collide with have a line on them, the line is moving upward the
nearer the objects is
Added a wifi-camera for homebrewn & opencv based computer vision
Completely rewired the electronics: The A/D board had a fatal design error, the ultrasonic sensors
never had a chance to function
Built a new charching circuit: Before you had to completely turn off the bot to let it charge
Better power management: made it possible that parts of the electronics can be turned off by the CPU. Now the
average power consumption in standby-mode is about 14mA, which enables the bot to stand by for days
until a controlling bluetooth-connection is initiated
Replaced my previous firmware with freeRtos because i needed a higher concurrency
and i HATE fighting with interrupts
What's left to do? (This is work in progress)
Make it talk (read: play .wavs from flashrom)
Improve the built-in vacuum-cleaner
Add infrared so it can drive by night
Give him a second servo-controlled camera that recognizes faces plus a 30kv voltage zapper (okay, just kidding)