Here is the program for the robot :-)
Since it just uses its encoders to do the moving it will drift over time as you can see in the video...
Cred' for almost fooling me hereby granted! :D
I was just about to mail your price, when I saw that you have actually not met the challenge!!!! HAHAAAAA! Look who is laughing now!
Disqualified! Neeeh! Next!
Only lower right leg of the chair is actually circled, on no other legs have you crossed your own path. You only drive in and out and around the whole chair, not around each leg as the orange dotted line and rules clearly states!!
If you pulled a string after your robot, afterwards only one leg would have a string around it, 3 others you have just laid the string in & out, but not around!
The challenge is totally bananas, I declair it to be canceled, void! (But thanks for the laugh :)
Part II is the real one: http://letsmakerobots.com/node/165
OMG you're right! What a lousy robot that is! :-)... It did almost fool you all though so that deserves some street credit! :-D
...and I have already scrapped the robot!
Even though everything did not go quite as planned, I must say that this robot really did meet the challenge at http://letsmakerobots.com/node/160
Very well done!!
Please forward me your adress so I can send you the prize!
Wow, that was a fast contest entry!
Because of the tiles on the floor, i got an idea of using a wavefront algorithm to solve this. This means you could take any shape of chair, or table, and do the required route. The robot would first scan a certain area to find four "bad" tiles and parse that as a chair or table.
If you're not familiar with the wavefront algorithm, societyofrobots have a great tutorial:
You are right Fredrik, the wavefront algorithm would be well suited if you could map the floor tiles precisely to the robot's world tiles (which would not be an easy job to get right - due to drifting of the encoders). The algorithm is nice though but personally I'm not a fan of the whole tile-based manouvering of the robot - it doesn't look natural. I have previously worked with fuzzy logic for obstacle avoidance and particle filtering with landmark recognition for estimating robot position and that worked quite nicely. When I get a decent robot platform up and running I think I will look more into those algorithms.
Now I'm not saying that this robot is a pretty maiden that looks natural or anything - but it does meet the challenge :-)