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

Kinect: how do I convert depth image to pointcloud?

asked 2012-02-19 03:33:27 -0600

Kevin gravatar image

updated 2016-10-24 09:04:01 -0600

ngrennan gravatar image

I want to send kinect data wirelessly to a desktop computer. Point clouds consume a lot of bandwidth, so I want to send the depth images instead. But on my desktop computer, what is the easiest way to convert those depth images into point clouds? Do I have to make my own node and just grab the correct point cloud functions out of the kinect driver or has someone already done that?

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted

answered 2012-04-15 02:26:31 -0600

Kevin gravatar image

There also now appears to be a new package depth_image_proc in the image_pipeline stack for Fuerte that will take a Kinect uint16 image and transforms it into a point cloud.

edit flag offensive delete link more


are there any tutorials on that package? I have been trying so hard to find a way to use that package on my rosbag data, but still got no luck. Really frustrated

huangzonghao gravatar image huangzonghao  ( 2018-07-27 22:25:30 -0600 )edit

answered 2012-02-19 05:10:36 -0600

updated 2012-02-19 05:10:55 -0600

The openni_kinect driver provides that functionality. It's broken up in nodelets - some are responsible for publishing the images, and some for processing them and assembling point clouds.

Normally, you start one nodelet manager, and all nodelets together on the same machine. In your use case, you would have to start two nodelet managers - one on for each machine on the end of the WiFi connection.

I had set up some launch files for a similar purpose a while back. You can find them here:

The openni_driver file is responsible for publishsing the image data, and the opneni_proc file is responsible for assembling it to 3D. They were set up for a single nodelet manager, so you would have to modify that.

edit flag offensive delete link more



I found the documentation for the nodelets but haven't had time yet to try them with your launch files ... thanks!

Kevin gravatar image Kevin  ( 2012-02-26 01:22:53 -0600 )edit

Unfortunately the URL is broken

lisa gravatar image lisa  ( 2016-08-16 04:35:54 -0600 )edit

answered 2012-02-19 06:34:50 -0600

Mac gravatar image

The openni_record_player nodelet (which is in the semanticmodel package) does exactly this. It was developed to allow easy recording of Kinect data to disk, but should adapt to your use case pretty easily.

edit flag offensive delete link more

Question Tools



Asked: 2012-02-19 03:33:27 -0600

Seen: 8,756 times

Last updated: Apr 15 '12