Electronic – arduino – Strategies for mapping an area perimeter with a mobile robot

arduinolinuxmobileroboticssoftware

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?

Best Answer

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.