Robot Mapping, Anybody in here doing this?

Hey All,
I'm a newb to this group, been lurking for a few days. I've always been interested in building some sort of autonomous, task-solving machine,
perhaps a robot :) I'm currently taking a class on using microcontrollers which has been pretty informative, so I think I will have the skills to start building this summer.
Anyway, I'm already brainstorming about what this machine would do and how it would work. My tentative idea is a 2 motor, 3 wheel machine (where one wheel is just a caster, so that the machine can turn in place). This machine would be able to roam around an environment, make a mental map of it, find waypoints, and intelligently plan paths through environments it has already mapped. At a later stage in the design it might have onboard Wi-Fi in order to be able to store maps on a server when it doesn't need them.
The tricky business here will be building that map. I've been googling a bunch and trying to get some information on the current state of the art, but it seems a lot of research in this area is being done by PHd's at universities or by R&D labs at corporations, which puts their accomplishments just out of my grasp.
So my question is, are there people in this group who are working on robot mapping? I would like to find people to share information with. I've been thinking about how the mapping system would work, but I think maybe it would help to model it in software first. Has anybody here done that kind of stuff?
Thanks, Mark
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Mark Haase wrote:

Welcome to the group!

Don't plan on having the luxury of a 10 gig harddrive to drop your data into ... it'll make your designs more realistic, as you'll be designing for a space-limited EEPROM :)

I'm toying with the notion of doing a bit of mapping. The only thing thats holding me back is that I have absolutely NO money to spend on it, and it would require things that I don't have.
I believe you could pull it off with some piezoelectric compasses (So you can at least get a general idea of bearing) and motors with quadrature encoders (so you can at least get a general idea of distance). Of course, you can make a map...but theres no assurances that your bot will ever know exactly where he is ON that map...I think thats where the big difficulties come in :). Its an interesting problem...and one I wish I had the (admittedly small) amount of money it would take to start tackling it lol.
Good luck on it though!

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I hadn't thought of compasses, although that is a good idea. I was thinking about using this basic system:
Use a range finder device to sample how far away the nearest obstacle is, and plot this point on a map (basically a very large bitmap). Then turn or move forward slightly and take another reading, using encoders on the motors to measure the distance. If the new reading is close to the first reading (within some defined threshold), then we plot the new point, and stroke a line between the previous point and the new point. If the 2nd reading is very different from the first, we assume that the points are not connected. Repeat ad infinitum.
(Note that when I stroke the line between two points, I would make it a significant thickness so that pathfinding algorithms using this map wouldn't have to worry about the robot running into walls when it got too close.)
Now I see the problem that the mechanical error of the quadrature encoders would add up over time and the robot would lose track of where it was...so at some periodic interval it would need to survey the environment around itself and perform some sort of comparison where it reconciles what it sees with what's in memory, and the offset of those two images indicates the offset between where it thinks it is and where it actually is...If there was no close match between the new measurements and the old memory, then the robot would assume that the environment had changed. It would wait a second, take a second reading (in case the change was temporary, ie. something walking by) and then try once again to reconcile. If no reconciliation can be made at this point, it assumes that the environment has semi-permanently changed, and it updates its map accordingly.
Naturally, this will be very hard. Especially in 20k of memory..Anyhoo, I'm still fiddling with ideas, but I would appreciate comments, Alex and Christopher.
thanks.
--
|\/| /| |2 |<
mehaase(at)sas(dot)upenn(dot)edu
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: I'm still fiddling with ideas, but I would appreciate comments, Alex and : Christopher.
Well, what I HAVE had time to do was lots of reading. What you are really looking for is called Robot Localization. The Rossum Project on Sourceforge http://rossum.sourceforge.net/ has some open code for this useing a single sensor, written in Java. No disrespect to the author, but I can't follow his code. I'm not big on OO either, so it might be me.
Most of the map-mapping projects use a small mobile robot that talks to a PC over a radio modem. My own design is using a hacked internet applicance talking to an Atmel AVR over a serial link. It's a Virgin Webplayer, 200mhz Pentium, running linux, takes 5v in, and 2 serial ports running at line-level, so the MAX232 isn't needed. Gotta love it.
One good book is Map-Building and Exploration Strategies of a Simple Sonar-Equipped Robot by David Lee, and the price on Robotbooks.com is down to $26, a far cry from the $80 it used to be, Ah -- it's paperback now. I bought a used copy of the hardcover, and it's heavy on math but very interesting.
A google search on Robot Localization has LOTS of hits. I would look for the ones on Rhino and Minerva, two robots that built maps of meuseum's, then gave tours.
MIT has a book that is a collection of papers that is also very good. I'll have to look up the name tonight when I get home.
Most of this isn't very practical for getting down and building -- but it might give you an idea of what to do, what NOT to do, and maybe an idea for a different project. :-)
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: MIT has a book that is a collection of papers that is also very good. I'll : have to look up the name tonight when I get home.
Artificial Intelligence and Mobile Robots -- Edited by David Kortenkamp, R. Peter Bonasso, & Robin Murphy
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: Hey All,
: So my question is, are there people in this group who are working on : robot mapping? I would like to find people to share information with. : I've been thinking about how the mapping system would work, but I think : maybe it would help to model it in software first. Has anybody here done : that kind of stuff?
Sort-of. In the sense that I built my base and had my PID working ready to go almost a year ago -- then had a second kid and haven't had time since. :-)
Things are starting to calm down and I hope to be looking at it again soon.
--
==========================================================
Chris Candreva -- snipped-for-privacy@westnet.com -- (914) 967-7816
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.