ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Simplest method of 3D mapping a room with kinect sensor

asked 2013-02-18 02:03:38 -0600

p.wong gravatar image

updated 2014-01-28 17:15:17 -0600

ngrennan gravatar image

Hello everyone, I am new to the ROS community.

I am a student at University of California, Santa Cruz and currrently working on a project which requires 3D mapping of the room. In short, my project is to create a robot which rides along a rail on the ceiling with an arm an a Kinect mounted on it. My subteam and I are responsible for mapping the room with the Kinect and controlling the arm and the cart on the ceiling.

Before joining this project, my team and I have no prior experience with ROS or computer vision. After many hours of tutorials, reading and experimenting with the point cloud library, we managed to learn how the sensor work.

Our next goal is to be able to reconstruct a 3D map of a room. After some research, there are many methods of doing this, such as, RGBDSLAM, Octomap, and OpenCV libraries. I was hoping the ROS community can guide us to picking the simplest way we can map a room with a Kinect, given we can have multiple Kinects and can access the entire room. The project is a proof of concept and we do no require much optimization for computational speed.

My first attempt at this would be Octomap, but having some trouble compiling. If anyone can lend us any guidance, that would greatly appreciated.

Thank you.

edit retag flag offensive close merge delete



In my POV there isn't a one package in ROS that will just work out of the box. OctoMap, last I checked, was about the representation of the space and not 3D reconstruction. The best I have seen working though were large scale KinFu from PCL and

dejanpan gravatar image dejanpan  ( 2013-02-18 02:15:30 -0600 )edit

Hi there, did you managed to create the map successfully. I am having Robotino and a kinect sensor, ubuntu 14.4 and ROS Indigo version. In my robot there is no laser scanner. Kinect publishes pointclou2 version data and Distance sensors publishesh pointcloud data. Also odeometry data is available...

rasoo gravatar image rasoo  ( 2016-08-17 16:50:15 -0600 )edit

But I am not able to create a map and having trouble. Can anyone please suggest me how can I do this. Thanks in advance.

rasoo gravatar image rasoo  ( 2016-08-17 16:51:20 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2013-02-18 04:50:50 -0600

People have already suggested rgbdslam, so I will offer my (also obviously biased) suggestion - check out ccny_rgbd. It provides tools for processing, visual odometry and mapping form RGB-D data. I just added support to export in serveral formats, including colored octomaps (see the pictures).

There are installation and usage instructions in the wiki pages.

edit flag offensive delete link more


Thank you everyone for the replies, I really appreciate it. I managed to get rgbdslam running, but it is giving me issues. The 3d map generated looked very low in resolution, and I wasn't able to get a 360 of the room. I will try out ccny_rgbd and rgbd6dslam to see if I get better results.

p.wong gravatar image p.wong  ( 2013-02-19 20:34:02 -0600 )edit

Thank you everyone for the replies, I really appreciate it. I managed to get rgbdslam running, but it is giving me issues. The 3d map generated looked very low in resolution, and I wasn't able to get the 360 room.

p.wong gravatar image p.wong  ( 2013-02-19 20:34:08 -0600 )edit

answered 2013-02-18 02:12:42 -0600

My (obviously biased) suggestion would be to use rgbdslam. In the latest version it can be used very easily to create an octomap for you. Since you have no experience in ROS, the GUI will greatly help you. If you use Ubuntu 11.10 or 12.04, you can just follow the installation walkthrough on the rgbdslam wiki page for ROS+RGBDSLAM+OctoMap. As described there, the octomap library can be installed from binary packages and doesn't have to be compiled (there are no rgbdslam binaries though).

edit flag offensive delete link more

answered 2013-02-18 03:11:00 -0600

stfn gravatar image

updated 2013-02-18 05:09:48 -0600

I just tried RGBDSlam a few weeks ago as a handheld scanner with very bad results. The error drift is increasing dramatically which will result in very badly aligned scan matches. Another problem is, that this algo uses rgb information only for scan matching, so if your room doesn't provide enough features, the internal scan matcher (ICP I guess) will not work properly. Also there is a memory cap which will crash the program without warning. The kinfu largscale from pcl (you need to checkout pcl unstable and compile from source) worked much better, but requires at least 2GB GPU-Ram

(unbiased suggestion)

edit flag offensive delete link more


There is no default internal scan matcher, so that probably explains your problems. RGBSLAM needs features. One can enable gicp matching with a parameter, but I haven't tested it for a long time. There is no memory cap, except the one of your system (I can fill my 16GB without crashing).

Felix Endres gravatar image Felix Endres  ( 2013-02-19 02:43:07 -0600 )edit

Of course there is some kind of default scan matcher: RANSAC/ICP. How else would you register the current scan and update the camera pose. Anyway, I'm just saying the error drift was big in our scan, despite the online graph optimization.

stfn gravatar image stfn  ( 2013-02-19 03:41:57 -0600 )edit

Either the environment didn't provide good feature points, or the odometry calculated by the acc-sensor is bad resp. not used, or the algorithm just doesn't work that accurate.

stfn gravatar image stfn  ( 2013-02-19 03:43:49 -0600 )edit

What I meant is that there is (per default) no scan matcher apart from the one using the feature correspondences. So if you don't have features, it won't work. There is also no use of any odometry.

Felix Endres gravatar image Felix Endres  ( 2013-02-19 05:49:30 -0600 )edit

Question Tools

1 follower


Asked: 2013-02-18 02:03:38 -0600

Seen: 13,655 times

Last updated: Feb 18 '13