ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Connecting two kinects with openni_camera will show only the first two topics that are read

asked 2011-05-19 20:07:15 -0500

jocaps gravatar image

updated 2016-10-24 09:03:12 -0500

ngrennan gravatar image


I am having a little bit of a trouble trying to connect two kinect using openni and viewing them with rviz. I have this impression that this could be driver problem. Maybe someone more experienced could be kind enough to advise me. I have the following node connections: (oops my karma is not big enough to upload my rxgraph screenshot, I'll do it as soon as my karma reaches 20).

Basically two nodes are connected to rviz. The launch files are the following: test_2kinect.launch, test_frames1.launch, test_frames2.launch.

First I set rviz to have 4 cameras that gets camera1/rgb/image_color, camera2/rgb/image_color, camera1/depth/image_raw and camera1/depth/image_raw. I get usually 2 webcam images (rgb images). Naturally I want all 4 cameras to work. I did several experiments and apparently only 2 images are able to be displayed simulataneously like: depth from camera 1, image from camera 2 or depth from camera 1, image from camera 1, or depth from camera 1, depth from camera 2. Apparently the first two topics where rviz listens to will pass but the other ones that are connected wont get through. To do this, I just close any two cameras in rviz and set the other 2 open and then close the application and then kill the launch and restart rviz and the launch and I get the two images. Trying it with all 4 cameras open will display for me 2 rgb image. This is the reason why I suspect the driver. Even if I open another rviz process with different configuration the first rviz application that read the two topics will determine which two topics will give me images. This is totally weird. Anyone has any idea what's going on, or is it indeed the Primesense driver that is the devil?


edit retag flag offensive close merge delete


Hi, I met a problem when using your files. Here is the problem link. Thanks very much!

Yantian_Zha gravatar image Yantian_Zha  ( 2015-12-25 14:05:44 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2011-05-25 11:34:02 -0500

Patrick Mihelich gravatar image

updated 2011-10-11 08:46:07 -0500

The problem is USB bandwidth. A single USB bus can only handle two streams, as you've noticed. To get all four streams, you need each Kinect to be on a separate bus.

Most desktops these days have two Hi-speed USB (2.0) buses I think. You can check how many you have with something like lsusb | grep "2.0 root hub". lsusb will also show you which bus each Kinect is on. One Kinect yields three devices of type "Microsoft Corp.".

If you need another USB bus and have a PCI slot to spare, there are PCI cards that will give you that extra bus.

edit flag offensive delete link more

answered 2011-08-15 11:26:10 -0500

bsatzinger gravatar image

I was referred from here

I bought a pci-express card with its own usb controller (specifically, this), but I seem to be running into similar problems.

I have a single Kinect plugged into the pci express card. If I look at the camera/rgb/image_color topic in rviz, I'm able to see the camera output, but it only publishes at 20 Hz. Once I've looked at this topic, I'm not able to view anything else until I restart the driver.

I suspect that this particular pci express card isn't keeping up with the Kinect data. (My computer is easily able to keep up with Kinect data when it is plugged directly into the motherboard.)

My question is this:

Is anyone actually running a Kinect on any pci express add-on card successfully? If so, please let me know the model number so I can buy that card in particular.

edit flag offensive delete link more


I've been successful with something like, but that's a PCI card. Maybe someone else can recommend a suitable PCI express card.
Patrick Mihelich gravatar image Patrick Mihelich  ( 2011-08-17 08:01:37 -0500 )edit
This PCIe card works as well: - You have to give the PCIe card additional 5V (it has a plug for it), otherwise the Kinect will crash during USB initialization (although this might be a laptop issue).
Dariush gravatar image Dariush  ( 2011-10-10 23:44:38 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2011-05-19 20:07:15 -0500

Seen: 3,253 times

Last updated: Oct 11 '11