View my account

D455 RGB frames completely black when using hw sync

Comments

11 comments

  • MartyG

    Hi Theo Engels  How does the RGB behave if you change the slave camera from '2' (Slave) to '3' (Full Slave).

     

    The Full Slave mode is part of the genlock system and was designed to sync both depth and RGB.  Intel no longer provide support for genlock mode (as it was a proof-of-concept experiment) and modes 1 and 2 are now the only officially supported ones but the genlock modes are still accessible in the RealSense SDK.

    0
    Comment actions Permalink
  • Theo Engels

    Hi MartyG, thanks for your response.

    Changing the slave camera to full slave mode correctly generates RGB images for the slave camera, but the issue persists for the master camera. I managed to generate rgb images on both cameras by increasing the fps of the RGB stream to 15 from 5, but it does not generate synchronized depth/RGB images (up to a 130ms difference between the timestamps of RGB and depth frames), even on the full slave camera.

    Is there anything you could suggest to sync both the cameras and the streams together?

    0
    Comment actions Permalink
  • MartyG

    The Depth and RGB full slave mode was intended for the D415 camera model, where the depth and RGB sensors are mounted on the same circuit board.  The depth-RGB sync did not work well in general though.

     

    If depth and RGB FPS are the same then the camera should automatically attempt to sync the depth and RGB frames on the same camera.  The best way to achieve this is to disable an RGB option called Auto-Exposure Priority so that the RealSense SDK tries to enforce a constant FPS for both streams instead of permitting FPS to vary.  C++ code for disabling auto-exposure priority can be found at the link below.

    https://github.com/IntelRealSense/librealsense/issues/5290

    0
    Comment actions Permalink
  • Theo Engels

    Thanks for the lin MartyG

    I disabled auto exposure priority and used 5 fps for both streams and still get fully black rgb frames.

    sensors[RGB_SENSOR_IDX].set_option(RS2_OPTION_AUTO_EXPOSURE_PRIORITY, 0);
    0
    Comment actions Permalink
  • MartyG

    Can you check your cfg name definition line please as it is stated in the code listing above as rs2::configcfg; when it should have a space before cfg: rs2::config cfg;

    0
    Comment actions Permalink
  • Theo Engels

    Yeah this is a small mistake when i removed some not usefull lines after copy pasting, the line is correct in the original code.

    0
    Comment actions Permalink
  • MartyG

    Earlier you were able to generate RGB frames on both cameras using 15 FPS instead of 5.  Are you able to go back to 15 FPS?

    0
    Comment actions Permalink
  • Theo Engels

    Yes i am able to generate both rgb and depth frame with 15 fps for rgb and 5 fps for depth frames but this is not optimal as i have no synchronization between rgb and depth frames ( up to 130~140 ms difference between depth and rgb frames from the same camera)

    0
    Comment actions Permalink
  • MartyG

    Are you able to increase depth FPS to 15 too and still obtain the RGB frames?

    0
    Comment actions Permalink
  • Theo Engels

    Yes this worked! The difference between timestamp of the depth and rgb frames from the same camera are stable at about 2.6ms.

    Thanks for your help!

    Do you have any idea what caused the rgb frames to be black when depth and rgb where both at 5fps? 

    0
    Comment actions Permalink
  • MartyG

    Using both depth and color has the risk that the two streams may not have the same FPS and one stream's FPS may drop lower than the other stream's.  When the set FPS is only 5 then you can see how FPS might drop to a point where there is virtually no data arriving.

    0
    Comment actions Permalink

Please sign in to leave a comment.