@zauberflote1
Thank you for your support. I followed your advice and changed the settings again today.
It's much better than yesterday, but the reduction in feature points is still there. I've made a video of the current situation, so please check it out.
https://www.youtube.com/watch?v=H-_lLwPrPOE
I would like to ask some questions today as well, so thank you in advance.
Support Request: VIO Instability on Custom Drone Frame (Compared to Stinger) - Follow-up SummaryWe have successfully configured a VOXL 2 Mini on a Stinger frame (D0013) with SDK 1.6.2, and VIO works perfectly in our indoor environment.
However, we are facing persistent VIO instability on our custom drone frame, which uses the same VOXL 2 Mini and camera sensors, despite trying extensive troubleshooting.
The core issue is that feature points drop to 0 and VIO quality drops to 0% specifically when the drone is hovering or stationary. Paradoxically, when we move the drone or shine a bright light on the floor, the feature count improves and VIO holds for longer.
Update: After fixing camera extrinsics and setting sync_config: false, VIO performance improved significantly ("much better than yesterday"). However, the issue persists: feature points still drop to 0 during hovering, while Stinger maintains ~22 features in the same conditions.
Hardware Setup Flight Controller: VOXL 2 Mini (SDK 1.6.2) Cameras: tracking_front (Ar0144) tracking_down (Ar0144, rotated 90 degrees) Note: This custom frame DOES NOT have a Hi-Res camera. It only has 2 tracking cameras. However, since selecting "Tracking only" in the SKU configuration prevented us from entering Position Mode, we configured it as "Hi-Res + 2 Tracking" and then manually disabled the hires camera in voxl-camera-server.conf. Frame: Custom frame (Carbon fiber), designed in CAD by ourselves. Note: We identified that the frame was reflecting into the camera view. We have covered the reflective parts with black tape, which improved stability slightly but did not solve the issue. Camera Positions relative to IMU (FRD coordinate system): FRONT camera: Forward (X): +70.8mm Right (Y): -19.4mm (Left direction) Down (Z): -20mm (Up direction) DOWN camera: Forward (X): +38mm Right (Y): -19.4mm (Left direction) Down (Z): +9mm (Down direction) Camera Calibration: Both FRONT and DOWN cameras have calibration errors ≤ 0.3 (excellent calibration quality). Camera Focus: Focus is properly adjusted for both cameras. Symptoms Hovering/Stationary: There are no issues when the drone is constantly moving. However, when it remains stationary for more than 10-20 seconds, feature points (num_pts) gradually decrease and eventually hit 0. VIO Quality then drops to 0%. Moving/Flight: When moving the drone (in flight or by hand), feature points increase to the max of ~30 and VIO recovers. Lighting: Shining a strong light on the floor extends the time before VIO fails, but it eventually drops to 0. Comparison: A Stinger drone in the exact same indoor environment and lighting holds position perfectly with default settings, maintaining ~22 features even when stationary. Recent Troubleshooting Steps (Today) IMU Noise Parameter TestingWe compared kalibr_imu_chain.yaml between Stinger and our custom frame and found they have identical values. Since different frames should have different noise characteristics, we tested adjusting IMU noise parameters:
Increased to 1.5x: No noticeable difference Decreased to 0.8x: Performance worsened Increased to 2x: Position mode could be maintained, but the drone oscillated (wobbled) excessively Reverted to default: Best performanceConclusion: IMU noise parameters are not the root cause. Default values are optimal.
Previous Troubleshooting Steps (All Reverted to Default)We have tried the following configuration changes, but none provided a permanent solution, so we have reverted everything to default settings (except for necessary fixes):
VIO Config (estimator_config.yaml): Tried zupt_only_at_beginning: false (to enable ZUPT during flight). -> No effect / Worsened. Tried increasing num_pts (50 -> 150) and lowering fast_threshold (15 -> 5). -> VIO stopped working completely. Camera Config (voxl-camera-server.conf): Tried increasing exposure_max_us (12ms -> 33ms). -> QGC rejected position mode more strictly. Tried increasing gain_max (8000 -> 16000). -> No significant improvement. IMU Config (voxl-imu-server.conf): Tried lowering imu0_lp_cutoff_freq_hz (92Hz -> 42Hz, 30Hz, 20Hz). -> No effect. FFT analysis showed 200-240Hz vibrations, but filtering them did not improve VIO. Stinger shows similar vibrations but stable VIO. Calibration: Performed voxl-calibrate-camera with the frame taped to prevent reflections. Updated extrinsics.conf and kalibr_imucam_chain.yaml with precise physical measurements. OpenVINS Config (voxl-open-vins-server.conf): Set sync_config: false (based on support advice). -> Significant improvement. Tried sync_config: true (to match Stinger). -> Performance worsened. Current: sync_config: false (required for custom frame). Current Configuration SDK: 1.6.2 voxl-vision-hub.conf: en_vio: true, vio_pipe: ov (OpenVINS), offboard_mode: vfc voxl-open-vins-server.conf: sync_config: false (required for custom frame) voxl-camera-server.conf: Default exposure (12ms), hires disabled. estimator_config.yaml: Default (OpenVINS default). voxl-imu-server.conf: Default (92Hz). kalibr_imu_chain.yaml: Default (same as Stinger). kalibr_imucam_chain.yaml: Updated with precise physical measurements for camera extrinsics. Key Differences from Stinger sync_config: Stinger works with sync_config: true, but our custom frame requires sync_config: false. Feature point behavior: Stinger maintains ~22 features when stationary, while our custom frame drops to 0. IMU noise parameters: Identical values, but custom frame may have different vibration characteristics. QuestionWhy does the custom drone fail to maintain feature points in the same environment where the Stinger works perfectly?
Since:
Frame is designed in CAD with precise measurements Extrinsics are correctly measured and configured (FRONT: Forward 70.8mm, Left 19.4mm, Up 20mm; DOWN: Forward 38mm, Left 19.4mm, Down 9mm) Camera calibration errors are ≤ 0.3 for both cameras (excellent quality) Camera focus is properly adjusted sync_config: false is required (unlike Stinger) IMU noise parameter adjustments don't help Frame reflections are taped offWhat other factors could cause OpenVINS to lose feature points specifically during hovering/stationary periods on a custom frame?
We have attached the following configuration files:
kalibr_imu_chain.yaml https://drive.google.com/file/d/1xk3hV08xkCsr_76CaHUp71kmJrE4qDip/view?usp=sharing kalibr_imucam_chain.yamlhttps://drive.google.com/file/d/1fTq8KKdH1gERFFMk34GBBJd5IRFqAw9Z/view?usp=sharing estimator_config.yaml
https://drive.google.com/file/d/1vtH50HK-VgsAOCAZEtjA27-kU0kD_aic/view?usp=sharing voxl-open-vins-server.conf
https://drive.google.com/file/d/1seNpGRoWwLbVvCMlXYlQeMPOkTn04nc0/view?usp=sharing