Problem of overconsumption. HELP!
-
I am having a problem that I think is due to overconsumption. I created a manager that is responsible for orchestrating missions. For the first phase, I do an autonomous takeoff that relies on the use of OV. What happens is that I think that due to overconsumption, the VIO system starts to experience a delay or lag, and the drone starts to move erratically. It is also essential to use tflite for this. Since I analyze my own model, I see that the camera server has very high consumption. As you can see, I have left the camera server configuration below, but I have reduced almost everything to low resolution, except for the small one. I also see that open-vins is at 101%. What can I do to improve this and reduce the risk in missions?
Service Name | Enabled | Running | CPU Usage ─────────────────────────────────────────────────────────────────── docker-autorun | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 157.6% voxl-cpu-monitor | Enabled | Running | 0.0% voxl-dfs-server | Disabled | Not Running | voxl-elrs-startup | Disabled | Not Running | voxl-feature-tracker | Disabled | Not Running | voxl-flow-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 3.4% voxl-joystick-server | Disabled | Not Running | voxl-lepton-server | Disabled | Not Running | voxl-lepton-tracker | Disabled | Not Running | voxl-logger | Disabled | Not Running | voxl-mapper | Enabled | Running | 71.2% voxl-mavcam-manager | Enabled | Running | 0.0% voxl-mavlink-server | Enabled | Running | 11.9% voxl-mini-tof-server | Disabled | Not Running | voxl-mission-manager | Disabled | Not Running | voxl-modem-doodle | Disabled | Not Running | voxl-modem | Disabled | Not Running | voxl-open-vins-server | Enabled | Running | 96.6% voxl-osd | Disabled | Not Running | voxl-portal | Disabled | Not Running | voxl-px4 | Enabled | Running | 57.6% voxl-qvio-server | Disabled | Not Running | voxl-rangefinder-server | Enabled | Running | 0.0% voxl-remote-id | Disabled | Not Running | voxl-seek-server | Disabled | Not Running | voxl-softap | Disabled | Not Running | voxl-state-estimator | Disabled | Not Running | voxl-static-ip | Disabled | Not Running | voxl-streamer | Enabled | Running | 0.0% voxl-tag-detector | Disabled | Not Running | voxl-tflite-server | Enabled | Running | 103.4% voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 16.9% voxl-vrx | Disabled | Not Running | voxl-vtx | Disabled | Not Running | voxl-wait-for-fs | Enabled | Completed |
Name Freq (MHz) Temp (C) Util (%) ----------------------------------- cpu0 1075.2 95.8 67.64 cpu1 1075.2 95.4 56.92 cpu2 1075.2 96.1 57.65 cpu3 1075.2 96.1 57.65 cpu4 710.4 96.5 28.77 cpu5 710.4 97.3 28.15 cpu6 710.4 96.1 27.91 cpu7 844.8 96.1 24.68 Total 96.2 43.67 10s avg 47.49 ----------------------------------- small cores only 59.96 big cores only 27.38 ----------------------------------- GPU 305.0 95.4 5.28 GPU 10s avg 4.84 ----------------------------------- memory temp: 95.7 C memory used: 1781/7671 MB ----------------------------------- Flags CPU freq scaling mode: auto Standby Not Active CPU OVERHEAT WARNING
{ "version": 0.1, "fsync_en": true, "fsync_gpio": 109, "cameras": [{ "type": "ar0144", "name": "tracking_front", "enabled": true, "camera_id": 0, "fps": 30, "en_rotate": true, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 29, "misp_venc_mbps": 2, "misp_venc_osd": false, "misp_awb": "auto", "misp_gamma": 1, "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.600000023841858, "ae_ignore_fraction": 0.20000000298023224, "ae_slope": 0.05000000074505806, "ae_exposure_period": 1, "ae_gain_period": 1 }, { "type": "imx412", "name": "hires", "enabled": true, "camera_id": 1, "fps": 30, "en_preview": false, "preview_width": 640, "preview_height": 480, "en_raw_preview": false, "en_small_video": true, "small_video_width": 1024, "small_video_height": 768, "small_venc_mode": "h264", "small_venc_br_ctrl": "cqp", "small_venc_Qfixed": 30, "small_venc_Qmin": 15, "small_venc_Qmax": 40, "small_venc_nPframes": 9, "small_venc_mbps": 2, "small_venc_osd": false, "en_large_video": false, "large_video_width": 4056, "large_video_height": 3040, "large_venc_mode": "h264", "large_venc_br_ctrl": "cqp", "large_venc_Qfixed": 40, "large_venc_Qmin": 15, "large_venc_Qmax": 50, "large_venc_nPframes": 29, "large_venc_mbps": 40, "large_venc_osd": false, "en_snapshot": false, "en_snapshot_width": 4056, "en_snapshot_height": 3040, "exif_focal_length": 3.0999999046325684, "exif_focal_length_in_35mm_format": 17, "exif_fnumber": 1.2400000095367432, "snapshot_jpeg_quality": 75, "ae_mode": "isp", "gain_min": 54, "gain_max": 8000 }, { "type": "ar0144", "name": "tracking_rear", "enabled": true, "camera_id": 2, "fps": 30, "en_rotate": true, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 29, "misp_venc_mbps": 2, "misp_venc_osd": false, "misp_awb": "auto", "misp_gamma": 1, "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.600000023841858, "ae_ignore_fraction": 0.20000000298023224, "ae_slope": 0.05000000074505806, "ae_exposure_period": 1, "ae_gain_period": 1 }, { "type": "pmd-tof-liow2", "name": "tof", "enabled": true, "camera_id": 3, "fps": 10, "en_rotate": true, "ae_mode": "off", "gain_min": 0, "gain_max": 0, "exposure_max_us": 6000, "standby_enabled": false, "decimator": 5 }, { "type": "ar0144", "name": "tracking_down", "enabled": true, "camera_id": 4, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "en_misp": true, "misp_width": 1280, "misp_height": 800, "misp_venc_enable": true, "misp_venc_mode": "h265", "misp_venc_br_ctrl": "cbr", "misp_venc_Qfixed": 38, "misp_venc_Qmin": 15, "misp_venc_Qmax": 50, "misp_venc_nPframes": 29, "misp_venc_mbps": 2, "misp_venc_osd": false, "misp_awb": "auto", "misp_gamma": 1, "ae_mode": "lme_msv", "gain_min": 54, "gain_max": 8000, "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 12000, "exposure_soft_min_us": 5000, "ae_filter_alpha": 0.600000023841858, "ae_ignore_fraction": 0.20000000298023224, "ae_slope": 0.05000000074505806, "ae_exposure_period": 1, "ae_gain_period": 1 }] }
I think it's due to overconsumption because when I deactivated the TFLite server, it took off normally. I tested this several times. But flying without TFLite is not an option since this is the main requirement.
-
If you create a diagram of your image processing pipeline (which streams from which cameras go where), to the best of your knowledge, we may be able to suggest some optimizations in terms of
voxl-camera-server
settings or elsewhere.Also, please consider that VOXL2 cannot run without cooling at full power continuously (which is generally true for most computing devices). The challenge is to find a balance between the computing needs while not flying vs flying. The drone in flight can provide airflow for cooling or additional fan can be added to help reduce the temperature Voxl temperature.
When VOXL2 CPU reaches around 95 degrees C, the system will start slowing down the CPU cores to prevent overheating, which will have an impact on processing speeds and some software components may no longer be able to run properly.
Alex
-
Hi @Alex-Kushleyev ! Thank you very much for responding. Here is a diagram of how we use the cameras. Almost everything comes from the factory. I made some optimizations, such as ensuring that our mission manager does not consume or open a video consumption channel, but only consumes data, which has improved things, but I have not been able to significantly improve consumption and temperature issues. Sometimes the open vins reaches over 100% consumption and dies in the process (state -1), which is extremely risky for autonomous operation. I also noticed that it has a certain delay, which can lead to erroneous coordinates or erratic movements. I saw that you recommend a fan. Which one would you recommend? Do you sell them?
I look forward to your comments and possible help, thank you very much.