View my account

Effective use of the Emitter Toggle and USB bandwidth

Comments

3 comments

  • MartyG

    Hi Ken Mccormack

    You can control camera sensors directly at the point of capture using the Low-Level API 

    https://github.com/IntelRealSense/librealsense/blob/master/doc/api_arch.md

    The low level can be accessed with scripting callbacks, as demonstrated by the example program rs-data-collect

    https://github.com/IntelRealSense/librealsense/tree/master/tools/data-collect

    I am not personally aware of an existing scripting means to prevent transmission of a stream type from the camera hardware on a per-frame basis though (since depth and IR are active simultaneously in your particular project).

    Intel tested bandwidth consumption for various combinations of stream modes and number of cameras from 1-4 for their multiple camera white paper.  This may provide useful guidance for bandwidth estimation.

    https://dev.intelrealsense.com/docs/multiple-depth-cameras-configuration#section-2-multi-camera-consideration

    0
    Comment actions Permalink
  • Ken Mccormack

    Thanks for the links and references.   We are aware of the white paper and low-level api and use both.   We have found as confirmed by the white paper that at 30fps and the resolution our application needs we cannot put two D4xx's streams into a single USB3 port via an external USB switch.  We have sampled various switches and some are better than others.  In general there is too much bandwidth and dropped frames occur.    

    It would be a good feature enhancement to have the sensor proactively drop IR and Depth frames at the source in sync with the emitter being toggled automatically.     

     

    0
    Comment actions Permalink
  • MartyG

    Thanks very much for the additional information.  The usual approach to having multiple RealSense cameras on the same port would be to use a USB hub.  If the amount of space a hub would take up and excessive cable length is a concern, 'mini hubs' are available.  Google for usb 3.0 mini hub for more details.

    The RealSense SDK can produce a device list by querying for all attached devices that can be detected (e.g all the cameras on a USB hub) so that individual cameras can be configured. 

    https://intelrealsense.github.io/librealsense/doxygen/classrs2_1_1context.html

    Being able to start and stop individual cameras on a hub using SDK programming may have a similar effect in your project to switching between devices on a USB switch box to set the currently detectable camera.

    0
    Comment actions Permalink

Please sign in to leave a comment.