# Strategies for mapping an area perimeter with a mobile robot

I'd like to build a bot that when placed in an area would have the ability to find the perimeter of the area and map the obstacles present. Later it should be able to navigate to different parts of the area on demand (e.g. navigate to the NW corner or continually monitor the entire area or return to a specific point in the area). What hardware/software would be necessary to make this happen? I've considered using IR to detect the obstacles & wall but it seems like the resolution may be a bit low for these purposes (could IR recognize an area is just large enough for the bot to fit into?). What prior work is available on these subjects, what sensors might I consider to get started?

To successfully accomplish this, you probably want the following:

• Localization Sensors - If you are on a smooth surface, wheel odometry should be enough. The rougher the area that you are operating in, the more sensors you would need. Other common sensors for localization: Digital Compass, IMU, GPS, Vision Tracking (Fiducial Recognition), Stargazer (Indoors). You can also use LIDAR sensors data to do localization.

• Obstacle Detection - As Kortuk says, probably a LIDAR. Possibly a Kinect, since that's the new hotness. A decent LIDAR will probably start around 1000 USD for a Hokuyo, and go up from there. You can then put this data into a map.

From a software point of view, there are several options, but the one that I've had good luck with is ROS. It has a lot of the software features such as localization, mapping, LIDAR drivers.

As far as the actual path, just spiraling out from a central point would work, taking into account obstacles and whatnot.

• well written and thorough! – Kortuk Nov 17 '10 at 22:13
• I can give you more information, code, and sensor recommendations if you are interested. Budget is a huge concern in mobile robotics. I've been doing hobby robotics for the past 10 years, so if you need additional clarification, don't hesitate to ask. – mjcarroll Nov 17 '10 at 22:17
• Thanks, this is great stuff! I am working on a budget - LIDAR looks like exactly what I need but $1000 is a bit too expensive. Are there cheaper LIDAR options? I'm working with a Netduino so I was hoping to find Arduino compatible shields to reuse. I'd happily shell out$150 for a Kinect to rip apart but I think it'll need more processing power than the Netduino to analyze the data. What I want to do is very Roomba-ish, maybe I should look into that platform. – James Cadd Nov 17 '10 at 22:53
• I thought that the team at my school had a small one for <100. I can check into it. – Kortuk Nov 17 '10 at 23:01
• James, if you are using something the size of the Arudino, processing power becomes a limitation. I don't know if you are going to be able to build an entire map with just the Arduino platform. If this is something that you are considering reusing, it may be worth it to step up to a netbook. The higher-end sensors are typically USB. We had a Roomba, Netbook, and LIDAR working together with ROS to do SLAM (Simultaneous Localization and Mapping) and navigation. – mjcarroll Nov 18 '10 at 6:05

Excluding doing computer vision with a camera, which NI has some hardware to help you with, for a cost. I would suggest you look into using a LIDAR. These are not overly expensive by my recollection.

One of the robots a team did at my school last semester for an autonomous robot competition used a LIDAR mounted on a servo that it would rotate constantly to keep track of obstacle locations.

• Obligatory topical reference hackaday.com/2010/11/17/… – Toby Jaffey Nov 17 '10 at 21:47
• I think LIDAR in robotics/metrology is synonymous with SICK – Nick T Nov 17 '10 at 21:49
• It seems that the one they bought was cheap, I remember it being around 40$. They had to rotate it as it had a very small angle. – Kortuk Nov 17 '10 at 21:52 • Kortuk - A$40 LIDAR would be awesome, a small field of view is not a problem. Could you let me know if you find out what product your school team used? Anything would be better than IR. – James Cadd Nov 28 '10 at 6:28
• @JamesCadd, It seems the reason they got it so cheap is that they replaced it with a different sensor. They instead used a ping sensor. It has a narrow acceptance angle and they were able to rotate it to keep an image of the field. parallax.com/tabid/768/ProductID/92/Default.aspx – Kortuk Nov 28 '10 at 18:58

Use SLAM and the code from here as a start. Use a camera and a high power DSP like the blackfin. or dedicate a PC (depending on your size, costs, ability)

http://www.robots.ox.ac.uk/~gk/PTAM/ http://www.robots.ox.ac.uk/~bob/research/research_ptamm.html

As far as the Kinect goes, check out the PrimeSense devkit (the makers of the Kinect)

The manufacturer released the Kinect's (and DevKit) Windows and Unix drivers here: http://www.openni.org/