Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi Daniel,

If you haven't seen it already this is quite a good place to start with the type of mapping you're talking about: http://www.hessmer.org/blog/2011/04/10/2d-slam-with-ros-and-kinect/. If sensor noise is a problem you could try filtering the point cloud before you convert it to a laser scan and an IMU probably would help a bit with invariance to sensor motion, possibly with something like an extended Kalman filter.

As Stefan says, another approach would be to use RGBDSLAM, which is what I have been trying to use. This uses computer vision rather than fake laser scan matches and as a result of the extra data available for the matching and some clever optimisation techniques, it gives an excellent 3D representation of the environment in the form of a point cloud. To create a map from this, follow the instructions for using Octomap with it. This gives an efficient 3D map, and also a 2D map as per your requirements. By default the 2D map pancakes features at all heights so if you just need a 2D slice, follow my answer to this question: http://answers.ros.org/question/12995/2d-map-from-octomap

Also, as Stefan mentions, RGBDSLAM is by necessity quite resource intensive. Some ways to speed it up are described in the answer to this question: http://answers.ros.org/question/33310/which-package-is-best-for-slam-and-kinect

Hope that helps!