I'm trying to run RTABMAP with a ZED Mini Camera, with zed running on a Jetson TX2, publishing image_topics to a remote machine. I get frame drops when I subscribe to the image_topics from the remote machine, but I don't know how to improve my frame rate.
Setup
Trouble Shooting Process
rostopic hz /zed/rgb/image_rect. The values shown 720HD@60fps/30fps, VGA@60fps/30fps was good, no frame drops. rostopic hz /zed/rgb/image_rect_color. When testing with VGA@60fps/30fps, frame rate is stable. But drops to 15/10 hz for 720HD@60fps/30fps. rostopic hz /zed/rgb/image_rect and rosrun image_view image_view image:=/zed/rgb/image_rect_color is running, the frame rate drops to ~15/10hz for any resolution/frame rate.My question
I've viewed this thread https://github.com/stereolabs/zed-ros-wrapper/issues/323
sudo ~/jetson_clocks.sh --show outputSOC family:tegra186 Machine:quill
Online CPUs: 0,3-5
CPU Cluster Switching: Disabled
cpu0: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu1: Gonvernor=schedutil MinFreq=345600 MaxFreq=2035200 CurrentFreq=2035200
cpu2: Gonvernor=schedutil MinFreq=345600 MaxFreq=2035200 CurrentFreq=2035200
cpu3: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu4: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu5: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
GPU MinFreq=1122000000 MaxFreq=1122000000 CurrentFreq=1122000000
EMC MinFreq=40800000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=1
Fan: speed=255
i understand that computational resource on jetson is an issue when some process is ran natively on jetson. However, I wonder jetson's computation power would still be an limitation if the process is ran remotely?
How are the Jetson and the remote machine connected?
If you are using the WiFi, can you please make the same tests using a direct cable connection?
I confirm that your clock configuration is ok
@rhklite CPU 1 and 2 are offline (https://devtalk.nvidia.com/default/topic/1000345/jetson-tx2/two-cores-disabled-/)
To enable them run :
sudo su
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
~/jetson_clocks.sh
When the maximum performance mode is enabled you should see this :
SOC family:tegra186 Machine:quill
Online CPUs: 0-5
CPU Cluster Switching: Disabled
cpu0: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu1: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu2: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu3: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu4: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu5: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
GPU MinFreq=1300500000 MaxFreq=1300500000 CurrentFreq=1300500000
EMC MinFreq=40800000 MaxFreq=1866000000 CurrentFreq=1866000000 FreqOverride=1
Fan: speed=255
Thank you for the replies
@Myzhar The two machines are connected via a 1gigabit D-Link unmanaged network switch.
@adujardin I enabled the cpus as you described, though there is no improvement.
now the output of ~/jetson_clocks.sh --show is
SOC family:tegra186 Machine:quill
Online CPUs: 0,3-5
CPU Cluster Switching: Disabled
cpu0: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu1: Gonvernor=schedutil MinFreq=345600 MaxFreq=2035200 CurrentFreq=2035200
cpu2: Gonvernor=schedutil MinFreq=345600 MaxFreq=2035200 CurrentFreq=2035200
cpu3: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu4: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu5: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
GPU MinFreq=1122000000 MaxFreq=1122000000 CurrentFreq=1122000000
EMC MinFreq=40800000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=1
Fan: speed=255
Online CPUs: 0,3-5
The cores 1 and 2 are still offline
You will notice it also with the command $ ~/tegrastats
Sorry, I copy and pasted the wrong stats. The retest was done with core 1 and 2 online.
SOC family:tegra186 Machine:quill
Online CPUs: 0,3-5
CPU Cluster Switching: Disabled
cpu0: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu1: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu2: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu3: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu4: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
cpu5: Gonvernor=schedutil MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200
GPU MinFreq=1122000000 MaxFreq=1122000000 CurrentFreq=1122000000
EMC MinFreq=40800000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=1
Fan: speed=255
Still offline:
Online CPUs: 0,3-5
you must get
Online CPUs: 0-5
you are right!
Though I dont think it complete solved my problem, but it's better than before now. Thank you!