I've made a wheeled robot which can communicate wirelessly with my computer. I used Arduino boards, XBee radio modules and the Wiring/Processing languages. The robot also has an ultrasonic rangefinder on the front.
Now I'm in 'What next?' mode.
I thought it would be cool if the robot could roam and communicate distance measurements back to Processing, which could then draw a map of the 2d floor space that the Robot finds itself in. Thinking this through, though, the major obstacle is determining where the robot is and which direction it's facing when it takes a range measurement.
It seems that the direction problem is easy to solve with something like this
compass module. That leaves the problem of location.
I suppose you could take a mean measurement of the robots speed along with the direction travelled and take everything relative to the starting point. However, it seems to me that, with different floor surfaces and general variation, the robot's calculations will get progressively less accurate over time, and the map might just tend towards mush.
How would you solve this problem in an ideal world? A set of beacons perhaps? How would you solve it on my budget, which precludes anything over £100/$150?
The jargon for working out your robot's location is "localization". The jargon for working out your robot's location and building a map at the same time is "simultaneous localisation and mapping", or SLAM for short.
There's some pretty good information in this book at around page 182, and around page 88.
posted by Mike1024 at 7:08 AM on January 21