I have a launch file that performs the image processing in Nitros.
My input is 10 FPS however the output is around 5-6 FPS, In addition for each topic we have 2 types of topics:
the name that we chose and the same with _nitros suffices. (example bellow)
/dnn_image_encoder/camera/image_rect
/dnn_image_encoder/camera/image_rect/nitros
/dnn_image_encoder/camera/image_rect/nitros/nitros_image_rgb8
/dnn_image_encoder/camera_info_rect
/dnn_image_encoder/camera_info_rect/nitros
Thanks for your post. I modified your post and moved the code into attached file for readability.
Your launch looks modified from dnn_image_encoder.launch.py. The low frame rate (5-6 FPS) you are experiencing compared to the input (10 FPS) suggests that there might be a bottleneck in the data processing pipeline. To better assist you, could you provide the context about your test and setup?
You’re right—this is a modified dnn_image_encoder launch. Our goal is to run several networks via Nitros + TensorRT: per-network preprocessing → TensorRT inference → post-processing.
Two questions came up during testing:
FPS drop: Input is ~10 FPS, but after the Nitros preprocessing chain we only see ~5–6 FPS.
Duplicate topics: For many stages we see two topics—the one we configured and another with a _nitros suffix. For example:
Could you clarify why both appear, and whether they imply a CPU+GPU dual publish? Also, any pointers on keeping the pipeline Nitros-only (no CPU path) would be appreciated.
Are you using AGX Orin devkit? What’s your camera sensor? It’d be helpful if you could provide your files and commands for us to reproduce the problem.
Yes, we are using AGX Orin devkit
For this specific test I used a nag file that sent data at 10 FPS, so any bag file should work.
As you noticed, we stripped everything and left nitros processing only.
I cannot upload my bag file here. Any suggestions?
The /nitros suffixed topics are normal, they’re how Type Negotiation works - the upstream/downstream nodes can negotiate the specific image format type they want to use. Not a sign of GPU/CPU duplication etc. that you are worried about
NITROS nodes are fast but not free, if the device doesn’t have enough resources etc. then image preprocessing could slow down the pipeline for sure. Can you check if you can get the similar result using the one in the reference sample - isaac_ros_image_proc ?