I’m using ZED X camera on a Jetson Orin NX 16gb.
In my C++ application (using rclcpp), I measure the frame rate by counting successful grab() calls and retrieving both the left image and depth (retrieveImage, retrieveMeasure) every frame.
Initially, the system runs at around 30 FPS, but after 2–3 hours of continuous operation, the FPS increases to around 40.
What could be causing this gradual increase in frame rate over time?
It’s unusual. What’s the grab frame rate setting?
I guess it’s something related to the DDS communication.
What DDS middleware are you using? Have you set up the system by following our guide?
Here are the test results after switching to Cyclone DDS.
The ZED Box and the Linux PC are currently connected directly.
If you’re interested, I can share the full configuration scripts and XML files.
After switching from Fast DDS to Cyclone DDS, I noticed the FPS still gradually increases over time. Would you have any advice on how to maintain a stable 40 FPS or higher from the beginning of the program?
Test Results
sudo sysctl -w net.ipv4.ipfrag_time=3
The frame rate is over 35 FPS, but the overall behavior is unstable.
It fluctuates between 31 and 39 FPS, as shown in the image.
In the Power section at the bottom left of jtop, I noticed that the frame rate increased when the CPU, GPU, and CV exceeded 4W. So I ran the test with the command “sudo jetson_clocks” and the results were the same.