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
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
You can use the tiles on the You can use the tiles on the floor as a grid that communicates to the robot where it can go and where it can. Considering how the modern furniture doesn’t respect the symmetry we’re used to, maybe there should be some sort of algorithm to cover unusual objects.