0
$\begingroup$

Rosanswers logo

Hi,

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?

Jose


Originally posted by jocaps on ROS Answers with karma: 21 on 2011-05-19

Post score: 2


Original comments

Comment by Yantian_Zha on 2015-12-25:
Hi, I met a problem when using your files. Here is the problem link. Thanks very much!

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Patrick Mihelich with karma: 4336 on 2011-05-25

This answer was ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.