how to enable only desired camera pipes?
-
Hello!
I'm running into a cpu overload issue when I try to run tag_detection along with tflite_server at the same time. This prevents me from running any ROS node that could use one of the detections from tflite server or from tag_detector.
When I check voxl-inspect-services, I see that the highest cpu usage is coming from the camera server, so I thought it would be helpful if I can disable the unused camera pipes. For the current task, I'm running everything on the tracking camera (tag_detections, tflite server, and vio by default)
What do you think I can do? Is there a way to disable the unused camera pipes to save room for other applications? Below is 2 screenshots showing the services running and the cpu usage
- when running all services without voxl_mpa_to_ros
- when running all services AND voxl_mpa_to_ros
Indeed, with all of this huge resources usage, the drone's estimate of its position goes crazy and the drone could be controlled with the position mode anymore. Let me know if there are any other services that I can potentially disable and save free more space for the desired services. Thank you in advance for your help
-
@aashry You can modify
/etc/modalai/voxl-camera-server.conf
and modify the "enabled" flag like so for the cameras you want to disable:"type": "imx214", "name": "hires", "enabled": false,
and then reboot or restart camera server with
systemctl restart voxl-camera-server
-
@tom ,thank you so much for your assistance! I disabled the hires and the stereo so that when I check the actively functioning camera pipes using the
voxl-inspect-cam -a
command. Out of the three primary cameras I have installed on the m500 equipped with a VOXL flight deck, only the tracking camera is currently active, which is great.I have inspected the camera server's CPU usage using
voxl-inspect-services
. Upon examining the voxl-camera-server, I've noticed a significant decrease compared to the previous value. If you recall the screenshot I shared previously, where the camera server consumed 14 units of CPU usage, it's now down to just 4.5, as indicated in the following screenshot.
Interestingly, even though the camera server's CPU usage has drastically reduced, the overall CPU usage remains high, with the utilization nearing 100%. This has led me to speculate about the presence of other background services that may need to be terminated. What are your thoughts on this?
Regarding the running pipes from MPA to ROS displayed on the left, I believe some of them might not be necessary and could be contributing to CPU consumption and board overheating.
So, I have some questions about disabling the qvio_overlay and the tag_overlay. Although I can't confirm whether these services are causing the problem, it might be beneficial to try disabling them if there's a simple configuration change I can implement. As the screenshot indicates, the CPU is practically fully engaged, causing the qvio server to perform poorly and become virtually unusable. Could you provide some advice on this matter, or perhaps there's something I've overlooked?
I'm including another screenshot below to provide more context. It depicts the system usage when I engage one of the pipes and MPA to ROS starts publishing. As shown, this leads to such an extreme CPU overheating that the board simply shuts down.
-
@tom the solution could be to simply upgrade to VOXL2 though, I'm just making sure if it's the only solution I have, or there might be other workaround to manage the resources I'm running.
-
@aashry Unfortunately we don't do too much ROS work around here so I'm not sure if someone else will respond with a better answer, but... I would highly recommend pointing a fan at your VOXL while doing development on your bench and see if that affects performance.
As you mentioned, VOXL2 is much more powerful and will likely perform much better in all ways (also much more developer friendly since it's runs Ubuntu 18 as opposed to VOXL's yocto build), but it makes sense that you want to get things working on your current hardware