Hi everyone,
I’m currently working on a Vision-Inertial Odometry (VIO) setup and facing an EKF velocity variance error that I’m unable to resolve.
Hardware setup:
-
Flight controller: Pixhawk 2.4.8
-
Companion computer: Raspberry Pi 5
-
Camera: Raspberry Pi Camera Module 3
-
Connection: Pi ↔ Pixhawk via UART (TELEM port)
Software / setup details:
-
VIO running on Raspberry Pi 5 (providing vision position + velocity)
-
Vision data sent to Pixhawk via MAVLink
-
EKF configured to use vision position and velocity
-
GPS disabled (indoor testing)
-
During operation, EKF throws velocity variance errors, and sometimes EKF fails or triggers failsafe
Observed behavior:
-
VIO estimates (position & velocity) look stable on the companion computer
-
Drone sometimes arms and takes off
-
After switching modes (e.g., Stabilize → PosHold/Loiter), thrust drops or EKF fails
-
Issue is inconsistent (works ~1/10 times)
What I’ve checked so far:
-
EKF parameters set as per documentation (EK3_SRC1_POSXY / VELXY / POSZ)
-
Vision data rate is stable
-
No obvious timestamp issues on the Pi side
-
Default failsafe parameters (no major changes)
Questions:
-
What typically causes EKF velocity variance when using VIO?
-
Are there recommended EKF or VIO noise parameters for vision-only navigation?
-
Any known timing, scaling, or frame-alignment issues with Raspberry Pi 5 + Pi Cam 3?
-
Is Pixhawk 2.4.8 limiting EKF performance for VIO use cases?
Any guidance, parameter suggestions, or logs you’d like me to share would be really appreciated.
Thanks in advance!
