4 Replies Latest reply on Mar 7, 2018 12:22 AM by MartyG

    Data Aquisition from Multiple D415 with one PC

    Albert_VRC

      We are going to build a system using multiple (50 pieces to 100 pieces) realsense D415 (or D435), from each of the which, RGB and Depth data (less than 10 frames) need to be acquired (not necessarily to be exactly synchronized). Considering the system cost, we would like to build it with just one PC, which controls RGB and Depth image's retrieval only. Is there any sample program? If not, any suggestion to help us with reducing the PC number (cost) is very appreciated.

       

      Thank you and best regards.

       

      Albert

        • 1. Re: Data Aquisition from Multiple D415 with one PC
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hello, Albert_VRC.

          Thank you very much for contacting the Intel® Communities Team.

          Allow me to move your thread to the correct support group.


          Antony S.

          • 2. Re: Data Aquisition from Multiple D415 with one PC
            MartyG

            Up to 128 USB devices can be connected to a single computer.  This does not mean that you can connect 128 cameras though.  If you had to link together a series of USB hubs to multiply the number of ports, then the hubs themselves will use some of those 128 USB device addresses.  So attaching 50 cameras might be more realistic than 100 if you are aiming to link them all to the same computer.  The link below discusses the math of it.

             

            Maximum number of USB devices supported on a single PC

             

            You would also likely get horrible performance if you tried to use all of the cameras at the same time due to the computer's resources being rapidly consumed.  I recall that a couple of people have done RealSense setups in the past on the scale that you are considering.  Because of the resource issue though, the practical way to do it is to cycle through each camera sequentially, turning on its projector, taking a snapshot and then turning that camera off and activating the next camera, until the sequence arrives back at the first camera.

             

            You could probably speed the process by activating manageable batches of cameras at a time (e.g 4 cameras at a time).  I would recommend using a powerful machine such as server with a processor with a large number of cores to provide the maximum processing resources possible (though the USB bandwidth is likely to be used up before the CPU and memory resources are if you have too many cameras active at once).  So the cost calculation will be high speed of the capture process at a high PC price, or slow processing at a lower PC price if you only have one camera at a time active.

             

            If you want to explore this subject further, the RealSense SDK 2.0 that the D-cameras use comes with a sample program called Multicam.

             

            librealsense/examples/multicam at master · IntelRealSense/librealsense · GitHub

            • 3. Re: Data Aquisition from Multiple D415 with one PC
              Albert_VRC

              Hi, MartyG

               

              Thank you!

               

              As you mentioned, to activate manageable batches of cameras at a time would be cost effective. In this case, just wondering how much time to capture all the images, in detail, we would like to know how much time for each of the following steps?

               

              1. turn on 4 cameras

              2. capture 10 frames with highest resolution mode for both RGB and Depth

              3. turn off the corresponding 4 cameras

               

              Just rough time cost would be very appreciated.

               

              Best regards

               

              Albert

              • 4. Re: Data Aquisition from Multiple D415 with one PC
                MartyG

                On previous models of RealSense camera, turning the camera on and off took a couple of seconds.  Users of multi-camera setups were therefore keen to avoid this method if they could due to the time delay.  You reminded me of a discussion in which it was debated how to efficiently cycle between multiple SR300 camera models in the least time and how to minimize interference when the IR light from multiple cameras overlap each other due to the location that they are pointing towards..

                 

                Many SR300, One IR light, While Looking at Same Object (i.e., Use Two SR300, And One IR Light)

                 

                One company wrote a custom system where they set the laser power to 0  on the cameras in their sequence when they wanted to make a camera dormant.  They found it to be much faster than turning the projector off, but it was still only suitable for capturing static snapshots rather than streaming data.  They activated the odd-numbered cameras in the sequence, then put them to sleep and activated the even-numbered cameras.

                 

                Re: Many SR300, One IR light, While Looking at Same Object (i.e., Use Two SR300, And One IR Light)

                 

                The 400 Series cameras have the advantage of hardware syncing.  The software to support the feature is still being worked on though.  Here's what Intel support agent Juan had to say about it recently:

                 

                "Syncing requires an electrical signal, also known as a trigger, that goes to all cameras.  When the cameras receive that trigger, they capture the frame.  Sensors within a camera can be synced to each other with an internal trigger and whole cameras can be synced to each other with external trigger.  The external sync capability of the RealSense D400 series cameras is still being developed and, therefore, documentation is limited.  We will post an update as a blog on the front page of this community when it is officially supported.  The feature has a target release date for Q2 2018".

                 

                *********

                 

                In the meantime, you may like to read this documentation page about syncing:

                 

                librealsense/external_devices.md at development · IntelRealSense/librealsense · GitHub