Using multiple Astra Pros with C++ (Ubuntu 16.04)

Hello, I am currently working on a university project, where I intend to use a setup with multiple Astra Pro cameras. Unfortunately, this is not as easy, as I thought.

First of all, I checked, that both cameras are working separately and that streaming works for the color- and depthstream. When running lsusb, I get this output:

Camera 1:
    Bus 001 Device 010: ID 2bc5:0501 Orbbec 3D Technology International, Inc.  
    Bus 001 Device 008: ID 2bc5:0403 Orbbec 3D Technology International, Inc.  Astra Pro

Camera 2:
    Bus 001 Device 006: ID 2bc5:0501 Orbbec 3D Technology International, Inc.  
    Bus 001 Device 004: ID 2bc5:0403 Orbbec 3D Technology International, Inc.  Astra Pro

Running v4l2-ctl --list-devices, gives me this:

    Astra Pro HD Camera: Astra Pro  (usb-0000:00:14.0-1.2):    /dev/video1

    Astra Pro HD Camera: Astra Pro  (usb-0000:00:14.0-5.2):    /dev/video2

Then I tried streaming data from both cameras (not simultaneously, one after the other), but neither using the AstraSDK, nor OpenCV I was able to collect images from both of them. The ideal goal would be, to stream both simultaneously.

When using the AstraSDK and I try to stream from two cameras, basically implementing their HelloWorld example (Can be found in the Astra SDK, in /pwd/to/AstraSDK-v.x.x.x./docs/html-en/helloworld.html or download the Userguide) code, I get stuck at the line :

Frame frame = reader.get_latest_frame();

When trying to use cv::VideoCapture instead, only one of my cameras is found and usable. If I unplug the not working camera and try to capture again, not even the previously working camera is found.

Plus, I constantly get this error, if more than one camera is plugged in and I execute my program:

2019-06-07 18:47:07,089 ERROR [orbbec.ni.LibuvcColorStream] unable to open libuvc device: Busy
2019-06-07 18:47:07,089 ERROR [orbbec.ni.device_streamset] could not open uvc-based color stream

Another alternative I found, is the MultiDepthViewer in combination with ROS wrappers for the AstraSDK, unfortunately this also only enables streaming the IR data from device at once.

I contacted the Orbbec support and after some exchange, we arrived at the conclusion, that there is no way of using both cameras, unless I write the code for that myself.

On this forum, I saw some posts talking about using a multiple camera setup. So, if any of you maybe already used multiple cameras, could you tell me how you were able to do so. Also, if anyone else has an idea about my problem, I am happy about every bit of information, that could lead me in the right direction.

Kind regards.

2 Likes