Unstable AE Performance Outdoors
Michael Shomin last edited by Michael Shomin
We've made a significant jump in software versions that took us from using mvCPA to libmodal_exposure with the tracking camera for VIO. The out-of-the-box performance of the auto-exposure outside in sunlight is very bad and oscillatory. This is causing VIO to frequently fail. This was not a problem when using mvCPA.
I've tried setting the ae alogrithm to "isp" in the camera config, and it parses and runs, but exposure and gain remain fixed. Does the ISP AE work with raw output? Nonetheless, we'd like to use modal AE, as it is the default and the transition away from mvCPA was probably for a good reason. Is modal exposure tested outside? The failure mode is bad enough that this seems like a bug, and that it was tuned for exclusively indoor performance.
These are subsequent frames after an exposure compensation viewed through voxl-portal:
And it oscillates between these two exposures. This is looking out a window at the bright outdoors, but the same phenomenon is observed operating outside generally. I've reduced the gain k_p_ns from 32000 to 10000, and that helps, but then seems to yield a slow response when turning toward/away from the sun. I haven't gone too far on tuning, as it seems like this isn't something I should have to tune, assuming Modal is supporting VIO outdoors.
This is a screen record of voxl-portal: https://youtu.be/PKx8HqNuPXw
For reference, I'm on voxl-camera-server - 0.8.1, libmodal_exposure - 0.0.2, voxl-qvio-server - 0.3.4. I've also tried this one 2 different tracking cameras with two different VOXLs.
Some tweaking of the parameters may improve things depending on the environment. I looked at the default parameters though, and they need to be updated. We'll look into that this week. In the meantime, can you please try the following parameters and see if they improve things?
Thank you for pointing out the font not being cached, that seems like a bug.
.gain_min = 100, .gain_max = 1000, .exposure_min_us = 50, .exposure_max_us = 30000, .desired_msv = 68.0, .k_p_ns = 6000, .k_i_ns = 20, .max_i = 250, .p_good_thresh = 6, .exposure_period = 2, .gain_period = 4, .display_debug = 1, .exposure_offset_for_gain_calc = 3000
The non-cached files in voxl-portal for font + images were purged in these two commits:
These changes are in the dev release, but you can pull them into your version if doing anything custom.