EKF2 initialization is wrong with external vision estimate, constant attitude drift without Pixhawk reboot


I have a positioning system on board and a companion computer. When I power the drone, the PX4 is slightly faster to boot than the positioning system and the companion computer. Consequently, when the EKF2 initializes, it does not have external position estimate for a few seconds. Every time, the attitude constantly drifts at about 0.5 rad/s. I have to reboot the Pixhawk (and only the Pixhawk) for the EKF2 filter to correctly initialize.

It looks like an internal integral constant does not get correctly initialize without external position estimate, and its value is so high that the system is unstable. Could I increase the convergence rate of the attitude? Is there another parameter that could change this behaviour?


Here is what it looks like when the quadcopter is not moving:

The yaw diverges at a constant speed too.

The problem seems to be solved in part by increasing the value of EKF2_GYR_B_NOISE to 0.1. Increasing EKF2_GYR_NOISE also works, but the issue is with the bias estimation, so I thing modifying the other parameter is better.