View my account

Unable to properly run 300 FPS

Comments

3 comments

  • MartyG

    Hi Jbmayor4  When you turned off Auto Exposure Priority, may I confirm please that you kept Auto Exposure enabled?  AE should be on when AE Priority is off in order to enforce a constant FPS with that method.

    Also, are you using 848x100 resolution with the 300 FPS mode in your stream width and height variables?  This is the only resolution available in this mode, as the shortened vertical height centered on the middle of the image is what allows the stream to run at 300 FPS without introducing slow-down.

     

    0
    Comment actions Permalink
  • Jbmayor4

    Hi MartyG. Thanks for the lightning-quick response. As you requested I just tried running it with Auto exposure enabled but AE priority off. I want to confirm that I did this correctly though as the only code I could find related to turning off Auto Exposure Priority related to the rgb camera and not the depth sensor, and when I tried it for the depth sensor it threw an error. Code below for turning of AE priority as you asked:

        auto prof = pipe.start(*config, q);

        auto sensor = prof.get_device().query_sensors()[1];

        sensor.set_option(RS2_OPTION_AUTO_EXPOSURE_PRIORITY, 0.f);

    This did not seem to make any difference.

    I also want to confirm that I used the other method to enforce constant FPS correctly. I disabled Auto-exposure and manually adjusted. Code Below:

        auto prof = pipe.start(*config, q);

        auto sensor = prof.get_device().first<rs2::depth_sensor>();

        sensor.set_option(RS2_OPTION_ENABLE_AUTO_EXPOSURE, 0.f);

        sensor.set_option(RS2_OPTION_EXPOSURE, 1); (I tried multiple exposure values but left in the minimum possible value as I thought would ensure 300FPS)

     

    Also to answer your last question I am running it at 848x100 resolution. I want to emphasize again that the program successfully runs at 300 FPS for the first 9 frames and then stops running at 300 FPS and then resumes to about ~150 a couple of frames later (example in my first post). This really makes me think that there is some firmware trigger or software trigger I'm not disabling that kicks in on the 10th frame. Once again thanks for your help and quick response. 

     

     

    0
    Comment actions Permalink
  • MartyG

    It is correct that Auto Exposure Priority is an RGB control.  In the RealSense Viewer, an on-off toggle for it can be found under the RGB section of the options side-panel.

    Whilst it is possible to change the frame queue size from the default value, it is not recommended, as a value may be set that breaks the streaming.

    The link below explains how, when setting manual exposure, FPS can drop if the exposure value exceeds the "FPS period".  So you have to be careful to choose a maximum exposure value appropriate to the FPS being used.

    https://github.com/IntelRealSense/librealsense/issues/1957#issuecomment-400715579 

    If you have the budget for more than one camera, Intel's recently introduced External Synchronization (genlock) feature allows you to chain cameras together in a trigger sequence to multiply FPS.  For example, if you have three cameras running at 90 FPS and 848x480 then you can capture at 270 FPS (3 x 90 FPS) and 848x480.  3 cameras at 300 FPS and 848x100, meanwhile, would give an FPS of 900 FPS at 848x100.

    https://dev.intelrealsense.com/docs/external-synchronization-of-intel-realsense-depth-cameras 

    0
    Comment actions Permalink

Please sign in to leave a comment.